/* Refinements of the existing editorial white/lime identity. */
:root { --space-section:clamp(2.5rem,6vw,5rem); }
body { line-height:1.5; }
::selection { background:var(--lime); color:var(--ink); }
html { scrollbar-color:var(--ink-dim) var(--paper); }
input { caret-color:var(--lime-deep); }
.skip-link { position:fixed; top:-100px; left:1rem; z-index:1000; padding:1rem; background:var(--lime); color:var(--ink); }
.skip-link:focus { top:1rem; }
.brand a { align-items:center; gap:12px; }
.brand-name { font-size:1.2rem; color:var(--ink); letter-spacing:.03em; font-weight:700; line-height:1.2; }
.brand-name small { display:block; font-size:.72rem; letter-spacing:.12em; margin-top:5px; font-weight:500; }
body > nav { padding-top:1.2rem; padding-bottom:1.2rem; }
body > nav ul { gap:1.6rem; font-size:.75rem; }
nav .cta { min-height:44px; display:flex; align-items:center; padding-inline:1.5rem; }
.btn { font-family:Archivo,Arial,sans-serif; text-transform:none; letter-spacing:0; font-weight:600; font-size:.9rem; }
.btn, .cta, .slot { transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
.hero { padding-top:1.7rem; }
.hero-topline { display:flex; justify-content:space-between; gap:1rem; font-size:.76rem; color:var(--ink-dim); margin-bottom:2.5rem; }
.hero-layout { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(270px,1fr); gap:clamp(2rem,5vw,4rem); align-items:stretch; }
.hero h1 { font-size:clamp(3.4rem,7.2vw,6rem); line-height:.98; margin-top:0!important; }
.hero .hl { padding:0 .06em; }
.hero-meta { display:block; margin-top:1.7rem; }
.hero-meta p { max-width:46ch; font-size:.96rem; }
.hero .actions { align-items:flex-start; margin-top:1.5rem; gap:1rem; }
.hero .rating { order:2; font-family:Archivo,sans-serif; font-size:.72rem; }
.visit-panel { background:var(--ink); color:var(--paper); padding:clamp(1.6rem,3vw,2.5rem); display:flex; flex-direction:column; }
.visit-title { font-family:'Big Shoulders Display',sans-serif; font-size:clamp(2.2rem,3.2vw,3rem); line-height:1; font-weight:700; margin:0; }
.visit-panel > p:not(.visit-title) { font-size:.86rem; line-height:1.7; color:#cdcdc0; margin:1.2rem 0 1.6rem; }
.visit-panel .btn { background:var(--lime); color:var(--ink); justify-content:space-between; }
.visit-panel .btn:hover { background:var(--paper); }
.visit-hours { display:grid; grid-template-columns:1fr auto; column-gap:1rem; row-gap:.55rem; padding-top:1.5rem; margin-top:auto; font-size:.73rem; font-variant-numeric:tabular-nums; }
.visit-hours span:nth-child(2n) { color:#cdcdc0; text-align:right; }
.visit-link { font-size:.74rem; text-underline-offset:4px; margin-top:1rem; color:#cdcdc0; }
.hero .teasers { border:0; background:none; gap:1.7rem; margin-top:3rem; }
.hero .teaser { border-top:1px solid var(--line-strong); padding:1.2rem 0 .6rem; background:none; }
.hero .teaser h2 { font-size:1.7rem; }
.hero .teaser p { font-size:.8rem; }
.hero .teaser:hover h3 { color:var(--lime-deep); }
.hero .teaser .go { margin-top:.6rem; font-family:Archivo,sans-serif; }
.final { border-top:1px solid var(--line); margin-top:2rem; padding-block:var(--space-section); }
.final h2 { line-height:1.02; }
footer { border-top:1px solid var(--line); background:var(--paper-2); margin-top:2rem; }
footer nav.foot-links ul { flex-direction:row; gap:1.4rem; }
.page-head { padding-top:var(--space-section); }
.page-head h1 { font-size:clamp(3rem,7vw,5.5rem); line-height:1.02; }
.page-head .lede { font-size:1rem; }
.svc-detail { grid-template-columns:1fr; border:0; background:none; }
.svc-detail .card { display:grid; grid-template-columns:110px 1fr 1.25fr; column-gap:2rem; border-top:1px solid var(--line-strong); padding:1.8rem 0; background:none; }
.svc-detail h2 { font-size:2rem; line-height:1.1; }
.svc-detail .tag { padding-top:.4rem; font-family:Archivo,sans-serif; }
.svc-detail p { font-size:.9rem; }
.service-link { grid-column:3; font-size:.83rem; font-weight:600; text-underline-offset:5px; margin-top:.4rem; }
.hours-table { max-width:800px; }
.rows .row { padding:1rem .5rem; }
.rows .row.today { margin:0; padding:1rem .5rem; }
.traits-full h3 { font-size:1.7rem; }
.traits-full .ex { font-size:1.35rem; }
.quote { border-left:0; border-top:1px solid var(--line-strong); }
.booker { max-width:760px; display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; padding:2rem; background:var(--paper-2); }
.booker > :nth-child(n+3) { grid-column:1/-1; }
.field { min-width:0; }
.field label { font-family:Archivo,sans-serif; text-transform:none; letter-spacing:0; font-size:.83rem; font-weight:600; }
.field input, .field select { min-width:0; width:100%; min-height:48px; }
.slot-status { font-size:.8rem; min-height:1.4em; }
.slot-cols { grid-template-columns:repeat(5,1fr); }
.slot.selected { background:var(--lime); color:var(--ink); border-color:var(--lime-deep); }
.summary { background:var(--paper); border:0; }
.booker .confirm-btn-row .btn { width:100%; }
.disclaimer { margin:0; max-width:65ch; }
.success-panel { max-width:760px; margin-top:2rem; }
.success-panel .title { font-size:2.5rem; }
.booker[hidden] { display:none; }
input:focus-visible,select:focus-visible { outline:2px solid var(--lime-deep); outline-offset:3px; }
.login-box { background:var(--paper-2); padding:2rem; max-width:420px; }
.booking-row { flex-wrap:wrap; }
.booking-row .cancel { min-height:44px; }
@media(max-width:900px) {
  .brand-name { font-size:1rem; }
  body > nav ul { gap:1rem; }
  .hero-layout { grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr); gap:1.5rem; }
  .hero h1 { font-size:clamp(3.4rem,7.3vw,5rem); }
  .svc-detail .card { grid-template-columns:80px 1fr; }
  .svc-detail p,.service-link { grid-column:2; }
}
@media(max-width:650px) {
  .hero-layout { grid-template-columns:1fr; gap:2rem; }
  .hero-topline span:last-child { display:none; }
  .hero-topline { margin-bottom:1.6rem; }
  .hero h1 { font-size:clamp(3.3rem,12vw,4.8rem); }
  .hero .actions .row { flex-wrap:wrap; gap:.6rem; }
  .hero .teasers { gap:1rem; margin-top:2rem; }
  .visit-title { font-size:2.7rem; }
  .visit-hours { padding-top:1.5rem; }
  body > nav ul { justify-content:space-between; gap:.4rem; font-size:.67rem; }
  body > nav ul a { display:inline-flex; align-items:center; min-height:44px; }
  .booker { padding:1.2rem; grid-template-columns:1fr; }
  .booker > * { grid-column:1!important; }
  .slot-cols { grid-template-columns:repeat(3,1fr); }
  .page-head h1 { font-size:clamp(2.7rem,10vw,4rem); }
  footer nav.foot-links ul { flex-wrap:wrap; }
  .svc-detail .card { grid-template-columns:1fr; gap:.7rem; }
  .svc-detail p,.service-link { grid-column:1; }
  .manual-form { grid-template-columns:1fr; }
  .final .actions-final { flex-direction:column; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}

.field input[type="tel"] { font:inherit; font-size:1rem; padding:.75rem .9rem; border:1px solid var(--line-strong); border-radius:6px; background:var(--paper); color:var(--ink); }

/* Photo panel (franja fotográfica): fotografía documental real del local, ver DESIGN.md. */
.proof-shot{ position:relative; margin:3.5rem 0 0; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.proof-shot img{ width:100%; height:420px; object-fit:cover; object-position:50% 12%; display:block; }
.proof-shot figcaption{ position:absolute; left:0; right:0; bottom:0; display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; padding:1.1rem 1.4rem; background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.6) 100%); font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.04em; text-transform:uppercase; color:var(--paper); }
@media (max-width:800px){ .proof-shot img{ height:320px; } }
@media (max-width:450px){ .proof-shot img{ height:260px; } .proof-shot figcaption{ font-size:0.7rem; padding:0.9rem 1rem; } }
