/* ══════════════════════════════════════════════════════════════
   THÈME « ÎLE ROUGE » — Direction retenue
   Dominante claire lumineuse en continu. Le sombre n'existe qu'en
   voile derrière les photos. Signature : rouge latérite #B0371B.
   Typographie : Fraunces (titres) + Archivo (corps).
   Chargé APRÈS styles.css sur les 9 pages. Marche arrière : retirer ce lien.
   ══════════════════════════════════════════════════════════════ */

:root{
  /* Palette Île Rouge */
  --ink:#26201A;             /* brun-noir : texte principal */
  --dark-ink:#1A120D;        /* brun nuit : voiles photo uniquement */
  --brume:#5A4A3E;
  --warm-gray:#8A7B6C;       /* taupe */
  --cream:#F1E8D8;           /* sable : fonds secondaires, cartes */
  --lin:#FAF6ED;             /* ivoire lumineux : fond principal */

  /* Signature latérite — couleur de marque officielle */
  --laterite:#B0371B;        /* Île Rouge : accent identitaire */
  --gold:var(--laterite);    /* alias historique conservé pour non-régression */
  --muted-gold:#8C2B14;      /* latérite brûlée : hover, appuis, fonds clairs */
  --champagne:#D97B54;       /* latérite éclaircie : accents SUR PHOTO sombre */
  --accent-rgb:176,55,27;
  --accent-deep-rgb:140,43,20;
  --gold-glow:rgba(176,55,27,.35);
  --gold-faint:rgba(176,55,27,.08);

  /* Secondaires disciplinées */
  --forest:#2E4A33;          /* vert forêt : touches nature */
  --amber:#D9932C;           /* ambre : calendrier */

  /* Typographie */
  --font-serif:'Fraunces',serif;
  --font-sans:'Archivo',sans-serif;
}

/* ════════ 1 · DOMINANTE CLAIRE CONTINUE ════════ */
body{
  background:var(--lin);
  color:var(--ink);
  font-family:'Archivo',sans-serif;
  background-image:none;
}
/* Les sections claires deviennent la norme : fond transparent, le body porte la lumière */
.chapter-light{background:transparent;}
/* Corps de texte : Archivo remplace DM Sans partout où DM Sans était en dur */
button,input,textarea,select{font-family:'Archivo',sans-serif;}

/* ════════ 2 · NAVIGATION CLAIRE ════════ */
nav.scrolled{background:rgba(250,246,237,.96);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(38,32,26,.08);}
nav.scrolled .nav-links a{color:rgba(38,32,26,.78);}
nav.scrolled .nav-links a:hover{color:var(--gold);}
nav.scrolled .logo-zeno{color:var(--ink);}
nav.scrolled .logo-sub{color:var(--muted-gold);}
nav.scrolled .logo-rule{background:rgba(var(--accent-rgb),.5);}
nav.scrolled .lang-btn{color:rgba(38,32,26,.55);}
nav.scrolled .nav-caret{border-color:rgba(38,32,26,.45);}
nav.scrolled .burger span{background:var(--ink);}
/* Dropdown sous-menu : panneau clair */
.nav-sub{background:rgba(250,246,237,.98);border-color:rgba(var(--accent-rgb),.22);box-shadow:0 18px 44px -18px rgba(38,32,26,.25);}
.nav-sub a{color:rgba(38,32,26,.8);}
.nav-sub a:hover{background:rgba(var(--accent-rgb),.08);color:var(--gold);}
.nav-overlay .ov-sub{color:rgba(217,123,84,.75);}
/* Au repos sur hero photo : la nav reste lisible (texte ivoire sur voile) : inchangé */
.nav-links a::after{background:var(--gold);}
.nav-cta{background:var(--gold);color:var(--lin);border-color:var(--gold);}
.nav-cta:hover{background:var(--muted-gold);box-shadow:0 8px 20px -8px var(--gold-glow);}
/* Menu mobile : voile brun nuit (moment immersif assumé, pas une "section sèche") */
.nav-overlay{background:rgba(26,18,13,.97);}

/* ════════ 3 · TITRES CLAIRS PAR DÉFAUT ════════
   Les composants qui supposaient un fond sombre passent au brun. */
.section-title,.opener-title,.cta-band-title{color:var(--ink);}
.opener-lead{color:rgba(38,32,26,.72);}
.section .prose,.prose{color:rgba(38,32,26,.78);}
/* Fraunces est plus large que Cormorant : léger resserrage */
.hero-title{letter-spacing:0;}
.hero-title em,.opener-title em,.cta-band-title em{font-weight:340;}

/* Sur photo (hero, teaser, fiches circuit) : textes ivoire conservés */
.hero-title,.hero .hero-eyebrow~*,.circ-hero-name{color:#F6F0E4;}
.hero-eyebrow{color:var(--champagne);}

/* ════════ 4 · FOOTER BRUN NUIT : l'ancrage final, distinct de tout le reste ════════ */
footer{background:#1A120D;border-top:2px solid var(--gold);}
footer,footer a,.foot-col a,.foot-col span{color:rgba(242,234,222,.72);}
footer a:hover,.foot-col a:hover{color:var(--champagne);}
footer .logo-zeno,.foot-brand,.foot-logo{color:#F2EADE;}
footer .logo-sub{color:var(--champagne);}
footer .logo-rule{background:rgba(217,123,84,.5);}
.foot-copy,.foot-bottom{color:rgba(242,234,222,.45);}
footer .ic,.foot-social a{color:rgba(242,234,222,.55);}
footer a:hover .ic,.foot-social a:hover{color:var(--champagne);}
.foot-bottom .lang-btn{color:rgba(242,234,222,.55);}
.foot-bottom .lang-btn:hover{color:var(--champagne);}
footer .foot-col-t{color:var(--champagne);}

/* ════════ 5 · CTA BAND CLAIRE (respiration, pas un bloc sombre) ════════ */
.cta-band{background:var(--cream);}
.cta-band::before{background:radial-gradient(ellipse 58% 78% at 50% 50%,rgba(var(--accent-rgb),.09) 0%,transparent 72%);}
.cta-band-title{color:var(--ink);}
.cta-band-title em{color:var(--gold);}
.cta-band .btn{border-color:var(--gold);color:var(--gold);}
.cta-band .btn:hover{background:var(--gold);color:var(--lin);}

/* ════════ 6 · FICHES CIRCUITS EN CLAIR ════════ */
.circ-block-label{color:var(--muted-gold);}
.itin-day-t{color:var(--ink);}
.itin-day-p{color:rgba(38,32,26,.68);}
.itin-num{border-color:rgba(var(--accent-rgb),.4);color:var(--muted-gold);background:var(--lin);}
.itin-day::before{background:rgba(var(--accent-rgb),.25);}
.itin-day:hover .itin-num{background:var(--gold);color:var(--lin);border-color:var(--gold);}
.circ-price-note,.circ-price-label{color:var(--muted-gold);}
.meta-card{border-color:rgba(var(--accent-rgb),.2);background:rgba(var(--accent-rgb),.035);}
.circ-gallery-cell{background-color:var(--cream);}

/* ════════ 7 · PAGE LÉGALE : EN-TÊTE CLAIR (plus de bloc sombre sec) ════════ */
.legal-header{background:var(--cream);}
.legal-h1{color:var(--ink);}
.legal-eyebrow{color:var(--muted-gold);}

/* ════════ 8 · CALENDRIER DES SAISONS RECOLORÉ ════════
   Ambre / lagon / végétal / taupe : 4 teintes distinctes, latérite préservée pour la signature */

/* ════════ 9 · PRÉSENTATION DES IMAGES : SIGNATURES ÉDITORIALES ════════ */
/* a. Cadre décalé latérite : un filet fin qui déborde du cadre (magazine) */
.story-img,.mada-split-img{position:relative;}
.story-img::before,.mada-split-img::before{
  content:'';position:absolute;inset:0;border:1px solid rgba(var(--accent-rgb),.55);
  border-radius:inherit;transform:translate(14px,14px);pointer-events:none;z-index:-1;
}
/* (désaturation retirée à la demande : les images gardent leur traitement d'origine) */
/* c. Reveal des images éditoriales : voile sable qui se retire (CSS pur, sans dépendance JS) */
@media (prefers-reduced-motion: no-preference){
  .story-img::after,.mada-split-img::after{
    animation:none;
  }
}
@media(max-width:760px){
  /* mobile first : le cadre décalé se replie pour ne rien faire déborder */
  .story-img::before,.mada-split-img::before{transform:translate(8px,8px);}
}

/* ════════ 10 · BOUTONS & INTERACTIONS ════════ */
.btn{border-color:rgba(var(--accent-rgb),.6);color:var(--gold);}
.btn:hover{background:var(--gold);border-color:var(--gold);color:var(--lin);}
.btn-solid{background:var(--gold);color:var(--lin);}
.btn-solid:hover{background:var(--muted-gold);box-shadow:0 16px 34px -12px var(--gold-glow);}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
::selection{background:rgba(176,55,27,.85);color:var(--lin);}
::-moz-selection{background:rgba(176,55,27,.85);color:var(--lin);}

/* ════════ 11 · ANIMATIONS AFFINÉES ════════ */
:root{--ease-premium:cubic-bezier(.22,1,.36,1);}
.btn,.btn-solid,.nav-links a,.app-card,.faq-pill,.to-top{
  transition-timing-function:var(--ease-premium);
}

.to-top{background:var(--ink);}
.to-top:hover{background:var(--gold);}

/* ════════ 12 · DIVERS COHÉRENCE ════════ */
html{scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.4) var(--cream);}
::-webkit-scrollbar{width:9px;}
::-webkit-scrollbar-track{background:var(--cream);}
::-webkit-scrollbar-thumb{background:rgba(var(--accent-rgb),.38);border-radius:5px;border:2px solid var(--cream);}
::-webkit-scrollbar-thumb:hover{background:rgba(var(--accent-rgb),.6);}
.sect-rule::before,.sect-rule::after{background:linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.4));}
.sect-rule::after{background:linear-gradient(90deg,rgba(var(--accent-rgb),.4),transparent);}
.sect-rule-dot{background:rgba(var(--accent-rgb),.5);}

/* Placeholders d'images en attente : sable hachuré chaud */
.lazy-bg:not([style*="background-image"]){background-image:linear-gradient(150deg,#E8DECB 0%,#F1E8D8 55%,#EDE2CE 100%);}

/* ════════ 13 · COMPLÉMENTS FOND CLAIR (textes pensés pour l'ancien fond sombre) ════════ */
/* Liste des circuits (circuits.html) */
.circ-row{color:var(--ink);}
.circ-row-name{color:var(--ink);}
.circ-row-desc{color:rgba(38,32,26,.7);}
/* Bloc prix des fiches */
.circ-price-value{color:var(--ink);}
/* Philosophie (approche) */
.statement-key{color:var(--ink);}
/* KPI Madagascar */

 /* reste sur image : ivoire conservé */
/* Bande CTA */
.cta-band-sub{color:rgba(38,32,26,.62);}
/* Formulaire de contact sur fond clair */
.cf-inp,.cf-ta,.cf-sel{color:var(--ink);border-bottom-color:rgba(38,32,26,.25);}
.cf-inp:focus,.cf-ta:focus,.cf-sel:focus{border-bottom-color:var(--gold);}
.cf-inp::placeholder,.cf-ta::placeholder{color:rgba(38,32,26,.35);}
.cf-sel option{background:var(--lin);color:var(--ink);}
.calt-q{color:rgba(140,43,20,.8);}
/* Nav au repos sur les pages sans hero photo (mentions légales, 404) */
body.page-light nav .logo-zeno,body.page-light nav .nav-links a{color:var(--ink);}
body.page-light nav .nav-links a:hover{color:var(--gold);}
body.page-light nav .lang-btn{color:rgba(38,32,26,.55);}
body.page-light nav .burger span{background:var(--ink);}

/* ════════ 14 · VOILES PHOTO EN BRUN NUIT (au lieu du bleu-noir) ════════ */
.hero-overlay{background:linear-gradient(to bottom,rgba(26,18,13,.22) 0%,rgba(26,18,13,0) 30%,rgba(26,18,13,.45) 62%,rgba(26,18,13,.93) 100%);}
.circ-hero-veil{background:linear-gradient(to top,rgba(26,18,13,.94) 0%,rgba(26,18,13,.3) 55%,rgba(26,18,13,.5) 100%);}

/* ════════ 15 · CHASSE AUX TEXTES FANTÔMES (ivoire sur ivoire) ════════
   Tous les composants encore pensés pour l'ancien fond sombre. */

/* Fiches circuits : citation d'ouverture, chapeau, corps de texte */
.circ-accroche{color:rgba(38,32,26,.85);border-left-color:var(--gold);}
.circ-lead{color:rgba(38,32,26,.72);}
.circ-text{color:rgba(38,32,26,.74);}
.circ-text em{color:var(--muted-gold);}

/* Inclus / non inclus */
.incl-col h4{color:var(--muted-gold);}
.incl-col li{color:rgba(38,32,26,.76);border-bottom-color:rgba(var(--accent-deep-rgb),.14);}
.incl-col li.li-ic .ic{color:var(--gold);}
.incl-col.excl li{color:rgba(38,32,26,.55);}
.incl-col.excl li.li-ic .ic{color:rgba(38,32,26,.35);}
.incl-col.excl li::before{background:rgba(38,32,26,.3);}

/* Liste des circuits (circuits.html) : le panneau sombre devient sable */
.circ-row{background:var(--cream);box-shadow:0 24px 60px -34px rgba(38,32,26,.22);}
.circ-row-media::after{background:linear-gradient(90deg,transparent,rgba(38,32,26,.06));}

/* Cartes méthode (approche) */
.app-card-t{color:var(--ink);}
.app-card-p{color:rgba(38,32,26,.72);}

/* Message de succès du formulaire */
.csuccess-t{color:var(--muted-gold);}

/* Bande CTA : hairline haute pour la détacher du contenu ivoire */
.cta-band{border-top:1px solid rgba(var(--accent-rgb),.18);}

/* Contact : colonne gauche (lead + réassurance) sur fond clair */
.ct-lead{color:rgba(38,32,26,.8);}
.ct-trust-item{color:rgba(38,32,26,.68);}

/* ════════ 16 · EN-TÊTES DE PAGE SOBRES (contact, FAQ) ════════ */
.page-head .hero-title{color:var(--ink);}
.page-head .hero-eyebrow{color:var(--gold);}
.page-head .hero-title em{color:var(--muted-gold);}

/* ════════ 17 · SIGNATURES : underline nav, sélection, focus, micro-interactions ════════ */
/* Hairline qui se dessine sous les liens de navigation (desktop) */
.nav-links>li>a{position:relative;}
.nav-links>li>a::after{
  content:"";position:absolute;left:0;right:auto;bottom:-5px;height:1px;width:100%;
  background:currentColor;transform:scaleX(0);transform-origin:right center;
  transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.nav-links>li>a:hover::after,.nav-links>li>a.active::after{transform:scaleX(1);transform-origin:left center;}

/* Sélection de texte aux couleurs de la maison */
::selection{background:rgba(var(--accent-rgb),.18);color:var(--ink);}

/* Focus clavier élégant */
:focus-visible{outline:2px solid rgba(var(--accent-rgb),.65);outline-offset:3px;border-radius:2px;}

/* La flèche des liens circuits glisse, le label de zone respire */
.circ-row-link{transition:gap .4s cubic-bezier(.22,1,.36,1),color .3s;}
.circ-row:hover .circ-row-link{gap:1.1rem;}
.circ-row-zone{transition:letter-spacing .5s cubic-bezier(.22,1,.36,1),color .3s;}
.circ-row:hover .circ-row-zone{letter-spacing:.34em;}

/* ── LOT 3B.2 — photos réelles injectées au build (<picture class="zimg">) ──
   Le conteneur garde sa mise en page ; la photo le remplit en object-fit:cover.
   .has-zimg reprend les règles « image présente » prévues pour les anciens
   placeholders (bordure pointillée et étiquette masquées, voile conservé). */
.zimg{position:absolute;inset:0;display:block;width:100%;height:100%;}
.zimg img{display:block;width:100%;height:100%;object-fit:cover;}
.g-img.has-zimg{position:relative;overflow:hidden;}
.mada-split-img.has-zimg,.story-img.has-zimg{border:none;}
.mada-split-img.has-zimg::after,.story-img.has-zimg::after,.team-photo.has-zimg::after{content:none;}
.mada-split-img.has-zimg::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(26,18,13,.05),rgba(26,18,13,.18));z-index:1;}

/* LOT 3B.2 correctif — bande « paysages » : photo présente = plus de hachures ni d'étiquette centrale,
   voile bas et légende visibles (mêmes règles que l'ancien état [style*="background-image"]). */

/* ══ LOT 3B.3 — branding final : masters officiels, bascule nav, footer ══
   Les trois exports partagent un canevas identique (ratio 1,16) : la bascule
   hero ↔ scroll se fait dans la même boîte, sans décalage ni CLS. */
.nav-logo{position:relative;display:block;flex:none;width:60px;height:52px;line-height:0;}
.nav-logo .logo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .35s cubic-bezier(.22,1,.36,1);}
.nav-logo .logo-img--light-bg{opacity:0;}
/* Fond clair (nav au scroll, pages à en-tête clair) → logo foncé : ZENO ink + Ravinala gold */
nav.scrolled .nav-logo .logo-img--light-bg,body.page-light nav .nav-logo .logo-img--light-bg{opacity:1;}
nav.scrolled .nav-logo .logo-img--dark-bg,body.page-light nav .nav-logo .logo-img--dark-bg{opacity:0;}
/* Menu mobile ouvert (overlay brun nuit) → version pour fond sombre, quel que soit l'état de la nav */
nav:has(.nav-burger[aria-expanded="true"]) .nav-logo .logo-img--dark-bg{opacity:1;}
nav:has(.nav-burger[aria-expanded="true"]) .nav-logo .logo-img--light-bg{opacity:0;}
@media(max-width:960px){.nav-logo{width:51px;height:44px;}}
/* Footer: transparent official ivory/gold logo. */
.foot-logo{opacity:1;display:inline-block;line-height:0;}
.foot-logo-img{display:block;width:97px;height:84px;}

/* ══ LOT 3B.3 — micro-QA ══ */
/* Menu mobile : le JS (components.js) pose .is-open ; seul .open était stylé → overlay invisible et page bloquée */
.nav-overlay.is-open{opacity:1;pointer-events:all;}
/* Bande paysages Madagascar : sous-titres (EST · ANDASIBE…) lisibles sur le voile */

/* Menu mobile ouvert : le « × » de l'overlay est la seule commande de fermeture (le bouton menu
   de la nav le recouvrait) ; contenu aligné sous la barre du haut et défilable sur petits écrans. */
nav:has(.nav-burger[aria-expanded="true"]) .nav-right{visibility:hidden;}
nav:has(.nav-burger[aria-expanded="true"]){pointer-events:none;}
nav:has(.nav-burger[aria-expanded="true"]) .nav-logo{pointer-events:auto;}
@media(max-width:960px){
  .nav-overlay{justify-content:flex-start;overflow-y:auto;padding:6.5rem 1.5rem 2.5rem;gap:1.7rem;}
}
/* Contraste sur hero : voile brun nuit légèrement renforcé en haut (navigation) et à mi-hauteur
   (surtitre), sans fond derrière les textes ; ombre de texte très légère sur les petits textes. */
.hero-overlay{background:linear-gradient(to bottom,rgba(26,18,13,.64) 0%,rgba(26,18,13,.14) 24%,rgba(26,18,13,.5) 46%,rgba(26,18,13,.7) 66%,rgba(26,18,13,.94) 100%);}
.circ-hero-veil{background:linear-gradient(to top,rgba(26,18,13,.94) 0%,rgba(26,18,13,.42) 55%,rgba(26,18,13,.62) 100%);}
body:not(.page-light) nav:not(.scrolled) .nav-links > li > a,body:not(.page-light) nav:not(.scrolled) .lang-btn{text-shadow:0 1px 3px rgba(26,18,13,.6);}
.hero-eyebrow,.circ-hero-zone{text-shadow:0 1px 3px rgba(26,18,13,.7);}
/* Liens de navigation sur hero : ivoire 88 % ; actif / survol en ivoire plein, l'accent étant porté par le filet latérite éclaircie */
body:not(.page-light) nav:not(.scrolled) .nav-links > li > a{color:rgba(250,246,237,.88);}
body:not(.page-light) nav:not(.scrolled) .nav-links > li > a:hover,body:not(.page-light) nav:not(.scrolled) .nav-links > li > a.active{color:#FAF6ED;}
body:not(.page-light) nav:not(.scrolled) .nav-links > li > a::after{background:var(--champagne);}

/* ══ LOT 3B.3 — correctif final ChatGPT : logo transparent + contraste hero ══ */
/* Le master officiel clair sur fond sombre est maintenant réellement transparent : aucun blend hack. */
body:not(.page-light) .hero-eyebrow,body:not(.page-light) .circ-hero-zone{color:rgba(250,246,237,.96);}
body:not(.page-light) .hero-eyebrow::before{background:var(--champagne);}
body:not(.page-light) nav:not(.scrolled) .nav-links > li > a{color:rgba(250,246,237,.96);}
body:not(.page-light) nav:not(.scrolled) .nav-links > li > a:hover,body:not(.page-light) nav:not(.scrolled) .nav-links > li > a.active{color:#FAF6ED;}
body:not(.page-light) nav:not(.scrolled) .nav-caret{border-color:rgba(250,246,237,.72);}
body:not(.page-light) nav:not(.scrolled) .nav-burger span{background:rgba(250,246,237,.82);}
nav.scrolled .nav-burger span,body.page-light nav .nav-burger span{background:var(--ink);}
/* Renforce uniquement la zone haute du hero pour sécuriser le contraste nav sur les ciels clairs. */
.hero-overlay{background:linear-gradient(to bottom,rgba(26,18,13,.72) 0%,rgba(26,18,13,.20) 26%,rgba(26,18,13,.50) 46%,rgba(26,18,13,.70) 66%,rgba(26,18,13,.94) 100%);}

/* LOT 4A: functional fallbacks and keyboard access. */
.nav-overlay{visibility:hidden;}.nav-overlay.is-open{visibility:visible;}
.nav-sub{visibility:hidden;}.nav-links li.has-sub:hover .nav-sub,.nav-links li.has-sub:focus-within .nav-sub{visibility:visible;}
.nav-overlay .ov-sub{color:#E6AC8E;}.nav-overlay .ov-cta{color:#FAF6ED;border-color:#D97B54;}
.nav-overlay .ov-link:hover,.nav-overlay .ov-sub:hover{color:#F1E8D8;}.nav-overlay .nav-close:hover{color:#FAF6ED;}
.to-top:not(.is-visible),.wa-fab:not(.is-on){visibility:hidden;}
.zeno-enhanced .faq-acc-item:not(.open) .faq-acc-body{visibility:hidden;}.zeno-enhanced .faq-acc-item.open .faq-acc-body{visibility:visible;}
.cf-validation{color:#8C2B14;line-height:1.6;margin-top:1rem;}
.hero-pause{position:absolute;z-index:5;right:2rem;bottom:1rem;min-height:44px;min-width:72px;padding:.5rem .8rem;background:rgba(26,18,13,.72);color:#FAF6ED;border:1px solid rgba(250,246,237,.5);border-radius:2px;font:500 11px Archivo,sans-serif;letter-spacing:.08em;cursor:pointer;}
.hero-pause:focus-visible{outline:2px solid #D97B54;outline-offset:3px;}
html:not(.zeno-enhanced) .hero-eyebrow,html:not(.zeno-enhanced) .hero-cta-wrap,html:not(.zeno-enhanced) .trust-item,html:not(.zeno-enhanced) .reveal,html:not(.zeno-enhanced) .circ-row,html:not(.zeno-enhanced) .circ-back,html:not(.zeno-enhanced) .circ-hero-zone,html:not(.zeno-enhanced) .app-philo{opacity:1!important;transform:none!important;}
html:not(.zeno-enhanced) .hero-title .line span,html:not(.zeno-enhanced) .circ-hero-name .line span{transform:none!important;}
html:not(.zeno-enhanced) .faq-acc-body{max-height:none;overflow:visible;visibility:visible;}
html:not(.zeno-enhanced) .faq-search,html:not(.zeno-enhanced) .faq-filters{display:none;}
html:not(.zeno-enhanced) .wa-fab{visibility:visible;opacity:1;transform:none;}
@media(max-width:960px){
html:not(.zeno-enhanced) nav{position:relative;background:#FAF6ED;flex-wrap:wrap;gap:1rem;padding:1rem 1.5rem;}
html:not(.zeno-enhanced) nav .nav-links{display:flex;order:3;width:100%;flex-wrap:wrap;gap:1.3rem;}
html:not(.zeno-enhanced) body nav .nav-links>li>a{color:#26201A;text-shadow:none;}
html:not(.zeno-enhanced) nav .nav-burger{display:none;}
html:not(.zeno-enhanced) nav .nav-logo .logo-img--light-bg{opacity:1;}html:not(.zeno-enhanced) nav .nav-logo .logo-img--dark-bg{opacity:0;}
html:not(.zeno-enhanced) nav .nav-caret{border-color:#26201A;}}
/* Readable secondary copy on existing light backgrounds. */
.circ-row-zone .circ-row-days,.circ-row-meta,.itin-note,.mada-kpi-l,.cf-lbl,.cf-note,.cta-band-sub,.cta-quick a,.legal-dl dt,.calt-line,.incl-col h3,.incl-col h4,.incl-col.excl li{color:#5A4A3E;}
.cta-band-inner>p[style]{color:#5A4A3E!important;}
.cf-inp::placeholder,.cf-ta::placeholder,.faq-search input::placeholder{color:#5A4A3E;opacity:1;}
.faq-pill.active{color:#FAF6ED;}.foot-copy{color:rgba(250,246,237,.72);}
.circ-back,.circ-back:hover{color:#FAF6ED;}

/* LOT 4B-FIX A — footer contact actions and simplified editorial markers. */
footer .foot-contact-action{color:rgba(242,234,222,.72);border-color:rgba(242,234,222,.22);}
footer .foot-contact-action .ic{color:currentColor;}
footer .foot-contact-action:hover,footer .foot-contact-action:focus-visible{color:var(--champagne);border-color:var(--champagne);background:rgba(217,123,84,.08);padding-left:0;transform:translateY(-1px);}
footer .foot-map-link:hover,footer .foot-mail-link:hover{color:var(--champagne);}

/* ══ LOT 4B-FIX B — HOME + CIRCUITS editorial refinement ══ */
/* F01 · Home links live after both circuit cards. No permanent underline. */
.home-circ-links{max-width:920px;margin:2.15rem auto 0;display:flex;align-items:center;gap:1.75rem;flex-wrap:wrap;}

/* F04 · Editorial, asymmetric approach teaser. Existing validated image slot is retained. */

/* F06 · Circuits comparison: editorial split rows restored after visual review. */
.journey-compare{padding-top:7.5rem;padding-bottom:7rem;}
.journey-compare-head{max-width:900px;margin:0 auto 4.5rem;}
.journey-compare-head .opener-title{max-width:820px;}
.journey-compare-intro{max-width:690px;margin-top:1.5rem;font-size:16px;font-weight:300;line-height:1.9;color:rgba(38,32,26,.68);}
.journey-split-list{max-width:var(--maxw);gap:2.75rem;}
.journey-split{min-height:clamp(430px,58vh,610px);}
.journey-split .circ-row-media{min-height:430px;}
.journey-split .circ-row-body{padding:clamp(3rem,5vw,5rem) clamp(2.5rem,4vw,4rem);}
.journey-split .circ-row-zone{color:var(--gold);}
.journey-split .circ-row-name{color:var(--ink);margin:0 0 1.25rem;}
.journey-split .circ-row-desc{color:rgba(38,32,26,.68);margin-bottom:1.8rem;}
.journey-split .circ-row-meta{color:rgba(38,32,26,.68);margin-bottom:1.45rem;}
.journey-split .circ-row-link{color:var(--muted-gold);text-decoration:none;}
.journey-split .circ-row-link::after{content:none;}
.journey-split:hover .circ-row-link,.journey-split:focus-visible .circ-row-link{color:var(--gold);gap:1.1rem;}
.journey-split:focus-visible{outline:2px solid var(--gold);outline-offset:4px;}
.journey-split .circ-img-alt{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1);}
.journey-split:hover .circ-img-alt{opacity:1;transform:scale(1.035);}
.journey-compare-foot{max-width:var(--maxw);margin:4.25rem auto 0;padding-top:2rem;border-top:1px solid rgba(38,32,26,.1);display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;}
.journey-compare-foot p{max-width:650px;font-size:14px;font-weight:300;line-height:1.85;color:rgba(38,32,26,.65);margin:0;}
.journey-choice-link{display:inline-flex;align-items:center;color:var(--muted-gold);text-decoration:none;font-size:12px;font-weight:500;letter-spacing:.035em;transition:color .25s,transform .35s cubic-bezier(.22,1,.36,1);}
.journey-choice-link:hover,.journey-choice-link:focus-visible{color:var(--gold);transform:translateX(3px);}
.journey-choice-link--quiet{color:rgba(38,32,26,.66);white-space:nowrap;}

@media(max-width:960px){
  
  
  
  .journey-split{min-height:0;}
  .journey-split .circ-row-media{min-height:340px;}
}
@media(max-width:720px){
  .home-circ-links{gap:.55rem 1.25rem;margin-top:1.6rem;}
  
  
  
  
  .journey-compare{padding-top:5.5rem;padding-bottom:5.5rem;}
  .journey-compare-head{margin-bottom:3.25rem;}
  .journey-split-list{gap:2rem;}
  .journey-split .circ-row-media{min-height:260px;}
  .journey-split .circ-row-body{padding:2.75rem 2rem;}
  .journey-compare-foot{margin-top:3.5rem;display:block;}
  .journey-compare-foot .journey-choice-link{margin-top:1.15rem;}
}

/* ══ LOT 4B-FIX C — APPROCHE editorial refinement ══ */
.approach-intro-section{padding-bottom:3rem;}
.approach-intro{max-width:860px;margin:0 auto;text-align:center;}
.approach-intro .page-intro{margin:0;}
.approach-story-section{padding-top:3rem;}

/* F07/F09/F15 · founders: editorial profiles, no large cards or decorative numbering. */
.founders-head{max-width:760px;margin-bottom:4rem;}
.founders-head .opener-lead{max-width:650px;}
.founders-grid{max-width:var(--maxw);margin:0 auto;display:grid;gap:4.5rem;}
.founder-profile{display:grid;grid-template-columns:minmax(210px,.72fr) minmax(0,1.28fr);gap:clamp(2.5rem,5vw,5rem);align-items:center;padding-top:2.25rem;border-top:1px solid rgba(38,32,26,.12);}
.founder-profile-reverse{grid-template-columns:minmax(0,1.28fr) minmax(210px,.72fr);}
.founder-profile-reverse .founder-photo{order:2;}
.founder-profile-reverse .founder-copy{order:1;}
.founder-photo{width:min(100%,310px);height:auto;aspect-ratio:1/1;margin:0;justify-self:start;}
.founder-profile-reverse .founder-photo{justify-self:end;}
.founder-name{font-family:var(--font-serif);font-size:clamp(32px,4vw,46px);font-weight:300;line-height:1.08;color:var(--ink);margin:0 0 .8rem;}
.founder-role{font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-gold);margin-bottom:1.35rem;line-height:1.55;}
.founder-bio{font-size:15px;font-weight:300;line-height:1.9;color:rgba(38,32,26,.74);max-width:680px;margin:0;}

/* F15 · local network: lightweight icon-led list, not card UI. */
.local-network{max-width:var(--maxw);margin:0 auto;}
.local-network-head{max-width:860px;margin-bottom:3.75rem;}
.local-network-head .opener-lead{max-width:720px;}
.network-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(3rem,7vw,7rem);row-gap:0;border-top:1px solid rgba(38,32,26,.12);}
.network-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:1.15rem;padding:2rem 0;border-bottom:1px solid rgba(38,32,26,.12);align-items:start;}
.network-icon{width:24px;height:24px;color:var(--gold);margin-top:.2rem;}
.network-item h3{font-family:var(--font-serif);font-size:25px;font-weight:300;line-height:1.15;color:var(--ink);margin:0 0 .55rem;}
.network-item p{font-size:14.5px;font-weight:300;line-height:1.8;color:rgba(38,32,26,.72);margin:0;}
.network-conclusion{margin-top:3rem;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,5rem);align-items:start;}
.network-conclusion p{font-size:14.5px;font-weight:300;line-height:1.9;color:rgba(38,32,26,.7);margin:0;}
.network-conclusion .network-main{font-family:var(--font-serif);font-size:clamp(24px,3vw,34px);line-height:1.35;color:var(--ink);}

/* F13/F14 · commitments: two editorial columns, no card treatment. */
.approach-principles{max-width:var(--maxw);margin:3rem auto 0;display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,7vw,7rem);}
.approach-principle{padding-top:1.8rem;border-top:1px solid rgba(38,32,26,.14);}
.approach-principle h3{font-family:var(--font-serif);font-size:clamp(27px,3.2vw,38px);font-weight:300;line-height:1.15;color:var(--ink);margin:0 0 1rem;}
.approach-principle p{font-size:15px;font-weight:300;line-height:1.9;color:rgba(38,32,26,.74);margin:0;}

/* F08/F10 · client journey: semantic sequence without 01/02/03 or cards. */
.journey-wrap{max-width:var(--maxw);margin:0 auto;}
.journey-head{max-width:820px;margin-bottom:3.75rem;}
.journey-flow{border-top:1px solid rgba(38,32,26,.14);}
.journey-step{display:grid;grid-template-columns:minmax(145px,.32fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);padding:2.4rem 0;border-bottom:1px solid rgba(38,32,26,.12);align-items:start;}
.journey-phase{font-size:9px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);padding-top:.35rem;}
.journey-step-copy h3{font-family:var(--font-serif);font-size:clamp(28px,3.5vw,40px);font-weight:300;line-height:1.15;color:var(--ink);margin:0 0 .9rem;}
.journey-step-copy p{font-size:15px;font-weight:300;line-height:1.9;color:rgba(38,32,26,.74);max-width:760px;margin:0;}
.journey-close{margin-top:4rem;max-width:720px;}
.journey-close h2{font-family:var(--font-serif);font-size:clamp(36px,5vw,56px);font-weight:300;line-height:1.05;color:var(--ink);margin:0 0 1rem;}
.journey-close p{font-size:15px;font-weight:300;line-height:1.8;color:rgba(38,32,26,.7);margin:0 0 1.4rem;}
.journey-close-link{display:inline-flex;align-items:center;color:var(--muted-gold);font-size:12px;font-weight:500;letter-spacing:.04em;text-decoration:none;transition:color .25s,transform .35s cubic-bezier(.22,1,.36,1);}
.journey-close-link:hover,.journey-close-link:focus-visible{color:var(--gold);transform:translateX(3px);}

@media(max-width:860px){
  .founder-profile,.founder-profile-reverse{grid-template-columns:1fr;gap:2rem;}
  .founder-profile-reverse .founder-photo,.founder-profile-reverse .founder-copy{order:initial;}
  .founder-photo,.founder-profile-reverse .founder-photo{justify-self:start;width:min(72vw,270px);}
  .network-grid,.network-conclusion,.approach-principles{grid-template-columns:1fr;}
  .network-grid{column-gap:0;}
  .network-conclusion{gap:1.5rem;}
}
@media(max-width:640px){
  .approach-intro-section{padding-bottom:2rem;}
  .founders-grid{gap:3.25rem;}
  .founder-profile{padding-top:1.75rem;}
  .founder-photo,.founder-profile-reverse .founder-photo{width:min(78vw,240px);}
  .network-item{grid-template-columns:30px minmax(0,1fr);padding:1.65rem 0;}
  .approach-principles{gap:2.5rem;}
  .journey-step{grid-template-columns:1fr;gap:.75rem;padding:2rem 0;}
  .journey-phase{padding-top:0;}
  .journey-close{margin-top:3rem;}
}

/* ══ LOT 4B-FIX D — CONTACT + LEGAL ══ */
/* F11 · Contact: 38/62 editorial split, lightweight trust cues, no cards. */
.contact-grid-4b{grid-template-columns:minmax(250px,.62fr) minmax(0,1fr);gap:clamp(3rem,7vw,7rem);}
.contact-kicker{font-size:9px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:1.1rem;}
.contact-panel-title{font-family:var(--font-serif);font-size:clamp(38px,4.8vw,58px);font-weight:300;line-height:1.04;color:var(--ink);margin:0 0 1.4rem;max-width:520px;}
.contact-aside-4b .ct-lead{max-width:540px;color:rgba(38,32,26,.72);}
.ct-trust-4b{gap:1.25rem;margin-top:2.25rem;}
.ct-trust-detail{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:start;gap:.85rem;color:var(--ink);}
.ct-trust-detail::before{content:none;}
.ct-trust-detail .ic{width:20px;height:20px;color:var(--gold);margin-top:.1rem;}
.ct-trust-detail strong{display:block;font-size:13px;font-weight:500;line-height:1.4;color:var(--ink);margin-bottom:.25rem;}
.ct-trust-detail span{display:block;font-size:13px;font-weight:300;line-height:1.65;color:rgba(38,32,26,.68);}
.contact-direct{margin-top:2.6rem;padding-top:1.8rem;border-top:1px solid rgba(38,32,26,.12);}
.contact-direct .calt-q{font-family:var(--font-serif);font-size:20px;font-style:normal;color:var(--ink);}
.contact-direct .calt-line{color:rgba(38,32,26,.68);line-height:2.05;}
.contact-direct .calt-line a{color:var(--muted-gold);}
.contact-form-wrap-4b{min-width:0;}
.cf-preference{border:0;padding:0;margin:0;min-width:0;}
.cf-preference .cf-lbl{padding:0;margin-bottom:.75rem;}
.cf-radio-row{display:flex;flex-wrap:wrap;gap:.7rem 1.25rem;}
.cf-radio{display:inline-flex;align-items:center;gap:.55rem;min-height:36px;font-size:13px;font-weight:300;color:rgba(38,32,26,.76);cursor:pointer;}
.cf-radio input{width:16px;height:16px;margin:0;accent-color:var(--gold);}
.cf-radio:focus-within{outline:2px solid rgba(176,55,27,.28);outline-offset:4px;border-radius:2px;}
.contact-form-wrap-4b .cf-note{color:rgba(38,32,26,.64);font-size:11px;line-height:1.65;}
.contact-form-wrap-4b .cf-submit{color:var(--cream);}

@media(max-width:860px){
  .contact-grid-4b{grid-template-columns:1fr;gap:3.5rem;}
  .contact-panel-title{max-width:620px;}
}
@media(max-width:560px){
  .cf-radio-row{display:grid;grid-template-columns:1fr;gap:.35rem;}
  .cf-radio{min-height:40px;}
}

/* ══ QA PATCH 2 — Circuits conclusion + Approche premium hierarchy ══ */
/* Scope intentionally limited to CIRCUITS and APPROCHE. Semantic copy is unchanged. */

/* CIRCUITS · keep the AEO answer visible but make it part of the editorial close. */
.journey-editorial-close{max-width:var(--maxw);margin:3.25rem auto 0;border-top:1px solid rgba(38,32,26,.12);}
.journey-editorial-close .journey-compare-foot{max-width:none;margin:0;padding:1.65rem 0 2.65rem;border-top:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:2.5rem;}
.journey-editorial-close .journey-compare-foot p{max-width:720px;font-family:var(--font-serif);font-size:clamp(19px,2vw,25px);font-weight:300;line-height:1.55;color:var(--ink);}
.journey-editorial-close .journey-choice-link{margin-top:.35rem;}
.journey-aeo{padding:2.75rem 0 1rem;border-top:1px solid rgba(38,32,26,.09);}
.journey-aeo .aeo-inner{max-width:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:clamp(3rem,7vw,7rem);align-items:start;}
.journey-aeo .aeo-q{font-size:clamp(27px,3.2vw,39px);line-height:1.15;margin:0;color:var(--ink);}
.journey-aeo .aeo-a{font-size:15px;font-weight:300;line-height:1.9;color:rgba(38,32,26,.74);max-width:760px;margin:.15rem 0 0;opacity:1;}

/* APPROCHE · page-level rhythm: left-aligned editorial opening rather than stacked centered blocks. */
.approach-intro-section{padding-bottom:4rem;}
.approach-intro{max-width:var(--maxw);margin:0 auto;text-align:left;}
.approach-intro .page-intro{max-width:900px;margin:0;font-size:clamp(24px,2.75vw,34px);line-height:1.55;color:rgba(38,32,26,.84);}
.approach-story-section{padding-top:4rem;}
.approach-story-section .story-head{max-width:860px;margin:0 0 3.75rem;text-align:left;}
.approach-story-section .story-title{font-style:normal;font-size:clamp(32px,4.2vw,52px);line-height:1.15;}

/* APPROCHE · founders: restore the historical premium cards and hover/GSAP behaviour. */
.founders-section{padding-top:7rem;padding-bottom:7rem;}
.founders-head{max-width:var(--maxw);margin:0 auto 3.25rem;}
.founders-head .opener-title{max-width:700px;}
.founders-head .opener-lead{max-width:720px;}
.founders-cards{max-width:1040px;margin-top:3.25rem;gap:2.25rem;}
.founders-cards .team-member{padding:3rem 2.5rem 2.75rem;background:rgba(var(--accent-rgb),.035);border-color:rgba(143,114,72,.18);}
.founders-cards .team-photo{width:172px;height:172px;margin-bottom:1.65rem;}
.founders-cards .team-name{font-size:clamp(27px,2.6vw,34px);}
.founders-cards .team-role{max-width:360px;line-height:1.65;margin:.7rem 0 1.15rem;}
.founders-cards .team-bio{max-width:390px;font-size:14.5px;line-height:1.85;}

/* APPROCHE · Experience Zeno: asymmetric editorial split, no card grid. */
.approach-commitments-section{display:grid;grid-template-columns:minmax(250px,.76fr) minmax(0,1.24fr);gap:clamp(3.5rem,8vw,8rem);align-items:start;}
.approach-commitments-section>.opener{margin:0;}
.approach-commitments-section>.opener .opener-title{font-size:clamp(34px,4.1vw,52px);max-width:520px;}
.approach-principles{max-width:none;margin:0;display:block;}
.approach-principle{padding:0 0 2.6rem;margin:0 0 2.6rem;border-top:0;border-bottom:1px solid rgba(38,32,26,.13);}
.approach-principle:last-child{margin-bottom:0;border-bottom:0;padding-bottom:0;}
.approach-principle h3{font-size:clamp(28px,3.2vw,40px);margin-bottom:1rem;max-width:620px;}
.approach-principle p{max-width:700px;}

/* APPROCHE · Local network: one hierarchy, one grouped system, one conclusion. */
.local-network-section{padding-top:7rem;padding-bottom:7rem;}
.local-network-head{max-width:var(--maxw);margin:0 0 3.25rem;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);column-gap:clamp(3rem,7vw,7rem);align-items:end;}
.local-network-head .opener-kicker{grid-column:1/-1;margin-bottom:1.5rem;}
.local-network-head .opener-title{grid-column:1;max-width:720px;margin:0;}
.local-network-head .opener-lead{grid-column:2;max-width:520px;margin:0 0 .3rem;}
.network-grid{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:0;border-top:1px solid rgba(38,32,26,.12);border-bottom:1px solid rgba(38,32,26,.12);}
.network-item{display:block;padding:2.25rem 1.6rem 2.4rem;border-bottom:0;border-right:1px solid rgba(38,32,26,.1);}
.network-item:first-child{padding-left:0;padding-right:2rem;}
.network-item:last-child{border-right:0;padding-right:0;padding-left:2rem;}
.network-icon{width:22px;height:22px;margin:0 0 1.25rem;color:var(--gold);}
.network-item h3{font-size:clamp(22px,2.1vw,27px);margin-bottom:.7rem;}
.network-item p{font-size:14px;line-height:1.75;}
.network-conclusion{margin-top:3.25rem;display:block;max-width:900px;}
.network-conclusion .network-main{font-size:clamp(27px,3.25vw,40px);line-height:1.3;max-width:820px;margin:0 0 1.2rem;}
.network-conclusion p:not(.network-main){max-width:720px;font-size:14.5px;line-height:1.85;color:rgba(38,32,26,.64);}

/* APPROCHE · Journey with Zeno: staggered editorial sequence, no repeated template rows. */
.journey-section{padding-top:7rem;padding-bottom:8rem;}
.journey-head{max-width:900px;margin-bottom:4.75rem;}
.journey-flow{border-top:0;display:grid;gap:clamp(3.25rem,6vw,5.5rem);}
.journey-step{grid-template-columns:minmax(130px,.28fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);padding:0;border:0;align-items:start;max-width:930px;}
.journey-step:nth-child(2){margin-left:clamp(4rem,10vw,10rem);}
.journey-step:nth-child(3){margin-left:clamp(1.5rem,4vw,4rem);}
.journey-phase{padding-top:.5rem;font-size:9px;letter-spacing:.25em;}
.journey-step-copy{padding-bottom:2rem;border-bottom:1px solid rgba(38,32,26,.11);}
.journey-step-copy h3{font-size:clamp(30px,3.7vw,44px);margin-bottom:1rem;}
.journey-step-copy p{max-width:700px;}
.journey-close{max-width:none;margin-top:5.5rem;padding-top:2.75rem;border-top:1px solid rgba(38,32,26,.13);display:grid;grid-template-columns:minmax(0,.95fr) minmax(280px,1.05fr);column-gap:clamp(3rem,7vw,7rem);align-items:start;}
.journey-close h2{grid-column:1;font-size:clamp(34px,4.5vw,52px);max-width:560px;margin:0;}
.journey-close p{grid-column:2;margin:.4rem 0 1.25rem;max-width:520px;}
.journey-close-link{grid-column:2;justify-self:start;}

@media(max-width:1050px){
  .network-grid{grid-template-columns:1fr 1fr;}
  .network-item{border-bottom:1px solid rgba(38,32,26,.1);}
  .network-item:nth-child(2){border-right:0;padding-right:0;}
  .network-item:nth-child(3){padding-left:0;}
  .network-item:nth-child(3),.network-item:nth-child(4){border-bottom:0;}
}
@media(max-width:860px){
  .journey-aeo .aeo-inner{grid-template-columns:1fr;gap:1.25rem;}
  .approach-commitments-section{grid-template-columns:1fr;gap:3rem;}
  .approach-commitments-section>.opener{position:static;}
  .local-network-head{grid-template-columns:1fr;row-gap:1.25rem;}
  .local-network-head .opener-title,.local-network-head .opener-lead{grid-column:1;}
  .journey-step:nth-child(2),.journey-step:nth-child(3){margin-left:0;}
  .journey-close{grid-template-columns:1fr;row-gap:1rem;}
  .journey-close h2,.journey-close p,.journey-close-link{grid-column:1;}
  .journey-close p{margin:.25rem 0 .5rem;}
}
@media(max-width:640px){
  .journey-editorial-close{margin-top:2.5rem;}
  .journey-editorial-close .journey-compare-foot{grid-template-columns:1fr;gap:1rem;padding:1.4rem 0 2.2rem;}
  .journey-aeo{padding-top:2.2rem;}
  .approach-intro .page-intro{font-size:clamp(22px,7vw,28px);}
  .founders-section,.local-network-section,.journey-section{padding-top:5rem;padding-bottom:5rem;}
  .founders-cards .team-member{padding:2.5rem 1.5rem;}
  .network-grid{grid-template-columns:1fr;}
  .network-item,.network-item:first-child,.network-item:last-child,.network-item:nth-child(2),.network-item:nth-child(3){padding:1.7rem 0;border-right:0;border-bottom:1px solid rgba(38,32,26,.1);}
  .network-item:last-child{border-bottom:0;}
  .journey-head{margin-bottom:3.25rem;}
  .journey-step{grid-template-columns:1fr;gap:.75rem;}
  .journey-step-copy{padding-bottom:1.5rem;}
  .journey-close{margin-top:4rem;padding-top:2.2rem;}
}

/* ══ QA PATCH 3 — Contact hierarchy + form progression + primary CTA ══ */
/* Scope: Contact only. Formspree endpoint, field names, validation and copy remain unchanged. */
.contact-section{padding-top:6.75rem;padding-bottom:7.25rem;}
.contact-grid-4b{align-items:start;}
.contact-aside-4b{position:sticky;top:7.5rem;align-self:start;}
.contact-panel-title{font-size:clamp(40px,4.35vw,54px);line-height:1.06;margin-bottom:1.25rem;}
.contact-aside-4b .ct-lead{font-size:clamp(17px,1.7vw,21px);line-height:1.72;max-width:500px;}

/* Trust cues read as one editorial ledger, not three mini-cards. */
.ct-trust-4b{gap:0;margin-top:2.5rem;border-top:1px solid rgba(38,32,26,.12);}
.ct-trust-4b .ct-trust-detail{padding:1rem 0;border-bottom:1px solid rgba(38,32,26,.1);}
.ct-trust-detail .ic{width:18px;height:18px;margin-top:.18rem;}
.ct-trust-detail strong{font-size:12.5px;letter-spacing:.01em;margin-bottom:.2rem;}
.ct-trust-detail span{font-size:12.5px;line-height:1.6;}
.contact-direct{margin-top:2.3rem;padding-top:1.55rem;}
.contact-direct .calt-q{font-size:18px;line-height:1.4;margin-bottom:.9rem;}
.contact-direct .calt-line{font-size:12.5px;line-height:1.95;}

/* Keep the form visually distinct and narrower than the raw grid column. */
.contact-form-wrap-4b{width:100%;max-width:760px;justify-self:end;padding-top:.15rem;}
.cform-qa3{gap:2.55rem;}
.cform-qa3 .cf-stage{position:relative;display:flex;flex-direction:column;gap:1.55rem;padding-top:2.25rem;border-top:1px solid rgba(38,32,26,.13);}
.cform-qa3 .cf-stage::before{position:absolute;top:.62rem;left:0;font-size:8.5px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--muted-gold);}
html[lang="fr"] .cf-stage-trip::before{content:"Votre voyage";}
html[lang="en"] .cf-stage-trip::before{content:"Your trip";}
html[lang="fr"] .cf-stage-wishes::before{content:"Vos envies";}
html[lang="en"] .cf-stage-wishes::before{content:"Your preferences";}
html[lang="fr"] .cf-stage-contact::before{content:"Pour vous recontacter";}
html[lang="en"] .cf-stage-contact::before{content:"How to reach you";}
.cform-qa3 .cf-lbl{color:rgba(38,32,26,.64);letter-spacing:.23em;}
.cform-qa3 .cf-inp,.cform-qa3 .cf-ta,.cform-qa3 .cf-sel{padding:.82rem 0;border-bottom-color:rgba(38,32,26,.24);}
.cform-qa3 .cf-inp:hover,.cform-qa3 .cf-ta:hover,.cform-qa3 .cf-sel:hover{border-bottom-color:rgba(38,32,26,.42);}
.cform-qa3 .cf-inp:focus,.cform-qa3 .cf-ta:focus,.cform-qa3 .cf-sel:focus{border-bottom-color:var(--gold);}
.cform-qa3 .cf-ta{min-height:132px;}
.cform-qa3 .cf-preference .cf-lbl{margin-bottom:.6rem;}
.cform-qa3 .cf-radio-row{gap:.65rem 1.6rem;}
.cform-qa3 .cf-radio{font-size:13px;color:rgba(38,32,26,.8);}
.contact-form-wrap-4b .cf-note{margin:0;color:rgba(38,32,26,.58);font-size:10.5px;line-height:1.65;max-width:560px;}

/* The submit action is the clear primary exit of the form, not an outline/disabled-looking control. */
.contact-form-wrap-4b .cf-submit{align-self:flex-start;margin-top:.15rem;min-width:230px;padding:1rem 1.55rem;background:var(--gold);border-color:var(--gold);color:var(--lin);box-shadow:none;letter-spacing:.18em;}
.contact-form-wrap-4b .cf-submit:hover{background:var(--muted-gold);border-color:var(--muted-gold);color:var(--lin);transform:translateY(-1px);box-shadow:0 12px 26px -18px rgba(38,32,26,.45);}
.contact-form-wrap-4b .cf-submit:focus-visible{outline:2px solid var(--muted-gold);outline-offset:4px;color:var(--lin);}
.contact-form-wrap-4b .cf-submit:disabled{cursor:wait;filter:saturate(.65);}

@media(max-width:860px){
  .contact-section{padding-top:5.25rem;padding-bottom:5.75rem;}
  .contact-aside-4b{position:static;}
  .contact-form-wrap-4b{max-width:none;justify-self:stretch;}
}
@media(max-width:560px){
  .cform-qa3{gap:2.2rem;}
  .cform-qa3 .cf-stage{gap:1.35rem;padding-top:2.1rem;}
  .contact-form-wrap-4b .cf-submit{width:100%;min-width:0;}
}

/* ══ QA PATCH 4 — Approche continuous editorial flow + Contact minimal editorial ══
   Scope: APPROCHE and CONTACT only. No change to routes, images, Formspree or field logic. */

/* APPROCHE · One continuous editorial chapter after the founders. */
.approach-continuum-section{
  padding-top:6.5rem;
  padding-bottom:8rem;
}
.approach-continuum{
  max-width:var(--maxw);
  margin:0 auto;
}
.approach-flow-row{
  display:grid;
  grid-template-columns:minmax(150px,220px) minmax(0,1fr);
  gap:clamp(2.5rem,6vw,6.5rem);
  align-items:start;
}
.approach-flow-row + .approach-flow-row{
  margin-top:clamp(3.4rem,5.5vw,5rem);
}
.approach-flow-rail{
  padding-top:.4rem;
}
.approach-flow-kicker{
  display:inline-block;
  font-size:9px;
  font-weight:500;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--gold);
}
.approach-flow-note{
  display:inline-block;
  font-family:var(--font-serif);
  font-size:18px;
  font-weight:300;
  font-style:italic;
  line-height:1.45;
  color:rgba(38,32,26,.58);
}
.approach-flow-main{
  min-width:0;
  max-width:940px;
}
.approach-flow-title{
  max-width:760px;
  margin:0;
  font-family:var(--font-serif);
  font-size:clamp(40px,5.2vw,64px);
  font-weight:300;
  line-height:1.06;
  color:var(--ink);
}
.approach-flow-principles{
  max-width:790px;
  margin-top:3.4rem;
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(2.5rem,5vw,5rem);
}
.approach-flow-principle{
  padding:0;
  margin:0;
}
.approach-flow-principle h3,.approach-flow-step h3,.approach-network-item h3{
  font-family:var(--font-serif);
  font-weight:300;
  color:var(--ink);
}
.approach-flow-principle h3{
  margin:0 0 .8rem;
  font-size:clamp(25px,2.7vw,34px);
  line-height:1.17;
}
.approach-flow-principle p,.approach-flow-copy p,.approach-flow-step p,.approach-network-item p,.approach-network-conclusion p{
  margin:0;
  font-size:15px;
  font-weight:300;
  line-height:1.88;
  color:rgba(38,32,26,.72);
}
.approach-flow-copy h2,.approach-flow-subtitle{
  max-width:760px;
  margin:0 0 1.15rem;
  font-family:var(--font-serif);
  font-size:clamp(31px,3.9vw,46px);
  font-weight:300;
  line-height:1.14;
  color:var(--ink);
}
.approach-flow-copy p{
  max-width:760px;
  font-size:clamp(15px,1.45vw,17px);
}
.approach-flow-philosophy .approach-flow-main{
  max-width:800px;
}
.approach-flow-journey .approach-flow-main{
  max-width:880px;
}
.approach-flow-steps{
  margin-top:2.35rem;
  display:grid;
  gap:2.15rem;
  max-width:790px;
}
.approach-flow-step{
  max-width:730px;
}
.approach-flow-step:nth-child(2),.approach-flow-step:nth-child(3){
  margin-left:0;
}
.approach-flow-phase{
  margin-bottom:.65rem;
  font-size:10px;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted-gold);
}
.approach-flow-step h3{
  margin:0 0 .75rem;
  font-size:clamp(26px,3vw,37px);
  line-height:1.17;
}
.approach-flow-step p{
  max-width:650px;
}
.approach-network-intro{
  max-width:820px;
}
.approach-network-list{
  margin-top:3.2rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2.5rem clamp(3rem,6vw,6rem);
  max-width:860px;
}
.approach-network-item{
  padding:0;
  border:0;
}
.approach-network-item h3{
  margin:0 0 .55rem;
  font-size:clamp(21px,2.2vw,27px);
  line-height:1.2;
}
.approach-network-item p{
  max-width:360px;
  font-size:14px;
  line-height:1.75;
  color:rgba(38,32,26,.66);
}
.approach-network-conclusion{
  margin-top:3.75rem;
  max-width:810px;
}
.approach-network-conclusion .approach-network-main{
  margin:0 0 1rem;
  font-family:var(--font-serif);
  font-size:clamp(27px,3.25vw,39px);
  font-weight:300;
  line-height:1.32;
  color:var(--ink);
}
.approach-network-conclusion p:not(.approach-network-main){
  max-width:690px;
  font-size:14.5px;
  color:rgba(38,32,26,.62);
}
.approach-flow-close{
  margin-top:clamp(4rem,6.5vw,5.75rem) !important;
}
.approach-flow-close .journey-close{
  margin:0;
  padding:0;
  border:0;
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(250px,1.05fr);
  column-gap:clamp(2.5rem,6vw,6rem);
  align-items:start;
}
.approach-flow-close .journey-close h2{
  grid-column:1;
  max-width:520px;
  margin:0;
  font-size:clamp(32px,4.2vw,48px);
}
.approach-flow-close .journey-close p{
  grid-column:2;
  max-width:470px;
  margin:.25rem 0 1.15rem;
}
.approach-flow-close .journey-close-link{
  grid-column:2;
  justify-self:start;
}

/* CONTACT · Minimal editorial composition: hierarchy by spacing, not separator lines. */
.contact-section{
  padding-top:6.25rem;
  padding-bottom:7rem;
}
.contact-grid-4b{
  grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
  gap:clamp(3.5rem,7vw,7.5rem);
  align-items:start;
}
.contact-aside-4b{
  position:static;
}
.contact-kicker{
  margin-bottom:1rem;
}
.contact-panel-title{
  max-width:500px;
  margin-bottom:1.2rem;
  font-size:clamp(38px,4.2vw,52px);
  line-height:1.07;
}
.contact-aside-4b .ct-lead{
  max-width:470px;
  font-size:clamp(16px,1.55vw,19px);
  line-height:1.72;
}
.ct-reassurance{
  max-width:450px;
  margin:1.15rem 0 0;
  font-size:13px;
  font-weight:300;
  line-height:1.75;
  color:rgba(38,32,26,.58);
}
.ct-trust-4b{
  margin-top:2.4rem;
  gap:1.15rem;
  border:0;
}
.ct-trust-4b .ct-trust-detail{
  display:block;
  padding:0;
  border:0;
}
.ct-trust-detail .ic{
  display:none;
}
.ct-trust-detail strong{
  margin-bottom:.22rem;
  font-size:13px;
  font-weight:500;
  letter-spacing:0;
}
.ct-trust-detail span{
  max-width:420px;
  font-size:12.5px;
  line-height:1.58;
}
.contact-direct{
  margin-top:2.75rem;
  padding-top:0;
  border:0;
}
.contact-direct .calt-q{
  margin-bottom:.9rem;
  font-size:18px;
  line-height:1.4;
}
.contact-direct .calt-line{
  gap:.6rem;
  font-size:12.5px;
  line-height:1.9;
}
.contact-direct .calt-line a{
  border-bottom:0;
  text-decoration:none;
}
.contact-form-wrap-4b{
  width:100%;
  max-width:780px;
  justify-self:end;
  padding-top:0;
}
.cform-qa3{
  gap:1.4rem;
}
.cform-qa3 .cf-stage{
  position:static;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
  padding:0;
  border:0;
}
.cform-qa3 .cf-stage::before{
  content:none !important;
  display:none;
}
.cform-qa3 .cf-field{
  gap:.48rem;
}
.cform-qa3 .cf-lbl{
  padding:0;
  margin:0;
  font-size:10px;
  font-weight:500;
  letter-spacing:.08em;
  text-transform:none;
  color:rgba(38,32,26,.68);
}
.cform-qa3 .cf-inp,.cform-qa3 .cf-ta,.cform-qa3 .cf-sel{
  width:100%;
  padding:1rem 1.05rem;
  border:1px solid transparent;
  border-radius:2px;
  background:rgba(38,32,26,.035);
  color:var(--ink);
  transition:background .25s,border-color .25s,box-shadow .25s;
}
.cform-qa3 .cf-sel{
  padding-right:2.7rem;
  background-position:right 1rem center;
}
.cform-qa3 .cf-inp:hover,.cform-qa3 .cf-ta:hover,.cform-qa3 .cf-sel:hover{
  border-color:rgba(38,32,26,.10);
  background:rgba(38,32,26,.05);
}
.cform-qa3 .cf-inp:focus,.cform-qa3 .cf-ta:focus,.cform-qa3 .cf-sel:focus{
  border-color:rgba(var(--accent-rgb),.62);
  background:rgba(255,255,255,.34);
  box-shadow:0 0 0 3px rgba(var(--accent-rgb),.07);
}
.cform-qa3 .cf-inp.err,.cform-qa3 .cf-ta.err{
  border-color:rgba(176,55,27,.7);
  box-shadow:0 0 0 3px rgba(var(--accent-rgb),.06);
}
.cform-qa3 .cf-ta{
  min-height:150px;
  resize:vertical;
}
.cform-qa3 .cf-stage-wishes{
  margin-top:.15rem;
}
.cform-qa3 .cf-stage-contact{
  margin-top:.35rem;
  gap:1rem;
}
.cform-qa3 .cf-preference .cf-lbl{
  margin-bottom:.15rem;
}
.cform-qa3 .cf-radio-row{
  gap:.65rem 1.5rem;
}
.cform-qa3 .cf-radio{
  min-height:32px;
  font-size:13px;
}
.contact-form-wrap-4b .cf-note{
  margin:.1rem 0 0;
}
.contact-form-wrap-4b .cf-submit{
  min-width:220px;
  margin-top:.25rem;
  padding:1.05rem 1.55rem;
  background:var(--gold);
  border-color:var(--gold);
  color:var(--lin);
  box-shadow:none;
  letter-spacing:.13em;
}
.contact-form-wrap-4b .cf-submit:hover{
  background:var(--muted-gold);
  border-color:var(--muted-gold);
  color:var(--lin);
  transform:translateY(-1px);
  box-shadow:0 12px 24px -18px rgba(38,32,26,.42);
}

@media(max-width:900px){
  .approach-flow-row{
    grid-template-columns:minmax(120px,170px) minmax(0,1fr);
    gap:2.5rem;
  }
  .approach-flow-principles{
    grid-template-columns:1fr;
    gap:2rem;
  }
  .contact-grid-4b{
    grid-template-columns:1fr;
    gap:4rem;
  }
  .contact-form-wrap-4b{
    max-width:none;
    justify-self:stretch;
  }
}
@media(max-width:680px){
  .approach-continuum-section{
    padding-top:5rem;
    padding-bottom:5.5rem;
  }
  .approach-flow-row{
    grid-template-columns:1fr;
    gap:1rem;
  }
  .approach-flow-row + .approach-flow-row{
    margin-top:3.25rem;
  }
  .approach-flow-rail{
    padding-top:0;
  }
  .approach-flow-note{
    font-size:16px;
  }
  .approach-flow-title{
    font-size:clamp(36px,11vw,48px);
  }
  .approach-flow-principles{
    margin-top:2.5rem;
  }
  .approach-flow-step:nth-child(2),.approach-flow-step:nth-child(3){
    margin-left:0;
  }
  .approach-network-list{
    grid-template-columns:1fr;
    gap:1.6rem;
    margin-top:2.4rem;
  }
  .approach-flow-close .journey-close{
    grid-template-columns:1fr;
    gap:.65rem;
  }
  .approach-flow-close .journey-close h2,.approach-flow-close .journey-close p,.approach-flow-close .journey-close-link{
    grid-column:1;
  }
  .approach-flow-close .journey-close p{
    margin:.2rem 0 .55rem;
  }
  .contact-section{
    padding-top:5rem;
    padding-bottom:5.5rem;
  }
  .contact-grid-4b{
    gap:3.4rem;
  }
  .cform-qa3{
    gap:1.25rem;
  }
  .cform-qa3 .cf-stage{
    gap:1.1rem;
  }
  .contact-form-wrap-4b .cf-submit{
    width:100%;
    min-width:0;
  }
}

/* ══ QA5-A — Notre approche: harmonisation éditoriale globale ══
   Scope strict: page APPROCHE. Keep content, media mapping, SEO/AEO/GEO and historical team interactions. */
.approach-page{
  --approach-rail:clamp(150px,15vw,215px);
  --approach-gap:clamp(2.75rem,6vw,6.25rem);
  --approach-reading:760px;
}

/* One page rhythm from intro to founders. */
.approach-page .approach-intro-section{
  padding-top:6.75rem;
  padding-bottom:2.75rem;
}
.approach-page .approach-intro{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:var(--approach-rail) minmax(0,1fr);
  column-gap:var(--approach-gap);
}
.approach-page .approach-intro .page-intro{
  grid-column:2;
  max-width:900px;
  margin:0;
  font-size:clamp(24px,2.65vw,34px);
  line-height:1.5;
  letter-spacing:-.01em;
}

.approach-page .approach-story-section{
  padding-top:2.75rem;
  padding-bottom:6.5rem;
}
.approach-page .story-head{
  max-width:var(--maxw);
  margin:0 auto 3.75rem;
  display:grid;
  grid-template-columns:var(--approach-rail) minmax(0,1fr);
  column-gap:var(--approach-gap);
  align-items:start;
  text-align:left;
}
.approach-page .story-label{
  grid-column:1;
  margin:.55rem 0 0;
  font-size:9px;
  letter-spacing:.28em;
  color:var(--muted-gold);
}
.approach-page .story-title{
  grid-column:2;
  max-width:800px;
  margin:0;
  font-style:normal;
  font-size:clamp(34px,4.25vw,53px);
  line-height:1.12;
  letter-spacing:-.012em;
}
.approach-page .story-grid{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(3.25rem,7vw,6.75rem);
  align-items:center;
}
.approach-page .story-img{
  margin-top:0;
  aspect-ratio:4/5;
  border-radius:3px;
  box-shadow:0 34px 76px -52px rgba(38,32,26,.42);
}
.approach-page .story-text{
  max-width:610px;
}
.approach-page .story-text p{
  font-size:15.5px;
  line-height:1.9;
  margin-bottom:1.35rem;
  color:rgba(38,32,26,.76);
}
.approach-page .story-text p:first-child::first-letter{
  font-size:3.05em;
  color:var(--gold);
}
.approach-page .story-text .story-punch{
  max-width:560px;
  margin-top:2rem;
  padding-left:0;
  border-left:0;
  font-size:clamp(18px,1.65vw,21px);
  font-style:normal;
  line-height:1.62;
  color:var(--ink);
}

/* Founders keep the historical card interaction, but align with the same page grammar. */
.approach-page .founders-section{
  padding-top:5.5rem;
  padding-bottom:7.25rem;
}
.approach-page .founders-head{
  max-width:var(--maxw);
  margin:0 auto 3.6rem;
  display:grid;
  grid-template-columns:var(--approach-rail) minmax(0,1fr);
  column-gap:var(--approach-gap);
  row-gap:1.15rem;
  align-items:start;
}
.approach-page .founders-head .opener-kicker{
  grid-column:1;
  grid-row:1 / span 2;
  margin:.5rem 0 0;
}
.approach-page .founders-head .opener-klabel{
  letter-spacing:.28em;
}
.approach-page .founders-head .opener-title{
  grid-column:2;
  max-width:720px;
  margin:0;
  font-size:clamp(34px,4.25vw,52px);
  line-height:1.11;
  letter-spacing:-.01em;
}
.approach-page .founders-head .opener-lead{
  grid-column:2;
  max-width:720px;
  margin:0;
  font-size:15.5px;
  line-height:1.85;
}
.approach-page .founders-cards{
  max-width:1000px;
  margin-top:0;
  gap:2.4rem;
}
.approach-page .founders-cards .team-member{
  padding:2.8rem 2.35rem 2.65rem;
  border-radius:4px;
  background:rgba(var(--accent-rgb),.026);
  border-color:rgba(143,114,72,.16);
}
.approach-page .founders-cards .team-photo{
  width:166px;
  height:166px;
  margin-bottom:1.6rem;
}
.approach-page .founders-cards .team-role{
  letter-spacing:.22em;
}
.approach-page .founders-cards .team-bio{
  max-width:385px;
  font-size:14.5px;
  line-height:1.82;
}

/* One continuous editorial chapter after the founders. */
.approach-page .approach-continuum-section{
  padding-top:5.75rem;
  padding-bottom:8.25rem;
}
.approach-page .approach-continuum{
  max-width:var(--maxw);
  margin:0 auto;
}
.approach-page .approach-chapter-head{
  display:grid;
  grid-template-columns:var(--approach-rail) minmax(0,1fr);
  column-gap:var(--approach-gap);
  align-items:start;
}
.approach-page .approach-chapter-label{
  grid-column:1;
  margin-top:.6rem;
  font-size:9px;
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--muted-gold);
}
.approach-page .approach-chapter-main{
  grid-column:2;
  min-width:0;
  max-width:900px;
}
.approach-page .approach-chapter-title{
  max-width:760px;
  margin:0;
  font-family:var(--font-serif);
  font-size:clamp(38px,4.85vw,60px);
  font-weight:300;
  line-height:1.07;
  letter-spacing:-.014em;
  color:var(--ink);
}
.approach-page .approach-principles{
  max-width:820px;
  margin-top:3.1rem;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(2.5rem,5vw,4.75rem);
}
.approach-page .approach-principle{
  margin:0;
  padding:0;
  background:none;
  border:0;
}
.approach-page .approach-principle h3{
  max-width:420px;
  margin:0 0 .75rem;
  font-family:var(--font-serif);
  font-size:clamp(24px,2.45vw,31px);
  font-weight:300;
  line-height:1.19;
  color:var(--ink);
}
.approach-page .approach-principle p{
  max-width:430px;
  margin:0;
  font-size:14.5px;
  font-weight:300;
  line-height:1.82;
  color:rgba(38,32,26,.68);
}

.approach-page .approach-editorial-thread{
  max-width:900px;
  margin-top:clamp(4.5rem,7vw,6.75rem);
  margin-left:calc(var(--approach-rail) + var(--approach-gap));
}
.approach-page .approach-passage{
  margin:0;
  padding:0;
}
.approach-page .approach-passage + .approach-passage{
  margin-top:clamp(4.75rem,7vw,6.75rem);
}
.approach-page .approach-passage-label{
  margin-bottom:.85rem;
  font-family:var(--font-serif);
  font-size:17px;
  font-weight:300;
  font-style:italic;
  line-height:1.4;
  color:rgba(38,32,26,.56);
}
.approach-page .approach-passage-copy,.approach-page .approach-passage-head{
  max-width:780px;
}
.approach-page .approach-passage-copy h2,.approach-page .approach-passage-head h2{
  max-width:740px;
  margin:0 0 1rem;
  font-family:var(--font-serif);
  font-size:clamp(30px,3.55vw,43px);
  font-weight:300;
  line-height:1.15;
  letter-spacing:-.008em;
  color:var(--ink);
}
.approach-page .approach-passage-copy p,.approach-page .approach-passage-head>p{
  max-width:710px;
  margin:0;
  font-size:15.5px;
  font-weight:300;
  line-height:1.88;
  color:rgba(38,32,26,.72);
}

/* Journey reads as one sequence, not three cards or three mini-slides. */
.approach-page .approach-journey-sequence{
  max-width:800px;
  margin-top:2.65rem;
  display:grid;
  gap:2.45rem;
}
.approach-page .approach-journey-step{
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  gap:clamp(1.5rem,3.5vw,3rem);
  align-items:start;
  margin:0;
  padding:0;
  border:0;
  background:none;
}
.approach-page .approach-journey-phase{
  padding-top:.45rem;
  font-size:10px;
  font-weight:500;
  letter-spacing:.11em;
  text-transform:uppercase;
  line-height:1.45;
  color:var(--muted-gold);
}
.approach-page .approach-journey-copy h3{
  max-width:600px;
  margin:0 0 .6rem;
  font-family:var(--font-serif);
  font-size:clamp(25px,2.75vw,34px);
  font-weight:300;
  line-height:1.18;
  color:var(--ink);
}
.approach-page .approach-journey-copy p{
  max-width:625px;
  margin:0;
  font-size:14.5px;
  font-weight:300;
  line-height:1.82;
  color:rgba(38,32,26,.68);
}

/* Network behaves as editorial index, never as cards. */
.approach-page .approach-network-head{
  max-width:810px;
}
.approach-page .approach-network-index{
  max-width:840px;
  margin-top:2.9rem;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(3rem,6vw,5.5rem);
  row-gap:2.25rem;
}
.approach-page .approach-network-entry{
  margin:0;
  padding:0;
  border:0;
  background:none;
}
.approach-page .approach-network-entry h3{
  margin:0 0 .45rem;
  font-family:var(--font-serif);
  font-size:clamp(20px,2vw,25px);
  font-weight:300;
  line-height:1.2;
  color:var(--ink);
}
.approach-page .approach-network-entry p{
  max-width:345px;
  margin:0;
  font-size:13.75px;
  font-weight:300;
  line-height:1.72;
  color:rgba(38,32,26,.63);
}
.approach-page .approach-network-conclusion{
  max-width:780px;
  margin-top:3.35rem;
}
.approach-page .approach-network-conclusion .approach-network-main{
  max-width:740px;
  margin:0 0 .85rem;
  font-family:var(--font-serif);
  font-size:clamp(26px,3vw,36px);
  font-weight:300;
  line-height:1.3;
  color:var(--ink);
}
.approach-page .approach-network-conclusion p:not(.approach-network-main){
  max-width:680px;
  margin:0;
  font-size:14.25px;
  font-weight:300;
  line-height:1.82;
  color:rgba(38,32,26,.61);
}

/* End as a natural editorial conclusion, not a new marketing band. */
.approach-page .approach-close{
  max-width:830px;
  margin-top:clamp(4.75rem,7vw,6.5rem);
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(230px,.95fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:end;
}
.approach-page .approach-close h2{
  margin:0;
  font-family:var(--font-serif);
  font-size:clamp(31px,3.8vw,46px);
  font-weight:300;
  line-height:1.12;
  color:var(--ink);
}
.approach-page .approach-close-action p{
  max-width:360px;
  margin:0 0 .95rem;
  font-size:14.5px;
  font-weight:300;
  line-height:1.75;
  color:rgba(38,32,26,.66);
}
.approach-page .approach-close .journey-close-link{
  margin:0;
}

@media(max-width:900px){
  .approach-page{
    --approach-rail:118px;
    --approach-gap:2.5rem;
  }
  .approach-page .story-grid{
    gap:3rem;
  }
  .approach-page .approach-principles{
    gap:2.5rem;
  }
}

@media(max-width:760px){
  .approach-page .approach-intro-section{
    padding-top:4.5rem;
    padding-bottom:2rem;
  }
  .approach-page .approach-intro,.approach-page .story-head,.approach-page .founders-head,.approach-page .approach-chapter-head{
    display:block;
  }
  .approach-page .approach-intro .page-intro{
    font-size:clamp(22px,7vw,28px);
    line-height:1.5;
  }
  .approach-page .approach-story-section{
    padding-top:2rem;
    padding-bottom:5rem;
  }
  .approach-page .story-head{
    margin-bottom:2.5rem;
  }
  .approach-page .story-label,.approach-page .founders-head .opener-kicker,.approach-page .approach-chapter-label{
    margin:0 0 1.1rem;
  }
  .approach-page .story-title,.approach-page .founders-head .opener-title,.approach-page .approach-chapter-title{
    max-width:none;
  }
  .approach-page .story-grid{
    grid-template-columns:1fr;
    gap:2.25rem;
  }
  .approach-page .story-img{
    aspect-ratio:16/10;
    max-height:380px;
  }
  .approach-page .story-text{
    max-width:none;
  }
  .approach-page .founders-section{
    padding-top:4.5rem;
    padding-bottom:5.5rem;
  }
  .approach-page .founders-head{
    margin-bottom:2.75rem;
  }
  .approach-page .founders-head .opener-lead{
    margin-top:1rem;
  }
  .approach-page .founders-cards{
    gap:2rem;
  }
  .approach-page .approach-continuum-section{
    padding-top:4.5rem;
    padding-bottom:6rem;
  }
  .approach-page .approach-principles{
    grid-template-columns:1fr;
    gap:2.1rem;
    margin-top:2.5rem;
  }
  .approach-page .approach-editorial-thread{
    max-width:none;
    margin-left:0;
    margin-top:4rem;
  }
  .approach-page .approach-passage + .approach-passage{
    margin-top:4.5rem;
  }
  .approach-page .approach-journey-sequence{
    gap:2.15rem;
  }
  .approach-page .approach-journey-step{
    grid-template-columns:1fr;
    gap:.55rem;
  }
  .approach-page .approach-journey-phase{
    padding-top:0;
  }
  .approach-page .approach-network-index{
    grid-template-columns:1fr;
    row-gap:1.8rem;
  }
  .approach-page .approach-network-entry p{
    max-width:520px;
  }
  .approach-page .approach-close{
    grid-template-columns:1fr;
    gap:1.25rem;
    margin-top:4.5rem;
  }
  .approach-page .approach-close-action p{
    margin-bottom:.8rem;
  }
}

@media(max-width:520px){
  .approach-page .founders-cards .team-member{
    padding:2.35rem 1.4rem 2.25rem;
  }
  .approach-page .founders-cards .team-photo{
    width:152px;
    height:152px;
  }
  .approach-page .approach-network-index{
    margin-top:2.35rem;
  }
}

/* ══ QA5-B — Contact: quieter editorial composition ══
   Scope strict: CONTACT page. Preserve Formspree, field IDs/names, validation,
   prefill behaviour, routes, metadata and contact details. */
.contact-section{
  padding-top:5.75rem;
  padding-bottom:6.5rem;
}
.contact-grid-4b{
  grid-template-columns:minmax(270px,.68fr) minmax(0,1.32fr);
  gap:clamp(3.5rem,6.5vw,7rem);
  align-items:start;
}
.contact-aside-4b{
  max-width:440px;
  padding-top:.2rem;
}
.contact-panel-title{
  max-width:430px;
  margin:0 0 1.15rem;
  font-size:clamp(38px,4vw,50px);
  line-height:1.08;
}
.contact-aside-4b .ct-lead{
  max-width:430px;
  margin:0;
  font-size:clamp(16px,1.45vw,18.5px);
  line-height:1.7;
  color:rgba(38,32,26,.7);
}
.contact-aside-4b .ct-reassurance,.contact-aside-4b .contact-kicker{
  display:none;
}
.ct-trust-4b{
  display:grid;
  gap:.9rem;
  margin-top:2.15rem;
  padding:0;
  border:0;
}
.ct-trust-4b .ct-trust-detail{
  display:block;
  padding:0;
  margin:0;
  border:0;
}
.ct-trust-detail .ic{
  display:none;
}
.ct-trust-detail strong{
  display:block;
  margin:0 0 .15rem;
  font-size:12.75px;
  font-weight:500;
  line-height:1.45;
  letter-spacing:0;
  color:var(--ink);
}
.ct-trust-detail span{
  display:block;
  max-width:390px;
  font-size:12.25px;
  font-weight:300;
  line-height:1.55;
  color:rgba(38,32,26,.58);
}
.contact-direct{
  margin-top:2.35rem;
  padding:0;
  border:0;
}
.contact-direct .calt-q{
  margin:0 0 .8rem;
  font-family:var(--font-serif);
  font-size:16.5px;
  font-weight:340;
  line-height:1.45;
  color:var(--ink);
}
.contact-direct .calt-line{
  gap:.55rem;
  font-size:12.5px;
  line-height:1.85;
  color:rgba(38,32,26,.62);
}
.contact-direct .calt-line .ic{
  width:14px;
  height:14px;
  color:rgba(176,55,27,.7);
}
.contact-direct .calt-line a{
  color:rgba(38,32,26,.67);
  border:0;
  text-decoration:none;
}
.contact-direct .calt-line a:hover,.contact-direct .calt-line a:focus-visible{
  color:var(--muted-gold);
}
.contact-form-wrap-4b{
  width:100%;
  max-width:800px;
  justify-self:end;
  padding:0;
}
.cform-qa3{
  gap:1.2rem;
}
.cform-qa3 .cf-stage{
  position:static;
  display:flex;
  flex-direction:column;
  gap:1.1rem;
  margin:0;
  padding:0;
  border:0;
}
.cform-qa3 .cf-stage::before{
  content:none !important;
  display:none !important;
}
.cform-qa3 .cf-row{
  gap:1rem;
}
.cform-qa3 .cf-field{
  gap:.42rem;
}
.cform-qa3 .cf-lbl{
  margin:0;
  padding:0;
  font-size:10.5px;
  font-weight:500;
  line-height:1.4;
  letter-spacing:.035em;
  text-transform:none;
  color:rgba(38,32,26,.66);
}
.cform-qa3 .cf-inp,.cform-qa3 .cf-ta,.cform-qa3 .cf-sel{
  width:100%;
  min-height:50px;
  padding:.9rem 1rem;
  border:0;
  border-radius:2px;
  outline:0;
  background:rgba(241,232,216,.46);
  color:var(--ink);
  box-shadow:none;
  transition:background .22s ease, box-shadow .22s ease, transform .22s ease;
}
.cform-qa3 .cf-inp::placeholder,.cform-qa3 .cf-ta::placeholder{
  color:rgba(90,74,62,.46);
}
.cform-qa3 .cf-sel{
  padding-right:2.7rem;
  background-color:rgba(241,232,216,.46);
  background-position:right 1rem center;
}
.cform-qa3 .cf-sel option{
  background:var(--lin);
  color:var(--ink);
}
.cform-qa3 .cf-inp:hover,.cform-qa3 .cf-ta:hover,.cform-qa3 .cf-sel:hover{
  background-color:rgba(241,232,216,.68);
}
.cform-qa3 .cf-inp:focus,.cform-qa3 .cf-ta:focus,.cform-qa3 .cf-sel:focus{
  background-color:rgba(255,255,255,.45);
  box-shadow:0 0 0 2px rgba(var(--accent-rgb),.38);
}
.cform-qa3 .cf-inp.err,.cform-qa3 .cf-ta.err{
  box-shadow:0 0 0 2px rgba(var(--accent-rgb),.64);
}
.cform-qa3 .cf-ta{
  min-height:148px;
  resize:vertical;
  line-height:1.65;
}
.cform-qa3 .cf-stage-wishes{
  margin-top:.15rem;
}
.cform-qa3 .cf-stage-contact{
  margin-top:.25rem;
  gap:.85rem;
}
.cform-qa3 .cf-preference .cf-lbl{
  margin-bottom:.08rem;
}
.cform-qa3 .cf-radio-row{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem 1.45rem;
}
.cform-qa3 .cf-radio{
  min-height:30px;
  gap:.5rem;
  font-size:12.75px;
  color:rgba(38,32,26,.75);
}
.cform-qa3 .cf-radio input{
  width:15px;
  height:15px;
  accent-color:var(--gold);
}
.contact-form-wrap-4b .cf-note{
  max-width:540px;
  margin:.1rem 0 0;
  font-size:10.5px;
  line-height:1.55;
  color:rgba(38,32,26,.54);
}
.contact-form-wrap-4b .cf-submit{
  align-self:flex-start;
  min-width:218px;
  margin-top:.2rem;
  padding:1rem 1.5rem;
  border:1px solid var(--gold);
  border-radius:0;
  background:var(--gold);
  color:var(--lin);
  box-shadow:none;
  letter-spacing:.12em;
}
.contact-form-wrap-4b .cf-submit:hover{
  border-color:var(--muted-gold);
  background:var(--muted-gold);
  color:var(--lin);
  transform:translateY(-1px);
  box-shadow:none;
}
.contact-form-wrap-4b .cf-submit:focus-visible{
  outline:2px solid var(--muted-gold);
  outline-offset:4px;
}
.contact-form-wrap-4b .cf-submit:disabled{
  cursor:wait;
  filter:saturate(.62);
}

@media(max-width:900px){
  .contact-grid-4b{
    grid-template-columns:1fr;
    gap:3.5rem;
  }
  .contact-aside-4b{
    max-width:650px;
  }
  .contact-aside-4b .ct-lead{
    max-width:590px;
  }
  .contact-form-wrap-4b{
    max-width:none;
    justify-self:stretch;
  }
}
@media(max-width:680px){
  .contact-section{
    padding-top:4.5rem;
    padding-bottom:5rem;
  }
  .contact-grid-4b{
    gap:3rem;
  }
  .contact-panel-title{
    font-size:clamp(34px,10.5vw,44px);
  }
  .ct-trust-4b{
    margin-top:1.9rem;
  }
  .contact-direct{
    margin-top:2rem;
  }
  .cform-qa3{
    gap:1.1rem;
  }
  .cform-qa3 .cf-row{
    grid-template-columns:1fr;
    gap:1.1rem;
  }
  .cform-qa3 .cf-stage{
    gap:1.05rem;
  }
  .cform-qa3 .cf-radio-row{
    display:grid;
    grid-template-columns:1fr;
    gap:.2rem;
  }
  .cform-qa3 .cf-radio{
    min-height:38px;
  }
  .contact-form-wrap-4b .cf-submit{
    width:100%;
    min-width:0;
  }
}

/* ══ QA6 — Notre approche V2: richer editorial composition ══
   Scope strict: .approach-v2 only. Cards, numbering and motion are used selectively,
   while all validated semantic content remains visible in HTML. */
.approach-v2{
  --approach-v2-max:1200px;
  --approach-v2-reading:760px;
}

/* Intro: one confident editorial statement, no decorative card. */
.approach-v2 .approach-intro-section{
  padding-top:6.6rem;
  padding-bottom:4.25rem;
}
.approach-v2 .approach-intro{
  display:block;
  max-width:980px;
  margin:0 auto;
}
.approach-v2 .approach-intro .page-intro{
  max-width:none;
  margin:0;
  font-family:var(--font-serif);
  font-size:clamp(26px,3.15vw,40px);
  font-weight:300;
  line-height:1.42;
  letter-spacing:-.012em;
  color:var(--ink);
}

/* Story: deliberate asymmetry and stronger photo presence. */
.approach-v2 .approach-story-section{
  padding-top:4rem;
  padding-bottom:7.5rem;
}
.approach-v2 .story-head{
  max-width:var(--approach-v2-max);
  margin:0 auto 3.6rem;
  display:grid;
  grid-template-columns:minmax(130px,.28fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
  text-align:left;
}
.approach-v2 .story-label{
  margin:.62rem 0 0;
  font-size:9px;
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--muted-gold);
}
.approach-v2 .story-title{
  max-width:820px;
  margin:0;
  font-style:normal;
  font-size:clamp(36px,4.65vw,58px);
  line-height:1.08;
  letter-spacing:-.015em;
}
.approach-v2 .story-grid{
  max-width:var(--approach-v2-max);
  margin:0 auto;
  grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  gap:clamp(3.5rem,7vw,7.4rem);
  align-items:center;
}
.approach-v2 .story-img{
  aspect-ratio:4/5;
  min-height:560px;
  border-radius:3px;
  box-shadow:0 30px 70px -48px rgba(38,32,26,.38);
}
.approach-v2 .story-text{
  max-width:610px;
}
.approach-v2 .story-text p{
  font-size:15.5px;
  line-height:1.92;
  margin-bottom:1.35rem;
  color:rgba(38,32,26,.75);
}
.approach-v2 .story-text p:first-child::first-letter{
  font-size:1em;
  float:none;
  margin:0;
  color:inherit;
}
.approach-v2 .story-text .story-punch{
  margin-top:2.1rem;
  padding:0;
  border:0;
  font-family:var(--font-serif);
  font-size:clamp(19px,1.75vw,23px);
  line-height:1.55;
  font-style:normal;
  color:var(--ink);
}

/* Founders: keep the historical cards, but give the section a cleaner standalone rhythm. */
.approach-v2 .founders-section{
  padding-top:6.25rem;
  padding-bottom:8rem;
  background:rgba(241,232,216,.35);
}
.approach-v2 .founders-head{
  max-width:780px;
  margin:0 auto 4rem;
  display:block;
  text-align:center;
}
.approach-v2 .founders-head .opener-kicker{
  justify-content:center;
  margin-bottom:1.35rem;
}
.approach-v2 .founders-head .opener-klabel{
  letter-spacing:.3em;
}
.approach-v2 .founders-head .opener-title{
  max-width:680px;
  margin:0 auto;
  font-size:clamp(36px,4.5vw,54px);
  line-height:1.08;
}
.approach-v2 .founders-head .opener-lead{
  max-width:690px;
  margin:1.35rem auto 0;
  font-size:15.5px;
  line-height:1.85;
}
.approach-v2 .founders-cards{
  max-width:1000px;
  margin:0 auto;
  gap:2.35rem;
}
.approach-v2 .founders-cards .team-member{
  padding:3rem 2.45rem 2.75rem;
  border-radius:5px;
  background:rgba(250,246,237,.75);
  border:1px solid rgba(140,43,20,.14);
  box-shadow:0 22px 55px -48px rgba(38,32,26,.55);
}
.approach-v2 .founders-cards .team-member:hover{
  transform:translateY(-5px);
  border-color:rgba(176,55,27,.34);
  box-shadow:0 28px 64px -44px rgba(38,32,26,.48);
}
.approach-v2 .founders-cards .team-photo{
  width:172px;
  height:172px;
  margin-bottom:1.65rem;
}
.approach-v2 .founders-cards .team-bio{
  max-width:390px;
  font-size:14.5px;
  line-height:1.84;
}

/* Shared heads: strong hierarchy without repeating the opener component everywhere. */
.approach-v2 .approach-section-head,.approach-v2 .approach-process-head{
  max-width:var(--approach-v2-max);
  margin:0 auto 3.7rem;
  display:grid;
  grid-template-columns:minmax(130px,.28fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
}
.approach-v2 .approach-section-kicker{
  margin-top:.55rem;
  font-size:9px;
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--muted-gold);
}
.approach-v2 .approach-section-title{
  max-width:820px;
  margin:0;
  font-family:var(--font-serif);
  font-size:clamp(38px,4.85vw,60px);
  font-weight:300;
  line-height:1.07;
  letter-spacing:-.015em;
  color:var(--ink);
}

/* Experience: cards are intentional here and visually distinct from founder cards. */
.approach-v2 .approach-experience-section{
  padding-top:8rem;
  padding-bottom:8.5rem;
}
.approach-v2 .approach-experience-cards{
  max-width:var(--approach-v2-max);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.35rem;
}
.approach-v2 .approach-experience-card{
  position:relative;
  min-height:360px;
  padding:2.7rem 2.3rem 2.5rem;
  display:flex;
  flex-direction:column;
  background:rgba(241,232,216,.55);
  border:1px solid rgba(140,43,20,.12);
  border-radius:3px;
  overflow:hidden;
  transition:transform .42s cubic-bezier(.16,1,.3,1),border-color .35s,background .35s,box-shadow .42s;
}
.approach-v2 .approach-experience-card::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  width:0;
  height:3px;
  background:var(--gold);
  transition:width .48s cubic-bezier(.16,1,.3,1);
}
.approach-v2 .approach-experience-card:hover{
  transform:translateY(-6px);
  background:rgba(241,232,216,.78);
  border-color:rgba(176,55,27,.3);
  box-shadow:0 28px 58px -45px rgba(38,32,26,.48);
}
.approach-v2 .approach-experience-card:hover::before{width:100%;}
.approach-v2 .approach-card-icon{
  width:28px;
  height:28px;
  margin-bottom:auto;
  color:var(--muted-gold);
  transition:color .3s,transform .35s cubic-bezier(.16,1,.3,1);
}
.approach-v2 .approach-experience-card:hover .approach-card-icon{
  color:var(--gold);
  transform:translateY(-2px);
}
.approach-v2 .approach-experience-card h3{
  max-width:320px;
  margin:3.5rem 0 .9rem;
  font-family:var(--font-serif);
  font-size:clamp(25px,2.3vw,31px);
  font-weight:300;
  line-height:1.16;
  color:var(--ink);
}
.approach-v2 .approach-experience-card p{
  margin:0;
  font-size:14px;
  line-height:1.82;
  color:rgba(38,32,26,.68);
}

/* Process: numbering is reserved for this genuinely sequential content. */
.approach-v2 .approach-process-section{
  padding-top:7.75rem;
  padding-bottom:8.5rem;
  background:rgba(241,232,216,.28);
}
.approach-v2 .approach-process{
  position:relative;
  max-width:var(--approach-v2-max);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(2.5rem,5vw,5rem);
  padding-top:2.25rem;
}
.approach-v2 .approach-process-line{
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:1px;
  background:rgba(38,32,26,.1);
  overflow:hidden;
}
.approach-v2 .approach-process-line span{
  display:block;
  width:100%;
  height:100%;
  background:linear-gradient(90deg,var(--gold),rgba(176,55,27,.22));
  transform-origin:left center;
}
.approach-v2 .approach-process-step{
  position:relative;
  padding-top:1.15rem;
}
.approach-v2 .approach-process-step::before{
  content:'';
  position:absolute;
  top:-2.55rem;
  left:0;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--lin);
  border:2px solid var(--gold);
  box-shadow:0 0 0 5px rgba(176,55,27,.08);
}
.approach-v2 .approach-process-index{
  font-family:var(--font-serif);
  font-size:clamp(34px,4.2vw,54px);
  font-weight:300;
  line-height:1;
  color:rgba(176,55,27,.36);
}
.approach-v2 .approach-process-phase{
  margin:.9rem 0 .85rem;
  font-size:9px;
  font-weight:500;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--muted-gold);
}
.approach-v2 .approach-process-step h3{
  max-width:330px;
  margin:0 0 .85rem;
  font-family:var(--font-serif);
  font-size:clamp(25px,2.35vw,32px);
  font-weight:300;
  line-height:1.18;
  color:var(--ink);
}
.approach-v2 .approach-process-step p{
  max-width:350px;
  margin:0;
  font-size:14px;
  line-height:1.82;
  color:rgba(38,32,26,.67);
}

/* One immersive breath between method and local-grounded content. */
.approach-photo-break{
  position:relative;
  width:100%;
  height:clamp(430px,60vw,720px);
  overflow:hidden;
  background:var(--cream);
}
.approach-photo-break-bg{
  position:absolute;
  inset:-8% -2%;
  background-size:cover;
  background-position:center;
  transform:scale(1.02);
  will-change:transform;
}
.approach-photo-break-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(26,18,13,.04),rgba(26,18,13,.18));
  pointer-events:none;
}

/* Grounded philosophy + local network: one coherent closing chapter. */
.approach-v2 .approach-ground-section{
  padding-top:8rem;
  padding-bottom:8rem;
}
.approach-v2 .approach-ground-intro{
  max-width:var(--approach-v2-max);
  margin:0 auto 7rem;
  display:grid;
  grid-template-columns:minmax(130px,.28fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
}
.approach-v2 .approach-ground-copy{
  max-width:820px;
}
.approach-v2 .approach-ground-copy p{
  max-width:680px;
  margin:1.5rem 0 0;
  font-size:15.5px;
  line-height:1.9;
  color:rgba(38,32,26,.7);
}
.approach-v2 .approach-network-block{
  max-width:var(--approach-v2-max);
  margin:0 auto;
}
.approach-v2 .approach-network-head{
  display:grid;
  grid-template-columns:minmax(130px,.28fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
  margin-bottom:4rem;
}
.approach-v2 .approach-network-title{
  max-width:780px;
  margin:0;
  font-family:var(--font-serif);
  font-size:clamp(34px,4.1vw,50px);
  font-weight:300;
  line-height:1.1;
  letter-spacing:-.012em;
  color:var(--ink);
}
.approach-v2 .approach-network-intro{
  max-width:680px;
  margin:1.2rem 0 0;
  font-size:15px;
  line-height:1.85;
  color:rgba(38,32,26,.68);
}
.approach-v2 .approach-network-icons{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:1rem;
}
.approach-v2 .approach-network-icon-item{
  min-height:220px;
  padding:1.75rem 1.35rem 1.5rem;
  background:transparent;
  border:1px solid transparent;
  border-radius:3px;
  transition:transform .35s cubic-bezier(.16,1,.3,1),background .3s,border-color .3s;
}
.approach-v2 .approach-network-icon-item:hover{
  transform:translateY(-4px);
  background:rgba(241,232,216,.4);
  border-color:rgba(176,55,27,.12);
}
.approach-v2 .approach-network-icon{
  width:27px;
  height:27px;
  margin-bottom:1.25rem;
  color:var(--muted-gold);
  transition:color .3s,transform .35s cubic-bezier(.16,1,.3,1);
}
.approach-v2 .approach-network-icon-item:hover .approach-network-icon{
  color:var(--gold);
  transform:translateY(-2px);
}
.approach-v2 .approach-network-icon-item h3{
  margin:0 0 .7rem;
  font-family:var(--font-serif);
  font-size:clamp(20px,1.65vw,24px);
  font-weight:300;
  line-height:1.2;
  color:var(--ink);
}
.approach-v2 .approach-network-icon-item p{
  margin:0;
  font-size:12.75px;
  line-height:1.72;
  color:rgba(38,32,26,.62);
}
.approach-v2 .approach-network-conclusion{
  max-width:900px;
  margin:4.5rem 0 0 auto;
}
.approach-v2 .approach-network-main{
  max-width:820px;
  margin:0 0 1rem;
  font-family:var(--font-serif);
  font-size:clamp(26px,3vw,38px);
  line-height:1.3;
  color:var(--ink);
}
.approach-v2 .approach-network-conclusion p:not(.approach-network-main){
  max-width:720px;
  margin:0;
  font-size:14px;
  line-height:1.85;
  color:rgba(38,32,26,.62);
}

/* Final CTA: calm closing note, not another content module. */
.approach-final-cta{
  position:relative;
  padding:7.75rem 4rem 8rem;
  background:var(--cream);
  overflow:hidden;
}
.approach-final-cta::before{
  content:'';
  position:absolute;
  width:520px;
  height:520px;
  right:-180px;
  top:-230px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(176,55,27,.09),transparent 68%);
  pointer-events:none;
}
.approach-final-cta-inner{
  position:relative;
  z-index:1;
  max-width:760px;
  margin:0 auto;
  text-align:center;
}
.approach-final-cta h2{
  margin:0;
  font-family:var(--font-serif);
  font-size:clamp(38px,5vw,62px);
  font-weight:300;
  line-height:1.08;
  color:var(--ink);
}
.approach-final-cta p{
  max-width:520px;
  margin:1.25rem auto 2rem;
  font-size:15px;
  line-height:1.8;
  color:rgba(38,32,26,.66);
}
.approach-final-cta-link{
  color:var(--lin) !important;
}

@media(max-width:980px){
  .approach-v2 .approach-experience-cards{grid-template-columns:1fr 1fr;}
  .approach-v2 .approach-experience-card:last-child{grid-column:1/-1;min-height:280px;}
  .approach-v2 .approach-network-icons{grid-template-columns:repeat(3,minmax(0,1fr));}
}

@media(max-width:760px){
  .approach-v2 .approach-intro-section{padding-top:4.8rem;padding-bottom:3rem;}
  .approach-v2 .approach-intro .page-intro{font-size:clamp(24px,7vw,31px);}
  .approach-v2 .approach-story-section{padding-top:3rem;padding-bottom:5.5rem;}
  .approach-v2 .story-head,.approach-v2 .approach-section-head,.approach-v2 .approach-process-head,.approach-v2 .approach-ground-intro,.approach-v2 .approach-network-head{
    grid-template-columns:1fr;
    gap:1.25rem;
  }
  .approach-v2 .story-grid{grid-template-columns:1fr;gap:2.75rem;}
  .approach-v2 .story-img{min-height:0;aspect-ratio:4/5;}
  .approach-v2 .founders-section{padding-top:5rem;padding-bottom:5.75rem;}
  .approach-v2 .founders-head{text-align:left;margin-bottom:3rem;}
  .approach-v2 .founders-head .opener-kicker{justify-content:flex-start;}
  .approach-v2 .founders-head .opener-title,.approach-v2 .founders-head .opener-lead{margin-left:0;margin-right:0;}
  .approach-v2 .approach-experience-section,.approach-v2 .approach-process-section,.approach-v2 .approach-ground-section{padding-top:5.5rem;padding-bottom:5.75rem;}
  .approach-v2 .approach-experience-cards{grid-template-columns:1fr;}
  .approach-v2 .approach-experience-card,.approach-v2 .approach-experience-card:last-child{grid-column:auto;min-height:300px;}
  .approach-v2 .approach-process{grid-template-columns:1fr;gap:3.25rem;padding:0 0 0 2.2rem;}
  .approach-v2 .approach-process-line{left:4px;right:auto;top:0;bottom:0;width:1px;height:auto;}
  .approach-v2 .approach-process-line span{width:100%;height:100%;transform-origin:center top;}
  .approach-v2 .approach-process-step{padding:0;}
  .approach-v2 .approach-process-step::before{top:.35rem;left:-2.45rem;}
  .approach-photo-break{height:55vh;min-height:380px;}
  .approach-v2 .approach-ground-intro{margin-bottom:5rem;}
  .approach-v2 .approach-network-icons{grid-template-columns:1fr 1fr;gap:.6rem;}
  .approach-v2 .approach-network-icon-item{min-height:190px;padding:1.45rem 1rem;}
  .approach-v2 .approach-network-conclusion{margin-top:3rem;margin-left:0;}
  .approach-final-cta{padding:6rem 1.5rem;}
}

@media(max-width:480px){
  .approach-v2 .approach-network-icons{grid-template-columns:1fr;}
  .approach-v2 .approach-network-icon-item{min-height:0;padding:1.25rem 0;border:0;border-bottom:1px solid rgba(38,32,26,.09);}
  .approach-v2 .approach-network-icon-item:last-child{border-bottom:0;}
}

@media(prefers-reduced-motion:reduce){
  .approach-v2 .approach-experience-card,.approach-v2 .approach-network-icon-item,.approach-v2 .approach-network-icon{transition:none;}
}

/* ══ QA6-B — Notre approche: grid + hierarchy polish ══
   Scope strict: .approach-v2 only. No semantic/content changes.
   Goal: reconnect the upper page with the original editorial identity, then
   keep the validated QA6 direction from the journey section onward while
   enforcing one deliberate grid, consistent baselines and tighter hierarchy. */
.approach-v2{
  --approach-v2-max:1160px;
  --approach-v2-rail:142px;
  --approach-v2-gap:42px;
  --approach-v2-offset:calc(var(--approach-v2-rail) + var(--approach-v2-gap));
}

/* Intro — deliberately quieter than the story/title hierarchy. */
.approach-v2 .approach-intro-section{
  padding-top:5.25rem;
  padding-bottom:2.6rem;
}
.approach-v2 .approach-intro{
  max-width:var(--approach-v2-max);
  margin:0 auto;
  padding:0;
  background:none;
  border:0;
  box-shadow:none;
  text-align:left;
}
.approach-v2 .approach-intro .page-intro{
  max-width:590px;
  margin:0;
  padding:0;
  font-family:var(--font-serif);
  font-size:clamp(19px,1.65vw,22px);
  font-weight:300;
  line-height:1.62;
  letter-spacing:0;
  color:rgba(38,32,26,.78);
}

/* Story — closer to the original editorial balance, with a calmer heading. */
.approach-v2 .approach-story-section{
  padding-top:2.6rem;
  padding-bottom:6.65rem;
}
.approach-v2 .story-head{
  max-width:var(--approach-v2-max);
  margin:0 auto 2.85rem;
  grid-template-columns:var(--approach-v2-rail) minmax(0,1fr);
  gap:var(--approach-v2-gap);
}
.approach-v2 .story-label{
  margin:.48rem 0 0;
  letter-spacing:.25em;
}
.approach-v2 .story-title{
  max-width:650px;
  font-size:clamp(34px,3.65vw,46px);
  line-height:1.13;
  letter-spacing:-.01em;
}
.approach-v2 .story-grid{
  max-width:var(--approach-v2-max);
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(3.2rem,6vw,5.9rem);
  align-items:center;
}
.approach-v2 .story-img{
  width:100%;
  max-width:430px;
  min-height:0;
  aspect-ratio:4/5;
  justify-self:start;
  box-shadow:0 26px 62px -48px rgba(38,32,26,.4);
}
.approach-v2 .story-text{
  max-width:545px;
}
.approach-v2 .story-text p{
  font-size:14.75px;
  line-height:1.86;
  margin-bottom:1.2rem;
}
.approach-v2 .story-text .story-punch{
  max-width:520px;
  margin-top:1.65rem;
  font-size:clamp(17px,1.45vw,19.5px);
  line-height:1.6;
  font-style:italic;
  color:rgba(38,32,26,.88);
}

/* Founders — keep the cards, but align their heading and card block to the page grid. */
.approach-v2 .founders-section{
  padding-top:5.8rem;
  padding-bottom:6.9rem;
  background:rgba(241,232,216,.28);
}
.approach-v2 .founders-head{
  max-width:var(--approach-v2-max);
  margin:0 auto 3.3rem;
  display:grid;
  grid-template-columns:var(--approach-v2-rail) minmax(0,1fr);
  column-gap:var(--approach-v2-gap);
  row-gap:.9rem;
  text-align:left;
  align-items:start;
}
.approach-v2 .founders-head .opener-kicker{
  grid-column:1;
  grid-row:1 / span 2;
  justify-content:flex-start;
  margin:.45rem 0 0;
}
.approach-v2 .founders-head .opener-title{
  grid-column:2;
  max-width:650px;
  margin:0;
  font-size:clamp(34px,3.85vw,48px);
  line-height:1.12;
}
.approach-v2 .founders-head .opener-lead{
  grid-column:2;
  max-width:660px;
  margin:0;
  font-size:14.75px;
  line-height:1.8;
}
.approach-v2 .founders-cards{
  max-width:var(--approach-v2-max);
  margin:0 auto;
  padding-left:var(--approach-v2-offset);
  box-sizing:border-box;
  gap:1.75rem;
}
.approach-v2 .founders-cards .team-member{
  padding:2.55rem 2.15rem 2.45rem;
  border-radius:4px;
}
.approach-v2 .founders-cards .team-photo{
  width:160px;
  height:160px;
  margin-bottom:1.45rem;
}
.approach-v2 .founders-cards .team-name{
  font-size:clamp(26px,2.3vw,31px);
}
.approach-v2 .founders-cards .team-role{
  margin:.65rem 0 1rem;
  line-height:1.55;
}
.approach-v2 .founders-cards .team-bio{
  font-size:14px;
  line-height:1.78;
}

/* One shared heading grid for Experience / Process / Ground / Network. */
.approach-v2 .approach-section-head,.approach-v2 .approach-process-head,.approach-v2 .approach-ground-intro,.approach-v2 .approach-network-head{
  max-width:var(--approach-v2-max);
  grid-template-columns:var(--approach-v2-rail) minmax(0,1fr);
  gap:var(--approach-v2-gap);
}
.approach-v2 .approach-section-head,.approach-v2 .approach-process-head{
  margin-bottom:3.1rem;
}
.approach-v2 .approach-section-kicker{
  margin-top:.43rem;
  letter-spacing:.25em;
}
.approach-v2 .approach-section-title{
  max-width:720px;
  font-size:clamp(35px,4vw,50px);
  line-height:1.1;
  letter-spacing:-.012em;
}

/* Experience — same accepted cards, but with cleaner internal hierarchy and a shared left axis. */
.approach-v2 .approach-experience-section{
  padding-top:6.9rem;
  padding-bottom:7.4rem;
}
.approach-v2 .approach-experience-cards{
  max-width:var(--approach-v2-max);
  margin:0 auto;
  padding-left:var(--approach-v2-offset);
  box-sizing:border-box;
  gap:1.05rem;
}
.approach-v2 .approach-experience-card{
  min-height:330px;
  padding:2.25rem 1.9rem 2.15rem;
}
.approach-v2 .approach-card-icon{
  margin-bottom:2.7rem;
}
.approach-v2 .approach-experience-card h3{
  min-height:2.35em;
  margin:0 0 .8rem;
  font-size:clamp(23px,2vw,28px);
  line-height:1.17;
}
.approach-v2 .approach-experience-card p{
  font-size:13.75px;
  line-height:1.76;
}

/* Process — preserve the validated concept, align line, dots, columns and text baselines. */
.approach-v2 .approach-process-section{
  padding-top:6.75rem;
  padding-bottom:7.45rem;
}
.approach-v2 .approach-process{
  max-width:var(--approach-v2-max);
  margin:0 auto;
  padding:2.05rem 0 0 var(--approach-v2-offset);
  box-sizing:border-box;
  gap:clamp(1.8rem,3.4vw,3.4rem);
}
.approach-v2 .approach-process-line{
  left:var(--approach-v2-offset);
  right:0;
}
.approach-v2 .approach-process-step{
  padding-top:1rem;
  min-width:0;
}
.approach-v2 .approach-process-step::before{
  top:-2.36rem;
}
.approach-v2 .approach-process-index{
  font-size:clamp(32px,3.5vw,45px);
}
.approach-v2 .approach-process-phase{
  min-height:1.5em;
  margin:.75rem 0 .72rem;
  letter-spacing:.21em;
}
.approach-v2 .approach-process-step h3{
  min-height:2.42em;
  max-width:300px;
  margin:0 0 .72rem;
  font-size:clamp(23px,2vw,28px);
  line-height:1.19;
}
.approach-v2 .approach-process-step p{
  max-width:310px;
  font-size:13.75px;
  line-height:1.76;
}

/* Photo break — keep the breath, reduce banner-like dominance and sharpen the hand-off. */
.approach-photo-break{
  height:clamp(400px,48vw,610px);
}
.approach-photo-break-bg{
  inset:-6% -2%;
  background-position:center 48%;
}
.approach-photo-break-shade{
  background:linear-gradient(180deg,rgba(26,18,13,.025),rgba(26,18,13,.11));
}

/* Grounded chapter — same structure, same axis. */
.approach-v2 .approach-ground-section{
  padding-top:6.9rem;
  padding-bottom:7rem;
}
.approach-v2 .approach-ground-intro{
  margin:0 auto 5.65rem;
}
.approach-v2 .approach-ground-copy{
  max-width:720px;
}
.approach-v2 .approach-ground-copy p{
  max-width:620px;
  margin:1.15rem 0 0;
  font-size:14.5px;
  line-height:1.82;
}
.approach-v2 .approach-network-block{
  max-width:var(--approach-v2-max);
  margin:0 auto;
}
.approach-v2 .approach-network-head{
  margin-bottom:3.15rem;
}
.approach-v2 .approach-network-title{
  max-width:700px;
  font-size:clamp(33px,3.65vw,46px);
  line-height:1.12;
}
.approach-v2 .approach-network-intro{
  max-width:620px;
  margin:.95rem 0 0;
  font-size:14.5px;
  line-height:1.8;
}
.approach-v2 .approach-network-icons{
  max-width:var(--approach-v2-max);
  margin:0 auto;
  padding-left:var(--approach-v2-offset);
  box-sizing:border-box;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.55rem;
}
.approach-v2 .approach-network-icon-item{
  min-height:205px;
  padding:1.45rem .95rem 1.35rem;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.approach-v2 .approach-network-icon{
  flex:0 0 auto;
  margin-bottom:1.05rem;
}
.approach-v2 .approach-network-icon-item h3{
  min-height:2.45em;
  margin:0 0 .55rem;
  font-size:clamp(18px,1.42vw,21px);
  line-height:1.22;
}
.approach-v2 .approach-network-icon-item p{
  max-width:175px;
  font-size:12.25px;
  line-height:1.66;
}
.approach-v2 .approach-network-conclusion{
  max-width:var(--approach-v2-max);
  margin:3.65rem auto 0;
  padding-left:var(--approach-v2-offset);
  box-sizing:border-box;
}
.approach-v2 .approach-network-main{
  max-width:720px;
  font-size:clamp(25px,2.6vw,34px);
  line-height:1.28;
}
.approach-v2 .approach-network-conclusion p:not(.approach-network-main){
  max-width:650px;
}

/* Closing CTA — slightly quieter so it reads as the end of the same page. */
.approach-final-cta{
  padding:6.6rem 4rem 6.9rem;
}
.approach-final-cta h2{
  font-size:clamp(36px,4.4vw,54px);
}

@media(max-width:980px){
  .approach-v2{
    --approach-v2-rail:118px;
    --approach-v2-gap:30px;
  }
  .approach-v2 .approach-experience-card h3{
    min-height:auto;
  }
  .approach-v2 .approach-process-step h3{
    min-height:2.4em;
  }
}

@media(max-width:760px){
  .approach-v2{
    --approach-v2-rail:0px;
    --approach-v2-gap:0px;
    --approach-v2-offset:0px;
  }
  .approach-v2 .approach-intro-section{
    padding-top:4.25rem;
    padding-bottom:2rem;
  }
  .approach-v2 .approach-intro .page-intro{
    max-width:520px;
    font-size:clamp(18px,5.4vw,21px);
    line-height:1.58;
  }
  .approach-v2 .approach-story-section{
    padding-top:2rem;
    padding-bottom:5rem;
  }
  .approach-v2 .story-head,.approach-v2 .founders-head,.approach-v2 .approach-section-head,.approach-v2 .approach-process-head,.approach-v2 .approach-ground-intro,.approach-v2 .approach-network-head{
    display:block;
  }
  .approach-v2 .story-label,.approach-v2 .founders-head .opener-kicker,.approach-v2 .approach-section-kicker{
    margin:0 0 .95rem;
  }
  .approach-v2 .story-title{
    font-size:clamp(31px,9vw,40px);
  }
  .approach-v2 .story-grid{
    grid-template-columns:1fr;
    gap:2.1rem;
  }
  .approach-v2 .story-img{
    max-width:none;
    aspect-ratio:16/11;
  }
  .approach-v2 .story-text{
    max-width:none;
  }
  .approach-v2 .founders-head{
    margin-bottom:2.5rem;
  }
  .approach-v2 .founders-head .opener-title,.approach-v2 .founders-head .opener-lead{
    grid-column:auto;
  }
  .approach-v2 .founders-head .opener-lead{
    margin-top:.9rem;
  }
  .approach-v2 .founders-cards,.approach-v2 .approach-experience-cards,.approach-v2 .approach-network-icons,.approach-v2 .approach-network-conclusion{
    padding-left:0;
  }
  .approach-v2 .approach-experience-section,.approach-v2 .approach-process-section,.approach-v2 .approach-ground-section{
    padding-top:5.15rem;
    padding-bottom:5.4rem;
  }
  .approach-v2 .approach-section-title{
    font-size:clamp(32px,9.5vw,42px);
  }
  .approach-v2 .approach-process{
    padding:0 0 0 2.15rem;
  }
  .approach-v2 .approach-process-line{
    left:4px;
    right:auto;
  }
  .approach-v2 .approach-process-step h3{
    min-height:0;
    max-width:520px;
  }
  .approach-v2 .approach-process-step p{
    max-width:520px;
  }
  .approach-photo-break{
    height:50vh;
    min-height:350px;
  }
  .approach-v2 .approach-ground-intro{
    margin-bottom:4.5rem;
  }
  .approach-v2 .approach-network-icons{
    grid-template-columns:1fr 1fr;
    gap:.45rem;
  }
  .approach-v2 .approach-network-icon-item{
    min-height:180px;
    padding:1.3rem .8rem;
  }
  .approach-v2 .approach-network-icon-item h3{
    min-height:auto;
  }
  .approach-v2 .approach-network-icon-item p{
    max-width:230px;
  }
  .approach-final-cta{
    padding:5.5rem 1.5rem 5.8rem;
  }
}

@media(max-width:480px){
  .approach-v2 .approach-network-icons{
    grid-template-columns:1fr;
  }
  .approach-v2 .approach-network-icon-item{
    min-height:0;
    padding:1.15rem 0;
  }
}

/* ══════════════════════════════════════════════════════════════
   QA6-C · APPROCHE · RESTAURATION DES CODES ÉDITORIAUX DE BASE
   Périmètre strict : intro + histoire uniquement.
   - intro recentrée en carte légère (identité historique)
   - motif latérite discret sous la carte
   - lettrine Z latérite restaurée
   - paragraphe de chute restauré avec filet latérite
   Aucun changement de contenu / structure sémantique.
   ══════════════════════════════════════════════════════════════ */
.approach-v2 .approach-intro-section{
  padding-top:5.1rem;
  padding-bottom:2.15rem;
  text-align:center;
}
.approach-v2 .approach-intro{
  position:relative;
  max-width:560px;
  margin:0 auto;
  padding:1.9rem 2.5rem;
  text-align:center;
  background:linear-gradient(155deg,rgba(var(--accent-rgb),.055),rgba(250,246,237,.76));
  border:1px solid rgba(var(--accent-rgb),.18);
  border-radius:4px;
  box-shadow:0 20px 45px -38px rgba(38,32,26,.34);
}
.approach-v2 .approach-intro::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:-2.15rem;
  width:92px;
  height:7px;
  transform:translateX(-50%);
  background:
    radial-gradient(circle at 50% 50%, rgba(var(--accent-rgb),.66) 0 1.6px, transparent 1.9px),
    linear-gradient(to right,
      transparent 0 8%,
      rgba(var(--accent-rgb),.38) 8% 40%,
      transparent 40% 60%,
      rgba(var(--accent-rgb),.38) 60% 92%,
      transparent 92% 100%);
  background-repeat:no-repeat;
  pointer-events:none;
}
.approach-v2 .approach-intro .page-intro{
  max-width:470px;
  margin:0 auto;
  padding:0;
  font-family:var(--font-serif);
  font-size:clamp(15.5px,1.25vw,17.5px);
  font-weight:300;
  line-height:1.65;
  letter-spacing:0;
  color:rgba(38,32,26,.67);
}
.approach-v2 .approach-story-section{
  padding-top:4.35rem;
}
.approach-v2 .story-text p:first-child::first-letter{
  font-family:var(--font-serif);
  font-size:3.25em;
  line-height:.78;
  float:left;
  margin:.065em .13em 0 0;
  color:var(--laterite);
  font-weight:400;
}
.approach-v2 .story-text .story-punch{
  max-width:520px;
  margin-top:1.7rem;
  padding-left:1.15rem;
  border-left:2px solid rgba(var(--accent-rgb),.72);
  font-family:var(--font-serif);
  font-size:clamp(17px,1.45vw,19.5px);
  line-height:1.6;
  font-style:italic;
  color:rgba(38,32,26,.86);
}
.approach-v2 .story-text .story-punch::first-letter{
  font-size:1em;
  float:none;
  margin:0;
  color:inherit;
}

@media(max-width:760px){
  .approach-v2 .approach-intro-section{
    padding-top:4.1rem;
    padding-bottom:1.85rem;
  }
  .approach-v2 .approach-intro{
    width:calc(100% - 2.5rem);
    max-width:520px;
    padding:1.55rem 1.4rem;
  }
  .approach-v2 .approach-intro::after{
    bottom:-1.9rem;
    width:76px;
  }
  .approach-v2 .approach-intro .page-intro{
    font-size:15.5px;
    line-height:1.62;
  }
  .approach-v2 .approach-story-section{
    padding-top:3.8rem;
  }
  .approach-v2 .story-text p:first-child::first-letter{
    font-size:3em;
  }
}

/* QA6-D: retrait du motif laterite sous le bloc introductif, demande visuelle validee */
.approach-v2 .approach-intro::after{content:none!important;display:none!important;}

/* ═══════════ QA7-C2 — polish circuits Est/Sud + hiérarchie Madagascar + actions rapides ═══════════ */
/* Circuits : supprimer les tirets décoratifs répétitifs et restaurer une hiérarchie plus nette. */
body[data-page="est"] .circ-block-label,body[data-page="sud"] .circ-block-label,body[data-page="parcs"] .circ-block-label,body[data-page="grand"] .circ-block-label{
  margin:0 0 1.25rem;
  gap:0;
}
body[data-page="est"] .circ-block-label::before,body[data-page="sud"] .circ-block-label::before,body[data-page="parcs"] .circ-block-label::before,body[data-page="grand"] .circ-block-label::before{
  display:none;
}
body[data-page="est"] .circ-block--stay,body[data-page="sud"] .circ-block--stay,body[data-page="parcs"] .circ-block--stay,body[data-page="grand"] .circ-block--stay{
  margin-top:clamp(1.5rem,3vw,2.75rem);
  margin-bottom:clamp(3rem,5vw,4rem);
}
body[data-page="est"] .circ-block--inclusions,body[data-page="sud"] .circ-block--inclusions,body[data-page="parcs"] .circ-block--inclusions,body[data-page="grand"] .circ-block--inclusions{
  margin-bottom:clamp(4rem,6vw,5rem);
}
body[data-page="est"] .circ-block--stay .circ-text,body[data-page="sud"] .circ-block--stay .circ-text,body[data-page="parcs"] .circ-block--stay .circ-text,body[data-page="grand"] .circ-block--stay .circ-text{
  max-width:680px;
}
/* Non inclus : marqueur neutre circulaire, sans répétition de tirets. */
body[data-page="est"] .incl-col.excl li.li-ic > .ic,body[data-page="sud"] .incl-col.excl li.li-ic > .ic,body[data-page="parcs"] .incl-col.excl li.li-ic > .ic,body[data-page="grand"] .incl-col.excl li.li-ic > .ic{
  display:none;
}
body[data-page="est"] .incl-col.excl li.li-ic::before,body[data-page="sud"] .incl-col.excl li.li-ic::before,body[data-page="parcs"] .incl-col.excl li.li-ic::before,body[data-page="grand"] .incl-col.excl li.li-ic::before{
  content:'';
  display:block;
  position:static;
  flex:0 0 7px;
  width:7px;
  height:7px;
  margin-top:.55rem;
  border:1px solid rgba(38,32,26,.34);
  border-radius:50%;
  background:transparent;
}
/* Notes : séparation éditoriale légère plutôt qu'un tiret long. */
body[data-page="est"] .itin-note,body[data-page="sud"] .itin-note,body[data-page="parcs"] .itin-note,body[data-page="grand"] .itin-note{
  gap:0;
  padding-top:1rem;
  border-top:1px solid rgba(38,32,26,.10);
}
body[data-page="est"] .itin-note::before,body[data-page="sud"] .itin-note::before,body[data-page="parcs"] .itin-note::before,body[data-page="grand"] .itin-note::before{
  display:none;
}

/* ══════════════════════════════════════════════════════════════════════
   MADAGASCAR · refonte éditoriale (QA7-C2C)
   Remplace les trois couches de surcharges précédentes (F17/F18, QA7-C2, QA7-C2B).
   Une seule logique : un en-tête par section, un seul bloc sombre, peu de texte.
   Tout est préfixé .mp- ; aucune autre page n'est concernée.
   ══════════════════════════════════════════════════════════════════════ */
.mp-wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.5rem,4vw,4rem);}
.mp-h2{font-family:var(--font-serif);font-weight:300;font-size:clamp(30px,3.6vw,48px);line-height:1.12;letter-spacing:.005em;color:var(--ink);margin:0 0 1.5rem;max-width:16em;}
.mp-h3{font-family:var(--font-serif);font-weight:300;font-size:clamp(26px,2.8vw,36px);line-height:1.15;color:var(--ink);margin:0;}
.mp-p{font-family:var(--font-sans);font-size:16.5px;font-weight:300;line-height:1.8;color:rgba(38,32,26,.78);max-width:34em;margin:0 0 1rem;}
.mp-p:last-child{margin-bottom:0;}

/* Photos : cadre net, sans décalage ni bordure */
.mp-photo{position:relative;overflow:hidden;background:var(--cream);border-radius:2px;border:none;}
.mp-photo--tall{aspect-ratio:4/5;}
.mp-photo--portrait{aspect-ratio:3/4;}

/* Sections claires */
.mp-section{padding:clamp(4.5rem,8vw,7.5rem) 0;}
.mp-section--tight{padding-top:0;padding-bottom:clamp(4.5rem,8vw,7rem);}
.mp-section--flush{padding-top:0;}
.mp-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2.5rem,7vw,6.5rem);align-items:center;}

/* 3 · Le seul bloc sombre : quatre régions */
.mp-dark{background:var(--ink);color:var(--lin);padding:clamp(4.5rem,8vw,7.5rem) 0;}
.mp-dark-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,6vw,6rem);align-items:end;margin-bottom:clamp(2.5rem,5vw,4.5rem);}
.mp-dark .mp-h2{color:var(--lin);margin:0;}
.mp-dark-lead{font-family:var(--font-sans);font-size:16px;font-weight:300;line-height:1.8;color:rgba(250,246,237,.76);max-width:34em;margin:0;}
.mp-regions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1rem,2vw,1.75rem);}
.mp-region .mp-photo{margin-bottom:1.25rem;background:#3A3027;}
.mp-region-zone{font-family:var(--font-sans);font-size:13px;font-weight:400;letter-spacing:.03em;color:var(--champagne);margin:0 0 .45rem;}
.mp-region-t{font-family:var(--font-serif);font-weight:300;font-size:clamp(21px,2vw,26px);line-height:1.2;color:var(--lin);margin:0 0 .6rem;}
.mp-region-p{font-family:var(--font-sans);font-size:14.5px;font-weight:300;line-height:1.7;color:rgba(250,246,237,.74);margin:0;}

/* 4 · Rencontres */

/* 5 · Partenaires locaux : un encadré, pas un paragraphe */
.mp-callout{background:var(--cream);border-left:4px solid var(--laterite);padding:clamp(2rem,4vw,3.5rem) clamp(1.5rem,4vw,3.5rem);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(1.5rem,5vw,4rem);align-items:start;}
.mp-callout-main{font-family:var(--font-sans);font-size:17px;font-weight:400;line-height:1.7;color:var(--ink);margin:0 0 1rem;max-width:36em;}
.mp-callout-sub{font-family:var(--font-sans);font-size:15px;font-weight:300;line-height:1.75;color:rgba(38,32,26,.74);margin:0;max-width:36em;}

/* 6 · Quand partir : la réponse directe sert d'en-tête */
.mp-aeo{padding:clamp(4rem,7vw,6.5rem) 0 clamp(2.5rem,4vw,3.5rem);}
.mp-aeo .aeo-inner{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.5rem,4vw,4rem);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,6vw,6rem);align-items:end;}
.mp-aeo .aeo-q{font-size:clamp(30px,3.6vw,48px);line-height:1.12;font-weight:300;color:var(--ink);margin:0;}
.mp-aeo .aeo-a{font-size:16.5px;font-weight:300;line-height:1.8;color:rgba(38,32,26,.78);max-width:34em;margin:0;opacity:1;}

/* Calendrier d'origine : respiration sous la photo de saison */

/* ── Rencontres : texte + photo 3:2 ── */
.mp-split--rev{grid-template-columns:minmax(0,5fr) minmax(0,7fr);}
.mp-photo--32{aspect-ratio:3/2;}
/* ── Quand partir : quatre envies, quatre photos ── */
.mp-aeo{padding-top:clamp(4rem,7vw,6.5rem);}
.mp-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.5rem,4vw,3.5rem) clamp(1.25rem,2.5vw,2rem);}
.mp-tile-photo{aspect-ratio:5/4;border-radius:2px;}
.mp-tile-photo::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(26,18,13,.86) 0%,rgba(26,18,13,.55) 34%,rgba(26,18,13,0) 66%);pointer-events:none;}
.mp-tile-t{position:absolute;left:0;right:0;bottom:0;z-index:2;margin:0;padding:clamp(1.25rem,2.4vw,2rem);font-weight:300;}
.mp-tile-wish{display:block;font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:clamp(16px,1.5vw,20px);line-height:1.3;color:rgba(250,246,237,.86);margin-bottom:.3rem;}
.mp-tile-answer{display:block;font-family:var(--font-serif);font-weight:300;font-size:clamp(28px,3.2vw,44px);line-height:1.06;letter-spacing:-.003em;color:#FAF6ED;max-width:11em;}
.mp-tile-p{font-family:var(--font-sans);font-size:15.5px;font-weight:300;line-height:1.8;color:rgba(38,32,26,.8);margin:1.1rem 0 0;max-width:34em;}
@media(max-width:960px){
  .mp-split--rev{grid-template-columns:minmax(0,1fr);}
  .mp-tiles{grid-template-columns:minmax(0,1fr);}
  .mp-tile-photo{aspect-ratio:16/10;}
}

/* ── Circuits : réponse directe remontée sous l'introduction (« En bref ») ── */
.brief{display:grid;grid-template-columns:minmax(96px,.2fr) minmax(0,1fr);gap:clamp(1.25rem,3vw,3rem);align-items:start;margin:clamp(2.5rem,5vw,4rem) 0 clamp(3rem,6vw,5rem);padding:clamp(1.75rem,3.5vw,2.75rem) 0;border-top:1px solid rgba(38,32,26,.2);border-bottom:1px solid rgba(38,32,26,.14);}
.brief-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--laterite);padding-top:.7rem;}
.aeo-block.aeo-brief{padding:0;background:none;border:0;}
.aeo-brief .aeo-inner{max-width:none;margin:0;padding:0;}
.aeo-brief .aeo-q{font-size:clamp(22px,2.4vw,30px);line-height:1.2;font-weight:300;margin:0 0 1rem;color:var(--ink);}
.aeo-brief .aeo-a{font-size:17px;font-weight:300;line-height:1.8;color:rgba(38,32,26,.86);max-width:42em;margin:0;opacity:1;}
@media(max-width:760px){.brief{grid-template-columns:minmax(0,1fr);gap:.5rem;}.brief-label{padding-top:0;}}

/* ── Circuits : « Pourquoi voyager avec Zeno » (bloc sombre pleine largeur) ── */
.why-band{background:var(--ink);color:var(--lin);padding:clamp(4rem,8vw,7rem) 0;}
.why-inner{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.5rem,4vw,4rem);}
.why-title{font-family:var(--font-serif);font-weight:300;font-size:clamp(30px,3.6vw,48px);line-height:1.12;color:var(--lin);margin:0 0 clamp(2.5rem,5vw,4rem);max-width:16em;}
.why-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(1.5rem,2.5vw,2.5rem);}
.why-t{position:relative;font-family:var(--font-serif);font-weight:300;font-size:clamp(19px,1.7vw,23px);line-height:1.25;color:var(--lin);margin:0 0 1.1rem;padding-bottom:1rem;}
.why-t::after{content:'';position:absolute;left:0;bottom:0;width:36px;height:2px;background:var(--champagne);}
.why-p{font-family:var(--font-sans);font-size:14.5px;font-weight:300;line-height:1.75;color:rgba(250,246,237,.78);margin:0;}
@media(max-width:1100px){.why-list{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2.25rem;}}
@media(max-width:640px){.why-list{grid-template-columns:minmax(0,1fr);}}

/* ── Accueil : trois cartes portrait côte à côte, texte dans la photo ── */
.hc-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2.5vw,2rem);max-width:var(--maxw);margin:clamp(2.5rem,5vw,4rem) auto 0;}
.hc{display:block;color:#FAF6ED;text-decoration:none;}
.hc-photo{position:relative;overflow:hidden;aspect-ratio:3/4;border-radius:2px;background:var(--ink);}
.hc-photo .zimg{transition:transform 1.2s cubic-bezier(.2,.7,.2,1);}
.hc:hover .hc-photo .zimg,.hc:focus-visible .hc-photo .zimg{transform:scale(1.04);}
.hc:focus-visible{outline:2px solid var(--laterite);outline-offset:4px;}
.hc-photo::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(26,18,13,.94) 0%,rgba(26,18,13,.86) 30%,rgba(26,18,13,.5) 54%,rgba(26,18,13,0) 78%);pointer-events:none;}
.hc-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(1.1rem,2vw,1.6rem);}
.hc-zone{display:block;font-family:var(--font-sans);font-size:12.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--champagne);margin-bottom:.5rem;}
.hc-name{margin:0 0 .75rem;font-family:var(--font-serif);font-weight:300;font-size:clamp(25px,2.5vw,34px);line-height:1.1;color:#FAF6ED;}
.hc-hook{font-family:var(--font-sans);font-size:14.5px;font-weight:300;line-height:1.6;color:rgba(250,246,237,.92);margin:0 0 .6rem;}
.hc-meta{font-family:var(--font-sans);font-size:12.5px;letter-spacing:.02em;color:rgba(250,246,237,.72);margin:0 0 .9rem;}
.hc-go{display:inline-block;font-family:var(--font-sans);font-size:14px;font-weight:500;color:#FAF6ED;border-bottom:1px solid var(--champagne);padding-bottom:2px;}
@media(max-width:900px){
  .hc-list{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:.75rem;scrollbar-width:none;}
  .hc-list::-webkit-scrollbar{display:none;}
  .hc{flex:0 0 78%;scroll-snap-align:start;}
}
/* Vision locale : photo + texte, en clair */
.hv-wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.5rem,4vw,4rem);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2.5rem,7vw,6.5rem);align-items:center;}
.hv-photo{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--cream);border-radius:2px;}
.hv-title{font-family:var(--font-serif);font-weight:300;font-size:clamp(30px,3.6vw,48px);line-height:1.12;color:var(--ink);margin:0 0 1.5rem;max-width:14em;}
.hv-p{font-family:var(--font-sans);font-size:16.5px;font-weight:300;line-height:1.8;color:rgba(38,32,26,.8);max-width:34em;margin:0 0 1.75rem;}
.hv-link{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--laterite);text-decoration:underline;text-underline-offset:5px;}
.hv-link:hover{color:var(--muted-gold);}
@media(max-width:960px){.hv-wrap{grid-template-columns:minmax(0,1fr);gap:2rem;}.hv-photo{aspect-ratio:16/10;}}
/* Bloc sombre accueil : deux niveaux dans le même fond */
.why-band .opener-klabel{color:var(--champagne);}
.why-band .opener-kicker{margin-bottom:1rem;}
.why-list--4{grid-template-columns:repeat(4,minmax(0,1fr));}
.why-list--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.why-sub{margin-top:clamp(3rem,6vw,5rem);padding-top:clamp(2.5rem,5vw,4rem);border-top:1px solid rgba(250,246,237,.18);}
.why-title--sm{font-size:clamp(26px,3vw,38px);}
@media(max-width:1100px){.why-list--4,.why-list--3{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.why-list--4,.why-list--3{grid-template-columns:minmax(0,1fr);}}

/* ── Accueil : une seule hiérarchie, centrée (intro lisible, vide réduit, titre moyen) ── */
#positionnement .section-sub{font-family:var(--font-sans);font-style:normal;font-size:clamp(16.5px,1.5vw,18.5px);font-weight:300;line-height:1.85;color:rgba(38,32,26,.84);max-width:34em;margin:1.5rem auto 0;}
#circuits-apercu .opener{text-align:center;margin-bottom:2.5rem;}
#circuits-apercu .opener-kicker{justify-content:center;}
#circuits-apercu .opener-title{font-size:clamp(26px,3vw,40px);max-width:none;margin:0 auto;}
#circuits-apercu .opener-lead{margin:1rem auto 0;max-width:36em;}

/* Accueil : l'intro et les circuits forment une seule section, centrée */

#positionnement .section-sub{text-wrap:balance;}
#circuits-apercu .home-circ-head{margin-bottom:2.25rem;}

/* ── Accueil : ouverture en une phrase, une question, des repères (esprit des sites de voyage haut de gamme) ── */
.home-opening{background:var(--cream);padding:clamp(4.5rem,8vw,7rem) clamp(1.5rem,4vw,4rem);text-align:center;}
.home-opening-p{font-family:var(--font-serif);font-weight:300;font-size:clamp(24px,2.9vw,38px);line-height:1.32;color:var(--ink);max-width:28em;margin:0 auto;text-wrap:balance;}
.home-opening-p em{font-style:italic;color:var(--laterite);}
#circuits-apercu .home-circ-head{margin-bottom:1.25rem;}
#circuits-apercu .opener-title{font-size:clamp(30px,3.6vw,48px);}
.hc-chips{display:flex;justify-content:center;flex-wrap:wrap;gap:.6rem;margin:0 auto clamp(2rem,4vw,3rem);}
.hc-chip{display:inline-flex;align-items:center;padding:.5rem 1.2rem;border:1px solid rgba(38,32,26,.3);border-radius:999px;font-family:var(--font-sans);font-size:13.5px;font-weight:500;color:var(--ink);text-decoration:none;transition:border-color .25s,color .25s,background .25s;}
.hc-chip:hover{border-color:var(--laterite);color:var(--laterite);}
.hc-chip:focus-visible{outline:2px solid var(--laterite);outline-offset:3px;}
.hc-tag{position:absolute;top:1rem;left:1rem;z-index:2;background:rgba(250,246,237,.94);color:var(--ink);font-family:var(--font-sans);font-size:11px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;padding:.4rem .65rem;border-radius:3px;}
.hc-when{text-align:center;margin:1.4rem 0 0;}
.hc-when-link{font-family:var(--font-sans);font-size:14px;color:rgba(38,32,26,.68);text-decoration:underline;text-underline-offset:4px;}
.hc-when-link:hover{color:var(--laterite);}

/* ══ ÉCHELLE TYPO ACCUEIL : une hiérarchie nette, sans très grands titres ══
   Hero 68 · Titres de section 32 · Phrase d'ouverture 28 · Sous-section 26 · Noms de cartes 24 · Intertitres 20 · Texte 15-16 · Repères 11-13 */
body[data-page="home"] .hero-title{font-size:clamp(38px,5vw,68px);line-height:1.08;}
body[data-page="home"] .home-opening{padding-top:clamp(3.5rem,6vw,5rem);padding-bottom:clamp(3.5rem,6vw,5rem);}
body[data-page="home"] .home-opening-p{font-size:clamp(21px,2.1vw,28px);line-height:1.4;max-width:30em;}
body[data-page="home"] #circuits-apercu{padding-top:clamp(3.5rem,6vw,5rem)!important;padding-bottom:clamp(4rem,7vw,6rem);}
body[data-page="home"] #circuits-apercu .opener-title{font-size:clamp(25px,2.4vw,32px);line-height:1.2;letter-spacing:.005em;}
body[data-page="home"] .hc-name{font-size:clamp(21px,1.9vw,24px);line-height:1.18;margin-bottom:.6rem;}
body[data-page="home"] .hc-zone,body[data-page="home"] .opener-klabel{font-size:11px;letter-spacing:.2em;}
body[data-page="home"] .hc-hook{font-size:14.5px;line-height:1.6;}
body[data-page="home"] .hc-meta{font-size:12.5px;}

body[data-page="home"] .home-vision{padding-top:clamp(4rem,7vw,6rem);padding-bottom:clamp(4rem,7vw,6rem);}
body[data-page="home"] .hv-title{font-size:clamp(25px,2.4vw,32px);line-height:1.2;margin-bottom:1.1rem;}
body[data-page="home"] .hv-p{font-size:16px;line-height:1.75;margin-bottom:1.4rem;}
body[data-page="home"] .why-band{padding-top:clamp(4rem,7vw,6rem);padding-bottom:clamp(4rem,7vw,6rem);}
body[data-page="home"] .why-title{font-size:clamp(25px,2.4vw,32px);line-height:1.2;margin-bottom:clamp(1.75rem,3.5vw,2.75rem);}
body[data-page="home"] .why-title--sm{font-size:clamp(22px,2vw,26px);}
body[data-page="home"] .why-t{font-size:clamp(18px,1.5vw,20px);margin-bottom:.8rem;padding-bottom:.8rem;}
body[data-page="home"] .why-p{font-size:15px;line-height:1.7;}
body[data-page="home"] .why-sub{margin-top:clamp(2.5rem,5vw,4rem);padding-top:clamp(2rem,4vw,3rem);}
body[data-page="home"] .cta-band{padding-top:clamp(4rem,7vw,6rem);padding-bottom:clamp(4rem,7vw,6rem);}
body[data-page="home"] .cta-band-title{font-size:clamp(26px,2.8vw,36px);line-height:1.2;margin-bottom:1.75rem;}

/* ── Accueil : un seul bouton plein sous les cartes, section « vision locale » resserrée, fondateurs ── */
.home-circ-links{display:flex;justify-content:center;margin:clamp(2rem,4vw,2.75rem) auto 0;}
.hv-photo{aspect-ratio:5/4;}
.hv-founders{list-style:none;margin:0 0 1.1rem;padding:0;display:flex;flex-wrap:wrap;gap:1.25rem 2.25rem;}
.hv-founder{display:flex;align-items:center;gap:.9rem;}
.hv-avatar{position:relative;flex:none;width:60px;height:60px;border-radius:50%;overflow:hidden;background:var(--cream);}
.hv-fname{display:block;font-family:var(--font-sans);font-size:15px;font-weight:500;color:var(--ink);line-height:1.3;}
.hv-frole{display:block;font-family:var(--font-sans);font-size:13px;font-weight:300;color:rgba(38,32,26,.68);line-height:1.4;max-width:15em;}
.hv-direct{font-family:var(--font-sans);font-size:15px;font-weight:300;line-height:1.7;color:rgba(38,32,26,.82);max-width:34em;margin:0 0 1.5rem;}
@media(max-width:960px){.hv-photo{aspect-ratio:16/10;}}

/* Accueil : le bloc sombre est au milieu de la page ; la vision locale et le contact se suivent en clair */

/* ── Accueil : la bande de contact devient une grande photo (paysage), texte par-dessus ── */
.cta-band.cta-photo{background:var(--ink);padding:clamp(5.5rem,11vw,9rem) clamp(1.5rem,4vw,4rem);}
.cta-photo::before,.cta-photo::after{display:none;}
.cta-photo-bg{position:absolute;inset:0;z-index:0;}
.cta-photo-veil{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at center,rgba(26,18,13,.62) 0%,rgba(26,18,13,.42) 60%,rgba(26,18,13,.3) 100%),linear-gradient(180deg,rgba(26,18,13,.28),rgba(26,18,13,.44));}
.cta-photo .cta-band-inner{position:relative;z-index:2;}
.cta-photo .cta-band-title{color:#FAF6ED;}
.cta-photo .cta-band-title em{color:var(--champagne);}
.cta-photo .cta-quick a{color:rgba(250,246,237,.92);}
.cta-photo .cta-quick a:hover{color:#FFFFFF;}
.cta-photo .cta-quick-sep{background:rgba(250,246,237,.5);}
.cta-photo .cta-quick .ic{color:rgba(250,246,237,.88);}

/* ── Accueil : « Derrière Zeno » — phrase d'engagement en premier, photo pleine hauteur, rôles courts ── */
.hv-wrap{align-items:stretch;}
.hv-text{display:flex;flex-direction:column;justify-content:center;}
.hv-photo{aspect-ratio:auto;min-height:clamp(380px,36vw,540px);}
body[data-page="home"] .hv-title{max-width:none;text-wrap:balance;}
.hv-direct{font-family:var(--font-sans);font-size:clamp(17px,1.5vw,19px);font-weight:400;line-height:1.6;color:rgba(38,32,26,.92);max-width:32em;margin:0 0 1.1rem;}
.hv-founders{flex-direction:column;gap:.85rem;margin:0 0 1.5rem;}
.hv-frole{max-width:none;}
@media(max-width:960px){.hv-photo{aspect-ratio:16/10;min-height:0;}}

.hc-img{position:absolute;inset:0;z-index:0;}

/* Contraste : teintes d'accent éclaircies sur photo (pire cas vérifié) */
.hc-zone{color:#F2B193;}
.cta-photo .cta-band-title em{color:#F2B193;}
.cta-photo-veil{background:radial-gradient(ellipse at center,rgba(26,18,13,.66) 0%,rgba(26,18,13,.44) 60%,rgba(26,18,13,.32) 100%),linear-gradient(180deg,rgba(26,18,13,.3),rgba(26,18,13,.46));}

/* ── Page des circuits : « En bref » en tête, hiérarchie resserrée, sans ombres lourdes ── */
.hub-brief-sec .brief{max-width:var(--maxw);margin:0 auto;}
.brief-link{grid-column:2;justify-self:start;font-family:var(--font-sans);font-size:15px;font-weight:500;color:var(--laterite);text-decoration:underline;text-underline-offset:5px;margin-top:-.25rem;}
.brief-link:hover{color:var(--muted-gold);}
@media(max-width:760px){.brief-link{grid-column:1;}}
body[data-page="circuits"] .journey-compare .opener-title{font-size:clamp(25px,2.4vw,32px);line-height:1.2;}
body[data-page="circuits"] .journey-compare-intro{font-size:16px;line-height:1.75;color:rgba(38,32,26,.78);}
body[data-page="circuits"] .circ-row{box-shadow:none;}
body[data-page="circuits"] .journey-split .circ-row-name{font-size:clamp(23px,2.1vw,28px);line-height:1.18;margin-bottom:.9rem;}
body[data-page="circuits"] .circ-row-desc{font-size:15.5px;line-height:1.7;}

/* ══ Pages circuit : intro (accroche, fiche de repères, bouton, « En bref ») et frise par étapes ══ */
.circ-wrap .circ-accroche{font-style:normal;font-size:clamp(23px,2.4vw,28px);line-height:1.35;color:var(--ink);padding-left:0;border-left:none;margin:0 0 2rem;max-width:30em;}

.circ-wrap .circ-lead{font-size:17px;line-height:1.8;color:rgba(38,32,26,.82);margin-bottom:0;max-width:36em;}
/* « En bref » : libellé au-dessus, un seul filet */
.circ-wrap .brief{grid-template-columns:minmax(0,1fr);gap:.55rem;margin:clamp(2.25rem,4vw,3rem) 0 clamp(2.5rem,5vw,4rem);padding:clamp(1.5rem,3vw,2rem) 0 0;border-top:1px solid rgba(38,32,26,.18);border-bottom:0;}
.circ-wrap .brief-label{padding-top:0;}
.circ-wrap .aeo-brief .aeo-q{font-size:clamp(20px,2vw,24px);margin-bottom:.7rem;}
.circ-wrap .aeo-brief .aeo-a{font-size:16px;line-height:1.75;}
@media(max-width:700px){
  
  
  
  
  
  
  .itin .itin-icn{display:none;}
  .itin .itin-day{grid-template-columns:auto minmax(0,1fr);}
}

/* Frise (format d'origine : numéro en cercle, ligne, icône) — améliorations de lisibilité seulement */
.itin .itin-day-t{font-family:var(--font-serif);font-weight:400;font-size:clamp(19px,1.8vw,22px);line-height:1.25;color:var(--ink);margin-bottom:.45rem;}
.itin .itin-day-p{font-size:16px;font-weight:300;line-height:1.75;color:rgba(38,32,26,.82);max-width:36em;}
.itin .itin-day::before{width:1px;background:rgba(var(--accent-rgb),.38);}

/* ══ Pages circuit, ordinateur : deux colonnes — contenu à gauche, fiche collante à droite (mobile = colonne unique, inchangé) ══ */
@media(min-width:961px){
  .circ-wrap{max-width:1180px;padding-top:6rem;padding-bottom:6rem;display:grid;grid-template-columns:minmax(0,1fr) 300px;column-gap:clamp(3rem,5vw,5rem);align-items:start;}
  .circ-wrap > *{grid-column:1;min-width:0;}
  
  
  
  
  
  
}

/* Frise : le cercle de l'étape au centre de l'écran se remplit au défilement (le survol n'ajoute plus de second cercle plein) */
.itin .itin-day.is-current .itin-num{background:var(--gold);color:var(--lin);border-color:var(--gold);box-shadow:0 0 0 5px rgba(var(--accent-rgb),.14);}
.itin-live .itin .itin-day:not(.is-current):hover .itin-num{background:var(--lin);color:var(--muted-gold);border-color:rgba(var(--accent-rgb),.4);box-shadow:none;}

/* ══ Page Madagascar : affichage tablette et téléphone (règles rétablies) ══ */
@media(max-width:960px){
  .mp-split,.mp-pair,.mp-dark-head,.mp-aeo .aeo-inner,.mp-callout{grid-template-columns:minmax(0,1fr);}
  .mp-split{gap:2rem;}
  .mp-photo--tall{aspect-ratio:4/3;}
  .mp-regions{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2.5rem;}
  .mp-aeo .aeo-inner{gap:1.25rem;align-items:start;}
  .mp-dark-head{gap:1.25rem;}
}
@media(max-width:640px){
  .mp-regions{grid-template-columns:minmax(0,1fr);}
  .mp-region .mp-photo{aspect-ratio:4/3;}
  .mp-photo--32{aspect-ratio:3/2;}
  .mp-callout{padding:1.75rem 1.4rem;gap:1rem;}
}

/* ══ Pages circuit : photo figée + lignes d'informations avec icônes (ni cadres ni boutons) ══ */
.circ-aside{margin:0 0 2.25rem;}
.circ-aside-photo{position:relative;overflow:hidden;aspect-ratio:16/10;border-radius:2px;background:var(--cream);}
.circ-facts2{list-style:none;margin:1.1rem 0 0;padding:0;}
.cf2{display:grid;grid-template-columns:24px minmax(0,1fr);gap:.85rem;align-items:center;padding:.8rem 0;border-top:1px solid rgba(38,32,26,.14);font-family:var(--font-serif);font-weight:300;font-size:clamp(17px,1.5vw,19px);line-height:1.3;color:var(--ink);}
.cf2:last-child{border-bottom:1px solid rgba(38,32,26,.14);}
.cf2-ic{width:24px;height:24px;color:rgba(38,32,26,.68);}
.cf2-price,.cf2-price .cf2-ic{color:var(--laterite);}
.cf2-level{align-items:start;}
.cf2-lvl{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .7rem;}
.cf2-dots{display:inline-flex;gap:5px;align-items:center;}
.dot{width:11px;height:11px;border-radius:50%;border:1.3px solid var(--laterite);display:inline-block;box-sizing:border-box;}
.dot.on{background:var(--laterite);}
@media(min-width:961px){
  .circ-wrap > .circ-aside{grid-column:2;grid-row:1 / span 40;position:sticky;top:6.5rem;align-self:start;margin:0;}
  .circ-aside-photo{aspect-ratio:4/5;}
}

/* Niveau de marche : seulement les ronds, sur une bonne partie de la largeur de la ligne */
.cf2-lvl{display:block;width:100%;}
.cf2-dots{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:230px;gap:0;}
.cf2-dots .dot{width:15px;height:15px;}

/* Bloc figé : tient dans la hauteur d'un écran de portable ; ligne « niveau » alignée comme les autres */
@media(min-width:961px){
  .circ-wrap > .circ-aside{top:6rem;}
  .circ-aside-photo{aspect-ratio:auto;height:clamp(220px,36vh,380px);}
  .cf2{padding:.62rem 0;}
}
.cf2-lvl{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%;}
.cf2-lbl{font-family:var(--font-serif);font-weight:300;}
.cf2-dots{width:auto;max-width:none;gap:7px;justify-content:flex-end;}
.cf2-dots .dot{width:13px;height:13px;}
.cf2-lvl{flex-wrap:nowrap;gap:.75rem;}
.cf2-lbl{white-space:nowrap;}
.cf2-dots{gap:5px;flex:none;}
.cf2-dots .dot{width:12px;height:12px;}

/* « Sur devis » : lien vers le formulaire (même destination que le bouton du bas) */
.cf2-link{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;}
.cf2-link::after{content:'\2192';font-family:var(--font-sans);font-size:15px;transition:transform .25s;}
.cf2-link:hover{text-decoration:underline;text-underline-offset:5px;}
.cf2-link:hover::after{transform:translateX(3px);}
.cf2-link:focus-visible{outline:2px solid var(--laterite);outline-offset:3px;border-radius:2px;}

/* ══ Page Contact (version d'avant, bandeau conservé) : colonne gauche sur fond encre — contact, localisation, étapes ══ */
.ct2-grid{grid-template-columns:minmax(300px,.72fr) minmax(0,1fr);gap:clamp(2.5rem,6vw,6rem);align-items:start;}
.ct2-side{background:var(--ink);color:#FAF6ED;border-radius:3px;padding:clamp(1.75rem,3vw,2.75rem);position:sticky;top:7rem;align-self:start;}
.ct2-block + .ct2-block{margin-top:1.9rem;padding-top:1.9rem;border-top:1px solid rgba(250,246,237,.16);}
.ct2-h{font-family:var(--font-serif);font-weight:300;font-size:clamp(21px,2vw,25px);line-height:1.2;color:#FAF6ED;margin:0 0 1.15rem;}
.ct2-lines{list-style:none;margin:0;padding:0;display:grid;gap:.95rem;}
.ct2-line{display:grid;grid-template-columns:22px minmax(0,1fr);gap:.85rem;align-items:center;color:#FAF6ED;text-decoration:none;}
.ct2-line .ic{width:22px;height:22px;color:#F2B193;}
.ct2-line small{display:block;font-family:var(--font-sans);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(250,246,237,.62);margin-bottom:.1rem;}
.ct2-line span{font-family:var(--font-serif);font-weight:300;font-size:clamp(16px,1.5vw,19px);line-height:1.25;overflow-wrap:anywhere;}
.ct2-line:hover span{text-decoration:underline;text-underline-offset:5px;text-decoration-color:rgba(242,177,147,.7);}
.ct2-line:focus-visible,.ct2-map:focus-visible{outline:2px solid #F2B193;outline-offset:3px;border-radius:2px;}
.ct2-where{display:grid;grid-template-columns:22px 1fr;gap:.85rem;align-items:center;margin:0 0 .6rem;font-family:var(--font-serif);font-weight:300;font-size:clamp(16px,1.5vw,19px);color:#FAF6ED;}
.ct2-where .ic{width:22px;height:22px;color:#F2B193;}
.ct2-map{display:inline-block;margin-left:calc(22px + .85rem);font-family:var(--font-sans);font-size:14px;color:#F2B193;text-decoration:underline;text-underline-offset:5px;}
.ct2-map:hover{color:#FAF6ED;}
.ct2-steps{list-style:none;margin:0;padding:0;}
.ct2-steps li{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:1rem;padding-bottom:1.35rem;}
.ct2-steps li:last-child{padding-bottom:0;}
.ct2-steps li:not(:last-child)::before{content:'';position:absolute;left:16.5px;top:38px;bottom:4px;width:1px;background:rgba(250,246,237,.3);}
.ct2-n{width:34px;height:34px;border-radius:50%;background:var(--laterite);color:#FAF6ED;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:16px;line-height:1;}
.ct2-steps h3{font-family:var(--font-serif);font-weight:400;font-size:18px;line-height:1.25;color:#FAF6ED;margin:.2rem 0 .3rem;}
.ct2-steps p{font-family:var(--font-sans);font-size:15px;font-weight:300;line-height:1.6;color:rgba(250,246,237,.78);margin:0;}
.ct2-main{max-width:none;justify-self:stretch;}
.ct2-main .contact-panel-title{font-size:clamp(26px,2.6vw,34px);line-height:1.18;margin:0 0 1rem;}
.ct2-main .ct-lead{font-size:clamp(16px,1.4vw,18px);line-height:1.75;color:rgba(38,32,26,.84);max-width:36em;margin:0 0 2rem;}
@media(max-width:960px){
  .ct2-grid{grid-template-columns:minmax(0,1fr);gap:2.5rem;}
  .ct2-main{order:1;}
  .ct2-side{order:2;position:static;}
}
@media(max-width:520px){
  .ct2-side{padding:1.5rem 1.25rem;}
  .ct2-line{gap:.7rem;}
  .ct2-line span{font-size:15px;overflow-wrap:normal;}
}

.ct2-main .ct-lead{font-size:clamp(17px,1.5vw,19px);margin:0 0 1.75rem;}

/* ══ Notre approche : fin de page (philosophie, réseau local, bandeau encre, contact en photo) ══ */
.apx-wrap{max-width:1180px;margin:0 auto;padding:0 clamp(1.25rem,4vw,4rem);}
.apx-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start;}
.apx-phi{padding:clamp(4rem,7vw,6rem) 0 clamp(2.5rem,4vw,3.5rem);}
.apx-net{padding:clamp(2.5rem,4vw,3.5rem) 0 clamp(4rem,7vw,6rem);}
.apx-kicker{font-family:var(--font-sans);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--laterite);margin-bottom:1rem;}
.apx-h{font-family:var(--font-serif);font-weight:300;font-size:clamp(28px,3.2vw,38px);line-height:1.15;color:var(--ink);margin:0 0 1.1rem;}
.apx-p{font-family:var(--font-sans);font-weight:300;font-size:clamp(16px,1.4vw,18px);line-height:1.75;color:rgba(38,32,26,.84);margin:0;max-width:34em;}
.apx-phi .apx-p{padding-top:2.1rem;}
.apx-net-list{list-style:none;margin:0;padding:0;}
.apx-net-list li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:1.1rem;padding:1.2rem 0;border-top:1px solid rgba(38,32,26,.16);}
.apx-net-list li:last-child{border-bottom:1px solid rgba(38,32,26,.16);}
.apx-ic{width:26px;height:26px;color:var(--laterite);margin-top:.15rem;}
.apx-net-list h3{font-family:var(--font-serif);font-weight:400;font-size:clamp(19px,1.7vw,22px);line-height:1.25;color:var(--ink);margin:0 0 .3rem;}
.apx-net-list p{font-family:var(--font-sans);font-weight:300;font-size:16px;line-height:1.65;color:rgba(38,32,26,.82);margin:0;}
.apx-band{background:var(--ink);color:#FAF6ED;padding:clamp(3.5rem,7vw,5.5rem) clamp(1.25rem,4vw,4rem);}
.apx-band-inner{max-width:1180px;margin:0 auto;}
.apx-band-main{font-family:var(--font-serif);font-weight:300;font-size:clamp(26px,3vw,38px);line-height:1.25;color:#FAF6ED;max-width:27em;margin:0 0 1.4rem;}
.apx-band-sub{font-family:var(--font-sans);font-weight:300;font-size:clamp(16px,1.4vw,18px);line-height:1.75;color:rgba(250,246,237,.8);max-width:40em;margin:0;}
.cta-photo .cta-band-sub{color:rgba(250,246,237,.92);}
@media(max-width:860px){
  .apx-two{grid-template-columns:minmax(0,1fr);gap:1.25rem;}
  .apx-phi .apx-p{padding-top:0;}
}
.apx-band{padding-left:0;padding-right:0;}
.apx-band-inner{padding:0 clamp(1.25rem,4vw,4rem);}
.apx-band + .cta-band .cta-band-title{text-wrap:balance;}

/* Notre approche : « Le mot du fondateur » (bandeau encre) + conclusion du réseau en texte normal */
.apx-kicker-d{color:#F2B193;}
.apx-quote{margin:0;max-width:60em;}
.apx-quote p{font-family:var(--font-serif);font-weight:300;font-size:clamp(23px,2.7vw,34px);line-height:1.38;color:#FAF6ED;margin:0 0 1.8rem;text-wrap:pretty;}
.apx-q-by{display:flex;flex-direction:column;gap:.15rem;}
.apx-q-name{font-family:var(--font-serif);font-weight:400;font-size:clamp(19px,1.8vw,22px);color:#F2B193;}
.apx-q-role{font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(250,246,237,.7);}
.apx-net-main{font-family:var(--font-serif);font-weight:300;font-size:clamp(20px,2vw,24px);line-height:1.3;color:var(--ink);margin:1.9rem 0 .8rem;}
.apx-net-sub{font-family:var(--font-sans);font-weight:300;font-size:16px;line-height:1.7;color:rgba(38,32,26,.82);margin:0;}

/* Notre approche : phrase de définition en sous-titre du bandeau */
.hero-sub{font-family:var(--font-sans);font-weight:300;font-size:clamp(16px,1.5vw,19px);line-height:1.65;color:rgba(250,246,237,.92);max-width:34em;margin:1.4rem 0 0;opacity:0;animation:heroSubIn .9s ease .9s forwards;}
@keyframes heroSubIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){.hero-sub{animation:none;opacity:1;}}

/* ══ Notre approche : une seule échelle de textes (titres plus petits, corps plus grand, libellés lisibles) ══ */
body[data-page="approche"] .hero-title{font-size:clamp(34px,4.5vw,58px);line-height:1.1;}
body[data-page="approche"] .approach-story-section .story-title,
body[data-page="approche"] .founders-head .opener-title,
body[data-page="approche"] .approach-section-title,
body[data-page="approche"] .apx-h{font-size:clamp(27px,2.7vw,36px);line-height:1.18;}
body[data-page="approche"] .founders-cards .team-name{font-size:clamp(22px,2vw,26px);}
body[data-page="approche"] .approach-experience-section h3,
body[data-page="approche"] .approach-process-step h3{font-size:clamp(20px,1.8vw,23px);line-height:1.25;}
body[data-page="approche"] .story-text p:not(.story-punch){font-size:clamp(16px,1.35vw,17px);line-height:1.75;}
body[data-page="approche"] .story-text .story-punch{font-size:clamp(18px,1.6vw,21px);line-height:1.6;}
body[data-page="approche"] .founders-head .opener-lead{font-size:clamp(16px,1.35vw,17px);line-height:1.75;}
body[data-page="approche"] .founders-cards .team-bio{font-size:15.5px;line-height:1.75;max-width:420px;}
body[data-page="approche"] .approach-experience-section p,
body[data-page="approche"] .approach-process-step p{font-size:15.5px;line-height:1.7;}
body[data-page="approche"] .story-label,
body[data-page="approche"] .approach-section-kicker,
body[data-page="approche"] .team-role,
body[data-page="approche"] .approach-process-phase{font-size:11px;letter-spacing:.16em;}
body[data-page="approche"] .cta-band-title{font-size:clamp(28px,3vw,40px);line-height:1.15;}
body[data-page="approche"] .cta-band-sub{font-size:17px;}
/* « Le mot du directeur » : texte courant (sans empattement), plus petit — ce n'est pas un titre */
.apx-quote p{font-family:var(--font-sans);font-weight:300;font-size:clamp(18px,1.7vw,22px);line-height:1.75;color:#FAF6ED;margin:0 0 1.6rem;max-width:44em;}

/* « Le mot du directeur » : grand guillemet ouvrant stylisé (décoratif) à la place des guillemets du texte */
.apx-quote::before{content:'\201C' / '';display:block;font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(72px,8vw,110px);line-height:.62;height:.5em;color:#F2B193;margin:0 0 1.3rem -.04em;}
.apx-quote::before{margin-top:.9rem;}

/* « Le mot du directeur » : guillemet ouvrant en retrait à gauche (première ligne), guillemet fermant à la fin du texte */
.apx-quote{position:relative;}
.apx-quote p::after{content:'\2060\201D' / '';font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:2.7em;line-height:0;vertical-align:-.34em;margin-left:.16em;color:#F2B193;}
@media(min-width:1100px){
  .apx-quote::before{position:absolute;left:-3.6rem;top:.2rem;margin:0;height:auto;font-size:92px;line-height:1;}
}
@media(max-width:1099px){
  .apx-quote::before{font-size:64px;height:.42em;margin:.6rem 0 .8rem -.03em;}
}

/* « Le mot du directeur » : dégradé sombre visible (encre → brun rouge profond) + halo chaud ; voile de la photo suivante allégé */
.apx-band.apx-word{background:radial-gradient(ellipse 60% 110% at 92% 0%,rgba(217,123,84,.22) 0%,rgba(217,123,84,0) 62%),linear-gradient(115deg,#26201A 0%,#34201A 45%,#4A2216 100%);}

/* ═══════════════════════════════════════════════════════════════════════════════════════
   COUCHE TYPOGRAPHIQUE UNIQUE — référence : la page d'accueil (mesurée dans un navigateur)
   Une seule échelle pour tout le site. Les tailles sont des variables ; les pages ne définissent plus leurs propres tailles.
   Valeurs (ordinateur 1440 px / téléphone 390 px) : H1 68/38 · H2 32/25 · H2 secondaire 26/22 · phrase d'ouverture 28/21 ·
   H3 carte 24/21 · H4 élément 20/18 · titre de bandeau 36/26 · phrase clé 19/17 · corps 16 · corps dense 15 · petit 14,5 · libellé 11 (capitales).
   Utilisation de !important volontaire : cette couche est la source de vérité et doit l'emporter sur les anciennes couches.
   ═══════════════════════════════════════════════════════════════════════════════════════ */
:root{
  --fs-h1:clamp(38px,4.7vw,68px);        /* titre de bandeau photo */
  --fs-h1-page:clamp(30px,3.6vw,52px);   /* titre des pages sans grande photo (contact, FAQ, mentions légales) */
  --fs-h2:clamp(25px,2.22vw,32px);       /* titre de section */
  --fs-h2b:clamp(22px,1.8vw,26px);       /* titre de section secondaire */
  --fs-statement:clamp(21px,1.95vw,28px);/* phrase d'ouverture / accroche */
  --fs-h3:clamp(21px,1.67vw,24px);       /* titre de carte */
  --fs-h4:clamp(18px,1.4vw,20px);        /* titre d'élément de liste */
  --fs-band:clamp(26px,2.5vw,36px);      /* titre de bandeau de contact */
  --fs-lead:clamp(17px,1.32vw,19px);     /* phrase clé */
  --fs-body:16px;                        /* texte courant */
  --fs-body-s:15px;                      /* texte dense (cartes, listes) */
  --fs-small:14.5px;                     /* petit texte */
  --fs-label:11px;                       /* libellés en capitales */
  --fs-label-l:13px;                     /* libellés de section en capitales, pastilles de repères */
  --fs-meta:12.5px;                      /* ligne de repères en capitales (cartes) */
  --fs-form:12px;                        /* libellés de formulaire (jamais sous 12) */
}
/* H1 */
body[data-page] h1.hero-title,body[data-page] h1.circ-hero-name{font-size:var(--fs-h1)!important;}
body[data-page="contact"] h1.hero-title,body[data-page="faq"] h1.hero-title,body[data-page="legal"] h1.legal-h1{font-size:var(--fs-h1-page)!important;}
/* H2 : titres de section */
body[data-page] .opener-title,body[data-page] .why-title:not(.why-title-b),body[data-page] .hv-title,body[data-page] .story-title,
body[data-page] .approach-section-title,body[data-page] .apx-h,body[data-page] .mp-h2,body[data-page] .mp-aeo .aeo-q{font-size:var(--fs-h2)!important;}
/* H2 secondaires */
body[data-page] .brief .aeo-q,body[data-page] .mp-h3,body[data-page] .ct2-h,body[data-page] .legal-block-t,body[data-page] .ct-direct-q{font-size:var(--fs-h2b)!important;}
/* phrases d'ouverture / accroches */
body[data-page] .home-opening-p,body[data-page] .circ-accroche,body[data-page] .mada-kpi-lead{font-size:var(--fs-statement)!important;}
/* H3 : titres de carte */
body[data-page] .hc-name,body[data-page] .circ-row-name,body[data-page] .team-name,body[data-page] .mp-region-t,
body[data-page] .approach-experience-section h3,body[data-page] .approach-process-step h3{font-size:var(--fs-h3)!important;}
/* H4 : titres d'éléments de liste */
body[data-page] .why-t,body[data-page] .itin-day-t,body[data-page] .apx-net-list h3,body[data-page] .ct2-steps h3,body[data-page] .mp-tile-t{font-size:var(--fs-h4)!important;}
/* titre de bandeau de contact */
body[data-page] .cta-band-title{font-size:var(--fs-band)!important;}
/* phrase clé */
body[data-page] .hv-direct,body[data-page] .ct-lead,body[data-page] .ct2-main .ct-lead,body[data-page] .mp-callout-main{font-size:var(--fs-lead)!important;}
/* corps de texte */
body[data-page] .hv-p,body[data-page] .mp-p,body[data-page] .aeo-a,body[data-page] .circ-lead,body[data-page] .circ-text,body[data-page] .opener-lead,
body[data-page] .story-text p:not(.story-punch),body[data-page] .apx-p,body[data-page] .journey-compare-intro,body[data-page] .mp-dark-lead,
body[data-page] .legal-intro,body[data-page] .cta-band-sub,body[data-page] .itin-day-p,body[data-page] .apx-band-sub{font-size:var(--fs-body)!important;}
/* corps dense */
body[data-page] .why-p,body[data-page] .team-bio,body[data-page] .circ-row-desc,body[data-page] .mp-tile-p,body[data-page] .mp-callout-sub,
body[data-page] .apx-net-list p,body[data-page] .ct2-steps p,body[data-page] .approach-experience-section p,body[data-page] .approach-process-step p{font-size:var(--fs-body-s)!important;}
/* petit texte */
body[data-page] .hc-hook,body[data-page] .mp-region-p,body[data-page] .circ-price-note{font-size:var(--fs-small)!important;}
/* libellés en capitales */
body[data-page] .opener-klabel,body[data-page] .circ-price-label,body[data-page] .brief-label,body[data-page] .story-label,body[data-page] .approach-section-kicker,
body[data-page] .apx-kicker,body[data-page] .team-role,body[data-page] .mp-region-zone,body[data-page] .circ-incl-label{font-size:var(--fs-label)!important;}
/* formulaires */
body[data-page] .cf-lbl,body[data-page] .cf-note{font-size:var(--fs-form)!important;}

/* compléments de la couche typographique */
body[data-page] .incl-col h3{font-size:var(--fs-label)!important;}
body[data-page] .incl-col li{font-size:var(--fs-small)!important;}
body[data-page] .circ-block-label{font-size:var(--fs-label-l)!important;}
body[data-page] .apx-quote p,body[data-page] .story-text .story-punch{font-size:var(--fs-lead)!important;}
body[data-page] .faq-acc-qt{font-size:var(--fs-h3)!important;}

body[data-page] .hc-chip{font-size:var(--fs-label-l)!important;}
body[data-page] .hc-meta,body[data-page] .circ-row-meta{font-size:var(--fs-meta)!important;}
body[data-page] .sud-opt-t,body[data-page] .apx-q-name{font-size:var(--fs-h4)!important;}
body[data-page] .mp-tile-answer{font-size:var(--fs-h2)!important;}

body[data-page] .circ-row-zone,body[data-page] .circ-row-zone span{font-size:var(--fs-label)!important;}
body[data-page] .circ-price-value{font-size:var(--fs-h2)!important;}
/* libellés sur fonds sombres : orange clair (le latérite est illisible sur l'encre) */
.mp-dark .opener-klabel,.mp-dark .opener-kicker,.chapter-dark .opener-klabel{color:#F2B193;}

/* Bande de contact en photo (pirogue sur le lagon) : photo plus lumineuse -> voile allégé partout ; recadrage mobile sur la pirogue */
.cta-photo-veil{background:radial-gradient(ellipse at center,rgba(26,18,13,.5) 0%,rgba(26,18,13,.34) 60%,rgba(26,18,13,.24) 100%),linear-gradient(180deg,rgba(26,18,13,.22),rgba(26,18,13,.36));}
@media(orientation:portrait){.cta-band.cta-photo .cta-photo-bg img{object-position:50% 100% !important;}}

/* Voile de la bande de contact en photo : sombre derrière le texte (centre), léger sur les bords pour garder le turquoise vif */
.cta-photo-veil{background:radial-gradient(ellipse 48% 80% at 50% 50%,rgba(26,18,13,.58) 0%,rgba(26,18,13,.38) 58%,rgba(26,18,13,.08) 100%),linear-gradient(180deg,rgba(26,18,13,.14),rgba(26,18,13,.24));}
@media(max-width:700px){.cta-photo-veil{background:linear-gradient(180deg,rgba(26,18,13,.44),rgba(26,18,13,.52));}}

/* ══ Page Circuits : sélecteur de circuits en panneaux photo qui s'agrandissent (survol / focus) ══ */
.hub-choose{padding:clamp(4.5rem,8vw,7rem) 0 clamp(4rem,7vw,6rem);}
.hub-choose-head{max-width:780px;margin:0 auto;padding:0 clamp(1.25rem,4vw,4rem);text-align:center;margin-bottom:clamp(2.25rem,4vw,3.25rem);}
.hub-choose-head .aeo-block{padding:0;margin:0;background:none;border:0;}
.hub-choose-head .aeo-inner{display:block;padding:0;}
.hub-choose-head .aeo-q{margin:0 0 1.2rem;color:var(--ink);font-family:var(--font-serif);font-weight:300;line-height:1.18;}
.hub-choose-head .aeo-a{margin:0 auto;max-width:36em;color:rgba(38,32,26,.84);line-height:1.75;font-weight:300;}
.hub-choose-head .brief-link{display:inline-block;margin-top:1.1rem;grid-column:auto;}
.hub-panels{display:flex;gap:10px;height:clamp(500px,72vh,640px);max-width:1380px;margin:0 auto;padding:0 clamp(1rem,2vw,1.75rem);}
.hp{position:relative;flex:1;min-width:0;border-radius:6px;overflow:hidden;color:#FAF6ED;text-decoration:none;display:block;transition:flex .65s cubic-bezier(.22,.8,.24,1);}
.hp.is-on{flex:3.5;}
.hp-bg{position:absolute;inset:0;}
.hp-bg .zimg{transition:transform 1.2s cubic-bezier(.2,.7,.2,1);}
.hp.is-on .hp-bg .zimg{transform:scale(1.03);}
.hp::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(20,14,10,.22) 0%,rgba(20,14,10,.10) 38%,rgba(20,14,10,.80) 100%);transition:opacity .4s;pointer-events:none;}
.hp:not(.is-on)::after{background:linear-gradient(180deg,rgba(20,14,10,.30) 0%,rgba(20,14,10,.18) 35%,rgba(20,14,10,.86) 100%);}
.hp-n{position:absolute;z-index:2;top:20px;left:22px;font-family:var(--font-sans);font-size:var(--fs-label);font-weight:500;letter-spacing:.18em;color:#F2B193;}
.hp-v{position:absolute;z-index:2;left:26px;bottom:26px;transform-origin:0 100%;transform:rotate(-90deg);white-space:nowrap;font-family:var(--font-serif);font-weight:300;line-height:1.1;color:#FAF6ED;transition:opacity .35s;}
.hp.is-on .hp-v{opacity:0;}
.hp-full{position:absolute;z-index:2;left:clamp(1.25rem,2.4vw,2.2rem);right:clamp(1.25rem,2.4vw,2.2rem);bottom:clamp(1.25rem,2.4vw,2.2rem);opacity:0;transform:translateY(10px);transition:opacity .4s ease,transform .5s ease;pointer-events:none;}
.hp.is-on .hp-full{opacity:1;transform:none;transition-delay:.25s;pointer-events:auto;}
.hp-dur{display:block;font-family:var(--font-sans);font-size:var(--fs-label);font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#F2B193;margin-bottom:.7rem;}
.hp-title{font-family:var(--font-serif);font-weight:300;line-height:1.15;margin:0 0 .8rem;color:#FAF6ED;text-wrap:balance;max-width:18em;}
.hp-desc{margin:0 0 .5rem;max-width:30em;line-height:1.65;font-weight:300;color:rgba(250,246,237,.92);}
.hp-meta{margin:0 0 1.1rem;font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:rgba(250,246,237,.7);}
.hp-link{display:inline-block;font-family:var(--font-sans);font-size:14px;color:#F2B193;text-decoration:underline;text-underline-offset:5px;}
.hp:focus-visible{outline:2px solid #F2B193;outline-offset:3px;}
@media(max-width:900px){
  .hub-panels{flex-direction:column;height:auto;gap:12px;}
  .hp,.hp.is-on{flex:none;height:min(440px,66vh);}
  .hp-v{display:none;}
  .hp-n{display:none;}
  .hp-full{opacity:1;transform:none;pointer-events:auto;}
  .hp:not(.is-on)::after{background:linear-gradient(180deg,rgba(20,14,10,.2) 0%,rgba(20,14,10,.12) 38%,rgba(20,14,10,.82) 100%);}
}
@media(prefers-reduced-motion:reduce){.hp,.hp-full,.hp-bg .zimg{transition:none;}}

/* typographie du sélecteur (échelle du design system) */
body[data-page] .hub-choose-head .aeo-q{font-size:var(--fs-h2)!important;}
body[data-page] .hub-choose-head .aeo-a{font-size:var(--fs-body)!important;}
body[data-page] .hp-v{font-size:var(--fs-h4)!important;}
body[data-page] .hp-title{font-size:var(--fs-h2)!important;}
body[data-page] .hp-desc{font-size:var(--fs-body)!important;}
body[data-page] .hp-meta{font-size:var(--fs-meta)!important;}
/* lisibilité du texte sur les photos claires : voile plus progressif + légère ombre */
.hp::after{background:linear-gradient(180deg,rgba(20,14,10,.24) 0%,rgba(20,14,10,.12) 28%,rgba(20,14,10,.62) 60%,rgba(20,14,10,.88) 100%);}
.hp:not(.is-on)::after{background:linear-gradient(180deg,rgba(20,14,10,.32) 0%,rgba(20,14,10,.2) 30%,rgba(20,14,10,.66) 62%,rgba(20,14,10,.9) 100%);}
.hp-full,.hp-n,.hp-v{text-shadow:0 1px 12px rgba(10,6,4,.38);}
@media(max-width:900px){
  .hp::after,.hp:not(.is-on)::after{background:linear-gradient(180deg,rgba(20,14,10,.16) 0%,rgba(20,14,10,.30) 38%,rgba(20,14,10,.84) 66%,rgba(20,14,10,.92) 100%);}
}


/* ZENO · Accueil : trois partis pris illustrés (passe éditoriale approuvée) */
body[data-page="home"] .home-opening--pillars{padding:clamp(3.8rem,6vw,5.5rem) clamp(1.2rem,4vw,4rem);background:var(--cream);text-align:left}
.home-pillars{max-width:1210px;margin-inline:auto}
.home-pillars-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.home-pillar{position:relative;padding:0 clamp(1.4rem,2.4vw,2.6rem);min-width:0}
.home-pillar:first-child{padding-left:0}
.home-pillar:last-child{padding-right:0}
.home-pillar:not(:first-child){border-left:1px solid rgba(38,32,26,.14)}
.home-pillar-icon{display:block;width:34px;height:34px;color:var(--ink);--ic-accent:var(--laterite);margin-bottom:1.4rem;overflow:visible}
.home-pillar-title{font-family:var(--font-serif);font-size:clamp(24px,2vw,28px);font-weight:340;line-height:1.15;color:var(--ink);letter-spacing:-.02em;text-wrap:balance;margin:0 0 .85rem}
.home-pillar-desc{font-family:var(--font-sans);font-size:15.5px;font-weight:300;line-height:1.72;color:rgba(38,32,26,.8);margin:0;max-width:35ch}
@media(max-width:960px){body[data-page="home"] .home-opening--pillars{padding-block:3.4rem}.home-pillars-grid{grid-template-columns:1fr}.home-pillar,.home-pillar:first-child,.home-pillar:last-child{padding:1.45rem 0;display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:1.2rem}.home-pillar:not(:first-child){border-left:0;border-top:1px solid rgba(38,32,26,.14)}.home-pillar:first-child{padding-top:0}.home-pillar:last-child{padding-bottom:0}.home-pillar-icon{margin:0;width:33px;height:33px}.home-pillar-title{font-size:clamp(23px,3.2vw,27px);margin:0 0 .55rem}.home-pillar-desc{max-width:55ch;font-size:15.5px}}
@media(max-width:600px){body[data-page="home"] .home-opening--pillars{padding:2.7rem 1.25rem 2.8rem}.home-pillar,.home-pillar:first-child,.home-pillar:last-child{grid-template-columns:36px minmax(0,1fr);column-gap:1rem;padding-block:1.35rem}.home-pillar-title{font-size:23px}.home-pillar-desc{font-size:15.5px;line-height:1.65}}

/* Accueil, trois partis pris : alignement sur l'échelle typographique du design system (aucun changement visible sur ordinateur : 28 px / texte 15 px) */
body[data-page="home"] .home-pillar-title{font-size:var(--fs-statement)!important;}
body[data-page="home"] .home-pillar-desc{font-size:var(--fs-body-s)!important;}


/* ══ Page Circuits : la question et la réponse en conversation (visiteur / Zeno), au-dessus des panneaux ══ */
.hub-choose{display:block;padding-top:clamp(3.5rem,6vw,5rem);}
.hub-choose-head{max-width:none;margin:0 0 clamp(2.2rem,4vw,3rem);padding:0;text-align:left;}
.hub-chat{display:flex;flex-direction:column;gap:16px;max-width:800px;margin:0 auto;padding:0 clamp(1.1rem,4vw,2rem);}
.hub-msg{display:flex;gap:14px;align-items:flex-start;animation:hubMsgIn .7s cubic-bezier(.2,.7,.2,1) both;}
.hub-msg--zeno{animation-delay:.3s;}
.hub-msg--you{justify-content:flex-end;}
.hub-chat .aeo-q{margin:0;background:var(--ink);color:#FAF6ED;border-radius:22px 22px 6px 22px;padding:.62em 1.1em .68em;font-family:var(--font-serif);font-weight:300;line-height:1.22;text-align:left;max-width:100%;text-wrap:balance;}
.hub-av{flex:none;width:44px;height:44px;border-radius:50%;background:var(--ink);color:#C9A96E;display:flex;align-items:center;justify-content:center;margin-top:2px;}
.hub-av svg{width:24px;height:24px;}
.hub-bubble{background:var(--cream);border-radius:6px 22px 22px 22px;padding:1.15rem 1.5rem 1.35rem;max-width:660px;}
.hub-who{display:block;font-family:var(--font-sans);font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--laterite);margin-bottom:.55rem;}
.hub-bubble .aeo-a{margin:0;max-width:none;text-align:left;line-height:1.75;font-weight:300;color:rgba(38,32,26,.88);}
.hub-bubble .brief-link{display:inline-block;margin-top:.95rem;}
@keyframes hubMsgIn{from{transform:translateY(14px);}to{transform:none;}}
@media(max-width:600px){.hub-av{width:36px;height:36px;}.hub-av svg{width:20px;height:20px;}.hub-msg{gap:10px;}.hub-bubble{padding:1rem 1.1rem 1.15rem;}}
@media(prefers-reduced-motion:reduce){.hub-msg{animation:none;}}
body[data-page] .hub-chat .aeo-q{font-size:var(--fs-h2b)!important;}
body[data-page] .hub-bubble .aeo-a{font-size:var(--fs-body)!important;}
body[data-page] .hub-who{font-size:var(--fs-label)!important;}
/* la conversation doit l'emporter sur les anciennes règles de .aeo-inner (même spécificité plus haut dans le fichier) */
.hub-choose-head .aeo-inner.hub-chat{display:flex;flex-direction:column;gap:16px;max-width:800px;margin:0 auto;padding:0 clamp(1.1rem,4vw,2rem);}
.hub-msg--zeno .hub-bubble{flex:1;max-width:none;}


/* ══ Notre approche : « réseau local » en grille de photos (cinq tuiles) ══ */
.apx-net{padding:clamp(2.5rem,4vw,3.5rem) 0 clamp(4rem,7vw,6rem);}
.apx-net-head{max-width:36em;margin-bottom:clamp(2rem,4vw,3rem);}
.apx-bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(210px,17vw,250px);gap:14px;}
.apx-tile{position:relative;border-radius:6px;overflow:hidden;color:#FAF6ED;background:var(--ink);}
.apx-tile-bg{position:absolute;inset:0;}
.apx-tile-bg .zimg{transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
.apx-tile:hover .apx-tile-bg .zimg{transform:scale(1.045);}
.apx-tile::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(20,14,10,.05) 22%,rgba(20,14,10,.55) 58%,rgba(20,14,10,.86) 100%);pointer-events:none;}
.apx-tile-tx{position:absolute;z-index:2;left:clamp(1.1rem,1.8vw,1.5rem);right:clamp(1.1rem,1.8vw,1.5rem);bottom:clamp(1rem,1.7vw,1.4rem);text-shadow:0 1px 12px rgba(10,6,4,.4);}
.apx-tile h3{font-family:var(--font-serif);font-weight:300;line-height:1.2;margin:0 0 .4rem;color:#FAF6ED;}
.apx-tile p{margin:0;font-weight:300;line-height:1.55;color:rgba(250,246,237,.92);max-width:28em;}
.apx-t-a{grid-column:1 / span 5;grid-row:1 / span 2;}
.apx-t-b{grid-column:6 / span 4;grid-row:1;}
.apx-t-c{grid-column:10 / span 3;grid-row:1;}
.apx-t-d{grid-column:6 / span 3;grid-row:2;}
.apx-t-e{grid-column:9 / span 4;grid-row:2;}
@media(max-width:900px){
  .apx-bento{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;gap:12px;}
  .apx-tile,.apx-t-a,.apx-t-b,.apx-t-c,.apx-t-d,.apx-t-e{grid-column:auto;grid-row:auto;height:min(300px,52vh);}
}
@media(prefers-reduced-motion:reduce){.apx-tile-bg .zimg{transition:none;}}
body[data-page] .apx-tile h3{font-size:var(--fs-h3)!important;}
body[data-page] .apx-tile p{font-size:var(--fs-body-s)!important;}


/* ══ Notre approche : philosophie dans un cadre (double filet) + réseau local en cinq pastilles ══ */
.apx-phi2{padding:clamp(4.5rem,8vw,7rem) clamp(1.6rem,5vw,4rem) clamp(2rem,4vw,3rem);}
.apx-plaque{position:relative;max-width:900px;margin:0 auto;background:var(--cream);padding:clamp(2.6rem,5.4vw,4.4rem) clamp(1.5rem,5vw,4rem) clamp(2.5rem,5vw,4.1rem);text-align:center;}
.apx-plaque::before{content:'';position:absolute;inset:-14px;border:1px solid rgba(176,55,27,.55);pointer-events:none;}
.apx-fan{width:34px;height:34px;display:block;margin:0 auto 14px;fill:none;stroke:var(--laterite);stroke-width:1.2;stroke-linecap:round;}
.apx-plaque .apx-kicker{margin-bottom:.8rem;}
.apx-plaque .apx-h{max-width:20em;margin:0 auto 1.3rem;}
.apx-plaque-p{margin:0 auto;max-width:36em;font-family:var(--font-sans);font-weight:300;line-height:1.8;color:rgba(38,32,26,.88);text-wrap:pretty;}
.apx-net2{padding:clamp(4rem,7vw,6rem) clamp(1.25rem,4vw,4rem) clamp(4.5rem,8vw,7rem);}
.apx-net2-wrap{max-width:1000px;margin:0 auto;text-align:center;}
.apx-net2-wrap .apx-h{max-width:20em;margin:0 auto 1.2rem;}
.apx-net2-wrap .apx-p{margin:0 auto;max-width:36em;}
.apx-pills{list-style:none;margin:2.1rem 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px;}
.apx-pill{position:relative;display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(38,32,26,.28);border-radius:40px;padding:12px 22px;color:var(--ink);cursor:pointer;transition:border-color .3s,background .3s;outline:none;}
.apx-pill:hover,.apx-pill:focus-visible,.apx-pill.is-open{border-color:var(--laterite);background:rgba(176,55,27,.05);}
.apx-pill:focus-visible{outline:2px solid var(--laterite);outline-offset:3px;}
.apx-pill-ic{width:22px;height:22px;flex:none;fill:none;stroke:var(--laterite);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;}
.apx-pill-t{font-family:var(--font-sans);font-weight:300;}
.apx-tip{position:absolute;z-index:3;top:calc(100% + 10px);left:50%;transform:translate(-50%,6px);width:min(280px,74vw);background:var(--ink);color:#FAF6ED;border-radius:4px;padding:.8rem 1rem;text-align:left;font-family:var(--font-sans);font-weight:300;line-height:1.55;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,transform .25s,visibility .25s;}
.apx-pill:first-child .apx-tip{left:0;transform:translate(0,6px);}
.apx-pill:last-child .apx-tip{left:auto;right:0;transform:translate(0,6px);}
.apx-pill:hover .apx-tip,.apx-pill:focus .apx-tip,.apx-pill.is-open .apx-tip{opacity:1;visibility:visible;transform:translate(-50%,0);}
.apx-pill:first-child:hover .apx-tip,.apx-pill:first-child:focus .apx-tip,.apx-pill:first-child.is-open .apx-tip,.apx-pill:last-child:hover .apx-tip,.apx-pill:last-child:focus .apx-tip,.apx-pill:last-child.is-open .apx-tip{transform:none;}
@media(max-width:860px){
  .apx-pills{flex-direction:column;align-items:stretch;gap:10px;text-align:left;}
  .apx-pill{display:grid;grid-template-columns:22px 1fr;column-gap:12px;row-gap:.25rem;border-radius:18px;padding:14px 18px;}
  .apx-pill-t{grid-column:2;}
  .apx-tip,.apx-pill:first-child .apx-tip,.apx-pill:last-child .apx-tip{position:static;grid-column:2;width:auto;transform:none;opacity:1;visibility:visible;background:none;color:rgba(38,32,26,.78);padding:0;pointer-events:auto;}
}
@media(max-width:600px){.apx-plaque::before{inset:-8px;}}
@media(prefers-reduced-motion:reduce){.apx-tip,.apx-pill{transition:none;}}
body[data-page] .apx-plaque-p{font-size:var(--fs-lead)!important;}
body[data-page] .apx-pill-t{font-size:var(--fs-body-s)!important;}
body[data-page] .apx-tip{font-size:var(--fs-small)!important;}


/* V55.1 — Retirer les petits tirets decoratifs avant les surtitres.
   Conserver les separateurs de contenu, frises et elements fonctionnels. */
.hero-eyebrow::before,.label::before,.circ-block-label::before{
  content:none!important;display:none!important;
}

/* V55.1 — lisibilite des champs obligatoires du formulaire contact */
.cf-required-hint{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 1.1rem;}
.cf-phone-required[hidden]{display:none!important;}


/* LOT 2 v55.6 — roles typographiques de navigation et footer (design system v1.1).
   Les boutons CTA conservent l'exception documentee de 10px. */
body[data-page] .nav-links > li > a:not(.nav-cta){font-size:var(--fs-label)!important;}
body[data-page] footer .foot-col a.foot-link-ic{display:inline-flex!important;}
footer .foot-col-t{font-size:var(--fs-label)!important;}
body[data-page] footer .foot-copy{font-size:var(--fs-form)!important;}


/* LOT 2 v55.6 — navigation compacte aux largeurs intermediaires.
   Evite le retour a la ligne du menu a 961-1023 px, sans changer le breakpoint mobile. */
@media (min-width:961px) and (max-width:1023px){
  nav,nav.scrolled{padding-left:2rem;padding-right:2rem;}
  .nav-links{gap:1.15rem;}
  .nav-right{gap:.85rem;}
}


/* LOT 2 v55.6 — libelles hors main : hero, fiches circuits et menu deroulant. */
body[data-page] .hero-eyebrow,
body[data-page] .legal-eyebrow,
body[data-page] .circ-hero-zone,
body[data-page] .nav-sub a.sub-all,
body[data-page] .circ-back{font-size:var(--fs-label)!important;}


/* Lot 5 : zones tactiles des actions contact du footer (44x44 px). */
footer .foot-phone-row{min-height:44px;}
footer .foot-contact-action{
  width:44px;
  height:44px;
  min-width:44px;
  min-height:44px;
  flex:0 0 44px;
  padding:0!important;
}

/* variable manquante signalée par le contrôle final (utilisée par l'aide du formulaire de contact) : gris d'encre à contraste suffisant sur l'ivoire */
:root{--muted:rgba(38,32,26,.72);}


/* ══════════════════════════════════════════════════════════════════════════════════════════════════════
   LOT M0 — FONDATIONS « MOBILE FIRST » (v56)
   Principe : les règles de base décrivent le TÉLÉPHONE ; un seul seuil min-width (961 px) rend au bureau ses valeurs d'origine.
   Jetons : --tap (zone tactile minimale 44 px sur mobile, neutre sur bureau) ; --fs-min (12 px mobile : plancher de lisibilité) ;
   --fs-label et --fs-btn (12 px mobile, 11 et 10 px au bureau). Seuils du système : 640 / 960 / 1200 px.
   ══════════════════════════════════════════════════════════════════════════════════════════════════════ */
:root{--tap:44px;--fs-min:12px;--fs-btn:12px;--fs-label:12px;--bp-sm:640px;--bp-md:960px;--bp-lg:1200px;}
@media(min-width:961px){:root{--tap:0px;--fs-min:0px;--fs-btn:10px;--fs-label:11px;}}
a,button,summary,label,input,select,textarea,[role="button"]{touch-action:manipulation;}
html{-webkit-tap-highlight-color:rgba(176,55,27,.14);}
/* pied de page : chaque lien est une vraie zone tactile */
footer .foot-col a:not(.foot-contact-action){display:flex!important;align-items:center;min-height:var(--tap);}
@media(min-width:961px){footer .foot-col a:not(.foot-contact-action):not(.foot-link-ic){display:block!important;}}
footer .foot-col a.foot-link-ic{display:inline-flex!important;}
footer .foot-col-t{font-size:var(--fs-label)!important;}
footer .foot-copy{font-size:max(var(--fs-min),10px)!important;}
/* sélecteur de langue (barre de navigation, menu mobile, pied de page) */
footer .foot-bottom .lang-btn{min-width:var(--tap);min-height:var(--tap);justify-content:center;}
@media(max-width:960px){nav .lang-btn,.nav-overlay .lang-btn{min-width:44px;min-height:44px;justify-content:center;}}
/* bande de contact : liens téléphone et e-mail */
.cta-quick a{min-height:var(--tap);}
/* texte : plancher de 12 px sur mobile, valeurs d'origine au bureau */
.btn-solid,.btn,.nav-cta,.circ-back{font-size:max(var(--fs-min),10px)!important;}
.faq-pill{font-size:max(var(--fs-min),11px)!important;}
.hero-eyebrow,.circ-hero-zone,.hc-tag,.hc-zone,.itin-note,.legal-dl dt,.opener-klabel,.hp-dur,.mp-region-zone{font-size:max(var(--fs-min),11px)!important;}
/* M0 (suite) : liens des pages circuit et petits textes restants */
.circ-back{display:inline-flex;align-items:center;min-height:var(--tap);}
.cf2-link{min-height:var(--tap);}
@media(max-width:960px){.inline-link{display:inline-flex;align-items:center;min-height:var(--tap);}}
small,.mada-kpi-l,.approach-process-phase,.hero-pause{font-size:max(var(--fs-min),11px)!important;}
/* M0 (suite) : sous-liens des circuits dans le menu mobile */
.nav-overlay .ov-sub{display:flex;align-items:center;min-height:var(--tap);}

/* M0 (suite, décision D6) : pied de page mobile resserré — colonnes empilées, liens de 44 px, espaces réduits */
@media(max-width:960px){
  footer{padding:2.25rem 1.5rem 1.5rem;}
  .foot-top{gap:1.25rem;}
  .foot-cols{gap:.75rem 2.25rem;}
  footer .foot-col-t{margin-bottom:.15rem;}
  footer .foot-contact-col{margin-top:.5rem;}
  .foot-bottom{margin-top:1.25rem;padding-top:1rem;gap:.5rem 1.5rem;}
}


/* ══════════════════════════════════════════════════════════════════════════════════════════════
   LOT M3 — CONTACT « MOBILE FIRST » (v57)
   Zones tactiles ≥ 44 px (radios, lignes de contact), bandeau plus court pour voir le formulaire sans défiler,
   rythme du formulaire resserré. Le bureau garde ses valeurs : tout passe par --tap (0 au bureau) ou par max-width:960px.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
.cf-radio{min-height:max(var(--tap),36px);}
@media(max-width:960px){
  .cf-radio-row{gap:0;}
  .cform-qa3 .cf-radio,.cf-radio{min-height:44px;padding-right:1rem;}
  .cform-qa3 .cf-radio input{width:22px;height:22px;flex:none;}
  body[data-page="contact"] .hero.hero-short{height:auto;min-height:0;}
  body[data-page="contact"] .hero.hero-short .hero-content{padding:calc(84px + .75rem) 1.5rem 2rem;}
  .cform-qa3 .cf-field{gap:.1rem;}
}
.ct2-line{min-height:var(--tap);}
.cf-validation{scroll-margin-top:6rem;}
.cf-inp:focus-visible,.cf-ta:focus-visible,.cf-sel:focus-visible{outline:2px solid rgba(176,55,27,.45);outline-offset:3px;border-radius:2px;}

/* M3 : message d'erreur placé en tête du formulaire, bien visible sur téléphone */
.cform-qa3 .cf-validation{margin:0 0 1.25rem;padding:.8rem 1rem;border-left:3px solid #8C2B14;background:rgba(140,43,20,.07);font-size:var(--fs-body-s);}
.cform-qa3 .cf-validation[hidden]{display:none;}
.cf-validation{scroll-margin-top:5.5rem;}
@media(max-width:960px){.ct2-map{display:inline-flex;align-items:center;min-height:44px;}}

/* Correctif M0/M3 : à 12 px le texte des boutons s'élargissait (jusqu'à +40 px) et « Planifier ce voyage avec nous » passait sur deux lignes ;
   on resserre l'espacement des lettres (même largeur qu'avant). Le bouton d'envoi du formulaire n'est plus pleine largeur. */
@media(max-width:960px){
  .btn-solid,.btn,.nav-cta{letter-spacing:.12em;}
  .contact-form-wrap-4b .cf-submit{width:auto;min-width:min(100%,230px);align-self:flex-start;}
}


/* ══════════════════════════════════════════════════════════════════════════════════════════════
   LOT M1 — ACCUEIL « MOBILE FIRST » (v59)
   Hero : hauteur = écran, bouton Pause rond de 44 px sous le bouton d'action ; pastilles et liens à 44 px ;
   bande sombre en cartes qui défilent sur téléphone ; bande de contact resserrée. Le bureau reste inchangé.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
.hero-pause .hp-ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
@media(min-width:961px){.hero-pause .hp-ic{display:none;}}
@media(max-width:960px){
  #hero.hero:not(.hero-page){min-height:min(600px,100svh);}
  #hero .hero-content{padding-bottom:5.25rem;}
  .hero-pause{left:1.5rem;right:auto;bottom:1.1rem;width:44px;height:44px;min-width:0;min-height:44px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(26,18,13,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-color:rgba(250,246,237,.65);}
  .hero-pause .hp-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
  .hc-chip{min-height:44px;}
  .hc-when-link,.hv-link{display:inline-flex;align-items:center;min-height:44px;}
  .cta-band{padding-top:3rem;padding-bottom:3rem;}
}
@media(max-width:640px){
  .why-list--4,.why-list--3{display:flex;grid-template-columns:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-left:-1.5rem;margin-right:-1.5rem;padding:0 1.5rem .4rem;scrollbar-width:none;}
  .why-list--4::-webkit-scrollbar,.why-list--3::-webkit-scrollbar{display:none;}
  .why-list--4 .why-item,.why-list--3 .why-item{flex:0 0 min(78%,300px);scroll-snap-align:start;scroll-margin-left:1.5rem;padding:1.15rem 1.15rem 1.3rem;border:1px solid rgba(250,246,237,.16);border-radius:4px;background:rgba(250,246,237,.04);}
  .why-list--4:focus-visible,.why-list--3:focus-visible{outline:2px solid #F2B193;outline-offset:2px;}
}
@media(max-width:640px){.cta-quick-sep{display:none;}}

/* M1 (suite) : points de navigation sous les listes qui défilent (bande sombre, mobile uniquement) */
.swipe-dots{display:none;}
@media(max-width:640px){
  .swipe-dots{display:flex;justify-content:center;gap:0;margin-top:.35rem;}
  .swipe-dot{appearance:none;background:none;border:0;padding:0;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;}
  .swipe-dot span{display:block;width:8px;height:8px;border-radius:999px;background:rgba(250,246,237,.34);transition:width .25s ease,background .25s ease;}
  .swipe-dot[aria-current="true"] span{width:22px;background:#F2B193;}
  .swipe-dots.on-light .swipe-dot span{background:rgba(38,32,26,.28);}
  .swipe-dots.on-light .swipe-dot[aria-current="true"] span{background:#B0371B;}
  .swipe-dot:focus-visible{outline:2px solid #F2B193;outline-offset:-6px;border-radius:8px;}
}
@media(prefers-reduced-motion:reduce){.swipe-dot span{transition:none;}}


/* ══════════════════════════════════════════════════════════════════════════════════════════════
   LOT M2 — CIRCUITS « MOBILE FIRST » (v60)
   Pages circuit : galerie et listes d'options en cartes qui défilent (points de navigation), barre d'action fixe en bas
   (décision D4, remplace WhatsApp sur ces pages), lien du hub à 44 px. Le bureau reste inchangé.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
.circ-sticky{display:none;}
@media(max-width:960px){
  .brief-link{display:inline-flex;align-items:center;min-height:44px;}
  .circ-sticky{display:flex;justify-content:center;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:.65rem 1rem calc(.65rem + env(safe-area-inset-bottom,0px));background:rgba(250,246,237,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(38,32,26,.14);transform:translateY(110%);transition:transform .35s ease;pointer-events:none;}
  .circ-sticky.is-on{transform:none;pointer-events:auto;}
  .circ-sticky .btn-solid{display:inline-flex;align-items:center;min-height:48px;}
  body[data-page="est"] .wa-fab,body[data-page="sud"] .wa-fab,body[data-page="parcs"] .wa-fab,body[data-page="grand"] .wa-fab{display:none;}
  body[data-page="est"] .to-top,body[data-page="sud"] .to-top,body[data-page="parcs"] .to-top,body[data-page="grand"] .to-top{bottom:1.25rem;transition:bottom .35s ease,opacity .3s,visibility .3s,transform .3s;}
  body.has-circ-sticky-on .to-top{bottom:calc(1.25rem + 80px)!important;}
}
@media(max-width:640px){
  .circ-gallery,.sud-opt-grid{display:flex;grid-template-columns:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-left:-2rem;margin-right:-2rem;padding:0 2rem .2rem;scrollbar-width:none;}
  .circ-gallery::-webkit-scrollbar,.sud-opt-grid::-webkit-scrollbar{display:none;}
  .circ-gallery .g-img,.circ-gallery .g-img.wide{flex:0 0 84%;grid-column:auto;aspect-ratio:1;scroll-snap-align:start;scroll-margin-left:2rem;}
  .sud-opt-grid .sud-opt-card{flex:0 0 min(80%,320px);scroll-snap-align:start;scroll-margin-left:2rem;}
  .circ-gallery:focus-visible,.sud-opt-grid:focus-visible{outline:2px solid #B0371B;outline-offset:2px;}
}
@media(prefers-reduced-motion:reduce){.circ-sticky,body[data-page] .to-top{transition:none!important;}}
/* M2 (suite) : rythme vertical resserré des pages circuit sur téléphone */
@media(max-width:640px){
  .circ-block{margin-bottom:3.5rem;}
  .itin-day{padding-bottom:1.6rem;}
  .circ-price{padding:2.5rem 1.5rem;}
}
@media(max-width:640px){.itin-day-p{line-height:1.68;}.circ-block-label{margin-bottom:1rem;}}
@media(max-width:640px){body[data-page] .itin-day-p{line-height:1.66!important;}body[data-page] .circ-block-label{margin-bottom:.9rem;}.circ-aside{margin-bottom:2rem;}.circ-price-note{margin-bottom:0;}}

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   LOT M5 — NOTRE APPROCHE, FAQ, MENTIONS LÉGALES, 404 « MOBILE FIRST » (v61)
   Filtres de la FAQ à 44 px ; liens des mentions légales avec une vraie zone tactile (le texte et la mise en page ne bougent pas).
   Le bureau reste inchangé.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
@media(max-width:960px){
  .faq-filters{gap:.5rem;}
  .faq-pill{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1.1rem;}
  body[data-page="legal"] main p a,body[data-page="legal"] main li a,body[data-page="legal"] main dd a{padding-block:.85rem;}
}


/* ══════════════════════════════════════════════════════════════════════════════════════════════
   LOT M4 — MADAGASCAR « MOBILE FIRST » (v62)
   Les quatre cartes de régions deviennent des cartes qui défilent (avec points) sur téléphone ; les tuiles « quand partir »
   restent empilées (décision de Mira : c'est l'information la plus recherchée). Le bureau reste inchangé.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
@media(max-width:640px){
  .mp-regions{display:flex;grid-template-columns:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-left:-1.5rem;margin-right:-1.5rem;padding:0 1.5rem .3rem;scrollbar-width:none;}
  .mp-regions::-webkit-scrollbar{display:none;}
  .mp-regions .mp-region{flex:0 0 84%;scroll-snap-align:start;scroll-margin-left:1.5rem;}
  .mp-regions:focus-visible{outline:2px solid #F2B193;outline-offset:2px;}
}


/* LOT M6 — 404 mobile : garantir le plancher typographique à 12 px.
   La déclaration .nf .btn du template 404 n'utilisait pas le rôle mobile.
   Correctif ciblé, aucune modification de bureau ni du SEO. */
@media (max-width: 960px){
  .nf .btn{font-size:max(var(--fs-min),12.5px)!important;}
}

/* LOT M6 — la 4e info-bulle du réseau local débordait vers la droite
   à 1024px lorsque le 5e élément passait sur une seconde rangée. */
@media (min-width:961px) and (max-width:1100px){
  .apx-pills > .apx-pill:nth-child(4) .apx-tip{left:auto;right:0;transform:translate(0,6px);}
  .apx-pills > .apx-pill:nth-child(4):hover .apx-tip,
  .apx-pills > .apx-pill:nth-child(4):focus .apx-tip,
  .apx-pills > .apx-pill:nth-child(4).is-open .apx-tip{transform:none;}
}


/* M7.1 — Hero « Notre approche », mobile first. Le paragraphe redondant est
   retire du template ; le titre est centre dans l'espace utile du hero,
   avec une garde sous la navigation fixe. Aucun autre hero n'est affecte. */
body[data-page="approche"] #hero.hero-page{align-items:center;}
body[data-page="approche"] #hero.hero-page .hero-content{
  width:100%;box-sizing:border-box;align-self:center;
  padding-top:calc(90px + 2rem);
  padding-bottom:clamp(2.5rem,6vh,5rem);
}
body[data-page="approche"] #hero.hero-page h1.hero-title{margin:0;}
@media (max-width:960px){
  body[data-page="approche"] #hero.hero-page .hero-content{
    padding-top:calc(80px + 1.5rem);
    padding-right:2rem;padding-left:2rem;
    padding-bottom:2.75rem;
  }
}
@media (max-width:480px){
  body[data-page="approche"] #hero.hero-page .hero-content{
    padding-top:calc(72px + 1.5rem);
    padding-right:1.5rem;padding-left:1.5rem;
    padding-bottom:2.5rem;
  }
}


/* M7.1B — Notre approche : frise mobile lisible et fix des cartes tactiles.
   Scope exclusif aux petites largeurs : disposition desktop preservee. */
@media (max-width:760px){
  /* Rail vertical des trois etapes : numerotation discrete a gauche du texte. */
  body[data-page="approche"] .approach-v2 .approach-process{
    padding-left:56px;
    padding-right:0;
    gap:clamp(2.75rem,7vw,3.25rem);
    min-width:0;
  }
  body[data-page="approche"] .approach-v2 .approach-process-line{
    left:19px;
    right:auto;
    width:1px;
    height:auto;
    top:0;
    bottom:0;
  }
  body[data-page="approche"] .approach-v2 .approach-process-step{
    padding:0;
    min-width:0;
  }
  body[data-page="approche"] .approach-v2 .approach-process-step::before{
    top:2px;
    left:-43px;
    width:9px;
    height:9px;
    z-index:2;
  }
  body[data-page="approche"] .approach-v2 .approach-process-index{
    position:absolute;
    top:27px;
    left:-51px;
    width:36px;
    text-align:center;
    font-size:clamp(21px,5.4vw,25px);
    line-height:1.15;
    font-weight:300;
    color:var(--laterite);
    z-index:2;
    background:#F8F4EA;
  }
  body[data-page="approche"] .approach-v2 .approach-process-phase{
    margin:0 0 .8rem;
    min-height:0;
  }
  body[data-page="approche"] .approach-v2 .approach-process-step h3,
  body[data-page="approche"] .approach-v2 .approach-process-step p{
    max-width:100%;
    overflow-wrap:break-word;
  }
}
@media (max-width:860px){
  /* Tous les etats tactile/hover/focus annulent l'ancienne translation de
     l'infobulle desktop. Les descriptions sont deja visibles en permanence. */
  body[data-page="approche"] .apx-pills .apx-pill{min-width:0;}
  body[data-page="approche"] .apx-pills .apx-pill .apx-pill-t,
  body[data-page="approche"] .apx-pills .apx-pill .apx-tip{min-width:0;}
  body[data-page="approche"] .apx-pills .apx-pill .apx-tip,
  body[data-page="approche"] .apx-pills .apx-pill:hover .apx-tip,
  body[data-page="approche"] .apx-pills .apx-pill:focus .apx-tip,
  body[data-page="approche"] .apx-pills .apx-pill:focus-visible .apx-tip,
  body[data-page="approche"] .apx-pills .apx-pill.is-open .apx-tip,
  body[data-page="approche"] .apx-pills .apx-pill:first-child .apx-tip,
  body[data-page="approche"] .apx-pills .apx-pill:last-child .apx-tip{
    position:static;
    grid-column:2;
    left:auto;
    right:auto;
    top:auto;
    width:auto;
    transform:none!important;
    opacity:1;
    visibility:visible;
    background:none;
    color:rgba(38,32,26,.78);
    padding:0;
    pointer-events:auto;
    text-align:left;
  }
}
