:root {
  --navy-deep:#0a1224;
  --navy:#111d38;
  --navy2:#1a2a4d;
  --navy-line:#2b3c63;

  --black:var(--navy-deep); --char:var(--navy); --char2:var(--navy2);

  --tan:#bfa06a; --gold:#d4af37; --paper:#eff1f5;
  --ink:#0d1526; --muted:#5f6878; --line:#dde1ea; --edge:#c9cedb; --light:#b4bccd;
  --error:#c62828;

  --header-h:76px;

  --cloud:radial-gradient(ellipse at 18% 8%,rgba(70,105,170,.28),transparent 55%),
          radial-gradient(ellipse at 85% 90%,rgba(50,80,140,.22),transparent 55%);
}
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html { scroll-behavior:smooth; scroll-padding-top:70px; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { font-family:'Inter',sans-serif; background:var(--paper); color:var(--ink); -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img { max-width:100%; }
a { color:inherit; }

/* ---------- Typography ---------- */
h1,h2,h3,h4,h5,h6,.display,.btn,.eyebrow,.know-label,.status,.steps,.main-nav a,.book-tab,.timer,.total,.brand-text {
  font-family:'Archivo','Arial Black',sans-serif; font-stretch:125%;
}
h1,h2,h3 { font-weight:800; text-transform:uppercase; line-height:.98; letter-spacing:-.01em; overflow-wrap:break-word; }
h4 { font-weight:800; text-transform:uppercase; font-size:1.15rem; letter-spacing:.01em; }
.outline { color:transparent; -webkit-text-stroke:2px #fff; font-family:'Archivo','Arial Black',sans-serif; font-stretch:125%; font-weight:800; text-transform:uppercase; line-height:1; }
.outline-dark { color:transparent; -webkit-text-stroke:1.5px #111; font-family:'Archivo','Arial Black',sans-serif; font-stretch:125%; font-weight:800; text-transform:uppercase; }
.text-muted-light { color:var(--light); }
.lead-light { color:#fff; font-size:1.15rem; }
.eyebrow { color:var(--gold); text-transform:uppercase; letter-spacing:.18em; font-size:.8rem; font-weight:700; margin-bottom:.5rem; }

/* ---------- Buttons ---------- */
.btn { text-transform:uppercase; font-weight:800; letter-spacing:.06em; border-radius:0; padding:.7rem 1.6rem; border-width:2px; touch-action:manipulation; }
.btn-sm { padding:.5rem 1.1rem; font-size:.8rem; }
.btn-stage { background:#fff; color:var(--navy-deep); border-color:#fff; }
.btn-stage:hover { background:var(--gold); border-color:var(--gold); color:var(--navy-deep); }
.btn-outline-stage { background:transparent; color:#fff; border-color:#fff; }
.btn-outline-stage:hover { background:#fff; color:var(--navy-deep); }
.btn-gold { background:var(--gold); border-color:var(--gold); color:var(--navy-deep); }
.btn-gold:hover { background:#e7c45a; border-color:#e7c45a; color:var(--navy-deep); }
.btn-gold:disabled { opacity:.5; }
.btn-black { background:var(--navy-deep); border-color:var(--navy-deep); color:#fff; }
.btn-black:hover { background:#fff; color:var(--navy-deep); border-color:var(--navy-deep); }
.link-arrow { font-family:'Archivo',sans-serif; font-stretch:125%; text-transform:uppercase; font-weight:800; letter-spacing:.06em; color:#fff; text-decoration:none; border-bottom:2px solid var(--gold); padding-bottom:3px; display:inline-block; }
.link-arrow:hover { color:var(--gold); }

/* ---------- Header ---------- */
.site-header { position:sticky; top:0; z-index:100; background:var(--navy-deep); height:var(--header-h); display:flex; align-items:center; border-bottom:1px solid var(--navy-line); padding-top:env(safe-area-inset-top); }
.site-header > .container-fluid { height:100%; }
.header-side { flex:1 1 0; display:flex; align-items:center; min-width:0; }
.header-right { justify-content:flex-end; }
.logo-link { display:flex; align-items:center; gap:.85rem; text-decoration:none; color:#fff; min-width:0; }
.logo { height:44px; width:auto; display:block; flex-shrink:0; }
.logo-lg { height:80px; }
.brand-text { font-weight:800; text-transform:uppercase; letter-spacing:.1em; font-size:1.05rem; line-height:1; color:#fff; white-space:nowrap; transition:color .2s; }
.logo-link:hover .brand-text { color:var(--gold); }
.main-nav { gap:2rem; }
.main-nav a { color:#fff; text-decoration:none; text-transform:uppercase; font-weight:700; font-size:.8rem; letter-spacing:.08em; }
.main-nav a:hover { color:var(--gold); }

/* ---------- Notice modal ---------- */
.notice-modal { border:0; padding:0; background:transparent; max-width:460px; width:calc(100% - 2rem); margin:auto; overflow:visible; color:var(--ink); max-height:calc(100dvh - 2rem); }
.notice-modal::backdrop { background:rgba(7,13,28,.72); backdrop-filter:blur(3px); animation:nmFade .25s ease-out; }
.notice-modal[open] .nm-box { animation:nmPop .3s cubic-bezier(.2,.9,.3,1.2); }
.notice-modal.is-closing .nm-box { animation:nmOut .2s ease-in forwards; }
.notice-modal.is-closing::backdrop { animation:nmFadeOut .2s ease-in forwards; }

.nm-box { position:relative; background:#fff; border-top:5px solid var(--gold); padding:2.4rem 2rem 1.8rem; text-align:center; box-shadow:0 24px 60px rgba(0,0,0,.45); max-height:calc(100dvh - 2rem); overflow-y:auto; -webkit-overflow-scrolling:touch; }

.nm-x { position:absolute; top:.6rem; right:.6rem; width:44px; height:44px; border:0; background:transparent; color:var(--muted); display:grid; place-items:center; cursor:pointer; transition:color .2s, background .2s; }
.nm-x:hover { color:var(--navy-deep); background:rgba(10,18,36,.07); }
.nm-x:focus-visible { outline:3px solid var(--gold); outline-offset:2px; }

.nm-icon { width:72px; height:72px; margin:0 auto 1.1rem; border-radius:50%; display:grid; place-items:center; font-size:2rem; background:var(--navy-deep); color:var(--gold); box-shadow:0 0 0 8px rgba(212,175,55,.18); }
.nm-title { font-size:1.5rem; color:var(--navy-deep); margin:0 0 .8rem; }
.nm-msg { color:#4b5565; font-size:1rem; line-height:1.65; margin:0 0 1.6rem; }

.nm-actions { display:flex; gap:.7rem; justify-content:center; flex-wrap:wrap; }
.nm-actions .btn { min-width:150px; }
.nm-actions .btn-outline-stage { color:var(--navy-deep); border-color:var(--navy-deep); }
.nm-actions .btn-outline-stage:hover { background:var(--navy-deep); color:#fff; }
.nm-actions .btn-gold:hover,
.nm-actions .btn-gold:focus,
.nm-actions .btn-gold:active {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--navy-deep);
}

.notice-expired .nm-box { border-top-color:var(--error); }
.notice-expired .nm-icon { background:var(--error); color:#fff; box-shadow:0 0 0 8px rgba(198,40,40,.15); }
.notice-cancelled .nm-icon { background:var(--navy-deep); color:var(--gold); }

@keyframes nmFade { from { opacity:0; } to { opacity:1; } }
@keyframes nmFadeOut { to { opacity:0; } }
@keyframes nmPop { from { opacity:0; transform:translateY(18px) scale(.96); } to { opacity:1; transform:none; } }
@keyframes nmOut { to { opacity:0; transform:translateY(10px) scale(.97); } }

@media (prefers-reduced-motion:reduce) {
  .notice-modal::backdrop, .notice-modal[open] .nm-box { animation:none; }
}
@media (max-width:575px) {
  .nm-box { padding:2rem 1.25rem 1.5rem; }
  .nm-actions .btn { width:100%; }
}

.nm-help { margin:-.7rem 0 1.5rem; padding-top:1rem; border-top:1px solid var(--line); font-size:.92rem; color:var(--muted); }
.nm-help a { color:var(--navy-deep); font-weight:700; text-decoration:none; overflow-wrap:anywhere; }
.nm-help a:hover { color:#a8872a; }

.notice-error .nm-box { border-top-color:var(--error); }
.notice-error .nm-icon { background:var(--error); color:#fff; box-shadow:0 0 0 8px rgba(198,40,40,.15); }
.notice-warning .nm-icon { background:var(--gold); color:var(--navy-deep); }

/* ---------- Side tab ---------- */
.book-tab { position:fixed; right:0; top:50%; transform:translateY(-50%); z-index:90; background:var(--navy-deep); color:#fff; writing-mode:vertical-rl; text-orientation:mixed; padding:1.6rem .9rem; padding-right:calc(.9rem + env(safe-area-inset-right)); text-transform:uppercase; font-weight:800; letter-spacing:.12em; text-decoration:none; border:1px solid var(--navy-line); border-right:0; }
.book-tab:hover { background:var(--gold); color:var(--navy-deep); }

/* ---------- Hero ---------- */
.hero { min-height:calc(100vh - var(--header-h)); min-height:calc(100svh - var(--header-h)); display:flex; align-items:flex-end; padding:6rem 0 4.5rem; color:#fff;
  background:linear-gradient(180deg,rgba(10,18,36,.15) 0%,rgba(10,18,36,.25) 50%,rgba(10,18,36,.6) 100%),var(--hero-img, none) center 30% / cover no-repeat,var(--navy); }
.hero-outline { font-size:clamp(2.2rem,7vw,6rem); }
.hero-title { font-size:clamp(2.7rem,9vw,8rem); margin:.2rem 0 1.2rem; }
.hero-sub { font-size:1.15rem; font-weight:600; margin-bottom:.4rem; max-width:900px; }
.hero-date { font-size:1.15rem; color:var(--gold); font-weight:600; margin:0; }

.hero-sub span:not(:last-child)::after { content:"\00a0\00a0|\00a0\00a0"; }

/* ---------- Ticker ---------- */
.ticker { background:var(--navy-deep); border-top:1px solid var(--gold); border-bottom:1px solid var(--gold); overflow:hidden; padding:1.05rem 0; }
.ticker-track { display:flex; width:max-content; animation:marquee 45s linear infinite; }
.ticker:hover .ticker-track { animation-play-state:paused; }
.ticker-group { display:flex; flex-shrink:0; }
.t-item { display:inline-flex; align-items:center; gap:.65rem; white-space:nowrap; color:#fff; text-transform:uppercase; font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:700; font-size:.85rem; letter-spacing:.09em; padding-left:1.6rem; }
.t-item i { color:var(--gold); font-size:1.05rem; }
.t-item::after { content:"◆"; color:var(--gold); font-size:.55rem; margin-left:1.6rem; padding-right:0; }
@keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce) {
  .ticker-track { animation:none; }
  .ticker { overflow-x:auto; -webkit-mask-image:none; mask-image:none; }
}

/* ---------- Sections ---------- */
.dark-section { background:var(--cloud),var(--navy); color:#fff; padding:6rem 0; }
.light-section { background:#fff; padding:6rem 0; }
.section-pad { padding:3.5rem 0 5rem; }
.section-outline { font-size:clamp(2.5rem,8vw,7rem); }
.section-title { font-size:clamp(1.8rem,4.5vw,3.5rem); margin:0 0 1rem; }
.section-title.dark { color:var(--navy-deep); }
.rule { height:6px; background:var(--gold); margin-bottom:1.5rem; }

/* ---------- Poster ---------- */
.poster { background:var(--tan); color:#000; padding:2.2rem; height:100%; display:flex; flex-direction:column; min-height:560px; }
.poster-top { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:800; text-transform:uppercase; font-size:1.7rem; margin-bottom:2.5rem; }
.poster-body { display:flex; flex-direction:column; flex:1; }
.poster-small { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:600; font-size:.9rem; }
.poster-title { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:900; text-transform:uppercase; font-size:clamp(2.6rem,5vw,4rem); line-height:.92; margin:.4rem 0; }
.poster-name { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:800; text-transform:uppercase; font-size:1.3rem; line-height:1.05; }
.poster-date { margin-top:auto; padding-top:2rem; font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:800; font-size:1.1rem; text-transform:uppercase; }

/* ---------- Show blocks ---------- */
.show-block { display:flex; align-items:stretch; background:var(--navy-deep); border:1px solid var(--navy-line); margin-bottom:1rem; transition:transform .2s, border-color .2s; }
.show-block:hover { transform:translateY(-3px); border-color:var(--gold); }
.show-date { background:var(--gold); color:var(--navy-deep); padding:1.2rem 1.4rem; display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:110px; font-family:'Archivo',sans-serif; font-stretch:125%; text-transform:uppercase; }
.show-date .day { font-size:2.6rem; font-weight:900; line-height:1; }
.show-date .dow, .show-date .mon { font-weight:800; font-size:.85rem; letter-spacing:.1em; }
.show-main { flex:1; padding:1.4rem 1.6rem; min-width:0; }
.show-main h3 { font-size:1rem; color:var(--light); margin-bottom:.3rem; }
.show-time { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:900; font-size:3rem; line-height:1; }
.show-note { color:var(--light); font-size:.95rem; margin:.6rem 0 0; }
.show-action { display:flex; align-items:center; padding:1.4rem; }
.status { text-transform:uppercase; font-weight:800; font-size:.75rem; letter-spacing:.1em; margin-top:.6rem; }
.status-ok { color:#7ddc9a; } .status-limited { color:#ffb347; } .status-sold { color:#ff6b6b; }
.counter { color:var(--light); margin-top:.2rem; } .counter b { color:#fff; font-size:1.3rem; }
.show-block.is-soldout { opacity:.85; }


/* ---------- What You Need to Know ---------- */
#info.light-section { background:var(--paper); padding-top:4rem; padding-bottom:5rem; }
#info .info-outline { font-size:clamp(1.8rem,5vw,3.6rem); line-height:1; margin-bottom:.4rem; -webkit-text-stroke-color:var(--navy); }
#info .section-title { margin-top:0; margin-bottom:2rem; }

#info .info-card { background:#fff; border:1px solid var(--line); padding:1.8rem; height:100%; min-height:245px; display:flex; flex-direction:column; transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease; }
#info .info-card:hover { transform:translateY(-5px); border-color:var(--edge); border-bottom:4px solid; border-bottom-color:var(--navy-deep); }
#info .info-card-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:1.4rem; }
#info .info-icon { width:54px; height:54px; background:var(--navy-deep); color:var(--gold); display:grid; place-items:center; font-size:1.5rem; margin:0; flex-shrink:0; }
#info .info-number { font-family:'Archivo',sans-serif; font-size:1.1rem; font-weight:900; color:#aab3c5; letter-spacing:.05em; }

#info .info-card h5 { font-family:'Archivo',sans-serif; font-weight:900; text-transform:uppercase; font-size:1.05rem; letter-spacing:.04em; color:var(--navy-deep); margin-bottom:1rem; }
#info .info-card h5::after { content:""; display:block; width:36px; height:3px; background:var(--gold); margin-top:.65rem; }

#info .info-card p { color:#4b5565; font-size:.95rem; line-height:1.7; margin:0; }
#info .info-card p strong { color:var(--navy-deep); font-weight:800; }

#info .info-stat { display:flex; align-items:baseline; gap:.6rem; margin-bottom:.8rem; }
#info .info-stat strong { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:900; font-size:2.6rem; line-height:1; color:var(--navy-deep); }
#info .info-stat span { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:800; font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); }

#info .price-list { display:flex; flex-direction:column; gap:.65rem; }
#info .price-row { display:flex; justify-content:space-between; align-items:center; padding:.7rem .9rem; background:#faf8f3; border:1px solid var(--line); border-left:3px solid var(--gold); }
#info .price-row span { color:#4b5565; font-weight:600; }
#info .price-row strong { color:var(--navy-deep); font-family:'Archivo',sans-serif; font-size:1.35rem; font-weight:900; }

#info .info-card-contact { background:var(--cloud),linear-gradient(180deg,var(--navy2) 0%,var(--navy) 100%); border-color:var(--navy); border-bottom-color:var(--navy-deep); }
#info .info-card-contact .info-icon { background:var(--gold); color:var(--navy-deep); }
#info .info-card-contact .info-number { color:#8d9bbd; }
#info .info-card-contact h5 { color:#fff; }
#info .info-card-contact p { color:#d3d9e6; }
#info .info-contact-link { display:inline-flex; align-items:center; gap:.5rem; flex-wrap:wrap; color:var(--gold)!important; font-weight:700; text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:.25rem; padding-top:1rem; margin-top:auto; overflow-wrap:anywhere; }
#info .info-contact-link:hover { color:#fff!important; }

@media (max-width:991px) { #info .info-card { min-height:230px; } }
@media (max-width:767px) {
  #info.light-section { padding-top:2rem; padding-bottom:3rem; }
  #info .section-title { margin-bottom:1.5rem; }
  #info .info-card { min-height:auto; padding:1.5rem; }
  #info .info-card-top { margin-bottom:1.1rem; }
  #info .info-stat strong { font-size:2.2rem; }
}

/* ---------- Venue / images ---------- */
.img-ph { background:linear-gradient(135deg,var(--navy2),var(--navy-deep)); position:relative; overflow:hidden; }
.img-ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.img-ph:hover img { transform:scale(1.04); }
.ratio-venue { aspect-ratio:16/9; }
.ratio-gal { aspect-ratio:4/3; }
.img-ph.gal-original { aspect-ratio:auto; }
.img-ph.gal-original img { position:static; display:block; width:100%; height:auto; object-fit:contain; }
.img-ph.gal-original:hover img { transform:none; }

/* ---------- CTA ---------- */
.cta-band { background:var(--tan); padding:4rem 0; color:#000; }
.cta-outline { font-size:clamp(1.6rem,4vw,3rem); line-height:1; }
.cta-title { font-size:clamp(2rem,6vw,5rem); margin:0; }

/* ---------- Page head (booking pages) ---------- */
.page-head { background:var(--cloud),var(--navy-deep); color:#fff; padding:3.5rem 0 3rem; border-bottom:3px solid var(--gold); }
.page-head h1 { font-size:clamp(2.2rem,6vw,4.5rem); margin:.8rem 0 1rem; }
.page-head p { color:var(--light); }
.steps { display:flex; gap:.5rem; flex-wrap:wrap; font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; font-weight:800; }
.steps span { padding:.4rem .9rem; border:1px solid var(--navy-line); color:var(--light); }
.steps .active { background:var(--gold); color:var(--navy-deep); border-color:var(--gold); }
.steps .done { color:#fff; border-color:#fff; }

/* ---------- Panels / forms ---------- */
.panel { background:#fff; padding:1.8rem; border:1px solid var(--line); }
.panel h4 small { font-family:'Inter',sans-serif; font-stretch:100%; text-transform:none; font-weight:400; color:var(--muted); font-size:.85rem; margin-left:.4rem; }
.panel h4 .num { display:inline-flex; width:30px; height:30px; background:var(--navy-deep); color:var(--gold); align-items:center; justify-content:center; margin-right:.6rem; font-size:.9rem; }
.dark-panel { background:var(--navy); color:#fff; border-color:var(--navy-deep); }
.dark-panel hr { border-color:var(--navy-line); opacity:1; }
.sticky-panel { position:sticky; top:100px; }
.form-control { border-radius:0; border:1.5px solid var(--edge); padding:.7rem .85rem; }
.form-control:focus { border-color:var(--navy-deep);}
.form-label { font-weight:600; font-size:.9rem; }
.form-check-input { width:1.2em; height:1.2em; border-radius:0; border:1.5px solid #8a93a6; }
.form-check-input:checked { background-color:var(--navy-deep); border-color:var(--navy-deep); }
.form-check-input:focus { border-color:var(--navy-deep);}
.form-check-label { color:#666; margin-left:8px; position:relative; top:3px; opacity:.85; }
.alert { border-radius:0; }

.field-error { display:none; color:var(--error); font-size:.88rem; font-weight:600; margin-top:.45rem; line-height:1.35; }
.field-error::before { content:"⚠ "; }
.field.has-error .field-error { display:block; }
.field.has-error { animation:shake .35s; }
.field.has-error .form-control { border-color:var(--error); background:#fff6f6;  }
.field.has-error .form-label { color:var(--error); }
.field.has-error .form-check-input { border-color:var(--error); }
.field.has-error .form-check-label { color:var(--error); font-weight:600; }
.field.has-error .perf-option { border-color:var(--error); }
.field.has-error .stepper button, .field.has-error .stepper .qty { border-color:var(--error); }
@keyframes shake { 20%,60% { transform:translateX(-5px); } 40%,80% { transform:translateX(5px); } }
@media (prefers-reduced-motion:reduce) { .field.has-error { animation:none; } }

.perf-option { display:flex; flex-direction:column; align-items:center; gap:.15rem; padding:1.2rem 1rem; border:2px solid var(--line); cursor:pointer; position:relative; transition:.15s; background:#fff; touch-action:manipulation; }
.perf-option:hover { border-color:var(--navy-deep); }
.perf-option input { position:absolute; opacity:0; }
.perf-option:has(input:checked) { border-color:var(--navy-deep); background:var(--navy-deep); color:#fff; }
.perf-option:has(input:checked) .time { color:var(--gold); }
.perf-option:has(input:focus-visible) { outline:3px solid var(--gold); outline-offset:2px; }
.perf-option .date { font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; opacity:.75; }
.perf-option .time { font-family:'Archivo',sans-serif; font-stretch:125%; font-size:2.2rem; font-weight:900; }
.perf-option.disabled { opacity:.5; cursor:not-allowed; }

.qty-row { display:flex; align-items:center; justify-content:space-between; padding:1rem 0; border-bottom:1px solid var(--line); }
.stepper { display:flex; align-items:center; }
.stepper button { width:42px; height:42px; border:2px solid var(--navy-deep); background:#fff; font-size:1.3rem; font-weight:700; line-height:1; touch-action:manipulation; }
.stepper button:hover { background:var(--navy-deep); color:#fff; }
.stepper .qty { width:60px; height:42px; text-align:center; border:2px solid var(--navy-deep); border-left:0; border-right:0; border-radius:0; font-weight:700; -moz-appearance:textfield; }
.stepper .qty::-webkit-outer-spin-button, .stepper .qty::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.total { font-size:2rem; font-weight:900; color:var(--gold); }

/* ---------- Timer ---------- */
.timer { font-size:4.2rem; font-weight:900; color:var(--gold); line-height:1.1; margin:.3rem 0 .8rem; font-variant-numeric:tabular-nums; }
.timer.urgent { color:#ff5a5a; animation:pulse 1s infinite; }
@keyframes pulse { 50% { opacity:.5; } }
.progress-thin { height:6px; background:var(--navy-line); }
.progress-thin #bar { height:100%; width:100%; background:var(--gold); transition:width 1s linear; }
.progress-thin #bar.urgent { background:#ff5a5a; }

.success-icon { width:84px; height:84px; border-radius:50%; background:var(--gold); color:var(--navy-deep); font-size:3rem; display:inline-flex; align-items:center; justify-content:center; margin-bottom:1.2rem; }

/* ---------- Footer ---------- */
.site-footer { background:var(--cloud),#070d1c; color:#fff; padding:2.2rem 0 1rem;}
.footer-main { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1.5rem 2rem; padding-bottom:1.6rem; }

.site-footer a.footer-brand { display:flex; align-items:center; gap:.9rem; text-decoration:none; border-bottom:0; }
.site-footer a.footer-brand:hover { border-bottom:0; }
.footer-brand .logo { height:48px; }
.footer-name { display:block; font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:800; text-transform:uppercase; letter-spacing:.1em; font-size:1.05rem; line-height:1.1; color:#fff; }
.footer-sub { display:block; margin-top:.3rem; color:var(--gold); text-transform:uppercase; letter-spacing:.2em; font-size:.66rem; font-weight:600; }

.footer-col { display:flex; align-items:center; gap:.9rem; min-width:0; }
.footer-col > div { min-width:0; }
.footer-icon { width:38px; height:38px; flex-shrink:0; display:grid; place-items:center; font-size:1rem; color:var(--gold); background:rgba(212,175,55,.1); border:1px solid rgba(212,175,55,.45); }
.site-footer h6 { font-family:'Archivo',sans-serif; font-stretch:125%; text-transform:uppercase; letter-spacing:.12em; font-weight:800; margin:0 0 .35rem; color:var(--gold); font-size:.72rem; }

.site-footer a.footer-link { display:block; color:#e4e8f1; font-size:.92rem; line-height:1.5; text-decoration:none; border-bottom:0; overflow-wrap:anywhere; transition:color .2s; }
.site-footer a.footer-link:hover { color:var(--gold); }

@media (min-width:1200px) {
  .footer-col .footer-link { white-space:nowrap; }
}

.footer-bottom { padding-top:1rem; display:flex; flex-wrap:wrap; gap:.4rem 2rem; justify-content:space-between; font-size:.8rem; color:var(--light); }

/* ---------- Scroll reveal ---------- */
.js .reveal { opacity:0; transform:translateY(24px); transition:opacity .7s, transform .7s; }
.js .reveal.in { opacity:1; transform:none; }

@media (max-width:767px) {
  .book-tab { padding:1.1rem .6rem; padding-right:calc(.6rem + env(safe-area-inset-right)); font-size:.8rem; }
  .show-block { flex-wrap:wrap; }
  .show-date { flex-direction:row; gap:.6rem; width:100%; min-width:0; padding:.7rem 1rem; }
  .show-date .day { font-size:1.6rem; }
  .show-action { width:100%; padding-top:0; }
  .show-action .btn { width:100%; }
  .poster { min-height:auto; }
  .logo { height:38px; }
  .brand-text { font-size:.8rem; letter-spacing:.07em; }
  .logo-link { gap:.6rem; }
  .logo-lg { height:64px; }
  .site-footer { padding:1.6rem 0 1rem; }
  .footer-main { flex-direction:column; align-items:flex-start; gap:1.2rem; padding-bottom:1.2rem; }
  .footer-bottom { justify-content:center; text-align:center; }
  .know-feature { padding:2rem 1.5rem; }
}

/* ---------- Tickets section ---------- */
.tickets-panel h4 { margin-bottom:.15rem; }
.tickets-max { margin:0 0 1.3rem calc(30px + .6rem); font-size:1rem; font-weight:500; color:var(--muted); }

.ticket-cards { display:grid; gap:1rem; }
.ticket-card { position:relative; display:flex; background:#faf8f3; border:2px solid var(--line); transition:border-color .2s, box-shadow .2s, transform .2s; }
.ticket-card:hover { border-color:#aeb6c8; }
.ticket-card.active { border-color:var(--navy-deep); }

.tc-main { flex:1; display:flex; align-items:center; gap:1.1rem; padding:1.3rem 1.4rem 1.3rem 1.6rem; min-width:0; }
.tc-icon { width:56px; height:56px; background:var(--navy-deep); color:var(--gold); display:grid; place-items:center; font-size:1.6rem; flex-shrink:0; }
.ticket-card.active .tc-icon { background:var(--gold); color:var(--navy-deep); }
.tc-info { display:flex; flex-wrap:wrap; align-items:baseline; gap:0 .25rem; min-width:0; }
.tc-name { flex-basis:100%; font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:1.05rem; margin-bottom:.15rem; }
.tc-price { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:900; font-size:1.9rem; line-height:1; color:var(--navy-deep); }
.tc-each { color:var(--muted); font-size:.9rem; }

.tc-stub { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.65rem; padding:1.3rem 1.5rem; min-width:215px; border-left:2px dashed var(--edge); }
.tc-stub::before, .tc-stub::after { content:""; position:absolute; left:-11px; width:20px; height:20px; border-radius:50%; background:#fff; }
.tc-stub::before { top:-12px; }
.tc-stub::after { bottom:-12px; }
.tc-line { font-size:.85rem; color:var(--muted); }
.tc-line b { color:var(--navy-deep); font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:800; font-size:1rem; margin-left:.25rem; }

.ticket-card .stepper button { width:46px; height:46px; transition:background .15s, color .15s, opacity .15s; }
.ticket-card .stepper .qty { height:46px; width:64px; font-size:1.15rem; background:#fff; }
.ticket-card .stepper button:disabled { opacity:.35; cursor:not-allowed; background:#fff; color:var(--navy-deep); }
.ticket-card .stepper button:focus-visible { outline:3px solid var(--gold); outline-offset:2px; }

.field.has-error .ticket-card { border-color:var(--error); }
.field.has-error .tc-stub { border-left-color:var(--error); }

.terms-box .form-check { margin:0; display:flex; align-items:center; padding-left:0; }
.terms-box .form-check-input { float:none; margin:0; flex-shrink:0; }
.terms-box .form-check-label { top:0; opacity:1; color:#7d8697; font-weight:700; cursor:pointer; }

@media (max-width:767px) {
  .ticket-card { flex-direction:column; }
  .tc-main { padding:1.1rem 1.1rem 1.1rem 1.4rem; }
  .tc-icon { width:48px; height:48px; font-size:1.4rem; }
  .tc-stub { flex-direction:row; justify-content:space-between; min-width:0; padding:1rem 1.1rem 1rem 1.4rem; border-left:0; border-top:2px dashed var(--edge); }
  .tc-stub::before, .tc-stub::after { top:-11px; bottom:auto; }
  .tc-stub::before { left:-12px; }
  .tc-stub::after { left:auto; right:-12px; }
  .tc-line { text-align:right; }
  .tc-line b { display:block; margin:0; }
  .field.has-error .tc-stub { border-top-color:var(--error); border-left-color:transparent; }
}

/* CART PAGE ONLY (scoped to .cart-page) */
.cart-page .cp-stack { display:grid; gap:1.5rem; }
.cart-page .cp-panel { background:#fff; border:1px solid var(--line); }
.cart-page .cp-body { padding:1.7rem; }

.cart-page .cp-head { display:flex; align-items:center; gap:.8rem; margin-bottom:1.3rem; padding-bottom:1rem; border-bottom:1px solid var(--line); }
.cart-page .cp-head h4 { margin:0; font-size:1.1rem; }
.cart-page .cp-head-icon { width:40px; height:40px; background:var(--navy-deep); color:var(--gold); display:grid; place-items:center; font-size:1.15rem; flex-shrink:0; }
.cart-page .cp-head-count { margin-left:auto; padding:.3rem .75rem; background:#f7f5ef; border:1px solid #e5dfd2; font-family:'Archivo',sans-serif; font-stretch:125%; text-transform:uppercase; letter-spacing:.1em; font-size:.68rem; font-weight:800; color:var(--muted); white-space:nowrap; }

.cart-page .cp-label { font-family:'Archivo',sans-serif; font-stretch:125%; text-transform:uppercase; letter-spacing:.12em; font-size:.66rem; font-weight:800; color:var(--muted); margin-bottom:.2rem; }

/* ---------- Event panel ---------- */
.cart-page .cp-event { border-top-color:var(--gold); }
.cart-page .cp-event-top { background:var(--cloud),linear-gradient(135deg,var(--navy-deep) 0%,var(--navy2) 100%); color:#fff; padding:1.8rem 1.7rem 1.6rem; position:relative; overflow:hidden; border-bottom:3px solid var(--gold); }
.cart-page .cp-event-top::after { content:"❄"; position:absolute; right:1.2rem; top:-.6rem; font-size:6.5rem; color:rgba(212,175,55,.1); line-height:1; pointer-events:none; }
.cart-page .cp-eyebrow { color:var(--gold); font-family:'Archivo',sans-serif; font-stretch:125%; text-transform:uppercase; letter-spacing:.18em; font-size:.7rem; font-weight:800; margin-bottom:.6rem; }
.cart-page .cp-event-title { font-size:clamp(1.5rem,3vw,2.1rem); font-weight:900; line-height:1.02; margin:0 0 .6rem; color:var(--gold); }
.cart-page .cp-credits { margin:0; color:var(--light); font-size:.88rem; line-height:1.5; }

.cart-page .cp-tiles { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
.cart-page .cp-tile { display:flex; gap:.85rem; align-items:center; background:#faf8f3; border:1px solid #e5dfd2; border-left:3px solid var(--gold); padding:.95rem 1rem; min-width:0; }
.cart-page .cp-tile-wide { grid-column:1 / -1; }
.cart-page .cp-tile-icon { width:40px; height:40px; background:var(--navy-deep); color:var(--gold); display:grid; place-items:center; flex-shrink:0; font-size:1.05rem; }
.cart-page .cp-value { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:700; font-size:1rem; line-height:1.2; color:var(--navy-deep); }
.cart-page .cp-value-sm { font-family:'Archivo',sans-serif; font-stretch:100%; font-weight:600; font-size:.92rem; line-height:1.4; }
.cart-page .cp-note { display:flex; gap:.6rem; align-items:flex-start; margin-top:1rem; color:#555; font-size:0.9rem; line-height:1.55; }
.cart-page .cp-note i { color:#a8872a; margin-top:.1rem; }

/* ---------- Ticket lines ---------- */
.cart-page .cp-lines { display:flex; flex-direction:column; gap:.75rem; }
.cart-page .cp-line { display:flex; align-items:center; gap:1rem; padding:.9rem 1.1rem; background:#faf8f3; border:1px solid var(--line); border-left:3px solid var(--navy-deep); transition:border-color .2s, box-shadow .2s; }
.cart-page .cp-line:hover { border-color:var(--edge); border-left-color:var(--gold); }
.cart-page .cp-line-icon { width:46px; height:46px; background:var(--navy-deep); color:var(--gold); display:grid; place-items:center; font-size:1.3rem; flex-shrink:0; }
.cart-page .cp-line-info { flex:1; min-width:0; }
.cart-page .cp-line-name { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:.98rem; }
.cart-page .cp-line-sub { color:var(--muted); font-size:.86rem; margin-top:.1rem; }
.cart-page .cp-line-qty { padding:.3rem .7rem; background:var(--navy-deep); color:var(--gold); font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:800; font-size:.85rem; white-space:nowrap; }
.cart-page .cp-line-amount { min-width:84px; padding-left:1rem; border-left:2px dashed var(--edge); text-align:right; font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:900; font-size:1.2rem; color:var(--navy-deep); white-space:nowrap; }

.cart-page .cp-total { display:flex; justify-content:space-between; align-items:center; background:var(--cloud),linear-gradient(135deg,var(--navy-deep) 0%,var(--navy2) 100%); color:#fff; padding:1.15rem 1.7rem;}
.cart-page .cp-total-label { font-family:'Archivo',sans-serif; font-stretch:125%; text-transform:uppercase; letter-spacing:.12em; font-weight:800; font-size:.82rem; }
.cart-page .cp-total-amount { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:900; font-size:1.9rem; color:var(--gold); line-height:1; }

/* ---------- Details ---------- */
.cart-page .cp-contact { display:flex; flex-direction:column; gap:.75rem; }
.cart-page .cp-contact-row { display:flex; align-items:center; gap:1rem; padding:.9rem 1.1rem; min-width:0; background:#faf8f3; border:1px solid var(--line); border-left:3px solid var(--navy-deep); transition:border-color .2s; }
.cart-page .cp-contact-row:hover { border-color:var(--edge); border-left-color:var(--gold); }

.cart-page .cp-contact-icon { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; flex-shrink:0; font-size:1.1rem; color:var(--gold); background:var(--navy-deep); }

.cart-page .cp-contact-text { min-width:0; flex:1; }
.cart-page .cp-contact-text .cp-label { margin-bottom:.15rem; color:var(--muted); }
.cart-page .cp-contact-value { font-weight:700; font-size:1rem; line-height:1.4; color:var(--navy-deep); overflow-wrap:anywhere; }

.cart-page .cp-details-note { display:flex; gap:.6rem; align-items:flex-start; margin-top:1rem; color:#555; font-size:.9rem; line-height:1.5; }
.cart-page .cp-details-note i { color:#a8872a; font-size:1rem; margin-top:.05rem; }
.cart-page .cp-details-note b { color:var(--navy-deep); font-weight:700; overflow-wrap:anywhere; }

@media (max-width:575px) {
  .cart-page .cp-contact-row { padding:.85rem; gap:.8rem; }
  .cart-page .cp-contact-icon { width:40px; height:40px; font-size:1rem; }
}

/* ---------- Hold / timer panel ---------- */
.cart-page .cart-hold { padding:2rem 1.6rem 1.6rem; background:var(--cloud),linear-gradient(180deg,var(--navy2) 0%,var(--navy-deep) 100%); border-top:4px solid var(--gold); }
.cart-page .hold-icon { width:54px; height:54px; margin:0 auto .8rem; border:2px solid var(--gold); color:var(--gold); border-radius:50%; display:grid; place-items:center; font-size:1.4rem; }
.cart-page .hold-label { font-family:'Archivo',sans-serif; font-stretch:125%; text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; font-weight:800; color:var(--light); }
.cart-page .cart-hold .timer { font-size:3.8rem; letter-spacing:.03em; margin:.4rem 0 1rem; }
.cart-page .hold-warn { font-size:.84rem; color:var(--light); line-height:1.55; margin:1rem 0 1.3rem; }

.cart-page .hold-summary { margin-bottom:1.2rem; padding:.4rem 0 0; border-top:1px solid var(--navy-line); text-align:left; }
.cart-page .hold-row { display:flex; justify-content:space-between; align-items:baseline; padding:.55rem 0; font-size:.9rem; color:var(--light); }
.cart-page .hold-row em { font-style:normal; font-weight:700; color:#fff; }
.cart-page .hold-sum { display:flex; justify-content:space-between; align-items:baseline; padding:.9rem 0 0; margin-top:.4rem; border-top:1px dashed #3a4d78; }
.cart-page .hold-sum span { font-family:'Archivo',sans-serif; font-stretch:125%; text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; font-weight:800; color:var(--light); }
.cart-page .hold-sum b { font-family:'Archivo',sans-serif; font-stretch:125%; font-size:1.7rem; font-weight:900; color:var(--gold); }

.cart-page .cart-hold .btn-gold { padding:.95rem 1rem; }
.cart-page .hold-cancel { font-size:.85rem; text-transform:none; letter-spacing:0; font-weight:600; text-decoration:none; }
.cart-page .hold-cancel:hover { color:#fff; }
.cart-page .hold-stripe { font-size:.78rem; color:var(--light); line-height:1.5; margin:1rem 0 0; padding-top:1rem; border-top:1px solid var(--navy-line); }
.cart-page .hold-stripe i { color:#7ddc9a; margin-right:.25rem; }

/* ---------- Cart page mobile ---------- */
@media (max-width:575px) {
  .cart-page .cp-body { padding:1.25rem; }
  .cart-page .cp-event-top { padding:1.4rem 1.25rem; }
  .cart-page .cp-tiles { grid-template-columns:1fr; }
  .cart-page .cp-head-count { display:none; }
  .cart-page .cp-line { flex-wrap:wrap; padding:.85rem; gap:.75rem; }
  .cart-page .cp-line-icon { width:40px; height:40px; font-size:1.1rem; }
  .cart-page .cp-line-amount { min-width:0; font-size:1.1rem; }
  .cart-page .cp-total { padding:1rem 1.25rem; }
  .cart-page .cp-total-amount { font-size:1.6rem; }
  .cart-page .cart-hold .timer { font-size:3.3rem; }
}

/* SUCCESS PAGE */
.success-page .sp-narrow { max-width:820px; margin:0 auto; }

.success-page .sp-banner { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.6rem; margin-bottom:1.5rem; padding:1.8rem 2rem; background:var(--cloud),linear-gradient(135deg,var(--navy-deep) 0%,var(--navy2) 100%); border-top:4px solid var(--gold); color:#fff; }
.success-page .sp-banner .success-icon { width:72px; height:72px; font-size:2.4rem; margin:0; box-shadow:0 0 0 8px rgba(212,175,55,.18); }
.success-page .sp-title { font-size:clamp(1.5rem,3vw,2.2rem); color:#fff; margin:0 0 .5rem; }
.success-page .sp-banner-text p { margin:0; color:var(--light); line-height:1.6; max-width:520px; }
.success-page .sp-banner-text b { color:#fff; overflow-wrap:anywhere; }

.success-page .sp-banner-side { display:flex; flex-direction:column; align-items:stretch; gap:.9rem; min-width:210px; }
.success-page .sp-ref { text-align:center; padding:.6rem .9rem; border:1px dashed rgba(212,175,55,.55); background:rgba(212,175,55,.08); }
.success-page .sp-ref-label { display:block; font-family:'Archivo',sans-serif; font-stretch:125%; font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.14em; color:var(--light); margin-bottom:.15rem; }
.success-page .sp-ref b { font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:900; font-size:1.15rem; letter-spacing:.05em; color:var(--gold); overflow-wrap:anywhere; }

.success-page .sp-steps { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1rem; }
.success-page .sp-steps li { display:flex; align-items:flex-start; gap:.9rem; }
.success-page .sp-step-num { width:32px; height:32px; flex-shrink:0; border-radius:50%; display:grid; place-items:center; background:var(--navy-deep); color:var(--gold); font-family:'Archivo',sans-serif; font-weight:900; font-size:.85rem; }
.success-page .sp-steps b { display:block; color:var(--navy-deep); font-size:.95rem; }
.success-page .sp-steps span:not(.sp-step-num) { display:block; color:var(--muted); font-size:.88rem; line-height:1.5; margin-top:.1rem; overflow-wrap:anywhere; }

.success-page .sp-help { margin-top:1.3rem; padding-top:1rem; border-top:1px solid var(--line); color:var(--muted); font-size:.88rem; }
.success-page .sp-help i { color:#a8872a; margin-right:.3rem; }
.success-page .sp-help a { color:var(--navy-deep); font-weight:700; text-decoration:none;}

@media (max-width:767px) {
  .success-page .sp-banner { grid-template-columns:1fr; justify-items:center; text-align:center; padding:1.5rem 1.25rem; gap:1.1rem; }
  .success-page .sp-banner-side { width:100%; }
}


/* MOBILE ENHANCEMENTS */
@media (hover:none) {
  .show-block:hover { transform:none; border-color:var(--navy-line); }
  #info .info-card:hover { transform:none; border-color:var(--line); border-bottom-width:1px; }
  .img-ph:hover img { transform:none; }
  .btn-stage:hover { background:#fff; border-color:#fff; }
  .btn-gold:hover { background:var(--gold); border-color:var(--gold); }
  .btn-black:hover { background:var(--navy-deep); color:#fff; }
  .book-tab:hover { background:var(--navy-deep); color:#fff; }
  .stepper button:hover { background:#fff; color:var(--navy-deep); }
  .ticker:hover .ticker-track { animation-play-state:running; }
  .btn:active { transform:scale(.98); }
  .perf-option:active { transform:scale(.98); }
  .stepper button:active { background:var(--navy-deep); color:#fff; }
}

@media (max-width:991px) {
  .sticky-panel { position:static; top:auto; }
  .dark-section, .light-section { padding:4.5rem 0; }
  .section-pad { padding:2.5rem 0 3.5rem; }
  .page-head { padding:2.5rem 0 2rem; }
}

@media (max-width:767px) {
  :root { --header-h:64px; }
  html { scroll-padding-top:64px; }

  .form-control, .form-select, input, select, textarea { font-size:16px !important; }
  .form-control { min-height:48px; }
  textarea.form-control { min-height:110px; }
  .form-check-input { width:1.4em; height:1.4em; }
  .form-check-label { top:0; font-size:.95rem; }

  .site-header { padding-left:env(safe-area-inset-left); padding-right:env(safe-area-inset-right); }
  .brand-text { max-width:52vw; overflow:hidden; text-overflow:ellipsis; }
  .header-right .btn { padding:.5rem .9rem; font-size:.75rem; }

  .hero { padding:3rem 0 2.5rem; }
  .hero-outline, .section-outline, .cta-outline { -webkit-text-stroke-width:1.3px; }
  .hero-sub, .hero-date { font-size:1rem; }

  .ticker { padding:.8rem 0; }
  .t-item { font-size:.72rem; padding-left:1.1rem; letter-spacing:.07em; }
  .t-item::after { margin-left:1.1rem; }

  .dark-section, .light-section { padding:3rem 0; }
  .section-pad { padding:2rem 0 3rem; }
  .rule { height:5px; margin-bottom:1.1rem; }
  .cta-band { padding:2.5rem 0; }

  .poster { padding:1.5rem; }
  .poster-top { font-size:1.3rem; margin-bottom:1.5rem; }
  .poster-date { padding-top:1.2rem; font-size:1rem; }

  .show-main { padding:1rem 1.1rem; }
  .show-time { font-size:2.3rem; }
  .show-note { font-size:.9rem; }
  .show-action { padding:0 1.1rem 1.1rem; }
  .show-action .btn { min-height:48px; }

  .gallery-row { --bs-gutter-x:.5rem; --bs-gutter-y:.5rem; }

  .page-head h1 { margin:.6rem 0 .8rem; }
  .steps { gap:.35rem; font-size:.62rem; }
  .steps span { padding:.35rem .6rem; }

  .panel { padding:1.25rem; }
  .tickets-max { margin-left:0; font-size:.92rem; }

  .perf-option { padding:1rem .75rem; min-height:84px; }
  .perf-option .time { font-size:1.8rem; }

  .stepper button { width:46px; height:46px; }
  .stepper .qty { height:46px; width:56px; font-size:1.1rem; }

  .tc-price { font-size:1.6rem; }
  .tc-name { font-size:.95rem; }

  .total { font-size:1.6rem; }
  .timer { font-size:3.2rem; }

  #info .info-icon { width:46px; height:46px; font-size:1.3rem; }
  #info .price-row { padding:.65rem .8rem; }
  #info .price-row strong { font-size:1.2rem; }

  .cart-page .cart-hold { padding:1.6rem 1.25rem 1.3rem; }
  .cart-page .cp-event-top::after { font-size:4.5rem; }
  .cart-page .cp-value { font-size:.95rem; }
  .success-page .sp-banner .success-icon { width:64px; height:64px; font-size:2rem; }
  .success-page .sp-banner-text p { max-width:none; }

  .site-footer a.footer-link { padding:.2rem 0; }
}

@media (max-width:400px) {
  .container, .container-fluid { padding-left:1rem; padding-right:1rem; }
  .logo { height:34px; }
  .brand-text { font-size:.72rem; letter-spacing:.05em; }
  .hero-title { font-size:clamp(2.2rem,12vw,3rem); }
  .section-title { font-size:1.6rem; }
  .show-time { font-size:2rem; }
  .timer { font-size:2.8rem; }
  .cart-page .cart-hold .timer { font-size:2.9rem; }
  .tc-main { gap:.8rem; padding:1rem; }
  .tc-stub { padding:.9rem 1rem; }
  .steps span { padding:.3rem .5rem; letter-spacing:.06em; }
  .nm-title { font-size:1.25rem; }
  .nm-icon { width:60px; height:60px; font-size:1.6rem; }
  .book-tab { padding:.9rem .5rem; padding-right:calc(.5rem + env(safe-area-inset-right)); font-size:.75rem; }
}

@media (max-height:480px) and (orientation:landscape) {
  .hero { min-height:auto; padding:2.5rem 0; }
  .book-tab { padding-top:.8rem; padding-bottom:.8rem; }
  .notice-modal, .nm-box { max-height:calc(100dvh - 1rem); }
}

@supports (padding:max(0px)) {
  .site-footer { padding-left:env(safe-area-inset-left); padding-right:env(safe-area-inset-right); }
}

@media (max-width:767px) {
  .hero-actions { gap:.6rem !important; }
  .hero-actions .btn {
    padding:.65rem 1.1rem;
    font-size:.8rem;
    letter-spacing:.04em;
    white-space:nowrap;
  }

  .poster { overflow:hidden; }
  .poster-title { font-size:min(9vw, 5rem); }
}

@media (max-width:767px) {
  .success-page .sp-name {
    display:block;
    margin-top:.6rem;
    line-height:1.1;
  }
}

@media (max-width:767px) {
  .hero {
    display:block;
    min-height:auto;
    padding:calc(56.3vw - 7rem) 0 2.5rem;
    background:
      linear-gradient(180deg,
        rgba(10,18,36,0) 0,
        rgba(10,18,36,0) calc(56.3vw - 9rem),
        rgba(10,18,36,.9) 56.3vw,
        var(--navy) calc(56.3vw + 3rem)),
      var(--hero-img, none) top center / 100% auto no-repeat,
      var(--navy);
    border-bottom:3px solid var(--gold);
  }
  .hero .container-fluid { text-shadow:0 2px 14px rgba(0,0,0,.6); }
}

@media (max-width:767px) {
  .hero-title { font-size:clamp(2rem,9.5vw,3rem); }
}

@media (max-width:400px) {
  .hero-title { font-size:clamp(1.7rem,9vw,2.4rem); }
}