/* ==========================================================================
   gdenispsy.com · charte « Douceur » (2026)
   Feuille commune à toutes les pages refaites (remplace styles.css page par page).
   Couleurs du logo : framboise #A90B4D, bordeaux #6B2D3E, rose poudré.
   Touches : vert = suivis, bleu océan = Les Sables, miel = attente / infos.
   ========================================================================== */

:root{
  --bg:#FFFCFD; --bg2:#FAF3F5; --card:#FFFFFF; --ink:#2E2A2C; --ink2:#55474D; --muted:#7A6A71; --line:#EEDFE5;
  --fr:#A90B4D; --fr-dark:#870939; --fr-soft:#FBEDF2; --poudre:#F6DCE6; --bx:#6B2D3E; --on-fr:#FFFFFF;
  --leaf:#2F6B4A; --leaf-soft:#E8F3EC; --sea:#1F5C86; --sea-soft:#E6F1F8; --sun:#8A5A00; --sun-soft:#FFF3DA;
  --star:#E0A100; --foot-bg:#6B2D3E; --foot-ink:#F7E6EC;
  --shadow:0 1px 2px rgba(107,45,62,.05),0 14px 34px rgba(107,45,62,.08);
  --shadow-sm:0 2px 10px rgba(107,45,62,.06);
  --f-d:'Comfortaa','Trebuchet MS',system-ui,sans-serif;
  --f-b:'Nunito','Segoe UI',system-ui,sans-serif;
  --r:26px; --nav-h:76px;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#1A1517; --bg2:#221B1E; --card:#2A2225; --ink:#F5ECEF; --ink2:#DCCBD1; --muted:#B19FA6; --line:#3D3136;
  --fr:#F06A9E; --fr-dark:#F58AB3; --fr-soft:#3A2129; --poudre:#4A2733; --bx:#F2B8CB; --on-fr:#1A1517;
  --leaf:#7FC79E; --leaf-soft:#1F3027; --sea:#8EC3E8; --sea-soft:#1B2A35; --sun:#F0C36A; --sun-soft:#352A16;
  --star:#F0C36A; --foot-bg:#2E1A21; --foot-ink:#EBD7DE;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 14px 34px rgba(0,0,0,.35); --shadow-sm:0 2px 10px rgba(0,0,0,.3);
  color-scheme:dark; } }
:root[data-theme="dark"]{
  --bg:#1A1517; --bg2:#221B1E; --card:#2A2225; --ink:#F5ECEF; --ink2:#DCCBD1; --muted:#B19FA6; --line:#3D3136;
  --fr:#F06A9E; --fr-dark:#F58AB3; --fr-soft:#3A2129; --poudre:#4A2733; --bx:#F2B8CB; --on-fr:#1A1517;
  --leaf:#7FC79E; --leaf-soft:#1F3027; --sea:#8EC3E8; --sea-soft:#1B2A35; --sun:#F0C36A; --sun-soft:#352A16;
  --star:#F0C36A; --foot-bg:#2E1A21; --foot-ink:#EBD7DE;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 14px 34px rgba(0,0,0,.35); --shadow-sm:0 2px 10px rgba(0,0,0,.3);
  color-scheme:dark; }

/* ── Base ── */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; text-size-adjust:100%; overflow-x:hidden; overflow-x:clip; }
body{ margin:0; background:var(--bg); color:var(--ink); font:17px/1.65 var(--f-b); }
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--fr); }
h1,h2,h3,h4{ font-family:var(--f-d); color:var(--bx); line-height:1.25; text-wrap:balance; margin:0; }
p{ margin:0; }
ul{ margin:0; }
[hidden]{ display:none !important; }
:focus-visible{ outline:3px solid var(--fr); outline-offset:3px; border-radius:6px; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } *{ transition:none !important; animation:none !important; } }
.wrap{ max-width:1180px; margin:0 auto; padding-left:max(18px, env(safe-area-inset-left, 0px)); padding-right:max(18px, env(safe-area-inset-right, 0px)); }
section, [id]{ scroll-margin-top:calc(var(--nav-h) + 16px); }
.muted{ color:var(--muted); }
.txt{ color:var(--ink2); }
.txt + .txt{ margin-top:12px; }
strong{ font-weight:800; }

/* ── Navigation ── */
.site-nav{ position:sticky; top:0; z-index:50; transition:box-shadow .2s; }
.site-nav::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--bg); background:color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.site-nav.scrolled{ box-shadow:0 4px 18px rgba(107,45,62,.08); }
.site-nav .wrap{ display:flex; align-items:center; gap:18px; min-height:var(--nav-h); }
.nav-brand{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--bx); font:700 18px var(--f-d); margin-right:auto; }
.nav-brand img{ width:46px; height:46px; border-radius:50%; }
.nav-links{ display:flex; gap:2px; list-style:none; margin:0; padding:0; }
.nav-links a{ display:block; text-decoration:none; color:var(--ink2); font-weight:700; font-size:15px; padding:8px 12px; border-radius:99px; transition:background .15s, color .15s; }
.nav-links a:hover, .nav-links a.active{ background:var(--fr-soft); color:var(--fr); }
.nav-cta{ padding:11px 20px; font-size:15px; }
.burger{ display:none; width:46px; height:46px; border-radius:50%; border:1.5px solid var(--line); background:var(--card); cursor:pointer; position:relative; }
.burger span{ position:absolute; left:13px; right:13px; height:2px; border-radius:2px; background:var(--bx); transition:transform .2s, opacity .2s; }
.burger span:nth-child(1){ top:16px; } .burger span:nth-child(2){ top:22px; } .burger span:nth-child(3){ top:28px; }
.burger.active span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger.active span:nth-child(2){ opacity:0; }
.burger.active span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }
.menu-overlay{ display:none; }
@media (max-width:1020px){
  .burger{ display:block; }
  .site-nav .nav-cta{ display:none; }
  .nav-links{ position:fixed; top:0; right:0; bottom:0; width:min(320px, 86vw); z-index:60; flex-direction:column; gap:4px;
    background:var(--card); box-shadow:-10px 0 40px rgba(0,0,0,.15); transform:translateX(105%); visibility:hidden; transition:transform .25s ease, visibility 0s .25s;
    padding:calc(var(--nav-h) + env(safe-area-inset-top, 0px)) max(20px, env(safe-area-inset-right, 0px)) 24px 20px; }
  .nav-links.active{ transform:none; visibility:visible; transition:transform .25s ease; }
  .nav-links a{ font-size:17px; padding:12px 16px; }
  .burger{ z-index:61; }
  .menu-overlay.active{ display:block; position:fixed; inset:0; z-index:45; background:rgba(30,15,20,.4); }
}

/* ── Boutons, pastilles ── */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font:800 16px var(--f-b); text-decoration:none; border-radius:99px; padding:13px 24px; transition:transform .15s, box-shadow .15s, background .15s, color .15s; cursor:pointer; border:0; text-align:center; }
.btn-fr{ background:var(--fr); color:var(--on-fr); box-shadow:0 8px 20px rgba(169,11,77,.22); }
.btn-fr:hover{ background:var(--fr-dark); transform:translateY(-1px); }
.btn-line{ background:transparent; color:var(--fr); border:2px solid var(--fr); padding:11px 22px; }
.btn-line:hover{ background:var(--fr-soft); }
.btn-blanc{ background:#fff; color:#A90B4D; }
.btn-blanc:hover{ transform:translateY(-1px); }
.btns{ display:flex; flex-wrap:wrap; gap:12px; }
.chip{ display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:700; border-radius:99px; padding:5px 12px; line-height:1.4; }
.chip-fr{ background:var(--fr-soft); color:var(--fr); }
.chip-leaf{ background:var(--leaf-soft); color:var(--leaf); }
.chip-sea{ background:var(--sea-soft); color:var(--sea); }
.chip-sun{ background:var(--sun-soft); color:var(--sun); }
.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.eyebrow{ display:block; font-size:13px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--fr); margin-bottom:8px; }
.eyebrow.leaf{ color:var(--leaf); }
.stars{ color:var(--star); letter-spacing:2px; }
.lien{ font-weight:800; text-decoration:none; }
.lien:hover{ text-decoration:underline; }
.pill-link{ display:inline-flex; align-items:center; gap:8px; background:var(--fr-soft); color:var(--fr); border-radius:99px; padding:9px 18px; font-weight:800; font-size:15px; text-decoration:none; transition:background .15s, color .15s; }
.pill-link:hover{ background:var(--fr); color:var(--on-fr); }

/* ── Sections ── */
.sec{ padding-block:60px; }
.sec-band{ background:var(--bg2); }
.sec-head{ max-width:44em; margin-bottom:30px; }
.sec-head h2{ font-size:clamp(26px, 3vw, 36px); }
.sec-head p{ color:var(--ink2); margin-top:10px; }
.sec-head.centre{ margin-left:auto; margin-right:auto; text-align:center; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.grid-3{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
@media (max-width:860px){ .grid-2, .grid-3{ grid-template-columns:1fr; } .sec{ padding-block:46px; } }

/* ── Cartes ── */
.card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:30px; display:flex; flex-direction:column; gap:14px; min-width:0; }
.card h3{ font-size:23px; }
.card p, .card li{ color:var(--ink2); }
.card .lien, .card .btn{ margin-top:auto; align-self:flex-start; }
.card-ico{ width:54px; height:54px; border-radius:18px; display:grid; place-items:center; font-size:26px; background:var(--fr-soft); }
.card-ico.leaf{ background:var(--leaf-soft); }
.card-fr{ background:linear-gradient(140deg, #A90B4D 0%, #8E1747 60%, #6B2D3E 100%); border:0; color:#fff; }
.card-fr h3, .card-fr p, .card-fr li, .card-fr strong{ color:#fff; }
.card-fr .eyebrow{ color:#FBD3E2; }

/* listes à pastille */
.dots{ list-style:none; padding:0; display:grid; gap:9px; }
.dots li{ padding-left:28px; position:relative; color:var(--ink2); }
.dots li::before{ content:""; position:absolute; left:4px; top:.5em; width:12px; height:12px; border-radius:50%; background:var(--poudre); box-shadow:inset 0 0 0 3px var(--fr); }
.checks{ list-style:none; padding:0; display:grid; gap:9px; }
.checks li{ padding-left:30px; position:relative; }
.checks li::before{ content:"✓"; position:absolute; left:0; top:.1em; width:21px; height:21px; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:800; background:var(--fr-soft); color:var(--fr); }
.card-fr .checks li::before{ background:rgba(255,255,255,.22); color:#fff; }

/* ── Accordéons (balise <details>) ── */
.acc{ background:var(--card); border:1px solid var(--line); border-radius:20px; overflow:hidden; }
.acc + .acc{ margin-top:12px; }
.acc summary{ list-style:none; cursor:pointer; display:flex; align-items:center; gap:14px; padding:18px 20px; }
.acc summary::-webkit-details-marker{ display:none; }
.acc summary:hover{ background:var(--fr-soft); }
.acc-emo{ font-size:24px; flex:none; width:44px; height:44px; border-radius:14px; display:grid; place-items:center; background:var(--bg2); }
.acc-t{ flex:1; min-width:0; font:700 17px/1.35 var(--f-d); color:var(--bx); }
.acc-t small{ display:block; font:400 14.5px var(--f-b); color:var(--muted); margin-top:3px; }
.acc summary::after{ content:"+"; flex:none; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font:800 21px var(--f-b); background:var(--fr-soft); color:var(--fr); transition:transform .2s; }
.acc[open] summary::after{ content:"–"; }
.acc-body{ padding:0 20px 20px 78px; color:var(--ink2); display:grid; gap:10px; }
.acc-body strong{ color:var(--bx); }
.acc-body ul{ padding-left:20px; display:grid; gap:6px; }
@media (max-width:600px){ .acc-body{ padding-left:20px; } }
.accs-2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start; }
.accs-2 .acc + .acc{ margin-top:0; }
@media (max-width:860px){ .accs-2{ grid-template-columns:1fr; } }

/* ── Encadré conseil ── */
.note{ background:var(--fr-soft); border-radius:18px; padding:16px 20px; color:var(--ink2); }
.note strong{ color:var(--bx); }
.note.leaf{ background:var(--leaf-soft); }
.note.sun{ background:var(--sun-soft); }

/* ── Photos ── */
.photo{ border-radius:22px; overflow:hidden; background:var(--poudre); }
.photo img{ width:100%; height:100%; object-fit:cover; }
.zoomable img{ cursor:zoom-in; transition:transform .3s; }
.zoomable img:hover{ transform:scale(1.03); }
.galerie{ display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; }
.galerie .photo{ aspect-ratio:4/3; }
@media (max-width:700px){ .galerie{ grid-template-columns:1fr 1fr; gap:10px; } }

/* ── Cabinets ── */
.cab{ background:var(--card); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; min-width:0; }
.cab-visuel{ height:190px; position:relative; }
.cab-visuel img{ width:100%; height:100%; object-fit:cover; }
.cab-visuel svg{ width:100%; height:100%; display:block; }
.cab-illu{ width:100%; height:100%; }
.cab-visuel.mer{ background:
    radial-gradient(circle at 78% 28%, rgba(255,255,255,.75) 0 9%, transparent 10%),
    radial-gradient(120% 60% at 50% 110%, var(--sea-soft) 0 55%, transparent 56%),
    linear-gradient(180deg, var(--poudre), var(--sea-soft)); display:grid; place-items:center; }
.cab-visuel.mer span{ font:700 20px var(--f-d); color:var(--sea); background:var(--card); padding:8px 18px; border-radius:99px; box-shadow:var(--shadow-sm); }
.cab-in{ padding:24px 26px 26px; display:flex; flex-direction:column; gap:14px; flex:1; }
.cab h3{ font-size:22px; }
.etat{ display:grid; gap:9px; font-size:15.5px; color:var(--ink2); }
.etat div{ display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; }
.etat .chip{ flex:none; font-size:12.5px; padding:3px 10px; }
.cab .btns{ margin-top:auto; }

/* ── Étapes ── */
.etapes{ list-style:none; padding:0; display:grid; grid-template-columns:repeat(4, 1fr); gap:18px; counter-reset:e; }
.etape{ background:var(--card); border:1px solid var(--line); border-radius:22px; padding:24px 22px; display:flex; flex-direction:column; gap:8px; position:relative; }
.etape-num{ width:40px; height:40px; border-radius:50%; background:var(--fr); color:var(--on-fr); display:grid; place-items:center; font:700 18px var(--f-d); }
.etape .chip{ align-self:flex-start; font-size:12.5px; }
.etape h3{ font-size:18px; }
.etape p{ color:var(--ink2); font-size:15.5px; }
@media (max-width:1000px){ .etapes{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .etapes{ grid-template-columns:1fr; } }

/* ── Chronologie ── */
.frise{ list-style:none; padding:0; display:grid; gap:12px; }
.frise li{ display:grid; grid-template-columns:86px 1fr; gap:12px; color:var(--ink2); font-size:16px; }
.frise b{ font:700 15px var(--f-d); color:var(--fr); padding-top:2px; }

/* ── Pied de page ── */
.site-foot{ background:var(--foot-bg); color:var(--foot-ink); padding-block:48px 28px; margin-top:30px; font-size:15.5px; }
.site-foot a{ color:inherit; }
.foot-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:30px; }
.site-foot h3{ color:#fff; font-size:17px; margin-bottom:8px; }
.foot-liens{ display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:28px; padding-top:18px; border-top:1px solid rgba(255,255,255,.18); }
.foot-liens a{ text-decoration:none; opacity:.9; }
.foot-liens a:hover{ text-decoration:underline; opacity:1; }
.foot-copy{ margin-top:14px; font-size:13px; opacity:.7; }
.tel{ font-weight:800; white-space:nowrap; }
@media (max-width:860px){ .foot-grid{ grid-template-columns:1fr; gap:20px; } }

/* ── Retour en haut ── */
.scroll-top{ position:fixed; right:calc(18px + env(safe-area-inset-right, 0px)); bottom:calc(18px + env(safe-area-inset-bottom, 0px)); z-index:40;
  width:48px; height:48px; border-radius:50%; border:0; background:var(--fr); color:var(--on-fr); font:800 20px var(--f-b); cursor:pointer;
  box-shadow:0 8px 20px rgba(169,11,77,.3); opacity:0; pointer-events:none; transform:translateY(10px); transition:opacity .2s, transform .2s; }
.scroll-top.visible{ opacity:1; pointer-events:auto; transform:none; }

/* ── Visionneuse photo ── */
#lightbox{ position:fixed; inset:0; z-index:100; background:rgba(20,10,14,.88); display:none; align-items:center; justify-content:center; padding:24px; }
#lightbox.active{ display:flex; }
#lightbox img{ max-width:min(1100px, 100%); max-height:88vh; border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.lightbox-close{ position:absolute; top:calc(14px + env(safe-area-inset-top, 0px)); right:calc(18px + env(safe-area-inset-right, 0px)); width:46px; height:46px; border-radius:50%; border:0; background:rgba(255,255,255,.15); color:#fff; font-size:28px; line-height:1; cursor:pointer; }

/* ==========================================================================
   Page d'accueil
   ========================================================================== */
.accueil-hero{ display:grid; grid-template-columns:1.05fr .95fr; gap:52px; align-items:center; padding-block:34px 70px; }
.accueil-texte{ display:flex; flex-direction:column; gap:20px; min-width:0; }
.accueil-hero h1{ font-size:clamp(30px, 4.2vw, 50px); }
.accueil-hero h1 em{ font-style:normal; color:var(--fr); }
.h1-lieu{ display:block; font:800 13.5px/1.5 var(--f-b); letter-spacing:.1em; text-transform:uppercase; color:var(--fr); margin-bottom:14px; }
.accueil-lead{ font-size:19px; color:var(--ink2); max-width:34em; }
.petit{ font-size:13.5px; font-style:italic; margin-top:-10px; }
.accueil-collage{ position:relative; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:190px 190px; gap:14px; min-width:0; }
.accueil-collage .c1{ grid-row:span 2; border-radius:150px 150px 22px 22px; }
.avis{ position:absolute; left:-26px; bottom:-30px; background:var(--card); border-radius:18px; box-shadow:var(--shadow); padding:12px 16px; display:flex; align-items:center; gap:12px; font-size:14px; color:var(--ink2); text-decoration:none; max-width:300px; transition:transform .15s; }
.avis:hover{ transform:translateY(-2px); }
.avis img{ width:44px; height:44px; border-radius:50%; flex:none; }
.avis b{ display:block; color:var(--bx); font-size:15px; }
.avis .stars{ display:block; font-size:13px; line-height:1; }
.pourquoi{ display:grid; grid-template-columns:.8fr 1.2fr; gap:48px; align-items:start; }
.pourquoi h2{ font-size:clamp(26px, 3vw, 34px); }
.parcours{ gap:44px; }
.reperes{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:26px 28px; align-self:start; }
.reperes h3{ font-size:19px; margin-bottom:14px; }
@media (max-width:900px){
  .accueil-hero, .pourquoi{ grid-template-columns:1fr; gap:34px; }
  .accueil-collage{ grid-template-rows:150px 150px; margin-bottom:24px; }
  .avis{ left:12px; bottom:-26px; }
}

/* ==========================================================================
   Page Bilans & suivis
   ========================================================================== */
.page-hero{ padding-block:30px 50px; display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; }
.page-hero h1{ font-size:clamp(30px, 4vw, 48px); }
.page-hero .accueil-lead{ margin-top:16px; }
.page-hero .chips{ margin-top:20px; }
.page-hero .btns{ margin-top:26px; }
.choix-rapide{ background:var(--card); border-radius:var(--r); box-shadow:var(--shadow); padding:24px; display:grid; gap:12px; }
.choix-rapide a{ display:flex; align-items:center; gap:14px; text-decoration:none; color:var(--ink); padding:14px 16px; border-radius:18px; background:var(--bg2); transition:background .15s, transform .15s; }
.choix-rapide a:hover{ background:var(--fr-soft); transform:translateX(3px); }
.choix-rapide .ico{ font-size:26px; flex:none; }
.choix-rapide b{ display:block; font:700 17px var(--f-d); color:var(--bx); }
.choix-rapide span span{ display:block; font-size:14.5px; color:var(--muted); }
.formule-prix{ font:700 40px/1.1 var(--f-d); color:var(--fr); font-variant-numeric:tabular-nums; }
.card-fr .formule-prix{ color:#fff; }
.formule-lancement{ align-self:flex-start; background:rgba(255,255,255,.18); border-radius:99px; padding:5px 14px; font-size:14.5px; }
.formule-ideal{ margin-top:auto; font-size:15px; padding:12px 14px; border-radius:14px; background:var(--fr-soft); color:var(--bx); }
.card-fr .formule-ideal{ background:rgba(255,255,255,.15); color:#fff; }
.guide{ margin-top:40px; }
.guide h3{ font-size:22px; margin-bottom:16px; }
.guide-table{ background:var(--card); border:1px solid var(--line); border-radius:22px; overflow:hidden; }
.guide-row{ display:grid; grid-template-columns:1.45fr 1.25fr .9fr; gap:16px; align-items:center; padding:15px 22px; border-top:1px solid var(--line); }
.guide-row:first-child{ border-top:0; }
.guide-head{ background:var(--bg2); font-size:12.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.guide-sit b{ display:block; color:var(--ink); line-height:1.4; }
.guide-sit span{ font-size:14px; color:var(--muted); }
.test-pill{ display:inline-block; font-weight:800; font-size:14.5px; padding:4px 12px; border-radius:99px; background:var(--fr-soft); color:var(--fr); white-space:nowrap; }
.puis{ font-size:13.5px; color:var(--muted); margin:0 4px; }
.formule-tag{ font-size:14px; font-weight:800; color:var(--muted); }
.formule-tag.neuro{ color:var(--fr); }
.astuces{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:22px; }
.astuces .note{ font-size:15.5px; }
.ctas-centre{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:30px; }
.inclus{ margin-top:26px; }
.inclus .checks{ grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:10px 24px; }
.liens-faq{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.tests{ margin-top:10px; }
.tests > summary{ padding:22px 24px; }
.tests > summary .acc-t{ font-size:20px; }
.tests-in{ padding:4px 24px 28px; display:grid; gap:30px; }
.tests-groupe h3{ font-size:19px; margin-bottom:6px; }
.tests-groupe > p{ color:var(--ink2); margin-bottom:14px; }
.tests-grille{ display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:14px; }
.test{ border:1px solid var(--line); border-radius:18px; padding:18px; display:flex; flex-direction:column; gap:6px; background:var(--bg); }
.test-nom{ align-self:flex-start; font:700 15px var(--f-d); color:#fff; background:var(--fr); border-radius:10px; padding:4px 12px; }
.test-nom.attention{ background:#2F6B4A; } .test-nom.emotion{ background:#1F5C86; }
.test h4{ font:800 15.5px/1.35 var(--f-b); color:var(--ink); margin-top:4px; }
.test .ed{ font-size:13.5px; color:var(--muted); font-style:italic; }
.test .chip{ align-self:flex-start; font-size:12.5px; padding:3px 10px; }
.test p{ font-size:14.5px; color:var(--ink2); }
.objectif{ text-align:center; max-width:46em; margin:0 auto; }
.objectif p{ font:700 clamp(19px, 2.3vw, 25px)/1.45 var(--f-d); color:var(--bx); }
.choisir-cab{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:28px; }
.cab-lien{ display:flex; align-items:center; gap:16px; text-decoration:none; background:var(--card); border:2px solid var(--line); border-radius:22px; padding:20px 22px; color:var(--ink); transition:border-color .15s, transform .15s; }
.cab-lien:hover{ border-color:var(--fr); transform:translateY(-2px); }
.cab-lien .ico{ width:50px; height:50px; border-radius:16px; display:grid; place-items:center; font-size:24px; background:var(--fr-soft); flex:none; }
.cab-lien.mer .ico{ background:var(--sea-soft); }
.cab-lien b{ display:block; font:700 18px var(--f-d); color:var(--bx); }
.cab-lien span span{ font-size:14.5px; color:var(--muted); }
.cab-lien .go{ margin-left:auto; color:var(--fr); font-weight:800; white-space:nowrap; }
.suivis-band{ background:linear-gradient(180deg, var(--leaf-soft) 0%, var(--bg) 100%); }
.approches{ display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; }
.approche{ background:var(--card); border:1px solid var(--line); border-radius:20px; padding:20px 22px; }
.approche h3{ font-size:17px; margin-bottom:6px; }
.approche p{ color:var(--ink2); font-size:15.5px; }
.modalites{ display:grid; grid-template-columns:1.3fr .7fr; gap:22px; align-items:stretch; }
.honoraire{ display:flex; align-items:baseline; gap:12px; padding:12px 0; border-top:1px solid rgba(255,255,255,.2); }
.honoraire:first-of-type{ border-top:0; }
.honoraire b{ font:700 32px var(--f-d); color:#fff; min-width:96px; font-variant-numeric:tabular-nums; }
@media (max-width:900px){
  .page-hero, .modalites, .astuces, .choisir-cab, .approches{ grid-template-columns:1fr; }
  .guide-head{ display:none; }
  .guide-row{ grid-template-columns:1fr; gap:8px; padding:16px 18px; }
  .cab-lien .go{ display:none; }
}

/* ==========================================================================
   Pages RDV (Orléans, Les Sables)
   ========================================================================== */
.annonce{ display:flex; gap:14px; align-items:flex-start; border-radius:20px; padding:16px 20px; margin-top:22px; font-size:16px; }
.annonce .ico{ font-size:24px; flex:none; line-height:1.3; }
.annonce strong{ display:block; }
.annonce.sun{ background:var(--sun-soft); color:var(--sun); }
.annonce.sea{ background:var(--sea-soft); color:var(--sea); }
.annonce a{ color:inherit; font-weight:800; }
.prix-mini{ display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
.formule-meta{ font-size:14px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.card-fr .formule-meta{ color:#FBD3E2; }
.badge-lancement{ display:inline-block; vertical-align:middle; font:800 13px var(--f-b); background:rgba(255,255,255,.22); padding:4px 10px; border-radius:99px; margin-left:8px; }
.reserve-txt{ font-size:15px; color:var(--ink2); background:var(--bg2); border-radius:14px; padding:12px 14px; }
.card-fr .reserve-txt{ background:rgba(255,255,255,.14); color:#fff; }
.prestations{ display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; }
.presta{ background:var(--card); border:1px solid var(--line); border-radius:20px; padding:18px 20px; }
.presta b{ display:block; font:700 17px var(--f-d); color:var(--bx); }
.presta .prix{ font:700 22px var(--f-d); color:var(--fr); margin:4px 0; display:block; }
.presta p{ font-size:15px; color:var(--ink2); }
.paiement{ display:grid; grid-template-columns:repeat(2, 1fr); gap:12px; }
.paiement .note{ font-size:15.5px; }
@media (max-width:900px){ .prestations, .paiement{ grid-template-columns:1fr; } }

.reserver{ background:var(--card); border-radius:30px; box-shadow:var(--shadow); padding:34px; }
.reserver > h2{ font-size:clamp(24px, 3vw, 32px); text-align:center; }
.reserver > p{ text-align:center; color:var(--ink2); margin-top:6px; }
.onglets{ display:flex; gap:4px; max-width:560px; margin:22px auto 26px; background:var(--bg2); padding:5px; border-radius:99px; }
.onglets button{ flex:1; font:800 15.5px var(--f-b); border:0; background:transparent; color:var(--ink2); padding:12px 10px; border-radius:99px; cursor:pointer; transition:background .15s, color .15s; }
.onglets button[aria-selected="true"]{ background:var(--fr); color:var(--on-fr); box-shadow:0 4px 12px rgba(169,11,77,.25); }
.rdv-q{ text-align:center; font-weight:800; margin-bottom:14px; }
.rdv-choix{ display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:760px; margin:0 auto; }
.rdv-carte{ display:flex; flex-direction:column; gap:6px; text-align:left; font:inherit; color:var(--ink); cursor:pointer; background:var(--card); border:2px solid var(--line); border-radius:20px; padding:18px 20px; transition:border-color .15s, transform .15s, background .15s; }
.rdv-carte:hover{ border-color:var(--fr); transform:translateY(-2px); }
.rdv-carte.actif{ border-color:var(--fr); background:var(--fr-soft); }
.rdv-carte-titre{ font:700 18px var(--f-d); color:var(--fr); }
.rdv-carte-meta{ font-size:12.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.rdv-carte-desc{ font-size:15px; color:var(--ink2); }
.rdv-aide{ text-align:center; color:var(--muted); font-size:15px; margin:16px auto 6px; max-width:640px; }
.rdv-consigne{ max-width:720px; margin:18px auto 12px; padding:14px 18px; border-radius:16px; background:var(--sun-soft); color:var(--sun); font-size:15.5px; text-align:center; }
.rdv-agenda iframe{ display:block; width:100%; height:850px; min-height:700px; border:0; border-radius:18px; background:#fff; box-shadow:var(--shadow-sm); }
.rdv-agenda .lien-secours{ text-align:center; margin-top:12px; font-size:15px; }
.apres-resa{ margin-top:22px; text-align:center; background:var(--fr-soft); color:var(--bx); border-radius:18px; padding:16px 20px; }
.rgpd-mini{ text-align:center; font-size:13.5px; color:var(--muted); font-style:italic; margin-top:14px; }
.suivi-info{ text-align:center; color:var(--ink2); margin-bottom:18px; }
.attente{ max-width:720px; margin:0 auto; background:var(--fr-soft); border-radius:24px; padding:28px; display:grid; gap:16px; text-align:center; }
.attente h3{ font-size:21px; }
.attente p{ color:var(--ink2); }
.attente .note{ text-align:left; background:var(--sun-soft); color:var(--sun); }
.attente .note strong{ color:var(--sun); }
.attente .btn{ justify-self:center; }
.pas-resa{ max-width:720px; margin:16px auto 0; text-align:center; font-size:15px; color:var(--sun); background:var(--sun-soft); border-radius:14px; padding:12px 16px; }
.venir{ display:grid; grid-template-columns:.9fr 1.1fr; gap:22px; align-items:start; }
.adresse{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:26px; display:grid; gap:6px; }
.adresse b{ font:700 19px var(--f-d); color:var(--bx); }
.transports{ display:grid; gap:12px; }
.transport{ display:flex; gap:14px; align-items:flex-start; background:var(--card); border:1px solid var(--line); border-radius:18px; padding:16px 18px; }
.transport .ico{ font-size:24px; flex:none; }
.transport b{ display:block; color:var(--bx); }
.transport span span{ color:var(--ink2); font-size:15.5px; }
.merci{ text-align:center; color:var(--muted); font-size:17px; margin-top:34px; }
@media (max-width:900px){
  .reserver{ padding:24px 18px; border-radius:24px; }
  .rdv-choix, .venir{ grid-template-columns:1fr; }
  .rdv-agenda iframe{ height:750px; }
}

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq-hero{ display:grid; grid-template-columns:auto 1fr; gap:30px; align-items:center; padding-block:30px 40px; }
.faq-hero img{ width:150px; height:150px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 8px var(--fr-soft); }
.faq-hero h1{ font-size:clamp(30px, 4vw, 46px); }
.faq-liste{ max-width:900px; }
.faq-liste .acc summary{ padding:20px 22px; }
.faq-liste .acc-body{ padding:0 22px 22px; }
.faq-liste .acc-body a{ font-weight:700; }
.faq-liste .acc-body ul{ padding-left:22px; }
@media (max-width:700px){ .faq-hero{ grid-template-columns:1fr; } .faq-hero img{ width:110px; height:110px; } }

/* ==========================================================================
   Blog
   ========================================================================== */
.blog-hero{ display:grid; grid-template-columns:1.2fr .8fr; gap:40px; align-items:center; padding-block:30px 46px; }
.blog-hero h1{ font-size:clamp(28px, 3.6vw, 42px); }
.blog-hero .accueil-lead + .accueil-lead{ margin-top:12px; }
.mot{ background:var(--card); border-radius:var(--r); box-shadow:var(--shadow); padding:26px 28px; display:grid; gap:10px; }
.mot p{ color:var(--ink2); }
.mot .signe{ font:700 20px var(--f-d); color:var(--fr); }
.articles{ display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; }
.article{ background:var(--card); border:1px solid var(--line); border-radius:22px; padding:22px; text-decoration:none; color:var(--ink); display:flex; flex-direction:column; gap:10px; transition:border-color .15s, transform .15s, box-shadow .15s; }
.article:hover{ border-color:var(--fr); transform:translateY(-3px); box-shadow:var(--shadow-sm); }
.article .chip{ align-self:flex-start; font-size:13px; }
.article h3{ font-size:18.5px; }
.article p{ color:var(--ink2); font-size:15.5px; }
.article .lire{ margin-top:auto; color:var(--fr); font-weight:800; font-size:15px; }
.appel{ background:var(--fr-soft); border-radius:var(--r); padding:34px; text-align:center; display:grid; gap:10px; justify-items:center; margin-top:40px; }
.appel h2{ font-size:clamp(22px, 2.6vw, 28px); }
.appel p{ color:var(--ink2); }
@media (max-width:1000px){ .articles{ grid-template-columns:1fr 1fr; } .blog-hero{ grid-template-columns:1fr; } }
@media (max-width:640px){ .articles{ grid-template-columns:1fr; } }

/* ==========================================================================
   Mentions légales
   ========================================================================== */
.legal{ max-width:860px; display:grid; gap:18px; }
.legal .card{ gap:10px; }
.legal h2{ font-size:22px; }
.legal h3{ font-size:17px; margin-top:10px; }
.legal p, .legal li{ color:var(--ink2); }
.legal ul{ padding-left:22px; display:grid; gap:6px; }
.legal .infos{ background:var(--bg2); border-radius:16px; padding:16px 18px; display:grid; gap:2px; }
.table-scroll{ overflow-x:auto; }
.legal table{ width:100%; border-collapse:collapse; font-size:15.5px; min-width:420px; }
.legal th{ text-align:left; background:var(--fr); color:var(--on-fr); padding:10px 14px; font-weight:800; }
.legal th:first-child{ border-radius:12px 0 0 0; } .legal th:last-child{ border-radius:0 12px 0 0; }
.legal td{ padding:10px 14px; border-bottom:1px solid var(--line); color:var(--ink2); }
.legal .maj{ color:var(--muted); font-size:14px; }

/* ==========================================================================
   Page 404
   ========================================================================== */
.p404{ min-height:62vh; display:grid; place-items:center; padding-block:40px; }
.p404-in{ max-width:620px; text-align:center; display:grid; gap:16px; justify-items:center; }
.p404-num{ font:700 clamp(80px, 16vw, 140px)/1 var(--f-d); color:var(--poudre); }
.p404 h1{ font-size:clamp(26px, 3.4vw, 36px); }
.p404 p{ color:var(--ink2); }
.p404 .btns{ justify-content:center; }
.p404 ul{ list-style:none; padding:0; display:grid; gap:6px; }

/* ==========================================================================
   Ajouts : sous-titre du menu, avis Google, texte justifié
   ========================================================================== */
.nav-nom{ display:flex; flex-direction:column; line-height:1.15; }
.nav-nom small{ font:800 11.5px/1.3 var(--f-b); letter-spacing:.05em; text-transform:uppercase; color:var(--muted); margin-top:3px; }
@media (max-width:400px){ .nav-nom small{ font-size:10px; letter-spacing:.02em; } .nav-brand{ font-size:16px; } }
.avis-liens{ display:flex; gap:14px; margin-top:4px; }
.avis-liens a{ font-weight:800; text-decoration:none; font-size:14px; }
.avis-liens a:hover{ text-decoration:underline; }
.cab .lien{ font-size:15px; }

/* Paragraphes de texte courant : justifiés, avec césure française pour éviter les grands blancs */
.txt, .accueil-lead, .sec-head:not(.centre) p, .card p, .acc-body p, .note,
.etape p, .approche p, .presta p, .test p, .article p, .mot p, .legal p, .reserve-txt,
.tests-groupe > p, .cab-in p, .faq-liste p{
  text-align:justify; -webkit-hyphens:auto; hyphens:auto; hyphenate-limit-chars:7 3 3;
}
.attente p:not(.note), .appel p, .objectif p, .p404 p{ text-align:center; }
.attente .note{ text-align:justify; }

/* ==========================================================================
   Articles du blog (dossier articles/)
   ========================================================================== */
.fil{ padding-block:14px 0; font-size:14.5px; color:var(--muted); }
.fil a{ text-decoration:none; font-weight:700; }
.fil a:hover{ text-decoration:underline; }
.art{ max-width:780px; padding-block:22px 40px; display:grid; gap:26px; }
.art-head{ display:grid; gap:12px; }
.art-head .chip{ justify-self:start; }
.art-head h1{ font-size:clamp(28px, 4vw, 42px); }
.art-meta{ font-size:14.5px; color:var(--muted); }
.art-meta b{ color:var(--bx); }
.art-img{ margin:0; justify-self:center; max-width:420px; width:100%; }
.art-img img{ border-radius:24px; width:100%; }
.chapeau{ font-size:19px; color:var(--ink2); text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
.essentiel{ background:var(--fr-soft); border-radius:var(--r); padding:22px 26px; display:grid; gap:12px; }
.essentiel h2{ font-size:18px; display:flex; align-items:center; gap:8px; }
.essentiel .checks li{ color:var(--ink); }
.art-corps{ display:grid; gap:16px; }
.art-corps > h2{ font-size:clamp(22px, 2.6vw, 27px); margin-top:22px; display:flex; gap:10px; align-items:baseline; }
.art-corps > h2 .n{ font:700 15px var(--f-d); color:var(--on-fr); background:var(--fr); border-radius:50%; width:30px; height:30px; display:inline-grid; place-items:center; flex:none; transform:translateY(-2px); }
.art-corps > h3{ font-size:18px; margin-top:6px; }
.art-corps > p{ color:var(--ink2); text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
.art-corps li{ color:var(--ink2); }
.art-corps strong{ color:var(--ink); }
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.duo > div{ border-radius:20px; padding:18px 20px; display:grid; gap:8px; align-content:start; }
.duo .non{ background:var(--danger-soft, #FDEDEE); }
.duo .oui{ background:var(--leaf-soft); }
.duo h3{ font-size:16.5px; }
.duo .non h3{ color:var(--danger); } .duo .oui h3{ color:var(--leaf); }
.duo ul{ list-style:none; padding:0; display:grid; gap:6px; }
.duo li{ color:var(--ink2); font-size:15.5px; text-align:left; }
.cartes{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.carte{ background:var(--card); border:1px solid var(--line); border-radius:18px; padding:16px 18px; display:grid; gap:4px; align-content:start; }
.carte b{ color:var(--bx); font:700 16px var(--f-d); }
.carte span{ color:var(--ink2); font-size:15.5px; }
.art-corps .etapes{ grid-template-columns:1fr 1fr; }
.art-corps .etape h3{ font-size:16.5px; }
.art-table{ overflow-x:auto; border:1px solid var(--line); border-radius:18px; }
.art-table table{ width:100%; border-collapse:collapse; min-width:480px; font-size:15.5px; }
.art-table th{ background:var(--fr); color:var(--on-fr); padding:12px 14px; text-align:left; }
.art-table td{ padding:11px 14px; border-top:1px solid var(--line); color:var(--ink2); vertical-align:top; }
.art-table td:first-child{ font-weight:800; color:var(--bx); }
.conclusion{ gap:10px; }
.conclusion h2{ color:#fff; font-size:21px; }
.art-cta{ background:var(--bg2); border-radius:var(--r); padding:26px; display:grid; gap:10px; text-align:center; justify-items:center; }
.art-cta h2{ font-size:22px; }
.art-cta p{ color:var(--ink2); }
.art-cta .btns{ justify-content:center; }
.art-liens h2{ font-size:20px; margin-bottom:12px; }
.art-liens .articles{ grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); }
.retour{ justify-self:center; }
@media (max-width:700px){ .duo, .cartes, .art-corps .etapes{ grid-template-columns:1fr; } .essentiel{ padding:18px; } }
:root{ --danger-soft:#FDEDEE; --danger:#9B2226; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --danger-soft:#3A1E21; --danger:#F2A3A8; } }
:root[data-theme="dark"]{ --danger-soft:#3A1E21; --danger:#F2A3A8; }
a.tel{ color:inherit; text-decoration:none; }
a.tel:hover{ text-decoration:underline; }
