/* =============================================================================
   Siloé Hypnose — Direction « Sous la surface du Léman » (test impeccable)
   Monde : eau profonde, calme, premium. Bootstrap = grille/substrat ; ce
   fichier porte le monde visuel (couleur, type, composants, sections, motion).
   Dossier TEST uniquement. Contenu/faits/CTA inchangés.
   ============================================================================= */

:root{
  /* — Rôles de couleur (profondeurs du lac → brume → sable, action or) — */
  --ink:#0E2E33;          /* texte principal sur clair */
  --ink-soft:#3C5257;     /* texte secondaire, teinté du teal (jamais gris) */
  --deep:#0C3A42;         /* teal profond : hero, footer */
  --deep-2:#082A31;
  --teal:#16606B;
  --aqua:#71C3B6;         /* aqua lumineux : filets, accents sur fond sombre */
  --aqua-soft:#A8DAD1;
  --mist:#EAF2EF;         /* fond clair frais (sections lecture) */
  --paper:#F5F8F6;        /* près-blanc froid : fond de page */
  --sand:#ECE3D2;         /* sable chaud : sections d'appui */
  --gold:#D8A24A;         /* action */
  --gold-600:#BE8B37;
  --gold-050:#F6ECD8;
  --line:rgba(14,46,51,.12);
  --line-strong:rgba(14,46,51,.22);

  /* Bootstrap remaps */
  --bs-body-bg:var(--paper);
  --bs-body-color:var(--ink);
  --bs-emphasis-color:var(--ink);
  --bs-secondary-color:var(--ink-soft);
  --bs-border-color:var(--line);
  --bs-body-font-family:'Hanken Grotesk',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --bs-body-font-size:1.0625rem;
  --bs-body-line-height:1.7;
  --bs-link-color:#155965; --bs-link-hover-color:#0C3A42;
  --bs-border-radius:.9rem; --bs-border-radius-sm:.6rem; --bs-border-radius-lg:1.4rem;

  --shadow-1:0 2px 6px rgba(8,42,49,.06), 0 18px 40px -22px rgba(8,42,49,.28);
  --shadow-2:0 6px 14px rgba(8,42,49,.10), 0 40px 70px -30px rgba(8,42,49,.40);
}

body{
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* — Typographie — */
h1,h2,h3,h4,h5,h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{
  font-family:'Instrument Serif',Georgia,'Times New Roman',serif;
  font-weight:400;
  color:var(--ink);
  letter-spacing:-.015em;
  line-height:1.05;
  text-wrap:balance;
}
.display-2{ font-size:clamp(2.9rem,6vw,5.2rem); }
.display-4{ font-size:clamp(2.3rem,4.6vw,3.6rem); }
h2{ font-size:clamp(2rem,3.4vw,2.9rem); }
h3{ font-size:clamp(1.4rem,2.2vw,1.85rem); }
.lead{ font-family:'Hanken Grotesk',sans-serif; font-weight:400; font-size:clamp(1.1rem,1.6vw,1.32rem); line-height:1.6; color:var(--ink-soft); }
p{ text-wrap:pretty; }
.measure{ max-width:42ch; }
.measure-wide{ max-width:64ch; }
.eyebrow-serif{ font-family:'Instrument Serif',serif; font-style:italic; font-size:1.15rem; color:var(--teal); }

/* — Boutons — */
.btn{
  --bs-btn-font-family:'Hanken Grotesk',sans-serif;
  --bs-btn-font-weight:600;
  --bs-btn-padding-x:1.5rem; --bs-btn-padding-y:.72rem;
  --bs-btn-border-radius:999px;
  letter-spacing:.005em;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}
.btn-lg{ --bs-btn-padding-x:2rem; --bs-btn-padding-y:.95rem; --bs-btn-font-size:1.06rem; }
.btn-primary{
  --bs-btn-color:#22160A; --bs-btn-bg:var(--gold); --bs-btn-border-color:var(--gold);
  --bs-btn-hover-color:#22160A; --bs-btn-hover-bg:var(--gold-600); --bs-btn-hover-border-color:var(--gold-600);
  --bs-btn-active-color:#22160A; --bs-btn-active-bg:var(--gold-600); --bs-btn-active-border-color:var(--gold-600);
  box-shadow:0 1px 0 rgba(0,0,0,.04);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 12px 26px -10px rgba(190,139,55,.7); }
.btn-outline-primary{
  --bs-btn-color:var(--deep); --bs-btn-border-color:var(--line-strong);
  --bs-btn-hover-color:var(--deep); --bs-btn-hover-bg:rgba(14,46,51,.05); --bs-btn-hover-border-color:var(--deep);
}
/* Boutons sur fond sombre */
.on-deep .btn-outline-primary{
  --bs-btn-color:#EAF3F0; --bs-btn-border-color:rgba(255,255,255,.35);
  --bs-btn-hover-color:var(--deep); --bs-btn-hover-bg:#EAF3F0; --bs-btn-hover-border-color:#EAF3F0;
}

/* — Navbar (fond clair solide partout : lisible sur toutes les pages) — */
.navbar{ background:var(--paper); transition:box-shadow .3s ease; }
.navbar.is-stuck{ box-shadow:0 1px 0 var(--line), 0 10px 28px -20px rgba(8,42,49,.55); }
.navbar .nav-link{ font-weight:600; color:var(--ink); opacity:.82; }
.navbar .nav-link:hover{ opacity:1; color:var(--teal); }
.brand-name{ font-family:'Instrument Serif',serif; font-size:1.7rem; line-height:1; color:var(--ink); }
.brand-tag{ font-family:'Hanken Grotesk',sans-serif; font-size:.6rem; letter-spacing:.28em; text-transform:uppercase; color:var(--teal); }

/* — Sections & rythme — */
.section{ padding-block:clamp(3.5rem,7vw,7rem); position:relative; }
.section--mist{ background:var(--mist); }
.section--sand{ background:var(--sand); }
.section--paper{ background:var(--paper); }
.section--deep{ background:var(--deep); color:#EAF3F0; }
.section--deep h1,.section--deep h2,.section--deep h3{ color:#F3FAF8; }
.section--deep .lead,.section--deep p{ color:#C4DAD6; }
.kicker-rule{ width:56px; height:2px; background:var(--gold); border:0; opacity:1; margin-bottom:1.4rem; }

/* — Vague séparatrice (SVG en masque) — */
.wave-edge{ position:absolute; left:0; right:0; height:64px; line-height:0; }
.wave-edge svg{ width:100%; height:100%; display:block; }

/* — Hero immersif — */
.hero{ position:relative; background:linear-gradient(160deg,var(--deep) 0%,var(--deep-2) 60%,#061F25 100%); color:#EAF3F0; overflow:hidden; }
.hero__glow{ position:absolute; inset:-30% -10% auto -10%; height:120%; background:
  radial-gradient(60% 55% at 20% 15%, rgba(113,195,182,.22), transparent 70%),
  radial-gradient(50% 45% at 85% 25%, rgba(216,162,74,.14), transparent 70%);
  pointer-events:none; }
.hero__waves{ position:absolute; left:0; right:0; bottom:-1px; pointer-events:none; }
.hero__waves svg{ display:block; width:100%; height:auto; }
.hero__waves path[stroke]{ animation:drift 16s ease-in-out infinite alternate; transform-origin:center; }
.hero__waves path[stroke]:nth-of-type(2){ animation-duration:23s; }
@keyframes drift{ from{ transform:translateX(-1.5%); } to{ transform:translateX(1.5%); } }
.hero h1{ color:#F6FBF9; }
.hero .lead{ color:#CDE3DF; }
.hero-checks{ list-style:none; padding:0; margin:0; display:grid; gap:.55rem; }
.hero-checks li{ display:flex; gap:.6rem; align-items:flex-start; color:#DCEAE7; }
.hero-checks svg{ flex:0 0 auto; margin-top:.28rem; color:var(--aqua); }

/* — Cartes / blocs — */
.tile{ background:#fff; border:1px solid var(--line); border-radius:var(--bs-border-radius-lg); padding:1.6rem; height:100%;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; box-shadow:var(--shadow-1); }
a.tile{ text-decoration:none; color:inherit; display:block; }
a.tile:hover{ transform:translateY(-4px); box-shadow:var(--shadow-2); border-color:rgba(21,89,101,.35); }
.tile__go{ font-weight:700; color:var(--teal); }
.tile--glass{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); color:#EAF3F0; box-shadow:none; }

.numbered{ counter-reset:step; }
.step__n{ font-family:'Instrument Serif',serif; font-size:2.4rem; color:var(--gold); line-height:1; }

/* — Mirror list « vous vous reconnaissez » — */
.mirror{ background:var(--deep); color:#EAF3F0; border-radius:var(--bs-border-radius-lg); padding:1.9rem; box-shadow:var(--shadow-2); }
.mirror li{ padding:.7rem 0; border-bottom:1px solid rgba(255,255,255,.12); color:#D3E5E1; }
.mirror li:last-child{ border-bottom:0; }

/* — Tarifs — */
.price-row{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:1.15rem 0; border-bottom:1px solid var(--line); }
.price-row:last-child{ border-bottom:0; }
.price-amount{ font-family:'Instrument Serif',serif; font-size:2rem; color:var(--teal); }

/* — Accordéon (FAQ) — */
.accordion{ --bs-accordion-bg:transparent; --bs-accordion-border-color:var(--line);
  --bs-accordion-btn-color:var(--ink); --bs-accordion-active-color:var(--deep);
  --bs-accordion-active-bg:transparent; --bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(21,89,101,.18);
  --bs-accordion-btn-font-family:'Instrument Serif',serif; }
.accordion-button{ font-family:'Instrument Serif',serif; font-size:1.28rem; }
.accordion-item{ border-left:0; border-right:0; }

/* — Carte Google Maps — */
.map-frame{ border-radius:var(--bs-border-radius-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-1); }
.map-frame iframe{ display:block; width:100%; height:100%; border:0; }

/* — Chips maillage — */
.chip{ display:inline-block; padding:.42rem .95rem; border-radius:999px; border:1px solid var(--line-strong);
  color:var(--deep); text-decoration:none; font-weight:600; font-size:.92rem; transition:background-color .15s ease,color .15s ease,border-color .15s ease; }
.chip:hover{ background:var(--deep); color:#fff; border-color:var(--deep); }
.section--deep .chip{ color:#DCEAE7; border-color:rgba(255,255,255,.28); }
.section--deep .chip:hover{ background:#EAF3F0; color:var(--deep); border-color:#EAF3F0; }

/* — Footer — */
.site-footer{ background:var(--deep-2); color:#B9D2CE; }
.site-footer a{ color:#CFE3DF; text-decoration:none; }
.site-footer a:hover{ color:#fff; }
.site-footer h2{ color:#EAF3F0; }

/* — Media — */
.round-img{ border-radius:var(--bs-border-radius-lg); box-shadow:var(--shadow-2); }
::selection{ background:rgba(216,162,74,.28); }
:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }

@media (prefers-reduced-motion:reduce){
  .hero__waves path{ animation:none; }
  .btn, a.tile{ transition:none; }
}
