/*
Theme Name: Hello Elementor Child
Theme URI: https://testamentisicuri.it
Description: Child theme per Hello Elementor - Testamenti Sicuri
Author: Testamenti Sicuri
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child
*/

body:not([class*=elementor-page-]) .site-main {
    max-width: 100% !important;
}

html {
    scroll-behavior: smooth;
}

/* Hero heading bianco */
h1.elementor-heading-title.elementor-size-default {
    color: #FFFFFF !important;
}

html, body {
    overflow-x: hidden;
}

/* ========================================
   HEADER / NAVBAR
   ======================================== */

/* Logo più grande */
.site-logo img,
.elementor-widget-theme-site-logo img,
.hfe-site-logo img,
.custom-logo {
    max-height: 60px !important;
    width: auto !important;
}

header .elementor-widget-image img,
.elementor-location-header .elementor-widget-image img {
    max-height: 60px !important;
    width: auto !important;
}

/* ========================================
   ELEMENTI SPECIFICI - DESKTOP
   ======================================== */

/* Timeline */
.timeline {
    padding: 40px 0;
}

.timeline-item {
    margin-bottom: 30px;
}

/* Cards */
.card {
    padding: 24px;
    margin-bottom: 24px;
}

/* Pricing Cards */
.pricing-card {
    padding: 32px;
    margin-bottom: 24px;
}

/* Icon Box */
.icon-box {
    padding: 20px;
}

/* Stagger Items */
.stagger-item {
    margin-bottom: 24px;
}

/* Posts Grid Desktop */
.elementor-posts-container {
    gap: 30px;
}

.elementor-grid {
    gap: 30px;
}

.elementor-post__card {
    margin-bottom: 0;
}

/* ========================================
   SEZIONE ARTICOLI HOME (#notizie)
   ======================================== */

#notizie .e-con-inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 40px;
}

#notizie .card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #FFFFFF;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

#notizie .card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}

#notizie .card img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

#notizie .card .card-body,
#notizie .card > div:last-child {
    padding: 24px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

#notizie .card h5,
#notizie .card h6,
#notizie .card .card-title {
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: #1E1E2F;
    line-height: 1.4;
    margin-bottom: 12px;
}

#notizie .card a {
    color: #E57B1E;
    text-decoration: none;
    font-weight: 500;
}

#notizie .card a:hover {
    color: #BC6519;
}

/* ========================================
   FOOTER
   ======================================== */

footer,
.site-footer,
.elementor-location-footer {
    font-family: 'Poppins', sans-serif;
    padding: 60px 0 0 !important;
}

/* Footer container interno */
footer .e-con-inner,
.site-footer .e-con-inner,
.elementor-location-footer .e-con-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 40px;
}

/* Footer columns */
footer .elementor-column,
.elementor-location-footer .elementor-column {
    padding: 0 15px;
    margin-bottom: 30px;
}

/* Logo footer */
footer .elementor-widget-image img,
.elementor-location-footer .elementor-widget-image img {
    max-height: 50px !important;
    width: auto !important;
    margin-bottom: 20px;
}

/* Titoli footer */
footer h4,
footer h5,
footer h6,
.site-footer h4,
.site-footer h5,
.site-footer h6,
.elementor-location-footer h4,
.elementor-location-footer h5,
.elementor-location-footer h6 {
    font-size: 15px;
    font-weight: 600;
    color: #FFFFFF;
    margin: 0 0 16px 0;
    padding: 0;
}

/* Paragrafi e testo */
footer p,
footer span,
.site-footer p,
.site-footer span,
.elementor-location-footer p,
.elementor-location-footer span {
    font-size: 13px;
    line-height: 1.7;
    color: #A7B5C4;
    margin: 0 0 12px 0;
}

/* Link */
footer a,
.site-footer a,
.elementor-location-footer a {
    font-size: 13px;
    color: #A7B5C4;
    text-decoration: none;
    transition: color 0.3s ease;
}

footer a:hover,
.site-footer a:hover,
.elementor-location-footer a:hover {
    color: #E57B1E;
}

/* Liste navigazione */
footer ul,
.site-footer ul,
.elementor-location-footer ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

footer ul li,
.site-footer ul li,
.elementor-location-footer ul li {
    margin-bottom: 10px;
    padding: 0;
}

footer ul li a,
.site-footer ul li a,
.elementor-location-footer ul li a {
    font-size: 13px;
    padding: 0;
}

/* Sezione copyright */
footer .copyright,
footer small,
.site-footer .copyright,
.site-footer small,
.elementor-location-footer .copyright {
    font-size: 12px;
    color: #64748b;
    padding: 20px 0;
    margin: 0;
    border-top: 1px solid rgba(255,255,255,0.1);
}

/* Widget spacing nel footer */
footer .elementor-widget,
.elementor-location-footer .elementor-widget {
    margin-bottom: 16px;
}

footer .elementor-widget:last-child,
.elementor-location-footer .elementor-widget:last-child {
    margin-bottom: 0;
}

/* Form Elements */
.form-section-title {
    margin-bottom: 20px;
}

.form-summary {
    padding: 24px;
}

/* ========================================
   ELEMENTI SPECIFICI - TABLET
   ======================================== */

@media (max-width: 1024px) {
    .timeline {
        padding: 30px 0;
    }

    .timeline-item {
        margin-bottom: 24px;
    }

    .card {
        padding: 20px;
        margin-bottom: 20px;
    }

    .pricing-card {
        padding: 24px;
        margin-bottom: 20px;
    }

    .stagger-item {
        margin-bottom: 20px;
    }

    .elementor-posts-container,
    .elementor-grid {
        gap: 24px;
    }

    .form-summary {
        padding: 20px;
    }

    /* Articoli Home Tablet */
    #notizie .e-con-inner {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
        padding: 0 24px;
    }

    #notizie .card img {
        height: 180px;
    }

    #notizie .card .card-body,
    #notizie .card > div:last-child {
        padding: 20px;
    }

    #notizie .card h5,
    #notizie .card h6,
    #notizie .card .card-title {
        font-size: 16px;
    }

    /* Footer Tablet */
    footer,
    .site-footer,
    .elementor-location-footer {
        padding: 50px 0 0 !important;
    }

    footer .e-con-inner,
    .site-footer .e-con-inner,
    .elementor-location-footer .e-con-inner {
        padding: 0 24px;
    }

    footer .elementor-column,
    .elementor-location-footer .elementor-column {
        padding: 0 10px;
        margin-bottom: 24px;
    }

    footer .elementor-widget-image img,
    .elementor-location-footer .elementor-widget-image img {
        max-height: 45px !important;
    }

    footer h4,
    footer h5,
    footer h6,
    .elementor-location-footer h4,
    .elementor-location-footer h5,
    .elementor-location-footer h6 {
        font-size: 14px;
        margin: 0 0 14px 0;
    }

    footer p,
    footer span,
    footer a,
    .elementor-location-footer p,
    .elementor-location-footer span,
    .elementor-location-footer a {
        font-size: 13px;
    }

    footer ul li,
    .elementor-location-footer ul li {
        margin-bottom: 8px;
    }

    footer .copyright,
    footer small,
    .elementor-location-footer .copyright {
        font-size: 12px;
        padding: 18px 0;
    }
}

@media (max-width: 767px) {
    /* Overflow fix generale - escluso header per menu mobile */
    html, body {
        overflow-x: hidden;
    }

    *,
    *::before,
    *::after {
        box-sizing: border-box;
    }

    /* Esclude header dal overflow hidden */
    .e-con:not(.elementor-location-header *),
    .e-con-inner:not(.elementor-location-header *),
    .elementor-container:not(.elementor-location-header *),
    .elementor-row:not(.elementor-location-header *),
    .elementor-column:not(.elementor-location-header *),
    .elementor-widget-wrap:not(.elementor-location-header *) {
        max-width: 100% !important;
    }

    /* Header menu mobile - assicura visibilità dropdown */
    .elementor-location-header,
    .elementor-location-header .e-con,
    .elementor-location-header .e-con-inner,
    .elementor-location-header .elementor-container,
    .elementor-location-header .elementor-widget-wrap,
    header,
    header * {
        overflow: visible !important;
    }

    .hfe-dropdown,
    .hfe-nav-menu__layout-horizontal .hfe-dropdown,
    .sub-menu,
    .elementor-nav-menu--dropdown,
    .elementor-menu-toggle,
    .hfe-nav-menu__toggle {
        overflow: visible !important;
        display: block;
        visibility: visible !important;
        z-index: 9999 !important;
    }

    .hfe-nav-menu__layout-horizontal .hfe-dropdown.hfe-dropdown-open,
    .hfe-dropdown.hfe-active {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        max-height: none !important;
    }

    /* Articoli Home Mobile - Fix overflow */
    #notizie {
        max-width: 100vw !important;
        width: 100% !important;
        overflow: hidden !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    #notizie > *,
    #notizie .e-con,
    #notizie .e-con-inner,
    #notizie .elementor-container,
    #notizie .elementor-row,
    #notizie .elementor-column,
    #notizie .elementor-widget-wrap,
    #notizie .elementor-widget {
        max-width: 100% !important;
        width: 100% !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }

    #notizie .e-con-inner {
        display: flex !important;
        flex-direction: column !important;
        gap: 20px !important;
        padding: 0 16px !important;
        grid-template-columns: none !important;
    }

    #notizie .card,
    #notizie .stagger-item,
    #notizie [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        flex: 0 0 100% !important;
        box-sizing: border-box !important;
    }

    #notizie .card img {
        width: 100% !important;
        max-width: 100% !important;
    }

    #notizie .card img {
        height: 180px;
    }

    #notizie .card .card-body,
    #notizie .card > div:last-child {
        padding: 16px;
    }

    #notizie .card h5,
    #notizie .card h6,
    #notizie .card .card-title {
        font-size: 16px;
        margin-bottom: 10px;
    }

    /* Header Mobile */
    .site-logo img,
    .elementor-widget-theme-site-logo img,
    .hfe-site-logo img,
    .custom-logo,
    header .elementor-widget-image img,
    .elementor-location-header .elementor-widget-image img {
        max-height: 50px !important;
    }

    /* Menu toggle a destra */
    .elementor-location-header .e-con,
    .elementor-location-header .elementor-container {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
    }

    .hfe-nav-menu__toggle,
    .elementor-menu-toggle,
    .hfe-nav-menu-icon {
        order: 2 !important;
        margin-left: auto !important;
    }

    .hfe-site-logo,
    .elementor-widget-theme-site-logo,
    .elementor-widget-image:has(.custom-logo) {
        order: 1 !important;
    }

    /* Footer Mobile */
    footer,
    .site-footer,
    .elementor-location-footer {
        padding: 40px 0 0 !important;
    }

    footer .e-con-inner,
    .site-footer .e-con-inner,
    .elementor-location-footer .e-con-inner {
        padding: 0 16px;
    }

    footer .elementor-column,
    .elementor-location-footer .elementor-column {
        padding: 0;
        margin-bottom: 24px;
    }

    footer .elementor-widget-image img,
    .elementor-location-footer .elementor-widget-image img {
        max-height: 40px !important;
        margin-bottom: 16px;
    }

    footer h4,
    footer h5,
    footer h6,
    .site-footer h4,
    .site-footer h5,
    .site-footer h6,
    .elementor-location-footer h4,
    .elementor-location-footer h5,
    .elementor-location-footer h6 {
        font-size: 14px;
        margin: 0 0 12px 0;
    }

    footer p,
    footer span,
    .site-footer p,
    .site-footer span,
    .elementor-location-footer p,
    .elementor-location-footer span {
        font-size: 12px;
        line-height: 1.6;
        margin: 0 0 10px 0;
    }

    footer a,
    .site-footer a,
    .elementor-location-footer a {
        font-size: 12px;
    }

    footer ul li,
    .site-footer ul li,
    .elementor-location-footer ul li {
        margin-bottom: 8px;
    }

    footer ul li a,
    .site-footer ul li a,
    .elementor-location-footer ul li a {
        font-size: 12px;
    }

    footer .copyright,
    footer small,
    .site-footer .copyright,
    .site-footer small,
    .elementor-location-footer .copyright {
        font-size: 11px;
        padding: 16px 0;
    }

    footer .elementor-widget,
    .elementor-location-footer .elementor-widget {
        margin-bottom: 12px;
    }

    /* Timeline Mobile */
    .timeline {
        padding: 20px 0;
    }

    .timeline-item {
        margin-bottom: 16px;
        padding: 16px;
    }

    .timeline-icon {
        width: 40px;
        height: 40px;
    }

    /* Cards Mobile */
    .card {
        padding: 16px;
        margin-bottom: 16px;
    }

    /* Pricing Cards Mobile */
    .pricing-card {
        padding: 20px;
        margin-bottom: 16px;
    }

    /* Icon Box Mobile */
    .icon-box {
        padding: 16px;
    }

    /* Stagger Items Mobile */
    .stagger-item {
        margin-bottom: 16px;
    }

    /* Posts Grid Mobile */
    .elementor-posts-container,
    .elementor-grid {
        gap: 16px;
    }

    .elementor-post {
        margin-bottom: 0;
    }

    .elementor-post__card {
        padding: 0;
        margin: 0;
    }

    .elementor-post__text {
        padding: 16px;
    }

    .elementor-post__title {
        margin: 0 0 10px;
    }

    .elementor-post__excerpt {
        font-size: 14px;
        line-height: 1.5;
        margin-bottom: 12px;
    }

    .elementor-post__meta-data {
        font-size: 12px;
        margin-top: 10px;
    }

    .elementor-post__read-more {
        font-size: 14px;
        margin-top: 12px;
    }

    .elementor-post__badge {
        font-size: 11px;
        padding: 4px 10px;
    }

    /* Form Mobile - Fix overflow completo */
    #contatti,
    #contactInfoForm,
    #appointmentBookingForm,
    #infoForm,
    #bookingForm,
    #form-summary,
    [id*="contact"],
    [id*="form"],
    [id*="Form"],
    [id*="booking"] {
        max-width: 100% !important;
        width: 100% !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    #contatti > *,
    #contatti .e-con,
    #contatti .e-con-inner,
    #contatti .elementor-container,
    #contatti .elementor-row,
    #contatti .elementor-column,
    #contatti .elementor-widget-wrap,
    #contatti .elementor-widget,
    #contatti .row,
    #contatti [class*="col-"] {
        max-width: 100% !important;
        width: 100% !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
        flex: 0 0 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .form-summary {
        padding: 16px !important;
        margin-top: 20px !important;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
        position: relative !important;
        top: auto !important;
    }

    .form-section-title {
        margin-bottom: 16px;
        font-size: 16px !important;
        word-wrap: break-word !important;
    }

    .form-control,
    .form-select {
        padding: 12px !important;
        font-size: 16px !important;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    form,
    .wpcf7,
    .wpcf7-form,
    .elementor-form {
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }

    input,
    textarea,
    select,
    button,
    .btn {
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    input[type="radio"],
    input[type="checkbox"] {
        width: auto !important;
    }

    /* Radio toggle buttons */
    .btn-group,
    [role="group"],
    .form-check,
    .form-check-inline {
        flex-wrap: wrap !important;
        max-width: 100% !important;
    }

    label.btn,
    .btn-check + .btn {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        font-size: 14px !important;
        padding: 10px 12px !important;
        white-space: normal !important;
        word-wrap: break-word !important;
    }

    /* Text elements */
    .elementor-widget-text-editor,
    .elementor-widget-heading {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    img {
        max-width: 100%;
        height: auto;
    }
}

a {
    color: #E57B1E;
}

a:hover {
    color: #BC6519;
}

.ts-single-post a {
    color: #E57B1E;
}

.ts-single-post a:hover {
    color: #BC6519;
}

.ts-single-post {
    background-color: #FBFAF5;
}

.ts-post-header {
    max-width: 1280px;
    margin: 0 auto;
    padding: 80px 40px 40px;
}

.ts-post-header-inner {
    animation: fadeInUp 0.6s ease-out;
}

.ts-post-meta {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.ts-post-category {
    display: inline-block;
    background-color: #E57B1E;
    color: #FFFFFF;
    padding: 6px 16px;
    border-radius: 4px;
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.ts-post-category,
.ts-post-category a {
    color: #FFFFFF !important;
}

.ts-post-category:hover {
    background-color: #BC6519;
    color: #FFFFFF;
}

.ts-post-date {
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    color: #1E1E2F;
}

.ts-post-title {
    font-family: 'Poppins', sans-serif;
    font-size: 42px;
    font-weight: 600;
    color: #1E1E2F;
    line-height: 1.25;
    margin: 0;
}

.ts-featured-image {
    max-width: 1280px;
    margin: 0 auto;
    padding: 40px 40px 60px;
    animation: fadeIn 0.8s ease-out;
}

.ts-featured-image img {
    width: 100%;
    height: auto;
    max-height: 480px;
    object-fit: cover;
    border-radius: 8px;
}

.ts-post-content-wrapper {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 40px 80px;
}

.ts-post-content {
    animation: fadeInUp 0.6s ease-out;
}

.ts-post-content p {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    color: #3A3A4E;
    line-height: 1.8;
    margin-bottom: 24px;
}

.ts-post-content h2 {
    font-family: 'Poppins', sans-serif;
    font-size: 28px;
    font-weight: 600;
    color: #1E1E2F;
    margin: 48px 0 20px;
}

.ts-post-content h3 {
    font-family: 'Poppins', sans-serif;
    font-size: 22px;
    font-weight: 600;
    color: #1E1E2F;
    margin: 40px 0 16px;
}

.ts-post-content h4,
.ts-post-content h5,
.ts-post-content h6 {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    color: #1E1E2F;
    margin: 32px 0 12px;
}

.ts-post-content ul,
.ts-post-content ol {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    color: #3A3A4E;
    line-height: 1.8;
    margin-bottom: 24px;
    padding-left: 24px;
}

.ts-post-content blockquote {
    border-left: 4px solid #E57B1E;
    padding: 20px 24px;
    margin: 32px 0;
    background-color: rgba(229, 123, 30, 0.05);
    border-radius: 0 8px 8px 0;
}

.ts-post-content blockquote p {
    font-style: italic;
    margin-bottom: 0;
}

.ts-post-content a {
    color: #E57B1E;
    text-decoration: none;
    transition: color 0.3s ease;
}

.ts-post-content a:hover {
    color: #BC6519;
}

.ts-post-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 24px 0;
}

.ts-post-footer {
    border-top: 1px solid #BECAD5;
    padding-top: 32px;
    margin-top: 48px;
}

.ts-post-tags {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ts-post-tags-label {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #1E1E2F;
}

.ts-post-tags a {
    display: inline-block;
    background-color: #2A3239;
    color: #FBFAF5;
    padding: 6px 14px;
    border-radius: 4px;
    font-family: 'Poppins', sans-serif;
    font-size: 13px;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.ts-post-tags a:hover {
    background-color: #E57B1E;
}

.ts-post-share {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
}

.ts-post-share-label {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #1E1E2F;
}

.ts-post-share a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: #2A3239;
    color: #FBFAF5;
    border-radius: 50%;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.ts-post-share a:hover {
    background-color: #E57B1E;
}

.ts-post-share svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

.ts-post-navigation {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 40px 80px;
}

.ts-post-nav-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.ts-post-nav-link {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 24px;
    background-color: #192027;
    border-radius: 8px;
    text-decoration: none;
    transition: background-color 0.3s ease, transform 0.3s ease;
}

.ts-post-nav-link:hover {
    background-color: #E57B1E;
    transform: translateY(-2px);
}

.ts-post-nav-link.prev {
    justify-content: flex-start;
}

.ts-post-nav-link.next {
    justify-content: flex-end;
    text-align: right;
}

.ts-nav-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: rgba(255,255,255,0.1);
    border-radius: 50%;
    flex-shrink: 0;
    transition: background-color 0.3s ease;
}

.ts-post-nav-link:hover .ts-nav-arrow {
    background-color: rgba(255,255,255,0.2);
}

.ts-nav-arrow svg {
    width: 24px;
    height: 24px;
    fill: #FFFFFF;
}

.ts-nav-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.ts-nav-label {
    font-family: 'Poppins', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #A7B5C4;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.ts-nav-text strong {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #FFFFFF;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (max-width: 1024px) {
    .ts-post-header {
        padding: 60px 32px 32px;
    }

    .ts-post-title {
        font-size: 36px;
    }

    .ts-featured-image {
        padding: 32px 32px 48px;
    }

    .ts-post-content-wrapper {
        padding: 0 32px 60px;
    }

    .ts-post-navigation {
        padding: 0 32px 60px;
    }
}

@media (max-width: 1024px) {
    .hfe-nav-menu .hfe-menu-item {
        font-size: 15px !important;
    }

    .hfe-nav-menu__layout-horizontal .menu-item a.hfe-menu-item {
        padding: 12px 10px !important;
    }
}

@media (max-width: 767px) {
    .hfe-nav-menu .hfe-menu-item {
        font-size: 16px !important;
        color: #1E1E2F !important;
    }

    .hfe-nav-menu__layout-horizontal .menu-item a.hfe-menu-item {
        padding: 12px 10px !important;
    }

    .hfe-nav-menu-icon svg {
        width: 24px !important;
        height: 24px !important;
    }

    .elementor-widget-navigation-menu .hfe-dropdown li a.hfe-menu-item {
        font-size: 16px !important;
        padding: 14px 20px !important;
        color: #1E1E2F !important;
    }

    .elementor-widget-navigation-menu .hfe-dropdown {
        background: #FBFAF5 !important;
    }

    .ts-post-header {
        padding: 32px 16px 20px;
    }

    .ts-post-title {
        font-size: 26px;
        line-height: 1.3;
    }

    .ts-post-meta {
        gap: 10px;
        margin-bottom: 14px;
    }

    .ts-post-category {
        font-size: 13px;
        padding: 5px 14px;
    }

    .ts-post-date {
        font-size: 13px;
        color: #1E1E2F;
    }

    .ts-featured-image {
        padding: 20px 16px 32px;
    }

    .ts-featured-image img {
        max-height: 280px;
    }

    .ts-post-content-wrapper {
        padding: 0 16px 40px;
    }

    .ts-post-content p {
        font-size: 16px;
        line-height: 1.7;
        margin-bottom: 20px;
    }

    .ts-post-content h2 {
        font-size: 22px;
        margin: 32px 0 14px;
    }

    .ts-post-content h3 {
        font-size: 19px;
        margin: 28px 0 12px;
    }

    .ts-post-content ul,
    .ts-post-content ol {
        font-size: 16px;
        padding-left: 20px;
    }

    .ts-post-footer {
        padding-top: 24px;
        margin-top: 32px;
    }

    .ts-post-tags-label,
    .ts-post-share-label {
        font-size: 15px;
    }

    .ts-post-tags a {
        font-size: 13px;
        padding: 6px 12px;
    }

    .ts-post-share a {
        width: 36px;
        height: 36px;
    }

    .ts-post-share svg {
        width: 16px;
        height: 16px;
    }

    .ts-post-navigation {
        padding: 0 16px 40px;
    }

    .ts-post-nav-inner {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .ts-post-nav-link {
        padding: 18px;
        gap: 14px;
    }

    .ts-post-nav-link.next {
        justify-content: flex-start;
        text-align: left;
    }

    .ts-nav-arrow {
        width: 36px;
        height: 36px;
    }

    .ts-nav-arrow svg {
        width: 20px;
        height: 20px;
    }

    .ts-nav-label {
        font-size: 11px;
    }

    .ts-nav-text strong {
        font-size: 14px;
    }

    .elementor-post__title,
    .elementor-post__title a,
    h6,
    .elementor-widget-text-editor h6 {
        font-size: 16px !important;
        line-height: 1.4 !important;
        margin: 0 0 10px !important;
        padding: 0 !important;
    }

    .elementor-heading-title {
        font-size: 26px !important;
        line-height: 1.3 !important;
    }

    .elementor-widget-heading .elementor-heading-title {
        font-size: 24px !important;
        margin-bottom: 16px !important;
    }

    .ts-post-content h4 {
        font-size: 17px;
        margin: 24px 0 10px;
    }

    .ts-post-content h5 {
        font-size: 16px;
        margin: 20px 0 8px;
    }

    .ts-post-content h6 {
        font-size: 15px;
        margin: 16px 0 8px;
    }
}

/* ========================================
   NASCONDI AUTORE E AVATAR ARTICOLI
   ======================================== */

/* Elementor Posts Widget - Avatar e Autore */
.elementor-post__avatar,
.elementor-post__author,
.elementor-author-box,
.elementor-post-author,
.elementor-avatar {
    display: none !important;
}

/* Archive e Loop - Avatar e Autore */
.post-author,
.author-avatar,
.author-name,
.byline,
.author,
.vcard,
.entry-meta .author,
.post-meta .author {
    display: none !important;
}

/* Gravatar nelle liste articoli */
.elementor-posts-container img[src*="gravatar"],
.elementor-post img[src*="gravatar"],
.archive img[src*="gravatar"],
#notizie img[src*="gravatar"] {
    display: none !important;
}
