/* ==========================================
   RESET & REGOLE BASE
   ========================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --bg-dark: #5A2228;        /* Borgogna ufficiale Connemara */
    --bg-light: #f9f6f0;
    --text-dark: #1a1a1a;
    --text-muted: #666666;
    --accent-gold: #8B3A42;    /* Rosso caldo d'accento */
    --btn-dark: #4A1B20;
    --btn-dark-hover: #6E2A32;
    --font-serif: 'Cormorant Garamond', serif;
    --font-sans: 'Montserrat', sans-serif;
    --font-hand: 'Allura', cursive;
	--section-gap-top: 40px;       /* Spaziatura superiore predefinita */
    --section-gap-bottom: 0px;      /* Spaziatura inferiore predefinita */
    --section-gap-bg: #fdfbf7;      /* Colore sfondo predefinito (avorio sito) */
}

 

@font-face {
    font-family: 'Droidiga';
    src: url('../fonts/Droidiga.eot');
    src: url('../fonts/Droidiga.eot?#iefix') format('embedded-opentype'),
        url('../fonts/Droidiga.woff2') format('woff2'),
        url('../fonts/Droidiga.woff') format('woff'),
        url('../fonts/Droidiga.ttf') format('truetype'),
        url('../fonts/Droidiga.svg#Droidiga') format('svg');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}


@font-face {
    font-family: 'Baron Neue';
    src: local('Baron Neue'), local('BaronNeue'),
         url('../fonts/BaronNeue.woff2') format('woff2'),
         url('../fonts/BaronNeue.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

html, body {
    overflow-x: visible !important;
}



html {
    scroll-behavior: smooth;
}

 

body {
    font-family: var(--font-sans);
    color: var(--text-dark);
    background-color: var(--bg-light);
    line-height: 1.6;
    overflow-x: hidden;  
 
}

a {
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
}

ul {
    list-style: none;
}

/* ==========================================
   TOP BAR ANNONCI (BORGOGNA) - DESKTOP & MOBILE
   ========================================== */
.top-bar {
    background-color: var(--bg-dark);
    color: #ffffff;
    font-size: 11px;
    letter-spacing: 1px;
    padding: 8px 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    position: relative;
    z-index: 10; /* Valore pulito nel flusso */
}

.top-bar .announcement {
    font-weight: 400;
    opacity: 0.9;
}

.top-bar .top-right-group {
    display: flex;
    align-items: center;
    gap: 25px;
}

.top-bar .handwriting-motto {
    font-family: var(--font-hand);
    font-size: 26px;
    text-transform: none;
    color: #f5ebe0;
    letter-spacing: 0;
    font-weight: 400;
}

.top-bar .social-links {
    display: flex;
    gap: 12px;
}

.top-bar .social-links a {
    color: #ffffff;
    font-size: 13px;
    opacity: 0.85;
}

.top-bar .social-links a:hover {
    opacity: 1;
    color: #f5ebe0;
}

.top-bar-motto-img {
    display: flex;
    align-items: center;
    max-width: 240px;
    width: 100%;
}

.top-bar-motto-img img {
    width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 900px) {
    .top-bar-motto-img {
        display: none;
    }
}


/* ==========================================
   VERSIONI MOBILE (Max 768px) - UNIFICATE E PULITE
   ========================================== */
@media (max-width: 768px) {
    /* 1. La barra bordeaux è visibile, nel flusso e ordinata in cima */
    .top-bar {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        flex-direction: column;
        gap: 6px;
        text-align: center;
        padding: 8px 15px;
        width: 100% !important;
        height: auto !important;
        min-height: 40px !important;
        z-index: 5 !important;
        overflow: visible !important;
    }

    .top-bar .announcement {
        font-size: 10px;
        letter-spacing: 0.5px;
        line-height: 1.3;
    }

    .top-bar .handwriting-motto {
        display: none;
    }

    /* 2. La barra bianca del menu all'apertura segue il flusso sotto la bordeaux */
    .main-header {
        position: relative !important;
        width: 100% !important;
        z-index: 100 !important;
    }

    /* 3. Quando scrolli, la barra bianca si ferma in cima sopra alla bordeaux */
    .main-header.is-fixed {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        z-index: 99999 !important;
        box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    }

    /* 4. Aggiustamenti layout hero mobile */
    .hero-content-container {
        padding: 0 20px;
    }
    .hero-card {
        padding: 30px 25px;
        max-width: 100%;
    }
    .hero-card .title {
        font-size: 30px;
    }
}

@media (max-width: 480px) {
    .top-bar .announcement {
        font-size: 9px;
        letter-spacing: 0.3px;
    }
}

/* ==========================================
   HEADER & NAVIGAZIONE DESKTOP
   ========================================== */
.main-header {
    background-color: var(--bg-light);
    position: -webkit-sticky !important; /* Compatibilità Safari/iOS */
    position: sticky !important;
    top: 0 !important;
    width: 100%;
    z-index: 1000;
    box-shadow: 0 2px 10px rgba(0,0,0,0.03);
    border-bottom: 1px solid #eae5dd;
}

.header-container {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 30px;
    height: 90px;
    position: relative;
}

@media (max-width: 768px) {
    /* Assicuriamoci che la barra mantenga lo sticky anche su mobile */
    .main-header {
        position: sticky !important;
        top: 0 !important;
    }

    /* 2. Ancoriamo il contenitore del logo in modo pulito e stabile */
    .site-logo, 
    .header-logo, 
    .fusion-logo,
    .fusion-logo-link,
    header .logo {
        position: relative !important;
        top: 0 !important;
        left: 0 !important;
        transform: none !important;
        margin: 5px auto !important;
        float: none !important;
        max-height: none !important;
    }

    /* 3. Gestiamo l'immagine del logo per farla rimanere perfetta dentro il flusso */
    .site-logo img, 
    .header-logo img, 
    .fusion-logo img,
    .fusion-logo-link img,
    header .logo img {
        position: relative !important;
        top: 0 !important;
        max-width: 70px !important;
        height: auto !important;
        margin: 0 auto !important;
        display: block !important;
    }
}


/* Stato normale dell'header */
.main-header {
    background-color: var(--bg-light);
    width: 100%;
    z-index: 1000;
    box-shadow: 0 2px 10px rgba(0,0,0,0.03);
    border-bottom: 1px solid #eae5dd;
    transition: background-color 0.3s ease;
}

/* Quando l'utente scorre oltre la barra bordeaux, la classe .is-fixed blocca la barra in cima */
.main-header.is-fixed {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}


@media (max-width: 768px) {
    /* 1. Assicuriamoci che il contenitore generale della pagina non nasconda elementi */
    body, html {
        overflow-x: hidden;
    }

    /* 2. Individuamo la barra bordeaux superiore (sostituisci .barra-bordeaux con la classe esatta se la conosci, 
          altrimenti usiamo un selettore generico o il blocco superiore) */
    .top-bar, 
    header + div, 
    .site-header-top,
    .fusion-header-top-bg {
        position: relative;
        z-index: 998; /* Sta sotto la barra del menu che ha z-index 1000 */
    }

    /* 3. La barra bianca del menu mobile deve stare sopra alla barra bordeaux */
    .main-header {
        position: sticky !important;
        top: 0 !important;
        z-index: 1000 !important;
    }
}


/* ==========================================
   FIX DEFINITIVO SOVRAPPOSIZIONE MOBILE (.top-bar)
   ========================================== */
@media (max-width: 768px) {
    /* 1. Diamo alla top-bar uno z-index inferiore e un posizionamento stabile */
    .top-bar {
        position: relative !important;
        z-index: 99 !important;
    }

    /* 2. Assicuriamoci che la barra del menu quando diventa fissa (.is-fixed) stia sempre sopra a tutto */
    .main-header.is-fixed {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        z-index: 99999 !important;
    }
}



/* Logo Circolare in Sovrapposizione */
.logo-wrapper {
    position: absolute;
    left: 30px;
    top: 10px;
    z-index: 1005;
}

.logo-wrapper img {
    width: 130px;
    height: 130px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
    border: 3px solid #ffffff;
    transition: transform 0.3s ease;
}

.logo-wrapper img:hover {
    transform: scale(1.03);
}

/* Navigazione Desktop */
.main-nav {
    margin-left: 160px;
    flex-grow: 1;
    display: flex;
    justify-content: center;
}

.nav-list {
    display: flex;
    gap: 22px;
    align-items: center;
    white-space: nowrap;
}

/* ==========================================
   NAVIGAZIONE DESKTOP (HOVER + STATO ACTIVE)
   ========================================== */
.nav-item {
    position: relative;
    padding: 30px 0;
}

.nav-link {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--text-dark);
    display: inline-flex;
    align-items: center;
    gap: 5px;
    position: relative;
    padding-bottom: 8px;
    transition: color 0.3s ease;
}

/* Linea sotto la voce */
.nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: transparent;
    transition: all 0.3s ease;
}

.nav-link i {
    font-size: 10px;
    transition: transform 0.3s ease;
}

/* Effetto Hover */
.nav-item:hover .nav-link {
    color: var(--accent-gold);
}

.nav-item:hover .nav-link i {
    transform: rotate(180deg);
}

.nav-item:hover .nav-link::after {
    width: 100%;
    background-color: var(--accent-gold);
}

/* ==========================================
   STATO ACTIVE  
   ========================================== */
.nav-item .nav-link.active {
    color: var(--accent-gold);
}

.nav-item .nav-link.active::after {
    width: 100%;
    background-color: var(--accent-gold);
}

/* ==========================================
   NAVIGAZIONE DESKTOP (HOVER + STATO ACTIVE)
   ========================================== */
.nav-item {
    position: relative;
    padding: 30px 0;
}

.nav-link {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--text-dark);
    display: inline-flex;
    align-items: center;
    gap: 5px;
    position: relative;
    padding-bottom: 8px;
    transition: color 0.3s ease;
}

/* Linea sotto la voce */
.nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: transparent;
    transition: all 0.3s ease;
}

.nav-link i {
    font-size: 10px;
    transition: transform 0.3s ease;
}

/* Effetto Hover */
.nav-item:hover .nav-link {
    color: var(--accent-gold);
}

.nav-item:hover .nav-link i {
    transform: rotate(180deg);
}

.nav-item:hover .nav-link::after {
    width: 100%;
    background-color: var(--accent-gold);
}

/* ==========================================
   STATO ACTIVE  
   ========================================== */
.nav-item .nav-link.active {
    color: var(--accent-gold);
}

.nav-item .nav-link.active::after {
    width: 100%;
    background-color: var(--accent-gold);
}


/* Dropdown Sottomenu Desktop */
.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: var(--bg-light);
    min-width: 230px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
    border: 1px solid #eae5dd;
    border-top: 2px solid var(--accent-gold);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.3s ease;
    z-index: 1010;
}

.nav-item:hover .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dropdown-menu li a {
    display: block;
    padding: 12px 20px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--text-dark);
    border-bottom: 1px solid #f2ede4;
}

.dropdown-menu li:last-child a {
    border-bottom: none;
}

.dropdown-menu li a:hover {
    background-color: #f2ede4;
    color: var(--accent-gold);
    padding-left: 25px;
}

/* Icone Destra (Cerca, Carrello, Hamburger) */
.header-actions {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-left: auto;
}

.header-action-btn {
    background: none;
    border: none;
    font-size: 16px;
    color: var(--text-dark);
    cursor: pointer;
    position: relative;
    transition: color 0.3s ease;
}

.header-action-btn:hover {
    color: var(--accent-gold);
}

.cart-badge {
    position: absolute;
    top: -8px;
    right: -10px;
    background-color: var(--text-dark);
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ==========================================
   PULSANTE MENU MOBILE  
   ========================================== */
.mobile-toggle {
    display: none; /* Visibile solo su mobile via media query */
    background-color: rgba(25, 34, 30, 0.65); /* Sfondo scuro semitrasparente iniziale */
    border: none;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease, transform 0.3s ease;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}
 
.menu-grid-icon {
    display: grid;
    grid-template-columns: repeat(2, 5px);
    grid-template-rows: repeat(2, 5px);
    gap: 4px;
}

.menu-grid-icon span {
    width: 5px;
    height: 5px;
    background-color: #ffffff; /* Pallini bianchi */
    border-radius: 50%;
    transition: background-color 0.3s ease;
}
 
.mobile-toggle:hover {
    background-color: rgba(90, 34, 40, 0.85); 
    transform: scale(1.05);
}

.mobile-toggle:hover .menu-grid-icon span {
    background-color: #ffffff;  
}

/* ==========================================
   MENU MOBILE DRAWER
   ========================================== */
 
.mobile-menu-drawer {
    position: fixed;
    top: 0;
    right: -100%;
    width: 340px;
    max-width: 90%;
    height: 100vh;
    background-color: var(--bg-light);
    z-index: 2000;
    padding: 30px 25px 25px 25px;
    box-shadow: -5px 0 25px rgba(0,0,0,0.2);
    transition: right 0.4s cubic-bezier(0.16, 1, 0.3, 1); /* Rallentato e fluidificato */
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.mobile-menu-drawer.open {
    right: 0;
}

.close-mobile-menu {
    background: none;
    border: none;
    font-size: 22px;
    color: var(--text-dark);
    cursor: pointer;
    position: absolute;
    top: 20px;
    right: 20px;
    transition: color 0.3s ease;
    z-index: 10;
}

.close-mobile-menu:hover {
    color: var(--accent-gold);
}

/* Logo Centrato in Alto nel Menu */
.mobile-drawer-logo {
    display: flex;
    justify-content: center;
    margin-top: 15px;
    margin-bottom: 25px;
}

.mobile-drawer-logo img {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #eae5dd;
    box-shadow: 0 4px 10px rgba(0,0,0,0.08);
}

/* Lista Navigazione Mobile */
.mobile-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
    flex-grow: 1;
}

.mobile-nav-item {
    margin-bottom: 14px;
    border-bottom: 1px solid #eae5dd;
    padding-bottom: 10px;
}

.mobile-nav-link {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--text-dark);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.mobile-nav-link:hover {
    color: var(--accent-gold);
}

.mobile-submenu {
    display: none;
    padding-left: 15px;
    margin-top: 10px;
    list-style: none;
}

.mobile-submenu li {
    margin-bottom: 8px;
}

.mobile-submenu a {
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-muted);
}

.mobile-submenu a:hover {
    color: var(--accent-gold);
}
 
.mobile-drawer-footer {
    margin-top: 80px;
    padding-top: 20px;
    border-top: 1px solid #eae5dd;
    text-align: center;
}

.mobile-drawer-socials {
    display: flex;
    justify-content: center;
    gap: 18px;
    margin-bottom: 15px;
}

.mobile-drawer-socials a {
    color: #1a1a1a;
    font-size: 16px;
    transition: color 0.3s ease;
}

.mobile-drawer-socials a:hover {
    color: var(--accent-gold);
}

.mobile-drawer-copyright {
    font-size: 11px;
    font-weight: 600;
    color: #1a1a1a;  
    letter-spacing: 0.5px;
}







/* ==========================================
   HERO SLIDER
   ========================================== */
.hero-section {
    position: relative;
    width: 100%;
    height: calc(100vh - 120px);
    min-height: 580px;
    overflow: hidden;
    background-color: var(--bg-dark);
}

.hero-slider {
    width: 100%;
    height: 100%;
    position: relative;
}

.slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity 1.2s ease-in-out, visibility 1.2s ease-in-out;
    z-index: 1;
}

.slide.active {
    opacity: 1;
    visibility: visible;
    z-index: 2;
}

.slide-bg {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    transform: scale(1);
    transition: transform 6s ease-out;
}

.slide.active .slide-bg {
    transform: scale(1.12);
}

.slide-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.1) 100%);
}

.hero-content-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
    max-width: 1400px;
    margin: 0 auto;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    padding: 0 50px;
    pointer-events: none;
}

.hero-card {
    background-color: rgba(90, 34, 40, 0.75);
    backdrop-filter: blur(8px);
    padding: 45px 50px;
    max-width: 520px;
    color: #ffffff;
    border-left: 3px solid var(--accent-gold);
    pointer-events: auto;
    opacity: 0;
    transform: translateY(15px);
    transition: all 1s ease-out 0.3s;
}

.slide.active .hero-card {
    opacity: 1;
    transform: translateY(0);
}

.hero-card .subtitle {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #f5ebe0;
    margin-bottom: 12px;
    display: block;
}

.hero-card .title {
    font-family: var(--font-serif);
    font-size: 52px;
    line-height: 1.1;
    font-weight: 400;
    margin-bottom: 20px;
}

.hero-card .description {
    font-size: 13px;
    line-height: 1.7;
    color: #e0e0e0;
    margin-bottom: 30px;
    font-weight: 300;
}

.btn-primary {
    display: inline-block !important;
    width: auto !important;
    max-width: 100%;
    align-items: center;
    gap: 12px;
    background-color: var(--btn-dark);
    color: #ffffff;
    padding: 14px 28px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    border: 1px solid rgba(255,255,255,0.2);
    transition: all 0.3s ease;
}

.decor-studio-text-inner .btn-primary,
.progetti-hero-content .btn-primary,
.btn-close-modal {
    display: inline-block !important;
    width: auto !important;
}

.btn-primary:hover {
    background-color: var(--accent-gold);
    color: #ffffff;
    border-color: var(--accent-gold);
}


.btn-primary, 
.btn-cta-gold {
    position: relative;
    overflow: hidden;
}

.btn-primary i, .btn-primary span.arrow,
.btn-cta-gold i, .btn-cta-gold span.arrow {
    display: inline-block;
    transition: transform 0.3s ease;
}

.btn-primary:hover i, .btn-primary:hover span.arrow,
.btn-cta-gold:hover i, .btn-cta-gold:hover span.arrow {
    transform: translateX(6px);  
}

 
.btn-primary {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    max-width: max-content !important;
    flex: 0 0 auto !important;
    gap: 12px;
    background-color: var(--btn-dark);
    color: #ffffff;
    padding: 14px 28px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    border: 1px solid rgba(255,255,255,0.2);
    transition: all 0.3s ease;
}

.btn-primary:hover {
    background-color: var(--accent-gold);
    color: #ffffff;
    border-color: var(--accent-gold);
}

.btn-primary i, .btn-primary span.arrow {
    display: inline-block;
    transition: transform 0.3s ease;
}

.btn-primary:hover i, .btn-primary:hover span.arrow {
    transform: translateX(6px);
}

 
.hero-handwriting-img {
    position: absolute;
    top: 90px;
    right: 120px;
    z-index: 5;
    max-width: 260px;
    width: 20vw;
    pointer-events: none;
    filter: drop-shadow(0px 2px 6px rgba(0, 0, 0, 0.4));
}

.hero-handwriting-img img {
    width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 1100px) {
    .hero-handwriting-img {
        top: 60px;
        right: 80px;
        max-width: 200px;
        width: 25vw;
    }
}

@media (max-width: 768px) {
    .hero-handwriting-img {
        display: none;
    }
}

.slider-controls {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 12px;
}

.dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: rgba(255,255,255,0.4);
    cursor: pointer;
    transition: all 0.3s ease;
}

.dot.active {
    background-color: #ffffff;
    transform: scale(1.3);
}

/* ==========================================
   SCROLL TO TOP BUTTON
   ========================================== */
.scroll-top-btn {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 45px;
    height: 45px;
    background-color: var(--bg-dark);
    color: #ffffff;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 999;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.scroll-top-btn.show {
    opacity: 1;
    visibility: visible;
}

.scroll-top-btn:hover {
    background-color: var(--accent-gold);
    color: #ffffff;
    transform: translateY(-3px);
}

 
@media (max-width: 1300px) {
    .main-nav {
        margin-left: 140px;
    }
    .nav-list {
        gap: 14px;
    }
    .nav-link {
        font-size: 11px;
        letter-spacing: 0.8px;
    }
}

@media (max-width: 1100px) {
    .main-nav {
        display: none;
    }
    .mobile-toggle {
        display: flex;
    }
    .mobile-menu-drawer {
        display: block;
    }
    .header-container {
        height: 75px;
        padding: 0 20px;
        justify-content: flex-end;
    }
    .logo-wrapper {
        left: 20px;
        top: 8px;
    }
    .logo-wrapper img {
        width: 85px;
        height: 85px;
    }
    .hero-card .title {
        font-size: 38px;
    }
}

 

/* ==========================================
   HERO VIDEO SECTION
   ========================================== */
.hero-video-section {
    position: relative;
    width: 100%;
    height: calc(100vh - 120px);
    min-height: 580px;
    overflow: hidden;
    background-color: var(--bg-dark);
}

.hero-video-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(-50%, -50%);
    z-index: 1;
}

.hero-video-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, rgba(90,34,40,0.65) 0%, rgba(0,0,0,0.3) 80%, rgba(0,0,0,0.05) 100%);
    z-index: 2;
}

.hero-video-container {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 100%;
    max-width: 1400px;
    padding: 0 50px;
    display: flex;
    align-items: center;
    z-index: 4;
}

.hero-text-clean {
    max-width: 520px;
    color: #ffffff;
    text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

.hero-text-clean .subtitle {
    font-size: 11px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: #f5ebe0;
    margin-bottom: 12px;
    display: block;
    font-weight: 600;
}

.hero-text-clean .title {
    font-family: var(--font-serif);
    font-size: 56px;
    line-height: 1.1;
    font-weight: 400;
    margin-bottom: 22px;
    color: #ffffff;
}

.hero-text-clean .description {
    font-size: 13px;
    line-height: 1.7;
    color: #e0e0e0;
    margin-bottom: 32px;
    font-weight: 300;
}

@media (max-width: 1100px) {
    .hero-text-clean .title {
        font-size: 42px;
    }
}

@media (max-width: 768px) {
    .hero-video-container {
        padding: 0 25px;
    }
    .hero-text-clean .title {
        font-size: 34px;
    }
    .hero-text-clean .description {
        font-size: 12px;
    }
}
 
.categories-section {
    padding: 60px 30px;
    background-color: var(--bg-light);
    border-bottom: 1px solid #eae5dd;
}

.categories-container {
    max-width: 1400px;
    margin: 0 auto;
}

.categories-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px;
}

.category-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: var(--text-dark);
}

.category-img-wrapper {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    position: relative;
    margin-bottom: 18px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.category-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.category-card:hover .category-img-wrapper img {
    transform: scale(1.08);
}

.category-title {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--text-dark);
    text-align: center;
    line-height: 1.35;
    margin-bottom: 10px;
    transition: color 0.3s ease;
    min-height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.category-card:hover .category-title {
    color: var(--accent-gold);
}

.category-line {
    width: 25px;
    height: 1px;
    background-color: #c8c0b5;
    transition: all 0.3s ease;
}

.category-card:hover .category-line {
    width: 45px;
    background-color: var(--accent-gold);
}

@media (max-width: 1200px) {
    .categories-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 25px;
    }
}

@media (max-width: 640px) {
    .categories-section {
        padding: 40px 15px;
    }
    .categories-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
    .category-title {
        font-size: 10px;
        letter-spacing: 1px;
    }
}
 
.about-section {
    background-color: #ffffff;
    padding: 0;
    width: 100%;
}

.about-container {
    display: grid;
    grid-template-columns: 1fr 1.1fr 1fr;
    width: 100%;
    align-items: stretch;
}

.about-img-box {
    width: 100%;
    height: 100%;
    min-height: 420px;
    overflow: hidden;
}

.about-img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
}

.about-img-box:hover img {
    transform: scale(1.04);
}

.about-text-card {
    background-color: #f6f3ee;
    padding: 60px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: left;
}

.about-subtitle {
    font-size: 11px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--accent-gold);
    font-weight: 600;
    margin-bottom: 15px;
}

.about-title {
    font-family: var(--font-serif);
    font-size: 46px;
    line-height: 1.15;
    font-weight: 400;
    color: var(--text-dark);
    margin-bottom: 22px;
}

.about-description {
    font-size: 13px;
    line-height: 1.75;
    color: var(--text-muted);
    font-weight: 400;
    margin-bottom: 30px;
}
 
.showroom-section {
    background-color: #fdfbf7;
    padding: 70px 30px;
    border-top: 1px solid #eae5dd;
}

.showroom-container {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.3fr 1.1fr 0.8fr;
    gap: 35px;
    align-items: center;
}

.showroom-img-large {
    width: 100%;
    height: 100%;
    min-height: 440px;
    overflow: hidden;
}

.showroom-img-large img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
}

.showroom-img-large:hover img {
    transform: scale(1.03);
}

.showroom-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 10px 0;
}

.showroom-subtitle {
    font-size: 11px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--accent-gold);
    font-weight: 600;
    margin-bottom: 12px;
}

.showroom-title {
    font-family: var(--font-serif);
    font-size: 44px;
    line-height: 1.15;
    font-weight: 400;
    color: var(--text-dark);
    margin-bottom: 20px;
}

.showroom-description {
    font-size: 13px;
    line-height: 1.75;
    color: var(--text-muted);
    font-weight: 400;
    margin-bottom: 28px;
}

.showroom-address {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 25px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-dark);
}

.showroom-address i {
    font-size: 16px;
    color: var(--text-dark);
}

.showroom-img-stack {
    display: flex;
    flex-direction: column;
    gap: 20px;
    height: 100%;
}

.showroom-img-small {
    width: 100%;
    height: 210px;
    overflow: hidden;
}

.showroom-img-small img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
}

.showroom-img-small:hover img {
    transform: scale(1.04);
}

@media (max-width: 1100px) {
    .showroom-container {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .showroom-img-large {
        min-height: 320px;
        max-height: 420px;
    }
    .showroom-img-stack {
        flex-direction: row;
    }
    .showroom-img-small {
        height: 220px;
    }
}

@media (max-width: 600px) {
    .showroom-title {
        font-size: 32px;
    }
    .showroom-img-stack {
        flex-direction: column;
    }
    .showroom-img-small {
        height: 180px;
    }
} 


.partners-section {
    position: relative;
    background-image: url('../img/background-partner.jpg');  
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 70px 30px 80px 30px;
    border-top: 1px solid #eae5dd;
    border-bottom: 1px solid #eae5dd;
    overflow: hidden;
}


.partners-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(253, 251, 247, 0.88);
    z-index: 1;
}

.partners-container {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    z-index: 2;
}

.partners-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 55px;
    color: var(--bg-dark, #5A2228);
}

.partners-header span i {
    font-size: 11px;
    opacity: 0.6;
}

.partners-title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--text-dark, #2b2b2b);
}


.partners-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 45px 50px;
    align-items: center;
    justify-items: center;
}


.partner-item {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    height: 65px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.partner-item img {
    max-width: 100%;
    max-height: 50px;
    object-fit: contain;
    opacity: 0.85;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.partner-item:hover img {
    opacity: 1;
    transform: scale(1.03);
}


.partners-grid .partner-item:nth-last-child(3) {
    grid-column: 1 / span 2;
    justify-self: end;
    padding-right: 25px;
}

.partners-grid .partner-item:nth-last-child(2) {
    grid-column: 3 / span 2;
    justify-self: start;
    padding-left: 25px;
}

.partners-grid .partner-item:last-child {
    grid-column: 2 / span 2;
    justify-self: center;
    margin-top: 10px; 
	
}


@media (max-width: 992px) {
    .partners-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 30px;
    }
    .partners-grid .partner-item:nth-last-child(3),
    .partners-grid .partner-item:nth-last-child(2),
    .partners-grid .partner-item:last-child {
        grid-column: auto;
        justify-self: center;
        padding-right: 0;
        padding-left: 0;
        margin-top: 0;
    }
}

@media (max-width: 576px) {
    .partners-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }
}
.header-line-left,
.header-line-right {
    display: flex;
    align-items: center;
    position: relative;
    width: 120px;
    height: 1px;
    background-color: #c0bba3;
}

.header-line-left i,
.header-line-right i {
    font-size: 12px;
    color: var(--text-dark);
    position: absolute;
}

.header-line-left i {
    right: -2px;
}

.header-line-right i {
    left: -2px;
}

.partners-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 40px 65px;
}

.partner-item {
    flex: 0 1 calc(25% - 65px);
    min-width: 160px;
    max-width: 220px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px;
}

.partner-item img {
    max-width: 100%;
    max-height: 60px;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.75;
    transition: all 0.3s ease;
}

.partner-item:hover img {
    filter: grayscale(0%);
    opacity: 1;
    transform: scale(1.05);
}

@media (max-width: 1024px) {
    .about-container {
        grid-template-columns: 1fr;
    }
    .about-img-box {
        min-height: 320px;
        max-height: 400px;
    }
    .about-text-card {
        padding: 50px 30px;
    }
    .about-title {
        font-size: 36px;
    }
    .partners-grid {
        gap: 30px 40px;
    }
    .partner-item {
        flex: 0 1 calc(33.33% - 40px);
    }
}

@media (max-width: 600px) {
    .header-line-left,
    .header-line-right {
        width: 50px;
    }
    .partners-grid {
        gap: 25px 20px;
    }
    .partner-item {
        flex: 0 1 calc(50% - 20px);
    }
}



.environments-section {
    background-color: #ffffff;
    padding: 70px 30px;
}

.environments-container {
    max-width: 1400px;
    margin: 0 auto;
}

.environments-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 35px;
}

.environments-title {
    font-family: var(--font-serif);
    font-size: 38px;
    font-weight: 400;
    color: var(--text-dark);
}


.gallery-link {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--text-dark);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    position: relative;
    padding-bottom: 4px; 
    transition: color 0.3s ease;
}

/* Sottolienatura animata */
.gallery-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: var(--accent-gold);
    transition: width 0.3s ease;
}



.gallery-link i,
.gallery-link span.arrow {
    display: inline-block;
    transition: transform 0.3s ease;
}

/* Effetto Hover */
.gallery-link:hover {
    color: var(--accent-gold);
}

.gallery-link:hover::after {
    width: 100%; 
}

.gallery-link:hover i,
.gallery-link:hover span.arrow {
    transform: translateX(6px); 
}

.environments-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 15px;
}

.environment-item {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background-color: #eae5dd;
}

.environment-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.environment-item:hover img {
    transform: scale(1.08);
}


.cta-banner-section {
    width: 100%;
    background-color: var(--bg-dark);
    overflow: hidden;
}

.cta-banner-container {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    min-height: 280px;
    width: 100%;
}

.cta-banner-image {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    min-height: 260px;
}

.cta-banner-content {
    background-color: #4A1B20;
    padding: 50px 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    color: #ffffff;
}

.cta-banner-title {
    font-family: var(--font-serif);
    font-size: 38px;
    font-weight: 400;
    line-height: 1.2;
    margin-bottom: 15px;
    color: #ffffff;
}

.cta-banner-text {
    font-size: 13px;
    line-height: 1.6;
    color: #f5ebe0;
    margin-bottom: 25px;
    font-weight: 300;
}

.btn-cta-gold {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background-color: #f5ebe0;
    color: var(--bg-dark);
    padding: 13px 28px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    transition: all 0.3s ease;
}

.btn-cta-gold:hover {
    background-color: #ffffff;
    color: var(--bg-dark);
    transform: translateY(-2px);
}

@media (max-width: 1024px) {
    .cta-banner-container {
        grid-template-columns: 1fr;
    }
    .cta-banner-image {
        min-height: 220px;
    }
    .cta-banner-content {
        padding: 40px 30px;
    }
    .cta-banner-title {
        font-size: 32px;
    }
}

@media (max-width: 600px) {
    .cta-banner-title {
        font-size: 26px;
    }
    .cta-banner-text {
        font-size: 12px;
    }
}



.site-footer {
    background-color: var(--bg-dark);
    color: #ffffff;
    padding-top: 60px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    width: 100%;
}

.footer-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 30px 50px 30px;
    display: grid;
    grid-template-columns: 1.6fr 0.9fr 1.1fr 1.5fr 1fr;
    gap: 20px;
    align-items: center;
}

.footer-col {
    padding-right: 15px;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    height: 100%;
    text-align: left;
}

.footer-col:last-child {
    border-right: none;
    padding-right: 0;
}

.footer-col-brand {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    text-align: left !important;
    width: 100%;
}

.footer-logo-wrapper {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 15px;
    width: 100%;
    margin: 0 !important;
}

.footer-logo-wrapper img.footer-brand-logo,
.footer-logo-wrapper > img:first-child {
    width: 120px !important;
    height: 120px !important;
    border-radius: 50% !important;
    object-fit: cover;
    border: 2px solid rgba(255, 255, 255, 0.8) !important;
    flex-shrink: 0;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.footer-handwriting-img {
    max-width: 160px;
    width: 100%;
    flex-grow: 1;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
}

.footer-handwriting-img img {
    width: 100%;
    height: auto;
    display: block;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
}

.footer-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    margin-bottom: 20px;
    color: #ffffff;
}


.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 10px;
}

.footer-links a {
    font-size: 12px;
    color: #e2d2c8;
    text-decoration: none;
    display: inline-block; 
    position: relative;
    padding-left: 0;
    transition: transform 0.3s ease, color 0.3s ease, padding-left 0.3s ease;
}


.footer-links a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%) scaleY(0); 
    width: 3px;    
    height: 12px;  
    background-color: #f5ebe0;
    transition: transform 0.3s ease;
}


.footer-links a:hover {
    color: #ffffff;
    transform: translateX(8px); 
    padding-left: 12px;         
}


.footer-links a:hover::before {
    transform: translateY(-50%) scaleY(1); 
}

.contact-info-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.contact-info-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 11.5px;
    color: #e2d2c8;
    margin-bottom: 10px;
    line-height: 1.4;
}

.contact-info-list i {
    font-size: 13px;
    color: #f5ebe0;
    margin-top: 2px;
    flex-shrink: 0;
}

.contact-info-list strong {
    color: #ffffff;
    font-weight: 600;
}

.contact-info-list a {
    color: #e2d2c8;
    text-decoration: none;
    transition: color 0.3s ease;
}

.contact-info-list a:hover {
    color: #ffffff;
}

.footer-socials {
    display: flex;
    gap: 16px;
    margin-bottom: 22px;
}

.footer-socials a {
    color: #ffffff;
    font-size: 15px;
    opacity: 0.85;
    transition: all 0.3s ease;
}

.footer-socials a:hover {
    color: #f5ebe0;
    opacity: 1;
    transform: translateY(-2px);
}

.btn-consultation {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    background-color: #f5ebe0;
    color: var(--bg-dark);
    padding: 12px 18px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    text-decoration: none;
    width: 100%;
    transition: all 0.3s ease;
}

.btn-consultation:hover {
    background-color: #ffffff;
    color: var(--bg-dark);
}

.footer-bottom {
    background-color: #43191E;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    padding: 18px 30px;
    font-size: 11px;
    color: #d1b8b0;
}

.footer-bottom-container {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.legal-links {
    display: flex;
    gap: 10px;
    align-items: center;
}

.legal-links a {
    color: #d1b8b0;
    text-decoration: none;
    transition: color 0.3s ease;
}

.legal-links a:hover {
    color: #ffffff;
}

.legal-links .sep {
    color: #6e2a32;
}

@media (max-width: 1100px) {
    .footer-container {
        grid-template-columns: repeat(2, 1fr);
        gap: 35px;
    }
    .footer-col {
        border-right: none;
        padding-right: 0;
        text-align: left !important;
    }
    .footer-col-brand {
        grid-column: span 2;
        justify-content: flex-start !important;
        text-align: left !important;
    }
    .footer-handwriting-img {
        display: none !important;
    }
    .footer-logo-wrapper {
        justify-content: flex-start !important;
    }
}

@media (max-width: 768px) {
    .footer-container {
        grid-template-columns: 1fr;
        gap: 25px;
    }
    .footer-col-brand {
        grid-column: span 1;
        justify-content: flex-start !important;
        text-align: left !important;
    }
    .footer-logo-wrapper {
        justify-content: flex-start !important;
    }
    .footer-bottom-container {
        flex-direction: column;
        gap: 10px;
        align-items: flex-start !important;
        text-align: left !important;
    }
}




 
.about-hero-section {
    position: relative;
    width: 100%;
    height: calc(100vh - 120px);
    min-height: 580px;
    background-size: cover;
    background-position: center;
    overflow: hidden;
}

.about-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.05) 100%);
    z-index: 1;
}

.about-hero-container {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 100%;
    max-width: 1400px;
    padding: 0 50px;
    display: flex;
    align-items: center;
    z-index: 3;
}


.about-hero-clean-text {
    max-width: 550px;
    color: #ffffff;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
}

.about-hero-clean-text .subtitle {
    font-size: 11px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: #f5ebe0;
    margin-bottom: 15px;
    display: block;
    font-weight: 600;
}

.about-hero-clean-text .title {
    font-family: var(--font-serif);
    font-size: 60px; 
    line-height: 1.08;
    font-weight: 400;
    margin-bottom: 22px;
    color: #ffffff;
}

.about-hero-clean-text .description {
    font-size: 14px;
    line-height: 1.65;
    color: #e0e0e0;
    margin-bottom: 32px;
    font-weight: 300;
    max-width: 480px;
}



@media (max-width: 1100px) {
    .about-hero-clean-text .title {
        font-size: 46px;
    }
}

@media (max-width: 768px) {
    .about-hero-container {
        padding: 0 25px;
    }
    .about-hero-clean-text .title {
        font-size: 36px;
    }
    .about-hero-clean-text .description {
        font-size: 12.5px;
    }
}



/* Blocchi Contenuto Generici */
.about-block-section {
    padding: 80px 30px;
    background-color: #ffffff;
}

.bg-light-cream {
    background-color: #f9f6f0 !important;
}


.about-split-container {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1.1fr 1fr;
    gap: 35px;
    align-items: center;
}

.about-split-img {
    width: 100%;
    height: 380px;
    overflow: hidden;
}

.about-split-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.about-split-img:hover img {
    transform: scale(1.04);
}

.about-split-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 10px 0;
}


.about-dual-container {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

.about-dual-container.reverse {
    grid-template-columns: 1fr 1fr;
}

.about-dual-img {
    width: 100%;
    height: 420px;
    overflow: hidden;
}

.about-dual-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.about-dual-img:hover img {
    transform: scale(1.04);
}

.about-kicker {
    font-size: 11px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--accent-gold);
    font-weight: 600;
    margin-bottom: 12px;
    display: block;
}

.about-block-title {
    font-family: var(--font-serif);
    font-size: 42px;
    line-height: 1.15;
    font-weight: 400;
    color: var(--text-dark);
    margin-bottom: 22px;
}

.about-block-text {
    font-size: 13px;
    line-height: 1.8;
    color: var(--text-muted);
    margin-bottom: 20px;
}



.quote-parallax-section {
    position: relative;
    width: 100%;
    padding: 110px 30px;
    background-attachment: fixed;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    text-align: center;
    overflow: hidden;
}

.quote-parallax-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1;
}

.quote-parallax-container {
    position: relative;
    max-width: 900px;
    margin: 0 auto;
    z-index: 2;
    color: #ffffff;
}

.quote-parallax-title {
    font-family: var(--font-serif);
    font-size: 48px;
    line-height: 1.15;
    font-weight: 400;
    margin-bottom: 22px;
    color: #ffffff;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
}

.quote-parallax-text {
    font-size: 13.5px;
    line-height: 1.75;
    color: #f5ebe0;
    font-weight: 300;
    text-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
}


@media (max-width: 992px) {
    .quote-parallax-section {
        padding: 80px 20px;
        background-attachment: scroll; 
    }
    
    .quote-parallax-title {
        font-size: 36px;
    }
    
    .quote-parallax-text {
        font-size: 12.5px;
    }
}

.quote-container {
    max-width: 900px;
    margin: 0 auto;
}

.quote-title {
    font-family: var(--font-serif);
    font-size: 38px;
    font-weight: 400;
    margin-bottom: 18px;
    color: #ffffff;
}

.quote-subtitle {
    font-size: 13px;
    line-height: 1.7;
    color: #f5ebe0;
    font-weight: 300;
}

/* Sezione Parallax CTA */
.parallax-cta-section {
    position: relative;
    width: 100%;
    padding: 110px 30px;
    background-attachment: fixed;
    background-size: cover;
    background-position: center;
    text-align: center;
    overflow: hidden;
}

.parallax-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.55);
    z-index: 1;
}

.parallax-container {
    position: relative;
    max-width: 950px;
    margin: 0 auto;
    z-index: 2;
}

.parallax-title {
    font-family: var(--font-serif);
    font-size: 36px;
    line-height: 1.35;
    font-weight: 400;
    color: #ffffff;
    margin-bottom: 35px;
    text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}


@media (max-width: 1100px) {
    .about-split-container {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .about-split-img {
        height: 300px;
    }
    
    .about-dual-container,
    .about-dual-container.reverse {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .about-dual-img {
        height: 320px;
    }

    .about-hero-card .title {
        font-size: 38px;
    }

    .parallax-title {
        font-size: 28px;
    }
}

@media (max-width: 768px) {
    .about-hero-container {
        padding: 0 20px;
    }

    .about-hero-card {
        padding: 30px 25px;
    }

    .about-block-title {
        font-size: 30px;
    }

    .quote-title {
        font-size: 28px;
    }

    .parallax-cta-section {
        padding: 80px 20px;
        background-attachment: scroll; 
    }
}


.about-fullwidth-section {
    width: 100%;
    padding: 0;
    overflow: hidden;
}

.about-fullwidth-container {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch; 
}


.about-fullwidth-text {
    padding: 80px 70px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}



.about-title-divider {
    width: 35px;
    height: 2px;
    background-color: var(--accent-gold); /
    margin-top: 15px;
    margin-bottom: 25px;
}


.about-fullwidth-img {
    width: 100%;
    height: 100%;
    min-height: 500px;
}

.about-fullwidth-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


@media (max-width: 1100px) {
    .about-fullwidth-container {
        grid-template-columns: 1fr;
    }
    
    .about-fullwidth-text {
        padding: 50px 30px;
    }

    .about-fullwidth-img {
        min-height: 380px;
        height: 380px;
    }
}



.about-interlocutore-section {
    width: 100%;
    padding: 0;
    background-color: #ffffff;
    overflow: hidden;
}

.about-interlocutore-container {
    width: 100%;
    display: grid;
    grid-template-columns: 1.1fr 1fr 1.1fr;
    align-items: stretch;
}

.about-interlocutore-img {
    width: 100%;
    height: 100%;
    min-height: 480px;
    overflow: hidden;
}

.about-interlocutore-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
}

.about-interlocutore-img:hover img {
    transform: scale(1.03);
}

.about-interlocutore-content {
    padding: 60px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    background-color: #fdfbf7;
}


@media (max-width: 1200px) {
    .about-interlocutore-container {
        grid-template-columns: 1fr 1.2fr 1fr;
    }
    .about-interlocutore-content {
        padding: 40px 30px;
    }
}

@media (max-width: 992px) {
    .about-interlocutore-container {
        grid-template-columns: 1fr;
    }
    .about-interlocutore-img {
        min-height: 320px;
        height: 350px;
    }
}



.about-fullwidth-container.reverse-layout {
    grid-template-columns: 1fr 1fr;
}

@media (max-width: 1100px) {
    .about-fullwidth-container.reverse-layout {
        grid-template-columns: 1fr;
    }
}

 
.about-fullwidth-section + .about-fullwidth-section,
.about-interlocutore-section + .about-fullwidth-section,
.about-fullwidth-section + .quote-parallax-section,
.quote-parallax-section + .about-fullwidth-section {
    margin-top: 25px;
    background-color: var(--bg-light); /* Avorio coerente con il sito */
}


.preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: #000000;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    transition: opacity 0.5s ease 0.8s, visibility 0.5s ease 0.8s;
}

.preloader.loaded {
    opacity: 0;
    visibility: hidden;
}

.preloader-content {
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition: opacity 0.4s ease;
}

.preloader.loaded .preloader-content {
    opacity: 0;
}

.site-name-animated {
    display: flex;
    gap: 8px;
    margin-bottom: 25px;
}

.site-name-animated span {
    font-family: 'Baron Neue', 'Montserrat', sans-serif;
    color: #ffffff;
    font-size: 38px;
    letter-spacing: 4px;
    font-weight: 700;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(20px) scale(0.9);
    transition: opacity 0.35s ease, transform 0.35s ease;
}


.site-name-animated {
    display: flex;
    gap: 8px;
    margin-bottom: 25px; 
}

.site-name-animated span {
    font-family: 'Baron Neue', 'Montserrat', sans-serif;
    color: #ffffff;
    font-size: 38px;
    letter-spacing: 4px;
    font-weight: 700;
    text-transform: uppercase;
    opacity: 0;
    transform: scale(0.85); 
    transition: opacity 0.5s ease, transform 0.5s ease;
}



.site-name-animated span.visible {
    opacity: 1;
    transform: scale(1);
}


@media (max-width: 768px) {
    .site-name-animated span {
        font-size: 26px;
        gap: 4px;
    }
}

.preloader-progress-wrapper {
    width: 220px;
    height: 2px;
    background-color: rgba(255, 255, 255, 0.15);
    border-radius: 2px;
    overflow: hidden;
    margin-bottom: 12px;
}

.progress-bar-fill {
    width: 0%;
    height: 100%;
    background-color: var(--accent-gold, #8B3A42);
    transition: width 0.1s linear;
}

.preloader-counter {
    font-family: 'Montserrat', sans-serif;
    color: rgba(255, 255, 255, 0.7);
    font-size: 12px;
    letter-spacing: 2px;
    font-weight: 500;
}

.preloader-gutters {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    z-index: 5;
}

.preloader-gutters .bar {
    flex: 1;
    height: 100%;
    background-color: #333333;
    transform: scaleY(1);
    transform-origin: top;
    transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1);
}

.preloader.loaded .preloader-gutters .bar {
    transform: scaleY(0);
}


.preloader-gutters .bar:nth-child(1) { transition-delay: 0.10s; }
.preloader-gutters .bar:nth-child(2) { transition-delay: 0.15s; }
.preloader-gutters .bar:nth-child(3) { transition-delay: 0.20s; }
.preloader-gutters .bar:nth-child(4) { transition-delay: 0.25s; }
.preloader-gutters .bar:nth-child(5) { transition-delay: 0.30s; }
.preloader-gutters .bar:nth-child(6) { transition-delay: 0.35s; }
.preloader-gutters .bar:nth-child(7) { transition-delay: 0.40s; }
.preloader-gutters .bar:nth-child(8) { transition-delay: 0.45s; }


@media (max-width: 768px) {
    .site-name-animated span {
        font-size: 26px;
        gap: 4px;
    }
    .preloader-progress-wrapper {
        width: 160px;
    }
}


.about-interlocutore-img,
.about-fullwidth-img {
    overflow: hidden;
}

.about-interlocutore-img img,
.about-fullwidth-img img {
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.about-interlocutore-img:hover img,
.about-fullwidth-img:hover img {
    transform: scale(1.05); 
	
}

.social-links a {
    color: var(--bg-dark, #5A2228);
    display: inline-block;
    padding: 6px 8px;
    font-size: 15px;
    border-radius: 50%;
    transition: all 0.35s cubic-bezier(0.25, 1, 0.5, 1);
}

.social-links a:hover {
    color: #ffffff !important;
    background-color: var(--accent-gold, #8B3A42);
    transform: translateY(-3px) scale(1.08);
    box-shadow: 0 4px 10px rgba(90, 34, 40, 0.2);
}


.decor-hero-section {
    position: relative;
    width: 100%;
    min-height: 80vh;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    padding: 100px 0 80px 0;
}

.decor-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.15) 100%);
    z-index: 1;
}

.decor-hero-container {
    position: relative;
    z-index: 2;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 25px;
    width: 100%;
}

.decor-hero-text {
    max-width: 620px;
    color: #ffffff;
}

.decor-hero-kicker {
    display: block;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 12px;
    font-weight: 500;
}

.decor-hero-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 64px;
    font-weight: 400;
    line-height: 1.05;
    color: #ffffff;
    margin-bottom: 15px;
}

.decor-hero-subtitle {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--accent-gold, #8B3A42);
    margin-bottom: 20px;
}

.decor-hero-description {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 35px;
}

@media (max-width: 768px) {
    .decor-hero-section {
        min-height: 70vh;
        padding: 60px 0;
    }
    .decor-hero-title {
        font-size: 42px;
    }
    .decor-hero-subtitle {
        font-size: 12px;
    }
}


.decor-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 25px;
    width: 100%;
}

.relative-z {
    position: relative;
    z-index: 2;
}

.decor-kicker {
    display: block;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--accent-gold, #8B3A42);
    margin-bottom: 10px;
}

.decor-section-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 48px;
    font-weight: 400;
    color: var(--bg-dark, #5A2228);
    line-height: 1.1;
    margin-bottom: 20px;
}

.decor-paragraph {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    line-height: 1.75;
    color: #4a4a4a;
    margin-bottom: 30px;
}

.btn-secondary-burgundy {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    padding: 14px 28px;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 2px;
    transition: all 0.35s ease;
}

.btn-secondary-burgundy:hover {
    background-color: var(--accent-gold, #8B3A42);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(90, 34, 40, 0.25);
}


.decor-dual-cards-section {
    width: 100%;
    background-color: #ffffff;
}

.decor-dual-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
}
.decor-card {
    position: relative;
    min-height: 480px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-end;
    padding: 60px 50px;
    overflow: hidden;
}


.decor-card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.4) 60%, rgba(0,0,0,0.2) 100%);
    z-index: 1;
}


.decor-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, rgba(90, 34, 40, 0.88) 0%, rgba(0,0,0,0.5) 100%);
    opacity: 0;
    z-index: 2;
    transition: opacity 0.5s cubic-bezier(0.25, 1, 0.5, 1);
    pointer-events: none;
}


.decor-card:hover::after {
    opacity: 1;
}

.decor-card-content {
    position: relative;
    z-index: 3;
    color: #ffffff;
    max-width: 520px;
}

.btn-card-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background-color: var(--accent-gold, #8B3A42);
    color: #ffffff;
    padding: 12px 24px;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 2px;
    transition: all 0.3s ease;
}

.btn-card-cta:hover {
    background-color: #ffffff;
    color: var(--bg-dark, #5A2228);
}


.decor-projects-section {
    padding: 100px 0;
    background-color: var(--bg-light, #fdfbf7);
}

.decor-text-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 60px;
    align-items: center;
    margin-bottom: 60px;
}

.decor-quote-box {
    border-left: 3px solid var(--accent-gold, #8B3A42);
    padding-left: 30px;
    margin: 0;
}

.quote-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 26px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 15px;
}

.quote-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 1.7;
    color: #666666;
}


.decor-gallery-slider-wrapper {
    position: relative;
    width: 100%;
    margin-top: 30px;
}

.decor-gallery-track-container {
    width: 100%;
    overflow: hidden;
    border-radius: 3px;
}

.decor-gallery-track {
    display: flex;
    gap: 15px;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: transform;
}

.decor-gallery-track .gallery-item {
    
    flex: 0 0 calc((100% - (15px * 4)) / 5);
    min-width: calc((100% - (15px * 4)) / 5);
    aspect-ratio: 1 / 1;
    border-radius: 2px;
    overflow: hidden;
}

.decor-gallery-track .gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


.slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    background-color: #ffffff;
    color: #333333;
    border: none;
    border-radius: 50%;
    box-shadow: 0 4px 14px rgba(0,0,0,0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    transition: all 0.3s ease;
}

.slider-arrow.prev { left: -22px; }
.slider-arrow.next { right: -22px; }

.slider-arrow:hover {
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    transform: translateY(-50%) scale(1.08);
}


.decor-gallery-slider-wrapper {
    position: relative;
    width: 100%;
    margin-top: 30px;
}

.decor-gallery-track-container {
    width: 100%;
    overflow: hidden;
    border-radius: 3px;
}

.decor-gallery-track {
    display: flex;
    gap: 15px;
    align-items: stretch;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: transform;
}


.decor-gallery-track .gallery-item.about-fullwidth-img {
    flex: 0 0 calc((100% - (15px * 4)) / 5) !important;
    min-width: calc((100% - (15px * 4)) / 5) !important;
    width: calc((100% - (15px * 4)) / 5) !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important; 
    border-radius: 2px;
    overflow: hidden;
    position: relative;
}


.decor-gallery-track .gallery-item.about-fullwidth-img img {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important; 
    display: block;
}


.slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    background-color: #ffffff;
    color: #333333;
    border: none;
    border-radius: 50%;
    box-shadow: 0 4px 14px rgba(0,0,0,0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    transition: all 0.3s ease;
}

.slider-arrow.prev { left: -22px; }
.slider-arrow.next { right: -22px; }

.slider-arrow:hover {
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    transform: translateY(-50%) scale(1.08);
}

@media (max-width: 992px) {
    .decor-gallery-track .gallery-item.about-fullwidth-img {
        flex: 0 0 calc((100% - (15px * 2)) / 3) !important;
        min-width: calc((100% - (15px * 2)) / 3) !important;
        width: calc((100% - (15px * 2)) / 3) !important;
    }
}

@media (max-width: 576px) {
    .decor-gallery-track .gallery-item.about-fullwidth-img {
        flex: 0 0 calc((100% - 15px) / 2) !important;
        min-width: calc((100% - 15px) / 2) !important;
        width: calc((100% - 15px) / 2) !important;
    }
    .slider-arrow.prev { left: 5px; }
    .slider-arrow.next { right: 5px; }
}

.gallery-item {
    aspect-ratio: 1 / 1;
    border-radius: 3px;
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    background-color: #ffffff;
    color: var(--bg-dark, #5A2228);
    border: none;
    border-radius: 50%;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 5;
    transition: all 0.3s ease;
}

.slider-arrow.prev { left: -22px; }
.slider-arrow.next { right: -22px; }

.slider-arrow:hover {
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
}


.decor-studio-section {
    padding: 0;
    background-color: #ffffff;
    overflow: hidden;
}

.decor-studio-wrapper-full {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    width: 100%;
}


.decor-studio-text-col {
    display: flex;
    justify-content: flex-end;
    padding: 80px 60px 80px 25px;
}

.decor-studio-text-inner {
    max-width: 560px;
    width: 100%;
}


.decor-studio-image-col {
    width: 100%;
    height: 100%;
    min-height: 520px;
    overflow: hidden;
}

.decor-studio-image-col img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 992px) {
    .decor-studio-wrapper-full {
        grid-template-columns: 1fr;
    }
    .decor-studio-text-col {
        justify-content: flex-start;
        padding: 60px 25px;
    }
    .decor-studio-image-col {
        min-height: 380px;
    }
}


.decor-tech-section {
    padding: 100px 0;
    background-color: var(--bg-light, #fdfbf7);
    overflow: hidden;
}

.decor-tech-wrapper-full {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    width: 100%;
}

.decor-tech-video-col {
    width: 100%;
    overflow: hidden;
}

.video-popup-link {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}

.video-poster-box {
    position: relative;
    width: 100%;
    height: 100%;
}

.video-poster-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}

.video-popup-link:hover .video-poster-box img {
    transform: scale(1.04);
}

.video-overlay-text {
    position: absolute;
    top: 30px;
    left: 30px;
    z-index: 2;
}

.video-overlay-text h3 {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 3px;
    color: #ffffff;
    text-shadow: 0 2px 6px rgba(0,0,0,0.6);
}

.video-play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 70px;
    height: 70px;
    background-color: rgba(255, 255, 255, 0.95);
    color: var(--bg-dark, #5A2228);
    border-radius: 50%;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 4px; 
    box-shadow: 0 0 25px rgba(0,0,0,0.3);
    transition: all 0.35s ease;
    z-index: 3;
}

.video-popup-link:hover .video-play-btn {
    background-color: var(--accent-gold, #8B3A42);
    color: #ffffff;
    transform: translate(-50%, -50%) scale(1.1);
}

.decor-tech-text-col {
    display: flex;
    justify-content: flex-start;
    padding: 0 25px 0 60px;
}

.decor-tech-text-inner {
    max-width: 560px;
    width: 100%;
}

@media (max-width: 992px) {
    .decor-tech-wrapper-full {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .decor-tech-text-col {
        padding: 0 25px;
    }
}

.decor-textures-slider-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.decor-textures-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 15px;
    width: 100%;
}

.texture-item {
    aspect-ratio: 1;
    border-radius: 3px;
}

.texture-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


.decor-values-section {
    padding: 70px 0;
    background-color: #ffffff;
    border-top: 1px solid rgba(0,0,0,0.06);
    border-bottom: 1px solid rgba(0,0,0,0.06);
}

.decor-values-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    text-align: center;
}

.value-card {
    padding: 20px 15px;
}

.value-icon {
    font-size: 32px;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 18px;
    transition: transform 0.3s ease;
}

.value-card:hover .value-icon {
    transform: translateY(-5px);
    color: var(--accent-gold, #8B3A42);
}

.value-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.5px;
    color: var(--bg-dark, #5A2228);
    line-height: 1.5;
}


.decor-cta-section {
    position: relative;
    padding: 90px 0;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    background-repeat: no-repeat;
}

.decor-cta-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(90, 34, 40, 0.92);
    z-index: 1;
}

.decor-cta-grid {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 60px;
    align-items: center;
}

.decor-cta-image {
    aspect-ratio: 4 / 3;
    border-radius: 3px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

.decor-cta-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.decor-cta-text {
    color: #ffffff;
}

.decor-cta-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 46px;
    font-weight: 400;
    color: #ffffff;
    margin-bottom: 15px;
}

.decor-cta-desc {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 30px;
}

.btn-cta-gold-light {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background-color: #ffffff;
    color: var(--bg-dark, #5A2228);
    padding: 14px 28px;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 2px;
    transition: all 0.35s ease;
}

.btn-cta-gold-light:hover {
    background-color: var(--accent-gold, #8B3A42);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.25);
}


@media (max-width: 992px) {
    .decor-dual-grid,
    .decor-text-grid,
    .decor-studio-grid,
    .decor-tech-grid,
    .decor-cta-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .decor-values-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }

    .decor-gallery-grid,
    .decor-textures-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .decor-gallery-grid .gallery-item:nth-child(n+4),
    .decor-textures-grid .texture-item:nth-child(n+4) {
        display: none;
    }
}

@media (max-width: 576px) {
    .decor-card {
        padding: 40px 25px;
        min-height: 380px;
    }

    .decor-section-title,
    .decor-cta-title {
        font-size: 34px;
    }

    .decor-values-grid {
        grid-template-columns: 1fr;
    }

    .decor-gallery-grid,
    .decor-textures-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .decor-gallery-grid .gallery-item:nth-child(n+3),
    .decor-textures-grid .texture-item:nth-child(n+3) {
        display: none; /* Mostra 2 elementi su smartphone */
    }
    
    .slider-arrow {
        display: none; 
    }
}

.decor-gallery-slider-wrapper {
    position: relative;
    width: 100%;
    margin-top: 30px;
}

.decor-gallery-track-container {
    width: 100%;
    overflow: hidden;
    border-radius: 3px;
}

.decor-gallery-track {
    display: flex;
    gap: 15px;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: transform;
}


.decor-gallery-track .carousel-square-item {
    flex: 0 0 calc((100% - (15px * 4)) / 5);
    width: calc((100% - (15px * 4)) / 5);
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden;
    border-radius: 2px;
    position: relative;
}

.decor-gallery-track .carousel-square-item img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
}

.slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    background-color: #ffffff;
    color: #333333;
    border: none;
    border-radius: 50%;
    box-shadow: 0 4px 14px rgba(0,0,0,0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    transition: all 0.3s ease;
}

.slider-arrow.prev { left: -22px; }
.slider-arrow.next { right: -22px; }

.slider-arrow:hover {
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    transform: translateY(-50%) scale(1.08);
}


@media (max-width: 992px) {
    .decor-gallery-track .carousel-square-item {
        flex: 0 0 calc((100% - (15px * 2)) / 3);
        width: calc((100% - (15px * 2)) / 3);
    }
}

@media (max-width: 576px) {
    .decor-gallery-track .carousel-square-item {
        flex: 0 0 calc((100% - 15px) / 2);
        width: calc((100% - 15px) / 2);
    }
    .slider-arrow.prev { left: 5px; }
    .slider-arrow.next { right: 5px; }
}


.decor-textures-slider-wrapper {
    position: relative;
    width: 100%;
}

.decor-textures-track-container {
    width: 100%;
    overflow: hidden;
    border-radius: 3px;
}

.decor-textures-track {
    display: flex;
    gap: 15px;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: transform;
}


.decor-textures-track .carousel-169-item {
    flex: 0 0 calc((100% - (15px * 3)) / 4);
    width: calc((100% - (15px * 3)) / 4);
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden;
    border-radius: 2px;
    position: relative;
}

.decor-textures-track .carousel-169-item img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
}


@media (max-width: 992px) {
    .decor-textures-track .carousel-169-item {
        flex: 0 0 calc((100% - (15px * 2)) / 3);
        width: calc((100% - (15px * 2)) / 3);
    }
}

@media (max-width: 576px) {
    .decor-textures-track .carousel-169-item {
        flex: 0 0 calc((100% - 15px) / 2);
        width: calc((100% - 15px) / 2);
    }
}


hr.delicate-divider,
hr {
    border: none;
    height: 1px;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.12);
    margin: 20px 0;
    display: block;
}

.bg-light hr,
.decor-container hr.divider-dark {
    background-color: rgba(0, 0, 0, 0.08);
}



.progetti-hero-section {
    position: relative;
    width: 100%;
    min-height: 55vh;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    padding: 80px 0;
}

.progetti-hero-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(90deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.4) 60%, rgba(0,0,0,0.2) 100%);
    z-index: 1;
}

.progetti-hero-content {
    max-width: 650px;
    color: #ffffff;
}

.progetti-hero-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 58px;
    font-weight: 400;
    line-height: 1.1;
    margin-bottom: 20px;
}

.progetti-hero-desc {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.9);
}

.progetti-story-section {
    position: relative;
    width: 100%;
}

.progetti-story-bg {
    position: relative;
    background-size: cover;
    background-position: center;
    padding: 100px 0;
}

.progetti-story-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-color: rgba(90, 34, 40, 0.6); 
    z-index: 1;
}

.progetti-story-box {
    max-width: 750px;
    color: #ffffff;
}

.progetti-story-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 46px;
    font-weight: 400;
    margin-bottom: 20px;
}

.progetti-story-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.9);
}

.progetti-filters-section {
    padding: 40px 0;
    background-color: var(--bg-light, #fdfbf7);
    border-bottom: 1px solid rgba(0,0,0,0.06);
}

.progetti-filters-wrapper {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
}

.filter-btn {
    background: none;
    border: none;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #666666;
    cursor: pointer;
    padding: 8px 0;
    position: relative;
    transition: color 0.3s ease;
}

.filter-btn::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; width: 0; height: 2px;
    background-color: var(--bg-dark, #5A2228);
    transition: width 0.3s ease;
}

.filter-btn:hover,
.filter-btn.active {
    color: var(--bg-dark, #5A2228);
}

.filter-btn.active::after,
.filter-btn:hover::after {
    width: 100%;
}

.progetti-gallery-section {
    padding: 0;
    width: 100%;
    background-color: var(--bg-light, #fdfbf7);
    overflow: hidden;
}

.editorial-gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 280px;
    gap: 4px;
    width: 100%;
}

.gallery-card {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    text-decoration: none;
    opacity: 1;
    transform: scale(1);
    visibility: visible;
    transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
}


.gallery-card.is-hidden {
    opacity: 0 !important;
    transform: scale(0.95) !important;
    visibility: hidden !important;
    pointer-events: none;
}

.gallery-card.item-wide {
    grid-column: span 8;
    grid-row: span 2;
}

.gallery-card.item-tall {
    grid-column: span 4;
    grid-row: span 2;
}

.gallery-card.item-medium {
    grid-column: span 4;
    grid-row: span 1;
}

.gallery-card.item-featured {
    grid-column: span 6;
    grid-row: span 2;
}

.gallery-card.item-third {
    grid-column: span 3;
    grid-row: span 1;
}

.card-img-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

.card-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.card-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-color: rgba(90, 34, 40, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 2;
}

.zoom-icon {
    width: 50px;
    height: 50px;
    background-color: #ffffff;
    color: var(--bg-dark, #5A2228);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    transform: scale(0.7);
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}

.gallery-card:hover .card-img-wrapper img {
    transform: scale(1.06);
}

.gallery-card:hover .card-overlay {
    opacity: 1;
}

.gallery-card:hover .zoom-icon {
    transform: scale(1);
}

@media (max-width: 1100px) {
    .editorial-gallery-grid {
        grid-auto-rows: 220px;
    }
}

@media (max-width: 850px) {
    .editorial-gallery-grid {
        grid-template-columns: repeat(6, 1fr);
        grid-auto-rows: 200px;
    }
    .gallery-card.item-wide { grid-column: span 6; grid-row: span 2; }
    .gallery-card.item-tall { grid-column: span 6; grid-row: span 2; }
    .gallery-card.item-featured { grid-column: span 6; grid-row: span 2; }
    .gallery-card.item-medium { grid-column: span 3; grid-row: span 1; }
    .gallery-card.item-third { grid-column: span 3; grid-row: span 1; }
}

@media (max-width: 576px) {
    .editorial-gallery-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 250px;
        gap: 3px;
    }
    .gallery-card.item-wide,
    .gallery-card.item-tall,
    .gallery-card.item-featured,
    .gallery-card.item-medium,
    .gallery-card.item-third {
        grid-column: span 1;
        grid-row: span 1;
    }
}
.card-img-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.card-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}


.card-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-color: rgba(90, 34, 40, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 2;
}

.zoom-icon {
    width: 54px;
    height: 54px;
    background-color: #ffffff;
    color: var(--bg-dark, #5A2228);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    transform: scale(0.7);
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}

.gallery-card:hover .card-img-wrapper img {
    transform: scale(1.06); 
}

.gallery-card:hover .card-overlay {
    opacity: 1;
}

.gallery-card:hover .zoom-icon {
    transform: scale(1); 
}

@media (max-width: 992px) {
    .editorial-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .gallery-card.item-large {
        grid-column: span 2;
    }
}

@media (max-width: 576px) {
    .editorial-gallery-grid {
        grid-template-columns: 1fr;
    }
    .gallery-card.item-large,
    .gallery-card.item-medium,
    .gallery-card.item-small {
        grid-column: span 1;
        aspect-ratio: 4 / 3;
    }
}


.btn-close-modal {
    width: auto !important;
    display: inline-block !important;
    margin-bottom: 20px;
}


.progetti-filters-section {
    position: -webkit-sticky;
    position: sticky;
    top: 90px;
    z-index: 99; 
    background-color: var(--bg-light, #fdfbf7);
    padding: 25px 0;
    transition: box-shadow 0.3s ease, background-color 0.3s ease;
}

.progetti-filters-section.is-sticky {
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
    background-color: rgba(253, 251, 247, 0.97); 
    backdrop-filter: blur(5px);
}


.studio-hero-section {
    position: relative;
    width: 100%;
    min-height: 60vh;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    padding: 100px 0;
}

.studio-hero-overlay-left {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(90deg, rgba(253, 251, 247, 0.95) 0%, rgba(253, 251, 247, 0.7) 45%, rgba(0,0,0,0.1) 100%);
    z-index: 1;
}

.studio-hero-content {
    max-width: 650px;
    color: var(--bg-dark, #2b2b2b);
}

.studio-hero-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 58px;
    font-weight: 400;
    line-height: 1.1;
    margin-bottom: 20px;
    color: var(--bg-dark, #5A2228);
}

.studio-hero-desc {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: #555555;
}

.studio-story-section {
    position: relative;
    width: 100%;
}

.studio-story-bg {
    position: relative;
    background-size: cover;
    background-position: center;
    padding: 110px 0;
}

.studio-story-overlay-right {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(270deg, rgba(30, 10, 13, 0.92) 0%, rgba(90, 34, 40, 0.8) 50%, rgba(0,0,0,0.2) 100%);
    z-index: 1;
}

.flex-end-container {
    display: flex;
    justify-content: flex-end;
}

.studio-story-box {
    max-width: 650px;
    color: #ffffff;
}

.studio-story-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 46px;
    font-weight: 400;
    margin-bottom: 20px;
}

.studio-story-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.9);
}

.studio-process-section {
    padding: 90px 0;
    background-color: var(--bg-light, #fdfbf7);
}

.process-section-title-wrap {
    text-align: center;
    margin-bottom: 60px;
}

.process-section-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 42px;
    font-weight: 400;
    color: var(--bg-dark, #5A2228);
    margin-top: 10px;
}

.process-steps-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.process-step-item {
    text-align: center;
    padding: 30px 20px;
    background: #ffffff;
    border-radius: 4px;
    box-shadow: 0 5px 25px rgba(0,0,0,0.03);
    border: 1px solid rgba(90, 34, 40, 0.08);
    transition: transform 0.3s ease;
}

.process-step-item:hover {
    transform: translateY(-5px);
}

.process-icon {
    width: 65px;
    height: 65px;
    margin: 0 auto 20px auto;
    background-color: rgba(90, 34, 40, 0.06);
    color: var(--bg-dark, #5A2228);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}

.process-step-item h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 22px;
    font-weight: 600;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 10px;
}

.process-step-item p {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    color: #666666;
    line-height: 1.5;
}

@media (max-width: 992px) {
    .process-steps-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 576px) {
    .process-steps-grid {
        grid-template-columns: 1fr;
    }
}


.wallpaper-hero-section {
    position: relative;
    width: 100%;
    min-height: 75vh;
    background-size: cover;
    background-position: right center;
    display: flex;
    align-items: center;
    padding: 80px 0;
}

.wallpaper-hero-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(90deg, #fdfbf7 0%, rgba(253, 251, 247, 0.95) 45%, rgba(253, 251, 247, 0.15) 100%);
    z-index: 1;
}

.wallpaper-hero-content {
    max-width: 620px;
    position: relative;
    z-index: 2;
}

.hero-top-line {
    width: 45px;
    height: 3px;
    background-color: #8B3A42;
    margin-bottom: 25px;
}

.wallpaper-hero-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 72px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 0.9;
    letter-spacing: 2px;
    color: #111111;
    margin-bottom: 25px;
}

.wallpaper-hero-title span {
    display: block;
}

.wallpaper-hero-subtitle {
    font-family: 'Cormorant Garamond', serif;
    font-size: 32px;
    font-weight: 400;
    line-height: 1.2;
    color: #111111;
    margin-bottom: 20px;
}

.wallpaper-hero-desc {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 1.75;
    color: #444444;
    margin-bottom: 30px;
}

.hero-bottom-kicker {
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-bottom-line {
    display: inline-block;
    width: 35px;
    height: 2px;
    background-color:#8B3A42;
}

.kicker-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: #333333;
}

@media (max-width: 768px) {
    .wallpaper-hero-title {
        font-size: 50px;
    }
    .wallpaper-hero-subtitle {
        font-size: 24px;
    }
}
.wallpaper-hero-image img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.08);
}

.wallpaper-banner-section {
    width: 100%;
    height: 500px;
    overflow: hidden;
}

.wallpaper-banner-img {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
}

.wallpaper-about-section {
    padding: 100px 0;
    background-color: var(--bg-light, #fdfbf7);
}

.wallpaper-about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

.wallpaper-about-text h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 42px;
    font-weight: 400;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 20px;
}

.wallpaper-about-text p {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    line-height: 1.8;
    color: #555555;
    margin-bottom: 30px;
}

.wallpaper-about-img img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.08);
}

.section-divider-title {
    text-align: center;
    padding: 60px 0 30px 0;
    background-color: var(--bg-light, #fdfbf7);
}

.section-divider-title span {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--bg-dark, #5A2228);
    position: relative;
    padding: 0 20px;
}

.section-divider-title span::before,
.section-divider-title span::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 50px;
    height: 1px;
    background-color: rgba(90, 34, 40, 0.2);
}

.section-divider-title span::before { right: 100%; }
.section-divider-title span::after { left: 100%; }

.wallpaper-studio-section {
    padding: 90px 0;
    background-color: #f7f3ec;
}

.wallpaper-studio-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 50px;
    align-items: center;
}

.wallpaper-studio-text h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 42px;
    font-weight: 400;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 20px;
}

.wallpaper-studio-text p {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    line-height: 1.8;
    color: #555555;
}

.wallpaper-studio-mosaic {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.mosaic-thumb img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 3px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.06);
}

.partners-section {
    padding: 90px 0;
    background-color: var(--bg-light, #fdfbf7);
}

.partners-container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 20px;
}

.partners-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 50px;
    color: var(--bg-dark, #5A2228);
}

.partners-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.partners-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 25px;
    align-items: center;
}

.partner-item {
    background: #ffffff;
    padding: 20px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 90px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02);
    border: 1px solid rgba(0,0,0,0.04);
    transition: transform 0.3s ease;
}

.partner-item:hover {
    transform: translateY(-3px);
}

.partner-item img {
    max-width: 100%;
    max-height: 50px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.7;
    transition: all 0.3s ease;
}

.partner-item:hover img {
    filter: grayscale(0%);
    opacity: 1;
}

.wallpaper-cta-banner {
    position: relative;
    width: 100%;
    padding: 110px 0;
    background-size: cover;
    background-position: center;
    text-align: center;
}

.wallpaper-cta-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-color: rgba(90, 34, 40, 0.6);
    z-index: 1;
}

.wallpaper-cta-content {
    max-width: 700px;
    margin: 0 auto;
    color: #ffffff;
}

.wallpaper-cta-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 52px;
    font-weight: 400;
    margin-bottom: 15px;
}

.wallpaper-cta-subtitle {
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 30px;
}

@media (max-width: 992px) {
    .wallpaper-hero-grid,
    .wallpaper-about-grid,
    .wallpaper-studio-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .partners-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 576px) {
    .wallpaper-hero-title { font-size: 42px; }
    .partners-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .wallpaper-studio-mosaic {
        grid-template-columns: 1fr;
    }
    .mosaic-thumb img { height: 220px; }
}

.wallpaper-parallax-section {
    position: relative;
    width: 100%;
    height: 700px;
    overflow: hidden;
}

.parallax-bg {
    position: absolute;
    top: -20%;
    left: 0;
    width: 100%;
    height: 140%; 
    background-size: cover;
    background-position: center;
    will-change: transform;
}

.zoom-img-wrapper {
    width: 100%;
    overflow: hidden;
    border-radius: 4px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.08);
}

.zoom-img-wrapper img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.zoom-img-wrapper:hover img {
    transform: scale(1.06);
}


.cp-partners-section {
    position: relative;
    background-image: url('../img/background-partner.jpg');  
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 70px 30px 80px 30px;
    border-top: 1px solid #eae5dd;
    border-bottom: 1px solid #eae5dd;
    overflow: hidden;
}

.cp-partners-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(253, 251, 247, 0.88);
    z-index: 1;
}

.cp-partners-container {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    z-index: 2;
}

.cp-partners-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 50px;
    color: #5A2228;
}

.cp-partners-header span i {
    font-size: 11px;
    opacity: 0.6;
}

.cp-partners-title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: #2b2b2b;
}
 
.cp-partners-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 35px 40px;
}
 
.cp-partner-item {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    height: 75px;
    width: calc(25% - 30px);
    display: flex;
    align-items: center;
    justify-content: center;
}
 
.cp-partner-item img {
    width: 100%;
    height: 100%;
    max-width: 180px;
    max-height: 40px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.7;
    transform: scale(1);
    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

.cp-partner-item:hover img {
    filter: grayscale(0%);
    opacity: 1;
    transform: scale(1.06);
}

@media (max-width: 992px) {
    .cp-partner-item {
        width: calc(33.333% - 27px);
    }
}

@media (max-width: 576px) {
    .cp-partner-item {
        width: calc(50% - 20px); 
    }
}


.wallpaper-studio-section {
    padding: 100px 0;
    background-color: #fdfbf7;
    overflow: hidden; 
}


.studio-wrapper-full {
    display: grid;
    grid-template-columns: minmax(320px, 460px) 1fr;
    gap: 70px;
    align-items: center;
    max-width: 1750px; 
    margin-left: auto;  
    padding-left: max(50px, calc((100vw - 1400px) / 2));
}

.studio-top-line {
    width: 45px;
    height: 3px;
    background-color: #8B3A42;
    margin-bottom: 25px;
}

.studio-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 52px;
    font-weight: 600;
    line-height: 1.1;
    color: #111111;
    margin-bottom: 25px;
}

.studio-desc {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 1.8;
    color: #444444;
}


.studio-images-collage-full {
    display: grid;
    grid-template-columns: 1.1fr 1fr 1.1fr;
    grid-template-rows: 220px 220px;
    gap: 15px;
    padding-right: 0; 
}

.collage-item {
    overflow: hidden;
    border-radius: 4px 0 0 4px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.06);
}

.collage-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.collage-item:hover img {
    transform: scale(1.05);
}

.item-large {
    grid-column: 1;
    grid-row: span 2;
}

.item-small-top {
    grid-column: 2 / span 2;
    grid-row: 1;
    border-radius: 0;
}

.item-small-bottom {
    grid-column: 2;
    grid-row: 2;
    border-radius: 0;
}

.item-tall {
    grid-column: 3;
    grid-row: 2;
    border-radius: 0;
}

@media (max-width: 1024px) {
    .studio-wrapper-full {
        grid-template-columns: 1fr;
        padding-left: 30px;
        padding-right: 30px;
        gap: 50px;
    }
    .studio-images-collage-full {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
        padding-right: 30px;
    }
    .collage-item {
        border-radius: 4px;
    }
    .item-large {
        grid-column: span 2;
        grid-row: auto;
        height: 300px;
    }
}

.wallpaper-studio-section {
    background-color: #fdfbf7;
    padding: 90px 0;
    overflow: hidden;
}

.studio-wrapper-full {
    display: grid;
    grid-template-columns: minmax(320px, 420px) 1fr;
    gap: 60px;
    align-items: center;
    max-width: 1750px;
    margin-left: auto;
    padding-left: max(30px, calc((100vw - 1400px) / 2));
    padding-right: 30px;
}

.studio-top-line {
    width: 35px;
    height: 2px;
    background-color: #5A2228;
    margin-bottom: 20px;
}

.studio-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 48px;
    font-weight: 600;
    line-height: 1.15;
    color: #111111;
    margin-bottom: 25px;
}

.studio-desc {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 1.8;
    color: #444444;
}

.studio-images-collage-full {
    display: grid;
    grid-template-columns: 1.2fr 1.5fr 1fr;
    grid-template-rows: repeat(2, 220px);
    gap: 15px;
    width: 100%;
}

.collage-item {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
}

.collage-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.collage-item:hover img {
    transform: scale(1.05);
}


.item-large {
    grid-column: 1 / 2;
    grid-row: 1 / 3; 
}

.item-small-top {
    grid-column: 2 / 4;
    grid-row: 1 / 2;
}

.item-small-bottom {
    grid-column: 2 / 3;
    grid-row: 2 / 3;
}

.item-tall {
    grid-column: 3 / 4;
    grid-row: 2 / 3;
}


@media (max-width: 1024px) {
    .studio-wrapper-full {
        grid-template-columns: 1fr;
        padding-left: 20px;
        padding-right: 20px;
        gap: 40px;
    }

    .studio-images-collage-full {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
        gap: 15px;
    }

    .item-large,
    .item-small-top,
    .item-small-bottom,
    .item-tall {
        grid-column: auto;
        grid-row: auto;
        height: 250px;
    }
}

@media (max-width: 576px) {
    .studio-title {
        font-size: 36px;
    }

    .studio-images-collage-full {
        grid-template-columns: 1fr;
    }

    .collage-item {
        height: 280px;
    }
}







 
.progetti-gallery-section {
    padding: 80px 20px;
    background-color: #fdfbf7; 
}

.gallery-full-container {
    max-width: 1760px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 20px; 
}


.gallery-row-vertical {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px; 
}

.gallery-grid-horizontal {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px; 
}


.gallery-card {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 4px;
    background-color: #eae5dd;
}

.vertical-card .card-img-wrapper {
    position: relative;
    width: 100%;
    padding-top: 177.77%; 
    overflow: hidden;
}


.horizontal-card .card-img-wrapper {
    position: relative;
    width: 100%;
    padding-top: 56.25%; 
    overflow: hidden;
}

.card-img-wrapper img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.gallery-card:hover img {
    transform: scale(1.06);
}

.card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.35s ease;
}

.gallery-card:hover .card-overlay {
    opacity: 1;
}

.zoom-icon {
    width: 45px;
    height: 45px;
    background-color: #ffffff;
    color: #111111;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    transform: scale(0.8);
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

.gallery-card:hover .zoom-icon {
    transform: scale(1);
}

@media (max-width: 1024px) {
    .gallery-row-vertical {
        grid-template-columns: repeat(2, 1fr);
    }
    .gallery-grid-horizontal {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 576px) {
    .gallery-row-vertical {
        grid-template-columns: 1fr;
    }
    .gallery-grid-horizontal {
        grid-template-columns: 1fr;
    }
}
 
.gallery-full-width-banner {
    width: 100%;
}

.full-width-card .card-img-wrapper {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    overflow: hidden;
}

.ca-kicker {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.ca-kicker-line {
    width: 35px;
    height: 2px;
    background-color: #5A2228;
}

.ca-kicker-text {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #5A2228;
}

.ca-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 14px 28px;
    background-color: #5A2228;
    color: #ffffff;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-decoration: none;
    transition: all 0.3s ease;
}

.ca-btn-primary:hover {
    background-color: #3b1418;
    transform: translateY(-2px);
}


.ca-hero-overlay-section {
    position: relative;
    width: 100%;
    min-height: 85vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background-color: #fdfbf7;
}

.ca-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.ca-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center right;
    display: block;
}

.ca-hero-ivory-gradient {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to right, 
        rgba(253, 251, 247, 1) 0%, 
        rgba(253, 251, 247, 0.96) 32%, 
        rgba(253, 251, 247, 0.6) 52%, 
        rgba(253, 251, 247, 0) 78%
    );
    z-index: 2;
}

.ca-hero-content-container {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 1750px;
    margin: 0 auto;
    padding: 80px max(50px, calc((100vw - 1400px) / 2));
}

.ca-hero-text-box {
    max-width: 490px; 
}

.ca-hero-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 62px;
    font-weight: 600;
    line-height: 1.05;
    color: #111111;
    margin-bottom: 25px;
}

.ca-hero-desc {
    font-size: 14px;
    line-height: 1.8;
    color: #333333;
    margin-bottom: 35px;
}


@media (max-width: 1024px) {
    .ca-hero-overlay-section {
        min-height: auto;
        padding: 60px 0;
    }

    .ca-hero-ivory-gradient {
        background: linear-gradient(
            to right, 
            rgba(253, 251, 247, 0.98) 0%, 
            rgba(253, 251, 247, 0.85) 100%
        );
    }

    .ca-hero-content-container {
        padding: 40px 25px;
    }

    .ca-hero-title {
        font-size: 44px;
    }
}

.ca-fullwidth-banner {
    width: 100%;
    max-height: 550px;
    overflow: hidden;
}

.ca-fullwidth-banner img {
    width: 100%;
    height: 100%;
    max-height: 550px;
    object-fit: cover;
    display: block;
}

.ca-custom-section {
    background-color: #ffffff;
    padding: 100px 50px;
}

.ca-custom-wrapper {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 80px;
    align-items: center;
}

.ca-section-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 48px;
    font-weight: 600;
    line-height: 1.15;
    color: #111111;
    margin-bottom: 25px;
}

.ca-section-desc {
    font-size: 14px;
    line-height: 1.8;
    color: #444444;
    margin-bottom: 35px;
}

.ca-custom-image img {
    width: 100%;
    height: 100%;
    max-height: 500px;
    object-fit: cover;
    border-radius: 4px;
}

.ca-details-section {
    background-color: #fdfbf7;
    padding: 90px 30px;
}

.ca-details-container {
    max-width: 1400px;
    margin: 0 auto;
}

.ca-cards-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    margin-top: 50px;
}

.ca-card-item {
    background: transparent;
}

.ca-card-img {
    width: 100%;
    height: 280px;
    overflow: hidden;
    margin-bottom: 20px;
    border-radius: 4px;
}

.ca-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.ca-card-item:hover .ca-card-img img {
    transform: scale(1.05);
}

.ca-card-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 22px;
    font-weight: 600;
    color: #111111;
    margin-bottom: 10px;
}

.ca-card-desc {
    font-size: 13px;
    line-height: 1.6;
    color: #666666;
}


.ca-harmony-section {
    background-color: #ffffff;
    padding: 100px 50px;
}

.ca-harmony-wrapper {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 80px;
    align-items: center;
}

.ca-harmony-image img {
    width: 100%;
    height: 100%;
    max-height: 520px;
    object-fit: cover;
    border-radius: 4px;
}

.ca-bottom-cta {
    background-image: url('../img/complemento-arredo/bg-cta.jpg');
    background-size: cover;
    background-position: center;
    padding: 70px 40px;
    position: relative;
    color: #ffffff;
}

.ca-bottom-cta::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1;
}

.ca-cta-container {
    position: relative;
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.ca-cta-text h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 32px;
    font-weight: 500;
    margin-bottom: 8px;
}

.ca-cta-text p {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    opacity: 0.9;
}

.ca-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    background-color: #5A2228;
    color: #ffffff;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.ca-cta-btn:hover {
    background-color: #3b1418;
}

@media (max-width: 1024px) {
    .ca-hero-wrapper,
    .ca-custom-wrapper,
    .ca-harmony-wrapper {
        grid-template-columns: 1fr;
        padding-left: 20px;
        padding-right: 20px;
        gap: 40px;
    }

    .ca-cards-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .ca-cta-container {
        flex-direction: column;
        text-align: center;
    }
}

@media (max-width: 576px) {
    .ca-cards-grid {
        grid-template-columns: 1fr;
    }

    .ca-hero-title {
        font-size: 40px;
    }

    .ca-section-title {
        font-size: 36px;
    }
}


.ca-harmony-section {
    background-color: #ffffff;
    padding: 100px 0;
    overflow: hidden; 
}

.ca-harmony-wrapper-full {
    display: grid;
    grid-template-columns: 1fr minmax(320px, 520px);
    gap: 70px;
    align-items: center;
    max-width: 1750px;
    margin-right: auto;
    padding-right: max(50px, calc((100vw - 1400px) / 2));
}

.ca-harmony-image-wrapper {
    position: relative;
    width: 100%;
    height: 520px;
    overflow: hidden;
    border-radius: 0 4px 4px 0; 
}

.ca-harmony-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1);
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.ca-harmony-image-wrapper:hover img {
    transform: scale(1.06);
}


.ca-harmony-text {
    padding-left: 20px;
}

@media (max-width: 1024px) {
    .ca-harmony-wrapper-full {
        grid-template-columns: 1fr;
        padding-left: 30px;
        padding-right: 30px;
        gap: 40px;
    }

    .ca-harmony-image-wrapper {
        height: 380px;
        border-radius: 4px;
    }

    .ca-harmony-text {
        padding-left: 0;
    }
}



.section-spacer {
    margin-top: var(--section-gap-top);
    margin-bottom: var(--section-gap-bottom);
    background-color: var(--section-gap-bg);
}

.spacer-sm { --section-gap-top: 20px; }
.spacer-md { --section-gap-top: 40px; }
.spacer-lg { --section-gap-top: 80px; }


.bg-avorio { --section-gap-bg: #fdfbf7; }
.bg-white  { --section-gap-bg: #ffffff; }
.bg-dark   { --section-gap-bg: #5A2228; }


.sh-hero-overlay-section {
    position: relative;
    width: 100%;
    min-height: 85vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background-color: #111111;
}


.sh-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.sh-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.sh-hero-gradient-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to right, 
        rgba(0, 0, 0, 0.92) 0%, 
        rgba(0, 0, 0, 0.75) 35%, 
        rgba(0, 0, 0, 0.2) 65%, 
        rgba(0, 0, 0, 0) 100%
    );
    z-index: 2;
}

.sh-hero-content-container {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 1750px;
    margin: 0 auto;
    padding: 80px max(50px, calc((100vw - 1400px) / 2));
}

.sh-hero-text-box {
    max-width: 520px; 
}

.kicker-white .ca-kicker-line {
    background-color: #ffffff;
}

.kicker-white .ca-kicker-text {
    color: #ffffff;
}

.sh-hero-title-white {
    font-family: 'Cormorant Garamond', serif;
    font-size: 64px;
    font-weight: 600;
    line-height: 1.05;
    color: #ffffff;
    margin-bottom: 10px;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.sh-hero-subtitle-white {
    font-family: 'Cormorant Garamond', serif;
    font-size: 32px;
    font-weight: 400;
    font-style: italic;
    color: #ffffff;
    margin-bottom: 25px;
    opacity: 0.95;
}

.sh-hero-desc-white {
    font-size: 14px;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.88);
    margin-bottom: 35px;
}


@media (max-width: 1024px) {
    .sh-hero-overlay-section {
        min-height: 600px;
    }
    
    .sh-hero-gradient-overlay {
        background: linear-gradient(
            to right, 
            rgba(0, 0, 0, 0.88) 0%, 
            rgba(0, 0, 0, 0.6) 100%
        );
    }

    .sh-hero-content-container {
        padding: 60px 30px;
    }

    .sh-hero-title-white {
        font-size: 48px;
    }
}


.sh-selection-section {
    background-color: #ffffff;
    padding: 100px 0;
    overflow: hidden;
}

.sh-selection-wrapper {
    display: grid;
    grid-template-columns: 1fr minmax(320px, 520px);
    gap: 70px;
    align-items: center;
    max-width: 1750px;
    margin-right: auto;
    padding-right: max(50px, calc((100vw - 1400px) / 2));
}

.sh-selection-image-wrapper {
    position: relative;
    width: 100%;
    height: 520px;
    overflow: hidden;
    border-radius: 0 4px 4px 0;
}

.sh-selection-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.sh-selection-image-wrapper:hover img {
    transform: scale(1.06);
}

.sh-selection-text {
    padding-left: 20px;
}


.sh-features-banner-textured {
    position: relative;
    width: 100%;
    background-image: url('../img/showroom/bg-banner-servizi.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed; 
    padding: 90px 30px;
    overflow: hidden;
}

.sh-features-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 10, 8, 0.72); 
    z-index: 1;
}

.sh-features-container {
    position: relative;
    z-index: 2;
    max-width: 1450px;
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
}

.sh-feature-item {
    flex: 1;
    text-align: center;
    padding: 0 25px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.sh-feature-icon {
    font-size: 38px;
    color: #ffffff;
    margin-bottom: 25px;
    opacity: 0.95;
}

.sh-feature-item h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 26px;
    font-weight: 600;
    line-height: 1.15;
    color: #ffffff;
    margin-bottom: 18px;
    text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

.sh-feature-item p {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.85);
}

.sh-feature-item p strong {
    color: #ffffff;
    font-weight: 600;
}


.sh-feature-divider {
    width: 1px;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.25) 50%, rgba(255,255,255,0) 100%);
}


.sh-feature-item {
    flex: 1;
    text-align: center;
    padding: 20px 25px;
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), 
                opacity 0.4s ease;
}

.sh-feature-item:hover {
    transform: scale(0.96);
}

.sh-feature-icon {
    font-size: 38px;
    color: #ffffff;
    margin-bottom: 25px;
    opacity: 0.9;
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1), 
                color 0.3s ease, 
                opacity 0.3s ease;
}

.sh-feature-item:hover .sh-feature-icon {
    transform: scale(1.15) translateY(-3px); 
    opacity: 1;
    color: #8B3A42; 
}

.sh-feature-item h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 26px;
    font-weight: 600;
    line-height: 1.15;
    color: #ffffff;
    margin-bottom: 18px;
    text-shadow: 0 2px 8px rgba(0,0,0,0.4);
    transition: color 0.3s ease;
}

.sh-feature-item p {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.85);
    transition: color 0.3s ease;
}

.sh-feature-item:hover h3,
.sh-feature-item:hover p {
    color: #ffffff;
}


@media (max-width: 992px) {
    .sh-features-container {
        flex-direction: column;
        gap: 40px;
    }

    .sh-feature-divider {
        width: 100%;
        height: 1px;
        background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.25) 50%, rgba(255,255,255,0) 100%);
    }

    .sh-feature-item {
        padding: 0;
    }
}

.sh-gallery-section {
    background-color: #fdfbf7;
    padding: 100px 30px;
}

.sh-gallery-container {
    max-width: 1400px;
    margin: 0 auto;
}

.sh-gallery-section {
    background-color: #fdfbf7;
    padding: 100px 30px;
}

.sh-gallery-container {
    max-width: 1400px;
    margin: 0 auto;
}


.sh-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    margin-top: 50px;
}

.sh-gallery-card {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 6px;
}

.sh-card-img {
    position: relative;
    width: 100%;
    padding-top: 66.66%; 
    overflow: hidden;
}

.sh-card-img img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.sh-gallery-card:hover .sh-card-img img {
    transform: scale(1.06);
}




@media (max-width: 1024px) {
    .sh-gallery-section {
        padding: 60px 20px;
    }

    .sh-gallery-grid {
        gap: 15px; 
    }
}

@media (max-width: 768px) {
    .sh-gallery-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px;
        margin-top: 30px;
    }

    .sh-card-img {
        padding-top: 75%;
    }
}


.sh-location-parallax-section {
    position: relative;
    width: 100%;
    min-height: 550px;
    background-image: url('../img/showroom/esterno-showroom.jpg');
    background-size: cover;
    background-position: center right;
    background-repeat: no-repeat;
    background-attachment: fixed; 
    display: flex;
    align-items: center;
    overflow: hidden;
    padding: 80px 0;
}


.sh-location-ivory-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to right, 
        rgba(253, 251, 247, 1) 0%, 
        rgba(253, 251, 247, 0.95) 30%, 
        rgba(253, 251, 247, 0.6) 50%, 
        rgba(253, 251, 247, 0) 75%
    );
    z-index: 1;
}

.sh-location-container {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1750px;
    margin: 0 auto;
    padding: 0 max(50px, calc((100vw - 1400px) / 2));
}

.sh-location-text-box {
    max-width: 480px;
}

.sh-location-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 58px;
    font-weight: 600;
    line-height: 1.1;
    color: #111111;
    margin-bottom: 25px;
}

.sh-location-address {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 25px;
}

.sh-location-address i {
    font-size: 32px;
    color: #5A2228;
    margin-top: 2px;
}

.sh-address-details {
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #2b2b2b;
}

.sh-address-details strong {
    font-size: 18px;
    font-weight: 600;
    color: #111111;
}

.sh-location-desc {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 1.8;
    color: #444444;
    margin-bottom: 35px;
}

@media (max-width: 1024px) {
    .sh-location-parallax-section {
        background-attachment: scroll; 
        min-height: auto;
    }

    .sh-location-ivory-overlay {
        background: linear-gradient(
            to right, 
            rgba(253, 251, 247, 0.98) 0%, 
            rgba(253, 251, 247, 0.85) 100%
        );
    }

    .sh-location-container {
        padding: 40px 30px;
    }
}


.ta-hero-overlay-section {
    position: relative;
    width: 100%;
    min-height: 85vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background-color: #111111;
}

.ta-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.ta-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.ta-hero-gradient-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to right, 
        rgba(0, 0, 0, 0.92) 0%, 
        rgba(0, 0, 0, 0.75) 35%, 
        rgba(0, 0, 0, 0.2) 65%, 
        rgba(0, 0, 0, 0) 100%
    );
    z-index: 2;
}

.ta-hero-content-container {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 1750px;
    margin: 0 auto;
    padding: 80px max(50px, calc((100vw - 1400px) / 2));
}

.ta-hero-text-box {
    max-width: 520px;
}

.ta-hero-title-white {
    font-family: 'Cormorant Garamond', serif;
    font-size: 64px;
    font-weight: 600;
    line-height: 1.05;
    color: #ffffff;
    margin-bottom: 10px;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.ta-hero-subtitle-white {
    font-family: 'Cormorant Garamond', serif;
    font-size: 30px;
    font-weight: 400;
    font-style: italic;
    color: #ffffff;
    margin-bottom: 25px;
    opacity: 0.95;
}

.ta-hero-desc-white {
    font-size: 14px;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.88);
    margin-bottom: 35px;
}

.ta-quality-section {
    background-color: #fdfbf7;
    padding: 100px 0;
    overflow: hidden;
}

.ta-quality-wrapper-full {
    display: grid;
    grid-template-columns: 1fr minmax(320px, 520px);
    gap: 70px;
    align-items: center;
    max-width: 1750px;
    margin-right: auto;
    padding-right: max(50px, calc((100vw - 1400px) / 2));
}

.ta-quality-image-wrapper {
    position: relative;
    width: 100%;
    height: 520px;
    overflow: hidden;
    border-radius: 0 4px 4px 0;
}

.ta-quality-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.ta-quality-image-wrapper:hover img {
    transform: scale(1.06);
}

.ta-quality-text {
    padding-left: 20px;
}


.ta-features-banner {
    background-color: #eae5dd;
    padding: 80px 30px;
}

.ta-features-container {
    max-width: 1450px;
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
}

.ta-feature-item {
    flex: 1;
    text-align: center;
    padding: 15px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    cursor: pointer;
}

.ta-feature-item:hover {
    transform: scale(0.96);
}

.ta-feature-icon {
    font-size: 36px;
    color: #5A2228;
    margin-bottom: 20px;
    transition: transform 0.4s ease, color 0.3s ease;
}

.ta-feature-item:hover .ta-feature-icon {
    transform: scale(1.15) translateY(-3px);
}

.ta-feature-item h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.15;
    color: #111111;
    margin-bottom: 12px;
}

.ta-feature-item p {
    font-size: 13px;
    line-height: 1.6;
    color: #555555;
}

.ta-feature-divider {
    width: 1px;
    background: rgba(0, 0, 0, 0.1);
}


.ta-inspirations-section,
.ta-details-section {
    background-color: #fdfbf7;
    padding: 100px 30px;
}

.ta-inspirations-container,
.ta-details-container {
    max-width: 1400px;
    margin: 0 auto;
}

.ta-inspirations-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    margin-top: 50px;
}

.ta-grid-card {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 4px;
}

.ta-card-img-wrapper {
    position: relative;
    width: 100%;
    padding-top: 125%; 
    overflow: hidden;
}

.ta-card-img-wrapper img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.ta-grid-card:hover .ta-card-img-wrapper img {
    transform: scale(1.06);
}


.ta-tailoring-section {
    background-color: #ffffff;
    padding: 100px 0;
    overflow: hidden;
}

.ta-tailoring-wrapper-full {
    display: grid;
    grid-template-columns: minmax(320px, 520px) 1fr;
    gap: 70px;
    align-items: center;
    max-width: 1750px;
    margin-left: auto;
    padding-left: max(50px, calc((100vw - 1400px) / 2));
}

.ta-tailoring-image-wrapper {
    position: relative;
    width: 100%;
    height: 520px;
    overflow: hidden;
    border-radius: 4px 0 0 4px;
}

.ta-tailoring-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.ta-tailoring-image-wrapper:hover img {
    transform: scale(1.06);
}


.ta-details-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
    margin-top: 50px;
}

@media (max-width: 1024px) {
    .ta-quality-wrapper-full,
    .ta-tailoring-wrapper-full {
        grid-template-columns: 1fr;
        padding-left: 20px;
        padding-right: 20px;
        gap: 40px;
    }

    .ta-quality-image-wrapper,
    .ta-tailoring-image-wrapper {
        height: 380px;
        border-radius: 4px;
    }

    .ta-features-container {
        flex-direction: column;
        gap: 30px;
    }

    .ta-feature-divider {
        width: 100%;
        height: 1px;
    }

    .ta-inspirations-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .ta-details-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 576px) {
    .ta-inspirations-grid,
    .ta-details-grid {
        grid-template-columns: 1fr;
    }

    .ta-hero-title-white {
        font-size: 42px;
    }
}


@media (pointer: fine) {
    body {
        cursor: none;
    }
    
    a, button, .ca-btn-primary, .ca-cta-btn, .sh-gallery-card, .ta-grid-card, input[type='submit'], [role="button"] {
        cursor: pointer !important;
    }
}

.custom-cursor-dot {
    position: fixed;
    top: 0;
    left: 0;
    width: 12px;
    height: 12px;
    background-color: #8B3A42;
    border-radius: 50%;
    pointer-events: none; 
    z-index: 99999;
    transform: translate(-50%, -50%);
    transition: width 0.2s ease, height 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
    will-change: transform;
}

.custom-cursor-dot.cursor-hover {
    width: 52px;
    height: 52px;
    background-color: rgba(139, 58, 66, 0.25);
    border: 1px solid rgba(139, 58, 66, 0.6);
}

/* Disattiva su dispositivi mobili */
@media (pointer: coarse) {
    .custom-cursor-dot {
        display: none !important;
    }
    body, a, button {
        cursor: auto !important;
    }
}


.td-hero-overlay-section {
    position: relative;
    width: 100%;
    min-height: 85vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background-color: #111111;
}

.td-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.td-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.td-hero-gradient-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to left, 
        rgba(0, 0, 0, 0.90) 0%, 
        rgba(0, 0, 0, 0.70) 40%, 
        rgba(0, 0, 0, 0.2) 70%, 
        rgba(0, 0, 0, 0) 100%
    );
    z-index: 2;
}

.td-hero-content-container {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 1750px;
    margin: 0 auto;
    padding: 80px max(50px, calc((100vw - 1400px) / 2));
    display: flex;
    justify-content: flex-end;
}

.td-hero-text-box {
    max-width: 520px;
    text-align: right;
}

.td-hero-text-box .ca-kicker {
    justify-content: flex-end;
}

.td-hero-text-box .ca-kicker-line {
    order: 2;
    margin-left: 15px;
    margin-right: 0;
}

.td-hero-title-white {
    font-family: 'Cormorant Garamond', serif;
    font-size: 64px;
    font-weight: 600;
    line-height: 1.05;
    color: #ffffff;
    margin-bottom: 20px;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.td-hero-desc-white {
    font-size: 15px;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.88);
    margin-bottom: 35px;
}


.td-legame-section {
    background-color: #fdfbf7;
    padding: 100px 0 120px 0;
    overflow: hidden;
    width: 100%;
}

.td-legame-wrapper-full {
    display: grid;
    grid-template-columns: minmax(300px, 420px) 1fr;
    gap: 40px;
    align-items: center;
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    padding-left: max(40px, calc((100vw - 1500px) / 2));
    padding-right: max(30px, calc((100vw - 1600px) / 2));
}

.td-legame-text {
    padding-right: 10px;
}

.td-legame-text .ca-kicker {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 30px;
}

.td-legame-text .ca-kicker-text {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #111111;
}

.td-legame-text .ca-kicker-line {
    width: 130px;
    height: 2px;
    background-color: #8B3A42;
}

.td-legame-subtitle {
    font-family: 'Montserrat', sans-serif;
    font-size: 19px;
    font-weight: 600;
    line-height: 1.5;
    color: #111111;
    margin-bottom: 25px;
}

.td-legame-text p {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 1.85;
    color: #444444;
    margin-bottom: 20px;
}

.td-legame-composition {
    position: relative;
    width: 100%;
    height: 600px;
}

.td-handwriting-badge {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 6;
    display: flex;
    align-items: center;
    gap: 15px;
}

.td-handwriting-text {
    font-family: 'Allura', cursive;
    font-size: 34px;
    line-height: 1.1;
    color: #4a4a4a;
    text-align: right;
}

.td-badge-line {
    width: 50px;
    height: 1.5px;
    background-color: #8B3A42;
    display: inline-block;
}

.td-texture-bg-single {
    position: absolute !important;
    display: block !important;
    top: 50px !important;
    left: 200px !important;
    width: 420px !important;
    height: 520px !important;
    z-index: 1 !important;
    overflow: hidden;
    border-radius: 2px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.06);
}

.td-texture-bg-single img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.td-card-main {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 440px !important;
    height: 560px !important;
    z-index: 2 !important;
    border-radius: 2px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12);
}

.td-card-overlay-red {
    position: absolute !important;
    bottom: 20px !important;
    right: 0 !important;
    width: 480px !important;
    height: 360px !important;
    z-index: 3 !important;
    border-radius: 2px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.15);
}

.td-img-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.td-img-card:hover img {
    transform: scale(1.03);
}


@media (max-width: 1366px) {
    .td-legame-composition {
        height: 520px;
    }

    .td-card-main {
        width: 360px !important;
        height: 470px !important;
    }

    .td-card-overlay-red {
        width: 400px !important;
        height: 300px !important;
        bottom: 10px !important;
    }

    .td-texture-bg-single {
        left: 160px !important;
        width: 340px !important;
        height: 430px !important;
        top: 40px !important;
    }

    .td-handwriting-text {
        font-size: 28px;
    }
}

@media (max-width: 1024px) {
    .td-legame-wrapper-full {
        grid-template-columns: 1fr;
        padding: 0 30px;
        gap: 40px;
    }

    .td-legame-composition {
        height: 480px;
        max-width: 720px;
        margin: 0 auto;
    }

    .td-card-main {
        width: 320px !important;
        height: 430px !important;
    }

    .td-card-overlay-red {
        width: 370px !important;
        height: 280px !important;
    }

    .td-texture-bg-single {
        left: 140px !important;
        width: 310px !important;
        height: 400px !important;
    }
}

@media (max-width: 768px) {
    .td-legame-composition {
        height: auto;
        display: flex;
        flex-direction: column;
        gap: 20px;
    }

    .td-handwriting-badge {
        position: relative;
        top: auto;
        right: auto;
        justify-content: flex-end;
    }

    .td-texture-bg-single {
        display: none !important;
    }

    .td-card-main,
    .td-card-overlay-red {
        position: relative !important;
        width: 100% !important;
        height: 300px !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
    }
}
 
.td-tailoring-section {
    background-color: #fdfbf7;
    padding: 0 0 40px 0;
    width: 100%;
    overflow: hidden;
}

.td-tailoring-wrapper-full {
    display: grid;
    grid-template-columns: 1.2fr 1fr; 
    align-items: stretch;
    width: 100%;
    max-width: 100%; 
    margin: 0;
}

.td-tailoring-image-wrapper {
    position: relative;
    width: 100%;
    height: 560px;
    overflow: hidden;
}

.td-tailoring-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.td-tailoring-image-wrapper:hover img {
    transform: scale(1.03);
}

.td-tailoring-box-bordeaux {
    background-color: #5A2228; 
    padding: 70px 80px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #ffffff;
}

.td-tailoring-box-bordeaux .ca-kicker {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 25px;
}

.td-tailoring-box-bordeaux .ca-kicker-line {
    width: 35px;
    height: 1.5px;
    background-color: rgba(255, 255, 255, 0.6);
}

.td-tailoring-box-bordeaux .ca-kicker-text {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    color: rgba(255, 255, 255, 0.9);
}

.td-tailoring-title-white {
    font-family: 'Cormorant Garamond', serif;
    font-size: 42px;
    font-weight: 600;
    line-height: 1.15;
    color: #ffffff;
    margin-bottom: 25px;
}

.td-tailoring-desc-white {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 35px;
}


.td-btn-cream {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background-color: #f3efe6;
    color: #111111;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    padding: 16px 30px;
    border-radius: 2px;
    text-decoration: none;
    width: fit-content;
    position: relative;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}


.td-btn-cream i {
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

/* Effetto Hover Dinamico */
.td-btn-cream:hover {
    background-color: #ffffff;
    color: #5A2228; /* Borgogna ufficiale Connemara */
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}

.td-btn-cream:hover i {
    transform: translateX(5px);
}


 

/* Responsive per Tablet e Smartphone */
@media (max-width: 1024px) {
    .td-tailoring-wrapper-full {
        grid-template-columns: 1fr;
    }

    .td-tailoring-image-wrapper {
        height: 400px;
    }

    .td-tailoring-box-bordeaux {
        padding: 50px 30px;
    }

    .td-tailoring-title-white {
        font-size: 34px;
    }
}
/* 4. Griglia 3 Card (Tessuti / Tende / Complementi) */

.td-cards-section {
    background-color: #fdfbf7;
    padding: 15px 0; /* Margine simmetrico sopra e sotto */
    width: 100%;
}

.td-cards-container-full {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px; /* Piccolo margine tra le immagini */
    width: 100%;
    max-width: 100%;
    padding: 0 15px; /* Margine laterale coerente */
}

.td-card-item {
    position: relative;
    display: block;
    background-color: #111111;
    border-radius: 2px;
    overflow: hidden;
    height: 480px;
}

.td-card-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.td-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.td-card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0) 100%);
}

.td-card-content {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 40px;
    color: #ffffff;
    z-index: 2;
}

.td-card-content h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 8px;
    color: #ffffff;
}

.td-card-content p {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 20px;
    line-height: 1.5;
}

.td-card-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: #5A2228;
    color: #ffffff;
    border-radius: 50%;
    transition: transform 0.3s ease, background-color 0.3s ease;
}

.td-card-item:hover .td-card-img img {
    transform: scale(1.05);
}

.td-card-item:hover .td-card-arrow {
    transform: translateX(5px);
    background-color: #8B3A42;
}


/* ==========================================
   TENDAGGI - BANNER FINALE CTA FULL-WIDTH
   ========================================== */
.td-bottom-cta-section {
    position: relative;
    width: 100%;
    height: 480px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin-top: 15px; /* Coerente con la spaziatura delle card sopra */
}

.td-cta-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.td-cta-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.td-cta-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.55); /* Sfumatura scura per leggibilità testo */
    z-index: 2;
}

.td-cta-content {
    position: relative;
    z-index: 3;
    text-align: center;
    padding: 0 20px;
    max-width: 900px;
}

.td-cta-content h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 52px;
    font-weight: 600;
    line-height: 1.15;
    color: #ffffff;
    margin-bottom: 30px;
    text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

.td-cta-content .td-btn-cream {
    margin: 0 auto;
}


/* ==========================================
   RESPONSIVE TABLET & MOBILE
   ========================================== */
@media (max-width: 1024px) {
    .td-cards-container-full {
        grid-template-columns: 1fr;
        padding: 0 15px;
    }

    .td-card-item {
        height: 380px;
    }

    .td-cta-content h2 {
        font-size: 38px;
    }
}






/* ==========================================
   RESPONSIVE TABLET & MOBILE
   ========================================== */
@media (max-width: 1024px) {
    .td-hero-content-container {
        justify-content: center;
        padding: 60px 20px;
    }

    .td-hero-text-box {
        text-align: left;
        max-width: 100%;
    }

    .td-hero-text-box .ca-kicker {
        justify-content: flex-start;
    }

    .td-hero-text-box .ca-kicker-line {
        order: 1;
        margin-left: 0;
        margin-right: 15px;
    }

    .td-legame-container,
    .td-tailoring-wrapper-full {
        grid-template-columns: 1fr;
        padding-left: 20px;
        padding-right: 20px;
        gap: 40px;
    }

    .td-legame-images {
        height: 380px;
    }

    .td-tailoring-image-wrapper {
        height: 380px;
        border-radius: 4px;
    }

    .td-cards-container {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

@media (max-width: 576px) {
    .td-hero-title-white {
        font-size: 42px;
    }
}




/* ==========================================
   PAGE: PARTNER (PT-PREFIX)
   ========================================== */

/* 1. Hero Section */
.pt-hero-section {
    position: relative;
    width: 100%;
    min-height: 80vh;
    display: flex;
    align-items: center;
    background-color: #111111;
    overflow: hidden;
}

.pt-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.pt-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.pt-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to left, 
        rgba(253, 251, 247, 0.95) 0%, 
        rgba(253, 251, 247, 0.80) 35%, 
        rgba(253, 251, 247, 0.2) 70%, 
        rgba(253, 251, 247, 0) 100%
    );
    z-index: 2;
}

.pt-hero-container {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 1750px;
    margin: 0 auto;
    padding: 80px max(50px, calc((100vw - 1400px) / 2));
    display: flex;
    justify-content: flex-end;
}

.pt-hero-text-box {
    max-width: 540px;
    text-align: left;
}

.pt-hero-text-box .ca-kicker {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.pt-hero-text-box .ca-kicker-text {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #111111;
}

.pt-hero-text-box .ca-kicker-line {
    width: 50px;
    height: 1.5px;
    background-color: var(--accent-gold, #8B3A42);
}

.pt-hero-title {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 64px;
    font-weight: 600;
    line-height: 1.05;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 25px;
}

.pt-hero-desc {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 15px;
    line-height: 1.8;
    color: #444444;
}

/* ==========================================
   GRIGLIA LOGHI PARTNER (TEXTURE MARMORIZZATA & MONO)
   ========================================== */
.pt-logos-section {
    background-image: url('../img/partner/background-partner-bg.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 70px 0;
    width: 100%;
}

.pt-logos-container {
    max-width: 1700px;
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    flex-direction: column;
    gap: 2px; /* Margine sottile per formare la griglia delicata come negli obiettivi */
}

.pt-logo-grid {
    display: grid;
    gap: 2px;
    width: 100%;
}

.pt-logo-grid.grid-4 {
    grid-template-columns: repeat(4, 1fr);
}

.pt-logo-grid.grid-3 {
    grid-template-columns: repeat(3, 1fr);
    max-width: 1275px; /* Proporzionato per 3 colonne su 4 */
    margin: 0 auto;
}

/* Card senza riquadro bianco (trasparente con sottile bordo sfumato o pulita) */
.pt-logo-card {
    background-color: rgba(255, 255, 255, 0.4); /* Sfondo leggerissimo o completamente trasparente a seconda dei gusti */
    border: 1px solid rgba(0, 0, 0, 0.04);
    height: 130px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 30px;
    transition: background-color 0.3s ease, transform 0.3s ease;
}

.pt-logo-card:hover {
    background-color: rgba(255, 255, 255, 0.85);
    transform: translateY(-2px);
}

.pt-logo-card img {
    max-width: 75%;
    max-height: 55px;
    width: auto;
    height: auto;
    object-fit: contain;
    /* Inizialmente monocromatici (scala di grigi e leggermente desaturati) */
    filter: grayscale(100%) brightness(0.9);
    opacity: 0.8;
    transition: filter 0.4s ease, opacity 0.4s ease, transform 0.3s ease;
}

/* Al passaggio del mouse riprendono colore pieno */
.pt-logo-card:hover img {
    filter: grayscale(0%) brightness(1);
    opacity: 1;
    transform: scale(1.03);
}

/* Responsive */
@media (max-width: 1024px) {
    .pt-logo-grid.grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
    .pt-logo-grid.grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 576px) {
    .pt-logos-container {
        padding: 0 15px;
    }
    .pt-logo-grid.grid-4,
    .pt-logo-grid.grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }
    .pt-logo-card {
        height: 100px;
        padding: 10px;
    }
}

/* 3. Mosaico Galleria Partner */
.pt-mosaic-section {
    background-color: var(--section-gap-bg, #fdfbf7);
    padding: 20px 0;
    width: 100%;
}

.pt-mosaic-container-full {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 100%;
    padding: 0 15px;
}

.pt-mosaic-item {
    position: relative;
    overflow: hidden;
    border-radius: 2px;
}

.pt-mosaic-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.pt-mosaic-item:hover img {
    transform: scale(1.03);
}

.item-top-full {
    height: 380px;
}

.pt-mosaic-row-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    height: 380px;
}

.item-bottom-full {
    height: 380px;
}

/* 4. Banner CTA Finale */
.pt-bottom-cta-section {
    position: relative;
    width: 100%;
    min-height: 480px;
    display: flex;
    align-items: center;
    overflow: hidden;
    margin-top: 15px;
}

.pt-cta-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.pt-cta-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pt-cta-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to right, 
        rgba(253, 251, 247, 0.92) 0%, 
        rgba(253, 251, 247, 0.75) 45%, 
        rgba(253, 251, 247, 0.1) 80%
    );
    z-index: 2;
}

.pt-cta-content-left {
    position: relative;
    z-index: 3;
    max-width: 560px;
    padding-left: max(50px, calc((100vw - 1400px) / 2));
    padding-right: 30px;
}

.pt-cta-title {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 48px;
    font-weight: 600;
    line-height: 1.15;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 20px;
}

.pt-cta-divider {
    width: 80px;
    height: 2px;
    background-color: var(--accent-gold, #8B3A42);
    margin-bottom: 20px;
}

.pt-cta-desc {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 14px;
    line-height: 1.8;
    color: #444444;
    margin-bottom: 30px;
}

/* Bottone Scuro Dinamico per CTA */
.pt-btn-dark {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    padding: 16px 30px;
    border-radius: 2px;
    text-decoration: none;
    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

.pt-btn-dark i {
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

.pt-btn-dark:hover {
    background-color: var(--btn-dark-hover, #6E2A32);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

.pt-btn-dark:hover i {
    transform: translateX(5px);
}

/* ==========================================
   RESPONSIVE TABLET & MOBILE
   ========================================== */
@media (max-width: 1024px) {
    .pt-hero-container {
        justify-content: center;
    }

    .pt-hero-text-box {
        max-width: 100%;
    }

    .pt-logo-grid.grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .pt-logo-grid.grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }

    .pt-mosaic-row-3 {
        grid-template-columns: 1fr;
        height: auto;
    }

    .pt-mosaic-row-3 .pt-mosaic-item {
        height: 300px;
    }

    .item-top-full, .item-bottom-full {
        height: 260px;
    }

    .pt-cta-content-left {
        padding-left: 30px;
        max-width: 100%;
    }

    .pt-cta-title {
        font-size: 36px;
    }
}

@media (max-width: 576px) {
    .pt-hero-title {
        font-size: 42px;
    }

    .pt-logo-grid.grid-4,
    .pt-logo-grid.grid-3 {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .pt-logo-card {
        height: 90px;
        padding: 10px 15px;
    }
}

/* ==========================================
   PARTNER - BANNER FINALE CTA (TITOLO & BTN FIX)
   ========================================== */
.pt-cta-content-left {
    position: relative;
    z-index: 3;
    max-width: 620px; /* Larghezza sufficiente per mantenere il titolo su 2 righe */
    padding-left: max(50px, calc((100vw - 1400px) / 2));
    padding-right: 30px;
}

.pt-cta-title {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 50px;
    font-weight: 500;
    line-height: 1.15;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 18px;
    white-space: normal;
}

.pt-cta-divider {
    width: 65px;
    height: 1.5px;
    background-color: var(--accent-gold, #8B3A42);
    margin-bottom: 22px;
}

.pt-cta-desc {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 14px;
    line-height: 1.75;
    color: #444444;
    margin-bottom: 30px;
    max-width: 520px;
}

/* Pulsante Scuro Esteso su Singola Riga e Dinamico */
.pt-btn-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    padding: 16px 32px;
    border-radius: 2px;
    text-decoration: none;
    white-space: nowrap; /* Impedisce al testo del pulsante di andare a capo */
    width: fit-content;
    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

.pt-btn-dark i {
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

.pt-btn-dark:hover {
    background-color: var(--btn-dark-hover, #6E2A32);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(90, 34, 40, 0.25);
}

.pt-btn-dark:hover i {
    transform: translateX(5px);
}

/* ==========================================
   PAGE: CONTATTI (CT-PREFIX) - FULL WIDTH
   ========================================== */

/* 1. Hero Contatti */
.ct-hero-section {
    position: relative;
    width: 100%;
    min-height: 85vh;
    display: flex;
    align-items: center;
    background-color: #111;
    overflow: hidden;
}
.ct-hero-bg {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%; z-index: 1;
}
.ct-hero-bg img {
    width: 100%; height: 100%; object-fit: cover;
}
.ct-hero-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(to left, rgba(253,251,247,0.96) 0%, rgba(253,251,247,0.85) 40%, rgba(253,251,247,0.2) 75%, transparent 100%);
    z-index: 2;
}
.ct-hero-container {
    position: relative; z-index: 3; width: 100%; max-width: 1800px; margin: 0 auto;
    padding: 80px max(40px, calc((100vw - 1500px) / 2));
    display: flex; justify-content: flex-end;
}
.ct-hero-text-box { max-width: 580px; text-align: left; }
.ct-hero-subtitle {
    font-size: 12px; font-weight: 700; letter-spacing: 2.5px; color: #111; display: block; margin-bottom: 12px;
}
.ct-hero-title {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 72px; font-weight: 600; line-height: 1; color: var(--bg-dark, #5A2228); margin-bottom: 10px;
}
.ct-hero-lead {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 26px; font-style: italic; color: #333; margin-bottom: 20px;
}
.ct-hero-desc {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 15px; line-height: 1.8; color: #444; margin-bottom: 30px;
}
/* ==========================================
   FIX SCRITTA PNG HERO CONTATTI
   ========================================== */
.ct-hero-handwriting {
    margin-top: 25px;
    display: flex;
    justify-content: flex-end;  
    width: 100%;
}

.ct-hero-handwriting img {
    max-width: 240px;  
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
}

/* 2. Showroom Section */  
.ct-showroom-section {
    width: 100%;
    margin-top: 5px; /* Margine minimo dalla Hero superiore */
    background-color: #fdfbf7;
    overflow: hidden;
}

.ct-showroom-wrapper-full {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    margin: 0;
}

/* Immagine Negozio a Sinistra con Zoom-in Ultra Fluido */
.ct-showroom-img {
    position: relative;
    height: 520px;
    overflow: hidden;
    background-color: #111;
}

.ct-showroom-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    backface-visibility: hidden;
    transform: scale3d(1, 1, 1);
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

/* Lo zoom scatta SOLO quando il cursore va sopra l'immagine stessa */
.ct-showroom-img:hover img {
    transform: scale3d(1.04, 1.04, 1);
}

/* Box Destra con Sfondo Ancorato a DX e Sfumato verso SX */
.ct-showroom-content-bg {
    position: relative;
    display: flex;
    align-items: center;
    padding: 60px 80px;
    height: 520px;
    overflow: hidden;
    background-color: #fdfbf7;
}

.ct-showroom-bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.ct-showroom-bg-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center; /* L'immagine parte da DX */
    display: block;
}

/* Overlay Sfumato: Pieno panna a sinistra, trasparente verso destra */
.ct-showroom-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to right, 
        #fdfbf7 0%, 
        rgba(253, 251, 247, 0.95) 35%, 
        rgba(253, 251, 247, 0.6) 65%, 
        rgba(253, 251, 247, 0.15) 100%
    );
    z-index: 2;
}

/* Contenuto Testuale */
.ct-showroom-text-inner {
    position: relative;
    z-index: 3;
    max-width: 520px;
}

.ct-showroom-title {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 46px;
    font-weight: 600;
    line-height: 1.15;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 20px;
}

.ct-showroom-desc {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 14px;
    line-height: 1.8;
    color: #444444;
    margin-bottom: 30px;
}

/* Responsive */
@media (max-width: 1024px) {
    .ct-showroom-wrapper-full {
        grid-template-columns: 1fr;
    }

    .ct-showroom-img, 
    .ct-showroom-content-bg {
        height: 400px;
    }

    .ct-showroom-content-bg {
        padding: 40px 30px;
    }
}





/* 3. Info & Map Section */ 
  

.ct-info-map-section {
    position: relative;
    width: 100%;
    margin-top: 5px;
    overflow: hidden;
    background-color: #f3eae0;
    display: flex;
    align-items: center;
}

.ct-info-map-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.ct-info-map-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
}

/* Sfumatura morbida color avorio/pergamena a sinistra per Desktop */
.ct-info-map-bg::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 55%; /* Copre l'area dei testi a sinistra */
    height: 100%;
    background: linear-gradient(
        to right, 
        rgba(253, 251, 247, 0.95) 0%, 
        rgba(253, 251, 247, 0.82) 50%, 
        rgba(253, 251, 247, 0.35) 80%, 
        rgba(253, 251, 247, 0) 100%
    );
    pointer-events: none;
    z-index: 2;
}

.ct-info-map-container {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 1750px;
    margin: 0 auto;
    padding: 60px 50px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    min-height: clamp(600px, 45vw, 850px);
}

/* Box Contatti a Sinistra */
.ct-info-left-content {
    max-width: 480px;
}

.ct-info-title {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 48px;
    font-weight: 600;
    line-height: 1.15;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 20px;
}

.ct-info-desc {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 14px;
    line-height: 1.75;
    color: #333333; /* Un punto più scuro per massima nitidezza */
    font-weight: 500;
    margin-bottom: 30px;
}

.ct-info-list {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ct-info-list li {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.ct-info-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
    box-shadow: 0 3px 10px rgba(90, 34, 40, 0.15);
}

.ct-info-text {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 13px;
    line-height: 1.6;
    color: #222222;
}

.ct-info-text strong {
    color: #111111;
    font-weight: 600;
}

/* Pulsante Google Maps */
.ct-map-btn-wrapper {
    display: inline-block;
}

.ct-map-btn-wrapper .ca-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    padding: 16px 32px;
    border-radius: 2px;
    text-decoration: none;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
}

.ct-map-btn-wrapper .ca-btn-primary:hover {
    background-color: var(--btn-dark-hover, #6E2A32);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(90, 34, 40, 0.3);
}

@media (min-width: 1025px) {
    .ct-info-map-container {
        position: relative;
    }
    .ct-map-btn-wrapper {
        position: absolute;
        right: 50px;
        bottom: 60px;
    }
}


/* ==========================================
   BREAKPOINT TABLET (769px - 1024px)
   ========================================== */
@media (max-width: 1024px) and (min-width: 769px) {
    /* Sfumatura avorio estesa e leggermente più coprente per contrastare le strade e le foglie */
    .ct-info-map-bg::after {
        width: 65%;
        background: linear-gradient(
            to right, 
            rgba(253, 251, 247, 0.97) 0%, 
            rgba(253, 251, 247, 0.88) 60%, 
            rgba(253, 251, 247, 0.25) 88%, 
            rgba(253, 251, 247, 0) 100%
        );
    }

    .ct-info-map-container {
        padding: 50px 35px;
    }

    .ct-info-left-content {
        max-width: 450px;
    }
}


/* ==========================================
   BREAKPOINT MOBILE (< 768px)
   ========================================== */
@media (max-width: 768px) {
    .ct-info-map-section {
        background-color: #fdfbf7;
        min-height: auto;
        padding: 50px 0;
    }

    .ct-info-map-bg {
        display: none !important;
    }

    .ct-info-map-container {
        padding: 0 25px;
        min-height: auto;
        flex-direction: column;
        align-items: flex-start;
    }

    .ct-info-left-content {
        max-width: 100%;
        width: 100%;
    }

    .ct-info-title {
        font-size: 38px;
    }

    .ct-map-btn-wrapper {
        width: 100%;
        margin-top: 10px;
    }

    .ct-map-btn-wrapper .ca-btn-primary {
        width: 100%;
        justify-content: center;
        padding: 16px 20px;
    }
}


/* 4. Inspiration Parallax Section */ 
.ct-inspiration-section {
    position: relative;
    width: 100%;
    min-height: 480px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin-top: 5px;
    
    /* Immagine di sfondo impostata direttamente in CSS e resa statica/fissa */
    background-image: url('../img/laboratorio/02.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed; /* Mantiene lo sfondo immobile durante lo scroll della pagina */
}

.ct-inspiration-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.55); /* Overlay scuro per leggibilità testo */
    z-index: 1;
}

.ct-inspiration-content {
    position: relative;
    z-index: 2;
    text-align: center;
    color: #fff;
    max-width: 800px;
    padding: 0 20px;
}

.ct-inspiration-content h2 {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 48px;
    font-weight: 600;
    margin-bottom: 20px;
}

.ct-inspiration-content p {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 14px;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 30px;
}

.ct-inspiration-content .ct-btn-cream {
    margin: 0 auto;
}

/* 5. Form Section (Image Left/Gradient, Form Right) */
/* ==========================================
   CONTATTI - SEZIONE FORM (IMMAGINE SX, SFUMATURA LUNGA, NO BOX)
   ========================================== */
.ct-form-section {
    position: relative;
    width: 100%;
    background-color: #fdfbf7;
    overflow: hidden;
    margin-top: 5px;
}

.ct-form-container-full {
    display: grid;
    grid-template-columns: 1.1fr 1fr; /* Spazio generoso per l'immagine a sinistra */
    align-items: center;
    width: 100%;
    max-width: 100%;
}

/* Immagine a Sinistra */
.ct-form-img-side {
    position: relative;
    height: 100%;
    min-height: 620px;
    overflow: hidden;
}

.ct-form-img-side img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Sfumatura che si fonde verso destra sul colore panna/avorio del sito */
.ct-form-img-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to right, 
        rgba(253, 251, 247, 0.05) 0%, 
        rgba(253, 251, 247, 0.4) 50%, 
        rgba(253, 251, 247, 0.92) 80%, 
        #fdfbf7 100%
    );
    z-index: 2;
}

/* Contenuto Form a Destra (Senza alcun riquadro bianco) */
.ct-form-content-side {
    position: relative;
    z-index: 3;
    padding: 80px 90px 80px 40px;
    background-color: transparent; /* Nessun riquadro o box di sfondo */
}

.ct-form-wrapper-clean {
    max-width: 600px;
}

.ct-form-wrapper-clean h2 {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 46px;
    font-weight: 600;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 15px;
    line-height: 1.15;
}

.ct-form-sub {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 14px;
    line-height: 1.75;
    color: #555555;
    margin-bottom: 30px;
}

/* Campi del Form puliti con leggeri bordi */
.ct-elegant-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ct-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.ct-form-group input, 
.ct-form-group select, 
.ct-form-group textarea {
    width: 100%;
    padding: 16px 20px;
    border: 1px solid #dcd5c9;
    background-color: rgba(255, 255, 255, 0.85); /* Leggero tocco traslucido per leggibilità perfetta */
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 13px;
    color: #333333;
    border-radius: 2px;
    outline: none;
    transition: border-color 0.3s ease, background-color 0.3s ease;
}

.ct-form-group input:focus, 
.ct-form-group select:focus, 
.ct-form-group textarea:focus {
    border-color: var(--bg-dark, #5A2228);
    background-color: #ffffff;
}

.ct-form-group-checkbox {
    font-size: 12px;
    color: #666666;
    margin-top: 5px;
}

.ct-checkbox-label {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
}

.ct-checkbox-label a {
    color: var(--bg-dark, #5A2228);
    text-decoration: underline;
}

/* Bottone Invio Bordeaux Dinamico */
.ct-btn-dark-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    padding: 16px 35px;
    border: none;
    border-radius: 2px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    width: fit-content;
    margin-top: 10px;
}

.ct-btn-dark-submit i {
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

.ct-btn-dark-submit:hover {
    background-color: var(--btn-dark-hover, #6E2A32);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(90, 34, 40, 0.25);
}

.ct-btn-dark-submit:hover i {
    transform: translateX(5px);
}

/* Responsive */
@media (max-width: 1024px) {
    .ct-form-container-full {
        grid-template-columns: 1fr;
    }
    .ct-form-img-side {
        min-height: 350px;
    }
    .ct-form-content-side {
        padding: 50px 25px;
    }
}

@media (max-width: 576px) {
    .ct-form-row {
        grid-template-columns: 1fr;
    }
}

/* ==========================================
   CONTATTI - BLOCCO SERVIZI (IMMAGINE FULL-BLEED SX)
   ========================================== */
.ct-services-section {
    position: relative;
    width: 100%;
    background-color: #fdfbf7;
    padding: 90px 0; /* Generoso respiro verticale per la sezione */
    overflow: hidden;
    margin-top: 5px;
    border-bottom: 2px solid var(--bg-dark, #5A2228);
}

/* Immagine attaccata A VIVO al bordo SX, TOP e BOTTOM dell'intera sezione */
.ct-services-left-bg {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 450px; /* Larghezza ideale per un'eccellente resa visiva */
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.ct-services-left-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left center;
    display: block;
}

/* Overlay che sfuma in modo morbido da sinistra verso destra */
.ct-services-bg-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to right, 
        rgba(253, 251, 247, 0) 0%, 
        rgba(253, 251, 247, 0.35) 45%, 
        rgba(253, 251, 247, 0.85) 75%, 
        #fdfbf7 100%
    );
}

.ct-services-container-full {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1750px;
    margin: 0 auto;
    padding: 0 40px;
}

/* Griglia 4 Colonne */
.ct-services-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    width: 100%;
}

.ct-service-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 15px 30px;
    position: relative;
    transition: transform 0.3s ease;
}

.ct-service-item:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 15%;
    height: 70%;
    width: 1px;
    background-color: rgba(90, 34, 40, 0.15);
}

.ct-service-item:hover {
    transform: translateY(-3px);
}

/* Icona Bordeaux */
.ct-service-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 1px solid var(--bg-dark, #5A2228);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 22px;
    background-color: rgba(253, 251, 247, 0.95);
    transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

/* Hover senza giallo: Fondo Bordeaux e Icona Bianca */
.ct-service-item:hover .ct-service-icon {
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(90, 34, 40, 0.25);
}

.ct-service-item h3 {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.5px;
    line-height: 1.35;
    color: #111111;
    margin-bottom: 14px;
}

.ct-service-item p {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 13px;
    line-height: 1.7;
    color: #555555;
    max-width: 280px;
    margin: 0 auto;
}

/* Responsive */
@media (max-width: 1024px) {
    .ct-services-left-bg {
        width: 250px;
    }
    .ct-services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 0;
    }
    .ct-service-item:not(:last-child)::after {
        display: none;
    }
}

@media (max-width: 576px) {
    .ct-services-left-bg {
        display: none;
    }
    .ct-services-grid {
        grid-template-columns: 1fr;
        gap: 35px 0;
    }
}
/* Griglia 4 Colonne */
.ct-services-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    width: 100%;
}

.ct-service-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 20px 30px;
    position: relative;
    transition: transform 0.3s ease;
}

/* Separatore verticale delicato tra le colonne (tranne l'ultima) */
.ct-service-item:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 15%;
    height: 70%;
    width: 1px;
    background-color: rgba(90, 34, 40, 0.12); /* Separatore sottile in bordeaux desaturato */
}

.ct-service-item:hover {
    transform: translateY(-3px);
}

/* Icona Bordeaux con cerchio delicato attorno */
.ct-service-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 1px solid var(--bg-dark, #5A2228);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 22px;
    background-color: rgba(253, 251, 247, 0.9);
    transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

/* Hover rigorosamente SENZA GIALLO: Sfondo Bordeaux e Icona Bianca */
.ct-service-item:hover .ct-service-icon {
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(90, 34, 40, 0.2);
}

.ct-service-item h3 {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.5px;
    line-height: 1.35;
    color: #111111;
    margin-bottom: 14px;
}

.ct-service-item p {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 13px;
    line-height: 1.7;
    color: #555555;
    max-width: 280px;
    margin: 0 auto;
}

/* Responsive Tablet & Mobile */
@media (max-width: 1024px) {
    .ct-services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 0;
    }

    .ct-service-item:not(:last-child)::after {
        display: none;
    }

    .ct-services-left-bg {
        width: 200px;
    }
}

@media (max-width: 576px) {
    .ct-services-grid {
        grid-template-columns: 1fr;
        gap: 35px 0;
    }
    
    .ct-services-left-bg {
        display: none;
    }
}

/* ==========================================
   FIX HERO CONTATTI MOBILE (< 768px)
   ========================================== */
@media (max-width: 768px) {
    .ct-hero-section {
        min-height: 90vh;
        padding-top: 40px;
        padding-bottom: 40px;
    }

    /* Sfumatura più chiara e coprente su mobile per la massima leggibilità */
    .ct-hero-overlay {
        background: linear-gradient(
            to top, 
            rgba(253, 251, 247, 0.98) 0%, 
            rgba(253, 251, 247, 0.90) 50%, 
            rgba(253, 251, 247, 0.65) 100%
        );
    }

    .ct-hero-container {
        padding: 40px 20px;
        justify-content: center;
    }

    .ct-hero-text-box {
        max-width: 100%;
        text-align: center; /* Centriamo il testo su mobile per un layout più armonioso */
    }

    .ct-hero-title {
        font-size: 48px; /* Dimensione ridotta e proporzionata per schermi piccoli */
    }

    .ct-hero-lead {
        font-size: 20px;
        margin-bottom: 15px;
    }

    .ct-hero-desc {
        font-size: 14px;
        line-height: 1.6;
        margin-bottom: 25px;
        color: #222222; /* Colore leggermente più scuro per aumentare il contrasto */
    }

    .ct-hero-handwriting {
        justify-content: center; /* Centrata o allineata a destra in basso */
        margin-top: 20px;
    }

    .ct-hero-handwriting img {
        max-width: 190px; /* Riduzione proporzionata dell'immagine PNG */
    }
}


/* ==========================================
   FIX HERO CONTATTI MOBILE (COMPATTA & CENTRATA)
   ========================================== */
@media (max-width: 768px) {
    .ct-hero-section {
        min-height: auto; /* Toglie l'altezza eccessiva da 90vh/100vh */
        padding-top: 60px;
        padding-bottom: 60px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* Overlay chiaro uniforme per garantire la massima leggibilità dei testi */
    .ct-hero-overlay {
        background: linear-gradient(
            to bottom, 
            rgba(253, 251, 247, 0.92) 0%, 
            rgba(253, 251, 247, 0.88) 50%, 
            rgba(253, 251, 247, 0.95) 100%
        );
    }

    .ct-hero-container {
        padding: 0 20px;
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .ct-hero-text-box {
        max-width: 100%;
        text-align: center; /* Centratura armonica del blocco testo */
        margin: 0 auto;
    }

    .ct-hero-title {
        font-size: 42px;
        margin-bottom: 8px;
    }

    .ct-hero-lead {
        font-size: 18px;
        margin-bottom: 15px;
    }

    .ct-hero-desc {
        font-size: 13.5px;
        line-height: 1.65;
        color: #333333;
        margin-bottom: 25px;
        padding: 0 5px;
    }

    /* Centratura e spaziatura bilanciata per l'immagine PNG della scritta */
    .ct-hero-handwriting {
        display: flex;
        justify-content: center;
        align-items: center;
        margin-top: 20px;
        margin-bottom: 10px;
    }

    .ct-hero-handwriting img {
        max-width: 210px; /* Dimensione ideale e nitida su mobile */
        width: 100%;
        height: auto;
    }
}


/* FORM CONTATTI HAUTE COUTURE   */

.ct-form-couture-title {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 48px;
    font-weight: 600;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 12px;
    line-height: 1.1;
    letter-spacing: -0.5px;
}

.ct-form-haute-couture {
    display: flex;
    flex-direction: column;
    gap: 32px;
    margin-top: 20px;
}

.ct-couture-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 35px;
}

/* Campo Singolo Fluttuante */
.ct-couture-field {
    position: relative;
    width: 100%;
}

.ct-couture-field input,
.ct-couture-field select,
.ct-couture-field textarea {
    width: 100%;
    padding: 14px 0 10px 0;
    border: none;
    border-bottom: 1px solid rgba(90, 34, 40, 0.25);
    background: transparent;
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 14px;
    color: #111111;
    outline: none;
    border-radius: 0;
    transition: all 0.3s ease;
}

/* Label Fluttuante Sartoriale */
.ct-couture-field label {
    position: absolute;
    top: 14px;
    left: 0;
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 13px;
    color: #777777;
    pointer-events: none;
    transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
    letter-spacing: 0.5px;
}

/* Effetto Sottolineatura Animata in Focus */
.ct-field-line {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--bg-dark, #5A2228);
    transition: width 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

/* Animazione Label all'inserimento del testo o Focus */
.ct-couture-field input:focus ~ label,
.ct-couture-field input:not(:placeholder-shown) ~ label,
.ct-couture-field select:focus ~ label,
.ct-couture-field select:valid ~ label,
.ct-couture-field textarea:focus ~ label,
.ct-couture-field textarea:not(:placeholder-shown) ~ label {
    top: -12px;
    font-size: 11px;
    font-weight: 600;
    color: var(--bg-dark, #5A2228);
    letter-spacing: 1px;
    text-transform: uppercase;
}

.ct-couture-field input:focus ~ .ct-field-line,
.ct-couture-field select:focus ~ .ct-field-line,
.ct-couture-field textarea:focus ~ .ct-field-line {
    width: 100%;
}

/* Select Personalizzata */
.ct-select-wrapper {
    position: relative;
}

.ct-select-wrapper select {
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.ct-select-arrow {
    position: absolute;
    right: 0;
    top: 14px;
    font-size: 11px;
    color: var(--bg-dark, #5A2228);
    pointer-events: none;
    transition: transform 0.3s ease;
}

.ct-couture-field select:focus ~ .ct-select-arrow {
    transform: rotate(180deg);
}

/* Textarea Minimal */
.ct-couture-field textarea {
    resize: vertical;
    min-height: 90px;
}


/* CHECKBOX CUSTOM SARTORIALE (Senza il quadrato basico) */
.ct-couture-checkbox-group {
    margin-top: 5px;
}

.ct-custom-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    cursor: pointer;
    user-select: none;
}

/* Nasconde la checkbox nativa */
.ct-custom-checkbox input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* Il nuovo riquadro stilizzato bordeaux/oro */
.ct-checkbox-box {
    width: 20px;
    height: 20px;
    border: 1px solid var(--bg-dark, #5A2228);
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 1px;
    background-color: rgba(255, 255, 255, 0.6);
    transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

.ct-checkbox-box i {
    font-size: 10px;
    color: #ffffff;
    opacity: 0;
    transform: scale(0.5);
    transition: all 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Stato Checked */
.ct-custom-checkbox input:checked ~ .ct-checkbox-box {
    background-color: var(--bg-dark, #5A2228);
    border-color: var(--bg-dark, #5A2228);
    box-shadow: 0 3px 10px rgba(90, 34, 40, 0.25);
}

.ct-custom-checkbox input:checked ~ .ct-checkbox-box i {
    opacity: 1;
    transform: scale(1);
}

.ct-checkbox-text {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 12.5px;
    line-height: 1.6;
    color: #555555;
}

.ct-checkbox-text a {
    color: var(--bg-dark, #5A2228);
    text-decoration: underline;
    font-weight: 500;
}


/* BOTTONE HAUTE COUTURE */
.ct-btn-couture-submit {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    padding: 18px 42px;
    border: none;
    border-radius: 2px;
    cursor: pointer;
    overflow: hidden;
    width: fit-content;
    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    box-shadow: 0 6px 20px rgba(90, 34, 40, 0.18);
}

.ct-btn-couture-submit i {
    font-size: 13px;
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

.ct-btn-couture-submit:hover {
    background-color: var(--btn-dark-hover, #6E2A32);
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(90, 34, 40, 0.32);
}

.ct-btn-couture-submit:hover i {
    transform: translateX(6px);
}

/* Responsive */
@media (max-width: 768px) {
    .ct-couture-row {
        grid-template-columns: 1fr;
        gap: 25px;
    }
    .ct-btn-couture-submit {
        width: 100%;
    }
}


/* ==========================================
   STILI BANNER DI CONFERMA (FRONTEND)
   ========================================== */
.ct-form-msg {
    display: none;
    margin-top: 20px;
    padding: 16px 24px;
    border-radius: 4px;
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: 0.5px;
    transition: opacity 0.5s ease-in-out;
}

/* Banner Verde Successo */
.ct-msg-success {
    background-color: #e8f5e9;
    color: #2e7d32;
    border: 1px solid #a5d6a7;
    box-shadow: 0 4px 12px rgba(46, 125, 50, 0.12);
}

.ct-msg-success i {
    margin-right: 8px;
    font-size: 15px;
}

/* Banner Errore */
.ct-msg-error {
    background-color: #ffebee;
    color: #c62828;
    border: 1px solid #ef9a9a;
}

/* ==========================================
   STILI VALIDAZIONE CAMPI - "RICHIESTO"
   ========================================== */

/* Tag RICHIESTO nascosto di default */
.ct-required-tag,
.ct-required-tag-checkbox {
    display: none;
    font-size: 10px;
    font-weight: 700;
    color: #c62828;
    letter-spacing: 1px;
    margin-left: 6px;
    text-transform: uppercase;
}

/* Quando il campo è non valido */
.ct-couture-field.is-invalid input,
.ct-couture-field.is-invalid select,
.ct-couture-field.is-invalid textarea {
    border-bottom-color: #c62828 !important;
}

.ct-couture-field.is-invalid .ct-field-line {
    width: 100% !important;
    background-color: #c62828 !important;
}

.ct-couture-field.is-invalid label {
    top: -12px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    color: #c62828 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
}

.ct-couture-field.is-invalid .ct-required-tag {
    display: inline-block !important;
}

/* Checkbox Errore */
.ct-custom-checkbox.is-invalid .ct-checkbox-box {
    border-color: #c62828 !important;
    box-shadow: 0 0 0 2px rgba(198, 40, 40, 0.2);
}

.ct-custom-checkbox.is-invalid .ct-required-tag-checkbox {
    display: inline-block !important;
}

/* ==========================================
   GALLERY PAGE STYLES (HAUTE COUTURE)
   ========================================== */

/* Sfondo generale pagina gallery */
body {
    background-color: #fdfbf7;
}

/* HERO CON EFFETTO PARALLAX */
.gl-hero-section {
    position: relative;
    width: 100%;
    min-height: 480px;
    background-image: url('../img/partner/partner-bg.jpg'); /* Immagine di sfondo hero */
    background-attachment: fixed;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.gl-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to bottom, 
        rgba(253, 251, 247, 0.92) 0%, 
        rgba(253, 251, 247, 0.85) 50%, 
        rgba(253, 251, 247, 0.95) 100%
    );
    z-index: 1;
}

.gl-hero-container {
    position: relative;
    z-index: 2;
    padding: 60px 20px;
    max-width: 900px;
}

.gl-hero-title {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 58px;
    font-weight: 600;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 12px;
    letter-spacing: 1px;
}

.gl-hero-subtitle {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 15px;
    color: #444444;
    letter-spacing: 0.5px;
    font-weight: 400;
}


 

/* ==========================================
   RESET PULITO E RIPRISTINO STICKY ORIGINALE
   ========================================== */

/* 1. Assicuriamoci che i contenitori non blocchino lo sticky */
.gl-gallery-section {
    padding-top: 30px;
    overflow: visible !important;
}

.gl-container {
    overflow: visible !important;
}

/* 2. Ripristiniamo lo sticky nativo con il giusto distacco dal top */
.gl-filters-wrapper {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 95px !important; /* Altezza della tua barra bianca del menu */
    z-index: 99 !important;
    background: #fdfbf7 !important;
    padding: 20px 0 25px 0;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 25px;
    box-shadow: none !important;
}

.gl-filter-btn {
    background: transparent;
    border: 1px solid rgba(90, 34, 40, 0.2);
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #555555;
    padding: 10px 22px;
    border-radius: 2px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.gl-filter-btn:hover,
.gl-filter-btn.active {
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    border-color: var(--bg-dark, #5A2228);
    box-shadow: 0 4px 12px rgba(90, 34, 40, 0.2);
}


/* GRIGLIA A 4 COLONNE IN 16:9 */
.gl-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px; /* Margini simmetrici di pochi pixel tra le foto */
}

.gl-item {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9; /* Formato 16:9 perfetto */
    overflow: hidden;
    border-radius: 2px;
    background-color: #f0e6dc;
    opacity: 1;
    transform: scale(1);
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.gl-item.hide {
    display: none;
    opacity: 0;
}

.gl-item a {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
}

.gl-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}

/* HOVER EFFECT & OVERLAY CON ICONA */
.gl-item-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(90, 34, 40, 0.5); /* Velo bordeaux elegante */
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.35s ease;
}

.gl-item-overlay i {
    color: #ffffff;
    font-size: 22px;
    transform: scale(0.6);
    transition: transform 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.gl-item:hover img {
    transform: scale(1.05); /* Leggero zoom fluido all'interno del riquadro */
}

.gl-item:hover .gl-item-overlay {
    opacity: 1;
}

.gl-item:hover .gl-item-overlay i {
    transform: scale(1);
}


/* RESPONSIVE TABLET E MOBILE */
@media (max-width: 1200px) {
    .gl-grid {
        grid-template-columns: repeat(3, 1fr); /* 3 colonne su tablet grande */
    }
}

@media (max-width: 900px) {
    .gl-grid {
        grid-template-columns: repeat(2, 1fr); /* 2 colonne su tablet */
    }
    .gl-hero-title {
        font-size: 44px;
    }
}

@media (max-width: 580px) {
    .gl-grid {
        grid-template-columns: 1fr; /* 1 colonna su smartphone */
        gap: 10px;
    }
    .gl-gallery-section {
        padding: 30px 10px 60px 10px;
    }
}


/* ==========================================
   ANIMAZIONE E TRANSIZIONE FILTRO GALLERY
   ========================================== */
 

.gl-item {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 2px;
    background-color: #fdfbf7;
    opacity: 1;
}

/* Stato nascosto quando filtrato */
.gl-item.hide {
    display: none !important;
    opacity: 0;
}

/* Animazione di dissolvenza pura (senza sfarfallii di icone o ridimensionamenti) */
.gl-item.animate-in {
    animation: glPureFadeIn 3.5s ease-in-out forwards;
}

@keyframes glPureFadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

/* Manteniamo l'overlay dell'icona perfettamente stabile */
.gl-item-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(90, 34, 40, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none; /* Impedisce interferenze con il passaggio del mouse */
}

.gl-item-overlay i {
    color: #ffffff;
    font-size: 22px;
    transform: none; /* Rimuove qualsiasi variazione di scala che causava lo sfarfallio */
    transition: none;
}

.gl-item:hover .gl-item-overlay {
    opacity: 1;
}


/* ==========================================
   NEWS & SOCIAL PAGE STYLES
   ========================================== */

.news-social-section,
.news-articles-section {
    padding: 60px 20px;
    background-color: #fdfbf7;
}

.news-section-header {
    text-align: center;
    margin-bottom: 45px;
}

.news-tag {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #8c7355;
    display: inline-block;
    margin-bottom: 10px;
}

.news-section-title {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 38px;
    color: var(--bg-dark, #5A2228);
    font-weight: 600;
    margin-bottom: 10px;
}

.news-section-desc {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 14px;
    color: #666;
    max-width: 650px;
    margin: 0 auto;
}

/* Icona Instagram grande nell'hover */
.social-icon-lg {
    font-size: 36px !important;
    color: #ffffff;
}

/* Pulsanti CTA Social */
.news-social-cta {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    flex-wrap: wrap;
}

.btn-tiktok {
    background-color: #111111 !important;
    border-color: #111111 !important;
    color: #ffffff !important;
}

.btn-tiktok:hover {
    background-color: #333333 !important;
    border-color: #333333 !important;
}

/* GRIGLIA ARTICOLI MAGAZINE */
.news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.news-card {
    background: #ffffff;
    border: 1px solid rgba(90, 34, 40, 0.08);
    border-radius: 2px;
    overflow: hidden;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.news-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.06);
}

.news-card-img {
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.news-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.news-card:hover .news-card-img img {
    transform: scale(1.05);
}

.news-card-content {
    padding: 25px 20px;
}

.news-date {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 11px;
    color: #999;
    letter-spacing: 1px;
    text-transform: uppercase;
    display: block;
    margin-bottom: 10px;
}

.news-card-title {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 22px;
    color: var(--bg-dark, #5A2228);
    margin-bottom: 12px;
    line-height: 1.3;
}

.news-card-excerpt {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 13.5px;
    color: #555;
    line-height: 1.6;
}

/* RESPONSIVE */
@media (max-width: 992px) {
    .news-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .news-grid {
        grid-template-columns: 1fr;
    }
    .news-section-title {
        font-size: 30px;
    }
}

/* ==========================================
   PAGINA 404 - HERO & PARALLAX STYLES
   ========================================== */

.error-404-hero {
    position: relative;
    width: 100%;
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 100px 20px;
}

/* Sfondo con effetto Parallax */
.error-404-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed; /* Effetto Parallax */
    z-index: 1;
}

/* Overlay per la sfumatura morbida centrale */
.error-404-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, rgba(253, 251, 247, 0.85) 20%, rgba(253, 251, 247, 0.4) 100%);
    z-index: 2;
}

.error-404-container {
    position: relative;
    z-index: 3;
    max-width: 650px;
    text-align: center;
    margin: 0 auto;
}

/* Numero 404 elegante */
.error-404-number {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 110px;
    font-weight: 400;
    color: var(--bg-dark, #5A2228);
    line-height: 1;
    margin-bottom: 10px;
    letter-spacing: 2px;
}

/* Linea divisoria oro/bordeaux */
.error-404-divider {
    width: 50px;
    height: 1px;
    background-color: var(--bg-dark, #5A2228);
    margin: 0 auto 20px auto;
    opacity: 0.6;
}

/* Titolo "Pagina non trovata" */
.error-404-title {
    font-family: var(--font-serif, 'Cormorant Garamond', serif);
    font-size: 38px;
    color: var(--bg-dark, #5A2228);
    font-weight: 500;
    margin-bottom: 15px;
}

/* Testo descrittivo */
.error-404-text {
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 15px;
    color: #444444;
    line-height: 1.6;
    margin-bottom: 30px;
}

/* Bottone Bordo / Sfondo Bordeaux */
.btn-error-home {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background-color: var(--bg-dark, #5A2228);
    color: #ffffff;
    font-family: var(--font-sans, 'Montserrat', sans-serif);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    padding: 16px 32px;
    border-radius: 2px;
    transition: all 0.3s ease;
    text-decoration: none;
}

.btn-error-home:hover {
    background-color: #3b161a;
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(90, 34, 40, 0.2);
}

.btn-error-home i {
    font-size: 12px;
    transition: transform 0.3s ease;
}

.btn-error-home:hover i {
    transform: translateX(4px);
}

/* Adaptability Mobile */
@media (max-width: 768px) {
    .error-404-hero {
        min-height: 70vh;
        padding: 60px 20px;
    }
    .error-404-number {
        font-size: 80px;
    }
    .error-404-title {
        font-size: 28px;
    }
    .error-404-text {
        font-size: 14px;
    }
}


.news-social-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: center;
    margin-top: 20px;
}

.news-social-cta .btn-cta-gold {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background-color: #f5ebe0;
    color: var(--bg-dark, #5A2228);
    padding: 13px 28px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-decoration: none;
    transition: all 0.3s ease;
}

.news-social-cta .btn-cta-gold:hover {
    background-color: #ffffff;
    color: var(--bg-dark, #5A2228);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}


/* ==========================================
   POPUP RICERCA CON SFUMATURA BORDEAUX / NERO
   ========================================== */

/* Contenitore Modal */
.search-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.search-modal.is-open {
    opacity: 1;
    visibility: visible;
}

/* Sfondo sfumato (Nero + Bordeaux) con filtro sfocatura (Blur) */
.search-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(15, 12, 12, 0.82) 0%, rgba(90, 34, 40, 0.85) 100%);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

/* Finestra centrale del pop-up */
.search-modal-container {
    position: relative;
    z-index: 2;
    width: 90%;
    max-width: 650px;
    background: #ffffff;
    border-radius: 12px;
    padding: 35px 30px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
    transform: translateY(-20px);
    transition: transform 0.3s ease;
}

.search-modal.is-open .search-modal-container {
    transform: translateY(0);
}

/* Tasto di chiusura */
.search-modal-close {
    position: absolute;
    top: 15px;
    right: 20px;
    background: none;
    border: none;
    font-size: 2rem;
    color: #5A2228;
    cursor: pointer;
    line-height: 1;
    transition: color 0.2s;
}

.search-modal-close:hover {
    color: #000000;
}

/* Intestazione modal */
.search-modal-header h3 {
    font-family: 'Baron Neue', 'Cormorant Garamond', serif;
    color: #5A2228;
    margin: 0 0 5px 0;
    font-size: 1.6rem;
}

.search-modal-header p {
    font-family: 'Montserrat', sans-serif;
    color: #666;
    font-size: 0.85rem;
    margin-bottom: 20px;
}

/* Campo Input di ricerca */
.search-input-wrapper {
    position: relative;
    margin-bottom: 20px;
}

.search-input-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #5A2228;
    font-size: 1.1rem;
}

#searchInput {
    width: 100%;
    padding: 14px 15px 14px 45px;
    border: 2px solid #5A2228;
    border-radius: 8px;
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    color: #222;
    background-color: #fcfbf9;
    outline: none;
    box-sizing: border-box;
}

#searchInput:focus {
    background-color: #ffffff;
    box-shadow: 0 0 8px rgba(90, 34, 40, 0.25);
}

/* Lista Risultati */
.search-results-list {
    max-height: 320px;
    overflow-y: auto;
    margin-top: 10px;
}

.search-result-card {
    display: block;
    padding: 12px 15px;
    border-radius: 6px;
    text-decoration: none;
    border-bottom: 1px solid #f0f0f0;
    transition: background 0.2s ease;
}

.search-result-card:hover {
    background-color: #f9f5f6;
}

.search-result-title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    color: #5A2228;
    font-size: 0.95rem;
}

.search-result-meta {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.8rem;
    color: #666;
    margin-top: 3px;
}

.search-no-results {
    text-align: center;
    padding: 20px;
    font-family: 'Montserrat', sans-serif;
    color: #777;
    font-size: 0.9rem;
}

/* ==========================================
   POPUP RICERCA CON SFUMATURA BORDEAUX / NERO
   ========================================== */

/* Contenitore Modal (Nascosto di default) */
.search-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* Stato Aperto */
.search-modal.is-open {
    opacity: 1;
    visibility: visible;
}

/* Sfondo sfumato (Nero + Bordeaux) con filtro sfocatura (Blur) */
.search-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(15, 12, 12, 0.82) 0%, rgba(90, 34, 40, 0.85) 100%);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

/* Finestra centrale del pop-up */
.search-modal-container {
    position: relative;
    z-index: 2;
    width: 90%;
    max-width: 650px;
    background: #ffffff;
    border-radius: 12px;
    padding: 35px 30px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
    transform: translateY(-20px);
    transition: transform 0.3s ease;
}

.search-modal.is-open .search-modal-container {
    transform: translateY(0);
}

/* Tasto di chiusura (X) */
.search-modal-close {
    position: absolute;
    top: 15px;
    right: 20px;
    background: none;
    border: none;
    font-size: 2rem;
    color: #5A2228;
    cursor: pointer;
    line-height: 1;
    transition: color 0.2s;
}

.search-modal-close:hover {
    color: #000000;
}

/* Intestazione modal */
.search-modal-header h3 {
    font-family: 'Baron Neue', 'Cormorant Garamond', serif;
    color: #5A2228;
    margin: 0 0 5px 0;
    font-size: 1.6rem;
}

.search-modal-header p {
    font-family: 'Montserrat', sans-serif;
    color: #666;
    font-size: 0.85rem;
    margin-bottom: 20px;
}

/* Campo Input di ricerca */
.search-input-wrapper {
    position: relative;
    margin-bottom: 20px;
}

.search-input-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #5A2228;
    font-size: 1.1rem;
}

#searchInput {
    width: 100%;
    padding: 14px 15px 14px 45px;
    border: 2px solid #5A2228;
    border-radius: 8px;
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    color: #222;
    background-color: #fcfbf9;
    outline: none;
    box-sizing: border-box;
}

#searchInput:focus {
    background-color: #ffffff;
    box-shadow: 0 0 8px rgba(90, 34, 40, 0.25);
}

/* Lista Risultati */
.search-results-list {
    max-height: 320px;
    overflow-y: auto;
    margin-top: 10px;
}

.search-result-card {
    display: block;
    padding: 12px 15px;
    border-radius: 6px;
    text-decoration: none;
    border-bottom: 1px solid #f0f0f0;
    transition: background 0.2s ease;
}

.search-result-card:hover {
    background-color: #f9f5f6;
}

.search-result-title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    color: #5A2228;
    font-size: 0.95rem;
}

.search-result-meta {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.8rem;
    color: #666;
    margin-top: 3px;
}

.search-no-results {
    text-align: center;
    padding: 20px;
    font-family: 'Montserrat', sans-serif;
    color: #777;
    font-size: 0.9rem;
}


mark.custom-highlight {
  background-color: #86454d; /* o un colore coordinato al sito */
  color: #000;
  padding: 2px 4px;
  border-radius: 3px;
}

/* Contenitore principale del carosello */
.cp-partners-slider-wrapper {
    overflow: hidden;
    width: 100%;
    position: relative;
    padding: 20px 0;
}

/* Pista che scorre in automatico */
.cp-partners-track {
    display: flex;
    width: max-content;
    animation: scrollPartners 45s linear infinite;
}

/* Sosta il carosello quando l'utente passa il mouse sopra */
.cp-partners-slider-wrapper:hover .cp-partners-track {
    animation-play-state: paused;
}

/* Singolo contenitore del logo (esattamente 5 visibili a schermo su desktop) */
.cp-partners-track .cp-partner-item {
    flex: 0 0 calc(100vw / 5); /* 5 elementi visibili */
    max-width: 200px;
    min-width: 140px;
    padding: 0 20px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Stile immagine: Monocromatica di default (grigia / desaturata e opaca) */
.cp-partners-track .cp-partner-item img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
    filter: grayscale(100%) brightness(0.7) contrast(1.2);
    opacity: 0.6;
    transition: transform 0.4s ease, filter 0.4s ease, opacity 0.4s ease;
    cursor: pointer;
}

/* Effetto Hover: Zoom-in e ritorno al colore originale */
.cp-partners-track .cp-partner-item img:hover {
    transform: scale(1.15);
    filter: grayscale(0%) brightness(1) contrast(1);
    opacity: 1;
}

/* Animazione fluida di scorrimento continuo */
@keyframes scrollPartners {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* Responsive per schermi più piccoli */
@media (max-width: 1024px) {
    .cp-partners-track .cp-partner-item {
        flex: 0 0 25vw; /* 4 elementi */
    }
}

@media (max-width: 768px) {
    .cp-partners-track .cp-partner-item {
        flex: 0 0 33.333vw; /* 3 elementi su tablet/mobile */
    }
}
  
 
/* Posizionamento e zoom delle card della galleria */
.gallery-item-zoom {
    position: relative;
    display: block;
    overflow: hidden;
    text-decoration: none;
}

.gallery-item-zoom img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}
 
.gallery-item-zoom .card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}
 
.gallery-item-zoom .zoom-icon {
    all: unset;  
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 45px !important;
    height: 45px !important;
    min-width: 45px !important;
    max-width: 45px !important;
    min-height: 45px !important;
    max-height: 45px !important;
    background: rgba(0, 0, 0, 0.6) !important;
    border-radius: 50% !important;
    color: #ffffff !important;
    font-size: 1.1rem !important;
    transform: scale(0.8);
    transition: transform 0.3s ease;
}
 
.gallery-item-zoom:hover img {
    transform: scale(1.08);
}

.gallery-item-zoom:hover .card-overlay {
    opacity: 1;
}

.gallery-item-zoom:hover .zoom-icon {
    transform: scale(1);
}


 
.about-fullwidth-images-grid {
    display: flex;
    gap: 20px;
    width: 100%;
}
 
.about-square-img-wrapper {
    flex: 1;
    aspect-ratio: 1 / 1;  
    overflow: hidden;
    position: relative;
    border-radius: 4px;  
}
 
.about-square-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
 
.about-square-img-wrapper:hover img {
    transform: scale(1.08);
}
 
@media (max-width: 768px) {
    .about-fullwidth-images-grid {
        flex-direction: column;
    }
}

/* Stile del pulsante Back to Top */ 
.back-to-top {
    position: fixed;
    bottom: 50px;
    right: 35px;
    width: 60px;
    height: 60px;
    background: transparent;
    border: 1px solid #723139; /* Avorio */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s ease;
    overflow: visible !important; /* Fondamentale per permettere alla stanghetta di uscire dal box */
}

/* Quando la pagina scorre, il pulsante compare */
.back-to-top.show {
    opacity: 1;
    visibility: visible;
}

/* Linea verticale posizionata in modo assoluto per uscire dal bordo superiore */
.back-to-top .up-line {
    position: absolute;
    top: -12px; /* Esce dal bordo superiore del quadrato */
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 18px; /* Lunghezza della stanghetta */
    background: #723139; /* Avorio */
    transition: transform 0.3s ease, background 0.3s ease;
}

/* Testo "UP" posizionato al centro */
.back-to-top .up-text {
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: #723139; /* Avorio */
    line-height: 1;
    margin-top: 4px; /* Spinge leggermente la scritta sotto il centro per fare spazio alla linea */
    transition: color 0.3s ease;
}

/* Effetto hover al passaggio del mouse: Sfondo bordeaux e stanghetta che sale ancora di più */
.back-to-top:hover {
    background: #6b2d38; /* Bordeaux ufficiale */
    border-color: #6b2d38;
}

.back-to-top:hover .up-line {
    background: #f5f2eb;
    transform: translateX(-50%) translateY(-5px); /* Sale ulteriormente verso l'alto al passaggio del mouse */
}

.back-to-top:hover .up-text {
    color: #f5f2eb;
}



/* Stile unificato per le frecce dei caroselli (coordinato con il Back to Top) */
.slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    background: rgba(245, 242, 235, 0.9); /* Sfondo avorio leggermente traslucido o trasparente a scelta */
    border: 1px solid #6b2d38; /* Contorno bordeaux o avorio in base al contesto */
    border-radius: 0; /* Aspetto squadrato/geometrico coerente */
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    transition: all 0.3s ease;
    overflow: visible;
}

/* Posizionamento standard per prev e next nei caroselli */
.slider-arrow.prev {
    left: 20px;
}

.slider-arrow.next {
    right: 20px;
}

/* Icona della freccia interna (FontAwesome) */
.slider-arrow i {
    color: #6b2d38; /* Colore bordeaux di default */
    font-size: 1rem;
    transition: color 0.3s ease, transform 0.3s ease;
}

/* Effetto Hover coordinato: Sfondo bordeaux e testo/icona avorio */
.slider-arrow:hover {
    background: #6b2d38; /* Sfondo bordeaux pieno */
    border-color: #6b2d38;
}

.slider-arrow:hover i {
    color: #f5f2eb; /* Icona diventa avorio */
}

/* Effetto di movimento coordinato della freccia al passaggio del mouse */
.slider-arrow.prev:hover i {
    transform: translateX(-3px); /* Si sposta leggermente a sinistra */
}

.slider-arrow.next:hover i {
    transform: translateX(3px); /* Si sposta leggermente a destra */
}

@media (max-width: 768px) {
    .slider-arrow {
        width: 40px;
        height: 40px;
    }
}



/* Contenitore principale della singola card nel mosaico partner */
.gallery-item-zoom-custom {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    text-decoration: none;
}

/* Immagine di sfondo con transizione per lo zoom-in */
.gallery-item-zoom-custom img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

/* Overlay scuro che copre l'immagine al passaggio del mouse */
.gallery-item-zoom-custom .card-overlay-custom {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6); /* Sfumatura scura */
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.4s ease;
}

/* Contenitore interno per logo e icona */
.brand-logo-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px; /* Spazio tra il logo e l'icona di zoom */
    transform: translateY(15px);
    transition: transform 0.4s ease;
}

 
.brand-logo {
    width: 240px;
    max-width: 80%;  
    height: auto;
    object-fit: contain;
}
 
.zoom-icon-sub {
    color: #f5f2eb;  
    font-size: 1.3rem;
    background: rgba(107, 45, 56, 0.8);  
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Effetto Hover */
.gallery-item-zoom-custom:hover img {
    transform: scale(1.08);  
}

.gallery-item-zoom-custom:hover .card-overlay-custom {
  opacity: 1;  
}

.gallery-item-zoom-custom:hover .brand-logo-wrapper {
    transform: translateY(0); 
}

 
html, body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box;
}

*, *:before, *:after {
    box-sizing: inherit;
}
 
body {
    position: relative;
    margin: 0;
    padding: 0;
}


.site-name-animated {
    display: flex;
    gap: 8px;
    margin-bottom: 25px;
    align-items: center;
    justify-content: center;
}
 
.site-name-animated .letter-wrap {
    opacity: 0;
    transform: translateY(20px) scale(0.85);
    transition: opacity 0.4s ease, transform 0.4s ease;
    display: inline-block;
}
 
.site-name-animated .letter-wrap.visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}
 
.preloader-letter {
    height: 38px;  
    width: auto;
    display: block;
}
 
@media (max-width: 768px) {
    .preloader-letter {
        height: 26px; 
    }
    .site-name-animated {
        gap: 4px;
    }
}

.site-name-animated .letter-wrap {
    opacity: 0;
    transform: translateY(20px) scale(0.85);
    transition: opacity 0.4s ease, transform 0.4s ease;
    display: inline-block;
    margin: 0 -8px;  
}


@media (max-width: 768px) { 
    .site-name-animated .letter-wrap {
        margin: 0 1px !important;  
    }
    
    .preloader-letter {
        height: 26px;  
    }
    
    .site-name-animated {
        gap: -4px;  
    }
}








@media (max-width: 768px) { 
    .mobile-floating-actions {
        display: flex;
        position: fixed;
        bottom: 20px;
        right: 15px;
        z-index: 9999;
        background-color: rgba(139, 58, 66, 0.95);
        backdrop-filter: blur(8px);
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 50px;
        padding: 8px 14px;
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
        gap: 12px;
        align-items: center;
        justify-content: center;
    }
 
    .mobile-floating-actions .mob-action-btn {
        width: 42px;
        height: 42px;
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: rgba(255, 255, 255, 0.12);
        border-radius: 50%;
        color: #ffffff;
        font-size: 18px;
        text-decoration: none;
    }

    .mobile-floating-actions .mob-action-btn img {
        width: 22px;
        height: 22px;
        object-fit: contain;
    }
 
    #cookieMinimizeIcon {
        display: none !important;
    }
	
	 
#cookie-notice, 
.cn-revoke-cookie, 
div[id*="cookie-notice"] {
    max-width: 50px !important;
    max-height: 50px !important;
}
 
    div.whatsapp {
        display: none !important;
    }

    #backToTop,
    .back-to-top {
        display: none !important;
    }
}
 
.footer-brand-logo,
.footer-col-brand img {
    max-width: 130px !important;
    height: auto !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    display: block !important;
}
 
.mobile-floating-actions {
    position: fixed;
    bottom: 20px;
    left: 20px;
    z-index: 9999;
    display: flex;
    gap: 10px;
    align-items: center;
}
 
.mobile-floating-actions .mob-action-btn {
    width: 45px !important;
    height: 45px !important;
    max-width: 45px !important;
    max-height: 45px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background-color: #25d366;  
    color: #fff;
    overflow: hidden !important;
}
 
.mobile-floating-actions .mob-action-btn img {
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
    object-fit: contain !important;
    display: block !important;
    margin: auto !important;
}
 
.mobile-floating-actions .mob-action-btn i {
    font-size: 18px !important;
    line-height: 1 !important;
}

 
.mobile-floating-actions {
    display: none !important;
}
 
@media (max-width: 768px) {
    .mobile-floating-actions {
        display: flex !important;
        position: fixed !important;
        bottom: 15px !important;
        left: 15px !important;
        z-index: 99999 !important;
        gap: 8px !important;
        align-items: center !important;
    }
 
    .mobile-floating-actions .mob-action-btn {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        min-height: min-content !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 50% !important;
        box-shadow: 0 4px 10px rgba(0,0,0,0.3) !important;
    }
 
    .mobile-floating-actions .mob-action-btn img {
        width: 22px !important;
        height: 22px !important;
        max-width: 22px !important;
        object-fit: contain !important;
        display: block !important;
        margin: auto !important;
    }
 
    .mobile-floating-actions .mob-action-btn i {
        font-size: 18px !important;
        line-height: 1 !important;
    }
}


/* ==========================================================
   VERSIONE MOBILE (fino a 768px): Allineata a destra e rifinita
   ========================================== */
@media (max-width: 768px) {
    /* Contenitore fluttuante posizionato a destra */
    .mobile-floating-actions {
        display: flex !important;
        position: fixed !important;
        bottom: 20px !important;
        right: 15px !important;
        left: auto !important;
        transform: none !important;
        width: auto !important;
        background-color: #592329 !important;
        padding: 8px 10px !important;
        border-radius: 50px !important;
        flex-direction: row !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 8px !important;
        z-index: 99999 !important;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3) !important;
    }

    /* Stile comune dei cerchi interni */
    .mobile-floating-actions .mob-action-btn {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 50% !important;
        background-color: rgba(255, 255, 255, 0.15) !important;
        overflow: hidden !important; /* Taglia eventuali sfondi quadrati esterni */
        border: none !important;
    }

    /* 1. WhatsApp: icona bianca pulita nel cerchio */
    .mobile-floating-actions a[href*="wa.me"] i {
        color: #fff !important;
        font-size: 18px !important;
    }

    /* 2. Cookie: l'immagine riempie completamente il cerchio ed è perfettamente tonda */
    .mobile-floating-actions .cookie-trigger {
        background-color: transparent !important; /* Rimuove il sotto-cerchio indesiderato */
        padding: 0 !important;
    }

    .mobile-floating-actions .cookie-trigger img {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        object-fit: cover !important;
        border-radius: 50% !important;
        display: block !important;
    }

    /* 3. Freccia Back to Top: cerchio pulito senza box grigio squadrato e icona centrata */
    .mobile-floating-actions .back-to-top-mob,
    .mobile-floating-actions a[href="#"] i.fa-arrow-up,
    .mobile-floating-actions .mob-action-btn i.fa-arrow-up {
        background-color: rgba(255, 255, 255, 0.15) !important;
        color: #fff !important;
        font-size: 16px !important;
    }
}
/* ==========================================================
   FIX DEFINITIVO PER IL RIMBALZO E IL TAGLIO DELL'HEADER SU CHROME iOS
   ========================================== */
@media (max-width: 768px) {
    /* 1. Blocchiamo il corpo e l'html per evitare ricalcoli anomali della viewport su Chrome mobile */
    html, body {
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* 2. Rendiamo l'header fisso, rigido e immune al ricalcolo di Chrome */
    header.main-header,
    .main-header,
    header.site-header {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        display: block !important;
        width: 100% !important;
        transform: none !important;
        -webkit-transform: none !important;
        transition: none !important;
        -webkit-transition: none !important;
        box-sizing: border-box !important;
        /* Impedisce a Chrome di creare un layer separato che "rimbalza" */
        -webkit-backface-visibility: hidden !important;
        backface-visibility: hidden !important;
        z-index: 9999 !important;
    }

    /* 3. Evitiamo che il contenitore principale subisca micro-refresh allo scroll */
    .header-container, 
    .site-header-inner {
        position: relative !important;
        transform: none !important;
        -webkit-transform: none !important;
    }
}

/* ==========================================================
   FIX DEFINITIVO BLOCCO HEADER SU CHROME MOBILE (iOS)
   ========================================== */
@media (max-width: 768px) {
    /* Forziamo l'header e i suoi contenitori a non essere mai sticky o fixed su mobile */
    header,
    .main-header,
    .site-header,
    .header-container {
        position: relative !important;
        top: auto !important;
        transform: none !important;
        -webkit-transform: none !important;
        will-change: auto !important;
        /* Impedisce a Chrome di bloccare il rendering dopo l'header */
        overflow: visible !important;
    }

    /* Assicuriamoci che il corpo della pagina scorra liberamente oltre l'header */
    body, html {
        position: relative !important;
        overflow-x: hidden !important;
        height: auto !important;
    }
}

 


/* ==========================================
   FIX DEFINITIVO HEADER & MENU (DESKTOP & MOBILE)
   ========================================== */

/* 1. DESKTOP & GENERALE: La barra del menu di base sta nel flusso normale */
.main-header {
    background-color: var(--bg-light);
    width: 100%;
    z-index: 1000;
    box-shadow: 0 2px 10px rgba(0,0,0,0.03);
    border-bottom: 1px solid #eae5dd;
}

/* Quando entra in gioco lo script di scroll sul desktop */
.main-header.is-fixed {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 1000 !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

/* ==========================================
   FIX DEFINITIVO MOBILE: ORDINE TOP-BAR & HEADER
   ========================================== */
/* ==========================================
   FIX DEFINITIVO MOBILE: SPINTA TOP-BAR IN CIMA
   ========================================== */
@media (max-width: 768px) {
    
    /* Forziamo il contenitore generale a gestire i flussi in colonna */
    .site-header, 
    header, 
    .header-container {
        display: flex !important;
        flex-direction: column !important;
    }

    /* Mettiamo la top-bar visibile sopra */
    .top-bar {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        flex-direction: column !important;
        gap: 6px !important;
        text-align: center !important;
        padding: 8px 15px !important;
        width: 100% !important;
        z-index: 200 !important;
        /* Svincoliamo l'ordine se l'HTML è invertito */
        order: -1 !important; 
    }

    /* La barra bianca del menu sta subito sotto all'apertura */
    .main-header {
        position: relative !important;
        width: 100% !important;
        z-index: 100 !important;
        order: 0 !important;
    }

    /* Quando scrolli, la barra bianca si blocca in cima coprendo la bordeaux */
    .main-header.is-fixed {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        z-index: 99999 !important;
        box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    }

    /* Il menu mobile aperto copre tutto */
    .mobile-menu,
    .fusion-mobile-menu,
    .off-canvas-menu,
    .site-mobile-menu,
    [class*="mobile-menu"],
    [class*="off-canvas"] {
        z-index: 999999 !important;
    }
}


/* ==========================================
   ELIMINAZIONE TOP-BAR SOLO SU MOBILE
   ========================================== */
@media (max-width: 768px) {
    .top-bar {
        display: none !important;
    }
}

/* ==========================================
   RIPRISTINO FORZATO CONTESTO STICKY GALLERY
   ========================================== */

/* 1. Sblocchiamo la sezione e il contenitore genitore da qualsiasi overflow bloccante */
.gl-gallery-section,
.gl-container,
body,
html {
    overflow: visible !important;
}

/* 2. Forziamo il contenitore della gallery a fare da binario per lo sticky */
.gl-gallery-section {
    position: relative !important;
    min-height: 100vh;
}

/* 3. Ancoraggio millimetrico della barra filtri sotto il menu fisso */
.gl-filters-wrapper {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 80px !important; /* Distanza esatta sotto la barra bianca del menu */
    z-index: 999 !important;
    background-color: #fdfbf7 !important;
}

