[hidden]{display:none!important}
/* Página de reserva — usa los tokens del sitio (--brand, --ink, --muted, --border…) */
.header-inner{display:flex;align-items:center;justify-content:space-between;padding-block:1rem}
.site-header{border-bottom:1px solid var(--border);background:#fbe8d3}
.back{font-weight:600;font-size:.95rem}
.book{padding:clamp(1.5rem,4vw,3rem) 0 4rem;background:var(--bg-soft);min-height:calc(100vh - 70px)}
.book-head{max-width:640px;margin-bottom:1.75rem}
.book-head h1{font-size:clamp(1.8rem,4vw,2.5rem);margin-bottom:.4rem}
.book-head p{margin:0}
.book-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.5rem;align-items:start}
.notice{background:#fff7e8;border:1px solid #f1d9a8;color:#6b4a0a;border-radius:var(--radius);padding:1rem 1.25rem;max-width:640px}
.stepper{list-style:none;display:flex;gap:.5rem;padding:0;margin:0 0 1rem;counter-reset:s}
.stepper li{counter-increment:s;display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;color:var(--muted)}
.stepper li::before{content:counter(s);display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;border:2px solid var(--border);background:#fff;font-size:.82rem}
.stepper li+li::after{content:"";order:-1;width:1.6rem;height:2px;background:var(--border);margin-right:.1rem}
.stepper li.on{color:var(--brand-dark)}
.stepper li.on::before{border-color:var(--brand);background:var(--brand);color:#fff}
.stepper li.past::before{border-color:var(--brand);color:var(--brand);background:var(--brand-light)}
.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:clamp(1.1rem,3vw,1.75rem);box-shadow:var(--shadow)}
.panel h2{font-size:1.35rem;margin-bottom:1rem}
.panel h3{font-size:1rem;margin:0 0 .6rem}
.services{display:grid;gap:.6rem}
.svc{display:flex;gap:.9rem;align-items:flex-start;text-align:left;width:100%;background:#fff;border:2px solid var(--border);border-radius:12px;padding:.9rem 1rem;cursor:pointer;font:inherit;color:inherit;transition:border-color .15s,background .15s}
.svc:hover{border-color:#c9a98a}
.svc[aria-checked=true]{border-color:var(--brand);background:var(--brand-light)}
.svc:focus-visible,.slot:focus-visible,.day:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #3d7b8159;outline-offset:2px}
.svc b{display:block;color:var(--ink);font-size:1.02rem}
.svc span{color:var(--muted);font-size:.9rem}
.svc .dur{margin-left:auto;white-space:nowrap;font-size:.85rem;font-weight:600;color:var(--brand-dark);background:var(--brand-light);border-radius:999px;padding:.2rem .65rem}
.pro-pick{margin-bottom:1rem;display:grid;gap:.3rem;max-width:320px}
.when{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}
.cal-head b{text-transform:capitalize;font-size:1.05rem}
.cal-nav{display:flex;gap:.25rem}
.cal-nav button{width:2.2rem;height:2.2rem;border-radius:50%;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:1.1rem;color:var(--ink)}
.cal-nav button:disabled{opacity:.35;cursor:not-allowed}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-dow{font-size:.72rem;text-align:center;color:var(--muted);padding:.25rem 0;font-weight:600}
.day{aspect-ratio:1;border-radius:10px;border:0;background:transparent;font:inherit;font-weight:600;color:#9a8f84;cursor:default;position:relative}
.day.avail{color:var(--brand-dark);background:var(--brand-light);cursor:pointer}
.day.avail:hover{background:#f5d9bb}
.day.sel{background:var(--brand);color:#fff}
.day.today::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;border-radius:50%;background:currentColor;transform:translateX(-50%)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:.45rem}
.slot{border:2px solid var(--border);background:#fff;border-radius:10px;padding:.55rem .25rem;font:inherit;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);cursor:pointer}
.slot:hover{border-color:#c9a98a}
.slot[aria-checked=true]{background:var(--brand);border-color:var(--brand);color:#fff}
.small{font-size:.85rem}
.muted{color:var(--muted)}
.actions{display:flex;justify-content:space-between;gap:.75rem;margin-top:1.4rem}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn--ghost{background:#fff;color:var(--brand-dark);border-color:var(--border)}
.field{display:grid;gap:.3rem;margin-bottom:.9rem}
.field label{font-weight:600;font-size:.92rem;color:var(--ink)}
.opt{font-weight:400;color:var(--muted)}
.field input,.field textarea,.field select,.pro-pick select{font:inherit;padding:.7rem .85rem;border:1.5px solid #e3cdb5;border-radius:10px;background:#fff;color:var(--ink);width:100%}
.field input.bad,.field textarea.bad{border-color:#b3372f}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.check{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;color:var(--muted);margin:.4rem 0}
.check input{margin-top:.25rem;width:1.1rem;height:1.1rem;accent-color:var(--brand)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.error{color:#b3372f;background:#fdeceb;border-radius:10px;padding:.7rem .9rem;margin:.8rem 0 0;font-weight:600;font-size:.92rem}
.summary{position:sticky;top:1rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}
.summary h3{font-size:1.05rem;margin-bottom:.6rem}
.summary dl{margin:0 0 .8rem;display:grid;gap:.15rem}
.summary dt{font-size:.78rem;color:var(--muted);margin-top:.55rem}
.summary dd{margin:0;font-weight:700;color:var(--ink)}
.summary dd.empty{font-weight:400;color:#9a8f84}
.done{text-align:center;padding-block:2.5rem}
.done-mark{width:4rem;height:4rem;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:2rem;margin:0 auto 1rem}
.done p{max-width:46ch;margin-inline:auto}
@media (max-width:860px){
  .book-grid{grid-template-columns:1fr}
  .summary{position:static;order:-1}
  .when{grid-template-columns:1fr}
}
@media (max-width:520px){.row2{grid-template-columns:1fr}.stepper li span{display:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
