/* Bott & Co — flight journey extras: route summary, trip line, airline filter, flight lookup, date of birth. */

/* Contact capture: the completed animation gives way to the form. */
.bc-lock[hidden], .bc-checks[hidden] { display: none !important; }
.bc-date, .bc-phone { position: relative; min-width: 0; }
.bc-control--date .bc-input { padding-left: 16px; padding-right: 8px; }
.bc-control--date .bc-control__err-icon { order: 1; margin-right: 4px; }
.bc-date__toggle { order: 2; flex: 0 0 44px; display: grid; place-items: center; height: 44px; margin-right: 4px; padding: 0; border: 0; background: transparent; color: var(--bc-teal); cursor: pointer; }
.bc-date__toggle svg { width: 24px; height: 24px; }
.bc-calendar, .bc-phone__panel { margin-top: 8px; padding: 12px; background: var(--bc-white); border: 1px solid var(--bc-line); border-radius: 8px; }
.bc-calendar { position: absolute; z-index: 30; top: 100%; left: 0; width: min(360px, 100%); box-sizing: border-box; box-shadow: 0 12px 36px rgba(20, 45, 55, .18); font-size: var(--bc-fs-sm); }
.bc-calendar__head { display: flex; align-items: center; gap: 4px; margin-bottom: 12px; }
.bc-calendar__head select { min-width: 0; flex: 1; padding: 8px 2px; min-height: 44px; font: inherit; color: var(--bc-ink); border: 1px solid var(--bc-line); border-radius: 4px; background: var(--bc-white); }
.bc-calendar__head select[aria-label="Year"] { flex: 0 0 78px; }
.bc-calendar__head button { flex: 0 0 32px; }
.bc-calendar button { font: inherit; color: var(--bc-ink); border: 0; border-radius: 4px; background: transparent; min-height: 44px; cursor: pointer; }
.bc-calendar__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); text-align: center; }
.bc-calendar__days > span { font-size: var(--bc-fs-xs); color: var(--bc-muted); padding-bottom: 6px; }
.bc-calendar button:hover:not(:disabled) { background: var(--bc-teal-050); }
.bc-calendar button[aria-pressed="true"] { background: var(--bc-teal); color: white; font-weight: var(--bc-fw-bold); }
.bc-calendar button:disabled { opacity: .3; cursor: default; }
.bc-calendar button:focus-visible, .bc-date__toggle:focus-visible, .bc-phone__country:focus-visible { outline: 3px solid var(--bc-teal); outline-offset: 2px; }
.bc-calendar__close { display: block; margin: 4px auto 0; }
.bc-control--phone { display: flex; align-items: stretch; }
.bc-control--phone .bc-input { min-width: 0; padding-left: 12px; }
.bc-phone__country { flex: 0 0 auto; padding: 0 10px; border: 0; border-right: 1px solid var(--bc-line); border-radius: 5px 0 0 5px; background: var(--bc-teal-050); color: var(--bc-ink); font: inherit; font-size: var(--bc-fs-sm); cursor: pointer; }
.bc-phone__panel .bc-input { display: block; box-sizing: border-box; width: 100%; margin: 8px 0 12px; padding: 0 12px; min-height: 48px; border: 1px solid var(--bc-line); border-radius: 5px; background: var(--bc-white); }
.bc-phone__panel .bc-input:focus { border-color: var(--bc-teal); outline: 2px solid var(--bc-teal); outline-offset: 2px; }
.bc-phone__list { width: 100%; border: 1px solid var(--bc-line); border-radius: 4px; font: inherit; color: var(--bc-ink); background: var(--bc-white); }
.bc-phone__list option { padding: 10px; }
.bc-address-country-button { display: flex; flex: none; align-items: center; justify-content: center; align-self: stretch; gap: 6px; padding: 0 10px; border: 0; border-right: 1px solid var(--bc-line); border-radius: 5px 0 0 5px; background: var(--bc-teal-050); color: var(--bc-muted-ink); font: inherit; font-size: var(--bc-fs-xs); cursor: pointer; }
.bc-address-country-button:focus-visible { outline: 2px solid var(--bc-teal); outline-offset: -3px; }
.bc-control--address-search .bc-input { padding-left: 12px; }
.bc-address-country-panel { padding: 12px; border: 1px solid var(--bc-line); border-radius: 6px; background: var(--bc-white); }
.bc-address-country-panel > .bc-input { display: block; width: 100%; box-sizing: border-box; min-height: 48px; margin: 8px 0 12px; padding: 0 12px; border: 1px solid var(--bc-line); border-radius: 5px; }
.bc-address-country-panel > .bc-input:focus { outline: 2px solid var(--bc-teal); outline-offset: 2px; }
.bc-phone__flag { display: inline-block; vertical-align: middle; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.1); }
.bc-email-tick, .bc-phone-tick { display: none; position: absolute; right: 44px; top: 50%; transform: translateY(-50%); color: var(--bc-green); pointer-events: none; }
.bc-email-tick svg, .bc-phone-tick svg { display: block; width: 17px; height: 17px; }
.bc-control--email-valid .bc-email-tick, .bc-control--phone-valid .bc-phone-tick { display: block; }
.bc-control--email-valid .bc-input, .bc-control--phone-valid .bc-input { padding-right: 72px; }
.bc-flight-alternative { border-top: 1px solid var(--bc-line); margin-top: 8px; padding-top: 20px; }
.bc-flight-alternative .bc-choice { background: var(--bc-teal-050); border-style: dashed; font-size: var(--bc-fs-sm); font-weight: var(--bc-fw-semibold); color: var(--bc-teal); }

/* Route shown as text once both airports are known, with Change to edit */
.bc-route-sum { display: flex; align-items: center; justify-content: space-between; gap: var(--bc-s3); flex-wrap: wrap;
  padding: var(--bc-s3) var(--bc-s4); background: var(--bc-teal-050); border: 1px solid var(--bc-teal-200); border-radius: var(--bc-radius-sm); }
.bc-route-sum__route { display: flex; align-items: center; gap: var(--bc-s3); flex-wrap: wrap; min-width: 0; }
.bc-route-sum__route > svg { width: 22px; height: 22px; color: var(--bc-teal); flex: none; }
.bc-route-sum__place { display: grid; gap: 2px; min-width: 0; }
.bc-route-sum__place b { color: var(--bc-ink); font-weight: var(--bc-fw-semibold); overflow-wrap: anywhere; }
.bc-route-sum__k { font-size: var(--bc-fs-xs); color: var(--bc-muted); text-transform: uppercase; letter-spacing: .04em; }
.bc-route-sum .bc-link, .bc-trip .bc-link { font-weight: var(--bc-fw-semibold); }

/* Compact route recap: aligned icon/text columns and consistent detail typography. */
.bc-trip { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 16px; padding: 12px 16px; border: 1px solid var(--bc-teal-200); border-radius: 10px; background: var(--bc-teal-050); color: var(--bc-ink); font-size: var(--bc-fs-sm); font-weight: var(--bc-fw-semibold); line-height: 1.4; }
.bc-trip__airports { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; min-width: 0; }
.bc-trip__place { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 2px 8px; align-content: start; min-width: 0; }
.bc-trip__place > span:last-child { display: contents; }
.bc-trip__place small { grid-column: 2; grid-row: 1; color: var(--bc-muted-ink); font-size: var(--bc-fs-xs); font-weight: var(--bc-fw-regular); }
.bc-trip__place b { grid-column: 2; grid-row: 2; font-weight: inherit; overflow-wrap: anywhere; }
.bc-trip__icon { grid-column: 1; grid-row: 2; align-self: start; display: flex; }
.bc-trip__icon svg, .bc-trip__date svg { display: block; flex: none; width: 20px; height: 20px; color: var(--bc-teal); margin: 0; }
.bc-trip__date { display: flex; align-items: center; gap: 8px; grid-column: 1; font: inherit; }
.bc-trip > .bc-link { grid-column: 2; grid-row: 1; margin-left: auto; min-height: 44px; display: inline-flex; align-items: center; font-weight: inherit; }
.bc-trip:has(.bc-trip__date) > .bc-link { grid-row: 1 / span 2; }
@media (max-width: 420px) {
  .bc-trip { padding: 8px 10px; column-gap: 10px; }
  .bc-trip__airports { gap: 10px; }
  .bc-trip__place { column-gap: 6px; }
  .bc-trip__date { gap: 6px; }
}

/* Airline filter buttons above a long list of flights */
.bc-chips { display: flex; flex-wrap: wrap; gap: var(--bc-s2); margin: 0 0 var(--bc-s2); }
.bc-chip { min-height: 36px; padding: 0 14px; border: 1px solid var(--bc-line); border-radius: 999px; background: var(--bc-white);
  color: var(--bc-ink); font: inherit; font-size: var(--bc-fs-sm); cursor: pointer; }
.bc-chip:hover { border-color: var(--bc-teal); }
.bc-chip[aria-pressed="true"] { background: var(--bc-teal); border-color: var(--bc-teal); color: var(--bc-white); font-weight: var(--bc-fw-semibold); }
.bc-chip:focus-visible { outline: 3px solid var(--bc-focus); outline-offset: 2px; }

/* Flight number lookup result under the input */
.bc-lookup { margin: var(--bc-s2) 0 0; font-size: var(--bc-fs-sm); color: var(--bc-muted-ink); }
.bc-lookup--found { color: var(--bc-teal-600); font-weight: var(--bc-fw-semibold); }
.bc-lookup--notfound { color: var(--bc-warn-ink); }
.bc-lookup--busy::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 8px; vertical-align: -1px;
  border: 2px solid var(--bc-teal-200); border-top-color: var(--bc-teal); border-radius: 50%; animation: bc-spin .8s linear infinite; }
@keyframes bc-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .bc-lookup--busy::before { animation: none; } }

/* Date of birth: day, month, year boxes */
.bc-dob { border: 0; padding: 0; margin: var(--bc-s3) 0 0; display: grid; gap: var(--bc-s2); min-width: 0; }
.bc-dob > .bc-card__hint { margin: 0; }
.bc-dob__row { display: flex; gap: var(--bc-s3); align-items: flex-end; }
.bc-dob__part { display: grid; gap: 4px; }
.bc-dob__part .bc-label { font-size: var(--bc-fs-sm); }
.bc-dob__part--s { width: 64px; }
.bc-dob__part--l { width: 92px; }
.bc-dob__part .bc-control { width: 100%; }
.bc-dob__part .bc-input { text-align: center; padding-left: 8px; padding-right: 8px; font-variant-numeric: tabular-nums; }
.bc-dob__row.bc-control--error .bc-input { border-color: var(--bc-error); }
.bc-dob__row > .bc-control__err-icon { display: none; }

/* Flight choices: time on the left; airline name above a bold flight number on the right */
.bc-choice__meta:has(.bc-choice__code) { display: grid; justify-items: end; gap: 1px; text-align: right; }
.bc-choice__sub { font-size: var(--bc-fs-sm); color: var(--bc-muted-ink); line-height: 1.25; }
.bc-choice__code { font-weight: var(--bc-fw-semibold); color: var(--bc-ink); letter-spacing: .02em; }
.bc-banner--inline { margin: 0 0 var(--bc-s3); }

/* ---------- One question per screen ---------- */
.bc-card__title--q { font-size: var(--bc-fs-xl); line-height: 1.3; font-weight: var(--bc-fw-bold); color: var(--bc-navy); text-wrap: balance; }
.bc-card__hint--note { background: var(--bc-warn-050); color: var(--bc-warn-ink); padding: var(--bc-s2) var(--bc-s3); border-radius: var(--bc-radius-sm); }
.bc-card__hint--body { margin: 0; font-size: var(--bc-fs-md); }
.bc-trip--route { padding: 0; }

/* Quick dates (Today / Yesterday) and "another day" buttons */
.bc-quick { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: var(--bc-s2); }
.bc-quick__btn { display: grid; gap: 2px; justify-items: start; min-height: 60px; padding: var(--bc-s2) var(--bc-s4); text-align: left;
  border: 1px solid var(--bc-line); border-radius: var(--bc-radius); background: var(--bc-white); color: var(--bc-ink); font: inherit; cursor: pointer; }
.bc-quick__btn b { font-weight: var(--bc-fw-semibold); color: var(--bc-navy); }
.bc-quick__btn span { font-size: var(--bc-fs-sm); color: var(--bc-muted-ink); }
.bc-quick__btn:hover { border-color: var(--bc-teal); }
.bc-quick__btn[aria-pressed="true"] { border-color: var(--bc-teal); box-shadow: 0 0 0 2px var(--bc-teal); background: var(--bc-teal-050); }
.bc-quick__btn:focus-visible { outline: 3px solid var(--bc-focus); outline-offset: 2px; }
.bc-quick__btn.is-busy { opacity: .6; cursor: progress; }
.bc-altdays { display: grid; gap: var(--bc-s2); margin-top: var(--bc-s4); }
.bc-altdays .bc-label, .bc-altdays .bc-card__hint { margin: 0; }
.bc-help-line { margin: var(--bc-s4) 0 0; font-size: var(--bc-fs-md); color: var(--bc-navy); }
.bc-help-link { background: none; border: 0; padding: 0; font: inherit; font-weight: var(--bc-fw-semibold); text-decoration: underline; cursor: pointer; }

/* Passenger count tiles: 1 to 6 and 7+ */
.bc-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--bc-s2); }
.bc-tile { position: relative; display: flex; align-items: center; justify-content: center; min-height: 56px; border: 1px solid var(--bc-line);
  border-radius: var(--bc-radius); background: var(--bc-white); font-size: var(--bc-fs-lg); font-weight: var(--bc-fw-semibold); color: var(--bc-navy); cursor: pointer; text-align: center; }
.bc-tile input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.bc-tile:hover { border-color: var(--bc-teal); }
.bc-tile:has(input:checked) { border-color: var(--bc-teal); background: var(--bc-teal); color: var(--bc-white); }
.bc-tile:has(input:focus-visible) { outline: 3px solid var(--bc-focus); outline-offset: 2px; }
[data-group="pax-more"] .bc-tile:last-child { font-size: var(--bc-fs-sm); }

/* Consent and small print under a button */
.bc-consent { margin: 0; font-size: var(--bc-fs-sm); color: var(--bc-muted-ink); text-align: center; max-width: 46ch; }
.bc-consent a { color: var(--bc-teal); }
.bc-actions--tail { margin-top: 0; }
.bc-btn--secondary { background: var(--bc-white); color: var(--bc-teal); border: 2px solid var(--bc-teal); }
.bc-btn--secondary:hover { background: var(--bc-teal-050); }

/* Result */
.bc-result { background: var(--bc-navy); color: var(--bc-white); border-radius: var(--bc-radius); padding: var(--bc-s6) var(--bc-s5); display: grid; gap: var(--bc-s2); }
.bc-result__kicker { margin: 0; font-weight: var(--bc-fw-semibold); color: #9fd9c1; text-transform: uppercase; letter-spacing: .06em; font-size: var(--bc-fs-sm); }
.bc-result__amount { margin: 0; font-size: var(--bc-fs-xl); line-height: 1.2; font-weight: var(--bc-fw-bold); }
.bc-result__amount strong { display: block; font-size: 3rem; line-height: 1.05; color: var(--bc-white); }
.bc-result__per { margin: 0; font-size: var(--bc-fs-lg); }
.bc-result__note { margin: var(--bc-s2) 0 0; font-size: var(--bc-fs-md); color: #dbe3f2; }
.bc-result__note .bc-link { color: var(--bc-white); text-decoration: underline; font-weight: var(--bc-fw-semibold); background: none; border: 0; padding: 0; font-size: inherit; cursor: pointer; }
.bc-assure { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--bc-s3); }
.bc-assure li { display: flex; gap: var(--bc-s3); align-items: flex-start; font-size: var(--bc-fs-md); color: var(--bc-navy); }
.bc-assure b { font-weight: var(--bc-fw-bold); }
.bc-assure__tick { flex: none; display: inline-flex; width: 22px; height: 22px; border-radius: 50%; background: #e6f3ee; color: #1c7a55; align-items: center; justify-content: center; margin-top: 1px; }
.bc-assure__tick svg { width: 12px; height: 12px; }
.bc-pill--info { background: var(--bc-teal-050); color: var(--bc-navy); }
.bc-pill--good { background: #e6f3ee; color: #1c7a55; gap: 6px; }
.bc-pill--good svg { width: 12px; height: 12px; }
.bc-summary__note { display: block; margin-top: 4px; font-size: var(--bc-fs-xs); color: var(--bc-muted-ink); }
.bc-banner--total { background: var(--bc-teal-050); color: var(--bc-navy); border: 1px solid var(--bc-teal-200); }
.bc-banner--total svg { color: var(--bc-teal); }
.bc-banner--warn > div { display: grid; gap: 6px; justify-items: start; }
.bc-banner--warn .bc-link { background: none; border: 0; padding: 0; font: inherit; font-weight: var(--bc-fw-semibold); text-decoration: underline; cursor: pointer; }

/* Confirmation */
.bc-done { display: grid; gap: var(--bc-s3); justify-items: center; text-align: center; padding: var(--bc-s6) var(--bc-s4); border-radius: var(--bc-radius); background: #e6f3ee; color: var(--bc-navy); }
.bc-done h1 { margin: 0; font-size: var(--bc-fs-2xl); line-height: 1.2; text-wrap: balance; }
.bc-done__tick { display: inline-flex; width: 64px; height: 64px; border-radius: 50%; background: #1c7a55; color: var(--bc-white); align-items: center; justify-content: center; }
.bc-done__tick svg { width: 32px; height: 32px; }
.bc-done__lead { margin: 0; font-size: var(--bc-fs-lg); max-width: 40ch; }
.bc-done__sub { margin: 0; color: var(--bc-muted-ink); overflow-wrap: anywhere; }
.bc-next { margin: 0; padding-left: 1.4em; display: grid; gap: var(--bc-s3); color: var(--bc-navy); }
.bc-next b { font-weight: var(--bc-fw-bold); }
.bc-stat { border-left: 4px solid var(--bc-teal); background: var(--bc-teal-050); padding: var(--bc-s4) var(--bc-s5); border-radius: 0 var(--bc-radius) var(--bc-radius) 0; }
.bc-stat__big { margin: 0; font-size: var(--bc-fs-lg); font-weight: var(--bc-fw-semibold); color: var(--bc-navy); }
.bc-stat__basis { margin: var(--bc-s2) 0 0; font-size: var(--bc-fs-xs); color: var(--bc-muted-ink); }

/* Landing: speed line and points under the button */
.bc-hero__lead { margin: -8px 0 8px; font-size: var(--bc-fs-lg); }
.bc-hero__points { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-weight: var(--bc-fw-semibold); }
.bc-hero__points li::before { content: "\2713\00a0"; font-weight: var(--bc-fw-bold); }
.bc-hero__proof { margin: var(--bc-s3) 0 0; font-weight: var(--bc-fw-semibold); }

/* Trust: press logos, reviews, awards */
.bc-trust { display: grid; gap: var(--bc-s8); padding-top: var(--bc-s4); }
.bc-trust--result, .bc-trust--done { padding-top: 0; }
.bc-press { display: grid; gap: var(--bc-s2); }
.bc-press__title { margin: 0; font-size: var(--bc-fs-xl); line-height: 1.25; font-weight: var(--bc-fw-bold); color: var(--bc-navy); }
.bc-press__strap { margin: 0; color: var(--bc-navy); }
.bc-press__logos { list-style: none; margin: var(--bc-s2) 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--bc-s5) var(--bc-s8); }
.bc-press__logos img { display: block; height: 26px; width: auto; max-width: 140px; filter: grayscale(1); opacity: .75; }
.bc-press__more { margin: 0; font-size: var(--bc-fs-sm); color: var(--bc-muted-ink); }
.bc-press--compact { text-align: center; justify-items: center; }
.bc-press--compact .bc-press__title { font-size: var(--bc-fs-md); color: var(--bc-muted-ink); font-weight: var(--bc-fw-semibold); }
.bc-press--compact .bc-press__logos { justify-content: center; }
.bc-reviews { display: grid; gap: var(--bc-s2); }
.bc-reviews__list { display: grid; gap: var(--bc-s3); margin-top: var(--bc-s2); }
@media (min-width: 720px) { .bc-reviews__list { grid-template-columns: repeat(3, 1fr); } }
.bc-review { margin: 0; padding: var(--bc-s4); border: 1px solid var(--bc-line-soft); border-radius: var(--bc-radius); background: var(--bc-white); display: grid; gap: var(--bc-s2); align-content: start; }
.bc-review blockquote { margin: 0; }
.bc-review blockquote p { margin: 0; color: var(--bc-ink); line-height: 1.5; }
.bc-review blockquote p::before { content: "\201C"; }
.bc-review blockquote p::after { content: "\201D"; }
.bc-review figcaption { font-size: var(--bc-fs-sm); color: var(--bc-muted-ink); }
.bc-review figcaption b { color: var(--bc-navy); }
.bc-review figcaption a { color: var(--bc-muted-ink); }
.bc-awards { display: flex; gap: var(--bc-s4); align-items: center; padding: var(--bc-s4); border-radius: var(--bc-radius); background: var(--bc-panel); }
.bc-awards__icon { flex: none; display: inline-flex; width: 48px; height: 48px; border-radius: 50%; background: var(--bc-white); color: var(--bc-teal); align-items: center; justify-content: center; }
.bc-awards__icon svg { width: 26px; height: 26px; fill: currentColor; }
.bc-awards__title { margin: 0 0 4px; font-size: var(--bc-fs-md); font-weight: var(--bc-fw-bold); color: var(--bc-navy); }
.bc-awards ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; font-size: var(--bc-fs-sm); color: var(--bc-navy); font-weight: var(--bc-fw-regular); }

/* Passenger cards: heading with Remove, the booking email line, add a passenger */
.bc-pax__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--bc-s3); }
.bc-pax__remove { background: none; border: 0; padding: 0; font: inherit; font-size: var(--bc-fs-sm); font-weight: var(--bc-fw-semibold); cursor: pointer; }
.bc-pax__email { margin: var(--bc-s3) 0 0; font-size: var(--bc-fs-sm); color: var(--bc-muted-ink); overflow-wrap: anywhere; }
.bc-pax__email b { color: var(--bc-navy); font-weight: var(--bc-fw-semibold); }
.bc-pax__email .bc-link, .bc-pax__add-email { background: none; border: 0; padding: 0; font: inherit; font-size: var(--bc-fs-sm); font-weight: var(--bc-fw-semibold); cursor: pointer; }
.bc-pax__add-email { margin-top: var(--bc-s3); justify-self: start; text-align: left; }
.bc-pax__age { margin-top: var(--bc-s4); }
.bc-pax__add { width: 100%; flex-wrap: wrap; white-space: normal; column-gap: var(--bc-s2); row-gap: var(--bc-s1); padding-block: var(--bc-s2); }
.bc-pax__extra { white-space: nowrap; }
[data-email-wrap] { margin-top: var(--bc-s3); }
[data-pax-count] b { color: var(--bc-navy); }

/* Date of birth: three boxes in a row, each with its label above */
.bc-dob__row { flex-wrap: nowrap; }
.bc-dob__part { display: flex; flex-direction: column; gap: 4px; }
.bc-dob__part .bc-control { min-width: 0; }
.bc-dob__part .bc-input { width: 100%; min-width: 0; }
.bc-dob__part--s { width: 4.5rem; }
.bc-dob__part--l { width: 6rem; }

/* Legal text under the claim button */
.bc-consent--legal { text-align: left; max-width: none; font-size: var(--bc-fs-xs); line-height: 1.5; }

/* Terms and letter before claim, shown over the page */
.bc-doc { width: min(960px, 100vw - 32px); height: min(90vh, 1100px); padding: 0; border: 0; border-radius: var(--bc-radius); box-shadow: 0 20px 60px rgba(11, 15, 31, .35); }
.bc-doc::backdrop { background: rgba(11, 15, 31, .55); }
.bc-doc[open] { display: flex; flex-direction: column; }
.bc-doc__bar { display: flex; align-items: center; gap: var(--bc-s4); padding: var(--bc-s3) var(--bc-s4); border-bottom: 1px solid var(--bc-line-soft); }
.bc-doc__bar h2 { margin: 0; flex: 1; font-size: var(--bc-fs-lg); color: var(--bc-navy); }
.bc-doc__bar .bc-link { font-size: var(--bc-fs-sm); font-weight: var(--bc-fw-semibold); }
.bc-doc__close { width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--bc-panel); font-size: 1.5rem; line-height: 1; cursor: pointer; color: var(--bc-navy); }
.bc-doc__close:focus-visible { outline: 3px solid var(--bc-focus); outline-offset: 2px; }
.bc-doc__frame { flex: 1; width: 100%; border: 0; }

/* Cookie choices: a panel at the foot of the screen that doesn't cover the form's button */
.bc-cookies [hidden], .bc-doc [hidden] { display: none !important; }
.bc-cookies, .bc-doc { font-family: var(--bc-font, "Figtree", system-ui, sans-serif); color: var(--bc-ink, #0b0f1f); }
.bc-cookies { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 0 var(--bc-s4) calc(var(--bc-s4) + env(safe-area-inset-bottom, 0px)); pointer-events: none; }
.bc-cookies__inner { pointer-events: auto; max-width: 720px; margin: 0 auto; padding: var(--bc-s4) var(--bc-s5); background: var(--bc-white); border: 1px solid var(--bc-line-soft); border-radius: var(--bc-radius); box-shadow: 0 8px 30px rgba(11, 15, 31, .2); display: grid; gap: var(--bc-s3); }
.bc-cookies__text { margin: 0; font-size: var(--bc-fs-sm); color: var(--bc-ink); line-height: 1.5; }
.bc-cookies__text a { color: var(--bc-teal); }
.bc-cookies__choose { display: flex; flex-wrap: wrap; gap: var(--bc-s2) var(--bc-s5); font-size: var(--bc-fs-sm); }
.bc-cookies__opt { display: inline-flex; gap: 6px; align-items: center; }
.bc-cookies__actions { display: flex; flex-wrap: wrap; gap: var(--bc-s2); align-items: center; }
.bc-cookies__actions .bc-btn { min-height: 44px; font-size: var(--bc-fs-md); padding: 0 var(--bc-s5); flex: 1 1 140px; }
.bc-cookies__actions .bc-link { background: none; border: 0; padding: var(--bc-s2); font: inherit; font-weight: var(--bc-fw-semibold); cursor: pointer; }
.bc-footer__btn { background: none; border: 0; padding: 0; font: inherit; color: var(--bc-navy); cursor: pointer; text-align: left; }
.bc-footer__btn:hover { text-decoration: underline; }

/* "Let's find your flight": three options, one open at a time */
.bc-find { display: grid; gap: var(--bc-s3); }
.bc-find__item { border: 1px solid var(--bc-line); border-radius: var(--bc-radius); background: var(--bc-white); }
.bc-find__item.is-open { border-color: var(--bc-teal); box-shadow: 0 0 0 1px var(--bc-teal); }
.bc-find > .bc-find__opt { border: 1px solid var(--bc-line); border-radius: var(--bc-radius); background: var(--bc-white); }
.bc-find__opt { display: flex; gap: var(--bc-s4); align-items: flex-start; width: 100%; padding: var(--bc-s4); border: 0; background: none; text-align: left; font: inherit; color: var(--bc-ink); cursor: pointer; }
.bc-find__opt:hover { background: var(--bc-teal-050); }
.bc-find__opt:focus-visible { outline: 3px solid var(--bc-focus); outline-offset: -3px; }
.bc-find__icon { flex: none; display: inline-flex; width: 40px; height: 40px; border-radius: 50%; background: var(--bc-teal-050); color: var(--bc-teal); align-items: center; justify-content: center; }
.bc-find__icon svg { display: block; width: 22px; height: 22px; position: static; margin: 0; color: inherit; }
.bc-find__text { display: grid; gap: 2px; }
.bc-find__text b { font-size: var(--bc-fs-lg); font-weight: var(--bc-fw-semibold); color: var(--bc-navy); }
.bc-find__text span { font-size: var(--bc-fs-sm); color: var(--bc-muted-ink); line-height: 1.4; }
.bc-find__body { padding: 0 var(--bc-s4) var(--bc-s4); display: grid; gap: var(--bc-s3); }
.bc-find__body .bc-altdays { margin-top: 0; }

/* Press logos: centred, monochrome and even, in one row on wide screens and two by two on phones */
.bc-press { text-align: center; justify-items: center; }
.bc-press__logos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bc-s5) var(--bc-s6); justify-items: center; align-items: center; width: 100%; max-width: 560px; margin-inline: auto; }
@media (min-width: 560px) { .bc-press__logos { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.bc-press__logos img { height: 30px; max-width: 100%; filter: grayscale(1) contrast(1.1); opacity: .85; }
.bc-press--compact .bc-press__logos img { height: 24px; }

/* Button rows: the main button with Back beside it (desktop) and any small print underneath.
   Phones: button, then small print, then Back, stacked. */
.bc-actions__row { display: contents; }
.bc-actions__row .bc-btn { order: 1; }
.bc-actions > p { order: 2; }
.bc-actions__row .bc-back { order: 3; }
@media (min-width: 1024px) {
  .bc-actions:has(> .bc-actions__row) { display: grid; justify-items: end; gap: 12px; }
  .bc-actions__row { display: flex; justify-content: flex-end; align-items: center; gap: 40px; }
  .bc-actions__row .bc-back { order: -1; }
  .bc-actions > .bc-consent { text-align: right; max-width: 52ch; }
  .bc-actions > .bc-consent--legal { text-align: left; max-width: none; justify-self: stretch; }
}

/* Checking your flight (email step): each check ticks off, then the result is ready but locked */
.bc-checking { display: grid; gap: var(--bc-s3); }
.bc-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.bc-checks__item { display: flex; gap: var(--bc-s3); align-items: center; font-size: var(--bc-fs-sm); color: var(--bc-muted-ink); transition: color .2s; }
.bc-checks__mark { flex: none; display: inline-flex; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--bc-line-soft); align-items: center; justify-content: center; color: transparent; transition: background .2s, border-color .2s, color .2s; }
.bc-checks__mark svg { width: 11px; height: 11px; }
.bc-checks__item.is-active { color: var(--bc-navy); }
.bc-checks__item.is-active .bc-checks__mark { border-color: var(--bc-teal-200); border-top-color: var(--bc-teal); animation: bc-spin .8s linear infinite; }
.bc-checks__item.is-done { color: var(--bc-navy); }
.bc-checks__item.is-done .bc-checks__mark { background: var(--bc-teal); border-color: var(--bc-teal); color: var(--bc-white); animation: none; }
.bc-lock { display: flex; align-items: center; gap: var(--bc-s3); padding: var(--bc-s3) var(--bc-s4); border: 1px dashed var(--bc-line); border-radius: var(--bc-radius); background: var(--bc-white); }
.bc-lock__icon { flex: none; display: inline-flex; color: var(--bc-muted); }
.bc-lock__icon svg { width: 16px; height: 18px; }
.bc-lock__bars { display: grid; gap: 6px; flex: 1; }
.bc-lock__bars span { display: block; height: 10px; border-radius: 5px; background: linear-gradient(90deg, var(--bc-line-soft) 25%, var(--bc-panel) 50%, var(--bc-line-soft) 75%); background-size: 200% 100%; animation: bc-shimmer 1.4s linear infinite; }
.bc-lock__bars span:first-child { width: 55%; height: 14px; }
.bc-lock__bars span:last-child { width: 80%; }
.bc-lock__text { font-size: var(--bc-fs-xs); color: var(--bc-muted-ink); text-align: right; max-width: 11em; }
.bc-checking.is-done .bc-lock { border-style: solid; border-color: var(--bc-teal-200); background: var(--bc-teal-050); }
.bc-checking.is-done .bc-lock__icon { color: var(--bc-teal); }
.bc-checking.is-done .bc-lock__bars span { animation: none; }
@keyframes bc-shimmer { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .bc-checks__item.is-active .bc-checks__mark, .bc-lock__bars span { animation: none; } }

/* Another date: pick any date and search */
.bc-altdays__pick { display: grid; gap: var(--bc-s2); align-items: end; }
.bc-altdays__pick .bc-btn { width: 100%; min-height: 48px; font-size: var(--bc-fs-md); }
@media (min-width: 560px) { .bc-altdays__pick { grid-template-columns: minmax(0, 1fr) auto; } .bc-altdays__pick .bc-btn { width: auto; } }
.bc-control.is-busy { opacity: .6; }

/* Trustpilot cards: name and review details always sit at the foot of the card, lined up across the row */
.bc-review { display: flex; flex-direction: column; }
.bc-review blockquote { flex: 1; }
.bc-review figcaption { display: grid; gap: 2px; margin-top: auto; padding-top: var(--bc-s2); }
.bc-review figcaption span { white-space: nowrap; }

/* Landing page on phones: "Check my flight" stays in reach once the form scrolls away */
.bc-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; align-items: center; gap: var(--bc-s3); padding: var(--bc-s3) var(--bc-s4) calc(var(--bc-s3) + env(safe-area-inset-bottom, 0px)); background: var(--bc-white); box-shadow: 0 -4px 20px rgba(11, 15, 31, .12); }
.bc-sticky .bc-btn { flex: 1; min-height: 48px; font-size: var(--bc-fs-md); }
.bc-sticky__note { font-size: var(--bc-fs-xs); color: var(--bc-muted-ink); max-width: 9em; line-height: 1.3; }
@media (min-width: 1024px) { .bc-sticky { display: none !important; } }
@media (min-width: 1024px) { .bc-trust { max-width: var(--bc-card-max); } }

/* Results in figures (landing page, result page, confirmation) */
.bc-stats { display: grid; gap: var(--bc-s3); }
.bc-stats ul { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--bc-line-soft); border-bottom: 1px solid var(--bc-line-soft); }
@media (min-width: 560px) { .bc-stats ul { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); padding: 18px 0; } }
.bc-stats li { display: grid; grid-template-columns: 5.5rem 1fr; gap: 12px; align-items: baseline; padding: 14px 0; }
.bc-stats li + li { border-top: 1px solid var(--bc-line-soft); }
@media (min-width: 560px) {
  .bc-stats li { grid-template-columns: none; gap: 4px; text-align: center; padding: 0 14px; }
  .bc-stats li + li { border-top: 0; border-left: 1px solid var(--bc-line-soft); }
}
.bc-stats b { font-size: 1.45rem; line-height: 1; font-weight: var(--bc-fw-bold); color: var(--bc-navy); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
@media (min-width: 560px) { .bc-stats b { font-size: 1.9rem; } }
.bc-stats li span { font-size: var(--bc-fs-xs); color: var(--bc-muted-ink); line-height: 1.35; text-wrap: balance; }
.bc-stats__basis { margin: 0; font-size: var(--bc-fs-xs); color: var(--bc-muted-ink); line-height: 1.45; }
@media (min-width: 560px) { .bc-stats__basis { text-align: center; } }
.bc-trustline { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 16px; font-size: var(--bc-fs-sm); color: var(--bc-navy); font-weight: var(--bc-fw-semibold); }
.bc-trustline li::before { content: "\2713\00a0"; color: #1c7a55; font-weight: var(--bc-fw-bold); }
@media (min-width: 1024px) { .bc-trustline { justify-content: flex-end; } }

/* A chosen address, shown as one box with Change */
.bc-addr { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--bc-s4); padding: var(--bc-s4); border: 1px solid var(--bc-teal-200); border-radius: var(--bc-radius); background: var(--bc-white); max-width: var(--bc-field-max); }
.bc-addr__lines { margin: 0; line-height: 1.5; color: var(--bc-ink); font-weight: var(--bc-fw-regular); }
.bc-addr .bc-link { background: none; border: 0; padding: 0; font: inherit; font-weight: var(--bc-fw-semibold); cursor: pointer; }

/* Email step while the checks run: only Back shows; the stuck state after a failed check */
.bc-actions--wait { margin-top: 0; }
.bc-checking.is-stuck .bc-lock { border-style: solid; }

/* Last step: slim total, the optional question behind a link */
.bc-banner--slim { padding: var(--bc-s3) var(--bc-s4); }
.bc-more { display: grid; gap: var(--bc-s2); }
.bc-more__toggle { background: none; border: 0; padding: 0; font: inherit; font-weight: var(--bc-fw-semibold); text-align: left; cursor: pointer; }
.bc-more__toggle::before { content: "+ "; }
.bc-more__toggle[aria-expanded="true"]::before { content: "\2212  "; }
.bc-more__body { display: grid; gap: var(--bc-s2); }
.bc-trustline { margin-top: var(--bc-s2); }

.bc-choice:has(input[name="d-cflight"][value="none"]), .bc-choice:has(input[name="r-flight"][value="none"]) { margin-top: 12px; background: var(--bc-teal-050); border-style: dashed; color: var(--bc-teal); font-weight: var(--bc-fw-semibold); }
