/* Bee My Guest booking v80: stays (/stays/, /fr/sejours/) and balance (/balance/, /fr/solde/) pages.
   Owner: web-booking lane. Built on system-v80.ddc518b19c.css tokens and components (DESIGN.md); unlayered,
   linked last. Prefixes: bk- (stays funnel), bal- (balance page). */

/* ---------- Shared icons (masks) ---------- */
.bk-back::before,.bk-trip__change::after,.bk-coupon__toggle::before,.bk-extras__promise-icon,
.bk-confirm__icon::before,.bk-pay__lock,.bk-notice::before,.bk-status[data-tone="error"]::before,.bal-trust li::before,
.bal-status[data-tone]::before{
  content:"";display:inline-block;flex:none;background:currentColor;
  -webkit-mask:var(--bk-icon,var(--icon-info)) center/contain no-repeat;mask:var(--bk-icon,var(--icon-info)) center/contain no-repeat}

/* ---------- Hero ---------- */
.bk-hero{min-height:min(78svh - var(--nav-h),42rem)}
/* A side scrim keeps the copy legible on the bright pool photograph. */
.bk-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,color-mix(in srgb,var(--c-charcoal) 62%,transparent) 0%,color-mix(in srgb,var(--c-charcoal) 28%,transparent) 55%,transparent 80%)}
.bk-hero .ui-hero__content{padding-block:var(--space-11) calc(var(--space-10) + 3rem)}
.bk-hero .t-eyebrow{margin-bottom:var(--space-3)}
.bk-hero__title{max-width:17ch;margin:0 0 var(--space-4);color:var(--text-primary);font-family:var(--font-editorial);font-size:clamp(2.125rem,1.6rem + 2.3vw,3.5rem);font-weight:500;line-height:1.1;letter-spacing:-.025em}
.bk-hero__title .accent-serif{font:inherit;color:inherit}
.bk-page .ui-section-head h2{font-family:var(--font-editorial);font-weight:500;font-style:normal}
.bk-hero__lead{max-width:32em;margin:0}
@media (max-width:733.98px){.bk-hero::before{background:linear-gradient(180deg,color-mix(in srgb,var(--c-charcoal) 30%,transparent) 0%,color-mix(in srgb,var(--c-charcoal) 50%,transparent) 40%,color-mix(in srgb,var(--c-charcoal) 62%,transparent) 100%)}}
@media (min-width:1068px){.bk-hero{min-height:min(76svh - var(--nav-h),44rem)}}

/* Preserve villa context on a narrow screen; the booking introduction has its own space. */
@media (max-width:733.98px){
  .bk-hero{display:block;min-height:0}
  .bk-hero::before,.bk-hero::after{display:none}
  .bk-hero .ui-hero__media{position:relative;inset:auto;z-index:auto;aspect-ratio:3 / 2}
  .bk-hero .ui-hero__media img{height:auto;aspect-ratio:3 / 2;object-position:50% 50%}
  .bk-hero .ui-hero__content{padding-block:var(--space-7) calc(var(--space-9) + 3rem)}
}

/* ---------- Booking section and search card ---------- */
.bk-booking{position:relative;z-index:var(--z-raised);margin-top:-4rem;padding-bottom:var(--space-10)}
.bk-flow-active .bk-booking{margin-top:0;padding-top:var(--space-5)}
.bk-search-panel{display:grid;gap:var(--space-4);padding:var(--space-5);border-radius:var(--r-xl);background:var(--color-surface);box-shadow:var(--elevation-3)}
.bk-search-panel__title{margin:0;font-family:var(--font-display);font-size:var(--fs-title-3);font-weight:var(--fw-semibold);line-height:1.25;letter-spacing:var(--ls-title-3)}
.bk-search{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);margin:0}
.bk-page [hidden],.bal-page [hidden]{display:none}
.bk-search__dates{min-width:0}
.bk-search__guests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.bk-search__native{display:grid;gap:2px;padding:.625rem 1rem;border:1px solid var(--control-border);border-radius:var(--r-md);background:var(--color-surface)}
.bk-search__select{width:100%;min-height:1.75rem;margin:0;padding:0;border:0;background:transparent;color:var(--text-primary);font:var(--fw-semibold) var(--fs-input)/1.3 var(--font-text)}
.bk-search__submit{width:100%}
@media (min-width:734px){
  .bk-search-panel{padding:var(--space-5) var(--space-6) var(--space-6)}
  .bk-search{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr) auto;align-items:stretch;gap:var(--space-2)}
  .bk-search__submit{width:auto;min-width:9rem;height:100%;padding-inline:var(--space-7)}
}

/* Enhanced triggers (buttons over the native value carriers) */
.bk-trigger{display:grid;align-content:center;gap:2px;width:100%;min-width:0;min-height:3.5rem;margin:0;padding:.625rem 1rem;border:0;border-radius:var(--r-lg);background:transparent;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-2) var(--ease-standard)}
.bk-trigger__value{overflow:hidden;color:var(--text-primary);font-size:var(--fs-input);font-weight:var(--fw-semibold);line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.bk-trigger.is-empty .bk-trigger__value{color:var(--text-secondary);font-weight:var(--fw-medium)}
.bk-trigger:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}
@media (hover:hover){.bk-trigger:hover{background:var(--fill-tertiary)}}
.bk-search__guests--enhanced{position:relative;display:block}
.bk-trigger--guests{padding:.875rem 1.25rem;border:1px solid var(--control-border);border-radius:var(--r-md);background:var(--color-surface)}
.bk-trigger--guests[aria-expanded="true"]{border-color:var(--focus-ring);box-shadow:0 0 0 4px var(--focus-halo)}

.bk-popover{display:grid;gap:var(--space-4);margin-top:var(--space-2);padding:var(--space-5);border:1px solid var(--separator);border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--elevation-3)}
.bk-popover[hidden]{display:none}
@media (min-width:734px){.bk-trigger--guests{height:100%}}
@media (min-width:734px){.bk-popover{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:var(--z-sticky);width:min(22rem,90vw);margin:0}}
.bk-popover__note{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.bk-popover__done{justify-self:end}
.bk-stepper-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.bk-stepper-row__label{display:grid;gap:1px;min-width:0}
.bk-stepper-row__title{font-size:var(--fs-body);font-weight:var(--fw-semibold);line-height:1.3}
.bk-stepper-row__hint{color:var(--text-secondary);font-size:var(--fs-footnote)}
.bk-stepper-row .ui-stepper button{width:var(--tap-min);height:var(--tap-min)}

.bk-status{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;color:var(--text-secondary);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.bk-status:empty{display:none}
.bk-status[data-tone="success"]{color:var(--status-success-text)}
.bk-status[data-tone="error"]{color:var(--status-danger-text)}
.bk-status[data-tone="error"]::before{--bk-icon:var(--icon-alert);width:1.1em;height:1.1em;margin-top:.15em}
.bk-help{margin:var(--space-5) 0 0;color:var(--text-secondary);font-size:var(--fs-callout);text-align:center}
.bk-help .ui-link{font-size:inherit}

/* ---------- Calendar sheet ---------- */
.bk-cal{--cell:min(2.75rem,(100vw - 2.5rem) / 7)}
@media (min-width:734px){.bk-cal.ui-sheet--center{width:min(46rem,100% - 2 * var(--gutter));max-height:min(90dvh,44rem)}}
.bk-cal__body{display:grid;gap:var(--space-3);padding-top:var(--space-1)}
.bk-cal__hint{min-height:1.4em;margin:0;color:var(--text-secondary);font-size:var(--fs-callout)}
.bk-cal__nav{position:relative;z-index:1;display:flex;justify-content:space-between;height:0}
.bk-cal__nav .ui-icon-button{--icon:var(--icon-chevron);width:2.5rem;height:2.5rem;transform:translateY(-.25rem)}
.bk-cal__prev::before{transform:scaleX(-1)}
.bk-cal__nav .ui-icon-button:disabled{opacity:.35;cursor:not-allowed}
.bk-cal__months{display:grid;justify-content:center;gap:var(--space-8)}
@media (min-width:734px){.bk-cal__months{grid-template-columns:repeat(2,auto)}}
.bk-cal__month-name{margin:0 0 var(--space-3);font-family:var(--font-text);font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:2.25rem;text-align:center}
.bk-cal__grid{border-collapse:separate;border-spacing:0 2px;table-layout:fixed}
.bk-cal__grid th{width:var(--cell);height:2rem;padding:0;color:var(--text-secondary);font-size:var(--fs-caption);font-weight:var(--fw-semibold);text-align:center}
.bk-cal__grid td{width:var(--cell);height:var(--cell);padding:0;text-align:center}
.bk-day{position:relative;display:grid;place-items:center;width:var(--cell);height:var(--cell);margin:0 auto;padding:0;border:0;border-radius:var(--r-control);background:transparent;color:var(--text-primary);font:var(--fw-medium) var(--fs-callout)/1 var(--font-text);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--dur-1) var(--ease-standard)}
@media (hover:hover){.bk-day:not(:disabled):hover{background:var(--fill-secondary)}}
.bk-day:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px;z-index:1}
.bk-day[aria-current="date"]::after{content:"";position:absolute;bottom:.35rem;width:4px;height:4px;border-radius:50%;background:currentColor}
.bk-day:disabled{color:var(--text-tertiary);text-decoration:line-through;text-decoration-color:var(--separator-strong);cursor:not-allowed}
.bk-cal__grid td.is-between{background:var(--accent-tint)}
.bk-cal__grid td.is-preview{background:color-mix(in srgb,var(--accent-tint) 55%,transparent)}
.bk-cal__grid td.is-start.has-end{background:linear-gradient(90deg,transparent 50%,var(--accent-tint) 50%)}
.bk-cal__grid td.is-end{background:linear-gradient(90deg,var(--accent-tint) 50%,transparent 50%)}
.bk-cal__grid td.is-end.is-preview{background:linear-gradient(90deg,color-mix(in srgb,var(--accent-tint) 55%,transparent) 50%,transparent 50%)}
.bk-cal__grid td.is-start .bk-day,.bk-cal__grid td.is-end:not(.is-preview) .bk-day{background:var(--color-ink);color:var(--color-on-ink);font-weight:var(--fw-semibold)}
.bk-cal__grid td.is-end.is-preview .bk-day{box-shadow:inset 0 0 0 1.5px var(--color-ink)}
.bk-cal__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}
.bk-cal__summary{margin:0;color:var(--text-body);font-size:var(--fs-callout);font-weight:var(--fw-semibold)}
.bk-cal__actions{display:flex;gap:var(--space-2);margin-left:auto}

/* ---------- Results ---------- */
.bk-view:empty{display:none}
.bk-results{margin-top:var(--space-9)}
.bk-results__head{display:grid;gap:var(--space-2);margin-bottom:var(--space-6)}
.bk-results__title{margin:0;font-family:var(--font-display);font-size:var(--fs-title-1);font-weight:var(--fw-semibold);line-height:var(--lh-title-1);letter-spacing:var(--ls-title-1)}
.bk-results__title:focus{outline:none}
.bk-results__meta{margin:0;color:var(--text-secondary);font-size:var(--fs-callout)}
.bk-results__list{gap:var(--space-5)}
.bk-card .ui-villa-card__body{gap:var(--space-2)}
.bk-card .ui-villa-card__footer{align-items:center}
.bk-card__reason{margin:0;color:var(--text-secondary);font-size:var(--fs-callout);font-weight:var(--fw-medium)}
.bk-price-skeleton{width:9rem;height:1.25rem}
.bk-skeleton-short{width:45%}
.bk-empty{border-radius:var(--r-xl);background:var(--color-surface)}

/* ---------- Notices ---------- */
.bk-notice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-1) var(--space-3);margin:0 0 var(--space-5);padding:var(--space-4) var(--space-5);border-radius:var(--r-md);background:var(--status-info-tint);color:var(--status-info-text);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.bk-notice::before{width:1.15rem;height:1.15rem;margin-top:.1rem}
.bk-notice>*{grid-column:2;margin:0}
.bk-notice .ui-actions{margin-top:var(--space-3)}
.bk-notice--warning{background:var(--status-warning-tint);color:var(--status-warning-text);--bk-icon:var(--icon-alert)}
.bk-notice--error{background:var(--status-danger-tint);color:var(--status-danger-text);--bk-icon:var(--icon-alert)}
.bk-notice--info{--bk-icon:var(--icon-info)}
p.bk-notice{display:flex;align-items:flex-start}

/* ---------- Flow layout ---------- */
.bk-flow{display:grid;gap:var(--space-5)}
.bk-flow__top{display:flex;align-items:center;gap:var(--space-4)}
.bk-flow__top .bk-steps{flex:1;margin:0}
.bk-back{display:inline-flex;align-items:center;gap:.25rem;flex:none;min-height:var(--tap-min);margin:0;padding:0 .5rem 0 0;border:0;background:none;color:var(--text-link);font:var(--fw-medium) var(--fs-callout)/1.2 var(--font-text);cursor:pointer}
.bk-back::before{--bk-icon:var(--icon-chevron);width:.8em;height:.8em;transform:scaleX(-1)}
.bk-back:focus-visible,.bk-trip__change:focus-visible,.bk-coupon__toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-xs)}
.bk-trip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-5);border-radius:var(--r-lg);background:var(--fill-tertiary)}
.bk-trip__text{margin:0;color:var(--text-body);font-size:var(--fs-callout);font-weight:var(--fw-medium)}
.bk-trip__change{display:inline-flex;align-items:center;gap:.2em;min-height:var(--tap-min);margin:0;padding:0;border:0;background:none;color:var(--text-link);font:var(--fw-medium) var(--fs-callout)/1.2 var(--font-text);cursor:pointer}
.bk-trip__change::after{--bk-icon:var(--icon-chevron);width:.7em;height:.7em}
@media (max-width:733.98px){
  .bk-trip{flex-wrap:nowrap;align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--r-lg)}
  .bk-trip__text{font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
  .bk-trip__change{flex:none;min-height:0;font-size:var(--fs-footnote);white-space:nowrap}
}
.bk-flow__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-8);align-items:start}
@media (min-width:1068px){.bk-flow__grid{grid-template-columns:minmax(0,1fr) minmax(19rem,22rem);gap:var(--space-9)}}
.bk-flow__main{display:grid;gap:var(--space-7);min-width:0}
.bk-flow--return{justify-items:center;min-height:min(70svh,40rem);align-content:start}

.bk-step-head{display:grid;gap:var(--space-2)}
.bk-step-title,.bk-villa__name,.bk-extras__title{margin:0;font-family:var(--font-display);font-size:var(--fs-title-1);font-weight:var(--fw-semibold);line-height:var(--lh-title-1);letter-spacing:var(--ls-title-1)}
.bk-step-title:focus,.bk-villa__name:focus,.bk-extras__title:focus,.bk-confirm__title:focus,.bk-section-title:focus{outline:none}
.bk-step-lead{max-width:40em;margin:0;color:var(--text-body);font-size:var(--fs-body)}
.bk-section-title{margin:0;font-family:var(--font-display);font-size:var(--fs-title-3);font-weight:var(--fw-semibold);line-height:var(--lh-title-3);letter-spacing:var(--ls-title-3)}

/* Summary card (desktop) and bar (mobile) */
.bk-summary__inner{display:grid;gap:var(--space-4)}
.bk-summary__villa{display:grid;grid-template-columns:4rem minmax(0,1fr);align-items:center;gap:var(--space-3)}
.bk-summary__thumb{width:4rem;height:4rem;border-radius:var(--r-sm);object-fit:cover}
.bk-summary__kicker{margin:0;color:var(--accent-text);font-size:var(--fs-caption);font-weight:var(--fw-semibold)}
.bk-summary__name{margin:0;font-size:var(--fs-body);font-weight:var(--fw-semibold);line-height:1.3}
.bk-summary__facts{display:grid;gap:var(--space-2);margin:0;padding-top:var(--space-4);border-top:1px solid var(--separator);font-size:var(--fs-callout)}
.bk-summary__facts>div{display:flex;justify-content:space-between;gap:var(--space-3)}
.bk-summary__facts dt{color:var(--text-secondary)}
.bk-summary__facts dd{margin:0;text-align:right;font-weight:var(--fw-medium)}
.bk-summary__totals{padding-top:var(--space-4);border-top:1px solid var(--separator)}
.bk-summary__note{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.bk-summary-bar .ui-button{flex:none;max-width:60%;white-space:normal}
/* Extras step: the bar's amount is labelled ("Due today"), the requests note sits on its own line. */
.bk-bar__label{display:block;margin-bottom:1px;color:var(--text-secondary);font-size:var(--fs-caption);font-weight:var(--fw-medium);line-height:1.2;letter-spacing:0}

/* ---------- Villa step ---------- */
.bk-gallery{display:grid;grid-auto-flow:column;grid-auto-columns:86%;gap:var(--space-2);margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:none;overscroll-behavior-x:contain}
.bk-gallery__item{margin:0;aspect-ratio:3 / 2;overflow:hidden;border-radius:var(--r-lg);background:var(--color-canvas-alt);scroll-snap-align:start}
.bk-gallery__item img{display:block;width:100%;height:100%;object-fit:cover}
.bk-gallery-more{margin-top:var(--space-4)}
.bk-gallery-more>summary{width:fit-content;cursor:pointer;font-weight:var(--fw-semibold);padding:var(--space-3) 0;text-decoration:underline;text-underline-offset:.2em}
.bk-gallery-more>summary:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:var(--r-sm)}
.bk-gallery-more[open] .bk-gallery--more{margin-top:var(--space-3)}
@media (min-width:734px){.bk-gallery.bk-gallery--more{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:auto}.bk-gallery--more .bk-gallery__item{aspect-ratio:3 / 2}}
@media (min-width:734px){
  .bk-gallery{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,10rem));grid-auto-columns:auto;margin:0;padding:0;overflow:hidden;border-radius:var(--r-xl)}
  .bk-gallery__item{aspect-ratio:auto;border-radius:0}
  .bk-gallery__item--feature{grid-column:span 2;grid-row:span 2}
}
@media (min-width:1068px){.bk-gallery{grid-template-rows:repeat(2,minmax(0,12rem))}}
.bk-villa{display:grid;gap:var(--space-8)}
.bk-villa__intro{display:grid;gap:var(--space-2)}
.bk-villa__kicker{margin:0;color:var(--accent-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold)}
.bk-villa__facts{margin:0;color:var(--text-secondary);font-size:var(--fs-callout)}
.bk-villa__desc{max-width:40em;margin:var(--space-2) 0 0;color:var(--text-body)}
.bk-rates{display:grid;gap:var(--space-4)}
.bk-rates__note{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.bk-rates__loading{display:grid;gap:var(--space-3)}
.bk-rate-skeleton{height:7rem;border-radius:var(--r-lg)}
.bk-rate-list{gap:var(--space-3)}
.bk-rate.ui-choice{row-gap:var(--space-2)}
.bk-rate .ui-choice__price{display:grid;justify-items:end;gap:2px;grid-row:1}
.bk-rate .ui-choice__desc{grid-column:1 / -1}
.bk-rate__total{font-size:var(--fs-title-3);font-weight:var(--fw-semibold)}
.bk-rate__before{color:var(--text-secondary);font-size:var(--fs-footnote);font-weight:var(--fw-regular)}
.bk-rate__plan{grid-column:1 / -1;padding:var(--space-3) var(--space-4);border-radius:var(--r-md);background:var(--fill-tertiary);color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.bk-rate__plan strong{color:var(--text-primary)}
.bk-rate__plan--muted{color:var(--text-secondary)}
.bk-rate__policy{grid-column:1 / -1;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.ui-choice:has(input:checked) .bk-rate__plan{background:var(--color-surface)}

/* Coupon (above the rates; v77 format check kept in the script) */
.bk-coupon{display:grid;gap:var(--space-3)}
.bk-coupon__toggle{display:inline-flex;align-items:center;justify-self:start;gap:.5rem;min-height:var(--tap-min);margin:0;padding:0;border:0;background:none;color:var(--text-link);font:var(--fw-medium) var(--fs-callout)/1.3 var(--font-text);text-align:left;cursor:pointer}
.bk-coupon__toggle::before{--bk-icon:var(--icon-plus);width:1em;height:1em;transition:transform var(--dur-2) var(--ease-standard)}
.bk-coupon__toggle[aria-expanded="true"]::before{transform:rotate(45deg)}
.bk-coupon__panel{padding:var(--space-5);border-radius:var(--r-lg);background:var(--fill-tertiary)}
.bk-coupon__panel[hidden]{display:none}
.bk-coupon__form{display:grid;gap:var(--space-2)}
.bk-coupon__row{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.bk-coupon__input{flex:1 1 12rem;width:auto;text-transform:uppercase;letter-spacing:.04em}
.bk-coupon__input::placeholder{text-transform:none;letter-spacing:0}
.bk-coupon__message{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.bk-coupon__message[data-tone="error"]{color:var(--status-danger-text)}
.bk-coupon--applied{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--r-lg);background:var(--status-success-tint)}
.bk-coupon--applied .bk-coupon__message{flex-basis:100%}
.bk-coupon__applied{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin:0}
.bk-coupon__hint{color:var(--status-success-text);font-size:var(--fs-footnote)}
.ui-chip--icon.ui-chip--success{--chip-icon:var(--icon-check)}
.bk-coupon__remove{min-height:var(--tap-min);font-size:var(--fs-callout)}
.bk-coupon__remove::after{display:none}

/* ---------- Extras step ("Enhance your arrival", CONTRACT §12) ----------
   Product cards with the real photography: the first vehicle product is a wide feature card, the
   other vehicles share a row, a product without models (extra bed) keeps a compact row card. */
.bk-extras__head{display:grid;gap:var(--space-3)}
.bk-extras__lead{max-width:40em;margin:0;color:var(--text-body)}
.bk-extras__promise{display:flex;align-items:flex-start;gap:var(--space-3);margin:0;padding:var(--space-4) var(--space-5);border-radius:var(--r-lg);background:var(--accent-tint);color:var(--c-honey-ink);font-size:var(--fs-callout);font-weight:var(--fw-medium);line-height:var(--lh-callout)}
.bk-extras__promise-icon{--bk-icon:var(--icon-sparkle);width:1.25rem;height:1.25rem;margin-top:.05rem}
.bk-extras__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
@media (min-width:734px){
  .bk-extras__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bk-extra--feature,.bk-extra--simple{grid-column:1 / -1}
}
.bk-extra{position:relative;display:grid;grid-template-rows:auto 1fr;min-width:0;overflow:hidden;border-radius:var(--r-xl);background:var(--color-surface);box-shadow:var(--elevation-2)}
.bk-extra.is-requested::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;box-shadow:inset 0 0 0 2px var(--selection-border);pointer-events:none}
.bk-extra__media{position:relative;margin:0;aspect-ratio:3 / 2;overflow:hidden;background:var(--color-canvas-alt)}
.bk-extra__media img{display:block;width:100%;height:100%;max-width:none;object-fit:cover}
.bk-extra__badge{position:absolute;top:var(--space-3);left:var(--space-3);--chip-icon:var(--icon-check)}
.bk-extra__body{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;padding:var(--space-5) var(--space-5) var(--space-5)}
.bk-extra__eyebrow{margin:0;color:var(--accent-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold);line-height:1.3}
.bk-extra__name{margin:0;font-family:var(--font-display);font-size:var(--fs-title-3);font-weight:var(--fw-semibold);line-height:1.25;letter-spacing:var(--ls-title-3)}
.bk-extra__summary{margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.bk-extra__specs{margin-top:var(--space-1)}
.bk-extra__fit{display:flex;align-items:flex-start;gap:.5rem;margin:var(--space-1) 0 0;color:var(--text-body);font-size:var(--fs-footnote);font-weight:var(--fw-medium);line-height:var(--lh-footnote)}
.bk-extra__fit::before{content:"";flex:none;width:1rem;height:1rem;margin-top:.1em;background:var(--accent-text);-webkit-mask:var(--icon-check-circle) center/contain no-repeat;mask:var(--icon-check-circle) center/contain no-repeat}
/* Requested: what the guest chose, in place of the fit line (the card photo shows the same model). */
.bk-extra__fit--requested{color:var(--text-primary);font-weight:var(--fw-semibold)}
.bk-extra__fit--requested::before{background:var(--status-success-text);-webkit-mask-image:var(--icon-check);mask-image:var(--icon-check)}
.bk-extra__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-4);margin-top:auto;padding-top:var(--space-4)}
.bk-extra__price{display:grid;gap:1px;margin:0;font-variant-numeric:tabular-nums lining-nums}
.bk-extra__amount{color:var(--text-secondary);font-size:var(--fs-callout);line-height:1.3}
.bk-extra__amount strong{color:var(--text-primary);font-weight:var(--fw-semibold)}
.bk-extra__unit{color:var(--text-secondary);font-size:var(--fs-caption);line-height:var(--lh-caption)}
.bk-extra__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.bk-extra.is-unavailable{box-shadow:none;background:var(--color-canvas-alt)}
.bk-extra.is-unavailable img{filter:grayscale(.4);opacity:.7}
.bk-extra--skeleton{min-height:16rem}
.bk-extra--skeleton .bk-extra__media{display:block;border-radius:0}
.bk-chip--later{--chip-icon:var(--icon-calendar)}
/* The feature card (airport transfer): photo and copy side by side once there is room. */
@media (min-width:734px){
  /* The photo keeps the shared 3:2 vehicle framing (whole vehicle, villa and driver): it sets the
     row height, and only a taller text column stretches it, which crops a sliver of the sides. */
  .bk-extra--feature{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:none}
  .bk-extra--feature .bk-extra__media{align-self:stretch;width:100%;aspect-ratio:3 / 2;height:auto;min-height:0}
  .bk-extra--feature .bk-extra__media img{object-position:38% 70%}
  .bk-extra--feature .bk-extra__body{justify-content:center;gap:var(--space-2);padding:var(--space-6) var(--space-6) var(--space-5) var(--space-5)}
  .bk-extra--feature .bk-extra__name{font-size:var(--fs-title-2);line-height:var(--lh-title-2);letter-spacing:var(--ls-title-2)}
  .bk-extra--feature .bk-extra__footer{margin-top:var(--space-3)}
}
/* Simple products (no models): a compact row with a thumbnail. */
.bk-extra--simple{grid-template-columns:6.5rem minmax(0,1fr);grid-template-rows:none;border-radius:var(--r-lg);box-shadow:var(--elevation-1)}
.bk-extra--simple .bk-extra__media{aspect-ratio:auto;height:100%}
.bk-extra--simple .bk-extra__body{gap:var(--space-1);padding:var(--space-4) var(--space-4) var(--space-4) var(--space-5)}
.bk-extra--simple .bk-extra__name{font-size:var(--fs-body)}
.bk-extra--simple .bk-extra__summary{font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bk-extra--simple .bk-extra__footer{padding-top:var(--space-3)}
@media (min-width:734px){
  .bk-extra--simple{grid-template-columns:10rem minmax(0,1fr)}
  .bk-extra--simple .bk-extra__body{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:center;column-gap:var(--space-6);padding:var(--space-4) var(--space-5) var(--space-4) var(--space-6)}
  .bk-extra--simple .bk-extra__body>:not(.bk-extra__footer){grid-column:1}
  .bk-extra--simple .bk-extra__footer{grid-column:2;grid-row:1 / span 3;flex-wrap:nowrap;gap:var(--space-5);margin:0;padding:0}
}
.bk-extra__date-note{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bk-extra__media-note{margin-top:var(--space-1)}
.bk-extras__price-note{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.bk-extras__price-note:empty{display:none}

/* Requests list (extras step), review and confirmation lines: a 3:2 thumbnail that crops in on the
   vehicle, as the picker cards do. */
.bk-requests{display:grid;gap:var(--space-3);padding:var(--space-5);border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--elevation-1)}
.bk-requests__empty,.bk-requests__updating{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.bk-requests__note{padding-top:var(--space-1)}
.bk-requests__list{display:grid;margin:0;padding:0;list-style:none}
.bk-request{display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto;gap:var(--space-1) var(--space-4);align-items:start;padding-block:var(--space-4);border-bottom:1px solid var(--separator)}
.bk-request:first-child{padding-top:0}
.bk-request:not(:has(.bk-request__thumb)){grid-template-columns:minmax(0,1fr) auto}
.bk-request__thumb{display:block;grid-row:span 2;width:4.5rem;aspect-ratio:3 / 2;overflow:hidden;border-radius:var(--r-sm);background:var(--color-canvas-alt)}
.bk-request__thumb img{display:block;width:100%;height:100%;max-width:none;object-fit:cover}
.bk-request__thumb--vehicle img{transform:scale(1.35);transform-origin:16% 72%}
.bk-request__thumb--scooter img{transform:scale(1.75);transform-origin:13% 92%}
.bk-request__text{display:grid;gap:2px;min-width:0}
.bk-request__title{margin:0;font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3}
.bk-request__detail{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.bk-request__price{margin:0;font-size:var(--fs-callout);font-weight:var(--fw-semibold);text-align:right}
.bk-request__actions{display:flex;gap:var(--space-4);grid-column:2 / -1}
.bk-request:not(:has(.bk-request__thumb)) .bk-request__actions{grid-column:1 / -1}
.bk-request__actions .ui-link{min-height:2rem;font-size:var(--fs-footnote)}
.bk-request__actions .ui-link::after{display:none}
.bk-requests__totals{padding-top:var(--space-2)}
/* The one cross-sell line: the departure transfer when only the arrival one is requested. It opens
   the sheet on the departure leg (its flight still has to be given), so the whole card is the
   control (the title button stretches over it) and it ends with the chevron, never "Add". */
.bk-cross{margin-top:var(--space-1)}
.bk-cross__media--vehicle img{transform:scale(1.35);transform-origin:16% 72%}
.bk-cross .ui-rec__title{font-size:var(--fs-callout)}
.bk-cross__open{display:inline;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.bk-cross__meta{margin:0;color:var(--text-body);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bk-cross .ui-rec__price{padding-top:var(--space-1)}
.bk-cross__tax{display:block;color:var(--text-secondary);font-size:var(--fs-caption)}
.bk-cross .ui-rec__go{grid-row:1 / span 4;align-self:center}
@media (hover:hover){.bk-cross:has(.ui-rec__open:hover){background:var(--fill-secondary)}}
/* Phones: the photo and the chevron top-aligned with the text, which takes the rest of the row. */
@media (max-width:479.98px){
  .bk-cross{align-items:flex-start}
  .bk-cross .ui-rec__media{width:4rem}
}
/* Phones: the price moves under the title, so long titles keep the width. */
@media (max-width:479.98px){
  .bk-request{grid-template-columns:4rem minmax(0,1fr);column-gap:var(--space-3)}
  .bk-request__thumb{width:4rem;grid-row:span 3}
  .bk-request__price{grid-column:2;text-align:left}
  .bk-request__actions{grid-column:2}
}

/* ---------- Extras sheet (CONTRACT §14.3) ----------
   One dialog per product: transfers (the garage per leg), a car with driver and scooters (the garage
   per day under the date strip), the extra bed (nights, beds, room). Light sheet; only the garage
   stage is dark. The footer holds the estimate and one primary action. */
.bk-sheet__form{display:contents}
/* max-content rows: in the scrolling body a photo (overflow hidden) would otherwise collapse its row. */
.bk-sheet__body{display:grid;grid-auto-rows:max-content;align-content:start;gap:var(--space-5);padding-top:var(--space-1)}
.bk-sheet__lead{max-width:44em;margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.bk-sheet__intro{display:grid;gap:var(--space-2)}
.bk-sheet__price{margin:0;color:var(--text-secondary);font-size:var(--fs-callout)}
.bk-sheet__price strong{color:var(--text-primary);font-weight:var(--fw-semibold)}
.bk-sheet__media{display:grid;gap:var(--space-2);margin:0}
.bk-sheet__media img{display:block;width:100%;aspect-ratio:3 / 2;max-width:none;border-radius:var(--r-lg);background:var(--color-canvas-alt);object-fit:cover}
.bk-sheet__label,.bk-sheet__heading{margin:0;color:var(--text-primary);font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3}
.bk-sheet__label-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4)}
.bk-sheet__label-hint{display:block;margin-top:2px;color:var(--text-secondary);font-size:var(--fs-footnote);font-weight:var(--fw-regular)}
/* The garage in a sheet fills the width: from 54rem its stage is a cinematic band (the sheet caps its height), never a narrower 16:9 box beside empty space. */
.bk-sheet .ui-garage--sheet .ui-garage__stage{width:100%}
/* Phones: a wider stage keeps the model's name, price and Add above the sheet footer. */
@media (max-width:733.98px){.bk-sheet .ui-garage--sheet .ui-garage__stage{aspect-ratio:16 / 10}}
.bk-sheet__optional{color:var(--text-secondary);font-weight:var(--fw-regular)}
.bk-sheet__days{display:grid;gap:var(--space-1);min-width:0}
.bk-sheet__rows{display:grid;gap:var(--space-5)}
.bk-sheet__details[hidden]{display:none}
.bk-sheet__block{display:grid;gap:var(--space-4);min-width:0;padding-top:var(--space-5);border-top:1px solid var(--separator)}
.bk-sheet__hint{margin:calc(var(--space-2) * -1) 0 0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bk-sheet__grid{gap:var(--space-4)}
@media (min-width:734px){.bk-sheet[data-kind="legs"] .bk-sheet__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bk-sheet[data-kind="days"] .bk-sheet__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bk-sheet__check{align-items:start;padding:var(--space-4);border-radius:var(--r-md);background:var(--fill-tertiary);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.bk-sheet__check input{margin-top:.1rem}
.bk-sheet__check-title{display:block;color:var(--text-primary);font-weight:var(--fw-semibold)}
.bk-sheet__check-hint{display:block;margin-top:2px;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bk-sheet__pickup{display:flex;align-items:flex-start;gap:.5rem;margin:0;color:var(--text-body);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bk-sheet__pickup::before{content:"";flex:none;width:1rem;height:1rem;margin-top:.1em;background:currentColor;-webkit-mask:var(--icon-clock) center/contain no-repeat;mask:var(--icon-clock) center/contain no-repeat}
.bk-sheet__pickup[data-tone="warning"]{padding:var(--space-3) var(--space-4);border-radius:var(--r-md);background:var(--status-warning-tint);color:var(--status-warning-text);font-weight:var(--fw-medium)}
.bk-sheet__pickup[hidden]{display:none}
.bk-sheet__textarea{min-height:4.5rem}
.bk-sheet__flight-number{text-transform:uppercase;letter-spacing:.02em}
.bk-sheet__flight-number::placeholder{text-transform:none;letter-spacing:0}
.bk-sheet .ui-stepper-row{gap:var(--space-5)}
.bk-sheet .ui-stepper-row__hint{max-width:30em}

/* Transfer legs: two tiles, one radio group; the active leg shows its fleet in the garage. */
.bk-legpick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}
.bk-legpick__tile{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2px var(--space-2);min-width:0;min-height:var(--tap-min);margin:0;padding:.75rem .875rem;border:1.5px solid transparent;border-radius:var(--r-control);background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--separator-strong);color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.bk-legpick__title{font-size:var(--fs-callout);font-weight:var(--fw-semibold);line-height:1.3}
.bk-legpick__state{grid-column:2;grid-row:1;color:var(--text-secondary);font-size:var(--fs-caption);font-weight:var(--fw-semibold);line-height:1.3;text-align:right;white-space:nowrap}
.bk-legpick__meta{grid-column:1 / -1;grid-row:2;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bk-legpick__tile[data-state="count"] .bk-legpick__state{color:var(--accent-text)}
.bk-legpick__tile[aria-checked="true"]{background:var(--color-ink);box-shadow:none;color:var(--color-on-ink)}
.bk-legpick__tile[aria-checked="true"] :is(.bk-legpick__meta,.bk-legpick__state){color:inherit;opacity:.82}
.bk-legpick__tile[data-state="pending"]{border-style:dashed;border-color:var(--pending-line)}
.bk-legpick__tile[data-state="pending"]:not([aria-checked="true"]){background:var(--pending-tint);box-shadow:none}
.bk-legpick__tile:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
@media (hover:hover){.bk-legpick__tile:not([aria-checked="true"]):hover{box-shadow:inset 0 0 0 1px var(--text-secondary)}}
@media (max-width:479.98px){.bk-legpick__tile{padding:.625rem .75rem}}

/* Footer: what the sheet adds (summary, estimate, when it is paid) beside one primary action. */
.bk-sheet__footer{gap:var(--space-2)}
.bk-sheet__feedback{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bk-sheet__feedback:empty{display:none}
.bk-sheet__feedback[data-tone="error"]{color:var(--status-danger-text);font-weight:var(--fw-medium)}
.bk-sheet__bar{display:grid;gap:var(--space-3)}
.bk-sheet__total{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;min-width:0;font-variant-numeric:tabular-nums lining-nums}
@media (max-width:733.98px){
  .bk-sheet__total:has(.bk-sheet__amount){grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:var(--space-3)}
  .bk-sheet__total:has(.bk-sheet__amount) .bk-sheet__summary{grid-column:2;grid-row:1;text-align:right}
  .bk-sheet__total:has(.bk-sheet__amount) .bk-sheet__amount{grid-column:1;grid-row:1}
  .bk-sheet__total:has(.bk-sheet__amount) .bk-sheet__note{grid-column:1 / -1}
}
.bk-sheet__summary{color:var(--text-secondary);font-size:var(--fs-footnote);line-height:1.35}
.bk-sheet__amount{color:var(--text-primary);font-size:var(--fs-title-3);font-weight:var(--fw-semibold);line-height:1.2;letter-spacing:-.01em}
.bk-sheet__note{color:var(--text-secondary);font-size:var(--fs-caption);line-height:var(--lh-caption)}
.bk-sheet__note-part{display:inline-block}
.bk-sheet__buttons{display:flex;gap:var(--space-2)}
.bk-sheet__buttons [hidden]{display:none}
.bk-sheet__submit{flex:1}
.bk-sheet__submit[aria-disabled="true"]{opacity:.55}
@media (min-width:734px){
  .bk-sheet.ui-sheet--center{width:min(38rem,100% - 2 * var(--gutter));max-height:min(92dvh,52rem)}
  /* Vehicle sheets: the garage needs the width (stage and readout side by side from 54rem). */
  .bk-sheet.ui-sheet--center:is([data-kind="legs"],[data-kind="days"]){width:min(64rem,100% - 2 * var(--gutter));max-height:min(94dvh,64rem)}
  .bk-sheet:is([data-kind="legs"],[data-kind="days"]) :is(.ui-sheet__body,.ui-sheet__header,.ui-sheet__footer){padding-inline:var(--space-6)}
  .bk-sheet:is([data-kind="legs"],[data-kind="days"]) .ui-sheet__body{--ui-rail-bleed:var(--space-6)}
  .bk-sheet__bar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-5)}
  .bk-sheet__submit{flex:none;min-width:14rem}
}
@media (max-width:733.98px){
  .bk-sheet:is([data-kind="legs"],[data-kind="days"]){height:94dvh;max-height:94dvh}
  .bk-sheet .bk-sheet__buttons{flex-direction:column-reverse}
  .bk-sheet__buttons .ui-button{width:100%}
}
@media (prefers-reduced-motion:no-preference){.bk-legpick__tile{transition:background-color var(--dur-2) var(--ease-standard),box-shadow var(--dur-2) var(--ease-standard),color var(--dur-2) var(--ease-standard)}}

/* ---------- Details step ---------- */
.bk-details{display:grid;gap:var(--space-6)}
.bk-details__actions{margin-top:0}
.bk-phone{display:grid;grid-template-columns:minmax(0,10.5rem) minmax(0,1fr);gap:var(--space-2)}
@media (max-width:479.98px){.bk-phone{grid-template-columns:minmax(0,8.5rem) minmax(0,1fr)}}
.bk-error-summary{display:grid;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-radius:var(--r-md);background:var(--status-danger-tint);color:var(--status-danger-text);font-size:var(--fs-callout)}
.bk-error-summary[hidden]{display:none}
.bk-error-summary__title{margin:0;font-weight:var(--fw-semibold)}
.bk-error-summary ul{margin:0;padding-left:1.1rem}
.bk-error-summary a{color:inherit}

/* ---------- Review and pay ---------- */
.bk-review__block{display:grid;gap:var(--space-4);padding:var(--space-5);border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--elevation-1)}
.bk-review__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
.bk-review__edit{min-height:2rem;font-size:var(--fs-callout)}
.bk-review__facts{display:grid;gap:var(--space-3);margin:0}
.bk-review__facts>div{display:grid;grid-template-columns:minmax(6rem,.35fr) minmax(0,1fr);gap:var(--space-3)}
.bk-review__facts dt{color:var(--text-secondary);font-size:var(--fs-callout)}
.bk-review__facts dd{margin:0;font-size:var(--fs-callout);font-weight:var(--fw-medium)}
.bk-review__sub{display:block;color:var(--text-secondary);font-size:var(--fs-footnote);font-weight:var(--fw-regular)}
.bk-review__note{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bk-review__requests{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}
.bk-review__request{display:grid;grid-template-columns:4.5rem minmax(0,1fr);align-items:center;gap:var(--space-3)}
.bk-review__request:not(:has(.bk-request__thumb)){grid-template-columns:minmax(0,1fr)}
.bk-review__request .bk-request__thumb{grid-row:auto}
.bk-review__request-text{display:grid;gap:2px;min-width:0}
.bk-review__request-title{display:block;font-size:var(--fs-callout);font-weight:var(--fw-semibold)}
.bk-review__guest{margin:0;font-size:var(--fs-callout);line-height:1.6}
.bk-pay{display:grid;gap:var(--space-4)}
.bk-consent .ui-check{font-size:var(--fs-callout);line-height:var(--lh-callout)}
.bk-consent .ui-field__error{margin-top:var(--space-2)}
.bk-terms{border-radius:var(--r-md);background:var(--fill-tertiary);font-size:var(--fs-footnote)}
.bk-terms summary{min-height:var(--tap-min);padding:.75rem 1rem;color:var(--text-link);font-weight:var(--fw-medium);cursor:pointer;display:flex;align-items:center}
.bk-terms summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-md)}
.bk-terms__text{padding:0 1rem 1rem;color:var(--text-body);line-height:var(--lh-footnote)}
.bk-terms__text p{margin:0 0 var(--space-2)}
.bk-turnstile{min-height:1px}
.bk-turnstile__loading{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.bk-pay__error:empty{display:none}
.bk-pay__error{display:grid;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--r-md);background:var(--status-danger-tint);color:var(--status-danger-text);font-size:var(--fs-callout)}
.bk-pay__error p{margin:0}
.bk-pay__error .ui-actions{margin:0}
.bk-pay__error:has(.bk-pay__progress){background:var(--status-info-tint);color:var(--status-info-text)}
.bk-pay__note{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);text-align:center}
.bk-pay__lock{--bk-icon:var(--icon-card);width:1rem;height:1rem}

/* Redirect and spinner */
.bk-redirect{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-5);border-radius:var(--r-xl);background:var(--color-surface);box-shadow:var(--elevation-2);text-align:center}
.bk-redirect__amount{margin:0;color:var(--text-body)}
.bk-redirect__reference{margin:0;color:var(--text-secondary)}
.bk-redirect .ui-button{margin-top:var(--space-3)}
.bk-redirect__spinner{display:block;width:2.5rem;height:2.5rem;border:3px solid var(--fill-primary);border-top-color:var(--color-ink);border-radius:50%;animation:ui-spin .9s linear infinite}

/* ---------- Return and confirmation ---------- */
.bk-confirm{display:grid;justify-items:center;gap:var(--space-3);width:min(44rem,100%);margin:var(--space-6) auto 0;text-align:center}
.bk-confirm .t-eyebrow{margin:0}
.bk-confirm__title{margin:0;font-family:var(--font-display);font-size:var(--fs-title-1);font-weight:var(--fw-semibold);line-height:var(--lh-title-1);letter-spacing:var(--ls-title-1)}
.bk-confirm__body{max-width:36em;margin:0;color:var(--text-body)}
.bk-confirm__icon{display:grid;place-items:center;width:4rem;height:4rem;border-radius:50%;background:var(--status-success-tint);color:var(--status-success-text)}
.bk-confirm__icon::before{--bk-icon:var(--icon-check);width:1.75rem;height:1.75rem}
.bk-confirm__icon--warning{background:var(--status-warning-tint);color:var(--status-warning-text)}
.bk-confirm__icon--warning::before{--bk-icon:var(--icon-alert)}
.bk-confirm__card{display:grid;gap:var(--space-4);width:100%;margin-top:var(--space-4);padding:var(--space-6);border-radius:var(--r-xl);background:var(--color-surface);box-shadow:var(--elevation-2);text-align:left}
.bk-confirm__media{margin:calc(var(--space-6) * -1) calc(var(--space-6) * -1) var(--space-1);aspect-ratio:3 / 1;overflow:hidden;border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--color-canvas-alt)}
.bk-confirm__media img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:479.98px){.bk-confirm__media{aspect-ratio:2 / 1}}
.bk-confirm__facts{display:grid;gap:var(--space-3);margin:0}
.bk-confirm__facts>div{display:grid;grid-template-columns:minmax(6.5rem,.4fr) minmax(0,1fr);gap:var(--space-3)}
.bk-confirm__facts dt{color:var(--text-secondary);font-size:var(--fs-callout)}
.bk-confirm__facts dd{margin:0;font-size:var(--fs-callout);font-weight:var(--fw-medium)}
.bk-confirm__totals{padding-top:var(--space-4);border-top:1px solid var(--separator)}
.bk-confirm__totals>.ui-totals__grand:first-child{padding-top:0;border-top:0}
.bk-confirm__requests{display:grid;gap:var(--space-3);width:100%;padding:var(--space-5);border-radius:var(--r-lg);background:var(--color-surface);text-align:left}
.bk-confirm__request-list{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none;font-size:var(--fs-callout)}
.bk-confirm__request{display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto;align-items:center;gap:var(--space-3) var(--space-4)}
.bk-confirm__request:not(:has(.bk-request__thumb)){grid-template-columns:minmax(0,1fr) auto}
.bk-confirm__request .bk-request__thumb{grid-row:auto}
.bk-confirm__request-text{display:grid;gap:2px;min-width:0}
.bk-confirm__request-title{font-weight:var(--fw-semibold);line-height:1.3}
@media (max-width:479.98px){.bk-confirm__request{grid-template-columns:4rem minmax(0,1fr);align-items:start}.bk-confirm__request .bk-request__thumb{width:4rem;grid-row:span 2}.bk-confirm__request .ui-chip{grid-column:2;justify-self:start}}
/* "Your extras" (CONTRACT §14.4): booked with the stay, paid here once the stay payment is applied. */
.bk-confirm__extras{display:grid;gap:var(--space-4);width:100%;margin-top:var(--space-5);padding:var(--space-6);border-radius:var(--r-xl);background:var(--color-surface);box-shadow:var(--elevation-2);text-align:left}
.bk-confirm__extras-head{display:grid;gap:var(--space-1)}
.bk-confirm__extras-lead{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bk-confirm__extras .bk-confirm__totals{margin:0}
.bk-confirm__extras-totals[hidden]{display:none}
.bk-confirm__extras-status{display:flex;align-items:center;gap:var(--space-3);margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.bk-confirm__extras-status:empty{display:none}
.bk-confirm__extras:is([data-extras-state="waiting"],[data-extras-state="confirming"],[data-extras-state="loading"]) .bk-confirm__extras-status::before{content:"";flex:none;width:1.125rem;height:1.125rem;border:2px solid var(--fill-primary);border-top-color:var(--color-ink);border-radius:50%;animation:ui-spin .9s linear infinite}
.bk-confirm__extras .ui-pay-note[hidden],.bk-confirm__extras-error[hidden]{display:none}
.bk-confirm__extras-error{margin:0}
.bk-confirm__extras-actions{display:grid;gap:var(--space-3)}
.bk-confirm__pay{flex-wrap:wrap;column-gap:0}
.bk-confirm__pay-amount{white-space:nowrap;font-variant-numeric:tabular-nums lining-nums}
.bk-confirm__pay-amount::before{content:" · ";white-space:pre}
@media (max-width:479.98px){.bk-confirm__pay{flex-direction:column;row-gap:1px;padding-block:.5rem}.bk-confirm__pay-amount::before{content:none}.bk-confirm__pay-amount{font-weight:var(--fw-regular)}}
.bk-confirm__extras-actions:empty{display:none}
.bk-confirm__extras-later{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);text-align:center}
.bk-confirm__extras-later .ui-link{font-size:inherit}
.bk-confirm__request .ui-chip[hidden]{display:none}
@media (max-width:479.98px){.bk-confirm__extras{padding:var(--space-5)}}
/* "Plan the rest of your stay" (CONTRACT §12): the recommendation rail under the booking. */
.bk-plan{width:100%;margin-top:var(--space-7);text-align:left}
.bk-plan .ui-rec-rail__head{align-items:baseline}
.bk-plan .ui-rec-rail__note{max-width:34em}
.bk-rec .ui-rec__footer{flex-wrap:nowrap}
/* As in My Stay: the chevron sits on the amount line (callout size, 1.35 line height), however many
   lines the unit under it takes. */
.bk-rec .ui-rec__price+.ui-rec__go{align-self:flex-start;margin-top:calc((var(--fs-callout) * 1.35 - 2rem) / 2)}
/* A minimum order under the title (the chef), as in My Stay: what the minimum costs. */
.bk-rec__minimum{margin:var(--space-1) 0 0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bk-confirm__actions{margin-top:var(--space-4)}
.bk-confirm__note,.bk-confirm__more{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote)}
.bk-confirm__services{max-width:36em;margin:var(--space-2) 0 0;text-align:left}
.bk-confirm__departure{margin:0;text-align:left}
.bk-confirm__more .ui-link{font-size:var(--fs-callout)}
@media (prefers-reduced-motion:no-preference){.bk-confirm--success .bk-confirm__icon{animation:bk-pop var(--dur-3) var(--ease-out) both}}
@keyframes bk-pop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}

/* ---------- Landing sections ---------- */
.bk-collection .ui-section-head{margin-bottom:var(--space-10)}
.bk-showcase-list{display:grid;gap:var(--space-11)}
.bk-showcase{display:grid;gap:var(--space-6);align-items:center}
.bk-showcase__gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}
.bk-showcase__shot{margin:0;aspect-ratio:3 / 2;overflow:hidden;border-radius:var(--r-lg);background:var(--color-canvas-alt)}
.bk-showcase__shot img{display:block;width:100%;height:100%;object-fit:cover}
.bk-showcase__shot--feature{grid-column:1 / -1;aspect-ratio:16 / 10;border-radius:var(--r-tile)}
.bk-showcase__copy{display:grid;gap:var(--space-2);max-width:32rem}
.bk-showcase__kicker{margin:0;color:var(--accent-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold)}
.bk-showcase__name{margin:0;font-family:var(--font-display);font-size:var(--fs-title-1);font-weight:var(--fw-semibold);line-height:var(--lh-title-1);letter-spacing:var(--ls-title-1)}
.bk-showcase__facts{margin:0;color:var(--text-secondary);font-size:var(--fs-callout)}
.bk-showcase__desc{margin:var(--space-2) 0 0;color:var(--text-body)}
.bk-showcase .ui-actions{margin-top:var(--space-5)}
@media (min-width:1068px){
  .bk-showcase{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--space-10)}
  .bk-showcase:nth-child(even) .bk-showcase__gallery{order:2}
}
.bk-residence{margin-top:var(--space-11);overflow:hidden;border-radius:var(--r-tile);background:var(--c-charcoal,#181713)}
/* Separate photographs show the three real villas, not a fictional panorama. */
.bk-residence__mosaic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.bk-residence__shot{position:relative;min-width:0;margin:0;overflow:hidden;aspect-ratio:4 / 3}
.bk-residence__shot:first-child{grid-column:1 / -1;aspect-ratio:3 / 2}
.bk-residence__shot picture,.bk-residence__shot img{display:block;width:100%;height:100%}
.bk-residence__shot img{object-fit:cover}
.bk-residence__shot figcaption{position:absolute;inset:auto 0 0;margin:0;padding:2rem .8rem .65rem;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font-size:.8rem;line-height:1.35;font-weight:var(--fw-medium)}
.bk-residence__copy{display:grid;gap:var(--space-6);padding:var(--tile-pad)}
.bk-residence__intro,.bk-residence__details{display:grid;align-content:start;gap:var(--space-3);min-width:0}
.bk-residence__copy .t-eyebrow{margin:0}
.bk-residence__title{margin:0;font-family:var(--font-display);font-size:var(--fs-title-1);font-weight:var(--fw-semibold);line-height:var(--lh-title-1);letter-spacing:var(--ls-title-1)}
.bk-residence__desc{margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-lead)}
.bk-residence__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);list-style:none;margin:var(--space-3) 0 0;padding:var(--space-5) 0 0;border-top:1px solid color-mix(in srgb,currentColor 18%,transparent)}
.bk-residence__facts li{display:grid;align-content:start;gap:var(--space-1);min-width:0}
.bk-residence__facts strong{color:var(--accent-text);font-size:1.75rem;line-height:1.15;font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}
.bk-residence__facts span{color:var(--text-body);font-size:var(--fs-footnote);line-height:1.4}
.bk-residence .ui-actions{margin-top:var(--space-3)}
@media (min-width:734px){
  .bk-residence__mosaic{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));aspect-ratio:2.5 / 1}
  .bk-residence__shot,.bk-residence__shot:first-child{aspect-ratio:auto}
  .bk-residence__shot:first-child{grid-column:1;grid-row:1 / 3}
  .bk-residence__shot figcaption{padding:3rem 1.25rem 1rem;font-size:.9rem}
  .bk-residence__copy{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-8)}
}
/* Keep the whole-residence identity in results, the summary and its gallery. */
.bk-residence-mosaic{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:2px;width:100%;height:100%;overflow:hidden}
.bk-residence-mosaic__tile{display:block;min-width:0;min-height:0;overflow:hidden}
.bk-residence-mosaic__tile:first-child{grid-row:1 / 3}
.bk-residence-mosaic__tile img{display:block;width:100%;height:100%;object-fit:cover}
.bk-residence-mosaic.bk-summary__thumb{width:4rem;height:4rem;flex-shrink:0;gap:1px}
.bk-gallery--residence{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;gap:4px;margin:0;padding:0;overflow:hidden;border-radius:var(--r-xl)}
.bk-gallery--residence .bk-gallery__item{border-radius:0;aspect-ratio:4 / 3}
.bk-gallery--residence .bk-gallery__item--feature{grid-column:1 / -1;grid-row:auto;aspect-ratio:3 / 2}
@media (min-width:734px){
  .bk-gallery--residence{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));aspect-ratio:2.3 / 1}
  .bk-gallery--residence .bk-gallery__item{aspect-ratio:auto}
  .bk-gallery--residence .bk-gallery__item--feature{grid-column:1;grid-row:1 / 3;aspect-ratio:auto}
}

.bk-how__list{display:grid;gap:var(--space-7);margin:0;padding:0;list-style:none}
@media (min-width:734px){.bk-how__list{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8)}}
.bk-how__item{display:grid;align-content:start;gap:var(--space-2)}
.bk-how__icon{display:block;width:2.75rem;height:2.75rem;margin-bottom:var(--space-3);border-radius:50%;background:var(--accent-tint);color:var(--accent-text);position:relative}
.bk-how__icon::after{content:"";position:absolute;inset:.7rem;background:currentColor;-webkit-mask:var(--bk-icon) center/contain no-repeat;mask:var(--bk-icon) center/contain no-repeat}
.bk-how__icon--calendar{--bk-icon:var(--icon-calendar)}
.bk-how__icon--card{--bk-icon:var(--icon-card)}
.bk-how__icon--check{--bk-icon:var(--icon-check-circle)}
.bk-how__title{margin:0;font-family:var(--font-display);font-size:var(--fs-title-3);font-weight:var(--fw-semibold);line-height:var(--lh-title-3)}
.bk-how__body{margin:0;color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.bk-terms-card{max-width:var(--w-content);margin:var(--space-10) auto 0;padding:var(--space-6) var(--space-7);border-radius:var(--r-xl);background:var(--color-surface);box-shadow:var(--elevation-1)}
.bk-terms-card__title{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:var(--fs-title-3);font-weight:var(--fw-semibold)}
.bk-terms-card__list{display:grid;gap:var(--space-2);margin:0;padding-left:1.15rem;color:var(--text-body);font-size:var(--fs-callout)}

.bk-services__grid{display:grid;gap:var(--space-9)}
@media (min-width:1068px){.bk-services__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:var(--space-11)}}
.bk-services__copy .t-headline{margin-bottom:var(--space-4)}
.bk-services__copy .ui-actions{margin-top:var(--space-5)}
.bk-care{display:grid;margin:0;padding:0;list-style:none;counter-reset:bk-care}
.bk-care li{display:grid;grid-template-columns:2.5rem minmax(0,1fr);gap:var(--space-1) var(--space-3);padding-block:var(--space-4);border-bottom:1px solid var(--separator);counter-increment:bk-care}
.bk-care li:first-child{border-top:1px solid var(--separator)}
.bk-care li::before{content:counter(bk-care,decimal-leading-zero);grid-row:span 2;color:var(--accent-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;line-height:1.6}
.bk-care strong{font-size:var(--fs-body)}
.bk-care span{color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}

.bk-ask__panel{display:grid;justify-items:center;gap:var(--space-3);text-align:center}
.bk-ask__title{margin:0;font-family:var(--font-display);font-size:var(--fs-title-1);font-weight:var(--fw-semibold);line-height:var(--lh-title-1);letter-spacing:var(--ls-title-1)}
.bk-ask__lead{max-width:38em;margin:0;color:var(--text-body)}
.bk-ask .ui-actions{margin-top:var(--space-3)}
.bk-ask__note{max-width:38em;margin:var(--space-3) 0 0;color:var(--text-secondary);font-size:var(--fs-footnote)}

.bk-owners__inner{display:grid;gap:var(--space-5)}
@media (min-width:734px){.bk-owners__inner{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-9)}}
.bk-owners__title{margin:0;font-family:var(--font-display);font-size:var(--fs-title-2);font-weight:var(--fw-semibold);line-height:var(--lh-title-2);letter-spacing:var(--ls-title-2)}
.bk-owners__body{margin:0;color:var(--text-body)}
.bk-owners .ui-actions{margin-top:var(--space-5)}

/* ---------- Promotion dialog (promotions-v76.3d8787347f.js markup, styled for v80) ---------- */
.has-promotion-dialog{overflow:hidden}
.promotion-overlay{position:fixed;inset:0;z-index:var(--z-sheet);display:grid;place-items:center;padding:var(--gutter);background:var(--scrim)}
.promotion-overlay[hidden]{display:none}
.promotion-dialog{position:relative;display:grid;gap:var(--space-3);width:min(30rem,100%);padding:var(--space-8) var(--space-7) var(--space-7);border-radius:var(--r-xl);background:var(--color-surface);box-shadow:var(--elevation-3)}
.promotion-dialog h2{margin:0;font-size:var(--fs-title-2);line-height:var(--lh-title-2)}
.promotion-dialog p{margin:0;color:var(--text-body)}
.promotion-eyebrow{color:var(--accent-text);font-size:var(--fs-footnote);font-weight:var(--fw-semibold)}
.promotion-close{position:absolute;top:var(--space-3);right:var(--space-3);display:grid;place-items:center;width:var(--tap-min);height:var(--tap-min);border:0;border-radius:50%;background:var(--fill-tertiary);color:var(--text-primary);font-size:1.25rem;cursor:pointer}
.promotion-close:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.promotion-dialog .button{justify-self:start;display:inline-flex;align-items:center;min-height:var(--btn-h);margin-top:var(--space-3);padding:.6875rem 1.375rem;border-radius:var(--r-button);background:var(--color-ink);color:var(--color-on-ink);font-weight:var(--fw-medium);text-decoration:none}

/* ---------- Balance page ---------- */
.bal-main{padding-block:var(--space-9) var(--space-11)}
.bal{display:grid;grid-template-areas:"intro" "card" "trust" "media";gap:var(--space-8);align-items:start}
.bal__intro{grid-area:intro}
.bal-card{grid-area:card}
.bal-trust{grid-area:trust}
.bal__media{grid-area:media}
@media (min-width:1068px){.bal{grid-template-columns:minmax(0,1fr) minmax(0,26rem);grid-template-areas:"intro card" "trust card" "media card";grid-template-rows:auto auto 1fr;gap:var(--space-6) var(--space-11)}}
.bal__media{position:relative;margin:0;aspect-ratio:3 / 2;overflow:hidden;border-radius:var(--r-tile);background:var(--color-canvas-alt)}
.bal__media img{display:block;width:100%;height:100%;object-fit:cover}
.bal__caption{position:absolute;left:var(--space-4);bottom:var(--space-4)}
@media (min-width:1068px){.bal__media{margin-top:var(--space-4);aspect-ratio:16 / 9}}
/* Phones: the amount and Pay come first; the note under the button already says where payment happens. */
@media (max-width:733.98px){.bal-main{padding-top:var(--space-7)}.bal{gap:var(--space-6)}.bal-card__lede{display:none}}
.bal__intro{display:grid;gap:var(--space-4)}
.bal__intro .t-eyebrow{margin:0}
.bal__title{margin:0;font-family:var(--font-display);font-size:var(--fs-headline);font-weight:var(--fw-semibold);line-height:var(--lh-headline);letter-spacing:var(--ls-headline)}
.bal__lead{max-width:34em;margin:0;color:var(--text-body);font-size:var(--fs-lead);line-height:var(--lh-lead)}
.bal-trust{display:grid;align-content:start;gap:var(--space-3);margin:0;padding:0;list-style:none;color:var(--text-body);font-size:var(--fs-callout)}
.bal-trust li{display:flex;align-items:flex-start;gap:var(--space-3)}
.bal-trust li::before{--bk-icon:var(--icon-check-circle);width:1.15rem;height:1.15rem;margin-top:.15rem;color:var(--status-success-text)}
.bal-card{display:grid;gap:var(--space-5);padding:var(--space-6);border-radius:var(--r-xl);background:var(--color-surface);box-shadow:var(--elevation-3)}
.bal-card__head{display:grid;gap:var(--space-1)}
.bal-card__title{margin:0;font-family:var(--font-display);font-size:var(--fs-title-2);font-weight:var(--fw-semibold);line-height:var(--lh-title-2);letter-spacing:var(--ls-title-2)}
.bal-card__lede{margin:0;color:var(--text-secondary);font-size:var(--fs-callout)}
.bal-status{display:flex;align-items:flex-start;gap:var(--space-3);margin:0;padding:var(--space-4);border-radius:var(--r-md);background:var(--fill-tertiary);color:var(--text-body);font-size:var(--fs-callout);line-height:var(--lh-callout)}
.bal-status::before{width:1.15rem;height:1.15rem;margin-top:.1rem}
.bal-status[data-tone="success"]{background:var(--status-success-tint);color:var(--status-success-text);--bk-icon:var(--icon-check-circle)}
.bal-status[data-tone="error"]{background:var(--status-danger-tint);color:var(--status-danger-text);--bk-icon:var(--icon-alert)}
.bal-status[data-tone="warning"]{background:var(--status-warning-tint);color:var(--status-warning-text);--bk-icon:var(--icon-clock)}
.bal-status[data-tone="info"]{background:var(--status-info-tint);color:var(--status-info-text);--bk-icon:var(--icon-info)}
.bal-summary{display:grid;gap:var(--space-3);margin:0;font-size:var(--fs-callout)}
.bal-summary>div{display:flex;justify-content:space-between;gap:var(--space-4)}
.bal-summary dt{color:var(--text-secondary)}
.bal-summary dd{margin:0;font-weight:var(--fw-medium);text-align:right;font-variant-numeric:tabular-nums}
.bal-summary .bal-summary__total{padding-top:var(--space-3);border-top:1px solid var(--separator);font-size:var(--fs-body);font-weight:var(--fw-semibold)}
.bal-summary .bal-summary__total dt{color:var(--text-primary)}
.bal-summary .bal-summary__total dd{font-size:var(--fs-title-3);font-weight:var(--fw-semibold)}
.bal.is-loading .bal-summary dd{color:transparent;border-radius:var(--r-xs);background:linear-gradient(90deg,var(--fill-tertiary) 25%,var(--fill-secondary) 50%,var(--fill-tertiary) 75%) 0 0 / 200% 100%;animation:ui-shimmer 1.4s linear infinite;min-width:7rem}
.bal-action[hidden]{display:none}
.bal-note{margin:0;color:var(--text-secondary);font-size:var(--fs-footnote);line-height:var(--lh-footnote)}
.bal-links{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--separator)}
.bal-links .ui-link{font-size:var(--fs-callout)}
.bal-links [hidden]{display:none}

/* ---------- Preferences ---------- */
@media (prefers-reduced-motion:reduce){
  .bk-redirect__spinner{animation:none;border-top-color:var(--fill-primary)}
  .bal.is-loading .bal-summary dd{animation:none}
  .bk-trigger,.bk-day,.bk-coupon__toggle::before,.bk-legpick__tile{transition:none}
  .bk-confirm__extras .bk-confirm__extras-status::before{animation:none}
}
@media (forced-colors:active){
  .bk-day:focus-visible,.bk-trigger:focus-visible{outline-color:Highlight}
  .bk-cal__grid td.is-start .bk-day,.bk-cal__grid td.is-end .bk-day{border:2px solid CanvasText}
  .bk-back::before,.bk-trip__change::after,.bk-coupon__toggle::before,.bk-notice::before,.bk-pay__lock,.bal-trust li::before,.bal-status::before,
  .bk-extra__fit::before,.bk-sheet__pickup::before{background:CanvasText}
  .bk-extra,.bk-legpick__tile,.bk-sheet__check,.bk-confirm__extras{border:1px solid CanvasText}
  .bk-extra.is-requested,.bk-legpick__tile[aria-checked="true"]{border:3px solid Highlight}
  .bk-legpick__tile[data-state="pending"]{border:2px dashed CanvasText}
}
