/*
 * Adanacar v4 — booking card (v2, end of file), step-by-step booking, voucher and lookup. Loaded by the booking pages
 * (head section) and by the booking card partial. Tokens: temel.css. Components in @layer custom.
 *  - instant price cards in the booking card: .ac-instant
 *  - booking band + progress: .ac-band, .ac-progress
 *  - page grid: .ac-flow; summary aside: .ac-sum; route map: .ac-routemap
 *  - class cards: .ac-vehs > .ac-veh; extras: .ac-extras > .ac-extra; quote form: .ac-quote
 *  - voucher ticket: .ac-voucher; tracking / lookup card: .ac-track; print page: .ac-print-page
 */
@layer custom {
  /* ---------------------------------------------------------- instant price cards (booking card) */
  .ac-instant { display: grid; gap: var(--ac-space-2); margin-top: var(--ac-space-3); }
  .ac-instant__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; font-size: 0.8125rem; color: var(--ac-muted); }
  .ac-instant__head b { color: var(--ac-ink); font-weight: 760; }
  .ac-instant__list { display: grid; gap: var(--ac-space-2); grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr)); }
  .ac-instant__card {
    position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0.15rem 0.75rem;
    padding: 0.75rem 0.85rem; border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius); background: var(--ac-surface-3);
    color: var(--ac-ink); font: inherit; text-align: start; cursor: pointer;
    transition: border-color var(--ac-dur-1) var(--ac-ease), box-shadow var(--ac-dur-2) var(--ac-ease), transform var(--ac-dur-1) var(--ac-ease);
  }
  .ac-instant__card:hover { border-color: var(--ac-gold); box-shadow: var(--ac-shadow-2); }
  .ac-instant__card:active { transform: scale(0.98); }
  .ac-instant__card:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-instant__card.is-best { border-color: var(--ac-gold); background: linear-gradient(90deg, var(--ac-gold-soft), var(--ac-surface-3) 70%); }
  .ac-instant__card[disabled] { opacity: 0.55; cursor: not-allowed; }
  .ac-instant__img { grid-column: 1 / -1; grid-row: 1; inline-size: 100%; max-inline-size: 11rem; block-size: auto; aspect-ratio: 408 / 158; object-fit: contain; }
  .ac-instant__name { font-weight: 780; font-size: 0.9375rem; }
  .ac-instant__specs { grid-column: 1; font-size: 0.75rem; color: var(--ac-muted); }
  .ac-instant__price { grid-row: 1 / span 2; grid-column: 2; display: grid; justify-items: end; }
  .ac-instant__card:has(.ac-instant__img) .ac-instant__price { grid-row: 2 / span 2; }
  .ac-instant__price b { font-size: 1.125rem; font-weight: 800; color: var(--ac-red); font-variant-numeric: tabular-nums; }
  .ac-instant__price small { font-size: 0.6875rem; font-weight: 700; color: var(--ac-gold-text); }
  .ac-instant__flag { position: absolute; top: -0.55rem; inset-inline-start: 0.75rem; padding: 0.05rem 0.4rem; border-radius: var(--ac-radius-sm); background: var(--ac-brand-ink); color: #D8BE8A; font-size: 0.5625rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
  .ac-instant__skeleton { block-size: 3.6rem; border-radius: var(--ac-radius); background: linear-gradient(90deg, var(--ac-surface-2), var(--ac-surface-3), var(--ac-surface-2)); background-size: 200% 100%; }
  @media (prefers-reduced-motion: no-preference) {
    .ac-instant__card { animation: ac-rz-in var(--ac-dur-2) var(--ac-ease-out) both; animation-delay: calc(var(--i, 0) * 60ms); }
    .ac-instant__skeleton { animation: ac-rz-shimmer 1.2s linear infinite; }
  }
  @keyframes ac-rz-in { from { opacity: 0; transform: translateY(6px); } }
  @keyframes ac-rz-shimmer { to { background-position: -200% 0; } }

  /* ---------------------------------------------------------- booking band */
  .ac-band { padding-block: var(--ac-space-4) var(--ac-space-5); background: var(--ac-band); color: var(--ac-ink); }
  .ac-band__trip { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ac-space-3) var(--ac-space-4); padding-bottom: var(--ac-space-4); border-bottom: 1px dashed var(--ac-line-strong); }
  .ac-band__back, .ac-band__edit { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--ac-gold-text); text-decoration: none; font-weight: 700; font-size: 0.875rem; }
  .ac-band__back { inline-size: 2.5rem; block-size: 2.5rem; justify-content: center; border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius); }
  .ac-band__back:hover, .ac-band__edit:hover { color: var(--ac-ink); }
  .ac-band__route { display: grid; grid-template-columns: auto auto auto; align-items: center; gap: 0.2rem 0.6rem; min-inline-size: 0; }
  .ac-band__route > b { font-size: 1.375rem; font-weight: 800; letter-spacing: 0.06em; }
  .ac-band__line { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--ac-gold-text); }
  .ac-band__line::before, .ac-band__line::after { content: ""; inline-size: 1.5rem; block-size: 1px; background: repeating-linear-gradient(90deg, var(--ac-gold) 0 4px, transparent 4px 8px); }
  .ac-band__names { grid-column: 1 / -1; font-size: 0.8125rem; color: var(--ac-muted); overflow-wrap: anywhere; }
  .ac-band__names .bi { margin-inline: 0.25rem; color: var(--ac-gold-text); }
  .ac-band__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; padding: 0; list-style: none; flex: 1 1 18rem; }
  .ac-band__chips li { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.3rem 0.6rem; border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius); font-size: 0.8125rem; font-weight: 650; }
  .ac-band__chips .bi, .ac-band__chips .is-gold { color: var(--ac-gold-text); }
  .ac-band__edit { margin-inline-start: auto; }

  .ac-progress { --n: 4; --cur: 0; position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); margin: var(--ac-space-4) 0 0; padding: 0; list-style: none; }
  .ac-progress::before, .ac-progress::after { content: ""; position: absolute; top: 1.05rem; inset-inline-start: calc(50% / var(--n)); block-size: 2px; background: var(--ac-line-strong); inline-size: calc(100% - 100% / var(--n)); }
  .ac-progress::after { background: var(--ac-gold); inline-size: calc((100% - 100% / var(--n)) * var(--cur) / max(1, var(--n) - 1)); transition: inline-size var(--ac-dur-3) var(--ac-ease); }
  .ac-progress li { position: relative; z-index: 1; display: grid; justify-items: center; gap: 0.35rem; text-align: center; }
  .ac-progress__dot { display: grid; place-items: center; inline-size: 2.2rem; block-size: 2.2rem; border-radius: 50%; border: 2px solid var(--ac-line-strong); background: var(--ac-band); color: var(--ac-muted); }
  .ac-progress__txt { display: grid; font-size: 0.75rem; font-weight: 700; color: var(--ac-muted); }
  .ac-progress__txt small { font-size: 0.625rem; letter-spacing: 0.12em; color: var(--ac-gold-text); }
  .ac-progress .is-done .ac-progress__dot { border-color: var(--ac-gold); background: var(--ac-gold); color: var(--ac-brand-ink); }
  .ac-progress .is-now .ac-progress__dot { border-color: var(--ac-brand-red); background: var(--ac-brand-red); color: #fff; box-shadow: 0 0 0 4px rgb(210 10 20 / 0.25); }
  .ac-progress .is-now .ac-progress__txt { color: var(--ac-ink); }
  @media (width < 576px) { .ac-progress__txt { font-size: 0.6875rem; } .ac-band__route > b { font-size: 1.125rem; } }

  /* ---------------------------------------------------------- page grid */
  .ac-flow { padding-block: var(--ac-space-6) var(--ac-section-tight, 4rem); }
  .ac-flow__grid { display: grid; gap: var(--ac-space-6); }
  @media (width >= 1024px) { .ac-flow__grid { grid-template-columns: minmax(0, 1fr) 22rem; align-items: start; } .ac-flow__aside { display: grid; gap: var(--ac-space-4); } }
  .ac-flow__main { display: grid; gap: var(--ac-space-4); min-inline-size: 0; }
  .ac-flow__head h1 { margin: 0 0 0.35rem; font-size: var(--ac-step-3); }
  .ac-flow__head p { margin: 0; color: var(--ac-ink-2); }
  .ac-flow__head--center { display: grid; justify-items: center; gap: 0.5rem; text-align: center; margin-bottom: var(--ac-space-5); }
  .ac-flow__actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--ac-space-3); margin-top: var(--ac-space-5); }
  .ac-flow__links { margin-top: var(--ac-space-5); text-align: center; font-size: 0.9375rem; color: var(--ac-muted); }
  @media (width < 576px) { .ac-flow__actions > * { flex: 1 1 100%; } }

  .ac-done { display: grid; place-items: center; inline-size: 3.5rem; block-size: 3.5rem; border-radius: 50%; background: var(--ac-gold-soft); border: 1px solid var(--ac-gold); color: var(--ac-gold-text); font-size: 1.75rem; }
  @media (prefers-reduced-motion: no-preference) { .ac-done { animation: ac-pop var(--ac-dur-3) var(--ac-ease-out); } }
  .ac-offline { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.8125rem; color: var(--ac-success); }

  /* ---------------------------------------------------------- forms */
  .ac-form-grid { display: grid; gap: var(--ac-space-3) var(--ac-space-4); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); margin-bottom: var(--ac-space-4); }
  .ac-form-grid > .ac-span-full { grid-column: 1 / -1; }
  .ac-form-card__title { display: flex; align-items: center; gap: 0.5rem; margin: var(--ac-space-4) 0 var(--ac-space-3); font-size: 1rem; font-weight: 780; }
  .ac-form-card__title:first-of-type { margin-top: 0; }
  .ac-form-card__title .bi { color: var(--ac-gold-text); }
  .ac-form-card__note, .ac-form-hint { display: flex; gap: 0.4rem; margin: 0 0 var(--ac-space-3); font-size: 0.8125rem; color: var(--ac-muted); align-self: end; }
  .ac-form-card__note .bi, .ac-form-hint .bi { color: var(--ac-gold-text); }
  .ac-pay { margin: 0 0 var(--ac-space-4); padding: 0; border: 0; display: grid; gap: var(--ac-space-2); }
  .ac-pay__opt { display: flex; gap: 0.75rem; align-items: start; padding: 0.75rem 0.9rem; border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius); cursor: pointer; }
  .ac-pay__opt:has(input:checked) { border-color: var(--ac-gold); background: var(--ac-gold-soft); }
  .ac-pay__opt span { display: grid; } .ac-pay__opt small { color: var(--ac-muted); }
  .ac-consent { display: grid; gap: var(--ac-space-2); padding-top: var(--ac-space-4); border-top: 1px dashed var(--ac-line-strong); }
  .ac-contract summary { cursor: pointer; font-weight: 700; color: var(--ac-red); }
  .ac-contract .ac-prose { max-block-size: 18rem; overflow: auto; padding: var(--ac-space-3); border: 1px solid var(--ac-line); border-radius: var(--ac-radius); font-size: 0.875rem; }
  .ac-quote { border: 1px solid var(--ac-line); border-radius: var(--ac-radius-lg); background: var(--ac-surface-2); }
  .ac-quote > summary { display: flex; align-items: center; gap: 0.5rem; padding: var(--ac-space-4); cursor: pointer; font-weight: 780; }
  .ac-quote > summary .bi { color: var(--ac-gold-text); }
  .ac-quote > .ac-form-card { margin: 0 var(--ac-space-3) var(--ac-space-3); }

  /* ---------------------------------------------------------- route map */
  .ac-routemap { margin: 0; overflow: hidden; border: 1px solid var(--ac-line); border-radius: var(--ac-radius-lg); background: var(--ac-band); color-scheme: dark; }
  .ac-routemap__svg { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 1000 / 440; }
  .ac-routemap__land { fill: #1E1E24; stroke: rgb(216 190 138 / 0.35); stroke-width: 0.8; }
  .ac-routemap__lake { fill: #0B0B0D; }
  .ac-routemap__dot { fill: #D8BE8A; opacity: 0.2; }
  .ac-routemap__sea { fill: rgb(216 190 138 / 0.45); font-style: italic; letter-spacing: 0.08em; }
  .ac-routemap__shadow { fill: none; stroke: rgb(210 10 20 / 0.25); stroke-linecap: round; }
  .ac-routemap__arc { fill: none; stroke: #FF6970; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
  .ac-routemap__car { fill: #fff; }
  .ac-routemap__halo { fill: rgb(216 190 138 / 0.18); }
  .ac-routemap__core { fill: #D8BE8A; stroke: #111114; stroke-width: 0.6; }
  .ac-routemap__pin--b .ac-routemap__core { fill: #FF6970; }
  .ac-routemap__label { fill: #EDEDF0; font-weight: 750; paint-order: stroke; stroke: #111114; stroke-width: 2px; stroke-linejoin: round; }
  .ac-routemap__facts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ac-space-2) var(--ac-space-5); padding: var(--ac-space-3) var(--ac-space-4); border-top: 1px solid rgb(255 255 255 / 0.08); color: #EDEDF0; }
  .ac-routemap__facts > span:not(.ac-routemap__note) { display: inline-grid; grid-template-columns: auto auto; column-gap: 0.45rem; align-items: baseline; }
  .ac-routemap__facts .bi { grid-row: 1 / span 2; color: #D8BE8A; font-size: 1.1rem; }
  .ac-routemap__facts b { font-size: 1.0625rem; font-weight: 800; }
  .ac-routemap__facts small { font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: #D8BE8A; }
  .ac-routemap__note { flex: 1 1 14rem; font-size: 0.75rem; color: #A3A3AD; }
  @media (prefers-reduced-motion: no-preference) {
    .ac-routemap__arc { stroke-dashoffset: 1; animation: ac-rz-draw 1.4s var(--ac-ease-out) 0.2s forwards; }
  }
  @media (prefers-reduced-motion: reduce) { .ac-routemap__car { display: none; } }
  @keyframes ac-rz-draw { to { stroke-dashoffset: 0; } }

  /* ---------------------------------------------------------- summary aside */
  .ac-sum { display: grid; gap: var(--ac-space-3); padding: var(--ac-space-5); border: 1px solid var(--ac-line); border-top: 3px solid var(--ac-brand-red); border-radius: var(--ac-radius-lg); background: var(--ac-surface-3); box-shadow: var(--ac-shadow-1); }
  .ac-sum__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
  .ac-sum__title { margin: 0; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ac-gold-text); }
  .ac-sum__head a { font-size: 0.8125rem; font-weight: 700; text-decoration: none; }
  .ac-sum__head a .bi { margin-inline-end: 0.25rem; }
  .ac-sum__route { position: relative; display: grid; gap: var(--ac-space-3); margin: 0; padding: 0 0 0 1.4rem; list-style: none; }
  .ac-sum__route::before { content: ""; position: absolute; inset-block: 0.55rem 0.55rem; inset-inline-start: 0.35rem; border-inline-start: 2px dashed var(--ac-gold); }
  .ac-sum__route li { position: relative; display: grid; }
  .ac-sum__route li::before { content: ""; position: absolute; inset-inline-start: -1.32rem; top: 0.35rem; inline-size: 0.6rem; block-size: 0.6rem; border-radius: 50%; background: var(--ac-gold); }
  .ac-sum__route li:last-child::before { background: var(--ac-brand-red); }
  .ac-sum__route small, .ac-sum__grid dt, .ac-sum__k, .ac-sum__veh small { font-size: 0.6875rem; font-weight: 750; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-muted); }
  .ac-sum__route b { font-weight: 780; overflow-wrap: anywhere; }
  .ac-sum__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ac-space-2) var(--ac-space-3); margin: 0; padding-block: var(--ac-space-3); border-block: 1px solid var(--ac-line); }
  .ac-sum__grid dd { margin: 0; font-weight: 750; }
  .ac-sum__grid .is-wide { grid-column: 1 / -1; }
  .ac-sum__grid .is-gold { color: var(--ac-gold-text); }
  .ac-sum__veh { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0.75rem; }
  .ac-sum__veh > span:nth-child(2) { display: grid; }
  .ac-sum__veh-ic { display: grid; place-items: center; inline-size: 2.5rem; block-size: 2.5rem; border-radius: var(--ac-radius); background: var(--ac-surface-2); color: var(--ac-gold-text); }
  .ac-sum__amount { font-weight: 780; font-variant-numeric: tabular-nums; }
  .ac-sum__hint { display: flex; gap: 0.4rem; margin: 0; font-size: 0.8125rem; color: var(--ac-muted); }
  .ac-sum__extras ul { display: grid; gap: 0.25rem; margin: 0.35rem 0 0; padding: 0; list-style: none; font-size: 0.875rem; }
  .ac-sum__extras li { display: flex; justify-content: space-between; gap: 1rem; }
  .ac-sum__extras em { font-style: normal; color: var(--ac-muted); }
  .ac-sum__total { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-top: var(--ac-space-3); border-top: 1px dashed var(--ac-line-strong); }
  .ac-sum__total span { display: grid; font-weight: 780; }
  .ac-sum__total small { font-size: 0.6875rem; font-weight: 650; color: var(--ac-muted); }
  .ac-sum__total b { font-size: 1.625rem; font-weight: 800; color: var(--ac-red); font-variant-numeric: tabular-nums; }
  .ac-sum__trust { display: flex; flex-wrap: wrap; gap: 0.35rem 0.9rem; margin: 0; padding: 0; list-style: none; font-size: 0.8125rem; color: var(--ac-muted); }
  .ac-sum__trust .bi { margin-inline-end: 0.3rem; color: var(--ac-gold-text); }
  .ac-sum__trust a { color: inherit; text-decoration: none; font-weight: 700; }

  /* ---------------------------------------------------------- class cards */
  .ac-vehs { display: grid; gap: var(--ac-space-4); margin: 0; padding: 0; list-style: none; }
  .ac-veh {
    position: relative; display: grid; grid-template-columns: 9rem minmax(0, 1fr) 12rem; align-items: stretch;
    border: 1px solid var(--ac-line); border-radius: var(--ac-radius-lg); background: var(--ac-surface-3); overflow: hidden;
    transition: border-color var(--ac-dur-2) var(--ac-ease), box-shadow var(--ac-dur-2) var(--ac-ease), transform var(--ac-dur-2) var(--ac-ease);
  }
  .ac-veh:hover { border-color: rgb(201 169 106 / 0.75); box-shadow: var(--ac-shadow-2); }
  .ac-veh.is-best { border-color: var(--ac-gold); }
  .ac-veh.is-off { opacity: 0.7; }
  .ac-veh__flag { position: absolute; z-index: 1; top: 0.6rem; inset-inline-start: 0.6rem; padding: 0.1rem 0.45rem; border-radius: var(--ac-radius-sm); background: var(--ac-brand-ink); color: #D8BE8A; font-size: 0.625rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
  .ac-veh__flag--alt { background: var(--ac-gold); color: var(--ac-brand-ink); }
  .ac-veh__stage { display: grid; place-items: center; background: var(--ac-surface-2); color: var(--ac-gold-text); font-size: 2.75rem; }
  .ac-veh__stage img { inline-size: 100%; block-size: auto; max-block-size: 100%; padding: 0.5rem; object-fit: contain; }
  .ac-veh__body { display: grid; align-content: center; gap: 0.5rem; padding: var(--ac-space-4); }
  .ac-veh__name { margin: 0; font-size: 1.125rem; font-weight: 800; }
  .ac-veh__cap { display: grid; gap: 0.3rem; margin: 0; padding: 0; list-style: none; font-size: 0.8125rem; color: var(--ac-ink-2); }
  .ac-veh__cap li { display: grid; grid-template-columns: 1.1rem 5rem minmax(0, 8rem); align-items: center; gap: 0.4rem; }
  .ac-veh__cap .bi { color: var(--ac-gold-text); }
  .ac-meter { block-size: 4px; border-radius: 2px; background: var(--ac-surface-2); overflow: hidden; }
  .ac-meter > span { display: block; block-size: 100%; background: var(--ac-gold); }
  .ac-veh__models { margin: 0; font-size: 0.75rem; color: var(--ac-ink-2); }
  .ac-veh__incl { display: flex; flex-wrap: wrap; gap: 0.25rem 0.9rem; margin: 0; font-size: 0.75rem; color: var(--ac-muted); }
  .ac-veh__incl .bi { margin-inline-end: 0.25rem; color: var(--ac-gold-text); }
  .ac-veh__side { display: grid; align-content: center; justify-items: end; gap: 0.15rem; padding: var(--ac-space-4); border-inline-start: 1px dashed var(--ac-line-strong); text-align: end; }
  .ac-veh__k { font-size: 0.6875rem; font-weight: 750; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-gold-text); }
  .ac-veh__price { font-size: 1.625rem; font-weight: 800; color: var(--ac-red); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
  .ac-veh__price.is-quote { font-size: 1.125rem; color: var(--ac-ink); }
  .ac-veh__note { font-size: 0.75rem; color: var(--ac-muted); }
  .ac-veh__go {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; margin-top: 0.5rem; padding: 0.6rem 1.1rem; min-block-size: 2.75rem;
    border-radius: var(--ac-radius); background: var(--ac-brand-red); color: #fff; font-weight: 750; text-decoration: none;
  }
  .ac-veh__go:hover { background: var(--ac-brand-red-strong); color: #fff; }
  .ac-veh__go.is-dark { background: var(--ac-brand-ink); color: #fff; }
  .ac-veh__go .bi-arrow-right { transition: transform var(--ac-dur-1) var(--ac-ease); }
  .ac-veh__go:hover .bi-arrow-right { transform: translateX(3px); }
  /* the whole card is clickable through the button's link */
  .ac-veh:has(.ac-veh__go[href^="http"]) { cursor: pointer; }
  @media (prefers-reduced-motion: no-preference) { .ac-veh:hover { transform: translateY(-2px); } }
  @media (width < 720px) {
    .ac-veh { grid-template-columns: 5.5rem minmax(0, 1fr); }
    .ac-veh__stage { font-size: 2rem; }
    .ac-veh__side { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; justify-items: start; align-items: center; border-inline-start: 0; border-top: 1px dashed var(--ac-line-strong); text-align: start; }
    .ac-veh__go { grid-column: 2; grid-row: 1 / span 3; margin: 0; }
    .ac-veh__cap li { grid-template-columns: 1.1rem 4.5rem minmax(0, 1fr); }
  }

  /* ---------------------------------------------------------- extras */
  .ac-extras { display: grid; gap: var(--ac-space-3); margin: 0; padding: 0; list-style: none; }
  .ac-extra { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: var(--ac-space-3); padding: var(--ac-space-4); border: 1px solid var(--ac-line); border-radius: var(--ac-radius-lg); background: var(--ac-surface-3); }
  .ac-extra:has(input:checked), .ac-extra.is-on { border-color: var(--ac-gold); background: linear-gradient(90deg, var(--ac-gold-soft), var(--ac-surface-3) 60%); }
  .ac-extra__ic { display: grid; place-items: center; inline-size: 2.5rem; block-size: 2.5rem; border-radius: var(--ac-radius); background: var(--ac-surface-2); color: var(--ac-gold-text); }
  .ac-extra__body { display: grid; min-inline-size: 0; }
  .ac-extra__name { font-weight: 780; cursor: pointer; }
  .ac-extra__body small { color: var(--ac-muted); }
  .ac-extra__price { font-weight: 800; color: var(--ac-red); white-space: nowrap; }
  .ac-extra__price small { font-weight: 600; color: var(--ac-muted); }
  .ac-extra__ctl.ac-stepper { inline-size: 8.5rem; }
  .ac-extra__ctl.form-field { margin: 0; }
  @media (width < 576px) { .ac-extra { grid-template-columns: auto minmax(0, 1fr) auto; } .ac-extra__price { grid-column: 2; } .ac-extra__ctl { grid-column: 3; grid-row: 1 / span 2; } }

  /* ---------------------------------------------------------- voucher */
  .ac-flow--voucher .container { max-inline-size: 64rem; }
  .ac-voucher { display: grid; gap: 0; border-radius: var(--ac-radius-lg); box-shadow: var(--ac-shadow-3, var(--ac-shadow-2)); overflow: hidden; border: 1px solid var(--ac-line); background: var(--ac-surface-3); }
  .ac-voucher__ticket { display: grid; grid-template-columns: minmax(0, 1fr) 15rem; background: #111114; color: #EDEDF0; color-scheme: dark; }
  .ac-voucher__main { display: grid; gap: var(--ac-space-4); padding: var(--ac-space-5); border-inline-start: 4px solid var(--ac-brand-red); }
  .ac-voucher__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ac-space-3); }
  .ac-voucher__brand img { block-size: 2.25rem; inline-size: auto; }
  .ac-voucher__brand .ac-logo__acik { display: none; }
  .ac-voucher__brand .ac-logo__koyu { display: block; }
  .ac-voucher__kind { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: #D8BE8A; }
  .ac-voucher__status { display: inline-flex; align-items: center; gap: 0.4rem; margin-inline-start: auto; padding: 0.25rem 0.6rem; border-radius: var(--ac-radius); font-size: 0.75rem; font-weight: 780; background: rgb(216 190 138 / 0.15); color: #D8BE8A; }
  .ac-voucher__status > span { inline-size: 0.5rem; block-size: 0.5rem; border-radius: 50%; background: currentColor; }
  .ac-voucher__status.is-onay, .ac-voucher__status.is-tamam { background: rgb(91 203 134 / 0.15); color: #5BCB86; }
  .ac-voucher__status.is-iptal { background: rgb(255 105 112 / 0.15); color: #FF8C91; }
  .ac-voucher__route { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: var(--ac-space-3); }
  .ac-voucher__pt { display: grid; min-inline-size: 0; }
  .ac-voucher__pt.is-to { text-align: end; }
  .ac-voucher__abbr { font-size: clamp(1.75rem, 5vw, 2.75rem); font-weight: 800; letter-spacing: 0.04em; line-height: 1; }
  .ac-voucher__pt b { font-weight: 750; overflow-wrap: anywhere; }
  .ac-voucher__pt small, .ac-voucher__grid dt, .ac-voucher__k { font-size: 0.625rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: #D8BE8A; }
  .ac-voucher__path { display: flex; align-items: center; gap: 0.4rem; color: #D8BE8A; }
  .ac-voucher__path span { inline-size: clamp(1.25rem, 5vw, 4rem); block-size: 1px; background: repeating-linear-gradient(90deg, #C9A96A 0 4px, transparent 4px 8px); }
  .ac-voucher__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: var(--ac-space-3); margin: 0; padding-top: var(--ac-space-4); border-top: 1px dashed rgb(255 255 255 / 0.2); }
  .ac-voucher__grid dd { margin: 0; font-weight: 750; }
  .ac-voucher__grid dd small { color: #A3A3AD; font-weight: 600; }
  .ac-voucher__grid .is-big { font-size: 1.5rem; font-weight: 800; color: #FF6970; }
  .ac-voucher__grid .is-wide { grid-column: span 2; }
  .ac-voucher__contact { display: flex; flex-wrap: wrap; gap: 0.35rem 1.2rem; margin: 0; font-size: 0.8125rem; color: #C8C8D0; }
  .ac-voucher__contact .bi { margin-inline-end: 0.35rem; color: #D8BE8A; }
  .ac-voucher__stub { position: relative; display: grid; justify-items: center; align-content: center; gap: 0.5rem; padding: var(--ac-space-5) var(--ac-space-4); background: #1B1B20; border-inline-start: 2px dashed rgb(255 255 255 / 0.25); text-align: center; }
  .ac-voucher__stub::before, .ac-voucher__stub::after { content: ""; position: absolute; inset-inline-start: -0.8rem; inline-size: 1.5rem; block-size: 1.5rem; border-radius: 50%; background: var(--ac-surface); }
  .ac-voucher__stub::before { top: -0.75rem; } .ac-voucher__stub::after { bottom: -0.75rem; }
  .ac-voucher__qr { display: grid; place-items: center; inline-size: 9.5rem; block-size: 9.5rem; padding: 0.5rem; border-radius: var(--ac-radius); background: #fff; }
  .ac-voucher__qr img, .ac-voucher__qr canvas { inline-size: 100% !important; block-size: auto !important; }
  .ac-voucher__code { font-size: 1.125rem; font-weight: 800; letter-spacing: 0.08em; font-variant-numeric: tabular-nums; }
  .ac-voucher__barcode { inline-size: 100%; max-inline-size: 10rem; block-size: 1.5rem; background: repeating-linear-gradient(90deg, #EDEDF0 0 2px, transparent 2px 4px, #EDEDF0 4px 5px, transparent 5px 8px); opacity: 0.6; }
  .ac-voucher__details { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: var(--ac-space-5); padding: var(--ac-space-5); }
  .ac-voucher__sec h2 { margin: 0 0 var(--ac-space-2); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ac-gold-text); }
  .ac-voucher__sec.is-wide { grid-column: 1 / -1; }
  .ac-voucher__sum > div { display: flex; justify-content: space-between; gap: 1rem; padding-block: 0.25rem; }
  .ac-voucher__sum .is-total { margin-top: 0.25rem; padding-top: 0.5rem; border-top: 1px dashed var(--ac-line-strong); font-weight: 800; font-size: 1.125rem; }
  .ac-voucher__sum .is-total span:last-child { color: var(--ac-red); }
  .ac-voucher__pay, .ac-voucher__muted { margin: 0.4rem 0 0; color: var(--ac-muted); font-size: 0.875rem; }
  .ac-voucher__list, .ac-voucher__guests { display: grid; gap: 0.3rem; margin: 0; padding: 0; list-style: none; }
  .ac-voucher__list .bi { margin-inline-end: 0.4rem; color: var(--ac-success); }
  .ac-voucher__guests { grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); list-style: decimal inside; }
  .ac-voucher__foot { display: flex; gap: 0.5rem; padding: var(--ac-space-3) var(--ac-space-5); background: var(--ac-surface-2); font-size: 0.8125rem; color: var(--ac-ink-2); }
  .ac-voucher__foot p { margin: 0; } .ac-voucher__foot .bi { color: var(--ac-gold-text); }
  .ac-voucher-tools { margin-top: var(--ac-space-5); }
  .ac-voucher-more { display: grid; gap: var(--ac-space-4); margin-top: var(--ac-space-5); }
  @media (width < 720px) {
    .ac-voucher__ticket { grid-template-columns: minmax(0, 1fr); }
    .ac-voucher__main { padding: var(--ac-space-4); }
    .ac-voucher__stub { border-inline-start: 0; border-top: 2px dashed rgb(255 255 255 / 0.25); grid-template-columns: auto minmax(0, 1fr); justify-items: start; text-align: start; column-gap: var(--ac-space-4); }
    .ac-voucher__stub::before, .ac-voucher__stub::after { top: -0.8rem; bottom: auto; inset-inline-start: auto; }
    .ac-voucher__stub::before { inset-inline-start: -0.75rem; } .ac-voucher__stub::after { inset-inline-end: -0.75rem; }
    .ac-voucher__qr { grid-row: 1 / span 4; inline-size: 7.5rem; block-size: 7.5rem; }
    .ac-voucher__barcode { display: none; }
    .ac-voucher__grid .is-wide { grid-column: 1 / -1; }
  }

  /* ---------------------------------------------------------- tracking / lookup card */
  .ac-track { border: 1px solid var(--ac-line); border-radius: var(--ac-radius-lg); background: var(--ac-surface-3); overflow: hidden; box-shadow: var(--ac-shadow-1); }
  .ac-track__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--ac-space-3); padding: var(--ac-space-4) var(--ac-space-5); background: var(--ac-band); }
  .ac-track__head > span:first-child { display: grid; }
  .ac-track__head small { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ac-gold-text); }
  .ac-track__head b { font-size: 1.375rem; font-weight: 800; letter-spacing: 0.06em; color: var(--ac-ink); }
  .ac-track__rows { margin: 0; padding: var(--ac-space-3) var(--ac-space-5); }
  .ac-track__rows > div { display: flex; justify-content: space-between; gap: 1rem; padding-block: 0.6rem; border-bottom: 1px solid var(--ac-line); }
  .ac-track__rows > div:last-child { border-bottom: 0; }
  .ac-track__rows dt { color: var(--ac-muted); font-weight: 600; }
  .ac-track__rows dd { margin: 0; font-weight: 750; text-align: end; overflow-wrap: anywhere; }
  .ac-track__note { margin: 0; padding: 0 var(--ac-space-5) var(--ac-space-4); color: var(--ac-ink-2); }
  .ac-track__note p { margin: 0.25rem 0 0; white-space: pre-line; }
  .ac-track__note small { font-weight: 700; color: var(--ac-muted); }
  .ac-track__actions { display: flex; flex-wrap: wrap; gap: var(--ac-space-3); padding: 0 var(--ac-space-5) var(--ac-space-5); }
  .ac-track__actions form { margin: 0; }

  /* ---------------------------------------------------------- printable voucher */
  .ac-print-page { background: #fff; color: #111114; padding-block: var(--ac-space-5); }
  .ac-print-page__bar { display: flex; gap: var(--ac-space-4); align-items: center; }
}

@media print {
  @page { size: A4; margin: 12mm; }
  .ac-print-page__bar, .ac-voucher-tools, .ac-voucher-more, .ac-flow__links, .ac-offline, .ac-done { display: none !important; }
  .ac-print-page { padding: 0; }
  .ac-voucher { box-shadow: none !important; border-color: #8E8E96 !important; break-inside: avoid; }
  .ac-voucher__ticket { background: #fff !important; color: #111114 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .ac-voucher__stub { background: #F5F5F6 !important; border-color: #8E8E96 !important; }
  .ac-voucher__brand .ac-logo__acik { display: block !important; }
  .ac-voucher__brand .ac-logo__koyu { display: none !important; }
  .ac-voucher__kind, .ac-voucher__pt small, .ac-voucher__grid dt, .ac-voucher__k { color: #7D5F28 !important; }
  .ac-voucher__grid dd small, .ac-voucher__contact { color: #3A3A42 !important; }
  .ac-voucher__grid .is-big { color: #A3070F !important; }
  .ac-voucher__barcode { background: repeating-linear-gradient(90deg, #111114 0 2px, transparent 2px 4px, #111114 4px 5px, transparent 5px 8px) !important; }
}

/*
 * Booking card v2 ("biniş kartı", ecrin's booking form): .ac-bk on top of .ac-booking (bilesenler.css).
 * Head trip toggle .ac-trip, wide layout .ac-bk__main, return block, flight hint, chips, perforation,
 * trust foot + WhatsApp, and the vendor widgets (TomSelect .ts-*, flatpickr .flatpickr-*) themed with
 * the v4 tokens. Vendor CSS sits in Bootstrap's `components` layer (partials/rezervasyon_varliklar),
 * so these `custom` rules win. Light/dark: tokens only (light-dark()), text pairs >= 4.5:1.
 */
@layer custom {
  .ac-bk__head { flex-wrap: wrap; row-gap: var(--ac-space-2); }

  /* ---------------------------------------------------------- body layout */
  .ac-bk .ac-route-picker { margin-bottom: var(--ac-space-3); }
  .ac-route-picker__err { grid-column: 1 / -1; }
  .ac-route-picker__err:empty { display: none; }
  .ac-bk .ac-swap { inline-size: 2.75rem; block-size: 2.75rem; }
  @media (prefers-reduced-motion: no-preference) {
    .ac-swap.is-donuyor .bi { animation: ac-bk-spin var(--ac-dur-3) var(--ac-ease-out); }
  }
  @keyframes ac-bk-spin { from { transform: rotate(-180deg); } }
  @container booking (width >= 30rem) {
    .ac-bk .ac-route-picker .ac-swap { margin-bottom: 0.15rem; }
  }
  /* Transfer keeps route and date / time / passengers on two rows at every width (side by side the
     steppers got too narrow to read). The Şoförlü tab puts the service point beside its three
     date / time fields once there is room. */
  @container booking (width >= 62rem) {
    .ac-bk form[data-kiralama-form] .ac-bk__main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: var(--ac-space-3); align-items: start; }
  }

  /* ---------------------------------------------------------- one control family (user, 2026-10-29: "inputlar okunmuyor")
     Every field of the card — native inputs, flatpickr's visible alt input, TomSelect's control and the
     steppers — shares one height (--ac-ctl-h, 52px), radius, 1px border (--ac-line-strong, >= 3:1 in light
     and dark), leading icon slot (1rem + 2.75rem text inset), 16px / 600 values, 14px labels in full ink
     and the same focus: red border + soft ring, plus the global outline for keyboard focus. */
  .ac-bk { --ac-ctl-h: 3.25rem; --ac-ctl-inset: 2.75rem; }
  .ac-bk .form-label { margin-bottom: 0.4rem; font-size: 0.875rem; font-weight: 750; color: var(--ac-ink); line-height: 1.3; }
  .ac-bk .form-label .ac-opt { font-weight: 550; color: var(--ac-muted); }
  .ac-bk .form-control:not(.ts-wrapper), .ac-bk .ts-control {
    --bs-control-min-height: var(--ac-ctl-h);
    min-block-size: var(--ac-ctl-h); border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius);
    background-color: var(--ac-surface-3); color: var(--ac-ink); font-size: 1rem; font-weight: 600; line-height: 1.35;
  }
  .ac-bk .form-control::placeholder, .ac-bk .ts-control > input::placeholder { color: var(--ac-muted); font-weight: 500; opacity: 1; }
  .ac-bk .ac-field > .form-control:not(.ts-wrapper), .ac-bk .ac-field .ts-control { padding-inline-start: var(--ac-ctl-inset); }
  .ac-bk .ac-field > .bi { inset-inline-start: 1rem; font-size: 1.05rem; color: var(--ac-gold-text); }
  .ac-bk .form-control:not(.ts-wrapper):hover:not(:focus, :disabled), .ac-bk .ts-wrapper:not(.focus):hover .ts-control { border-color: var(--ac-ink-2); }
  .ac-bk .form-control:not(.ts-wrapper):focus, .ac-bk .ts-wrapper.focus .ts-control {
    border-color: var(--ac-red); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ac-red) 22%, transparent); outline: 0;
  }
  .ac-bk .form-control:focus-visible, .ac-bk .ts-wrapper:has(.ts-control > input:focus-visible) .ts-control { outline: 2px solid var(--ac-focus); outline-offset: 1px; }
  .ac-bk .flatpickr-input[readonly], .ac-bk input.form-control.input { cursor: pointer; }

  /* steppers: same height and border, 44px buttons, a value that reads at a glance */
  .ac-bk .ac-stepper { grid-template-columns: 2.75rem minmax(3rem, 1fr) 2.75rem; min-block-size: var(--ac-ctl-h); }
  .ac-bk .ac-stepper .form-control { padding-inline: 0.25rem; font-size: 1.0625rem; font-weight: 760; border-radius: 0; }
  .ac-bk .ac-stepper button { min-block-size: var(--ac-ctl-h); border-color: var(--ac-line-strong); background: var(--ac-surface-2); color: var(--ac-ink); }
  .ac-bk .ac-stepper button:hover:not(:disabled) { background: var(--ac-gold-soft); }
  .ac-bk .ac-stepper button:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: -2px; z-index: 1; }
  .ac-bk .ac-booking__submit .btn-solid { min-block-size: var(--ac-ctl-h); }
  .ac-bk .invalid-feedback { font-size: 0.875rem; }
  .ac-bk .ac-nokta__geri { inline-size: 2.75rem; }
  .ac-bk .ac-nokta__geri:focus-visible, .ac-bk .ac-swap:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }

  /* return block: shown by the head radio, also without JS (:has) */
  .ac-bk__return { display: none; }
  .ac-bk:has(input[data-donus][value="1"]:checked) .ac-bk__return, .ac-bk.is-donus .ac-bk__return { display: block; }
  @supports not selector(:has(a)) { .ac-bk__return { display: block; } }
  .ac-bk__return-tag { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.5rem; margin: 0 0 var(--ac-space-3); font-size: 0.875rem; }
  .ac-bk__return-tag .bi { color: var(--ac-gold-text); }
  .ac-bk__return-tag span { color: var(--ac-muted); font-size: 0.8125rem; }

  /* flight number + hints */
  .ac-bk__flight { margin-top: var(--ac-space-3); }
  .ac-bk__flight[hidden] { display: none; }
  .ac-bk__hint { display: flex; gap: 0.4rem; margin: 0.4rem 0 0; font-size: 0.8125rem; line-height: 1.45; color: var(--ac-muted); }
  .ac-bk__hint .bi { color: var(--ac-gold-text); flex: none; margin-top: 0.1rem; }
  .ac-bk__hint--warn {
    margin-top: var(--ac-space-2); padding: 0.55rem 0.75rem; border: 1px solid rgb(201 169 106 / 0.6); border-radius: var(--ac-radius);
    background: var(--ac-gold-soft); color: var(--ac-ink);
  }
  .ac-bk__hint--warn[hidden] { display: none; }
  @media (prefers-reduced-motion: no-preference) {
    .is-giris { animation: ac-rz-in var(--ac-dur-2) var(--ac-ease-out); }
  }

  /* price box: loading state + instant cards */
  .ac-pricebox[data-durum="yukleniyor"] { color: var(--ac-muted); }
  .ac-pricebox .spinner-border { margin-inline-end: 0.5rem; vertical-align: -0.15em; }
  .ac-bk .ac-instant__card { min-block-size: 3.6rem; }
  .ac-bk .ac-instant__card[disabled] { opacity: 1; border-style: dashed; background: var(--ac-surface-2); }
  .ac-bk .ac-instant__card[disabled] .ac-instant__img { filter: grayscale(1); opacity: 0.6; }
  .ac-bk .ac-instant__card[disabled] .ac-instant__price b { color: var(--ac-ink-2); }
  .ac-bk .ac-instant__card[disabled] .ac-instant__price small { color: var(--ac-muted); }
  @media (prefers-reduced-motion: no-preference) {
    .ac-bk .ac-instant__card:not([disabled]):hover { transform: translateY(-2px); }
  }

  /* popular routes + last search */
  .ac-bk__chips { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ac-space-2); margin-top: var(--ac-space-4); }
  .ac-bk__chips[hidden] { display: none; }
  .ac-bk__chips-lbl { display: inline-flex; align-items: center; gap: 0.35rem; font-size: var(--ac-step--2); font-weight: 780; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-gold-text); }
  .ac-bk__chip-list { display: flex; flex-wrap: wrap; gap: var(--ac-space-2); margin: 0; padding: 0; list-style: none; min-inline-size: 0; }
  .ac-bk__chip {
    display: inline-flex; align-items: center; gap: 0.35rem; min-block-size: 2.75rem; max-inline-size: 100%; padding: 0.35rem 0.8rem;
    border: 1px solid var(--ac-line-strong); border-radius: 999px; background: var(--ac-surface-3); color: var(--ac-ink);
    font: inherit; font-size: 0.8125rem; font-weight: 680; text-align: start; cursor: pointer; overflow-wrap: anywhere;
    transition: border-color var(--ac-dur-1) var(--ac-ease), background-color var(--ac-dur-1) var(--ac-ease);
  }
  .ac-bk__chip .bi { color: var(--ac-gold-text); }
  .ac-bk__chip:hover { border-color: var(--ac-gold); background: var(--ac-gold-soft); }
  .ac-bk__chip:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-bk__chip--son { border-style: dashed; }

  /* ---------------------------------------------------------- perforation + trust foot */
  .ac-bk__perf { position: relative; block-size: 1px; margin-inline: var(--ac-space-4); background: repeating-linear-gradient(90deg, var(--ac-line-strong) 0 6px, transparent 6px 12px); }
  .ac-bk__perf::before, .ac-bk__perf::after {
    content: ""; position: absolute; top: -0.6rem; inline-size: 1.2rem; block-size: 1.2rem; border-radius: 50%;
    background: var(--ac-bk-notch, var(--ac-surface)); border: 1px solid var(--ac-line);
  }
  .ac-bk__perf::before { left: calc(-1 * var(--ac-space-4) - 0.65rem); clip-path: inset(0 0 0 50%); }
  .ac-bk__perf::after { right: calc(-1 * var(--ac-space-4) - 0.65rem); clip-path: inset(0 50% 0 0); }
  .ac-hero__book .ac-bk { --ac-bk-notch: var(--ac-band); }
  .ac-bk__foot {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ac-space-3) var(--ac-space-4);
    padding: var(--ac-space-3) var(--ac-space-4) var(--ac-space-4); border-radius: 0 0 var(--ac-radius-lg) var(--ac-radius-lg);
  }
  .ac-bk__trust { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; margin: 0; padding: 0; list-style: none; font-size: 0.8125rem; font-weight: 680; color: var(--ac-ink-2); }
  .ac-bk__trust li { display: inline-flex; align-items: center; gap: 0.35rem; }
  .ac-bk__trust .bi { color: var(--ac-gold-text); }
  .ac-bk__wa {
    display: inline-flex; align-items: center; gap: 0.6rem; min-block-size: 2.75rem; padding: 0.4rem 0.9rem; border-radius: var(--ac-radius);
    background: var(--ac-whatsapp); color: #fff; text-decoration: none; font-size: 0.875rem; font-weight: 760; line-height: 1.15;
    transition: background-color var(--ac-dur-1) var(--ac-ease);
  }
  .ac-bk__wa > .bi:first-child { font-size: 1.35rem; }
  .ac-bk__wa span:not(.visually-hidden) { display: grid; }
  .ac-bk__wa small { font-size: 0.6875rem; font-weight: 650; }
  .ac-bk__wa:hover { color: #fff; background: #0B6634; }
  .ac-bk__wa:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-bk__wa-go { transition: transform var(--ac-dur-1) var(--ac-ease); }
  @media (prefers-reduced-motion: no-preference) { .ac-bk__wa:hover .ac-bk__wa-go { transform: translate(2px, -2px); } }
  @container booking (width < 30rem) {
    .ac-bk__wa { inline-size: 100%; justify-content: center; }
  }

  /* ---------------------------------------------------------- TomSelect (point pickers) */
  .ac-bk .ts-wrapper.form-control { padding: 0; border: 0; background: none; box-shadow: none; min-block-size: 0; }
  .ac-bk .ts-wrapper { inline-size: 100%; }
  .ac-bk .ts-control {
    padding-block: 0.6rem; padding-inline-end: 2.25rem; font-family: inherit; box-shadow: none; align-items: center; flex-wrap: nowrap;
  }
  .ac-bk .ts-control > .item { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
  .ac-bk .ts-control > input { color: var(--ac-ink); font: inherit; min-inline-size: 4rem; }
  .ac-bk .ts-control > input::placeholder { color: var(--ac-muted); opacity: 1; }
  .ac-bk .ts-wrapper.single .ts-control { cursor: text; background-image: none; }
  .ac-bk .ts-wrapper.single .ts-control::after {
    content: ""; position: absolute; inset-inline-end: 0.9rem; top: 50%; inline-size: 0.5rem; block-size: 0.5rem; margin-top: -0.35rem;
    border: solid var(--ac-ink-2); border-width: 0 2px 2px 0; transform: rotate(45deg); pointer-events: none;
  }
  .ac-bk .ts-wrapper.single.dropdown-active .ts-control::after { transform: rotate(-135deg); margin-top: -0.1rem; }
  .ac-bk .ts-wrapper.is-invalid .ts-control, .ac-field:has(select.is-invalid) .ts-control { border-color: var(--ac-red); background-color: var(--ac-red-soft); }
  .ac-bk .ac-field > .bi { z-index: 2; pointer-events: none; }
  .ts-dropdown {
    margin-top: 4px; border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius); background: var(--ac-surface-3); color: var(--ac-ink);
    box-shadow: var(--ac-shadow-3); z-index: 30; font-size: 0.9375rem;
  }
  .ts-dropdown .ts-dropdown-content { max-block-size: min(22rem, 55vh); overscroll-behavior: contain; }
  .ts-dropdown .optgroup-header {
    position: sticky; top: 0; z-index: 1; padding: 0.5rem 0.85rem 0.3rem; background: var(--ac-surface-2); color: var(--ac-gold-text);
    font-size: var(--ac-step--2); font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; cursor: default;
  }
  .ts-dropdown .option, .ts-dropdown .create, .ts-dropdown .no-results, .ts-dropdown .ac-ts-yukleniyor { padding: 0.65rem 0.85rem; min-block-size: 2.75rem; display: flex; align-items: center; }
  .ts-dropdown .option > div, .ts-dropdown .create { display: flex; align-items: center; gap: 0.55rem; }
  .ts-dropdown .option .bi, .ts-dropdown .create .bi { color: var(--ac-gold-text); }
  .ts-dropdown .option.active, .ts-dropdown .create.active { background: var(--ac-gold-soft); color: var(--ac-ink); box-shadow: inset 3px 0 0 var(--ac-red); }
  .ts-dropdown .option.selected { font-weight: 760; }
  .ts-dropdown .no-results, .ts-dropdown .ac-ts-yukleniyor { color: var(--ac-muted); gap: 0.5rem; }
  .ts-dropdown .ac-ts-serbest { font-weight: 700; color: var(--ac-red); }
  .ts-dropdown .highlight { background: none; color: inherit; font-weight: 800; text-decoration: underline; text-decoration-color: var(--ac-gold); text-underline-offset: 3px; }

  /* ---------------------------------------------------------- flatpickr (date / time) */
  .ac-bk .flatpickr-input[readonly] { background-color: var(--ac-surface-3); cursor: pointer; }
  .flatpickr-calendar {
    background: var(--ac-surface-3); border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius);
    box-shadow: var(--ac-shadow-3); color: var(--ac-ink); font-family: var(--ac-font);
  }
  .flatpickr-calendar.arrowTop::before { border-bottom-color: var(--ac-line-strong); }
  .flatpickr-calendar.arrowTop::after { border-bottom-color: var(--ac-surface-3); }
  .flatpickr-calendar.arrowBottom::before { border-top-color: var(--ac-line-strong); }
  .flatpickr-calendar.arrowBottom::after { border-top-color: var(--ac-surface-3); }
  .flatpickr-months .flatpickr-month, .flatpickr-current-month .flatpickr-monthDropdown-months,
  .flatpickr-current-month input.cur-year { background: transparent; color: var(--ac-ink); fill: var(--ac-ink); font-weight: 760; }
  span.flatpickr-weekday { background: transparent; color: var(--ac-muted); font-weight: 700; }
  .flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month { color: var(--ac-ink); fill: var(--ac-ink); display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; padding: 0; }
  .flatpickr-months .flatpickr-prev-month:hover, .flatpickr-months .flatpickr-next-month:hover { color: var(--ac-red); }
  .flatpickr-day { color: var(--ac-ink); border-radius: var(--ac-radius); font-variant-numeric: tabular-nums; }
  .flatpickr-day:hover, .flatpickr-day:focus { background: var(--ac-gold-soft); border-color: var(--ac-gold); color: var(--ac-ink); }
  .flatpickr-day:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 1px; }
  .flatpickr-day.today { border-color: var(--ac-gold); font-weight: 800; }
  .flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.selected:focus { background: var(--ac-brand-red); border-color: var(--ac-brand-red); color: #fff; }
  .flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay { color: var(--ac-muted); }
  .flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover { color: var(--ac-muted); background: none; border-color: transparent; text-decoration: line-through; opacity: 0.7; }
  .flatpickr-time { border-top: 1px solid var(--ac-line); }
  .flatpickr-time input, .flatpickr-time .flatpickr-time-separator, .flatpickr-time .flatpickr-am-pm { color: var(--ac-ink); font-weight: 760; }
  .flatpickr-time input:hover, .flatpickr-time input:focus, .flatpickr-time .flatpickr-am-pm:hover { background: var(--ac-gold-soft); }
  .numInputWrapper:hover { background: var(--ac-surface-2); }
  .numInputWrapper span.arrowUp::after { border-bottom-color: var(--ac-ink-2); }
  .numInputWrapper span.arrowDown::after { border-top-color: var(--ac-ink-2); }
  @media (prefers-reduced-motion: reduce) { .flatpickr-calendar.animate.open { animation: none; } }
}

/*
 * Booking steps v3 (rezervasyon-adim.js): steps bar with back links, summary line items + mobile bar,
 * vehicle tools / badges / comparison, extras switches, sectioned details form (phone code, wishes,
 * invoice, contracts <dialog>), success hero, voucher actions, status timeline, lookup result.
 * Later in the same layer, so it refines the rules above. Tokens only; WCAG AA in light and dark;
 * targets >= 44px; motion only under prefers-reduced-motion: no-preference.
 */
@layer custom {
  /* ---------------------------------------------------------- steps bar */
  .ac-band__back { inline-size: 2.75rem; block-size: 2.75rem; }
  .ac-band__back:focus-visible, .ac-band__edit:focus-visible, .ac-progress__link:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-band__edit { min-block-size: 2.75rem; }
  .ac-steps { margin-top: var(--ac-space-4); }
  .ac-steps .ac-progress { margin-top: 0; }
  .ac-steps .ac-progress::before, .ac-steps .ac-progress::after { top: 1.25rem; }
  .ac-steps__mini { display: none; margin: 0 0 var(--ac-space-2); font-size: 0.8125rem; color: var(--ac-muted); }
  .ac-steps__mini b { color: var(--ac-ink); }
  .ac-progress__link { display: grid; justify-items: center; gap: 0.35rem; min-block-size: 2.75rem; padding: 0.15rem 0.25rem; border-radius: var(--ac-radius); color: inherit; text-decoration: none; }
  a.ac-progress__link:hover .ac-progress__dot { box-shadow: 0 0 0 4px rgb(201 169 106 / 0.3); }
  a.ac-progress__link:hover .ac-progress__txt { color: var(--ac-ink); text-decoration: underline; text-underline-offset: 3px; }
  .ac-progress .is-done .ac-progress__txt { color: var(--ac-ink-2); }
  @media (width < 576px) {
    .ac-steps__mini { display: block; }
    .ac-progress__txt { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .ac-progress__dot { inline-size: 1.9rem; block-size: 1.9rem; font-size: 0.8rem; }
    .ac-steps .ac-progress::before, .ac-steps .ac-progress::after { top: 1.1rem; }
    .ac-band { padding-block: var(--ac-space-3) var(--ac-space-4); }
    .ac-band__trip { gap: var(--ac-space-2) var(--ac-space-3); padding-bottom: var(--ac-space-3); }
    .ac-band__edit span { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); }
    .ac-band__edit { inline-size: 2.75rem; justify-content: center; border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius); }
  }

  /* ---------------------------------------------------------- summary */
  .ac-sum:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 3px; }
  .ac-sum__edit { display: inline-flex; align-items: center; gap: 0.25rem; min-block-size: 2.75rem; padding-inline: 0.25rem; font-size: 0.8125rem; font-weight: 700; color: var(--ac-red); text-decoration: none; text-transform: none; letter-spacing: 0; }
  .ac-sum__edit:hover { text-decoration: underline; text-underline-offset: 3px; }
  .ac-sum__head { align-items: center; }
  .ac-sum__veh { grid-template-columns: 5.5rem minmax(0, 1fr) auto; padding: var(--ac-space-2); border-radius: var(--ac-radius); background: var(--ac-surface-2); }
  .ac-sum__veh img { inline-size: 100%; block-size: auto; aspect-ratio: 408 / 158; object-fit: contain; }
  .ac-sum__veh-cap { font-size: 0.75rem; color: var(--ac-muted); }
  .ac-sum__lines { display: grid; gap: var(--ac-space-2); }
  .ac-sum__line { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.9375rem; }
  .ac-sum__line em { display: block; font-style: normal; font-size: 0.75rem; color: var(--ac-muted); }
  .ac-sum__line b { font-variant-numeric: tabular-nums; }
  .ac-sum__k { display: flex; align-items: center; justify-content: space-between; }
  .ac-sum__hint a { font-weight: 700; }

  /* mobile summary bar */
  .ac-sumbar { display: none; }
  @media (width < 1024px) {
    .ac-flow--bar { padding-bottom: calc(var(--ac-section-tight, 4rem) + 4.5rem); }
    .ac-sumbar {
      position: fixed; z-index: 40; inset-inline: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: var(--ac-space-3);
      padding: 0.6rem max(1rem, env(safe-area-inset-right)) calc(0.6rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
      border-top: 1px solid var(--ac-line-strong); background: var(--ac-surface-3); box-shadow: 0 -10px 30px -18px rgb(0 0 0 / 0.45);
      transition: transform var(--ac-dur-2) var(--ac-ease), opacity var(--ac-dur-2) var(--ac-ease);
    }
    .ac-sumbar.is-gizli { transform: translateY(110%); opacity: 0; pointer-events: none; }
    .ac-sumbar__sum { display: grid; min-block-size: 2.75rem; color: var(--ac-ink); text-decoration: none; }
    .ac-sumbar__sum small { font-size: 0.6875rem; font-weight: 750; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-muted); }
    .ac-sumbar__sum b { font-size: 1.25rem; font-weight: 800; color: var(--ac-red); font-variant-numeric: tabular-nums; }
    .ac-sumbar__cta { display: inline-flex; align-items: center; gap: 0.4rem; min-block-size: 3rem; padding: 0 1.25rem; border: 0; border-radius: var(--ac-radius); background: var(--ac-brand-red); color: #fff; font: inherit; font-weight: 780; cursor: pointer; }
    .ac-sumbar__cta:hover { background: var(--ac-brand-red-strong); }
    .ac-sumbar__sum:focus-visible, .ac-sumbar__cta:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  }
  @media (prefers-reduced-motion: reduce) { .ac-sumbar { transition: none; } }

  /* ---------------------------------------------------------- vehicle tools */
  .ac-tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ac-space-3) var(--ac-space-4); padding: var(--ac-space-3) var(--ac-space-4); border: 1px solid var(--ac-line); border-radius: var(--ac-radius-lg); background: var(--ac-surface-2); }
  .ac-tools__sort { display: flex; align-items: center; gap: 0.5rem; }
  .ac-tools__sort label { font-size: 0.8125rem; font-weight: 750; color: var(--ac-ink-2); }
  .ac-tools__sort .form-select { min-block-size: 2.75rem; inline-size: auto; }
  .ac-tools__fit { align-items: center; }
  .ac-tools__fit label small { color: var(--ac-muted); }
  .ac-tools__go { min-block-size: 2.75rem; }
  .ac-tools__count { margin: 0 0 0 auto; font-size: 0.8125rem; font-weight: 700; color: var(--ac-muted); }
  .ac-empty { display: flex; gap: 0.5rem; align-items: center; margin: 0; padding: var(--ac-space-4); border: 1px dashed var(--ac-line-strong); border-radius: var(--ac-radius-lg); color: var(--ac-ink-2); }

  /* ---------------------------------------------------------- class cards (container queries) */
  .ac-vehs { container: vehs / inline-size; }
  .ac-veh__stage { position: relative; padding: var(--ac-space-3); }
  .ac-veh__flags { position: absolute; top: 0.5rem; inset-inline-start: 0.5rem; display: flex; flex-wrap: wrap; gap: 0.3rem; }
  .ac-veh__flags .ac-veh__flag { position: static; display: inline-flex; align-items: center; gap: 0.25rem; }
  .ac-veh__models { font-weight: 650; }
  .ac-veh__or { font-weight: 500; color: var(--ac-muted); }
  .ac-veh__fit { display: flex; align-items: center; gap: 0.35rem; margin: 0; font-size: 0.8125rem; font-weight: 700; color: var(--ac-success); }
  .ac-veh__fit.is-no { color: var(--ac-red); }
  ul.ac-veh__incl { padding: 0; list-style: none; }
  .ac-veh__go { min-inline-size: 7rem; }
  .ac-veh__go:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-veh__go.is-disabled { background: var(--ac-surface-2); color: var(--ac-ink-2); border: 1px dashed var(--ac-line-strong); cursor: not-allowed; font-size: 0.8125rem; }
  .ac-veh__price.is-muted { color: var(--ac-ink-2); font-size: 1.25rem; }
  .ac-veh.is-off { opacity: 1; background: var(--ac-surface-2); border-style: dashed; }
  .ac-veh.is-off .ac-veh__stage img { filter: grayscale(1); opacity: 0.55; }
  .ac-veh.is-best { box-shadow: 0 0 0 1px var(--ac-gold), var(--ac-shadow-1); }
  .ac-veh:has(.ac-veh__go:focus-visible) { border-color: var(--ac-gold); }
  @media (prefers-reduced-motion: no-preference) {
    .ac-veh { animation: ac-rz-in var(--ac-dur-2) var(--ac-ease-out) both; animation-delay: calc(var(--i, 0) * 50ms); }
    .ac-veh.is-off:hover { transform: none; }
  }
  /* the width media queries above stay as a fallback; the list's own width decides when supported */
  @container vehs (width >= 44rem) {
    .ac-veh { grid-template-columns: 13rem minmax(0, 1fr) 12rem; }
  }
  @container vehs (width < 44rem) {
    .ac-veh { grid-template-columns: 8rem minmax(0, 1fr); }
    .ac-veh__side { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; justify-items: start; align-items: center; border-inline-start: 0; border-top: 1px dashed var(--ac-line-strong); text-align: start; }
    .ac-veh__go { grid-column: 2; grid-row: 1 / span 3; margin: 0; }
  }
  @container vehs (width < 26rem) {
    .ac-veh { grid-template-columns: minmax(0, 1fr); }
    .ac-veh__stage { min-block-size: 7.5rem; }
    .ac-veh__stage img { max-inline-size: 16rem; }
    .ac-veh__cap li { grid-template-columns: 1.1rem 4.5rem minmax(0, 1fr); }
  }

  /* comparison */
  .ac-compare { border: 1px solid var(--ac-line); border-radius: var(--ac-radius-lg); background: var(--ac-surface-3); }
  .ac-compare > summary { display: flex; align-items: center; gap: 0.5rem; min-block-size: 3rem; padding: var(--ac-space-3) var(--ac-space-4); cursor: pointer; font-weight: 780; }
  .ac-compare > summary .bi { color: var(--ac-gold-text); }
  .ac-compare > summary:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: -2px; border-radius: var(--ac-radius-lg); }
  .ac-compare__scroll { overflow-x: auto; margin-inline: var(--ac-space-3); border: 1px solid var(--ac-line); border-radius: var(--ac-radius); }
  .ac-compare__scroll:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-compare__table { inline-size: 100%; min-inline-size: 38rem; border-collapse: collapse; font-size: 0.875rem; }
  .ac-compare__table th, .ac-compare__table td { padding: 0.6rem 0.75rem; border-bottom: 1px solid var(--ac-line); text-align: start; vertical-align: top; }
  .ac-compare__table thead th { background: var(--ac-surface-2); font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-muted); }
  .ac-compare__table tbody th { font-weight: 780; white-space: nowrap; }
  .ac-compare__table tr.is-best { background: var(--ac-gold-soft); }
  .ac-compare__table .is-num { font-weight: 800; color: var(--ac-red); white-space: nowrap; font-variant-numeric: tabular-nums; }
  .ac-compare__table .bi-check-lg { color: var(--ac-success); }
  .ac-compare__table .bi-x-lg { color: var(--ac-red); }
  .ac-compare__note { margin: var(--ac-space-3) var(--ac-space-4) var(--ac-space-4); font-size: 0.8125rem; color: var(--ac-muted); }

  /* ---------------------------------------------------------- extras */
  .ac-extras-set { margin: 0; padding: 0; border: 0; min-inline-size: 0; }
  .ac-extras { container: extras / inline-size; }
  .ac-extra { grid-template-columns: auto minmax(0, 1fr) auto; transition: border-color var(--ac-dur-1) var(--ac-ease), background-color var(--ac-dur-2) var(--ac-ease); }
  .ac-extra__ic { inline-size: 3rem; block-size: 3rem; font-size: 1.35rem; }
  .ac-extra.is-on .ac-extra__ic, .ac-extra:has(input:checked) .ac-extra__ic { background: var(--ac-gold); color: var(--ac-brand-ink); }
  .ac-extra__body { gap: 0.15rem; }
  .ac-extra__price { font-size: 0.9375rem; }
  .ac-extra .ac-stepper button { min-block-size: 2.75rem; min-inline-size: 2.75rem; }
  .ac-extra .ac-stepper button:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: -2px; z-index: 1; }
  .ac-extra__ctl.ac-stepper { inline-size: 9rem; grid-template-columns: 2.75rem minmax(2.5rem, 1fr) 2.75rem; }
  @media (prefers-reduced-motion: no-preference) { .ac-extra { animation: ac-rz-in var(--ac-dur-2) var(--ac-ease-out) both; animation-delay: calc(var(--i, 0) * 50ms); } }
  @container extras (width < 30rem) {
    .ac-extra { grid-template-columns: auto minmax(0, 1fr); }
    .ac-extra__ctl { grid-column: 1 / -1; grid-row: auto; justify-self: end; }
    .ac-extra__price { grid-column: auto; }
  }
  /* switch (native checkbox, role=switch) */
  .ac-toggle { position: relative; inline-size: 3.25rem; block-size: 2.75rem; display: grid; place-items: center; }
  .ac-toggle__in { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
  .ac-toggle__ui { position: relative; inline-size: 3rem; block-size: 1.75rem; border-radius: 999px; border: 2px solid var(--ac-line-strong); background: var(--ac-surface-2); transition: background-color var(--ac-dur-1) var(--ac-ease), border-color var(--ac-dur-1) var(--ac-ease); }
  .ac-toggle__ui::after { content: ""; position: absolute; top: 0.15rem; inset-inline-start: 0.15rem; inline-size: 1.2rem; block-size: 1.2rem; border-radius: 50%; background: var(--ac-ink-2); transition: transform var(--ac-dur-1) var(--ac-ease), background-color var(--ac-dur-1) var(--ac-ease); }
  .ac-toggle__in:checked + .ac-toggle__ui { background: var(--ac-brand-red); border-color: var(--ac-brand-red); }
  .ac-toggle__in:checked + .ac-toggle__ui::after { transform: translateX(1.25rem); background: #fff; }
  .ac-toggle__in:focus-visible + .ac-toggle__ui { outline: 2px solid var(--ac-focus); outline-offset: 3px; }
  @media (prefers-reduced-motion: reduce) { .ac-toggle__ui, .ac-toggle__ui::after { transition: none; } }

  /* ---------------------------------------------------------- details form */
  .ac-errsum { padding: var(--ac-space-4); border: 2px solid var(--ac-red); border-radius: var(--ac-radius-lg); background: var(--ac-red-soft); color: var(--ac-ink); }
  .ac-errsum:focus-visible { outline: 3px solid var(--ac-focus); outline-offset: 3px; }
  .ac-errsum h2 { display: flex; gap: 0.5rem; align-items: center; margin: 0; font-size: 1rem; font-weight: 800; }
  .ac-errsum h2 .bi { color: var(--ac-red); }
  .ac-errsum ul { display: grid; gap: 0.25rem; margin: var(--ac-space-2) 0 0; padding-inline-start: 1.25rem; }
  .ac-errsum a { color: var(--ac-red-strong); font-weight: 650; }
  .ac-nudge { display: flex; gap: 0.75rem; align-items: center; margin: 0; padding: var(--ac-space-3) var(--ac-space-4); border: 1px solid var(--ac-gold); border-radius: var(--ac-radius-lg); background: var(--ac-gold-soft); font-size: 0.9375rem; }
  .ac-nudge > .bi { font-size: 1.5rem; color: var(--ac-gold-text); }
  .ac-nudge a { font-weight: 800; }
  .ac-nudge small { display: block; color: var(--ac-muted); }
  .ac-sections { display: grid; gap: 0; }
  .ac-sec { padding-block: var(--ac-space-4); border-top: 1px dashed var(--ac-line-strong); }
  .ac-sec:first-of-type { padding-top: 0; border-top: 0; }
  .ac-sec__title { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0 0 var(--ac-space-3); font-size: 1.0625rem; font-weight: 800; }
  .ac-sec__no { display: grid; place-items: center; inline-size: 1.75rem; block-size: 1.75rem; border-radius: 50%; background: var(--ac-brand-ink); color: #fff; font-size: 0.8125rem; }
  .ac-sec__tag { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.1rem 0.5rem; border-radius: 999px; background: var(--ac-surface-2); font-size: 0.75rem; font-weight: 700; color: var(--ac-ink-2); }
  .ac-sec__tag.is-req { background: var(--ac-red-soft); color: var(--ac-red-strong); }
  .ac-sec__tag .bi { color: var(--ac-success); }
  .ac-req { color: var(--ac-red); font-weight: 800; }
  .ac-form-tip { display: block; margin-top: 0.3rem; font-size: 0.75rem; color: var(--ac-muted); }
  .ac-sections .form-control, .ac-sections .form-select { min-block-size: 2.75rem; }
  .ac-phone { display: grid; grid-template-columns: minmax(6.5rem, 8.5rem) minmax(0, 1fr); }
  .ac-phone__cc { border-start-end-radius: 0; border-end-end-radius: 0; border-inline-end: 0; font-variant-numeric: tabular-nums; }
  .ac-phone .form-control { border-start-start-radius: 0; border-end-start-radius: 0; }
  .ac-explain { display: flex; gap: 0.6rem; align-items: start; padding: var(--ac-space-3); border-radius: var(--ac-radius); background: var(--ac-surface-2); font-size: 0.8125rem; color: var(--ac-ink-2); }
  .ac-explain .bi { font-size: 1.25rem; color: var(--ac-gold-text); }
  .ac-explain p { margin: 0; }
  .ac-wishes { display: flex; flex-wrap: wrap; gap: var(--ac-space-2); margin: 0 0 var(--ac-space-3); padding: 0; border: 0; }
  .ac-wishes legend { inline-size: 100%; }
  .ac-wish { position: relative; display: inline-flex; }
  .ac-wish input { position: absolute; opacity: 0; inset: 0; inline-size: 100%; block-size: 100%; margin: 0; cursor: pointer; }
  .ac-wish span { display: inline-flex; align-items: center; gap: 0.35rem; min-block-size: 2.75rem; padding: 0.35rem 0.85rem; border: 1px solid var(--ac-line-strong); border-radius: 999px; background: var(--ac-surface-3); font-size: 0.8125rem; font-weight: 680; }
  .ac-wish span::before { content: "+"; font-weight: 800; color: var(--ac-gold-text); }
  .ac-wish input:checked + span { border-color: var(--ac-gold); background: var(--ac-gold-soft); }
  .ac-wish input:checked + span::before { content: "\2713"; color: var(--ac-success); }
  .ac-wish input:focus-visible + span { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-quick { display: grid; gap: var(--ac-space-2); margin-bottom: var(--ac-space-3); padding: var(--ac-space-3); border: 1px dashed var(--ac-gold); border-radius: var(--ac-radius); }
  .ac-quick__t { display: flex; gap: 0.35rem; align-items: center; font-size: 0.8125rem; font-weight: 780; color: var(--ac-gold-text); }
  .ac-quick__list { display: flex; flex-wrap: wrap; gap: var(--ac-space-2); margin: 0; padding: 0; list-style: none; }
  .ac-quick .ac-chip { min-block-size: 2.75rem; cursor: pointer; font: inherit; font-size: 0.8125rem; font-weight: 700; }
  .ac-quick .ac-chip[aria-pressed="true"] { border-color: var(--ac-gold); background: var(--ac-gold-soft); }
  .ac-quick .ac-chip.is-dolu { border-color: var(--ac-red); }
  .ac-quick .ac-chip:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-quick small { font-size: 0.75rem; color: var(--ac-muted); }

  /* payment cards */
  .ac-pay { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
  .ac-pay__opt { position: relative; align-items: center; min-block-size: 3.5rem; }
  .ac-pay__opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
  .ac-pay__opt:has(input:focus-visible) { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-pay__ic { display: grid; place-items: center; inline-size: 2.25rem; block-size: 2.25rem; flex: none; border-radius: var(--ac-radius-sm); background: var(--ac-surface-2); color: var(--ac-gold-text); }
  .ac-pay__txt { display: grid; flex: 1; }
  .ac-pay__mark { display: grid; place-items: center; inline-size: 1.5rem; block-size: 1.5rem; flex: none; border-radius: 50%; border: 2px solid var(--ac-line-strong); color: transparent; }
  .ac-pay__opt:has(input:checked) .ac-pay__mark { border-color: var(--ac-brand-red); background: var(--ac-brand-red); color: #fff; }

  /* invoice: works without JS through :has(); JS also sets [hidden] / disabled */
  .ac-invoice__panel { display: grid; gap: var(--ac-space-3); margin-top: var(--ac-space-3); padding: var(--ac-space-4); border-radius: var(--ac-radius); background: var(--ac-surface-2); }
  .ac-invoice:not(:has(#bl-fatura:checked)) .ac-invoice__panel { display: none; }
  .ac-invoice:has([data-fatura-tip][value="kurumsal"]:checked) [data-fatura-grup="bireysel"],
  .ac-invoice:has([data-fatura-tip][value="bireysel"]:checked) [data-fatura-grup="kurumsal"] { display: none; }
  .ac-invoice__fields { margin-bottom: 0; }
  fieldset.ac-seg { display: inline-grid; grid-auto-flow: column; justify-self: start; margin: 0; padding: 3px; border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius); }
  fieldset.ac-seg label { position: relative; }
  fieldset.ac-seg input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
  fieldset.ac-seg span { display: inline-flex; align-items: center; gap: 0.35rem; min-block-size: 2.75rem; padding: 0 1rem; border-radius: var(--ac-radius-sm); font-size: 0.875rem; font-weight: 750; color: var(--ac-ink-2); }
  fieldset.ac-seg input:checked + span { background: var(--ac-brand-ink); color: #fff; }
  fieldset.ac-seg input:focus-visible + span { outline: 2px solid var(--ac-focus); outline-offset: 2px; }

  .ac-consent { border-top: 1px dashed var(--ac-line-strong); }
  .ac-consent .form-field { padding: var(--ac-space-3); border-radius: var(--ac-radius); background: var(--ac-surface-2); }
  .ac-consent .form-field a { font-weight: 750; }
  .ac-contracts { display: grid; gap: var(--ac-space-2); margin-top: var(--ac-space-3); }
  .ac-contract > summary { display: flex; align-items: center; min-block-size: 2.75rem; }
  .ac-tamamla { gap: 0.5rem; }
  .ac-tamamla b { padding-inline-start: 0.6rem; border-inline-start: 1px solid rgb(255 255 255 / 0.4); font-variant-numeric: tabular-nums; }
  .ac-booking__note { display: flex; gap: 0.4rem; margin: var(--ac-space-3) 0 0; font-size: 0.8125rem; color: var(--ac-muted); }
  .ac-booking__note .bi { color: var(--ac-success); }

  /* ---------------------------------------------------------- dialog (contracts, confirm) */
  .ac-dialog {
    inline-size: min(46rem, calc(100vw - 2rem)); max-block-size: min(85vh, 48rem); padding: 0; border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius-lg);
    background: var(--ac-surface-3); color: var(--ac-ink); box-shadow: var(--ac-shadow-3);
  }
  .ac-dialog[open] { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; }
  .ac-dialog--sm { inline-size: min(28rem, calc(100vw - 2rem)); }
  .ac-dialog--sm[open] { grid-template-rows: auto minmax(0, 1fr) auto; }
  .ac-dialog::backdrop { background: var(--ac-overlay); backdrop-filter: blur(2px); }
  .ac-dialog__head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: var(--ac-space-4) var(--ac-space-5) var(--ac-space-3); }
  .ac-dialog__head h2 { display: flex; gap: 0.5rem; align-items: center; margin: 0; font-size: 1.125rem; font-weight: 800; }
  .ac-dialog__head .bi { color: var(--ac-gold-text); }
  .ac-dialog--sm .ac-dialog__head .bi { color: var(--ac-red); }
  .ac-dialog__x { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border: 1px solid var(--ac-line); border-radius: var(--ac-radius); background: none; color: var(--ac-ink); cursor: pointer; }
  .ac-dialog button:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-dialog .ac-tabs { padding: 0 var(--ac-space-5) var(--ac-space-3); border-bottom: 1px solid var(--ac-line); }
  .ac-dialog .ac-tabs [role="tab"] { min-block-size: 2.75rem; }
  .ac-dialog__body { overflow: auto; overscroll-behavior: contain; padding: var(--ac-space-4) var(--ac-space-5); font-size: 0.9375rem; }
  .ac-dialog__body .ac-prose:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 4px; }
  .ac-dialog__body p:last-child { margin-bottom: 0; }
  .ac-dialog__foot { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--ac-space-2); margin: 0; padding: var(--ac-space-3) var(--ac-space-5) var(--ac-space-4); border-top: 1px solid var(--ac-line); }
  .ac-dialog__foot button { min-block-size: 2.75rem; }
  @media (prefers-reduced-motion: no-preference) {
    .ac-dialog[open] { animation: ac-rz-in var(--ac-dur-2) var(--ac-ease-out); }
  }

  /* ---------------------------------------------------------- success hero, voucher actions */
  .ac-hero-ok { display: flex; gap: var(--ac-space-4); align-items: center; margin-bottom: var(--ac-space-5); padding: var(--ac-space-5); border: 1px solid var(--ac-line); border-inline-start: 4px solid var(--ac-success); border-radius: var(--ac-radius-lg); background: linear-gradient(110deg, var(--ac-success-soft), var(--ac-surface-3) 60%); }
  .ac-hero-ok h1 { margin: 0 0 0.35rem; font-size: var(--ac-step-3); }
  .ac-hero-ok p { margin: 0 0 0.25rem; color: var(--ac-ink-2); }
  .ac-hero-ok .ac-done { flex: none; background: var(--ac-success); border-color: var(--ac-success); color: var(--ac-surface); }
  .ac-hero-ok__code { padding: 0.05rem 0.4rem; border-radius: var(--ac-radius-sm); background: var(--ac-surface-2); color: var(--ac-ink); letter-spacing: 0.06em; font-variant-numeric: tabular-nums; }
  .ac-hero-ok__hint { font-size: 0.875rem; }
  .ac-hero-ok.is-iptal { border-inline-start-color: var(--ac-red); background: linear-gradient(110deg, var(--ac-red-soft), var(--ac-surface-3) 60%); }
  .ac-hero-ok.is-iptal .ac-done { background: var(--ac-red-strong); border-color: var(--ac-red-strong); color: var(--ac-surface); }
  @media (width < 576px) { .ac-hero-ok { flex-direction: column; align-items: start; padding: var(--ac-space-4); } }
  .ac-acts { display: grid; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); gap: var(--ac-space-2); margin-top: var(--ac-space-5); }
  .ac-act { display: flex; align-items: center; gap: 0.7rem; min-block-size: 3.5rem; padding: 0.7rem 0.85rem; border: 1px solid var(--ac-line); border-radius: var(--ac-radius); background: var(--ac-surface-3); color: var(--ac-ink); text-decoration: none; text-align: start; font: inherit; cursor: pointer; transition: border-color var(--ac-dur-1) var(--ac-ease), box-shadow var(--ac-dur-2) var(--ac-ease); }
  .ac-act:hover { border-color: var(--ac-gold); color: var(--ac-ink); box-shadow: var(--ac-shadow-2); }
  .ac-act:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-act > .bi { display: grid; place-items: center; inline-size: 2.25rem; block-size: 2.25rem; flex: none; border-radius: var(--ac-radius-sm); background: var(--ac-surface-2); color: var(--ac-red); font-size: 1.05rem; }
  .ac-act.is-wa > .bi { background: var(--ac-whatsapp); color: #fff; }
  .ac-act span { display: grid; min-inline-size: 0; }
  .ac-act b { font-weight: 760; }
  .ac-act small { font-size: 0.75rem; color: var(--ac-muted); }

  /* ---------------------------------------------------------- status timeline */
  .ac-timeline { padding: var(--ac-space-5); border: 1px solid var(--ac-line); border-radius: var(--ac-radius-lg); background: var(--ac-surface-3); }
  .ac-track .ac-timeline { padding: 0; border: 0; background: none; }
  .ac-timeline__title { margin: 0 0 var(--ac-space-4); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ac-gold-text); }
  .ac-timeline__list { position: relative; display: grid; gap: var(--ac-space-4); margin: 0; padding: 0; list-style: none; }
  .ac-timeline__list li { position: relative; display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: var(--ac-space-3); }
  .ac-timeline__list li:not(:last-child)::after { content: ""; position: absolute; top: 2.1rem; bottom: calc(-1 * var(--ac-space-4) + 0.1rem); inset-inline-start: calc(1rem - 1px); border-inline-start: 2px solid var(--ac-line-strong); }
  .ac-timeline__list li.is-tamam:not(:last-child)::after { border-color: var(--ac-success); }
  .ac-timeline__dot { display: grid; place-items: center; inline-size: 2rem; block-size: 2rem; border-radius: 50%; border: 2px solid var(--ac-line-strong); background: var(--ac-surface-3); color: var(--ac-muted); font-size: 0.85rem; }
  .ac-timeline__list .bi-circle { font-size: 0.45rem; }
  .ac-timeline .is-tamam .ac-timeline__dot { border-color: var(--ac-success); background: var(--ac-success); color: var(--ac-surface); }
  .ac-timeline .is-simdi .ac-timeline__dot { border-color: var(--ac-brand-red); background: var(--ac-brand-red); color: #fff; box-shadow: 0 0 0 4px rgb(210 10 20 / 0.2); }
  .ac-timeline .is-iptal .ac-timeline__dot { border-color: var(--ac-red); background: var(--ac-red-soft); color: var(--ac-red); }
  .ac-timeline__list b { display: block; font-weight: 780; }
  .ac-timeline .is-sonra b { color: var(--ac-ink-2); }
  .ac-timeline__list p { margin: 0.15rem 0 0; font-size: 0.875rem; color: var(--ac-muted); }
  @media (prefers-reduced-motion: no-preference) {
    .ac-timeline .is-simdi .ac-timeline__dot { animation: ac-rz-pulse 2s var(--ac-ease) infinite; }
  }
  @keyframes ac-rz-pulse { 50% { box-shadow: 0 0 0 8px rgb(210 10 20 / 0.06); } }

  /* ---------------------------------------------------------- tracking + lookup */
  .ac-track__body { display: grid; gap: var(--ac-space-4); padding: var(--ac-space-5) var(--ac-space-5) 0; }
  .ac-track__body .ac-track__rows { padding: 0; }
  .ac-copy { display: inline-flex; align-items: center; gap: 0.35rem; min-block-size: 2.75rem; padding: 0 0.75rem; border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius); background: none; color: var(--ac-ink); font: inherit; font-size: 0.8125rem; font-weight: 700; cursor: pointer; }
  .ac-copy:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-track__rows .is-price { color: var(--ac-red); font-size: 1.125rem; font-weight: 800; }
  .ac-result:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 3px; }
  .ac-result__route { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: var(--ac-space-3); align-items: center; padding: var(--ac-space-4) var(--ac-space-5) 0; }
  .ac-result__route span:not(.visually-hidden) { display: grid; }
  .ac-result__route span:last-child { text-align: end; }
  .ac-result__route small { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-muted); }
  .ac-result__route b { overflow-wrap: anywhere; }
  .ac-result__route > .bi { color: var(--ac-gold-text); font-size: 1.25rem; }
  .ac-lookup__ic { display: grid; place-items: center; inline-size: 3rem; block-size: 3rem; margin-bottom: var(--ac-space-3); border-radius: var(--ac-radius); background: var(--ac-gold-soft); color: var(--ac-gold-text); font-size: 1.4rem; }
  .ac-mono { font-variant-numeric: tabular-nums; letter-spacing: 0.06em; }
  .ac-danger { color: var(--ac-red); border-color: var(--ac-red); }
  .ac-danger:hover { background: var(--ac-red-soft); color: var(--ac-red-strong); }
  .ac-track__actions .btn-solid, .ac-track__actions .btn-outline { min-block-size: 2.75rem; }
}

@media print {
  .ac-band, .ac-hero-ok, .ac-acts, .ac-timeline, .ac-sumbar { display: none !important; }
}

/*
 * Popular-route chips (user, 2026-10-29): desktop = a single row that scrolls sideways with a fade
 * at the end; phones = collapsed behind the "Popüler güzergâhlar" button, opened on tap.
 */
@layer custom {
  .ac-bk__chips-lbl { padding: 0; border: 0; background: none; font: inherit; font-size: var(--ac-step--2); font-weight: 780; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ac-gold-text); cursor: default; }
  .ac-bk__chips-ok { display: none; transition: transform var(--ac-dur-2) var(--ac-ease); }
  /* the visually-hidden arrow inside a chip is absolutely positioned: keep it inside the chip */
  .ac-bk__chip { position: relative; }
  /* TomSelect's wrapper also carries .form-control: the route-picker padding rule must not shrink it */
  .ac-bk .ac-route-picker .ac-field .ts-wrapper.form-control { padding: 0; }
  @media (width >= 768px) {
    .ac-bk__chips { flex-wrap: nowrap; }
    .ac-bk__chips-lbl { flex: none; pointer-events: none; }
    .ac-bk__chip-list {
      flex: 1 1 auto; flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; padding-block: 2px;
      mask-image: linear-gradient(90deg, #000 calc(100% - 3rem), transparent);
    }
    .ac-bk__chip-list::-webkit-scrollbar { display: none; }
    .ac-bk__chip-list > li { flex: none; }
    .ac-bk__chip { white-space: nowrap; overflow-wrap: normal; }
  }
  @media (width < 768px) {
    .ac-bk__chips-lbl { display: inline-flex; align-items: center; gap: 0.35rem; min-block-size: 2.75rem; cursor: pointer; }
    .ac-bk__chips-lbl:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 2px; border-radius: var(--ac-radius-sm); }
    .ac-bk__chips-ok { display: inline-block; }
    .ac-bk__chips.is-acik .ac-bk__chips-ok { transform: rotate(180deg); }
    .ac-bk__chips:not(.is-acik) .ac-bk__chip-list { display: none; }
    .ac-bk__chips { margin-top: var(--ac-space-2); }
  }
  @media (prefers-reduced-motion: reduce) { .ac-bk__chips-ok { transition: none; } }
}

/*
 * Service switch + round-trip switch (user, 2026-10-29: "Transfer / Şoförlü daha belirgin ve modern,
 * tek-çift yön switch"). The tabs are a segmented control on the dark head with a red indicator that
 * glides between them (pure CSS, :has); the trip type is a real switch (role="switch") whose thumb
 * carries the one-way / round-trip arrow. Motion is transform-only and off under reduced motion.
 */
@layer custom {
  /* ---------------------------------------------------------- service switch (tabs) */
  .ac-seg {
    position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0 0 0 auto; padding: 4px; list-style: none;
    border: 1px solid rgb(255 255 255 / 0.14); border-radius: 0.875rem; background: rgb(255 255 255 / 0.05);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.04);
  }
  .ac-seg::before {
    content: ""; position: absolute; inset: 4px auto 4px 4px; inline-size: calc(50% - 4px); border-radius: 0.625rem;
    background: linear-gradient(135deg, #E0121C, #A3070F); box-shadow: 0 10px 24px -10px rgb(210 10 20 / 0.9), inset 0 1px 0 rgb(255 255 255 / 0.2), inset 0 -2px 0 rgb(216 190 138 / 0.55);
    transition: transform var(--ac-dur-3, 420ms) cubic-bezier(0.32, 0.72, 0, 1);
  }
  .ac-seg:has(> li:last-child .active)::before { transform: translateX(100%); }
  .ac-seg > li { min-inline-size: 0; }
  .ac-seg .ac-seg__btn {
    position: relative; z-index: 1; display: flex; align-items: center; gap: 0.65rem; inline-size: 100%; min-block-size: 3.25rem; margin: 0;
    padding: 0.4rem 1.1rem 0.4rem 0.45rem; border: 0; border-radius: 0.625rem; background: none; color: #C8C8D0; text-align: start;
    transition: color var(--ac-dur-2) var(--ac-ease);
  }
  .ac-seg .ac-seg__btn:hover { color: #fff; }
  .ac-seg .ac-seg__btn.active { color: #fff; background: none; }
  .ac-seg .ac-seg__btn:focus-visible { outline: 2px solid #D8BE8A; outline-offset: 2px; }
  .ac-seg__ic {
    display: grid; place-items: center; flex: none; inline-size: 2.25rem; block-size: 2.25rem; border-radius: 0.5rem;
    background: rgb(255 255 255 / 0.07); color: #D8BE8A; font-size: 1.05rem; transition: background-color var(--ac-dur-2) var(--ac-ease), color var(--ac-dur-2) var(--ac-ease);
  }
  .ac-seg__btn.active .ac-seg__ic { background: rgb(255 255 255 / 0.18); color: #fff; }
  .ac-seg__txt { display: grid; line-height: 1.15; min-inline-size: 0; }
  .ac-seg__txt b { font-size: 0.975rem; font-weight: 800; letter-spacing: -0.01em; white-space: nowrap; }
  .ac-seg__txt small { font-size: 0.72rem; font-weight: 600; color: #A3A3AD; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ac-seg__btn.active .ac-seg__txt small { color: rgb(255 255 255 / 0.82); }
  @container booking (width < 44rem) {
    .ac-seg { inline-size: 100%; margin-inline-start: 0; }
  }
  @container booking (width < 26rem) {
    .ac-seg__txt small { display: none; }
    .ac-seg .ac-seg__btn { justify-content: center; padding-inline: 0.5rem; }
  }

  /* ---------------------------------------------------------- round-trip switch */
  .ac-bk__toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ac-space-2) var(--ac-space-3); margin-bottom: var(--ac-space-3); }
  .ac-bk__toolbar-lbl { display: inline-flex; align-items: center; gap: 0.4rem; font-size: var(--ac-step--2); font-weight: 780; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ac-gold-text); }
  .ac-switch {
    position: relative; display: inline-flex; align-items: center; gap: 0.7rem; min-block-size: 2.75rem; margin: 0; padding: 0.3rem 1rem 0.3rem 0.35rem;
    border: 1px solid var(--ac-line-strong); border-radius: 999px; background: var(--ac-surface-3); color: var(--ac-ink); cursor: pointer; user-select: none;
    transition: border-color var(--ac-dur-2) var(--ac-ease), background-color var(--ac-dur-2) var(--ac-ease), box-shadow var(--ac-dur-2) var(--ac-ease);
  }
  .ac-switch:hover { border-color: var(--ac-gold); }
  .ac-switch__input { position: absolute; opacity: 0; inline-size: 1px; block-size: 1px; margin: 0; pointer-events: none; }
  .ac-switch:has(.ac-switch__input:focus-visible) { outline: 2px solid var(--ac-focus); outline-offset: 2px; }
  .ac-switch__track {
    position: relative; flex: none; inline-size: 3.5rem; block-size: 2rem; border-radius: 999px;
    background: var(--ac-surface-2); box-shadow: inset 0 0 0 1px var(--ac-line-strong); transition: background-color var(--ac-dur-2) var(--ac-ease), box-shadow var(--ac-dur-2) var(--ac-ease);
  }
  .ac-switch__thumb {
    position: absolute; inset-block-start: 3px; inset-inline-start: 3px; display: grid; place-items: center; inline-size: 1.625rem; block-size: 1.625rem;
    border-radius: 50%; background: #fff; color: #5E5E68; font-size: 0.8rem; box-shadow: 0 2px 6px rgb(0 0 0 / 0.25);
    transition: transform var(--ac-dur-3, 420ms) cubic-bezier(0.32, 0.72, 0, 1), color var(--ac-dur-2) var(--ac-ease);
  }
  .ac-switch__thumb .bi { grid-area: 1 / 1; transition: opacity var(--ac-dur-2) var(--ac-ease), transform var(--ac-dur-2) var(--ac-ease); }
  .ac-switch__thumb .bi-arrow-left-right { opacity: 0; transform: scale(0.6); }
  .ac-switch__txt { display: grid; line-height: 1.2; }
  .ac-switch__txt b { font-size: 0.9rem; font-weight: 780; }
  .ac-switch__txt small { font-size: 0.75rem; color: var(--ac-muted); }
  .ac-switch__on { display: none; }
  .ac-switch:has(.ac-switch__input:checked) { border-color: rgb(210 10 20 / 0.55); background: linear-gradient(90deg, rgb(210 10 20 / 0.08), var(--ac-surface-3) 70%); }
  .ac-switch:has(.ac-switch__input:checked) .ac-switch__track { background: var(--ac-brand-red); box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.1), 0 6px 16px -8px rgb(210 10 20 / 0.9); }
  .ac-switch:has(.ac-switch__input:checked) .ac-switch__thumb { transform: translateX(1.5rem); color: var(--ac-brand-red); }
  .ac-switch:has(.ac-switch__input:checked) .ac-switch__thumb .bi-arrow-right { opacity: 0; transform: scale(0.6); }
  .ac-switch:has(.ac-switch__input:checked) .ac-switch__thumb .bi-arrow-left-right { opacity: 1; transform: none; }
  .ac-switch:has(.ac-switch__input:checked) .ac-switch__off { display: none; }
  .ac-switch:has(.ac-switch__input:checked) .ac-switch__on { display: inline; color: var(--ac-red); font-weight: 650; }
  @container booking (width < 26rem) {
    .ac-bk__toolbar-lbl { display: none; }
    .ac-switch { inline-size: 100%; }
  }

  @media (prefers-reduced-motion: reduce) {
    .ac-seg::before, .ac-seg .ac-seg__btn, .ac-seg__ic, .ac-switch, .ac-switch__track, .ac-switch__thumb, .ac-switch__thumb .bi { transition: none; }
  }
}

/*
 * Sidebar booking card (route, service, vehicle and blog pages: the card inside an <aside>).
 * Scoped to `aside .ac-bk`, so the home hero card (bolumler.css "Compact home hero") is untouched.
 * The narrow card reads as a boarding pass: a calmer head, the from/to pickers stacked on one gold
 * route line with the swap button on it, date / time and steppers in a tidy 2 × 2, full-width
 * actions and a quieter foot. Widths follow the card itself (container "booking").
 */
@layer custom {
  aside .ac-bk { --ac-bk-notch: var(--ac-surface); box-shadow: var(--ac-shadow-2); }
  aside .ac-bk .ac-booking__head { padding: var(--ac-space-4); gap: var(--ac-space-3); }
  aside .ac-bk .ac-booking__mark { inline-size: 2.5rem; block-size: 2.5rem; border-radius: 50% 50% 50% var(--ac-radius-sm); }
  aside .ac-bk .ac-booking__title { font-size: 1.0625rem; }

  /* The service switch shares the `.ac-seg` class with the details step's segmented radios, whose
     `.ac-seg span` rule (padding, min-height, ink colour) leaks into the switch's text and icon. */
  aside .ac-bk .ac-seg .ac-seg__txt { display: grid; min-block-size: 0; padding: 0; border-radius: 0; font-size: inherit; font-weight: inherit; color: inherit; }
  aside .ac-bk .ac-seg .ac-seg__ic { display: grid; place-items: center; min-block-size: 0; padding: 0; color: #D8BE8A; font-size: 1rem; font-weight: inherit; }
  aside .ac-bk .ac-seg .ac-seg__btn.active .ac-seg__ic { color: #fff; }
  aside .ac-bk .ac-seg .visually-hidden { padding: 0; min-block-size: 0; }

  /* the absolutely positioned "→" for screen readers inside each chip must not escape the scroll row */
  aside .ac-bk .ac-bk__chip-list, aside .ac-bk .ac-bk__chip { position: relative; }

  @container booking (width < 36rem) {
    /* service switch: one compact strip under the title */
    aside .ac-bk .ac-seg { inline-size: 100%; margin: 0; }
    aside .ac-bk .ac-seg .ac-seg__btn { min-block-size: 2.875rem; padding: 0.3rem 0.6rem 0.3rem 0.35rem; gap: 0.5rem; }
    aside .ac-bk .ac-seg__ic { inline-size: 2rem; block-size: 2rem; font-size: 0.95rem; }
    aside .ac-bk .ac-seg__txt small { display: none; }

    aside .ac-bk form { padding: var(--ac-space-4) var(--ac-space-4) var(--ac-space-5); }

    /* trip type: the switch spans the card, its label is the card's own line */
    aside .ac-bk .ac-bk__toolbar { margin-bottom: var(--ac-space-4); }
    aside .ac-bk .ac-bk__toolbar-lbl { display: none; }
    aside .ac-bk .ac-switch { inline-size: 100%; border-radius: var(--ac-radius-lg); }

    /* from / to: stacked on a dashed gold route line that joins the two field icons */
    aside .ac-bk .ac-route-picker { position: relative; grid-template-columns: minmax(0, 1fr); gap: var(--ac-space-3); }
    aside .ac-bk .ac-route-picker .ac-swap {
      position: absolute; inset-inline-end: 0.75rem; inset-block-start: calc(1.55rem + var(--ac-ctl-h) + var(--ac-space-3) / 2); translate: 0 -50%; rotate: 90deg; margin: 0;
      inline-size: 2.5rem; block-size: 2.5rem; border-radius: 50%; background: var(--ac-surface-3); box-shadow: 0 0 0 4px var(--ac-surface-3), var(--ac-shadow-1);
    }
    /* room for the swap button inside the control, not around TomSelect's wrapper (it carries .form-control too) */
    aside .ac-bk .ac-route-picker .ac-field > .ts-wrapper.form-control { padding-inline-end: 0; }
    aside .ac-bk .ac-route-picker .ac-field > .form-control:not(.ts-wrapper), aside .ac-bk .ac-route-picker .ts-control { padding-inline-end: 3.75rem; }
    aside .ac-bk .ac-route-picker .ts-wrapper.single .ts-control::after { inset-inline-end: 3.5rem; }

    /* date, time, passengers, bags: a 2 × 2 grid; Şoförlü: the two days side by side, time below */
    aside .ac-bk .ac-booking__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ac-space-3); }
    aside .ac-bk .ac-booking__grid > .ac-span-2 { grid-column: 1 / -1; }
    aside .ac-bk .ac-kr-when > :last-child { grid-column: 1 / -1; }
    aside .ac-bk .ac-stepper { grid-template-columns: 2.5rem minmax(2.25rem, 1fr) 2.5rem; }

    aside .ac-bk .ac-bk__return { margin-top: var(--ac-space-3); padding: var(--ac-space-3); border: 1px dashed var(--ac-line-strong); border-radius: var(--ac-radius); }

    /* popular routes: a wrapped cloud (no hidden horizontal scroll in a narrow card) */
    aside .ac-bk .ac-bk__chips { flex-wrap: wrap; margin-top: var(--ac-space-4); padding-top: var(--ac-space-3); border-top: 1px solid var(--ac-line); }
    aside .ac-bk .ac-bk__chip-list { flex-wrap: wrap; overflow: visible; mask-image: none; }
    aside .ac-bk .ac-bk__chip { min-block-size: 2.5rem; padding: 0.3rem 0.7rem; white-space: normal; font-size: 0.78rem; }

    /* submit: full-width button, the note under it */
    aside .ac-bk .ac-booking__submit { grid-template-columns: minmax(0, 1fr); gap: var(--ac-space-3); }
    aside .ac-bk .ac-booking__submit .btn-solid { order: -1; inline-size: 100%; justify-content: center; }
    aside .ac-bk .ac-booking__note { font-size: 0.8125rem; }

    /* foot: trust line as three equal ticks, WhatsApp full width */
    aside .ac-bk .ac-bk__foot { padding: var(--ac-space-3) var(--ac-space-4) var(--ac-space-4); }
    aside .ac-bk .ac-bk__trust { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); inline-size: 100%; gap: var(--ac-space-2); text-align: center; font-size: 0.75rem; }
    aside .ac-bk .ac-bk__trust li { flex-direction: column; gap: 0.2rem; }
    aside .ac-bk .ac-bk__trust .bi { font-size: 1.05rem; }
    aside .ac-bk .ac-bk__wa { inline-size: 100%; justify-content: center; }
  }
  /* phones / very narrow cards: the chips stay collapsed behind their button (rezervasyon.css above) */
  @media (width < 768px) {
    aside .ac-bk .ac-bk__chips:not(.is-acik) .ac-bk__chip-list { display: none; }
  }
}

/*
 * Card refinements (Vedat, 2026-10-29): smaller service-tab icons, the round-trip switch sits in the
 * field row next to the passengers (no extra toolbar row, so the card is flatter), no luggage field
 * on the card, and on very wide screens the hero card may grow past the text column.
 */
@layer custom {
  .ac-seg .ac-seg__btn { min-block-size: 2.75rem; gap: 0.5rem; padding-inline: 0.4rem 0.9rem; }
  .ac-seg__ic { inline-size: 1.75rem; block-size: 1.75rem; border-radius: 0.4rem; font-size: 0.875rem; }
  .ac-seg__txt b { font-size: 0.9rem; }
  .ac-seg__txt small { font-size: 0.68rem; }

  .ac-bk__trip { display: flex; flex-direction: column; min-inline-size: 0; }
  .ac-bk__trip .ac-switch { min-block-size: 3.25rem; padding: 0.3rem 0.85rem 0.3rem 0.4rem; border-radius: var(--ac-radius); white-space: nowrap; }
  .ac-bk__trip .ac-switch__txt b { font-size: 0.875rem; }
  .ac-bk__trip .ac-switch__txt small { font-size: 0.72rem; }
  @container booking (width < 40rem) {
    .ac-bk__when .ac-bk__trip { grid-column: 1 / -1; }
    .ac-bk__trip .ac-switch { inline-size: 100%; }
  }
}

/* ---------------------------------------------------------------- price rules, coupon, points
 * Summary lines from the pricing engine (App\Services\Fiyatlandirma): surcharges in the ink
 * colour, discounts in the success colour; the coupon / points box under the total (details step).
 */
@layer custom {
  .ac-sum__line.is-fark span, .ac-sum__line.is-indirim span { font-size: 0.875rem; color: var(--ac-muted); }
  .ac-sum__line.is-indirim b, .ac-voucher__sum .is-indirim span:last-child { color: var(--ac-success); }
  .ac-voucher__sum .is-fark span:first-child, .ac-voucher__sum .is-indirim span:first-child { color: var(--ac-muted); font-size: 0.9375rem; }

  .ac-disc { display: grid; gap: var(--ac-space-2); margin-top: var(--ac-space-3); }
  .ac-disc__box { border: 1px solid var(--ac-line); border-radius: var(--ac-radius); background: var(--ac-surface); }
  .ac-disc__box > summary { display: flex; align-items: center; gap: 0.5rem; padding: 0.7rem 0.85rem; cursor: pointer; font-weight: 700; font-size: 0.9375rem; list-style: none; }
  .ac-disc__box > summary::-webkit-details-marker { display: none; }
  .ac-disc__box > summary::after { content: "\F282"; font-family: bootstrap-icons; margin-inline-start: auto; font-weight: 400; transition: rotate var(--ac-dur-2, 0.2s) var(--ac-ease); }
  .ac-disc__box[open] > summary::after { rotate: 180deg; }
  .ac-disc__box > summary .bi { color: var(--ac-gold-text); }
  .ac-disc__box > summary small { font-weight: 600; color: var(--ac-muted); }
  .ac-disc__box > :not(summary) { margin-inline: 0.85rem; }
  .ac-disc__row { display: flex; gap: 0.5rem; }
  .ac-disc__row .form-control { flex: 1 1 auto; min-inline-size: 0; }
  .ac-disc__btn { flex: none; min-block-size: 2.75rem; padding-inline: 1rem; border: 1px solid var(--ac-ink); border-radius: var(--ac-radius); background: var(--ac-ink); color: var(--ac-surface); font-weight: 700; cursor: pointer; }
  .ac-disc__btn:hover { background: var(--ac-red-strong); border-color: var(--ac-red-strong); color: #fff; }
  .ac-disc__btn[aria-busy="true"] { opacity: 0.6; cursor: progress; }
  .ac-disc__link { min-block-size: 2.75rem; padding: 0 0.25rem; border: 0; background: none; color: var(--ac-red); font-weight: 700; text-decoration: underline; cursor: pointer; }
  .ac-disc__applied { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-block: 0 0.25rem; font-size: 0.9375rem; }
  .ac-disc__applied b { color: var(--ac-success); }
  .ac-disc__hint { display: block; margin-top: 0.4rem; font-size: 0.8125rem; color: var(--ac-muted); }
  .ac-disc__msg { margin-block: 0.4rem 0.75rem; font-size: 0.875rem; }
  .ac-disc__msg:empty { margin-block: 0 0.6rem; }
  .ac-disc__msg.is-hata { color: var(--ac-red); }
  .ac-disc__msg.is-basari { color: var(--ac-success); }
  @media (prefers-reduced-motion: reduce) { .ac-disc__box > summary::after { transition: none; } }
}

/* popular-route chips: smaller, so the whole row fits the card (Vedat, 2026-10-29); still >= 32px targets */
@layer custom {
  .ac-bk .ac-bk__chips { gap: var(--ac-space-2); margin-top: var(--ac-space-3); }
  .ac-bk .ac-bk__chips-lbl { font-size: 0.625rem; letter-spacing: 0.1em; }
  .ac-bk .ac-bk__chip { min-block-size: 2rem; padding: 0.2rem 0.6rem; gap: 0.25rem; font-size: 0.72rem; font-weight: 650; }
  .ac-bk .ac-bk__chip .bi { font-size: 0.7rem; }
  .ac-bk .ac-bk__chip-list { gap: 0.35rem; }
}

/*
 * Third service tab "Araç Kiralama" (Vedat, 2026-10-29: self-drive rental as a third tab, separate
 * from "Şoförlü"). Only cards with three tabs change: three equal columns and the indicator glides
 * by thirds; the tab body (two office selects, four date / time fields) uses the card's grid.
 */
@layer custom {
  .ac-seg:has(> li:nth-child(3)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ac-seg:has(> li:nth-child(3))::before { inline-size: calc((100% - 8px) / 3); }
  .ac-seg:has(> li:nth-child(3)):has(> li:nth-child(2) .active)::before { transform: translateX(100%); }
  .ac-seg:has(> li:nth-child(3)):has(> li:nth-child(3) .active)::before { transform: translateX(200%); }
  .ac-seg:has(> li:nth-child(3)) .ac-seg__btn { padding-inline-end: 0.6rem; }
  @container booking (width < 34rem) {
    .ac-seg:has(> li:nth-child(3)) .ac-seg__txt small { display: none; }
    .ac-seg:has(> li:nth-child(3)) .ac-seg__btn { justify-content: center; padding-inline: 0.35rem; gap: 0.35rem; }
    .ac-seg:has(> li:nth-child(3)) .ac-seg__txt b { font-size: 0.8rem; }
  }
  @container booking (width < 22rem) {
    .ac-seg:has(> li:nth-child(3)) .ac-seg__ic { display: none; }
  }

}

/*
 * "Araç Kiralama" tab body (Vedat, 2026-10-29: one office field, a "Farklı noktaya iade" switch that
 * opens the return office in the same slot, no shifting, compact). Row 1: pick-up office | return
 * cell (head: label + mini switch; body: the "same office" note OR the return select, same height).
 * Row 2: date, time, date, time, button. The office selects are TomSelect inputs like the transfer
 * pickers, so the wrapper itself carries no padding (the icon stays inside the box).
 */
@layer custom {
  .ac-bk .ac-ak-kart { display: grid; gap: var(--ac-space-3); }
  /* the office row sits above the date row, so an open office list is never covered by the fields below */
  .ac-bk .ac-ak-kart__ofis { position: relative; z-index: 4; display: grid; gap: var(--ac-space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .ac-bk .ac-ak-kart__zaman { position: relative; z-index: 1; }
  .ac-bk .ac-ak-kart .ts-dropdown { z-index: 60; }
  .ac-bk .ac-ak-kart .ac-field .ts-wrapper.form-control { padding: 0; border: 0; background: none; box-shadow: none; min-block-size: 0; }
  .ac-bk .ac-ak-kart .ac-field > select.form-control { padding-inline-start: var(--ac-ctl-inset); appearance: auto; }

  .ac-bk .ac-ak-kart__iade-bas { display: flex; align-items: center; justify-content: space-between; gap: var(--ac-space-2); min-block-size: 1.5rem; margin-bottom: 0.5rem; }
  .ac-bk .ac-ak-kart__iade-bas .form-label { margin: 0; }
  .ac-bk .ac-ak-kart__alis .form-label { display: flex; align-items: center; min-block-size: 1.5rem; margin-bottom: 0.5rem; }
  .ac-bk .ac-switch--mini { gap: 0.45rem; min-block-size: 0; padding: 0; border: 0; background: none; }
  .ac-bk .ac-switch--mini:has(.ac-switch__input:checked) { background: none; }
  .ac-bk .ac-switch--mini .ac-switch__track { inline-size: 2.5rem; block-size: 1.375rem; }
  .ac-bk .ac-switch--mini .ac-switch__thumb { inset-block-start: 2px; inset-inline-start: 2px; inline-size: 1.125rem; block-size: 1.125rem; font-size: 0.62rem; }
  .ac-bk .ac-switch--mini:has(.ac-switch__input:checked) .ac-switch__thumb { transform: translateX(1.125rem); }
  .ac-bk .ac-switch--mini .ac-switch__thumb .bi:last-child { opacity: 0; transform: scale(0.6); }
  .ac-bk .ac-switch--mini:has(.ac-switch__input:checked) .ac-switch__thumb .bi:first-child { opacity: 0; transform: scale(0.6); }
  .ac-bk .ac-switch--mini:has(.ac-switch__input:checked) .ac-switch__thumb .bi:last-child { opacity: 1; transform: none; }
  .ac-bk .ac-switch--mini .ac-switch__txt b { font-size: 0.8rem; font-weight: 700; }

  /* the "same office" note has the control's height, so switching never moves anything */
  .ac-bk .ac-ak-kart__ayni {
    display: flex; align-items: center; gap: 0.6rem; min-block-size: var(--ac-ctl-h); margin: 0; padding: 0 1rem;
    border: 1px dashed var(--ac-line-strong); border-radius: var(--ac-radius); background: var(--ac-surface-2);
    color: var(--ac-muted); font-size: 0.875rem; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  }
  .ac-bk .ac-ak-kart__ayni .bi { color: var(--ac-gold-text); font-size: 1.05rem; }
  .ac-bk .ac-ak-kart__ayni b { color: var(--ac-ink); font-weight: 700; }
  .ac-bk .ac-ak-kart__ayni > span { overflow: hidden; text-overflow: ellipsis; }
  .ac-bk .ac-ak-kart__iade-secim { display: none; }
  .ac-bk .ac-ak-kart__iade:has([data-ak-farkli]:checked) .ac-ak-kart__ayni { display: none; }
  .ac-bk .ac-ak-kart__iade:has([data-ak-farkli]:checked) .ac-ak-kart__iade-secim { display: block; animation: ac-ak-giris var(--ac-dur-2, 200ms) var(--ac-ease, ease) backwards; }
  @keyframes ac-ak-giris { from { opacity: 0; transform: translateY(-3px); } }

  .ac-bk .ac-ak-kart__zaman { display: grid; gap: var(--ac-space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
  .ac-bk .ac-ak-kart__git { grid-column: 1 / -1; }
  .ac-bk .ac-ak-kart__git .btn-solid { inline-size: 100%; justify-content: center; min-block-size: var(--ac-ctl-h); white-space: nowrap; }
  @container booking (width >= 46rem) {
    .ac-bk .ac-ak-kart__zaman { grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.85fr) minmax(0, 1.25fr) minmax(0, 0.85fr) auto; }
    .ac-bk .ac-ak-kart__git { grid-column: auto; }
    .ac-bk .ac-ak-kart__git .btn-solid { inline-size: auto; padding-inline: 1.4rem; }
  }
  @container booking (width < 30rem) {
    .ac-bk .ac-ak-kart__ofis { grid-template-columns: minmax(0, 1fr); }
  }
  @media (prefers-reduced-motion: reduce) {
    .ac-bk .ac-ak-kart__iade:has([data-ak-farkli]:checked) .ac-ak-kart__iade-secim { animation: none; }
  }

  /* trust line follows the open tab */
  .ac-bk__trust [data-guven="sofor-suz"] { display: none; }
  .ac-bk:has(.tab-pane[data-pane="arac_kiralama"].active) .ac-bk__trust [data-guven="soforlu"] { display: none; }
  .ac-bk:has(.tab-pane[data-pane="arac_kiralama"].active) .ac-bk__trust [data-guven="sofor-suz"] { display: inline-flex; }
}

/*
 * Gate tabs (Vedat, 2026-10-30: "Transfer - Şoförlü - Araç Kiralama seçimleri daha belirgin, şık, beni
 * şaşırt"). The service switch becomes three boarding-gate tabs standing on the lower edge of the
 * dark head. The open tab takes the card's own surface and flows into the form below it (inverted
 * corners), with a red departure bar, a red icon disc and its gate number; the closed tabs are dark
 * glass with a gold gate number, like a departure board. Opening a tab lifts the icon off (transform
 * only, off under reduced motion). Scoped to the card head, so the details step's `.ac-seg` radios
 * keep their look; selectors are a little heavier than the earlier sliding-indicator rules on purpose.
 */
@layer custom {
  .ac-booking.ac-bk > .ac-bk__head { align-items: flex-end; padding-block-end: 0; column-gap: var(--ac-space-4); }
  .ac-booking.ac-bk > .ac-bk__head > .ac-booking__mark,
  .ac-booking.ac-bk > .ac-bk__head > .ac-booking__titles { align-self: center; margin-block-end: 0.55rem; }
  .ac-booking.ac-bk > .ac-bk__head::after { content: none; } /* the open tab is the seam now; the foot keeps its perforation */

  .ac-bk .ac-bk__head .ac-seg {
    display: flex; flex-wrap: nowrap; flex: 0 1 44rem; justify-content: flex-end; gap: 0.375rem; align-self: flex-end; margin: 0 0 0 auto; padding: 0;
    border: 0; border-radius: 0; background: none; box-shadow: none;
  }
  .ac-bk .ac-bk__head .ac-seg::before { content: none; }
  .ac-bk .ac-bk__head .ac-seg > li { position: relative; flex: 0 1 14.5rem; min-inline-size: 0; }

  .ac-bk .ac-bk__head .ac-seg .ac-seg__btn {
    position: relative; z-index: 1; display: flex; align-items: center; gap: 0.6rem; inline-size: 100%; min-block-size: 3.875rem;
    padding: 0.55rem 1.6rem 0.65rem 0.6rem; border: 1px solid rgb(255 255 255 / 0.09); border-block-end: 0;
    border-radius: 0.875rem 0.875rem 0 0; color: #B9B9C3;
    background: linear-gradient(180deg, rgb(255 255 255 / 0.075), rgb(255 255 255 / 0.02));
    transition: background-color var(--ac-dur-2) var(--ac-ease), color var(--ac-dur-2) var(--ac-ease), transform var(--ac-dur-2) var(--ac-ease);
  }
  .ac-bk .ac-bk__head .ac-seg .ac-seg__btn:hover { color: #fff; background: linear-gradient(180deg, rgb(255 255 255 / 0.13), rgb(255 255 255 / 0.04)); transform: translateY(-2px); }
  .ac-bk .ac-bk__head .ac-seg .ac-seg__btn:focus-visible { outline: 2px solid #D8BE8A; outline-offset: -4px; }

  /* gate number, top right: gold on the dark tabs, red on the open one */
  .ac-bk .ac-bk__head .ac-seg__no {
    position: absolute; inset-block-start: 0.4rem; inset-inline-end: 0.55rem;
    font: 700 0.6rem/1 ui-monospace, "SFMono-Regular", Consolas, monospace; letter-spacing: 0.08em; color: #D8BE8A; opacity: 0.75;
  }
  .ac-bk .ac-bk__head .ac-seg .ac-seg__ic {
    inline-size: 2.125rem; block-size: 2.125rem; border-radius: 50%; font-size: 0.95rem;
    background: transparent; color: #D8BE8A; box-shadow: inset 0 0 0 1px rgb(216 190 138 / 0.45);
    transition: background-color var(--ac-dur-2) var(--ac-ease), color var(--ac-dur-2) var(--ac-ease), box-shadow var(--ac-dur-2) var(--ac-ease);
  }
  .ac-bk .ac-bk__head .ac-seg .ac-seg__txt b { font-size: 0.95rem; color: inherit; }
  .ac-bk .ac-bk__head .ac-seg .ac-seg__txt small { font-size: 0.68rem; color: #8E8E99; }

  /* the open tab: card surface, departure bar, inverted corners into the form */
  .ac-bk .ac-bk__head .ac-seg .ac-seg__btn.active {
    z-index: 2; border-color: transparent; background: var(--ac-surface-3); color: var(--ac-ink); transform: none;
    box-shadow: 0 -14px 32px -18px rgb(210 10 20 / 0.75);
  }
  .ac-bk .ac-bk__head .ac-seg .ac-seg__btn.active::before {
    content: ""; position: absolute; inset: 0 0.875rem auto; block-size: 3px; border-radius: 0 0 3px 3px;
    background: linear-gradient(90deg, var(--ac-brand-red-strong), var(--ac-brand-red) 40%, #D8BE8A);
    animation: ac-kapi-cizgi var(--ac-dur-3, 420ms) cubic-bezier(0.32, 0.72, 0, 1);
  }
  .ac-bk .ac-bk__head .ac-seg > li:has(.active)::before,
  .ac-bk .ac-bk__head .ac-seg > li:has(.active)::after {
    content: ""; position: absolute; z-index: 2; inset-block-end: 0; inline-size: 0.875rem; block-size: 0.875rem; pointer-events: none;
  }
  .ac-bk .ac-bk__head .ac-seg > li:has(.active)::before { inset-inline-start: -0.875rem; background: radial-gradient(circle at 0 0, transparent 0.875rem, var(--ac-surface-3) calc(0.875rem + 0.5px)); }
  .ac-bk .ac-bk__head .ac-seg > li:has(.active)::after { inset-inline-end: -0.875rem; background: radial-gradient(circle at 100% 0, transparent 0.875rem, var(--ac-surface-3) calc(0.875rem + 0.5px)); }
  .ac-bk .ac-bk__head .ac-seg .ac-seg__btn.active .ac-seg__no { color: var(--ac-red); opacity: 1; }
  .ac-bk .ac-bk__head .ac-seg .ac-seg__btn.active .ac-seg__ic {
    background: linear-gradient(135deg, #E0121C, var(--ac-brand-red-strong)); color: #fff;
    box-shadow: 0 8px 18px -8px rgb(210 10 20 / 0.9), inset 0 -2px 0 rgb(216 190 138 / 0.6);
  }
  .ac-bk .ac-bk__head .ac-seg .ac-seg__btn.active .ac-seg__ic .bi { animation: ac-kapi-kalkis var(--ac-dur-3, 420ms) cubic-bezier(0.32, 0.72, 0, 1); }
  .ac-bk .ac-bk__head .ac-seg .ac-seg__btn.active .ac-seg__txt small { color: var(--ac-muted); }

  @keyframes ac-kapi-cizgi { from { transform: scaleX(0); } to { transform: scaleX(1); } }
  @keyframes ac-kapi-kalkis { 0% { transform: translate(-0.35rem, 0.35rem) scale(0.7); opacity: 0; } 100% { transform: none; opacity: 1; } }
  /* the airplane icon of the card keeps its 45° take-off angle */
  .ac-bk .ac-bk__head .ac-seg .ac-seg__btn .bi-airplane { transform: rotate(45deg); }
  .ac-bk .ac-bk__head .ac-seg .ac-seg__btn.active .bi-airplane { animation-name: ac-kapi-kalkis-ucak; }
  @keyframes ac-kapi-kalkis-ucak { 0% { transform: translate(-0.35rem, 0.35rem) rotate(45deg) scale(0.7); opacity: 0; } 100% { transform: rotate(45deg); opacity: 1; } }

  /* narrow cards: the tabs take a full row under the title */
  @container booking (width < 44rem) {
    .ac-booking.ac-bk > .ac-bk__head { flex-wrap: wrap; padding-block-start: var(--ac-space-3); }
    .ac-bk .ac-bk__head .ac-seg { flex: 1 0 100%; margin: 0; }
    .ac-bk .ac-bk__head .ac-seg > li { flex: 1 1 0; }
    .ac-bk .ac-bk__head .ac-seg .ac-seg__btn { padding-inline-end: 1.35rem; }
  }
  @container booking (width < 34rem) {
    .ac-bk .ac-bk__head .ac-seg { gap: 0.25rem; }
    .ac-bk .ac-bk__head .ac-seg .ac-seg__btn { flex-direction: column; justify-content: center; gap: 0.3rem; min-block-size: 4.25rem; padding: 0.6rem 0.25rem 0.5rem; text-align: center; }
    .ac-bk .ac-bk__head .ac-seg .ac-seg__txt { justify-items: center; }
    .ac-bk .ac-bk__head .ac-seg .ac-seg__txt small { display: none; }
    .ac-bk .ac-bk__head .ac-seg .ac-seg__txt b { font-size: 0.82rem; line-height: 1.1; white-space: normal; text-wrap: balance; }
    .ac-bk .ac-bk__head .ac-seg .ac-seg__ic { display: grid; inline-size: 1.875rem; block-size: 1.875rem; font-size: 0.85rem; }
    .ac-bk .ac-bk__head .ac-seg__no { inset-block-start: 0.3rem; inset-inline-end: 0.4rem; font-size: 0.55rem; }
  }

  @media (prefers-reduced-motion: reduce) {
    .ac-bk .ac-bk__head .ac-seg .ac-seg__btn,
    .ac-bk .ac-bk__head .ac-seg .ac-seg__ic { transition: none; }
    .ac-bk .ac-bk__head .ac-seg .ac-seg__btn:hover { transform: none; }
    .ac-bk .ac-bk__head .ac-seg .ac-seg__btn.active::before,
    .ac-bk .ac-bk__head .ac-seg .ac-seg__btn.active .ac-seg__ic .bi { animation: none; }
  }
}
