/* FulleRulle Booking widget — matches fullerulle.se (mediartThemeDark):
   navy #010F29, white text, teal #239AB0, Montserrat 600 headings, Roboto text, square corners. */
.frb-widget, .frb-page {
	--frb-bg: #010f29;
	--frb-surface: #0a1c3d;
	--frb-surface-2: #11274f;
	--frb-line: #2a4166;
	--frb-text: #ffffff;
	--frb-muted: #a9b8cf;
	--frb-brand: #239ab0;
	--frb-brand-strong: #2cb6cf;
	--frb-warn: #f0b04a;
	--frb-error: #ff7a7a;
	--frb-ok: #3ccf91;
	--frb-cell: 44px;
	color: var(--frb-text);
	font-family: Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	max-width: 880px;
	margin: 32px auto;
	background: var(--frb-bg);
	border: 1px solid var(--frb-line);
	padding: 24px;
	box-sizing: border-box;
}
.frb-widget *, .frb-widget *::before, .frb-widget *::after { box-sizing: border-box; }
.frb-widget .frb-h {
	font-family: Montserrat, Roboto, sans-serif;
	font-weight: 600;
	font-size: 22px;
	letter-spacing: -0.2px;
	margin: 0 0 16px;
	color: var(--frb-text);
}
.frb-muted { color: var(--frb-muted); font-size: 14px; }
.frb-why { margin-top: 8px; }
.frb-demo {
	background: #6b1d1d; color: #fff; font-weight: 700; padding: 10px 14px; margin: -24px -24px 20px;
	letter-spacing: .3px; font-size: 14px;
}

/* progress */
.frb-progress { display: flex; gap: 4px; list-style: none; margin: 0 0 24px; padding: 0; counter-reset: none; }
.frb-progress li {
	flex: 1; display: flex; align-items: center; gap: 8px; padding: 8px 10px;
	background: var(--frb-surface); color: var(--frb-muted); font-size: 13px; min-width: 0;
}
.frb-progress li span:last-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.frb-progress-n {
	display: inline-flex; align-items: center; justify-content: center; flex: none;
	width: 22px; height: 22px; border: 1px solid currentColor; font-size: 12px; font-weight: 700;
}
.frb-progress li.current { background: var(--frb-brand); color: #fff; }
.frb-progress li.done { color: var(--frb-text); }

/* buttons */
.frb-btn {
	appearance: none; border: 1px solid var(--frb-brand); background: var(--frb-brand); color: #fff;
	font-family: Montserrat, Roboto, sans-serif; font-weight: 600; font-size: 16px;
	min-height: 48px; padding: 12px 22px; border-radius: 0; cursor: pointer;
	transition: background .15s ease, border-color .15s ease, opacity .15s ease;
}
.frb-btn:hover:not(:disabled) { background: var(--frb-brand-strong); border-color: var(--frb-brand-strong); }
.frb-btn:disabled { opacity: .45; cursor: not-allowed; }
.frb-btn--ghost { background: transparent; color: var(--frb-text); border-color: var(--frb-line); }
.frb-btn--ghost:hover:not(:disabled) { background: var(--frb-surface-2); border-color: var(--frb-muted); }
.frb-btn--pay { min-width: 240px; font-size: 18px; }
.frb-link { background: none; border: 0; color: var(--frb-muted); text-decoration: underline; cursor: pointer; padding: 6px 0; font-size: 14px; }
.frb-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 24px; }
.frb-actions > :only-child { margin-left: auto; }
.frb-widget :focus-visible { outline: 2px solid var(--frb-brand-strong); outline-offset: 2px; }

/* tour picker */
.frb-tours { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.frb-tour {
	position: relative; text-align: left; background: var(--frb-surface); color: var(--frb-text);
	border: 1px solid var(--frb-line); padding: 18px 16px; cursor: pointer; border-radius: 0;
	display: flex; flex-direction: column; gap: 6px; font: inherit;
}
.frb-tour:hover { border-color: var(--frb-brand); }
.frb-tour-name { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 17px; }
.frb-tour-meta { color: var(--frb-muted); font-size: 14px; }
.frb-badge { position: absolute; top: -1px; right: -1px; background: var(--frb-brand); color: #fff; font-size: 12px; padding: 2px 8px; }

/* calendar */
.frb-date-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.frb-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.frb-cal-title { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 17px; }
.frb-cal-nav {
	width: var(--frb-cell); height: var(--frb-cell); background: transparent; color: var(--frb-text);
	border: 1px solid var(--frb-line); font-size: 22px; cursor: pointer; border-radius: 0;
}
.frb-cal-nav:disabled { opacity: .3; cursor: default; }
.frb-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.frb-cal-wd { text-align: center; font-size: 12px; color: var(--frb-muted); padding-bottom: 4px; }
.frb-day {
	height: var(--frb-cell); min-width: 0; border: 1px solid transparent; background: transparent;
	color: var(--frb-muted); font: inherit; font-variant-numeric: tabular-nums; cursor: default; border-radius: 0;
}
.frb-day--available { background: var(--frb-surface-2); color: var(--frb-text); border-color: var(--frb-brand); cursor: pointer; }
.frb-day--available:hover { background: var(--frb-brand); }
.frb-day--limited { background: var(--frb-surface-2); color: var(--frb-text); border-color: var(--frb-warn); box-shadow: inset 0 -3px 0 var(--frb-warn); cursor: pointer; }
.frb-day--limited:hover { background: var(--frb-warn); color: #010f29; }
.frb-day--booked {
	color: var(--frb-muted);
	background: repeating-linear-gradient(135deg, transparent 0 5px, rgba(169,184,207,.18) 5px 7px);
	text-decoration: line-through;
}
.frb-day--closed, .frb-day--past { opacity: .35; }
.frb-day--loading { opacity: .5; }
.frb-day.is-today { outline: 1px dashed var(--frb-muted); outline-offset: -3px; }
.frb-day.is-selected { background: var(--frb-brand); color: #fff; border-color: #fff; }
.frb-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; font-size: 12px; color: var(--frb-muted); }
.frb-legend-i::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 6px; vertical-align: -1px; border: 1px solid var(--frb-line); }
.frb-legend--available::before { background: var(--frb-surface-2); border-color: var(--frb-brand); }
.frb-legend--limited::before { background: var(--frb-surface-2); border-color: var(--frb-warn); box-shadow: inset 0 -3px 0 var(--frb-warn); }
.frb-legend--booked::before { background: repeating-linear-gradient(135deg, transparent 0 3px, rgba(169,184,207,.4) 3px 4px); }
.frb-legend--closed::before { opacity: .35; }

/* times */
.frb-times-panel { min-height: 320px; }
.frb-times-day { font-family: Montserrat, sans-serif; font-weight: 600; margin: 0 0 10px; }
.frb-times { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px; }
.frb-time {
	min-height: var(--frb-cell); border: 1px solid var(--frb-brand); background: transparent; color: var(--frb-text);
	font: inherit; font-weight: 600; font-variant-numeric: tabular-nums; cursor: pointer; border-radius: 0;
	display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.15; padding: 4px;
}
.frb-time:hover:not(:disabled) { background: var(--frb-surface-2); }
.frb-time.is-selected { background: var(--frb-brand); }
.frb-time.is-urgent::after { content: "call ahead"; font-size: 10px; font-weight: 400; color: var(--frb-warn); }
.frb-time.is-selected.is-urgent::after { color: #fff; }
.frb-time.is-off { border-color: var(--frb-line); color: var(--frb-muted); cursor: not-allowed; opacity: .6; }
.frb-time-why { font-size: 10px; font-weight: 400; }
/* Daylight during each ride (hourly snowmobile tours). */
.frb-sun { margin: -4px 0 10px; font-size: 13px; color: var(--frb-muted); }
.frb-day-light { margin: 0 0 14px; }
.frb-day-bar { position: relative; display: flex; height: 12px; }
.frb-day-ride { position: absolute; top: -4px; bottom: -4px; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.4); pointer-events: none; }
.frb-day-ticks { position: relative; height: 16px; margin-top: 3px; font-size: 11px; color: var(--frb-muted); font-variant-numeric: tabular-nums; }
.frb-day-tick { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.frb-day-tick:first-child { transform: none; }
.frb-day-tick:last-child { transform: translateX(-100%); }
.frb-l { display: block; min-width: 1px; }
.frb-time.lt-day { box-shadow: inset 0 -4px 0 #f6d365; }
.frb-time.lt-golden { box-shadow: inset 0 -4px 0 #f2994a; }
.frb-time.lt-twilight { box-shadow: inset 0 -4px 0 #7b6fd6; }
.frb-time.lt-dark { box-shadow: inset 0 -4px 0 #56637f; }
.frb-l--day, .frb-legend--day::before { background: #f6d365; }
.frb-l--golden, .frb-legend--golden::before { background: #f2994a; }
.frb-l--twilight, .frb-legend--twilight::before { background: #7b6fd6; }
.frb-l--dark, .frb-legend--dark::before { background: #56637f; } /* steel grey: must show on the navy buttons */
.frb-light-legend { margin-top: 12px; }
.frb-light-note { flex-basis: 100%; }
.frb-light-pick { margin: 10px 0 0; font-size: 13px; color: var(--frb-text); }
.frb-private { margin-top: 14px; color: var(--frb-brand-strong); font-weight: 600; }

/* forms */
.frb-people { display: grid; gap: 14px; }
.frb-person { border: 1px solid var(--frb-line); padding: 14px 16px 10px; margin: 0; background: var(--frb-surface); }
.frb-person legend { font-family: Montserrat, sans-serif; font-weight: 600; padding: 0 6px; }
.frb-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.frb-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.frb-label { font-size: 13px; color: var(--frb-muted); }
.frb-help { font-size: 12px; color: var(--frb-muted); }
.frb-widget input[type=text], .frb-widget input[type=email], .frb-widget input[type=tel],
.frb-widget input[type=date], .frb-widget select, .frb-widget textarea {
	width: 100%; min-height: 46px; padding: 10px 12px; font: inherit; color: var(--frb-text);
	background: var(--frb-bg); border: 1px solid var(--frb-line); border-radius: 0; color-scheme: dark;
}
.frb-widget input:focus, .frb-widget select:focus, .frb-widget textarea:focus { border-color: var(--frb-brand); outline: none; }
.frb-roles { display: flex; gap: 8px; margin-bottom: 8px; }
.frb-role, .frb-choice {
	display: flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid var(--frb-line);
	cursor: pointer; background: var(--frb-bg);
}
.frb-role.is-on, .frb-choice.is-on { border-color: var(--frb-brand); background: var(--frb-surface-2); }
.frb-role input, .frb-choice input, .frb-check input { accent-color: var(--frb-brand); width: 18px; height: 18px; margin: 0; flex: none; }
.frb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.frb-sum {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; margin-top: 18px;
	padding: 14px 16px; background: var(--frb-surface-2); border-left: 3px solid var(--frb-brand);
}
.frb-sum strong { font-size: 24px; font-family: Montserrat, sans-serif; font-variant-numeric: tabular-nums; }
.frb-hint { color: var(--frb-warn); margin: 10px 0 0; font-size: 14px; }
.frb-warn { color: var(--frb-warn); font-size: 14px; margin: 4px 0 8px; }
.frb-errors { color: var(--frb-error); margin: 14px 0 0; padding-left: 20px; }

/* review */
.frb-bill { width: 100%; border-collapse: collapse; margin-bottom: 18px; font-variant-numeric: tabular-nums; }
.frb-bill td { padding: 10px 0; border-bottom: 1px solid var(--frb-line); vertical-align: top; }
.frb-bill td.num { text-align: right; white-space: nowrap; padding-left: 16px; }
.frb-bill tr.total td { font-weight: 700; border-top: 2px solid var(--frb-line); }
.frb-bill tr.now td { color: var(--frb-brand-strong); font-weight: 700; font-size: 18px; }
.frb-paychoice { display: grid; gap: 8px; margin-bottom: 18px; }
.frb-choice-amt { margin-left: auto; font-weight: 700; font-variant-numeric: tabular-nums; }
.frb-policy { background: var(--frb-surface); padding: 14px 16px; margin-bottom: 16px; font-size: 14px; }
.frb-policy ul { margin: 8px 0; padding-left: 18px; }
.frb-checks { display: grid; gap: 10px; }
.frb-check { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; cursor: pointer; }
.frb-check a { color: var(--frb-brand-strong); }
.frb-secure { text-align: right; margin-top: 10px; }
.frb-secure.is-bank { text-align: left; border-left: 3px solid var(--frb-brand); padding-left: 10px; }
/* Bank details: on phones the value goes under its label, left-aligned, so IBAN and reference read and copy in one line. */
@media (max-width: 520px) {
	.frb-bank td { display: block; border: 0; padding-bottom: 0; }
	.frb-bank td.num { text-align: left; padding-top: 2px; padding-bottom: 10px; border-bottom: 1px solid var(--frb-line); }
	.frb-bank td:not(.num) { color: var(--frb-muted); font-size: .9em; }
}

/* modal */
.frb-modal { position: fixed; inset: 0; background: rgba(1, 8, 22, .82); display: flex; align-items: center; justify-content: center; z-index: 99999; padding: 16px; }
.frb-modal-box { background: var(--frb-surface); border: 1px solid var(--frb-warn); max-width: 460px; width: 100%; padding: 24px; color: var(--frb-text); }
.frb-phone { font-size: 22px; font-weight: 700; color: var(--frb-warn) !important; }

/* guest pages (return / manage / pay) */
.frb-page { max-width: 720px; margin: 40px auto; padding: 24px; background: #010f29; color: #fff; border: 1px solid #2a4166; font-family: Roboto, sans-serif; }
.frb-page h2 { font-family: Montserrat, sans-serif; font-weight: 600; margin-top: 0; }
.frb-page .frb-status { display: inline-block; padding: 4px 10px; background: #11274f; border-left: 3px solid #239ab0; font-weight: 700; }
.frb-page .frb-status.ok { border-color: #3ccf91; }
.frb-page .frb-status.wait { border-color: #f0b04a; }
.frb-page table { width: 100%; border-collapse: collapse; margin: 16px 0; }
.frb-page td { padding: 8px 0; border-bottom: 1px solid #2a4166; }
.frb-page td.num { text-align: right; }
.frb-page .frb-btn { display: inline-block; margin: 6px 0 14px; text-decoration: none; }
.frb-page ol { padding-left: 20px; }

@media (max-width: 720px) {
	.frb-widget { padding: 16px; margin: 16px 0; border-left: 0; border-right: 0; }
	.frb-demo { margin: -16px -16px 16px; }
	.frb-date-layout { grid-template-columns: 1fr; }
	.frb-times-panel { min-height: 0; }
	.frb-row { grid-template-columns: 1fr; gap: 0; }
	.frb-progress li span:last-child { display: none; }
	.frb-progress li.current span:last-child { display: inline; }
	.frb-btn--pay { width: 100%; }
	.frb-actions { flex-direction: column-reverse; }
	.frb-actions .frb-btn { width: 100%; }
}

.frb-dob { display: grid; grid-template-columns: 1fr 1.6fr 1.2fr; gap: 6px; }


/* gift card shop */
.frb-gc-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.frb-gc-side { position: sticky; top: 24px; }
.frb-gc-card { position: relative; aspect-ratio: 1.7 / 1; background: #011826; border: 1px solid var(--frb-line); overflow: hidden; margin-bottom: 8px; }
.frb-gc-logo { position: absolute; left: 4%; top: 6%; width: 52%; height: auto; }
.frb-gc-right { position: absolute; right: 5%; top: 8%; text-align: right; }
.frb-gc-title { color: #009cb4; font: 700 15px/1 Montserrat, sans-serif; letter-spacing: 1px; }
.frb-gc-value { color: #fff; font: 700 34px/1.2 Montserrat, sans-serif; font-variant-numeric: tabular-nums; }
.frb-gc-for { color: #cfe3ee; font-size: 14px; }
.frb-gc-band { position: absolute; left: 0; right: 0; bottom: 0; background: #009cb4; color: #011826; display: flex; justify-content: space-between; align-items: center; padding: 8px 5%; font: 700 13px/1.2 'Courier New', monospace; gap: 8px; flex-wrap: wrap; }
.frb-gc-band span:last-child { font-family: Roboto, sans-serif; font-size: 11px; }
.frb-gc-tabs { grid-template-columns: 1fr 1fr; display: grid; }
.frb-tour.is-selected { border-color: var(--frb-brand); background: var(--frb-surface-2); box-shadow: inset 0 0 0 1px var(--frb-brand); }
.frb-gc-persons { margin-top: 16px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.frb-stepper { display: flex; align-items: center; gap: 12px; }
.frb-stepper .frb-btn { min-width: 48px; padding: 8px 0; font-size: 20px; }
.frb-stepper-n { font: 700 22px Montserrat, sans-serif; min-width: 24px; text-align: center; }
.frb-giftbox { margin-bottom: 14px; }
.frb-discountbox { margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid rgba(0,0,0,.08); }
.frb-discount-links { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.frb-discountbox .frb-field { margin-bottom: 8px; }
.frb-gc-balance { margin-top: 24px; }
.frb-gc-balance .frb-step { max-width: 880px; }
.frb-giftcode { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
.frb-giftcode .frb-field { flex: 1; min-width: 180px; margin-bottom: 0; }
.frb-giftlist { list-style: none; margin: 0 0 10px; padding: 0; }
.frb-giftlist .frb-ok, .frb-gc-balance .frb-ok { color: var(--frb-ok); font-size: 14px; margin: 0 0 4px; }
@media (max-width: 720px) { .frb-gc-layout { grid-template-columns: 1fr; } .frb-gc-side { position: static; order: -1; } }

/* ---- [frb_builder]: build your own tour (guest) ---- */
.frb-bld { padding-bottom: 0; }
.frb-bld .frb-h { margin-top: 0; }
.frb-bld-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--frb-line); }
.frb-bld .frb-stepper { display: flex; align-items: center; gap: 8px; flex: none; }
.frb-bld .frb-stepper output { min-width: 28px; text-align: center; font-weight: 700; font-size: 18px; }
.frb-bld .frb-stepper .frb-btn { min-width: 48px; padding: 8px 0; font-size: 22px; }
.frb-bld-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 20px; }
.frb-bld-dates .frb-muted { grid-column: 1 / -1; margin: 0; }
.frb-bld label { display: block; font-size: 14px; color: var(--frb-muted); }
.frb-bld input:not([type=checkbox]), .frb-bld textarea {
	display: block; width: 100%; margin-top: 4px; min-height: 48px; padding: 10px 12px; font: inherit; font-size: 16px;
	color: var(--frb-text); background: var(--frb-surface); border: 1px solid var(--frb-line); border-radius: 0; color-scheme: dark;
}
.frb-bld-sec { font-family: Montserrat, Roboto, sans-serif; font-size: 18px; margin: 28px 0 10px; color: var(--frb-brand-strong); }
.frb-bld-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
.frb-bld-card { background: var(--frb-surface); border: 1px solid var(--frb-line); padding: 16px; display: flex; flex-direction: column; gap: 6px; transition: border-color .15s ease; }
.frb-bld-card.is-on { border-color: var(--frb-brand-strong); box-shadow: inset 4px 0 0 var(--frb-brand); }
.frb-bld-card-h { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.frb-bld-card p { margin: 0; }
.frb-bld-price { font-weight: 700; color: var(--frb-brand-strong); }
.frb-bld-price span { font-weight: 400; color: var(--frb-muted); font-size: 13px; }
.frb-bld-ctl { margin-top: auto; padding-top: 8px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.frb-bld-ctl .frb-bld-row { border: 0; padding: 0; width: 100%; }
.frb-bld-ctl > .frb-btn { min-width: 110px; }
.frb-chip { appearance: none; text-align: left; font: inherit; color: var(--frb-text); background: var(--frb-bg); border: 1px solid var(--frb-line); padding: 10px 14px; min-height: 48px; cursor: pointer; flex: 1 1 140px; border-radius: 0; }
.frb-chip small { display: block; color: var(--frb-muted); font-size: 12px; }
.frb-chip.is-on { background: var(--frb-brand); border-color: var(--frb-brand); }
.frb-chip.is-on small { color: #fff; }
.frb-bld-table { width: 100%; border-collapse: collapse; margin: 12px 0; }
.frb-bld-table td { padding: 10px 6px; border-bottom: 1px solid var(--frb-line); vertical-align: top; }
.frb-bld-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.frb-bld-sum td { font-weight: 700; font-size: 18px; border-bottom: 0; }
.frb-bld-warn { color: var(--frb-warn); }
.frb-bld-form { display: grid; gap: 14px; margin-top: 16px; }
.frb-bld-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.frb-bld-check { display: flex; gap: 10px; align-items: flex-start; color: var(--frb-text); }
.frb-bld-check input { width: 22px; height: 22px; margin: 2px 0 0; flex: none; }
.frb-bld-barwrap { margin: 24px -24px 0; }
.frb-bld-bar { padding: 12px 24px calc(12px + env(safe-area-inset-bottom)); background: var(--frb-surface-2); border-top: 1px solid var(--frb-brand); z-index: 10001; }
body:has(.js-menu-overlay.is-open) .frb-bld-bar.is-fixed { display: none; }
.frb-bld-bar.is-fixed { position: fixed; left: 0; right: 0; bottom: 0; }
/* Small screens: the cookie button (left) and the reCAPTCHA badge (right) sit in the bottom corners of every page and would cover the buttons. */
@media (max-width: 900px) { body:has(.frb-bld-bar.is-fixed) .frb-wa { bottom: 150px !important; } }
@media (max-width: 900px) { .frb-bld-bar.is-fixed { bottom: 68px; border-bottom: 1px solid var(--frb-line); box-shadow: 0 -6px 18px rgba(0,0,0,.45); padding-bottom: 10px; } }
.frb-bld-bar.is-fixed .frb-bld-barrow, .frb-bld-bar.is-fixed .frb-bld-msg { max-width: 832px; margin-left: auto; margin-right: auto; }
.frb-bld-barrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.frb-bld-total span { display: block; font-size: 12px; color: var(--frb-muted); }
.frb-bld-total strong { font-size: 24px; font-family: Montserrat, Roboto, sans-serif; }
.frb-bld-nav { display: flex; gap: 8px; }
.frb-bld-msg { background: #5a1b1b; color: #fff; padding: 8px 12px; margin-bottom: 10px; font-size: 14px; }
@media (min-width: 640px) { .frb-bld-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) {
	.frb-bld { padding: 16px; }
	.frb-bld-barwrap { margin: 20px -16px 0; }
	.frb-bld-bar { padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); }
	.frb-bld-total strong { font-size: 20px; }
	.frb-bld .frb-progress li span:last-child { display: none; }
	.frb-bld-dates { grid-template-columns: 1fr; }
	.frb-bld-row { align-items: flex-start; }
}
/* "?" on each experience card */
.frb-bld-card-h { justify-content: flex-start; }
.frb-bld-card-h .frb-bld-price { margin-left: auto; }
.frb-info { appearance: none; position: relative; flex: none; width: 26px; height: 26px; margin-left: 4px; padding: 0; border: 1.5px solid var(--frb-brand-strong); border-radius: 50%; background: transparent; color: var(--frb-brand-strong); font: 700 14px/1 Montserrat, Roboto, sans-serif; cursor: pointer; align-self: center; }
.frb-info::after { content: ""; position: absolute; inset: -9px; }
.frb-info[aria-expanded="true"], .frb-info:hover { background: var(--frb-brand); border-color: var(--frb-brand); color: #fff; }
.frb-bld-info { background: var(--frb-surface-2); border-left: 3px solid var(--frb-brand); padding: 10px 14px; font-size: 14px; line-height: 1.5; }
.frb-bld-info[hidden] { display: none; }
.frb-bld-info p { margin: 0 0 6px; color: var(--frb-text); }
.frb-bld-info p:last-child { margin-bottom: 0; }
/* Phones: inputs at 16px so iOS does not zoom the page; the builder shows the name of the current step */
.frb-widget input, .frb-widget select, .frb-widget textarea { font-size: 16px; }
.frb-bld .frb-progress li.current span:last-child { display: inline; }
/* Group size picker and capacity hints on the date step */
.frb-groupn { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 0 0 16px; padding: 12px 14px; background: var(--frb-surface); border: 1px solid var(--frb-line); }
.frb-groupn .frb-stepper { display: flex; align-items: center; gap: 8px; flex: none; }
.frb-groupn output { min-width: 30px; text-align: center; font-weight: 700; font-size: 20px; }
.frb-day-cap { display: block; font-size: 9.5px; line-height: 1; color: var(--frb-muted); font-weight: 400; margin-top: 1px; }
.frb-day--too_big { background: var(--frb-surface-2); border-color: var(--frb-warn); color: var(--frb-text); box-shadow: inset 0 -3px 0 var(--frb-warn); opacity: .85; }
.frb-legend--toobig::before { background: var(--frb-surface-2); border-color: var(--frb-warn); box-shadow: inset 0 -3px 0 var(--frb-warn); }
.frb-time-cap { display: block; font-size: 10px; font-weight: 400; color: var(--frb-muted); }
@media (max-width: 520px) { .frb-groupn { flex-direction: column; align-items: stretch; } .frb-groupn .frb-stepper { justify-content: flex-end; } }
/* Day caption: the number in bold; on phones only the number (the note under the calendar explains it) */
.frb-day-cap b { font-weight: 700; font-size: 11px; color: var(--frb-text); }
.frb-cap-note { margin: 10px 0 0; }
@media (max-width: 520px) { .frb-day-cap span { display: none; } .frb-day-cap b { font-size: 12px; } .frb-time-cap { font-size: 9.5px; } }
/* "How do you ride?" (booking form and builder) */
.frb-riding { margin: 6px 0 4px; }
.frb-riding-opts { display: grid; gap: 8px; margin: 8px 0; }
.frb-riding-opts .frb-chip { flex: none; width: 100%; }
.frb-riding .frb-warn[hidden] { display: none; }
/* Builder: dates that are taken, and the "book now" choice */
.frb-bld input[type=radio] { display: inline-block; width: 22px; min-height: 22px; height: 22px; margin: 2px 0 0; padding: 0; flex: none; accent-color: var(--frb-brand); }
.frb-bld-slot { margin: 18px 0; padding: 14px 16px; background: var(--frb-surface-2); border-left: 4px solid var(--frb-warn); }
.frb-bld-slot p { margin: 8px 0 0; color: var(--frb-text); }
.frb-bld-alts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.frb-bld-alts .frb-chip { flex: 1 1 200px; text-align: center; font-weight: 600; }
.frb-bld-book { margin-top: 22px; padding: 16px; background: var(--frb-surface); border: 1px solid var(--frb-line); border-left: 4px solid var(--frb-brand); }
.frb-bld-book > strong { font-family: Montserrat, Roboto, sans-serif; font-size: 18px; }
.frb-bld-book p { margin: 8px 0 12px; color: var(--frb-text); }
.frb-bld-book ul { margin: 12px 0; padding-left: 18px; font-size: 14px; }
.frb-bld-radio { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; color: var(--frb-text); cursor: pointer; }
.frb-bld-radio small { color: var(--frb-muted); font-size: 13px; }
.frb-bld-barrow.is-last { flex-wrap: wrap; }
.frb-bld-barrow.is-last .frb-bld-nav { flex-wrap: wrap; justify-content: flex-end; flex: 1 1 260px; }
.frb-bld-barrow.is-last .frb-bld-nav .frb-btn { flex: 1 1 140px; }
.frb-bld label.frb-bld-radio { display: flex; }
@media (max-width: 640px) {
	.frb-bld-barrow.is-last { display: block; }
	.frb-bld-barrow.is-last .frb-bld-total { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
	.frb-bld-barrow.is-last .frb-bld-total span { display: inline; }
	.frb-bld-barrow.is-last .frb-bld-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
	.frb-bld-barrow.is-last #b-pay { grid-column: 1 / -1; order: -1; }
}

/* Hourly tours: a day that can still be booked but has some start times taken */
.frb-day--partial { border-color: var(--frb-warn); box-shadow: inset 0 -3px 0 var(--frb-warn); }
.frb-day--partial:hover { background: var(--frb-warn); color: #010f29; }
.frb-legend--partial::before { background: var(--frb-surface-2); border-color: var(--frb-warn); box-shadow: inset 0 -3px 0 var(--frb-warn); }
