/* ==========================================================================
   Laura Renteria Ramirez — Ostéopathe D.O.
   Feuille de style extraite de la maquette validée.
   Aucun changement visuel : couleurs, typo et espacements sont repris tels quels.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Police Jost — auto-hébergée (subset latin, fichiers Fontsource).
   Pas d'appel à Google Fonts (RGPD).
   -------------------------------------------------------------------------- */
@font-face{
  font-family:Jost;
  font-style:normal;
  font-weight:200;
  font-display:swap;
  src:url("fonts/jost-latin-200-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:Jost;
  font-style:normal;
  font-weight:300;
  font-display:swap;
  src:url("fonts/jost-latin-300-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:Jost;
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("fonts/jost-latin-400-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:Jost;
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("fonts/jost-latin-500-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* Police de marque Kobe (Jérémy Schneider) — utilisée par le logo pour le nom.
   Réservée au texte de marque du header ; subset latin converti depuis l'OTF Laura_doc. */
@font-face{
  font-family:Kobe;
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("fonts/kobe-regular.woff2") format("woff2");
}

/* --------------------------------------------------------------------------
   Tokens
   -------------------------------------------------------------------------- */
:root{
  /* Couleurs */
  --paper:#F4F1EE;      /* fond général */
  --paper-alt:#EFEBE7;  /* sections alternées */
  --card-bg:#FBF9F7;    /* fonds de cartes */
  --ink:#0A0A0A;        /* texte principal */
  --blue:#586A96;       /* bleu principal — #5C6E9C dans la maquette, assombri de ~4 %
                           (validé) pour atteindre AA (4.5:1) sur les fonds clairs */
  --sky:#A9C6E8;        /* bleu clair */
  --error:#9C3D3D;      /* états d'erreur du formulaire (6.3:1 sur fond carte) */

  /* Encre translucide (textes secondaires) */
  --ink-85:rgba(10,10,10,.85);
  --ink-80:rgba(10,10,10,.8);
  --ink-78:rgba(10,10,10,.78);
  --ink-76:rgba(10,10,10,.76);
  --ink-74:rgba(10,10,10,.74);
  --ink-72:rgba(10,10,10,.72);
  --ink-68:rgba(10,10,10,.68);
  --ink-60:rgba(10,10,10,.6);
  --ink-55:rgba(10,10,10,.55);
  --ink-50:rgba(10,10,10,.5);
  --ink-40:rgba(10,10,10,.4);
  --ink-35:rgba(10,10,10,.35);

  /* Bleu translucide (bordures, filets) */
  --blue-14:rgba(92,110,156,.14);
  --blue-16:rgba(92,110,156,.16);
  --blue-18:rgba(92,110,156,.18);
  --blue-20:rgba(92,110,156,.2);
  --blue-22:rgba(92,110,156,.22);
  --blue-24:rgba(92,110,156,.24);
  --blue-26:rgba(92,110,156,.26);
  --blue-28:rgba(92,110,156,.28);
  --blue-30:rgba(92,110,156,.3);
  --blue-32:rgba(92,110,156,.32);
  --blue-35:rgba(92,110,156,.35);
  --blue-60:rgba(92,110,156,.6);

  /* Crème et bleu clair translucides (sur fonds bleus, voiles) */
  --paper-96:rgba(244,241,238,.96);
  --paper-92:rgba(244,241,238,.92);
  --paper-86:rgba(244,241,238,.86);
  --paper-65:rgba(244,241,238,.65);
  --paper-60:rgba(244,241,238,.6);
  --sky-50:rgba(169,198,232,.5);
  --sky-30:rgba(169,198,232,.3);

  /* Échelle typo (les tailles ponctuelles restent déclarées dans les composants) */
  --font:Jost,system-ui,sans-serif;
  --fs-kicker:10.5px;   /* surtitres, labels de champ, en-têtes de tableau */
  --fs-caps:11.5px;     /* nav, chips, petits boutons */
  --fs-btn:12px;        /* boutons principaux */
  --fs-subhead:13px;    /* intertitres */
  --fs-small:14.5px;    /* texte secondaire */
  --fs-body:16px;       /* texte courant */
  --fs-lede:17px;       /* chapôs */
  --fs-h1:clamp(34px,5.4vw,66px);
  --fs-h2:clamp(26px,3.6vw,44px);
  --fs-stat:clamp(44px,6vw,72px);

  /* Espacements */
  --container:1180px;
  --gutter:24px;
  --sect-pad:104px;

  /* Rayons */
  --r-card:36px;
  --r-panel:32px;
  --r-tile:20px;
  --r-input:16px;
  --r-pill:999px;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html{scroll-behavior:smooth}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:var(--blue);text-decoration:none}
a:hover{color:var(--ink)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
::selection{background:var(--sky)}
input,textarea,select,button{font:inherit;color:inherit}
/* Le « e » de Paris 14e ne prend pas l'interlettrage des titres, et sa hauteur
   d'exposant ne grandit plus la ligne : sans line-height:0, la carte Paris était
   décalée de 3 px par rapport à celle d'Asnières (cartes cabinet et footer). */
sup{letter-spacing:0;line-height:0}

/* --------------------------------------------------------------------------
   Layout
   -------------------------------------------------------------------------- */
.container{max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
/* Espacement vertical par défaut de toute section ; les variantes ci-dessous le
   remplacent. Sans cette règle, une section en .sect seul (le déroulé de séance
   de l'accueil) restait collée au bas de la section grise qui la précède. */
.sect{padding-top:var(--sect-pad);padding-bottom:var(--sect-pad)}
.sect-hero{padding-top:88px;padding-bottom:72px}
.sect-main{padding-top:var(--sect-pad);padding-bottom:var(--sect-pad)}
.sect-alt{background:var(--paper-alt);padding-top:var(--sect-pad);padding-bottom:var(--sect-pad);border-top:1px solid var(--blue-14)}

/* --------------------------------------------------------------------------
   Composants
   -------------------------------------------------------------------------- */
.kicker{font-size:var(--fs-kicker);font-weight:400;letter-spacing:.32em;text-transform:uppercase;color:var(--blue);margin-bottom:22px}
.kicker-muted{letter-spacing:.28em;color:var(--ink-60);margin-bottom:26px} /* .4 dans la maquette, remonté pour AA (audit lot 6) */

.btn{display:inline-block;border:0;background:none;border-radius:var(--r-pill);padding:17px 34px;font-size:var(--fs-btn);font-weight:500;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.btn-primary{background:var(--blue);color:var(--paper)}
.btn-primary:hover{background:var(--ink);color:var(--paper)}
.btn-secondary{border:1px solid var(--blue);color:var(--blue)}
.btn-secondary:hover{background:var(--sky);border-color:var(--sky);color:var(--ink)}
.btn-sm{padding:12px 22px;font-size:11px;letter-spacing:.16em;white-space:nowrap}
.btn-block{display:block;text-align:center;margin-top:34px;padding:16px 30px;font-size:var(--fs-caps)}
.btn-bar{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:15px 22px;font-size:var(--fs-caps);letter-spacing:.16em}

.card{border:1px solid var(--blue-28);border-radius:var(--r-card);padding:44px 40px;background:var(--card-bg)}
.panel{border:1px solid var(--blue-22);border-radius:var(--r-panel);padding:36px 34px;background:var(--paper)}

.chip{background:var(--sky);color:var(--ink);border-radius:var(--r-pill);padding:7px 15px;font-size:var(--fs-caps);letter-spacing:.1em}
.chips{display:flex;flex-wrap:wrap;gap:8px}

.input{border:1px solid var(--blue-32);border-radius:var(--r-input);padding:14px 18px;background:var(--paper);font-size:15px;font-weight:300;outline:none}
.input:focus{border-color:var(--blue);background:#fff}
select.input{appearance:none}
textarea.input{resize:vertical}

.subhead{margin:0 0 26px;font-size:var(--fs-subhead);font-weight:400;letter-spacing:.26em;text-transform:uppercase;color:var(--blue)}

.sect-title{margin:0;font-family:Kobe,var(--font);font-size:var(--fs-h2);font-weight:400;letter-spacing:.13em;line-height:1.25;text-transform:uppercase;color:var(--ink)}
.sect-title--narrow{max-width:15ch}
.sect-title--spaced{margin-bottom:52px}
.sect-title--form{font-size:clamp(26px,3.4vw,40px);margin-bottom:26px}
.sect-lede{max-width:640px;margin:32px 0 0;font-size:var(--fs-lede);font-weight:300;line-height:1.85;color:var(--ink-76);text-wrap:pretty}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:60;background:var(--paper-92);backdrop-filter:blur(14px);border-bottom:1px solid var(--blue-16)}
.header-inner{max-width:var(--container);margin:0 auto;padding:14px var(--gutter);display:flex;align-items:center;gap:28px}

/* ---- Composant logo ------------------------------------------------------
   SVG à fond transparent extraits du fichier maître Laura_doc
   (logo-r.svg pour la marque, vertebres.svg pour les ornements). */
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand-logo{height:38px;width:auto}
.brand-text{display:flex;flex-direction:column;gap:3px}
.brand-name{font-family:Kobe,var(--font);font-size:12px;font-weight:400;letter-spacing:.14em;color:var(--ink);line-height:1}
.brand-role{font-size:9px;font-weight:300;letter-spacing:.3em;color:var(--blue);line-height:1}

.site-nav{display:flex;gap:30px;margin-left:auto;font-size:var(--fs-caps);font-weight:400;letter-spacing:.18em;text-transform:uppercase}
.nav-link{color:var(--ink);padding:4px 0;border-bottom:1px solid transparent}
.nav-link:hover{border-bottom-color:var(--blue);color:var(--blue)}

.header-actions{display:flex;align-items:center;gap:14px;margin-left:auto;flex:none}
.lang-toggle{background:none;border:1px solid var(--blue-30);border-radius:var(--r-pill);padding:6px 12px;font-size:10px;letter-spacing:.16em;color:var(--blue);cursor:pointer}
.lang-toggle:hover{background:var(--sky);border-color:var(--sky);color:var(--ink)}
.header-phone{display:flex;align-items:center;gap:8px;font-size:12.5px;letter-spacing:.12em;color:var(--ink)}
.header-phone:hover{color:var(--blue)}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.hero{display:grid;grid-template-columns:1.35fr .65fr;gap:56px;align-items:center}
.hero .kicker{margin-bottom:32px}
.hero-h1{margin:0}
.hero-h1 .kicker,.hero-h1 .hero-title{display:block}
.hero-title{margin:0;font-family:Kobe,var(--font);font-size:var(--fs-h1);font-weight:400;letter-spacing:.1em;line-height:1.14;text-transform:uppercase;color:var(--ink);text-wrap:balance}
.hero-name{margin:26px 0 0;font-size:14px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--ink)}
.hero-lede{max-width:560px;margin:34px 0 0;font-size:var(--fs-lede);font-weight:300;line-height:1.8;color:var(--ink-76);text-wrap:pretty}
.btn-tel{display:inline-flex;align-items:center;gap:9px}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:40px}
.hero-sig{display:flex;align-items:center;gap:16px;margin-top:52px}
.sig-text{font-size:clamp(11px,1.5vw,14px);font-weight:300;letter-spacing:.42em;text-transform:uppercase;color:var(--blue);white-space:nowrap} /* sky dans la maquette, assombri pour AA (audit lot 6) */
.sig-line{flex:1;height:1px;background:var(--sky)}
.hero-orn{display:flex;justify-content:flex-end}

/* Portrait du hero — arche en écho au R du logo ; le fond crème de la photo
   se fond dans celui de la page */
.hero-photo{width:min(340px,100%);height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:170px 170px var(--r-panel) var(--r-panel);border:1px solid var(--blue-16)}

/* Ornements vertèbres : SVG à fond transparent */
.orn-cabs{height:88px;width:auto;margin-left:auto;transform:rotate(90deg);opacity:.85}
.orn-form{width:130px;height:auto;margin-top:56px;opacity:.9}

/* --------------------------------------------------------------------------
   Grille des motifs de consultation (accueil)
   -------------------------------------------------------------------------- */
.motifs-grid{margin-top:56px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.motif-card{display:flex;flex-direction:column;gap:14px;padding:30px 28px;color:inherit;transition:border-color .18s ease}
.motif-card:hover{border-color:var(--blue)}
.motif-card .cab-name{margin:0}
.motif-desc{margin:0;font-size:14.5px;font-weight:300;line-height:1.65;color:var(--ink-76)}
.motif-more{margin-top:auto;padding-top:6px;font-size:var(--fs-caps);font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}

/* --------------------------------------------------------------------------
   Section « Pourquoi consulter » (accueil)
   -------------------------------------------------------------------------- */
.why-grid{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
/* Chaque case porte un intitulé court et une ligne d'explication : les panneaux
   ne paraissent plus vides et gardent la même hauteur d'une colonne à l'autre. */
.why-item{display:flex;flex-direction:column;gap:12px;padding:32px 30px}
.why-title{font-size:14px;font-weight:400;letter-spacing:.06em;line-height:1.4;text-transform:uppercase;color:var(--ink)}
.why-text{font-size:var(--fs-small);font-weight:300;line-height:1.7;color:var(--ink-74)}

/* --------------------------------------------------------------------------
   Section entreprise
   -------------------------------------------------------------------------- */
.stats-band{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:64px;background:var(--blue-18);border-radius:var(--r-panel);overflow:hidden}
/* Variante réassurance de l'accueil : 4 repères courts, chiffres moins massifs */
.stats-band--4{grid-template-columns:repeat(4,1fr);margin-top:0}
.stats-band--4 .stat{padding:34px 30px}
.stats-band--4 .stat-num{font-size:clamp(26px,2.8vw,36px)}
.stats-band--4 .stat-text{margin-top:12px}
.stat{background:var(--blue);color:var(--paper);padding:44px 36px}
.stat-num{font-size:var(--fs-stat);font-weight:200;letter-spacing:.02em;line-height:1}
.stat-text{margin-top:18px;font-size:14px;font-weight:300;line-height:1.6;color:var(--paper)} /* .86 dans la maquette, crème plein pour AA (audit lot 6) */
.note-sources{margin-top:14px;font-size:11px;font-weight:300;letter-spacing:.06em;color:var(--ink-60)} /* .45 dans la maquette, remonté pour AA (validé) */

.format-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:88px}

.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:22px}
.steps li{display:grid;grid-template-columns:38px 1fr;gap:18px;align-items:start}
.step-num{font-size:12px;font-weight:400;letter-spacing:.12em;color:var(--blue);padding-top:5px} /* sky dans la maquette, assombri pour AA (audit lot 6) */
.step-text{font-size:var(--fs-body);font-weight:300;line-height:1.7;color:var(--ink-80)}
/* Variante accueil : déroulé de la séance patient, en deux colonnes */
.steps--seance{margin-top:56px;display:grid;grid-template-columns:repeat(2,1fr);gap:38px 56px}
.steps--seance li{grid-template-columns:44px 1fr}
.step-title{display:block;font-weight:400;letter-spacing:.06em;text-transform:uppercase;font-size:14px;color:var(--ink);margin-bottom:9px}

.dotted{list-style:none;margin:0 0 40px;padding:0;display:flex;flex-direction:column;gap:16px}
.dotted li{display:grid;grid-template-columns:16px 1fr;gap:16px;align-items:start;font-size:var(--fs-body);font-weight:300;line-height:1.7;color:var(--ink-80)}
.dot{width:9px;height:9px;border-radius:var(--r-pill);background:var(--sky);margin-top:9px}

.employer-card .subhead{margin-bottom:22px}
.employer-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 24px}
.mini-label{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:8px}
.mini-text{font-size:var(--fs-small);font-weight:300;line-height:1.65;color:var(--ink-68)}

.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:64px}
.cta-note{font-size:13.5px;font-weight:300;color:var(--ink-60)} /* .55 dans la maquette, remonté pour AA (audit lot 6) */

.logos-strip{margin-top:80px;padding-top:40px;border-top:1px solid var(--blue-18)}
.logos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.logo-slot{border:1px dashed var(--blue-35);border-radius:var(--r-tile);height:76px;display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue)} /* blue-60 dans la maquette, assombri pour AA (audit lot 6) */

/* --------------------------------------------------------------------------
   Cabinets
   -------------------------------------------------------------------------- */
.cabs-head{display:flex;align-items:flex-end;gap:32px;margin-bottom:52px}
.cabs{display:grid;grid-template-columns:1fr 1fr;gap:24px}
/* Paris affiche trois lignes d'accès, Asnières deux : le bloc « Accès » absorbe
   l'écart pour que les boutons et les liens « en détail » restent alignés. */
.cabs .card{display:flex;flex-direction:column}
.cabs .cab-access{flex:1}
.cab-city{font-size:var(--fs-kicker);letter-spacing:.26em;text-transform:uppercase;color:var(--blue);margin-bottom:14px} /* sky dans la maquette, assombri pour AA (audit lot 6) */
.cab-name{margin:0 0 10px;font-size:23px;font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.cab-addr{font-size:var(--fs-body);font-weight:300;line-height:1.7;color:var(--ink-72)}
.cab-block{margin-top:28px;padding-top:24px;border-top:1px solid var(--blue-18)}
.cab-block+.cab-block{margin-top:22px;padding-top:22px}
.cab-label{font-size:var(--fs-kicker);letter-spacing:.22em;text-transform:uppercase;color:var(--blue);margin-bottom:10px}
.cab-access .cab-label{margin-bottom:12px}
.cab-hours{font-size:15.5px;font-weight:300;color:var(--ink-78)}

/* Avis Google — bloc statique (citations du profil Google Business, note 5,0/11 avis).
   À mettre à jour à la main quand la note ou le nombre d'avis évolue. */
/* Cartes Google du footer — chargées en lazy pour ne pas peser sur le LCP.
   Les deux colonnes n'ont pas la même hauteur de texte (l'adresse d'Asnières
   passe à la ligne) : les plans sont calés en bas de colonne pour s'aligner. */
.footer-map{width:100%;height:180px;border:1px solid var(--blue-22);border-radius:12px;margin-top:16px;display:block}
.footer-col--map{display:flex;flex-direction:column;align-items:flex-start}
.footer-col--map .footer-cab{margin-bottom:16px}
.footer-col--map .footer-map{margin-top:auto}

.reviews{margin-top:64px;padding-top:40px;border-top:1px solid var(--blue-18)}
/* En section dédiée (accueil), le séparateur interne n'a plus lieu d'être */
.reviews--section{margin-top:56px;padding-top:0;border-top:0}
.reviews-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:18px;margin-bottom:30px}
.reviews-score{font-size:15px;font-weight:400;letter-spacing:.06em;color:var(--ink)}
.reviews-score .star{color:var(--blue);letter-spacing:.12em}
.reviews-link{margin-left:auto;font-size:13px;font-weight:400;letter-spacing:.08em}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.review{margin:0;border:1px solid var(--blue-22);border-radius:var(--r-panel);background:var(--card-bg);padding:30px 28px;display:flex;flex-direction:column;gap:18px}
.review blockquote{margin:0;font-size:15px;font-weight:300;line-height:1.7;color:var(--ink-80);flex:1}
.review figcaption{font-size:11.5px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}

/* --------------------------------------------------------------------------
   Tarifs
   -------------------------------------------------------------------------- */
.tarifs-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:56px;align-items:start}
.table-wrap{border-radius:var(--r-panel);overflow:hidden;border:1px solid var(--blue-24);background:var(--paper)}
.price-table{width:100%;border-collapse:collapse;font-size:15.5px;font-weight:300}
.price-table th{padding:20px;text-align:right;font-size:var(--fs-kicker);font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);background:var(--blue);white-space:nowrap}
.price-table th:first-child,.price-table th:last-child{padding-left:28px;padding-right:28px}
.price-table th:first-child{text-align:left;white-space:normal}
.price-table tbody tr{border-bottom:1px solid var(--blue-16)}
.price-table tbody tr:last-child{border-bottom:0}
.price-table td{padding:22px 20px;text-align:right;color:var(--ink)}
.price-table td:first-child{padding:22px 28px;text-align:left;color:var(--ink-85)}
.price-table td:last-child{padding-left:28px;padding-right:28px}
.price-sub{display:block;font-size:12px;color:var(--ink-60)} /* .45 dans la maquette, remonté pour AA (validé) */
.price-empty{color:var(--ink-35)}
.price-quote{color:var(--blue);letter-spacing:.1em}
.tarifs-aside .subhead{margin-bottom:20px}
.aside-text{font-size:var(--fs-body);font-weight:300;line-height:1.85;color:var(--ink-74);text-wrap:pretty}
.aside-note{margin-top:26px;padding-top:24px;border-top:1px solid var(--blue-20);font-size:var(--fs-small);font-weight:300;line-height:1.75;color:var(--ink-60)}

/* --------------------------------------------------------------------------
   Formulaire
   -------------------------------------------------------------------------- */
.form-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:start}
.form-intro{font-size:var(--fs-body);font-weight:300;line-height:1.85;color:var(--ink-72);text-wrap:pretty;max-width:44ch}
.form-card{border-color:var(--blue-26)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.field{display:flex;flex-direction:column;gap:9px}
.field--full{grid-column:1 / -1}
.field-label{font-size:var(--fs-kicker);letter-spacing:.2em;text-transform:uppercase;color:var(--blue)}
/* Mention « facultatif » : le formulaire de premier contact ne demande que
   quatre champs obligatoires, autant que ça se voie au premier coup d'œil. */
.field-opt{margin-left:8px;font-size:9.5px;letter-spacing:.14em;color:var(--ink-60)}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:30px}
.form-status{font-size:13px;font-weight:300;color:var(--ink-60)} /* .5 dans la maquette, remonté pour AA (audit lot 6) */
.form-status.is-success{color:var(--blue)}
.form-status.is-error{color:var(--error)}

/* États et champs ajoutés en phase 3 (consentement RGPD, erreurs, honeypot) */
.field-note{font-size:13px;font-weight:300;line-height:1.6;color:var(--ink-60)}
.consent{display:grid;grid-template-columns:18px 1fr;gap:12px;align-items:start}
.consent input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--blue)}
.consent-text{font-size:13px;font-weight:300;line-height:1.6;color:var(--ink-72)}
.consent-text label{cursor:pointer}
.consent-text a{text-decoration:underline}
.consent .field-error{grid-column:1 / -1}
.field-error{font-size:12.5px;font-weight:400;color:var(--error)}
.field.has-error .input{border-color:var(--error)}
.btn[disabled]{opacity:.6;cursor:default}
.hp{display:none} /* honeypot anti-spam, jamais affiché */

/* --------------------------------------------------------------------------
   Pages légales (mentions-legales.html, politique-confidentialite.html)
   -------------------------------------------------------------------------- */
.legal{max-width:760px}
.legal h2{margin:48px 0 18px;font-size:var(--fs-subhead);font-weight:400;letter-spacing:.26em;text-transform:uppercase;color:var(--blue)}
.legal p,.legal li{font-size:var(--fs-body);font-weight:300;line-height:1.8;color:var(--ink-76)}
.legal p{margin:0 0 14px}
.legal ul{margin:0 0 14px;padding-left:22px}
.legal li{margin-bottom:6px}
.legal a{text-decoration:underline}
.legal-date{margin-top:56px;font-size:13px;font-weight:300;color:var(--ink-60)}
/* Valeur à compléter avant mise en ligne — volontairement très visible */
.todo{background:rgba(169,198,232,.35);border-radius:6px;padding:1px 7px;font-weight:400;white-space:nowrap}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.footer{background:var(--blue);color:var(--paper);padding-top:80px;padding-bottom:40px}
.footer-sig{font-size:clamp(13px,2.4vw,22px);font-weight:200;letter-spacing:.42em;text-transform:uppercase;color:var(--paper);margin-bottom:64px} /* sky dans la maquette, crème plein pour AA (audit lot 6) */
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:40px}
.footer-name{font-size:12px;letter-spacing:.24em;text-transform:uppercase;margin-bottom:6px}
.footer-role{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--paper)} /* .6 dans la maquette, crème plein pour AA (audit lot 6) */
.footer-label{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--paper);margin-bottom:14px} /* sky dans la maquette, crème plein pour AA (audit lot 6) */
.footer-link{display:block;font-size:15px;font-weight:300;color:var(--paper);padding:3px 0} /* padding : cible tactile ≥ 24px (audit lot 6) */
.footer-link:hover{color:var(--sky)}
.footer-tel{margin-bottom:6px}
.todo-chip{margin-top:10px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);border:1px dashed var(--sky-50);border-radius:var(--r-pill);padding:4px 10px;display:inline-block} /* sky dans la maquette, crème plein pour AA (audit lot 6) */
.footer-addr{font-size:15px;font-weight:300;line-height:1.7;color:var(--paper)} /* .86 dans la maquette, crème plein pour AA (validé) */
.footer-bottom{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin-top:64px;padding-top:26px;border-top:1px solid var(--sky-30);font-size:12px;font-weight:300;color:var(--paper)} /* .65 dans la maquette, crème plein pour AA (audit lot 6) */
.footer-bottom a{color:var(--paper)} /* .80 dans la maquette, crème plein pour AA (validé) */
.footer-bottom a:hover{color:var(--sky)}
.footer-bottom .footer-doctolib{margin-left:auto;color:var(--paper)} /* sky dans la maquette, crème plein pour AA (audit lot 6) */
.footer-bottom .footer-doctolib:hover{color:var(--sky)}

/* --------------------------------------------------------------------------
   Refonte SEO — compléments construits sur les tokens existants.
   Aucune modification des composants validés ci-dessus.
   -------------------------------------------------------------------------- */
/* Le kicker peut porter le h1 (sémantique inversée, rendu strictement identique) */
h1.kicker{margin-top:0}

/* Prose : paragraphes courants des nouvelles pages (même voix que .legal) */
.prose{max-width:760px}
.prose p{margin:0 0 16px;font-size:var(--fs-body);font-weight:300;line-height:1.85;color:var(--ink-76);text-wrap:pretty}
.prose p:last-child{margin-bottom:0}
.prose a{text-decoration:underline}

/* Lien dans un chapô : souligné pour rester distinguable sans la couleur (AA) */
.sect-lede a{text-decoration:underline}

/* Intertitres et graisses dans la prose */
.prose .subhead{margin:40px 0 18px}
.prose strong{font-weight:400}

/* Rappel des chips d'accès sous la prose des pages cabinet */
.chips--spaced{margin-top:28px}

/* FAQ des pages cabinet — details/summary natifs, tokens existants */
.faq{display:flex;flex-direction:column;gap:14px;max-width:760px}
.faq details{border:1px solid var(--blue-22);border-radius:var(--r-tile);background:var(--card-bg)}
.faq summary{display:flex;justify-content:space-between;align-items:baseline;gap:16px;cursor:pointer;padding:20px 24px;font-size:var(--fs-body);font-weight:400;color:var(--ink);list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--blue);font-weight:300;font-size:18px;line-height:1;flex:none}
.faq details[open] summary::after{content:"−"}
.faq .faq-a{margin:0;padding:0 24px 22px;font-size:var(--fs-small);font-weight:300;line-height:1.75;color:var(--ink-74)}
.faq .faq-a a{text-decoration:underline}

/* Lien « en détail » sous le bouton des cartes cabinet */
.cab-more{display:block;text-align:center;margin-top:16px;font-size:13px;font-weight:400;letter-spacing:.06em;text-decoration:underline}

/* Lien vers la page cabinet sous les adresses du footer */
.footer-cab{margin-top:12px;font-size:13px;text-decoration:underline}

/* --------------------------------------------------------------------------
   Barre mobile
   -------------------------------------------------------------------------- */
.mbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:80;grid-template-columns:auto 1fr;gap:10px;padding:12px 14px;background:var(--paper-96);backdrop-filter:blur(14px);border-top:1px solid var(--blue-20)}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media(max-width:1000px){
  .hero,.cabs,.fgrid,.stats-band,.format-grid,.employer-grid,.tarifs-grid,.form-grid,.reviews-grid{grid-template-columns:1fr}
  .stats-band--4{grid-template-columns:repeat(2,1fr)}
  .stats-band--4 .stat{padding:26px 22px}
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .steps--seance{grid-template-columns:1fr}
  .motifs-grid{grid-template-columns:repeat(2,1fr)}
  .logos-grid,.footer-grid{grid-template-columns:1fr 1fr}
  .deskonly{display:none}
  /* Le CTA du header déborde en mobile et fait défiler la page horizontalement ;
     la barre mobile fixe (.mbar) porte déjà le même bouton */
  .header-actions .btn{display:none}
  .mbar{display:grid}
  .sect{padding-top:64px;padding-bottom:64px}
  /* Le portrait reste visible en mobile (l'ancien ornement décoratif était masqué) */
  .hero-orn{justify-content:center;margin-top:12px}
  .hero-photo{width:min(260px,72%);border-radius:130px 130px 24px 24px}
  body{padding-bottom:76px} /* laisse la place à la barre mobile fixe */
}
@media(max-width:640px){
  .logos-grid,.footer-grid{grid-template-columns:1fr}
  .why-grid{grid-template-columns:1fr}
  .motifs-grid{grid-template-columns:1fr}
  /* Le tableau des tarifs dépasse de quelques pixels avec les paddings desktop */
  .price-table th,.price-table td{padding:16px 12px}
  .price-table th:first-child,.price-table th:last-child,
  .price-table td:first-child,.price-table td:last-child{padding-left:16px;padding-right:16px}
}
