:root {
    --triplea-navy: #061c31;
    --triplea-green: #005a34;
    --triplea-bright: #2ecc71;
    --triplea-mint: #e7f8ed;
    --triplea-ink: #191c1d;
    --triplea-muted: #56615a;
    --triplea-line: #d9e1dc;
    --triplea-paper: #f6f8f7;
    --triplea-white: #fff;
    --triplea-shadow: 0 24px 70px rgba(5, 32, 19, .2);
}

body { background: var(--triplea-paper); color: var(--triplea-ink); }
body.availability-calendar-open { overflow: hidden; }
.reveal-delay-0 { --reveal-delay: 0ms; }
.reveal-delay-1 { --reveal-delay: 70ms; }
.reveal-delay-2 { --reveal-delay: 140ms; }
.reveal-delay-3 { --reveal-delay: 210ms; }
a { text-underline-offset: .2em; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; padding: .75rem 1rem; border-radius: .5rem; background: #fff; color: var(--triplea-green); font-weight: 800; }
.skip-link:focus { top: 1rem; }
.site-header { background: rgba(5, 25, 42, .32); color: #fff; backdrop-filter: blur(12px); }
.site-header.is-scrolled, .site-header.is-menu-open { background: rgba(255, 255, 255, .98); color: var(--triplea-ink); }
.booking-status-route .site-header { background: rgba(255, 255, 255, .98); color: var(--triplea-ink); border-color: rgba(0, 90, 52, .1); box-shadow: 0 12px 32px rgba(5, 32, 19, .09); backdrop-filter: blur(18px); }
.booking-status-route .public-nav > a:not(.public-nav__booking):hover { color: var(--triplea-green); }
.brand-link { display: flex; align-items: center; gap: .65rem; font-weight: 900; letter-spacing: -.02em; }
.brand-link img { flex: 0 0 auto; width: clamp(5rem, 7vw, 6rem); height: 3.25rem; object-fit: cover; object-position: center; }
.brand-wordmark { font-size: clamp(1rem, 2.2vw, 1.28rem); }

.brand-title {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .04rem;
    line-height: 1.1;
}

.brand-tagline {
    display: block;
    margin-top: .72rem;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: .9;
}
.public-nav { display: flex; align-items: center; gap: 1.5rem; font-size: .9rem; font-weight: 700; }
.public-nav > a:not(.public-nav__booking):hover { color: #9cf6bc; }
.site-header.is-scrolled .public-nav > a:not(.public-nav__booking):hover { color: var(--triplea-green); }
.public-nav__booking { min-height: 2.65rem; padding: .65rem 1.25rem; border-radius: 999px; background: var(--triplea-green); color: #fff; }
.mobile-public-nav { display: grid; gap: .5rem; padding: 1rem; background: #fff; color: var(--triplea-ink); box-shadow: 0 20px 35px rgba(5, 32, 19, .14); }
.mobile-public-nav[hidden] { display: none; }
.mobile-public-nav a { padding: .75rem; font-weight: 700; }
.mobile-public-nav .sprat-cta { color: #fff; text-align: center; }

.booking-hero { position: relative; min-height: 100vh; overflow: hidden; margin-top: -4rem; padding: 9rem 1rem 5rem; color: #fff; }
.booking-hero::after { position: absolute; inset: 0; content: ""; background: linear-gradient(100deg, rgba(3, 17, 31, .92) 0%, rgba(3, 25, 30, .72) 48%, rgba(2, 19, 22, .58) 100%); }
.booking-hero__content { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 2rem; width: min(100%, 1280px); min-height: calc(100vh - 14rem); margin: 0 auto; }
.booking-hero__copy { max-width: 49rem; }
.booking-kicker { margin: 0 0 .8rem; color: var(--triplea-green); font-size: .76rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.booking-hero .booking-kicker { color: #9cf6bc; }
.booking-hero__copy h1 { max-width: 12ch; margin: 0; font-size: clamp(3.1rem, 6.4vw, 6.25rem); font-weight: 900; line-height: .95; letter-spacing: -.065em; }
.booking-hero__copy h1 span { display: block; color: #9cf6bc; }
.booking-hero__copy > p:not(.booking-kicker) { max-width: 38rem; margin: 1.5rem 0 0; color: rgba(255,255,255,.86); font-size: 1.05rem; line-height: 1.75; }
.booking-trust-list { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.6rem; }
.booking-trust-list li { padding: .55rem .75rem; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; background: rgba(255,255,255,.08); font-size: .76rem; font-weight: 800; }
.booking-preview { display: grid; grid-template-columns: minmax(12rem, 1.25fr) repeat(2, minmax(9rem, 1fr)) auto; align-items: end; gap: .7rem; width: min(100%, 64rem); padding: .8rem; border: 1px solid rgba(255,255,255,.58); border-radius: 1rem; background: rgba(255,255,255,.94); color: var(--triplea-ink); box-shadow: var(--triplea-shadow); backdrop-filter: blur(18px); }
.booking-preview label { display: grid; gap: .35rem; min-width: 0; padding: .25rem .55rem; }
.booking-preview label > span { color: var(--triplea-muted); font-size: .64rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.booking-preview input, .booking-preview select { width: 100%; min-height: 2.75rem; padding: .55rem .65rem; border: 1px solid #cbd5cf; border-radius: .55rem; background: #fff; color: var(--triplea-ink); font-size: .82rem; font-weight: 700; outline: none; }
.booking-preview input:focus, .booking-preview select:focus { border-color: var(--triplea-green); box-shadow: 0 0 0 3px rgba(46,204,113,.18); }
.booking-preview__action { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: .65rem 1rem; border-radius: .6rem; background: var(--triplea-green); color: #fff; font-size: .75rem; font-weight: 900; white-space: nowrap; }
.booking-preview__status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.booking-shell { overflow: hidden; border: 1px solid rgba(255,255,255,.35); border-radius: 1.35rem; background: rgba(255,255,255,.98); color: var(--triplea-ink); box-shadow: var(--triplea-shadow); }
.booking-shell__heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.5rem 1.75rem; border-bottom: 1px solid var(--triplea-line); background: linear-gradient(135deg, #fff, #eef9f2); }
.booking-shell__heading p { margin: 0 0 .2rem; color: var(--triplea-green); font-size: .7rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.booking-shell__heading h2 { margin: 0; font-size: 1.65rem; font-weight: 900; letter-spacing: -.035em; }
.booking-shell__heading > span { padding: .45rem .7rem; border-radius: 999px; background: var(--triplea-mint); color: var(--triplea-green); font-size: .68rem; font-weight: 900; text-transform: uppercase; }
.public-booking-card { align-self: start; width: 100%; min-width: 0; border-color: var(--triplea-line); border-radius: 1rem; box-shadow: 0 18px 45px rgba(5,32,19,.08); }
.why-grid--booking { grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr); gap: clamp(2rem, 5vw, 4.5rem); }
.why-grid--booking > .public-booking-card { position: sticky; top: 6rem; scroll-margin-top: 6rem; }
.booking-progress { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .35rem; margin: 0 0 1rem; padding: .85rem 1.25rem 1.15rem; border-bottom: 1px solid var(--triplea-line); background: #fbfdfc; }
.booking-progress li { display: grid; justify-items: center; gap: .25rem; min-width: 0; color: #78837d; font-weight: 800; text-align: center; }
.booking-progress li span { display: grid; width: 1.65rem; height: 1.65rem; place-items: center; border: 1px solid #cbd5cf; border-radius: 50%; background: #fff; color: #5f6d65; font-size: .7rem; }
.booking-progress li small { overflow: hidden; width: 100%; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.booking-progress li[aria-current="step"] { color: var(--triplea-green); }
.booking-progress li[aria-current="step"] span { border-color: var(--triplea-green); background: var(--triplea-green); color: #fff; }
.booking-form { display: grid; gap: 0; }
.booking-form__section { display: grid; gap: 1rem; min-width: 0; margin: 0; padding: 1.35rem 1.5rem; border: 0; }
.booking-form__section[data-booking-step="1"] { padding-top: 1.35rem; }
.booking-form__section[data-booking-step="1"] legend { margin-top: 1rem; }
.booking-form__section[hidden] { display: none; }
.booking-form__section legend { display: flex; align-items: center; gap: .65rem; padding: 0; font-size: 1rem; font-weight: 900; }
.booking-form__section legend:focus { outline: none; }
.booking-form__section legend span { display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--triplea-green); color: #fff; font-size: .75rem; }
.booking-step-intro { margin: -.35rem 0 0; color: var(--triplea-muted); font-size: .76rem; line-height: 1.5; }
.booking-fields { display: grid; gap: .9rem; }
.booking-fields--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.booking-fields--dates { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.date-control { display: grid; align-content: start; gap: .1rem; min-width: 0; }
.booking-form label { display: grid; gap: .4rem; min-width: 0; color: #34423a; font-size: .74rem; font-weight: 800; }
.booking-form label > span em { color: #79827d; font-style: normal; font-weight: 500; }
.booking-form input:not([type="radio"]):not([type="checkbox"]), .booking-form select, .booking-form textarea { width: 100%; min-height: 3rem; padding: .72rem .8rem; border: 1px solid #cbd5cf; border-radius: .65rem; background: #fff; color: var(--triplea-ink); font-size: .9rem; font-weight: 600; outline: none; }
.booking-form textarea { min-height: auto; resize: vertical; }
.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus { border-color: var(--triplea-green); box-shadow: 0 0 0 3px rgba(46, 204, 113, .18); }
.booking-form [aria-invalid="true"] { border-color: #b42318 !important; }
.field-error { color: #b42318; font-size: .72rem; font-weight: 700; }
.category-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.category-option { position: relative; }
.category-option > input { position: absolute; opacity: 0; pointer-events: none; }
.category-option__body { display: grid; gap: .35rem; height: 100%; padding: 1rem; border: 1px solid var(--triplea-line); border-radius: .8rem; background: #fff; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.category-option__body strong { color: var(--triplea-ink); font-size: .95rem; }
.category-option__body small { color: var(--triplea-muted); font-weight: 500; line-height: 1.45; }
.category-option input:checked + .category-option__body { border-color: var(--triplea-green); background: #f4fbf7; box-shadow: 0 0 0 3px rgba(46, 204, 113, .15); }
.category-option input:focus-visible + .category-option__body { outline: 3px solid var(--triplea-bright); outline-offset: 2px; }
.availability-badge { width: max-content; margin-top: .3rem; padding: .3rem .5rem; border-radius: 999px; background: var(--triplea-mint); color: var(--triplea-green); font-size: .64rem; font-weight: 900; text-transform: uppercase; }
.availability-badge--limited { background: #fff2cf; color: #7a4d00; }
.availability-empty { margin: 0; color: var(--triplea-muted); }
.licence-notice { display: grid; gap: .4rem; margin: 1.5rem 1.75rem 0; padding: 1rem; border-left: 4px solid var(--triplea-green); border-radius: .35rem .7rem .7rem .35rem; background: var(--triplea-mint); }
.licence-notice strong { color: var(--triplea-green); }
.licence-notice p { margin: 0; color: #34423a; font-size: .78rem; line-height: 1.55; }
.licence-notice a { width: max-content; color: var(--triplea-green); font-size: .75rem; font-weight: 900; text-decoration: underline; }
.consent-check { grid-template-columns: auto 1fr !important; align-items: start; gap: .7rem !important; margin: 1rem 1.75rem 0; line-height: 1.55; }
.consent-check input { width: 1.1rem; height: 1.1rem; margin-top: .15rem; accent-color: var(--triplea-green); }
.consent-check a { color: var(--triplea-green); text-decoration: underline; }
.booking-submit { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; padding: 1.5rem 1.75rem; }
.booking-submit strong { font-size: .82rem; }
.booking-submit p { max-width: 28rem; margin: .25rem 0 0; color: var(--triplea-muted); font-size: .72rem; line-height: 1.45; }
.booking-submit button { flex: 0 0 auto; min-height: 3.25rem; padding: .8rem 1.2rem; border-radius: .65rem; background: var(--triplea-green); color: #fff; font-size: .82rem; font-weight: 900; }
.booking-submit button:disabled { opacity: .6; cursor: wait; }
.booking-step-actions { display: none; justify-content: flex-end; align-items: center; gap: .65rem; margin-top: .2rem; padding-top: 1rem; border-top: 1px solid var(--triplea-line); }
.booking-form.is-wizard-ready .booking-step-actions { display: flex; }
.booking-step-actions .booking-step-button { min-height: 2.75rem; padding: .65rem .9rem; border: 1px solid var(--triplea-green); border-radius: .6rem; color: var(--triplea-green); font-size: .74rem; font-weight: 900; }
.booking-step-actions .booking-step-button--next { margin-left: auto; background: var(--triplea-green); color: #fff; }
.booking-step-actions--review { justify-content: flex-start; padding-top: 0; border-top: 0; }
.booking-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: 0; }
.booking-summary div { min-width: 0; padding: .7rem .75rem; border-radius: .6rem; background: var(--triplea-paper); }
.booking-summary dt { color: var(--triplea-muted); font-size: .61rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.booking-summary dd { overflow-wrap: anywhere; margin: .2rem 0 0; font-size: .74rem; font-weight: 800; line-height: 1.4; }
.booking-form__section .licence-notice, .booking-form__section .consent-check { margin: 0; }
.booking-form__section .booking-submit { align-items: flex-end; padding: 0; }
.form-alert { margin: 1rem 1.75rem 0; padding: .9rem 1rem; border-radius: .65rem; font-size: .8rem; line-height: 1.5; }
.form-alert ul { margin: .35rem 0 0 1rem; list-style: disc; }
.form-alert--error { border: 1px solid #f0b4ae; background: #fff1f0; color: #8f1d14; }
.form-alert--success { border: 1px solid #97d6ad; background: var(--triplea-mint); color: #075b31; }

.calendar-trigger { display: inline-flex; align-items: center; width: max-content; padding: .35rem 0; border: 0; background: transparent; color: var(--triplea-green); font-size: .7rem; font-weight: 900; text-decoration: underline; }
.availability-calendar { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 1rem; background: rgba(3, 17, 31, .68); }
.availability-calendar[hidden] { display: none; }
.availability-calendar__dialog { width: min(100%, 31rem); padding: 1rem; border: 0; border-radius: 1rem; background: #fff; color: var(--triplea-ink); box-shadow: 0 24px 80px rgba(0,0,0,.3); }
.availability-calendar__header { display: flex; justify-content: space-between; align-items: center; gap: .75rem; }
.availability-calendar__header strong { font-size: 1rem; }
.availability-calendar__controls { display: flex; gap: .35rem; }
.availability-calendar__controls button { display: inline-grid; place-items: center; min-width: 2.5rem; min-height: 2.5rem; border: 1px solid var(--triplea-line); border-radius: .55rem; background: #fff; color: var(--triplea-green); font-weight: 900; }
.availability-calendar__week, .availability-calendar__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .3rem; }
.availability-calendar__week { margin-top: 1rem; color: var(--triplea-muted); font-size: .65rem; font-weight: 900; text-align: center; text-transform: uppercase; }
.availability-calendar__days { margin-top: .35rem; }
.availability-calendar__row { display: contents; }
.availability-calendar__cell { min-width: 0; }
.availability-calendar__cell .calendar-day { width: 100%; }
.calendar-day { aspect-ratio: 1; border: 1px solid var(--triplea-line); border-radius: .55rem; background: #fff; color: var(--triplea-ink); font-size: .76rem; font-weight: 800; }
.calendar-day:hover:not(:disabled), .calendar-day:focus-visible { border-color: var(--triplea-green); background: var(--triplea-mint); }
.calendar-day--partial::after { display: block; width: .32rem; height: .32rem; margin: .15rem auto 0; border-radius: 50%; background: #df8e00; content: ""; }
.calendar-day--sold-out, .calendar-day:disabled { border-color: #e3e5e4; background: #ecefed; color: #8b928e; cursor: not-allowed; text-decoration: line-through; }
.calendar-day--outside { visibility: hidden; }
.calendar-day--selected { border-color: var(--triplea-green); background: var(--triplea-green); color: #fff; }
.availability-calendar__legend { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1rem 0 0; color: var(--triplea-muted); font-size: .68rem; }
.availability-calendar__legend span { display: inline-flex; align-items: center; gap: .3rem; }
.availability-calendar__legend i { width: .65rem; height: .65rem; border-radius: .2rem; background: var(--triplea-mint); }
.availability-calendar__legend .partial i { background: #fff2cf; }
.availability-calendar__legend .sold i { background: #ecefed; }
.availability-calendar__message { min-height: 1.2rem; margin: .75rem 0 0; color: var(--triplea-muted); font-size: .72rem; }

.public-section { width: min(100%, 1280px); margin: 0 auto; padding: 6rem 2.5rem; }
.public-section__heading { max-width: 49rem; margin: 0 auto 3rem; text-align: center; }
.public-section__heading h2 { margin: 0; font-size: clamp(2.4rem, 5vw, 4.8rem); font-weight: 900; line-height: 1; letter-spacing: -.055em; }
.public-section__heading > p:last-child { margin: 1.1rem auto 0; color: var(--triplea-muted); line-height: 1.7; }
.public-fleet-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 1.5rem; }
.public-fleet-card { display: grid; grid-template-columns: 42% 1fr; overflow: hidden; border: 1px solid var(--triplea-line); border-radius: 1rem; background: #fff; box-shadow: 0 18px 45px rgba(5,32,19,.08); }
.public-fleet-card > img { width: 100%; height: 100%; min-height: 21rem; object-fit: cover; }
.public-fleet-card > div { display: flex; flex-direction: column; align-items: flex-start; padding: 1.6rem; }
.public-fleet-card span { color: var(--triplea-green); font-size: .68rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.public-fleet-card h3 { margin: .45rem 0; font-size: 1.7rem; font-weight: 900; }
.public-fleet-card p { margin: 0; color: var(--triplea-muted); line-height: 1.55; }
.public-fleet-card strong { margin-top: auto; padding-top: 2rem; color: var(--triplea-green); font-size: 1.25rem; }
.public-fleet-card strong small { color: var(--triplea-muted); font-size: .72rem; font-weight: 500; }
.public-fleet-card .fleet-card__note {
    margin: .42rem 0 0;
    color: var(--triplea-muted);
    font-size: .75rem;
    line-height: 1.5;
}

.public-fleet-card a { margin-top: .8rem; color: var(--triplea-green); font-size: .8rem; font-weight: 900; text-decoration: underline; }
.scenic-parallax-strip { position: relative; display: grid; min-height: 27rem; place-items: center; overflow: hidden; padding: 4rem 1rem; text-align: center; }
.scenic-parallax-strip__shade { position: absolute; inset: 0; z-index: 1; background: rgba(3, 20, 25, .63); }
.scenic-parallax-strip__content { position: relative; z-index: 2; display: grid; justify-items: center; gap: 1.5rem; color: #fff; }
.scenic-parallax-strip__content h2 { max-width: 15ch; margin: 0; font-size: clamp(2.4rem, 6vw, 5.5rem); font-weight: 900; line-height: .96; letter-spacing: -.055em; }
.scenic-parallax-strip__content a { padding: .8rem 1.4rem; border-radius: 999px; background: #fff; color: var(--triplea-green); font-weight: 900; }

.status-page { min-height: 75vh; padding: 7rem 1rem; background: linear-gradient(150deg, #effaf3, #f6f8f7); }
.status-card { width: min(100%, 45rem); margin: 0 auto; padding: clamp(1.5rem, 5vw, 3.5rem); border: 1px solid var(--triplea-line); border-top: 5px solid #c68300; border-radius: 1rem; background: #fff; box-shadow: 0 24px 60px rgba(5,32,19,.11); text-align: center; }
.status-card--confirmed { border-top-color: var(--triplea-green); }
.status-card--closed { border-top-color: #a53127; }
.status-card__icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; margin: 0 auto 1rem; border-radius: 50%; background: var(--triplea-mint); color: var(--triplea-green); font-size: 1.35rem; font-weight: 900; }
.status-card h1 { margin: 0; font-size: clamp(2.25rem, 6vw, 4rem); font-weight: 900; letter-spacing: -.05em; }
.status-card > p { color: var(--triplea-muted); line-height: 1.65; }
.status-reference { display: inline-block; padding: .5rem .8rem; border-radius: .5rem; background: var(--triplea-paper); }
.status-reference strong { color: var(--triplea-ink); font-family: ui-monospace, monospace; }
.status-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 2rem 0; text-align: left; }
.status-summary div { padding: .85rem; border-radius: .65rem; background: var(--triplea-paper); }
.status-summary dt { color: var(--triplea-muted); font-size: .68rem; font-weight: 900; text-transform: uppercase; }
.status-summary dd { margin: .25rem 0 0; font-weight: 800; }
.status-email { display: grid; gap: .35rem; margin: 1.5rem 0; padding: 1rem; border-radius: .7rem; background: #fff6db; color: #594000; line-height: 1.55; text-align: left; }
.status-email--sent { background: var(--triplea-mint); color: var(--triplea-green); }
.status-email--warning { background: #fff0ef; color: #7c241d; }
.status-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; margin: 1.5rem 0 2rem; }
.status-actions a { display: inline-flex; min-height: 3.25rem; align-items: center; justify-content: center; padding: .75rem 1rem; border: 2px solid var(--triplea-green); border-radius: .6rem; color: var(--triplea-green); font-weight: 900; }
.status-actions .sprat-cta--primary { background: var(--triplea-green); color: #fff; }
.status-help { max-width: 36rem; margin: 0 auto; font-size: .8rem; line-height: 1.6; }

.legal-page { width: min(100% - 2rem, 55rem); margin: 0 auto; padding: 6rem 0; }
.legal-page header { padding-bottom: 2rem; border-bottom: 1px solid var(--triplea-line); }
.legal-page h1 { margin: 0; font-size: clamp(2.7rem, 7vw, 5.5rem); font-weight: 900; line-height: .98; letter-spacing: -.06em; }
.legal-page header > p:last-child { color: var(--triplea-muted); font-size: .75rem; }
.legal-page__notice { padding: 1rem; border-left: 4px solid #c68300; border-radius: .3rem; background: #fff6db; color: #594000; line-height: 1.6; }
.legal-page section { padding: 1.8rem 0; border-bottom: 1px solid var(--triplea-line); }
.legal-page h2 { margin: 0 0 .65rem; font-size: 1.35rem; font-weight: 900; }
.legal-page section p { margin: .65rem 0 0; color: #46524b; line-height: 1.75; }
.legal-page section a { color: var(--triplea-green); font-weight: 800; text-decoration: underline; }

.public-footer { padding: 4rem max(1rem, calc((100vw - 1200px) / 2)) 1.5rem; background: var(--triplea-green); color: rgba(255,255,255,.72); }
.public-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem; }
.public-footer__brand { display: flex; align-items: center; gap: .85rem; color: #fff; }
.public-footer__brand img { flex: 0 0 auto; width: clamp(8rem, 14vw, 11rem); height: clamp(5.1rem, 9vw, 7rem); object-fit: cover; object-position: center; filter: brightness(0) invert(1); }
.public-footer__brand strong, .public-footer__brand span { display: block; }
.public-footer__brand span { color: #9cf6bc; font-size: .8rem; }
.public-footer__grid nav, .public-footer__grid > div:last-child { display: flex; flex-direction: column; align-items: flex-start; gap: .65rem; }
.public-footer__grid strong { color: #fff; }
.public-footer a:hover { color: #9cf6bc; }
.public-footer__base { display: flex; justify-content: space-between; gap: 1rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.14); font-size: .75rem; }
.public-footer__base p:last-child { color: #9cf6bc; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.mobile-swipe-hint, .mobile-fleet-tabs, .public-footer__mobile-accordions { display: none; }
.why-list-mobile-wrap { min-width: 0; }

@media (max-width: 1100px) {
    .booking-hero__copy { max-width: 46rem; }
    .booking-preview { grid-template-columns: minmax(12rem, 1.2fr) repeat(2, minmax(8.5rem, 1fr)); }
    .booking-preview__action { grid-column: 1 / -1; }
    .booking-hero__copy h1 { max-width: 14ch; }
    .booking-fields--dates { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .public-fleet-grid { grid-template-columns: 1fr; }
    .why-grid--booking { grid-template-columns: minmax(0, 1fr); }
    .why-grid--booking > .public-booking-card { position: static; }
}

@media (max-width: 767px) {
    .public-nav { display: none; }
    .site-header { background: rgba(5, 25, 42, .65); }
    .booking-hero { padding: 7.5rem .75rem 3rem; }
    .booking-hero__copy h1 { font-size: clamp(2.85rem, 14vw, 4.5rem); }
    .booking-preview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .booking-preview label:first-child, .booking-preview__action { grid-column: 1 / -1; }
    .booking-shell__heading, .booking-submit { align-items: flex-start; flex-direction: column; }
    .booking-shell__heading, .booking-form__section, .booking-submit { padding: 1.25rem; }
    .licence-notice { margin: 1.25rem 1.25rem 0; }
    .consent-check { margin: 1rem 1.25rem 0; }
    .booking-fields--two, .booking-fields--dates, .category-options { grid-template-columns: 1fr; }
    .booking-submit button { width: 100%; }
    .booking-form__section .booking-submit { padding: 0; }
    .booking-summary { grid-template-columns: 1fr; }
    .public-section { padding: 4rem 1rem; }
    .mobile-swipe-hint { display: block; margin: 0 0 .65rem; color: var(--triplea-green); font-size: .68rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
    .mobile-fleet-tabs { display: flex; gap: .45rem; margin: -1rem 0 1rem; padding: .3rem; border-radius: .8rem; background: #e7f2eb; }
    .mobile-fleet-tabs button { flex: 1 1 0; min-height: 2.8rem; border: 0; border-radius: .6rem; background: transparent; color: var(--triplea-muted); font: inherit; font-size: .8rem; font-weight: 900; }
    .mobile-fleet-tabs button[aria-selected="true"] { background: var(--triplea-green); color: #fff; box-shadow: 0 5px 14px rgba(0,90,52,.2); }
    .public-fleet-grid[data-active-fleet="daily"] .public-fleet-card[data-fleet-card="weekly"], .public-fleet-grid[data-active-fleet="weekly"] .public-fleet-card[data-fleet-card="daily"] { display: none; }
    .public-fleet-grid[data-active-fleet="weekly"] .public-fleet-card[data-fleet-card="weekly"] { display: grid; }
    .public-fleet-card { grid-template-columns: 1fr; }
    .public-fleet-card > img { min-height: 15rem; max-height: 19rem; }
    .status-summary { grid-template-columns: 1fr; }
    .why-list { display: flex; gap: .75rem; margin-right: -1rem; padding: 0 .95rem .6rem 0; border-top: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .why-list::-webkit-scrollbar { display: none; }
    .why-list li { flex: 0 0 86%; min-height: 12rem; align-content: start; padding: 1.35rem; border: 1px solid #c8ceca; border-radius: .9rem; background: #fff; scroll-snap-align: start; }
    .why-list > li > span { font-size: 1.55rem; }
    .public-footer__grid--desktop { display: none; }
    .public-footer__mobile-accordions { display: grid; gap: .55rem; }
    .public-footer__mobile-accordions details { border-top: 1px solid rgba(255,255,255,.2); }
    .public-footer__mobile-accordions details:last-child { border-bottom: 1px solid rgba(255,255,255,.2); }
    .public-footer__mobile-accordions summary { display: flex; justify-content: space-between; align-items: center; min-height: 3.65rem; color: #fff; font-weight: 900; list-style: none; cursor: pointer; }
    .public-footer__mobile-accordions summary::-webkit-details-marker { display: none; }
    .public-footer__mobile-accordions summary span { color: #9cf6bc; font-size: 1.25rem; font-weight: 500; }
    .public-footer__mobile-accordions details[open] summary span { transform: rotate(45deg); }
    .public-footer__mobile-accordions nav, .public-footer__mobile-accordions details > div { display: grid; gap: .7rem; padding: 0 0 1.1rem; }
    .public-footer__mobile-accordions a, .public-footer__mobile-accordions details > div span { color: rgba(255,255,255,.78); font-size: .9rem; }
    .public-footer__base { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 390px) {
    .brand-wordmark { display: none; }
    .brand-tagline {
        font-size: .58rem;
        margin-top: .28rem;
    }
    .booking-shell__heading > span { display: none; }
    .availability-calendar { padding: .5rem; }
    .booking-preview { grid-template-columns: 1fr; }
    .booking-preview label:first-child, .booking-preview__action { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .category-option__body { transition: none; }
}

@media print {
    .site-header, .public-footer, .status-actions { display: none !important; }
    .legal-page, .status-page { padding: 0; }
}
