:root {
    --bg-main: #FBFBFA;          /* Sfondo off-white stile carta */
    --logo-blue: #0C4483;        /* Blu Logo - Colore per testi scuri e titoli */
    --logo-green: #098136;       /* Verde Logo - Colore d'accento per i bottoni */
    --accent-hover: #076329;     /* Verde scuro per l'effetto hover */
    --text-muted: #5A6E72;
    --light-teal: #F0F4F2;       /* Grigio/verde chiarissimo per i contrasti */
    --light-muted: #A3B5B3;
}

/* Tipografia Generale & Sicurezza Mobile */
html, body {
    max-width: 100% !important;
    overflow-x: hidden !important; 
}

body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    background-color: var(--bg-main);
    color: var(--logo-blue); 
}

.font-serif {
    font-family: 'Cormorant Garamond', serif;
}

.font-sans {
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.max-w-600 { max-width: 600px; }
.max-w-300 { max-width: 300px; }

/* Palette Utility */
.bg-main { background-color: var(--bg-main); }
.bg-dark-teal { background-color: var(--logo-blue); } 
.bg-primary-dark { background-color: #082E59; }       
.text-primary, .text-primary-dark { color: var(--logo-blue) !important; } /* Mappate entrambe per sicurezza */
.text-accent { color: var(--logo-green); }
.text-light-teal { color: var(--light-teal); }
.text-light-muted { color: var(--light-muted); }

/* Componenti & Bottoni */
.btn-accent {
    background-color: var(--logo-green);
    color: #fff;
    border-radius: 0;
    font-weight: 500;
    letter-spacing: 0.05em;
    transition: all 0.3s ease;
}
.btn-accent:hover {
    background-color: var(--accent-hover);
    color: #fff;
}

/* Navbar Base (Sopra la Hero) */
.main-navbar {
    transition: background-color 0.4s ease, height 0.4s ease;
    height: 100px; /* Altezza fissa iniziale */
    display: flex;
    align-items: center;
    padding: 0; /* Rimuoviamo il padding, usiamo l'altezza */
}
/* Link in stato iniziale */
.main-navbar .nav-link {
    color: #ffffff !important; 
    font-weight: 600;
    mix-blend-mode: difference; 
}

/* Hover in stato iniziale */
.main-navbar .nav-link:hover, 
.main-navbar .nav-link.active {
    color: rgba(255, 255, 255, 0.6) !important;
}

/* Navbar allo Scroll (.scentered) */
.main-navbar.scentered {
    height: 70px; /* Altezza fissa allo scroll */
    background-color: rgba(251, 251, 250, 0.95) !important;
    backdrop-filter: blur(10px);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05);
}

/* Link allo Scroll */
.main-navbar.scentered .nav-link {
    color: var(--logo-blue) !important;
    mix-blend-mode: normal !important; 
}

/* Hover allo Scroll */
.main-navbar.scentered .nav-link:hover, 
.main-navbar.scentered .nav-link.active {
    color: var(--logo-green) !important; 
}

/* Dimensioni Logo Desktop */
.navbar-logo {
    height: 85px; 
    width: auto;
    /* Specifica solo height */
    transition: height 0.4s ease; 
}
.main-navbar.scentered .navbar-logo {
    height: 65px;
}

/* Responsive Mobile */
@media (max-width: 991.98px) {
    .main-navbar {
        padding-top: 25px !important;
        padding-bottom: 20px !important;
    }
    .main-navbar.scentered {
        height: 80px !important; 
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        display: flex !important;
        align-items: center !important; 
    }
    .main-navbar.scentered .navbar-brand {
        margin-top: 0 !important; 
        margin-bottom: 0 !important;
        padding: 0 !important;
    }
    .navbar-logo {
        height: 48px !important;
        width: auto !important;
        display: block !important;
    }
    .main-navbar.scentered .navbar-toggler {
        margin-top: 0 !important; 
        margin-right: 15px !important;
    }
}

.navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%230C4483' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E") !important;
}

/* Hero Section */
.hero-section {
    height: 100vh;
    background-color: #0c4483; 
}
.hero-bg-overlay {
    background: linear-gradient(180deg, rgba(251, 251, 250, 0.1) 0%, rgba(12, 68, 131, 0.35) 100%);
    z-index: 2; 
}
#heroCarousel {
    z-index: 1; 
}
.carousel-img-slide {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: grayscale(45%) brightness(75%); 
    transition: transform 6s ease; 
}
.carousel-item.active .carousel-img-slide {
    transform: scale(1.05);
}

/* Layout Asimmetrico & Card Lifestyle */
.aspect-4-3 { aspect-ratio: 4 / 3; }
.aspect-16-10 { aspect-ratio: 16 / 10; }

.lifestyle-card {
    border-radius: 0;
    border: none;
    cursor: pointer;
    position: relative;
    display: block;
    width: 100%;
    min-height: 280px; 
    overflow: hidden; /* Sicurezza extra overflow per zoom */
    background-color: var(--logo-blue); 
}

.card-img-placeholder {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    z-index: 1; 
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.lifestyle-card:hover .card-img-placeholder {
    transform: scale(1.05);
}

.card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, rgba(12, 68, 131, 0.95) 0%, rgba(12, 68, 131, 0.4) 100%); 
    z-index: 2; 
    display: flex !important;
    flex-direction: column; /* CORRETTO ERROR DI SINTASSI */
    justify-content: flex-end;
    padding: 24px;
}

.card-overlay h3, .card-overlay p, .card-overlay a {
    position: relative;
    z-index: 3; 
    color: #ffffff !important; 
}
.card-overlay a {
    color: #ffffff !important;
    font-weight: 700;
}

.editorial-img-wrapper {
    overflow: hidden; /* Sicurezza extra overflow */
    background-color: #e5eae8;
    box-shadow: 0 20px 40px rgba(0,0,0,0.03);
    background: url('https://images.unsplash.com/photo-1600585154340-be6161a56a0c?q=80&w=2070') center/cover no-repeat;
}
.row:nth-of-type(2) .editorial-img-wrapper {
    background: url('https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?q=80&w=2053') center/cover no-repeat;
}

.bio-img-placeholder {
    background: url('../img/foto_vs.jpg') top/cover no-repeat;
    filter: sepia(10%) contrast(105%);
}

/* Animazioni JS */
.reveal-fade {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.reveal-fade.active {
    opacity: 1;
    transform: translateY(0);
}
.reveal-scroll {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-scroll.active {
    opacity: 1 !important;
    transform: translateY(0) !important;
}
.delay-1 { transition-delay: 0.15s; }
.delay-2 { transition-delay: 0.3s; }

/* Footer */
.social-link {
    display: inline-block;
    transition: color 0.3s ease, transform 0.3s ease;
}
.social-link:hover {
    color: var(--logo-green) !important; 
    transform: translateY(-3px);         
}
.hover-text-white { transition: color 0.3s ease; }
.hover-text-white:hover { color: #ffffff !important; }

.footer-logo {
    width: 400px;
    max-width: 80vw;
}

@media (min-width: 768px) and (max-width: 1399.98px) {
    .footer-logo {
        max-width: 25vw;
    }    
}

.luxury-check:checked + label {
  background-color: var(--accent-color, #d4af37) !important;
  border-color: var(--accent-color, #d4af37) !important;
  color: #ffffff !important;
}
.luxury-check:checked + label .text-accent {
  color: #ffffff !important; 
}
.luxury-check + label {
  transition: all 0.3s ease;
  cursor: pointer;
}
.luxury-check + label:hover {
  background-color: #f8f9fa;
}