@font-face{
  font-family:"ARR Sans";
  src:url("assets/arr-sans-variable.woff2") format("woff2");
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}

/* Final readability gate: no consequential product/auth/payment microcopy below 12px. */
:is(.page-product,.page-estimate) .brand-copy span,:is(.page-product,.page-estimate) .header-code,:is(.page-product,.page-estimate) .hero-facts li,
:is(.page-product,.page-estimate) .config-live-strip span,:is(.page-product,.page-estimate) .confirm-tag,:is(.page-product,.page-estimate) .payment-controls legend,
:is(.page-product,.page-estimate) .payment-controls label,:is(.page-product,.page-estimate) .route-map-caption,:is(.page-product,.page-estimate) .fact dt,
:is(.page-product,.page-estimate) .sticky-price span,:is(.page-product,.page-estimate) .sticky-price small,:is(.page-product,.page-estimate) .package-list summary span,
:is(.page-product,.page-estimate) .optional-label,:is(.page-product,.page-estimate) .booking-progress button strong,:is(.page-product,.page-estimate) .review-snapshot dt,
:is(.page-product,.page-estimate) .auth-status span,:is(.page-product,.page-estimate) .auth-path li::before,:is(.page-product,.page-estimate) .auth-path-copy small,
:is(.page-product,.page-estimate) .auth-path-state,:is(.page-product,.page-estimate) .auth-safety,:is(.page-product,.page-estimate) .estimator-context span{
  font-size:max(.75rem,12px)!important;line-height:1.4!important
}
:is(.page-product,.page-estimate) .day-stay{font-size:max(.8125rem,13px)!important;line-height:1.45!important}
@media(max-width:360px){
  :is(.page-product,.page-estimate) .sticky-price small{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  :is(.page-product,.page-estimate) .arr-personal-inner{flex-wrap:wrap!important}
  :is(.page-product,.page-estimate) .arr-personal-inner button{margin-inline-start:0!important}
}
:root{
  --arr-ui:"ARR Sans","Segoe UI Variable Text","Segoe UI",Arial,sans-serif;
  --arr-display:"ARR Sans","Segoe UI Variable Display","Segoe UI",Arial,sans-serif;
  --display:var(--arr-display)!important;
  --body:var(--arr-ui)!important;
  --sans:var(--arr-ui)!important;
  --font-display:var(--arr-display)!important;
  --font-body:var(--arr-ui)!important;
  --font-mono:var(--arr-ui)!important;
}
html{font-synthesis:none}
body{font-family:var(--arr-ui)!important;font-size:16px!important;line-height:1.55!important;letter-spacing:0!important;text-rendering:optimizeLegibility}
button,input,select,textarea{font-family:inherit}
.arr-approved-wordmark{display:block;color:#6b016e!important;font-family:var(--arr-display)!important;font-size:clamp(1.2rem,2.2vw,1.72rem)!important;font-style:italic!important;font-weight:850!important;letter-spacing:-.045em!important;line-height:1!important;white-space:nowrap}
.nav-logo .arr-approved-wordmark{color:#fff!important;text-shadow:0 2px 12px rgba(20,3,24,.4)}
.nav.scrolled .arr-approved-wordmark{color:#6b016e!important;text-shadow:none}
.nav:has(.burger.open) .arr-approved-wordmark{color:#6b016e!important;text-shadow:none}
h1,h2,h3,.sec-title,.wordmark{font-family:var(--arr-display)!important;text-wrap:balance}
.hero h1{font-size:clamp(2.5rem,6vw,4.5rem)!important;font-weight:680!important;line-height:1.02!important;letter-spacing:-.035em!important;white-space:normal!important;max-width:14ch!important;margin-inline:auto!important}
.hero-sub,.hero-lede,.section-intro{font-size:clamp(1rem,1.5vw,1.125rem);line-height:1.55;letter-spacing:0}
.sec-title,.section-head h2{font-size:clamp(2rem,4vw,3.5rem)!important;font-weight:680!important;line-height:1.04!important;letter-spacing:-.03em!important}
.section-kicker,.eyebrow,.label{font-size:.75rem;line-height:1.2;font-weight:700;letter-spacing:.12em}
.day-title strong{font-size:clamp(1.0625rem,2vw,1.125rem);line-height:1.25}
.day-title span,.day-tags li,.day-stay,.micro,.form-note{font-size:max(.8125rem,12px);line-height:1.45;letter-spacing:0}
.search-hint,.trust-label,.trust-chip,.review-trip,.review-via,.j-tag,.j-desc,.mood-card p,
.pack-days,.pack-basis,.pack-note,.pack-stub,.pack-dest,.genie-fine,.footer-tagline,.footer-bottom,
.r3-dest,.r3-meta,.reveal3-proof,.chip,.genie-whisper,.genie-step-label,
#genieStep1 .genie-pills button small,.party-mark,.genie-name-note,.r3-go,.genie-tool,
.region-state,.collection-note,.resume-eyebrow{font-size:max(.75rem,12px)!important;line-height:1.4!important;letter-spacing:0!important}
.page-home .search-hint,.page-home #clearSavedTrip{font-size:12px!important;line-height:1.45!important}
.page-home .resume-book{min-height:44px!important;display:inline-flex!important;align-items:center!important}
:is(.page-product,.page-estimate) :is(.hero-caption,.route-node,.review-avatar,.review-trip,.footer-lock,.day-title span,.section-kicker,.stepper-copy small,.estimator-context span){font-size:12px!important;line-height:1.4!important}
:is(.page-product,.page-estimate) :is(.hero-facts li,.package-facts span,.traveller-option small){font-size:12px!important;line-height:1.4!important}
.arr-genie-dialog,.arr-genie-fab,.arr-genie-dialog *{font-family:var(--arr-ui)!important}
.arr-genie-title,.arr-genie-answer strong{font-family:var(--arr-display)!important}
.arr-genie-fab-icon img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 7px rgba(58,1,64,.24))}
:is(.page-product,.page-estimate) .sticky-inner{grid-template-columns:minmax(0,1fr) auto!important}
:is(.page-product,.page-estimate) .sticky-inner .book-button{min-width:min(48vw,240px)}
@media(max-width:700px){
  .hero h1{font-size:clamp(2.375rem,11vw,2.75rem)!important;max-width:11ch!important}
  .sec-title,.section-head h2{font-size:clamp(2rem,9vw,2.5rem)!important}
  .nav,.arr-genie-dialog{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
}

/* Product and estimate actions become thumb-reachable bottom sheets on phones. */
@media(max-width:640px){
  html:has(body:is(.page-product,.page-estimate) :is(#enquiryDialog,.auth-dialog)[open]),
  body:is(.page-product,.page-estimate):has(:is(#enquiryDialog,.auth-dialog)[open]){
    overflow:hidden!important;
    overscroll-behavior:none
  }
  body:is(.page-product,.page-estimate) :is(#enquiryDialog,.auth-dialog){
    position:fixed!important;
    inset:auto 0 0!important;
    width:100%!important;
    max-width:none!important;
    max-height:min(90dvh,760px)!important;
    margin:0!important;
    padding:0 0 env(safe-area-inset-bottom,0px)!important;
    border-width:1px 0 0!important;
    border-radius:24px 24px 0 0!important;
    overscroll-behavior:contain!important;
    box-sizing:border-box!important
  }
  body:is(.page-product,.page-estimate) :is(#enquiryDialog,.auth-dialog) .dialog-head{
    min-height:64px!important;
    padding-inline:max(12px,env(safe-area-inset-left,0px)) max(12px,env(safe-area-inset-right,0px))!important
  }
  body:is(.page-product,.page-estimate) :is(#enquiryDialog,.auth-dialog) .dialog-close{
    width:48px!important;
    height:48px!important;
    min-height:48px!important;
    flex:0 0 48px
  }
  body:is(.page-product,.page-estimate) :is(#enquiryDialog,.auth-dialog) :is(.utility-button,.arr-login__primary,.arr-login__secondary,.arr-login__text-link){
    min-height:48px!important
  }
}

/* Pale surfaces use the plum interaction color; gold remains a brand accent. */
[data-arr-login] :is(.arr-login__primary,.arr-login__secondary,.arr-login__text-link,.arr-login__form input,.arr-login__message):focus-visible{
  outline-color:#3a0140!important
}
@media(prefers-reduced-motion:no-preference){
  .reveal{transition-duration:.42s!important}
}
/* Performance rule: character comes from interaction, not perpetual GPU work. */
.scroll-line,.genie-glow,.lamp-icon,.lamp-icon .orbit,.lamp-icon .core,.lamp-icon .plane,
.atlas-pet,.atlas-pet img,.region-stars i,.cta-btn::before,.cta-btn::after,
.genie-mascot,.genie-lamp::after,.genie-talk-pet,.genie-flow-pet,.sticky-cta a img,
.destination-genie i{animation:none!important}
.region-card{will-change:auto!important}
@media(hover:none),(pointer:coarse){
  .region-card{transform:none!important}
  .cursor-star{display:none!important}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}}
