/* ============================================================================
   TOUR STICKY WIDGET V2 (pilot, 2026-07-17) — mock: Downloads/booking-widget.html
   The whole 4-step booking flow lives INSIDE the sticky side widget:
   header (price) → slim step bars → scrollable step body → fixed footer
   (breakdown / total / CTA / trust / WhatsApp+Call).
   Same architecture as booking-modal2 (bm2): the legacy .booking form is the
   source of truth; step 1 is a proxy pick-UI, steps 2-4 are the real form
   steps reskinned inside [data-bw2-formhost].
   Fonts per brand policy: Plus Jakarta Sans + JetBrains Mono kickers.
   Desktop-only (>900px), gated to pilot products via t4w2.on. Namespace: t4-bw2.
   ========================================================================== */

/* the original widget stays in the DOM but yields to the v2 shell */
.t4-aside.t4-bw2-on > .t4-widget { display: none !important; }

.t4-bw2 {
	--bw2-red: #FF2800;
	--bw2-red-soft: #ffece7;
	--bw2-ink: #141414;
	--bw2-body: #4a4a4a;
	--bw2-muted: #8a8a8a;
	--bw2-line: #e8e3d9;
	--bw2-line2: #f0ece4;
	--bw2-page: #f7f3ec;
	--bw2-card: #fff;
	--bw2-ok: #1F7A3D;
	--bw2-ok-bg: #e9f5ec;
	--bw2-warn: #B26A00;
	--bw2-err: #C4271B;
	--bw2-wa: #25D366;
	position: sticky;
	/* same offset math as .t4-widget (fixed header + promo bar) */
	top: calc(var(--t4-promo-h, 28px) + var(--t4-header-h, 80px) + 16px);
	max-height: calc(100vh - var(--t4-promo-h, 28px) - var(--t4-header-h, 80px) - 32px);
	display: flex;
	flex-direction: column;
	background: var(--bw2-card);
	border: 1px solid var(--bw2-line);
	border-top: 3px solid var(--bw2-red);
	border-radius: 14px 14px 12px 12px;
	box-shadow:
		0 24px 60px -20px rgba(12, 12, 12, .18),
		0 8px 20px -8px rgba(12, 12, 12, .10);
	overflow: hidden;
	font-family: var(--t4-sans);
	color: var(--bw2-ink);
}
/* pseudo-elements included: the radio ::before circles grow their border on select —
   without border-box they inflate outward and the row jerks (user 2026-07-17) */
.t4-bw2 *, .t4-bw2 *::before, .t4-bw2 *::after { box-sizing: border-box; }
.t4-bw2 button { font-family: inherit; }

/* ================= HEADER: price + rating ================= */
.t4-bw2__hd { padding: 14px 16px 10px; flex: none; }
.t4-bw2__hdrow { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.t4-bw2__price { display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.t4-bw2__price .p { font-size: var(--t4-fs-h3); font-weight: 800; line-height: 1; letter-spacing: -.3px; }
.t4-bw2__price .u { font-family: var(--t4-mono); font-size: var(--t4-fs-micro); color: var(--bw2-muted); letter-spacing: .5px; }
.t4-bw2__price .was { font-size: var(--t4-fs-small); color: var(--bw2-muted); font-weight: 600; text-decoration: line-through; }
.t4-bw2__price .was s { text-decoration: line-through; }
.t4-bw2__rating { display: flex; align-items: center; gap: 5px; flex: none; padding-top: 3px; }
.t4-bw2__rating svg { width: 12px; height: 12px; color: #F5A623; fill: currentColor; display: block; }
.t4-bw2__rating .t4-widget__rating-stars,
.t4-bw2__rating span { display: inline-flex; align-items: center; gap: 1px; }
.t4-bw2__rating .num { font-size: var(--t4-fs-micro); font-weight: 600; color: var(--bw2-body); }

/* ================= SLIM STEP BARS + STEP NAME ================= */
.t4-bw2__steps { display: flex; align-items: center; gap: 5px; padding: 0 16px 11px; border-bottom: 1px solid var(--bw2-line); flex: none; }
.t4-bw2__ss { flex: 1; height: 3px; border-radius: 2px; background: #e6e1d7; border: none; padding: 0; cursor: pointer; transition: .15s; }
.t4-bw2__ss.done { background: var(--bw2-ok); }
.t4-bw2__ss.on { background: var(--bw2-red); }
.t4-bw2__stepname { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px 0; flex: none; }
.t4-bw2__stepname .cur {
	font-family: var(--t4-mono);
	font-size: var(--t4-fs-micro); letter-spacing: 1.6px; text-transform: uppercase;
	font-weight: 600; color: var(--bw2-ink);
}
.t4-bw2__stepname .cnt { font-size: var(--t4-fs-micro); color: var(--bw2-muted); }

/* ================= SCROLLABLE BODY ================= */
/* scrollbar-gutter: stable — when content grows past the fold (e.g. the qty stepper
   appears on package select) the scrollbar must not STEAL 10px and shrink every row */
.t4-bw2__body { padding: 12px 16px 14px; overflow-y: auto; flex: 1 1 auto; min-height: 0; scrollbar-width: thin; scrollbar-gutter: stable; overscroll-behavior: contain; }
.t4-bw2__body::-webkit-scrollbar { width: 6px; }
.t4-bw2__body::-webkit-scrollbar-thumb { background: #ddd7c9; border-radius: 3px; }
.t4-bw2__secl {
	font-family: var(--t4-mono);
	font-size: var(--t4-fs-micro); letter-spacing: 1.6px; color: var(--bw2-muted);
	text-transform: uppercase; font-weight: 600; margin-bottom: 8px;
}
.t4-bw2__sec + .t4-bw2__sec { margin-top: 15px; }
.t4-bw2__sec[hidden] { display: none; }
.t4-bw2__subnote { font-size: var(--t4-fs-micro); color: var(--bw2-muted); margin: -2px 0 10px; }

/* ================= STEP 1: dates / slots / qty / private ================= */
.t4-bw2__datehd { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.t4-bw2__datehd .t4-bw2__secl { margin: 0; }
.t4-bw2__calbtn {
	display: inline-flex; align-items: center; gap: 5px; background: none; border: none;
	color: var(--bw2-red); font-size: var(--t4-fs-micro); font-weight: 600; cursor: pointer; padding: 0;
}
.t4-bw2__calbtn:hover { text-decoration: underline; }
.t4-bw2__calbtn svg { width: 12px; height: 12px; stroke: var(--bw2-red); fill: none; stroke-width: 2; }

.t4-bw2__dates { display: flex; align-items: stretch; gap: 5px; }
.t4-bw2__arw {
	width: 22px; border: 1px solid var(--bw2-line); background: var(--bw2-card); border-radius: 7px;
	cursor: pointer; display: flex; align-items: center; justify-content: center; flex: none; transition: .12s;
}
.t4-bw2__arw:hover { border-color: #c9c2b4; }
.t4-bw2__arw:disabled { opacity: .35; cursor: not-allowed; }
.t4-bw2__arw svg { width: 12px; height: 12px; stroke: var(--bw2-body); fill: none; stroke-width: 2; }
.t4-bw2__drow { display: grid; grid-template-columns: repeat(5, 1fr); gap: 5px; flex: 1; min-width: 0; }
.t4-bw2__d {
	position: relative; border: 1px solid var(--bw2-line); background: var(--bw2-card); border-radius: 8px;
	padding: 7px 2px 6px; text-align: center; cursor: pointer; transition: .12s;
}
.t4-bw2__d:hover { border-color: #c9c2b4; }
.t4-bw2__d .dow { font-family: var(--t4-mono); font-size: 8.5px; letter-spacing: .5px; color: var(--bw2-muted); text-transform: uppercase; font-weight: 600; }
.t4-bw2__d .dd { font-size: var(--t4-fs-body); font-weight: 800; line-height: 1.15; margin: 1px 0; }
.t4-bw2__d .mo { font-family: var(--t4-mono); font-size: 8.5px; letter-spacing: .5px; color: var(--bw2-muted); text-transform: uppercase; }
.t4-bw2__d.sel { background: var(--bw2-red); border-color: var(--bw2-red); }
.t4-bw2__d.sel .dow, .t4-bw2__d.sel .mo { color: rgba(255, 255, 255, .85); }
.t4-bw2__d.sel .dd { color: #fff; }
.t4-bw2__d .today {
	position: absolute; top: -6px; left: 50%; transform: translateX(-50%);
	background: #F5A623; color: #fff; font-size: 7px; font-weight: 600;
	letter-spacing: .4px; padding: 1px 5px; border-radius: 7px; white-space: nowrap;
}

.t4-bw2__slots { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.t4-bw2__slot {
	border: 1px solid var(--bw2-line); background: var(--bw2-card); border-radius: 8px;
	padding: 8px 9px; cursor: pointer; text-align: left; transition: .12s;
}
.t4-bw2__slot:hover { border-color: #c9c2b4; }
.t4-bw2__slot .t { font-size: var(--t4-fs-body); font-weight: 800; line-height: 1; }
.t4-bw2__slot .s { font-size: var(--t4-fs-micro); color: var(--bw2-muted); margin-top: 3px; }
.t4-bw2__slot .s.low { color: var(--bw2-warn); font-weight: 600; }
/* selected look = inset shadow, NOT a thicker border — border-width deltas shift layout */
.t4-bw2__slot.sel { border-color: var(--bw2-red); box-shadow: inset 0 0 0 1px var(--bw2-red); background: var(--bw2-red-soft); }
.t4-bw2__slot.sel .t { color: var(--bw2-red); }
.t4-bw2__slot:disabled { opacity: .4; cursor: not-allowed; }
.t4-bw2__slotsbox .t4-cutoff { margin: 0; }
.t4-bw2__loading { display: flex; align-items: center; gap: 9px; padding: 12px 2px; color: var(--bw2-body); font-size: var(--t4-fs-micro); font-weight: 600; }
.t4-bw2__dots { display: inline-flex; gap: 4px; align-items: center; }
.t4-bw2__dots i {
	width: 5px; height: 5px; border-radius: 50%; background: var(--bw2-red); display: block;
	animation: t4bw2Dot 1.1s infinite ease-in-out;
}
.t4-bw2__dots i:nth-child(2) { animation-delay: .18s; }
.t4-bw2__dots i:nth-child(3) { animation-delay: .36s; }
@keyframes t4bw2Dot { 0%, 70%, 100% { opacity: .25; transform: translateY(0); } 32% { opacity: 1; transform: translateY(-4px); } }
.t4-bw2__empty { padding: 10px 2px; color: var(--bw2-muted); font-size: var(--t4-fs-micro); }

.t4-bw2__qty {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	border: 1px solid var(--bw2-line); background: var(--bw2-card); border-radius: 9px; padding: 9px 11px;
}
.t4-bw2__qty .lb { font-size: var(--t4-fs-small); font-weight: 600; }
.t4-bw2__qty .sb { font-size: var(--t4-fs-micro); color: var(--bw2-muted); margin-top: 1px; }
.t4-bw2__stepper {
	display: flex; align-items: center; border: 1px solid var(--bw2-line);
	border-radius: 7px; overflow: hidden; flex: none;
}
.t4-bw2__stepper button {
	width: 27px; height: 27px; border: none; background: var(--bw2-page); cursor: pointer;
	display: flex; align-items: center; justify-content: center; font-size: var(--t4-fs-body); font-weight: 600; color: var(--bw2-ink);
}
.t4-bw2__stepper button:disabled { opacity: .3; cursor: not-allowed; }
.t4-bw2__stepper .n { width: 28px; text-align: center; font-size: var(--t4-fs-small); font-weight: 600; }

/* addon row (private / refund / terms) */
.t4-bw2__addon {
	position: relative;
	display: flex; align-items: center; gap: 9px; border: 1px solid var(--bw2-line);
	background: var(--bw2-card); border-radius: 9px; padding: 9px 11px; cursor: pointer; transition: .12s;
}
.t4-bw2__addon.on { border-color: var(--bw2-red); background: var(--bw2-red-soft); }
.t4-bw2__cbx {
	width: 17px; height: 17px; border: 1.5px solid #cfc8ba; border-radius: 4px; flex: none;
	display: flex; align-items: center; justify-content: center; background: #fff; transition: .12s;
}
.t4-bw2__addon.on .t4-bw2__cbx { background: var(--bw2-red); border-color: var(--bw2-red); }
.t4-bw2__cbx svg { width: 10px; height: 10px; stroke: #fff; fill: none; stroke-width: 3; opacity: 0; }
.t4-bw2__addon.on .t4-bw2__cbx svg { opacity: 1; }
.t4-bw2__addon .txt { flex: 1; min-width: 0; }
.t4-bw2__addon .txt b { font-size: var(--t4-fs-micro); font-weight: 600; display: block; }
.t4-bw2__addon .txt span { font-size: var(--t4-fs-micro); color: var(--bw2-muted); line-height: 1.3; display: block; margin-top: 1px; }
.t4-bw2__addon .pr { font-size: var(--t4-fs-micro); font-weight: 600; color: var(--bw2-red); flex: none; }

/* "?" badge + dark popover (bm2 pattern) */
.t4-bw2__q {
	width: 18px; height: 18px; border-radius: 50%; border: 1px solid #cfc8ba; background: #fff;
	color: var(--bw2-muted); font-size: var(--t4-fs-micro); font-weight: 600; line-height: 1;
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex: none;
	transition: .12s; padding: 0;
}
.t4-bw2__q:hover { border-color: var(--bw2-red); color: var(--bw2-red); }
.t4-bw2__pop {
	position: absolute; right: 0; bottom: calc(100% + 10px); z-index: 8;
	width: 250px; background: #17181c; color: #fff; border-radius: 12px; padding: 12px 14px;
	font-size: var(--t4-fs-micro); line-height: 1.55; font-weight: 400; box-shadow: 0 12px 34px rgba(0, 0, 0, .28);
	animation: t4bw2In .18s ease both;
}
.t4-bw2__pop::after {
	content: ''; position: absolute; right: 20px; top: 100%;
	border: 7px solid transparent; border-top-color: #17181c;
}
@keyframes t4bw2In { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ================= FORM HOST (steps 2-4 = the real .booking, reskinned) ================= */
.t4-bw2__formhost { overflow: hidden; }
.t4-bw2__formhost .booking,
.t4-bw2__formhost .booking-step,
.t4-bw2__formhost .booking-step > div {
	width: 100% !important; max-width: 100% !important; min-width: 0 !important;
}
.t4-bw2__formhost .booking { display: block; padding: 0 !important; margin: 0 !important; }
.t4-bw2__formhost .booking-step { padding: 0 !important; margin: 0 !important; }
/* everything the proxy UI / footer already covers dies here.
   Includes tour-v4.js t4EnhanceBookingForm injections (.t4-formhead, .t4-paylabel,
   .t4-paytrust, .t4-picksum) — the page form was enhanced at load. */
.t4-bw2__formhost .section-header,
.t4-bw2__formhost .booking-step__title,
.t4-bw2__formhost .booking-step__header,
.t4-bw2__formhost .calendar,
.t4-bw2__formhost .booking .variants,
.t4-bw2__formhost .booking-step__label,
.t4-bw2__formhost .js-number_of_buggies_list,
.t4-bw2__formhost .number-of-buggies,
.t4-bw2__formhost .booking-step__extra,
.t4-bw2__formhost .booking-step__extra-hint,
.t4-bw2__formhost .field:has(.field__select),
.t4-bw2__formhost .booking-step__footer,
.t4-bw2__formhost .booking-step__back,
.t4-bw2__formhost .js-create-order-button,
.t4-bw2__formhost .booking-checkout__total,
.t4-bw2__formhost .js-selected_tour_options,
.t4-bw2__formhost .modal__current,
.t4-bw2__formhost .booking__attention,
.t4-bw2__formhost .booking-step__recap,
.t4-bw2__formhost .booking-step__addons-toggle,
.t4-bw2__formhost .booking-step__note,
.t4-bw2__formhost .booking-checkout__title,
.t4-bw2__formhost .booking-checkout__table,
.t4-bw2__formhost .booking-checkout__btn,
.t4-bw2__formhost .modal__divider,
.t4-bw2__formhost .t4-formhead,
.t4-bw2__formhost .t4-paylabel,
.t4-bw2__formhost .t4-paytrust,
.t4-bw2__formhost .t4-picksum,
.t4-bw2__formhost .t4-refund,
.t4-bw2__formhost .tabby-roadmap { display: none !important; }

/* packages live behind a collapsed toggle in the legacy step — v2 shows them open */
.t4-bw2__formhost .booking-step__addons-collapsible {
	display: block !important; height: auto !important; max-height: none !important; overflow: visible !important;
}

/* --- step 2: contact fields (narrow column → single stack) --- */
.t4-bw2__formhost .booking-step__fields {
	display: grid; gap: 10px; grid-template-columns: 1fr;
	max-width: none !important; width: 100% !important;
}
.t4-bw2__formhost .field { display: block !important; margin: 0 !important; padding: 0 !important; width: 100% !important; max-width: none !important; }
/* mock field order (legacy DOM ships name→pickup→phone→email) */
.t4-bw2__formhost .field:has(.js-fullname) { order: 1; }
.t4-bw2__formhost .field:has(.js-email) { order: 2; }
.t4-bw2__formhost .field:has(.js-phone) { order: 3; }
.t4-bw2__formhost .field:has(.js-pickup_location) { order: 4; }
.t4-bw2__formhost .field__label { display: block !important; padding: 0 !important; margin: 0 !important; }
.t4-bw2__formhost .field__placeholder { display: none !important; }
.t4-bw2__flabel { display: block; font-size: var(--t4-fs-micro); font-weight: 600; color: var(--bw2-body); margin-bottom: 5px; }
.t4-bw2__flabel small { color: var(--bw2-muted); font-weight: 400; }
.t4-bw2__formhost .field__input {
	width: 100%; border: 1px solid #ded8cc !important; background: var(--bw2-card) !important;
	border-radius: 8px !important; padding: 9px 11px !important; font-size: var(--t4-fs-small) !important;
	font-family: inherit !important; color: var(--bw2-ink) !important; height: auto !important;
	transition: .12s;
}
.t4-bw2__formhost .field__input::placeholder { color: #b8b2a6 !important; opacity: 1 !important; font-weight: 400; }
.t4-bw2__formhost .field__input:focus {
	outline: none; border-color: var(--bw2-red) !important;
	box-shadow: 0 0 0 3px rgba(255, 40, 0, .1);
}
.t4-bw2__formhost .field.t4-invalid .field__input { border-color: var(--bw2-err) !important; box-shadow: 0 0 0 3px rgba(196, 39, 27, .08) !important; }
.t4-bw2__formhost .t4-ferr { color: var(--bw2-err); font-size: var(--t4-fs-micro); margin-top: 5px; }
.t4-bw2__formhost .iti { width: 100% !important; display: block !important; }
.t4-bw2__formhost .iti input.field__input,
.t4-bw2__formhost .iti input[type="tel"] { padding-left: 90px !important; }
.t4-bw2__formhost .iti__flag-container { padding: 0 !important; }
.t4-bw2__formhost .iti__selected-flag { padding: 0 8px 0 11px !important; background: none !important; width: 80px !important; }

/* --- step 3: packages = COMPACT radio rows (mock .pk), legacy cards re-gridded --- */
.t4-bw2__formhost .booking-step__cards {
	display: flex !important; flex-direction: column; gap: 7px; margin: 0 !important; width: 100% !important;
}
.t4-bw2__formhost .extra-card {
	position: relative;
	display: grid !important; grid-template-columns: 18px minmax(0, 1fr) auto; column-gap: 9px;
	align-items: start;
	border: 1px solid var(--bw2-line) !important; background: var(--bw2-card) !important;
	border-radius: 10px !important; padding: 11px 12px !important; cursor: pointer;
	transition: .12s; margin: 0 !important; width: 100% !important; min-height: 0 !important;
	box-shadow: none !important;
}
.t4-bw2__formhost .extra-card:hover { border-color: #c9c2b4 !important; }
.t4-bw2__formhost .extra-card.active {
	border-color: var(--bw2-red) !important; box-shadow: inset 0 0 0 1px var(--bw2-red) !important; background: var(--bw2-red-soft) !important;
}
/* radio dot */
.t4-bw2__formhost .extra-card::before {
	content: ''; grid-column: 1; grid-row: 1; width: 16px; height: 16px; border-radius: 50%;
	border: 1.5px solid #cfc8ba; background: #fff; margin-top: 1px; transition: .12s;
	box-sizing: border-box; /* border grows INWARD on select — no size jump */
}
.t4-bw2__formhost .extra-card.active::before { border-color: var(--bw2-red); border-width: 5px; }
.t4-bw2__formhost .extra-card::after { display: none !important; content: none !important; }
/* header wraps title/saved/sticker — dissolve it into the card grid */
.t4-bw2__formhost .extra-card__header { display: contents !important; }
.t4-bw2__formhost .extra-card__title {
	grid-column: 2; grid-row: 1;
	font-family: var(--t4-mono); font-size: var(--t4-fs-micro) !important; letter-spacing: 1.1px;
	text-transform: uppercase; font-weight: 600 !important; display: flex; align-items: center; gap: 6px;
	line-height: 1.6; margin: 0 !important; padding: 0 !important; background: none !important; text-align: left !important;
}
.t4-bw2__formhost .extra-card__title::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #9AA0A6; flex: none; }
.t4-bw2__formhost .extra-card--bronze .extra-card__title { color: #9C6633 !important; }
.t4-bw2__formhost .extra-card--bronze .extra-card__title::before { background: #C08552; }
.t4-bw2__formhost .extra-card--silver .extra-card__title { color: #6E7176 !important; }
.t4-bw2__formhost .extra-card--silver .extra-card__title::before { background: #9AA0A6; }
.t4-bw2__formhost .extra-card--gold .extra-card__title { color: #9A7B1F !important; }
.t4-bw2__formhost .extra-card--gold .extra-card__title::before { background: #D4AF37; }
/* JS-built one-line contents summary */
.t4-bw2__pksub { grid-column: 2; grid-row: 2; font-size: var(--t4-fs-micro); color: var(--bw2-muted); line-height: 1.4; margin-top: 2px; }
/* price block, right side */
.t4-bw2__formhost .extra-card__price {
	grid-column: 3; grid-row: 1; justify-self: end; text-align: right !important;
	font-size: var(--t4-fs-small) !important; font-weight: 800 !important; line-height: 1.1 !important;
	margin: 0 !important; padding: 0 !important; color: var(--bw2-ink) !important; letter-spacing: -.2px;
}
.t4-bw2__formhost .extra-card__price * {
	font-size: inherit !important; font-weight: inherit !important; color: inherit !important;
	margin: 0 !important; padding: 0 !important; letter-spacing: inherit !important; line-height: inherit !important;
	display: inline !important; vertical-align: baseline !important;
}
.t4-bw2__formhost .extra-card__price::before,
.t4-bw2__formhost .extra-card__price::after { display: none !important; content: none !important; }
/* struck ORIGINAL price above the package price (user 2026-07-17: "save 430" alone
   reads like the package itself costs the shown number). Must out-!important the
   price-flatten rule above. */
.t4-bw2__formhost .extra-card__price s.t4-bw2__pkold {
	display: block !important; font-size: var(--t4-fs-micro) !important; font-weight: 600 !important;
	color: var(--bw2-muted) !important; text-decoration: line-through !important;
	line-height: 1.3 !important; margin: 0 0 1px !important; letter-spacing: 0 !important;
}
.t4-bw2__formhost .extra-card__saved {
	grid-column: 3; grid-row: 2; justify-self: end;
	font-size: var(--t4-fs-micro) !important; font-weight: 600 !important; color: var(--bw2-ok) !important;
	background: var(--bw2-ok-bg) !important; padding: 2px 7px !important; border-radius: 7px !important;
	margin: 3px 0 0 !important; line-height: 1.3 !important; display: inline-block !important;
	letter-spacing: 0 !important; text-transform: none !important; width: auto !important; text-align: right;
}
/* not shown in the compact rows */
.t4-bw2__formhost .extra-card__old-price,
.t4-bw2__formhost .extra-card__list,
.t4-bw2__formhost .extra-card__btn,
.t4-bw2__formhost .extra-card hr { display: none !important; }
.t4-bw2__formhost .extra-card .checkbox__input { position: absolute; opacity: 0; pointer-events: none; }
/* "Most Popular" pill on the card edge */
.t4-bw2 .t4-bw2__formhost .extra-card .extra-card__sticker {
	position: absolute !important; top: 0 !important; bottom: auto !important; right: 10px !important; left: auto !important;
	transform: translateY(-50%) !important; width: auto !important; height: auto !important;
	background: var(--bw2-red) !important; color: #fff !important; font-size: 8px !important; font-weight: 600 !important;
	letter-spacing: .8px !important; padding: 2px 7px !important; border-radius: 8px !important;
	white-space: nowrap !important; text-transform: uppercase !important; line-height: 1.3 !important; margin: 0 !important;
	display: inline-block !important; z-index: 2;
}
/* qty stepper (per-buggy packages) appears under the row when selected */
.t4-bw2__formhost .extra-card__quantity {
	grid-column: 2 / -1; grid-row: 3; justify-self: start;
	display: flex !important; align-items: center !important; gap: 0 !important;
	border: 1px solid var(--bw2-line) !important; border-radius: 7px !important; overflow: hidden !important;
	margin: 8px 0 0 !important; width: auto !important;
}
.t4-bw2__formhost .extra-card__quantity.hidden { display: none !important; }
.t4-bw2 .t4-bw2__formhost .extra-card__quantity .quantity__btn {
	width: 27px !important; height: 27px !important; border: none !important; border-radius: 0 !important;
	background: var(--bw2-page) !important; color: var(--bw2-ink) !important; font-size: var(--t4-fs-small) !important;
	display: flex !important; align-items: center; justify-content: center; padding: 0 !important; min-width: 0 !important;
	box-shadow: none !important;
}
.t4-bw2 .t4-bw2__formhost .extra-card__quantity .quantity__btn svg { width: 12px !important; height: 12px !important; stroke: var(--bw2-ink) !important; fill: none; }
.t4-bw2 .t4-bw2__formhost .extra-card__quantity .quantity__input,
.t4-bw2 .t4-bw2__formhost .extra-card__quantity input {
	width: 30px !important; height: 27px !important; border: none !important; text-align: center !important;
	font-size: var(--t4-fs-micro) !important; font-weight: 600 !important; background: #fff !important; padding: 0 !important;
	color: var(--bw2-ink) !important; opacity: 1 !important; display: block !important; min-width: 0 !important;
}
/* an obvious secondary button, not a faint dashed hint (bm2 decision, user 2026-07-17) */
.t4-bw2__skip {
	display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 8px;
	padding: 10px; border: 1px solid var(--bw2-line); border-radius: 9px; font-size: var(--t4-fs-micro); font-weight: 600;
	color: var(--bw2-ink); cursor: pointer; background: var(--bw2-card); width: 100%; transition: .12s;
}
.t4-bw2__skip:hover { border-color: #c9c2b4; }

/* --- step 4: recap + payment --- */
.t4-bw2__recap { border: 1px solid var(--bw2-line); background: #fbf9f5; border-radius: 9px; padding: 2px 11px; }
.t4-bw2__rc { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 0; font-size: var(--t4-fs-micro); }
.t4-bw2__rc + .t4-bw2__rc { border-top: 1px solid var(--bw2-line2); }
.t4-bw2__rc .k { color: var(--bw2-muted); flex: none; }
.t4-bw2__rc .vwrap { display: flex; align-items: center; min-width: 0; }
.t4-bw2__rc .v { font-weight: 600; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.t4-bw2__rc .ed {
	background: none; border: none; color: var(--bw2-red); font-size: var(--t4-fs-micro); font-weight: 600;
	cursor: pointer; margin-left: 8px; flex: none; padding: 0;
}
.t4-bw2__rc .ed:hover { text-decoration: underline; }

.t4-bw2__formhost .booking-checkout,
.t4-bw2__formhost .booking-checkout__order,
.t4-bw2__formhost .booking-step__columns,
.t4-bw2__formhost .booking-step__column {
	width: 100% !important; max-width: none !important; min-width: 0 !important;
	margin: 0 !important; padding: 0 !important; display: block !important;
}
.t4-bw2__formhost .booking-checkout__payments {
	display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 6px !important; margin: 0 !important; width: 100% !important;
}
.t4-bw2__formhost .booking-checkout__payment {
	display: flex !important; align-items: center !important; gap: 8px; border: 1px solid var(--bw2-line) !important;
	background: var(--bw2-card) !important; border-radius: 9px !important; padding: 9px 10px !important;
	cursor: pointer; min-height: 0 !important; margin: 0 !important; transition: .12s;
	width: 100% !important; min-width: 0 !important; max-width: none !important;
}
.t4-bw2__formhost .booking-checkout__payment:hover { border-color: #c9c2b4 !important; }
.t4-bw2__formhost .booking-checkout__payment:has(input:checked) {
	border-color: var(--bw2-red) !important; box-shadow: inset 0 0 0 1px var(--bw2-red) !important; background: var(--bw2-red-soft) !important;
}
.t4-bw2__formhost .booking-checkout__payment input { position: absolute; opacity: 0; pointer-events: none; }
.t4-bw2__formhost .booking-checkout__payment-inner {
	display: flex !important; align-items: center !important; justify-content: flex-start !important;
	gap: 8px; flex-direction: row !important; min-height: 0 !important; width: 100% !important;
	background: none !important; border: none !important; box-shadow: none !important;
	padding: 0 !important; margin: 0 !important; border-radius: 0 !important;
}
.t4-bw2__formhost .booking-checkout__payment-inner::before {
	content: ''; width: 15px; height: 15px; border-radius: 50%; border: 1.5px solid #cfc8ba; background: #fff; flex: none;
	transition: .12s; box-sizing: border-box;
}
.t4-bw2__formhost .booking-checkout__payment:has(input:checked) .booking-checkout__payment-inner::before {
	border-color: var(--bw2-red); border-width: 4.5px;
}
.t4-bw2__formhost .booking-checkout__payment-title {
	font-size: var(--t4-fs-micro) !important; font-weight: 600 !important; margin: 0 !important;
	flex: 1 !important; text-align: left !important; color: var(--bw2-ink) !important; white-space: nowrap;
	overflow: hidden; text-overflow: ellipsis; min-width: 0;
}
.t4-bw2__formhost .booking-checkout__payment-icons {
	display: flex !important; gap: 3px; align-items: center; flex: none !important; margin: 0 0 0 auto !important;
}
.t4-bw2__formhost .booking-checkout__payment-icon,
.t4-bw2__formhost .booking-checkout__payment svg,
.t4-bw2__formhost .booking-checkout__payment img { height: 14px !important; width: 21px !important; flex: none; }
.t4-bw2__formhost .booking-checkout__payment img.t4-bw2__paycellico { height: 15px !important; width: auto !important; max-width: 28px; }
.t4-bw2__paynote {
	display: flex; align-items: center; gap: 7px; margin-top: 8px; font-size: var(--t4-fs-micro); color: var(--bw2-body);
	background: #fbf9f5; border: 1px solid var(--bw2-line); border-radius: 9px; padding: 8px 11px;
}
.t4-bw2__paynote[hidden] { display: none; }
.t4-bw2__paynote svg { width: 13px; height: 13px; stroke: var(--bw2-ok); fill: none; stroke-width: 2.2; flex: none; }

/* the form's own privacy row is hidden — our proxy addon row drives it */
.t4-bw2__formhost .booking-checkout__privacy { display: none !important; }

/* refund guarantee: online payments only — dimmed when Pay later is selected.
   Contents are dimmed individually (row opacity would also dim the popover child) */
.t4-bw2__addon--off { cursor: not-allowed; border-color: var(--bw2-line2) !important; background: #fbf9f5 !important; }
.t4-bw2__addon--off > .t4-bw2__cbx,
.t4-bw2__addon--off > .txt,
.t4-bw2__addon--off > .pr { opacity: .45; }

/* terms row error state: point at the row instead of greying the CTA (bm2 decision) */
.t4-bw2__addon--err {
	border-color: var(--bw2-err) !important;
	box-shadow: 0 0 0 3px rgba(196, 39, 27, .12) !important;
	animation: t4bw2Shake .4s ease 1;
}
@keyframes t4bw2Shake {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-5px); }
	50% { transform: translateX(5px); }
	75% { transform: translateX(-3px); }
}
.t4-bw2__link {
	background: none; border: none; padding: 0; color: var(--bw2-red); text-decoration: underline;
	font: inherit; cursor: pointer;
}

/* ================= FOOTER (always visible) ================= */
.t4-bw2__foot { border-top: 1px solid var(--bw2-line); background: #fbf9f5; padding: 11px 16px 12px; flex: none; }
.t4-bw2__brk { display: flex; flex-direction: column; gap: 4px; margin-bottom: 8px; }
.t4-bw2__br { display: flex; justify-content: space-between; gap: 10px; font-size: var(--t4-fs-micro); }
.t4-bw2__br .k { color: var(--bw2-muted); }
.t4-bw2__br .v { font-weight: 600; }
.t4-bw2__br.disc .k, .t4-bw2__br.disc .v { color: var(--bw2-ok); font-weight: 600; }
.t4-bw2__br[hidden] { display: none; }
.t4-bw2__tot { display: flex; justify-content: space-between; align-items: baseline; padding-top: 8px; border-top: 1px solid var(--bw2-line); }
.t4-bw2__tot .k {
	font-family: var(--t4-mono); font-size: var(--t4-fs-micro); letter-spacing: 1.4px;
	text-transform: uppercase; color: var(--bw2-muted); font-weight: 600;
}
.t4-bw2__tot .v { font-size: var(--t4-fs-h4); font-weight: 800; line-height: 1; }
.t4-bw2__cta {
	display: flex; align-items: center; justify-content: center; gap: 7px; width: 100%;
	background: var(--bw2-red); color: #fff; border: none; font-size: var(--t4-fs-small); font-weight: 600;
	padding: 11px; border-radius: 9px; cursor: pointer; margin-top: 10px; transition: filter .15s;
}
.t4-bw2__cta:hover { filter: brightness(.92); }
.t4-bw2__cta:disabled { background: #d9d3c6; cursor: not-allowed; filter: none; }
.t4-bw2__cta svg { width: 14px; height: 14px; stroke: #fff; fill: none; stroke-width: 2.2; flex: none; }
.t4-bw2__backbtn {
	display: block; background: none; border: none; font-size: var(--t4-fs-micro); color: var(--bw2-muted);
	cursor: pointer; margin: 7px auto 0; padding: 2px 6px;
}
.t4-bw2__backbtn:hover { color: var(--bw2-ink); }
.t4-bw2__backbtn[hidden] { display: none; }

.t4-bw2__trust { display: flex; flex-direction: column; gap: 4px; margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--bw2-line); }
.t4-bw2__trust > div { display: flex; align-items: center; gap: 6px; font-size: var(--t4-fs-micro); color: var(--bw2-body); }
.t4-bw2__trust svg { width: 11px; height: 11px; stroke: var(--bw2-ok); fill: none; stroke-width: 2.4; flex: none; }
.t4-bw2__pays { display: flex; gap: 4px; margin-top: 6px; flex-wrap: wrap; }
.t4-bw2__pays span {
	display: inline-flex; align-items: center; gap: 4px;
	font-family: var(--t4-mono); font-size: 8.5px;
	border: 1px solid var(--bw2-line); background: var(--bw2-card); border-radius: 11px;
	padding: 3px 7px; color: var(--bw2-body);
}
.t4-bw2__pays svg, .t4-bw2__payico { height: 10px !important; width: auto !important; max-width: 22px; flex: none; }
.t4-bw2__pays img.t4-bw2__payico--img { height: 13px !important; width: auto !important; max-width: 28px; display: block; }

.t4-bw2__ask { display: flex; align-items: center; gap: 6px; margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--bw2-line); }
.t4-bw2__ask .q { font-size: var(--t4-fs-micro); color: var(--bw2-muted); flex: none; }
.t4-bw2__ask a {
	flex: 1; display: flex; align-items: center; justify-content: center; gap: 5px; border-radius: 8px;
	padding: 7px; font-size: var(--t4-fs-micro); font-weight: 600; cursor: pointer; text-decoration: none;
	border: 1px solid var(--bw2-line); background: var(--bw2-card); color: var(--bw2-body); transition: .12s;
}
.t4-bw2__ask a:hover { border-color: #c9c2b4; }
.t4-bw2__ask a.wa { background: var(--bw2-wa); border-color: var(--bw2-wa); color: #fff; }
.t4-bw2__ask svg { width: 13px; height: 13px; flex: none; }
.t4-bw2__ask a.wa svg { fill: #fff; }
.t4-bw2__ask a.cl svg { stroke: var(--bw2-body); fill: none; stroke-width: 2; }
/* the old widget's WhatsApp/Call row is ADOPTED into the footer (translated markup
   + sprite icons come with it) — compact it to the mock's ask-row proportions */
.t4-bw2 .t4-widget__contact {
	display: flex; align-items: center; gap: 6px;
	margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--bw2-line);
}
.t4-bw2 .t4-widget__contact-label { font-size: var(--t4-fs-micro); color: var(--bw2-muted); flex: none; }
.t4-bw2 .t4-widget__wa,
.t4-bw2 .t4-widget__phone {
	flex: 1; display: flex; align-items: center; justify-content: center; gap: 5px;
	border-radius: 8px; padding: 7px; font-size: var(--t4-fs-micro); font-weight: 600;
	text-decoration: none; transition: .12s; border: 1px solid var(--bw2-line);
	background: var(--bw2-card); color: var(--bw2-body);
}
.t4-bw2 .t4-widget__wa { background: var(--bw2-wa); border-color: var(--bw2-wa); color: #fff; }
.t4-bw2 .t4-widget__wa:hover { filter: brightness(.94); }
.t4-bw2 .t4-widget__phone:hover { border-color: #c9c2b4; color: var(--bw2-ink); }
.t4-bw2 .t4-widget__wa-icon { width: 14px; height: 14px; fill: #fff; flex: none; }
.t4-bw2 .t4-widget__phone svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 2; flex: none; }
/* rating block adopted from the old widget header */
.t4-bw2__rating .t4-widget__rating-stars { display: inline-flex; gap: 1px; }
.t4-bw2__rating .t4-widget__rating-stars svg { width: 11px; height: 11px; }
.t4-bw2__rating .t4-widget__rating-num { font-size: var(--t4-fs-micro); font-weight: 600; color: var(--bw2-body); }

/* ================= OVERLAYS (full calendar / terms reader) =================
   Appended to <body> (a transformed ancestor inside the page re-anchored
   position:fixed and the reader spanned the whole page, user 2026-07-17) —
   so the palette vars are re-declared here, .t4-bw2 scope does not reach. */
.t4-bw2__ovl {
	--bw2-red: #FF2800; --bw2-red-soft: #ffece7; --bw2-ink: #141414; --bw2-body: #4a4a4a;
	--bw2-muted: #8a8a8a; --bw2-line: #e8e3d9; --bw2-line2: #f0ece4; --bw2-page: #f7f3ec;
	--bw2-card: #fff; --bw2-ok: #1F7A3D; --bw2-ok-bg: #e9f5ec; --bw2-warn: #B26A00; --bw2-err: #C4271B;
	position: fixed; inset: 0; z-index: 1200;
	/* light scrim + blur only — a heavy dark wash read as a "blank page" (user 2026-07-17) */
	background: rgba(20, 16, 10, .22);
	backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
	display: flex; align-items: center; justify-content: center; padding: 24px;
	font-family: var(--t4-sans); color: var(--bw2-ink, #141414);
}
.t4-bw2__ovl *, .t4-bw2__ovl *::before, .t4-bw2__ovl *::after { box-sizing: border-box; }
.t4-bw2__ovl button { font-family: inherit; }

/* page-scroll lock while a widget overlay is open: the body is pinned at the
   pre-open offset via position:fixed + top:-Ypx (JS). The body keeps its NATURAL
   height — clamping it to 100% blanked everything below one viewport of content
   and the page behind the scrim looked empty (user 2026-07-17). */
html.t4-bw2-lock {
	overflow: hidden !important;
	height: 100% !important;
}
html.t4-bw2-lock body {
	position: fixed !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	height: auto !important;
	overflow: visible !important;
}
.t4-bw2__ovl[hidden] { display: none; }
.t4-bw2__ovlcard {
	background: #fff; border-radius: 14px; width: 440px; max-width: 100%;
	max-height: calc(100vh - 48px); display: flex; flex-direction: column;
	overflow: hidden; box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
}
/* reader: narrower + capped height — it scrolls inside anyway (user 2026-07-17) */
.t4-bw2__ovlcard--read { width: 560px; max-height: min(620px, calc(100vh - 140px)); }
.t4-bw2__ovlhd { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--bw2-line, #e8e3d9); flex: none; }
.t4-bw2__ovlhd h3 { font-size: var(--t4-fs-small); font-weight: 800; letter-spacing: .6px; text-transform: uppercase; margin: 0; }
.t4-bw2__x {
	width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--bw2-line, #e8e3d9);
	background: var(--bw2-page, #f7f3ec); display: flex; align-items: center; justify-content: center;
	cursor: pointer; flex: none; transition: .12s; padding: 0;
}
.t4-bw2__x:hover { border-color: #c9c2b4; }
.t4-bw2__x svg { width: 14px; height: 14px; stroke: var(--bw2-body, #4a4a4a); fill: none; stroke-width: 2; }
.t4-bw2__calbody { padding: 10px 14px 16px; overflow-y: auto; }
.t4-bw2__calbody .calendar { display: block !important; }
.t4-bw2__readbody {
	padding: 6px 24px 24px; overflow-y: auto; font-size: var(--t4-fs-small); line-height: 1.65; color: var(--bw2-body, #4a4a4a);
	overscroll-behavior: contain;
}
.t4-bw2__readbody h1, .t4-bw2__readbody h2, .t4-bw2__readbody h3 { font-size: var(--t4-fs-body); margin: 18px 0 8px; color: var(--bw2-ink, #141414); }
.t4-bw2__readbody p, .t4-bw2__readbody li { margin: 0 0 10px; }
.t4-bw2__readbody::-webkit-scrollbar { width: 8px; }
.t4-bw2__readbody::-webkit-scrollbar-thumb { background: #ddd6c8; border-radius: 8px; }

/* --- full-calendar AirDatepicker reskin (bm2 rules, bw2 scope) --- */
.t4-bw2__calbody .calendar { background: none !important; padding: 0 !important; margin: 0 !important; width: 100% !important; box-shadow: none !important; border: none !important; }
.t4-bw2__calbody .air-datepicker,
.t4-bw2__calbody .air-datepicker--content,
.t4-bw2__calbody .air-datepicker--pointer { background: none !important; border: none !important; box-shadow: none !important; width: 100% !important; }
.t4-bw2__calbody .air-datepicker-nav {
	background: none !important; border: none !important; padding: 6px 4px 10px !important;
	display: flex !important; align-items: center; justify-content: space-between;
}
.t4-bw2__calbody .air-datepicker-nav--title {
	font-family: var(--t4-sans) !important; font-size: var(--t4-fs-small) !important; font-weight: 600 !important;
	color: var(--bw2-ink, #141414) !important; background: none !important; text-transform: none !important; letter-spacing: 0 !important;
}
.t4-bw2__calbody .air-datepicker-nav--title i { color: var(--bw2-muted, #8a8a8a) !important; font-style: normal; margin-left: 5px; }
.t4-bw2__calbody .air-datepicker-nav--action {
	width: 30px !important; height: 30px !important; border: 1px solid rgb(74, 74, 74) !important;
	background: #fff !important; border-radius: 8px !important; color: #000 !important;
	opacity: 1 !important; visibility: visible !important;
}
.t4-bw2__calbody .air-datepicker-nav--action:hover { border-color: #000 !important; }
.t4-bw2__calbody .air-datepicker-nav--action svg,
.t4-bw2__calbody .air-datepicker-nav--action path { fill: #000 !important; stroke: #000 !important; color: #000 !important; }
.t4-bw2__calbody .air-datepicker-nav--action svg { width: 15px !important; height: 15px !important; }
.t4-bw2__calbody .air-datepicker-body--day-name {
	font-family: var(--t4-mono) !important; font-size: var(--t4-fs-micro) !important; letter-spacing: .8px !important;
	color: var(--bw2-muted, #8a8a8a) !important; text-transform: uppercase !important; font-weight: 600 !important;
}
.t4-bw2__calbody .air-datepicker-cell {
	border-radius: 9px !important; border: 1px solid transparent !important; background: none !important;
	font-size: var(--t4-fs-small) !important; font-weight: 600 !important; color: var(--bw2-ink, #141414) !important;
	height: 38px !important; width: auto !important; transition: .1s;
}
.t4-bw2__calbody .air-datepicker-cell:hover:not(.-disabled-) { background: var(--bw2-page, #f7f3ec) !important; border-color: var(--bw2-line, #e8e3d9) !important; }
.t4-bw2__calbody .air-datepicker-cell.-current- { color: var(--bw2-red, #FF2800) !important; font-weight: 600 !important; }
.t4-bw2__calbody .air-datepicker-cell.-selected- {
	background: var(--bw2-red, #FF2800) !important; border-color: var(--bw2-red, #FF2800) !important; color: #fff !important; font-weight: 600 !important;
}
.t4-bw2__calbody .air-datepicker-cell.-disabled- { opacity: .28 !important; color: var(--bw2-muted, #8a8a8a) !important; cursor: not-allowed; }
.t4-bw2__calbody .air-datepicker-cell.-other-month- { opacity: 0 !important; pointer-events: none; }

/* ================= STEP VISIBILITY ================= */
.t4-bw2__p1, .t4-bw2__formhost, .t4-bw2__p4extra { display: none; }
.t4-bw2--s1 .t4-bw2__p1 { display: block; }
.t4-bw2--s2 .t4-bw2__formhost, .t4-bw2--s3 .t4-bw2__formhost, .t4-bw2--s4 .t4-bw2__formhost { display: block; }
.t4-bw2--s4 .t4-bw2__p4extra { display: block; }

/* ================= MOTION POLISH (2026-07-17, ported from the mobile sheet) =================
   transform/opacity + short color transitions only — no layout animation. */
/* progress segments FILL left→right via a scaled ::after; colors crossfade */
.t4-bw2__ss { position: relative; overflow: hidden; background: #e6e1d7; transition: none; }
.t4-bw2__ss::after {
	content: ''; position: absolute; inset: 0; border-radius: 2px;
	background: var(--bw2-red); transform: scaleX(0); transform-origin: left center;
	transition: transform .45s cubic-bezier(.32, .72, 0, 1), background-color .3s ease;
}
.t4-bw2__ss.on { background: #e6e1d7; }
.t4-bw2__ss.done { background: #e6e1d7; }
.t4-bw2__ss.on::after { transform: scaleX(1); background: var(--bw2-red); }
.t4-bw2__ss.done::after { transform: scaleX(1); background: var(--bw2-ok); }
/* direction-aware step transition inside the scrollable body */
.t4-bw2__body--fwd { animation: t4bw2StepFwd .28s cubic-bezier(.25, .8, .35, 1) both; }
.t4-bw2__body--bck { animation: t4bw2StepBck .28s cubic-bezier(.25, .8, .35, 1) both; }
@keyframes t4bw2StepFwd { from { opacity: 0; transform: translateX(22px); } to { opacity: 1; transform: none; } }
@keyframes t4bw2StepBck { from { opacity: 0; transform: translateX(-22px); } to { opacity: 1; transform: none; } }
/* smooth selection + press feedback */
.t4-bw2__d,
.t4-bw2__slot,
.t4-bw2__addon,
.t4-bw2__skip,
.t4-bw2__calbtn,
.t4-bw2__arw,
.t4-bw2__stepper button,
.t4-bw2__formhost .extra-card,
.t4-bw2__formhost .booking-checkout__payment {
	transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease,
		color .18s ease, transform .12s ease, opacity .18s ease;
}
.t4-bw2__slot .t, .t4-bw2__slot .s { transition: color .18s ease; }
.t4-bw2__d:active,
.t4-bw2__slot:active:not(:disabled),
.t4-bw2__addon:active:not(.t4-bw2__addon--off),
.t4-bw2__skip:active,
.t4-bw2__formhost .extra-card:active,
.t4-bw2__formhost .booking-checkout__payment:active { transform: scale(.98); }
.t4-bw2__cta { transition: background-color .2s ease, transform .12s ease, filter .15s; }
.t4-bw2__cta:active:not(:disabled) { transform: scale(.985); }
/* checks & radios settle with a tiny spring */
.t4-bw2__cbx { transition: background-color .18s ease, border-color .18s ease; }
.t4-bw2__cbx svg { transition: opacity .16s ease, transform .18s cubic-bezier(.34, 1.56, .64, 1); transform: scale(.4); }
.t4-bw2__addon.on .t4-bw2__cbx svg { transform: scale(1); }
.t4-bw2__formhost .extra-card::before,
.t4-bw2__formhost .booking-checkout__payment-inner::before { transition: border-color .18s ease, border-width .18s cubic-bezier(.34, 1.3, .64, 1); }
/* fresh content rises in softly */
.t4-bw2__slots, .t4-bw2__qty,
.t4-bw2__slotsbox .t4-cutoff,
.t4-bw2__empty { animation: t4bw2Rise .26s cubic-bezier(.25, .8, .35, 1) both; }
@keyframes t4bw2Rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
/* overlays (full calendar / terms): fade + card pop, animated dismissal */
.t4-bw2__ovl { animation: t4bw2Fade .22s ease both; }
@keyframes t4bw2Fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes t4bw2FadeOut { from { opacity: 1; } to { opacity: 0; } }
.t4-bw2__ovlcard { animation: t4bw2Pop .26s cubic-bezier(.32, .72, 0, 1) both; }
@keyframes t4bw2Pop { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
.t4-bw2__ovl--closing { animation: t4bw2FadeOut .2s ease both; }
.t4-bw2__ovl--closing .t4-bw2__ovlcard { animation: t4bw2PopOut .2s ease both; }
@keyframes t4bw2PopOut { to { opacity: 0; transform: translateY(10px) scale(.98); } }

@media (prefers-reduced-motion: reduce) {
	.t4-bw2, .t4-bw2 *, .t4-bw2 *::before, .t4-bw2 *::after,
	.t4-bw2__ovl, .t4-bw2__ovl * { animation: none !important; transition: none !important; }
}
/* per-step form-internal visibility is driven by .booking-step.active (booking.js) */
