:root{
  --bg:#000000; --surface:#0E0E0D; --surface2:#151411; --ink:#F3EEE4; --muted:#9C958A; --line:#2B2720;
  --gold:#D0AF73; --gold-ink:#0A0805; --gold-soft:#16120B; --danger:#E88A7E;
  color-scheme:dark;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --bg:#000000; --surface:#0E0E0D; --ink:#F3EEE4; } }
:root[data-theme="dark"]{ --bg:#000000; --surface:#0E0E0D; --ink:#F3EEE4; }
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 70px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Cinzel,Georgia,"Times New Roman",serif;font-weight:500;line-height:1.15;margin:0;letter-spacing:.01em}
button,input,select{font:inherit;color:inherit}
a{color:var(--gold)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wrap{max-width:600px;margin:0 auto;padding:0 20px}
[hidden]{display:none!important}

/* En-tête */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:rgba(0,0,0,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top .in{max-width:600px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:14px}
.mark{font-family:Cinzel,serif;font-size:1.05rem;letter-spacing:.14em;color:var(--ink);text-decoration:none;margin-right:auto;white-space:nowrap}
.mark span{color:var(--gold)}
.nav-link{color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:600;padding:8px 2px;white-space:nowrap}
.nav-link[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -1px 0 var(--gold)}
.nav-cta{background:var(--gold);color:var(--gold-ink);text-decoration:none;font-weight:700;font-size:.88rem;padding:9px 14px;border-radius:3px;white-space:nowrap}

/* Boutons */
.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid transparent;border-radius:3px;padding:15px 22px;font-weight:700;cursor:pointer;text-decoration:none;letter-spacing:.03em;font-size:1rem}
.btn.gold{background:var(--gold);color:var(--gold-ink)}
.btn.line{background:transparent;border-color:var(--line);color:var(--ink)}
.btn.block{width:100%}
.btn.small{padding:9px 14px;font-size:.88rem}
.btn.danger{background:transparent;border-color:var(--danger);color:var(--danger)}
.btn.wa{background:#1F8F55;color:#fff;padding:10px 14px;font-size:.9rem}
.btn:disabled{opacity:.4;cursor:not-allowed}
.linkbtn{background:none;border:0;padding:0;color:var(--gold);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-size:.92rem}

/* Accueil */
.hero{text-align:center;padding:20px 0 48px}
.hero .logo{display:block;width:min(300px,76vw);height:auto;margin:0 auto}
.hero .lead{font-size:1.08rem;color:var(--ink);margin:8px auto 0;max-width:30ch}
.hero .sub{color:var(--muted);font-size:.92rem;margin:10px 0 0}
.hero .ctas{display:grid;gap:10px;margin:28px auto 0;max-width:340px}
.sec{padding:52px 0;border-top:1px solid var(--line)}
.sec h2{font-size:1.55rem;text-align:center}
.sec .intro{color:var(--muted);text-align:center;max-width:36ch;margin:10px auto 0}
.gold-rule{width:36px;height:1px;background:var(--gold);margin:16px auto 0}
.benefits{margin-top:30px;display:grid;gap:22px}
.benefit{display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:start}
.benefit svg{width:28px;height:28px;stroke:var(--gold);fill:none;stroke-width:1.3;margin-top:2px}
.benefit h3{font-family:Manrope,sans-serif;font-weight:700;font-size:1.02rem;letter-spacing:0}
.benefit p{margin:4px 0 0;color:var(--muted);font-size:.95rem}
.menu{margin-top:28px}
.menu-item{display:flex;align-items:baseline;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);width:100%;background:none;border-left:0;border-right:0;border-top:0;cursor:pointer;text-align:left}
.menu-item .name{font-family:Cinzel,serif;font-size:1.1rem}
.menu-item .desc{display:block;font-family:Manrope,sans-serif;font-size:.85rem;color:var(--muted);margin-top:2px}
.menu-item .dots{flex:1;border-bottom:1px dotted #4A4336;transform:translateY(-6px);min-width:20px}
.menu-item .price{font-family:Cinzel,serif;font-size:1.25rem;color:var(--gold)}
.menu-note{text-align:center;color:var(--muted);font-size:.88rem;margin-top:16px}
.team{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}
.member{text-align:center;padding:0 10px 20px;overflow:hidden;border:1px solid var(--line);background:var(--surface);border-radius:3px}
.member .av{width:84px;height:84px;margin:0 auto 14px;border-radius:50%;border:1px solid var(--gold);display:grid;place-items:center;font-family:Cinzel,serif;font-size:2rem;color:var(--gold)}
.member .ph{display:block;width:calc(100% + 20px);margin:0 -10px 16px;aspect-ratio:4/5;height:auto;object-fit:cover;border-bottom:1px solid var(--gold)}
.member h3{font-size:1.05rem}
.member p{margin:4px 0 14px;color:var(--muted);font-size:.85rem}
.steps{margin-top:30px;display:grid;gap:20px;counter-reset:s}
.steps li{list-style:none;display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:start}
.steps li::before{counter-increment:s;content:counter(s);width:30px;height:30px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font-family:Cinzel,serif;font-size:.95rem}
.steps ol{padding:0;margin:0}
.steps b{display:block}
.steps span{color:var(--muted);font-size:.93rem}
.hours{margin:28px auto 0;max-width:360px}
.hours div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.hours div span:last-child{color:var(--muted);font-variant-numeric:tabular-nums}
.hours div.open span:last-child{color:var(--ink)}
.final{text-align:center}
.final .btn{margin-top:24px;min-width:260px}

/* Réservation */
.page-title{padding:30px 0 4px}
.page-title h1{font-size:1.8rem}
.page-title p{color:var(--muted);margin:8px 0 0}
section.step{margin-top:36px;transition:opacity .2s}
section.step.locked{opacity:.35;pointer-events:none}
.step h2{font-size:1.3rem;display:flex;gap:12px;align-items:center}
.step h2 .n{font-family:Manrope,sans-serif;font-size:.75rem;font-weight:600;color:var(--gold);border:1px solid var(--gold);border-radius:50%;width:1.6rem;height:1.6rem;display:inline-grid;place-items:center;flex:none}
.hint{color:var(--muted);font-size:.9rem;margin:8px 0 14px}
.services{display:grid;gap:8px}
.svc{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:17px 18px;cursor:pointer}
.svc .t{font-weight:600}
.svc .p{font-family:Cinzel,serif;font-size:1.25rem;color:var(--gold)}
.svc[aria-pressed="true"]{border-color:var(--gold);background:var(--gold-soft)}
.addon-sep{font-size:.85rem;color:var(--muted);margin:12px 2px 2px}
.barbers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.barber{background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:16px 6px;cursor:pointer;text-align:center}
.barber .av{width:48px;height:48px;border-radius:50%;margin:0 auto 8px;display:grid;place-items:center;font-family:Cinzel,serif;font-size:1.25rem;color:var(--gold);border:1px solid var(--gold)}
img.av{object-fit:cover;display:block}
.barber .t{font-weight:600;font-size:.93rem}
.barber[aria-pressed="true"]{border-color:var(--gold);background:var(--gold-soft)}
.days{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;margin-top:14px;scrollbar-width:thin}
.day{flex:none;width:60px;background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:8px 0;text-align:center;cursor:pointer}
.day .w,.day .m{font-size:.74rem;color:var(--muted)}
.day .n{font-family:Cinzel,serif;font-size:1.3rem;line-height:1.3}
.day[disabled]{opacity:.3;cursor:not-allowed}
.day[aria-pressed="true"]{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}
.day[aria-pressed="true"] .w,.day[aria-pressed="true"] .m{color:inherit;opacity:.75}
.period{font-size:.85rem;color:var(--muted);margin:16px 2px 8px}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.slot{background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:11px 0;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums}
.slot[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.empty{background:var(--surface);border:1px dashed var(--line);border-radius:3px;padding:16px;color:var(--muted);font-size:.95rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:16px 18px}
.card .who{font-weight:700}
.card .meta{font-size:.88rem;color:var(--muted)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
label.f{display:block;margin-top:12px;font-size:.88rem;font-weight:600}
label.f input,label.f select{display:block;width:100%;margin-top:6px;padding:13px 14px;border-radius:3px;border:1px solid var(--line);background:var(--surface);font-weight:500}
label.f input:focus{border-color:var(--gold);outline:none}
label.f input[aria-invalid="true"]{border-color:var(--danger)}
.err{color:var(--danger);font-size:.82rem;font-weight:600;margin-top:4px}
.check{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:.9rem;cursor:pointer}
.check input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--gold)}
.other{margin-top:6px;padding:2px 0 6px 14px;border-left:1px solid var(--gold)}
.note{font-size:.85rem;color:var(--muted);margin-top:10px}
.bar{position:fixed;left:0;right:0;bottom:0;background:rgba(0,0,0,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--gold);padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));z-index:5}
.bar .in{max-width:600px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:12px}
.bar .sum{font-weight:700}
.bar .lbl{font-size:.86rem;color:var(--muted)}
.bar .tot{font-family:Cinzel,serif;font-size:1.6rem;color:var(--gold);white-space:nowrap;flex:none}
.book-pad{padding-bottom:130px}
.ticket{margin-top:36px;background:var(--surface);border:1px solid var(--gold);border-radius:3px}
.ticket .top2{padding:30px 22px 20px;border-bottom:1px solid var(--line);text-align:center}
.ticket .top2 h2{font-size:1.8rem;color:var(--gold)}
.ticket .top2 p{margin:8px 0 0;color:var(--muted)}
.ticket dl{margin:0;padding:18px 22px;display:grid;grid-template-columns:auto 1fr;gap:9px 18px}
.ticket dt{color:var(--muted);font-size:.9rem}
.ticket dd{margin:0;font-weight:600}
.ticket .acts{display:grid;gap:10px;padding:0 22px 22px}

/* Compte */
.acc-list{display:grid;gap:8px;margin-top:14px}
.appt{display:grid;grid-template-columns:64px 1fr;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:13px 15px}
.appt .h{font-family:Cinzel,serif;font-size:1.1rem;color:var(--gold);font-variant-numeric:tabular-nums}
.appt .h small{display:block;font-family:Manrope,sans-serif;font-size:.74rem;color:var(--muted)}
.appt .who{font-weight:700}
.appt .meta{font-size:.86rem;color:var(--muted)}
.appt .ops{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.appt.cancel{opacity:.45}
.appt.cancel .who{text-decoration:line-through}
.tag{display:inline-block;font-size:.7rem;font-weight:700;padding:1px 8px;border-radius:999px;border:1px solid var(--gold);color:var(--gold);margin-left:6px;vertical-align:middle}
.tag.salon{border-color:var(--line);color:var(--muted)}
.subhead{font-size:1.15rem;margin-top:34px}

/* Espace salon */
.datenav{display:flex;align-items:center;gap:8px;margin-top:18px}
.datenav .lab{flex:1;text-align:center;font-weight:700}
.datenav .lab::first-letter{text-transform:uppercase}
.datenav button{width:44px;height:44px;border-radius:3px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:1.2rem}
.chips{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 15px;font-weight:600;cursor:pointer;font-size:.9rem}
.chip[aria-pressed="true"]{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}
.pin{margin-top:36px;text-align:center}
.pin input{font-size:1.6rem;text-align:center;letter-spacing:.4em;width:180px;padding:12px;border-radius:3px;border:1px solid var(--line);background:var(--surface)}
dialog{border:1px solid var(--line);border-radius:4px;padding:0;width:min(520px,calc(100% - 24px));background:var(--bg);color:var(--ink)}
dialog::backdrop{background:rgba(0,0,0,.75)}
dialog .in{padding:22px}
dialog h2{font-size:1.3rem}

footer{border-top:1px solid var(--line);margin-top:30px;padding:30px 0 40px;text-align:center;font-size:.84rem;color:var(--muted)}
footer .mark{display:inline-block;margin:0 0 10px}
footer p{margin:6px 0}
.toast{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--gold);color:var(--gold-ink);padding:11px 16px;border-radius:3px;font-weight:700;font-size:.9rem;z-index:30;opacity:0;transition:opacity .2s;pointer-events:none;max-width:90%;text-align:center}
.toast.on{opacity:1}
@media (max-width:370px){ .nav-link.hide-xs{display:none} .slots{grid-template-columns:repeat(3,1fr)} }
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Ajouts version production */
.loading{color:var(--muted);text-align:center;padding:30px 0}
.spin{display:inline-block;width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:sp 0.8s linear infinite;vertical-align:-4px;margin-right:8px}
@keyframes sp{to{transform:rotate(360deg)}}
.alert{border:1px solid var(--danger);color:var(--danger);padding:12px 14px;border-radius:3px;margin-top:14px;font-size:.92rem}
.okbox{border:1px solid var(--gold);color:var(--gold);padding:12px 14px;border-radius:3px;margin-top:14px;font-size:.92rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.tabs{display:flex;gap:6px;margin-top:16px;border-bottom:1px solid var(--line);overflow-x:auto}
.tab{background:none;border:0;border-bottom:2px solid transparent;padding:10px 12px;font-weight:700;color:var(--muted);cursor:pointer;white-space:nowrap}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--gold)}
.legal h2{font-size:1.15rem;margin-top:28px}
.legal p,.legal li{color:#D9D3C8;font-size:.95rem}
.legal .ph{color:var(--gold)}
.barber img.av{object-position:60% 30%}
.row>*{min-width:0}
label.f input[type=date],label.f input[type=time]{min-width:0;-webkit-appearance:none;appearance:none;min-height:48px}

/* =====================================================================
   Grands écrans (tablette paysage, ordinateur) : la mise en page s'élargit
   ===================================================================== */
.narrow{max-width:760px}
@media (min-width: 900px){
  .wrap{max-width:1160px;padding:0 48px}
  .wrap.narrow{max-width:820px}
  .top .in{max-width:1160px;padding:16px 48px;gap:26px}
  .mark{font-size:1.2rem}
  .nav-link{font-size:.95rem}
  .nav-cta{padding:11px 20px;font-size:.92rem}

  /* Accueil : logo à gauche, accroche à droite */
  .hero{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;align-items:center;text-align:left;padding:56px 0 80px}
  .hero{grid-template-rows:1fr auto auto auto 1fr}
  .hero h1{grid-row:1 / 6;grid-column:1}
  .hero .lead{grid-row:2;grid-column:2}
  .hero .sub{grid-row:3;grid-column:2}
  .hero .ctas{grid-row:4;grid-column:2}
  .hero .logo{width:min(440px,100%)}
  .hero .lead{font-family:Cinzel,serif;font-size:2rem;line-height:1.25;max-width:18ch;margin:0}
  .hero .sub{font-size:1rem;margin-top:16px}
  .hero .ctas{grid-template-columns:auto auto;justify-content:start;max-width:none;margin:32px 0 0}
  .sec{padding:80px 0}
  .sec h2{font-size:2rem}
  .sec .intro{max-width:52ch;font-size:1.05rem}
  .benefits{grid-template-columns:1fr 1fr;gap:36px 56px;max-width:960px;margin:44px auto 0}
  .menu{max-width:720px;margin:40px auto 0}
  .menu-item{padding:20px 0}
  .menu-item .name{font-size:1.25rem}
  .menu-item .price{font-size:1.4rem}
  .team{grid-template-columns:repeat(2,minmax(0,340px));justify-content:center;gap:28px;margin-top:44px}
  .steps ol{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;max-width:980px;margin:44px auto 0}
  .steps li{grid-template-columns:1fr;gap:12px}
  .hours{max-width:440px}
  .final .btn{min-width:320px}

  /* Réservation : étapes à gauche, récapitulatif fixe à droite */
  #v-reserver .page-title,#v-reserver #flow,#v-reserver #done{max-width:680px}
  .book-pad{padding-bottom:60px}
  .page-title{padding:44px 0 6px}
  .page-title h1{font-size:2.3rem}
  .days{flex-wrap:wrap;overflow:visible}
  .slots{grid-template-columns:repeat(6,1fr)}
  /* Mon compte, espace salon, pages légales : colonne de lecture confortable */
  #v-compte{max-width:820px}
  .acc-list .appt{padding:16px 20px}
  .toast{bottom:40px}
}
@media (min-width: 1100px){
  .bar{left:auto;bottom:auto;top:150px;right:max(48px,calc((100vw - 1160px) / 2 + 48px));width:min(340px,calc(100vw - 680px - 160px));
       border:1px solid var(--gold);border-radius:3px;padding:24px 24px 26px;background:var(--surface)}
  .bar .in{flex-direction:column;align-items:flex-start;gap:18px}
  .bar .sum{font-size:1.1rem}
  .bar .lbl{font-size:.92rem;margin-top:4px}
  .bar .tot{font-size:2.2rem}
  .bar .in::before{content:"Votre rendez-vous";font-family:Cinzel,serif;color:var(--gold);font-size:.95rem;letter-spacing:.06em}

}
@media (min-width: 1400px){
  .hero .logo{width:480px}
}

/* Un seul barber : carte centrée */
.team.solo{grid-template-columns:minmax(0,340px);justify-content:center}
