/* =========================================================
   LLP LAW FIRM — DESIGN SYSTEM 2026
   Editorial legal / premium / responsive / accessible
   ========================================================= */
:root {
    --ink: #101820;
    --navy-950: #06131f;
    --navy-900: #081827;
    --navy-850: #0b2032;
    --navy-800: #102b42;
    --gold-500: #c7a466;
    --gold-400: #d8bc87;
    --gold-200: #ead9b8;
    --paper: #f6f3ed;
    --paper-2: #eee9df;
    --white: #ffffff;
    --mist: #e8edf0;
    --muted: #68737c;
    --line: rgba(8, 24, 39, .13);
    --shadow-soft: 0 20px 70px rgba(4, 18, 29, .10);
    --shadow-card: 0 16px 45px rgba(5, 20, 33, .08);
    --radius-sm: 10px;
    --radius: 18px;
    --radius-lg: 30px;
    --max-width: 1280px;
    --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    --sans: "Inter", Arial, Helvetica, sans-serif;
    --bleu-profond: var(--navy-900);
    --bleu-nuit: var(--navy-950);
    --bleu-clair: var(--navy-800);
    --dore: var(--gold-500);
    --dore-clair: var(--gold-400);
    --dore-fonce: #9b7d49;
    --blanc: var(--white);
    --blanc-casse: var(--paper);
    --texte-fonce: var(--ink);
}

html { scroll-behavior: smooth; }
body.site-2026 {
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.72;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
body.site-2026 *, body.site-2026 *::before, body.site-2026 *::after { box-sizing: border-box; }
body.site-2026 h1, body.site-2026 h2, body.site-2026 h3, body.site-2026 h4, body.site-2026 h5, body.site-2026 h6 {
    font-family: var(--serif);
    letter-spacing: -.025em;
    line-height: 1.02;
    text-wrap: balance;
}
body.site-2026 p, body.site-2026 li, body.site-2026 a, body.site-2026 button, body.site-2026 input,
body.site-2026 textarea, body.site-2026 select, body.site-2026 label, body.site-2026 span { font-family: var(--sans); }
body.site-2026 a { text-underline-offset: 3px; }
body.site-2026 img { max-width: 100%; }
::selection { background: var(--gold-200); color: var(--navy-950); }

.skip-link {
    position: fixed; left: 20px; top: -80px; z-index: 10000;
    background: var(--white); color: var(--navy-950); padding: 12px 18px;
    border-radius: 8px; font-weight: 700; transition: top .2s ease;
}
.skip-link:focus { top: 20px; }

/* NAVIGATION */
.navbar {
    position: fixed; inset: 0 0 auto 0; z-index: 1500;
    padding: 18px 4vw;
    border: 0;
    background: linear-gradient(180deg, rgba(4, 15, 25, .92), rgba(4, 15, 25, .58) 70%, transparent);
    backdrop-filter: none;
    transition: padding .28s ease, background .28s ease, box-shadow .28s ease;
}
.navbar.scrolled {
    padding: 10px 4vw;
    background: rgba(6, 19, 31, .93);
    box-shadow: 0 8px 40px rgba(0,0,0,.16);
    backdrop-filter: blur(18px) saturate(135%);
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.navbar-container { max-width: var(--max-width); margin: 0 auto; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand-2026 { display:flex; align-items:center; gap:12px; color:var(--white); text-decoration:none; min-width:max-content; }
.brand-mark { width:50px; height:50px; display:grid; place-items:center; border:1px solid rgba(216,188,135,.48); border-radius:50%; overflow:hidden; background:rgba(255,255,255,.05); }
.brand-mark img { width:100%; height:100%; object-fit:cover; transform:scale(1.08); }
.brand-copy { display:grid; line-height:1; gap:2px; }
.brand-copy strong { font-family:var(--serif); font-size:1.5rem; letter-spacing:.08em; color:var(--gold-400); }
.brand-copy small { font-size:.68rem; text-transform:uppercase; letter-spacing:.23em; color:rgba(255,255,255,.76); }
.nav-links { display:flex; align-items:center; justify-content:flex-end; gap:clamp(14px,1.6vw,26px); list-style:none; margin:0; padding:0; }
.nav-links li { list-style:none; }
.nav-links a { color:rgba(255,255,255,.84); text-decoration:none; font-size:.83rem; font-weight:600; letter-spacing:.015em; padding:10px 0; position:relative; white-space:nowrap; }
.nav-links a::after { content:""; position:absolute; left:0; bottom:3px; width:100%; height:1px; background:var(--gold-400); transform:scaleX(0); transform-origin:right; transition:transform .24s ease; }
.nav-links a:hover, .nav-links a.active { color:var(--white); }
.nav-links a:hover::after, .nav-links a.active::after { transform:scaleX(1); transform-origin:left; }
.nav-links .nav-highlight { color:var(--gold-400); }
.nav-links .nav-cta { display:inline-flex; align-items:center; gap:8px; padding:11px 15px; border:1px solid rgba(216,188,135,.55); border-radius:999px; color:var(--white); }
.nav-links .nav-cta::after { display:none; }
.nav-links .nav-cta:hover { background:var(--gold-500); color:var(--navy-950); border-color:var(--gold-500); }
.menu-toggle { display:none; width:46px; height:46px; border:1px solid rgba(255,255,255,.25); border-radius:50%; background:rgba(255,255,255,.06); align-items:center; justify-content:center; gap:5px; padding:0; }
.menu-toggle span { width:20px; height:1.5px; margin:0; background:var(--white); display:block; transition:.25s ease; }

/* HERO HOME */
.hero-immersive {
    min-height: 100svh;
    display:flex; align-items:flex-end; justify-content:flex-start;
    position:relative; isolation:isolate; overflow:hidden;
    padding: clamp(150px, 18vh, 220px) 5vw clamp(90px, 12vh, 135px);
    background:
        radial-gradient(circle at 74% 26%, rgba(199,164,102,.16), transparent 30%),
        radial-gradient(circle at 18% 72%, rgba(39,83,112,.38), transparent 34%),
        linear-gradient(115deg, #06131f 0%, #0a2235 53%, #06131f 100%);
}
.hero-immersive::before {
    content:""; position:absolute; inset:0; z-index:-2; opacity:.42;
    background-image:
      linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(to bottom, black 0%, transparent 85%);
}
.hero-immersive::after {
    content:"LLP"; position:absolute; right:-2vw; bottom:-8vh; z-index:-1;
    font-family:var(--serif); font-size:clamp(18rem,38vw,44rem); font-weight:700; line-height:.75;
    color:transparent; -webkit-text-stroke:1px rgba(216,188,135,.10); letter-spacing:-.08em;
    pointer-events:none;
}
.hero-canvas-3d { position:absolute; inset:0; width:100%; height:100%; opacity:.16; mix-blend-mode:screen; pointer-events:none; }
.hero-watermark-logo { display:none; }
.hero-overlay-soft { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(3,13,22,.72) 0%, rgba(3,13,22,.15) 68%, rgba(3,13,22,.36) 100%); }
.hero-foreground { width:min(100%, var(--max-width)); margin:0 auto; text-align:left; color:var(--white); position:relative; z-index:3; }
.hero-badge { display:flex; align-items:center; gap:14px; justify-content:flex-start; margin:0 0 26px; width:max-content; max-width:100%; color:var(--gold-400); }
.hero-badge .badge-line { width:42px; height:1px; background:rgba(216,188,135,.7); }
.hero-badge .badge-text { font-size:.72rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
.hero-title { margin:0; max-width:1050px; }
.hero-title .title-line { display:block; font-family:var(--serif); font-size:clamp(4.4rem,10vw,9.4rem); font-weight:600; line-height:.78; letter-spacing:-.065em; color:var(--white); }
.hero-title .title-subline { display:block; max-width:720px; margin-top:30px; font-family:var(--serif); font-size:clamp(1.7rem,3.3vw,3.45rem); font-weight:500; line-height:1.02; color:rgba(255,255,255,.88); }
.hero-title .title-subline i { display:none; }
.hero-cta { display:flex; flex-wrap:wrap; gap:14px; margin-top:42px; }
.btn-hero-primary, .btn-hero-secondary { min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:13px 22px; border-radius:999px; text-decoration:none; font-size:.84rem; font-weight:700; transition:.26s ease; }
.btn-hero-primary { background:var(--gold-500); color:var(--navy-950); border:1px solid var(--gold-500); }
.btn-hero-secondary { background:rgba(255,255,255,.03); color:var(--white); border:1px solid rgba(255,255,255,.26); backdrop-filter:blur(10px); }
.btn-hero-primary:hover { transform:translateY(-2px); background:var(--gold-400); }
.btn-hero-secondary:hover { border-color:var(--gold-400); color:var(--gold-400); }
.scroll-trigger { left:auto; right:5vw; bottom:30px; color:rgba(255,255,255,.46); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; }
.scroll-trigger .mouse { border-color:rgba(255,255,255,.28); }

/* GLOBAL SECTIONS */
.section, .section-domaines, .section-actualites-recentes, .section-equipe-univers, .section-actualites-univers,
.section-valeurs-univers, .section-cta-final, .mining-description, .mining-objectifs, .mining-thematiques, .mining-intervenants, .mining-programme {
    padding: clamp(72px, 9vw, 130px) 5vw;
}
.section > *, .section-domaines > *, .section-actualites-recentes > *, .section-equipe-univers > *, .section-actualites-univers > *,
.section-valeurs-univers > *, .section-cta-final > *, .container { max-width:var(--max-width); margin-left:auto; margin-right:auto; }
.section-header { max-width:920px; margin:0 auto clamp(42px,6vw,72px); text-align:left; }
.section-header .section-tag, .section-tag { display:inline-flex; align-items:center; gap:9px; color:#8c6f3e; background:transparent; border:0; padding:0; margin-bottom:18px; text-transform:uppercase; letter-spacing:.16em; font-size:.68rem; font-weight:800; }
.section-header h2 { font-family:var(--serif); font-size:clamp(2.7rem,6vw,5.7rem); line-height:.92; font-weight:600; color:var(--navy-950); margin:0; }
.section-header p { color:var(--muted); max-width:720px; margin:20px 0 0; font-size:clamp(1rem,1.5vw,1.13rem); }
.section-header.dark h2, .section-header.dark p { color:var(--white); }
.section-header.dark p { color:rgba(255,255,255,.66); }
.text-gradient { background:none; -webkit-text-fill-color:currentColor; color:var(--gold-500); }

/* HOME NEWS FEATURE */
.section-actualites-recentes { background:var(--paper); }
.actualites-recentes-grid { max-width:var(--max-width); margin:0 auto; display:grid; grid-template-columns:minmax(0,1.4fr) minmax(330px,.6fr); gap:clamp(26px,4vw,58px); align-items:start; }
.actu-recente-card, .actu-side-item { border:1px solid var(--line); background:rgba(255,255,255,.58); box-shadow:none; }
.actu-recente-card { border-radius:var(--radius-lg); overflow:hidden; }
.actu-recente-featured { display:grid; grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr); min-height:520px; }
.actu-recente-image { min-height:420px; position:relative; background:linear-gradient(145deg,var(--navy-800),var(--navy-950)); }
.actu-recente-image img { width:100%; height:100%; object-fit:cover; }
.mining-placeholder { height:100%; min-height:420px; display:grid; place-items:center; align-content:center; gap:14px; color:rgba(255,255,255,.8); background:radial-gradient(circle at 50% 30%,rgba(199,164,102,.22),transparent 30%),linear-gradient(145deg,#102d46,#06131f); }
.mining-placeholder i { font-size:4rem; color:var(--gold-500); }
.actu-recente-content { padding:clamp(28px,4vw,52px); display:flex; flex-direction:column; justify-content:center; }
.actu-recente-content h3 { font-size:clamp(2rem,3.7vw,3.5rem); color:var(--navy-950); margin:12px 0 20px; }
.actu-recente-content p { color:var(--muted); }
.actu-recente-meta, .mining-keywords-event { display:flex; flex-wrap:wrap; gap:10px 14px; font-size:.77rem; }
.mining-keywords-event span { border:1px solid var(--line); padding:7px 10px; border-radius:999px; background:rgba(255,255,255,.65); }
.actu-recente-link, .actu-side-link, .voir-toutes { color:var(--navy-950); font-weight:800; text-decoration:none; }
.actu-recente-link { margin-top:28px; display:inline-flex; gap:9px; align-items:center; }
.actualites-right { display:grid; gap:0; border-top:1px solid var(--line); }
.actualites-side-header { display:flex; align-items:center; justify-content:space-between; padding:0 0 18px; border-bottom:1px solid var(--line); }
.actualites-side-header h3 { font-family:var(--serif); font-size:1.55rem; margin:0; }
.actu-side-item { display:grid; grid-template-columns:88px 1fr; gap:16px; padding:18px 0; border:0; border-bottom:1px solid var(--line); background:transparent; }
.actu-side-image { width:88px; aspect-ratio:1/1; border-radius:12px; overflow:hidden; }
.actu-side-image img { width:100%; height:100%; object-fit:cover; }
.actu-side-content h4 { font-family:var(--serif); font-size:1.18rem; line-height:1.05; margin:5px 0; }
.actu-side-content h4 a { color:var(--navy-950); text-decoration:none; }
.actu-side-content p { display:none; }
.actu-side-date { font-size:.68rem; color:var(--muted); }

/* EXPERTISE */
.section-domaines { background:#eae5db; position:relative; overflow:hidden; }
.section-domaines::before { content:"EXPERTISE"; position:absolute; right:-1vw; top:0; font:600 clamp(7rem,18vw,17rem)/1 var(--serif); color:rgba(8,24,39,.035); pointer-events:none; }
.domaines-grid-interactive { max-width:var(--max-width); margin:0 auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; perspective:none; }
.domaine-card-3d { min-height:320px; padding:30px; border-radius:var(--radius); border:1px solid rgba(8,24,39,.14); background:rgba(246,243,237,.64); backdrop-filter:blur(8px); transform:none !important; box-shadow:none; display:flex; flex-direction:column; align-items:flex-start; position:relative; overflow:hidden; transition:transform .28s ease, background .28s ease, box-shadow .28s ease; }
.domaine-card-3d::after { content:""; position:absolute; inset:auto 0 0 0; height:4px; background:var(--gold-500); transform:scaleX(0); transform-origin:left; transition:.28s ease; }
.domaine-card-3d:hover { transform:translateY(-6px) !important; background:var(--white); box-shadow:var(--shadow-card); }
.domaine-card-3d:hover::after { transform:scaleX(1); }
.domaine-card-3d .domaine-icon { width:48px; height:48px; display:grid; place-items:center; border:1px solid rgba(8,24,39,.16); border-radius:50%; background:transparent; color:var(--gold-500); margin-bottom:auto; }
.domaine-card-3d h3 { font-size:clamp(1.55rem,2.2vw,2.15rem); color:var(--navy-950); margin:34px 0 12px; }
.domaine-card-3d p { color:var(--muted); font-size:.9rem; }
.domaine-link { margin-top:20px; color:var(--navy-950); text-decoration:none; display:flex; align-items:center; gap:8px; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.card-depth { display:none; }

/* VALUES */
.section-valeurs-univers { background:var(--navy-950); position:relative; }
.valeurs-univers-grid { max-width:var(--max-width); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.valeur-univers-card { min-height:360px; border:1px solid rgba(255,255,255,.10); border-radius:var(--radius); background:rgba(255,255,255,.035); padding:34px; color:var(--white); box-shadow:none; transform:none !important; }
.valeur-univers-card:hover { background:rgba(255,255,255,.06); border-color:rgba(216,188,135,.35); }
.valeur-sphere { width:82px; height:82px; margin:0 0 52px; background:transparent; border:1px solid rgba(216,188,135,.34); box-shadow:none; }
.sphere-ring { display:none; }
.valeur-letters { color:var(--gold-400); font-family:var(--serif); }
.valeur-words { color:rgba(255,255,255,.7); }

/* TEAM HOME */
.section-equipe-univers { background:var(--paper); }
.carousel-wrapper, .carousel-container { max-width:var(--max-width); margin:0 auto; }
.membre-univers-card, .membre-card { border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:var(--white); box-shadow:none; }
.membre-univers-image { aspect-ratio:4/5; background:#d9dde0; }
.membre-univers-image img, .membre-card img { width:100%; height:100%; object-fit:cover; filter:saturate(.78) contrast(1.02); transition:transform .5s ease, filter .4s ease; }
.membre-univers-card:hover img, .membre-card:hover img { transform:scale(1.025); filter:saturate(1); }
.membre-univers-info { background:linear-gradient(to top,rgba(5,18,30,.95),rgba(5,18,30,.08)); }
.membre-univers-info h3 { font-size:1.8rem; }
.carousel-btn { border-radius:50%; border:1px solid var(--line); background:var(--white); color:var(--navy-950); box-shadow:var(--shadow-card); }

/* HOME INSIGHTS */
.section-actualites-univers { background:var(--navy-900); }
.actualites-univers-grid { max-width:var(--max-width); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.actu-univers-card { min-height:330px; border-radius:var(--radius); border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.035); padding:30px; color:var(--white); box-shadow:none; transform:none !important; }
.actu-univers-card:hover { border-color:rgba(216,188,135,.35); background:rgba(255,255,255,.055); }
.actu-univers-card h3, .actu-univers-card h3 a { color:var(--white); font-family:var(--serif); font-size:1.8rem; }
.actu-univers-card p { color:rgba(255,255,255,.62); }

/* CTA */
.section-cta-final { background:var(--gold-500); color:var(--navy-950); }
.cta-container { padding:clamp(36px,6vw,74px); border:1px solid rgba(8,24,39,.20); border-radius:var(--radius-lg); background:rgba(255,255,255,.10); box-shadow:none; }
.cta-container h2 { font-size:clamp(3rem,6vw,6rem); max-width:900px; }
.cta-glow, .cta-icons-floating { opacity:.16; }

/* GENERIC PAGE HERO */
.page-hero, .article-hero, .mining-hero {
    min-height:clamp(390px,57vh,620px); padding:180px 5vw 70px !important;
    display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; text-align:left !important;
    color:var(--white); position:relative; overflow:hidden; isolation:isolate;
    background:
      radial-gradient(circle at 77% 30%, rgba(199,164,102,.16), transparent 30%),
      linear-gradient(120deg,var(--navy-950),var(--navy-800)) !important;
}
.page-hero::after, .article-hero::after, .mining-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.2),transparent 65%); }
.page-hero > *, .article-hero > *, .mining-hero > * { width:min(100%,var(--max-width)); margin-left:auto; margin-right:auto; }
.page-hero h1, .article-hero h1, .mining-hero h1 { font-size:clamp(3.8rem,8vw,8rem); font-weight:600; margin:0; max-width:1050px; }
.page-hero p, .article-hero p { max-width:760px; color:rgba(255,255,255,.72); font-size:1.05rem !important; }

/* DOMAINES PAGE */
.domaines-section { background:var(--paper); }
.domaines-container { max-width:var(--max-width); margin:0 auto; }
.domaine-header { gap:22px; align-items:center; padding-bottom:18px; border-bottom:1px solid var(--line); }
.domaine-header-icon { border-radius:50%; background:var(--navy-950); color:var(--gold-400); }
.domaine-header-number { font-family:var(--serif); color:rgba(8,24,39,.11); font-size:5rem; }
.domaine-content { color:#49545d; font-size:1rem; }

/* TEAM PAGE */
.equipe-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.membre-card { transform:none !important; }
.membre-card .membre-info { padding:22px; }
.membre-card h3 { font-size:1.65rem; color:var(--navy-950); }
.section-titre h2 { font-size:clamp(2.8rem,5vw,5rem); color:var(--navy-950); }
.valeurs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.valeur-block { border:1px solid var(--line); border-radius:var(--radius); background:var(--white); box-shadow:none; }

/* NEWS LIST / ARTICLE */
.actualites-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.article-card { border:1px solid var(--line); border-radius:var(--radius); background:var(--white); overflow:hidden; box-shadow:none; transition:transform .28s ease, box-shadow .28s ease; }
.article-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-card); }
.article-card h3 { font-size:1.7rem; }
.pagination a, .pagination span { border-radius:999px !important; }
.article-section { padding:clamp(65px,8vw,110px) 5vw; }
.article-wrapper { max-width:var(--max-width); margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:clamp(30px,5vw,72px); }
.article-main, .sidebar-widget { border-radius:var(--radius); border:1px solid var(--line); background:var(--white); box-shadow:none; }
.article-main { padding:clamp(24px,4vw,52px); }
.article-contenu { font-size:1.03rem; color:#38454f; }
.article-contenu h2, .article-contenu h3 { color:var(--navy-950); margin-top:1.8em; }
.sidebar-widget { padding:24px; }

/* CONTACT + FORMS */
.contact-wrapper { max-width:var(--max-width); margin:0 auto; gap:clamp(30px,6vw,82px) !important; }
.contact-formulaire, .contact-infos { border-radius:var(--radius); }
.contact-formulaire { background:var(--white); padding:clamp(25px,4vw,46px); border:1px solid var(--line); }
.contact-infos { background:var(--navy-950); color:var(--white); padding:clamp(25px,4vw,46px); }
.contact-infos h2, .contact-infos h3 { color:var(--white); }
.info-block { border-bottom:1px solid rgba(255,255,255,.11); padding:22px 0; }
body.site-2026 input:not([type="checkbox"]):not([type="radio"]), body.site-2026 textarea, body.site-2026 select {
    width:100%; min-height:50px; padding:12px 14px; border:1px solid rgba(8,24,39,.18); border-radius:10px; background:#fff; color:var(--ink); font:500 .93rem/1.4 var(--sans); transition:border-color .2s ease, box-shadow .2s ease;
}
body.site-2026 textarea { min-height:130px; resize:vertical; }
body.site-2026 input:focus, body.site-2026 textarea:focus, body.site-2026 select:focus { outline:none; border-color:var(--gold-500); box-shadow:0 0 0 4px rgba(199,164,102,.15); }
body.site-2026 label { font-size:.79rem; font-weight:700; color:#2a3843; margin-bottom:7px; }
.btn-submit, button[type="submit"] { border:0; border-radius:999px; background:var(--navy-950); color:var(--white); font-weight:800; min-height:50px; padding:12px 22px; cursor:pointer; }
.btn-submit:hover, button[type="submit"]:hover { background:var(--gold-500); color:var(--navy-950); }
.alert { border-radius:12px; }

/* MINING */
.mining-hero { min-height:75svh; justify-content:center; }
.mining-hero-content { position:relative; z-index:3; }
.mining-hero-badge { background:rgba(255,255,255,.06); border:1px solid rgba(216,188,135,.35); border-radius:999px; color:var(--gold-400); backdrop-filter:blur(10px); }
.mining-hero-actions a { border-radius:999px !important; }
.mining-description-grid { gap:clamp(30px,6vw,80px); }
.affiche-card, .info-card, .objectif-card, .thematique-block-horizontal, .intervenant-card { border-radius:var(--radius); border:1px solid var(--line); box-shadow:none; }
.objectifs-grid, .intervenants-grid { gap:16px; }
.objectif-card { background:var(--white); }
.mining-objectifs, .mining-programme { background:var(--navy-950); color:var(--white); }
.mining-objectifs .objectif-card { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.1); color:var(--white); }
.mining-objectifs .objectif-card h3 { color:var(--white); }
.mining-objectifs .objectif-card p { color:rgba(255,255,255,.66); }

/* BILLETTERIE */
.billetterie-page { padding:150px 5vw 80px; background:linear-gradient(150deg,#e9e3d8,var(--paper)); }
.billetterie-container { max-width:var(--max-width); margin:0 auto; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); gap:clamp(26px,4vw,54px); align-items:start; }
.billetterie-form, .billetterie-affiche { border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--white); box-shadow:var(--shadow-soft); overflow:hidden; }
.billetterie-form { padding:clamp(25px,4vw,48px); }
.form-header h1, .form-header h2 { font-size:clamp(2.3rem,4vw,4rem); }
.form-badge { border-radius:999px; background:rgba(199,164,102,.15); color:#70552a; }
.billet-options { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }

/* MODAL */
.modal-overlay { backdrop-filter:blur(12px); background:rgba(3,13,22,.82); }
.modal-container { border-radius:var(--radius-lg); border:1px solid rgba(255,255,255,.12); overflow:hidden; }

/* FOOTER */
.footer-2026 { background:#04111c; color:var(--white); padding:0; border:0; }
.footer-topline { height:1px; background:linear-gradient(90deg,transparent,var(--gold-500),transparent); opacity:.55; }
.footer-2026 .footer-container { max-width:var(--max-width); margin:0 auto; padding:clamp(58px,8vw,105px) 5vw; display:grid; grid-template-columns:1.4fr .8fr 1fr .75fr; gap:clamp(28px,5vw,70px); }
.footer-2026 .footer-col { display:flex; flex-direction:column; gap:10px; }
.footer-2026 .footer-col h4 { font-size:1.35rem; color:var(--white); margin:0 0 14px; }
.footer-2026 .footer-brand-col h4 { font-size:clamp(2.5rem,4vw,4.6rem); color:var(--white); }
.footer-kicker { color:var(--gold-400); text-transform:uppercase; letter-spacing:.18em; font-size:.66rem; font-weight:800; }
.footer-claim { color:rgba(255,255,255,.58); max-width:340px; }
.footer-2026 a { color:rgba(255,255,255,.72); text-decoration:none; font-size:.87rem; }
.footer-2026 a:hover { color:var(--gold-400); }
.footer-2026 p { color:rgba(255,255,255,.56); font-size:.87rem; margin:0; }
.footer-consult { margin-top:16px; display:inline-flex; align-items:center; gap:8px; font-weight:800; color:var(--gold-400) !important; }
.footer-socials { display:flex; gap:8px; }
.footer-socials a { width:39px; height:39px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.14); border-radius:50%; }
.footer-hours { margin-top:14px !important; }
.footer-bottom { max-width:var(--max-width); margin:0 auto; padding:20px 5vw 28px; border-top:1px solid rgba(255,255,255,.08); display:flex; justify-content:space-between; gap:20px; }
.back-to-top { position:fixed; right:20px; bottom:20px; z-index:1200; width:46px; height:46px; border:1px solid rgba(8,24,39,.12); border-radius:50%; background:var(--gold-500); color:var(--navy-950); display:grid; place-items:center; opacity:0; visibility:hidden; transform:translateY(8px); transition:.25s ease; cursor:pointer; box-shadow:0 10px 30px rgba(0,0,0,.14); }
.back-to-top.visible { opacity:1; visibility:visible; transform:none; }

/* REVEALS - respectful of motion settings */
.animate-on-scroll { opacity:0; transform:translateY(20px); transition:opacity .65s ease, transform .65s ease; }
.animate-on-scroll.visible { opacity:1; transform:none; }

/* TABLET */
@media (max-width: 1100px) {
    .nav-links { gap:14px; }
    .nav-links a { font-size:.78rem; }
    .nav-cta-item { display:none; }
    .actualites-recentes-grid { grid-template-columns:1fr; }
    .actualites-right { display:grid; grid-template-columns:repeat(2,1fr); column-gap:24px; }
    .actualites-side-header { grid-column:1/-1; }
    .domaines-grid-interactive { grid-template-columns:repeat(2,1fr); }
    .actualites-univers-grid, .equipe-grid, .actualites-grid { grid-template-columns:repeat(2,1fr); }
    .footer-2026 .footer-container { grid-template-columns:1.25fr 1fr 1fr; }
    .footer-2026 .footer-col:last-child { grid-column:2/4; }
    .article-wrapper { grid-template-columns:1fr; }
    .article-sidebar { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
}

/* MOBILE */
@media (max-width: 820px) {
    .navbar { padding:12px 18px; background:rgba(6,19,31,.9); backdrop-filter:blur(16px); }
    .navbar.scrolled { padding:10px 18px; }
    .brand-mark { width:44px; height:44px; }
    .brand-copy strong { font-size:1.35rem; }
    .menu-toggle { display:flex; flex-direction:column; }
    .menu-toggle.active span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
    .menu-toggle.active span:nth-child(2) { opacity:0; }
    .menu-toggle.active span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }
    .nav-links {
        position:fixed; inset:0; z-index:-1; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:7px;
        padding:100px 24px 40px; background:rgba(4,17,28,.985); opacity:0; visibility:hidden; transform:translateY(-10px); transition:.25s ease;
    }
    .nav-links.active { opacity:1; visibility:visible; transform:none; }
    .nav-links li { width:100%; }
    .nav-links a { width:100%; display:block; padding:10px 0; font-family:var(--serif); font-size:clamp(2.2rem,9vw,4rem); font-weight:600; line-height:1; color:var(--white); }
    .nav-links a::after { display:none; }
    .nav-links .nav-highlight { color:var(--gold-400); }
    .nav-cta-item { display:block; margin-top:16px; }
    .nav-links .nav-cta { width:max-content; font-family:var(--sans); font-size:.9rem; padding:11px 16px; }

    .hero-immersive { min-height:100svh; padding:140px 20px 86px; align-items:center; }
    .hero-title .title-line { font-size:clamp(4rem,21vw,7.3rem); line-height:.82; }
    .hero-title .title-subline { font-size:clamp(1.6rem,8vw,2.6rem); max-width:95%; margin-top:24px; }
    .hero-badge .badge-line { width:20px; }
    .hero-cta { margin-top:32px; gap:10px; }
    .btn-hero-primary, .btn-hero-secondary { width:100%; }
    .scroll-trigger { display:none; }

    .section, .section-domaines, .section-actualites-recentes, .section-equipe-univers, .section-actualites-univers, .section-valeurs-univers, .section-cta-final,
    .mining-description, .mining-objectifs, .mining-thematiques, .mining-intervenants, .mining-programme { padding:68px 20px; }
    .section-header { margin-bottom:36px; }
    .section-header h2 { font-size:clamp(2.65rem,13vw,4.5rem); }
    .section-header p { font-size:.96rem; }

    .actu-recente-featured { grid-template-columns:1fr; }
    .actu-recente-image { min-height:320px; }
    .actu-recente-content { padding:26px; }
    .actualites-right { grid-template-columns:1fr; }
    .domaines-grid-interactive, .valeurs-univers-grid, .actualites-univers-grid, .equipe-grid, .actualites-grid, .valeurs-grid { grid-template-columns:1fr; }
    .domaine-card-3d { min-height:270px; }
    .valeur-univers-card { min-height:290px; }
    .article-sidebar { grid-template-columns:1fr; }

    .page-hero, .article-hero, .mining-hero { min-height:430px; padding:150px 20px 56px !important; }
    .page-hero h1, .article-hero h1, .mining-hero h1 { font-size:clamp(3.4rem,16vw,6rem); }
    .contact-wrapper { grid-template-columns:1fr !important; }
    .billetterie-page { padding:120px 20px 55px; }
    .billetterie-container { grid-template-columns:1fr; }
    .billet-options { grid-template-columns:1fr; }

    .footer-2026 .footer-container { padding:58px 20px; grid-template-columns:1fr 1fr; gap:40px 20px; }
    .footer-2026 .footer-brand-col { grid-column:1/-1; }
    .footer-2026 .footer-col:last-child { grid-column:auto; }
    .footer-bottom { padding:20px; flex-direction:column; }
}

@media (max-width: 520px) {
    .brand-copy small { display:none; }
    .footer-2026 .footer-container { grid-template-columns:1fr; }
    .footer-2026 .footer-brand-col, .footer-2026 .footer-col:last-child { grid-column:auto; }
    .actu-side-item { grid-template-columns:74px 1fr; }
    .actu-side-image { width:74px; }
    .hero-immersive::after { font-size:22rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
    .animate-on-scroll { opacity:1 !important; transform:none !important; }
    .hero-canvas-3d { display:none !important; }
}

/* Interactive profile triggers are buttons for accessibility, styled like text links. */
.equipe-voir-plus,
.intervenant-voir-plus {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
