/* ============================================================
   MOCKUP.2025.CERESIO.IT - FOGLIO DI STILE PRINCIPALE
   ============================================================ */


/* ============================================================
   VARIABILI CSS - SCALA COLORI
   ============================================================ */

:root {
    /* Colore Accent - Arancione */
    --color-accent: #E84E0F;
    --color-accent-hover: #D14509;
    --color-accent-light: #FF6B2C;
    --color-accent-dark: #B83D0C;
    --color-accent-10: rgba(232, 78, 15, 0.1);
    --color-accent-20: rgba(232, 78, 15, 0.2);
    --color-accent-50: rgba(232, 78, 15, 0.5);

    /* Colore Primario - Nero */
    --color-primary: #000000;
    --color-primary-90: #1A1A1A;
    --color-primary-80: #333333;
    --color-primary-70: #4D4D4D;
    --color-primary-60: #666666;
    --color-primary-50: #808080;
    --color-primary-40: #999999;
    --color-primary-30: #B3B3B3;
    --color-primary-20: #CCCCCC;
    --color-primary-10: #E6E6E6;

    /* Colore Secondario - Grigio chiaro */
    --color-secondary: #F5F5F5;
    --color-secondary-dark: #EBEBEB;
    --color-secondary-darker: #E0E0E0;
    --color-secondary-light: #FAFAFA;

    /* Colore Bianco - Background e testi in negativo */
    --color-white: #FFFFFF;
    --color-white-90: rgba(255, 255, 255, 0.9);
    --color-white-80: rgba(255, 255, 255, 0.8);
    --color-white-70: rgba(255, 255, 255, 0.7);
    --color-white-60: rgba(255, 255, 255, 0.6);
    --color-white-50: rgba(255, 255, 255, 0.5);
    --color-white-40: rgba(255, 255, 255, 0.4);
    --color-white-30: rgba(255, 255, 255, 0.3);
    --color-white-20: rgba(255, 255, 255, 0.2);
    --color-white-10: rgba(255, 255, 255, 0.1);

    /* Colori di stato */
    --color-success: #198754;
    --color-warning: #FFC107;
    --color-danger: #DC3545;
    --color-info: #0DCAF0;
}


/* ============================================================
   RESET E IMPOSTAZIONI GLOBALI
   ============================================================ */

* {
    border-radius: 0 !important;
}

a {
    text-decoration: none;
}

a:hover {
    text-decoration: none;
}


/* ============================================================
   TIPOGRAFIA - SCALA TITOLI (Cormorant Garamond)
   ============================================================ */

h1,
.h1 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 3.5rem;
    /* 56px */
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin-bottom: 1rem;
}

h2,
.h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.75rem;
    /* 44px */
    font-weight: 300;
    line-height: 1.15;
    letter-spacing: -0.015em;
    margin-bottom: 0.875rem;
}

h3,
.h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.25rem;
    /* 36px */
    font-weight: 300;
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin-bottom: 0.75rem;
}

h4,
.h4 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.75rem;
    /* 28px */
    font-weight: 300;
    line-height: 1.25;
    letter-spacing: -0.005em;
    margin-bottom: 0.625rem;
}

h5,
.h5 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.375rem;
    /* 22px */
    font-weight: 300;
    line-height: 1.3;
    letter-spacing: 0;
    margin-bottom: 0.5rem;
}

h6,
.h6 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.125rem;
    /* 18px */
    font-weight: 300;
    line-height: 1.35;
    letter-spacing: 0;
    margin-bottom: 0.5rem;
}

/* Varianti display per titoli extra-large */
.display-1 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 5rem;
    /* 80px */
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.display-2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 4.25rem;
    /* 68px */
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.display-3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 3.75rem;
    /* 60px */
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.02em;
}


/* ============================================================
   TIPOGRAFIA - BODY E TESTO (Epilogue)
   ============================================================ */

body {
    font-family: 'Epilogue', sans-serif;
    font-size: 1rem;
    /* 16px */
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0;
    color: #212529;
}

p {
    font-family: 'Epilogue', sans-serif;
    font-size: 1rem;
    /* 16px */
    font-weight: 400;
    line-height: 1.6;
    margin-bottom: 1rem;
}

/* Testo lead/introduttivo */
.lead {
    font-family: 'Epilogue', sans-serif;
    font-size: 1.25rem;
    /* 20px */
    font-weight: 400;
    line-height: 1.5;
}

/* Testo piccolo */
small,
.small {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    /* 14px */
    font-weight: 400;
    line-height: 1.5;
}

/* Testo extra-piccolo */
.text-xs {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.75rem;
    /* 12px */
    font-weight: 400;
    line-height: 1.4;
}


/* ============================================================
   TIPOGRAFIA - SOTTOTITOLI (Epilogue)
   ============================================================ */

.subtitle,
.subtitle-1 {
    font-family: 'Epilogue', sans-serif;
    font-size: 1.125rem;
    /* 18px */
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.01em;
    margin-bottom: 0.75rem;
}

.subtitle-2 {
    font-family: 'Epilogue', sans-serif;
    font-size: 1rem;
    /* 16px */
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: 0.01em;
    margin-bottom: 0.625rem;
}

.subtitle-3 {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    /* 14px */
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.015em;
    margin-bottom: 0.5rem;
}

/* Overline - testo sopra i titoli */
.overline {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.75rem;
    /* 12px */
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}


/* ============================================================
   TIPOGRAFIA - CTA E BOTTONI (Epilogue)
   ============================================================ */

.btn {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.9375rem;
    /* 15px */
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    padding: 0.75rem 1.5rem;
    border-radius: 0 !important;
    transition: all 0.3s ease;
}

.btn-lg {
    font-size: 1rem;
    /* 16px */
    padding: 1rem 2rem;
}

.btn-sm {
    font-size: 0.8125rem;
    /* 13px */
    padding: 0.5rem 1rem;
}

/* Stile link CTA */
.cta-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    /* 14px */
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    text-decoration: none;
    transition: all 0.3s ease;
}

.cta-link:hover {
    text-decoration: none;
}

/* Stile link inline */
.link-inline {
    font-family: 'Epilogue', sans-serif;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
}

.link-inline:hover {
    text-decoration: none;
}


/* ============================================================
   TIPOGRAFIA - RESPONSIVE
   ============================================================ */

@media (max-width: 991.98px) {

    h1,
    .h1 {
        font-size: 2.75rem;
        /* 44px */
    }

    h2,
    .h2 {
        font-size: 2.25rem;
        /* 36px */
    }

    h3,
    .h3 {
        font-size: 1.875rem;
        /* 30px */
    }

    h4,
    .h4 {
        font-size: 1.5rem;
        /* 24px */
    }

    h5,
    .h5 {
        font-size: 1.25rem;
        /* 20px */
    }

    h6,
    .h6 {
        font-size: 1.0625rem;
        /* 17px */
    }

    .display-1 {
        font-size: 3.75rem;
        /* 60px */
    }

    .display-2 {
        font-size: 3.25rem;
        /* 52px */
    }

    .display-3 {
        font-size: 2.875rem;
        /* 46px */
    }

    .lead {
        font-size: 1.125rem;
        /* 18px */
    }
}

@media (max-width: 575.98px) {

    h1,
    .h1 {
        font-size: 2.25rem;
        /* 36px */
    }

    h2,
    .h2 {
        font-size: 1.875rem;
        /* 30px */
    }

    h3,
    .h3 {
        font-size: 1.5rem;
        /* 24px */
    }

    h4,
    .h4 {
        font-size: 1.25rem;
        /* 20px */
    }

    h5,
    .h5 {
        font-size: 1.125rem;
        /* 18px */
    }

    h6,
    .h6 {
        font-size: 1rem;
        /* 16px */
    }

    .display-1 {
        font-size: 2.75rem;
        /* 44px */
    }

    .display-2 {
        font-size: 2.5rem;
        /* 40px */
    }

    .display-3 {
        font-size: 2.25rem;
        /* 36px */
    }

    .lead {
        font-size: 1.0625rem;
        /* 17px */
    }

    .btn {
        font-size: 0.875rem;
        /* 14px */
        padding: 0.625rem 1.25rem;
    }

    .btn-lg {
        font-size: 0.9375rem;
        /* 15px */
        padding: 0.75rem 1.5rem;
    }
}


/* ============================================================
   CLASSI UTILITY - COLORI
   ============================================================ */

/* --- Colori Accent --- */
.text-accent {
    color: var(--color-accent) !important;
}

.bg-accent {
    background-color: var(--color-accent) !important;
}

.border-accent {
    border-color: var(--color-accent) !important;
}

/* --- Colori Primario (Nero) --- */
.text-primary-custom {
    color: var(--color-primary) !important;
}

.bg-primary-custom {
    background-color: var(--color-primary) !important;
}

.text-primary-90 {
    color: var(--color-primary-90) !important;
}

.text-primary-80 {
    color: var(--color-primary-80) !important;
}

.text-primary-70 {
    color: var(--color-primary-70) !important;
}

.text-primary-60 {
    color: var(--color-primary-60) !important;
}

.text-primary-50 {
    color: var(--color-primary-50) !important;
}

.bg-primary-90 {
    background-color: var(--color-primary-90) !important;
}

.bg-primary-80 {
    background-color: var(--color-primary-80) !important;
}

.bg-primary-70 {
    background-color: var(--color-primary-70) !important;
}

/* --- Colori Secondario (Grigio chiaro) --- */
.text-secondary-custom {
    color: var(--color-secondary) !important;
}

.bg-secondary-custom {
    background-color: var(--color-secondary) !important;
}

.bg-secondary-dark {
    background-color: var(--color-secondary-dark) !important;
}

.bg-secondary-light {
    background-color: var(--color-secondary-light) !important;
}

/* --- Colori Bianco (Background e testi in negativo) --- */
.text-white-custom {
    color: var(--color-white) !important;
}

.bg-white-custom {
    background-color: var(--color-white) !important;
}

.text-white-90 {
    color: var(--color-white-90) !important;
}

.text-white-80 {
    color: var(--color-white-80) !important;
}

.text-white-70 {
    color: var(--color-white-70) !important;
}

.text-white-60 {
    color: var(--color-white-60) !important;
}

.text-white-50 {
    color: var(--color-white-50) !important;
}

.bg-white-90 {
    background-color: var(--color-white-90) !important;
}

.bg-white-80 {
    background-color: var(--color-white-80) !important;
}

.bg-white-50 {
    background-color: var(--color-white-50) !important;
}


/* ============================================================
   BOTTONI - VARIANTI COLORE
   ============================================================ */

/* Bottone Accent */
.btn-accent {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-white);
}

.btn-accent:hover,
.btn-accent:focus {
    background-color: var(--color-accent-hover);
    border-color: var(--color-accent-hover);
    color: var(--color-white);
}

.btn-accent:active {
    background-color: var(--color-accent-dark);
    border-color: var(--color-accent-dark);
}

/* Bottone Accent Outline */
.btn-outline-accent {
    background-color: transparent;
    border-color: var(--color-accent);
    color: var(--color-accent);
}

.btn-outline-accent:hover,
.btn-outline-accent:focus {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-white);
}

/* Bottone Primario (Nero) */
.btn-primary-custom {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-white);
}

.btn-primary-custom:hover,
.btn-primary-custom:focus {
    background-color: var(--color-primary-90);
    border-color: var(--color-primary-90);
    color: var(--color-white);
}

/* Bottone Primario Outline */
.btn-outline-primary-custom {
    background-color: transparent;
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.btn-outline-primary-custom:hover,
.btn-outline-primary-custom:focus {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-white);
}

/* Bottone Bianco (per sfondi scuri) */
.btn-white {
    background-color: var(--color-white);
    border-color: var(--color-white);
    color: var(--color-primary);
}

.btn-white:hover,
.btn-white:focus {
    background-color: var(--color-secondary);
    border-color: var(--color-secondary);
    color: var(--color-primary);
}

/* Bottone Bianco Outline (per sfondi scuri) */
.btn-outline-white {
    background-color: transparent;
    border-color: var(--color-white);
    color: var(--color-white);
}

.btn-outline-white:hover,
.btn-outline-white:focus {
    background-color: var(--color-white);
    border-color: var(--color-white);
    color: var(--color-primary);
}


/* ============================================================
   LINK - VARIANTI COLORE
   ============================================================ */

.link-accent {
    color: var(--color-accent);
    transition: color 0.3s ease;
}

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

.link-primary {
    color: var(--color-primary);
    transition: color 0.3s ease;
}

.link-primary:hover {
    color: var(--color-primary-70);
}

.link-white {
    color: var(--color-white);
    transition: color 0.3s ease;
}

.link-white:hover {
    color: var(--color-white-80);
}


/* ============================================================
   SEZIONI - SFONDI COLORATI
   ============================================================ */

.section-dark {
    background-color: var(--color-primary);
    color: var(--color-white);
}

.section-dark h1,
.section-dark h2,
.section-dark h3,
.section-dark h4,
.section-dark h5,
.section-dark h6 {
    color: var(--color-white);
}

.section-light {
    background-color: var(--color-secondary);
    color: var(--color-primary);
}

.section-accent {
    background-color: var(--color-accent);
    color: var(--color-white);
}

.section-accent h1,
.section-accent h2,
.section-accent h3,
.section-accent h4,
.section-accent h5,
.section-accent h6 {
    color: var(--color-white);
}

/* ============================================================
   HEADER - HERO SECTION
   ============================================================ */

.header-hero {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.3) 50%, transparent 100%);
    padding: 0;
    transition: all 0.3s ease;
    z-index: 20;
}

/* Header Fixed on Scroll */
.header-hero.header-fixed {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    background: rgba(0, 0, 0, 0.95);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
    z-index: 20;
}

/* Logo Header - Dimensione fissa su tutti i dispositivi */
.header-hero .header-logo-img {
    width: 140px;
    height: auto;
}

/* Menu Navigazione */
.header-hero .header-nav .nav {
    gap: 2rem;
}

.header-hero .header-nav .nav-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    padding: 0.5rem 0;
    transition: opacity 0.3s ease;
}

.header-hero .header-nav .nav-link:hover {
    opacity: 0.7;
}

/* Cambio Lingua */
.header-hero .header-lang .dropdown-toggle {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    transition: opacity 0.3s ease;
}

.header-hero .header-lang .dropdown-toggle::after {
    display: none;
}

.header-hero .header-lang .dropdown-toggle:hover {
    opacity: 0.7;
}

.header-hero .header-lang .dropdown-menu {
    background-color: #000;
    border: none;
    min-width: 80px;
    padding: 0.5rem 0;
}

.header-hero .header-lang .dropdown-item {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-white);
    padding: 0.5rem 1rem;
    transition: background-color 0.3s ease;
}

.header-hero .header-lang .dropdown-item:hover {
    color: var(--color-accent);
    background-color: transparent;
}

/* Header Responsive - Tablet e Mobile */
@media (max-width: 1199.98px) {
    .header-hero .header-nav .nav {
        gap: 1rem;
    }

    .header-hero .header-nav .nav-link {
        font-size: 0.75rem;
    }
}

/* Hamburger Button */
.header-hamburger {
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 0.3s ease;
}

.header-hamburger .hamburger-icon {
    width: 48px;
    height: auto;
}

.header-hamburger:hover {
    opacity: 0.7;
}

/* Offcanvas Mobile Menu */
.offcanvas-mobile-menu {
    background-color: var(--color-accent);
    width: 100%;
    max-width: 420px;
}

.offcanvas-mobile-menu .offcanvas-header {
    padding: 1.5rem;
    border-bottom: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.offcanvas-mobile-menu .header-logo-img {
    width: 140px;
    height: auto;
}

.offcanvas-mobile-menu .btn-close-mobile {
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: opacity 0.3s ease;
}

.offcanvas-mobile-menu .btn-close-mobile .close-icon {
    width: 32px;
    height: auto;
}

.offcanvas-mobile-menu .btn-close-mobile:hover {
    opacity: 0.7;
}

.offcanvas-mobile-menu .offcanvas-body {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
}

/* Mobile Language Inline */
.mobile-lang-inline {
    display: flex;
    gap: 2rem;
}

.mobile-lang-inline .mobile-lang-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    color: var(--color-white);
    text-transform: uppercase;
    opacity: 0.6;
    transition: opacity 0.3s ease;
}

.mobile-lang-inline .mobile-lang-link.active {
    opacity: 1;
}

.mobile-lang-inline .mobile-lang-link:hover {
    opacity: 1;
}

/* Mobile CTA Appointment */
.mobile-cta-appointment {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background-color: #000;
    color: #fff;
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 1rem 1.5rem;
    margin-bottom: 1.5rem;
    transition: all 0.3s ease;
    width: fit-content;
}

.mobile-cta-appointment i {
    font-size: 1.125rem;
}

.mobile-cta-appointment:hover {
    background-color: #fff;
    color: #000;
}

/* Mobile Divider */
.mobile-divider {
    border: none;
    border-top: 2px solid var(--color-white);
    margin: 1rem 0 1.5rem 0;
    opacity: 1;
}

/* Mobile Navigation */
.mobile-nav .nav {
    gap: 0;
}

.mobile-nav .nav-item {
    border-bottom: none;
}

.mobile-nav .nav-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 1.125rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    color: var(--color-white);
    padding: 0.875rem 0;
    transition: opacity 0.3s ease;
}

.mobile-nav .nav-link:hover {
    opacity: 0.7;
    color: var(--color-white);
}

/* Mobile Social Icons */
.mobile-social {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    margin-top: auto;
    padding-top: 2rem;
}

.mobile-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--color-white);
    font-size: 1.3rem;
    transition: all 0.3s ease;
}

.mobile-social-link:hover {
    color: var(--color-primary);
}


/* ============================================================
   HERO SLIDER - OWL CAROUSEL
   ============================================================ */

.hero-slider-section {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.hero-slider {
    width: 100%;
}

.hero-slide {
    position: relative;
    height: 100vh;
    width: 100%;
    overflow: hidden;
}

.hero-slide-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.hero-slide-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0.3) 100%);
    z-index: 1;
}

.hero-slide-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    padding: 0 1rem;
}

.hero-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 4.5rem;
    font-weight: 300;
    font-style: italic;
    line-height: 1;
    letter-spacing: 0.02em;
    color: var(--color-white);
    text-align: center;
    margin: 0;
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}

/* Hero Slider - Owl Carousel Navigation */
.hero-slider .owl-nav {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 2rem;
    pointer-events: none;
}

.hero-slider .owl-nav button.owl-prev,
.hero-slider .owl-nav button.owl-next {
    pointer-events: auto;
    width: 50px;
    height: 50px;
    background-color: transparent !important;
    border: 2px solid var(--color-white) !important;
    color: var(--color-white) !important;
    font-size: 1.5rem !important;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    margin: 0 !important;
    padding: 0 !important;
}

.hero-slider .owl-nav button.owl-prev:hover,
.hero-slider .owl-nav button.owl-next:hover {
    background-color: var(--color-white) !important;
    color: var(--color-primary) !important;
}

.hero-slider .owl-nav button span {
    font-size: 2rem;
    line-height: 1;
}

/* Hero Slider - Owl Carousel Dots */
.hero-slider .owl-dots {
    position: absolute;
    bottom: 40px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    z-index: 3;
}

.hero-slider .owl-dots .owl-dot {
    position: relative;
    width: 8px;
    height: 8px;
    background-color: var(--color-white) !important;
    border: none !important;
    border-radius: 50% !important;
    transition: all 0.3s ease;
    padding: 0 !important;
    margin: 0 !important;
}

.hero-slider .owl-dots .owl-dot::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 22px;
    height: 22px;
    border: 1px solid transparent;
    border-radius: 50% !important;
    transition: all 0.3s ease;
}

.hero-slider .owl-dots .owl-dot:hover {
    background-color: var(--color-white-80) !important;
}

.hero-slider .owl-dots .owl-dot.active {
    background-color: var(--color-accent) !important;
}

.hero-slider .owl-dots .owl-dot.active::before {
    border-color: var(--color-accent);
}

.hero-slider .owl-dots .owl-dot span {
    display: none;
}

/* Hero Slider - Responsive */
@media (max-width: 1399.98px) {
    .hero-slide {
        height: 900px;
        /* Altezza fissa per tablet landscape/piccoli desktop */
    }

    .hero-title {
        font-size: 4rem;
    }
}

@media (max-width: 1199.98px) {
    .hero-slide {
        height: 800px;
        /* Altezza fissa per tablet */
    }

    .hero-title {
        font-size: 3.5rem;
    }
}

@media (max-width: 991.98px) {
    .hero-slide {
        height: 700px;
        /* Altezza fissa per tablet portrait */
    }

    .hero-title {
        font-size: 3rem;
    }

    .hero-slider .owl-nav {
        padding: 0 1rem;
    }

    .hero-slider .owl-nav button.owl-prev,
    .hero-slider .owl-nav button.owl-next {
        width: 40px;
        height: 40px;
    }

    .hero-slider .owl-nav button span {
        font-size: 1.5rem;
    }
}

@media (max-width: 767.98px) {
    .hero-slide {
        height: 600px;
        /* Altezza fissa per mobile landscape */
    }

    .hero-title {
        font-size: 2.5rem;
    }

    .hero-slider .owl-dots {
        bottom: 30px;
    }

    .hero-slider .owl-dots .owl-dot {
        width: 10px;
        height: 10px;
    }

    .hero-slider .owl-dots .owl-dot::before {
        width: 20px;
        height: 20px;
    }
}

@media (max-width: 575.98px) {
    .hero-slide {
        height: 500px;
        /* Altezza fissa per mobile portrait */
    }

    .hero-title {
        font-size: 2rem;
    }

    .hero-slider .owl-nav {
        display: none;
    }

    .hero-slider .owl-dots {
        bottom: 20px;
        gap: 8px;
    }

    .hero-slider .owl-dots .owl-dot {
        width: 8px;
        height: 8px;
    }

    .hero-slider .owl-dots .owl-dot::before {
        width: 16px;
        height: 16px;
    }
}


/* ============================================================
   WHO WE ARE SECTION
   ============================================================ */

.who-we-are-section {
    background-color: #fff;
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.section-label {
    font-family: 'Epilogue', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-primary);
    display: block;
}

.who-we-are-text,
.who-we-are-text p {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2rem;
    font-weight: 300;
    line-height: 1.2;
    color: var(--color-primary);
    margin-bottom: 2rem;
}

.who-we-are-section .cta-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--color-primary);
    text-decoration: none;
    border-bottom: 1px solid var(--color-primary);
    padding-bottom: 0.25rem;
    /*padding-right: 1.5rem;*/
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.3s ease, border-bottom-color 0.3s ease;
    position: relative;
}

/* Linea animata sotto il link */
.who-we-are-section .cta-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: var(--color-accent);
    transition: width 0.3s ease;
}

/* Icone CTA */
.who-we-are-section .cta-link i {
    font-size: 0.875rem;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Icona default (freccia diagonale verso il basso a destra) - visibile */
.who-we-are-section .cta-link .cta-icon-default {
    display: inline-block;
}

/* Icona hover (freccia orizzontale verso destra) - nascosta */
.who-we-are-section .cta-link .cta-icon-hover {
    display: none;
}

.who-we-are-section .cta-link:hover {
    color: var(--color-accent);
    border-bottom-color: transparent;
}

/* Linea animata all'hover */
.who-we-are-section .cta-link:hover::after {
    width: 100%;
}

/* All'hover: nascondi icona default, mostra icona hover */
.who-we-are-section .cta-link:hover .cta-icon-default {
    display: none;
}

.who-we-are-section .cta-link:hover .cta-icon-hover {
    display: inline-block;
    transform: translateX(3px);
}

/* Who We Are Section - Responsive */
@media (max-width: 991.98px) {
    .who-we-are-section {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }

    .who-we-are-text {
        font-size: 1.75rem;
    }
}

@media (max-width: 767.98px) {
    .who-we-are-section {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .section-label {
        margin-bottom: 1.5rem;
    }

    .who-we-are-text {
        font-size: 1.5rem;
    }
}

@media (max-width: 575.98px) {
    .who-we-are-text {
        font-size: 1.375rem;
    }
}


/* ============================================================
   VIDEO & COMPANY NUMBERS SECTION
   ============================================================ */

.video-numbers-section {
    position: relative;
    width: 100%;
    overflow: hidden;
}

/* Wrapper principale per layout asimmetrico desktop */
.video-numbers-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

/* Colonna Video - Full Bleed a sinistra */
.video-column-wrapper {
    width: calc(75% - 10px);
}

/* Colonna Numeri - Boxed a destra */
.numbers-column-wrapper {
    width: calc(25% - 10px);
    display: flex;
    justify-content: flex-start;
}

/* Colonna Video - Full Bleed */
.video-column {
    position: relative;
    width: 100%;
    height: 600px;
    overflow: hidden;
}

.company-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.company-video-placeholder {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Colonna Numeri Aziendali - Boxed */
.numbers-column {
    background-color: #000;
    height: 600px;
    width: 100%;
    max-width: calc((1320px * 0.25));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3rem 2rem;
}

.number-slide {
    text-align: center;
    padding: 2rem 1rem;
}

.number-value {
    font-family: 'Epilogue', serif;
    font-size: 6rem;
    font-weight: 300;
    line-height: 1;
    color: var(--color-white);
    display: block;
    margin-bottom: 1.5rem;
}

.number-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--color-white);
    margin-bottom: 1rem;
}

.number-description {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.9375rem;
    font-weight: 300;
    line-height: 1.2;
    color: var(--color-white);
    margin-bottom: 0;
}

/* Company Numbers Slider - Owl Carousel Dots */
.company-numbers-slider .owl-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin-top: 2rem;
}

.company-numbers-slider .owl-dots .owl-dot {
    position: relative;
    width: 8px;
    height: 8px;
    background-color: var(--color-white) !important;
    border: none !important;
    border-radius: 50% !important;
    transition: all 0.3s ease;
    padding: 0 !important;
    margin: 0 !important;
}

.company-numbers-slider .owl-dots .owl-dot::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 22px;
    height: 22px;
    border: 1px solid transparent;
    border-radius: 50% !important;
    transition: all 0.3s ease;
}

.company-numbers-slider .owl-dots .owl-dot:hover {
    background-color: var(--color-white-80) !important;
}

.company-numbers-slider .owl-dots .owl-dot.active {
    background-color: var(--color-accent) !important;
}

.company-numbers-slider .owl-dots .owl-dot.active::before {
    border-color: var(--color-accent);
}

.company-numbers-slider .owl-dots .owl-dot span {
    display: none;
}

/* Video & Numbers Section - Responsive */
@media (max-width: 1399.98px) {
    .numbers-column {
        max-width: calc((1140px * 0.25));
    }
}

@media (max-width: 1199.98px) {
    .numbers-column {
        max-width: calc((960px * 0.25));
    }

    .video-column,
    .numbers-column {
        height: 500px;
    }

    .number-value {
        font-size: 5rem;
    }

    .number-title {
        font-size: 1.375rem;
    }
}

@media (max-width: 991.98px) {

    /* Su tablet e mobile, layout impilato */
    .video-numbers-wrapper {
        gap: 0;
    }

    .video-column-wrapper,
    .numbers-column-wrapper {
        width: 100%;
    }

    .numbers-column-wrapper {
        justify-content: center;
    }

    .numbers-column {
        max-width: 100%;
        width: 100%;
    }

    .video-column {
        height: 450px;
    }

    .numbers-column {
        height: auto;
        min-height: 400px;
        padding: 4rem 2rem;
    }

    .number-value {
        font-size: 4.5rem;
    }

    .number-title {
        font-size: 1.25rem;
    }

    .number-description {
        font-size: 0.875rem;
    }
}

@media (max-width: 767.98px) {
    .video-column {
        height: 350px;
    }

    .numbers-column {
        min-height: 350px;
        padding: 3rem 1.5rem;
    }

    .number-value {
        font-size: 4rem;
    }

    .number-title {
        font-size: 1.125rem;
    }
}

@media (max-width: 575.98px) {
    .video-column {
        height: 280px;
    }

    .numbers-column {
        min-height: 300px;
        padding: 2.5rem 1rem;
    }

    .number-value {
        font-size: 3.5rem;
    }

    .number-title {
        font-size: 1rem;
    }

    .number-description {
        font-size: 0.8125rem;
    }

    .company-numbers-slider .owl-dots {
        margin-top: 1.5rem;
        gap: 8px;
    }

    .company-numbers-slider .owl-dots .owl-dot {
        width: 6px;
        height: 6px;
    }

    .company-numbers-slider .owl-dots .owl-dot::before {
        width: 18px;
        height: 18px;
    }
}

/* ============================================================
   STATIC MAP SECTION
   ============================================================ */

.static-map-section {
    position: relative;
    width: 100%;
    overflow: hidden;
}

/* Wrapper per scroll orizzontale su mobile */
.map-scroll-wrapper {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* Firefox */
    -ms-overflow-style: none;
    /* IE/Edge */
    position: relative;
}

.map-scroll-wrapper::-webkit-scrollbar {
    display: none;
    /* Chrome/Safari/Opera */
}

.map-container {
    position: relative;
    width: 100%;
    min-height: 800px;
}

.map-image {
    width: 100%;
    height: auto;
    display: block;
    pointer-events: none;
}

/* Map Marker - Bulletpoint */
.map-marker {
    position: absolute;
    cursor: pointer;
    z-index: 10;
    padding: 10px;
    margin: -10px;
}

.marker-dot {
    display: block;
    width: 16px;
    height: 16px;
    background-color: var(--color-accent);
    border-radius: 50% !important;
    position: relative;
    z-index: 2;
}

.marker-pulse {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 16px;
    height: 16px;
    background-color: var(--color-accent);
    border-radius: 50% !important;
    opacity: 0;
    z-index: 1;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 0.7;
    }

    100% {
        transform: translate(-50%, -50%) scale(2.5);
        opacity: 0;
    }
}

.map-marker:hover .marker-dot {
    transform: scale(1.2);
    transition: transform 0.3s ease;
}

/* Map Popup Box */
.map-popup {
    position: absolute;
    background-color: var(--color-white);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    padding: 1.5rem;
    min-width: 220px;
    z-index: 20;
    display: none;
}

/* Posizioni specifiche dei popup su desktop per corrispondere ai marker */
@media (min-width: 992px) {
    .map-popup-desktop {
        top: -10px;
        left: 50%;
        transform: translate(-50%, -100%);
    }
}

.map-popup.active {
    display: block;
}

.popup-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.popup-title {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: var(--color-accent);
    text-transform: uppercase;
}

.popup-close {
    background: transparent;
    border: none;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--color-primary);
    cursor: pointer;
    padding: 0;
    margin: -0.5rem -0.5rem 0 0;
    transition: color 0.3s ease;
}

.popup-close:hover {
    color: var(--color-accent);
}

.popup-content {
    margin-bottom: 1rem;
}

.popup-item {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.9375rem;
    font-weight: 400;
    color: var(--color-primary);
    margin-bottom: 0.25rem;
}

.popup-item strong {
    font-weight: 600;
}

.popup-footer {
    padding-top: 0.5rem;
}

/* CTA Link nel Popup - Stile uguale a Who We Are Section */
.map-popup .cta-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--color-primary);
    text-decoration: none;
    border-bottom: 1px solid var(--color-primary);
    padding-bottom: 0.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.3s ease, border-bottom-color 0.3s ease;
    position: relative;
}

/* Linea animata sotto il link */
.map-popup .cta-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: var(--color-accent);
    transition: width 0.3s ease;
}

/* Icone CTA */
.map-popup .cta-link i {
    font-size: 0.875rem;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Icona default (freccia diagonale verso il basso a destra) - visibile */
.map-popup .cta-link .cta-icon-default {
    display: inline-block;
}

/* Icona hover (freccia orizzontale verso destra) - nascosta */
.map-popup .cta-link .cta-icon-hover {
    display: none;
}

.map-popup .cta-link:hover {
    color: var(--color-accent);
    border-bottom-color: transparent;
}

/* Linea animata all'hover */
.map-popup .cta-link:hover::after {
    width: 100%;
}

/* All'hover: nascondi icona default, mostra icona hover */
.map-popup .cta-link:hover .cta-icon-default {
    display: none;
}

.map-popup .cta-link:hover .cta-icon-hover {
    display: inline-block;
    transform: translateX(3px);
}

/* Static Map Section - Responsive */
@media (max-width: 1199.98px) {
    .map-container {
        min-height: 600px;
    }
}

@media (max-width: 991.98px) {

    /* Abilita scroll orizzontale su tablet */
    .map-scroll-wrapper {
        overflow-x: auto;
    }

    .map-container {
        width: 1200px;
        min-width: 1200px;
        min-height: 500px;
    }

    .map-image {
        width: 1200px;
        min-width: 1200px;
    }

    .map-popup {
        min-width: 200px;
        padding: 1.25rem;
    }

    .map-popup.active {
        display: block;
        position: fixed;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%);
        z-index: 100;
    }
}

@media (max-width: 767.98px) {
    .map-container {
        width: 1000px;
        min-width: 1000px;
        min-height: 400px;
    }

    .map-image {
        width: 1000px;
        min-width: 1000px;
    }

    .marker-dot {
        width: 12px;
        height: 12px;
    }

    .marker-pulse {
        width: 12px;
        height: 12px;
    }

    /* Popup posizionato al centro dello schermo quando attivo */
    .map-popup {
        min-width: 200px;
        max-width: calc(100vw - 40px);
        padding: 1rem;
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 100;
    }

    .popup-title {
        font-size: 0.75rem;
    }

    .popup-item {
        font-size: 0.875rem;
    }
}

@media (max-width: 575.98px) {
    .map-container {
        width: 900px;
        min-width: 900px;
        min-height: 350px;
    }

    .map-image {
        width: 900px;
        min-width: 900px;
    }

    .marker-dot {
        width: 10px;
        height: 10px;
    }

    .marker-pulse {
        width: 10px;
        height: 10px;
    }

    .map-popup {
        min-width: 180px;
        max-width: calc(100vw - 30px);
        padding: 0.875rem;
    }

    .popup-title {
        font-size: 0.6875rem;
    }

    .popup-item {
        font-size: 0.8125rem;
    }
}

/* Map Swipe Indicator - Solo Mobile */
.map-swipe-indicator {
    display: none;
}

@media (max-width: 991.98px) {
    .map-swipe-indicator {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 1rem;
        position: absolute;
        bottom: 30px;
        left: 50%;
        transform: translateX(-50%);
        background-color: #6b6b6b;
        color: var(--color-white);
        padding: 1rem 1.5rem;
        z-index: 15;
        min-width: 320px;
        max-width: 90%;
    }

    .map-swipe-indicator i {
        font-size: 1.25rem;
        flex-shrink: 0;
    }

    .map-swipe-indicator span {
        font-family: 'Epilogue', sans-serif;
        font-size: 0.8125rem;
        font-weight: 500;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        line-height: 1.5;
        text-align: left;
    }
}

@media (max-width: 767.98px) {
    .map-swipe-indicator {
        bottom: 25px;
        padding: 0.875rem 1.25rem;
        min-width: 280px;
        gap: 0.875rem;
    }

    .map-swipe-indicator i {
        font-size: 1.125rem;
    }

    .map-swipe-indicator span {
        font-size: 0.75rem;
    }
}

@media (max-width: 575.98px) {
    .map-swipe-indicator {
        bottom: 20px;
        padding: 0.75rem 1rem;
        min-width: 250px;
        gap: 0.75rem;
    }

    .map-swipe-indicator i {
        font-size: 1rem;
    }

    .map-swipe-indicator span {
        font-size: 0.6875rem;
        letter-spacing: 0.05em;
    }
}

/* ============================================================
   REFERENCES MODAL - MODALE REFERENZE (Bootstrap 5)
   ============================================================ */

/* Bootstrap Modal Backdrop personalizzato */
.referencesModal {
    background-color: rgba(128, 128, 128, 0.85);
}

/* Modal Dialog */
.referencesModal .modal-dialog {
    max-width: 1000px;
}

/* Modal Content */
.referencesModal .modal-content.references-modal-content {
    background-color: transparent;
    border: none;
    box-shadow: none;
}

/* Modal Header */
.referencesModal .modal-header.references-modal-header {
    background-color: transparent;
    border-bottom: none;
    padding: 0;
    position: relative;
    min-height: 50px;
}

.referencesModal .modal-header .btn-close {
    position: absolute;
    top: 0;
    right: 0;
    padding: 0;
    margin: 0;
    font-size: 1.5rem;
    opacity: 1;
    filter: invert(1);
    transition: opacity 0.3s ease;
}

.referencesModal .modal-header .btn-close:hover {
    opacity: 0.7;
}

/* Modal Body */
.referencesModal .modal-body.references-modal-body {
    background-color: #BFBFBF;
    /*padding: 2rem;*/
}

/* References Table Container */
.references-table-container {
    background-color: transparent;
    padding: 1.5rem;
}

/* References Table Controls */
.references-table-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 1rem;
}

.entries-control {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.entries-control .form-select {
    width: auto;
    min-width: 70px;
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    padding: 0.375rem 2rem 0.375rem 0.75rem;
    border: 1px solid #000;
}

.entries-control span {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    color: var(--color-primary);
}

.search-control {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

/* Search Input Wrapper */
.search-input-wrapper {
    display: flex;
    align-items: center;
    gap: 0;
    border: 0px solid #ccc;
    background-color: var(--color-white);
}

.search-input-wrapper .search-input {
    border: none;
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    padding: 0.375rem 0.75rem;
    min-width: 200px;
    outline: none;
}

.search-input-wrapper .search-input:focus {
    outline: none;
    box-shadow: none;
}

.search-input-wrapper .search-input::placeholder {
    color: var(--color-primary-40);
}

.search-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: var(--color-primary);
    border: 0px;
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    color: var(--color-white);
    cursor: pointer;
    padding: 0.5rem 0.75rem;
    transition: background-color 0.3s ease;
}

.search-btn:hover {
    background-color: var(--color-accent-hover);
}

.search-btn i {
    font-size: 1rem;
}

.active-filters {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.filter-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    background-color: var(--color-accent);
    color: var(--color-white);
    font-family: 'Epilogue', sans-serif;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.25rem 0.5rem;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.filter-tag:hover {
    background-color: var(--color-accent-hover);
}

.filter-tag i {
    font-size: 0.625rem;
}

/* References Table */
.references-table {
    width: 100%;
    margin-bottom: 0;
    border-collapse: collapse;
}

.references-table thead th {
    background-color: var(--color-accent);
    color: var(--color-white);
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: capitalize;
    padding: 0.875rem 1rem;
    border: none;
    text-align: left;
    vertical-align: middle;
}

.references-table tbody td {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--color-primary);
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #e0e0e0;
    vertical-align: middle;
}

.references-table tbody tr:hover {
    background-color: #f5f5f5;
}

.references-table tbody tr:last-child td {
    border-bottom: none;
}

/* DataTables Custom Styling */
.dataTables_wrapper {
    font-family: 'Epilogue', sans-serif;
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
    font-size: 0.875rem;
    color: var(--color-primary);
}

.dataTables_wrapper .dataTables_length {
    display: none;
}

.dataTables_wrapper .dataTables_filter {
    display: none;
}

.dataTables_wrapper .dataTables_info {
    padding-top: 1rem;
    font-size: 0.8125rem;
    color: var(--color-primary);
}

.dataTables_wrapper .dataTables_paginate {
    padding-top: 1rem;
}

.page-link {
    background-color: #BFBFBF !important;
    border: transparent !important;
    color: var(--color-primary) !important;
}

.pagination {
    --bs-pagination-font-size: 0.8rem !important;
    --bs-pagination-border-width: 0px !important;
}

.page-item:not(:first-child) .page-link {
    margin-left: 0px !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.8125rem;
    padding: 0px;
    margin: 0 0.125rem;
    border: 1px solid #000 !important;
    background: #BFBFBF !important;
    color: var(--color-primary) !important;
    cursor: pointer;
    transition: all 0.3s ease;
}

.disabled>.page-link,
.page-link.disabled {
    color: #000 !important;
    pointer-events: none;
    background-color: #999999 !important;
    border-color: #000 !important;
}

.active>.page-link,
.page-link.active {
    color: #fff !important;
    border-color: #000 !important;
    background-color: var(--color-accent) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: transparent !important;
    border-color: #000 !important;
    color: var(--color-primary) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current {
    background: var(--color-accent) !important;
    border-color: var(--color-accent) !important;
    color: var(--color-white) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* References Modal - Responsive */
@media (max-width: 991.98px) {
    .references-modal-content {
        width: 95%;
        margin: 3vh auto;
        max-height: 100%;
    }

    .references-modal-close {
        top: -40px;
        font-size: 1.75rem;
    }

    .references-modal-body {
        padding: 1.5rem;
        max-height: 100%;
    }

    .references-table-container {
        padding: 1rem;
    }

    .references-table thead th,
    .references-table tbody td {
        padding: 0.625rem 0.75rem;
        font-size: 0.8125rem;
    }
}

@media (max-width: 767.98px) {
    .references-modal-content {
        width: 98%;
        margin: 2vh auto;
        max-height: 100%;
    }

    .references-modal-close {
        top: -35px;
        font-size: 1.5rem;
    }

    .references-modal-body {
        padding: 1rem;
        max-height: 100%;
    }

    .references-table-container {
        padding: 0.75rem;
        overflow-x: visible;
    }

    /* Tabella Responsive - Layout Stacked/Card */
    .references-table {
        min-width: auto;
        width: 100%;
    }

    .references-table thead {
        display: none;
    }

    .references-table tbody tr {
        display: block;
        background-color: var(--color-white) !important;
        margin-bottom: 1rem;
        padding: 1rem;
        border: 1px solid #e0e0e0;
    }

    .references-table tbody tr:hover {
        background-color: var(--color-white);
    }

    .references-table tbody td {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        padding: 0.5rem 0;
        font-size: 0.875rem;
        border-bottom: 1px solid #f0f0f0;
        text-align: right;
    }

    .references-table tbody td:last-child {
        border-bottom: none;
    }

    .references-table tbody td::before {
        content: attr(data-label);
        font-weight: 600;
        color: var(--color-accent);
        text-transform: uppercase;
        font-size: 0.75rem;
        letter-spacing: 0.05em;
        text-align: left;
        flex-shrink: 0;
        margin-right: 1rem;
    }

    .references-table-controls {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 575.98px) {
    .references-modal-body {
        padding: 0.75rem;
    }

    .references-table-container {
        padding: 0.5rem;
    }

    .references-table tbody tr {
        padding: 0.75rem;
        margin-bottom: 0.75rem;
        background-color: var(--color-white) !important;
    }

    .references-table tbody td {
        padding: 0.375rem 0;
        font-size: 0.8125rem;
    }

    .references-table tbody td::before {
        font-size: 0.6875rem;
    }

    .entries-control .form-select {
        font-size: 0.75rem;
        padding: 0.25rem 1.5rem 0.25rem 0.5rem;
    }

    .entries-control span {
        font-size: 0.75rem;
    }

    .search-btn {
        font-size: 0.75rem;
    }
}

/* ============================================================
   WORKS SECTION STYLES
   ============================================================ */

.works-section {
    background-color: #F5F5F5;
    position: relative;
    overflow: hidden;
}


/* 
   Layout "Full Bleed Right" ma allineato a sinistra con il container Bootstrap 
   Calcoliamo il margine sinistro in base alla larghezza del container
*/
.works-wrapper {
    margin-left: calc((100% - 1320px) / 2 + 12px);
    /* 1320px è max-width di container-xxl */
    width: auto;
    overflow: visible;
}

/* Works Carousel Items */
.space-pad {
    padding-top: 120px;
    padding-bottom: 400px;
}

.works-carousel .item {
    padding-right: 20px;
    /* Spazio tra le slide */
}

.work-image-container {
    position: relative;
    overflow: hidden;
    height: 480px;
    width: 100%;
}

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

/* Hover Overlay */
.work-details-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    /* Sfondo scuro per contrasto col testo bianco */
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.4s ease;
    padding: 2rem;
    text-align: center;
}

/* Hover Effect */
.work-image-container:hover .work-img {
    transform: scale(1.05);
}

.work-image-container:hover .work-details-overlay {
    opacity: 1;
}

/* Text & Info Styles */
.work-info {
    transform: translateY(20px);
    transition: transform 0.4s ease;
}

.work-image-container:hover .work-info {
    transform: translateY(0);
}

.work-category {
    display: block;
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #f0f0f0;
    margin-bottom: 0.5rem;
}

.work-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1.1;
    color: #fff;
    margin-bottom: 1.5rem;
}

/* Link CTA Style - Replicating cta-link hover effect with custom colors */
.work-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    text-decoration: none;
    color: #fff;
    border-bottom: 1px solid #fff;
    padding-bottom: 0.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.3s ease, border-bottom-color 0.3s ease;
    position: relative;
}

/* Linea animata sotto il link */
.work-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: #FF6600;
    /* Custom Accent Color */
    transition: width 0.3s ease;
}

/* Icone CTA */
.work-link i {
    font-size: 0.875rem;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Icona default (freccia diagonale verso il basso a destra) - visibile */
.work-link .cta-icon-default {
    display: inline-block;
}

/* Icona hover (freccia orizzontale verso destra) - nascosta */
.work-link .cta-icon-hover {
    display: none;
}

/* Hover States */
.work-link:hover {
    color: #FF6600;
    /* Custom Accent Color */
    border-bottom-color: transparent;
    text-decoration: none;
}

/* Linea animata all'hover */
.work-link:hover::after {
    width: 100%;
}

/* All'hover: nascondi icona default, mostra icona hover */
.work-link:hover .cta-icon-default {
    display: none;
}

.work-link:hover .cta-icon-hover {
    display: inline-block;
    transform: translateX(3px);
}

/* Navigation Buttons */
.works-nav-container {
    display: flex;
    gap: 15px;
}

.works-nav-btn {
    width: 50px;
    height: 50px;
    background-color: #FF6600;
    /* Orange background */
    color: #fff;
    border-radius: 50% !important;
    /* Rounded */
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 1.2rem;
}

.works-nav-btn .bi::before,
[class*=" bi-"]::before,
[class^=bi-]::before {
    vertical-align: -0.2em;
}

.works-nav-btn:hover {
    background-color: #e65c00;
    /* Darker orange on hover */
    transform: translateY(-2px);
}


@media (max-width: 1399.98px) {
    .works-wrapper {
        margin-left: calc((100% - 1140px) / 2 + 12px);
    }
}

@media (max-width: 1199.98px) {
    .works-wrapper {
        margin-left: calc((100% - 960px) / 2 + 12px);
    }
}

@media (max-width: 1024px) {
    .collaboration-section {
        margin-top: 0 !important;
        padding-bottom: 3rem !important;
        margin-left: 0px !important;
    }

    .space-pad {
        padding-top: 80px !important;
        padding-bottom: 80px !important;
    }

}

@media (max-width: 991.98px) {
    .works-wrapper {
        margin-left: calc((100% - 720px) / 2 + 12px);
    }

    .space-pad {
        padding-top: 80px !important;
        padding-bottom: 80px !important;
    }
}

@media (max-width: 767.98px) {
    .works-wrapper {
        margin-left: 15px;
        /* Container fluid behavior on mobile */
        padding-right: 15px;
    }

    .work-image-container {
        height: 400px;
    }

    .work-title {
        font-size: 2rem;
    }
}

/* ============================================================
   CTA LINK STYLE - Identico a .who-we-are-section .cta-link
   ============================================================ */

.work-steps-section {
    background-color: #fff;
    padding: 100px 0;
}

.work-step-row {
    margin-bottom: 100px;
}

.work-step-row:last-child {
    margin-bottom: 0;
}

.work-step-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    padding-right: 50px;
    /* Spacing for left content */
}

/* Adjust padding for inverted row (content on right) */
.work-step-row.inverted .work-step-content {
    padding-right: 0;
    padding-left: 50px;
}

.work-step-icon {
    font-size: 4rem;
    /* Placeholder size for bootstrap icons if used, or img width */
    color: #E8541E;
    /* Orange color from previous requests/mockup */
    margin-bottom: 30px;
    display: block;
    width: 60px;
    /* Fixed width for SVG/Icon */
    height: auto;
}

.work-step-icon img,
.work-step-icon svg {
    width: 100%;
    height: auto;
    filter: invert(46%) sepia(96%) saturate(3993%) hue-rotate(349deg) brightness(91%) contrast(92%);
    /* Orange filter approximation if using black SVGs, or just use colored SVGs */
}

/* Fallback if using Bootstrap Icons font */
.work-step-icon i {
    font-size: 60px;
    color: #E8541E;
    font-weight: 300;
    /* Thin look */
}

.work-step-title {
    /* Eredita font-family dal body o usa quello specifico dei titoli del sito se definito in style.css */
    /* Solitamente h1, h2, h3 in style.css hanno già il font corretto */
    font-size: 32px;
    /* Dimensione simile a h3 standard o custom */
    margin-bottom: 20px;
    font-weight: 400;
    /* Peso standard */
    color: #000;
}

.work-step-text,
.work-step-text p {
    /* Eredita font-family dal body (Inter o altro sans-serif) */
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-primary);
    /* Colore testo standard più morbido */
    margin-bottom: 40px;
    max-width: 450px;
    /* Limit text width for readability */
}

.work-step-image-wrapper {
    width: 100%;
    height: 100%;
    min-height: 500px;
    /* Ensure visible height */
    overflow: hidden;
}

.work-step-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.work-steps-section .cta-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--color-primary);
    text-decoration: none;
    border-bottom: 1px solid var(--color-primary);
    padding-bottom: 0.25rem;
    /*padding-right: 1.5rem;*/
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.3s ease, border-bottom-color 0.3s ease;
    position: relative;
    width: auto;
    /* IMPORTANTE: Assicura che non sia full-width */
    align-self: flex-start;
    /* IMPORTANTE: Allinea a sinistra nel container flex */
}

/* Linea animata sotto il link */
.work-steps-section .cta-link::after {
    content: '';
    position: absolute;
    width: 0;
    height: 1px;
    bottom: -1px;
    left: 0;
    background-color: var(--color-accent);
    transition: width 0.3s ease;
}

/* Icone CTA */
.work-steps-section .cta-link i {
    font-size: 0.875rem;
    transition: transform 0.3s ease;
}

/* Icona default (freccia diagonale verso il basso a destra) - visibile */
.work-steps-section .cta-link .cta-icon-default {
    display: inline-block;
}

/* Icona hover (freccia orizzontale verso destra) - nascosta */
.work-steps-section .cta-link .cta-icon-hover {
    display: none;
}

.work-steps-section .cta-link:hover {
    color: var(--color-accent);
    border-bottom-color: transparent;
}

/* Linea animata all'hover */
.work-steps-section .cta-link:hover::after {
    width: 100%;
}

/* All'hover: nascondi icona default, mostra icona hover */
.work-steps-section .cta-link:hover .cta-icon-default {
    display: none;
}

.work-steps-section .cta-link:hover .cta-icon-hover {
    display: inline-block;
}


/* Responsive adjustments */
@media (max-width: 991px) {
    .work-step-row {
        margin-bottom: 60px;
    }

    .work-step-content,
    .work-step-row.inverted .work-step-content {
        padding: 0 0 40px 0;
    }

    .work-step-image-wrapper {
        min-height: 300px;
        padding-bottom: 30px;
        /* Padding bottom richiesto per mobile */
    }
}

/* ============================================================
   WORK GALLERY SECTION (COME LAVORIAMO SINGOLA)
   ============================================================ */

.work-gallery-section {
    padding-top: 5rem;
    padding-bottom: 5rem;
    background-color: #fff;
    /* O altro colore se necessario */
    overflow: hidden;
    /* Per gestire il full width del carosello */
}

/* Stili per il carosello */
.work-gallery-carousel .item {
    padding: 0 15px;
    /* Spazio tra le slide */
    transition: all 0.3s ease;
    opacity: 0.5;
    /* Opacità per le slide non attive */
    transform: scale(0.9);
    /* Leggermente più piccole */
}

.work-gallery-carousel .item img {
    width: 100%;
    height: 600px;
    /* Altezza fissa per uniformità */
    object-fit: cover;
    display: block;
}

/* Stile per la slide attiva (centrale) */
.work-gallery-carousel .owl-item.center .item {
    opacity: 1;
    transform: scale(1);
}

/* Navigazione custom */
.work-gallery-nav {
    display: flex;
    justify-content: flex-end;
    gap: 15px;
    margin-top: 30px;
    padding-right: 15px;
    /* Allineamento col container se necessario */
}

.work-gallery-nav button.owl-prev,
.work-gallery-nav button.owl-next {
    width: 50px;
    height: 50px;
    border-radius: 50% !important;
    background-color: #FF6600;
    /* Arancione brand */
    color: #fff;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.work-gallery-nav .bi::before,
[class*=" bi-"]::before,
[class^=bi-]::before {
    vertical-align: -0.2em;
}

.work-gallery-nav button.owl-prev:hover,
.work-gallery-nav button.owl-next:hover {
    background-color: #e65c00;
    /* Arancione scuro hover */
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .work-gallery-section {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }

    .work-gallery-carousel .item img {
        height: 250px;
    }

    .work-gallery-nav {
        justify-content: center;
        /* Centrato su mobile */
        padding-right: 0;
    }
}

/* ============================================================
   TEAM VALUES SECTION (AZIENDA)
   ============================================================ */

.team-values-section {
    background-color: var(--color-secondary);
    /* #F5F5F5 */
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.tv-box {
    padding-right: 1.5rem;
    /* Spazio tra le colonne */
}

.tv-label {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    /* 14px */
    font-weight: 400;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-accent);
    /* Colore Arancione come da immagine allegata */
    margin-bottom: 1rem;
    display: block;
}

.tv-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.25rem;
    /* 40px */
    font-weight: 300;
    line-height: 1.1;
    color: var(--color-primary);
    margin-bottom: 1.5rem;
}

.tv-text,
.tv-text p {
    font-family: 'Epilogue', sans-serif;
    font-size: 1rem;
    font-weight: 300;
    line-height: 1.6;
    color: var(--color-primary);
    margin-bottom: 0;
}

/* Responsive */
@media (max-width: 991.98px) {
    .team-values-section {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }

    .tv-box {
        padding-right: 0;
        margin-bottom: 3rem;
    }
}

@media (max-width: 767.98px) {
    .tv-title {
        font-size: 2rem;
    }
}


/* ============================================================
   SUSTAINABILITY SECTION
   ============================================================ */


.sustainability-section {
    background-color: #F5F5F5;
    padding: 100px 0;
}


.sustainability-intro-text {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2rem;
    font-weight: 300;
    line-height: 1.2;
    color: var(--color-primary);
    margin-bottom: 2rem;
}

.certification-logo {
    max-width: 120px;
    height: auto;
    display: block;
    margin-bottom: 10px;
    mix-blend-mode: multiply;
}

.certification-text {
    font-size: 0.75rem;
    color: #000;
    font-weight: bold;
    text-align: center;
    /* Or left depending on alignment with logo */
    max-width: 150px;
}

/* Reusing stats classes but if overrides needed */
.sustainability-section .stats-number {
    font-family: 'Inter', sans-serif;
    font-size: 80px;
    font-weight: 400;
    line-height: 1;
    color: #000;
    margin-bottom: 20px;
}

.sustainability-section .stats-label {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 15px;
    display: block;
    color: #000;
}

@media (max-width: 912px) {
    .sustainability-section .stats-number {
        font-size: 50px !important;
    }
}

@media (max-width: 768px) {
    .sustainability-section {
        padding-top: 0px;
        padding-bottom: 24px;
    }
}

/* ============================================================
   STEPS SECTION (AZIENDA)
   ============================================================ */

.steps-section {
    background-color: var(--color-secondary);
    /* F5F5F5 */
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.steps-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 5rem;
    font-weight: 300;
    line-height: 1.2;
    color: var(--color-primary);
    margin-bottom: 0;
    text-transform: uppercase;
}

/* Custom padding classes for title indentation */
.ps-custom-xl {
    padding-left: 8rem;
    /* Circa doppio di ps-5 che è 3rem */
}

/* CTA "Contattaci" - Stile identico a .who-we-are-section .cta-link */
.steps-section .cta-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--color-primary);
    text-decoration: none;
    border-bottom: 1px solid var(--color-primary);
    padding-bottom: 0.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.3s ease, border-bottom-color 0.3s ease;
    position: relative;
}

.steps-section .cta-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: var(--color-accent);
    transition: width 0.3s ease;
}

.steps-section .cta-link i {
    font-size: 0.875rem;
    transition: transform 0.3s ease;
}

/* Icona default (freccia diagonale verso il basso a destra) - visibile di default */
.steps-section .cta-link .cta-icon-default {
    display: inline-block;
}

/* Icona hover (freccia orizzontale verso destra) - nascosta di default */
.steps-section .cta-link .cta-icon-hover {
    display: none;
}

.steps-section .cta-link:hover {
    color: var(--color-accent);
    border-bottom-color: transparent;
}

.steps-section .cta-link:hover::after {
    width: 100%;
}

/* All'hover: nascondi icona default, mostra icona hover e muovila */
.steps-section .cta-link:hover .cta-icon-default {
    display: none;
}

.steps-section .cta-link:hover .cta-icon-hover {
    display: inline-block;
    transform: translateX(3px);
}

/* Step Box */
.step-box {
    background-color: var(--color-white);
    padding: 3rem 2rem;
    height: 100%;
    min-height: 400px;
    /* Altezza minima per uniformità */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.step-header {
    margin-bottom: 2rem;
    transition: opacity 0.3s ease;
}

.step-label {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-primary);
    display: block;
    margin-bottom: 4rem;
    /* Spazio tra label e icona */
}

.step-icon {
    width: 48px;
    height: 48px;
    color: var(--color-accent);
    /* Colore icona arancione */
    font-size: 3rem;
    /* Dimensione icona se font, oppure gestito se svg */
    display: block;
    margin-bottom: 2rem;
    transition: opacity 0.3s ease;
}

/* Se usi SVG img per le icone */
.step-icon-img {
    width: 48px;
    height: auto;
}

.step-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2rem;
    font-weight: 300;
    line-height: 1.2;
    color: var(--color-primary);
    margin-bottom: 0;
    transition: all 0.3s ease;
    /* Transizione anche per la posizione */
    position: relative;
    top: 0;
    /* Posizione iniziale */
}

/* Hover State - Contenuto nascosto per default */
.step-description-hover {
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    font-family: 'Epilogue', sans-serif;
    font-size: 1rem;
    font-weight: 300;
    line-height: 1.6;
    color: var(--color-white);
    /* Posizionamento assoluto per non influenzare altezza */
    position: absolute;
    bottom: 3rem;
    /* Allineato in basso con margine */
    left: 2rem;
    right: 2rem;
}

/* Step Box Hover Effect */
.step-box:hover {
    background-color: var(--color-primary);
    /* Nero */
    cursor: pointer;
}

.step-box:hover .step-title {
    color: var(--color-white);
    /* Sposta il titolo in alto all'hover */
    transform: translateY(-120px);
    /* Valore indicativo, aggiustato visivamente */
}

/* Nascondi icona e label step al passaggio del mouse per far posto al testo */
.step-box:hover .step-icon,
.step-box:hover .step-header {
    opacity: 0;
    visibility: hidden;
}

.step-box:hover .step-description-hover {
    opacity: 1;
    visibility: visible;
}

/* Responsive */
@media (max-width: 991.98px) {
    .steps-title {
        font-size: clamp(1.5rem, 5vw, 2.5rem);
        /* Dimensione font dinamica per evitare overflow */
        margin-bottom: 1.5rem;
        word-break: break-word;
        /* Va a capo se necessario */
        hyphens: auto;
        /* Sillabazione automatica */
    }

    .steps-header-row {
        flex-direction: column;
        align-items: flex-start !important;
    }

    .steps-section .cta-link {
        margin-top: 1rem;
    }

    /* Su mobile mantieni i br per avere tre righe e conserva l'indentazione */
    .steps-title span {
        /* Mantieni l'indentazione originale anche su mobile */
    }

    /* Mantieni l'indentazione personalizzata anche su mobile */
    .ps-custom-xl {
        padding-left: 8rem;
    }
}

@media (max-width: 767.98px) {
    .step-box {
        min-height: 350px;
        margin-bottom: 1.5rem;
    }
}

@media (max-width: 575.98px) {
    /* Su schermi molto piccoli, riduci leggermente l'indentazione */
    .ps-custom-xl {
        padding-left: 4rem;
    }
    
    .steps-title span.ps-5 {
        padding-left: 2rem !important;
    }
}

/* ============================================================
   CUSTOM STATS
   ============================================================ */

.stats-section {
    background-color: #F5F5F5;
    padding: 100px 0;
}

.stats-number {
    font-family: 'Inter', sans-serif;
    /* Assumo Inter o font simile dal progetto */
    font-size: 80px;
    font-weight: 400;
    line-height: 1;
    color: #000;
    margin-bottom: 20px;
}

.stats-number .plus,
.stats-number .percent {
    color: #E8541E;
    /* Colore arancione simile all'immagine */
}

.stats-label {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 15px;
    display: block;
    color: #000;
}

.stats-text {
    font-size: 16px;
    line-height: 1.5;
    color: #000;
    max-width: 250px;
}

@media (max-width: 912px) {
    .stats-number {
        font-size: 50px;
    }
}

/* ============================================================
   CUSTOM SINGLE WORKS
   ============================================================ */

.single-work-stats {
    background-color: #fff;
    padding-bottom: 3rem;
    padding-top: 5rem;
}

/* ============================================================
   CUSTOM REALIZZAZIONI GRID STYLES
   ============================================================ */

.realizzazioni-section {
    padding: 80px 0;
}

.realizzazione-card {
    margin-bottom: 60px;
    display: block;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
}

.realizzazione-card:hover {
    color: inherit;
    opacity: 0.9;
}

.logos-section.pb-custom-80 {
    padding-bottom: 80px !important;
}

.realizzazione-img-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 100%;
    /* Aspect ratio 1:1 (Square) */
    overflow: hidden;
    margin-bottom: 24px;
    background-color: #f5f5f5;
}

.collaboration-section.history-banner-section .collab-title {
    margin-bottom: 2.5rem !important;
}

.realizzazione-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

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

.realizzazione-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2rem;
    font-weight: 300;
    line-height: 1.2;
    color: var(--color-primary);
}

.realizzazione-location {
    font-family: 'Epilogue', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-primary);
}

.load-more-container {
    text-align: center;
    margin-top: 40px;
}

.btn-load-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #fff;
    background-color: #000;
    text-decoration: none;
    border: 1px solid #000;
    padding: 12px 30px;
    transition: all 0.3s ease;
    font-weight: 600;
}

.btn-load-more:hover {
    color: #fff;
    background-color: var(--color-accent);
    border-color: var(--color-accent);
}

/* ============================================================
   CUSTOM REALIZZAZIONI PAGINA SINGOLA
   ============================================================ */

/* Stili specifici per la pagina realizzazioni-pagina-singola.php */

/* 
   Sovrascrive il comportamento di default di history-banner-section
   per estendere il background #f5f5f5 anche nello spazio del margine sinistro.
   
   Invece di usare margin-left sulla section (che lascia lo spazio vuoto/trasparente),
   usiamo un padding-left equivalente e impostiamo il background sulla section stessa.
   In questo modo il colore copre tutta la larghezza fino a sinistra.
*/
.collaboration-section.history-banner-section.history-banner-realizzazioni-singola {
    background-color: #f5f5f5;
    margin-left: 0 !important;
    /* Rimuove il margine che creava il buco */
    padding-left: calc((100% - 1320px) / 2 + 12px);
    /* Lo rimpiazza con padding interno */
    width: 100%;
    /* Assicura full width */
}

@media (max-width: 1399.98px) {
    .collaboration-section.history-banner-section.history-banner-realizzazioni-singola {
        padding-left: 2rem;
        /* Adatta il padding su schermi più piccoli */
    }
}

@media (max-width: 991.98px) {
    .collaboration-section.history-banner-section.history-banner-realizzazioni-singola {
        padding-left: 0;
        /* Su mobile resetta o gestisci come preferisci (spesso full width) */
    }
}

/* Works Header Specific Adjustments */
.works-header-realizzazioni-singola {
    background-color: #f5f5f5;
}

@media (max-width: 991.98px) {
    .works-header-realizzazioni-singola {
        padding-bottom: 40px !important;
    }
}

.works-section-realizzazioni-singola {
    background-color: #f5f5f5;
}

/* CTA Styles copied from .steps-section .cta-link in css/custom-steps.css */
.works-header-realizzazioni-singola .cta-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--color-primary);
    text-decoration: none;
    border-bottom: 1px solid var(--color-primary);
    padding-bottom: 0.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.3s ease, border-bottom-color 0.3s ease;
    position: relative;
}

.works-header-realizzazioni-singola .cta-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: var(--color-accent);
    transition: width 0.3s ease;
}

.works-header-realizzazioni-singola .cta-link i {
    font-size: 0.875rem;
    transition: transform 0.3s ease;
}

.works-header-realizzazioni-singola .cta-link .cta-icon-default {
    display: inline-block;
}

.works-header-realizzazioni-singola .cta-link .cta-icon-hover {
    display: none;
}

.works-header-realizzazioni-singola .cta-link:hover {
    color: var(--color-accent);
    border-bottom-color: transparent;
}

.works-header-realizzazioni-singola .cta-link:hover::after {
    width: 100%;
}

.works-header-realizzazioni-singola .cta-link:hover .cta-icon-default {
    display: none;
}

.works-header-realizzazioni-singola .cta-link:hover .cta-icon-hover {
    display: inline-block;
    transform: translateX(3px);
}

.works-header-section .section-label {
    font-family: 'Epilogue', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-primary);
}

.works-header-section h2 {
    color: #000;
}

/* Intro Section Specific Adjustments */
.stats-section.single-work-stats.intro-section-padding-zero {
    padding-bottom: 0px !important;
}

/* ============================================================
   PAGE HEADER / HERO INTERNA
   ============================================================ */

.page-hero {
    position: relative;
    width: 100%;
    height: 100vh;
    /* Full screen height per desktop */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-end;
    /* Allinea il contenuto in basso */
    padding-bottom: 3rem;
    /* Spazio dal fondo */
}

/* Overlay scuro per migliorare la leggibilità del testo */
.page-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 80%);
    /* Gradiente dal nero trasparente al trasparente */
    z-index: 1;
}

.page-hero .container {
    position: relative;
    z-index: 2;
    /* Porta il contenuto sopra l'overlay */
}

.page-hero-title {
    font-family: 'Epilogue', sans-serif;
    font-size: 3.5rem;
    font-weight: 400;
    color: var(--color-white);
    margin-bottom: 0.5rem;
    line-height: 1.2;
}

/* Breadcrumb Styles */
.page-hero-breadcrumb {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    color: var(--color-white-80);
    margin-bottom: 0;
}

.page-hero-breadcrumb a {
    color: var(--color-white-80);
    text-decoration: none;
    transition: color 0.3s ease;
}

.page-hero-breadcrumb a:hover {
    color: var(--color-white);
}

.page-hero-breadcrumb .separator {
    margin: 0 0.5rem;
    color: var(--color-white-60);
}

/* CTA Button in Page Hero */
.page-hero-cta .btn-accent {
    padding: 0.75rem 1.5rem;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 0;
}

/* Responsive Styles for Page Hero */
@media (max-width: 1024px) {
    .page-hero {
        height: 700px;
        /* Altezza fissa su tablet/mobile */
        min-height: 0;
    }

    .page-hero-title {
        font-size: 2.5rem;
    }
}

@media (max-width: 767.98px) {
    .page-hero {
        height: 600px;
        padding-bottom: 2rem;
    }

    .page-hero-title {
        font-size: 2rem;
    }

    .page-hero .row {
        flex-direction: column;
        gap: 1.5rem;
    }

    .page-hero-cta {
        text-align: left !important;
        /* Allinea a sinistra su mobile */
    }
}

/* ============================================================
   NO HERO VARIANT (Text Only Pages)
   ============================================================ */

.page-hero.page-hero-no-bg {
    background: linear-gradient(to bottom, #000000 0%, #f5f5f5 100%);
    height: auto !important;
    min-height: 250px;
    /* Altezza ridotta */
    padding-top: 180px;
    /* Spazio per l'header fisso se presente, adjust as needed */
    padding-bottom: 3rem;
    align-items: flex-end;
}

.page-hero.page-hero-no-bg::before {
    display: none;
    /* Rimuove overlay scuro */
}

.page-hero.page-hero-no-bg .page-hero-title.text-dark {
    color: #000;
}

.page-hero.page-hero-no-bg .page-hero-breadcrumb a.text-dark,
.page-hero.page-hero-no-bg .page-hero-breadcrumb .separator.text-dark,
.page-hero.page-hero-no-bg .page-hero-breadcrumb .current.text-dark {
    color: #000;
}

/* Hover state for breadcrumb links in no-hero */
.page-hero.page-hero-no-bg .page-hero-breadcrumb a.text-dark:hover {
    color: var(--color-primary);
    /* O un altro colore di hover appropriato */
    opacity: 0.7;
}

@media (max-width: 1024px) {
    .page-hero.page-hero-no-bg {
        height: auto !important;
        min-height: 200px;
        padding-top: 150px;
    }
}

@media (max-width: 767.98px) {
    .page-hero.page-hero-no-bg {
        padding-top: 120px;
    }
}

/* ============================================================
   OUR STORY SECTION (AZIENDA)
   ============================================================ */

.our-story-section {
    background-color: var(--color-white);
    padding-top: 5rem;
    padding-bottom: 5rem;
}

/* Riuso stili esistenti per la parte "Who We Are" (section-label, who-we-are-text) da style.css */

/* Carousel Storia */
.story-carousel-wrapper {
    margin-top: 3rem;
    position: relative;
    padding-bottom: 3rem;
    /* Spazio per i dots */
}

.story-carousel .item {
    padding: 0 15px;
}

.story-slide {
    display: flex;
    align-items: flex-start;
    gap: 3rem;
}

.story-year {
    font-family: 'Epilogue', serif;
    font-size: 5rem;
    /* Simile a number-value */
    font-weight: 400;
    line-height: 1;
    color: var(--color-accent);
    /* Colore arancione come da immagine */
    flex-shrink: 0;
    width: 35%;
    /* Larghezza per l'anno */
}

.story-content {
    padding-top: 0.5rem;
}

.story-description {
    font-family: 'Epilogue', sans-serif;
    font-size: 1.125rem;
    font-weight: 300;
    line-height: 1.4;
    color: var(--color-primary);
}

/* Owl Carousel Dots Customization per sfondo bianco */
.story-carousel .owl-dots {
    margin-top: 5rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
}

.story-carousel .owl-dots .owl-dot {
    position: relative;
    width: 8px;
    height: 8px;
    background-color: #000 !important;
    /* Nero per sfondo bianco */
    border-radius: 50% !important;
    transition: all 0.3s ease;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}

.story-carousel .owl-dots .owl-dot::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 22px;
    height: 22px;
    border: 1px solid transparent;
    border-radius: 50% !important;
    transition: all 0.3s ease;
}

.story-carousel .owl-dots .owl-dot:hover {
    background-color: rgba(0, 0, 0, 0.8) !important;
}

.story-carousel .owl-dots .owl-dot.active {
    background-color: var(--color-accent) !important;
}

.story-carousel .owl-dots .owl-dot.active::before {
    border-color: var(--color-accent);
}

.story-carousel .owl-dots .owl-dot span {
    display: none;
}

/* Nascondo le frecce di default se presenti */
.story-carousel .owl-nav {
    display: none;
}

/* Responsive */
@media (max-width: 1024px) {
    .story-year {
        font-size: 4rem;
        width: 100%;
        margin-bottom: 1rem;
    }

    .story-slide {
        flex-direction: column;
        gap: 0;
    }
}

@media (max-width: 767.98px) {
    .story-year {
        font-size: 3.5rem;
    }
}

/* ============================================================
   LOGOS CAROUSEL
   ============================================================ */

.logos-section {
    background-color: #F5F5F5;
    padding-bottom: 80px;
    /* Spazio sotto, dato che il sopra è attaccato alla sezione stats */
    padding-top: 0;
    /* Continuità con la sezione stats che è già F5F5F5 */
}

.logos-section.bg-white {
    background-color: #fff !important;
}

.logos-section.pb-custom-80 {
    padding-bottom: 80px !important;
}

.space_logos {
    padding-bottom: 40px;
}

.logos-carousel .item {
    text-align: center;
    padding: 20px;
    display: flex;
    align-items: center;
    justify_content: center;
    height: 100px;
    /* Altezza fissa per allineamento verticale */
}

.logos-carousel .item img {
    max-width: 100%;
    max-height: 60px;
    /* Limite altezza loghi */
    width: auto !important;
    /* Override owl carousel width 100% */
    display: inline-block !important;
    filter: grayscale(100%);
    /* Opzionale: rende i loghi in scala di grigi come nell'immagine */
    opacity: 0.7;
    transition: all 0.3s ease;
}

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

/* ============================================================
   CUSTOM IMAGE SECTION
   ============================================================ */

.image-wrapper-480 img {
    height: 480px;
    object-fit: cover;
}

@media (max-width: 768px) {
    .image-wrapper-480 img {
        height: auto;
        /* O un'altra altezza specifica per mobile, es. 250px */
        min-height: 250px;
    }
}

/* ============================================================
   HISTORY BANNER (AZIENDA)
   ============================================================ */

.history-banner-inverted-wrapper-bg.bg-white {
    background-color: #fff !important;
}

/* ============================================================ */
/*
   Per mantenere lo STESSO stile della collaboration-section ma con minime differenze,
   usiamo un selettore specifico per resettare il posizionamento.
*/

/* Se la sezione ha classe collaboration-section E history-banner-section */
.collaboration-section.history-banner-section {
    margin-top: 0 !important;
    padding-bottom: 5rem !important;
    margin-left: calc((100% - 1320px) / 2 + 12px);
    /* Default come in azienda */
    position: relative;
    z-index: 10;
}

/* Stili specifici per il contenuto del banner storia (es. font size, no cta) */
.collaboration-section.history-banner-section .collab-label {
    font-size: 0.875rem;
    /* Più piccolo come richiesto */
}

.collaboration-section.history-banner-section .collab-title {
    font-size: clamp(2.5rem, 4vw, 3.5rem);
    /* Un po' più piccolo */
    margin-bottom: 0;
}

/* Overlay specifico se diverso */
.collaboration-section.history-banner-section .collab-banner-bg::before {
    background: linear-gradient(to right, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0) 100%);
}


/* ============================================================
   HISTORY BANNER INVERTED (COME LAVORIAMO)
   ============================================================ */

/* Inverte l'allineamento: spazio bianco a destra invece che a sinistra */
.collaboration-section.history-banner-inverted {
    margin-left: 0 !important;
    /* Resetta margine sinistro */
    margin-right: calc((100% - 1320px) / 2 + 12px);
    /* Spazio bianco a destra */
    margin-top: 0 !important;
    padding-bottom: 5rem;
    position: relative;
    z-index: 10;
}

/* Colora lo sfondo della sezione (visibile nello spazio vuoto creato dal margine) */
.history-banner-inverted-wrapper-bg {
    background-color: #f5f5f5;
}

/* Adatta anche l'overlay del gradiente se necessario (es. da destra a sinistra) */
/* Se il contenuto deve spostarsi o cambiare allineamento, si può fare qui.
   Di default collab-content è align-items: flex-start (sinistra). */

@media (max-width: 1399.98px) {
    .collaboration-section.history-banner-inverted {
        margin-right: 2rem !important;
        /* Margine ridotto su schermi medi */
    }
}

@media (max-width: 991.98px) {
    .collaboration-section.history-banner-inverted {
        margin-right: 0 !important;
        padding-bottom: 0 !important;
        /* Full width su mobile */
        width: 100%;
    }
}

/* ============================================================
   GREEN STEPS
   ============================================================ */

.green-steps-section {
    background-color: #F5F5F5;
    padding: 100px 0;
    position: relative;
    z-index: 10;
    /* Deve stare SOPRA alla collaboration-section successiva */
}

.green-steps-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 5rem;
    font-weight: 300;
    line-height: 1.2;
    color: var(--color-primary);
    margin-bottom: 0;
    text-transform: uppercase;
}

.green-steps-title span {
    display: block;
}

.green-steps-title .ps-custom-1 {
    padding-left: 2rem;
}

.green-steps-title .ps-custom-2 {
    padding-left: 4rem;
}

.green-steps-text,
.green-steps-text p {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2rem;
    font-weight: 300;
    line-height: 1.2;
    color: var(--color-primary);
    max-width: 500px;
}

/* Green Step Box Styles */
.green-step-box {
    position: relative;
    height: 400px;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    /* Changed from center to flex-start */
    text-align: left;
    /* Changed from center to left */
    color: #fff;
    overflow: hidden;
    padding: 0 4rem;
    /* Added padding to give some space from the left edge */
}

/* Overlay scuro per migliorare la leggibilità */
.green-step-box::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1;
}

.green-step-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* Changed from center to flex-start */
}

.green-step-subtitle {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 1rem;
    display: block;
}

.green-step-box-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 3rem;
    font-weight: 300;
    line-height: 1.1;
    margin-bottom: 2rem;
}

.green-step-link {
    color: #fff;
    text-decoration: none;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
    border-bottom: 1px solid #fff;
    padding-bottom: 2px;
    transition: all 0.3s ease;
}

.green-step-link:hover {
    color: #fff;
    opacity: 0.8;
}


@media (max-width: 1199.98px) {
    .green-steps-text {
        font-size: 1.75rem;
    }
}

@media (max-width: 991.98px) {
    .green-steps-text {
        font-size: 1.5rem;
    }
}

@media (max-width: 575.98px) {
    .green-steps-text {
        font-size: 1.375rem;
    }
}

@media (max-width: 991px) {
    .green-steps-title {
        font-size: 3.5rem;
        margin-bottom: 2rem;
    }

    .green-steps-title .ps-custom-1,
    .green-steps-title .ps-custom-2 {
        padding-left: 0;
        /* Reset indentation on mobile */
    }
}

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

/* Global Footer Wrapper */
.site-footer-wrapper {
    position: relative;
    background-color: #000;
    /* Fallback */
    color: #fff;
    font-family: 'Epilogue', sans-serif;
    overflow: hidden;
    /* Ensure overlay covers everything */
}

/* Immagine di sfondo con filtro bianco e nero */
.site-footer-wrapper::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('../img/bg_footer.png');
    background-size: cover;
    background-position: center;
    filter: grayscale(100%);
    z-index: 0;
}

/* Overlay scuro per tutto il footer */
.site-footer-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.9) 40%, rgba(0, 0, 0, 0.5) 100%);
    /* Overlay unico più scuro per leggibilità globale */
    z-index: 1;
}

/* Assicuriamo che il contenuto sia sopra l'overlay */
.site-footer-wrapper>* {
    position: relative;
    z-index: 2;
}

/* CTA Section */
.footer-cta-section {
    padding: 8rem 0 4rem 0;
    /* Spaziatura aggiustata */
    background: transparent;
    /* Rimuovi background specifico */
}

.footer-cta-title {
    font-family: 'Epilogue', sans-serif;
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 400;
    color: #fff;
    line-height: 1.1;
}

.text-accent {
    color: var(--color-accent, #E84E0F);
}

.footer-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    background-color: var(--color-accent, #E84E0F);
    color: #fff;
    font-size: 2rem;
    transition: all 0.3s ease;
}

.footer-cta-btn:hover {
    background-color: #fff;
    color: var(--color-accent, #E84E0F);
}


/* Main Footer Content */
.main-footer-content {
    background-color: transparent;
    /* Trasparente per mostrare l'immagine sotto */
    padding-top: 4rem;
}

.footer-heading {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #fff;
    margin-bottom: 1.5rem;
    font-weight: 400;
}

.footer-nav,
.footer-contact-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-nav li,
.footer-contact-list li {
    margin-bottom: 0.75rem;
}

.footer-nav a,
.footer-contact-list a,
.footer-contact-list li {
    color: #fff;
    text-decoration: none;
    font-size: 1rem;
    transition: color 0.3s ease;
    font-weight: 300;
}

.footer-nav a:hover,
.footer-contact-list a:hover {
    color: var(--color-accent, #E84E0F);
}

/* Newsletter Form */
.footer-newsletter-form .form-control {
    background-color: transparent;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 0;
    padding: 0.75rem 0;
    color: #fff;
    font-weight: 300;
}

.footer-newsletter-form .form-control::placeholder {
    color: rgba(255, 255, 255, 0.5);
}

.footer-newsletter-form .form-control:focus {
    box-shadow: none;
    border-color: var(--color-accent, #E84E0F);
}

.footer-check-label {
    font-size: 0.875rem;
    color: #fff;
    font-weight: 300;
}

/* Submit Button - Stile identico a Collaboration Section CTA */
.footer-submit-btn {
    background: none;
    border: none;
    cursor: pointer;
    margin-top: 1rem;
    /* Reset stili pulsante */
    padding: 0;
}

.footer-submit-btn.cta-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    color: #fff;
    text-decoration: none;
    border-bottom: 1px solid #fff;
    padding-bottom: 0.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.3s ease, border-bottom-color 0.3s ease;
    position: relative;
}

/* Linea animata sotto il link */
.footer-submit-btn.cta-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: var(--color-accent);
    transition: width 0.3s ease;
}

/* Icone CTA */
.footer-submit-btn.cta-link i {
    font-size: 0.875rem;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Icona default (freccia diagonale verso il basso a destra) - visibile */
.footer-submit-btn.cta-link .cta-icon-default {
    display: inline-block;
}

/* Icona hover (freccia orizzontale verso destra) - nascosta */
.footer-submit-btn.cta-link .cta-icon-hover {
    display: none;
}

.footer-submit-btn.cta-link:hover {
    color: var(--color-accent);
    border-bottom-color: transparent;
}

/* Linea animata all'hover */
.footer-submit-btn.cta-link:hover::after {
    width: 100%;
}

/* All'hover: nascondi icona default, mostra icona hover */
.footer-submit-btn.cta-link:hover .cta-icon-default {
    display: none;
}

.footer-submit-btn.cta-link:hover .cta-icon-hover {
    display: inline-block;
    transform: translateX(3px);
}


/* Footer Bottom / Copyright */
.footer-bottom {
    background-color: transparent;
    /* Trasparente */
    padding: 2rem 0;
    margin-top: 4rem;
    font-size: 0.75rem;
    color: #fff;
    border-top: 1px solid rgba(255, 255, 255, 0.3);
    /* Separatore sottile */
}

.copyright-text {
    margin-bottom: 0.25rem;
    color: #fff;
    font-size: 0.75rem !important;
}

.copyright-subtext {
    margin-bottom: 0;
    opacity: 0.6;
}

.footer-legal-nav {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.footer-legal-nav li {
    display: inline-block;
    margin: 0 0.5rem;
}

.footer-legal-nav a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-legal-nav a:hover {
    color: #fff;
}

.separator {
    color: rgba(255, 255, 255, 0.3);
}

.nur-credit {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
}

.nur-credit:hover {
    color: #fff;
}

/* Responsive Adjustments */
@media (max-width: 991.98px) {
    .footer-cta-title {
        font-size: 2.5rem;
        text-align: left;
    }

    /* Fix alignment issues on mobile */
    .footer-cta-col-right {
        text-align: left !important;
        margin-top: 2rem;
    }

    .footer-cta-btn {
        width: 60px;
        height: 60px;
        font-size: 1.5rem;
    }

    .footer-legal-nav {
        justify-content: flex-start;
        margin-top: 1rem;
        margin-bottom: 1rem;
    }

    /* Correct selector for footer bottom alignment on mobile if needed */
    .footer-bottom .text-lg-end,
    .footer-bottom .text-lg-center {
        text-align: center !important;
    }
}

/* ============================================================
   CONTACT FORM SECTION (COME LAVORIAMO SINGOLA)
   ============================================================ */

.contact-form-section {
    background-color: #fff;
    padding-bottom: 80px;
    /* Spaziatura gestita da py-5 (padding-top e padding-bottom) su section */
}

/* Background grigio per lavora con noi */
.contact-form-section.bg-gray-light {
    background-color: #f5f5f5;
}

/* Label Sezione (es. "CONTATTACI") - Allineato a SX colonna */
.section-label {
    font-family: 'Epilogue', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-primary);
    display: block;
}


/* Testo introduttivo (es. "Lorem ipsum...") */
.contact-form-intro-text,
.contact-form-intro-text p {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2rem;
    font-weight: 300;
    line-height: 1.2;
    color: var(--color-primary);
    margin-bottom: 2rem;
}

/* -----------------------------------------------------------
   RECAPITI (INDIRIZZO, RECAPITI, SOCIAL)
   ----------------------------------------------------------- */
.stats-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #999;
    margin-bottom: 0.5rem;
}

.stats-text {
    font-size: 0.95rem;
    line-height: 1.5;
    color: #000;
    margin-bottom: 0;
}

/* -----------------------------------------------------------
   FORM STYLING
   ----------------------------------------------------------- */
.custom-form input.form-control,
.custom-form textarea.form-control {
    border: 1px solid #000;
    border-radius: 0;
    padding: 15px;
    background-color: transparent;
    /* Per adattarsi al bg sezione */
    outline: none;
    box-shadow: none;
    font-size: 0.95rem;
    color: #000;
    font-weight: 300;
    transition: border-color 0.3s ease;
}


.custom-form input.form-control::placeholder,
.custom-form textarea.form-control::placeholder {
    color: #6c757d;
    /* Grigio per il placeholder */
    opacity: 1;
}

.custom-form input.form-control:focus,
.custom-form textarea.form-control:focus {
    border-color: #000;
    outline: none;
    box-shadow: none;
}

/* Checkbox Privacy */
.custom-form .form-check-input {
    border-radius: 0;
    width: 16px;
    height: 16px;
    margin-top: 0.3rem;
    cursor: pointer;
    border: 1px solid #000;
    margin-top: 0.3em;
}

.custom-form .form-check-input:checked {
    background-color: #000;
    border-color: #000;
}

.custom-form .form-check-label {
    font-size: 0.85rem;
    color: #000;
    margin-left: 5px;
    line-height: 1.5;
    cursor: pointer;
}

/* Bottone Submit (stile link con freccia) */
/* Questa regola agisce SOLO all'interno di .contact-form-section e .green-steps-section per non sovrascrivere il footer globale */
.contact-form-section .footer-submit-btn,
.contact-form-section .footer-submit-btn.cta-link,
.green-steps-section .footer-submit-btn,
.green-steps-section .footer-submit-btn.cta-link {
    background: none;
    border: none;
    padding: 0;
    font-size: 0.875rem;
    font-weight: 400;
    text-transform: none;
    color: #000;
    /* Nero forzato per il contenuto della pagina */
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    transition: color 0.3s ease, border-bottom-color 0.3s ease;
    border-bottom: 1px solid #000 !important;
    /* Riga nera forzata */
    padding-bottom: 0.25rem;
    position: relative;
    letter-spacing: 0.02em;
    font-family: 'Epilogue', sans-serif;
}

/* Ripristino linea animata solo per questi contesti */
.contact-form-section .footer-submit-btn.cta-link::after,
.green-steps-section .footer-submit-btn.cta-link::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 0;
    height: 1px;
    background-color: var(--color-accent);
    transition: width 0.3s ease;
    display: block;
}

.contact-form-section .footer-submit-btn:hover,
.contact-form-section .footer-submit-btn.cta-link:hover,
.green-steps-section .footer-submit-btn:hover,
.green-steps-section .footer-submit-btn.cta-link:hover {
    color: var(--color-accent) !important;
    border-bottom-color: transparent !important;
}

.contact-form-section .footer-submit-btn.cta-link:hover::after,
.green-steps-section .footer-submit-btn.cta-link:hover::after {
    width: 100%;
}

/* Icone freccia pulsante */
.footer-submit-btn .cta-icon-default {
    display: inline-block;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.footer-submit-btn .cta-icon-hover {
    display: none;
    /* nascosta di default */
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.footer-submit-btn:hover .cta-icon-default {
    display: none;
}

.footer-submit-btn:hover .cta-icon-hover {
    display: inline-block;
}

h3.tv-label {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: 1rem;
    display: block;
}

.bg-light-form {
    background-color: #f5f5f5;
}

/* -----------------------------------------------------------
   RESPONSIVE
   ----------------------------------------------------------- */
@media (max-width: 768px) {
    .section-label {
        margin-bottom: 1rem;
        /* Spazio sotto label su mobile */
    }

    .contact-form-intro-text,
    .contact-form-intro-text p {
        max-width: 100%;
        font-size: 1rem;
    }
}

/* ============================================================
   COLLABORATION BANNER STYLES
   ============================================================ */

.collaboration-section {
    position: relative;
    z-index: 10;
    /* Margine negativo per sovrapposizione visiva desktop */
    margin-top: -280px;
    /* Spazio sotto */
    padding-bottom: 5rem;
    margin-left: calc((100% - 1320px) / 2 + 12px);
    width: auto;
    overflow: visible;
}

/* Container specifico per gestire il layout asimmetrico */
.collaboration-section .container-fluid {
    width: 100%;
    padding: 0;
    overflow: hidden;
    /* Evita scroll orizzontale se qualcosa sfora */
}

/* Background image container */
.collab-banner-bg {
    position: relative;
    width: 100%;
    min-height: 600px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    /* Rimosso gradiente, gestito inline o via classe se img tag */
    overflow: hidden;
    display: flex;
    align-items: center;
}

/* Overlay gradiente nero a sinistra */
.collab-banner-bg::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to right, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 40%, rgba(0, 0, 0, 0) 100%);
    z-index: 1;
}


/* Wrapper */
.collab-banner-wrapper {
    width: 100%;
    height: 100%;
}

/* Content */
.collab-content {
    position: relative;
    z-index: 2;
    padding: 4rem 6vw;
    /* Padding responsive basato sulla viewport width */
    width: 100%;
    max-width: 800px;
    /* Larghezza massima contenuto */
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* Allinea tutto a sinistra */
}

/* Typography */
.collab-label {
    font-family: 'Epilogue', sans-serif;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 1.5rem;
    display: block;
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: 0.15em;
}

.collab-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    font-weight: 300;
    line-height: 1;
    color: #fff;
    margin-bottom: 2.5rem;
    text-align: left;
    /* Allineamento a sinistra */
}

/* CTA Link (stile identico a .our-clients-section ma bianco) */
.collaboration-section .cta-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    color: #fff;
    text-decoration: none;
    border-bottom: 1px solid #fff;
    padding-bottom: 0.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.3s ease, border-bottom-color 0.3s ease;
    position: relative;
}

/* Linea animata sotto il link */
.collaboration-section .cta-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: var(--color-accent);
    transition: width 0.3s ease;
}

/* Icone CTA */
.collaboration-section .cta-link i {
    font-size: 0.875rem;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Icona default (freccia diagonale verso il basso a destra) - visibile */
.collaboration-section .cta-link .cta-icon-default {
    display: inline-block;
}

/* Icona hover (freccia orizzontale verso destra) - nascosta */
.collaboration-section .cta-link .cta-icon-hover {
    display: none;
}

.collaboration-section .cta-link:hover {
    color: var(--color-accent);
    border-bottom-color: transparent;
}

/* Linea animata all'hover */
.collaboration-section .cta-link:hover::after {
    width: 100%;
}

/* All'hover: nascondi icona default, mostra icona hover */
.collaboration-section .cta-link:hover .cta-icon-default {
    display: none;
}

.collaboration-section .cta-link:hover .cta-icon-hover {
    display: inline-block;
    transform: translateX(3px);
}


/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 991.98px) {
    .collaboration-section {
        margin-top: 0;
        /* Rimuove sovrapposizione su tablet/mobile */
        padding-bottom: 3rem;
        margin-left: 0px !important;
    }

    .collab-banner-bg {
        min-height: 480px;
    }

    .collab-content {
        padding: 3rem 2rem;
        max-width: 100%;
    }

}

@media (max-width: 575.98px) {
    .collab-content {
        padding: 2rem 1.5rem;
    }

    .collab-title {
        margin-bottom: 2rem;
    }
}

/* ============================================================
   CUSTOM CLIENTS
   ============================================================ */

/* Custom styles for Clients Section */

.our-clients-section .owl-carousel .item img {
    filter: grayscale(100%);
    opacity: 0.6;
    transition: all 0.3s ease;
}

.our-clients-section .owl-carousel .item:hover img {
    filter: grayscale(0%);
    opacity: 1;
}

.our-clients-section .h3 {
    font-size: 1.75rem;
    line-height: 1.4;
}

/* Stili CTA identici a Who We Are Section */
.our-clients-section .cta-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--color-primary);
    text-decoration: none;
    border-bottom: 1px solid var(--color-primary);
    padding-bottom: 0.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.3s ease, border-bottom-color 0.3s ease;
    position: relative;
}

/* Linea animata sotto il link */
.our-clients-section .cta-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: var(--color-accent);
    transition: width 0.3s ease;
}

/* Icone CTA */
.our-clients-section .cta-link i {
    font-size: 0.875rem;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Icona default (freccia diagonale verso il basso a destra) - visibile */
.our-clients-section .cta-link .cta-icon-default {
    display: inline-block;
}

/* Icona hover (freccia orizzontale verso destra) - nascosta */
.our-clients-section .cta-link .cta-icon-hover {
    display: none;
}

.our-clients-section .cta-link:hover {
    color: var(--color-accent);
    border-bottom-color: transparent;
}

/* Linea animata all'hover */
.our-clients-section .cta-link:hover::after {
    width: 100%;
}

/* All'hover: nascondi icona default, mostra icona hover */
.our-clients-section .cta-link:hover .cta-icon-default {
    display: none;
}

.our-clients-section .cta-link:hover .cta-icon-hover {
    display: inline-block;
    transform: translateX(3px);
}

@media (max-width: 991.98px) {
    .our-clients-section .section-label {
        margin-bottom: 0.5rem;
        display: block;
    }

    .our-clients-section h2 {
        margin-bottom: 1.5rem !important;
    }
}

/* ============================================================
   CLIENTS TABS SECTION (AZIENDA)
   ============================================================ */

.clients-tabs-section {
    position: relative;
    width: 100%;
    min-height: 600px;
    background-color: #000;
    overflow: hidden;
}

/* Background Images per ogni Tab */
.tab-bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    z-index: 1;
}

.tab-bg-image.active {
    opacity: 1;
}

/* Overlay scuro per migliorare la leggibilità */
.clients-tabs-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    z-index: 2;
    pointer-events: none;
}

.clients-tabs-content {
    position: relative;
    z-index: 3;
    height: 600px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-bottom: 4rem;
}

/* Titolo Centrale */
.tab-main-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 4rem;
    font-weight: 300;
    line-height: 1.1;
    color: var(--color-white);
    text-align: center;
    margin-bottom: 4rem;
}

/* Navigazione Tabs (Loghi) */
.nav-pills-custom {
    justify-content: center;
    border-bottom: none;
    gap: 20px;
}

.nav-pills-custom .nav-link {
    background-color: var(--color-white);
    border-radius: 0;
    padding: 2rem;
    width: 200px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    border: none;
    opacity: 0.7;
    /* Opacità per stato inattivo */
}

.nav-pills-custom .nav-link.active,
.nav-pills-custom .nav-link:hover {
    background-color: var(--color-white);
    opacity: 1;
    transform: translateY(-5px);
}

.nav-pills-custom .nav-link img {
    max-width: 100%;
    max-height: 100%;
    height: auto;
    width: auto;
    object-fit: contain;
}

/* Navigazione Verticale (frecce e dots a sinistra) */
.vertical-nav-controls {
    position: absolute;
    left: 40px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    color: var(--color-white);
    z-index: 4;
}

.nav-arrow {
    background: transparent;
    border: none;
    color: var(--color-white);
    font-size: 1.5rem;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.3s ease;
}

.nav-arrow:hover {
    opacity: 1;
}

.nav-dots {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.nav-dot {
    position: relative;
    width: 8px;
    height: 8px;
    background-color: var(--color-white);
    border: none;
    border-radius: 50% !important;
    opacity: 1;
    transition: all 0.3s ease;
    cursor: pointer;

}

.nav-dot::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 22px;
    height: 22px;
    border: 1px solid transparent;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.nav-dot:hover {
    background-color: var(--color-white-80);
}

.nav-dot.active {
    background-color: var(--color-accent);
    opacity: 1;
    transform: none;
    border: none;
    width: 8px;
    height: 8px;
    border-radius: 50% !important
}

.nav-dot.active::before {
    border-color: var(--color-accent);
}

/* CTA in basso a destra */
.bottom-right-cta {
    position: absolute;
    bottom: 40px;
    right: 40px;
    z-index: 4;
}

.bottom-right-cta .cta-link {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--color-white);
    text-decoration: none;
    border-bottom: 1px solid var(--color-white);
    padding-bottom: 0.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.3s ease, border-bottom-color 0.3s ease;
    position: relative;
}

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

/* Icone CTA */
.bottom-right-cta .cta-link i {
    font-size: 0.875rem;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Icona default - visibile */
.bottom-right-cta .cta-link .cta-icon-default {
    display: inline-block;
}

/* Icona hover - nascosta */
.bottom-right-cta .cta-link .cta-icon-hover {
    display: none;
}

.bottom-right-cta .cta-link:hover {
    color: var(--color-accent);
    border-bottom-color: transparent;
}

/* Linea animata all'hover */
.bottom-right-cta .cta-link:hover::after {
    width: 100%;
}

/* All'hover: nascondi icona default, mostra icona hover */
.bottom-right-cta .cta-link:hover .cta-icon-default {
    display: none;
}

.bottom-right-cta .cta-link:hover .cta-icon-hover {
    display: inline-block;
    transform: translateX(3px);
}

/* Responsive */
@media (max-width: 991.98px) {
    .tab-main-title {
        font-size: 3rem;
    }

    .nav-pills-custom .nav-link {
        width: 150px;
        height: 90px;
        padding: 1rem;
    }
}

@media (max-width: 767.98px) {

    .clients-tabs-section,
    .clients-tabs-content {
        min-height: 600px;
        height: auto;
    }

    .vertical-nav-controls {
        display: none;
        /* Nascondi controlli verticali su mobile */
    }

    .nav-pills-custom {
        flex-wrap: wrap;
    }

    .tab-main-title {
        font-size: 2.5rem;
        margin-top: 2rem;
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .bottom-right-cta {
        position: relative;
        bottom: auto;
        right: auto;
        text-align: center;
        margin-top: 2rem;
        width: 100%;
        margin-bottom: 2rem;
    }
}

/* ============================================================
   APPROACH SECTION (AZIENDA)
   ============================================================ */

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

.approach-bg {
    width: 100%;
    min-height: 520px;
    /* Altezza importante come da immagine */
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    /* Contenuto centrato verticalmente */
    padding-bottom: 0;
}

/* Overlay gradiente dal basso */
.approach-bg::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 50%);
    z-index: 1;
}

.approach-content {
    position: relative;
    z-index: 2;
    color: var(--color-white);
    text-align: left;
    /* Allinea a sinistra */
}

.approach-label {
    font-family: 'Epilogue', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.9);
    display: block;
    margin-bottom: 1rem;
}

.approach-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 4.5rem;
    /* Dimensione grande come da immagine */
    font-weight: 300;
    line-height: 1;
    color: var(--color-white);
    margin-bottom: 0;
}

/* Responsive */
@media (max-width: 991.98px) {
    .approach-bg {
        min-height: 500px;
        /* padding-bottom: 4rem; Rimossa padding bottom su mobile per mantenere centratura */
    }

    .approach-title {
        font-size: 3rem;
    }
}

@media (max-width: 575.98px) {
    .approach-bg {
        min-height: 400px;
        /* padding-bottom: 3rem; Rimossa padding bottom su mobile */
    }

    .approach-title {
        font-size: 2.5rem;
    }
}

/* ============================================================
   PAGINA A BLOCCHI
   ============================================================ */

.row.blocks {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
}

.row.blocks .block {
    padding: 10px 0;
}

.row.blocks .block.block-ul li {
    list-style: none;
    position: relative;
    padding-left: 15px;
}

.row.blocks .block.block-ul li:before {
    content: "\f111";
    position: absolute;
    color: #41BFBE;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 8px;
    top: 5px;
    left: 0;
}

.row.blocks .block.block-cta a.cta-standard {
    font-size: 0.9em;
    text-transform: uppercase;
    width: max-content;
    color: #fff;
    background: #41BFBE;
    border-radius: 20px;
    border: 0;
    display: block;
    padding: 8px 20px;
    transition: all 0.3s cubic-bezier(0.64, 0.01, 0.07, 1.65);
}

.row.blocks .block a.linkblocks {
    color: var(--color-accent) !important;
}

.row.blocks .block a.linkblocks:hover {
    color: #999999 !important;
}

.row.blocks .block.block-cta a.cta-standard:hover {
    background: #3a9897;
}

.row.blocks .block.block-cta-dwn a.cta-download {
    font-size: 0.9em;
    width: max-content;
    color: #fff;
    background: #41BFBE;
    border-radius: 20px;
    border: 0;
    display: block;
    padding: 8px 20px;
    transition: all 0.3s cubic-bezier(0.64, 0.01, 0.07, 1.65);
}

.row.blocks .block.block-cta-dwn a.cta-download span {
    font-size: 0.7em;
    background: #fff;
    padding: 5px 8px;
    border-radius: 20px;
    color: #41BFBE;
    line-height: 1.3em;
}

.row.blocks .block.block-cta-dwn a.cta-download:before {
    content: "\f019";
    color: #fff;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 12px;
    margin-right: 10px;
}

.row.blocks .block.block-cta-dwn a.cta-download:hover {
    background: #3a9897;
}

.row.blocks .block .btn:hover {
    color: #fff;
    background-color: var(--color-accent);
    border-color: var(--color-accent);
}

.row.blocks .block.block-img img {
    border-radius: 20px;
    width: 100%;
}

.row.blocks .block.block-link-img img {
    border-radius: 20px;
    border: 0;
    transition: all 0.2s ease-in-out;
}

.row.blocks .block.block-link-img:hover img {
    opacity: 0.8;
}

.row.blocks .block.block-map iframe,
.row.blocks .block.block-video iframe {
    width: 100%;
    height: 400px;
}

.row.blocks .block.block-lightbox img {
    border-radius: 20px;
}

.row.blocks .block.block-video .videoWrapper {
    position: relative;
    padding-bottom: 56.25%;
    /* 16:9 */
    height: 0;
}

.row.blocks .block.block-video .videoWrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}