/* Marketing-only styles. Do not target shared elements or tokens inside the wizard. */
@font-face { font-family: "Anton"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/anton-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Anton"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/anton-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* Local fallbacks scaled to Anton's width/metrics (measured in Edge), so the font swap doesn't reflow the hero. */
@font-face { font-family: "Anton Fallback"; src: local("Impact"); size-adjust: 95.84%; ascent-override: 123.12%; descent-override: 34.43%; line-gap-override: 0%; }
@font-face { font-family: "Anton Fallback Sans"; src: local("Arial"), local("ArialMT"), local("Roboto"); size-adjust: 71.88%; ascent-override: 164.17%; descent-override: 45.91%; line-gap-override: 0%; }
.landing-page { background: #141414; }
.landing-page .site-header { background: rgb(20 20 20 / 94%); border-color: #3b3438; }
.landing-page .site-nav-inner { width: min(1440px, 100%); padding-inline: clamp(22px, 4.4vw, 72px); }
.landing-page :is(.site-header, .site-footer) .brand-lockup { color: #faf6f7; }
.landing-page :is(.site-header, .site-footer) .brand-mark { filter: grayscale(1); }
.landing-page .site-header .brand-lockup > span:last-child > span,
.landing-page .site-footer .brand-lockup > span:last-child > span { color: #ff83be; }
.landing-page .site-header .nav-link { color: #d4ccd0; }
.landing-page .site-header .nav-link:hover { color: #ff83be; }
.landing-page .site-header .navbar-toggler { color: #ff83be; border-color: #62555d; }
.landing-page .site-header .btn-primary { color: #161616; background: #ff83be; border-color: #ff83be; border-radius: 0; box-shadow: none; padding-inline: 20px; }
.landing-page .site-header .btn-primary:is(:hover, :focus-visible, :active) { color: #161616; background: #ffa3cf; border-color: #ffa3cf; box-shadow: none; }
.landing-page :is(.site-header, .site-footer) :is(a, button):focus-visible { outline: 3px solid #ff83be; outline-offset: 4px; }
.landing-page .site-footer { background: #141414; border-color: #3b3438; }
.landing-page .site-footer-inner, .landing-page .site-footer-guides { color: #b8adb3; }
.landing-page .site-footer .site-footer-guides-title { color: #faf6f7; }
.landing-page :is(.site-header, .site-footer, .lp-hero, .lp-occasions, .lp-route, .lp-how, .lp-price, .lp-booking-intro, .lp-faq, .lp-final)::selection,
.landing-page :is(.site-header, .site-footer, .lp-hero, .lp-occasions, .lp-route, .lp-how, .lp-price, .lp-booking-intro, .lp-faq, .lp-final) *::selection { color: #141414; background: #ff83be; }
.lp-wrap { width: min(1440px, 100%); padding-inline: clamp(22px, 5vw, 80px); margin-inline: auto; }
/* Only where a slogan heading needs a plain statement of what the section is about. */
.lp-eyebrow { margin: 0 0 18px; font: 700 .9rem/1.5 "Manrope", sans-serif; color: #ff83be; }
.lp-heading { font: 400 clamp(3.1rem, 5.6vw, 5.6rem)/1.06 "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; letter-spacing: -.015em; color: #faf6f7; margin: 0; text-transform: uppercase; }
.lp-heading > span { color: #ff83be; }
.lp-skip { position: fixed; z-index: 1100; left: 20px; top: -100px; padding: 15px 24px; background: #ff83be; color: #141414; font-weight: 700; }
.lp-skip:focus { top: 12px; color: #141414; }
:is(.lp-button, .lp-text-link, .lp-motion, .lp-poster, .lp-scroll-link, .lp-faq summary, .lp-sticky-cta):focus-visible { outline: 3px solid #ff83be; outline-offset: 6px; }
:is(.lp-occasions, .lp-route, .lp-how, .lp-price, .lp-booking, .lp-wizard-container, .lp-faq) { scroll-margin-top: 84px; }
.lp-button { display: inline-flex; justify-content: space-between; align-items: center; gap: 32px; min-height: 56px; padding: 15px 24px; color: #161616; background: #ff83be; border: 1px solid transparent; font-size: .94rem; font-weight: 800; text-decoration: none; transition: background .2s, transform .2s; }
.lp-button > span { font: 400 1.8rem/1 "Manrope", sans-serif; }
.lp-button:hover { background: #ffa3cf; color: #161616; transform: translateY(-3px); }
.lp-button-light { background: #faf6f7; }
.lp-button-dark { background: #161616; color: #faf6f7; }
.lp-button-dark:hover { background: #3b3438; color: #fff; }
.lp-text-link { color: #faf6f7; font-size: .87rem; font-weight: 700; text-decoration: underline 2px #ff83be; text-underline-offset: 5px; }
.lp-text-link:hover { color: #ff83be; }
.lp-hero { position: relative; isolation: isolate; overflow: hidden; background: #0e0c14; }
.lp-hero-media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.lp-hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(14 12 20 / 94%) 0, rgb(14 12 20 / 78%) 30%, rgb(14 12 20 / 18%) 58%, transparent 78%), linear-gradient(0deg, #141414 0, transparent 24%); }
.lp-hero-poster, .lp-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; object-position: 62% 50%; }
.lp-hero-video { opacity: 0; transition: opacity .8s ease; }
.lp-hero[data-video="playing"] .lp-hero-video { opacity: 1; }
.lp-hero-grid { display: grid; grid-template-columns: minmax(0, 640px); align-items: center; min-height: 720px; padding-top: 64px; padding-bottom: 56px; }
.lp-hero-copy { position: relative; z-index: 2; }
.lp-kicker { margin: 14px 0 0; font: 700 1.15rem/1.4 "Manrope", sans-serif; color: #f3ecef; max-width: 460px; }
.lp-title { margin: 14px 0 0; font: 400 clamp(4.6rem, 7vw, 7.2rem)/1.025 "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; letter-spacing: -.015em; color: #faf6f7; }
.lp-title > span:not(.lp-period) { color: #ff83be; }
.lp-period { color: #f72c91; }
.lp-hero-lead { max-width: 405px; margin: 26px 0 27px; color: #c9c0c4; font-size: 1rem; line-height: 1.75; }
.lp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.lp-hero-trust { margin: 0 0 14px; display: flex; align-items: flex-start; gap: 7px; line-height: 1.5; color: #d4ccd0; font-size: .82rem; font-weight: 700; }
.lp-hero-trust i { color: #ff83be; font-size: 1rem; }
.lp-hero-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 22px 0 0; color: #d4ccd0; font-size: .95rem; }
.lp-hero-cta { display: none; }
.lp-hero-price strong { color: #ff83be; font: 400 1.55rem/1.1 "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; letter-spacing: .01em; }
.lp-hero-price small { color: #bdb4b8; font-size: .72rem; }
.lp-price-examples { width: 100%; max-width: 360px; margin: 0 0 26px; border-collapse: collapse; color: #d4ccd0; font-size: .86rem; }
.lp-price-examples caption { caption-side: top; padding: 0 0 10px; color: #bdb4b8; font-size: .69rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.lp-price-examples :is(th, td) { padding: 10px 0; border-bottom: 1px solid #40363c; font-weight: 500; text-align: left; }
.lp-price-examples thead th { color: #bdb4b8; font-size: .72rem; }
.lp-price-examples td, .lp-price-examples thead th:last-child { text-align: right; }
.lp-price-examples td { color: #faf6f7; font-weight: 700; }
.lp-ticket-vat { margin: -12px 0 20px; color: #66515c; font-size: .66rem; font-weight: 700; letter-spacing: .06em; text-align: right; }
.lp-hero-note { margin: 18px 0 0; display: flex; align-items: center; gap: 7px; color: #bdb4b8; font-size: .74rem; }
.lp-hero-note i { color: #ff83be; font-size: 1rem; }
.lp-quick { display: grid; gap: 12px; width: min(540px, 100%); margin: 0 0 20px; padding: 16px; border: 1px solid #4a3f45; background: rgb(20 18 22 / 78%); backdrop-filter: blur(6px); scroll-margin-top: 84px; }
.lp-quick-fields { display: grid; grid-template-columns: minmax(0, 1fr) 150px 92px; gap: 10px; }
.lp-quick-address { grid-column: auto; }
.lp-quick-field { display: grid; gap: 6px; margin: 0; min-width: 0; }
.lp-quick-field > span { color: #d4ccd0; font: 700 .68rem/1.2 "Manrope", sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.lp-quick-field input { width: 100%; min-width: 0; min-height: 48px; padding: 10px 12px; color: #161616; border: 2px solid transparent; border-radius: 0; background: #faf6f7; font: 600 1rem "Manrope", sans-serif; color-scheme: light; }
.lp-quick-field input::placeholder { color: #6f6469; }
.lp-quick-field input:focus-visible { outline: 3px solid #ff83be; outline-offset: 2px; }
.lp-quick-field input[aria-invalid="true"] { border-color: #ff5c8a; }
/* The label is a grid, so an absolutely placed suggestion list would land on its top-left corner, over the input. */
.lp-quick-field > .list-group { top: calc(100% + 4px); left: 0; }
.lp-quick .lp-button { width: 100%; }
.lp-quick .list-group { max-height: 280px; overflow: auto; text-align: left; }
.lp-quick-error { margin: 0; padding: 10px 12px; color: #ffd0de; border-left: 3px solid #ff5c8a; background: rgb(255 92 138 / 14%); font-size: .85rem; line-height: 1.5; }
.landing-page .site-header .site-header-cta .btn-primary { min-height: 44px; padding-inline: 22px; font-size: .9rem; font-weight: 800; }
.lp-sticky-cta { display: none; }
.lp-scene { position: absolute; inset: 0; z-index: 1; touch-action: pan-y; }
.lp-scene canvas, .lp-scene-fallback { width: 100%; height: 100%; display: block; object-fit: contain; }
.lp-scene canvas { position: absolute; inset: 0; }
.lp-scene[data-scene-state="ready"] .lp-scene-fallback { visibility: hidden; }
.lp-scene:not([data-scene-state="ready"]) canvas { visibility: hidden; }
.lp-hero-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 18px; border-top: 1px solid #ffffff12; }
.lp-scroll-link { display: inline-flex; align-items: center; gap: 14px; font-size: .8rem; font-weight: 700; color: #bdb4b8; text-decoration: none; }
.lp-scroll-link > span { font-size: 1.3rem; color: #ff83be; }
.lp-motion { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 4px 0; border: 0; color: #bdb4b8; background: none; font-size: .65rem; }
.lp-motion[hidden] { display: none; }
.lp-motion i { font-size: 1.1rem; }
.lp-motion:hover { color: #ff83be; }
.lp-ticker { overflow: hidden; background: #ff83be; color: #161616; padding: 15px 0; }
.lp-ticker-track { display: flex; width: max-content; }
.lp-ticker-track > span { flex: none; white-space: nowrap; font: 400 2rem/1.2 "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; }
.lp-ticker-star { display: inline-block; margin-inline: 38px; font-size: 1.5rem; vertical-align: 3px; }
.lp-occasions { padding-block: 105px 80px; }
.lp-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 35px; margin-bottom: 42px; }
.lp-section-head > p { color: #bdb4b8; font-size: .88rem; line-height: 1.8; margin: 0 0 3px; }
.lp-poster-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.lp-poster { display: flex; flex-direction: column; overflow: hidden; position: relative; padding: 24px; text-decoration: none; color: #161616; min-height: 450px; transition: transform .25s; }
.lp-poster:hover { color: #161616; transform: translateY(-7px) rotate(-1deg); }
.lp-poster-pink { background: #ff83be; }
.lp-poster-blush { background: #f7ccdf; }
.lp-poster-paper { background: #faf6f7; }
.lp-poster-top { display: flex; justify-content: space-between; align-items: center; gap: 6px; font-size: .82rem; font-weight: 700; }
.lp-poster-top i { font-size: 1.5rem; }
.lp-poster h3 { color: #161616; font: 400 clamp(2.6rem, 4.3vw, 4.4rem)/1 "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; margin: 0 0 17px; }
.lp-poster h3 span { display: block; }
.lp-poster > p { color: #332b30; font-size: .81rem; line-height: 1.65; max-width: 28ch; margin: 0; }
.lp-poster-art { position: relative; flex: none; height: 210px; margin-block: 16px 20px; }
.lp-art-rings span { position: absolute; width: 115px; height: 145px; border: 16px solid #161616; border-radius: 50%; top: 35px; left: calc(50% - 97px); transform: rotate(-32deg); box-shadow: inset 2px 3px 0 #fff7, 3px 3px 0 #fff7; }
.lp-art-rings span:nth-child(2) { left: calc(50% - 20px); transform: rotate(32deg); }
.lp-art-rings b { position: absolute; left: 52%; top: -12px; font: 400 6rem serif; }
.lp-art-star { display: grid; place-items: center; overflow: hidden; }
.lp-art-star > span { position: absolute; font: 400 12rem/1 sans-serif; }
.lp-art-star b { position: relative; font: 400 3.5rem "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; color: #ff83be; transform: rotate(-12deg); }
.lp-art-record { display: grid; place-items: center; }
.lp-art-record > span { width: 190px; aspect-ratio: 1; border-radius: 50%; background: repeating-radial-gradient(circle, #161616 0 3px, #3b3438 4px 5px, #161616 6px 8px); }
.lp-art-record b { position: absolute; display: grid; place-content: center; width: 88px; aspect-ratio: 1; border-radius: 50%; color: #161616; background: #ffe3ef; font: 400 1.1rem/1.04 "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; text-align: center; transform: rotate(-12deg); }
.lp-occasion-foot { margin: 28px 0 0; color: #b8adb3; font-size: .8rem; display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 15px; }
.lp-occasion-foot .lp-text-link { font-size: .8rem; }
.lp-route { border-block: 1px solid #3b3438; background: #1f1b1d; }
.lp-route-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 60px; align-items: center; padding-block: 95px; }
.lp-route-copy > p:not(.lp-eyebrow) { color: #c9c0c4; max-width: 430px; margin: 26px 0; line-height: 1.85; font-size: .92rem; }
.lp-route-copy .lp-heading { font-size: clamp(3rem, 5vw, 5.1rem); }
.lp-route-art { position: relative; aspect-ratio: 1.14; background: radial-gradient(#4a4146 1px, transparent 1px) 0 0 / 19px 19px; }
.lp-route-path { position: absolute; inset: 0; width: 100%; height: 100%; color: #b7879f; }
.lp-route-stamp { position: absolute; z-index: 2; top: 0; right: 0; font: 400 1.5rem/1.2 "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; color: #b8adb3; transform: rotate(8deg); }
.lp-route-stamp strong { font-weight: 400; color: #ff83be; }
.lp-route-label { position: absolute; z-index: 2; display: grid; background: #1f1b1d; padding: 9px 14px; font: 600 1.1rem "Manrope", sans-serif; color: #faf6f7; border: 1px solid #51434b; }
.lp-route-label > small { color: #e2b4cb; font: 700 .54rem "Manrope", sans-serif; letter-spacing: .12em; margin-bottom: 5px; }
.lp-route-label-one { left: 3%; top: 26%; transform: rotate(-6deg); }
.lp-route-label-two { right: 10%; top: 40%; transform: rotate(4deg); }
.lp-route-label-three { right: 15%; bottom: 0; transform: rotate(-4deg); }
.lp-mascot { position: absolute; z-index: 1; left: -6%; bottom: -12%; width: 66%; aspect-ratio: 9 / 7; }
.lp-bus { background: #161213; border-block: 1px solid #3b3438; padding-block: 90px; }
.lp-bus-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 32px; margin: 8px 0 0; padding: 0; list-style: none; }
.lp-bus-facts li { display: flex; align-items: flex-start; gap: 14px; padding: 18px 20px; border: 1px solid #3b3438; background: rgb(255 255 255 / 3%); color: #d4ccd0; font-size: .92rem; line-height: 1.5; }
.lp-bus-facts i { flex: none; color: #ff83be; font-size: 1.4rem; margin-top: 2px; }
.lp-bus-facts a { color: #ff83be; font-weight: 700; text-decoration: none; }
.lp-bus-facts a:hover { text-decoration: underline; }
.lp-bus-more { margin: 24px 0 0; }
/* The bus from inside, from the media library; the last tile leads to the full media page. */
.lp-inside { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 22px; margin: 0 0 32px; padding: 0; list-style: none; }
.lp-inside > li { aspect-ratio: 3 / 4; max-height: 440px; min-width: 0; overflow: hidden; background: #1f1b1d; }
.lp-inside-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lp-inside-more a { display: flex; flex-direction: column; justify-content: flex-end; gap: 14px; height: 100%; padding: 24px; color: #faf6f7; border: 1px solid #ff83be; font: 400 clamp(1.6rem, 2.4vw, 2.2rem)/1.05 "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; text-transform: uppercase; text-decoration: none; transition: background .2s, color .2s; }
.lp-inside-more a i { color: #ff83be; font-size: 2.4rem; transition: color .2s; }
.lp-inside-more a:hover { color: #161616; background: #ff83be; }
.lp-inside-more a:hover i { color: #161616; }
.lp-inside-more a:focus-visible { outline: 3px solid #ff83be; outline-offset: 4px; }
.lp-how { padding-block: 105px 85px; }
.lp-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.lp-step { border-top: 1px solid #4a4146; padding-top: 24px; }
.lp-step-number { font: 400 3rem "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; color: #ff83be; }
.lp-step h3 { font: 600 1.35rem "Manrope", sans-serif; color: #faf6f7; margin: 18px 0 14px; }
.lp-step p { color: #bdb4b8; font-size: .85rem; line-height: 1.8; max-width: 34ch; margin: 0; }
.lp-price { display: grid; grid-template-columns: 1fr .8fr; align-items: center; gap: 100px; padding-block: 45px 115px; }
.lp-price-copy > p:not(.lp-eyebrow) { max-width: 340px; margin: 25px 0; color: #bdb4b8; line-height: 1.8; }
.lp-ticket { position: relative; padding: 28px 34px 20px; color: #2d2429; background: #fff0f6; transform: rotate(3deg); box-shadow: 10px 12px 0 #ffffff0a; }
.lp-ticket-header { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #d5bdc8; padding-bottom: 18px; font-size: .65rem; font-weight: 800; letter-spacing: .1em; }
.lp-ticket-header i { font-size: 1.6rem; }
.lp-ticket h3 { color: #2d2429; font: 400 clamp(1.4rem, 2.5vw, 2.4rem) "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; margin: 22px 0; }
.lp-ticket dl { margin: 0 0 25px; }
.lp-ticket dl > div { display: flex; justify-content: space-between; gap: 10px; margin-block: 14px; font-size: .79rem; }
.lp-ticket dt { color: #66515c; }
.lp-ticket dd { margin: 0; text-align: right; }
.lp-ticket dd small { color: #66515c; font-size: .66rem; }
.lp-ticket-total { position: relative; display: flex; justify-content: space-between; gap: 10px; border-top: 2px dashed #a78a99; padding-top: 24px; margin: 0 -34px; padding-inline: 34px; font-size: .87rem; }
.lp-ticket-total::before, .lp-ticket-total::after { content: ""; position: absolute; width: 24px; height: 24px; border-radius: 50%; top: -13px; left: -12px; background: #141414; }
.lp-ticket-total::after { left: auto; right: -12px; }
.lp-ticket-total > span { text-align: right; }
.lp-ticket-total small { color: #66515c; font-size: .63rem; }
.lp-ticket-barcode { height: 35px; width: 75%; margin: 28px auto 12px; background: repeating-linear-gradient(90deg, #2d2429 0 2px, transparent 2px 5px, #2d2429 5px 6px, transparent 6px 9px, #2d2429 9px 13px, transparent 13px 17px); }
.lp-ticket > p { text-align: center; font-size: .47rem; letter-spacing: .09em; }
.lp-locations { padding-block: 12px 80px; scroll-margin-top: 84px; }
.lp-locations .lp-heading { font-size: 2.8rem; letter-spacing: 0; overflow-wrap: anywhere; }
.location-directory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.location-directory-region { border-top: 1px solid #62555d; padding-top: 24px; min-width: 0; }
.location-directory h3 { font: 600 1.2rem/1.5 "Manrope", sans-serif; margin: 0 0 20px; letter-spacing: 0; }
.location-directory h3 a { display: inline-flex; align-items: center; gap: 14px; }
.location-directory a { color: #faf6f7; text-decoration: none; text-underline-offset: 4px; overflow-wrap: anywhere; }
.location-directory a:hover { color: #ff83be; text-decoration: underline; }
.location-directory a:focus-visible { outline: 3px solid #ff83be; outline-offset: 5px; }
.location-directory ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; list-style: none; padding: 0; margin: 0; }
.location-directory li { min-width: 0; font-size: .87rem; line-height: 1.6; }
@media (max-width: 767px) {
  .lp-locations { padding-bottom: 60px; }
  .lp-locations .lp-heading { font-size: 2rem; }
  .location-directory { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
/* Only the area OUTSIDE the unchanged partial is styled here. */
.lp-booking { background: #1b181a; border-block: 1px solid #3b3438; padding-block: 90px; }
.lp-booking-intro { text-align: center; margin-bottom: 44px; }
.lp-booking-intro > p:not(.lp-eyebrow) { color: #bdb4b8; margin: 22px 0 0; font-size: .9rem; line-height: 1.8; }
.lp-wizard-container { width: min(1160px, 100%); margin: 0 auto; padding-inline: clamp(20px, 5vw, 58px); }
.lp-faq { display: grid; grid-template-columns: .8fr 1fr; gap: 80px; padding-block: 105px; }
.lp-faq-list details { border-bottom: 1px solid #40363c; }
.lp-faq-list details:first-child { border-top: 1px solid #40363c; }
.lp-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-block: 23px; list-style: none; cursor: pointer; color: #faf6f7; font-size: .98rem; font-weight: 600; }
.lp-faq summary::-webkit-details-marker { display: none; }
.lp-faq summary > span { color: #ff83be; font-size: 1.8rem; font-weight: 400; line-height: 1; }
.lp-faq details[open] summary > span { transform: rotate(45deg); }
.lp-faq details p { margin: 0 30px 24px 0; font-size: .86rem; line-height: 1.85; color: #bdb4b8; }
.lp-final { background: #ff83be; padding-block: 78px; text-align: center; position: relative; overflow: hidden; }
.lp-final h2 { font: 400 clamp(3.3rem, 7vw, 7.5rem)/1.08 "Anton", "Anton Fallback", "Anton Fallback Sans", sans-serif; color: #161616; margin: 0 0 30px; }
.lp-final h2 > span { color: #512b3d; }
.lp-final .lp-button:focus-visible { outline-color: #211b1e; }
@keyframes lp-marquee { to { transform: translateX(-50%); } }
/* Animates the separate translate property, so it composes with each element's own transform (the tilted
   ticket, the poster hover lift) instead of replacing it for the whole fill duration. */
@keyframes lp-enter { from { translate: 0 20px; } to { translate: 0 0; } }
@keyframes lp-spin { to { transform: rotate(360deg); } }
/* JS opts in with a motion state. Keep animation names stable across pause/resume. */
.landing-page:is([data-motion="running"], [data-motion="paused"]) .lp-ticker-track { animation: lp-marquee 140s linear infinite paused; }
.landing-page:is([data-motion="running"], [data-motion="paused"]) .lp-art-star > span { animation: lp-spin 45s linear infinite paused; }
.landing-page:is([data-motion="running"], [data-motion="paused"]) [data-reveal].is-revealed { animation: lp-enter .65s ease-out both paused; }
.landing-page[data-motion="running"] :is(.lp-ticker-track, .lp-art-star > span, [data-reveal].is-revealed) { animation-play-state: running; }
@media (min-width: 1500px) { .lp-hero-grid { min-height: 780px; } }
@media (max-width: 1100px) {
  .lp-hero-grid { min-height: 670px; grid-template-columns: minmax(0, 540px); }
  .lp-hero-media::after { background: linear-gradient(90deg, rgb(14 12 20 / 94%) 0, rgb(14 12 20 / 80%) 38%, rgb(14 12 20 / 25%) 66%, transparent 86%), linear-gradient(0deg, #141414 0, transparent 24%); }
  .lp-poster { padding: 20px; min-height: 420px; }
  .lp-route-grid { gap: 35px; }
  .lp-price { gap: 65px; }
  .lp-ticket { padding-inline: 25px; }
  .lp-ticket-total { margin-inline: -25px; padding-inline: 25px; }
}
@media (max-width: 767px) {
  .landing-page .site-nav-inner { flex-wrap: wrap; justify-content: space-between; padding-block: 12px; }
  .landing-page .site-header .navbar-collapse { flex-basis: 100%; }
  .landing-page .site-header .navbar-nav { padding-block: 12px 4px; }
  .landing-page .site-header .nav-link { padding-left: 0 !important; }
  .landing-page .site-header .btn-primary { margin-top: 8px; }
  .landing-page .site-header .site-header-book { margin-top: 0; }
  .lp-quick { padding: 12px; }
  .lp-quick-fields { grid-template-columns: minmax(0, 1fr) 92px; }
  .lp-quick-address { grid-column: 1 / -1; }
  .lp-sticky-cta { position: fixed; z-index: 1040; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 54px; padding: 12px 20px; color: #161616; background: #ff83be; box-shadow: 0 12px 30px rgb(0 0 0 / 45%); font-size: .9rem; font-weight: 800; text-decoration: none; visibility: hidden; transform: translateY(calc(100% + 24px)); transition: transform .25s ease, visibility .25s; }
  .lp-sticky-cta:hover { color: #161616; background: #ffa3cf; }
  .lp-sticky-cta > span { font-size: 1.3rem; line-height: 1; }
  .landing-page[data-booking-in-view="false"] .lp-sticky-cta { visibility: visible; transform: none; }
  .landing-page:has(.analytics-consent:not([hidden])) .lp-sticky-cta { display: none; }
  .landing-page .site-footer { padding-bottom: 78px; }
  /* Phones: a portrait video with the copy on top fills the first screen. The bus fills the top
     ~76% of the 2:3 frame, so the stage runs 120px past the video and the headline lands on the
     wet pavement and the fade below it instead of on the logo and headlights. The video is at
     most its own 2:3 (never side-cropped) and shrinks on short screens so the button stays in view. */
  .lp-hero { --lp-media-h: clamp(260px, calc(100vh - 190px), 150vw); --lp-media-h: clamp(260px, calc(100svh - 190px), 150vw); display: grid; grid-template-columns: minmax(0, 1fr); }
  .lp-hero-grid, .lp-hero-copy { display: contents; }
  .lp-hero-media { grid-area: 1 / 1; align-self: start; height: var(--lp-media-h); position: relative; inset: auto; z-index: 0; }
  .lp-hero-media::after { background: linear-gradient(180deg, rgb(14 12 20 / 70%) 0, rgb(14 12 20 / 0%) 15%, rgb(14 12 20 / 0%) 60%, rgb(14 12 20 / 75%) 82%, #0e0c14 100%); }
  .lp-hero-poster, .lp-hero-video { object-position: 50% 40%; }
  .lp-hero-stage { grid-area: 1 / 1; position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; min-height: calc(var(--lp-media-h) + 120px); padding: 16px clamp(22px, 5vw, 80px) 22px; }
  .lp-hero-details { grid-area: 2 / 1; padding: 20px clamp(22px, 5vw, 80px) 4px; }
  .lp-hero-bottom { grid-area: 3 / 1; }
  .lp-kicker { margin: 0; max-width: 300px; font-size: 1rem; line-height: 1.35; text-shadow: 0 1px 12px rgb(0 0 0 / 60%); }
  .lp-title { margin-top: auto; font-size: clamp(2.4rem, 10.5vw, 3.6rem); line-height: 1.015; text-shadow: 0 2px 22px rgb(0 0 0 / 55%); }
  .lp-hero-price { margin: 10px 0 0; gap: 2px 6px; font-size: .8rem; color: #e6dfe2; text-shadow: 0 1px 10px rgb(0 0 0 / 70%); }
  .lp-hero-price strong { font-size: 1.2rem; }
  .lp-hero-cta { display: flex; width: 100%; margin-top: 16px; }
  .lp-quick { padding: 12px; margin-bottom: 14px; gap: 10px; }
  .lp-hero-lead { margin: 0 0 14px; font-size: .9rem; max-width: 360px; }
  .lp-actions { gap: 18px; }
  .lp-button { min-height: 53px; padding: 12px 20px; font-size: .84rem; gap: 25px; }
  .lp-actions .lp-text-link { font-size: .77rem; }
  .lp-hero-note { font-size: .68rem; margin-top: 14px; }
  .lp-hero-bottom { padding-block: 12px; align-items: flex-start; }
  .lp-scroll-link { font-size: .75rem; gap: 8px; max-width: 180px; }
  .lp-motion { max-width: 130px; text-align: left; font-size: .55rem; line-height: 1.4; }
  .lp-ticker { padding-block: 13px; }
  .lp-ticker-track > span { font-size: 1.5rem; }
  .lp-ticker-star { margin-inline: 25px; font-size: 1.2rem; vertical-align: 1px; }
  .lp-occasions, .lp-how, .lp-bus { padding-block: 65px; }
  .lp-bus-facts { grid-template-columns: 1fr; gap: 12px; }
  /* A swipeable row that bleeds to the screen edges; the list scrolls, never the page. */
  .lp-inside { grid-auto-columns: 72vw; gap: 12px; margin-inline: calc(-1 * clamp(22px, 5vw, 80px)); padding-inline: clamp(22px, 5vw, 80px); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: clamp(22px, 5vw, 80px); scrollbar-width: none; }
  .lp-inside > li { scroll-snap-align: start; }
  .lp-inside-more a { padding: 20px; font-size: 1.7rem; }
  .lp-bus-facts li { padding: 14px 16px; font-size: .85rem; }
  .lp-section-head { display: block; margin-bottom: 28px; }
  .lp-section-head > p { margin-top: 22px; font-size: .83rem; }
  .lp-eyebrow { font-size: .82rem; margin-bottom: 14px; }
  .lp-heading { font-size: clamp(3rem, 9vw, 4.6rem); }
  .lp-poster-grid { grid-template-columns: 1fr; gap: 18px; }
  .lp-poster { min-height: 390px; padding: 24px; }
  .lp-poster h3 { font-size: clamp(2.8rem, 10.8vw, 3.6rem); }
  .lp-poster-art { height: 210px; margin-block: 12px 20px; }
  .lp-poster > p { max-width: 27ch; }
  .lp-occasion-foot { justify-content: flex-start; line-height: 1.8; }
  .lp-route-grid { grid-template-columns: 1fr; padding-block: 65px; gap: 40px; }
  .lp-route-copy .lp-heading { font-size: clamp(2.9rem, 8.5vw, 4.5rem); }
  .lp-route-copy > p:not(.lp-eyebrow) { font-size: .87rem; }
  .lp-route-stamp { font-size: 1.15rem; }
  .lp-route-label { font-size: .88rem; padding: 7px 10px; }
  .lp-route-label > small { font-size: .47rem; }
  .lp-steps { grid-template-columns: 1fr; gap: 27px; }
  .lp-step { display: grid; grid-template-columns: 52px 1fr; gap: 8px 18px; padding-top: 22px; }
  .lp-step-number { grid-row: span 2; font-size: 2.5rem; }
  .lp-step h3 { margin: 5px 0 0; font-size: 1.2rem; }
  .lp-step p { max-width: none; font-size: .8rem; }
  .lp-price { grid-template-columns: 1fr; gap: 45px; padding-top: 0; padding-bottom: 75px; }
  .lp-ticket { margin-inline: 7px; padding-top: 22px; transform: rotate(2deg); }
  .lp-ticket h3 { font-size: 1.8rem; }
  .lp-ticket dl > div { font-size: .73rem; }
  .lp-booking { padding-block: 60px; }
  .lp-booking-intro > p:not(.lp-eyebrow) { font-size: .8rem; }
  .lp-faq { grid-template-columns: 1fr; gap: 32px; padding-block: 65px; }
  .lp-faq summary { font-size: .86rem; padding-block: 20px; }
  .lp-final { padding-block: 55px; }
  .lp-final h2 { font-size: clamp(2.8rem, 9vw, 4.8rem); }
}
@media (prefers-reduced-motion: reduce) {
  .landing-page :is(.lp-ticker-track, .lp-art-star > span, [data-reveal]) { animation: none !important; }
  :is(.lp-button, .lp-poster, .lp-sticky-cta) { transition: none; }
  .lp-motion { display: none; }
  .lp-hero-video { display: none; }
}