/* Riviera Elite Driver V214 — authoritative release layer.
   Loaded last by design in V214. V214 consolidates these rules into the clean cascade. */

:root{--red-v214-gold:#dfb86b;--red-v214-gold-soft:#efd79f;--red-v214-blue:#4285f4;--red-v214-ease:cubic-bezier(.22,.75,.22,1)}

/* Header / language selector: final authority over the historic v73-v212 cascade. */
@media (max-width:1023px){
  html body header{--red-v214-control:clamp(44px,10.45vw,46px);--red-v214-flag-w:clamp(31px,7.73vw,34px);--red-v214-flag-h:clamp(21px,5.45vw,24px)}
  html body header .lang-switcher.language-dropdown,
  html body header .language-current-btn{height:var(--red-v214-control)!important;min-height:var(--red-v214-control)!important;max-height:var(--red-v214-control)!important}
  html body header .language-current-flag,
  html body header .language-menu .language-option:not(.active) .language-option-flag{
    width:var(--red-v214-flag-w)!important;min-width:var(--red-v214-flag-w)!important;max-width:var(--red-v214-flag-w)!important;
    height:var(--red-v214-flag-h)!important;min-height:var(--red-v214-flag-h)!important;max-height:var(--red-v214-flag-h)!important;object-fit:cover!important
  }
  html body header .language-menu .language-option:not(.active){min-height:44px!important;height:44px!important;max-height:none!important;touch-action:manipulation!important}
  html body header .language-menu{padding-top:calc(var(--red-v214-control) + clamp(20px,5.2vw,23px))!important}

  /* Selected V214 hamburger: two fine gold lines, 44px+ invisible hit target, subtle X. */
  html body header .header-actions>.mobile-menu-toggle{
    position:relative!important;width:var(--red-v214-control)!important;min-width:44px!important;height:var(--red-v214-control)!important;min-height:44px!important;
    padding:0!important;border:0!important;background:transparent!important;border-radius:0!important;display:flex!important;flex-direction:column!important;
    align-items:center!important;justify-content:center!important;gap:6px!important;box-shadow:none!important;touch-action:manipulation!important
  }
  html body header .header-actions>.mobile-menu-toggle::before,
  html body header .header-actions>.mobile-menu-toggle::after{display:none!important;content:none!important}
  html body header .header-actions>.mobile-menu-toggle>span{
    display:block!important;position:absolute!important;left:50%!important;top:50%!important;width:clamp(21px,5.45vw,24px)!important;height:1px!important;
    min-height:1px!important;margin:0!important;background:var(--red-v214-gold)!important;border:0!important;opacity:1!important;transform-origin:center!important;
    transition:transform 210ms var(--red-v214-ease),opacity 120ms ease!important;box-shadow:none!important
  }
  html body header .header-actions>.mobile-menu-toggle>span:nth-child(1){transform:translate(-50%,-4px)!important}
  html body header .header-actions>.mobile-menu-toggle>span:nth-child(2){display:none!important;opacity:0!important}
  html body header .header-actions>.mobile-menu-toggle>span:nth-child(3){transform:translate(-50%,4px)!important}
  html body header .header-actions>.mobile-menu-toggle.menu-open>span:nth-child(1){transform:translate(-50%,0) rotate(45deg)!important}
  html body header .header-actions>.mobile-menu-toggle.menu-open>span:nth-child(3){transform:translate(-50%,0) rotate(-45deg)!important}

  html body .mobile-menu-nav a{text-transform:none!important}
  html body .mobile-luxury-menu.open .mobile-menu-nav a{animation:redV214MenuItemIn 220ms var(--red-v214-ease) both}
  html body .mobile-luxury-menu.open .mobile-menu-nav a:nth-child(2){animation-delay:35ms}
  html body .mobile-luxury-menu.open .mobile-menu-nav a:nth-child(3){animation-delay:70ms}
  html body .mobile-luxury-menu.open .mobile-menu-nav a:nth-child(4){animation-delay:105ms}
  html body .mobile-luxury-menu.open .mobile-menu-nav a:nth-child(5){animation-delay:140ms}
  html body .mobile-luxury-menu.open .mobile-menu-nav a:nth-child(6){animation-delay:175ms}
}
@keyframes redV214MenuItemIn{from{transform:translateY(4px);opacity:.78}to{transform:none;opacity:1}}

/* Booking step motion: visual only, never delays navigation. */
#booking-view.red-v214-step-enter .booking-container-page,#checkout-view.red-v214-step-enter .booking-container-page{animation:redV214StepIn 230ms var(--red-v214-ease) both}
@keyframes redV214StepIn{from{transform:translateY(5px);opacity:.84}to{transform:none;opacity:1}}

/* Calculate button and prices. */
#calcForm .btn-calculate,#calcForm button[type="submit"]{position:relative;overflow:hidden}
#calcForm .red-v214-calculating::after{content:"";position:absolute;inset:0;border:1px solid transparent;border-top-color:var(--red-v214-gold);animation:redV214ButtonTrace 900ms linear infinite;pointer-events:none}
@keyframes redV214ButtonTrace{0%{clip-path:inset(0 100% 0 0)}50%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 0 100%)}}
.vehicle-price.red-v214-price-in{animation:redV214PriceIn 210ms var(--red-v214-ease) both}
@keyframes redV214PriceIn{from{transform:translateY(5px);filter:blur(1px)}to{transform:none;filter:none}}

/* Final vehicle-selection benefits. */
#booking-view [data-red-service-features]{display:grid!important}
#booking-view [data-red-service-features]>span{color:inherit!important;will-change:auto}
#booking-view [data-red-service-features] i,#booking-view [data-red-service-features] svg,
#booking-view [data-red-service-features] i::before{color:var(--red-v214-gold)!important;stroke:var(--red-v214-gold)!important}
#booking-view [data-red-service-features].red-v214-stagger>span{animation:redV214FeatureReveal 190ms var(--red-v214-ease) both}
#booking-view [data-red-service-features].red-v214-stagger>span:nth-child(2){animation-delay:55ms}
#booking-view [data-red-service-features].red-v214-stagger>span:nth-child(3){animation-delay:110ms}
#booking-view [data-red-service-features].red-v214-stagger>span:nth-child(4){animation-delay:165ms}
@keyframes redV214FeatureReveal{from{transform:translateY(4px);clip-path:inset(0 0 75% 0)}to{transform:none;clip-path:inset(0)}}

/* Passenger card compositor stability: do not promote the complete card. */
#checkout-view .checkout-form-container{transform:none!important;will-change:auto!important;backface-visibility:visible!important;contain:none!important}

/* Reservation Summary: transfer = vehicle + discreet Google route map; hourly = centred vehicle. */
#checkout-view .checkout-summary-visuals{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(12px,2.6vw,30px);align-items:center;margin:0 auto clamp(18px,3vw,30px);width:min(100%,760px)}
#checkout-view .checkout-summary-visuals .checkout-vehicle-reassurance{margin:0!important;width:100%!important;max-width:none!important;display:flex!important;align-items:center!important;justify-content:center!important}
#checkout-view .checkout-summary-visuals .checkout-vehicle-reassurance img{width:100%;height:auto;max-height:220px;object-fit:contain}
#checkout-view .checkout-route-map{position:relative;isolation:isolate;width:100%;aspect-ratio:16/9;overflow:hidden;background:#050505;mask-image:radial-gradient(ellipse 86% 77% at center,#000 55%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 86% 77% at center,#000 55%,transparent 100%)}
#checkout-view .checkout-route-map img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0;filter:saturate(.78) brightness(.72) contrast(1.06)}
#checkout-view .checkout-route-map .red-route-layer{clip-path:inset(0 100% 0 0)}
#checkout-view .checkout-route-map.red-route-animate .red-route-layer{animation:redV214RouteDraw 900ms var(--red-v214-ease) 80ms forwards}
@keyframes redV214RouteDraw{to{clip-path:inset(0 0 0 0)}}
#checkout-view.red-hourly-summary .checkout-summary-visuals{display:flex;justify-content:center}
#checkout-view.red-hourly-summary .checkout-vehicle-reassurance{width:min(100%,380px)!important}
#checkout-view.red-hourly-summary .checkout-route-map,#checkout-view.red-hourly-summary .red-journey-duration-row{display:none!important}

/* Stripe Elements: integrated, restrained, same design language. */
.red-terms-consent{display:flex;align-items:flex-start;gap:10px;margin-top:4px;color:rgba(255,255,255,.72);font-size:.78rem;line-height:1.5}
.red-terms-consent input{margin-top:3px;accent-color:var(--red-v214-gold)}
.red-terms-consent a,.red-legal-links a{color:var(--red-v214-gold-soft);text-decoration:none;border-bottom:1px solid rgba(223,184,107,.3)}
.red-payment-trust{display:flex;align-items:center;justify-content:center;gap:7px;color:rgba(255,255,255,.52);font-size:.68rem;letter-spacing:.025em;margin-top:-2px}
.red-payment-trust i{color:var(--red-v214-gold);font-size:.9rem}
.red-stripe-shell{display:block;margin-top:4px;padding:clamp(18px,3vw,26px);border-top:1px solid rgba(223,184,107,.22);background:linear-gradient(180deg,rgba(223,184,107,.025),transparent);animation:redV214StripeOpen 240ms var(--red-v214-ease) both}
.red-stripe-shell[hidden]{display:none!important}
@keyframes redV214StripeOpen{from{transform:translateY(-4px);opacity:.72}to{transform:none;opacity:1}}
.red-stripe-loading{padding:9px 0;color:rgba(255,255,255,.62);font-size:.76rem}
.red-stripe-confirm{width:100%;min-height:48px;margin-top:18px;border:1px solid rgba(223,184,107,.72);background:rgba(223,184,107,.08);color:#fff;font:600 .78rem/1.2 Manrope,Arial,sans-serif;letter-spacing:.09em;cursor:pointer;transition:filter 120ms ease,opacity 120ms ease}
.red-stripe-confirm:active,.btn-confirm-booking:active,.btn-select:active,.back-home-btn:active{filter:brightness(.92);opacity:.88;transform:none!important}
.red-stripe-confirm[disabled]{opacity:.45;cursor:default}
.red-payment-message{min-height:0;margin-top:12px;color:#e7c6b6;font-size:.78rem;line-height:1.5}

/* Explicitly preserve white button labels validated by the user. */
#checkout-view .back-home-btn,#booking-view .back-home-btn,#checkout-view .back-home-btn *,#booking-view .back-home-btn *{color:#fff!important}

.red-legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px;margin:0 auto 13px;font-size:.7rem}

/* Mobile compaction for summary; neither vehicle nor map dominates. */
@media(max-width:680px){
 #checkout-view .checkout-summary-visuals{grid-template-columns:1fr 1fr;gap:8px;width:100%}
 #checkout-view .checkout-summary-visuals .checkout-vehicle-reassurance img{max-height:140px}
 #checkout-view .checkout-route-map{min-height:112px}
}

/* Contact-event target should land with the portrait/name immediately visible below the header. */
#valentin-contact{scroll-margin-top:calc(86px + env(safe-area-inset-top))}

/* Keyboard/focus accessibility, visual only on keyboard navigation. */
:where(a,button,input,textarea,[role="button"]):focus-visible{outline:1px solid rgba(223,184,107,.82)!important;outline-offset:3px!important}

@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
 #checkout-view .checkout-route-map .red-route-layer{clip-path:inset(0)!important}
}
#home-view .input-icon-wrapper.red-v214-place-valid>.field-thin-icon,#home-view .input-icon-wrapper.red-v214-place-valid>i{color:var(--red-v214-gold)!important;transition:color 180ms ease!important}

.red-v214-error-action{display:block;width:max-content;margin:12px auto 0;padding:7px 13px;border:1px solid rgba(223,184,107,.42);background:transparent;color:#efd79f!important;font:600 .68rem/1 Manrope,Arial,sans-serif;letter-spacing:.07em;text-decoration:none;cursor:pointer}
