:root{--brand:#173b57;--accent:#f4b740;--paper:#f7f4ee;--ink:#17212b;--white:#fff;--muted:#68747c;--line:rgba(23,33,43,.16);--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}a{color:inherit}.skip-link{position:absolute;left:-9999px;top:1rem;background:#fff;padding:.75rem 1rem;z-index:100}.skip-link:focus{left:1rem}.site-header{display:flex;align-items:center;justify-content:space-between;max-width:1240px;margin:auto;padding:24px 32px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none}.brand-mark{width:45px;height:45px;display:grid;place-items:center;background:var(--brand);color:#fff;border-radius:50%;font-weight:900;letter-spacing:-.08em}.brand strong{display:block;font-size:1rem}.brand small{display:block;color:var(--muted);font-size:.72rem}.site-header nav{display:flex;gap:28px;font-size:.88rem;font-weight:700}.site-header nav a{text-decoration:none}.site-header nav a:hover{text-decoration:underline;text-underline-offset:5px}.status-banner{background:#fff0bb;border-block:1px solid #e4c45a;padding:12px 24px;text-align:center;font-weight:700}.hero{max-width:1240px;margin:10px auto 40px;min-height:590px;background:var(--brand);color:#fff;border-radius:30px;display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden}.hero-copy{padding:90px 76px 70px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:900;color:var(--brand);margin:0 0 15px}.hero .eyebrow,.light{color:var(--accent)}h1,h2,h3,p{margin-top:0}.hero h1,.product-hero h1,.checkout-shell h1,.narrow-page h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.3rem,6.3vw,6.7rem);line-height:.9;letter-spacing:-.055em;margin:0 0 30px}.hero h1 em{color:var(--accent);font-weight:400}.hero-intro{max-width:570px;font-size:1.15rem;color:#dfe7eb;margin-bottom:35px}.button,.input-button button{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:0;background:var(--accent);color:#17212b;text-decoration:none;padding:15px 21px;border-radius:999px;font-weight:900;cursor:pointer}.button:hover,.input-button button:hover{filter:brightness(.95);transform:translateY(-1px)}.hero-poster{position:relative;margin:55px 55px 55px 0;background:var(--accent);color:var(--brand);border-radius:22px;overflow:hidden;transform:rotate(2deg);box-shadow:0 30px 60px rgba(0,0,0,.2)}.poster-route{position:absolute;top:30px;left:30px;font-weight:900;letter-spacing:.1em}.poster-route b{padding:0 10px}.poster-number{position:absolute;right:-18px;bottom:-70px;font-size:20rem;line-height:1;font-weight:950;letter-spacing:-.12em;opacity:.16}.poster-note{position:absolute;left:35px;bottom:40px;font-family:Georgia,serif;font-size:3.4rem;line-height:.9;letter-spacing:-.05em}.poster-dot{position:absolute;border-radius:50%;background:var(--brand)}.dot-one{width:90px;height:90px;right:45px;top:75px}.dot-two{width:25px;height:25px;right:125px;top:190px}.trust-strip{max-width:1100px;margin:0 auto 100px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:5px 0 28px;font-size:.86rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.trust-strip b{color:var(--brand);margin-right:10px}.trips-section{max-width:1240px;margin:0 auto 110px;padding:0 32px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:38px}.section-heading h2,.how-it-works h2,.product-layout h2{font-family:Georgia,serif;font-size:clamp(2.4rem,4vw,4.4rem);line-height:1;letter-spacing:-.045em;margin:0}.section-heading>p{max-width:280px;color:var(--muted)}.trip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.trip-card{background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}.trip-art{height:250px;background:var(--brand);color:#fff;padding:22px;display:flex;justify-content:space-between;align-items:start;position:relative;overflow:hidden}.trip-art:before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:var(--accent);right:-50px;bottom:-70px}.trip-art span{font-weight:900}.trip-art strong{font-family:Georgia,serif;font-size:2.4rem;z-index:1;align-self:end;max-width:70%;text-align:right;line-height:.9}.trip-body{padding:25px}.trip-date{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--brand)}.trip-body h3{font-family:Georgia,serif;font-size:1.65rem;line-height:1.05;margin-bottom:12px}.trip-body h3 a{text-decoration:none}.trip-body>p{color:var(--muted)}.trip-meta{border-top:1px solid var(--line);padding-top:17px;display:flex;justify-content:space-between;align-items:center;font-size:.88rem}.trip-meta a{font-weight:900}.empty-state{grid-column:1/-1;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:60px}.how-it-works{background:var(--brand);color:#fff;padding:100px max(32px,calc((100vw - 1176px)/2));display:grid;grid-template-columns:1fr 1fr;gap:80px}.how-it-works ol{list-style:none;margin:0;padding:0}.how-it-works li{display:flex;gap:18px;border-top:1px solid rgba(255,255,255,.25);padding:22px 0}.how-it-works li>span{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--ink);font-weight:900}.how-it-works li strong{font-size:1.08rem}.how-it-works li p{color:#c9d6dc;margin:4px 0}.site-footer{max-width:1240px;margin:auto;padding:65px 32px 35px;display:grid;grid-template-columns:1fr auto;gap:40px}.footer-brand{margin-bottom:20px}.footer-links{display:flex;gap:22px;font-size:.85rem}.legal{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px;color:var(--muted);font-size:.78rem}.product-hero{max-width:1240px;margin:15px auto 0;padding:55px 60px;background:var(--brand);color:#fff;border-radius:30px 30px 0 0}.back-link{display:inline-block;margin-bottom:45px;font-weight:800;font-size:.85rem}.product-title{display:flex;justify-content:space-between;gap:40px;align-items:end}.product-title>div:first-child{max-width:820px}.product-title h1{font-size:clamp(4rem,7vw,7.5rem);margin-bottom:20px}.product-title p{font-size:1.1rem;color:#dbe4e9}.price-stamp{background:var(--accent);color:var(--ink);border-radius:50%;min-width:185px;height:185px;display:flex;flex-direction:column;justify-content:center;text-align:center;transform:rotate(4deg)}.price-stamp small,.price-stamp span{font-size:.7rem;text-transform:uppercase;font-weight:800}.price-stamp strong{font-family:Georgia,serif;font-size:2.4rem}.journey-line{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:55px;border-top:1px solid rgba(255,255,255,.25);padding-top:25px}.journey-line div{display:flex;flex-direction:column}.journey-line small{text-transform:uppercase;font-size:.65rem;letter-spacing:.12em;color:#bfcdd4}.journey-line strong{font-size:1.15rem}.journey-line>span{color:var(--accent);font-size:2rem}.product-layout{max-width:1240px;margin:0 auto 100px;display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;background:#fff;border-radius:0 0 30px 30px;padding:80px 60px}.product-copy h2{font-size:3.5rem;margin-bottom:30px}.prose{font-size:1.05rem;line-height:1.8;color:#3a464e}.note{background:#f1ede5;border-left:5px solid var(--accent);padding:20px 22px;margin-top:30px}.note p{margin:6px 0 0}.stop-finder{background:var(--paper);border-radius:20px;padding:35px}.stop-finder h2{font-size:2.4rem;margin-bottom:25px}.stop-finder label,.checkout-form label,.lookup-form label{font-weight:800;font-size:.82rem;display:flex;flex-direction:column;gap:8px}.input-button{display:flex;gap:8px}.input-button input,.checkout-form input,.checkout-form select,.lookup-form input{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:14px;font:inherit}.input-button input:focus,.checkout-form input:focus,.checkout-form select:focus,.lookup-form input:focus{outline:3px solid color-mix(in srgb,var(--accent) 50%,transparent);border-color:var(--brand)}.result-label{margin:25px 0 10px;font-size:.82rem;color:var(--muted)}.stop-list{border-top:1px solid var(--line)}.stop-row{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:18px 0}.stop-row div{display:flex;flex-direction:column}.stop-row span,.stop-row small{color:var(--muted);font-size:.78rem}.stop-row a{background:var(--brand);color:#fff;text-decoration:none;padding:9px 13px;border-radius:999px;font-size:.78rem;font-weight:900}.field-error{color:#a33030;font-weight:700}.checkout-shell,.narrow-page,.ticket-page{max-width:1140px;margin:35px auto 90px;padding:0 32px}.checkout-shell h1,.narrow-page h1{font-size:4.8rem}.checkout-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:70px}.checkout-form{margin-top:38px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.check{display:flex!important;flex-direction:row!important;align-items:flex-start;margin:25px 0}.check input{width:auto;margin-top:5px}.wide{width:100%}.secure-note{text-align:center;color:var(--muted);font-size:.78rem;margin-top:12px}.booking-summary{background:var(--brand);color:#fff;padding:35px;border-radius:20px;align-self:start}.booking-summary .eyebrow{color:var(--accent)}.booking-summary h2{font-family:Georgia,serif;font-size:2.5rem;line-height:1}.booking-summary dl div,.lookup-result dl div,.ticket dl div{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.2);padding:14px 0}.booking-summary dt{color:#cbd7dd}.booking-summary dd{margin:0;font-weight:800;text-align:right}.form-errors{background:#ffe3df;color:#7f231a;padding:16px;border-radius:10px;margin:18px 0}.narrow-page{max-width:760px;padding-top:60px}.narrow-page>p{font-size:1.08rem}.lookup-form{display:grid;gap:18px;margin:35px 0}.lookup-result{background:#fff;border:1px solid var(--line);padding:30px;border-radius:18px}.lookup-result dl div{border-color:var(--line)}.lookup-result dd{margin:0}.status-pill{display:inline-block;background:#d9f2df;color:#17622d;border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:900;text-transform:uppercase}.ticket{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden}.ticket-head{display:flex;align-items:center;gap:15px;padding:22px 28px;border-bottom:2px dashed var(--line)}.ticket-head div{display:flex;flex-direction:column}.ticket-head .status-pill{margin-left:auto}.ticket-main{display:grid;grid-template-columns:1fr auto;gap:40px;padding:45px}.ticket-main h1{font-family:Georgia,serif;font-size:4rem;line-height:.95}.ticket dl div{border-color:var(--line)}.ticket dd{margin:0;font-weight:800;text-align:right}.qr{text-align:center}.qr img{width:190px;display:block}.qr strong{letter-spacing:.15em}.ticket-foot{background:var(--brand);color:#fff;margin:0;padding:15px 28px;font-size:.8rem}.print-button{margin-top:20px}.policy-page .prose{white-space:normal}@media(max-width:900px){.site-header nav{display:none}.hero{margin:0 16px 40px;grid-template-columns:1fr;min-height:auto}.hero-copy{padding:65px 35px}.hero-poster{height:380px;margin:0 30px 40px}.trip-grid{grid-template-columns:1fr 1fr}.how-it-works,.product-layout,.checkout-grid{grid-template-columns:1fr}.product-title{align-items:start}.price-stamp{min-width:150px;height:150px}.product-layout{gap:45px}.site-footer{grid-template-columns:1fr}.legal{grid-column:1}.checkout-grid{gap:35px}}@media(max-width:620px){.site-header{padding:18px}.brand small{display:none}.hero h1{font-size:3.7rem}.hero-copy{padding:55px 25px}.hero-poster{height:320px}.poster-note{font-size:2.7rem}.trust-strip{margin:0 20px 70px;display:grid;gap:12px}.trips-section{padding:0 18px}.section-heading{display:block}.trip-grid{grid-template-columns:1fr}.how-it-works{padding:70px 24px;gap:40px}.footer-links{display:grid}.product-hero{border-radius:0;padding:38px 24px}.product-title{display:block}.price-stamp{margin:30px 0}.journey-line{align-items:flex-start}.journey-line>span{display:none}.product-layout{padding:45px 22px;border-radius:0}.product-copy h2{font-size:2.7rem}.stop-finder{padding:24px 18px}.input-button{display:grid}.field-row{grid-template-columns:1fr}.checkout-shell,.narrow-page,.ticket-page{padding-inline:18px}.checkout-shell h1,.narrow-page h1{font-size:3.6rem}.ticket-main{grid-template-columns:1fr;padding:28px}.qr img{width:150px}.ticket-head .status-pill{display:none}}@media print{.site-header,.site-footer,.status-banner,.print-button{display:none}.ticket-page{margin:0;padding:0}.ticket{border:0}}
/* Get2TheGig: tenant-scoped 1980s neon visual system. */
body.theme-neon{--muted:#c3add8;--line:rgba(66,243,255,.35);--radius:8px;background-color:#090014;background-image:radial-gradient(circle at 12% 2%,rgba(255,43,184,.24),transparent 28rem),radial-gradient(circle at 88% 16%,rgba(66,243,255,.18),transparent 27rem),linear-gradient(rgba(127,50,181,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(127,50,181,.13) 1px,transparent 1px);background-size:auto,auto,30px 30px,30px 30px;color:var(--ink);font-family:"Arial Narrow","Arial Black",Impact,system-ui,sans-serif;letter-spacing:.015em}body.theme-neon .site-header{border-bottom:1px solid rgba(66,243,255,.25)}body.theme-neon .brand-mark{border-radius:5px;background:linear-gradient(135deg,#ff2bb8,#713cff 52%,#42f3ff);box-shadow:0 0 12px #ff2bb8,0 0 28px #713cff;color:#fff;font-family:Impact,"Arial Black",sans-serif;letter-spacing:-.08em;text-shadow:2px 2px #17002e}body.theme-neon .brand strong,body.theme-neon .site-header nav{letter-spacing:.08em;text-transform:uppercase}body.theme-neon .brand small{color:#42f3ff}body.theme-neon .site-header nav a{color:#f7edff;text-shadow:0 0 12px rgba(247,237,255,.5)}body.theme-neon .site-header nav a:hover{color:#42f3ff;text-decoration:none}body.theme-neon .hero{position:relative;background:linear-gradient(135deg,#17002e 0%,#240049 52%,#10001f 100%);border:1px solid rgba(66,243,255,.52);border-radius:10px;box-shadow:0 0 14px rgba(66,243,255,.38),0 0 65px rgba(255,43,184,.24);isolation:isolate}body.theme-neon .hero:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.32;background:linear-gradient(transparent 0 72%,rgba(66,243,255,.8) 73%,transparent 74%),repeating-linear-gradient(90deg,transparent 0 49px,rgba(66,243,255,.2) 50px);background-size:100% 33px,50px 100%;transform:perspective(340px) rotateX(59deg) scale(1.7);transform-origin:bottom}body.theme-neon .hero h1,body.theme-neon .product-hero h1,body.theme-neon .checkout-shell h1,body.theme-neon .narrow-page h1,body.theme-neon .section-heading h2,body.theme-neon .how-it-works h2,body.theme-neon .product-layout h2,body.theme-neon .trip-body h3,body.theme-neon .trip-art strong,body.theme-neon .booking-summary h2,body.theme-neon .ticket-main h1{font-family:Impact,"Arial Black",system-ui,sans-serif;font-style:italic;letter-spacing:.015em;text-transform:uppercase;text-shadow:3px 3px 0 #713cff,0 0 15px rgba(255,43,184,.68)}body.theme-neon .hero h1 em{color:#42f3ff;text-shadow:3px 3px 0 #ff2bb8,0 0 16px #42f3ff}body.theme-neon .hero-intro,body.theme-neon .product-title p,body.theme-neon .how-it-works li p{color:#e9dcf4}body.theme-neon .button,body.theme-neon .input-button button{border-radius:5px;background:#ff2bb8;color:#fff;box-shadow:0 0 15px rgba(255,43,184,.85),inset 0 0 0 1px rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.09em}body.theme-neon .button:hover,body.theme-neon .input-button button:hover{background:#42f3ff;color:#17002e;box-shadow:0 0 21px #42f3ff}body.theme-neon .hero-poster{border-radius:4px;background:linear-gradient(145deg,#42f3ff,#c6ff00);color:#17002e;box-shadow:8px 8px 0 #ff2bb8,0 0 28px rgba(66,243,255,.85);transform:rotate(3deg)}body.theme-neon .poster-note{font-family:Impact,"Arial Black",sans-serif;font-style:italic;text-transform:uppercase;letter-spacing:.02em}body.theme-neon .poster-dot{background:#ff2bb8;box-shadow:0 0 20px #ff2bb8}body.theme-neon .trust-strip{border-color:rgba(66,243,255,.5);color:#f7edff}body.theme-neon .trust-strip b,body.theme-neon .eyebrow{color:#42f3ff;text-shadow:0 0 10px rgba(66,243,255,.85)}body.theme-neon .trip-card,body.theme-neon .empty-state,body.theme-neon .product-layout,body.theme-neon .lookup-result,body.theme-neon .ticket{background:rgba(23,0,46,.84);border-color:rgba(66,243,255,.48);box-shadow:0 0 18px rgba(113,60,255,.16)}body.theme-neon .trip-art{background:linear-gradient(135deg,#3b056b,#17002e)}body.theme-neon .trip-art:before{background:#ff2bb8;box-shadow:0 0 30px #ff2bb8}body.theme-neon .trip-date{color:#42f3ff}body.theme-neon .trip-body>p,body.theme-neon .section-heading>p,body.theme-neon .prose,body.theme-neon .legal,body.theme-neon .result-label,body.theme-neon .secure-note,body.theme-neon .stop-row span,body.theme-neon .stop-row small{color:#cdb8dc}body.theme-neon .how-it-works,body.theme-neon .product-hero,body.theme-neon .booking-summary,body.theme-neon .ticket-foot{background:linear-gradient(135deg,#17002e,#310061);border-block:1px solid rgba(255,43,184,.45)}body.theme-neon .how-it-works li>span,body.theme-neon .price-stamp{background:#c6ff00;color:#17002e;box-shadow:0 0 16px rgba(198,255,0,.7)}body.theme-neon .note,body.theme-neon .stop-finder{background:rgba(49,0,97,.62);border:1px solid rgba(255,43,184,.42)}body.theme-neon .input-button input,body.theme-neon .checkout-form input,body.theme-neon .checkout-form select,body.theme-neon .lookup-form input{background:rgba(9,0,20,.82);border-color:rgba(66,243,255,.55);color:#f7edff;border-radius:4px}body.theme-neon .stop-row a{background:#713cff;color:#fff;border-radius:4px;box-shadow:0 0 12px rgba(113,60,255,.8)}body.theme-neon .status-pill{background:#c6ff00;color:#17002e}body.theme-neon .site-footer{border-top:1px solid rgba(255,43,184,.35)}
/* Editorial minimal: monochrome, image-led and intentionally quiet. */
body.theme-editorial{--muted:#686868;--line:#191919;background:#f5f2eb;color:#121212;font-family:Georgia,"Times New Roman",serif}body.theme-editorial .site-header{max-width:none;padding:24px 5vw;border-bottom:1px solid #121212}body.theme-editorial .brand-mark{border-radius:0;background:#121212;font-family:Arial,sans-serif;letter-spacing:0}body.theme-editorial .brand strong{font-family:Arial,sans-serif;letter-spacing:.07em;text-transform:uppercase}body.theme-editorial .site-header nav{font-family:Arial,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.theme-editorial .hero{max-width:none;margin:0;background:#e4dfd5;color:#121212;border-radius:0;grid-template-columns:1.35fr .65fr;min-height:500px}.theme-editorial .hero-copy{padding:10vw}.theme-editorial .hero h1,.theme-editorial .product-hero h1,.theme-editorial .checkout-shell h1,.theme-editorial .narrow-page h1,.theme-editorial .section-heading h2,.theme-editorial .how-it-works h2,.theme-editorial .product-layout h2,.theme-editorial .trip-body h3{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.065em;font-style:normal}.theme-editorial .hero h1 em{color:#121212}.theme-editorial .hero .eyebrow{color:#121212}.theme-editorial .hero-intro{color:#333}.theme-editorial .button,.theme-editorial .input-button button{border-radius:0;background:#121212;color:#fff}.theme-editorial .hero-poster{border-radius:0;background:#121212;color:#fff;transform:none;box-shadow:none;margin:0}.theme-editorial .poster-dot{background:#e4dfd5}.theme-editorial .trust-strip{max-width:none;margin:0;padding:28px 5vw;border-block:1px solid #121212;gap:20px}.theme-editorial .trip-card,.theme-editorial .empty-state,.theme-editorial .product-layout,.theme-editorial .lookup-result,.theme-editorial .ticket{background:transparent;border-color:#121212;border-radius:0;box-shadow:none}.theme-editorial .trip-art{background:#ddd7cc;color:#121212}.theme-editorial .trip-art:before{background:#121212}.theme-editorial .how-it-works,.theme-editorial .product-hero,.theme-editorial .booking-summary,.theme-editorial .ticket-foot{background:#121212;color:#fff}.theme-editorial .how-it-works li>span,.theme-editorial .price-stamp{background:#f5f2eb;color:#121212;border-radius:0}.theme-editorial .site-footer{max-width:none;padding-inline:5vw;border-top:1px solid #121212}

/* Festival poster: loud blocks of colour, oversized type and sharp graphics. */
body.theme-festival{--muted:#66323b;--line:#40141d;background:#ffdd5c;color:#40141d;font-family:Arial,"Arial Black",sans-serif}body.theme-festival .site-header{max-width:none;background:#ff553d;padding-inline:5vw;color:#fff}.theme-festival .brand-mark{border-radius:50%;background:#40141d;color:#ffdd5c;transform:rotate(-9deg)}.theme-festival .brand strong,.theme-festival .site-header nav{font-weight:900;text-transform:uppercase;letter-spacing:.06em}.theme-festival .brand small{color:#ffdd5c}.theme-festival .hero{max-width:none;margin:0;background:#40141d;border-radius:0;color:#fff;min-height:540px}.theme-festival .hero-copy{padding:9vw}.theme-festival .hero h1,.theme-festival .product-hero h1,.theme-festival .checkout-shell h1,.theme-festival .narrow-page h1,.theme-festival .section-heading h2,.theme-festival .how-it-works h2,.theme-festival .product-layout h2,.theme-festival .trip-body h3{font-family:Impact,"Arial Black",sans-serif;text-transform:uppercase;letter-spacing:.01em;line-height:.84}.theme-festival .hero h1 em{color:#ffdd5c}.theme-festival .hero .eyebrow{color:#ff553d}.theme-festival .button,.theme-festival .input-button button{border-radius:0;background:#ff553d;color:#fff;text-transform:uppercase;box-shadow:6px 6px 0 #ffdd5c}.theme-festival .hero-poster{border-radius:50%;background:#ffdd5c;color:#40141d;transform:rotate(-8deg);box-shadow:9px 9px 0 #ff553d}.theme-festival .poster-dot{background:#ff553d}.theme-festival .trust-strip{max-width:none;background:#ff553d;color:#fff;margin:0;padding:25px 5vw;border:0}.theme-festival .trust-strip b,.theme-festival .eyebrow{color:#40141d}.theme-festival .trip-card,.theme-festival .empty-state{background:#fff3c6;border:3px solid #40141d;border-radius:0;box-shadow:7px 7px 0 #ff553d}.theme-festival .trip-art{background:#ff553d}.theme-festival .trip-art:before{background:#ffdd5c}.theme-festival .how-it-works,.theme-festival .product-hero,.theme-festival .booking-summary,.theme-festival .ticket-foot{background:#ff553d;color:#fff}.theme-festival .how-it-works li>span,.theme-festival .price-stamp{background:#ffdd5c;color:#40141d;border-radius:0}.theme-festival .product-layout,.theme-festival .lookup-result,.theme-festival .ticket{border-radius:0;border:3px solid #40141d;background:#fff3c6}.theme-festival .site-footer{max-width:none;padding-inline:5vw;background:#40141d;color:#fff}.theme-festival .legal,.theme-festival .footer-links{color:#fff}
/* Get2TheGig illustrated hero. The image fills the full banner with live neon copy above it. */
body.theme-neon .hero{max-width:none;margin:0;min-height:640px;display:block;border-radius:0}body.theme-neon .neon-hero-art{position:absolute;inset:0;min-height:0;overflow:hidden;z-index:0}body.theme-neon .neon-hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,0,28,.96) 0%,rgba(20,0,43,.8) 34%,rgba(20,0,43,.18) 68%,rgba(20,0,43,.08) 100%)}body.theme-neon .neon-hero-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}body.theme-neon .hero-copy{position:relative;z-index:1;min-height:640px;max-width:790px;padding:110px max(32px,calc((100vw - 1240px)/2));padding-right:0}body.theme-neon .hero h1{color:#fff;background:linear-gradient(110deg,#ff2bb8 0%,#ff8ce0 35%,#42f3ff 70%,#c6ff00 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:4px 4px 0 rgba(63,0,124,.94),0 0 14px rgba(255,43,184,.95),0 0 32px rgba(66,243,255,.58)}body.theme-neon .hero h1 em{color:#42f3ff;background:linear-gradient(110deg,#42f3ff,#c6ff00);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:4px 4px 0 #ff2bb8,0 0 22px #42f3ff}body.theme-neon .hero .eyebrow{color:#c6ff00;text-shadow:0 0 12px #c6ff00,0 0 24px rgba(198,255,0,.55)}body.theme-neon .hero-intro{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.95)}@media(max-width:900px){body.theme-neon .hero{min-height:620px}body.theme-neon .hero-copy{min-height:620px;max-width:670px;padding:80px 35px 60px}body.theme-neon .neon-hero-art{height:auto}body.theme-neon .neon-hero-art:after{background:linear-gradient(180deg,rgba(18,0,42,.33) 0%,rgba(18,0,42,.76) 48%,#17002e 100%)}body.theme-neon .neon-hero-art img{object-position:66% center}}@media(max-width:620px){body.theme-neon .hero{min-height:650px}body.theme-neon .hero-copy{min-height:650px;padding:72px 25px 48px}body.theme-neon .hero h1{font-size:clamp(3.3rem,15vw,4.4rem);line-height:.84}body.theme-neon .hero-intro{font-size:1rem;max-width:31rem}body.theme-neon .neon-hero-art img{object-position:62% center}}
/* Contact number shown whenever the business has configured one. */
.header-phone{font-size:.86rem;font-weight:900;text-decoration:none;white-space:nowrap}.header-phone span{margin-right:5px;color:var(--brand)}body.theme-neon .header-phone{color:#f7edff;text-shadow:0 0 10px rgba(247,237,255,.6)}body.theme-neon .header-phone span{color:#c6ff00;text-shadow:0 0 12px #c6ff00}@media(max-width:620px){.header-phone{font-size:.74rem}.header-phone span{display:none}}
body.theme-neon .brand-logo{width:54px;height:54px;object-fit:cover;border:1px solid rgba(66,243,255,.7);border-radius:7px;box-shadow:0 0 12px rgba(255,43,184,.8),0 0 24px rgba(66,243,255,.4)}
body.theme-neon .site-header .brand-logo{width:30px;height:30px}@media(max-width:620px){body.theme-neon .site-header .brand-logo{width:28px;height:28px}}
.brand-logo-clydeside{width:50px;height:50px;object-fit:cover;border-radius:50%;border:1px solid rgba(23,59,87,.16)}
body .site-header .brand-logo-clydeside{width:30px;height:30px}@media(max-width:620px){body .site-header .brand-logo-clydeside{width:28px;height:28px}}
.journey-map-section{max-width:1240px;margin:0 auto 100px;padding:0 32px}.journey-map-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:24px}.journey-map-heading h2{font-family:Georgia,serif;font-size:clamp(2.4rem,4vw,4.4rem);line-height:1;letter-spacing:-.045em;margin:0}.journey-map-heading>p{max-width:290px;color:var(--muted);margin:0}.journey-map{height:520px;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 20px 60px rgba(23,33,43,.12)}.journey-map-marker{width:32px;height:32px;border-radius:50%;border:3px solid #fff;background:var(--brand);color:#fff;font:800 .82rem/1 Inter,Arial,sans-serif;box-shadow:0 4px 12px rgba(0,0,0,.3);cursor:pointer}.journey-map-marker.destination{background:var(--accent);color:var(--ink)}body.theme-neon .journey-map-section{color:#f7edff}body.theme-neon .journey-map-heading h2{font-family:Impact,"Arial Black",sans-serif;font-style:italic;text-transform:uppercase;text-shadow:3px 3px #713cff,0 0 15px #ff2bb8}body.theme-neon .journey-map{border-color:rgba(66,243,255,.6);box-shadow:0 0 22px rgba(255,43,184,.28)}body.theme-neon .journey-map-marker{background:#ff2bb8;box-shadow:0 0 14px #ff2bb8}body.theme-neon .journey-map-marker.destination{background:#c6ff00;color:#17002e;box-shadow:0 0 14px #c6ff00}@media(max-width:700px){.journey-map-section{padding:0 18px;margin-bottom:70px}.journey-map-heading{display:block}.journey-map-heading>p{margin-top:15px}.journey-map{height:390px;border-radius:12px}}
.journey-map-wrap{position:relative}.journey-map-activate{position:absolute;z-index:5;inset:50% auto auto 50%;transform:translate(-50%,-50%);min-width:min(320px,calc(100% - 36px));padding:14px 20px;border:2px solid #fff;border-radius:999px;background:var(--brand);color:#fff;font:800 .9rem/1.2 Inter,Arial,sans-serif;box-shadow:0 8px 30px rgba(0,0,0,.35);cursor:pointer}.journey-map-activate[hidden]{display:none}body.theme-neon .journey-map-activate{border-color:#42f3ff;background:#17002e;color:#c6ff00;box-shadow:0 0 18px rgba(66,243,255,.65)}
.page-builder-output{display:grid;gap:28px}.page-block{margin:0}.page-block h2{font-family:Georgia,serif;font-size:2.3rem;line-height:1.05}.page-block-hero,.page-block-callout{padding:34px;background:var(--brand);color:#fff;border-radius:18px}.page-block-hero .eyebrow{color:var(--accent)}.page-block-hero p,.page-block-callout p{font-size:1.06rem}.page-block-callout{background:var(--paper);border:1px solid var(--line);color:var(--ink)}.page-block-image img{display:block;width:100%;border-radius:16px}.page-block-image figcaption{margin-top:8px;color:var(--muted);font-size:.85rem}body.theme-neon .page-block-hero{background:linear-gradient(135deg,#17002e,#310061);border:1px solid #42f3ff}body.theme-neon .page-block-callout{background:rgba(49,0,97,.68);border-color:#ff2bb8;color:#f7edff}

/* Get2TheGig's headline is deliberately drawn as illuminated glass tubing. */
body.theme-neon .hero h1,
body.theme-neon .hero h1 em{font-family:"Neonderthaw",cursive;font-style:normal;font-weight:400;letter-spacing:.015em;-webkit-text-fill-color:transparent;-webkit-text-stroke:1.15px #fff4fd;background:none;color:transparent;text-shadow:0 0 2px #fff,0 0 6px #fff,0 0 14px #ff52c8,0 0 28px #ff2bb8,0 0 52px rgba(66,243,255,.8)}
body.theme-neon .hero h1 em{-webkit-text-stroke-color:#dfffff;text-shadow:0 0 2px #fff,0 0 7px #dfffff,0 0 16px #42f3ff,0 0 34px #42f3ff,0 0 58px rgba(198,255,0,.48)}
@media(max-width:620px){body.theme-neon .hero h1,body.theme-neon .hero h1 em{font-size:clamp(3.7rem,16vw,5rem);-webkit-text-stroke-width:.95px}}

/* Shared polish and responsive behaviour across every tenant design. */
body.font-serif{font-family:Georgia,"Times New Roman",serif}
body.buttons-square .button,body.buttons-square .input-button button,body.buttons-square .stop-row a{border-radius:3px}
body.buttons-rounded .button,body.buttons-rounded .input-button button,body.buttons-rounded .stop-row a{border-radius:12px}
body.buttons-pill .button,body.buttons-pill .input-button button,body.buttons-pill .stop-row a{border-radius:999px}
body.header-compact .site-header{padding-block:14px}
body.footer-compact .site-footer{padding-block:35px 24px}
.site-header{gap:26px;min-height:78px}
.site-header .brand{min-width:0}
.site-header .brand>span:last-child{min-width:0}
.site-header .brand strong,.site-header .brand small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-header nav{margin-left:auto;align-items:center}
.site-header nav a,.header-phone{padding-block:8px}
.site-header nav .staff-panel-button{min-height:0;padding:.65rem .9rem;line-height:1;text-decoration:none}
.brand-logo{width:38px;height:38px;flex:none;object-fit:contain}
.hero-image-panel{min-width:0;overflow:hidden}
.hero-image-panel img{display:block;width:100%;height:100%;object-fit:cover}
.trip-card{display:flex;min-width:0;flex-direction:column;box-shadow:0 10px 34px rgba(23,33,43,.055);transition:transform .18s ease,box-shadow .18s ease;text-decoration:none}
.trip-card:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(23,33,43,.1)}
.trip-card:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.trip-art{color:#fff;text-decoration:none}
.trip-body{display:flex;flex:1;flex-direction:column}
.trip-meta{margin-top:auto}
.trip-meta a{text-underline-offset:4px}
.trip-meta-action{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.trip-meta-action .seat-availability{align-self:auto;margin:0}
.trip-body .seat-availability{align-self:flex-start;margin:-2px 0 14px;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 24%,#fff);color:var(--ink);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.035em}
.trip-body .seat-availability.is-sold-out{background:#f4dddd;color:#8f2727}
body.theme-neon .trip-body .seat-availability{background:rgba(198,255,0,.14);border:1px solid rgba(198,255,0,.55);color:#c6ff00;box-shadow:0 0 10px rgba(198,255,0,.2)}
body.theme-neon .trip-body .seat-availability.is-sold-out{background:rgba(255,43,184,.14);border-color:rgba(255,43,184,.65);color:#ff78ce}
.social-links{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:16px;font-size:.82rem;font-weight:800;text-transform:capitalize}
.social-links a{text-underline-offset:4px}
.site-footer>div:first-child>p{max-width:560px;color:var(--muted)}
.footer-links{flex-wrap:wrap;align-content:flex-start;justify-content:flex-end}
.footer-links a{text-underline-offset:4px}
button,input,select,textarea{font:inherit}
a,button{touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.button,.input-button button,.stop-row a{min-height:44px;transition:transform .16s ease,filter .16s ease,background-color .16s ease}
.disabled-choice{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 13px;border-radius:999px;background:#c8cdd1!important;color:#5d6870!important;box-shadow:none!important;cursor:not-allowed;filter:grayscale(1);font-size:.78rem;font-weight:900;text-align:center;text-decoration:none;}
.reset-stop-search{display:inline-block;margin-top:14px;color:var(--muted);font-size:.78rem;font-weight:800;text-underline-offset:3px;}
.stop-row a{display:inline-flex;align-items:center;justify-content:center;align-self:center;line-height:1}
.checkout-form input:not([type=checkbox]),.checkout-form select{height:52px;min-height:52px;padding:0 14px}
.checkout-form select[name=passenger_quantity]{appearance:auto;padding-right:14px;background-image:none}
.check{cursor:pointer}
.check input[type=checkbox]{appearance:none;display:grid;place-content:center;flex:0 0 22px;width:22px;height:22px;min-height:22px;margin:1px 0 0;border:2px solid var(--brand);border-radius:6px;background:#fff;cursor:pointer}
.check input[type=checkbox]::before{content:"";width:10px;height:6px;border:solid var(--ink);border-width:0 0 2px 2px;transform:rotate(-45deg) scale(0);transform-origin:center;transition:transform .12s ease}
.check input[type=checkbox]:checked{border-color:var(--accent);background:var(--accent)}
.check input[type=checkbox]:checked::before{transform:rotate(-45deg) scale(1)}
body.theme-neon .check input[type=checkbox]{border-color:#42f3ff;background:#17002e;box-shadow:0 0 10px rgba(66,243,255,.35)}
body.theme-neon .check input[type=checkbox]:checked{border-color:#c6ff00;background:#c6ff00;box-shadow:0 0 14px rgba(198,255,0,.65)}
.product-hero,.product-layout,.checkout-shell,.narrow-page,.ticket-page,.journey-map-section{width:calc(100% - 36px)}
.test-payment-card{display:grid;gap:18px;margin:28px 0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px}.test-payment-card label{display:flex;flex-direction:column;gap:8px;font-size:.82rem;font-weight:800}.test-payment-card input{width:100%;min-height:52px;border:1px solid var(--line);border-radius:10px;padding:0 14px;background:#f2f3f4;color:#59646d}.test-payment-page form{margin-top:16px}body.theme-neon .test-payment-card{background:rgba(23,0,46,.84);border-color:#42f3ff}body.theme-neon .test-payment-card input{background:#17002e;border-color:#713cff;color:#cdb8dc}
.booking-countdown{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;margin:28px 0;padding:22px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 72%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--accent) 10%,var(--paper));box-shadow:0 14px 34px rgba(23,33,43,.08)}
.booking-countdown .eyebrow{margin-bottom:7px}.booking-countdown h2{margin:0 0 7px;font-family:inherit;font-size:1.15rem;line-height:1.25;letter-spacing:-.02em}.booking-countdown__message{margin:0;color:var(--muted);font-size:.88rem}.booking-countdown__time{min-width:120px;align-self:center;text-align:right}.booking-countdown__time span{display:block;color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.booking-countdown__time strong{display:block;margin-top:2px;font-variant-numeric:tabular-nums;font-size:clamp(2rem,6vw,3rem);line-height:1;color:var(--ink)}
.booking-countdown__progress{grid-column:1/-1;height:5px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--line) 72%,transparent)}.booking-countdown__progress i{display:block;width:100%;height:100%;border-radius:inherit;background:var(--accent);transition:width .4s linear}.booking-countdown__restart{grid-column:1/-1;justify-self:start;font-size:.82rem;font-weight:900;text-underline-offset:4px}
.booking-countdown.is-warning{border-color:#d58a22;background:#fff5df}.booking-countdown.is-warning .booking-countdown__time strong{color:#9a5300}.booking-countdown.is-warning .booking-countdown__progress i{background:#d58a22}.booking-countdown.is-expired{border-color:#c34d4d;background:#fff0ef}.booking-countdown.is-expired .booking-countdown__time strong{color:#9f2525}.booking-countdown.is-expired .booking-countdown__progress i{background:#c34d4d}
body.theme-neon .booking-countdown{border-color:rgba(66,243,255,.62);background:rgba(23,0,46,.88);box-shadow:0 0 18px rgba(66,243,255,.16)}body.theme-neon .booking-countdown__time strong{color:#f7edff;text-shadow:0 0 13px rgba(66,243,255,.6)}body.theme-neon .booking-countdown__progress{background:rgba(66,243,255,.18)}body.theme-neon .booking-countdown__progress i{background:#42f3ff;box-shadow:0 0 12px #42f3ff}body.theme-neon .booking-countdown.is-warning{border-color:#c6ff00}body.theme-neon .booking-countdown.is-warning .booking-countdown__time strong{color:#c6ff00}body.theme-neon .booking-countdown.is-expired{border-color:#ff5b8d}body.theme-neon .booking-countdown.is-expired .booking-countdown__time strong{color:#ff8db0}
.checkout-form input,.checkout-form select,.lookup-form input,.input-button input{min-height:48px}
.password-field{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}.password-field input{min-width:0!important;border:0!important;box-shadow:none!important}.password-field:focus-within{outline:3px solid color-mix(in srgb,var(--accent) 50%,transparent);border-color:var(--brand)}.password-toggle{min-width:58px;border:0;border-left:1px solid var(--line);background:transparent;color:var(--ink);font-size:.76rem;font-weight:900;cursor:pointer}.password-toggle:hover{background:color-mix(in srgb,var(--accent) 14%,transparent)}body.theme-neon .password-field{border-color:rgba(66,243,255,.55);background:rgba(9,0,20,.82)}body.theme-neon .password-toggle{border-color:rgba(66,243,255,.4);color:#42f3ff}
.form-errors ul{margin-bottom:0}
.empty-state h3{font-size:clamp(1.7rem,3vw,2.5rem);margin-bottom:12px}
.page-block-hero-with-image{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.8fr);gap:28px;align-items:center}
.page-block-hero-with-image>img{width:100%;height:100%;min-height:240px;object-fit:cover;border-radius:12px;order:2}
.site-menu{margin-left:auto}.site-menu>summary{display:none;list-style:none}.site-menu>summary::-webkit-details-marker{display:none}.site-menu:not([open])>nav{display:flex}

@media(min-width:741px) and (max-width:1180px){
    .site-header{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding-block:16px}
    .site-menu{grid-column:1/-1;width:100%;margin-left:0;border-top:1px solid var(--line);padding-top:10px}
    .site-menu:not([open])>nav,.site-menu[open]>nav{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:4px 22px}
    .site-menu nav a{min-height:40px;display:inline-flex;align-items:center;white-space:nowrap}
    .site-menu nav .staff-panel-button{padding:.6rem .85rem}
}

@media(max-width:740px){
    .site-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 22px}
    .site-header .brand{min-width:0}.site-header .brand>span:last-child{min-width:0}.site-header .brand strong,.site-header .brand small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .site-menu{position:relative;justify-self:end;margin-left:0}
    .site-menu>summary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 13px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--paper) 70%,#fff);color:var(--ink);font-size:.78rem;font-weight:900;cursor:pointer}
    .site-menu>summary>span{display:grid;gap:3px;width:16px}.site-menu>summary i{display:block;height:2px;border-radius:999px;background:currentColor}
    .site-menu:not([open])>nav{display:none}
    .site-menu[open]>nav{position:absolute;z-index:100;top:calc(100% + 10px);right:0;display:grid;width:min(22rem,calc(100vw - 32px));max-height:calc(100dvh - 90px);margin:0;padding:10px;overflow-y:auto;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 22px 55px rgba(23,33,43,.22);white-space:normal}
    .site-menu nav a{display:flex;align-items:center;min-width:0;min-height:44px;padding:10px 12px;border-radius:10px;text-decoration:none;overflow-wrap:anywhere}
    .site-menu nav a:hover{background:color-mix(in srgb,var(--accent) 14%,transparent);text-decoration:none}
    .site-menu nav .staff-panel-button{justify-content:center;margin-bottom:4px;background:var(--accent);color:#17212b}
    .site-menu nav .header-phone{border-top:1px solid var(--line);border-radius:0;margin-top:4px;padding-top:14px}
    .hero-image-panel{min-height:360px;order:2}
    .hero{overflow:hidden}
    .trip-grid{gap:18px}
    .product-layout{padding:55px 40px}
    .product-hero{padding:45px 40px}
    .page-block-hero-with-image{grid-template-columns:1fr}
    .page-block-hero-with-image>img{order:0}
}
@media(max-width:620px){
    .site-header{gap:10px;padding-inline:16px}
    .site-header .brand strong{font-size:.9rem}
    .brand-logo{width:30px;height:30px}
    .header-phone{font-size:.72rem}
    .booking-countdown{grid-template-columns:minmax(0,1fr);gap:14px;padding:18px}.booking-countdown__time{text-align:left}.booking-countdown__time strong{font-size:2.4rem}
    .hero{width:auto}
    .hero-image-panel{min-height:300px}
    .hero-copy{padding-block:48px}
    .trust-strip{padding-inline:0}
    .section-heading>p{max-width:none}
    .trip-art{height:220px}
    .trip-body{padding:22px}
    .trip-meta{gap:12px;align-items:flex-end}
    .empty-state{padding:36px 25px}
    .product-hero,.product-layout,.checkout-shell,.narrow-page,.ticket-page,.journey-map-section{width:100%}
    .product-title h1{font-size:clamp(3.1rem,16vw,5rem)}
    .journey-line{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
    .price-stamp{width:140px;min-width:140px;height:140px}
    .product-layout{margin-bottom:70px}
    .checkout-shell,.narrow-page,.ticket-page{margin-top:24px}
    .footer-links{justify-content:flex-start}
    .site-footer{padding-top:48px}
}
@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* Keep availability grouped beneath the price wording in the trip price stamp. */
.price-stamp .seat-count{display:block;margin-top:3px;color:var(--ink);font-size:.67rem;line-height:1.2;text-transform:none}
.price-stamp .seat-count.is-sold-out{color:#8f2727}
body.theme-neon .price-stamp .seat-count{color:#17002e}

/* Neon headings should retain the casing entered in the page editor. */
body.theme-neon .hero h1{color:#ff65cc;background:none;-webkit-text-fill-color:#ff65cc;text-transform:none;text-shadow:3px 3px 0 #713cff,0 0 14px rgba(255,43,184,.95),0 0 28px rgba(255,43,184,.55)}
body.theme-neon .hero h1 em{color:#5ff7ff;background:none;-webkit-text-fill-color:#5ff7ff;text-shadow:3px 3px 0 #ff2bb8,0 0 18px #42f3ff,0 0 34px rgba(66,243,255,.65)}

/* Photograph-led trip cards retain legible overlay copy. */
.trip-art:has(.trip-art-image){isolation:isolate;background:#17212b}
.trip-art:has(.trip-art-image)::before{display:none}
.trip-art:has(.trip-art-image)::after{display:none}
.trip-art-image{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}
.trip-art:has(.trip-art-image)>span,.trip-art:has(.trip-art-image)>strong{position:relative;z-index:2}
.product-feature-image{height:clamp(260px,32vw,420px);margin:38px 0 0;overflow:hidden;border:1px solid rgba(255,255,255,.28);border-radius:18px}
.product-feature-image img{display:block;width:100%;height:100%;object-fit:cover}
.event-feature-image{width:calc(100% - 36px);max-width:1240px;height:clamp(260px,45vw,560px);margin:0 auto;overflow:hidden;background:var(--brand);border-inline:1px solid var(--line)}
.event-feature-image img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:620px){.event-feature-image{width:100%;height:clamp(240px,68vw,390px)}}

/* The seats badge needs a solid contrast layer on the neon storefront. */
body.theme-neon .trip-body .seat-availability{background:#c6ff00;border-color:#c6ff00;color:#17002e;box-shadow:0 0 14px rgba(198,255,0,.55)}
body.theme-neon .trip-body .seat-availability.is-sold-out{background:#ff2bb8;border-color:#ff2bb8;color:#fff;box-shadow:0 0 14px rgba(255,43,184,.55)}

/* Get2TheGig's neon service promises need breathing room after the hero. */
body.theme-neon .trust-strip{max-width:1240px;margin:58px auto 110px;padding:22px 28px;border:1px solid rgba(66,243,255,.58);border-radius:10px;background:linear-gradient(110deg,rgba(35,0,76,.93),rgba(12,0,32,.9));box-shadow:0 0 18px rgba(66,243,255,.2),0 0 42px rgba(255,43,184,.16);color:#f7edff}
body.theme-neon .trust-strip span{display:flex;align-items:center;gap:10px}
body.theme-neon .trust-strip b{display:grid;flex:none;place-items:center;width:30px;height:30px;margin:0;border:1px solid #c6ff00;border-radius:50%;background:rgba(198,255,0,.12);color:#c6ff00;font-size:.7rem;text-shadow:0 0 10px rgba(198,255,0,.85)}
@media(max-width:900px){body.theme-neon .trust-strip{margin:42px 22px 82px;padding:18px 20px;gap:18px}}@media(max-width:620px){body.theme-neon .trust-strip{margin:34px 16px 66px;padding:18px;gap:14px;font-size:.78rem}body.theme-neon .trust-strip span{align-items:flex-start}}
body.theme-neon .product-feature-image{border-color:rgba(66,243,255,.66);box-shadow:0 0 22px rgba(255,43,184,.28)}

/* Keep availability immediately above the card action at every breakpoint. */
.trip-body .trip-meta-action .seat-availability{align-self:auto;margin:0}

/* Journey map popups follow the storefront palette and include journey timing. */
.journey-map-popup{display:grid;gap:3px;min-width:150px;font-family:Inter,Arial,sans-serif}
.journey-map-popup strong{font-size:.88rem;line-height:1.25}
.journey-map-popup span{color:#52616b;font-size:.78rem;font-weight:750}
.tour-overview{align-items:start}.tour-booking-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:32px;position:sticky;top:24px}.tour-booking-card h2{font-size:2.5rem}.tour-booking-card dl{margin:24px 0}.tour-booking-card dl div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-top:1px solid var(--line)}.tour-booking-card dd{margin:0;text-align:right;font-weight:800}.tour-itinerary,.tour-gallery,.tour-inclusions{max-width:1176px;margin:0 auto 100px}.tour-timeline{list-style:none;padding:0;margin:0;display:grid;gap:18px}.tour-timeline li{display:grid;grid-template-columns:58px 1fr;gap:20px;align-items:start}.tour-timeline li>span{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--ink);font-weight:950}.tour-timeline article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:25px 28px}.tour-timeline h3{font-family:Georgia,serif;font-size:2rem;margin:4px 0 10px}.tour-stop-time{color:var(--brand);font-size:.75rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;margin:0}.tour-stop-address{color:var(--muted);font-size:.85rem}.tour-gallery>div:last-child{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.tour-gallery figure{height:340px;margin:0;border-radius:18px;overflow:hidden}.tour-gallery img{width:100%;height:100%;object-fit:cover}.tour-inclusions{display:grid;grid-template-columns:1fr 1fr;gap:24px}.tour-inclusions>div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px}.tour-inclusions ul{margin:0;padding-left:20px}.tour-inclusions li{margin:8px 0}.tour-inclusions li::marker{color:var(--brand)}body.theme-neon .tour-booking-card,body.theme-neon .tour-timeline article,body.theme-neon .tour-inclusions>div{background:rgba(23,0,46,.84);border-color:rgba(66,243,255,.48)}body.theme-neon .tour-timeline h3{font-family:Impact,"Arial Black",sans-serif;text-transform:uppercase}
.maplibregl-popup-content{padding:13px 28px 13px 13px;border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.2)}
body.theme-neon .maplibregl-popup-content{border:1px solid #42f3ff;background:#17002e;color:#fff;box-shadow:0 0 18px rgba(66,243,255,.55),0 0 28px rgba(255,43,184,.3)}
body.theme-neon .journey-map-popup span{color:#c6ff00}
body.theme-neon .maplibregl-popup-close-button{color:#fff;font-size:1.2rem}
body.theme-neon .maplibregl-popup-anchor-top .maplibregl-popup-tip{border-bottom-color:#17002e}
body.theme-neon .maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:#17002e}
body.theme-neon .maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:#17002e}
body.theme-neon .maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:#17002e}
@media(max-width:900px){.tour-booking-card{position:static}.tour-gallery>div:last-child{grid-template-columns:1fr}.tour-itinerary,.tour-gallery,.tour-inclusions{width:calc(100% - 36px)}}
@media(max-width:620px){.tour-itinerary,.tour-gallery,.tour-inclusions{margin-bottom:65px}.tour-timeline li{grid-template-columns:42px 1fr;gap:10px}.tour-timeline li>span{width:42px;height:42px}.tour-timeline article{padding:20px}.tour-inclusions{grid-template-columns:1fr}.tour-gallery figure{height:260px}}

.tour-highlights{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 0;padding:0;list-style:none}.tour-highlights li{padding:8px 13px;border:1px solid rgba(255,255,255,.35);border-radius:999px;font-size:.82rem;font-weight:800}.tour-highlights li:before{content:"✓";margin-right:7px;color:var(--accent)}
.tour-date-form{display:grid;gap:10px}.tour-date-form label{font-size:.82rem;font-weight:900}.tour-date-form input{width:100%;min-height:52px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit}.tour-date-form .button{margin-top:4px}
.tour-practical,.tour-pickup,.tour-faq{max-width:1176px;margin:0 auto 100px}.tour-practical dl{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.tour-practical dl div,.tour-pickup,.tour-faq details{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}.tour-practical dt{font-weight:900}.tour-practical dd{margin:7px 0 0;color:var(--muted)}.tour-pickup figure{max-width:600px;margin:24px 0 0}.tour-pickup img,.tour-timeline figure img{display:block;width:100%;height:auto;border-radius:12px}.tour-timeline figure{margin:20px 0 0}.tour-timeline figcaption,.tour-gallery figcaption{padding:8px 2px;color:var(--muted);font-size:.76rem}.tour-gallery figure{height:auto}.tour-gallery figure img{height:340px}.tour-faq details{margin:12px 0}.tour-faq summary{cursor:pointer;font-weight:900}.tour-faq details p{margin:14px 0 0}.passenger-details{margin:28px 0;border:1px solid var(--line);border-radius:16px;padding:22px}.passenger-details legend{font-weight:900;padding:0 8px}.passenger-details>p{color:var(--muted);font-size:.82rem}.passenger-details details{padding:14px 0;border-top:1px solid var(--line)}.passenger-details summary{cursor:pointer;font-weight:900;margin-bottom:14px}.checkout-form textarea{width:100%;min-height:90px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px;font:inherit}
body.theme-neon .tour-practical dl div,body.theme-neon .tour-pickup,body.theme-neon .tour-faq details{background:rgba(23,0,46,.84);border-color:rgba(66,243,255,.48)}
@media(max-width:900px){.tour-practical,.tour-pickup,.tour-faq{width:calc(100% - 36px)}}@media(max-width:620px){.tour-practical dl{grid-template-columns:1fr}.tour-practical,.tour-pickup,.tour-faq{margin-bottom:65px}.tour-gallery figure img{height:260px}}

/* Secure customer account and reusable booking library. */
.account-auth{max-width:680px}.account-auth .checkout-form{display:grid;gap:18px;margin:28px 0}.account-auth .checkout-form label:not(.check){display:grid;gap:8px;font-weight:850}.account-auth .checkout-form small{color:var(--muted);font-weight:500}.account-page{width:min(1176px,calc(100% - 44px));margin:60px auto 100px}.account-heading{display:flex;justify-content:space-between;gap:30px;align-items:start;margin-bottom:30px}.account-heading h1{margin:.1em 0}.account-verification,.account-link-form{padding:26px;border:1px solid var(--line);border-radius:18px;background:#fff}.account-link-form{display:grid;grid-template-columns:minmax(240px,1fr) minmax(210px,.65fr) auto;gap:18px;align-items:center}.account-link-form p{margin:4px 0 0;color:var(--muted);font-size:.85rem}.account-link-form input{min-height:50px;padding:0 14px;border:1px solid var(--line);border-radius:10px;font:inherit;text-transform:uppercase}.account-bookings{display:grid;gap:18px;margin-top:28px}.account-bookings article{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,1fr) auto;gap:24px;align-items:center;padding:25px 28px;border:1px solid var(--line);border-radius:18px;background:#fff}.account-bookings h2{margin:8px 0 4px;font-family:Georgia,serif;font-size:1.65rem}.account-bookings p{margin:0;color:var(--muted)}.account-bookings dl{display:flex;gap:26px;margin:0}.account-bookings dt{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.account-bookings dd{margin:4px 0 0;font-weight:850}.account-signout{display:flex;justify-content:flex-end;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.status-pill{display:inline-block;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 28%,white);font-size:.68rem;font-weight:900;text-transform:uppercase}.field-error{color:#a51c30;font-weight:750}body.theme-neon .account-verification,body.theme-neon .account-link-form,body.theme-neon .account-bookings article{border-color:rgba(66,243,255,.48);background:rgba(23,0,46,.84)}body.theme-neon .account-signout{border-color:rgba(66,243,255,.2)}body.theme-neon .status-pill{background:#c6ff00;color:#17002e}
.account-expired{margin-top:22px;border-top:1px solid var(--line);color:var(--muted)}.account-expired summary{display:flex;align-items:center;gap:8px;width:max-content;padding:12px 2px;cursor:pointer;font-size:.78rem;font-weight:750}.account-expired summary small{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:color-mix(in srgb,var(--line) 45%,transparent);font-size:.65rem}.account-expired__list{max-width:720px;padding:2px 0 8px}.account-expired__list>div{display:grid;grid-template-columns:1fr auto auto;gap:20px;padding:10px 2px;border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-size:.76rem}.account-expired__list span{display:grid;gap:2px}.account-expired__list strong{color:var(--ink);font-size:.8rem}.account-expired__list small{color:var(--muted)}body.theme-neon .account-expired{border-color:rgba(66,243,255,.2)}
.account-page .account-link-form{margin-top:28px}.account-staff-access{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:0 0 28px;padding:24px 26px;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--accent) 10%,white)}.account-staff-access h2{margin:.2em 0;font-size:1.35rem}.account-staff-access p:last-child{margin:.35em 0 0;color:var(--muted)}.account-staff-access form{flex:0 0 auto}body.theme-neon .account-staff-access{border-color:rgba(198,255,0,.55);background:rgba(198,255,0,.1)}@media(max-width:620px){.account-staff-access{display:grid;padding:21px}.account-staff-access .button{width:100%}}
.account-booking-list{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:28px}.account-booking-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff}.account-booking-card__header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 22px;border-bottom:1px solid var(--line)}.account-reference{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;font-weight:750;overflow-wrap:anywhere}.account-booking-card__title{padding:24px 22px 10px}.account-booking-card__title .eyebrow{margin-bottom:7px}.account-booking-card__title h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.55rem,4vw,2.05rem);line-height:1.1;overflow-wrap:anywhere}.account-booking-card__details{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:0;padding:5px 22px 20px}.account-booking-card__details div{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:11px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent)}.account-booking-card__details div:last-child{border-bottom:0}.account-booking-card__details dt{color:var(--muted);font-size:.7rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.account-booking-card__details dd{min-width:0;margin:0;text-align:right;font-weight:800;overflow-wrap:anywhere}.account-booking-payment{margin:0 22px 22px;padding:17px 18px;border-radius:13px;background:color-mix(in srgb,var(--paper) 78%,white)}.account-booking-payment>div{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.account-booking-payment span{color:var(--muted);font-size:.75rem;font-weight:750}.account-booking-payment>div strong{font-size:1.2rem}.account-booking-payment p{display:flex;flex-wrap:wrap;gap:6px 12px;margin:11px 0 0;padding-top:11px;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.account-booking-payment p strong{color:var(--ink)}.account-booking-card__actions{display:flex;flex-wrap:wrap;gap:10px;padding:18px 22px;border-top:1px solid var(--line)}.account-booking-card__actions form{margin:0}.account-booking-card__actions .button{min-height:44px;padding:10px 15px;font-size:.73rem}.button--secondary{border:1px solid var(--line);background:transparent;color:var(--ink);box-shadow:none}.account-empty{margin-top:28px}body.theme-neon .account-booking-card{border-color:rgba(66,243,255,.48);background:rgba(23,0,46,.84)}body.theme-neon .account-booking-card__header,body.theme-neon .account-booking-card__actions{border-color:rgba(66,243,255,.22)}body.theme-neon .account-booking-payment{background:rgba(9,0,20,.58)}body.theme-neon .button--secondary{border-color:rgba(66,243,255,.5);color:#f7edff}
@media(max-width:850px){.account-link-form,.account-bookings article{grid-template-columns:1fr}.account-bookings dl{flex-wrap:wrap}.account-bookings article .button{justify-self:start}}@media(max-width:620px){.account-page{width:calc(100% - 32px);margin-top:34px}.account-heading{display:grid}.account-link-form,.account-bookings article{padding:21px}.account-bookings dl{display:grid;grid-template-columns:1fr}.account-booking-card__header{align-items:flex-start;flex-direction:column}.account-booking-card__details div{align-items:flex-start;flex-direction:column;gap:4px}.account-booking-card__details dd{text-align:left}.account-booking-card__actions,.account-booking-card__actions form,.account-booking-card__actions .button{width:100%}.account-booking-card__actions .button{justify-content:center}.account-booking-payment p{display:grid}}

/* Demand forms and event-request callout. */
.event-request-cta{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-top:2rem;padding:2rem 2.2rem;background:var(--brand);color:#fff;border-radius:var(--radius)}.event-request-cta h3{margin:0 0 .45rem;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.6rem,3vw,2.5rem);line-height:1}.event-request-cta p:last-child{margin:0;color:#dce5eb}.event-request-cta .eyebrow{color:var(--accent)}.request-page{max-width:1240px;margin:30px auto 100px;padding:0 32px}.request-page__intro{max-width:820px;margin:65px 0 45px}.request-page__intro h1{margin:0 0 1.25rem;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.2rem,7vw,6.8rem);line-height:.92;letter-spacing:-.055em}.request-page__intro>p:last-child{max-width:680px;color:var(--muted);font-size:1.08rem}.request-success{margin:0 0 1.5rem;padding:1rem 1.2rem;background:#dff5e5;color:#155c2b;border:1px solid #9bd2aa;border-radius:12px;font-weight:800}.request-options{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.request-card{display:grid;gap:1rem;padding:2rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.request-card h2{margin:0 0 .6rem;font-family:Georgia,"Times New Roman",serif;font-size:2.15rem;line-height:1}.request-card>div>p:last-child{color:var(--muted)}.request-card label{display:flex;flex-direction:column;gap:.45rem;font-size:.82rem;font-weight:800}.request-card input,.request-card select,.request-card textarea{width:100%;padding:.85rem .9rem;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit}.request-card input:focus,.request-card select:focus,.request-card textarea:focus{outline:3px solid color-mix(in srgb,var(--accent) 45%,transparent);border-color:var(--brand)}.request-card .field-row{margin:0}.request-card__notice{padding:.85rem 1rem;background:#fff3cd;border-radius:9px}.request-privacy{margin:0;color:var(--muted);font-size:.75rem}.request-card button:disabled{cursor:not-allowed;opacity:.5}.request-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Get2TheGig hero: readable display lettering with a single hand-drawn neon line. */
body.theme-neon .hero h1{color:#fff;background:none;-webkit-background-clip:border-box;background-clip:border-box;-webkit-text-fill-color:#fff;font-family:"Arial Black",Impact,system-ui,sans-serif;font-style:normal;letter-spacing:-.035em;line-height:.88;text-transform:uppercase;text-shadow:3px 3px 0 #713cff,0 0 10px rgba(113,60,255,.55)}body.theme-neon .hero h1 em{display:inline-block;margin-top:.12em;color:#ff61ce;background:none;-webkit-text-fill-color:#ff61ce;-webkit-text-stroke:0;font-family:"Arial Black",Impact,system-ui,sans-serif;font-size:1em;font-style:normal;font-weight:900;letter-spacing:-.035em;line-height:.88;text-transform:uppercase;text-shadow:3px 3px 0 #713cff,0 0 12px rgba(255,43,184,.8);transform:none}body.theme-neon .event-request-cta{background:linear-gradient(135deg,#17002e,#310061);border:1px solid rgba(66,243,255,.5);border-radius:8px;box-shadow:0 0 22px rgba(113,60,255,.25)}body.theme-neon .event-request-cta h3,body.theme-neon .request-page__intro h1,body.theme-neon .request-card h2{font-family:"Arial Black",Impact,sans-serif;font-style:italic;text-transform:uppercase;text-shadow:3px 3px 0 #713cff,0 0 15px rgba(255,43,184,.55)}body.theme-neon .request-card{background:rgba(23,0,46,.86);border-color:rgba(66,243,255,.48);box-shadow:0 0 20px rgba(113,60,255,.2)}body.theme-neon .request-card input,body.theme-neon .request-card select,body.theme-neon .request-card textarea{background:#090014;border-color:rgba(66,243,255,.58);color:#f7edff;border-radius:5px}body.theme-neon .request-card>div>p:last-child,body.theme-neon .request-privacy,body.theme-neon .request-page__intro>p:last-child{color:#cdb8dc}

@media(max-width:900px){.request-options{grid-template-columns:1fr}.event-request-cta{align-items:flex-start;flex-direction:column}}@media(max-width:620px){.request-page{padding-inline:18px}.request-page__intro{margin-top:40px}.request-card{padding:1.25rem}.event-request-cta{padding:1.5rem}body.theme-neon .hero h1 em{font-size:1.05em;line-height:.82}}

/* Keep passenger tickets contained on narrow phones and embedded browsers. */
.ticket-page,.ticket,.ticket-main,.ticket-main>div{min-width:0;max-width:100%}.ticket-main h1,.ticket dd,.ticket .qr strong,.ticket .qr small{overflow-wrap:anywhere;word-break:break-word}.ticket .qr img{max-width:100%;height:auto;margin-inline:auto}
.ticket-booking-reference{display:block;margin-top:3px;color:var(--muted);font-size:.7rem;font-weight:700}
@media(max-width:620px){.ticket-head{padding:16px 18px;min-width:0}.ticket-head>div{min-width:0}.ticket-head strong,.ticket-head small{overflow-wrap:anywhere}.ticket-main{gap:24px;padding:24px 18px}.ticket-main h1{font-size:clamp(2.15rem,13vw,3.15rem)}.ticket dl div{display:grid;gap:3px}.ticket dd{text-align:left}.ticket .qr{width:100%;min-width:0}.ticket .qr img{width:min(190px,75vw)}.ticket-foot{padding-inline:18px}}

/* Square's PCI-compliant card fields are embedded on the storefront, not in an iframe. */
.square-payment-page{max-width:680px;margin:55px auto 100px}.square-payment-page>p:not(.eyebrow){font-size:1.05rem;line-height:1.65;color:var(--muted)}.square-payment-card{margin-top:30px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 42px rgba(23,33,43,.08)}.square-payment-card #square-card{min-height:110px;margin:8px 0 22px}.square-payment-card .button:disabled{cursor:wait;opacity:.65}.square-payment-card .field-error{margin:0 0 16px}.square-payment-card .secure-note{margin:16px 0 0;text-align:center}body.theme-neon .square-payment-card{background:rgba(23,0,46,.86);border-color:rgba(66,243,255,.5)}

/* A single suggestion form should span the page; the previous two-column grid left an empty half beside it. */
.interest-proposals{margin-bottom:48px}.request-options--single{grid-template-columns:minmax(0,1fr)}.request-options--single .request-card{max-width:960px}.request-options--single .field-row{margin-bottom:0}@media(max-width:620px){.interest-proposals{margin-bottom:32px}.request-options--single .request-card{max-width:none}}

/* Checkout consent is readable and clearly separated from the required terms acceptance. */
.checkout-terms-check{margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}.marketing-information{margin:22px 0 30px;padding:22px 24px;border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:14px;background:color-mix(in srgb,var(--paper) 76%,#fff)}.marketing-information .eyebrow{margin-bottom:8px}.marketing-information h2{margin:0 0 8px;font-family:Georgia,"Times New Roman",serif;font-size:1.5rem}.marketing-information>p:not(.eyebrow){margin:0;color:var(--muted);font-size:.9rem;line-height:1.6}.marketing-information .check{margin:18px 0 0;font-size:.84rem}body.theme-neon .marketing-information{border-color:rgba(66,243,255,.52);border-left-color:#ff2bb8;background:rgba(49,0,97,.5)}

/* Event admission pages */
.product-hero:has(.price-card){display:flex;align-items:end;justify-content:space-between;gap:48px}.product-hero:has(.price-card)>div{max-width:800px}.product-hero:has(.price-card) .eyebrow{color:var(--accent)}.product-hero:has(.price-card)>div>p:last-child{max-width:650px;margin-bottom:0;font-size:1.1rem;color:#dbe4e9}.price-card{flex:0 0 230px;background:#fff;color:var(--ink);border-radius:18px;padding:25px;box-shadow:0 18px 36px rgba(0,0,0,.18)}.price-card small{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:900;color:var(--muted)}.price-card strong{display:block;margin:7px 0 20px;font-family:Georgia,"Times New Roman",serif;font-size:2.5rem;line-height:1}.price-card .button,.price-card .sold-out{width:100%}.sold-out,.unavailable{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#f3ddd9;color:#84291e;padding:12px 16px;font-weight:900}.product-summary{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:.9fr .65fr 1.45fr;gap:0;background:#fff;border-bottom:1px solid var(--line);padding:0 60px}.product-summary>div{display:flex;flex-direction:column;justify-content:center;min-height:118px;padding:22px 28px;border-right:1px solid var(--line)}.product-summary>div:first-child{padding-left:0}.product-summary>div:last-child{border-right:0}.product-summary small{margin-bottom:5px;text-transform:uppercase;letter-spacing:.11em;font-size:.68rem;font-weight:900;color:var(--muted)}.product-summary strong{font-size:1.08rem;line-height:1.25}.product-summary span{margin-top:5px;color:var(--muted);font-size:.88rem}.product-details{max-width:1240px;margin:0 auto 100px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:70px;align-items:start;background:#fff;border-radius:0 0 30px 30px;padding:65px 60px 75px}.product-details .product-copy{font-size:1.08rem;line-height:1.8;color:#3a464e}.product-details .notice{margin-top:28px;border-left:5px solid var(--accent);background:#f1ede5;padding:20px 22px;color:var(--ink);line-height:1.55}.booking-panel{position:sticky;top:24px;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:30px}.booking-panel .eyebrow{margin-bottom:9px}.booking-panel h2{font-family:Georgia,"Times New Roman",serif;font-size:2.35rem;line-height:1;margin-bottom:13px}.booking-panel>p:not(.eyebrow){color:var(--muted)}.disabled-choice{cursor:not-allowed;opacity:.72}.theme-neon .price-card,.theme-neon .product-summary,.theme-neon .product-details{background:rgba(23,0,46,.9);border-color:rgba(66,243,255,.48)}.theme-neon .price-card{color:#f7edff}.theme-neon .product-details .product-copy{color:#cdb8dc}.theme-neon .product-details .notice,.theme-neon .booking-panel{background:rgba(49,0,97,.62);border-color:rgba(255,43,184,.42);color:#f7edff}.theme-editorial .price-card,.theme-editorial .product-summary,.theme-editorial .product-details{border-radius:0;border-color:#121212;background:transparent}.theme-festival .price-card,.theme-festival .product-summary,.theme-festival .product-details{border-radius:0;border:3px solid #40141d;background:#fff3c6}.theme-festival .product-details .notice,.theme-festival .booking-panel{background:#ffdd5c;border-color:#40141d;border-radius:0}@media(max-width:900px){.product-hero:has(.price-card){align-items:start;flex-direction:column}.price-card{width:100%;flex-basis:auto}.product-summary{grid-template-columns:1fr 1fr;padding:0 40px}.product-summary>div:nth-child(3){grid-column:1/-1;border-top:1px solid var(--line);padding-left:0}.product-details{grid-template-columns:1fr;gap:38px}.booking-panel{position:static}}@media(max-width:620px){.product-hero:has(.price-card){gap:28px}.product-hero:has(.price-card)>div>p:last-child{font-size:1rem}.price-card strong{font-size:2.15rem}.product-summary{display:block;padding:0 24px}.product-summary>div,.product-summary>div:first-child,.product-summary>div:nth-child(3){min-height:0;padding:20px 0;border-right:0;border-top:1px solid var(--line)}.product-summary>div:first-child{border-top:0}.product-details{padding:38px 24px 48px;border-radius:0}.product-details .product-copy{font-size:1rem}.booking-panel{padding:24px}.booking-panel h2{font-size:2rem}}
/* Signed-in product previews use the real storefront with a clear, fixed workflow banner. */
.private-preview-banner {
    position: sticky;
    top: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem clamp(1rem, 4vw, 4rem);
    color: #fff;
    background: #17212b;
    border-bottom: 3px solid var(--accent);
    box-shadow: 0 .35rem 1rem rgb(0 0 0 / 18%);
}

.private-preview-banner div {
    display: flex;
    align-items: baseline;
    gap: .75rem;
    min-width: 0;
}

.private-preview-banner span {
    color: rgb(255 255 255 / 78%);
    font-size: .9rem;
}

.private-preview-banner a {
    flex: 0 0 auto;
    padding: .55rem .85rem;
    color: #17212b;
    background: var(--accent);
    border-radius: .55rem;
    font-weight: 800;
    text-decoration: none;
}

@media (max-width: 640px) {
    .private-preview-banner,
    .private-preview-banner div {
        align-items: flex-start;
    }

    .private-preview-banner div {
        flex-direction: column;
        gap: .15rem;
    }
}

/* Checkout payment choices are deliberately single-column and touch-friendly. */
html,
body {
    max-width: 100%;
}

img,
video,
canvas,
svg { max-width: 100%; }

.checkout-shell,
.checkout-grid,
.checkout-form,
.booking-summary { min-width: 0; }

.checkout-payment-options {
    margin: 28px 0;
    padding: 0;
    border: 0;
}

.checkout-payment-options > legend {
    padding: 0;
    font-size: 1rem;
    font-weight: 900;
}

.checkout-payment-options > p {
    margin: 5px 0 14px;
    color: var(--muted);
    font-size: .82rem;
}

.payment-option-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.checkout-form .payment-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
    font-size: inherit;
    font-weight: inherit;
}

.checkout-form .payment-option:hover { border-color: color-mix(in srgb, var(--brand) 48%, var(--line)); }
.checkout-form .payment-option:has(input:checked) {
    border-color: var(--brand);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 14%, transparent);
}

.checkout-form .payment-option[hidden] { display: none; }
.checkout-form .payment-option input[type="radio"] {
    appearance: auto;
    flex: none;
    width: 1.22rem;
    height: 1.22rem;
    min-height: 0;
    margin: 0;
    padding: 0;
    accent-color: var(--brand);
}

.payment-option__copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.payment-option__copy strong { font-size: .88rem; }
.payment-option__copy small {
    color: var(--muted);
    font-size: .74rem;
    font-weight: 500;
    line-height: 1.4;
}

.payment-option__amount {
    font-size: .92rem;
    white-space: nowrap;
}

.booking-summary [hidden] { display: none !important; }
body.theme-neon .checkout-form .payment-option {
    border-color: rgba(66, 243, 255, .48);
    background: rgba(23, 0, 46, .82);
}

body.theme-neon .checkout-form .payment-option:has(input:checked) {
    border-color: #42f3ff;
    box-shadow: 0 0 0 3px rgba(66, 243, 255, .16);
}

@media (max-width: 620px) {
    .checkout-form .payment-option {
        grid-template-columns: auto minmax(0, 1fr);
        align-items: start;
        padding: 14px;
    }

    .payment-option__amount {
        grid-column: 2;
        justify-self: start;
    }

    .checkout-payment-options { margin-block: 24px; }
}

/* Narrow and tablet layouts use one readable flow with no concealed sideways content. */
@media (max-width: 900px) {
    .trip-grid,
    .tour-inclusions,
    .tour-practical dl,
    .product-summary {
        grid-template-columns: minmax(0, 1fr);
    }

    .product-summary > div,
    .product-summary > div:first-child,
    .product-summary > div:nth-child(3) {
        grid-column: auto;
        min-height: 0;
        padding: 20px 0;
        border-top: 1px solid var(--line);
        border-right: 0;
    }

    .product-summary > div:first-child { border-top: 0; }
}

@media (max-width: 620px) {
    .account-expired summary { width: 100%; max-width: 100%; }
    .account-expired__list { width: 100%; max-width: 100%; }
    .account-expired__list > div { grid-template-columns: minmax(0, 1fr); gap: 5px; }
    .account-expired__list span { min-width: 0; overflow-wrap: anywhere; }
}

@media (max-width: 420px) {
    .price-stamp { width: min(140px, 100%); min-width: 0; height: auto; aspect-ratio: 1; }
}

.custom-quote-page { display: grid; gap: 28px; }
.custom-quote-page > * { margin-block: 0; }
.quote-summary {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface, #fff);
    box-shadow: 0 18px 44px rgba(20, 33, 43, .08);
}
.quote-summary > header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    padding: 24px;
    border-bottom: 1px solid var(--line);
}
.quote-summary > header strong { display: block; margin-top: 4px; font-size: clamp(2rem, 7vw, 3.4rem); line-height: 1; }
.quote-summary > header p { margin: 0; color: var(--muted); }
.journey-leg-list { display: grid; }
.journey-leg { padding: 24px; }
.journey-leg + .journey-leg { border-top: 1px solid var(--line); }
.journey-leg h2 { margin: 5px 0 18px; font-size: 1.25rem; }
.journey-leg dl { display: grid; gap: 14px; margin: 0; }
.journey-leg dl div { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 12px; }
.journey-leg dt { color: var(--muted); font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.journey-leg dd { margin: 0; overflow-wrap: anywhere; }
.payment-choice-list { display: grid; gap: 12px; margin-top: 12px; }
.payment-choice {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 16px !important;
    border: 1px solid var(--line);
    border-radius: 14px;
    cursor: pointer;
}
.payment-choice:has(input:checked) { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 16%, transparent); }
.payment-choice input { width: 20px !important; height: 20px; margin: 0; }
.payment-choice strong,.payment-choice small { display: block; }
.payment-choice small { margin-top: 3px; color: var(--muted); font-weight: 500; }
@media (max-width: 620px) {
    .quote-summary > header { align-items: start; flex-direction: column; }
    .journey-leg, .quote-summary > header { padding: 19px; }
}

/* Storefront header: desktop gets a persistent, conventional navigation bar.
   The compact menu remains for tablet and mobile where the full set would not fit. */
.desktop-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(10px, 1.25vw, 24px);
    min-width: 0;
    margin-left: auto;
    font-size: .84rem;
    font-weight: 750;
}

.desktop-nav a {
    padding-block: 8px;
    color: inherit;
    white-space: nowrap;
    text-decoration: none;
}

.desktop-nav a:not(.button):hover { color: var(--brand); }
.desktop-nav .staff-panel-button {
    min-height: 0;
    padding: .65rem .85rem;
    line-height: 1;
}

body.theme-neon .desktop-nav a:not(.button) {
    color: rgba(255, 255, 255, .94);
    text-shadow: 0 0 12px rgba(66, 243, 255, .16);
}

body.theme-neon .desktop-nav a:not(.button):hover { color: #42f3ff; }
body.theme-neon .desktop-nav .header-phone { color: #d8ff4a; }

@media (min-width: 1181px) {
    .site-menu--compact { display: none; }
}

@media (max-width: 1180px) {
    .desktop-nav { display: none; }
}

/* Pickup prices are transparent before the customer enters checkout. */
.stop-row .pickup-price {
    margin-top: 3px;
    color: var(--ink);
    font-size: .82rem;
    font-weight: 850;
}

body.theme-neon .stop-row .pickup-price { color: #f7edff; }

/* Owner-controlled storefront announcements. */
.site-announcement {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem 1.25rem;
    padding: .65rem 1rem;
    background: var(--accent);
    color: var(--ink);
    text-align: center;
    font-size: .78rem;
    font-weight: 800;
}
.site-announcement a { font-weight: 950; text-underline-offset: .2em; }

/* Sport and race presets deliberately share the proven storefront structure.
   Their character comes from typography, geometry and the owner-controlled palette. */
body:is(.theme-golf, .theme-football, .theme-sports, .theme-rugby, .theme-racing, .theme-motorsport, .theme-motocross) {
    --muted: color-mix(in srgb, var(--ink) 66%, var(--paper));
    --line: color-mix(in srgb, var(--ink) 17%, transparent);
    background:
        radial-gradient(circle at 92% 3%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 28rem),
        var(--paper);
}
body:is(.theme-golf, .theme-football, .theme-sports, .theme-rugby, .theme-racing, .theme-motorsport, .theme-motocross) .site-header {
    border-bottom: 1px solid var(--line);
}
body:is(.theme-golf, .theme-football, .theme-sports, .theme-rugby, .theme-racing, .theme-motorsport, .theme-motocross) :is(.trip-card, .empty-state, .product-layout, .product-summary, .product-details, .lookup-result, .ticket, .request-card, .account-booking-card, .square-payment-card, .tour-timeline article, .tour-inclusions > div) {
    background: color-mix(in srgb, var(--paper) 84%, white);
    border-color: var(--line);
}
body:is(.theme-golf, .theme-football, .theme-sports, .theme-rugby, .theme-racing, .theme-motorsport, .theme-motocross) :is(.hero, .product-hero, .how-it-works, .booking-summary, .ticket-foot, .event-request-cta) {
    background: linear-gradient(135deg, var(--brand), color-mix(in srgb, var(--brand) 76%, black));
}
body:is(.theme-golf, .theme-football, .theme-sports, .theme-rugby, .theme-racing, .theme-motorsport, .theme-motocross) .trip-art {
    background: linear-gradient(145deg, var(--brand), color-mix(in srgb, var(--brand) 72%, var(--accent)));
}
body:is(.theme-golf, .theme-football, .theme-sports, .theme-rugby, .theme-racing, .theme-motorsport, .theme-motocross) .trip-art::before { background: var(--accent); }

/* Golf — quiet club heritage and landscape-inspired detail. */
body.theme-golf .hero {
    background:
        linear-gradient(110deg, color-mix(in srgb, var(--brand) 96%, transparent) 0 52%, color-mix(in srgb, var(--brand) 72%, transparent)),
        repeating-linear-gradient(98deg, transparent 0 54px, rgba(255,255,255,.035) 55px 57px);
    border-radius: 8px 8px 38px 8px;
}
body.theme-golf :is(.hero h1, .product-hero h1, .section-heading h2, .how-it-works h2, .trip-body h3) { letter-spacing: -.045em; }
body.theme-golf :is(.hero-poster, .hero-image-panel, .trip-card, .event-request-cta) { border-radius: 8px 8px 28px 8px; }
body.theme-golf .trust-strip b { display: inline-grid; width: 1.75rem; height: 1.75rem; place-items: center; border-radius: 50%; background: var(--brand); color: var(--paper); }

/* Stadium themes — compact, confident and scoreboard-like. */
body:is(.theme-football, .theme-sports, .theme-rugby) :is(.brand strong, .eyebrow, .trip-date) { letter-spacing: .1em; text-transform: uppercase; }
body:is(.theme-football, .theme-sports, .theme-rugby) :is(.hero h1, .product-hero h1, .section-heading h2, .how-it-works h2, .trip-body h3) {
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-weight: 900;
}
body:is(.theme-football, .theme-sports, .theme-rugby) .hero { position: relative; border-radius: 24px 6px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
body:is(.theme-football, .theme-sports, .theme-rugby) .hero::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: repeating-linear-gradient(90deg, transparent 0 9.8%, rgba(255,255,255,.035) 10% 10.2%);
}
body:is(.theme-football, .theme-sports, .theme-rugby) .trip-card { border-top: 5px solid var(--accent); }
body.theme-rugby :is(.button, .input-button button) { border-radius: 5px; }

/* Race day — editorial polish with a premium accent rule. */
body.theme-racing { font-family: Georgia, "Times New Roman", serif; }
body.theme-racing :is(.site-header nav, .button, .eyebrow, .trip-date, .trust-strip) { font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
body.theme-racing .hero { border-radius: 0; border-block: 5px solid var(--accent); }
body.theme-racing :is(.trip-card, .event-request-cta, .product-hero, .product-details) { border-radius: 0; }
body.theme-racing .trip-card { border-bottom: 4px solid var(--accent); }

/* Motorsport — technical angles; Motocross adds rougher, higher-energy texture. */
body:is(.theme-motorsport, .theme-motocross) { font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
body:is(.theme-motorsport, .theme-motocross) :is(.hero h1, .product-hero h1, .section-heading h2, .how-it-works h2, .trip-body h3) {
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-style: italic;
    font-weight: 950;
    text-transform: uppercase;
}
body:is(.theme-motorsport, .theme-motocross) :is(.hero, .hero-image-panel, .hero-poster, .trip-card, .event-request-cta, .button, .input-button button) { border-radius: 3px; }
body:is(.theme-motorsport, .theme-motocross) .hero { position: relative; border-left: 8px solid var(--accent); }
body:is(.theme-motorsport, .theme-motocross) .hero::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 9px;
    background: repeating-linear-gradient(90deg, var(--accent) 0 28px, transparent 28px 56px);
}
body.theme-motorsport .trust-strip { border-block: 2px solid var(--ink); padding-block: 22px; }
body.theme-motocross {
    background-image:
        radial-gradient(circle at 8% 20%, color-mix(in srgb, var(--accent) 17%, transparent), transparent 18rem),
        repeating-linear-gradient(115deg, transparent 0 38px, color-mix(in srgb, var(--ink) 4%, transparent) 39px 40px);
}
body.theme-motocross .trip-card { transform: rotate(-.2deg); }
body.theme-motocross .trip-card:nth-child(even) { transform: rotate(.2deg); }

@media (max-width: 620px) {
    .site-announcement { align-items: stretch; flex-direction: column; gap: .15rem; }
    body.theme-motocross .trip-card, body.theme-motocross .trip-card:nth-child(even) { transform: none; }
}

/* Palette bridge for the original presets. These late overrides ensure the
   four owner colour controls affect the whole theme, not just isolated parts. */
body.theme-neon {
    --muted: color-mix(in srgb, var(--ink) 68%, var(--paper));
    --line: color-mix(in srgb, var(--accent) 36%, transparent);
    background-color: var(--paper);
    background-image:
        radial-gradient(circle at 12% 2%, color-mix(in srgb, var(--accent) 24%, transparent), transparent 28rem),
        radial-gradient(circle at 88% 16%, color-mix(in srgb, var(--brand) 34%, transparent), transparent 27rem),
        linear-gradient(color-mix(in srgb, var(--accent) 10%, transparent) 1px, transparent 1px),
        linear-gradient(90deg, color-mix(in srgb, var(--accent) 10%, transparent) 1px, transparent 1px);
    color: var(--ink);
}
body.theme-neon :is(.hero, .how-it-works, .product-hero, .booking-summary, .ticket-foot, .event-request-cta) {
    background: linear-gradient(135deg, var(--brand), color-mix(in srgb, var(--brand) 72%, black));
    border-color: color-mix(in srgb, var(--accent) 48%, transparent);
}
body.theme-neon :is(.button, .input-button button) { background: var(--accent); color: var(--ink); box-shadow: 0 0 15px color-mix(in srgb, var(--accent) 60%, transparent); }
body.theme-neon :is(.hero h1 em, .eyebrow, .trip-date, .trust-strip b) { color: var(--accent); }
body.theme-neon :is(.trip-card, .empty-state, .product-layout, .lookup-result, .ticket, .request-card, .account-booking-card, .square-payment-card) {
    background: color-mix(in srgb, var(--brand) 78%, var(--paper));
    border-color: color-mix(in srgb, var(--accent) 46%, transparent);
}
body.theme-neon .trip-art { background: linear-gradient(135deg, color-mix(in srgb, var(--brand) 74%, var(--accent)), var(--brand)); }
body.theme-neon .trip-art::before { background: var(--accent); box-shadow: 0 0 30px color-mix(in srgb, var(--accent) 72%, transparent); }

body.theme-editorial { --muted: color-mix(in srgb, var(--ink) 64%, var(--paper)); --line: var(--ink); background: var(--paper); color: var(--ink); }
body.theme-editorial .site-header { border-color: var(--ink); }
body.theme-editorial :is(.brand-mark, .button, .input-button button, .hero-poster, .how-it-works, .product-hero, .booking-summary, .ticket-foot) { background: var(--brand); color: var(--paper); }
body.theme-editorial :is(.hero, .trip-art) { background: color-mix(in srgb, var(--paper) 78%, var(--accent)); color: var(--ink); }
body.theme-editorial :is(.trip-card, .empty-state, .product-layout, .lookup-result, .ticket, .price-card, .product-summary, .product-details) { border-color: var(--ink); }

body.theme-festival { --muted: color-mix(in srgb, var(--ink) 66%, var(--paper)); --line: var(--ink); background: var(--paper); color: var(--ink); }
body.theme-festival .site-header { background: var(--brand); border-color: var(--ink); color: var(--paper); }
body.theme-festival :is(.hero, .trip-art, .how-it-works, .product-hero, .booking-summary, .ticket-foot, .event-request-cta) { background: var(--brand); color: var(--paper); }
body.theme-festival :is(.button, .input-button button, .hero-poster, .how-it-works li > span, .price-stamp) { background: var(--accent); color: var(--ink); }
body.theme-festival .trip-art::before { background: var(--accent); }
body.theme-festival :is(.trip-card, .empty-state, .product-layout, .lookup-result, .ticket, .price-card, .product-summary, .product-details) { background: color-mix(in srgb, var(--paper) 88%, white); border-color: var(--ink); }

/* Shape controls remain authoritative regardless of the selected preset. */
body.buttons-square :is(.button, .input-button button, .stop-row a) { border-radius: 3px; }
body.buttons-rounded :is(.button, .input-button button, .stop-row a) { border-radius: 12px; }
body.buttons-pill :is(.button, .input-button button, .stop-row a) { border-radius: 999px; }

/* --------------------------------------------------------------------------
   Preset personalities

   A preset should change the way a storefront feels, not simply recolour the
   same page. These rules intentionally use the four editable theme variables
   so each business can still make a preset their own.
   -------------------------------------------------------------------------- */

/* Classic — an inviting, practical travel journal. */
body.theme-classic {
    background-image: radial-gradient(circle at 100% 0, color-mix(in srgb, var(--accent) 14%, transparent), transparent 30rem);
}
body.theme-classic .hero { border-radius: 34px 34px 34px 8px; }
body.theme-classic .hero-poster { border-radius: 50% 12px 50% 12px; transform: rotate(3deg); }
body.theme-classic .trip-card { box-shadow: 0 12px 28px color-mix(in srgb, var(--brand) 8%, transparent); transition: transform .2s ease, box-shadow .2s ease; }
body.theme-classic .trip-card:hover { box-shadow: 0 20px 36px color-mix(in srgb, var(--brand) 18%, transparent); transform: translateY(-5px); }
body.theme-classic .how-it-works { border-radius: 50px 50px 0 0; }

/* Editorial — restrained magazine layouts, rules and serif display type. */
body.theme-editorial { font-family: Georgia, "Times New Roman", serif; }
body.theme-editorial :is(.site-header nav, .brand small, .button, .trip-date, .eyebrow, .trip-meta, .trust-strip, .footer-links) { font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
body.theme-editorial .site-header { max-width: none; margin-inline: 32px; padding-inline: 0; border-bottom: 2px solid var(--ink); }
body.theme-editorial .brand-mark { border-radius: 0; }
body.theme-editorial .hero { grid-template-columns: 1.25fr .75fr; min-height: 540px; border-radius: 0; background: var(--paper); border-block: 1px solid var(--ink); color: var(--ink); }
body.theme-editorial .hero-copy { padding-left: clamp(32px, 7vw, 100px); }
body.theme-editorial .hero h1 { max-width: 10ch; font-size: clamp(4.2rem, 8vw, 8rem); }
body.theme-editorial .hero-intro { color: color-mix(in srgb, var(--ink) 72%, var(--paper)); }
body.theme-editorial .hero-poster { margin: 0; min-height: 100%; border-radius: 0; transform: none; box-shadow: none; background: var(--brand); color: var(--paper); }
body.theme-editorial .trip-grid { gap: 0; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); }
body.theme-editorial .trip-card { border: 0; border-right: 1px solid var(--ink); border-radius: 0; background: transparent; }
body.theme-editorial .trip-card:last-child { border-right: 0; }
body.theme-editorial .trip-art { height: 210px; border-bottom: 1px solid var(--ink); background: color-mix(in srgb, var(--accent) 24%, var(--paper)); color: var(--ink); }
body.theme-editorial .trip-art::before { width: 80px; height: 80px; right: 22px; bottom: 22px; }
body.theme-editorial .how-it-works { background: var(--ink); color: var(--paper); border-block: 5px solid var(--accent); }
body.theme-editorial .how-it-works li > span { border-radius: 0; background: var(--accent); }
body.theme-editorial .button { border-radius: 0; }

/* Festival — layered poster panels, offset borders and handbill energy. */
body.theme-festival { background-image: radial-gradient(circle at 10% 12%, color-mix(in srgb, var(--accent) 32%, transparent) 0 3px, transparent 4px); background-size: 18px 18px; }
body.theme-festival :is(.hero h1, .product-hero h1, .section-heading h2, .how-it-works h2, .trip-body h3) { font-family: Impact, "Arial Black", sans-serif; font-weight: 900; letter-spacing: -.035em; text-transform: uppercase; }
body.theme-festival .site-header { max-width: none; padding-block: 16px; padding-inline: max(24px, calc((100vw - 1176px) / 2)); box-shadow: 0 4px 0 var(--ink); }
body.theme-festival .brand-mark, body.theme-festival .button { border-radius: 0; box-shadow: 4px 4px 0 var(--ink); }
body.theme-festival .hero { position: relative; margin-top: 22px; border: 4px solid var(--ink); border-radius: 0; box-shadow: 10px 10px 0 var(--accent); }
body.theme-festival .hero::after { content: ""; position: absolute; inset: 14px; border: 1px solid color-mix(in srgb, var(--paper) 48%, transparent); pointer-events: none; }
body.theme-festival .hero-poster { border: 3px solid var(--ink); border-radius: 0; transform: rotate(-3deg); box-shadow: 7px 7px 0 var(--ink); }
body.theme-festival .trust-strip { border-block: 3px solid var(--ink); padding-block: 18px; }
body.theme-festival .trust-strip b { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; background: var(--accent); color: var(--ink); }
body.theme-festival .trip-card { border: 3px solid var(--ink); border-radius: 0; box-shadow: 6px 6px 0 color-mix(in srgb, var(--brand) 76%, var(--ink)); }
body.theme-festival .trip-card:nth-child(even) { transform: translateY(14px); }
body.theme-festival .trip-art { border-bottom: 3px solid var(--ink); }
body.theme-festival .how-it-works { border-block: 4px solid var(--ink); }
body.theme-festival .how-it-works li > span { border-radius: 0; border: 2px solid var(--ink); }

/* Golf — a quietly premium clubhouse: deep greens, scorecard details and soft arches. */
body.theme-golf { background-image: linear-gradient(135deg, color-mix(in srgb, var(--brand) 4%, transparent) 25%, transparent 25%), linear-gradient(45deg, color-mix(in srgb, var(--brand) 4%, transparent) 25%, transparent 25%); background-size: 34px 34px; }
body.theme-golf :is(.hero h1, .product-hero h1, .section-heading h2, .how-it-works h2, .trip-body h3) { font-family: Georgia, "Times New Roman", serif; }
body.theme-golf .site-header { padding-block: 28px; }
body.theme-golf .brand-mark { border: 2px solid var(--accent); box-shadow: inset 0 0 0 4px var(--paper); }
body.theme-golf .hero { border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent); border-radius: 70px 10px 70px 10px; }
body.theme-golf .hero-poster { border: 5px solid color-mix(in srgb, var(--paper) 72%, transparent); border-radius: 999px 999px 10px 10px; transform: none; }
body.theme-golf .trip-grid { gap: 30px; }
body.theme-golf .trip-card { border-radius: 4px 4px 36px 4px; border-top: 5px solid var(--brand); box-shadow: 0 14px 26px color-mix(in srgb, var(--brand) 10%, transparent); }
body.theme-golf .trip-art { height: 225px; background: linear-gradient(155deg, var(--brand) 0 65%, color-mix(in srgb, var(--accent) 45%, var(--brand)) 65%); }
body.theme-golf .trip-art::after { content: ""; position: absolute; inset: auto 28px 0 auto; width: 1px; height: 130px; background: color-mix(in srgb, var(--paper) 85%, transparent); }
body.theme-golf .how-it-works { border-top: 6px solid var(--accent); }

/* Football — floodlit match day with a clear pitch and scoreboard rhythm. */
body.theme-football { background-image: linear-gradient(90deg, color-mix(in srgb, var(--brand) 4%, transparent) 1px, transparent 1px); background-size: 74px 74px; }
body.theme-football .site-header { background: var(--brand); color: var(--paper); max-width: none; padding-inline: max(24px, calc((100vw - 1176px) / 2)); }
body.theme-football .brand small, body.theme-football .header-phone { color: color-mix(in srgb, var(--paper) 72%, var(--accent)); }
body.theme-football .brand-mark { background: var(--accent); color: var(--ink); border-radius: 6px; }
body.theme-football .hero { border-radius: 0; box-shadow: 0 10px 0 var(--accent); }
body.theme-football .hero::before { content: ""; position: absolute; right: 11%; top: 12%; width: min(26vw, 310px); aspect-ratio: 1; border: 2px solid rgba(255,255,255,.18); border-radius: 50%; }
body.theme-football .hero-poster { border-radius: 0; transform: skewX(-4deg); }
body.theme-football .hero-poster > * { transform: skewX(4deg); }
body.theme-football .trust-strip { background: var(--ink); color: var(--paper); max-width: none; margin-bottom: 80px; padding: 20px max(32px, calc((100vw - 1100px) / 2)); border: 0; }
body.theme-football .trust-strip b { color: var(--accent); }
body.theme-football .trip-card { border-radius: 0; border-top-width: 7px; }
body.theme-football .trip-date { display: inline-block; padding: 4px 7px; background: var(--accent); color: var(--ink); }
body.theme-football .how-it-works { border-top: 8px solid var(--accent); }

/* Multi-sport — fast, clean and event-led, with track-inspired motion. */
body.theme-sports { background-image: repeating-linear-gradient(-45deg, transparent 0 26px, color-mix(in srgb, var(--accent) 5%, transparent) 27px 29px); }
body.theme-sports .site-header { border-bottom: 3px solid var(--accent); }
body.theme-sports .brand-mark { border-radius: 12px; transform: rotate(-8deg); }
body.theme-sports .hero { border-radius: 42px 42px 8px 42px; }
body.theme-sports .hero-poster { border-radius: 42px 8px 42px 8px; transform: rotate(-2deg); }
body.theme-sports .trip-card { border-radius: 18px 18px 4px 18px; border-top-width: 5px; }
body.theme-sports .trip-art::before { border-radius: 12px; transform: rotate(45deg); }
body.theme-sports .trip-meta { align-items: end; }
body.theme-sports .how-it-works { position: relative; overflow: hidden; }
body.theme-sports .how-it-works::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(125deg, transparent 0 70px, rgba(255,255,255,.035) 71px 74px); }

/* Rugby — heavy club character: upright forms, strong lines and no gloss. */
body.theme-rugby { background-image: linear-gradient(90deg, color-mix(in srgb, var(--brand) 5%, transparent) 50%, transparent 50%); background-size: 12px 12px; }
body.theme-rugby .site-header { border-bottom: 4px solid var(--brand); }
body.theme-rugby .brand-mark { border-radius: 2px; background: var(--brand); border: 2px solid var(--accent); }
body.theme-rugby .hero { border-radius: 2px; border-inline: 12px solid color-mix(in srgb, var(--accent) 70%, var(--brand)); }
body.theme-rugby .hero-poster { border-radius: 2px; transform: none; border: 3px solid color-mix(in srgb, var(--paper) 64%, transparent); }
body.theme-rugby .trust-strip { border-top: 4px solid var(--brand); border-bottom: 1px solid var(--brand); }
body.theme-rugby .trip-card { border-radius: 2px; border-top: 8px solid var(--accent); }
body.theme-rugby .trip-art::before { border-radius: 2px; }
body.theme-rugby .how-it-works { border-block: 8px solid var(--accent); }
body.theme-rugby .how-it-works li { border-top-width: 2px; }
body.theme-rugby .how-it-works li > span { border-radius: 2px; }

/* Horse racing — refined racecard columns, silks stripes and ceremonial gold. */
body.theme-racing { background-image: linear-gradient(90deg, color-mix(in srgb, var(--accent) 13%, transparent) 1px, transparent 1px); background-size: 8px 8px; }
body.theme-racing .site-header { max-width: none; padding-inline: max(24px, calc((100vw - 1176px) / 2)); border-bottom: 1px solid var(--accent); }
body.theme-racing .brand-mark { border-radius: 50% 50% 0 0; border: 1px solid var(--accent); }
body.theme-racing .hero { border-top-width: 2px; border-bottom-width: 2px; background: linear-gradient(105deg, var(--brand) 0 62%, color-mix(in srgb, var(--accent) 18%, var(--brand)) 62%); }
body.theme-racing .hero-poster { border: 1px solid var(--accent); transform: none; }
body.theme-racing .trip-grid { gap: 14px; }
body.theme-racing .trip-card { border-inline: 1px solid var(--ink); border-bottom: 5px double var(--accent); box-shadow: none; }
body.theme-racing .trip-body { padding: 28px 25px; }
body.theme-racing .trip-date { color: var(--brand); font-variant-numeric: tabular-nums; }
body.theme-racing .how-it-works { border-top: 1px solid var(--accent); }
body.theme-racing .how-it-works li > span { border-radius: 50%; border: 1px solid var(--accent); }

/* Motorsport — precision, telemetry and a low-slung race garage silhouette. */
body.theme-motorsport { background-image: linear-gradient(90deg, color-mix(in srgb, var(--ink) 6%, transparent) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--ink) 6%, transparent) 1px, transparent 1px); background-size: 18px 18px; }
body.theme-motorsport .site-header { background: var(--ink); color: var(--paper); max-width: none; padding-inline: max(24px, calc((100vw - 1176px) / 2)); }
body.theme-motorsport .brand small { color: color-mix(in srgb, var(--paper) 65%, transparent); }
body.theme-motorsport .brand-mark { border-radius: 0; background: var(--accent); color: var(--ink); clip-path: polygon(12% 0,100% 0,88% 100%,0 100%); }
body.theme-motorsport .hero { min-height: 500px; border-left-width: 13px; border-radius: 0; }
body.theme-motorsport .hero-poster { border-radius: 0; transform: skewX(-7deg); }
body.theme-motorsport .hero-poster > * { transform: skewX(7deg); }
body.theme-motorsport .trip-grid { gap: 14px; }
body.theme-motorsport .trip-card { border-radius: 0; border: 1px solid var(--ink); border-top: 6px solid var(--accent); box-shadow: 6px 6px 0 color-mix(in srgb, var(--ink) 70%, transparent); }
body.theme-motorsport .trip-art { height: 185px; }
body.theme-motorsport .trip-art::before { border-radius: 0; clip-path: polygon(30% 0,100% 0,100% 70%,70% 100%,0 100%,0 30%); }
body.theme-motorsport .how-it-works { border-top: 13px solid var(--accent); }
body.theme-motorsport .how-it-works li > span { border-radius: 0; }

/* Motocross — earthy and raw: stacked cards, torn angles and dirt-track texture. */
body.theme-motocross { background-color: color-mix(in srgb, var(--paper) 92%, var(--accent)); background-image: radial-gradient(color-mix(in srgb, var(--ink) 13%, transparent) .8px, transparent .9px), radial-gradient(color-mix(in srgb, var(--accent) 35%, transparent) 1px, transparent 1.2px); background-position: 0 0, 8px 10px; background-size: 17px 17px, 23px 23px; }
body.theme-motocross .site-header { border-bottom: 6px solid var(--accent); }
body.theme-motocross .brand-mark { border-radius: 0; transform: rotate(-6deg); }
body.theme-motocross .hero { border-radius: 0 26px 0 26px; border-left-width: 14px; clip-path: polygon(0 0,100% 0,100% 94%,96% 100%,0 100%); }
body.theme-motocross .hero-poster { border-radius: 0 22px 0 22px; transform: rotate(-3deg); }
body.theme-motocross .trust-strip { border-bottom: 4px dashed var(--ink); }
body.theme-motocross .trip-grid { gap: 30px 20px; }
body.theme-motocross .trip-card { border: 2px solid var(--ink); border-radius: 0 18px 0 18px; box-shadow: 5px 6px 0 var(--accent); }
body.theme-motocross .trip-card:nth-child(even) { transform: rotate(.6deg) translateY(8px); }
body.theme-motocross .trip-art { clip-path: polygon(0 0,100% 0,100% 88%,94% 100%,0 100%); }
body.theme-motocross .how-it-works { border-top: 7px dashed var(--accent); }
body.theme-motocross .how-it-works li > span { border-radius: 0; transform: rotate(-5deg); }

/* Theatre — velvet curtains, framed playbills and opening-night brass. */
body.theme-theatre { background-image: linear-gradient(90deg, color-mix(in srgb, var(--brand) 3%, transparent) 50%, transparent 50%); background-size: 10px 10px; }
body.theme-theatre :is(.hero h1, .product-hero h1, .section-heading h2, .how-it-works h2, .trip-body h3, .narrow-page h1) { font-family: Georgia, "Times New Roman", serif; font-weight: 600; }
body.theme-theatre .site-header { border-bottom: 1px solid var(--accent); }
body.theme-theatre .brand-mark { border: 2px solid var(--accent); border-radius: 50% 50% 8px 8px; box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand) 12%, transparent); }
body.theme-theatre .hero { position: relative; border: 8px double var(--accent); border-radius: 34px 34px 8px 8px; background-image: linear-gradient(90deg, rgba(0,0,0,.22), transparent 12%, transparent 88%, rgba(0,0,0,.22)), repeating-linear-gradient(90deg, var(--brand) 0 9%, color-mix(in srgb, var(--brand) 80%, black) 10% 17%); }
body.theme-theatre .hero::after { position: absolute; inset: 18px; border: 1px solid color-mix(in srgb, var(--accent) 60%, transparent); border-radius: 22px 22px 3px 3px; content: ""; pointer-events: none; }
body.theme-theatre .hero-copy { position: relative; z-index: 1; }
body.theme-theatre .hero-poster { border: 5px double var(--brand); border-radius: 999px 999px 18px 18px; transform: none; box-shadow: 0 0 0 7px color-mix(in srgb, var(--accent) 68%, transparent); }
body.theme-theatre .button { border: 1px solid color-mix(in srgb, var(--brand) 45%, transparent); box-shadow: inset 0 0 0 2px color-mix(in srgb, white 45%, transparent); }
body.theme-theatre .trust-strip { border-block: 3px double var(--accent); }
body.theme-theatre .trip-card { border: 1px solid var(--accent); border-radius: 18px 18px 4px 4px; box-shadow: 0 16px 30px color-mix(in srgb, var(--brand) 12%, transparent); }
body.theme-theatre .trip-art { border-bottom: 5px double var(--accent); }
body.theme-theatre .how-it-works { border-block: 8px double var(--accent); }
body.theme-theatre .how-it-works li > span { border: 1px solid var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent); }

/* Cinema — widescreen crops, dark screening-room surfaces and premiere gold. */
body.theme-cinema { --muted: color-mix(in srgb, var(--ink) 66%, transparent); --line: color-mix(in srgb, var(--ink) 22%, transparent); background-image: radial-gradient(circle at 50% -10%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 38rem); }
body.theme-cinema :is(.hero h1, .product-hero h1, .section-heading h2, .how-it-works h2, .trip-body h3, .narrow-page h1) { font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-weight: 850; letter-spacing: -.055em; }
body.theme-cinema .site-header { max-width: none; padding-inline: max(24px, calc((100vw - 1176px) / 2)); border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 88%, black); }
body.theme-cinema .brand-mark { border: 1px solid var(--accent); border-radius: 4px; background: transparent; color: var(--accent); }
body.theme-cinema .hero { min-height: 520px; border: 1px solid var(--line); border-radius: 6px; background: linear-gradient(115deg, var(--brand), color-mix(in srgb, var(--brand) 70%, black)); box-shadow: 0 28px 80px rgba(0,0,0,.5); }
body.theme-cinema .hero::before, body.theme-cinema .hero::after { position: absolute; z-index: 2; right: 0; left: 0; height: 18px; background: #05070a; content: ""; pointer-events: none; }
body.theme-cinema .hero { position: relative; }
body.theme-cinema .hero::before { top: 0; }
body.theme-cinema .hero::after { bottom: 0; }
body.theme-cinema .hero-poster { border: 1px solid var(--accent); border-radius: 3px; transform: none; box-shadow: 0 0 38px color-mix(in srgb, var(--accent) 16%, transparent); }
body.theme-cinema .button { border-radius: 4px; background: var(--accent); text-transform: uppercase; letter-spacing: .08em; }
body.theme-cinema .trust-strip { border-color: var(--line); }
body.theme-cinema :is(.trip-card, .empty-state, .product-layout, .lookup-result, .ticket, .request-card, .square-payment-card, .test-payment-card, .account-booking-card, .price-card, .product-summary, .product-details) { border-color: var(--line); background: color-mix(in srgb, var(--brand) 74%, black); color: var(--ink); box-shadow: none; }
body.theme-cinema .trip-card { border-radius: 4px; }
body.theme-cinema .trip-art { height: 190px; border-bottom: 6px solid var(--accent); background: #080b10; }
body.theme-cinema .trip-body > p, body.theme-cinema .product-details .product-copy, body.theme-cinema .prose { color: var(--muted); }
body.theme-cinema :is(.how-it-works, .product-hero, .booking-summary, .ticket-foot) { border-block: 1px solid var(--line); background: #070a0f; }
body.theme-cinema .how-it-works li > span { border-radius: 4px; }
body.theme-cinema :is(.note, .stop-finder, .booking-panel, .marketing-information, .account-booking-payment) { border-color: var(--line); background: color-mix(in srgb, var(--brand) 82%, black); color: var(--ink); }
body.theme-cinema :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]), select, textarea, .password-field) { border-color: var(--line); background: #090d13; color: var(--ink); }

/* Luxury — restrained spacing, fine metallic rules and editorial calm. */
body.theme-luxury { background-image: linear-gradient(90deg, transparent calc(50% - 1px), color-mix(in srgb, var(--accent) 10%, transparent) 50%, transparent calc(50% + 1px)); }
body.theme-luxury :is(.hero h1, .product-hero h1, .section-heading h2, .how-it-works h2, .trip-body h3, .narrow-page h1) { font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.045em; }
body.theme-luxury .site-header { padding-block: 34px; border-bottom: 1px solid color-mix(in srgb, var(--accent) 60%, transparent); }
body.theme-luxury .brand-mark { border: 1px solid var(--accent); border-radius: 50%; background: transparent; color: var(--brand); }
body.theme-luxury .hero { min-height: 540px; border: 1px solid var(--accent); border-radius: 2px; background: linear-gradient(120deg, var(--brand), color-mix(in srgb, var(--brand) 82%, var(--accent))); }
body.theme-luxury .hero-copy { padding-block: 110px; }
body.theme-luxury .hero-poster { margin: 72px 72px 72px 0; border: 1px solid color-mix(in srgb, var(--paper) 70%, transparent); border-radius: 50% 50% 0 0; transform: none; box-shadow: none; }
body.theme-luxury .button { border: 1px solid var(--accent); border-radius: 2px; background: transparent; color: inherit; letter-spacing: .1em; text-transform: uppercase; }
body.theme-luxury .hero .button, body.theme-luxury .product-hero .button { color: white; }
body.theme-luxury .trust-strip { padding-block: 34px; border-block: 1px solid var(--accent); }
body.theme-luxury .trip-grid { gap: 38px; }
body.theme-luxury .trip-card { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body.theme-luxury .trip-art { height: 300px; border: 1px solid color-mix(in srgb, var(--accent) 70%, transparent); }
body.theme-luxury .trip-body { padding-inline: 4px; }
body.theme-luxury .how-it-works { border-block: 1px solid var(--accent); }
body.theme-luxury .how-it-works li > span { border: 1px solid var(--accent); border-radius: 50%; background: transparent; color: var(--accent); }

/* Coastal — airy curves, horizon bands and soft wave-shaped surfaces. */
body.theme-coastal { background-image: radial-gradient(ellipse at 8% 10%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 25rem), linear-gradient(180deg, color-mix(in srgb, var(--brand) 5%, transparent), transparent 30rem); }
body.theme-coastal .site-header { border-bottom: 3px solid color-mix(in srgb, var(--accent) 70%, transparent); }
body.theme-coastal .brand-mark { border-radius: 55% 45% 60% 40%; transform: rotate(-5deg); }
body.theme-coastal .hero { position: relative; overflow: hidden; border-radius: 70px 70px 18px 18px; background: linear-gradient(155deg, var(--brand), color-mix(in srgb, var(--brand) 68%, var(--accent))); }
body.theme-coastal .hero::after { position: absolute; right: -5%; bottom: -110px; width: 72%; height: 210px; border-radius: 50%; background: color-mix(in srgb, var(--accent) 28%, white); content: ""; opacity: .36; }
body.theme-coastal .hero-copy, body.theme-coastal .hero-poster { position: relative; z-index: 1; }
body.theme-coastal .hero-poster { border-radius: 52% 48% 18px 18px; transform: rotate(1deg); }
body.theme-coastal .button { border-radius: 999px; box-shadow: 0 8px 24px color-mix(in srgb, var(--brand) 22%, transparent); }
body.theme-coastal .trust-strip { border-bottom: 0; border-top: 1px solid color-mix(in srgb, var(--brand) 26%, transparent); }
body.theme-coastal .trip-card { border: 0; border-radius: 28px 28px 60px 28px; box-shadow: 0 16px 40px color-mix(in srgb, var(--brand) 12%, transparent); }
body.theme-coastal .trip-art { border-radius: 26px 26px 45% 8px; background: linear-gradient(160deg, var(--brand), color-mix(in srgb, var(--accent) 62%, var(--brand))); }
body.theme-coastal .trip-art::before { right: -25px; bottom: -100px; width: 270px; height: 220px; background: color-mix(in srgb, var(--paper) 45%, var(--accent)); }
body.theme-coastal .how-it-works { border-top: 8px solid color-mix(in srgb, var(--accent) 70%, white); }

/* Alpine — crisp peaks, sloped panels and winter-sport geometry. */
body.theme-alpine { background-image: linear-gradient(150deg, transparent 0 68%, color-mix(in srgb, var(--brand) 5%, transparent) 68% 69%, transparent 69%); background-size: 120px 72px; }
body.theme-alpine .site-header { border-bottom: 4px solid var(--accent); }
body.theme-alpine .brand-mark { border-radius: 4px; clip-path: polygon(50% 0,100% 100%,0 100%); padding-top: 10px; }
body.theme-alpine .hero { position: relative; border-radius: 8px; clip-path: polygon(0 0,100% 0,100% 91%,88% 100%,0 100%); }
body.theme-alpine .hero::after { position: absolute; right: 4%; bottom: 0; width: 44%; height: 58%; background: color-mix(in srgb, var(--paper) 14%, transparent); clip-path: polygon(0 100%,35% 22%,49% 47%,65% 0,100% 100%); content: ""; }
body.theme-alpine .hero-copy, body.theme-alpine .hero-poster { position: relative; z-index: 1; }
body.theme-alpine .hero-poster { border-radius: 4px; clip-path: polygon(0 12%,100% 0,100% 100%,0 100%); transform: none; }
body.theme-alpine .button { border-radius: 4px; clip-path: polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%); }
body.theme-alpine .trip-card { border-radius: 5px; border-top: 7px solid var(--accent); box-shadow: 7px 8px 0 color-mix(in srgb, var(--brand) 13%, transparent); }
body.theme-alpine .trip-art { clip-path: polygon(0 0,100% 0,100% 86%,82% 100%,0 100%); }
body.theme-alpine .trip-art::before { border-radius: 0; clip-path: polygon(50% 0,100% 100%,0 100%); }
body.theme-alpine .how-it-works { clip-path: polygon(0 4vw,100% 0,100% 100%,0 100%); padding-top: calc(100px + 2vw); }
body.theme-alpine .how-it-works li > span { border-radius: 4px; }

/* Adventure — topographic texture, trail markers and durable field cards. */
body.theme-adventure { background-image: repeating-radial-gradient(ellipse at 0 0, transparent 0 28px, color-mix(in srgb, var(--brand) 7%, transparent) 29px 30px); }
body.theme-adventure .site-header { border-bottom: 2px dashed color-mix(in srgb, var(--brand) 48%, transparent); }
body.theme-adventure .brand-mark { border: 2px solid var(--accent); border-radius: 50% 50% 50% 8px; transform: rotate(-6deg); }
body.theme-adventure .hero { border: 2px solid var(--brand); border-radius: 8px 42px 8px 42px; box-shadow: 10px 12px 0 color-mix(in srgb, var(--accent) 34%, transparent); }
body.theme-adventure .hero-poster { border: 2px dashed var(--brand); border-radius: 50% 50% 8px 50%; transform: rotate(-2deg); }
body.theme-adventure .button { border: 2px solid var(--brand); border-radius: 8px; box-shadow: 4px 4px 0 color-mix(in srgb, var(--brand) 28%, transparent); }
body.theme-adventure .trust-strip { border-bottom: 2px dashed var(--brand); }
body.theme-adventure .trust-strip b { display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem; border: 2px solid var(--brand); border-radius: 50% 50% 50% 4px; }
body.theme-adventure .trip-card { border: 2px solid var(--brand); border-radius: 7px 28px 7px 28px; box-shadow: 5px 6px 0 color-mix(in srgb, var(--accent) 45%, transparent); }
body.theme-adventure .trip-art { background: linear-gradient(145deg, var(--brand), color-mix(in srgb, var(--brand) 65%, var(--accent))); }
body.theme-adventure .trip-art::before { border-radius: 50% 50% 50% 8px; }
body.theme-adventure .how-it-works { border-top: 5px dashed var(--accent); }
body.theme-adventure .how-it-works li > span { border-radius: 50% 50% 50% 5px; }

/* Family — confident colour, soft shapes and generous tap-friendly cards. */
body.theme-family { background-image: radial-gradient(circle at 12% 5%, color-mix(in srgb, var(--accent) 18%, transparent) 0 80px, transparent 81px), radial-gradient(circle at 92% 28%, color-mix(in srgb, var(--brand) 9%, transparent) 0 120px, transparent 121px); }
body.theme-family :is(.hero h1, .product-hero h1, .section-heading h2, .how-it-works h2, .trip-body h3) { font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-weight: 850; letter-spacing: -.045em; }
body.theme-family .site-header { border-bottom: 5px solid var(--accent); }
body.theme-family .brand-mark { border-radius: 16px 50% 50% 50%; transform: rotate(-5deg); }
body.theme-family .hero { border-radius: 70px 24px 70px 24px; box-shadow: 0 18px 0 color-mix(in srgb, var(--accent) 55%, transparent); }
body.theme-family .hero-poster { border: 6px solid color-mix(in srgb, white 62%, transparent); border-radius: 48% 52% 44% 56%; transform: rotate(2deg); }
body.theme-family .button { min-height: 52px; border-radius: 18px 18px 18px 5px; box-shadow: 0 7px 0 color-mix(in srgb, var(--brand) 42%, transparent); }
body.theme-family .trust-strip b { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 12px 50% 50% 50%; background: var(--accent); color: var(--ink); }
body.theme-family .trip-grid { gap: 32px; }
body.theme-family .trip-card { border: 3px solid color-mix(in srgb, var(--brand) 65%, transparent); border-radius: 28px 28px 28px 7px; box-shadow: 8px 9px 0 color-mix(in srgb, var(--accent) 58%, transparent); }
body.theme-family .trip-card:nth-child(3n + 2) { border-radius: 28px 7px 28px 28px; }
body.theme-family .trip-art { border-radius: 24px 24px 38% 5px; }
body.theme-family .trip-art::before { border-radius: 44% 56% 38% 62%; }
body.theme-family .how-it-works li > span { width: 42px; height: 42px; border-radius: 15px 50% 50% 50%; }

/* Corporate — orderly information architecture, crisp rules and restrained motion. */
body.theme-corporate { background-image: linear-gradient(90deg, color-mix(in srgb, var(--brand) 4%, transparent) 1px, transparent 1px); background-size: calc((100vw - 64px) / 12) 100%; }
body.theme-corporate .site-header { max-width: none; padding-inline: max(24px, calc((100vw - 1176px) / 2)); border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 92%, white); }
body.theme-corporate .brand-mark { border-radius: 8px; }
body.theme-corporate .hero { min-height: 480px; border-radius: 12px; border-left: 10px solid var(--accent); }
body.theme-corporate .hero h1, body.theme-corporate .section-heading h2, body.theme-corporate .how-it-works h2, body.theme-corporate .trip-body h3 { font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-weight: 780; letter-spacing: -.045em; }
body.theme-corporate .hero-poster { border-radius: 8px; transform: none; box-shadow: none; }
body.theme-corporate .button { border-radius: 8px; box-shadow: none; }
body.theme-corporate .trust-strip { border-block: 1px solid var(--line); }
body.theme-corporate .trip-grid { grid-template-columns: 1fr; gap: 14px; }
body.theme-corporate .trip-card { display: grid; grid-template-columns: minmax(220px, .45fr) minmax(0, 1fr); border-radius: 10px; border-left: 6px solid var(--accent); }
body.theme-corporate .trip-art { height: 100%; min-height: 220px; }
body.theme-corporate .trip-body { display: grid; align-content: center; }
body.theme-corporate .how-it-works { border-top: 10px solid var(--accent); }
body.theme-corporate .how-it-works li > span { border-radius: 7px; }

/* Heritage — excursion tickets, warm paper and station-sign typography. */
body.theme-heritage { background-image: repeating-linear-gradient(0deg, color-mix(in srgb, var(--brand) 3%, transparent) 0 1px, transparent 1px 5px); }
body.theme-heritage :is(.hero h1, .product-hero h1, .section-heading h2, .how-it-works h2, .trip-body h3, .narrow-page h1) { font-family: Georgia, "Times New Roman", serif; }
body.theme-heritage .site-header { border-block: 4px double var(--brand); }
body.theme-heritage .brand-mark { border: 3px double var(--accent); border-radius: 2px; }
body.theme-heritage .hero { border: 4px double var(--accent); border-radius: 2px; box-shadow: 9px 9px 0 color-mix(in srgb, var(--brand) 16%, transparent); }
body.theme-heritage .hero-poster { border: 4px double var(--brand); border-radius: 2px; transform: rotate(1deg); }
body.theme-heritage .button { border: 1px solid var(--brand); border-radius: 2px; box-shadow: 3px 3px 0 color-mix(in srgb, var(--brand) 30%, transparent); text-transform: uppercase; letter-spacing: .07em; }
body.theme-heritage .trust-strip { border-block: 4px double var(--brand); }
body.theme-heritage .trip-card { position: relative; overflow: visible; border: 2px solid var(--brand); border-radius: 2px; box-shadow: 5px 6px 0 color-mix(in srgb, var(--brand) 14%, transparent); }
body.theme-heritage .trip-card::before, body.theme-heritage .trip-card::after { position: absolute; z-index: 3; top: 244px; width: 18px; height: 18px; border: 2px solid var(--brand); border-radius: 50%; background: var(--paper); content: ""; }
body.theme-heritage .trip-card::before { left: -11px; }
body.theme-heritage .trip-card::after { right: -11px; }
body.theme-heritage .trip-art { border-bottom: 2px dashed var(--brand); }
body.theme-heritage .trip-date { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
body.theme-heritage .how-it-works { border-block: 5px double var(--accent); }
body.theme-heritage .how-it-works li > span { border: 2px solid var(--accent); border-radius: 2px; background: transparent; color: var(--accent); }

/* Future — layered glass, precise grids and restrained cyan telemetry. */
body.theme-future { background-image: linear-gradient(color-mix(in srgb, var(--brand) 7%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--brand) 7%, transparent) 1px, transparent 1px), radial-gradient(circle at 80% 10%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 25rem); background-size: 32px 32px, 32px 32px, auto; }
body.theme-future :is(.hero h1, .product-hero h1, .section-heading h2, .how-it-works h2, .trip-body h3) { font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-weight: 820; letter-spacing: -.055em; }
body.theme-future .site-header { border: 1px solid color-mix(in srgb, var(--accent) 44%, transparent); border-radius: 18px; background: color-mix(in srgb, var(--paper) 72%, transparent); backdrop-filter: blur(18px) saturate(145%); }
body.theme-future .brand-mark { border: 1px solid var(--accent); border-radius: 10px 2px 10px 2px; box-shadow: 0 0 18px color-mix(in srgb, var(--accent) 30%, transparent); }
body.theme-future .hero { position: relative; border: 1px solid color-mix(in srgb, var(--accent) 56%, transparent); border-radius: 8px 42px 8px 42px; background: linear-gradient(130deg, var(--brand), color-mix(in srgb, var(--brand) 70%, var(--accent))); box-shadow: 0 24px 70px color-mix(in srgb, var(--brand) 24%, transparent); }
body.theme-future .hero::after { position: absolute; inset: 18px; border: 1px solid color-mix(in srgb, var(--accent) 25%, transparent); border-radius: 4px 32px 4px 32px; content: ""; pointer-events: none; }
body.theme-future .hero-copy, body.theme-future .hero-poster { position: relative; z-index: 1; }
body.theme-future .hero-poster { border: 1px solid var(--accent); border-radius: 4px 26px 4px 26px; transform: none; box-shadow: 0 0 30px color-mix(in srgb, var(--accent) 25%, transparent); }
body.theme-future .button { border: 1px solid color-mix(in srgb, var(--accent) 60%, transparent); border-radius: 8px 2px 8px 2px; box-shadow: 0 0 20px color-mix(in srgb, var(--accent) 20%, transparent); }
body.theme-future .trust-strip { border: 1px solid color-mix(in srgb, var(--accent) 44%, transparent); border-radius: 12px; padding: 20px 24px; }
body.theme-future .trip-card { border: 1px solid color-mix(in srgb, var(--accent) 46%, transparent); border-radius: 6px 24px 6px 24px; background: color-mix(in srgb, white 66%, transparent); box-shadow: 0 18px 45px color-mix(in srgb, var(--brand) 14%, transparent); backdrop-filter: blur(15px); }
body.theme-future .trip-art { clip-path: polygon(0 0,100% 0,100% 90%,90% 100%,0 100%); }
body.theme-future .trip-art::before { border-radius: 0; clip-path: polygon(30% 0,100% 0,100% 70%,70% 100%,0 100%,0 30%); }
body.theme-future .how-it-works { border-top: 1px solid var(--accent); background: linear-gradient(120deg, var(--brand), color-mix(in srgb, var(--brand) 72%, var(--accent))); }
body.theme-future .how-it-works li > span { border: 1px solid var(--accent); border-radius: 7px 2px 7px 2px; }

@media (max-width: 900px) {
    body.theme-editorial .trip-card { border-right: 0; border-bottom: 1px solid var(--ink); }
    body.theme-editorial .hero { grid-template-columns: 1fr; }
    body.theme-editorial .hero-poster { min-height: 300px; }
    body.theme-festival .trip-card:nth-child(even), body.theme-motocross .trip-card:nth-child(even) { transform: none; }
    body.theme-corporate .trip-card { grid-template-columns: minmax(180px, .5fr) minmax(0, 1fr); }
    body.theme-luxury .hero-copy { padding-block: 82px; }
}

@media (max-width: 620px) {
    body.theme-editorial .site-header, body.theme-racing .site-header { margin-inline: 18px; }
    body.theme-festival .hero { box-shadow: 5px 5px 0 var(--accent); }
    body.theme-football .hero, body.theme-rugby .hero { border-inline-width: 6px; }
    body.theme-motorsport .hero, body.theme-motocross .hero { border-left-width: 8px; }
    body.theme-theatre .hero { border-width: 4px; }
    body.theme-cinema .hero::before, body.theme-cinema .hero::after { height: 10px; }
    body.theme-luxury .hero-copy { padding-block: 62px; }
    body.theme-coastal .hero { border-radius: 34px 34px 10px 10px; }
    body.theme-alpine .how-it-works { clip-path: none; padding-top: 70px; }
    body.theme-family .trip-card:nth-child(3n + 2) { border-radius: 28px 28px 28px 7px; }
    body.theme-corporate .trip-card { display: block; }
    body.theme-corporate .trip-art { min-height: 200px; }
    body.theme-heritage .trip-card::before, body.theme-heritage .trip-card::after { top: 244px; }
    body.theme-future .site-header { margin: 12px; }
}

/* Business controls are authoritative after the preset has supplied its character. */
body.buttons-square :is(.button, .input-button button, .stop-row a) { border-radius: 3px; }
body.buttons-rounded :is(.button, .input-button button, .stop-row a) { border-radius: 12px; }
body.buttons-pill :is(.button, .input-button button, .stop-row a) { border-radius: 999px; }

/* The checkout password mode switches use the semantic hidden attribute. The
   label layout rule above would otherwise override the browser's default. */
.checkout-form [data-account-access][hidden],
.checkout-form .checkout-account-access [hidden] { display: none; }

/* Checkout feedback stays visible and actionable before customers reach the
   long ticket-holder and payment sections. */
.checkout-error-summary { margin: 24px 0 0; border-left: 5px solid #a51c30; scroll-margin-top: 24px; }
.checkout-error-summary:focus { outline: 3px solid color-mix(in srgb, #a51c30 28%, transparent); outline-offset: 3px; }
.checkout-error-summary[hidden],
.checkout-inline-error[hidden] { display: none !important; }
.checkout-inline-error { display: block; color: #a51c30; font-size: .76rem; font-weight: 750; line-height: 1.4; }
.checkout-form :is(input, select, textarea)[aria-invalid="true"] { border-color: #a51c30; box-shadow: 0 0 0 3px color-mix(in srgb, #a51c30 14%, transparent); }
.checkout-draft-note { margin: 13px auto 0; max-width: 48rem; color: var(--muted); font-size: .74rem; line-height: 1.5; text-align: center; }
.passenger-details details > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.passenger-details details > summary small { padding: 4px 8px; border-radius: 999px; background: color-mix(in srgb, #a51c30 11%, transparent); color: #8a2836; font-size: .66rem; line-height: 1.2; }
.passenger-details details > summary small.is-complete { background: color-mix(in srgb, #218348 14%, transparent); color: #176537; }
.passenger-details label { position: relative; }
.passenger-details :is(.required-marker, .optional-marker) { position: absolute; top: 0; right: 0; color: var(--muted); font-size: .62rem; font-weight: 850; letter-spacing: .06em; line-height: 1.4; text-transform: uppercase; }
.passenger-details .required-marker { color: #8a2836; }
body.theme-neon .checkout-inline-error,
body.theme-neon .passenger-details .required-marker { color: #ff8ed5; }
body.theme-neon .passenger-details details > summary small { background: rgba(255, 43, 184, .16); color: #ff9bda; }
body.theme-neon .passenger-details details > summary small.is-complete { background: rgba(198, 255, 0, .15); color: #c6ff00; }

@media (max-width: 620px) {
    .passenger-details details > summary { align-items: flex-start; }
    .passenger-details details > summary small { flex: none; max-width: 9.5rem; text-align: center; }
}

/* Availability wording — "on sale soon" is a neutral, expected state, so it
   must not borrow the accent used for "seats left" or the red used for
   "fully booked". See Product::availabilityLabel(). */
.seat-availability.is-pending { background: rgba(38, 49, 66, .08); color: #4a5560; }
.seat-count.is-pending { color: inherit; opacity: .85; }
.unavailable.is-pending { background: #e6e9ec; color: #46515c; }

.stop-notice { margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; background: rgba(38, 49, 66, .07); color: var(--ink); font-size: .82rem; line-height: 1.45; }
.stop-notice strong { display: block; font-weight: 900; }
.stop-notice--sold-out { background: #f7e4e4; color: #7c2626; }

/* Trip cards with no uploaded photo previously rendered an empty decorative
   panel three times over. Naming the event makes the grid scannable. */
.trip-art-fallback { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: space-between; height: 100%; width: 100%; }
.trip-art-fallback span { font-size: .72rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; opacity: .85; }
/* Beats the legacy `.trip-art strong` rule, which right-aligns the old
   decorative title straight onto the accent circle. */
.trip-art .trip-art-date { align-self: flex-start; max-width: none; display: inline-flex; flex-direction: column; align-items: center; padding: 9px 14px 7px; border-radius: 14px; background: color-mix(in srgb, var(--ink) 62%, transparent); color: #fff; font-family: inherit; font-size: .74rem; font-weight: 900; letter-spacing: .14em; line-height: 1.1; text-align: center; text-transform: uppercase; }
.trip-art .trip-art-date b { font-family: Georgia, serif; font-size: 2.4rem; font-weight: 400; line-height: .92; letter-spacing: -.03em; }

/* Secure invoice link page — the PDF viewer is the primary content, so the
   figures on screen can never drift from the document that downloads. */
.invoice-viewer { margin: 24px 0 0; }
.invoice-viewer iframe { display: block; width: 100%; height: min(78vh, 900px); border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.invoice-viewer figcaption { margin-top: 10px; color: var(--muted); font-size: .82rem; }
.invoice-actions { margin: 18px 0 4px; }
.invoice-text-version { margin-top: 26px; border-top: 1px solid var(--line); padding-top: 14px; }
.invoice-text-version summary { cursor: pointer; font-weight: 800; font-size: .88rem; }
.invoice-lines { width: 100%; border-collapse: collapse; margin: 18px 0 6px; font-size: .92rem; }
.invoice-lines th, .invoice-lines td { padding: 9px 6px; border-bottom: 1px solid rgba(23, 33, 43, .12); text-align: left; }
.invoice-lines th { font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.invoice-lines .right { text-align: right; }
.invoice-lines tfoot td { border-bottom: 0; padding-top: 8px; }
.invoice-lines__total td { border-top: 2px solid var(--ink); font-weight: 700; font-size: 1.05rem; }
.invoice-note { margin: 18px 0; padding: 14px 16px; background: rgba(23, 33, 43, .04); border-radius: 12px; }
.invoice-pay { margin: 24px 0; padding: 18px; border: 1px solid var(--accent); border-radius: 14px; }
.invoice-pay h2 { margin: 0 0 10px; font-size: 1.05rem; }
.invoice-bank-details { white-space: pre-line; font-family: ui-monospace, monospace; background: rgba(23, 33, 43, .05); padding: 12px 14px; border-radius: 10px; margin: 8px 0; }

/* Inline PDF rendering is unreliable on small screens, so lead with the
   download there rather than showing an empty grey box. */
@media (max-width: 620px) {
    .invoice-viewer iframe { height: 60vh; }
}

/* Web ticket — wallet-pass treatment. Base classes keep their legacy names so
   every theme preset's .ticket overrides continue to apply on top. */
.ticket-page { max-width: 860px; }
.ticket { box-shadow: 0 24px 60px rgba(23, 33, 43, .12); }
.ticket-head { gap: 14px; padding: 18px 24px; border-bottom: 0; background: var(--brand); color: #fff; }
.ticket-head small { color: color-mix(in srgb, var(--accent) 85%, white); font-size: .68rem; font-weight: 900; letter-spacing: .14em; }
.ticket-head strong { font-size: 1.02rem; }
.ticket-head .brand-logo { max-height: 40px; max-width: 130px; }
.ticket-head .status-pill { margin-left: auto; }
.ticket-art-strip { margin: 0; height: 170px; overflow: hidden; }
.ticket-art-strip img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ticket-main { position: relative; grid-template-columns: 1fr auto auto; gap: 0; padding: 34px 0; }
.ticket-details { min-width: 0; padding: 0 34px; }
.ticket-main h1 { font-size: clamp(2.1rem, 4.5vw, 3.2rem); margin-bottom: 14px; }
.ticket-tear { position: relative; width: 0; border-left: 2px dashed color-mix(in srgb, var(--ink) 22%, transparent); }
.ticket-tear::before, .ticket-tear::after { content: ""; position: absolute; left: -14px; width: 26px; height: 26px; border-radius: 50%; background: var(--paper); }
.ticket-tear::before { top: -47px; }
.ticket-tear::after { bottom: -47px; }
.ticket .qr { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 0 34px; }
.ticket .qr-panel { padding: 12px; border-radius: 16px; background: #fff; border: 1px solid var(--line); }
.ticket .qr img { width: 180px; display: block; }
.ticket .qr-admit { font-size: .78rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.ticket .qr-help { color: var(--muted); font-size: .74rem; }
.ticket-page-actions { display: flex; justify-content: center; }
@media (max-width: 720px) {
    .ticket-main { grid-template-columns: 1fr; padding: 26px 0 30px; }
    .ticket-details { padding: 0 22px; }
    .ticket-art-strip { height: 130px; }
    .ticket-tear { width: auto; height: 0; margin: 24px 0; border-left: 0; border-top: 2px dashed color-mix(in srgb, var(--ink) 22%, transparent); }
    .ticket-tear::before, .ticket-tear::after { left: auto; top: -13px; }
    .ticket-tear::before { left: -13px; }
    .ticket-tear::after { right: -13px; bottom: auto; }
    .ticket .qr { padding: 0 22px; }
    .ticket .qr img { width: min(200px, 62vw); }
}
@media print {
    .ticket { box-shadow: none; }
    .ticket-art-strip { display: none; }
}

/* Booking confirmation — the emotional peak of the whole flow. */
.confirmation-page { text-align: left; }
.confirmation-mark { display: grid; place-items: center; width: 74px; height: 74px; margin-bottom: 24px; border-radius: 50%; background: #12855a; color: #fff; font-size: 2.2rem; font-weight: 900; animation: confirmation-pop .45s cubic-bezier(.2, 1.4, .4, 1) both; }
.confirmation-mark.is-pending { background: var(--brand); animation: none; }
@keyframes confirmation-pop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.confirmation-summary { position: relative; margin: 30px 0 24px; padding: 22px 24px; border: 1px solid var(--line); border-left: 5px solid var(--accent); border-radius: 16px; background: #fff; }
.confirmation-summary strong { display: block; font-family: Georgia, serif; font-size: 1.45rem; line-height: 1.1; margin-bottom: 6px; }
.confirmation-summary p { margin: 0; color: var(--muted); }
.confirmation-summary__total { display: block; margin-top: 12px; font-weight: 900; }
.confirmation-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.button--quiet { background: transparent; box-shadow: inset 0 0 0 2px var(--ink); }
.confirmation-footnote { margin-top: 18px; color: var(--muted); font-size: .85rem; }

/* Global interaction polish: a visible keyboard focus ring everywhere, and
   calm motion for people who ask for it. */
:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 65%, var(--ink)); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    html { scroll-behavior: auto; }
}

/* Ticket holder / passenger details: a solid card so the section reads
   clearly over patterned page backgrounds, with each person separated. */
.passenger-details { background: #fff; box-shadow: 0 4px 14px rgba(23, 32, 57, .05); }
.passenger-details legend { background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 4px 14px; }
.passenger-details details { padding: 14px; margin: 12px 0 0; border: 1px solid var(--line); border-radius: 12px; background: color-mix(in srgb, var(--line) 14%, #fff); }
.passenger-details details[open] > summary { margin-bottom: 14px; }
.passenger-details details > summary { margin-bottom: 0; }
body.theme-neon .passenger-details,
body.theme-neon .passenger-details legend { background: rgba(23, 0, 46, .92); box-shadow: 0 0 18px rgba(113, 60, 255, .16); }
body.theme-neon .passenger-details details { background: rgba(49, 0, 97, .45); }

/* ——— Header variants where the logo leads ————————————————————————————
   Chosen per company in Settings → Appearance. `prominent` keeps the
   one-row layout with a much larger logo; `billboard` is a centred
   masthead with the navigation underneath. */
body.header-prominent .site-header { padding-block: 26px; }
body.header-prominent .site-header .brand { gap: 18px; }
body.header-prominent .site-header .brand-logo,
body.header-prominent .site-header .brand-mark,
body.header-prominent .site-header .brand-logo-clydeside { width: 82px; height: 82px; }
body.header-prominent .site-header .brand-mark { font-size: 1.5rem; }
body.header-prominent .site-header .brand strong { font-size: 1.34rem; letter-spacing: -.02em; }
body.header-prominent .site-header .brand small { font-size: .82rem; }

body.header-billboard .site-header { padding-block: 30px 16px; }
body.header-billboard .site-header .brand-logo,
body.header-billboard .site-header .brand-mark,
body.header-billboard .site-header .brand-logo-clydeside { width: 104px; height: 104px; }
body.header-billboard .site-header .brand-mark { font-size: 1.9rem; }
body.header-billboard .site-header .brand strong { font-size: 1.5rem; letter-spacing: -.02em; }
body.header-billboard .site-header .brand small { font-size: .84rem; }
@media (min-width: 741px) {
    body.header-billboard .site-header { display: flex; flex-direction: column; gap: 16px; }
    body.header-billboard .site-header .brand { flex-direction: column; gap: 12px; text-align: center; }
    body.header-billboard .desktop-nav,
    body.header-billboard .site-menu { margin-left: 0; width: auto; border-top: 0; padding-top: 0; }
    body.header-billboard .desktop-nav { flex-wrap: wrap; justify-content: center; }
    body.header-billboard .site-menu:not([open]) > nav,
    body.header-billboard .site-menu[open] > nav { justify-content: center; }
}
@media (max-width: 740px) {
    /* On phones both keep the practical brand-plus-menu row, just bigger. */
    body.header-prominent .site-header .brand-logo,
    body.header-prominent .site-header .brand-mark,
    body.header-prominent .site-header .brand-logo-clydeside { width: 54px; height: 54px; }
    body.header-billboard .site-header .brand-logo,
    body.header-billboard .site-header .brand-mark,
    body.header-billboard .site-header .brand-logo-clydeside { width: 64px; height: 64px; }
    body.header-prominent .site-header .brand strong,
    body.header-billboard .site-header .brand strong { font-size: 1.05rem; }
}
body.header-prominent .site-header .brand small,
body.header-billboard .site-header .brand small { white-space: normal; overflow: visible; text-overflow: clip; max-width: 52ch; margin-inline: auto; }

/* ——— Instant journey calculator ————————————————————————————————————— */
.journey-calc { max-width: 1176px; margin: 0 auto 40px; padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 20px; }
.journey-calc__intro h2 { margin: 4px 0 6px; }
.journey-calc__intro p { color: var(--muted); margin: 0 0 18px; }
.journey-calc__form { display: grid; gap: 14px; }
.journey-field { position: relative; display: grid; gap: 6px; font-weight: 700; }
.journey-field > span { font-size: .82rem; }
.journey-field input { width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; font: inherit; font-weight: 500; }
.journey-calc__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.journey-suggest { position: absolute; z-index: 20; top: calc(100% + 4px); left: 0; right: 0; margin: 0; padding: 6px; list-style: none; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 18px 40px rgba(23,33,43,.16); max-height: 260px; overflow-y: auto; }
.journey-suggest li { padding: 10px 12px; border-radius: 8px; font-weight: 500; cursor: pointer; }
.journey-suggest li:hover { background: color-mix(in srgb, var(--accent) 16%, transparent); }
.journey-calc__toggle { display: flex; gap: 10px; border: 0; padding: 0; margin: 0; }
.journey-calc__toggle label { display: flex; align-items: center; gap: 7px; padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px; font-weight: 700; cursor: pointer; }
.journey-calc__toggle label:has(input:checked) { border-color: var(--brand); background: color-mix(in srgb, var(--brand) 8%, #fff); }
.journey-calc__status { margin: 14px 0 0; color: var(--muted); font-weight: 600; }
.journey-calc__status.is-error { color: #b3261e; }
.journey-calc__results { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 20px; }
.journey-calc__summary { margin: 0 0 16px; font-weight: 800; }
.journey-vehicles { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.journey-vehicle { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 16px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 16px; }
.journey-vehicle__media { display: grid; place-items: center; width: 64px; height: 48px; border-radius: 10px; background: color-mix(in srgb, var(--brand) 7%, #fff); font-size: 1.6rem; overflow: hidden; }
.journey-vehicle__media img { width: 100%; height: 100%; object-fit: cover; }
.journey-vehicle__copy b { display: block; }
.journey-vehicle__copy small { color: var(--muted); }
.journey-vehicle__price { text-align: right; }
.journey-vehicle__price b { display: block; font-size: 1.15rem; }
.journey-vehicle__price small { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; }
.journey-calc__note { margin: 16px 0 0; color: var(--muted); font-size: .85rem; }

/* Instant booking: confirm details, then the card is held for approval. */
.journey-book { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 22px; display: grid; gap: 14px; }
.journey-book__head h3 { margin: 4px 0 6px; }
.journey-book__price { margin: 0; font-weight: 800; }
.journey-book__price b { font-size: 1.25rem; }
.journey-book__price span { color: var(--muted); font-weight: 600; font-size: .85rem; }
.journey-book__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.journey-book__return[hidden] { display: none; }
.journey-book__return-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.journey-book__return-inputs input { width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; font: inherit; font-weight: 500; }
.journey-book .check { display: flex; gap: 9px; align-items: flex-start; font-weight: 600; font-size: .9rem; }
.journey-book__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 4px; }
.journey-book__reassure { margin: 0; color: var(--muted); font-size: .82rem; }
.button.ghost { background: transparent; color: var(--ink, inherit); border: 1px solid var(--line); }
@media (max-width: 640px) {
    .journey-calc { padding: 20px; }
    .journey-calc__row { grid-template-columns: 1fr; }
    .journey-vehicle { grid-template-columns: auto 1fr; }
    .journey-vehicle__price { grid-column: 2; text-align: left; }
    .journey-vehicle .button { grid-column: 1 / -1; justify-content: center; }
    .journey-book__row { grid-template-columns: 1fr; }
}

/* Address autocomplete on the request form */
.address-autocomplete { position: relative; }
.address-manual { margin: 10px 0 0; }
.address-manual > summary { cursor: pointer; color: var(--muted); font-size: .85rem; font-weight: 700; padding: 6px 0; }
.address-manual[open] > summary { margin-bottom: 8px; }

/* Softer hero-poster route label */
.hero-poster .poster-route { color: rgba(255, 255, 255, 0.5); }

/* Private-hire mini form (home section + hero) */
.journey-mini { max-width: 1176px; margin: 0 auto 100px; padding: 34px; background: var(--brand); color: var(--paper); border-radius: 24px; display: grid; gap: 22px; }
.journey-mini__intro .eyebrow { color: var(--accent); }
.journey-mini__intro h2 { margin: 6px 0 6px; color: var(--paper); }
.journey-mini__intro p { margin: 0; color: color-mix(in srgb, var(--paper) 82%, transparent); max-width: 60ch; }
.journey-mini__form { display: flex; flex-wrap: wrap; gap: 12px; align-items: start; }
.journey-mini__form .address-autocomplete { flex: 1 1 220px; min-width: 0; }
.journey-mini__form input[type="text"] { width: 100%; padding: 14px 16px; border: 0; border-radius: 12px; background: #fff; color: var(--ink); font: inherit; }
.journey-mini__form .button { flex: none; }
.journey-mini .journey-suggest { color: var(--ink); }
@media (max-width: 640px) {
    .journey-mini { padding: 24px; margin-bottom: 60px; }
    .journey-mini__form .button { width: 100%; justify-content: center; }
}

/* Journey request reference — a code, not a headline */
.price-card strong.reference-code { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 1.05rem; line-height: 1.4; letter-spacing: .02em; word-break: break-all; }

/* Private-hire mini form in the hero (compact, sits in the light copy column) */
.journey-mini--hero { margin: 22px 0 0; padding: 16px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.16); border-radius: 16px; }
.journey-mini--hero .journey-mini__form { display: grid; gap: 10px; }
.journey-mini--hero .address-autocomplete { flex: none; }
.journey-mini--hero input[type="text"] { width: 100%; padding: 12px 14px; border: 0; border-radius: 10px; background: #fff; color: var(--ink); font: inherit; }
.journey-mini--hero .button { width: 100%; justify-content: center; }
.journey-mini--hero .journey-suggest { color: var(--ink); }

/* A vehicle too small for the party: shown but muted and unselectable */
.journey-vehicle.is-unavailable { opacity: .5; }
.journey-vehicle.is-unavailable .button { background: var(--line); color: var(--muted); box-shadow: none; cursor: not-allowed; }

/* Home private-hire mini form: the hero clips its rounded corners, which also
   cut off the Google address-autocomplete dropdown. Only for heroes that hold
   the mini form, let the dropdown escape while the decorative panels keep their
   own rounded clipping. */
.hero:has(.journey-mini--hero) { overflow: visible; }
.hero:has(.journey-mini--hero) .hero-image-panel { border-start-end-radius: inherit; border-end-end-radius: inherit; }
.hero:has(.journey-mini--hero) .neon-hero-art { border-radius: inherit; }

/* Curved/arched hero posters (classic blob, golf arch) clip a top-left label.
   Centre it and drop it below the curve so "YOUR NEXT → EXPERIENCE" is whole. */
body:is(.theme-classic, .theme-golf) .poster-route { left: 50%; transform: translateX(-50%); white-space: nowrap; top: 62px; }

/* Bank transfer instructions on the booking result page */
.bank-transfer-panel { margin: 8px 0 26px; padding: 22px 24px; border: 1px solid var(--line); border-radius: 16px; background: #fff; text-align: left; }
.bank-transfer-panel .eyebrow { color: var(--brand); }
.bank-transfer-panel__amount { margin: 6px 0 14px; font-size: 1.05rem; }
.bank-transfer-panel__amount strong { font-size: 1.25rem; }
.bank-transfer-details { display: grid; gap: 0; margin: 0 0 14px; }
.bank-transfer-details > div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-top: 1px solid var(--line); }
.bank-transfer-details > div:first-child { border-top: 0; }
.bank-transfer-details dt { color: var(--muted); font-weight: 600; margin: 0; }
.bank-transfer-details dt span { font-weight: 500; font-size: .8rem; }
.bank-transfer-details dd { margin: 0; font-weight: 800; text-align: right; font-variant-numeric: tabular-nums; }
.bank-transfer-panel__note { margin: 10px 0 0; color: var(--muted); font-size: .88rem; }
.bank-transfer-panel__confirm { margin: 16px 0 0; display: grid; gap: 8px; justify-items: start; }
.bank-transfer-panel__confirm small { color: var(--muted); font-size: .82rem; }
.bank-transfer-panel__claimed { margin: 16px 0 0; padding: 12px 14px; border-radius: 12px; background: color-mix(in srgb, #2f9e57 12%, transparent); color: #1d6b3b; font-weight: 700; font-size: .9rem; }
