/* Shared brand and restrained, rounded controls. Functional native fields remain intact. */
.tp-brand-logo{display:block;width:217px;max-width:100%;height:auto}
.wordmark:has(.tp-brand-logo){display:block!important;line-height:1!important;letter-spacing:normal!important;flex-shrink:0}
.wordmark .tp-brand-logo+small{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
.footer .wordmark .tp-brand-logo{width:260px;max-width:100%}
body :is(input,textarea,select),body :is(.form-grid,.form-grid>*,.tp-autocomplete,.quote-form,.tp-account-card){box-sizing:border-box;min-width:0;max-width:100%}
body :is(input:not([type=checkbox]):not([type=radio]),textarea,select){width:100%}
body input:is([type=date],[type=time],[type=datetime-local]){display:block;min-width:0;min-inline-size:0;max-inline-size:100%;-webkit-min-logical-width:0;appearance:none;-webkit-appearance:none}
body input::-webkit-date-and-time-value{text-align:left;min-height:1.4em}
body input::-webkit-datetime-edit{padding:0;min-width:0}
body .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
body .form-grid>*,body .phone-combo>*{min-width:0}
body .tp-autocomplete{width:100%}
body.noir-site :is(.journey-panel,.quote-form,.tp-account-card,.trip-order,.trip-banner,.tp-account-panel),body.noir-operations :is(.panel,.card){border:0!important;border-radius:14px!important}
body.noir-site :is(.main-button,.outline-button,.btn,.tp-btn,.menu,.journey-cta,.corporate-submit,.trip-card-copy>a),body.noir-operations button{border-radius:14px!important;border-color:transparent!important}
body.noir-site :is(.service-option,.trip-tab,.service-options>a,.service-options>button),body.noir-site #onepage-booking-ui #booking .trip-tab{border:0!important;border-radius:14px!important;background:#ffffff07!important;box-shadow:none!important}
body.noir-site :is(.service-option,.trip-tab)[aria-selected=true],body.noir-site #onepage-booking-ui #booking .trip-tab.active{background:#ffffff16!important;box-shadow:inset 0 0 0 1px #ffffff29!important}
body.noir-site :is(input:not([type=checkbox]):not([type=radio]),textarea,.tp-select-trigger),body.noir-operations :is(input,textarea,.tp-select-trigger),body.noir-site #onepage-booking-ui #booking :is(input:not([type=checkbox]):not([type=radio]),textarea,.tp-select-trigger){border:1px solid #ffffff26!important;border-radius:14px!important;box-shadow:none!important;outline-color:#d7d2ca!important}
body.noir-site :is(input,textarea,button,a):focus-visible,body.noir-operations :is(input,textarea,button,a):focus-visible{outline:2px solid #d7d2ca!important;outline-offset:3px}
body.noir-site #main-nav{border:0!important;border-radius:14px!important;box-shadow:0 18px 40px #0003}
body.noir-site .menu{background:#ffffff07!important;border:0!important}
body :is(.tp-select-popup,.language-options){border:1px solid #ffffff26!important;border-radius:14px!important;overflow:hidden}
body.noir-site .language-toggle{border:0!important;border-radius:14px!important;background:#ffffff06!important}
body.noir-site :is(.tp-account-tabs button,.tp-account-actions button,.tp-account-card button,.tp-account-card .button){border-radius:14px!important;border-color:transparent!important}
body.noir-site .tp-account-actions{flex-wrap:wrap}
body.noir-site :is(.hero-visual,.trip-cover,.trip-card img,.fleet-photo){border-radius:14px;overflow:hidden}
body.noir-site :is(.corporate-tags span,.trip-order,.booking-card,.tp-account-card){border-color:transparent!important}
body.noir-site .tp-suggestions{border:1px solid #ffffff26;background:#292623;color:#f2efe9;border-radius:14px;box-shadow:0 14px 32px #0005;padding:5px}
body.noir-site .tp-suggestion{border:0;border-radius:14px;color:#f2efe9;background:transparent;text-align:left}
body.noir-site .tp-suggestion small{color:#b8b3ad}
body.noir-site .tp-suggestion:hover,body.noir-site .tp-suggestion.active{background:#ffffff12}
@media(max-width:600px){.masthead .tp-brand-logo{width:181px}.footer .wordmark .tp-brand-logo{width:235px}body .quote-form .form-grid{grid-template-columns:minmax(0,1fr)}body.noir-site :is(.quote-form,.tp-account-card){padding:22px!important}body.noir-site .journey-panel{border-radius:14px!important}}
@media(max-width:360px){.masthead .tp-brand-logo{width:172px}}
body.noir-site :is(.button-primary,.gold-button,.secondary-step,.inline-reserve-button,.tp-binding-order,.service-options a,.service-options button,.trip-tabs button),body.noir-site #onepage-booking-ui #booking .trip-tabs button{border-radius:14px!important;border-color:transparent!important}
body.noir-site .trip-tabs button,body.noir-site #onepage-booking-ui #booking .trip-tabs button{background:#ffffff07!important;box-shadow:none!important}
body.noir-site .trip-tabs button.active,body.noir-site #onepage-booking-ui #booking .trip-tabs button.active{background:#ffffff16!important;box-shadow:inset 0 0 0 1px #ffffff29!important}
body :is(.tp-select-options,.language-options){border:1px solid #ffffff26!important;border-radius:14px!important;overflow:hidden}
body.noir-site :is(.hourly-fields,.return-fields,.day-trip-box,.day-trip-summary){border:0!important;border-radius:14px!important}
#ownerTools>section{border:0;border-radius:14px}#ownerTools :is(button,.button){border:0;border-radius:14px}
@media(max-width:360px){.masthead .tp-brand-logo{width:145px}}

/* Approved palette: neutral anthracite; champagne is reserved for brand/primary actions. */
:root{--tp-ui-radius:14px;--tp-panel:#242424;--tp-field:#1c1c1c;--tp-border:#ffffff26}
body.noir-site,body.noir-operations{--line:#414141;--muted:#b2b2b2}
body.noir-site :is(.journey-panel,.quote-form,.tp-account-card,.tp-account-panel,.trip-order,.trip-banner,.tp-cross-sell,.vehicle-notice,.tp-payment-notice,.step-summary,.tp-confirm-summary,.hourly-fields,.return-fields,.day-trip-box,.day-trip-summary),body.noir-site #onepage-booking-ui .journey-panel,body.noir-operations :is(.panel,.card,.ride,.tp-insight-card,.tp-booking-row,.tp-booking-card,dialog),#ownerTools>section{background:var(--tp-panel)!important;border-color:var(--tp-border)!important;border-radius:var(--tp-ui-radius)!important}
html body.noir-onepage .journey-stage.is-booking .journey-panel{background:var(--tp-panel)!important;border-radius:var(--tp-ui-radius)!important}
body.noir-site :is(#hourlyFields,#dayTripFields,#sameDayWait,#serviceRequest,#dayTripSelected){background:var(--tp-panel)!important;border:0!important;border-radius:var(--tp-ui-radius)!important}
body.noir-site .corporate{background:#191919!important;border-color:#ffffff16!important}
html body :is(.tp-select .tp-select-trigger,.tp-select-options,.language-options,.tp-suggestions){background:var(--tp-panel)!important;border-radius:var(--tp-ui-radius)!important;border-color:var(--tp-border)!important;color:#eee!important}
html body.noir-site :is(input:not([type=checkbox]):not([type=radio]),textarea,select),html body.noir-operations :is(input:not([type=checkbox]):not([type=radio]),textarea,select),html body.noir-onepage #onepage-booking-ui #booking :is(input:not([type=checkbox]):not([type=radio]),textarea,select){background:var(--tp-field)!important;border-radius:var(--tp-ui-radius)!important;border-color:var(--tp-border)!important;color:#eee!important}
html body :is(button,.button,.button-primary,.button-secondary,.main-button,.outline-button,.gold-button,.select-pill,.tp-social,.tp-select-trigger,.corporate-tags span,.return-discount-badge,.payment-methods label,.tp-cookie-panel,.tp-cookie-actions a),html body.noir-onepage #onepage-booking-ui #booking :is(button,.payment-methods label){border-radius:var(--tp-ui-radius)!important}
body.noir-site :is(.hero-visual,.trip-cover,.trip-card img,.fleet-photo,.car,.car-photo,.vehicle-preview-media,.trip-photo),body.noir-site #main-nav{border-radius:var(--tp-ui-radius)!important}
html body.noir-site #main-nav{background:#1c1c1c!important}
body.noir-site :is(.service-option,.trip-tab,.trip-tabs button,.service-options a,.service-options button),html body.noir-onepage #onepage-booking-ui #booking .trip-tabs button{background:#2b2b2b!important;color:#bcbcbc!important;border-radius:var(--tp-ui-radius)!important}
body.noir-site :is(.service-option,.trip-tab)[aria-selected=true],body.noir-site .trip-tabs button.active,html body.noir-onepage #onepage-booking-ui #booking .trip-tabs button.active{background:#393939!important;color:#f2f2f2!important;box-shadow:inset 0 0 0 1px #ffffff29!important}
body.noir-site :is(.payment-methods label,.select-pill,.return-discount-badge){background:#303030!important;border-color:var(--tp-border)!important}
body.noir-operations th{background:#1c1c1c!important}body.noir-operations :is(th,td){border-color:#414141!important}
html body .tp-cookie-panel{background:#242424!important;color:#eee!important;border:1px solid #ffffff26!important;border-radius:var(--tp-ui-radius)!important}

html body.noir-onepage #onepage-booking-ui #booking #changeVehicle,html body.noir-onepage #onepage-booking-ui #closeInlineBooking{border-radius:14px!important}

html body .tp-select-options{overflow-y:auto!important;overflow-x:hidden!important}

body.noir-site .hero-visual img{border-radius:14px!important}

/* Desktop navigation is part of the masthead, without a surrounding panel. */
@media(min-width:1001px){html body.noir-site #main-nav{background:transparent!important;box-shadow:none!important}}

.noir-site .tp-price-amendment{font-size:12px;color:#ccc;background:#ffffff08;padding:13px;border-radius:14px}.noir-site .tp-extra-journeys{margin-top:15px;border-top:1px solid #ffffff22;padding-top:12px}.noir-site .tp-extra-journeys summary{cursor:pointer}

/* Vehicle change remains an accessible control, styled as a simple text link. */
html body.noir-site #onepage-booking-ui #booking #changeVehicle{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:8px 0!important;color:#bdbdbd!important;font-weight:400!important;text-decoration:underline!important;text-decoration-color:#777!important;text-underline-offset:4px}
html body.noir-site #onepage-booking-ui #booking #changeVehicle:hover{color:#f2efe9!important;text-decoration-color:currentColor!important}

/* No change-vehicle control; the fleet and hero vehicle choices remain available. */
html body.noir-site #changeVehicle{display:none!important}
html body.noir-site :is(.hero-visual,.hero-visual img,.vehicle,.vehicle-photo,.vehicle-photo img,.car,.car-photo,.car-photo img,.vehicle-preview-media,.vehicle-preview-media img){border-radius:0!important}

/* Compact swap control sits between the full-width address fields. */
html body.noir-site #onepage-booking-ui #booking .route-swap-row{position:relative;grid-column:1/-1;height:0;min-height:0;margin:0;z-index:3}
html body.noir-site #onepage-booking-ui #booking #swapRoute{position:absolute;right:12px;top:0;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:36px;height:36px;min-height:36px;padding:0!important;border:1px solid #ffffff26!important;border-radius:14px!important;background:#242424!important;color:#bbb!important;box-shadow:none!important;cursor:pointer}
html body.noir-site #onepage-booking-ui #booking #swapRoute:hover{color:#fff!important;background:#303030!important}
html body.noir-site #onepage-booking-ui #booking #swapRoute svg{width:20px;height:20px;flex:none}
html body.noir-site #onepage-booking-ui #booking .route-swap-row[hidden]{display:none!important}

html body.noir-site #onepage-booking-ui #booking #hourlyFields{border:0!important;background:transparent!important;padding:0!important}
html body.noir-site #onepage-booking-ui #booking #hourlyFields>.form-grid:first-child{grid-template-columns:minmax(0,1fr)!important}
html body.noir-site #onepage-booking-ui #booking #hourlyMileageAllowance{margin:6px 0 18px!important;font-size:11px;line-height:1.6;color:#aaa}

/* Neutral form boundaries, including custom selects and focus states. */
html body.noir-site #onepage-booking-ui #booking *{border-color:#ffffff24!important;outline-color:#b8b8b8!important}
html body.noir-site #onepage-booking-ui #booking :is(input,select,textarea,button,.tp-select-trigger,.tp-select-menu){box-shadow:none!important}
html body.noir-site #onepage-booking-ui #booking :is(input,select,textarea,button):focus-visible{outline:2px solid #b8b8b8!important;outline-offset:3px!important}
html body.noir-site #onepage-booking-ui #booking :is(.trip-tabs button.active,[aria-selected=true],[aria-pressed=true]){border-color:#aaa!important}
html body.noir-site #onepage-booking-ui #booking [aria-invalid=true]{border-color:#dc8585!important}

html body#top.noir-site #onepage-booking-ui #booking :is(input,select,textarea,button):focus{outline:2px solid #b8b8b8!important;outline-offset:3px!important;box-shadow:none!important;border-color:#ffffff40!important}

html body#top.noir-site #onepage-booking-ui #booking [aria-invalid=true]:focus{border-color:#dc8585!important}
