
:root{
  /* Direction A — Confiance moderne : bleu profond + vert émeraude + crème */
  --navy:#123a5e; --navy-2:#1b5183; --gold:#0f9d63; --gold-2:#0b7d4f;
  --ink:#1f2b38; --muted:#5b6675; --bg:#ffffff; --bg-soft:#f7f4ec; --line:#e6e2d6;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);line-height:1.65;background:var(--bg)}
a{color:var(--navy);}
.container{max-width:1080px;margin:0 auto;padding:0 20px}
/* Topbar */
.topbar{background:var(--navy);color:#fff;font-size:14px;padding:6px 0}
.topbar .container{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.topbar a{color:#fff;text-decoration:none;font-weight:600}
/* Header */
header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.header-in{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:16px;flex-wrap:wrap}
.brand{font-size:22px;font-weight:800;color:var(--navy);text-decoration:none;letter-spacing:.2px}
.brand span{color:var(--gold)}
nav.main{display:flex;gap:18px;flex-wrap:wrap}
nav.main a{text-decoration:none;color:var(--ink);font-size:15px;font-weight:500}
nav.main a:hover{color:var(--gold-2)}
.btn{display:inline-block;background:var(--gold);color:#fff;text-decoration:none;font-weight:700;
     padding:12px 22px;border-radius:8px;border:none;font-size:16px;cursor:pointer}
.btn:hover{background:var(--gold-2)}
.btn.ghost{background:transparent;color:var(--navy);border:2px solid var(--navy)}
.btn.big{padding:16px 30px;font-size:17px}
/* Hero */
.hero{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;padding:64px 0 56px}
.hero h1{font-size:38px;line-height:1.2;max-width:640px}
.hero p.lead{margin:18px 0 8px;font-size:19px;color:#dfe6f5;max-width:600px}
.hero .cta-row{margin-top:28px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero .phone{color:#fff;font-weight:800;font-size:19px;text-decoration:none}
.badges{display:flex;gap:22px;margin-top:34px;flex-wrap:wrap}
.badge{font-size:14px;color:#c9d4ea}
.badge b{display:block;color:#fff;font-size:16px}
/* Sections */
section{padding:52px 0}
section.soft{background:var(--bg-soft)}
h2{font-size:28px;color:var(--navy);margin-bottom:10px}
.sub{color:var(--muted);max-width:640px;margin-bottom:30px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px}
.card h3{color:var(--navy);font-size:19px;margin-bottom:8px}
.card p{font-size:15px;color:var(--muted)}
.card a.more{display:inline-block;margin-top:12px;font-weight:600;color:var(--gold-2);text-decoration:none}
/* Steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;counter-reset:step}
.step{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;position:relative}
.step::before{counter-increment:step;content:counter(step);position:absolute;top:-14px;left:20px;
  background:var(--gold);color:#fff;font-weight:800;width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:15px}
.step h4{color:var(--navy);margin:6px 0 6px;font-size:16px}
.step p{font-size:14px;color:var(--muted)}
/* Lists & FAQ */
ul.checks{list-style:none;margin:14px 0}
ul.checks li{padding-left:28px;position:relative;margin-bottom:9px;font-size:15.5px}
ul.checks li::before{content:"✓";position:absolute;left:0;color:var(--gold-2);font-weight:800}
details{border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:10px;background:#fff}
details summary{font-weight:600;color:var(--navy);cursor:pointer;font-size:15.5px}
details p{margin-top:10px;font-size:15px;color:var(--muted)}
/* Callout / CTA band */
.band{background:var(--navy);color:#fff;text-align:center;padding:46px 20px;border-radius:14px}
.band h2{color:#fff}
.band p{color:#ccd6ea;margin:8px auto 22px;max-width:560px}
/* Page hero (internes) */
.page-hero{background:var(--bg-soft);padding:44px 0;border-bottom:1px solid var(--line)}
.page-hero h1{font-size:32px;color:var(--navy)}
.page-hero p{color:var(--muted);margin-top:8px;max-width:640px}
/* Form / booking card */
.rdv{background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;
  box-shadow:0 10px 30px rgba(24,39,66,.06)}
.rdv h2{font-size:22px;margin-bottom:4px}
.rdv label{display:block;font-weight:600;font-size:13.5px;margin:16px 0 6px;color:var(--navy)}
.rdv input,.rdv select,.rdv textarea{width:100%;padding:13px 14px;border:1px solid var(--line);
  border-radius:10px;font-size:15.5px;font-family:inherit;color:var(--ink);background:#fff;transition:border-color .15s,box-shadow .15s}
.rdv input:focus,.rdv select:focus,.rdv textarea:focus{outline:none;border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(15,157,99,.18)}
.rdv textarea{min-height:90px}
.rdv .btn.big{width:100%;margin-top:22px}
.notice{font-size:12.5px;color:var(--muted);margin-top:16px}
/* Booking — étapes */
.bk-steps{display:flex;align-items:center;justify-content:center;gap:10px;margin:2px 0 22px}
.bk-dot{width:12px;height:12px;border-radius:50%;background:var(--line)}
.bk-dot.active{background:var(--gold)}
.bk-dot.done{background:var(--navy)}
.bk-line{width:38px;height:2px;background:var(--line)}
.bk-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.bk-back{background:none;border:none;color:var(--navy);font-weight:600;font-size:14.5px;cursor:pointer;padding:6px 0}
.bk-tag{display:inline-flex;align-items:center;gap:7px;color:var(--navy);font-weight:700;font-size:15px}
.bk-banner{background:#e9f5ef;color:var(--navy);font-weight:700;text-align:center;padding:14px;border-radius:10px;margin:6px 0 6px}
/* Calendrier */
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-nav button{background:none;border:none;font-size:22px;color:var(--navy);cursor:pointer;padding:4px 12px;border-radius:8px}
.cal-nav button:hover{background:var(--bg-soft)}
.cal-nav .cal-month{font-weight:700;color:var(--ink);text-transform:capitalize}
.cal-dow,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow span{text-align:center;font-size:11.5px;color:var(--muted);font-weight:600;padding:6px 0}
.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:10px;
  font-size:15px;cursor:pointer;color:var(--ink);border:1px solid transparent}
.cal-cell:hover:not(.disabled){border-color:var(--gold);background:#fff}
.cal-cell.disabled{color:#c9cfdc;cursor:default}
.cal-cell.sel{background:var(--gold);color:#fff;font-weight:700}
.cal-cell.today{box-shadow:inset 0 0 0 1.5px var(--gold)}
.cal-cell.empty{cursor:default}
/* Créneaux */
.slots{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-height:360px;overflow-y:auto;padding-right:4px}
.slot{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);
  border-radius:10px;padding:13px 15px;cursor:pointer;transition:all .12s;background:#fff}
.slot:hover{border-color:var(--gold)}
.slot.sel{border-color:var(--gold);background:#edf7f1}
.slot .t{font-weight:600;font-size:16px;color:var(--ink)}
.slot .b{font-size:12px;font-weight:700;color:#1f8a52;background:#e6f4ec;padding:3px 9px;border-radius:20px;white-space:nowrap}
.slots-meta{color:var(--muted);font-size:13.5px;text-align:center;margin:2px 0 14px}
.phone-wrap{display:flex;align-items:stretch}
.phone-wrap .flag{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-right:none;
  border-radius:10px 0 0 10px;padding:0 12px;background:var(--bg-soft);font-size:15px;color:var(--muted)}
.phone-wrap input{border-radius:0 10px 10px 0}
/* Prices */
table.prices{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
table.prices th{background:var(--navy);color:#fff;text-align:left;padding:13px 16px;font-size:15px}
table.prices td{padding:13px 16px;border-top:1px solid var(--line);font-size:15px}
table.prices td.price{font-weight:700;color:var(--navy);white-space:nowrap}
/* Footer */
footer{background:#0d2c47;color:#aeb9d0;margin-top:56px;padding:44px 0 26px;font-size:14px}
footer h4{color:#fff;font-size:15px;margin-bottom:10px}
footer a{color:#c8d2e8;text-decoration:none}
footer a:hover{color:#fff}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:26px;margin-bottom:26px}
.disclaimer{border-top:1px solid #1e496e;padding-top:18px;font-size:12.5px;color:#8896b3;line-height:1.6}
.legalline{margin-top:10px;font-size:12px;color:#6b7a99}
@media(max-width:760px){.hero h1{font-size:29px}h2{font-size:24px}
  #rdvGrid{grid-template-columns:1fr !important;gap:26px !important}
  nav.main{display:none}}
