 * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --ink: #0a1628;
            --deep-ink: #050b14;
            --silver: #c5d3e8;
            --pale-silver: #e8eef7;
            --accent-line: rgba(197, 211, 232, 0.15);
            --hairline: rgba(197, 211, 232, 0.08);
        }

        html {
            scroll-behavior: smooth;
            font-size: 16px; 
            scrollbar-width: thin; 
            scrollbar-color: var(--silver) var(--deep-ink); 
        }

        body {
            font-family: 'Oswald', sans-serif;
            font-weight: 300;
            color: var(--pale-silver);
            background: linear-gradient(180deg, var(--deep-ink) 0%, var(--ink) 100%);
            line-height: 1.8; 
            overflow-x: hidden;
            position: relative;
            cursor: none; 
        }


        .cursor {
            width: 12px;
            height: 12px;
            border: 0.5px solid var(--silver);
            border-radius: 50%;
            position: fixed;
            pointer-events: none;
            z-index: 9999999;
            transition: width 0.3s ease, height 0.3s ease, background-color 0.3s ease;
            transform: translate(-50%, -50%);
            mix-blend-mode: difference;
            will-change: transform, width, height;
        }

        .cursor-follower {
            width: 40px;
            height: 40px;
            border: 0.5px solid rgba(197, 211, 232, 0.3);
            border-radius: 50%;
            position: fixed; 
            pointer-events: none;
            z-index: 9999998;
            transition: width 0.4s ease, height 0.4s ease, border-color 0.4s ease, background-color 0.4s ease, opacity 0.4s ease;
            transform: translate(-50%, -50%);
            background-color: rgba(197, 211, 232, 0.1);
            backdrop-filter: blur(4px);
            -webkit-backdrop-filter: blur(4px);
            will-change: transform, opacity;
            opacity: 1; 
        }

        .cursor.hover {
            width: 8px;
            height: 8px;
            background: var(--silver);
        }

        .cursor-follower.hover {
            opacity: 0;     
        }

    
        body.modal-open .cursor,
        body.modal-open .cursor-follower {
            display: none;
        }

  
        @media (hover: none) and (pointer: coarse) {
            .cursor,
            .cursor-follower {
                display: none;
            }
            
            body {
                cursor: auto;
            }
        }


        ::-webkit-scrollbar {
            width: 6px;
        }

        ::-webkit-scrollbar-track {
            background: var(--deep-ink);
            border-left: 0.5px solid var(--hairline);
        }

        ::-webkit-scrollbar-thumb {
            background: linear-gradient(180deg, var(--silver) 0%, rgba(197, 211, 232, 0.4) 100%);
            border-radius: 0;
        }

        ::-webkit-scrollbar-thumb:hover {
            background: var(--silver);
        }

        .scroll-progress {
            position: fixed;
            top: 0;
            left: 0;
            width: 0%;
            height: 1px;
            background: linear-gradient(90deg, var(--silver) 0%, #ffffff 100%);
            z-index: 10000;
            transition: width 0.1s linear;
            box-shadow: 0 0 10px rgba(197, 211, 232, 0.5);
        }

        /* PAGE LOADER (LIGHTWEIGHT) */
        .page-loader {
            position: fixed;
            inset: 0;
            background:
                radial-gradient(circle at top left, rgba(197, 211, 232, 0.12), transparent 55%),
                radial-gradient(circle at bottom right, rgba(197, 211, 232, 0.08), transparent 55%),
                rgba(5, 11, 20, 0.65);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 20000;
            pointer-events: none;
            opacity: 1;
            transition: opacity 0.4s ease-out;
            overflow: hidden;
            backdrop-filter: blur(18px);
            -webkit-backdrop-filter: blur(18px);
        }

        .page-loader--hidden {
            opacity: 0;
        }

        .page-loader__logo {
            width: 190px;
            height: auto;
            filter: drop-shadow(0 0 18px rgba(197, 211, 232, 0.35));
            animation: loaderPulse 1.4s ease-in-out infinite;
        }

        @keyframes loaderPulse {
            0% { transform: scale(1); opacity: 0.9; }
            50% { transform: scale(1.04); opacity: 1; }
            100% { transform: scale(1); opacity: 0.9; }
        }

        /* Heart-rate inspired sweep line behind the logo */
        .page-loader::before {
            content: '';
            position: absolute;
            top: 50%;
            left: -60%;
            width: 60%;
            height: 2px;
            background: linear-gradient(90deg, transparent, var(--silver), #ffffff, transparent);
            box-shadow: 0 0 12px rgba(197, 211, 232, 0.7);
            transform: translateY(-50%);
            opacity: 0;
            animation: loaderSweep 2.2s linear infinite;
        }

        @keyframes loaderSweep {
            0% {
                transform: translate(-10%, -50%);
                opacity: 0;
            }
            10% {
                opacity: 1;
            }
            60% {
                opacity: 1;
            }
            100% {
                transform: translate(210%, -50%);
                opacity: 0;
            }
        }


        .swiss-grid {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 0;
            opacity: 0;
            animation: gridFadeIn 2s ease-out forwards;
        }

        @keyframes gridFadeIn {
            to { opacity: 1; }
        }

        .swiss-grid svg {
            width: 100%;
            height: 100%;
        }

        .grid-line {
            stroke: var(--hairline);
            stroke-width: 0.5;
            animation: drawLine 3s ease-out forwards;
            stroke-dasharray: 2000;
            stroke-dashoffset: 2000;
        }

        @keyframes drawLine {
            to { stroke-dashoffset: 0; }
        }

 

        .vertical-label-left {
            position: absolute;
            left: 40px;
            top: 50%;
            transform: translateY(-50%) rotate(90deg);
            font-size: 0.6875rem;
            font-weight: 700;
            letter-spacing: 4px;
            text-transform: uppercase;
            color: var(--silver);
            opacity: 0.2;
            z-index: 10;
            transform-origin: center;
        }

        a, button, .menu-toggle, .logo {
            cursor: none;
        }

        .section-number {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) rotate(-8deg);
            font-family: 'Brygada 1918', serif;
            font-size: 18rem; 
            font-weight: 700;
            color: rgba(197, 211, 232, 0.04);
            line-height: 1;
            user-select: none;
            pointer-events: none;
            z-index: 0;
        }

        section > * {
            position: relative;
            z-index: 1;
        }


        header {
            position: fixed;
            top: 0;
            width: 100%;
            height: 100px;
            background: rgba(5, 11, 20, 0.7);
            backdrop-filter: blur(30px);
            border-bottom: 0.5px solid var(--accent-line);
            display: flex;
            align-items: center;
            padding: 0 100px;
            justify-content: space-between;
            z-index: 1000;
            transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
            will-change: height, background;
        }

        header::after {
            content: '';
            position: absolute;
            bottom: -1px;
            left: 100px;
            width: 200px;
            height: 0.5px;
            background: var(--silver);
            opacity: 0.3;
        }

        header.scrolled {
            height: 80px;
            background: rgba(5, 11, 20, 0.9);
        }

        .logo {
            font-family: 'Brygada 1918', serif;
            font-size: 18px;
            font-weight: 700;
            letter-spacing: 6px;
            text-transform: uppercase;
            color: var(--pale-silver);
            display: flex;
            align-items: center;
            gap: 16px;
            transition: all 0.4s ease;
            z-index: 1001;
        }

        .logo:hover {
            color: #ffffff;
        }

        .logo::before {
            content: '';
            width: 28px;
            height: 28px;
            border: 0.5px solid var(--silver);
            border-right: none;
            border-bottom: none;
            transition: all 0.4s ease;
        }

        .logo:hover::before {
            border-color: #ffffff;
            transform: rotate(-5deg);
        }


        .menu-toggle {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: flex-end;
            width: 40px;
            height: 40px;
            background: transparent;
            border: none;
            cursor: pointer;
            padding: 0;
            z-index: 1001;
            position: relative;
        }

        .menu-toggle span {
            width: 30px;
            height: 0.5px;
            background: var(--silver);
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            transform-origin: right;
        }

        .menu-toggle span:nth-child(1) {
            width: 30px;
            margin-bottom: 8px;
        }

        .menu-toggle span:nth-child(2) {
            width: 24px;
            margin-bottom: 8px;
        }

        .menu-toggle span:nth-child(3) {
            width: 18px;
        }

        .menu-toggle.active span:nth-child(1) {
            transform: rotate(-45deg) translateY(3px);
            width: 30px;
        }

        .menu-toggle.active span:nth-child(2) {
            opacity: 0;
            transform: translateX(20px);
        }

        .menu-toggle.active span:nth-child(3) {
            transform: rotate(45deg) translateY(-3px);
            width: 30px;
        }

        .menu-toggle:hover span {
            background: #ffffff;
        }

        .header-controls {
            display: flex;
            align-items: center;
            gap: 30px;
        }

        .language-switcher {
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .lang-btn {
            background: none;
            border: none;
            font-family: 'Oswald', sans-serif;
            font-size: 0.75rem; 
            font-weight: 300;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: rgba(232, 238, 247, 0.6);
            transition: color 0.4s ease;
        }

        .lang-btn.active {
            color: var(--pale-silver);
            font-weight: 400;
        }

        .lang-separator {
            color: rgba(232, 238, 247, 0.3);
            font-size: 0.75rem;
        }

        .language-switcher .lang-btn {
    text-decoration: none;      
    color: inherit;            
}

        
        nav { display: none; } 

        .nav-links {
            display: flex;
            gap: 80px;
        }

        nav a {
            font-size: 0.75rem; 
            font-weight: 400;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: rgba(232, 238, 247, 0.6);
            text-decoration: none;
            position: relative;
            transition: all 0.4s ease;
            padding: 8px 0;
        }

        nav a::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 0;
            height: 0.5px;
            background-color: var(--silver);
            transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        }

        nav a:hover {
            color: #ffffff;
        }

        nav a:hover::after {
            width: 100%;
        }

        .nav-cta {
            padding: 16px 35px;
            border: 0.5px solid var(--silver);
            background: transparent;
            color: var(--pale-silver);
            font-size: 10px;
            font-weight: 400;
            letter-spacing: 3px;
            text-transform: uppercase;
            cursor: pointer;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            text-decoration: none;
            display: inline-block;
            position: relative;
            overflow: hidden;
        }
        .nav-cta span { position: relative; z-index: 1; } 
        .nav-cta::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 0;
            height: 100%;
            background: var(--deep-ink);
            transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            z-index: 0;
        }
        .nav-cta:hover {
            color: var(--pale-silver); 
        }

        .mobile-menu {
            position: fixed;
            top: 0;
            right: -100%; 
            width: 100%;
            max-width: 100%; 
            height: 100vh; 
            background: rgba(5, 11, 20, 0.98);
            backdrop-filter: blur(40px);
            z-index: 999;
            transition: right 0.6s cubic-bezier(0.4, 0, 0.2, 1); 
            border-left: 0.5px solid var(--accent-line);
            overflow-y: auto;
        }

        .mobile-menu.active {
            right: 0; 
        }

        .mobile-menu-content {
            padding: 140px 60px 60px; 
            max-width: none; 
            width: auto;
            display: flex;
            flex-direction: column;
            gap: 50px;
        }

        .mobile-nav-section h5 {
            font-family: 'Brygada 1918', serif;
            font-size: 0.875rem; 
            font-weight: 700;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--silver);
            margin-bottom: 25px; 
            text-align: left; 
            position: relative;
            padding-bottom: 15px;
        }

        .mobile-nav-section h5::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0; 
            width: 50px; 
            height: 0.5px;
            background: var(--silver);
        }

        .mobile-nav-links {
            display: flex;
            flex-direction: column;
            gap: 0;
        }

        .mobile-nav-links a {
            font-size: 1.875rem; 
            font-weight: 300;
            font-family: 'Brygada 1918', serif;
            letter-spacing: 1px;
            text-transform: uppercase;
            color: rgba(232, 238, 247, 0.8);
            text-decoration: none;
            padding: 20px 0; 
            border-bottom: 0.5px solid var(--hairline); 
            transition: all 0.4s ease;
            position: relative;
            padding-left: 0;
            display: flex; 
            align-items: center; 
            text-align: left; 
        }

        .mobile-nav-links a::before {
            content: '';
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            width: 0;
            height: 0.5px;
            background: var(--silver);
            transition: width 0.4s ease;
        }

        .mobile-nav-links a:hover {
            color: #ffffff;
        }

        .mobile-nav-links a:hover span {
            padding-left: 30px; 
        }

        .mobile-nav-links a:hover::before {
            width: 20px;
        }

        .mobile-nav-cta {
            margin-top: 20px; 
        }


        .mobile-nav-links a i, .mobile-contact-item strong i, .footer-contact-item strong i, .nav-cta i, .btn i {
            margin-right: 25px;
            width: 20px; 
        }

        .mobile-nav-links a span {
            transition: padding-left 0.4s ease; 
            display: inline-block;
        }

        .menu-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100vh;
            background: rgba(5, 11, 20, 0.8);
            backdrop-filter: blur(10px);
            z-index: 998;
            opacity: 0;
            visibility: hidden;
            transition: all 0.4s ease;
        }

        .menu-overlay.active {
            opacity: 1;
            visibility: visible;
        }

        main {
            margin-top: 100px;
            position: relative;
            z-index: 1;
        }

        .hero {
            min-height: 100vh;
            display: flex;
            align-items: center;
            padding: 160px 100px;
            position: relative;
        }

        .hero::before {
            content: '';
            position: absolute;
            top: 0;
            left: 100px;
            width: 0.5px;
            height: 100%;
            background: linear-gradient(180deg, transparent, var(--hairline) 20%, var(--hairline) 80%, transparent);
        }

        .hero::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 100px;
            width: calc(100% - 200px);
            height: 0.5px;
            background: linear-gradient(90deg, var(--silver) 0%, var(--hairline) 30%, transparent 70%);
        }

        h1 {
            font-family: 'Brygada 1918', serif;
            font-size: 6.25rem; 
            font-weight: 700;
            line-height: 0.95;
            letter-spacing: 3px;
            text-transform: uppercase;
            margin-bottom: 80px;
            color: #ffffff;
            max-width: 1100px;
            position: relative;
            padding-bottom: 40px;
        }

        h1::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 160px;
            height: 0.5px;
            background: linear-gradient(90deg, var(--silver) 0%, transparent 100%);
        }

        .hero-grid {
            display: grid;
            grid-template-columns: 1.2fr 1fr;
            gap: 140px;
            max-width: 1600px;
            align-items: center;
            position: relative;
        }

        .hero-grid::before {
            content: '';
            position: absolute;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 0.5px;
            height: 100%;
            background: var(--hairline);
        }

        .hero-text {
            position: relative;
            padding-left: 60px;
        }

        .hero-text::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            width: 0.5px;
            height: 100%;
            background: linear-gradient(180deg, var(--silver), transparent);
        }

        .hero-text p {
            font-size: 1.125rem; 
            font-weight: 300;
            line-height: 2;
            color: rgba(232, 238, 247, 0.8);
            margin-bottom: 35px;
            max-width: 650px;
        }

        .accent {
            color: var(--silver);
            font-weight: 400;
            position: relative;
            border-bottom: 0.5px solid var(--silver);
        }

        .btn {
            font-family: 'Oswald', sans-serif;
            font-size: 0.6875rem; 
            font-weight: 400; 
            letter-spacing: 3px;
            text-transform: uppercase;
            padding: 22px 60px;
            border: none;
            background: var(--pale-silver);
            color: var(--deep-ink);
            cursor: pointer;
            transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
            display: inline-block;
            text-decoration: none;
            margin-top: 40px;
            position: relative;
            overflow: hidden; 
        } 
        .btn::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 0;
            height: 100%;
            background: var(--deep-ink);
            transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
            z-index: 0;
        }
        .btn:hover { 
            color: var(--pale-silver); 
        }
        .btn:hover::after {
            width: 100%; 
        }

   
        section {
            padding: 160px 100px;
            position: relative;
        }

        section::before {
            content: '';
            position: absolute;
            top: 0;
            right: 100px;
            width: 0.5px;
            height: 100%;
            background: linear-gradient(180deg, transparent, var(--hairline) 20%, var(--hairline) 80%, transparent);
        }

        section::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 100px;
            width: calc(100% - 200px);
            height: 0.5px;
            background: linear-gradient(90deg, transparent 30%, var(--hairline) 50%, transparent 70%);
        }

        h2 {
            font-family: 'Brygada 1918', serif;
            font-size: 4.375rem;
            font-weight: 700;
            line-height: 1.1;
            letter-spacing: 2px;
            text-transform: uppercase;
            margin-bottom: 120px;
            color: #ffffff;
            max-width: 1000px;
            position: relative;
            padding-left: 60px;
        }

        h2::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            width: 0.5px;
            height: 100px;
            background: linear-gradient(180deg, var(--silver) 0%, transparent 100%);
        }

        h2::after {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            width: 40px;
            height: 0.5px;
            background: var(--silver);
        }

        h3 {
            font-family: 'Oswald', sans-serif;
            font-size: 1.5rem; 
            font-weight: 400;
            letter-spacing: 2px;
            text-transform: uppercase;
            margin-bottom: 50px;
            color: var(--silver);
        }
        p {
            font-size: 1.125rem; 
            font-weight: 300;
            line-height: 2;
            letter-spacing: 2px;
            color: rgba(232, 238, 247, 0.8);
            margin-bottom: 35px;
            max-width: 750px;
        }

        .section-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 140px;
            max-width: 1600px;
            align-items: start;
            position: relative;
        }

        .section-grid::before {
            content: '';
            position: absolute;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 0.5px;
            height: 100%;
            background: var(--hairline);
        }

        .section-item {
            padding: 60px 0;
            padding-left: 60px;
            border-left: 0.5px solid var(--accent-line);
            transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
            position: relative;
        }

        .section-item::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            width: 0.5px;
            height: 0;
            background-color: var(--silver);
            transition: height 0.8s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .section-item::after {
            content: '';
            position: absolute;
            left: -10px;
            top: 0;
            width: 10px;
            height: 0.5px;
            background-color: var(--silver);
            opacity: 0;
            transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .section-item:hover::before {
            height: 100%;
        }

        .section-item:hover::after {
            opacity: 1;
            width: 20px;
            left: -20px;
        }

        .section-item:hover {
            padding-left: 70px;
        }


        .benefits-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 60px;
            margin-top: 80px;
        }

        .benefit-item {
            padding: 40px;
            border: 0.5px solid var(--hairline);
            position: relative;
            transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .benefit-item:hover {
            border-color: var(--accent-line);
            transform: translateY(-10px);
            background: rgba(197, 211, 232, 0.02);
        }

        .benefit-item h4 {
            font-family: 'Brygada 1918', serif;
            font-size: 1.25rem; /* 20px */
            font-weight: 700;
            letter-spacing: 1px;
            text-transform: uppercase;
            color: var(--silver);
            margin-bottom: 20px;
            position: relative;
            padding-bottom: 15px;
        }

        .benefit-item h4::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 40px;
            height: 0.5px;
            background: var(--silver);
            opacity: 0.5;
        }

        .journal-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr); /* 2 columns */
            gap: 60px;
            padding: 80px 0;
        }

        .article-card {
            border: 0.5px solid var(--accent-line);
            background: rgba(197, 211, 232, 0.02);
            padding: 60px;
            position: relative;
            transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
            display: flex;
            flex-direction: column;
        }

        .article-card:hover {
            transform: translateY(-10px);
            border-color: var(--silver);
            background: rgba(197, 211, 232, 0.04);
        }

        .article-card .dossier-number {
            font-family: 'Oswald', sans-serif;
            font-size: 0.875rem; 
            font-weight: 400;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--silver);
            margin-bottom: 25px;
        }

        .article-card h3 {
            font-family: 'Brygada 1918', serif;
            font-size: 2.5rem; /* 40px */
            font-weight: 700;
            line-height: 1.2;
            letter-spacing: 1px;
            text-transform: uppercase;
            color: #ffffff;
            margin-bottom: 40px;
            flex-grow: 1; 
        }

        .article-card .btn {
            margin-top: 20px;
            align-self: flex-start; 
        }


        .cta-section {
            padding: 180px 100px;
            display: flex;
            align-items: center;
            min-height: 85vh;
        }

        .cta-box {
            max-width: 1000px;
            padding: 120px;
            border: 0.5px solid var(--accent-line);
            background: rgba(197, 211, 232, 0.02);
            backdrop-filter: blur(5px);
            position: relative;
            transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .cta-box::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 60px;
            height: 0.5px;
            background: var(--silver);
        }

        .cta-box::after {
            content: '';
            position: absolute;
            bottom: 0;
            right: 0;
            width: 60px;
            height: 0.5px;
            background: var(--silver);
        }

        .cta-box:hover {
            border-color: rgba(197, 211, 232, 0.3);
            background: rgba(197, 211, 232, 0.03);
        }

        .cta-box h2 {
            margin-bottom: 60px;
        }

        .cta-box p {
            margin-bottom: 60px;
        }


        footer {
            background: var(--deep-ink);
            border-top: 0.5px solid var(--accent-line);
            padding: 100px 100px 60px;
            position: relative;
        }

        footer::before {
            content: '';
            position: absolute;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 0.5px;
            height: 100%;
            background: var(--hairline);
        }

        .footer-grid {
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1fr; /* Adjusted for 4 columns */
            gap: 80px;
            max-width: 1600px;
            margin: 0 auto;
            padding-bottom: 80px;
            border-bottom: 0.5px solid var(--accent-line);
        }

        .footer-column h4 {
            font-family: 'Brygada 1918', serif;
            font-size: 1rem; 
            font-weight: 700;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: #ffffff;
            margin-bottom: 35px;
            position: relative;
            padding-bottom: 15px;
        }

        .footer-column h4::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 60px;
            height: 0.5px;
            background: var(--silver);
        }

        .footer-column p {
            font-size: 0.875rem; 
            font-weight: 300;
            line-height: 1.9;
            color: rgba(232, 238, 247, 0.7);
            margin-bottom: 25px;
            max-width: 400px;
        }

        .footer-column ul {
            list-style: none;
            margin: 0;
            padding: 0;
        }

        .footer-column ul li {
            margin-bottom: 18px;
        }

        .footer-column ul li a {
            font-size: 0.8125rem; 
            font-weight: 300;
            letter-spacing: 1px;
            color: rgba(232, 238, 247, 0.7);
            text-decoration: none;
            transition: all 0.3s ease;
            display: inline-block;
            position: relative;
            padding-left: 15px;
        }

        .footer-column ul li a::before {
            content: '';
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            width: 6px;
            height: 0.5px;
            background: var(--silver);
            opacity: 0;
            transition: all 0.3s ease;
        }

        .footer-column ul li a:hover {
            color: #ffffff;
            padding-left: 20px;
        }

        .footer-column ul li a:hover::before {
            opacity: 1;
        }

        .footer-contact-item {
            margin-bottom: 25px;
            padding-left: 0;
        }

        .footer-contact-item strong {
            display: block;
            font-size: 0.75rem; 
            font-weight: 400;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: var(--silver);
            margin-bottom: 8px;
        }

        .footer-contact-item span, .footer-contact-item a {
            font-size: 0.9375rem;
            font-weight: 300;
            color: rgba(232, 238, 247, 0.8);
            letter-spacing: 0.5px;
            text-decoration: none;
            transition: color 0.3s ease;
        }

        .footer-contact-item a:hover {
            color: #ffffff;
        }

        .footer-social {
            display: flex;
            gap: 20px;
            margin-top: 30px;
        }

        .footer-social a {
            width: 40px;
            height: 40px;
            border: 0.5px solid var(--accent-line);
            display: flex;
            align-items: center;
            justify-content: center;
            color: rgba(232, 238, 247, 0.7);
            text-decoration: none;
            font-size: 1rem; 
            transition: all 0.4s ease;
            position: relative;
        }

        .footer-social a i {
            position: relative;
            z-index: 2;
        }

        .footer-social a::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 0;
            height: 100%;
            background: var(--silver);
            transition: width 0.4s ease;
            z-index: 1;
        }

        .footer-social a:hover {
            border-color: var(--silver);
        }

        .footer-social a:hover::after {
            width: 100%;
        }

        .footer-social a:hover i {
            color: var(--deep-ink);
        }

        .footer-bottom {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding-top: 50px;
            flex-wrap: wrap;
            gap: 30px;
        }

        .footer-bottom p {
            font-size: 0.75rem; 
            font-weight: 400;
            letter-spacing: 3px;
            color: rgba(232, 238, 247, 0.5);
            margin: 0;
        }

        .footer-legal {
            display: flex;
            gap: 40px;
        }

        .footer-legal a {
            font-size: 0.75rem; 
            font-weight: 400;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: rgba(232, 238, 247, 0.5);
            text-decoration: none;
            transition: color 0.3s ease;
        }

        .footer-legal a:hover {
            color: var(--silver);
        }

        .logo img {
    height: 50px;
    width: auto;
    display: block;
}


        .modal-container,
        .legal-modal {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(5, 11, 20, 0.8);
            backdrop-filter: blur(15px);
            -webkit-backdrop-filter: blur(15px);
            z-index: 5000;
            display: flex;
            align-items: center;
        justify-content: center; /* Centrer le modal */
        padding: 0; /* L'overlay prend toute la place, pas de padding */
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.4s ease, visibility 0.4s ease;
        }

        .modal-container.active,
        .legal-modal.active {
            opacity: 1;
            visibility: visible;
        }

        .modal-content {
            background: var(--deep-ink);
            border: 0.5px solid var(--accent-line);
            width: 100%;
            max-width: 900px;
            max-height: 90vh;
            overflow-y: auto;
            position: relative; /* Pour le bouton de fermeture */
            padding: 80px 60px; /* Padding par défaut pour les grands écrans */
            transform: translateY(20px) scale(0.98);
            transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            box-shadow: 0 10px 30px rgba(0,0,0,0.4); /* Ajout d'une ombre pour l'effet "carte" */
        }

        .modal-container.active .modal-content {
            transform: translateY(0) scale(1);
        }

        /* Styles pour le contenu texte à l'intérieur du modal */
        .modal-body {
            max-width: 760px; /* Largeur maximale pour la lisibilité du texte */
            margin: 0 auto; /* Centrer le contenu texte */
            color: var(--pale-silver); /* Couleur du texte */
            line-height: 1.8;
            font-size: 1.125rem; /* Taille de police par défaut */
        }
        .modal-body p {
            margin-bottom: 1.5em; /* Espacement entre les paragraphes */
        }
        .modal-body h1, .modal-body h2, .modal-body h3, .modal-body h4, .modal-body h5, .modal-body h6 {
            color: #ffffff; /* Titres plus visibles */
            margin-top: 1.5em;
            margin-bottom: 0.8em;
        }

        .modal-close {
            position: absolute;
            top: 25px;
            right: 25px;
            background: none;
            border: none;
            color: var(--silver);
            font-size: 2.5rem;
            font-weight: 300;
            line-height: 1;
            cursor: pointer;
            transition: color 0.3s ease, transform 0.3s ease;
        }

        .modal-close:hover {
            color: #ffffff;
            transform: rotate(90deg);
        }

        /* Media Queries pour le modal du journal */
        /* Tablet Landscape (1199px et moins) */
        @media (max-width: 1199px) {
            .modal-content {
                padding: 60px 40px; /* Réduction du padding */
            }
            .modal-body {
                font-size: 1rem; /* 16px */
            }
        }

        /* Tablet Portrait (1023px et moins) */
        @media (max-width: 1023px) {
            .modal-content {
                padding: 50px 30px; /* Réduction supplémentaire du padding */
                max-width: 85%; /* Le modal prend plus de largeur */
            }
            .modal-close {
                font-size: 2rem; /* Plus petit */
                top: 20px;
                right: 20px;
            }
            .modal-body {
                max-width: 100%; /* Le contenu texte peut prendre toute la largeur disponible */
            }
        }

        /* Mobile Landscape & Small Tablet (767px et moins) */
        @media (max-width: 767px) {
            .modal-content {
                padding: 40px 20px; /* Padding encore plus réduit */
                max-width: 90%; /* Presque pleine largeur */
            }
            .modal-close {
                font-size: 1.8rem;
                top: 15px;
                right: 15px;
            }
            .modal-body {
                font-size: 0.9375rem; /* 15px */
            }
        }

        /* Mobile Portrait (599px et moins) */
        @media (max-width: 599px) {
            .modal-content {
                padding: 30px 15px; /* Padding minimal pour les très petits écrans */
                max-width: calc(100% - 20px); /* Laisse une petite marge sur les bords */
            }
            .modal-body { font-size: 0.875rem; /* 14px */ }
}


        .accessibility-trigger {
            position: fixed;
            bottom: 40px;
            left: 40px;
            width: 40px;
            height: 40px;
            border-radius: 25%;
            background: var(--pale-silver);
            color: var(--deep-ink);
            border: none;
            display: flex;
            align-items: center; 
            justify-content: center;
            font-size: 24px;
            z-index: 2001; 
            cursor: pointer;
            transition: all 0.4s ease;
            box-shadow: 0 5px 20px rgba(0,0,0,0.3);
        }

        .accessibility-trigger:hover {
            transform: scale(1.1);
            background: #ffffff;
        }

        .accessibility-panel {
            position: fixed; 
            bottom: 110px; 
            left: 30px; 
            z-index: 2000;
            width: 100%; 
            max-width: 340px; 
            max-height: 65vh; 
            background: var(--deep-ink); 
            border: 0.5px solid var(--accent-line);
            border-radius: 0; 
            box-shadow: 0 10px 40px rgba(0,0,0,0.5);
            opacity: 0;
            visibility: hidden;
            transform: translateY(20px); 
            transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s;
            display: flex;
            flex-direction: column; 
            font-family: 'Oswald', sans-serif;
        }

        .accessibility-panel.active {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
        }

        .accessibility-panel .panel-header {
            padding: 20px 25px;
            border-bottom: 0.5px solid var(--accent-line);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-shrink: 0;
        }

        .accessibility-panel .panel-header h3 {
            font-family: 'Brygada 1918', serif; 
            font-size: 1.25rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: #ffffff;
            margin: 0;
        }

        .accessibility-panel .close-btn {
            background: none;
            border: none;
            color: var(--silver);
            font-size: 1.75rem; 
            line-height: 1;
            cursor: pointer;
            transition: color 0.3s ease;
        }

        .accessibility-panel .close-btn:hover {
            color: #ffffff;
        }

        .accessibility-panel .panel-content {
            padding: 25px;
            overflow-y: auto;
            flex-grow: 1;
        }

        .accessibility-group {
            margin-bottom: 30px;
        }

        .accessibility-group h4 {
            font-size: 0.6875rem; 
            font-weight: 400;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--silver);
            margin-bottom: 15px;
            display: flex;
            align-items: center;
            gap: 10px; 
            opacity: 0.8;
        }

        .accessibility-options {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            justify-content: flex-start;
        }
        .accessibility-options button, .accessibility-switch {
            flex-grow: 1;
            background: rgba(197, 211, 232, 0.05);
            border: 0.5px solid var(--accent-line);
            color: var(--silver);
            padding: 10px 12px;
            font-size: 0.8125rem; 
            cursor: pointer;
            transition: all 0.3s ease;
            text-align: center;
            border-radius: 0; 
        }

        .accessibility-options button:hover, .accessibility-switch:hover {
            background: rgba(197, 211, 232, 0.1);
            border-color: var(--silver);
        }

        .accessibility-options button.active, .accessibility-switch.active {
            background: var(--silver); /* Active state matches branding */
            color: var(--deep-ink); /* Dark text on light background */
            border-color: var(--silver);
        }

        .panel-footer {
            padding: 20px 25px;
            border-top: 0.5px solid var(--accent-line);
            flex-shrink: 0;
        }

        .panel-footer button {
            width: 100%;
            background: transparent; /* Outlined style for reset */
            border: 0.5px solid var(--accent-line);
            color: var(--silver);
            padding: 12px 15px;
            font-size: 0.8125rem; /* 13px / 16px */
            border-radius: 0; /* No border-radius */
        }
        .panel-footer button:hover {
            background: var(--silver);
            color: var(--deep-ink);
        }


        /* Reading Guide */
        .reading-guide {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 40px; /* Height of the guide bar */
            background: rgba(197, 211, 232, 0.1);
            pointer-events: none;
            z-index: 9999;
            display: none; /* Hidden by default */
        }

        /* Accessibility CSS Toggles */
        html.high-contrast { background-color: #000000 !important; }
        html.high-contrast body { background-color: #000000 !important; color: #ffffff !important; }
        html.high-contrast header, html.high-contrast .mobile-menu, html.high-contrast footer, html.high-contrast .cta-box, html.high-contrast .accessibility-panel {
            background-color: #000000 !important;
            color: #ffffff !important;
        } 
        html.high-contrast * {
            color: #ffffff !important;
            border-color: #ffffff !important;
            /* REMOVED: background-color: transparent !important; - This was causing issues */
        }
        html.high-contrast .btn, html.high-contrast .accessibility-trigger {
            background: #ffffff !important;
            color: #000000 !important;
        }

        html.grayscale { filter: grayscale(100%); }
        html.negative { filter: invert(100%) hue-rotate(180deg); }
        html.negative img { filter: invert(100%) hue-rotate(180deg); } /* Double invert images */

        html.readable-font body, html.readable-font h1, html.readable-font h2, html.readable-font h3, html.readable-font h4, html.readable-font h5, html.readable-font p, html.readable-font a, html.readable-font span, html.readable-font li {
            font-family: Arial, sans-serif !important;
        }

        html.highlight-links a {
            background-color: yellow !important;
            color: black !important;
            border: 2px solid black !important;
        }

        html.stop-animations * {
            transition: none !important;
            animation: none !important;
        }

        /* TABLET LANDSCAPE (1200px - 1024px) */
        @media (max-width: 1199px) {
            header {
                padding: 0 60px;
                height: 90px;
            }

            header::after {
                left: 60px;
                width: 150px;
            }

            nav {
                display: none;
            }

            .mobile-menu {
                max-width: 100%;
            }

            .mobile-menu-content {
                padding: 120px 50px 50px;
            }

            .hero, section, .cta-section {
                padding: 120px 60px;
            }

            .section-number {
                font-size: 10rem; /* 160px / 16px */
            }

            .footer-grid {
                grid-template-columns: 2fr 1fr 1fr;
                gap: 60px;
                padding-bottom: 60px;
            }

            .footer-column:last-child {
                grid-column: 1 / -1;
            }

            h1 {
                font-size: 4.6875rem; /* 75px / 16px */
                margin-bottom: 60px;
            }

            h2 {
                font-size: 3.4375rem; /* 55px / 16px */
                margin-bottom: 80px;
                padding-left: 50px;
            }

            h2::before {
                height: 80px;
            }

            .hero-grid, .section-grid {
                gap: 100px;
            }

            .hero-text {
                padding-left: 50px;
            }

            .section-item {
                padding: 50px 0;
                padding-left: 50px;
            }

            .benefits-grid {
                grid-template-columns: 1fr;
            }

            .journal-grid {
                grid-template-columns: 1fr;
            }

            .cta-box {
                padding: 90px;
            }

            .vertical-label {
                right: 1.875rem; /* 30px / 16px */
                font-size: 0.5625rem; /* 9px / 16px */
            }

            .vertical-label-left {
                left: 1.5625rem; /* 25px / 16px */
                font-size: 0.5625rem; /* 9px / 16px */
            }

            .header-controls {
                gap: 25px;
            }
        }

        /* TABLET PORTRAIT (1024px - 768px) */
        @media (max-width: 1023px) {
            header {
                padding: 0 50px;
                height: 85px;
            }

            header::after {
                left: 50px;
                width: 120px;
            }

            .logo {
                font-size: 0.75rem; /* 12px / 16px */
                letter-spacing: 5px;
            }

            .logo::before {
                width: 24px;
                height: 24px;
            }

            .mobile-menu {
                max-width: 100%;
            }

            .mobile-menu-content {
                padding: 110px 45px 45px;
            }

            .mobile-nav-links a {
                font-size: 1.625rem; /* 26px / 16px */
            }

            main {
                margin-top: 85px;
            }

            .hero, section, .cta-section {
                padding: 100px 50px;
            }

            .section-number {
                font-size: 12.5rem; /* 200px / 16px */
            }

            .footer-grid {
                grid-template-columns: 1fr 1fr;
                gap: 50px;
                padding-bottom: 50px;
            }

            footer {
                padding: 80px 50px 50px;
            }

            h1 {
                font-size: 3.75rem; /* 60px / 16px */
                margin-bottom: 50px;
            }

            h2 {
                font-size: 3rem; /* 48px / 16px */
                margin-bottom: 70px;
                padding-left: 45px;
            }

            h2::before {
                height: 70px;
            }

            h2::after {
                width: 35px;
            }

            h3 {
                font-size: 1.25rem; /* 20px / 16px */
            }

            .hero-grid, .section-grid {
                gap: 80px;
            }

            .hero-text {
                padding-left: 45px;
            }

            .hero-text p, p {
                font-size: 1.0625rem; /* 17px / 16px */
            }

            .section-item {
                padding: 45px 0;
                padding-left: 45px;
            }

            .article-card h3 {
                font-size: 2rem;
            }


            .cta-box {
                padding: 70px;
            }

            .btn {
                padding: 1.125rem 2.8125rem; /* 18px 45px / 16px */
            }

            .vertical-label {
                right: 1.5625rem; /* 25px / 16px */
                font-size: 0.5rem; /* 8px / 16px */
                letter-spacing: 3px;
            }

            .vertical-label-left {
                left: 1.25rem; /* 20px / 16px */
                font-size: 0.5rem; /* 8px / 16px */
                letter-spacing: 3px;
            }
            .accessibility-panel { max-width: 20rem; /* 320px / 16px */ }
            .accessibility-panel .panel-content { padding: 1.25rem; /* 20px / 16px */ }
            .accessibility-group h4 { font-size: 0.6875rem; /* 11px / 16px */ }

            .header-controls {
                gap: 20px;
            }
        }

        /* MOBILE LANDSCAPE & SMALL TABLET (768px - 600px) */
        @media (max-width: 767px) {
            header {
                height: 75px;
                padding: 0 40px;
            }

            header::after {
                left: 40px;
                width: 100px;
            }

            .logo {
                font-size: 0.75rem; /* 12px / 16px */
                letter-spacing: 4px;
            }

            .logo::before {
                width: 20px;
                height: 20px;
            }

            .logo img {
                height: 35px; /* Réduction de la hauteur du logo sur mobile */
            }

            .mobile-menu {
                max-width: 100%;
            }

            .mobile-menu-content {
                padding: 100px 40px 40px;
            }

            .mobile-nav-links a {
                font-size: 1.5rem; /* 24px / 16px */
                padding: 18px 0;
            }

            main {
                margin-top: 75px;
            }

            .hero, section, .cta-section {
                padding: 80px 40px;
                min-height: auto;
            }

            .hero::before,
            section::before {
                left: 40px;
            }

            .hero::after,
            section::after {
                left: 40px;
                width: calc(100% - 80px);
            }

            .section-number {
                font-size: 6.25rem; /* 100px / 16px */
            }

            .footer-grid {
                grid-template-columns: 1fr;
                gap: 40px;
                padding-bottom: 40px;
            }

            footer {
                padding: 60px 40px 40px;
            }

            .footer-bottom {
                flex-direction: column;
                align-items: flex-start;
                gap: 25px;
            }

            .footer-legal {
                gap: 25px;
            }

            .vertical-label {
                right: 0.625rem; /* 10px / 16px */
                font-size: 0.4375rem; /* 7px / 16px */
                letter-spacing: 2px;
            }

            .vertical-label-left {
                left: 0.625rem; /* 10px / 16px */
                font-size: 0.4375rem; /* 7px / 16px */
                letter-spacing: 2px;
            }

            h1 {
                font-size: 3.5rem; /* 56px / 16px */
                margin-bottom: 45px;
                letter-spacing: 1px;
            }

            h1::after {
                width: 120px;
            }

            h2 {
                font-size: 2.5rem; /* 40px / 16px */
                margin-bottom: 60px;
                padding-left: 40px;
            }

            h2::before {
                height: 60px;
            }

            h2::after {
                width: 30px;
            }

            h3 {
                font-size: 1.375rem; /* 22px / 16px */
            }

            .hero-grid, .section-grid {
                grid-template-columns: 1fr;
                gap: 60px;
            }

            .hero-grid::before,
            .section-grid::before {
                display: none;
            }

            .hero-text {
                padding-left: 40px;
            }

            .hero-text::before {
                display: block;
            }

            .hero-text p, p {
                font-size: 1rem; /* 16px / 16px */
                line-height: 1.9;
            }

            .section-item {
                border-left: none;
                padding-left: 0;
                padding-top: 40px;
                border-top: 0.5px solid var(--accent-line);
                padding: 40px 0;
            }

            .article-card {
                padding: 40px;
            }

            .section-item::before {
                display: none;
            }

            .section-item::after {
                display: none;
            }

            .cta-box {
                padding: 60px 45px;
            }

            .btn {
                padding: 1rem 2.5rem; /* 16px 40px / 16px */
                font-size: 0.625rem; /* 10px / 16px */
            }

            footer {
                padding: 60px 40px;
            }

            .accessibility-trigger {
                bottom: 0.9375rem; left: 0.9375rem; width: 2.5rem; height: 2.5rem; font-size: 1rem; /* 15px 15px 40px 40px 16px / 16px */
            }
            .accessibility-panel {
                bottom: 4.6875rem; /* 75px / 16px */
                left: 0.9375rem; /* 15px / 16px */
            }

            .header-controls {
                gap: 15px;
            }
        }

        /* MOBILE PORTRAIT (600px - 0px) */
        @media (max-width: 599px) {
            header {
                height: 70px;
                padding: 0 25px;
            }

            header::after {
                left: 25px;
                width: 80px;
            }

            .logo {
                font-size: 0.8125rem; /* 13px / 16px */
                letter-spacing: 3px;
                gap: 10px;
            }

            .logo::before {
                width: 18px;
                height: 18px;
            }

            .mobile-menu-content {
                padding: 90px 30px 30px;
                gap: 40px;
            }

            .mobile-nav-links a {
                font-size: 1.375rem; /* 22px / 16px */
                padding: 16px 0;
            }

            .mobile-contact-item {
                margin-bottom: 20px;
            }

            main {
                margin-top: 70px;
            }

            .hero, section, .cta-section {
                padding: 3.125rem 1.25rem; /* 50px 20px / 16px */
            }

            .hero::before,
            section::before {
                left: 25px;
            }

            .hero::after,
            section::after {
                left: 25px;
                width: calc(100% - 50px);
            }

            .section-number {
                font-size: 7.5rem; /* 120px / 16px */
            }

            .footer-grid {
                grid-template-columns: 1fr;
                gap: 35px;
                padding-bottom: 35px;
            }

            footer {
                padding: 50px 25px 35px;
            }

            .footer-column h4 {
                font-size: 0.9375rem; /* 15px / 16px */
                margin-bottom: 25px;
            }

            .footer-column p {
                font-size: 14px;
            }

            .footer-column ul li a {
                font-size: 0.8125rem; /* 13px / 16px */
            }

            .footer-contact-item {
                margin-bottom: 20px;
            }

            .footer-social {
                gap: 15px;
                margin-top: 25px;
            }

            .footer-social a {
                width: 36px;
                height: 36px;
                font-size: 0.8125rem; /* 13px / 16px */
            }

            .footer-bottom {
                padding-top: 35px;
            }

            .footer-bottom p {
                font-size: 0.625rem; /* 10px / 16px */
            }

            .footer-legal a {
                font-size: 0.625rem; /* 10px / 16px */
            }

            .vertical-label,
            .vertical-label-left {
                display: none;
            }

            h1 {
                font-size: 2.25rem; /* 36px / 16px */
                margin-bottom: 40px;
                letter-spacing: 1px;
                padding-bottom: 30px;
            }

            h1::after {
                width: 100px;
                height: 1px;
            }

            h2 {
                font-size: 2rem; /* 32px / 16px */
                margin-bottom: 50px;
                padding-left: 30px;
                letter-spacing: 1px;
            }

            h2::before {
                height: 50px;
            }

            h2::after {
                width: 25px;
            }

            h3 {
                font-size: 1.125rem; /* 18px / 16px */
                margin-bottom: 35px;
            }

            .hero-grid, .section-grid {
                gap: 45px;
            }

            .hero-text {
                padding-left: 0;
            }

            .hero-text::before {
                display: none;
            }

            .hero-text p, p {
                font-size: 0.9375rem; /* 15px / 16px */
                line-height: 1.8;
                margin-bottom: 28px;
            }

            .section-item {
                padding: 35px 0;
            }

            .cta-box {
                padding: 45px 30px;
            }

            .cta-box::before,
            .cta-box::after {
                width: 40px;
            }

            .btn {
                padding: 0.9375rem 2.1875rem; /* 15px 35px / 16px */
                font-size: 0.5625rem; /* 9px / 16px */
                letter-spacing: 2.5px;
                margin-top: 30px;
            }

            footer {
                padding: 50px 25px;
            }

            footer p {
                font-size: 0.5625rem; /* 9px / 16px */
                letter-spacing: 2.5px;
            }

            footer .divider {
                margin: 40px auto;
                max-width: 200px;
            }
        }

        /* EXTRA SMALL MOBILE (375px and below) */
        @media (max-width: 374px) {
            .logo {
                font-size: 12px;
                letter-spacing: 2px;
            }

            .logo::before {
                width: 16px;
                height: 16px;
            }

            .menu-toggle span:nth-child(1) {
                width: 24px;
            }y

            .menu-toggle span:nth-child(2) {
                width: 18px;
            }

            .menu-toggle span:nth-child(3) {
                width: 14px;
            }

            .mobile-nav-links a {
                font-size: 1.25rem; /* 20px / 16px */
            }

            h1 {
                font-size: 2rem; /* 32px / 16px */
            }

            h2 {
                font-size: 1.75rem; /* 28px / 16px */
            }

            h3 {
                font-size: 1rem; /* 16px / 16px */
            }

            .hero-text p, p {
                font-size: 0.875rem; /* 14px / 16px */
            }

            .section-number {
                font-size: 5rem; /* 80px / 16px */
            }

            /* Specific adjustments for header elements on extra small screens */
            header {
                height: 60px; /* Even smaller header height */
                padding: 0 15px; /* Reduced padding */
            }

            header::after {
                left: 15px;
                width: 60px; /* Shorter decorative line */
            }

            .logo {
                font-size: 0.6875rem; /* 11px / 16px */
                letter-spacing: 1.5px;
                gap: 8px;
            }

            .logo::before {
                width: 14px;
                height: 14px;
            }

            .logo img {
                height: 25px; /* Further reduction of logo height */
            }

            .header-controls {
                gap: 10px; /* Smaller gap between controls */
                flex-shrink: 0; /* Ensure controls don't shrink */
            }

            .lang-btn {
                font-size: 0.625rem; /* 10px / 16px */
                letter-spacing: 2px;
            }

            .menu-toggle span:nth-child(1) {
                width: 20px;
                margin-bottom: 6px;
            }

            .menu-toggle span:nth-child(2) {
                width: 16px;
                margin-bottom: 6px;
            }

            .menu-toggle span:nth-child(3) {
                width: 12px;
            }

            .menu-toggle.active span:nth-child(1) {
                transform: rotate(-45deg) translateY(2px);
                width: 20px;
            }

            .menu-toggle.active span:nth-child(3) {
                transform: rotate(45deg) translateY(-2px);
                width: 20px;
            }
        }

        /* Consolidated Navbar Media Queries */
        /* Tablet Landscape (1199px and below) */
        @media (max-width: 1199px) {
            header { padding: 0 60px; height: 90px; }
            header::after { left: 60px; width: 150px; }
            .header-controls { gap: 25px; }
        }

        /* Tablet Portrait (1023px and below) */
        @media (max-width: 1023px) {
            header { padding: 0 50px; height: 85px; }
            header::after { left: 50px; width: 120px; }
            .logo { font-size: 0.75rem; letter-spacing: 5px; gap: 12px; }
            .logo::before { width: 24px; height: 24px; }
            .header-controls { gap: 20px; }
        }

        /* Mobile Landscape & Small Tablet (767px and below) */
        @media (max-width: 767px) {
            header { height: 75px; padding: 0 40px; }
            header::after { left: 40px; width: 100px; }
            .logo { font-size: 0.75rem; letter-spacing: 4px; gap: 10px; }
            .logo::before { width: 20px; height: 20px; }
            .logo img { height: 35px; } /* Corrected logo height */
            .header-controls { gap: 15px; }
        }

        /* Mobile Portrait (599px and below) */
        @media (max-width: 599px) {
            header { height: 70px; padding: 0 25px; }
            header::after { left: 25px; width: 80px; }
            .logo { font-size: 0.8125rem; letter-spacing: 3px; gap: 10px; }
            .logo::before { width: 18px; height: 18px; }
        }
    
                    .btn span, .nav-cta span { position: relative; z-index: 1; }
            .btn span *, .nav-cta span * { position: relative; z-index: 1; }


            /* --- Premium Chatbot --- */
.chatbot-container {
    position: fixed;
    bottom: 40px;
    right: 40px;
    z-index: 99999; /* Match the contact buttons to ensure correct stacking */
}

.chatbot-toggle {
    width: 80px;
    height: 80px;
    cursor: pointer;
    margin-top: 15px; 
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.chatbot-toggle:hover {
    transform: scale(1.1);
}

.chatbot-toggle img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.chatbot-window {
    position: absolute;
    bottom: 110px; 
    right: 0;
    width: 340px;
    max-width: 400px; 
    max-height: 600px;
    display: flex;
    flex-direction: column;
    background: rgba(5, 11, 20, 0.85); /* ALIGNED: Use a slightly transparent deep-ink */
    backdrop-filter: blur(40px) saturate(180%);
    -webkit-backdrop-filter: blur(30px) saturate(180%);
    border: 0.5px solid var(--accent-line); /* ALIGNED: Use branding variable */
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
    transform: translateY(20px) scale(0.95);
    opacity: 0;
    pointer-events: none;
    transform-origin: bottom right;
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),;
    z-index: 9999999;
}

.chatbot-window.active {
    transform: translateY(0) scale(1);
    opacity: 1;
    pointer-events: all;
}

.chatbot-header {
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 0.5px solid var(--accent-line); /* ALIGNED: Use branding variable */
    flex-shrink: 0;
    background: rgba(5, 11, 20, 0.5); /* ALIGNED: Use a slightly transparent deep-ink */
}

.chatbot-header-info {
    display: flex;
    align-items: center;
    gap: 12px;
}

.chatbot-header-info img {
    width: 40px;
    height: 40px;
    object-fit: cover;
}

.chatbot-title {
    font-family: 'Brygada 1918', serif; /* ALIGNED: Use branding font */
    font-weight: 700;
    color: var(--pale-silver); /* ALIGNED: Use branding variable */
    font-size: 1.1rem; /* ALIGNED: Match accessibility panel title style */
    text-transform: uppercase;
    letter-spacing: 2px;
}

.chatbot-close {
    background: none;
    border: none;
    color: var(--silver); /* ALIGNED: Use branding variable */
    font-size: 1.1rem;
    cursor: pointer;
    transition: color 0.3s ease, transform 0.3s ease;
    padding: 5px;
}

.chatbot-close:hover {
    color: var(--pale-silver); /* ALIGNED: Use branding variable */
    transform: rotate(90deg);
}

.chatbot-messages {
    flex-grow: 1;
    padding: 20px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.chatbot-message {
    max-width: 80%;
    padding: 12px 18px;
    font-size: 0.9rem;
    line-height: 1.5;
    font-family: 'Oswald', sans-serif; /* ALIGNED: Use branding font */
    opacity: 0;
    transform: translateY(15px);
    animation: message-fade-in 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.chatbot-message.user {
    background: var(--silver); /* ALIGNED: Use branding variable */
    color: var(--deep-ink); /* ALIGNED: Use branding variable */
    align-self: flex-end;
}

.chatbot-message.bot {
    background: rgba(197, 211, 232, 0.1); /* ALIGNED: Use branding variable */
    color: var(--silver); /* ALIGNED: Use branding variable */
    align-self: flex-start; 
}

@keyframes message-fade-in {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.typing-indicator {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 15px 18px;
    background: rgba(190, 211, 239, 0.1);
    max-width: 80px;
    align-self: flex-start;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.typing-dot {
    width: 8px;
    height: 8px;
    background: var(--silver); /* ALIGNED: Use branding variable */
    border-radius: 50%;
    animation: typingAnimation 1.5s infinite ease-in-out;
}

.typing-dot:nth-child(1) { animation-delay: 0s; }
.typing-dot:nth-child(2) { animation-delay: 0.3s; }
.typing-dot:nth-child(3) { animation-delay: 0.6s; }

@keyframes typingAnimation {
    0%, 100% {
        transform: translateY(0);
        opacity: 0.4;
    }
    50% {
        transform: translateY(-5px);
        opacity: 1;
    }
}

.chatbot-input {
    display: flex;
    padding: 15px 20px;
    border-top: 0.5px solid var(--accent-line); /* ALIGNED: Use branding variable */
    gap: 10px;
    background: rgba(0,0,0,0.2);
}

#chatbot-input-field {
    flex-grow: 1;
    background: transparent;
    border: 0.5px solid var(--accent-line); /* ALIGNED: Use branding variable */
    padding: 10px 15px;
    color: var(--pale-silver); /* ALIGNED: Use branding variable */
    font-family: 'Oswald', sans-serif; /* ALIGNED: Use branding font */
    font-size: 0.95rem;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

#chatbot-input-field:focus {
    outline: none;
    border-color: var(--silver); /* ALIGNED: Use branding variable */
    box-shadow: 0 0 10px rgba(197, 211, 232, 0.1); /* ALIGNED: Use branding variable */
}

.chatbot-send {
    width: 42px;
    height: 42px;
    border: none;
    background: var(--silver); /* ALIGNED: Use branding variable */
    color: var(--deep-ink); /* ALIGNED: Use branding variable */
    font-size: 0.9rem;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.3s ease;
}

.chatbot-send:hover {
    background: var(--pale-silver); /* ALIGNED: Use branding variable */
    transform: scale(1.05);
}

.chatbot-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 15px;
    align-items: flex-start;
}

.chatbot-option {
    background: transparent;
    border: 0.5px solid var(--accent-line); /* ALIGNED: Use branding variable */
    color: var(--silver); /* ALIGNED: Use branding variable */
    padding: 10px 18px;
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.3s ease;
    font-family: 'Oswald', sans-serif; /* ALIGNED: Use branding font */
    text-align: left;
}

.chatbot-option:hover {
    background: var(--silver); /* ALIGNED: Use branding variable */
    color: var(--deep-ink); /* ALIGNED: Use branding variable */
    border-color: var(--silver); /* ALIGNED: Use branding variable */
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}


.footer-legal a {
    display: inline-flex;
    align-items: center;
    gap: 6px;              /* space between text and logo */
}

.footer-legal a img {
    height: 14px;          /* similar height to the text */
    width: auto;
    display: block;
}

/* =============================================== */
/* === MEDIA QUERIES POUR LE CHATBOT (MOBILE) === */
/* =============================================== */

@media (max-width: 767px) {
    .chatbot-container {
        bottom: 20px; /* Déplace le bouton plus près du bas */
        right: 20px;  /* Déplace le bouton plus près du bord droit */
    }

    .chatbot-toggle {
        width: 65px;  /* Rend le bouton un peu plus petit */
        height: 65px;
    }

    .chatbot-window {
        width: calc(100vw - 40px); /* La fenêtre prend presque toute la largeur */
        max-width: 340px; /* Mais pas plus que sa largeur max normale */
        bottom: 95px; /* Ajuste la position de la fenêtre au-dessus du nouveau bouton */
    }
}
