:root{--ink:#202129;--muted:#686a70;--paper:#f7f5f0;--cream:#eee9dd;--gold:#b38239;--wine:#742b38;--line:#ded9cd}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,sans-serif;line-height:1.5}.site-header{height:76px;padding:12px max(5vw,28px);display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:1px solid var(--line);font-size:.88rem;letter-spacing:.06em;text-transform:uppercase}.brand img{width:120px;max-height:54px;object-fit:contain}.hero{min-height:490px;background:#25262c;display:grid;grid-template-columns:1.05fr .95fr;color:#fff}.hero-copy{padding:clamp(48px,8vw,116px) max(5vw,28px);align-self:center}.hero img{width:100%;height:100%;object-fit:cover;filter:saturate(.75)}.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:bold;margin:0 0 12px}.hero h1{font-family:Georgia,serif;font-size:clamp(2.6rem,5.4vw,5.1rem);line-height:1.03;font-weight:400;margin:0}.lead{font-size:1.1rem;color:#d8d5cd;margin:24px 0 32px}.button{border:0;border-radius:2px;cursor:pointer;padding:14px 22px;font-weight:bold;font-size:1rem;text-decoration:none;display:inline-block}.primary{color:#fff;background:var(--wine)}.primary:hover{background:#56202a}.secondary{background:transparent;border:1px solid var(--wine);color:var(--wine)}.details{display:grid;grid-template-columns:repeat(3,1fr);margin:-1px auto 0;max-width:1100px;background:#fff}.details article{padding:24px 30px;border-right:1px solid var(--line)}.details strong,.details span{display:block}.details span{color:var(--muted);font-size:.9rem}.section,.venue{max-width:1000px;margin:auto;padding:78px 28px}.section h2,.venue h2{font:400 clamp(2rem,4vw,3rem)/1.1 Georgia,serif;margin:0 0 12px}.section-copy{color:var(--muted);max-width:640px}.function-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:32px 0}.function-card{text-align:left;background:#fff;border:1px solid var(--line);padding:26px;cursor:pointer}.function-card.selected{outline:3px solid var(--wine);border-color:var(--wine)}.function-card span,.function-card small{display:block;color:var(--muted)}.function-card strong{display:block;font:2.2rem Georgia,serif;margin:6px 0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:28px 0}.form-grid label{font-size:.9rem;font-weight:bold}.form-grid input,.form-grid select{display:block;width:100%;padding:13px;margin-top:6px;border:1px solid #b9b4a9;background:#fff;font:1rem Arial}.hint,.notice{color:var(--muted);font-size:.9rem}.hidden{display:none}.seat-legend{display:flex;flex-wrap:wrap;gap:10px 20px;margin:24px 0;font-size:.9rem}.seat-legend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:5px}.available{background:#d5cdbc}.selected-dot{background:var(--wine)}.unavailable{background:#a6a6a6}.whole-dot{background:#efe4cf;border:1px solid var(--gold);border-radius:2px!important}.seat-map{background:#fff;border:1px solid var(--line);padding:12px;overflow-x:auto}.seat-map svg{display:block;width:100%;max-width:760px;margin:0 auto;min-width:560px;height:auto;font-family:Arial,sans-serif}.room{fill:#fff;stroke:#25262c;stroke-width:1.5}.stage-shape{fill:#25262c}.stage-label{fill:#fff;font:bold 30px Arial,sans-serif;letter-spacing:.2em}.landmark{fill:#fff;stroke:#25262c;stroke-width:1.5}.landmark-label{font:bold 14px Arial,sans-serif;letter-spacing:.12em}.table-shape{fill:#f4f1ea;stroke:#8d8676;stroke-width:1.5}.table-shape.whole{fill:#efe4cf;stroke:var(--gold);cursor:pointer}.table-label{font-size:10px;fill:#8a6a35;pointer-events:none}.seat{cursor:pointer}.seat rect{fill:#d5cdbc;stroke:#6c6555;stroke-width:1}.seat-label{font-size:10px;fill:var(--ink);pointer-events:none}.seat:hover rect,.seat:focus-visible rect{stroke:var(--gold);stroke-width:3}.seat:focus{outline:none}.seat.selected rect{fill:var(--wine);stroke:#3a1219;stroke-width:2.5}.seat.selected .seat-label{fill:#fff;font-weight:bold}.check{fill:none}.seat.selected .check{fill:var(--gold)}.scroll-hint{display:none;color:var(--muted);font-size:.85rem;margin:0 0 8px}.seat-footer{position:sticky;bottom:0;z-index:2;box-shadow:0 -6px 16px rgba(0,0,0,.08)}.seat.selected:focus-visible rect{stroke:var(--gold);stroke-width:3.5}.seat-message{margin:0;padding:12px 16px;background:#f6e7e9;border-left:4px solid var(--wine);color:#56202a;font-weight:bold}.seat.unavailable{cursor:not-allowed}.seat.unavailable rect{fill:#bdbdbd;stroke:#8c8c8c}.seat.unavailable .seat-label{fill:#555}.strike{stroke:#555;stroke-width:1.5}.selection-bar{display:flex;justify-content:space-between;gap:20px;align-items:center;background:#eee9dd;padding:16px 18px}.summary-card{background:#fff;padding:26px;border:1px solid var(--line);margin:28px 0}.total{font-size:1.35rem;font-weight:bold}.confirmation{text-align:center;background:#e7eee4}.venue{display:grid;grid-template-columns:1fr 1fr;gap:38px;background:#e8e1d3;max-width:none;padding-left:max(7vw,28px);padding-right:max(7vw,28px)}.venue img{width:100%;height:260px;object-fit:cover}.venue a,footer a{color:var(--wine)}footer{padding:28px;text-align:center;font-size:.85rem;color:var(--muted);background:#fff}@media(max-width:650px){.site-header{height:64px}.site-header span{display:none}.hero{grid-template-columns:1fr}.hero img{display:none}.details,.function-grid,.form-grid,.venue{grid-template-columns:1fr}.details article{border-right:0;border-bottom:1px solid var(--line)}.section,.venue{padding-top:52px;padding-bottom:52px}.seat-map{padding:6px}.seat-map svg{min-width:900px;max-width:none}.scroll-hint{display:block}.selection-bar{align-items:stretch;flex-direction:column}.button{width:100%;text-align:center}}
fieldset { border: 1px solid #ddd; border-radius: 12px; margin: 24px 0; padding: 20px; }
legend { padding: 0 8px; font-weight: 700; }
.terms-label { display: flex; align-items: flex-start; gap: 12px; margin: 24px 0; }
.terms-label input { width: 20px; min-width: 20px; height: 20px; margin-top: 3px; }
button:disabled { opacity: .6; cursor: not-allowed; }

/* Respect native hidden state even for components with an explicit display. */
[hidden] { display: none !important; }
/* Fotografías del concierto y la sede: visibles también en móvil. */
.hero{grid-template-columns:1fr 1fr;overflow:hidden}.hero-copy{padding:clamp(44px,6vw,88px) max(5vw,28px)}
.hero-visual{position:relative;margin:0;align-self:stretch;background:#151017;min-width:0}.hero .hero-visual img{display:block;width:100%;height:100%;min-height:490px;object-fit:cover;filter:none}.hero-visual figcaption{position:absolute;bottom:0;left:0;right:0;padding:28px 20px 16px;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff;font-size:.72rem;letter-spacing:.04em}
.venue{align-items:center;grid-template-columns:1.15fr 1fr;gap:clamp(28px,5vw,76px)}.venue-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}.venue-gallery figure{margin:0;position:relative;overflow:hidden;background:#25262c}.venue-gallery .venue-main{grid-column:1/-1}.venue-gallery img{display:block;width:100%;height:auto;aspect-ratio:1.5;object-fit:cover}.venue-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 12px 8px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;font-size:.8rem}.venue-copy{max-width:430px}.venue-copy p{line-height:1.7}
@media(max-width:900px){.hero{grid-template-columns:1fr}.hero .hero-visual img{min-height:0;height:auto;aspect-ratio:4/3;object-fit:contain}.hero-visual{max-width:720px;width:100%;justify-self:center}.hero-copy{padding:48px 28px}.hero h1{font-size:clamp(2.6rem,7vw,4rem)}.venue{grid-template-columns:1fr}.venue-copy{max-width:none}.venue-gallery{max-width:720px;width:100%;margin:auto}} 
@media(max-width:650px){.hero-visual figcaption{font-size:.65rem;padding:24px 12px 10px}.venue-gallery{gap:8px}.venue-gallery figcaption{font-size:.75rem}.hero .hero-visual img{display:block}}
.hero .hero-visual img{object-fit:contain}
/* Legibilidad en pantallas grandes y numeración clara del plano. */
.seat-label{font-size:11.5px;font-weight:600}.seat-map svg{max-width:900px}.seat-legend{line-height:1.6}.form-grid select{min-height:52px}
@media(min-width:901px){body{font-size:18px}.section{max-width:1150px}.details strong{font-size:22px}.details span{font-size:20px}.section-copy,.seat-legend,.venue-copy p,.venue-copy a{font-size:20px}.section-copy{max-width:830px}.hint,.notice,.function-card small,.function-card span{font-size:18px}.form-grid label,.form-grid input,.form-grid select,.button,.selection-bar{font-size:20px}.eyebrow{font-size:17px}.venue .eyebrow{font-size:18px}.venue-copy{max-width:500px}footer{font-size:16px}}

.concert-subtitle{font:italic 400 clamp(1.55rem,2.6vw,2.55rem)/1.25 Georgia,serif;color:#d9bd85;margin:24px 0 0}.hero h1{font-size:clamp(2.5rem,4.5vw,4.4rem)}#student-quota{padding:14px 18px;background:var(--cream);border-left:4px solid var(--gold)}#selection-status{overflow-wrap:anywhere}.selection-bar .button{flex-shrink:0}@media(min-width:901px){.selection-bar{align-items:center}#selection-status{font-size:18px}}
