/* ==========================================================================
   Aeroport Transport — page components (loaded after app.css)
   Co-located per page: base rules then that page's responsive overrides.
   ========================================================================== */

/* Shared: two-column section header (intro left, lead right) */
.head-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: end; margin-bottom: 44px; }
.head-2col .lead { font-size: 15px; line-height: 1.7; color: var(--mute); max-width: 420px; justify-self: end; }
.head-2col--light .lead { color: #b3a994; }
.head-2col__link { justify-self: end; }
.link-gold { background: none; border: none; cursor: pointer; font-size: 14px; font-weight: 600; text-decoration: none; }

/* ── HOME: hero booking widget (dark glass) ─────────────────────────────── */
.qq {
    background: linear-gradient(165deg, rgba(38,31,23,.72), rgba(16,13,10,.72));
    backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
    border-radius: var(--r-lg); padding: 28px; box-shadow: var(--sh-widget);
    border: 1px solid rgba(200,155,74,.18);
}
.qq__head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 6px; }
.qq__title { font-family: var(--f-sans); font-weight: 800; font-size: 25px; letter-spacing: -.5px; color: #f7f2ea; }
.qq__min { font-family: var(--f-mono); font-size: 10px; letter-spacing: .14em; color: var(--gold); }
.qq__sub { font-size: 13.5px; color: var(--on-dark-3); margin-bottom: 20px; }
.qq__tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.qq__tab {
    background: rgba(245,240,232,.04); border: 1px solid rgba(245,240,232,.12); color: #cdc4b3;
    border-radius: var(--r-pill); padding: 8px 14px; font-size: 12.5px; font-weight: 600; cursor: pointer;
    transition: background .25s ease, border-color .25s ease, color .25s ease;
}
.qq__tab:hover { border-color: rgba(200,155,74,.4); }
.qq__tab.is-active { background: rgba(200,155,74,.16); border-color: var(--gold); color: var(--gold-l); }
.qq__fields { display: flex; flex-direction: column; gap: 12px; }
.qq__field { background: rgba(245,240,232,.05); border: 1px solid rgba(245,240,232,.12); border-radius: 13px; padding: 11px 15px; }
.qq__field-label { font-family: var(--f-mono); font-size: 9px; letter-spacing: .16em; color: var(--gold); margin-bottom: 3px; }
.qq__field-row { display: flex; align-items: center; gap: 9px; }
.qq__field-row .ic { color: var(--gold); font-size: 13px; display: inline-flex; }
.qq__input { width: 100%; border: none; background: none; font-size: 14.5px; color: #f5f0e8; }
.qq__input::placeholder { color: #a89c87; }
.qq__input[type="date"], .qq__input[type="time"] { color-scheme: dark; font-size: 12.5px; }
.qq__row3 { display: grid; grid-template-columns: 1fr 1fr .8fr; gap: 10px; }
.qq__pax { display: flex; align-items: center; justify-content: space-between; }
.qq__pax-val { display: flex; align-items: center; gap: 6px; color: #f5f0e8; font-size: 15px; font-weight: 700; }
.qq__pax-btns { display: flex; flex-direction: column; gap: 2px; }
.qq__pax-btns button { width: 18px; height: 14px; border: none; background: rgba(245,240,232,.1); border-radius: 4px; cursor: pointer; color: var(--gold); font-size: 10px; line-height: 1; }
.qq__veh-label { font-family: var(--f-mono); font-size: 9px; letter-spacing: .16em; color: var(--gold); margin: 4px 0 8px; }
.qq__veh-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.veh-pick { position: relative; }
.veh-pick input { position: absolute; opacity: 0; pointer-events: none; }
.veh-pick__card {
    display: block; background: rgba(245,240,232,.04); border: 1px solid rgba(245,240,232,.12);
    border-radius: 12px; padding: 12px 8px; cursor: pointer; text-align: center; transition: border-color .25s ease, background .25s ease;
}
.veh-pick__card:hover { border-color: rgba(200,155,74,.4); }
.veh-pick input:checked + .veh-pick__card { border-color: var(--gold); background: rgba(200,155,74,.12); }
.veh-pick input:focus-visible + .veh-pick__card { outline: 2px solid var(--gold); outline-offset: 2px; }
.veh-pick__name { font-weight: 700; font-size: 13px; color: #cdc4b3; }
.veh-pick input:checked + .veh-pick__card .veh-pick__name { color: var(--gold-l); }
.veh-pick__pax { font-size: 10px; color: #9b9079; margin: 3px 0 5px; }
.veh-pick__price { font-family: var(--f-mono); font-size: 9.5px; color: var(--gold); }
.veh-pick.is-disabled { opacity: .4; pointer-events: none; }
.veh-pick.is-disabled .veh-pick__card { border-style: dashed; filter: grayscale(0.7); }
.qq__submit { margin-top: 8px; }
.qq__fine { text-align: center; font-size: 11.5px; color: #8a7f6c; }

/* ── HOME: four steps ───────────────────────────────────────────────────── */
.steps-block { display: grid; grid-template-columns: .85fr 1.15fr; gap: 48px; align-items: start; }
.steps-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.step-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); padding: 24px 22px 26px; box-shadow: 0 1px 0 rgba(0,0,0,.02); }
.step-card__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 34px; }
.step-card__n { font-family: var(--f-disp); font-weight: 700; font-size: 40px; color: #e3d7bf; line-height: 1; }
.step-card__tag { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .12em; color: var(--gold-d); background: rgba(200,155,74,.1); padding: 5px 9px; border-radius: var(--r-pill); }
.step-card__t { font-weight: 700; font-size: 17px; color: var(--ink-1); margin-bottom: 7px; }
.step-card__d { font-size: 13.5px; line-height: 1.6; color: var(--mute-2); }

/* ── HOME: services dark grid ───────────────────────────────────────────── */
.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(245,240,232,.08); border: 1px solid rgba(245,240,232,.08); border-radius: var(--r-md); overflow: hidden; }
.svc-cell { background: var(--char-2); padding: 30px 26px; cursor: pointer; text-decoration: none; display: block; transition: background .4s ease; }
.svc-cell:hover { background: #181410; }
.svc-cell__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.svc-cell__no { font-family: var(--f-mono); font-size: 11px; color: var(--gold); }
.svc-cell__arrow { width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(200,155,74,.3); display: flex; align-items: center; justify-content: center; color: var(--gold); }
.svc-cell__t { font-family: var(--f-disp); font-weight: 600; font-size: 23px; color: #f5f0e8; margin-bottom: 8px; }
.svc-cell__d { font-size: 13.5px; line-height: 1.6; color: #9b9079; }

/* ── HOME: fleet preview cards ──────────────────────────────────────────── */
.fleet-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.fleet-card { background: var(--card); border: 1px solid var(--line); border-radius: 20px; overflow: hidden; box-shadow: 0 20px 50px -34px rgba(0,0,0,.4); }
.fleet-card__img { height: 200px; position: relative; background: var(--ink); }
.fleet-card__img img { width: 100%; height: 100%; object-fit: cover; }
.fleet-card__tier { position: absolute; top: 12px; left: 12px; font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .14em; color: #f5f0e8; background: rgba(8,7,5,.6); backdrop-filter: blur(4px); padding: 5px 10px; border-radius: var(--r-pill); }
.fleet-card__body { padding: 20px 22px 22px; }
.fleet-card__name { font-family: var(--f-disp); font-weight: 700; font-size: 22px; color: var(--ink-1); }
.fleet-card__meta { display: flex; gap: 18px; margin: 12px 0 16px; font-size: 12px; color: var(--mute-2); font-family: var(--f-mono); letter-spacing: .04em; }
.fleet-card__meta span { display: inline-flex; align-items: center; gap: 6px; }
.fleet-card__foot { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line-2); padding-top: 14px; }
.price-from__label { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .12em; color: var(--gold-d); }
.price-from__val { font-weight: 700; font-size: 18px; color: var(--ink-1); }
.price-from__val small { font-size: 12px; color: var(--mute-3); font-weight: 400; }

/* ── HOME: routes strip (dark) ──────────────────────────────────────────── */
.routes-mini { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.route-mini { background: var(--char-2); border: 1px solid rgba(245,240,232,.08); border-radius: var(--r-sm); padding: 18px 20px; cursor: pointer; text-decoration: none; display: block; }
.route-mini__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.route-mini__code { font-family: var(--f-mono); font-size: 10px; letter-spacing: .1em; color: var(--gold); border: 1px solid rgba(200,155,74,.3); padding: 3px 8px; border-radius: 6px; }
.route-mini__km { font-family: var(--f-mono); font-size: 10px; color: var(--mute-3); }
.route-mini__path { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: #e9e1d2; }
.route-mini__path b { font-weight: 600; }
.route-mini__dash { flex: 1; height: 1px; background: repeating-linear-gradient(90deg, rgba(200,155,74,.5) 0 5px, transparent 5px 10px); }
.route-mini__price { display: flex; align-items: baseline; gap: 6px; margin-top: 14px; }
.route-mini__price .lbl { font-family: var(--f-mono); font-size: 9.5px; color: var(--gold-d); }
.route-mini__price .val { font-weight: 700; font-size: 20px; color: #f5f0e8; }
.route-mini__price .cur { font-size: 11px; color: var(--mute-3); }

/* ── HOME: testimonials ─────────────────────────────────────────────────── */
.quotes { display: grid; grid-template-columns: 1.1fr .9fr; gap: 22px; }
.quote-feature { background: var(--ink); border-radius: var(--r-lg); padding: 44px 40px; position: relative; overflow: hidden; }
.quote-feature__mark { position: absolute; top: 18px; right: 30px; font-family: var(--f-disp); font-size: 140px; color: rgba(200,155,74,.12); line-height: 1; }
.quote-stars { color: var(--gold); font-size: 14px; letter-spacing: 3px; margin-bottom: 20px; }
.quote-feature__q { font-family: var(--f-disp); font-style: italic; font-weight: 500; font-size: 27px; line-height: 1.4; color: #f5f0e8; position: relative; }
.quote-feature__who { display: flex; align-items: center; gap: 12px; margin-top: 30px; }
.quote-avatar { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, var(--gold), var(--gold-d)); display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--on-gold); }
.quote-feature__name { font-weight: 700; color: #f5f0e8; font-size: 14px; }
.quote-feature__role { font-family: var(--f-mono); font-size: 10.5px; color: var(--on-dark-3); letter-spacing: .06em; }
.quotes-side { display: flex; flex-direction: column; gap: 14px; }
.quote-side { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); padding: 24px; flex: 1; }
.quote-side .quote-stars { font-size: 11px; letter-spacing: 2px; margin-bottom: 12px; }
.quote-side__q { font-size: 14.5px; line-height: 1.6; color: #3a3329; }
.quote-side__who { display: flex; align-items: center; gap: 8px; margin-top: 16px; font-size: 12px; }
.quote-side__who b { color: var(--ink-1); }
.quote-side__who span { color: var(--on-dark-3); font-family: var(--f-mono); font-size: 10px; }

/* ── HOME/global: FAQ accordion ─────────────────────────────────────────── */
.faq { display: flex; flex-direction: column; gap: 10px; }
.faq-item { background: var(--card); border: 1px solid #e7dcc7; border-radius: var(--r-sm); overflow: hidden; }
.faq-item__q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: none; border: none; cursor: pointer; text-align: left; padding: 22px 24px; font-weight: 600; font-size: 16px; color: var(--ink-1); }
.faq-item__sign { font-size: 22px; color: var(--gold-d); transition: transform .3s ease; flex: none; }
.faq-item.is-open .faq-item__sign { transform: rotate(45deg); }
.faq-item__a { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-item__a-inner { padding: 0 24px 22px; font-size: 14.5px; line-height: 1.7; color: var(--mute); }

/* ── HOME: final CTA ────────────────────────────────────────────────────── */
.final-cta__grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 50px; align-items: center; }
.final-cta__plus { position: absolute; right: -2%; top: -10%; font-family: var(--f-mono); font-size: clamp(60px,12vw,150px); color: rgba(245,240,232,.03); letter-spacing: .1em; pointer-events: none; }
.final-cta__panel { background: rgba(245,240,232,.04); border: 1px solid rgba(245,240,232,.12); border-radius: var(--r-lg); padding: 30px; }
.final-cta__label { font-family: var(--f-mono); font-size: 10px; letter-spacing: .2em; color: var(--gold); margin-bottom: 8px; }
.final-cta__phone { font-family: var(--f-disp); font-weight: 700; font-size: 30px; color: #f5f0e8; text-decoration: none; display: block; }
.final-cta__email { font-size: 14px; color: #b3a994; text-decoration: none; display: block; margin-top: 4px; }
.final-cta__assure { border-top: 1px solid rgba(245,240,232,.1); margin-top: 22px; padding-top: 18px; display: flex; flex-direction: column; gap: 11px; }
.final-cta__assure div { display: flex; align-items: center; gap: 10px; font-size: 13px; color: #cdc4b3; }
.final-cta__assure .tick { color: var(--gold); display: inline-flex; }

/* ── HOME responsive ────────────────────────────────────────────────────── */
@media (max-width: 880px) {
    .head-2col { grid-template-columns: 1fr; }
    .head-2col .lead, .head-2col__link { justify-self: start; }
    .steps-block { grid-template-columns: 1fr; gap: 30px; }
    .svc-grid { grid-template-columns: 1fr 1fr; }
    .quotes { grid-template-columns: 1fr; }
    .final-cta__grid { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 640px) {
    .steps-grid, .fleet-cards, .routes-mini { grid-template-columns: 1fr; }
    .svc-grid { grid-template-columns: 1fr; }
    .qq__veh-grid { grid-template-columns: repeat(2, 1fr); }
    .qq__row3 { grid-template-columns: 1fr 1fr; }
    .quote-feature { padding: 32px 26px; }
    .quote-feature__q { font-size: 22px; }
}

/* ── SERVICES: numbered editorial rows ──────────────────────────────────── */
.svc-rows { display: flex; flex-direction: column; }
.svc-row { display: grid; grid-template-columns: auto 1.4fr 1fr auto; gap: 30px; align-items: center; padding: 42px 0; border-bottom: 1px solid var(--line-3); }
.svc-row__num { font-family: var(--f-disp); font-weight: 700; font-size: 64px; color: #e3d7bf; line-height: .8; min-width: 90px; }
.svc-row__tags { font-family: var(--f-mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-d); margin-bottom: 10px; }
.svc-row__name { font-family: var(--f-disp); font-weight: 700; font-size: 30px; color: var(--ink-1); margin: 0 0 10px; }
.svc-row__desc { font-size: 14.5px; line-height: 1.65; color: var(--mute); margin: 0; max-width: 420px; }
.svc-row__features { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; }
.svc-row__feature { display: flex; align-items: center; gap: 8px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--mute-2); }
.svc-row__feature .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--gold); flex: none; }
.svc-row__cta { white-space: nowrap; }
@media (max-width: 880px) {
    .svc-row { grid-template-columns: 1fr; gap: 18px; padding: 34px 0; }
    .svc-row__num { font-size: 48px; min-width: 0; }
    .svc-row__cta { justify-self: start; }
}

/* ── FLEET: alternating full-width rows ─────────────────────────────────── */
.fleet-rows { display: flex; flex-direction: column; gap: 34px; }
.fleet-row { display: grid; grid-template-columns: 1.05fr 1fr; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: 0 26px 60px -40px rgba(0,0,0,.45); }
.fleet-row--rev { direction: rtl; }
.fleet-row--rev > * { direction: ltr; }
.fleet-row__img { position: relative; min-height: 320px; background: var(--ink); }
.fleet-row__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fleet-row__body { padding: 40px 42px; display: flex; flex-direction: column; justify-content: center; }
.fleet-row__tier { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-d); margin-bottom: 12px; }
.fleet-row__name { font-family: var(--f-disp); font-weight: 700; font-size: 34px; color: var(--ink-1); margin: 0 0 12px; }
.fleet-row__desc { font-size: 14.5px; line-height: 1.65; color: var(--mute); margin: 0 0 22px; max-width: 420px; }
.fleet-row__pills { display: flex; gap: 10px; margin-bottom: 22px; flex-wrap: wrap; }
.pill { display: inline-flex; align-items: center; gap: 8px; background: var(--field); border: 1px solid var(--field-bd); border-radius: var(--r-pill); padding: 8px 14px; font-size: 12.5px; color: #3a3329; }
.pill .ic { color: var(--gold-d); display: inline-flex; }
.fleet-row__features { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 18px; margin-bottom: 26px; }
.fleet-row__feature { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--mute-2); }
.fleet-row__feature .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--gold); flex: none; }
.fleet-row__foot { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line-2); padding-top: 20px; gap: 16px; flex-wrap: wrap; }
.price-from--lg .price-from__val { font-family: var(--f-disp); font-size: 30px; }
@media (max-width: 640px) {
    .fleet-row { grid-template-columns: 1fr; }
    .fleet-row--rev { direction: ltr; }
    .fleet-row__img { min-height: 230px; }
    .fleet-row__body { padding: 28px 24px; }
    .fleet-row__name { font-size: 28px; }
}

/* ── ROUTES: boarding-pass cards + filter ───────────────────────────────── */
.routes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.route-pass { position: relative; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); padding: 22px 24px 24px; box-shadow: 0 18px 44px -32px rgba(0,0,0,.4); overflow: hidden; text-decoration: none; display: block; }
.route-pass__watermark { position: absolute; right: -6px; top: 18px; font-family: var(--f-disp); font-weight: 700; font-size: 56px; color: rgba(200,155,74,.07); letter-spacing: 1px; }
.route-pass__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; position: relative; }
.route-pass__badge { display: inline-flex; align-items: center; gap: 6px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .08em; color: var(--gold-d); background: rgba(200,155,74,.1); padding: 5px 10px; border-radius: 7px; }
.route-pass__badge .ic { display: inline-flex; }
.route-pass__dist { font-family: var(--f-mono); font-size: 10px; color: var(--mute-3); }
.route-pass__od { position: relative; }
.route-pass__pt { display: flex; align-items: flex-start; gap: 11px; }
.route-pass__dot { width: 9px; height: 9px; border-radius: 50%; margin-top: 5px; flex: none; }
.route-pass__dot--from { border: 2px solid var(--gold); }
.route-pass__dot--to { background: var(--gold); }
.route-pass__k { font-family: var(--f-mono); font-size: 9px; letter-spacing: .12em; color: #a89c87; }
.route-pass__v { font-weight: 600; font-size: 15.5px; color: var(--ink-1); }
.route-pass__conn { margin-left: 4px; width: 1px; height: 14px; background: repeating-linear-gradient(180deg, #d9cdb6 0 3px, transparent 3px 6px); }
.route-pass__divider { border-top: 1px dashed #e0d4bd; margin: 20px 0 16px; }
.route-pass__foot { display: flex; align-items: center; justify-content: space-between; }
.route-pass__price .val { font-family: var(--f-disp); font-weight: 700; font-size: 26px; color: var(--ink-1); }
.route-pass__price .cur { font-size: 12px; color: var(--mute-3); }
.routes-empty { display: none; text-align: center; padding: 40px; color: var(--mute); }
@media (max-width: 880px) { .routes-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .routes-grid { grid-template-columns: 1fr; } }

/* Generic info card (pricing rules etc.) */
.info-card { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 26px; }
.info-card__n { font-family: var(--f-mono); font-size: 11px; color: var(--gold-d); margin-bottom: 14px; }
.info-card__t { font-weight: 700; font-size: 18px; color: var(--ink-1); margin-bottom: 8px; }
.info-card__d { font-size: 13.5px; line-height: 1.65; color: var(--mute); }
.info-card__d strong, .info-card__d b { color: var(--ink-1); }

/* ── CALCULATOR ─────────────────────────────────────────────────────────── */
.calc-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 30px; align-items: start; }
.calc-form { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 30px; box-shadow: var(--sh-card); }
.calc-form__head { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line-2); padding-bottom: 16px; margin-bottom: 22px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .16em; }
.calc-form__head .l { color: var(--gold-d); } .calc-form__head .r { color: #b5a98f; }
.calc-sec { font-family: var(--f-mono); font-size: 10px; letter-spacing: .18em; color: #a89c87; margin: 0 0 12px; }
.calc-sec--mt { margin-top: 26px; }
.calc-presets { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 26px; }
.calc-preset { display: flex; align-items: center; justify-content: space-between; gap: 8px; background: var(--field); border: 1px solid var(--field-bd); border-radius: 10px; padding: 10px 12px; cursor: pointer; text-align: left; transition: background .2s ease, border-color .2s ease; }
.calc-preset:hover { border-color: var(--gold); }
.calc-preset.is-active { background: rgba(200,155,74,.14); border-color: var(--gold); }
.calc-preset .code { font-family: var(--f-mono); font-size: 9.5px; color: var(--gold-d); }
.calc-preset .to { font-size: 12px; color: #3a3329; font-weight: 500; flex: 1; text-align: right; }
.calc-preset .ar { color: var(--gold-d); font-size: 12px; }
.calc-box { background: var(--field); border: 1px solid var(--field-bd); border-radius: 12px; padding: 11px 14px; }
.calc-box__label { font-family: var(--f-mono); font-size: 9px; letter-spacing: .14em; color: var(--gold-d); margin-bottom: 3px; }
.calc-box input, .calc-box select { width: 100%; border: none; background: none; font-size: 14px; color: var(--ink-1); }
.calc-box select { font-weight: 600; font-size: 15px; cursor: pointer; }
.calc-box input:focus, .calc-box select:focus { outline: none; }
.calc-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; margin-bottom: 14px; }
.calc-dist { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; }
.calc-dist__val { font-family: var(--f-disp); font-weight: 700; font-size: 24px; color: var(--ink-1); }
.calc-dist__val small { font-size: 12px; color: var(--mute-3); font-family: var(--f-sans); }
.calc-dist__grp { display: flex; gap: 6px; }
.calc-count { display: flex; align-items: center; justify-content: space-between; }
.calc-count__val { font-weight: 700; font-size: 18px; color: var(--ink-1); }
.calc-toggle { background: var(--field); border: 1px solid var(--field-bd); border-radius: 12px; padding: 13px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.calc-toggle__t { font-weight: 600; font-size: 14px; color: var(--ink-1); }
.calc-toggle__d { font-size: 11.5px; color: var(--mute-3); }
.calc-trigger-ic { display: none; }

/* Boarding pass output */
.pass { position: sticky; top: 96px; }
.pass__card { background: linear-gradient(160deg, #1a1510, #0c0a08); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-pass); color: var(--on-dark); position: relative; }
.pass__head { padding: 24px 26px 0; display: flex; align-items: center; justify-content: space-between; font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .14em; }
.pass__head .l { color: var(--gold); } .pass__head .r { color: var(--on-dark-4); }
.pass__od { padding: 18px 26px 22px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.pass__k { font-family: var(--f-mono); font-size: 9px; letter-spacing: .14em; color: var(--on-dark-4); }
.pass__code { font-family: var(--f-disp); font-weight: 700; font-size: 42px; line-height: 1; color: #f5f0e8; }
.pass__code--arr { color: var(--gold); }
.pass__place { font-size: 11px; color: #b3a994; margin-top: 4px; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pass__od .r { text-align: right; }
.pass__od .r .pass__place { margin-left: auto; }
.pass__plane { flex: 1; display: flex; align-items: center; gap: 8px; padding-top: 18px; min-width: 40px; color: var(--gold); }
.pass__plane .ln { flex: 1; height: 1px; background: repeating-linear-gradient(90deg, rgba(200,155,74,.6) 0 5px, transparent 5px 10px); }
.pass__meta { display: flex; justify-content: space-between; padding: 0 26px 18px; border-bottom: 1px dashed rgba(245,240,232,.18); }
.pass__meta .k { font-family: var(--f-mono); font-size: 8.5px; letter-spacing: .14em; color: var(--on-dark-4); }
.pass__meta .v { font-size: 13px; font-weight: 600; margin-top: 2px; }
.pass__meta .c { text-align: center; } .pass__meta .rt { text-align: right; }
.pass__notch { position: absolute; width: 22px; height: 22px; border-radius: 50%; background: var(--ivory); margin-top: -11px; }
.pass__notch--l { left: -11px; } .pass__notch--r { right: -11px; }
.pass__body { padding: 20px 26px; }
.pass__lines { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.pass__line { display: flex; align-items: center; justify-content: space-between; font-size: 12.5px; color: var(--on-dark-2); gap: 12px; }
.pass__line .a { font-family: var(--f-mono); color: #e9e1d2; white-space: nowrap; }
.pass__line.is-credit .a { color: var(--success-dot); }
.pass__note { background: rgba(200,155,74,.12); border: 1px solid rgba(200,155,74,.25); border-radius: 9px; padding: 9px 12px; font-size: 11.5px; color: var(--gold-l); margin-bottom: 14px; }
.pass__total { display: flex; align-items: flex-end; justify-content: space-between; border-top: 1px solid rgba(245,240,232,.12); padding-top: 16px; gap: 12px; }
.pass__total .k { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .14em; color: var(--on-dark-4); }
.pass__total .v { font-family: var(--f-disp); font-weight: 700; font-size: 40px; line-height: .9; color: #f5f0e8; white-space: nowrap; }
.pass__total .v small { font-size: 15px; color: var(--gold); font-family: var(--f-sans); }
.pass__barcode-row { display: flex; align-items: center; justify-content: space-between; margin-top: 20px; }
.pass__barcode { height: 34px; flex: 1; background: repeating-linear-gradient(90deg, #f5f0e8 0 2px, transparent 2px 3px, #f5f0e8 3px 4px, transparent 4px 7px, #f5f0e8 7px 10px, transparent 10px 11px); opacity: .85; margin-right: 14px; }
.pass__pnr { font-family: var(--f-mono); font-size: 14px; letter-spacing: .2em; color: #f5f0e8; }
@media (max-width: 880px) {
    .calc-grid { grid-template-columns: 1fr; }
    .pass { position: static; }
}
@media (max-width: 640px) {
    .calc-presets, .calc-row2 { grid-template-columns: 1fr; }
}

/* ── TRACK ──────────────────────────────────────────────────────────────── */
.track-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 32px; box-shadow: var(--sh-card); }
.track-card__head { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px dashed #e0d4bd; padding-bottom: 16px; margin-bottom: 22px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .16em; }
.track-card__head .l { color: var(--gold-d); } .track-card__head .r { color: #b5a98f; }
.track-card__title { font-family: var(--f-disp); font-weight: 700; font-size: 26px; color: var(--ink-1); margin-bottom: 6px; }
.track-card__sub { font-size: 13px; color: var(--mute-3); margin-bottom: 18px; }
.track-form { display: grid; grid-template-columns: 1fr auto; gap: 12px; }
.track-input { background: var(--field); border: 1px solid var(--field-bd); border-radius: 13px; padding: 0 16px; display: flex; align-items: center; gap: 10px; }
.track-input .ic { color: var(--gold-d); display: inline-flex; }
.track-input input { width: 100%; border: none; background: none; font-family: var(--f-mono); font-size: 15px; letter-spacing: .05em; color: var(--ink-1); padding: 16px 0; }
.track-error { background: rgba(180,60,40,.08); border: 1px solid rgba(180,60,40,.2); border-radius: 10px; padding: 11px 14px; font-size: 13px; color: var(--error); margin-top: 14px; }
.track-demo { display: flex; align-items: center; gap: 10px; margin-top: 16px; font-size: 12.5px; color: var(--mute-3); }
.track-demo button { font-family: var(--f-mono); font-size: 12px; background: #f0e9dc; border: 1px solid #e0d4bd; border-radius: 8px; padding: 6px 11px; cursor: pointer; color: #5a5042; }
.track-result { background: linear-gradient(160deg, #1a1510, #0c0a08); border-radius: var(--r-lg); padding: 32px; margin-top: 20px; color: var(--on-dark); box-shadow: 0 30px 70px -36px rgba(0,0,0,.6); }
.track-result__head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.track-status { display: flex; align-items: center; gap: 11px; font-weight: 700; font-size: 17px; }
.track-status__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--success-dot); box-shadow: 0 0 0 4px rgba(95,191,126,.18); }
.track-status__dot--wait { background: var(--gold); box-shadow: 0 0 0 4px rgba(200,155,74,.18); }
.track-result__ref { font-family: var(--f-mono); font-size: 12px; letter-spacing: .12em; color: var(--gold); }
.track-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(245,240,232,.1); border: 1px solid rgba(245,240,232,.1); border-radius: var(--r-sm); overflow: hidden; }
.track-cell { background: var(--char-2); padding: 18px 20px; }
.track-cell .k { font-family: var(--f-mono); font-size: 9px; letter-spacing: .14em; color: var(--on-dark-4); margin-bottom: 6px; }
.track-cell .v { font-weight: 600; font-size: 15px; }
.track-cell .v.mono { font-family: var(--f-mono); }
.track-flight { display: flex; align-items: center; gap: 12px; background: rgba(200,155,74,.1); border: 1px solid rgba(200,155,74,.22); border-radius: 13px; padding: 16px 18px; margin-top: 14px; }
.track-flight .ic { color: var(--gold); display: inline-flex; }
.track-flight .t { font-size: 14px; font-weight: 600; }
.track-flight .d { font-size: 12.5px; color: #b3a994; margin-top: 2px; }
.track-eta { display: flex; align-items: center; gap: 12px; margin-top: 14px; border-top: 1px solid rgba(245,240,232,.1); padding-top: 18px; }
.track-eta .k { font-family: var(--f-mono); font-size: 9px; letter-spacing: .14em; color: var(--on-dark-4); }
.track-eta .v { font-weight: 700; font-size: 16px; color: var(--gold-l); }
.track-note { background: rgba(245,240,232,.05); border: 1px solid rgba(245,240,232,.12); border-radius: 12px; padding: 14px 16px; font-size: 13.5px; color: var(--on-dark-2); margin-top: 14px; }
.track-help { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 20px; }
.track-help__card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-sm); padding: 20px; }
.track-help__k { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .14em; color: var(--gold-d); margin-bottom: 8px; display: flex; align-items: center; gap: 7px; }
.track-help__d { font-size: 13px; line-height: 1.55; color: var(--mute); }
.track-help__d b { color: var(--ink-1); }
@media (max-width: 640px) {
    .track-form { grid-template-columns: 1fr; }
    .track-grid, .track-help { grid-template-columns: 1fr; }
}

/* ── JOURNAL ────────────────────────────────────────────────────────────── */
.journal-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 40px; border-bottom: 1px solid var(--line-3); padding-bottom: 26px; }
.j-chip { background: transparent; color: var(--mute); border: 1px solid rgba(0,0,0,.14); border-radius: var(--r-pill); padding: 8px 16px; font-size: 12.5px; font-weight: 600; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.j-chip:hover { border-color: rgba(0,0,0,.35); }
.j-chip.is-active { background: var(--char); color: var(--on-dark); border-color: var(--char); }
.j-featured { display: grid; grid-template-columns: 1.1fr 1fr; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: 0 26px 60px -42px rgba(0,0,0,.4); margin-bottom: 56px; }
.j-featured__img { position: relative; min-height: 340px; background: var(--ink); }
.j-featured__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.j-featured__body { padding: 38px 40px; display: flex; flex-direction: column; justify-content: center; }
.j-meta { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.j-meta__cat { font-family: var(--f-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-d); }
.j-meta__rule { width: 24px; height: 1px; background: #d9cdb6; }
.j-meta__date { font-family: var(--f-mono); font-size: 10px; letter-spacing: .1em; color: #a89c87; }
.j-featured__title { font-family: var(--f-disp); font-weight: 700; font-size: clamp(28px,3.4vw,40px); line-height: 1.06; color: var(--ink-1); margin: 0 0 16px; }
.j-featured__title a { text-decoration: none; }
.j-featured__excerpt { font-size: 15px; line-height: 1.65; color: var(--mute); margin: 0 0 26px; max-width: 420px; }
.j-featured__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.j-read { font-family: var(--f-mono); font-size: 11px; color: #a89c87; }
.j-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.j-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; box-shadow: 0 18px 44px -34px rgba(0,0,0,.4); text-decoration: none; display: block; }
.j-card__img { position: relative; height: 200px; background: var(--ink); }
.j-card__img img { width: 100%; height: 100%; object-fit: cover; }
.j-card__badge { position: absolute; top: 12px; left: 12px; font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .1em; color: var(--ink-1); background: rgba(245,240,232,.92); padding: 5px 10px; border-radius: var(--r-pill); }
.j-card__ph { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(200,155,74,.4); }
.j-card__body { padding: 20px 22px 22px; }
.j-card__meta { display: flex; align-items: center; gap: 10px; font-family: var(--f-mono); font-size: 10px; color: #a89c87; margin-bottom: 12px; }
.j-card__title { font-family: var(--f-disp); font-weight: 700; font-size: 21px; line-height: 1.15; color: var(--ink-1); margin: 0 0 10px; }
.j-card__excerpt { font-size: 13.5px; line-height: 1.6; color: var(--mute-2); margin: 0 0 16px; }
.j-card__cta { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 600; color: var(--ink-1); }
.j-card__cta .ar { color: var(--gold-d); }
@media (max-width: 880px) { .j-featured { grid-template-columns: 1fr; } .j-featured__img { min-height: 240px; } }
@media (max-width: 640px) { .j-grid { grid-template-columns: 1fr; } }

/* ── ABOUT ──────────────────────────────────────────────────────────────── */
.about-story { display: grid; grid-template-columns: 1fr 1fr; gap: 54px; align-items: center; }
.about-story__body p { font-size: 15px; line-height: 1.75; color: var(--ink-2); margin: 0 0 16px; }
.about-portrait { position: relative; border-radius: var(--r-lg); overflow: hidden; min-height: 460px; background: var(--ink); box-shadow: 0 30px 70px -42px rgba(0,0,0,.5); }
.about-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.about-portrait__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 24px; background: linear-gradient(0deg, rgba(8,7,5,.85), transparent); }
.about-portrait__cap .k { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .16em; color: var(--gold); }
.about-portrait__cap .t { font-family: var(--f-disp); font-weight: 700; font-size: 24px; color: #f5f0e8; }
.about-stats-strip { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; }
.about-stat { padding: 30px 26px; border-left: 1px solid var(--line-2); text-align: center; }
.about-stat:first-child { border-left: none; }
.about-stat__v { font-family: var(--f-disp); font-weight: 700; font-size: 42px; color: var(--ink-1); line-height: 1; }
.about-stat__l { font-family: var(--f-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-d); margin-top: 8px; }
.principles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.principle { background: rgba(245,240,232,.03); border: 1px solid rgba(245,240,232,.1); border-radius: var(--r-md); padding: 32px 28px; }
.principle__ic { width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(200,155,74,.35); display: flex; align-items: center; justify-content: center; color: var(--gold); margin-bottom: 22px; }
.principle__t { font-family: var(--f-disp); font-weight: 700; font-size: 24px; color: #f5f0e8; margin: 0 0 10px; }
.principle__d { font-size: 14px; line-height: 1.7; color: var(--on-dark-3); margin: 0; }
.timeline { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.timeline__item { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 26px 24px; }
.timeline__y { font-family: var(--f-disp); font-weight: 700; font-size: 34px; color: var(--gold-d); line-height: 1; margin-bottom: 16px; }
.timeline__t { font-weight: 700; font-size: 15.5px; color: var(--ink-1); margin-bottom: 8px; }
.timeline__d { font-size: 13px; line-height: 1.6; color: var(--mute-2); }
.about-cta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px; }
@media (max-width: 880px) {
    .about-story { grid-template-columns: 1fr; gap: 34px; }
    .about-portrait { min-height: 340px; }
    .about-stats-strip { grid-template-columns: 1fr 1fr; }
    .about-stat:nth-child(-n+2) { border-top: none; }
    .about-stat:nth-child(odd) { border-left: none; }
    .principles { grid-template-columns: 1fr; }
    .timeline { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) { .about-stats-strip, .timeline { grid-template-columns: 1fr; } }

/* ── CONTACT ────────────────────────────────────────────────────────────── */
.concierge { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.concierge__card { text-decoration: none; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); padding: 28px; box-shadow: 0 18px 44px -34px rgba(0,0,0,.4); display: block; }
.concierge__ic { width: 46px; height: 46px; border-radius: 12px; background: var(--char); display: flex; align-items: center; justify-content: center; color: var(--gold); margin-bottom: 42px; }
.concierge__k { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .16em; color: var(--gold-d); margin-bottom: 8px; }
.concierge__v { font-family: var(--f-disp); font-weight: 700; font-size: 22px; color: var(--ink-1); }
.concierge__d { font-size: 12.5px; color: var(--mute-3); margin-top: 6px; }
.contact-block { display: grid; grid-template-columns: 1.2fr .8fr; gap: 30px; align-items: start; }
.contact-form-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 34px; box-shadow: var(--sh-card); }
.contact-form-card__t { font-family: var(--f-disp); font-weight: 700; font-size: 28px; color: var(--ink-1); margin: 0 0 6px; }
.contact-form-card__d { font-size: 14px; color: var(--mute); margin: 0 0 24px; }
.contact-info-col { display: flex; flex-direction: column; gap: 16px; }
.contact-info-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); padding: 24px; }
.contact-info-card--dark { background: var(--char); color: var(--on-dark); }
.contact-info-card__k { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .16em; color: var(--gold-d); margin-bottom: 10px; display: flex; align-items: center; gap: 7px; }
.contact-info-card--dark .contact-info-card__k { color: var(--gold); }
.contact-info-card__t { font-family: var(--f-disp); font-weight: 700; font-size: 24px; margin-bottom: 6px; color: var(--ink-1); }
.contact-info-card--dark .contact-info-card__t { color: #f5f0e8; }
.contact-info-card__v { font-weight: 700; font-size: 16px; color: var(--ink-1); margin-bottom: 4px; }
.contact-info-card__d { font-size: 13px; line-height: 1.6; color: var(--mute-2); }
.contact-info-card--dark .contact-info-card__d { color: #b3a994; }
.form-success { text-align: center; padding: 30px 10px; }
.form-success__ic { width: 64px; height: 64px; border-radius: 50%; background: rgba(95,191,126,.12); border: 1px solid rgba(95,191,126,.4); display: flex; align-items: center; justify-content: center; color: var(--success); margin: 0 auto 22px; }
@media (max-width: 880px) { .concierge, .contact-block { grid-template-columns: 1fr; } }

/* ==========================================================================
   KEEP-ALIVE PAGES — booking wizard, single article, success, privacy/terms.
   Markup preserved (all JS hooks + field names intact); restyled to the new
   design language via the tokens above.
   ========================================================================== */

/* Centered dark hero for legacy `.page-hero > .container` pages
   (article/success/privacy/terms). */
.page-hero > .container { position: relative; z-index: 2; max-width: 900px; padding-top: 130px; padding-bottom: 70px; text-align: center; }
.page-hero > .container .eyebrow { color: var(--gold); justify-content: center; display: inline-block; }
.page-hero > .container h1 { font-family: var(--f-disp); font-weight: 600; font-size: clamp(40px,6vw,72px); line-height: 1.0; color: #f7f2ea; margin: 14px 0 0; }
.page-hero > .container .lead { color: var(--on-dark-2); max-width: 560px; margin: 22px auto 0; }
.page-hero--compact { min-height: 46vh; }

/* Generic grid + card + section-head + link (legacy building blocks) */
.grid { display: grid; gap: 24px; }
.grid--2 { grid-template-columns: 1fr 1fr; }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); padding: 28px; box-shadow: 0 1px 0 rgba(0,0,0,.02); }
.card__title { font-family: var(--f-disp); font-weight: 700; font-size: 22px; color: var(--ink-1); margin: 0 0 14px; }
.card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.section__head { max-width: 720px; margin-bottom: 36px; }
.section__head--center { margin-left: auto; margin-right: auto; text-align: center; }
.section__title { font-family: var(--f-disp); font-weight: 600; font-size: clamp(30px,4vw,46px); line-height: 1.04; color: var(--ink-1); margin: 8px 0 0; }
.section__cta { margin-top: 32px; text-align: center; }
.link { color: var(--gold-d); text-decoration: none; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.link:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Generic fields (legacy .field with raw inputs) */
.field > input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.field > textarea, .field > select {
    width: 100%; background: var(--field); border: 1px solid var(--field-bd); border-radius: var(--r-xs);
    padding: 13px 15px; font-size: 14px; color: var(--ink-1); transition: border-color .25s ease, box-shadow .25s ease;
}
.field > input:focus, .field > textarea:focus, .field > select:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(200,155,74,.14); }
.field > textarea { resize: vertical; font-family: var(--f-sans); min-height: 100px; }
.field__hint { font-size: 12px; color: var(--mute-3); }
.field--icon { position: relative; }
.field--icon .field__icon { position: absolute; left: 16px; bottom: 13px; width: 18px; height: 18px; color: var(--gold-d); pointer-events: none; display: inline-flex; align-items: center; justify-content: center; }
.field--icon .field__icon > svg { display: block; }
/* Specificity must match the base .field > input rule (0,4,1) so the padding wins. */
.field--icon > input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) { padding-left: 46px; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

/* Toggle row (round-trip) */
.toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--field); border: 1px solid var(--field-bd); border-radius: 12px; padding: 13px 16px; cursor: pointer; margin: 10px 0; }
.toggle-row__main strong { font-size: 14px; color: var(--ink-1); }
.toggle-row__main span { display: block; font-size: 11.5px; color: var(--mute-3); }
.toggle-row input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; }
.toggle-row__switch { width: 46px; height: 26px; border-radius: var(--r-pill); background: #d8ccb5; position: relative; flex: none; transition: background .25s ease; }
.toggle-row__switch::after { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.3); transition: transform .25s ease; }
.toggle-row input:checked ~ .toggle-row__switch { background: var(--gold); }
.toggle-row input:checked ~ .toggle-row__switch::after { transform: translateX(20px); }

/* Field stepper (labelled +/- control) */
.field-stepper { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--field); border: 1px solid var(--field-bd); border-radius: 12px; padding: 11px 16px; }
.field-stepper strong { font-size: 14px; color: var(--ink-1); }
.field-stepper small { display: block; font-size: 11.5px; color: var(--mute-3); }

/* Legacy custom date/time picker trigger (row layout) */
.datepicker__trigger { flex-direction: row; align-items: center; gap: 10px; }
.datepicker__icon { color: var(--gold-d); display: inline-flex; flex: none; }
.datepicker__display { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.datepicker__display strong { font-size: 14px; font-weight: 600; color: var(--ink-1); }
.datepicker__display small { font-size: 11px; color: var(--mute-3); }
.datepicker__chev { color: var(--mute-3); display: inline-flex; flex: none; }
.datepicker__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.datepicker__nav { width: 30px; height: 30px; border-radius: 8px; border: 1px solid var(--field-bd); background: var(--field); cursor: pointer; color: var(--gold-d); }
.datepicker__weekday { text-align: center; font-family: var(--f-mono); font-size: 9px; letter-spacing: .06em; color: var(--mute-3); padding: 4px 0; }

/* Booking wizard */
.booking { max-width: 860px; }
/* Lift the wizard onto an elevated white card so it reads clearly off the ivory page. */
.booking__form {
    background: #ffffff;
    border: 1px solid var(--line-3);
    border-radius: 22px;
    padding: 34px 38px;
    box-shadow: 0 30px 80px -46px rgba(60, 44, 18, 0.4);
}
@media (max-width: 640px) { .booking__form { padding: 22px 18px; border-radius: 16px; } }
/* Stronger, clearer field affordances on the card. */
.booking__form .field > input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.booking__form .field > textarea,
.booking__form .field > select,
.booking__form .field-stepper,
.booking__form .datepicker__trigger,
.booking__form .timepicker__trigger { border-width: 1.5px; }
.booking__form .field__label { font-size: 10.5px; color: var(--gold-d); }
.booking__form .step-subtitle { color: var(--ink-2); }
.booking__form .chip { border-width: 1.5px; color: var(--ink-2); font-weight: 600; }
.wizard-progress { list-style: none; display: flex; align-items: center; gap: 10px; padding: 0; margin: 0 0 34px; }
.wizard-step-pill { display: flex; align-items: center; gap: 10px; color: var(--mute-3); }
.wizard-step-pill__num { width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--field-bd); display: grid; place-items: center; font-family: var(--f-mono); font-size: 11px; color: var(--mute-3); }
.wizard-step-pill__num::before { content: counter(pill); }
.wizard-progress { counter-reset: pill; }
.wizard-step-pill { counter-increment: pill; }
.wizard-step-pill__label { font-size: 13px; font-weight: 600; }
.wizard-step-pill.is-active { color: var(--ink-1); }
.wizard-step-pill.is-active .wizard-step-pill__num { border-color: var(--gold); background: var(--gold); color: var(--on-gold); }
.wizard-step-pill.is-complete .wizard-step-pill__num { border-color: var(--gold-d); background: rgba(200,155,74,.14); color: var(--gold-d); }
.wizard-progress__sep { flex: 1; height: 1px; background: var(--line-3); max-width: 60px; }
.wizard-step { display: none; border: 0; margin: 0; padding: 0; min-inline-size: auto; }
.wizard-step.is-active { display: block; animation: atFade .4s var(--ease) both; }
.wizard-step > legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wizard-step > header { margin-bottom: 22px; }
.step-title { font-family: var(--f-disp); font-weight: 700; font-size: 28px; color: var(--ink-1); margin: 0 0 6px; }
.step-subtitle { font-size: 14px; color: var(--mute); margin: 0; }
.wizard-step .field, .wizard-step .form__row { margin-bottom: 16px; }
.wizard-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 26px; }

/* Vehicle option cards */
.vehicle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.vehicle-option { position: relative; display: block; }
.vehicle-option input { position: absolute; opacity: 0; pointer-events: none; }
.vehicle-option__card { display: flex; gap: 14px; align-items: center; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-sm); padding: 16px; cursor: pointer; transition: border-color .25s ease, box-shadow .25s ease; }
.vehicle-option input:checked + .vehicle-option__card { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(200,155,74,.14); }
.vehicle-option input:focus-visible + .vehicle-option__card { outline: 2px solid var(--gold); outline-offset: 2px; }
.vehicle-option__img { width: 96px; height: 64px; flex: none; border-radius: 10px; overflow: hidden; background: var(--ink); position: relative; }
.vehicle-option__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vehicle-option__body h3 { font-size: 15px; margin: 0 0 4px; color: var(--ink-1); }
.vehicle-option__body p { font-size: 12.5px; color: var(--mute-2); margin: 0 0 8px; }
.vehicle-option__meta { display: flex; align-items: center; gap: 14px; font-family: var(--f-mono); font-size: 11px; color: var(--mute-3); }
.vehicle-option__meta span { display: inline-flex; align-items: center; gap: 5px; }
.vehicle-option__price { margin-left: auto; font-weight: 700; font-size: 12.5px; color: var(--gold-d); white-space: nowrap; }
.vehicle-option__price:empty::before { content: '…'; color: var(--mute-3); }
.vehicle-option__reason { font-size: 11.5px; line-height: 1.4; color: var(--error); margin: 8px 0 0; }
/* Disabled (ineligible for the current party) — stays visible, greyed, unselectable. */
.vehicle-option.is-disabled .vehicle-option__card { cursor: not-allowed; border-style: dashed; opacity: .6; filter: grayscale(0.65); }
.vehicle-option.is-disabled input:checked + .vehicle-option__card,
.vehicle-option.is-disabled .vehicle-option__card { border-color: var(--line); box-shadow: none; }
.vehicle-option.is-disabled .vehicle-option__price { color: var(--mute-3); }

/* Payment options + terms */
.pay-section { margin-top: 24px; }
.pay-section__head h3 { font-family: var(--f-disp); font-weight: 700; font-size: 20px; color: var(--ink-1); margin: 0 0 4px; }
.pay-options { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.pay-option { position: relative; display: block; }
.pay-option input { position: absolute; opacity: 0; pointer-events: none; }
.pay-option__card { display: flex; align-items: center; gap: 14px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-sm); padding: 15px 18px; cursor: pointer; transition: border-color .25s ease; }
.pay-option input:checked + .pay-option__card { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(200,155,74,.14); }
.pay-option.is-disabled .pay-option__card { opacity: .55; cursor: not-allowed; }
.pay-option__icon { width: 40px; height: 40px; border-radius: 10px; background: var(--field); display: grid; place-items: center; color: var(--gold-d); flex: none; }
.pay-option__body { flex: 1; }
.pay-option__title { font-weight: 700; font-size: 14.5px; color: var(--ink-1); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pay-option__badge { font-family: var(--f-mono); font-size: 8.5px; letter-spacing: .1em; text-transform: uppercase; background: rgba(200,155,74,.14); color: var(--gold-d); padding: 3px 7px; border-radius: 999px; }
.pay-option__badge--mute { background: rgba(0,0,0,.06); color: var(--mute-3); }
.pay-option__sub { margin: 3px 0 0; }
.pay-option__check { color: var(--gold); opacity: 0; flex: none; }
.pay-option input:checked + .pay-option__card .pay-option__check { opacity: 1; }
.terms-row { display: flex; align-items: flex-start; gap: 10px; margin-top: 20px; font-size: 13.5px; color: var(--mute); }
.terms-row input { margin-top: 3px; accent-color: var(--gold); }
.terms-row.is-invalid { color: var(--error); }
.terms-row.is-invalid input { outline: 2px solid var(--error); outline-offset: 2px; }
.terms-row.is-invalid a { color: var(--error); }
[data-terms-error] { display: block; margin-top: 6px; }
.booking__price-hint { margin-top: 20px; text-align: center; }

/* Review card (JS-rendered into #reviewBox) */
.review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; background: var(--field); border: 1px solid var(--field-bd); border-radius: var(--r-sm); padding: 20px; }
.review-card { display: flex; flex-direction: column; gap: 2px; }
.review-card__label { font-family: var(--f-mono); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-d); }
.review-card__value { font-size: 14px; color: var(--ink-1); font-weight: 600; }

/* Success page */
.success-mark { color: var(--success); width: 72px; height: 72px; margin: 0 auto; }
.success-mark svg { width: 100%; height: 100%; }
.success-ref { font-family: var(--f-mono); font-size: 13px; letter-spacing: .1em; color: var(--gold); margin-top: 12px; }
.kv { display: flex; flex-direction: column; gap: 0; margin: 0; }
.kv > div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px dashed var(--line-2); }
.kv dt { font-size: 12.5px; color: var(--mute); margin: 0; }
.kv dd { margin: 0; font-size: 14px; font-weight: 600; color: var(--ink-1); text-align: right; }
.next-steps { margin: 0 0 18px; padding-left: 18px; color: var(--ink-2); font-size: 14px; line-height: 1.7; }
.pay-box { background: var(--field); border: 1px solid var(--field-bd); border-radius: var(--r-xs); padding: 16px; margin-bottom: 16px; }
.pay-box__label { font-family: var(--f-mono); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-d); }
.pay-box__value { display: block; font-size: 16px; color: var(--ink-1); margin-top: 4px; }
.summary-total { display: flex; align-items: baseline; justify-content: space-between; border-top: 1px solid var(--line-2); margin-top: 18px; padding-top: 16px; }
.summary-total strong { font-family: var(--f-disp); font-size: 26px; color: var(--ink-1); }

/* Single article */
.article__hero { position: relative; background: var(--ink); overflow: hidden; }
.article__hero-inner { position: relative; z-index: 2; max-width: 820px; margin: 0 auto; padding: 130px var(--pad-x) 40px; text-align: center; }
.article__crumbs { margin-bottom: 14px; }
.article__crumbs .link { color: var(--gold); }
.article__hero .eyebrow { color: var(--gold); justify-content: center; }
.article__title { font-family: var(--f-disp); font-weight: 700; font-size: clamp(32px,4.6vw,58px); line-height: 1.05; color: #f7f2ea; margin: 12px 0 16px; }
.article__meta { font-family: var(--f-mono); font-size: 12px; letter-spacing: .06em; color: var(--on-dark-3); display: inline-flex; gap: 10px; }
.article__cover { max-width: 900px; margin: -40px auto 0; position: relative; z-index: 3; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-lift); }
.article__cover img { width: 100%; height: auto; display: block; }
.article__body { padding: 54px 0 20px; }
.article-share { max-width: 760px; margin: 0 auto; display: flex; align-items: center; gap: 16px; border-top: 1px solid var(--line-2); padding-top: 24px; }
.article-share__label { font-family: var(--f-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-d); }
.article-share__links { display: flex; gap: 8px; flex-wrap: wrap; }
.article-share__links a, .article-share__copy { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: var(--card); display: grid; place-items: center; color: var(--mute); cursor: pointer; text-decoration: none; transition: border-color .25s ease, color .25s ease; }
.article-share__links a:hover, .article-share__copy:hover { border-color: var(--gold); color: var(--gold-d); }
.article-share__copy.is-copied { border-color: var(--success); color: var(--success); }
.article__back { max-width: 760px; margin: 28px auto 0; }
.article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.article-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; box-shadow: 0 18px 44px -34px rgba(0,0,0,.4); }
.article-card__media { display: block; position: relative; height: 190px; background: var(--ink); }
.article-card__media img { width: 100%; height: 100%; object-fit: cover; }
.article-card__placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(200,155,74,.4); }
.article-card__body { padding: 20px 22px 22px; }
.article-card__meta { display: flex; align-items: center; gap: 10px; font-family: var(--f-mono); font-size: 10px; color: #a89c87; margin-bottom: 10px; }
.article-card__cat { color: var(--gold-d); }
.article-card__title { font-family: var(--f-disp); font-weight: 700; font-size: 20px; line-height: 1.15; margin: 0 0 10px; }
.article-card__title a { text-decoration: none; color: var(--ink-1); }
.article-card__excerpt { font-size: 13.5px; line-height: 1.6; color: var(--mute-2); margin: 0 0 14px; }

@media (max-width: 880px) {
    .grid--2, .grid--3, .grid--4, .form__row, .vehicle-grid, .review-grid { grid-template-columns: 1fr; }
    .article-grid { grid-template-columns: 1fr 1fr; }
    .wizard-step-pill__label { display: none; }
}
@media (max-width: 640px) {
    .article-grid { grid-template-columns: 1fr; }
    .grid--3, .grid--4 { grid-template-columns: 1fr; }
}

/* ── In-place booking modal ─────────────────────────────────────────── */
.book-modal { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.book-modal__backdrop { position: absolute; inset: 0; background: rgba(8,7,5,0.74); backdrop-filter: blur(3px); }
.book-modal__panel { position: relative; width: 100%; max-width: 920px; height: 92vh; max-height: 92vh; background: var(--ivory); border-radius: 20px; overflow: hidden; box-shadow: 0 40px 120px -30px rgba(0,0,0,0.6); }
.book-modal__frame { width: 100%; height: 100%; border: 0; display: block; background: var(--ivory); }
.book-modal__close { position: absolute; top: 12px; right: 14px; z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: none; background: rgba(20,17,14,0.62); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; display: grid; place-items: center; transition: background .2s ease; }
.book-modal__close:hover { background: var(--gold); color: var(--on-gold); }
@media (max-width: 640px) {
    .book-modal { padding: 0; }
    .book-modal__panel { height: 100dvh; max-height: 100dvh; border-radius: 0; max-width: none; }
}
/* Embedded wizard: no page hero above it, so tighten the top spacing. */
.booking-section--embed { padding-top: 24px; padding-bottom: 40px; }

/* Google Maps trip distance readout (booking) */
.trip-distance { margin: 12px 0 0; font-family: var(--f-mono); font-size: 12px; letter-spacing: .04em; color: var(--gold-d); }
