:root { --ink:#211f1b; --muted:#716a61; --paper:#f4efe6; --surface:#fffdf8; --brand-primary:#29251f; --brand-secondary:#b17a42; --accent:var(--brand-secondary); --border:#ddd4c5; --shadow:0 14px 38px rgb(47 38 26 / 8%); }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:system-ui,sans-serif; }
a { color:inherit; }
.site-header { min-height:72px; padding:0 5vw; display:flex; align-items:center; justify-content:space-between; border-bottom:3px solid var(--brand-secondary); background:var(--surface); box-shadow:0 4px 20px rgb(47 38 26 / 5%); }
.brand { display:flex; align-items:center; gap:.6rem; font:700 1.35rem Georgia,serif; text-decoration:none; }
.brand-logo { width:48px; height:48px; flex:0 0 48px; border-radius:50%; object-fit:cover; }
nav, nav form { display:flex; align-items:center; gap:1rem; }
nav a, .link-button { text-underline-offset:.3rem; text-decoration-color:color-mix(in srgb,var(--brand-secondary) 55%,transparent); }
.container { width:min(1080px,90vw); margin:0 auto; padding:4rem 0; }
.hero { max-width:700px; padding:8vh 0; }
h1 { margin:.25rem 0 1rem; font:clamp(2.25rem,7vw,5rem)/1 Georgia,serif; }
.eyebrow { color:var(--accent); font-weight:750; font-size:.75rem; letter-spacing:.16em; }
.muted { color:var(--muted); }
.button { display:inline-block; width:100%; margin-top:1.2rem; padding:.85rem 1.1rem; border:0; border-radius:.55rem; background:var(--brand-primary); color:white; font:inherit; font-weight:700; text-align:center; text-decoration:none; cursor:pointer; box-shadow:0 7px 16px color-mix(in srgb,var(--brand-primary) 20%,transparent); transition:transform .15s,filter .15s; }
.button:hover { filter:brightness(1.12); transform:translateY(-1px); }
.button.secondary { width:auto; }
.link-button { border:0; padding:0; background:none; color:inherit; font:inherit; text-decoration:underline; cursor:pointer; }
.auth-card { max-width:430px; margin:3vh auto; padding:2.25rem; border:1px solid var(--border); border-radius:.75rem; background:var(--surface); box-shadow:0 18px 50px rgb(25 23 19 / 7%); }
.auth-card h1 { font-size:2.5rem; }
label { display:block; margin:1rem 0 .4rem; font-weight:650; }
input { width:100%; padding:.8rem; border:1px solid var(--border); border-radius:.35rem; background:white; font:inherit; }
input:focus, select:focus, textarea:focus { outline:3px solid color-mix(in srgb,var(--brand-secondary) 22%,transparent); border-color:var(--brand-secondary); }
input[type="color"] { height:3.2rem; padding:.3rem; cursor:pointer; }
select, textarea { width:100%; padding:.8rem; border:1px solid var(--border); border-radius:.35rem; background:white; font:inherit; }
input[type="checkbox"] { width:auto; }
.field { margin-bottom:1rem; }
.field small { display:block; color:var(--muted); }
.field ul { list-style:none; padding:0; }
.field ul label { font-weight:400; }
.form-page { max-width:680px; }
.form-errors, .errorlist { color:#8d2525; }
.stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:2rem; }
.stat { min-height:142px; padding:1.5rem; border:1px solid var(--border); border-radius:.8rem; background:var(--surface); box-shadow:var(--shadow); }
.stat.featured { color:white; border-color:transparent; background:linear-gradient(135deg,var(--brand-primary),color-mix(in srgb,var(--brand-primary) 75%,var(--brand-secondary))); }
.stat span, .stat strong { display:block; }
.stat strong { margin-top:.7rem; font:2rem Georgia,serif; }
.error-page { max-width:620px; }
.error-page h1 { font-size:3rem; }
.page-heading, .section-heading, .heading-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.page-heading h1 { font-size:clamp(2.2rem,5vw,4rem); }
.table-wrap { overflow-x:auto; border:1px solid var(--border); border-radius:.75rem; background:var(--surface); box-shadow:var(--shadow); }
table { width:100%; border-collapse:collapse; }
th, td { padding:1rem; border-bottom:1px solid var(--border); text-align:left; white-space:nowrap; }
tbody tr:last-child td { border-bottom:0; }
.actions { display:flex; gap:.8rem; justify-content:flex-end; }
.badge { display:inline-block; padding:.25rem .55rem; border-radius:99px; background:#e5e1d9; font-size:.8rem; }
.badge.ok { color:#285e3e; background:#dcecdf; }
.button.light { color:var(--ink); background:transparent; border:1px solid var(--border); }
.button.danger { background:#8d2525; }
.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1rem; }
.person-card { display:flex; gap:1rem; padding:1rem; border:1px solid var(--border); border-radius:.75rem; background:var(--surface); box-shadow:var(--shadow); }
.person-card img, .photo-placeholder { width:76px; height:76px; flex:0 0 76px; border-radius:.5rem; object-fit:cover; }
.photo-placeholder { display:grid; place-items:center; background:var(--ink); color:white; font:2rem Georgia,serif; }
.person-card h2 { margin:.25rem 0; }
.detail-section { margin-top:2rem; }
.filter-form { display:grid; grid-template-columns:2fr 1fr auto; gap:.7rem; margin:1rem 0; }
.filter-form .button { margin:0; }
.detail-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:2rem 0; }
.detail-grid div { padding:1rem; border:1px solid var(--border); border-radius:.5rem; background:var(--surface); }
.detail-grid dt { color:var(--muted); font-size:.85rem; }
.detail-grid dd { margin:.4rem 0 0; font-weight:700; }
.status-confirmed, .status-completed { color:#285e3e; background:#dcecdf; }
.status-cancelled, .status-no_show { color:#7a2d2d; background:#f0dddd; }
.inline-action { display:inline-block; }
.cancel-form { max-width:520px; margin-top:2rem; padding:1.2rem; border:1px solid #d9baba; border-radius:.5rem; }
.history-list { padding-left:1.25rem; }
.booking-shell { width:min(720px,100%); margin:0 auto; }
.booking-shell h1 { font-size:clamp(2.3rem,7vw,4.4rem); }
.choice-grid { display:grid; gap:.8rem; margin-top:2rem; }
.choice-card { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.2rem; border:1px solid var(--border); border-radius:.65rem; background:var(--surface); text-decoration:none; transition:transform .15s,border-color .15s; }
.choice-card:hover { transform:translateY(-2px); border-color:var(--accent); }
.choice-card strong, .choice-card small { display:block; }
.choice-card small { margin-top:.3rem; color:var(--muted); }
.choice-meta, .booking-summary { color:var(--muted); }
.person-choice { justify-content:flex-start; }
.person-choice img, .mini-avatar { width:52px; height:52px; border-radius:50%; object-fit:cover; }
.mini-avatar { display:grid; place-items:center; color:white; background:var(--ink); font:1.4rem Georgia,serif; }
.back-link { display:inline-block; margin-bottom:1rem; color:var(--muted); }
.date-form { max-width:430px; margin-top:2rem; padding:1.4rem; border:1px solid var(--border); border-radius:.65rem; background:var(--surface); }
.slot-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:.65rem; margin-top:2rem; }
.slot { padding:.85rem; border:1px solid var(--border); border-radius:.45rem; background:var(--surface); font-weight:700; text-align:center; text-decoration:none; }
.slot:hover { color:white; background:var(--ink); }
.booking-recap { display:grid; gap:.35rem; margin:1.2rem 0; padding:1.2rem; border-left:4px solid var(--accent); background:var(--surface); }
.notice { padding:1rem; border-radius:.5rem; background:#eee4cf; }
.notice.error { color:#7a2d2d; background:#f0dddd; }
.success-mark { display:grid; width:64px; height:64px; place-items:center; border-radius:50%; color:white; background:#39744f; font-size:2rem; }
.confirmation-card { margin-top:2rem; padding:1.5rem; }
.message { padding:1rem 1.2rem; border-left:4px solid var(--brand-secondary); border-radius:.4rem; background:var(--surface); box-shadow:var(--shadow); }
.dashboard-toolbar { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-top:2rem; }
.dashboard-toolbar h2, .section-heading h2, .revenue-card h3 { margin:0; }
.date-filter { display:grid; grid-template-columns:auto 170px auto; align-items:end; gap:.7rem; }
.date-filter label { margin:0 0 .7rem; }
.date-filter .button { margin:0; }
.revenue-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; }
.revenue-card { display:flex; align-items:center; gap:1rem; padding:1.25rem; border:1px solid var(--border); border-radius:.75rem; background:var(--surface); box-shadow:var(--shadow); }
.revenue-card strong, .revenue-card small { display:block; }
.revenue-card strong { margin:.35rem 0; color:var(--brand-primary); font:1.55rem Georgia,serif; }
.revenue-card small { color:var(--muted); }
.barber-initial { display:grid; width:50px; height:50px; flex:0 0 50px; place-items:center; border-radius:50%; color:white; background:linear-gradient(135deg,var(--brand-primary),var(--brand-secondary)); font:1.35rem Georgia,serif; }
@media (max-width:1000px) { .stat-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:900px) { .site-header { align-items:flex-start; padding-block:1rem; } nav { flex-wrap:wrap; justify-content:flex-end; } .dashboard-toolbar { align-items:flex-start; flex-direction:column; } }
@media (max-width:700px) { .container { padding:2.5rem 0; } .stat-grid, .detail-grid, .filter-form { grid-template-columns:1fr; } .page-heading { align-items:flex-start; flex-direction:column; } .site-header { display:block; } nav { margin-top:1rem; justify-content:flex-start; } }
@media (max-width:520px) { .date-filter { width:100%; grid-template-columns:1fr; } .date-filter label { margin:0; } }

/* Tema editorial oscuro */
:root { --ink:#f1eadc; --muted:#a9a093; --paper:#0d0c0a; --surface:#191613; --brand-primary:#171512; --brand-secondary:#b49542; --accent:#b49542; --border:#3a3224; --shadow:0 18px 45px rgb(0 0 0 / 28%); }
body { background:radial-gradient(circle at 70% 0%,#211b12 0,transparent 32rem),var(--paper); }
.site-header { color:#1c1914; border-bottom:1px solid #dedbd3; background:#f4f3ef; box-shadow:none; }
.brand-logo { border:2px solid var(--accent); }
.container { min-height:calc(100vh - 72px); }
.eyebrow { color:var(--accent); }
.button { color:#100f0c; border:1px solid var(--accent); background:var(--accent); box-shadow:none; letter-spacing:.04em; }
.button.light { color:var(--ink); border-color:var(--border); background:transparent; }
input, select, textarea { color:var(--ink); border-color:var(--border); background:#211d18; }
input[type="date"] { color-scheme:dark; }
.auth-card, .stat, .table-wrap, .person-card, .detail-grid div, .choice-card, .date-form, .slot, .booking-recap, .revenue-card, .message { background:var(--surface); }
th { color:var(--accent); font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; }
tbody tr:hover { background:rgb(180 149 66 / 6%); }
.badge { color:#d7cebf; background:#38332c; }
.badge.ok, .status-confirmed, .status-completed { color:#bde0c5; background:#21382a; }
.status-cancelled, .status-no_show { color:#f0c0ba; background:#452623; }
.security-success { color:#bde0c5; background:#21382a; }
.security-failed, .security-blocked { color:#f0c0ba; background:#452623; }
.security-unlocked { color:#f3dda0; background:#473b1b; }
.photo-placeholder, .mini-avatar { background:var(--accent); color:#14110d; }
.premium-hero { max-width:none; padding:12vh 7vw; text-align:center; border:1px solid var(--border); background:linear-gradient(rgb(7 7 6 / 72%),rgb(7 7 6 / 82%)),radial-gradient(circle at center,#3b3020,#0a0908 65%); }
.premium-hero h1 { max-width:900px; margin:.4rem auto 1.4rem; font-size:clamp(3rem,8vw,6.5rem); text-transform:uppercase; }
.premium-hero p:not(.eyebrow) { color:#c1b8a9; }
.premium-hero .button { width:auto; margin-top:2rem; padding:1rem 2rem; }
.public-section { padding:5rem 0 2rem; }
.section-title { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1rem; margin-bottom:2rem; }
.section-title span { height:1px; background:var(--border); }
.service-showcase { display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; }
.service-tile { display:flex; min-height:240px; flex-direction:column; justify-content:space-between; padding:1.4rem; border:1px solid var(--border); background:var(--surface); }
.service-tile h2 { margin:0 0 .4rem; font:1.45rem Georgia,serif; text-transform:uppercase; }
.service-tile p { color:var(--muted); font-family:Georgia,serif; font-style:italic; }
.service-tile > strong { color:var(--accent); font:1.6rem Georgia,serif; }
.service-tile footer { display:flex; align-items:center; justify-content:space-between; margin-top:1.5rem; }
.service-tile footer a { padding:.65rem .9rem; color:var(--accent); border:1px solid var(--accent); font-size:.72rem; font-weight:800; letter-spacing:.1em; text-decoration:none; }
.location-band { margin:4rem 0 2rem; padding:3rem; text-align:center; border-block:1px solid var(--border); background:#14120f; }
.location-band h2 { margin:.5rem; font:2.2rem Georgia,serif; text-transform:uppercase; }
.staff-access { text-align:center; color:var(--muted); }
.professional-stats { grid-template-columns:2fr 2fr 1fr; }
.button.compact { width:auto; margin:0; padding:.55rem .8rem; }
@media (max-width:850px) { .service-showcase { grid-template-columns:repeat(2,1fr); } .professional-stats { grid-template-columns:1fr; } }
@media (max-width:560px) { .service-showcase { grid-template-columns:1fr; } .premium-hero { padding-inline:1rem; } }

/* Pulido visual y responsive */
html { scroll-behavior:smooth; }
body { line-height:1.55; }
h2, h3 { text-wrap:balance; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { position:relative; z-index:20; }
.site-header nav a, .site-header .link-button { position:relative; padding:.5rem 0; text-decoration:none; }
.site-header nav a::after, .site-header .link-button::after { content:""; position:absolute; right:0; bottom:.2rem; left:0; height:1px; background:#9a7927; transform:scaleX(0); transform-origin:right; transition:transform .2s ease; }
.site-header nav a:hover::after, .site-header nav a:focus-visible::after, .site-header .link-button:hover::after { transform:scaleX(1); transform-origin:left; }
.nav-toggle { display:none; min-height:44px; align-items:center; gap:.55rem; padding:.55rem .75rem; color:#211f1b; border:1px solid #d5d0c5; border-radius:.45rem; background:transparent; font:600 .86rem system-ui,sans-serif; cursor:pointer; }
.nav-toggle-bars { width:20px; }
.nav-toggle-bars i { display:block; height:2px; margin:4px 0; background:#211f1b; transition:transform .2s,opacity .2s; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(2) { opacity:0; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

.muted, .choice-card small, .choice-meta, .booking-summary, .field small, .back-link { color:#bcb3a6; }
.notice { color:#211f1b; background:#f1e5cb; border:1px solid #d4b96f; }
.notice p { margin:.45rem 0 0; line-height:1.6; }
.pending-notice strong { color:#624a0c; text-transform:uppercase; letter-spacing:.07em; }
.message { color:var(--ink); }
.stat strong, .revenue-card strong, .service-tile > strong, td { font-variant-numeric:tabular-nums; }
.stat strong, .revenue-card strong { white-space:nowrap; }
.stat { overflow:hidden; }
.stat span { color:#c9c0b3; }
.stat.featured span, .stat.featured small { color:#fff; }
.table-wrap { scrollbar-color:var(--accent) var(--surface); }
th { background:rgb(180 149 66 / 4%); }
td { vertical-align:middle; }
.badge { white-space:nowrap; }
.button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline:3px solid #e1bd59; outline-offset:3px; }

.booking-steps { margin:4rem auto 1rem; text-align:center; }
.booking-steps > h2 { margin:.35rem 0 2rem; font:clamp(2rem,4vw,3.2rem) Georgia,serif; }
.booking-steps > div { display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid var(--border); }
.booking-steps article { padding:2rem; }
.booking-steps article + article { border-left:1px solid var(--border); }
.booking-steps span { color:var(--accent); font-size:.75rem; font-weight:800; letter-spacing:.16em; }
.booking-steps h3 { margin:.45rem 0; font:1.5rem Georgia,serif; }
.booking-steps p { margin:0; color:#bcb3a6; }

.booking-progress { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:2rem 0; padding:0; list-style:none; }
.booking-progress li { position:relative; display:grid; justify-items:center; gap:.55rem; color:#8e877d; text-align:center; font-size:.78rem; }
.booking-progress li::before { content:""; position:absolute; top:17px; right:50%; left:-50%; height:1px; background:var(--border); z-index:0; }
.booking-progress li:first-child::before { display:none; }
.booking-progress li > span { position:relative; z-index:1; display:grid; width:34px; height:34px; place-items:center; border:1px solid var(--border); border-radius:50%; background:var(--surface); }
.booking-progress .is-done, .booking-progress .is-current { color:var(--ink); }
.booking-progress .is-done > span { color:#111; border-color:var(--accent); background:var(--accent); }
.booking-progress .is-current > span { color:var(--accent); border-color:var(--accent); }
.booking-code { margin-top:.3rem; color:var(--accent); font-size:1.1rem; letter-spacing:.04em; }
.confirmation-actions { display:flex; align-items:center; gap:1.25rem; margin-top:1.5rem; }
.confirmation-actions .back-link { margin:0; }
.mobile-booking-cta { display:none; }

@media (max-width:1100px) {
  .site-header { padding-inline:3vw; }
  nav, nav form { gap:.7rem; }
  .site-header nav { font-size:.9rem; }
}
@media (max-width:900px) {
  .site-header { min-height:64px; align-items:center; padding-block:.65rem; }
  .nav-toggle { display:flex; }
  .site-header nav { position:absolute; top:100%; right:0; left:0; display:none; margin:0; padding:1rem 5vw 1.3rem; border-top:1px solid #dedbd3; background:#f4f3ef; box-shadow:0 14px 24px rgb(0 0 0 / 18%); }
  .site-header nav.is-open { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-header nav form { display:block; }
  .site-header nav a, .site-header .link-button { width:100%; padding:.65rem .2rem; text-align:left; }
  .brand-logo { width:42px; height:42px; flex-basis:42px; }
}
@media (max-width:700px) {
  .container { width:100%; padding:2rem max(1rem,4vw); }
  h1, .page-heading h1, .booking-shell h1 { font-size:clamp(2.35rem,13vw,3.8rem); overflow-wrap:anywhere; }
  .premium-hero { padding-block:9vh; }
  .premium-hero h1 { font-size:clamp(2.6rem,13vw,4.5rem); }
  .booking-steps > div { grid-template-columns:1fr; }
  .booking-steps article + article { border-top:1px solid var(--border); border-left:0; }
  .table-wrap { margin-inline:-2vw; border-radius:.4rem; }
  .table-wrap::after { content:"Deslizá horizontalmente para ver más"; display:block; padding:.65rem .8rem; color:var(--muted); border-top:1px solid var(--border); font-size:.72rem; text-align:center; }
  .table-wrap table { min-width:650px; }
  th, td { padding:.8rem; }
  .confirmation-actions { align-items:stretch; flex-direction:column; }
  .confirmation-actions .button { width:100%; }
  .confirmation-actions .back-link { text-align:center; }
}
@media (max-width:520px) {
  .site-header nav.is-open { grid-template-columns:1fr; max-height:calc(100vh - 64px); overflow:auto; }
  .auth-card { padding:1.4rem; }
  .stat { min-height:120px; }
  .booking-progress strong { font-size:.68rem; }
  .booking-progress li::before { top:15px; }
  .booking-progress li > span { width:30px; height:30px; }
  .service-tile { min-height:210px; }
}

/* Experiencia mobile-first */
@media screen and (max-width:640px) {
  body { background:radial-gradient(circle at 85% 0%,#211b12 0,transparent 22rem),var(--paper); }
  .site-header { position:sticky; top:0; display:flex; min-height:62px; padding:.5rem 1rem; }
  .brand { gap:.5rem; font-size:1.2rem; }
  .brand-logo { width:40px; height:40px; flex-basis:40px; }
  .site-header nav { max-height:calc(100dvh - 62px); padding:.65rem 1rem max(1rem,env(safe-area-inset-bottom)); overflow-y:auto; }
  .site-header nav a, .site-header .link-button { min-height:44px; display:flex; align-items:center; border-bottom:1px solid #e4e0d7; }

  .eyebrow { font-size:.7rem; letter-spacing:.14em; }
  h1, .page-heading h1, .booking-shell h1 { margin-top:.4rem; font-size:clamp(2.15rem,11vw,3rem); line-height:1.02; }
  .page-heading, .section-heading { gap:.7rem; }
  .page-heading .button, .section-heading .button { width:100%; }

  .dashboard-toolbar { gap:1rem; margin-top:1.4rem; }
  .dashboard-toolbar h2 { font-size:1.25rem; }
  .dashboard-toolbar .muted { margin:.45rem 0 0; font-size:.9rem; }
  .date-filter { display:grid; grid-template-columns:1fr auto; gap:.65rem; }
  .date-filter label { grid-column:1 / -1; }
  .date-filter input { min-width:0; }
  .date-filter .button { min-width:92px; }

  .stat-grid, .professional-stats { grid-template-columns:1fr; gap:.7rem; margin-top:1.35rem; }
  .stat { min-height:0; padding:1.05rem 1.15rem; border-radius:.65rem; }
  .stat strong { margin-top:.35rem; font-size:clamp(1.65rem,8vw,2.1rem); }
  .stat small { display:block; margin-top:.1rem; }
  .detail-section { margin-top:2.25rem; }
  .revenue-grid { grid-template-columns:1fr; gap:.7rem; }
  .revenue-card { min-width:0; padding:1rem; }
  .revenue-card strong { font-size:1.35rem; }

  input, select, textarea { min-height:48px; padding:.85rem; font-size:16px; }
  textarea { min-height:120px; }
  label { margin-top:.85rem; }
  .button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; }
  .auth-card { margin:0; padding:1.25rem; }

  .booking-shell { width:100%; }
  .choice-grid { gap:.65rem; margin-top:1.35rem; }
  .choice-card { min-height:70px; align-items:flex-start; flex-direction:column; padding:1rem; }
  .choice-meta { width:100%; padding-top:.55rem; border-top:1px solid var(--border); }
  .person-choice { min-height:72px; align-items:center; flex-direction:row; }
  .date-form { max-width:none; margin-top:1.35rem; padding:1rem; }
  .slot-grid { grid-template-columns:repeat(3,1fr); gap:.55rem; margin-top:1.35rem; }
  .slot { min-height:48px; display:grid; place-items:center; padding:.65rem .4rem; }
  .booking-recap { margin:1rem 0; padding:1rem; }
  .booking-progress { margin:1.5rem 0; grid-template-columns:1fr; gap:.8rem; }
  .booking-progress li { min-height:34px; grid-template-columns:34px 1fr; align-items:center; justify-items:start; text-align:left; }
  .booking-progress li::before { top:-.8rem; bottom:50%; left:16px; width:1px; height:auto; }
  .booking-progress li:first-child::before { display:none; }

  .premium-hero { min-height:calc(82dvh - 62px); display:flex; align-items:center; flex-direction:column; justify-content:center; padding:3rem 1rem; }
  .premium-hero h1 { font-size:clamp(2.65rem,14vw,4rem); }
  .booking-steps { margin-top:2.5rem; }
  .booking-steps article { padding:1.4rem 1rem; }
  .public-section { padding-top:3rem; }
  .location-band { margin:2.5rem -1rem 1rem; padding:2.2rem 1rem; }
  .staff-access { margin-bottom:5.5rem; }
  .mobile-booking-cta { position:fixed; z-index:15; right:1rem; bottom:max(1rem,env(safe-area-inset-bottom)); left:1rem; display:flex; min-height:52px; align-items:center; justify-content:center; color:#111; border:1px solid #d3ad43; border-radius:.55rem; background:var(--accent); box-shadow:0 12px 30px rgb(0 0 0 / 45%); font-weight:800; text-decoration:none; }
}

@media (hover:none) and (pointer:coarse) {
  a, button, .slot { -webkit-tap-highlight-color:rgb(180 149 66 / 22%); }
  .choice-card:hover, .button:hover { transform:none; }
}
