/* ==========================================================
   EGIDE · Système graphique 2026
   Source de vérité du design. Les tokens viennent de la charte
   graphique (octobre 2026) : couleurs, polices, forme Egide.
   Règle : jamais de valeur en dur, toujours un token.
   ========================================================== */

:root {
    /* ---------- Couleurs (charte 03) ---------- */
    --orange: #E87722;    /* signature · 12 % · le cœur, l'action, le chiffre clé */
    --encre: #24211F;     /* sombre institutionnelle · 18 % · textes, pieds de page */
    --lin: #F3EEE6;       /* claire principale · 40 % · fond des pages */
    --garonne: #1E4A44;   /* profondeur · chiffres, rapports */
    --pierre: #D8CEC0;    /* neutre chaud · filets forts, étiquettes */
    --rose: #F0C9B5;      /* accent · citations, prévention */
    --blanc: #FFFFFF;     /* papier · cartes, formulaires */
    --cuivre: #A84F12;    /* l'orange en texte · 4,8 : 1 sur Lin */
    /* Gris de la charte 2026 (logo historique) : en touches, jamais en couleur dominante. */
    --gris-fonce: #5F6165;   /* pied de page · Blanc dessus 6,2 : 1, jamais d'orange en texte dessus */
    --gris-clair: #A0A1A3;   /* filets, séparateurs · jamais pour un texte */
    --gris-50: #D0D0D1;      /* encadrés · texte Encre 10,4 : 1 */
    --gris-20: #ECECED;      /* le Voile : cartes et zones sur Blanc */
    --blanc-85: rgba(255, 255, 255, .85);
    --blanc-22: rgba(255, 255, 255, .22);
    --succes: #2F6B4F;
    --alerte: #8A5A00;
    --erreur: #A3352A;
    --info: #2D5C66;

    --encre-80: rgba(36, 33, 31, .8);
    --encre-60: rgba(36, 33, 31, .6);
    --encre-40: rgba(36, 33, 31, .4);
    --encre-32: rgba(36, 33, 31, .32);
    --encre-12: rgba(36, 33, 31, .12);
    --encre-08: rgba(36, 33, 31, .08);
    --lin-70: rgba(243, 238, 230, .7);
    --lin-20: rgba(243, 238, 230, .2);
    --lin-10: rgba(243, 238, 230, .1);
    --orange-halo: rgba(232, 119, 34, .22);
    --orange-tint: rgba(232, 119, 34, .14);

    /* ---------- Typographie (charte 04) ---------- */
    --display: 'Egide Chiffres', 'Fraunces', Georgia, 'Times New Roman', serif;
    --text: 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --mono: 'Egide Chiffres', 'DM Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
    --soft: 'opsz' 144, 'SOFT' 100, 'WONK' 0;

    /* Douze styles, tailles fluides 375 → 1440 px */
    --t-display: clamp(3.5rem, 2rem + 6.4vw, 8rem);
    --t-h1: clamp(2.75rem, 1.5rem + 4.4vw, 5.5rem);
    --t-h2: clamp(2.125rem, 1.4rem + 2.6vw, 3.75rem);
    --t-h3: clamp(1.5rem, 1.3rem + .75vw, 2rem);
    --t-lead: clamp(1.1875rem, 1.1rem + .3vw, 1.375rem);
    --t-body: clamp(1rem, .96rem + .15vw, 1.0625rem);
    --t-caption: .8125rem;
    --t-figure: clamp(3.5rem, 2rem + 5vw, 7rem);
    --t-quote: clamp(1.625rem, 1.2rem + 1.6vw, 2.75rem);
    --t-btn: .9375rem;
    --t-eyebrow: .75rem;
    --t-data: .8125rem;

    /* ---------- Forme Egide (charte 05) ----------
       Angles haut-droit et bas-gauche arrondis, les deux autres droits. */
    --r-btn: 4px 18px 4px 18px;
    --r-card: 4px 28px 4px 28px;
    --r-photo: 8px 72px 8px 72px;
    --r-capsule: 999px;
    --r-pill: 999px;                        /* boutons façon Apple (dérogation validée, hors en-tête) */


    /* ---------- Signes ---------- */
    --peau: 10px 10px 0 0 var(--orange);    /* seconde peau · une par page */
    --ease: cubic-bezier(.22, 1, .36, 1);

    /* ---------- Grille : 12 colonnes, conteneur 1320, gouttière 32 ---------- */
    --container: 1320px;
    --gutter: clamp(1rem, 4vw, 2rem);
    --edge: clamp(1rem, 4vw, 5rem);      /* marge pleine largeur : en-tête flottant et hero */
    --section: clamp(4rem, 2.5rem + 5vw, 8rem);
    --header-h: 84px;

    /* ---------- Alias hérités (styles inline des pages) ---------- */
    --serif: var(--display);
    --sans: var(--text);
    --orange-deep: var(--cuivre);
    --orange-dark: var(--cuivre);
    --orange-soft: var(--rose);
    --orange-pale: var(--rose);
    --anthracite: var(--encre);
    --anthracite-dark: var(--encre);
    --gray-900: var(--encre);
    --gray-700: var(--encre-80);
    --gray-500: var(--encre-60);
    --gray-300: var(--pierre);
    --gray-200: var(--pierre);
    --gray-100: var(--lin);
    --cream: var(--lin);
    --off-white: var(--lin);
    --white: var(--blanc);
    --line: var(--encre-12);
}

/* ============= RESET ============= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; background: var(--lin); }
body {
    font-family: var(--text);
    font-size: var(--t-body);
    line-height: 1.65;
    color: var(--encre);
    background: var(--lin);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}
img, svg, video { max-width: 100%; display: block; }
picture { display: contents; }
a { color: inherit; text-decoration: none; }
/* Numéros de téléphone : police simple (Hanken), chiffres à chasse fixe, espaces normales. */
a[href^="tel:"] { font-family: var(--text); font-variant-numeric: tabular-nums; letter-spacing: .01em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; }
ul, ol { list-style: none; }
strong { font-weight: 600; }
::selection { background: var(--rose); color: var(--encre); }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; }
    html { scroll-behavior: auto; }
}

.container {
    max-width: calc(var(--container) + 2 * var(--gutter));
    margin: 0 auto;
    padding: 0 var(--gutter);
}
.narrow { max-width: 860px; }

/* ============= TYPOGRAPHIE ============= */
h1, h2, h3, h4, .section-title, .hero-title {
    font-family: var(--display);
    font-variation-settings: var(--soft);
    font-weight: 300;
    color: inherit;
    text-wrap: balance;
}
h1 { font-size: var(--t-h1); line-height: 1; letter-spacing: -.03em; }
h2, .section-title { font-size: var(--t-h2); line-height: 1.05; letter-spacing: -.025em; font-weight: 350; }
h3 { font-size: var(--t-h3); line-height: 1.15; letter-spacing: -.012em; font-weight: 400; }
h4 { font-size: 1.25rem; line-height: 1.25; letter-spacing: -.01em; font-weight: 400; }
/* Un seul mot en italique par titre : le mot de rupture. */
h1 em, h2 em, h3 em, .section-title em, .hero-title em, blockquote em { font-style: italic; font-weight: inherit; color: inherit; }
p em { font-style: italic; }
.section-title { margin-bottom: 1.5rem; }
.section-title.large { font-size: var(--t-h2); }
.section-sub, .lead, .page-hero-lead, .hero-lead {
    font-size: var(--t-lead);
    line-height: 1.5;
    letter-spacing: -.005em;
    color: var(--encre-80);
    max-width: 36rem;
}
.light { color: var(--lin); }
.section-sub.light, .page-hero-lead.light { color: var(--lin-70); }

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    font-family: var(--text);
    font-size: var(--t-eyebrow);
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--encre);
    margin-bottom: 1.5rem;
}
/* L'Accent : la capsule orange, accent du É, posée à plat. */
.eyebrow::before {
    content: '';
    width: 22px;
    height: 6px;
    background: var(--orange);
    border-radius: var(--r-capsule);
    flex: none;
}
.eyebrow.light { color: var(--lin); }

.data, .mono {
    font-family: var(--mono);
    font-size: var(--t-data);
    letter-spacing: .02em;
    line-height: 1.5;
}

/* Liens dans le texte : Cuivre, soulignés. */
.prose a, .callout a, .term-body a:not(.term-link), .section-sub a, p > a {
    color: var(--cuivre);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}
.link-arrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-weight: 600;
    font-size: var(--t-btn);
    color: var(--cuivre);
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1.5px;
    transition: color .3s var(--ease);
}
.link-arrow::after { content: '\2192'; text-decoration: none; transition: transform .3s var(--ease); }
.link-arrow:hover { color: var(--encre); }
.link-arrow:hover::after { transform: translateX(4px); }
.light .link-arrow, .link-arrow.light { color: var(--lin); }

/* ============= ÉTIQUETTES · capsules ============= */
.capsule, .badge, .tag, .news-cat, .term-pill, .tool-ext {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: 7px 14px;
    font-family: var(--text);
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    line-height: 1;
    border-radius: var(--r-capsule);
    background: var(--pierre);
    color: var(--encre);
    white-space: nowrap;
}
.term-pill { padding: 5px 10px; font-size: .625rem; }
/* Une couleur par procédure (charte 07) */
.b-prev { background: var(--rose); }
.b-sau { background: var(--garonne); color: var(--lin); }
.b-red { background: var(--orange); color: var(--encre); }
.b-liq { background: var(--encre); color: var(--lin); }
.b-adm { background: var(--pierre); }

/* ============= BOUTONS =============
   Façon Apple (demande client, octobre 2026) : pilule à aplat, filet fin pour le
   secondaire, graisse régulière, aucun relief. L'en-tête garde la forme Egide (plus bas). */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 44px;
    padding: 0 22px;
    font-family: var(--text);
    font-size: 1.0625rem;
    font-weight: 400;
    letter-spacing: -.01em;
    line-height: 1;
    border-radius: var(--r-pill);
    border: 1px solid transparent;
    white-space: nowrap;
    cursor: pointer;
    -webkit-font-smoothing: antialiased;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.btn:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }

.btn-primary { background: var(--orange); color: var(--encre); }
.btn-primary:hover { background: color-mix(in srgb, var(--orange) 88%, var(--blanc)); }
.btn-secondary, .btn-white { background: var(--encre); color: var(--lin); }
.btn-secondary:hover, .btn-white:hover { background: color-mix(in srgb, var(--encre) 85%, var(--blanc)); }

/* Contour : filet et texte Cuivre sur fond clair (l'orange y est illisible), Orange sur fond sombre. */
.btn-line, .btn-ghost, .btn-ghost-light { background: transparent; color: var(--cuivre); border-color: var(--cuivre); }
.btn-line:hover, .btn-ghost:hover, .btn-ghost-light:hover { background: var(--cuivre); color: var(--blanc); }
/* Sur fond sombre : pilule Gris foncé, texte Blanc (gris de la charte). */
.btn-line.light { background: var(--gris-fonce); color: var(--blanc); border-color: var(--gris-fonce); }
.btn-line.light:hover { background: color-mix(in srgb, var(--gris-fonce) 85%, var(--blanc)); border-color: color-mix(in srgb, var(--gris-fonce) 85%, var(--blanc)); }

.btn[disabled], .btn.is-disabled { background: var(--pierre); color: var(--encre-60); border-color: transparent; pointer-events: none; }
.btn-sm { min-height: 36px; padding: 0 16px; font-size: .9375rem; }
.btn-lg { min-height: 50px; padding: 0 28px; font-size: 1.0625rem; }

/* ============= CHAMPS ============= */
.field { display: flex; flex-direction: column; gap: .5rem; }
.field label, .nl-form label {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--encre);
}
.req { color: var(--cuivre); }
.field input, .field select, .field textarea, .searchbar input, .searchbar select, .nl-form input, .glossary-search {
    width: 100%;
    padding: 14px 16px;
    font-family: var(--text);
    font-size: 1rem;
    line-height: 1.4;
    color: var(--encre);
    background: var(--blanc);
    border: 1px solid var(--encre-32);
    border-radius: var(--r-btn);
    transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
    appearance: none;
    -webkit-appearance: none;
}
.field select, .searchbar select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%2324211F' stroke-width='1.6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 40px;
}
.field textarea { min-height: 160px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus, .searchbar input:focus, .searchbar select:focus, .nl-form input:focus, .glossary-search:focus {
    outline: none;
    border-color: var(--orange);
    box-shadow: 0 0 0 4px var(--orange-halo);
}
.field .hint { font-size: var(--t-caption); color: var(--encre-60); }
.field.is-error input, .field.is-error textarea { border-color: var(--erreur); }
.field.is-error .hint { color: var(--erreur); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 1.25rem; }
.form-grid .full, .form-grid .consent, .form-grid .form-foot { grid-column: 1 / -1; }
.consent { display: flex; gap: .75rem; align-items: flex-start; font-size: .9rem; color: var(--encre-80); line-height: 1.5; }
.consent input { margin-top: .3rem; width: 18px; height: 18px; accent-color: var(--orange); flex: none; }
.consent a { color: var(--cuivre); text-decoration: underline; text-underline-offset: 3px; }
.form-foot { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }
.form-note { font-size: var(--t-caption); color: var(--encre-60); }
.form-status { grid-column: 1 / -1; padding: 1rem 1.25rem; border-radius: var(--r-btn); background: var(--blanc); font-size: .95rem; }
.form-status.ok { color: var(--succes); }
.form-status.err { color: var(--erreur); }

/* ============= CARTES & SIGNES ============= */
.card, .role, .doc-box, .aside-block, .domaine-card, .article-card, .news-featured, .tool, .m-aside, .hero-card {
    background: var(--blanc);
    border-radius: var(--r-card);
}
.card-hover { transition: box-shadow .32s var(--ease), transform .32s var(--ease); }
.card-hover:hover { box-shadow: 8px 8px 0 0 var(--orange); transform: translate(-3px, -3px); }

/* Le cœur : le bloc orange tenu dans un angle. */
.coeur {
    display: block;
    width: 44px;
    height: 28px;
    background: var(--orange);
    border-radius: 4px 12px 4px 12px;
}
/* La découpe : la photographie cadrée dans la forme Egide. */
.photo {
    position: relative;
    border-radius: var(--r-photo);
    overflow: hidden;
    background: var(--pierre);
}
.photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88); }
.photo-sm { border-radius: var(--r-card); }
/* La seconde peau : l'ombre décalée devenue forme. Une par page. */
.peau { box-shadow: var(--peau); }
/* Le filet : 1 px pour séparer, 2 px pour ouvrir un chapitre. */
.filet { border-top: 1px solid var(--encre-12); }
.filet-fort { border-top: 2px solid var(--encre); }

/* ============= EN-TÊTE · navigation flottante ============= */
.site-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 50;
    padding-top: 20px;
    pointer-events: none;
}
.header-inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; max-width: none; padding-left: var(--edge); padding-right: var(--edge); }
.nav-pill {
    pointer-events: auto;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 10px 16px 10px 18px;
    background: rgba(36, 33, 31, .88);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border-radius: var(--r-btn);
    color: var(--lin);
}
.nav-pill .logo { --logo-w: 104px; color: var(--lin); width: var(--logo-w); overflow: hidden; box-sizing: content-box; padding-right: 1.25rem; border-right: 1px solid var(--lin-20); transition: width .5s var(--ease); }
.nav-pill .logo-svg { width: var(--logo-w); max-width: none; flex: none; clip-path: inset(0 0 0 0); transition: clip-path .5s var(--ease); }
/* Au défilement, le logo se replie sur son E (24,4 / 183 de la largeur du logo). */
.site-header.is-scrolled .nav-pill .logo { width: calc(var(--logo-w) * 24.4 / 183); }
.site-header.is-scrolled .nav-pill .logo-svg { clip-path: inset(0 calc(100% * (1 - 24.4 / 183)) 0 0); }
@media (prefers-reduced-motion: reduce) { .nav-pill .logo, .nav-pill .logo-svg { transition: none; } }
.nav-pill .logo-sub { display: none; }   /* sous 120 px, le logo seul prend le relais (charte 02) */
.header-right { pointer-events: auto; display: flex; align-items: center; gap: .5rem; }
.header-cta { min-height: 44px; padding: 0 20px; font-size: 1rem; }
main { padding-top: 6rem; }
.home main { padding-top: 0; }
.logo { display: flex; flex-direction: column; gap: 7px; color: var(--encre); width: 150px; flex: none; }
.logo-svg { width: 150px; height: auto; }
.logo-sub {
    font-family: var(--text);
    font-size: 8.4px;
    font-weight: 600;
    letter-spacing: .225em;
    text-transform: uppercase;
    text-align: justify;
    text-align-last: justify;
    line-height: 1;
    white-space: nowrap;
    color: var(--encre);
}
.main-nav { display: flex; align-items: center; gap: 1.5rem; }
.main-nav > a, .has-menu > a {
    position: relative;
    display: inline-block;
    font-size: .875rem;
    font-weight: 500;
    color: var(--lin);
    opacity: .82;
    padding: .5rem 0;
    transition: opacity .3s var(--ease);
}
.main-nav > a:hover, .main-nav > a.active, .has-menu > a:hover, .has-menu > a.active, .has-menu:hover > a { opacity: 1; }
.main-nav > a::after, .has-menu > a::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 2px;
    background: var(--orange);
    border-radius: var(--r-capsule);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s var(--ease);
}
.main-nav > a:hover::after, .main-nav > a.active::after, .has-menu > a:hover::after, .has-menu > a.active::after, .has-menu:hover > a::after { transform: scaleX(1); }

/* Sous-menu « Nos missions » : panneau sombre sous la capsule, au survol ou au clavier. */
.nav-pill { position: relative; }
.has-menu { display: inline-flex; }
.mega {
    position: absolute;
    left: 0;
    top: calc(100% + 10px);
    width: min(840px, calc(100vw - 2 * var(--edge)));
    display: grid;
    grid-template-columns: 1fr 1fr 200px;
    gap: 1.5rem;
    padding: 1.5rem;
    background: rgba(36, 33, 31, .94);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border-radius: var(--r-card);
    color: var(--lin);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity .25s var(--ease), transform .25s var(--ease), visibility 0s linear .25s;
    z-index: 5;
}
.mega::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }  /* pont de survol */
.has-menu:hover .mega, .has-menu:focus-within .mega { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.mega-grid { grid-column: span 2; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.mega-grid a {
    display: block;
    padding: .8rem .95rem;
    border: 1px solid var(--lin-10);
    border-radius: var(--r-btn);
    transition: background-color .25s var(--ease), border-color .25s var(--ease);
}
.mega-grid a:hover { background: var(--lin-10); border-color: var(--lin-20); }
.mega-grid b { display: block; font-weight: 500; font-size: .9375rem; color: var(--lin); margin-bottom: .2rem; }
.mega-grid span { display: block; font-size: .78rem; line-height: 1.4; color: var(--lin-70); }
.mega-side { display: flex; flex-direction: column; gap: .9rem; padding-left: 1.5rem; border-left: 1px solid var(--lin-10); }
.mega-side .data { color: var(--lin-70); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; }
.mega-side .capsules { display: flex; flex-wrap: wrap; gap: .4rem; }
.mega-side .capsule { background: var(--lin); color: var(--encre); transition: background-color .25s var(--ease); }
.mega-side .capsule:hover { background: var(--orange); }
.mega-side .link-arrow { margin-top: auto; color: var(--lin); }
/* Variante compacte (Ressources) : une colonne, ancrée sous son entrée. */
.has-menu-sm { position: relative; }
.mega-sm { left: -1.25rem; width: 360px; grid-template-columns: 1fr; padding: 1rem; }
.mega-sm .mega-grid { grid-column: auto; grid-template-columns: 1fr; }
.search-toggle {
    width: 44px; height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(36, 33, 31, .88);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border-radius: var(--r-btn);
    color: var(--lin);
    transition: background-color .3s var(--ease);
    flex: none;
}
.search-toggle:hover { background: var(--encre); }
.menu-toggle {
    display: none;
    width: 40px; height: 40px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border-radius: var(--r-btn);
    flex: none;
}
.menu-toggle span { width: 20px; height: 2px; background: var(--lin); transition: transform .3s var(--ease); }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
.mobile-nav {
    display: none;
    pointer-events: auto;
    flex-direction: column;
    margin: .5rem var(--edge) 0;
    padding: .5rem 1.25rem 1.25rem;
    background: var(--encre);
    color: var(--lin);
    border-radius: var(--r-card);
    max-height: calc(100svh - 110px);
    overflow-y: auto;
}
.mobile-nav.open { display: flex; }
.mobile-nav a { padding: .9rem 0; font-size: 1.125rem; font-weight: 500; border-bottom: 1px solid var(--lin-10); }
.mobile-nav a.active { color: var(--orange); }
.mobile-nav .btn { margin-top: 1.25rem; border-bottom: 0; font-size: var(--t-btn); }
.mobile-sub { display: flex; flex-direction: column; padding: .25rem 0 .5rem 1rem; border-bottom: 1px solid var(--lin-10); }
.mobile-sub a { font-size: .9375rem; font-weight: 400; color: var(--lin-70); padding: .65rem 0; border-bottom: 0; }
.mobile-tel { display: block; margin-top: .9rem; font-family: var(--mono); font-size: .75rem; color: var(--lin-70); }
/* Bouton d'appel compact dans la capsule, visible seulement quand le bouton complet est masqué. */
.pill-tel { display: none; width: 40px; height: 40px; align-items: center; justify-content: center; background: var(--orange); color: var(--encre); border-radius: var(--r-btn); flex: none; }

/* ============= HERO (accueil) · plein écran, voile Encre ============= */
.hero { position: relative; background: var(--encre); color: var(--lin); overflow: hidden; }
.hero-bg { position: absolute; inset: 0; }
.hero-bg img, .hero-video {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
}
.hero-bg img {
    filter: blur(3px) saturate(.82) brightness(.92);
    transform: scale(1.08);
    animation: hero-drift 26s ease-in-out infinite alternate;
}
/* La vidéo recouvre l'image de secours ; adoucie pour laisser le texte et le logo lisibles. */
.hero-video { filter: blur(2px) saturate(.6) brightness(.78); transform: scale(1.04); }
@keyframes hero-drift {
    from { transform: scale(1.08) translate(0, 0); }
    to { transform: scale(1.14) translate(-1.5%, 1%); }
}
@media (prefers-reduced-motion: reduce) {
    .hero-video { display: none; }
}
/* Voile Encre : 60 % au moins sous le texte (charte 03, photo). */
.hero-veil {
    position: absolute; inset: 0;
    background:
        linear-gradient(180deg, rgba(36, 33, 31, .42) 0%, rgba(36, 33, 31, .28) 38%, rgba(36, 33, 31, .82) 100%),
        linear-gradient(90deg, rgba(36, 33, 31, .5) 0%, rgba(36, 33, 31, 0) 60%);
}
.hero-inner {
    position: relative;
    min-height: 100svh;
    max-width: none;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 7.5rem var(--edge) clamp(3rem, 7vh, 5.5rem);
}
.hero-brand { position: absolute; right: var(--edge); top: 24vh; text-align: right; color: var(--lin); }
/* Largeur calée sur le groupe de boutons de l'en-tête (mesurée par initHeroLogoWidth). */
.hero-logo { display: block; width: var(--entete-droite-w, clamp(240px, 30vw, 440px)); height: auto; margin-left: auto; }
.hero-logo-sub {
    display: block;
    margin-top: .9rem;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .34em;
    margin-right: -.34em;
    text-transform: uppercase;
    color: var(--lin-70);
    white-space: nowrap;
}
.hero-text { max-width: 60rem; }
.hero-title { font-size: clamp(2.5rem, 1.5rem + 3.2vw, 4.5rem); line-height: 1.02; letter-spacing: -.03em; font-weight: 300; margin-bottom: 1.5rem; }

/* Apparition à l'arrivée : le titre se révèle ligne par ligne, puis le texte, les actions et le numéro. */
.hero-title .line { display: block; overflow: hidden; padding: .06em 0 .14em; margin-bottom: -.14em; }
.hero-title .line > span { display: block; transform: translateY(112%); animation: hero-reveal 1.1s var(--ease) forwards; }
.hero-title .line:nth-child(2) > span { animation-delay: .14s; }
.hero-lead, .hero-actions, .hero-tel { opacity: 0; animation: hero-rise .9s var(--ease) forwards; }
.hero-lead { animation-delay: .5s; }
.hero-actions { animation-delay: .65s; }
.hero-tel { animation-delay: .8s; }
.hero-brand { opacity: 0; animation: hero-fade 1.4s ease .4s forwards; }
@keyframes hero-reveal { to { transform: translateY(0); } }
@keyframes hero-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes hero-fade { to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
    .hero-title .line > span { transform: none; }
    .hero-lead, .hero-actions, .hero-tel, .hero-brand { opacity: 1; }
}
.hero-lead { color: var(--lin-70); margin-bottom: 2rem; max-width: 36rem; font-size: clamp(1.25rem, 1.1rem + .5vw, 1.625rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.hero-tel { display: block; margin-top: 1.25rem; font-family: var(--mono); font-size: var(--t-data); color: var(--lin-70); letter-spacing: .02em; }
.hero-tel a { color: var(--lin); }
.hours-note { font-family: var(--text); letter-spacing: 0; }
.hours-note::before { content: '\00B7\00A0\00A0'; }

/* Bande des procédures */
.strip { border-top: 1px solid var(--encre-12); border-bottom: 1px solid var(--encre-12); }
.strip-inner { display: flex; align-items: center; gap: 1.25rem; padding-top: 1rem; padding-bottom: 1rem; flex-wrap: wrap; }
.strip-label { font-family: var(--mono); font-size: var(--t-data); color: var(--encre-60); margin-right: .5rem; }
.proc {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: 7px 14px;
    font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1;
    background: var(--blanc);
    border: 1px solid var(--encre-12);
    border-radius: var(--r-capsule);
    transition: border-color .3s var(--ease);
}
.proc:hover { border-color: var(--encre); }
.proc i { width: 12px; height: 8px; border-radius: 2px 5px 2px 5px; background: var(--pierre); }
.proc .i-prev { background: var(--rose); }
.proc .i-sau { background: var(--garonne); }
.proc .i-red { background: var(--orange); }
.proc .i-liq { background: var(--encre); }

/* ============= SECTIONS ============= */
.section, .page-section, .profile { padding: var(--section) 0; }
.alt, .profile.alt { background: var(--blanc); }
.section-head { margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); max-width: 760px; }
.section-head.row { max-width: none; display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; }
.section-head.row .section-title { margin-bottom: 0; }
.section-head .section-sub { margin-top: .25rem; }
.section-title + .section-sub { margin-top: 0; }

/* Votre rôle · six cartes */
.roles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.role {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 2rem;
    min-height: 220px;
    transition: box-shadow .32s var(--ease), transform .32s var(--ease);
}
.role:hover { box-shadow: 8px 8px 0 0 var(--orange); transform: translate(-3px, -3px); }
.role svg { width: 28px; height: 28px; stroke: var(--encre); fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 1rem; }
.role h3 { font-size: var(--t-h3); }
.role p { font-size: .9375rem; color: var(--encre-80); line-height: 1.5; max-width: 22rem; }
/* Flèche diagonale seule, sans pastille. Au survol : Cuivre et léger glissement vers le haut à droite. */
.role::after {
    content: '';
    position: absolute;
    top: 1.75rem; right: 1.75rem;
    width: 22px; height: 22px;
    background-color: var(--encre);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
    transition: transform .3s var(--ease), background-color .3s var(--ease);
}
.role:hover::after, .role:focus-visible::after { background-color: var(--cuivre); transform: translate(3px, -3px); }

/* Chiffres clés · cartes blanches sur Lin, composition décalée */
.figures { color: var(--encre); padding: var(--section) 0; }
.figures .section-head { margin-bottom: 2.5rem; }
.kpi-grid { display: grid; grid-template-columns: repeat(10, 1fr); gap: 1rem; }
.kpi {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 1.25rem;
    min-height: 260px;
    padding: 2.5rem 2rem;
    background: var(--blanc);
    border: 1px solid var(--encre-08);
    border-radius: var(--r-card);
}
.kpi:nth-child(1) { grid-column: 1 / 6; }
.kpi:nth-child(2) { grid-column: 6 / 11; }
.kpi:nth-child(3) { grid-column: 3 / 7; min-height: 210px; }
.kpi:nth-child(4) { grid-column: 7 / 11; min-height: 210px; }
.kpi b {
    display: block;
    font-family: var(--display);
    font-variation-settings: var(--soft);
    font-weight: 300;
    font-size: var(--t-figure);
    line-height: .9;
    letter-spacing: -.04em;
    font-variant-numeric: tabular-nums;
}
.kpi-label {
    position: relative;
    padding-top: 1.1rem;
    font-family: var(--mono);
    font-size: .75rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--encre-60);
    max-width: 22rem;
    line-height: 1.5;
}
.kpi-label::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: min(100%, 220px); height: 1px; background: var(--encre-12); }
.kpi-photo { color: var(--lin); border-color: transparent; }
.kpi-photo img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; filter: saturate(.7); }
.kpi-photo::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(135deg, rgba(36, 33, 31, .4) 0%, rgba(36, 33, 31, .86) 72%); }
.kpi-photo .kpi-label { color: var(--lin-70); }
.kpi-photo .kpi-label::before { background: var(--lin-20); }
/* La carte orange : le seul élément orange fort de la composition. Texte Encre, jamais blanc. */
.kpi-orange { background: var(--orange); border-color: var(--orange); color: var(--encre); }
.kpi-orange .kpi-label { color: var(--encre-80); }
.kpi-orange .kpi-label::before { background: var(--encre-32); }
/* La carte grise : Gris foncé de la charte, texte Blanc. */
.kpi-gris { background: var(--gris-fonce); border-color: var(--gris-fonce); color: var(--blanc); }
.kpi-gris .kpi-label { color: var(--blanc-85); }
.kpi-gris .kpi-label::before { background: var(--blanc-22); }
.figures-source { margin-top: 2rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--encre-60); }

/* Missions · quatre cartes image, texte sur voile Encre */
.mission-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.mission-card {
    position: relative;
    display: block;
    aspect-ratio: 3 / 4;
    border-radius: var(--r-card);
    overflow: hidden;
    background: var(--encre);
    color: var(--lin);
    isolation: isolate;
}
.mission-card img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    filter: saturate(.6) sepia(.14) contrast(1.05);
    transition: transform .9s var(--ease), filter .9s var(--ease);
}
.mission-card::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(36, 33, 31, .04) 38%, rgba(36, 33, 31, .82) 100%);
}
.mission-card-body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 1.5rem 4.75rem 1.5rem 1.5rem; }
.mission-card h3 { font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem); color: var(--lin); margin-bottom: .5rem; text-wrap: pretty; }
.mission-card p { font-size: .9rem; line-height: 1.45; color: var(--lin-70); max-width: 26rem; }
.mission-card-arrow {
    position: absolute; right: 1.25rem; bottom: 1.5rem; z-index: 1;
    width: 42px; height: 42px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(243, 238, 230, .14);
    border: 1px solid var(--lin-20);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border-radius: 50%;
    color: var(--lin);
    font-size: 1.1rem;
    transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.mission-card:hover img { transform: scale(1.05); filter: saturate(.85) sepia(.06) contrast(1.05); }
/* Indication de défilement des missions, affichée sur mobile seulement (carrousel). */
.scroll-hint { display: none; margin-top: .75rem; font-family: var(--mono); font-size: .75rem; color: var(--encre-60); }
.mission-card:hover .mission-card-arrow { background: var(--orange); border-color: var(--orange); color: var(--encre); }

/* Citation · sur Rose, avec l'Accolade */
.quote-band { padding: 0 0 var(--section); }
.quote-box {
    position: relative;
    background: var(--rose);
    color: var(--encre);
    border-radius: var(--r-photo);
    padding: clamp(2.5rem, 2rem + 4vw, 5rem) clamp(1.5rem, 1rem + 5vw, 6rem);
}
.accolade::before, .accolade::after {
    content: '';
    position: absolute;
    width: 72px; height: 72px;
    border: 1.5px solid var(--cuivre);
    pointer-events: none;
}
.accolade::before { top: 20px; right: 20px; border-left: 0; border-bottom: 0; border-top-right-radius: 28px; }
.accolade::after { bottom: 20px; left: 20px; border-right: 0; border-top: 0; border-bottom-left-radius: 28px; }
.quote-box blockquote, .vision-quote {
    font-family: var(--display);
    font-variation-settings: var(--soft);
    font-style: italic;
    font-weight: 300;
    font-size: var(--t-quote);
    line-height: 1.22;
    letter-spacing: -.015em;
    max-width: 30ch;
}
.quote-box cite, .vision-sign { display: block; margin-top: 2rem; font-style: normal; font-family: var(--mono); font-size: var(--t-data); letter-spacing: .06em; text-transform: uppercase; color: var(--encre-80); }

/* Bureaux */
.offices { padding: var(--section) 0; }
.offices-header { margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); max-width: 760px; }
.offices .light, .offices .section-title.light { color: var(--encre); }
.offices .section-sub.light { color: var(--encre-80); }
.offices-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 3rem; }
.office { display: block; padding: 1.5rem 0 1.75rem; border-top: 1px solid var(--encre-12); transition: color .3s var(--ease); }
.office:hover .office-city { color: var(--cuivre); }
.office-bar { display: none; }
.office-city { display: block; font-family: var(--display); font-variation-settings: var(--soft); font-weight: 400; font-size: var(--t-h3); letter-spacing: -.012em; line-height: 1.15; margin-bottom: .5rem; transition: color .3s var(--ease); }
.office-addr { font-size: .9375rem; color: var(--encre-80); line-height: 1.5; }
.office-tel { font-family: var(--mono); font-size: var(--t-data); color: var(--cuivre); margin-top: .5rem; }
.office-meta { display: block; margin-top: .75rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: var(--encre-60); }

/* Appel final · sobre : fond de page, filet au-dessus, bouton Orange ; le pied Gris foncé enchaîne net. */
.cta-band { background: var(--lin); color: var(--encre); padding: var(--section) 0; border-top: 1px solid var(--encre-12); }
.cta-inner { display: grid; grid-template-columns: 7fr 5fr; gap: 3rem; align-items: center; }
.cta-inner h2 { font-size: var(--t-h2); margin-bottom: 1rem; }
.cta-inner p { font-size: var(--t-lead); line-height: 1.5; max-width: 32rem; color: var(--encre-80); }
.cta-actions { display: flex; flex-direction: column; align-items: center; gap: 1rem; width: fit-content; }   /* bouton, numéro et lien centrés les uns sous les autres */
.cta-actions .cta-tel { font-family: var(--mono); font-size: 1.25rem; letter-spacing: .02em; }
.cta-actions .cta-tel a { color: var(--cuivre); }

/* ============= PIED DE PAGE · Encre + Trame ============= */
.site-footer {
    position: relative;
    background-color: var(--gris-fonce);
    color: var(--blanc);
    padding: clamp(3.5rem, 3rem + 3vw, 6rem) 0 2rem;
    overflow: hidden;
}
/* La Trame : grille de formes Egide, en filet, ton sur ton. Elle apparaît en fondu depuis le haut. */
.site-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Cpath d='M8 4h20a12 12 0 0 1 12 12v22a2 2 0 0 1-2 2H18A12 12 0 0 1 6 28V6a2 2 0 0 1 2-2z' fill='none' stroke='%23FFFFFF' stroke-opacity='.06' stroke-width='1.2'/%3E%3C/svg%3E");
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 160px);
    mask-image: linear-gradient(180deg, transparent 0%, #000 160px);
    pointer-events: none;
}
.site-footer > .container { position: relative; }
.footer-copy { display: flex; align-items: center; gap: 1rem; }
/* Un seul cœur, en bas de page (comme sur la correspondance). */
.footer-copy .coeur { width: 28px; height: 18px; border-radius: 3px 8px 3px 8px; flex: none; }
.footer-top { display: grid; grid-template-columns: 1.3fr 2.6fr; gap: 3rem; position: relative; }
.footer-brand .logo { color: var(--blanc); }
.footer-brand .logo-sub { color: var(--blanc-85); }
.footer-brand p { margin-top: 1.5rem; font-size: .9375rem; line-height: 1.6; color: var(--blanc-85); max-width: 26rem; }
.footer-social { display: flex; gap: 1rem; margin-top: 1.5rem; }
.footer-social a { font-family: var(--mono); font-size: var(--t-data); color: var(--blanc-85); text-decoration: underline; text-underline-offset: 4px; }
.footer-social a:hover { color: var(--blanc); }
.footer-links-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
.footer-col h4 { font-family: var(--mono); font-size: .6875rem; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; color: var(--blanc-85); margin-bottom: 1.1rem; }
.footer-col a { display: block; font-size: .9375rem; padding: .3rem 0; color: var(--blanc); opacity: .9; transition: opacity .3s var(--ease); }
.footer-col a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom {
    display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.5rem 2.5rem;
    margin-top: 4rem; padding-top: 1.5rem;
    border-top: 1px solid var(--blanc-22);
    font-family: var(--mono); font-size: .6875rem; letter-spacing: .04em; color: var(--blanc-85);
}
.footer-legal { display: flex; gap: 1.5rem; justify-self: end; }
/* Liens du bas (mentions, confidentialité, signature) : soulignement qui se dessine au survol. */
.footer-legal a, .footer-signature {
    color: var(--blanc-85);
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    transition: color .25s var(--ease), text-decoration-color .25s var(--ease);
}
.footer-legal a:hover, .footer-signature:hover,
.footer-legal a:focus-visible, .footer-signature:focus-visible { color: var(--blanc); text-decoration-color: var(--orange); }
.footer-signature { justify-self: center; }

/* ============= PAGES INTERNES ============= */
.page-hero { padding: clamp(2.5rem, 2rem + 3vw, 5rem) 0 clamp(2.5rem, 2rem + 3vw, 4.5rem); }
.page-hero h1 { margin: 0 0 1.5rem; max-width: 880px; animation: hero-rise .9s var(--ease) both; }
.page-hero-lead { animation: hero-rise .9s var(--ease) .2s both; }
/* Le fil d'Ariane et le titre suffisent : pas de sur-titre redondant dans l'en-tête de page. */
.page-hero .eyebrow, .page-hero-block { display: none; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; font-family: var(--mono); font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--encre-60); margin-bottom: 2.25rem; }
.breadcrumb a:hover { color: var(--encre); }
.bc-sep { color: var(--encre-40); }
.bc-current { color: var(--encre); }

/* En-tête de page plein écran sur vidéo claire (page Prévention) : texte Encre en bas à gauche,
   aligné sur la navigation flottante, aucun voile. */
.page-hero.is-full {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin-top: -6rem;           /* la vidéo passe sous la navigation flottante */
    padding: 0;
    min-height: 100svh;
    display: flex;
    align-items: flex-end;
    background: var(--lin);
}
/* Fondu vers le Lin en bas de la vidéo : la section suivante enchaîne sans cassure. */
.page-hero.is-full::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 48%;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(243, 238, 230, 0) 0%, rgba(243, 238, 230, .55) 50%, var(--lin) 100%);
}
.page-hero.is-full .page-hero-inner { max-width: none; width: 100%; padding: 8rem var(--edge) clamp(2.5rem, 6vh, 4.5rem); }
.page-hero.is-full .breadcrumb { margin-bottom: 1.5rem; }
.page-hero.is-full h1 { font-size: clamp(2.5rem, 1.8rem + 2.8vw, 4.25rem); max-width: 20ch; margin-bottom: 1rem; }
.page-hero.is-full .page-hero-lead { max-width: 30rem; margin-bottom: 1.75rem; }
.page-hero.is-full .hero-actions { animation: hero-rise .9s var(--ease) .35s both; }
.page-hero-media { position: absolute; inset: 0; z-index: -2; }
.page-hero-media img, .page-hero-media video {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    filter: sepia(.2);           /* le gris froid de la soie légèrement réchauffé vers le Lin */
}
.page-hero-media video { transform: scale(1.02); }
@media (prefers-reduced-motion: reduce) {
    .page-hero-media video { display: none; }
}

/* En-tête bannière (Le cabinet) : photo sous voile Encre, titre centré en clair,
   carte « en bref » qui chevauche le bas de la bannière. */
.page-hero.is-banner {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin-top: -6rem;
    min-height: 72svh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--lin);
    background: var(--encre);
    padding: 9rem var(--edge) 9rem;
}
.page-hero.is-banner .page-hero-media img { filter: saturate(.7) contrast(1.02); }
.page-hero.is-banner .page-hero-veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(36, 33, 31, .55) 0%, rgba(36, 33, 31, .62) 60%, rgba(36, 33, 31, .78) 100%); }
.banner-inner { position: relative; max-width: 58rem; margin: 0 auto; }
.page-hero.is-banner .eyebrow { display: inline-flex; color: var(--lin); margin-bottom: 1.75rem; animation: hero-rise .9s var(--ease) both; }
.page-hero.is-banner h1 { max-width: none; margin: 0 auto 1.25rem; color: var(--lin); font-size: var(--t-h1); }
.page-hero.is-banner .page-hero-lead { margin: 0 auto; color: var(--lin-70); max-width: 36rem; }
.brief { position: relative; z-index: 2; margin-top: -4.5rem; }
/* Quatre repères, chacun mène à sa section. */
.brief-strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    max-width: 980px;
    margin: 0 auto;
    background: var(--blanc);
    border-radius: var(--r-card);
    box-shadow: var(--peau);
    animation: hero-rise .9s var(--ease) .3s both;
}
.brief-strip a { display: flex; flex-direction: column; gap: .4rem; padding: 1.75rem 1.75rem 1.6rem; border-left: 1px solid var(--encre-08); transition: color .25s var(--ease); }
.brief-strip a:first-child { border-left: 0; }
.brief-strip b { font-family: var(--display); font-variation-settings: var(--soft); font-weight: 300; font-size: 2.75rem; line-height: .9; letter-spacing: -.04em; }
.brief-strip span { font-size: .875rem; line-height: 1.4; color: var(--encre-80); }
.brief-strip a:hover { color: var(--cuivre); }
.brief + .page-section { padding-top: clamp(3rem, 2rem + 3vw, 5rem); }

/* En-tête « sélecteur de profil » (Votre espace) : la question, puis six cartes vers les sections. */
.page-hero.is-chooser { padding-bottom: clamp(3rem, 2rem + 3vw, 5rem); }
.page-hero.is-chooser .page-hero-lead { margin-bottom: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.page-hero.is-chooser .chooser .eyebrow { display: inline-flex; margin-bottom: 1.25rem; }
.page-hero.is-chooser .roles { animation: hero-rise .9s var(--ease) .35s both; }
.page-hero.is-chooser .role { min-height: 0; }
.page-hero.is-chooser + .profile { padding-top: clamp(3rem, 2rem + 3vw, 5rem); }
section[id], .term[id] { scroll-margin-top: 6.5rem; }

/* En-tête de page avec carte de parcours (pages missions) */
.page-hero.has-aside .page-hero-inner { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(2rem, 2rem + 3vw, 5rem); align-items: end; }
.hero-aside { background: var(--blanc); border-radius: var(--r-card); padding: 1.75rem 1.75rem 1.5rem; box-shadow: var(--peau); animation: hero-rise .9s var(--ease) .3s both; }
.hero-aside > .data { display: block; color: var(--encre-60); margin-bottom: .75rem; }
.hero-aside-list li a {
    display: grid;
    grid-template-columns: 2rem 1fr auto;
    align-items: center;
    gap: .75rem;
    padding: .85rem 0;
    border-top: 1px solid var(--encre-08);
    transition: color .25s var(--ease);
}
.hero-aside-list li:last-child a { border-bottom: 1px solid var(--encre-08); }
.hero-aside-list .num { font-family: var(--mono); font-size: var(--t-data); color: var(--cuivre); }
.hero-aside-list .txt { font-size: .9688rem; font-weight: 500; line-height: 1.3; }
.hero-aside-list .txt small { display: block; margin-top: .2rem; font-family: var(--mono); font-size: .6875rem; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--encre-60); }
.hero-aside-list .arr { font-size: 1.05rem; transition: transform .25s var(--ease); }
.hero-aside-list li a:hover { color: var(--cuivre); }
.hero-aside-list li a:hover .arr { transform: translateX(4px); }
.hero-aside-foot { margin-top: 1rem; font-size: .875rem; color: var(--encre-80); line-height: 1.5; }
.hero-aside-foot a { color: var(--cuivre); font-family: var(--mono); }
.hero-aside-foot a.link-arrow { font-family: var(--text); font-size: .875rem; }
.page-hero.has-aside .hero-actions { margin-top: 1.75rem; animation: hero-rise .9s var(--ease) .3s both; }
.hero-aside .capsules { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .6rem; }
.hero-aside .capsule { background: var(--lin); border: 1px solid var(--encre-12); transition: border-color .25s var(--ease), background-color .25s var(--ease); }
.hero-aside .capsule:hover { background: var(--orange); border-color: var(--orange); }

.subnav { border-top: 2px solid var(--encre); border-bottom: 1px solid var(--encre-12); background: var(--lin); }
.subnav-inner { display: flex; gap: .5rem; padding-top: .9rem; padding-bottom: .9rem; overflow-x: auto; scrollbar-width: none; }
.subnav-inner::-webkit-scrollbar { display: none; }
.subnav-inner a {
    flex: none;
    padding: 7px 14px;
    font-family: var(--text); font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1;
    border: 1px solid var(--encre-12);
    border-radius: var(--r-capsule);
    background: var(--blanc);
    transition: border-color .3s var(--ease), background-color .3s var(--ease);
}
.subnav-inner a:hover { border-color: var(--encre); }

/* Grilles de contenu */
.profile-grid, .contact-layout { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(2rem, 2rem + 3vw, 5rem); align-items: start; }
.profile-head { max-width: 760px; margin-bottom: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.profile-grid > div > .doc-box + .callout, .profile-grid > div > .aside-block + .doc-box, aside .aside-block + .aside-block { margin-top: 1.5rem; }
.profile-actions { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin-top: 2rem; }

/* Présentation rédigée d'un associé (paragraphes). */
.prose-bio p { font-size: 1.0625rem; line-height: 1.65; color: var(--encre-80); max-width: 64ch; }
.prose-bio p + p { margin-top: 1rem; }
.demarche { display: flex; gap: 1.5rem; padding: 1.5rem 0; border-top: 1px solid var(--encre-12); }
.demarche:last-of-type { border-bottom: 1px solid var(--encre-12); }
.demarche-num {
    flex: none; width: 2.75rem;
    font-family: var(--display); font-variation-settings: var(--soft); font-weight: 300; font-size: 2rem; line-height: 1; letter-spacing: -.03em;
    color: var(--encre);
}
.demarche-date { flex: none; width: 6.5rem; padding-top: .35rem; font-family: var(--mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: var(--cuivre); }
.demarche h4 { font-size: 1.3rem; margin-bottom: .5rem; }
.demarche p { font-size: .9688rem; color: var(--encre-80); line-height: 1.6; }

.doc-box, .aside-block, .m-aside { padding: 1.75rem; }
.doc-box h4, .aside-block h3 { font-size: 1.3rem; margin-bottom: 1rem; }
.doc-box ul li, .m-aside li, .associe-facts li, .domaine-card ul li {
    position: relative;
    padding: .55rem 0 .55rem 1.1rem;
    font-size: .9375rem;
    line-height: 1.5;
    border-top: 1px solid var(--encre-08);
}
.doc-box ul li::before, .m-aside li::before, .associe-facts li::before, .domaine-card ul li::before {
    content: ''; position: absolute; left: 0; top: 1.05rem;
    width: 6px; height: 4px; background: var(--encre-40); border-radius: 1px 3px 1px 3px;
}
.aside-block p { font-size: .9375rem; line-height: 1.55; color: var(--encre-80); }
.aside-block p + p { margin-top: .5rem; }
.aside-block .tel { display: block; margin: 1rem 0 .75rem; font-family: var(--mono); font-size: 1.375rem; letter-spacing: .02em; color: var(--cuivre); }
.hours li { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-top: 1px solid var(--encre-08); font-size: .9rem; }
.hours li strong { font-weight: 500; }
.hours li span { color: var(--encre-60); text-align: right; }

.callout { background: var(--gris-50); color: var(--encre); border-radius: var(--r-card); padding: 1.5rem 1.75rem; font-size: .9688rem; line-height: 1.6; }
.callout strong { font-weight: 600; }
.callout a { color: var(--encre); text-decoration-thickness: 1px; }
.callout a:hover { color: var(--encre-80); }

/* Fiches mission (pages domaines) */
.mission-row { display: grid; grid-template-columns: 3.5rem 1fr 300px; gap: 2.5rem; padding: 2.5rem 0; border-top: 1px solid var(--encre-12); }
.mission-row:last-of-type { border-bottom: 1px solid var(--encre-12); }
.m-num { font-family: var(--display); font-variation-settings: var(--soft); font-weight: 300; font-size: 2.25rem; line-height: 1; letter-spacing: -.03em; }
.m-main h3 { margin-bottom: 1rem; }
.m-main p { color: var(--encre-80); max-width: 60ch; }
.m-aside h4 { font-family: var(--mono); font-size: .6875rem; font-weight: 400; letter-spacing: .12em; text-transform: uppercase; color: var(--cuivre); margin-bottom: .75rem; }
.m-aside li { font-size: .9rem; }

/* Étapes · accordéon horizontal : une étape ouverte à la fois, les autres réduites à leur chiffre. */
.steps-acc { display: flex; border-top: 2px solid var(--encre); border-bottom: 1px solid var(--encre-12); }
.step-acc {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 2.5rem 1.5rem 2.5rem 0;
    border-left: 1px solid var(--encre-12);
    padding-left: 1.5rem;
    cursor: pointer;
    transition: flex-grow .7s var(--ease);
}
.step-acc:first-child { border-left: 0; padding-left: 0; }
.step-acc.is-open { flex-grow: 2.6; cursor: default; }
.step-acc-num {
    flex: none;
    padding: 0;
    font-family: var(--display);
    font-variation-settings: var(--soft);
    font-weight: 300;
    font-size: clamp(4rem, 2.5rem + 6vw, 8.5rem);
    line-height: .85;
    letter-spacing: -.05em;
    color: var(--pierre);
    transition: color .4s var(--ease);
}
.step-acc:hover .step-acc-num, .step-acc-num:focus-visible { color: var(--orange); }
.step-acc.is-open .step-acc-num { color: var(--encre); }
.step-acc-body { flex: 1 1 0; min-width: 0; display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--ease); }
.step-acc-body > div { overflow: hidden; min-height: 0; opacity: 0; transform: translateY(8px); transition: opacity .35s var(--ease), transform .35s var(--ease); }
.step-acc.is-open .step-acc-body { grid-template-rows: 1fr; }
.step-acc.is-open .step-acc-body > div { opacity: 1; transform: none; transition-delay: .25s; }
.step-acc h3 { font-size: 1.375rem; margin: .35rem 0 .6rem; }
.step-acc p { font-size: .9375rem; color: var(--encre-80); line-height: 1.55; max-width: 32rem; }

/* Piliers */
.about-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.pillar { border-top: 1px solid var(--encre-12); padding-top: 1.25rem; }
.pillar-bar { display: none; }
.pillar-num { display: block; font-family: var(--mono); font-size: var(--t-data); color: var(--cuivre); margin-bottom: .75rem; }
.pillar h3 { font-size: 1.3rem; margin-bottom: .6rem; }
.pillar p { font-size: .9375rem; color: var(--encre-80); line-height: 1.55; }

/* Cartes domaines */
.domaines-grid { display: grid; gap: 1.5rem; }
.cols-3 { grid-template-columns: repeat(3, 1fr); }
.domaine-card { display: flex; flex-direction: column; padding: 2rem; transition: box-shadow .32s var(--ease), transform .32s var(--ease); }
.domaine-card:hover { box-shadow: 8px 8px 0 0 var(--orange); transform: translate(-3px, -3px); }
.domaine-num { font-family: var(--mono); font-size: var(--t-data); color: var(--encre-60); margin-bottom: 1.25rem; }
.domaine-card h3 { font-size: 1.625rem; margin-bottom: .75rem; }
.domaine-card p { font-size: .9375rem; color: var(--encre-80); line-height: 1.5; margin-bottom: 1rem; }
.domaine-card ul { margin-bottom: 1.5rem; }
.domaine-card ul li { font-size: .875rem; padding-top: .4rem; padding-bottom: .4rem; }
.domaine-card ul li::before { top: .9rem; }
.domaine-card .card-link { margin-top: auto; font-weight: 600; font-size: var(--t-btn); color: var(--cuivre); }

/* Tableaux */
.table-wrap { overflow-x: auto; margin-top: 2rem; border-radius: var(--r-card); background: var(--blanc); }
table.registre { width: 100%; border-collapse: collapse; font-size: .9375rem; }
table.registre th { text-align: left; padding: 1rem 1.25rem; font-family: var(--mono); font-size: .6875rem; font-weight: 400; letter-spacing: .12em; text-transform: uppercase; color: var(--encre-60); border-bottom: 2px solid var(--encre); white-space: nowrap; }
table.registre td { padding: 1rem 1.25rem; border-bottom: 1px solid var(--encre-08); vertical-align: top; line-height: 1.5; }
table.registre tbody tr:hover { background: var(--lin); }
.searchbar { display: grid; grid-template-columns: 1fr 220px auto; gap: .75rem; margin-bottom: 1rem; }

/* Associés */
.associes-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 2rem + 3vw, 5rem); }
.associes-grid.profile-layout { grid-template-columns: 5fr 7fr; align-items: start; }
.associe-card { background: transparent; }
.associe-photo {
    aspect-ratio: 4 / 5;
    background-size: cover;
    background-position: center top;
    border-radius: var(--r-photo);
    /* Traitement de transition : noir et blanc réchauffé, découpe Egide, fond Lin. */
    filter: grayscale(1) sepia(.22) contrast(1.02);
}
.associe-body { padding-top: 1.75rem; }
.associe-body h3 { font-size: var(--t-h3); margin-bottom: .4rem; }
.associe-role { display: block; font-family: var(--mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--cuivre); margin-bottom: 1.25rem; }
.associe-bio { font-size: .9688rem; color: var(--encre-80); line-height: 1.65; }
.associe-bio + .associe-bio { margin-top: .85rem; }
.associe-facts { margin-top: 1.5rem; }
.vision-block { position: relative; margin-top: clamp(3rem, 2rem + 3vw, 5rem); background: var(--rose); border-radius: var(--r-photo); padding: clamp(2.5rem, 2rem + 3vw, 4.5rem) clamp(1.5rem, 1rem + 5vw, 6rem); }
.vision-label { display: inline-flex; align-items: center; gap: .75rem; font-size: var(--t-eyebrow); font-weight: 600; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 1.5rem; }
.vision-label::before { content: ''; width: 22px; height: 6px; background: var(--cuivre); border-radius: var(--r-capsule); }
.vision-sign { display: flex; gap: 2rem; }

/* Recrutement */
.jobs { border-top: 1px solid var(--encre-12); }
.job-row { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: 1.5rem 0; border-bottom: 1px solid var(--encre-12); }
.job-row h3 { font-size: 1.375rem; margin-bottom: .6rem; }
.job-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; align-items: center; font-family: var(--mono); font-size: .75rem; color: var(--encre-60); }

/* Articles & actualités */
.articles-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.article-card, .news-featured { display: flex; flex-direction: column; overflow: hidden; transition: box-shadow .32s var(--ease), transform .32s var(--ease); }
.article-card:hover { box-shadow: 8px 8px 0 0 var(--orange); transform: translate(-3px, -3px); }
/* Visuels d'articles en attente : un aplat de la palette, sous la Trame. */
.article-img, .news-img {
    aspect-ratio: 16 / 10;
    background-color: var(--pierre);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Cpath d='M8 4h20a12 12 0 0 1 12 12v22a2 2 0 0 1-2 2H18A12 12 0 0 1 6 28V6a2 2 0 0 1 2-2z' fill='none' stroke='%2324211F' stroke-opacity='.08' stroke-width='1.2'/%3E%3C/svg%3E");
}
.ph-a2, .ph-a5 { background-color: var(--rose); }
.ph-a3, .ph-a6 { background-color: var(--garonne); }
.ph-a4 { background-color: var(--encre); }
.article-body, .news-body { padding: 1.5rem 1.75rem 1.75rem; display: flex; flex-direction: column; gap: .75rem; flex: 1; }
.news-meta { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; font-family: var(--mono); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--encre-60); }
.article-body h3, .news-body h3 { font-size: 1.375rem; }
.article-body p, .news-body p { font-size: .9375rem; color: var(--encre-80); line-height: 1.55; }
.article-more { margin-top: auto; padding-top: .5rem; font-weight: 600; font-size: var(--t-btn); color: var(--cuivre); }
.news-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 1.5rem; }
.news-stack { display: flex; flex-direction: column; border-top: 1px solid var(--encre-12); }
.news-item { padding: 1.5rem 0; border-bottom: 1px solid var(--encre-12); }
.news-item h3 { font-size: 1.25rem; margin: .6rem 0 .4rem; }
.news-item p { font-size: .9375rem; color: var(--encre-80); }
.filter-row, .pagination { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2.5rem; }
.pagination { margin: 3rem 0 0; }
.filter-row a, .pagination a {
    padding: 8px 16px;
    font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; line-height: 1;
    border: 1px solid var(--encre-12); border-radius: var(--r-capsule); background: var(--blanc);
    transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.filter-row a:hover, .pagination a:hover { border-color: var(--encre); }
.filter-row a.on, .pagination a.on { background: var(--encre); color: var(--lin); border-color: var(--encre); }
.newsletter { background: var(--garonne); color: var(--lin); padding: var(--section) 0; }
.nl-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.nl-inner h2 { font-size: var(--t-h2); }
.nl-form { display: flex; gap: .75rem; }
.nl-form input { border-color: transparent; }
.nl-note { margin-top: 1rem; font-size: var(--t-caption); color: var(--lin-70); }

/* Boîte à outils */
.tools-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.tool { display: flex; align-items: center; gap: 1.25rem; padding: 1.25rem 1.5rem; transition: box-shadow .32s var(--ease), transform .32s var(--ease); }
.tool:hover { box-shadow: 6px 6px 0 0 var(--orange); transform: translate(-2px, -2px); }
.tool-ext { font-family: var(--mono); flex: none; }
.tool-body { flex: 1; }
.tool-body h4 { font-size: 1.15rem; }
.tool-body span { display: block; font-size: var(--t-caption); color: var(--encre-60); margin-top: .2rem; }
.tool-dl { font-family: var(--mono); font-size: .75rem; color: var(--cuivre); white-space: nowrap; }

/* Contact */
.contact-layout aside { display: flex; flex-direction: column; gap: 1.5rem; }
.contact-direct { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); }
.contact-direct .card { padding: 1.75rem; }
.contact-direct .data { color: var(--encre-60); display: block; margin-bottom: .75rem; }
.contact-direct a.big { display: block; font-family: var(--mono); font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem); letter-spacing: .01em; color: var(--cuivre); margin-bottom: .5rem; }
.contact-direct p { font-size: .9375rem; color: var(--encre-80); line-height: 1.5; }

/* Pages légales : titres plus discrets */
#mentions .section-title, #rgpd .section-title { font-size: var(--t-h3); margin: 2.5rem 0 .75rem; }
#mentions .section-title:first-child, #rgpd .section-title:first-child { margin-top: 0; }
#mentions .section-sub, #rgpd .section-sub { font-size: var(--t-body); max-width: none; }

/* ============= GLOSSAIRE ============= */
.glossary-toolbar { position: sticky; top: var(--header-h); z-index: 20; background: var(--lin); border-top: 2px solid var(--encre); border-bottom: 1px solid var(--encre-12); }
.glossary-toolbar-inner { display: flex; align-items: center; gap: 1.5rem; padding-top: 1rem; padding-bottom: .75rem; }
.glossary-search-wrap { position: relative; flex: 1; }
.glossary-search-wrap > svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--encre-60); pointer-events: none; }
.glossary-search { padding-left: 42px; padding-right: 42px; }
.glossary-clear { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; font-size: 1.4rem; line-height: 1; color: var(--encre-60); border-radius: 50%; display: none; }
.glossary-search-wrap.has-value .glossary-clear { display: inline-flex; align-items: center; justify-content: center; }
.glossary-count { font-family: var(--mono); font-size: var(--t-data); color: var(--encre-60); white-space: nowrap; }
.glossary-count strong { color: var(--encre); font-weight: 500; }
.glossary-filters-wrap { padding-bottom: .9rem; }
.glossary-filters { display: flex; flex-wrap: wrap; gap: .5rem; }
.gchip {
    padding: 7px 14px;
    font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1;
    border: 1px solid var(--encre-12); border-radius: var(--r-capsule); background: var(--blanc);
    transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.gchip:hover { border-color: var(--encre); }
.gchip.is-active { background: var(--encre); color: var(--lin); border-color: var(--encre); }
.glossary-az { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 3rem; }
.glossary-az a {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 36px; height: 36px; padding: 0 .6rem;
    font-family: var(--mono); font-size: var(--t-data);
    border: 1px solid var(--encre-12); border-radius: var(--r-btn); background: var(--blanc);
    transition: border-color .3s var(--ease);
}
.glossary-az a:hover { border-color: var(--encre); }
.glossary-group { margin-bottom: 3rem; }
.glossary-letter { font-size: var(--t-figure); font-weight: 300; line-height: .9; letter-spacing: -.04em; padding-bottom: .75rem; margin-bottom: .25rem; border-bottom: 2px solid var(--encre); }
.glossary-list.searching { display: flex; flex-direction: column; }
.glossary-list.searching .glossary-group { display: contents; }
.glossary-list.searching .glossary-letter { display: none; }
.term { border-bottom: 1px solid var(--encre-12); }
.term summary { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 0; cursor: pointer; list-style: none; }
.term summary::-webkit-details-marker { display: none; }
.term-name { flex: 1; font-family: var(--display); font-variation-settings: var(--soft); font-weight: 400; font-size: 1.25rem; letter-spacing: -.01em; line-height: 1.25; }
.term-pills { display: flex; gap: .35rem; flex-wrap: wrap; }
.tp-general { background: var(--pierre); }
.tp-mandataire { background: var(--encre); color: var(--lin); }
.tp-dirigeant { background: var(--orange-tint); }
.tp-salarie { background: var(--rose); }
.tp-creancier { background: var(--garonne); color: var(--lin); }
.tp-juridique { background: var(--blanc); border: 1px solid var(--encre-12); }
.tp-particulier { background: var(--lin); border: 1px solid var(--encre-12); }
.term-chev { flex: none; width: 10px; height: 10px; border-right: 1.5px solid var(--encre); border-bottom: 1.5px solid var(--encre); transform: rotate(45deg); transition: transform .3s var(--ease); margin: 0 .25rem 0 .5rem; }
.term[open] .term-chev { transform: rotate(225deg); }
.term-body { padding: 0 0 1.75rem; max-width: 72ch; }
.term-def { font-size: var(--t-body); line-height: 1.65; }
.term-block { margin-top: 1rem; padding-left: 1rem; border-left: 2px solid var(--pierre); font-size: .9375rem; line-height: 1.6; color: var(--encre-80); }
.term-block-label { display: block; font-family: var(--mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--cuivre); margin-bottom: .3rem; }
.term-link { display: inline-block; margin-top: 1.25rem; font-weight: 600; font-size: .9rem; color: var(--cuivre); text-decoration: underline; text-underline-offset: 4px; }
.glossary-empty { padding: 3rem 0; text-align: center; color: var(--encre-80); }

/* ============= RECHERCHE GLOBALE (injectée par main.js) ============= */
.search-overlay { position: fixed; inset: 0; z-index: 100; background: var(--encre-60); display: flex; justify-content: center; align-items: flex-start; padding: 10vh var(--gutter) 2rem; }
.search-overlay[hidden] { display: none; }
.search-panel { width: min(720px, 100%); background: var(--lin); border-radius: var(--r-card); overflow: hidden; box-shadow: var(--peau); }
.search-bar { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--encre-12); }
.search-bar input { flex: 1; border: 0; background: transparent; font-size: 1.125rem; outline: none; }
input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.search-bar kbd { font-family: var(--mono); font-size: .6875rem; padding: 3px 7px; border: 1px solid var(--encre-12); border-radius: 4px; color: var(--encre-60); }
.search-status { padding: .6rem 1.25rem; font-family: var(--mono); font-size: .75rem; color: var(--encre-60); }
.search-results { max-height: 52vh; overflow-y: auto; }
.sr-item { display: block; padding: .9rem 1.25rem; border-top: 1px solid var(--encre-08); transition: background-color .2s var(--ease); }
.sr-item:hover, .sr-item.on { background: var(--blanc); }
.sr-origin { display: block; font-family: var(--mono); font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--cuivre); margin-bottom: .25rem; }
.sr-snippet { font-size: .9rem; line-height: 1.5; color: var(--encre-80); }
.sr-snippet mark { background: var(--rose); color: inherit; }
.search-empty { padding: 1.25rem; font-size: .9rem; color: var(--encre-80); }

/* ============= 404 ============= */
.err-wrap { min-height: 70vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 1.25rem; padding: 4rem var(--gutter); }
.err-code { font-family: var(--display); font-variation-settings: var(--soft); font-weight: 300; font-size: var(--t-display); line-height: .9; letter-spacing: -.04em; }
.err-code b { font-weight: inherit; color: var(--cuivre); }
.err-msg { color: var(--encre-80); max-width: 34rem; }

/* ============= RESPONSIVE ============= */
@media (max-width: 1100px) {
    .main-nav { gap: 1.25rem; }
    .main-nav a { font-size: .875rem; }
    .footer-links-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 960px) {
    .main-nav, .header-right { display: none; }
    .menu-toggle, .pill-tel { display: flex; }
    .page-hero.has-aside .page-hero-inner { grid-template-columns: 1fr; }
    .brief-strip { grid-template-columns: 1fr 1fr; }
    .brief-strip a { padding: 1.25rem 1.25rem 1.1rem; }
    .brief-strip a:nth-child(3) { border-left: 0; }
    .brief-strip a:nth-child(n+3) { border-top: 1px solid var(--encre-08); }
    .brief-strip b { font-size: 2.25rem; }
    .page-hero.is-banner { min-height: 64svh; padding: 8rem var(--edge) 7rem; }
    .brief { margin-top: -3.5rem; }
    .nav-pill { gap: .5rem; padding: 8px 8px 8px 14px; }
    .nav-pill .logo { padding-right: .75rem; }
    .hero-inner { justify-content: space-between; padding-top: 6.5rem; }
    .hero-brand { position: static; text-align: left; margin-bottom: 3rem; }
    .hero-logo { width: 180px; }
    .hero-logo-sub { display: none; }
    .roles { grid-template-columns: repeat(2, 1fr); }
    .kpi:nth-child(n) { grid-column: span 5; min-height: 200px; }
    .mission-cards { grid-template-columns: repeat(2, 1fr); }
    .mission-card { aspect-ratio: 1 / 1.02; }
    .offices-grid { grid-template-columns: repeat(2, 1fr); }
    .cta-inner { grid-template-columns: 1fr; }
    .footer-top { grid-template-columns: 1fr; }
    .profile-grid, .contact-layout, .associes-grid, .associes-grid.profile-layout, .news-grid, .nl-inner { grid-template-columns: 1fr; }
    .mission-row { grid-template-columns: 3rem 1fr; }
    .mission-row .m-aside { grid-column: 2; }
    .about-pillars, .cols-3, .articles-grid { grid-template-columns: repeat(2, 1fr); }
    .glossary-toolbar { top: 0; }
    /* Accordéon des étapes en colonne */
    .steps-acc { flex-direction: column; }
    .step-acc, .step-acc:first-child { border-left: 0; padding: 1.5rem 0; border-top: 1px solid var(--encre-12); align-items: center; }
    .step-acc:first-child { border-top: 0; }
    .step-acc-num { font-size: 3.5rem; min-width: 3.5rem; }
    .step-acc h3 { margin-top: 0; }
}
@media (max-width: 640px) {
    :root { --header-h: 72px; }
    .site-header { padding-top: 12px; }
    .nav-pill .logo { --logo-w: 92px; }
    .footer-brand .logo, .footer-brand .logo-svg { width: 128px; }
    .footer-brand .logo-sub { font-size: 7.1px; }
    .hero-actions .btn { width: 100%; }
    .roles, .offices-grid, .about-pillars, .cols-3, .articles-grid, .tools-grid, .form-grid, .contact-direct, .mission-cards { grid-template-columns: 1fr; }
    .mission-card { aspect-ratio: 4 / 3.4; }
    .kpi-grid { grid-template-columns: 1fr; }
    .kpi:nth-child(n) { grid-column: auto; min-height: 180px; padding: 2rem 1.5rem; }
    .form-grid { gap: 1.25rem; }
    .mission-row { grid-template-columns: 1fr; gap: 1rem; }
    .mission-row .m-aside { grid-column: 1; }
    .demarche { gap: 1rem; }
    .demarche-date { width: 5rem; }
    .job-row { flex-direction: column; align-items: flex-start; }
    .searchbar { grid-template-columns: 1fr; }
    .nl-form { flex-direction: column; }
    .footer-bottom { grid-template-columns: 1fr; justify-items: start; }
    .footer-legal { justify-self: start; }
    .footer-signature { justify-self: start; }
    .quote-box { padding: 2.5rem 1.5rem; }
    .accolade::before, .accolade::after { width: 44px; height: 44px; }
    .glossary-toolbar-inner { flex-wrap: wrap; gap: .75rem; }
    .glossary-search-wrap { flex-basis: 100%; }

    /* ---- Confort mobile ---- */
    /* Hero : la section suivante dépasse, le défilement est évident ; la vidéo n'est pas chargée (image de secours). */
    .hero-inner { min-height: 88svh; }
    .page-hero.is-full { min-height: 80svh; }
    .hero-tel { display: flex; flex-wrap: wrap; gap: .15rem .6rem; }
    .hours-note::before { content: none; }
    /* Missions : défilement horizontal par carte, au lieu de six cartes hautes empilées. */
    .mission-cards { display: flex; gap: .75rem; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter) .5rem; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
    .mission-cards::-webkit-scrollbar { display: none; }
    .mission-card { flex: 0 0 78vw; aspect-ratio: 4 / 4.2; scroll-snap-align: start; }
    .scroll-hint { display: block; }
    /* Sélecteur de profil : six cartes compactes sur deux colonnes. */
    .page-hero.is-chooser .roles { grid-template-columns: 1fr 1fr; gap: .75rem; }
    .page-hero.is-chooser .role { padding: 1.1rem 1rem 1rem; gap: .25rem; }
    .page-hero.is-chooser .role p { display: none; }
    .page-hero.is-chooser .role h3 { font-size: 1.1rem; padding-right: 2rem; }
    .page-hero.is-chooser .role svg { width: 22px; height: 22px; margin-bottom: .5rem; }
    .page-hero.is-chooser .role::after { width: 30px; height: 30px; top: 1rem; right: 1rem; font-size: .95rem; }
    /* Zones tactiles d'au moins 40 px et petits libellés lisibles. */
    .footer-col a { padding: .6rem 0; }
    .footer-legal a, .footer-social a { display: inline-block; padding: .45rem 0; }
    .gchip, .proc, .filter-row a, .pagination a, .subnav-inner a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 16px; }
    .glossary-az a { min-width: 40px; height: 40px; }
    .term-link { display: inline-block; padding: .6rem 0; }
    .link-arrow, .back-link { min-height: 40px; }
    .breadcrumb a { display: inline-block; padding: .5rem 0; }
    .term summary { padding: 1rem 0; }
    .breadcrumb, .footer-bottom, .office-meta, .footer-col h4, .figures-source,
    .associe-role, .job-meta, .news-meta, .m-aside h4, .term-block-label, .strip-label, .mobile-tel { font-size: .75rem; }
}
.back-link { display: inline-flex; align-items: center; gap: .4rem; font-size: .875rem; font-weight: 500; color: var(--cuivre); text-decoration: underline; text-underline-offset: 4px; }
.back-link::before { content: '\2191'; }

/* ============= DÉCLARATION DE CRÉANCE · ENTREPRISES À REPRENDRE ============= */
.cols-2 { grid-template-columns: repeat(2, 1fr); }
.domaine-card .btn { align-self: flex-start; margin-top: auto; }
.domaine-card .link-arrow { margin-top: auto; }
.faq-list { max-width: 880px; border-top: 2px solid var(--encre); }
/* Annonces de cession : carte non cliquable, données en mono. */
.annonce:hover { box-shadow: none; transform: none; }
.annonce-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.25rem; }
.annonce h3 { margin-bottom: .25rem; }
.annonce-lieu { font-family: var(--mono); font-size: var(--t-data); color: var(--encre-60); }
.annonce-kv { display: grid; grid-template-columns: auto 1fr; gap: .5rem 1rem; margin: 1.25rem 0 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--encre-12); font-size: .9375rem; }
.annonce-kv dt { color: var(--encre-60); }
.annonce-kv dd { margin: 0; font-family: var(--mono); font-size: var(--t-data); text-align: right; }
/* Actualités en attente d'article : carte sans lien. */
.article-card.is-static:hover { box-shadow: none; transform: none; }
/* Recherche d'entreprises : ligne masquée par le filtre. */
table.registre tr[hidden] { display: none; }
.registre-empty { padding: 1.5rem 1.25rem; color: var(--encre-80); }
@media (max-width: 640px) {
    .cols-2 { grid-template-columns: 1fr; }
}
/* En-tête : accès direct à la déclaration de créance, en retrait de l'appel (orange). */
/* « Déclarer une créance » : pilule Lin unie, façon bouton secondaire Apple. */
.header-creance { background: var(--lin); color: var(--encre); border-color: var(--encre-12); }
.header-creance:hover { background: var(--blanc); }
.header-creance[aria-current="page"] { background: var(--blanc); }
.mobile-nav .btn-line.light + .btn { margin-top: .75rem; }
@media (max-width: 1160px) {
    .header-creance { display: none; }
}
/* Déclarer une créance : espace créancier (connexion), puis les règles. */
.declare-layout { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(2rem, 2rem + 3vw, 5rem); align-items: start; }
.declare-panel { background: var(--blanc); border-radius: var(--r-card); padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); }
.declare-step { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.5rem; font-family: var(--mono); font-size: var(--t-data); letter-spacing: .08em; text-transform: uppercase; }
.declare-step span { color: var(--cuivre); }
.declare-panel .section-title { margin-bottom: .75rem; }
.login-form .form-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; }
/* Page créance : deux portes vers l'espace créancier (logiciel du cabinet). */
.declare-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.5rem 0 1rem; }
/* Sous les cartes de profil : la porte de ceux qui n'ont pas encore de dossier. */
.roles-note { margin-top: 1.5rem; font-size: .9375rem; color: var(--encre-60); display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .75rem; }
.roles-note-sep { color: var(--encre-32); }
.declare-aside .callout + .doc-box { margin-top: 1.5rem; }
.declare-aside .doc-box a { text-decoration: underline; text-underline-offset: 3px; }
.declare-aside .doc-box a:hover { color: var(--cuivre); }
.footnotes { margin-top: 1.5rem; font-size: var(--t-caption); color: var(--encre-80); line-height: 1.55; }
.footnotes dt { font-weight: 600; margin-top: .75rem; }
.footnotes dd { margin: .2rem 0 0; }
.declare-aside-text { font-size: .9375rem; color: var(--encre-80); line-height: 1.55; margin-bottom: 1.25rem; }
@media (max-width: 960px) {
    .declare-layout { grid-template-columns: 1fr; }
}
/* Accueil : « Trouver une info », raccourcis repris de l'ancien site. */
.info-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
/* Mosaïque de quatre carreaux en aplats de la charte : numéro en haut à gauche, flèche en haut à droite,
   titre en bas. Associations autorisées : Orange/Encre, Gris foncé/Blanc, Pierre/Encre, Garonne/Blanc. */
.info-grid { gap: 8px; }
.info-tile {
    position: relative;
    display: flex; flex-direction: column; justify-content: flex-end;
    aspect-ratio: 1 / 1;
    padding: 1.5rem;
    transition: filter .3s var(--ease);
}
/* Image d'ambiance (visuels de la charte), noir et blanc, fondue dans l'aplat et estompée vers le texte. */
.info-tile { isolation: isolate; overflow: hidden; }
.info-tile > * { position: relative; z-index: 1; }
.info-tile::before {
    content: '';
    position: absolute; inset: 0; z-index: 0;
    background: var(--tile-img) center / cover no-repeat;
    filter: grayscale(1) contrast(1.05);
    mix-blend-mode: multiply;
    opacity: .3;
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 30%, transparent 82%);
    mask-image: linear-gradient(180deg, #000 0%, #000 30%, transparent 82%);
    transition: opacity .4s var(--ease), transform .9s var(--ease);
}
.info-tile.t-gris::before, .info-tile.t-garonne::before { mix-blend-mode: screen; opacity: .16; }
.info-tile:hover::before { opacity: .4; transform: scale(1.04); }
.info-tile.t-gris:hover::before, .info-tile.t-garonne:hover::before { opacity: .24; }
.info-tile.t-orange  { --tile-img: url(../img/charte/passage.webp); }
.info-tile.t-gris    { --tile-img: url(../img/charte/galerie.webp); }
.info-tile.t-pierre  { --tile-img: url(../img/charte/bureau.webp); }
.info-tile.t-garonne { --tile-img: url(../img/charte/dossiers.webp); }
.info-tile.t-orange  { background: var(--orange); color: var(--encre); }
.info-tile.t-gris    { background: var(--gris-fonce); color: var(--blanc); }
.info-tile.t-pierre  { background: var(--pierre); color: var(--encre); }
.info-tile.t-garonne { background: var(--garonne); color: var(--blanc); }
.info-tile-num { position: absolute; top: 1.5rem; left: 1.5rem; font-family: var(--mono); font-size: var(--t-data); opacity: .75; }
.info-tile::after {
    content: '';
    position: absolute; top: 1.5rem; right: 1.5rem;
    width: 18px; height: 18px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
    transition: transform .3s var(--ease);
}
.info-tile h3 { font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem); line-height: 1.15; margin-bottom: .5rem; color: inherit; }
.info-tile p { font-size: .875rem; line-height: 1.45; opacity: .85; max-width: 18rem; }
.info-tile:hover::after, .info-tile:focus-visible::after { transform: translate(3px, -3px); }
@media (max-width: 960px) {
    .info-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    /* Sur téléphone : deux carreaux par ligne, titre seul (la phrase alourdirait un petit carré). */
    .info-tile { padding: 1rem; }
    .info-tile-num { top: 1rem; left: 1rem; }
    .info-tile::after { top: 1rem; right: 1rem; width: 16px; height: 16px; }
    .info-tile h3 { font-size: 1.25rem; margin-bottom: 0; }
    .info-tile p { display: none; }
}
/* Missions : le lieu du monument photographié (un bureau Egide par carte). */
.mission-card-place {
    position: absolute; top: 1.25rem; left: 1.25rem; z-index: 1;
    padding: 6px 12px;
    font-family: var(--mono); font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase;
    color: var(--lin);
    background: rgba(36, 33, 31, .55);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border-radius: var(--r-capsule);
}
/* Accueil : carte des bureaux. SVG statique (aucun service tiers) : territoire en trame
   de points Lin sur fond Encre, bureaux en Orange. Trois couleurs, rien d'autre. */
.offices-map {
    margin: 0 0 clamp(2rem, 1.5rem + 2vw, 3.5rem);
    background: var(--gris-fonce);
    border-radius: var(--r-card);
    padding: clamp(1.5rem, 1rem + 3vw, 3.5rem) clamp(1rem, .5rem + 3vw, 3.5rem);
}
.offices-map-svg { display: block; width: 100%; max-width: 860px; height: auto; margin: 0 auto; overflow: visible; }
.om-land { fill: none; stroke: var(--lin); stroke-width: 3; stroke-linecap: round; opacity: .32; }
.om-land.is-island { stroke-width: 2.2; opacity: .3; }
.om-rule { stroke: var(--lin-20); stroke-width: 1; }
.om-region { font-family: var(--mono); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; fill: var(--lin-70); }
.om-halo { fill: var(--orange); opacity: .16; transition: opacity .3s var(--ease); }
.om-dot { fill: var(--orange); }
.om-pulse { fill: none; stroke: var(--orange); stroke-width: 1.2; transform-box: fill-box; transform-origin: center; animation: om-pulse 2.8s var(--ease) infinite; }
@keyframes om-pulse { from { transform: scale(1); opacity: .8; } to { transform: scale(3.2); opacity: 0; } }
.om-name { font-family: var(--display); font-variation-settings: var(--soft); font-weight: 300; font-size: 25px; letter-spacing: -.01em; fill: var(--lin); }
.om-name.is-hq { font-weight: 400; }
.om-sub { font-family: var(--mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; fill: var(--lin-70); }
.om-office:hover .om-halo, .om-office:focus-visible .om-halo { opacity: .45; }
.om-office:hover .om-name, .om-office:focus-visible .om-name { fill: var(--blanc); }   /* jamais d'orange en texte sur Gris foncé */
@media (prefers-reduced-motion: reduce) { .om-pulse { animation: none; opacity: 0; } }
@media (max-width: 640px) {
    /* Le SVG est réduit d'environ trois fois : on compense la taille des textes. */
    .om-name { font-size: 40px; }
    .om-sub, .om-region { font-size: 22px; }
    .om-sub { display: none; }
    .om-dot { r: 9; }
    .om-halo { r: 20; }
    .om-name { font-size: 34px; }
    .om-region-sub { display: none; }
    .om-region { font-size: 32px; transform: translateY(-26px); }
    /* Pau passe au-dessus de son point pour laisser la place à Saint-Gaudens. */
    .om-office.is-pau .om-name { text-anchor: middle; transform: translate(18px, -30px); }
    .om-office.is-toulouse .om-name { transform: translateY(10px); }
    .om-office.is-saint-gaudens .om-name { transform: translateY(12px); }
}
/* Prototype « page de localité » (localite-la-reunion.html) */
.localite-test { display: inline-block; margin-bottom: 1.25rem; padding: 6px 12px; font-family: var(--mono); font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--encre); background: var(--lin); border-radius: var(--r-capsule); }
.localite-badge {
    position: fixed; left: 1rem; bottom: 1rem; z-index: 60;
    display: flex; align-items: center; gap: .25rem;
    padding: 6px 6px 6px 14px;
    background: var(--encre); color: var(--lin);
    border-radius: var(--r-pill);
    font-size: .8125rem; font-weight: 600;
    box-shadow: 0 8px 24px rgba(36, 33, 31, .18);
}
.localite-badge a { display: inline-flex; align-items: center; gap: .5rem; color: var(--lin); }
.localite-badge a:hover { color: var(--orange); }
.localite-badge .coeur-mini { width: 10px; height: 7px; background: var(--orange); border-radius: 1px 4px 1px 4px; }
.localite-badge button { width: 28px; height: 28px; border: 0; background: transparent; color: var(--lin-70); font-size: 1.1rem; line-height: 1; cursor: pointer; border-radius: 50%; }
.localite-badge button:hover { color: var(--lin); background: var(--lin-10); }
/* Variante photo du bandeau plein écran : voile Encre (charte : 60 % sous un texte), texte Lin. */
.page-hero.is-full.is-photo { background: var(--encre); }
.page-hero.is-full.is-photo .page-hero-media img { filter: none; }
.page-hero.is-full.is-photo::after {
    height: 100%;
    background:
        linear-gradient(90deg, rgba(36, 33, 31, .78) 0%, rgba(36, 33, 31, .55) 45%, rgba(36, 33, 31, .12) 100%),
        linear-gradient(0deg, rgba(36, 33, 31, .6) 0%, rgba(36, 33, 31, 0) 45%);
}
.page-hero.is-photo h1, .page-hero.is-photo .page-hero-lead, .page-hero.is-photo .breadcrumb,
.page-hero.is-photo .breadcrumb a, .page-hero.is-photo .bc-current { color: var(--lin); }
.page-hero.is-photo .page-hero-lead { color: var(--lin-70); }
