/* =====================================================================
   PKS Consulting & Strategy — site vitrine
   Palette et typographie alignées sur la charte (brochure 2026).
   ===================================================================== */

:root{
  --navy:#0A1B2E;
  --navy-2:#122841;
  --teal:#0F6B78;
  --teal-light:#3E97A3;
  --grey:#B8C2CC;
  --grey-dim:#93A3B4;      /* texte secondaire sur fond navy */
  --paper:#FFFFFF;
  --paper-soft:#F5F7F9;
  --ink:#16202B;
  --ink-soft:#4A5866;
  --ink-mute:#68757F;      /* texte tertiaire sur fond clair */
  --rule:#DCE3E9;

  --maxw:1180px;
  --gutter:clamp(20px, 5vw, 64px);
  --serif:"Lora", Georgia, "Times New Roman", serif;
  --sans:"Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:90px;
}

body{
  margin:0;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  font-family:var(--sans);
  font-weight:300;
  font-size:17px;
  line-height:1.68;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
main{flex:1 0 auto;}

img{max-width:100%;height:auto;display:block;}
a{color:var(--teal);text-decoration:none;transition:color .18s ease;}
a:hover{color:var(--navy);}

h1,h2,h3,h4{font-family:var(--serif);font-weight:600;color:var(--navy);margin:0;line-height:1.18;letter-spacing:-0.01em;}
p{margin:0 0 1.1em 0;}
p:last-child{margin-bottom:0;}
strong{font-weight:600;color:var(--navy);}

::selection{background:var(--teal);color:#fff;}

:focus-visible{
  outline:2px solid var(--teal);
  outline-offset:3px;
}
.section--navy :focus-visible,.hero :focus-visible,.page-intro :focus-visible,
.cta-strip :focus-visible,.site-footer :focus-visible{outline-color:var(--teal-light);}

/* lien d'évitement (accessibilité clavier) */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--navy);color:#fff;padding:14px 22px;
  font-size:13px;letter-spacing:.1em;text-transform:uppercase;
}
.skip-link:focus{left:0;color:#fff;}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);}
.section{padding-block:clamp(64px, 9vw, 128px);}
.section--tight{padding-block:clamp(48px, 6vw, 80px);}
.section--soft{background:var(--paper-soft);}
.section--navy{background:var(--navy);color:#fff;}
.section--navy h1,.section--navy h2,.section--navy h3,.section--navy h4{color:#fff;}

.kicker{
  font-family:var(--sans);
  font-size:12px;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;
  color:var(--teal);margin:0 0 22px 0;
}
.section--navy .kicker,.hero .kicker,.page-intro .kicker{color:var(--teal-light);}

.lead{
  font-size:clamp(18px, 2vw, 22px);
  line-height:1.55;font-weight:300;
  color:var(--ink-soft);max-width:52ch;
}
.section--navy .lead{color:var(--grey);}

.rule-short{width:56px;height:2px;background:var(--teal);border:0;margin:0 0 30px 0;}
.section--navy .rule-short{background:var(--teal-light);}

h1.display{font-size:clamp(34px, 5.4vw, 60px);letter-spacing:-0.02em;max-width:19ch;}
h2.title{font-size:clamp(27px, 3.6vw, 42px);max-width:26ch;}
h1.display--wide,h2.title--wide{max-width:none;}
h2.title .light,h1.display .light{color:var(--ink-soft);font-weight:400;font-style:italic;}
.section--navy h2.title .light,.section--navy h1.display .light{color:var(--grey);}

/* ---------- boutons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--sans);font-size:13px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;line-height:1.2;
  padding:15px 26px;border:1px solid var(--navy);
  color:var(--navy);background:transparent;cursor:pointer;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.btn:hover{background:var(--navy);color:#fff;}
.btn--solid{background:var(--navy);color:#fff;}
.btn--solid:hover{background:var(--teal);border-color:var(--teal);color:#fff;}
/* CTA principal posé sur fond navy : le navy plein y serait invisible */
.btn--accent{background:var(--teal);border-color:var(--teal);color:#fff;}
.btn--accent:hover{background:#fff;border-color:#fff;color:var(--navy);}
.btn--ghost-light{border-color:rgba(255,255,255,.5);color:#fff;}
.btn--ghost-light:hover{background:#fff;color:var(--navy);border-color:#fff;}
.btn--arrow::after{content:"\2192";font-size:15px;}
.btn--block{width:100%;justify-content:center;}

/* ---------- en-tête ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(160%) blur(8px);
  border-bottom:1px solid var(--rule);
}
.site-header__inner{
  max-width:var(--maxw);margin:0 auto;padding:14px var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.site-header__logo{flex:0 0 auto;}
.site-header__logo img{height:42px;width:auto;}
.nav{display:flex;align-items:center;gap:clamp(14px,2.2vw,34px);}
.nav a{
  font-family:var(--sans);font-size:13px;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);
  white-space:nowrap;
}
.nav a:hover,.nav a[aria-current="page"]{color:var(--navy);}
.nav a[aria-current="page"]{border-bottom:2px solid var(--teal);padding-bottom:2px;}
.nav .nav__cta{margin-left:6px;color:#fff;}
.nav .nav__cta[aria-current="page"]{border-bottom:0;padding-bottom:15px;}
.nav-toggle{display:none;border:0;background:transparent;padding:8px;cursor:pointer;}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;transition:transform .2s,opacity .2s;}

/* Entre le menu burger et le grand écran, six entrées plus le bouton ne tiennent
   pas sur une ligne. On masque le bouton : « Contact » reste dans la navigation. */
@media (min-width:981px) and (max-width:1160px){
  .nav .nav__cta{display:none;}
}

@media (max-width:980px){
  .nav-toggle{display:block;}
  .nav{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--paper);border-bottom:1px solid var(--rule);
    padding:0 var(--gutter);
    max-height:0;overflow:hidden;visibility:hidden;
    transition:max-height .28s ease,visibility 0s .28s,padding .28s ease;
  }
  .site-header.is-open .nav{
    max-height:80vh;overflow-y:auto;visibility:visible;
    padding:8px var(--gutter) 26px;
    transition:max-height .28s ease,visibility 0s,padding .28s ease;
  }
  .nav a{padding:15px 0;border-bottom:1px solid var(--rule);}
  .nav a[aria-current="page"]{border-bottom:1px solid var(--rule);color:var(--teal);}
  .nav .nav__cta{margin:18px 0 0;justify-content:center;border-bottom:0;}
  .nav .nav__cta[aria-current="page"]{padding-bottom:15px;color:#fff;}
  .site-header.is-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .site-header.is-open .nav-toggle span:nth-child(2){opacity:0;}
  .site-header.is-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;
  background:var(--navy);color:#fff;
  padding-block:clamp(72px, 12vw, 148px);
}
.hero__glyph{
  position:absolute;right:-14%;top:50%;transform:translateY(-50%);
  width:min(640px,72%);opacity:.06;pointer-events:none;
}
.hero__band{position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--teal);}
.hero .wrap{position:relative;}
.hero h1{
  font-size:clamp(36px, 6.4vw, 68px);color:#fff;
  letter-spacing:-0.02em;line-height:1.08;margin:0 0 26px;
  max-width:16ch;
}
.hero__sub{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(19px, 2.6vw, 27px);color:var(--grey);
  max-width:34ch;margin:0 0 30px;line-height:1.4;
}
/* La ligne qui répond en cinq secondes à « qu'est-ce que vous faites ? » */
.hero__promise{
  font-size:clamp(16px,1.5vw,18px);line-height:1.6;font-weight:300;
  color:var(--grey);max-width:56ch;margin:0 0 40px;
  padding-left:18px;border-left:2px solid var(--teal);
}
.hero__actions{display:flex;flex-wrap:wrap;gap:16px;}
.hero__meta{
  margin-top:clamp(48px,7vw,84px);padding-top:24px;
  border-top:1px solid rgba(255,255,255,.18);
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--grey);
}
.hero__meta span{
  display:block;margin-top:8px;
  color:var(--grey-dim);letter-spacing:.04em;text-transform:none;font-size:14px;
}

/* ---------- grilles ---------- */
.grid{display:grid;gap:clamp(20px,3vw,36px);}
.grid--2{grid-template-columns:repeat(2,1fr);}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--split{grid-template-columns:1.35fr 1fr;align-items:start;gap:clamp(32px,6vw,80px);}
@media (max-width:900px){
  .grid--2,.grid--3,.grid--split{grid-template-columns:1fr;}
}

/* ---------- cartes ---------- */
.card{
  background:var(--paper);border:1px solid var(--rule);
  padding:clamp(24px,3vw,34px);
}
.card--dark{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.16);}
.card--dark h3{color:#fff;}
.card--dark p{color:var(--grey);}
.card h3{font-size:19px;margin:0 0 12px;}
.card h3 a{color:var(--navy);}
.card h3 a:hover{color:var(--teal);}
.card p{font-size:15.5px;color:var(--ink-soft);}
.card__num{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--teal);display:block;margin-bottom:14px;line-height:1;}
.card--dark .card__num{color:var(--teal-light);}

/* ---------- listes éditoriales numérotées ---------- */
.lever{
  display:grid;grid-template-columns:64px 1fr;gap:24px;
  padding:34px 0;border-top:1px solid var(--rule);
}
.lever:last-child{border-bottom:1px solid var(--rule);}
.section--navy .lever{border-color:rgba(255,255,255,.16);}
.lever__num{font-family:var(--serif);font-size:26px;font-weight:600;color:var(--teal);line-height:1;}
.section--navy .lever__num{color:var(--teal-light);}
.lever__label{
  font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--navy);margin:0 0 8px;
}
.section--navy .lever__label{color:#fff;}
.lever h3{font-size:21px;margin:0 0 10px;}
.lever h3 a{color:var(--navy);}
.lever h3 a:hover{color:var(--teal);}
.lever p{font-size:15.5px;color:var(--ink-soft);margin:0 0 10px;max-width:70ch;}
.section--navy .lever p{color:var(--grey);}
.lever__tags{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin:0;}
.section--navy .lever__tags{color:var(--grey-dim);}
@media (max-width:560px){
  .lever{grid-template-columns:1fr;gap:10px;}
}

/* sous-titre de bloc dans une section */
h3.subtitle{font-size:clamp(22px,2.6vw,29px);line-height:1.25;max-width:26ch;}
h3.subtitle .light{color:var(--ink-soft);font-weight:400;font-style:italic;}
.section--navy h3.subtitle .light{color:var(--grey);}
h4.sub{
  font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--navy);margin:0 0 4px;
}
.section--navy h4.sub{color:#fff;}

/* porte d'entrée commerciale (encart avec appel à l'action) */
.entry-door{
  display:grid;grid-template-columns:1fr auto;gap:clamp(24px,4vw,48px);
  align-items:center;
  background:var(--paper-soft);border:1px solid var(--rule);
  border-left:3px solid var(--teal);
  padding:clamp(26px,3.5vw,40px);
}
.entry-door .kicker{margin-bottom:12px;}
.entry-door p{font-size:15.5px;color:var(--ink-soft);max-width:66ch;}
.subtitle--sm{font-size:23px;margin:0 0 12px;}
.section--soft .entry-door{background:var(--paper);}
@media (max-width:820px){
  .entry-door{grid-template-columns:1fr;align-items:start;}
}

/* ---------- citation / affirmation ---------- */
.statement{
  border-left:2px solid var(--teal);
  padding:6px 0 6px 28px;margin:clamp(32px,5vw,52px) 0 0;
}
.statement p{
  font-family:var(--serif);font-weight:500;font-size:clamp(19px,2.4vw,25px);
  line-height:1.42;color:var(--navy);margin:0;
}
.section--navy .statement{border-color:var(--teal-light);}
.section--navy .statement p{color:#fff;}

/* ---------- listes à puces carrées ---------- */
ul.clean{list-style:none;margin:0;padding:0;}
ul.clean li{
  position:relative;padding:14px 0 14px 24px;
  border-bottom:1px solid var(--rule);
  font-size:15.5px;color:var(--ink-soft);line-height:1.55;
}
ul.clean li::before{
  content:"";position:absolute;left:0;top:21px;
  width:9px;height:9px;background:var(--teal);
}
ul.clean li:last-child{border-bottom:0;}
ul.clean li b{color:var(--navy);font-weight:600;}
.section--navy ul.clean li{color:var(--grey);border-color:rgba(255,255,255,.14);}
.section--navy ul.clean li b{color:#fff;}
.section--navy ul.clean li::before{background:var(--teal-light);}

/* ---------- tableau de correspondance ---------- */
.matrix{width:100%;border-collapse:collapse;font-size:15px;text-align:left;}
.matrix th{
  font-family:var(--sans);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--teal);font-weight:600;
  padding:0 24px 14px 0;border-bottom:1px solid var(--rule);
}
.matrix td{
  padding:16px 24px 16px 0;border-bottom:1px solid var(--rule);
  color:var(--ink-soft);vertical-align:top;
}
.matrix td.k{color:var(--navy);font-weight:600;width:44%;}
.section--navy .matrix th{color:var(--teal-light);border-color:rgba(255,255,255,.16);}
.section--navy .matrix td{color:var(--grey);border-color:rgba(255,255,255,.14);}
.section--navy .matrix td.k{color:#fff;}
@media (max-width:680px){
  .matrix,.matrix tbody,.matrix tr,.matrix td,.matrix th{display:block;width:100%;}
  .matrix thead{display:none;}
  .matrix td{padding:6px 0;border:0;}
  .matrix tr{padding:18px 0;border-bottom:1px solid var(--rule);}
  .matrix tr:first-child{padding-top:0;}
  .matrix td.k{width:100%;margin-bottom:2px;}
}

/* ---------- méthode (compteur) ---------- */
.method{counter-reset:step;}
.method__item{
  display:grid;grid-template-columns:88px 1fr;gap:28px;
  padding:36px 0;border-top:1px solid var(--rule);
}
.method__item:last-child{border-bottom:1px solid var(--rule);}
.section--navy .method__item{border-color:rgba(255,255,255,.16);}
.method__item::before{
  counter-increment:step;content:"0" counter(step);
  font-family:var(--serif);font-size:30px;font-weight:600;color:var(--teal);line-height:1;
}
.section--navy .method__item::before{color:var(--teal-light);}
.method__label{font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--navy);margin:0 0 10px;}
.section--navy .method__label{color:#fff;}
.method__item p{font-size:16px;color:var(--ink-soft);margin:0 0 12px;max-width:70ch;}
.section--navy .method__item p{color:var(--grey);}
.method__q{font-family:var(--serif);font-style:italic;color:var(--teal);font-size:16px;margin:0 !important;}
.section--navy .method__q{color:var(--teal-light);}
@media (max-width:560px){.method__item{grid-template-columns:1fr;gap:12px;}}

/* ---------- références ---------- */
.case{padding:36px 0;border-top:1px solid var(--rule);}
.case:last-child{border-bottom:1px solid var(--rule);}
.case__name{font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal);font-weight:600;margin:0 0 12px;}
.case__sector{color:var(--ink-mute);font-weight:500;}
.case h3{font-size:22px;margin:0 0 20px;}
.case p{font-size:15.5px;color:var(--ink-soft);margin:0 0 12px;max-width:66ch;}
.case__out{font-size:14px;color:var(--ink-mute);margin:0 !important;}

/* Situation → Intervention → Résultat */
.case__sir{display:grid;grid-template-columns:130px 1fr;gap:0;margin:0;max-width:78ch;}
.case__sir dt{
  font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--teal);padding:12px 20px 12px 0;
}
.case__sir dd{margin:0;padding:12px 0;font-size:15.5px;color:var(--ink-soft);line-height:1.6;}
.case__sir dt + dd{grid-column:2;}
.case__sir dt:not(:first-of-type),
.case__sir dt:not(:first-of-type) + dd{border-top:1px solid var(--rule);}
@media (max-width:680px){
  .case__sir{grid-template-columns:1fr;}
  .case__sir dt{padding:16px 0 4px;}
  .case__sir dd{padding:0 0 4px;}
  .case__sir dt:not(:first-of-type) + dd{border-top:0;}
}

/* ---------- encart Maki & Winston ---------- */
.mw{background:var(--paper-soft);border:1px solid var(--rule);padding:clamp(28px,4vw,44px);}
.mw img{width:220px;margin-bottom:22px;}
.mw p{font-size:15.5px;color:var(--ink-soft);max-width:74ch;}
.section--navy .mw{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.16);}
.section--navy .mw p{color:var(--grey);}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(36px,6vw,76px);align-items:start;}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;}}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;}
@media (max-width:600px){.form-row{grid-template-columns:1fr;}}

.field{margin-bottom:22px;}
.field label{
  display:block;font-family:var(--sans);font-size:12px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin-bottom:8px;
}
.field .opt{color:var(--ink-mute);font-weight:400;letter-spacing:.06em;text-transform:none;}
.field input,.field textarea,.field select{
  width:100%;font-family:var(--sans);font-size:16px;font-weight:300;color:var(--ink);
  padding:13px 14px;border:1px solid var(--rule);background:var(--paper);
  border-radius:0;transition:border-color .18s ease;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 1px var(--teal);}
.field textarea{min-height:160px;resize:vertical;}
.field--hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.field--check{display:flex;gap:12px;align-items:flex-start;margin-bottom:26px;}
.field--check input{width:18px;height:18px;flex:0 0 auto;margin-top:3px;accent-color:var(--teal);}
.field--check label{
  font-size:14px;font-weight:300;letter-spacing:0;text-transform:none;
  color:var(--ink-soft);margin:0;line-height:1.5;
}
.form-note{font-size:13.5px;color:var(--ink-mute);margin-top:18px;}

.contact-info .contact-label{
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal);
  font-weight:600;margin:0 0 14px;
}
.contact-info .contact-line{font-family:var(--serif);font-size:21px;color:var(--navy);margin:0 0 10px;}
.contact-info .contact-line a{color:var(--navy);}
.contact-info .contact-line a:hover{color:var(--teal);}
.contact-block + .contact-block{margin-top:38px;padding-top:34px;border-top:1px solid var(--rule);}

/* ---------- bandeau d'appel ---------- */
.cta-strip{background:var(--navy);color:#fff;}
.cta-strip .wrap{
  padding-block:clamp(56px,8vw,96px);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px;
}
.cta-strip h2{font-size:clamp(25px,3.4vw,38px);color:#fff;max-width:20ch;}
.cta-strip p{color:var(--grey);margin:12px 0 0;max-width:44ch;font-size:16px;}

/* ---------- pied de page ---------- */
.site-footer{background:var(--navy);color:var(--grey);border-top:1px solid rgba(255,255,255,.12);}
.site-footer .wrap{padding-block:clamp(48px,7vw,80px);}
.site-footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;}
@media (max-width:780px){.site-footer__top{grid-template-columns:1fr;gap:34px;}}
.site-footer__logo{height:40px;width:auto;margin-bottom:20px;}
.site-footer__tag{font-family:var(--serif);font-style:italic;color:var(--grey);max-width:34ch;margin:0;}
.site-footer h2{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#fff;margin:0 0 16px;}
.site-footer ul{list-style:none;margin:0;padding:0;}
.site-footer li{margin-bottom:10px;font-size:14px;color:var(--grey-dim);}
.site-footer a{color:var(--grey);font-size:14px;}
.site-footer a:hover{color:#fff;}
.site-footer .social{display:flex;gap:20px;margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);}
.site-footer .social li{margin:0;}
.site-footer .social a{
  font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-dim);
}
.site-footer .social a:hover{color:#fff;}
.site-footer__bottom{
  margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;
  font-size:12px;letter-spacing:.06em;color:var(--grey-dim);
}
.site-footer__bottom .axes{letter-spacing:.22em;text-transform:uppercase;}

/* ---------- chapeau de page intérieure ---------- */
.page-intro{background:var(--navy);color:#fff;padding-block:clamp(64px,9vw,120px);position:relative;overflow:hidden;}
.page-intro__glyph{position:absolute;right:-12%;bottom:-45%;width:min(520px,64%);opacity:.06;pointer-events:none;}
.page-intro .wrap{position:relative;}
.page-intro h1{font-size:clamp(32px,5vw,54px);color:#fff;max-width:19ch;margin:0 0 22px;line-height:1.1;}
.page-intro p{color:var(--grey);font-size:clamp(17px,2vw,20px);max-width:56ch;margin:0;line-height:1.55;}

/* ---------- pages texte (mentions légales, 404) ---------- */
.prose{max-width:70ch;}
.prose h2{font-size:24px;margin:44px 0 14px;}
.prose h3{font-size:18px;margin:28px 0 10px;}
.prose p,.prose li{font-size:16px;color:var(--ink-soft);}
.prose ul{padding-left:20px;margin:0 0 1.1em;}
.prose li{margin-bottom:8px;}
.prose a{text-decoration:underline;text-underline-offset:3px;}

/* ---------- ancrage territorial (carte de Mayotte) ---------- */
.geo-section{position:relative;overflow:hidden;}
.geo-map{
  position:absolute;right:-3%;top:50%;transform:translateY(-50%);
  width:min(390px,38%);color:var(--teal);opacity:.19;
  pointer-events:none;user-select:none;
}
.section--navy .geo-map{color:var(--teal-light);opacity:.11;}
.geo-map svg{width:100%;height:auto;display:block;}
.geo-section .wrap{position:relative;}
.geo-section .geo-body{max-width:60ch;}
.geo-realites{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:0 clamp(28px,4vw,52px);
  margin-top:clamp(32px,4.5vw,52px);max-width:76ch;
}
.geo-realites > div{padding:22px 0;border-top:1px solid var(--rule);}
.geo-realites h3{font-size:17px;margin:0 0 8px;line-height:1.3;}
.geo-realites p{font-size:15px;color:var(--ink-soft);margin:0;}
.section--navy .geo-realites > div{border-color:rgba(255,255,255,.18);}
.section--navy .geo-realites p{color:var(--grey);}
@media (max-width:760px){.geo-realites{grid-template-columns:1fr;}}

.geo-places{
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,34px);
  margin-top:clamp(32px,4.5vw,52px);max-width:74ch;
}
.geo-places h3{font-size:18px;margin:0 0 10px;}
.geo-places p{font-size:15px;color:var(--ink-soft);margin:0;}
.section--navy .geo-places p{color:var(--grey);}
.geo-places > div{padding-top:20px;border-top:1px solid var(--rule);}
.section--navy .geo-places > div{border-color:rgba(255,255,255,.18);}
@media (max-width:820px){
  .geo-places{grid-template-columns:1fr;gap:0;}
  .geo-places > div{padding:20px 0;}
  .geo-map{width:58%;right:-16%;opacity:.07;}
}

/* ---------- fiche d'identité (bloc factuel, très citable) ---------- */
.facts{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:0 clamp(24px,3vw,40px);
}
.facts > div{padding:22px 0;border-top:1px solid var(--rule);}
.section--navy .facts > div{border-color:rgba(255,255,255,.18);}
.facts dt{
  font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--teal);margin:0 0 8px;
}
.section--navy .facts dt{color:var(--teal-light);}
.facts dd{margin:0;font-size:15.5px;color:var(--ink-soft);line-height:1.55;}
.section--navy .facts dd{color:var(--grey);}
.facts dd b{color:var(--navy);font-weight:600;}
.section--navy .facts dd b{color:#fff;}

/* ---------- FAQ ---------- */
.faq{max-width:78ch;}
.faq__item{padding:32px 0;border-top:1px solid var(--rule);}
.faq__item:last-child{border-bottom:1px solid var(--rule);}
.faq__item h3{font-size:21px;margin:0 0 14px;line-height:1.3;}
.faq__item p{font-size:16px;color:var(--ink-soft);margin:0 0 12px;}
.faq__item p:last-child{margin-bottom:0;}
.faq__group{margin-top:clamp(40px,5vw,64px);}
.faq__group:first-of-type{margin-top:clamp(24px,3vw,32px);}
.faq__group > h2{
  font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--teal);margin:0 0 4px;
}

/* ---------- fil d'Ariane ---------- */
.breadcrumb{font-size:13px;color:var(--grey-dim);margin:0 0 34px;}
.breadcrumb a{color:var(--grey);}
.breadcrumb a:hover{color:#fff;}
.breadcrumb span{margin:0 8px;opacity:.6;}

/* ---------- utilitaires ---------- */
.muted{color:var(--ink-soft);font-size:14.5px;}
.section--navy .muted{color:var(--grey);}
.stack-lg > * + *{margin-top:clamp(24px,3vw,32px);}
.center{text-align:center;}
.mt-s{margin-top:24px;}
.mt-m{margin-top:clamp(32px,4.5vw,52px);}
.maxw-prose{max-width:66ch;}

@media (prefers-reduced-motion:reduce){
  *{transition-duration:.01ms !important;animation-duration:.01ms !important;scroll-behavior:auto !important;}
}
