:root {
	--btrtb-blue: #0b4f9c;
	--btrtb-blue-dark: #07396f;
	--btrtb-yellow: #ffd23f;
	--btrtb-yellow-soft: #fff2a8;
	--btrtb-yellow-pale: #fff9dc;
	--btrtb-ink: #000000;
	--btrtb-muted: #344054;
	--btrtb-line: #c4cfda;
	--btrtb-field-border: #344054;
	--btrtb-soft: #f3f7fc;
	--btrtb-danger: #a61b12;
	--btrtb-white: #ffffff;
}

.btrtb-wrap,
.btrtb-wrap * { box-sizing: border-box; }

.btrtb-wrap {
	width: 100%;
	margin: 30px auto;
	color: var(--btrtb-ink);
	font-family: inherit;
	scroll-margin-top: 18px;
}

.btrtb-wrap .screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.btrtb-shell {
	max-width: 930px;
	margin: 0 auto;
	overflow: hidden;
	background: var(--btrtb-white);
	border: 3px solid #111111;
	border-radius: 20px;
	box-shadow: 0 20px 44px rgba(23, 32, 51, 0.18), 0 0 0 1px rgba(255,255,255,0.08) inset;
}

.btrtb-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(230px, 320px);
	gap: 28px;
	align-items: center;
	padding: 27px 36px;
	background: linear-gradient(135deg, var(--btrtb-blue), var(--btrtb-blue-dark));
	color: var(--btrtb-white);
}

.btrtb-kicker {
	margin: 0 0 6px;
	color: var(--btrtb-yellow);
	font-size: 14px;
	font-weight: 850;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.btrtb-header h2 {
	margin: 0;
	color: var(--btrtb-white);
	font-size: clamp(30px, 4vw, 43px);
	line-height: 1.08;
}

.btrtb-progress-copy {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 8px;
	color: rgba(255, 255, 255, 0.94);
	font-size: 16px;
	font-weight: 800;
}

.btrtb-progress-track {
	height: 11px;
	overflow: hidden;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.22);
}

.btrtb-progress-track span {
	display: block;
	width: 0;
	height: 100%;
	border-radius: inherit;
	background: var(--btrtb-yellow);
	transition: width 0.28s ease;
}

.btrtb-intro,
.btrtb-form,
.btrtb-success { padding: 42px 46px 46px; }

.btrtb-guide-row {
	display: flex;
	align-items: flex-start;
	gap: 15px;
}

.btrtb-avatar {
	position: relative;
	display: inline-flex;
	flex: 0 0 68px;
	width: 68px;
	height: 68px;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border: 3px solid var(--btrtb-yellow);
	border-radius: 50%;
	background: var(--btrtb-white);
	color: var(--btrtb-white);
	font-size: 26px;
	font-weight: 900;
	box-shadow: 0 6px 16px rgba(11, 79, 156, 0.22);
}

.btrtb-avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.btrtb-avatar-fallback {
	display: none;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
	background: var(--btrtb-blue);
}

.btrtb-avatar.is-fallback img { display: none; }
.btrtb-avatar.is-fallback .btrtb-avatar-fallback { display: inline-flex; }

.btrtb-bubble {
	position: relative;
	width: 100%;
	max-width: 760px;
	padding: 20px 23px;
	border: 1px solid #becddd;
	border-radius: 6px 18px 18px 18px;
	background: var(--btrtb-soft);
}

.btrtb-bubble::before {
	content: "";
	position: absolute;
	top: 14px;
	left: -9px;
	width: 16px;
	height: 16px;
	border-left: 1px solid #becddd;
	border-bottom: 1px solid #becddd;
	background: var(--btrtb-soft);
	transform: rotate(45deg);
}

.btrtb-guide-name {
	display: block;
	margin-bottom: 6px;
	color: var(--btrtb-blue);
	font-size: 14px;
	font-weight: 900;
	letter-spacing: 0.075em;
	text-transform: uppercase;
}

.btrtb-bubble h3 {
	margin: 0;
	color: var(--btrtb-ink);
	font-size: clamp(21px, 2.8vw, 29px);
	line-height: 1.28;
	outline: none;
}

.btrtb-bubble p {
	margin: 9px 0 0;
	color: var(--btrtb-muted);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.55;
}

.btrtb-bubble .btrtb-time-guidance {
	margin-top: 14px;
	padding: 12px 14px;
	border-left: 5px solid #d4ad00;
	border-radius: 7px;
	background: #fff4b8;
	color: #171300;
	font-size: 19px;
	font-weight: 850;
	line-height: 1.45;
}

.btrtb-bubble .btrtb-time-guidance strong {
	display: block;
	margin-top: 7px;
	color: #8b1e00;
	font-size: 20px;
	font-weight: 950;
	letter-spacing: .01em;
	text-transform: uppercase;
}

.btrtb-intro .btrtb-start { display: block; margin: 20px 0 0 auto; }

.btrtb-question { min-height: 355px; }
.btrtb-question.is-active { animation: btrtb-in 0.24s ease both; }

.btrtb-answer-panel {
	max-width: 760px;
	margin: 26px 0 0 67px;
}

.btrtb-name-grid,
.btrtb-time-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.btrtb-name-field label,
.btrtb-time-grid label,
.btrtb-address-grid label {
	display: block;
	margin: 0 0 8px;
	color: var(--btrtb-ink);
	font-size: 17px;
	font-weight: 850;
}

.btrtb-large-input {
	width: 100%;
	min-height: 66px;
	margin: 0;
	padding: 15px 18px;
	border: 2px solid var(--btrtb-field-border);
	border-radius: 11px;
	background: var(--btrtb-white) !important;
	color: #000000 !important;
	-webkit-text-fill-color: #000000;
	font: inherit;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.35;
	box-shadow: 0 2px 0 rgba(17, 17, 17, 0.06);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}


.btrtb-wrap input.btrtb-large-input,
.btrtb-wrap select.btrtb-large-input,
.btrtb-wrap textarea.btrtb-large-input {
	display: block;
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box !important;
}

.btrtb-large-input::placeholder {
	color: #596576;
	opacity: 1;
	font-weight: 550;
}

/* v1.8.49 music-style field: clear empty-state styling and stronger field boundary */
.btrtb-wrap .btrtb-music-styles-input {
	border: 2px solid #000000 !important;
}

/* v1.8.52: make the music example unmistakably placeholder text across browsers */
.btrtb-wrap input.btrtb-music-styles-input::placeholder,
.btrtb-wrap input.btrtb-music-styles-input::-webkit-input-placeholder {
	color: #7a8491 !important;
	-webkit-text-fill-color: #7a8491 !important;
	opacity: 1 !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 14px !important;
	font-style: normal !important;
	font-weight: 400 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

.btrtb-wrap input.btrtb-music-styles-input::-moz-placeholder {
	color: #7a8491 !important;
	opacity: 1 !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 14px !important;
	font-style: normal !important;
	font-weight: 400 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

/* v1.8.54: keep optional music example visibly placeholder-like, including admin test mode */
.btrtb-wrap input.btrtb-music-styles-input:placeholder-shown {
	font-size: 20px !important;
	font-weight: 700 !important;
}
.btrtb-wrap input.btrtb-music-styles-input:placeholder-shown::placeholder {
	color: #8a929d !important;
	-webkit-text-fill-color: #8a929d !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	opacity: 1 !important;
}

/* v1.8.52: stronger, readable reassurance inside Harmony's bubble */
.btrtb-bubble .btrtb-music-bubble-note {
	margin: 12px 0 0;
	color: #2e3a4b;
	font-size: 19px;
	font-weight: 800;
	line-height: 1.4;
}

@media (max-width: 760px) {
	.btrtb-bubble .btrtb-music-bubble-note {
		font-size: 17px;
		font-weight: 800;
	}
	.btrtb-wrap input.btrtb-music-styles-input::placeholder,
	.btrtb-wrap input.btrtb-music-styles-input::-webkit-input-placeholder,
	.btrtb-wrap input.btrtb-music-styles-input::-moz-placeholder {
		font-size: 13px !important;
	}
}


.btrtb-wrap .btrtb-email-input {
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 22px !important;
	font-weight: 700 !important;
	letter-spacing: normal !important;
	text-transform: lowercase !important;
}
select.btrtb-large-input { padding-right: 48px; cursor: pointer; }
textarea.btrtb-large-input { min-height: 170px; resize: vertical; }

.btrtb-large-input:focus {
	border-color: var(--btrtb-blue);
	outline: 0;
	box-shadow: 0 0 0 5px rgba(11, 79, 156, 0.17);
}

.btrtb-address-panel,
.btrtb-venue-panel {
	max-width: 790px;
}

.btrtb-address-grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr 0.75fr;
	gap: 18px;
	padding: 22px;
	border: 2px solid #d2b325;
	border-radius: 14px;
	background: var(--btrtb-yellow-pale);
}

.btrtb-address-street { grid-column: 1 / -1; }
.btrtb-address-input { min-height: 78px; font-size: 22px; }
.btrtb-address-street,
.btrtb-address-street .btrtb-street-input {
	width: 100% !important;
	max-width: none !important;
}
.btrtb-address-street .btrtb-street-input {
	min-width: 100% !important;
}

.btrtb-choice-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.btrtb-choice {
	display: flex;
	min-height: 68px;
	align-items: center;
	padding: 15px 17px;
	border: 2px solid #c3a51a;
	border-radius: 12px;
	background: var(--btrtb-yellow-soft);
	color: var(--btrtb-ink);
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.btrtb-choice:hover {
	border-color: var(--btrtb-blue);
	background: #ffe56f;
	transform: translateY(-1px);
	box-shadow: 0 5px 14px rgba(11, 79, 156, 0.12);
}

.btrtb-choice input {
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	margin: 0 13px 0 0;
	accent-color: var(--btrtb-blue);
}

.btrtb-choice:has(input:checked) {
	border-color: var(--btrtb-blue);
	background: #dceeff;
	box-shadow: inset 0 0 0 1px var(--btrtb-blue);
}

.btrtb-radio-choice input { position: absolute; left: -9999px; }
.btrtb-radio-choice span { width: 100%; text-align: center; font-size: 18px; font-weight: 850; }

.btrtb-service-choice { align-items: flex-start; min-height: 124px; }
.btrtb-choice-copy { display: grid; gap: 8px; line-height: 1.35; }
.btrtb-choice-copy strong { color: #000000; font-size: 19px; font-weight: 900; }
.btrtb-choice-copy small { color: #172033; font-size: 17px; font-weight: 650; line-height: 1.48; }

.btrtb-venue-combobox { position: relative; }
.btrtb-wrap .btrtb-venue-input {
	min-height: 82px;
	padding-right: 22px;
	font-size: 28px !important;
	font-weight: 850 !important;
	line-height: 1.25;
}
.btrtb-venue-results {
	position: absolute;
	z-index: 20;
	top: calc(100% + 7px);
	left: 0;
	right: 0;
	max-height: 330px;
	overflow-y: auto;
	padding: 8px;
	border: 2px solid var(--btrtb-blue);
	border-radius: 12px;
	background: var(--btrtb-white);
	box-shadow: 0 18px 40px rgba(23, 32, 51, 0.2);
}

.btrtb-venue-option {
	display: grid;
	width: 100%;
	gap: 3px;
	padding: 13px 14px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: #000;
	text-align: left;
	cursor: pointer;
}

.btrtb-venue-option:hover,
.btrtb-venue-option.is-active { background: var(--btrtb-yellow-soft); }
.btrtb-venue-option strong { font-size: 18px; }
.btrtb-venue-option span { color: var(--btrtb-muted); font-size: 16px; font-weight: 650; }

.btrtb-payment-note {
	display: grid;
	gap: 4px;
	margin-top: 22px;
	padding: 18px 20px;
	border: 3px solid #d4ad00;
	border-radius: 11px;
	background: var(--btrtb-yellow);
	color: #171300;
	font-size: 18px;
	line-height: 1.45;
	box-shadow: 0 5px 0 rgba(97, 79, 0, 0.12);
}

.btrtb-payment-note strong { font-size: 21px; font-weight: 950; }
.btrtb-payment-note span { font-weight: 750; }
.btrtb-payment-note-intro { max-width: 760px; margin-left: 67px; }

.btrtb-error {
	display: block;
	min-height: 22px;
	margin-top: 8px;
	color: var(--btrtb-danger);
	font-size: 16px;
	font-weight: 850;
}

[aria-invalid="true"] { border-color: var(--btrtb-danger) !important; }

.btrtb-alert {
	margin: 0 0 22px 67px;
	padding: 14px 16px;
	border: 2px solid #df8e87;
	border-radius: 8px;
	background: #fff1f0;
	color: var(--btrtb-danger);
	font-size: 17px;
	font-weight: 850;
}

.btrtb-actions {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	margin: 28px 0 0 67px;
	padding-top: 24px;
	border-top: 1px solid var(--btrtb-line);
}

.btrtb-button {
	display: inline-flex;
	min-height: 58px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 0;
	padding: 13px 25px;
	border: 2px solid transparent;
	border-radius: 9px;
	font: inherit;
	font-size: 18px;
	font-weight: 900;
	line-height: 1.2;
	cursor: pointer;
	transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.btrtb-button:hover { transform: translateY(-1px); }
.btrtb-button-primary { margin-left: auto; background: var(--btrtb-blue); color: var(--btrtb-white); }
.btrtb-button-primary:hover,
.btrtb-button-primary:focus { background: var(--btrtb-blue-dark); color: var(--btrtb-white); }
.btrtb-button-secondary { border-color: #718096; background: var(--btrtb-white); color: var(--btrtb-ink); }
.btrtb-button:focus { outline: 0; box-shadow: 0 0 0 4px rgba(11, 79, 156, 0.18); }
.btrtb-button:disabled { cursor: wait; opacity: 0.75; transform: none; }

.btrtb-review {
	display: grid;
	gap: 0;
	margin-bottom: 18px;
	border: 2px solid var(--btrtb-line);
	border-radius: 12px;
	background: var(--btrtb-white);
	overflow: hidden;
}

.btrtb-review-row {
	display: grid;
	grid-template-columns: minmax(130px, 0.28fr) minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	min-height: 48px;
	padding: 8px 14px;
	border-bottom: 1px solid var(--btrtb-line);
}

.btrtb-review-row:nth-child(even) { background: #f8fbff; }
.btrtb-review-row:last-child { border-bottom: 0; }
.btrtb-review-label { color: #334155; font-size: 14px; font-weight: 900; text-transform: uppercase; letter-spacing: .2px; }
.btrtb-review-value { min-width: 0; color: #000; font-size: 16px; font-weight: 750; line-height: 1.35; overflow-wrap: anywhere; }

.btrtb-review-email {
	font-family: inherit !important;
	font-weight: 750 !important;
	letter-spacing: inherit !important;
	text-transform: lowercase !important;
}

.btrtb-edit-answer {
	padding: 5px 8px;
	border: 0;
	background: transparent;
	color: var(--btrtb-blue);
	font: inherit;
	font-size: 15px;
	font-weight: 900;
	text-decoration: underline;
	cursor: pointer;
}


.btrtb-consent { display: flex; align-items: flex-start; gap: 12px; color: #111; font-size: 17px; font-weight: 650; line-height: 1.55; }
.btrtb-consent input { flex: 0 0 auto; width: 23px; height: 23px; margin-top: 2px; accent-color: var(--btrtb-blue); }
.btrtb-consent a { color: var(--btrtb-blue); }

.btrtb-spinner { display: none; width: 19px; height: 19px; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: btrtb-spin .75s linear infinite; }
.btrtb-button.is-loading .btrtb-spinner { display: inline-block; }

.btrtb-success { text-align: center; outline: none; }
.btrtb-success-icon { display: inline-flex; width: 78px; height: 78px; align-items: center; justify-content: center; margin-bottom: 20px; border-radius: 50%; background: var(--btrtb-yellow); color: var(--btrtb-blue-dark); font-size: 44px; font-weight: 900; }
.btrtb-success h3 { margin: 0 0 14px; color: var(--btrtb-blue-dark); font-size: clamp(29px, 4vw, 41px); }
.btrtb-success-message,
.btrtb-success p { max-width: 680px; margin-right: auto; margin-left: auto; color: #334155; font-size: 18px; line-height: 1.65; }


.btrtb-confetti-layer {
	position: fixed;
	z-index: 2147483646;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
}

.btrtb-confetti-piece {
	position: absolute;
	top: -24px;
	border-radius: 2px;
	opacity: 0.98;
	animation-name: btrtb-confetti-fall;
	animation-timing-function: cubic-bezier(.18,.72,.34,1);
	animation-fill-mode: forwards;
}

.btrtb-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
[hidden] { display: none !important; }

@keyframes btrtb-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes btrtb-spin { to { transform: rotate(360deg); } }
@keyframes btrtb-confetti-fall {
	0% { opacity: 0; transform: translate3d(0, -25px, 0) rotate(0deg); }
	10% { opacity: 1; }
	100% { opacity: 1; transform: translate3d(var(--btrtb-confetti-drift), 108vh, 0) rotate(760deg); }
}

@media (max-width: 760px) {
	.btrtb-wrap { margin: 14px auto; }
	.btrtb-shell { border-radius: 13px; }
	.btrtb-header { grid-template-columns: 1fr; gap: 18px; padding: 24px 20px; }
	.btrtb-intro,
	.btrtb-form,
	.btrtb-success { padding: 28px 18px 34px; }
	.btrtb-avatar { flex-basis: 56px; width: 56px; height: 56px; font-size: 21px; }
	.btrtb-bubble { padding: 17px 18px; }
	.btrtb-bubble h3 { font-size: clamp(20px, 5.4vw, 25px); }
	.btrtb-bubble p { font-size: 17px; }
	.btrtb-answer-panel,
	.btrtb-actions,
	.btrtb-alert,
	.btrtb-intro .btrtb-start,
	.btrtb-payment-note-intro { max-width: none; margin-left: 0; }
	.btrtb-answer-panel { margin-top: 22px; }
	.btrtb-question { min-height: 310px; }
	.btrtb-choice-grid { grid-template-columns: 1fr; }
	.btrtb-service-choice { min-height: 108px; }
	.btrtb-address-grid { grid-template-columns: 1fr 1fr; padding: 17px; }
	.btrtb-address-street { grid-column: 1 / -1; }
	.btrtb-actions { position: sticky; bottom: 0; z-index: 5; flex-wrap: wrap; padding: 16px 0 4px; background: linear-gradient(to bottom, rgba(255,255,255,.88), #fff 28%); }
	.btrtb-button { flex: 1 1 140px; min-height: 58px; }
	.btrtb-button-primary { margin-left: 0; }
}

@media (max-width: 520px) {
	.btrtb-guide-row { gap: 9px; }
	.btrtb-avatar { flex-basis: 52px; width: 52px; height: 52px; border-width: 2px; font-size: 19px; }
	.btrtb-bubble { padding: 15px; }
	.btrtb-name-grid,
	.btrtb-time-grid,
	.btrtb-address-grid { grid-template-columns: 1fr; gap: 14px; }
	.btrtb-address-street { grid-column: auto; }
	.btrtb-large-input { min-height: 62px; font-size: 18px; }
	.btrtb-address-input { min-height: 72px; font-size: 20px; }
	.btrtb-wrap .btrtb-venue-input { min-height: 72px; font-size: 23px !important; }
	.btrtb-wrap .btrtb-email-input { font-size: 20px !important; }
	.btrtb-choice-copy small { font-size: 16px; }
	.btrtb-review-row { grid-template-columns: 105px minmax(0, 1fr) auto; gap: 8px; padding: 9px 10px; }
	.btrtb-review-label { font-size: 12px; }
	.btrtb-review-value { font-size: 15px; }
	.btrtb-payment-note strong { font-size: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.btrtb-wrap *,
	.btrtb-wrap *::before,
	.btrtb-wrap *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* v1.5.0 friction-reduction refinements */
.btrtb-progress-copy {
	justify-content: flex-end;
}

.btrtb-progress-copy [data-progress-percent] {
	font-size: 18px;
	font-weight: 950;
}

.btrtb-date-input {
	padding-right: 72px !important;
	cursor: pointer;
}

.btrtb-date-input::-webkit-calendar-picker-indicator {
	width: 34px;
	height: 34px;
	padding: 6px;
	border: 2px solid var(--btrtb-blue);
	border-radius: 8px;
	background-color: var(--btrtb-yellow);
	cursor: pointer;
	opacity: 1;
}

.btrtb-service-choice {
	position: relative;
	min-height: 76px;
	align-items: center;
	padding-top: 17px;
	padding-bottom: 17px;
}

.btrtb-choice-copy {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	line-height: 1.25;
}

.btrtb-choice-copy strong {
	font-size: 20px;
}

.btrtb-popular-badge {
	position: relative;
	flex: 0 0 auto;
	padding: 6px 10px;
	border: 3px solid #111111;
	border-radius: 999px;
	background: var(--btrtb-yellow);
	color: #111111;
	font-size: 12px;
	font-weight: 950;
	letter-spacing: .035em;
	line-height: 1.1;
	text-align: center;
	text-transform: uppercase;
	box-shadow: 0 3px 0 #9d7c00, 0 5px 11px rgba(0,0,0,.16);
	transform-origin: center;
	animation: btrtb-customer-favorite-wiggle 4.2s ease-in-out infinite;
}

.btrtb-popular-badge::before {
	content: "★";
	display: inline-block;
	margin-right: 4px;
	font-size: 13px;
}

@keyframes btrtb-customer-favorite-wiggle {
	0%, 72%, 100% { transform: rotate(0deg) scale(1); }
	76% { transform: rotate(-4deg) scale(1.06); }
	80% { transform: rotate(4deg) scale(1.06); }
	84% { transform: rotate(-3deg) scale(1.04); }
	88% { transform: rotate(2deg) scale(1.03); }
	92% { transform: rotate(0deg) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
	.btrtb-popular-badge { animation: none; }
}

.btrtb-venue-combobox {
	position: static;
}

.btrtb-venue-results {
	position: relative;
	z-index: 2;
	top: auto;
	left: auto;
	right: auto;
	max-height: 245px;
	margin-top: 8px;
	box-shadow: 0 10px 24px rgba(23, 32, 51, 0.14);
}

.btrtb-venue-panel {
	padding-bottom: 4px;
}

@media (max-width: 760px) {
	.btrtb-service-choice {
		min-height: 72px;
	}

	.btrtb-choice-copy {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}

	.btrtb-venue-results {
		max-height: 220px;
	}
}


/* v1.6.1 date, venue, and call-to-action refinements */
.btrtb-date-panel {
	max-width: 760px;
}

.btrtb-date-picker {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	gap: 14px;
	align-items: stretch;
}

.btrtb-calendar-button {
	display: inline-flex;
	min-height: 76px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 8px 12px;
	border: 3px solid var(--btrtb-blue);
	border-radius: 12px;
	background: var(--btrtb-yellow);
	color: var(--btrtb-blue-dark);
	font: inherit;
	font-size: 14px;
	font-weight: 950;
	line-height: 1.1;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 5px 0 rgba(7, 57, 111, 0.16);
	transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}

.btrtb-calendar-button:hover,
.btrtb-calendar-button:focus {
	background: #ffe268;
	outline: 0;
	transform: translateY(-1px);
	box-shadow: 0 0 0 5px rgba(11, 79, 156, .17), 0 5px 0 rgba(7, 57, 111, 0.16);
}

.btrtb-calendar-button svg {
	width: 31px;
	height: 31px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.btrtb-date-input {
	min-height: 76px;
	padding-right: 20px !important;
	font-size: 22px;
	cursor: pointer;
}

.btrtb-date-input::-webkit-calendar-picker-indicator {
	width: 0;
	height: 0;
	padding: 0;
	margin: 0;
	opacity: 0;
}

.btrtb-date-help {
	margin: 9px 0 0;
	color: var(--btrtb-muted);
	font-size: 17px;
	font-weight: 750;
	line-height: 1.4;
}

.btrtb-venue-option {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: center !important;
	gap: 3px !important;
	text-align: left !important;
}

.btrtb-venue-option strong,
.btrtb-venue-option span {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left !important;
}

.btrtb-button.btrtb-review-cta {
	position: relative;
	overflow: hidden;
	border-color: var(--btrtb-yellow);
	box-shadow: 0 0 0 3px rgba(255, 210, 63, .26), 0 8px 20px rgba(7, 57, 111, .24);
}

.btrtb-button.btrtb-review-cta::after {
	content: "";
	position: absolute;
	top: -40%;
	left: -48%;
	width: 32%;
	height: 180%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .82), transparent);
	transform: skewX(-22deg);
	animation: btrtb-review-shimmer 2.35s ease-in-out infinite;
	pointer-events: none;
}

@keyframes btrtb-review-shimmer {
	0%, 34% { left: -48%; }
	72%, 100% { left: 122%; }
}

@media (max-width: 520px) {
	.btrtb-date-picker {
		grid-template-columns: 88px minmax(0, 1fr);
		gap: 10px;
	}

	.btrtb-calendar-button,
	.btrtb-date-input {
		min-height: 68px;
	}

	.btrtb-calendar-button {
		padding: 7px 8px;
		font-size: 12px;
	}

	.btrtb-calendar-button svg {
		width: 27px;
		height: 27px;
	}

	.btrtb-date-input {
		font-size: 18px;
	}
}

.btrtb-phone-disclosure { margin: 10px 2px 0; color: #4b5563; font-size: 14px; line-height: 1.45; }


.btrtb-date-selected-display {
	margin: 10px 4px 0;
	color: var(--btrtb-blue-dark);
	font-size: 18px;
	font-weight: 850;
	line-height: 1.4;
}

.btrtb-calendar-button {
	position: relative;
	overflow: visible;
}

.btrtb-calendar-finger {
	position: absolute;
	right: -10px;
	bottom: -14px;
	font-size: 24px;
	line-height: 1;
	filter: drop-shadow(0 2px 0 rgba(255,255,255,.5));
	animation: btrtb-finger-tap 1.35s ease-in-out infinite;
	pointer-events: none;
}

@keyframes btrtb-finger-tap {
	0%, 100% { transform: translate(0, 0) scale(1); opacity: .92; }
	25% { transform: translate(-2px, -2px) scale(1.04); opacity: 1; }
	55% { transform: translate(-5px, 4px) scale(.92); opacity: .96; }
	75% { transform: translate(-2px, 1px) scale(1); opacity: .98; }
}

.btrtb-venue-quick-actions {
	margin-top: 10px;
}

.btrtb-venue-unknown {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 14px;
	border: 2px solid var(--btrtb-blue);
	border-radius: 999px;
	background: #eef6ff;
	color: var(--btrtb-blue-dark);
	font: inherit;
	font-size: 15px;
	font-weight: 850;
	cursor: pointer;
}

.btrtb-venue-unknown:hover,
.btrtb-venue-unknown:focus {
	background: #dceeff;
	outline: 0;
}

.btrtb-select-input {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	padding-right: 48px;
	background-image: linear-gradient(45deg, transparent 50%, #0b4f9c 50%), linear-gradient(135deg, #0b4f9c 50%, transparent 50%), linear-gradient(to right, rgba(11,79,156,.12), rgba(11,79,156,.12));
	background-position: calc(100% - 22px) calc(50% - 3px), calc(100% - 15px) calc(50% - 3px), calc(100% - 44px) 50%;
	background-size: 8px 8px, 8px 8px, 1px 60%;
	background-repeat: no-repeat;
}


.btrtb-field-heading {
	margin: 0 0 10px;
	color: var(--btrtb-blue);
	font-size: 18px;
	font-weight: 950;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.btrtb-select-label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.btrtb-select-label small {
	color: var(--btrtb-blue);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.btrtb-select-emphasis {
	border-width: 3px;
	padding-right: 58px;
	background-image: linear-gradient(45deg, transparent 50%, #0b4f9c 50%), linear-gradient(135deg, #0b4f9c 50%, transparent 50%), linear-gradient(to right, rgba(11,79,156,.18), rgba(11,79,156,.18));
	background-position: calc(100% - 25px) calc(50% - 4px), calc(100% - 14px) calc(50% - 4px), calc(100% - 48px) 50%;
	background-size: 11px 11px, 11px 11px, 2px 68%;
	box-shadow: inset 0 0 0 1px rgba(11,79,156,.12);
}

.btrtb-bubble .btrtb-guide-name {
	margin-bottom: 4px;
}

@media (max-width: 760px) {
	.btrtb-bubble h3 { font-size: clamp(20px, 5.3vw, 25px); }
	.btrtb-bubble p { font-size: 15px; }
	.btrtb-date-selected-display { font-size: 16px; }
	.btrtb-field-heading { font-size: 16px; margin-bottom: 8px; }
	.btrtb-select-label { align-items: flex-start; flex-direction: column; gap: 3px; }
	.btrtb-select-label small { font-size: 11px; }
}


/* v1.8.1 Harmony guide and streamlined opening */
.btrtb-intro {
	padding-top: 30px;
	padding-bottom: 28px;
}

.btrtb-intro-bubble {
	padding-top: 17px;
	padding-bottom: 17px;
}

.btrtb-intro-bubble p {
	margin-top: 6px;
	font-weight: 750;
}

.btrtb-intro .btrtb-payment-note {
	margin-top: 16px;
	padding-top: 14px;
	padding-bottom: 14px;
}

.btrtb-intro .btrtb-payment-note strong {
	font-size: 19px;
}

.btrtb-intro .btrtb-payment-note span {
	font-size: 16px;
}

.btrtb-button.btrtb-continue-shimmer {
	position: relative;
	overflow: hidden;
}

.btrtb-button.btrtb-continue-shimmer::after {
	content: "";
	position: absolute;
	top: -45%;
	left: -55%;
	width: 25%;
	height: 190%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .62), transparent);
	transform: skewX(-22deg);
	animation: btrtb-continue-shimmer 5s ease-in-out infinite;
	pointer-events: none;
}

.btrtb-button.btrtb-continue-shimmer.btrtb-review-cta::after,
.btrtb-button.btrtb-review-cta::after {
	width: 32%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .82), transparent);
	animation: btrtb-review-shimmer 2.35s ease-in-out infinite;
}

.btrtb-button:disabled::after,
.btrtb-button.is-loading::after {
	display: none;
}

@keyframes btrtb-continue-shimmer {
	0%, 69% { left: -55%; }
	88%, 100% { left: 125%; }
}

@media (max-width: 760px) {
	.btrtb-intro {
		padding-top: 22px;
		padding-bottom: 22px;
	}

	.btrtb-intro .btrtb-start {
		width: 100%;
		margin-top: 16px;
	}

	.btrtb-intro .btrtb-payment-note {
		margin-top: 14px;
	}
}


/* v1.8.3 edge-to-edge integrated booking banner */
.btrtb-banner-header {
	display: block;
	padding: 0;
	background: transparent;
	color: var(--btrtb-ink);
}
.btrtb-header-banner-frame {
	width: 100%;
	overflow: hidden;
	border-radius: 17px 17px 0 0;
	background: #75b900;
	line-height: 0;
	border-bottom: 4px solid #111111;
}
.btrtb-header-banner-image {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	border: 0;
	border-radius: 0;
	object-fit: cover;
	object-position: center center;
}
.btrtb-banner-header .btrtb-progress {
	padding: 13px 32px 15px;
	background: linear-gradient(135deg, var(--btrtb-blue), var(--btrtb-blue-dark));
}
.btrtb-banner-header .btrtb-progress-copy { color: #fff; }
.btrtb-header-fallback { padding: 27px 36px; background: linear-gradient(135deg, var(--btrtb-blue), var(--btrtb-blue-dark)); color: #fff; }
.btrtb-header-fallback h2 { margin: 0; color: #fff; }

.btrtb-intro {
	padding-top: 26px;
	padding-bottom: 26px;
}
.btrtb-intro .btrtb-guide-row { align-items: center; }
.btrtb-intro-bubble { padding-top: 15px; padding-bottom: 15px; }
.btrtb-intro-bubble h3 { font-size: clamp(20px, 2.5vw, 27px); }
.btrtb-intro-bubble p { margin-top: 5px; }
.btrtb-intro .btrtb-payment-note { margin-top: 16px; padding: 13px 16px; }
.btrtb-intro .btrtb-start { margin-top: 15px; }

@media (max-width: 760px) {
	.btrtb-header-banner-frame { border-radius: 13px 13px 0 0; }
	.btrtb-header-banner-image { width: 100%; }
	.btrtb-banner-header .btrtb-progress { padding: 11px 18px 13px; }
	.btrtb-intro { padding-top: 20px; padding-bottom: 22px; }
	.btrtb-intro-bubble { padding: 13px 14px; }
	.btrtb-intro-bubble h3 { font-size: 20px; }
	.btrtb-intro .btrtb-payment-note { margin-top: 13px; }
}


/* v1.8.4 compact question flow */
.btrtb-intro-bubble .btrtb-start-prompt {
	margin-top: 9px;
	color: var(--btrtb-blue-dark);
	font-size: 20px;
	font-weight: 900;
	line-height: 1.35;
}

.btrtb-header-banner-frame[hidden],
.btrtb-header-fallback[hidden] {
	display: none !important;
}

.btrtb-banner-header:has(.btrtb-header-banner-frame[hidden]),
.btrtb-banner-header:has(.btrtb-header-fallback[hidden]) {
	min-height: 0;
}

@media (max-width: 760px) {
	.btrtb-intro-bubble .btrtb-start-prompt {
		font-size: 18px;
	}
}

/* v1.8.5 clarity and quick-entry refinements */
.btrtb-clearable-field { position: relative; }
.btrtb-clearable-field .btrtb-large-input { padding-right: 86px; }
.btrtb-clear-field {
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	padding: 8px 12px;
	border: 2px solid var(--btrtb-blue);
	border-radius: 8px;
	background: #eef6ff;
	color: var(--btrtb-blue-dark);
	font: inherit;
	font-size: 14px;
	font-weight: 900;
	cursor: pointer;
}
.btrtb-date-selected-display {
	width: 100%;
	margin: 12px auto 0;
	text-align: center;
	font-size: 20px;
	font-weight: 900;
}
.btrtb-venue-quick-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.btrtb-hours-comparison {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 18px;
	margin: 14px 0 0;
	padding: 14px 16px;
	border: 2px solid var(--btrtb-blue);
	border-radius: 10px;
	background: #eef6ff;
	color: var(--btrtb-blue-dark);
}
.btrtb-hours-comparison > div { display: grid; gap: 3px; text-align: center; }
.btrtb-hours-comparison span { font-size: 14px; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }
.btrtb-hours-comparison strong { font-size: 20px; font-weight: 950; }
.btrtb-hours-comparison p { grid-column: 1 / -1; margin: 2px 0 0; text-align: center; font-size: 15px; font-weight: 800; }
.btrtb-hours-comparison.is-over { border-color: #b42318; background: #fff0ed; color: #8f1710; }
.btrtb-hours-comparison.is-over p { font-size: 17px; font-weight: 950; }
.btrtb-consent {
	gap: 16px;
	padding: 16px;
	border: 3px solid var(--btrtb-blue);
	border-radius: 12px;
	background: #eef6ff;
	font-size: 18px;
	font-weight: 800;
}
.btrtb-consent input {
	width: 34px;
	height: 34px;
	margin-top: 0;
	box-shadow: 0 0 0 3px rgba(11,79,156,.15);
}
@media (max-width: 600px) {
	.btrtb-date-selected-display { font-size: 17px; }
	.btrtb-hours-comparison { grid-template-columns: 1fr; gap: 8px; padding: 12px; }
	.btrtb-hours-comparison p { grid-column: 1; font-size: 14px; }
	.btrtb-consent { font-size: 16px; padding: 13px; }
	.btrtb-consent input { width: 32px; height: 32px; }
}


/* v1.8.6 laptop-scale refinements */
@media (min-width: 761px) {
	.btrtb-shell { max-width: 860px; }
	.btrtb-intro,
	.btrtb-form,
	.btrtb-success { padding: 30px 34px 34px; }
	.btrtb-bubble { padding: 16px 19px; }
	.btrtb-bubble h3 { font-size: clamp(20px, 2.45vw, 27px); }
	.btrtb-bubble p { font-size: 15px; line-height: 1.4; }
	.btrtb-avatar { flex-basis: 60px; width: 60px; height: 60px; }
	.btrtb-answer-panel { margin-top: 20px; margin-left: 60px; }
	.btrtb-large-input { min-height: 58px; padding: 12px 15px; font-size: 18px; }
	.btrtb-question { min-height: 315px; }
	.btrtb-actions { margin-top: 24px; }
}


/* v1.8.8 visible in-bar progress label */
.btrtb-banner-header .btrtb-progress {
	padding-top: 10px;
	padding-bottom: 12px;
}

.btrtb-progress-copy {
	display: none !important;
}

.btrtb-progress-track {
	position: relative;
	display: flex;
	height: 28px;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border: 2px solid rgba(255, 255, 255, .72);
	border-radius: 999px;
	background: rgba(255, 255, 255, .22);
	box-shadow: inset 0 1px 3px rgba(0, 0, 0, .18);
}

.btrtb-progress-track .btrtb-progress-fill {
	position: absolute;
	inset: 0 auto 0 0;
	z-index: 1;
	display: block;
	width: 0;
	height: 100%;
	border-radius: inherit;
	background: var(--btrtb-yellow);
	transition: width .28s ease;
}

.btrtb-progress-label {
	position: relative;
	z-index: 2;
	color: #081b35;
	font-size: 15px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: .045em;
	text-shadow: 0 1px 0 rgba(255,255,255,.75);
}

@media (max-width: 760px) {
	.btrtb-progress-track { height: 26px; }
	.btrtb-progress-label { font-size: 13px; }
}


/* v1.8.9 progress bar repositioned inside the form */
.btrtb-banner-header .btrtb-progress {
	display: none !important;
}

.btrtb-form > .btrtb-progress-in-form {
	display: block;
	max-width: 760px;
	margin: -10px 0 24px 60px;
	padding: 12px 15px 14px;
	border: 2px solid #0b4f9c;
	border-radius: 12px;
	background: #eef6ff;
	box-shadow: 0 3px 0 rgba(11,79,156,.1);
}

.btrtb-form > .btrtb-progress-in-form[hidden] {
	display: none !important;
}

.btrtb-progress-heading {
	margin-bottom: 8px;
	color: #07396f;
	font-size: 17px;
	font-weight: 950;
	line-height: 1;
	text-align: center;
	letter-spacing: .04em;
}

.btrtb-form > .btrtb-progress-in-form .btrtb-progress-track {
	display: block;
	height: 14px;
	overflow: hidden;
	border: 1px solid #7ca5cf;
	border-radius: 999px;
	background: #cfe0f2;
	box-shadow: inset 0 1px 2px rgba(0,0,0,.14);
}

.btrtb-form > .btrtb-progress-in-form .btrtb-progress-fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--btrtb-yellow);
	transition: width .28s ease;
}

@media (max-width: 760px) {
	.btrtb-form > .btrtb-progress-in-form {
		max-width: none;
		margin: -4px 0 18px;
		padding: 10px 12px 12px;
	}
	.btrtb-progress-heading { font-size: 15px; }
	.btrtb-form > .btrtb-progress-in-form .btrtb-progress-track { height: 12px; }
}


/* v1.8.10 high-contrast mobile progress status */
.btrtb-form > .btrtb-progress-in-form {
	padding: 10px 12px;
	background: #0b4f9c;
	border-color: #07396f;
}

.btrtb-form > .btrtb-progress-in-form .btrtb-progress-track {
	position: relative;
	display: flex;
	height: 38px;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border: 2px solid rgba(255,255,255,.82);
	background: #4f79a8;
}

.btrtb-form > .btrtb-progress-in-form .btrtb-progress-fill {
	position: absolute;
	inset: 0 auto 0 0;
	z-index: 1;
	height: 100%;
	background: var(--btrtb-yellow);
}

.btrtb-progress-status {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: 4px 14px;
	border: 2px solid rgba(7,57,111,.28);
	border-radius: 999px;
	background: rgba(255,255,255,.94);
	color: #061d38;
	font-size: 17px;
	font-weight: 950;
	line-height: 1;
	letter-spacing: .045em;
	text-align: center;
	text-shadow: none;
	box-shadow: 0 1px 3px rgba(0,0,0,.18);
}

@media (max-width: 760px) {
	.btrtb-form > .btrtb-progress-in-form {
		margin-bottom: 16px;
		padding: 9px 10px;
	}

	.btrtb-form > .btrtb-progress-in-form .btrtb-progress-track {
		height: 42px;
	}

	.btrtb-progress-status {
		min-height: 31px;
		padding: 5px 16px;
		font-size: 18px;
		letter-spacing: .035em;
	}
}

@media (max-width: 390px) {
	.btrtb-progress-status {
		font-size: 17px;
	}
}


/* v1.8.11 cleaner timing, progress, and payment messaging */
.btrtb-progress-almost {
	margin: 8px 0 0;
	color: #ffffff;
	font-size: 16px;
	font-weight: 900;
	line-height: 1.2;
	text-align: center;
	letter-spacing: .02em;
}

.btrtb-progress-almost[hidden] { display: none !important; }

.btrtb-payment-note {
	gap: 8px;
	text-align: center;
}

.btrtb-payment-note strong {
	display: block;
	font-size: 22px;
	line-height: 1.15;
	letter-spacing: .02em;
}

.btrtb-payment-note span {
	display: block;
	max-width: 700px;
	margin: 0 auto;
	font-size: 17px;
	line-height: 1.45;
}

.btrtb-intro .btrtb-payment-note,
.btrtb-review-step .btrtb-payment-note {
	padding: 16px 20px;
}

.btrtb-bubble .btrtb-time-guidance {
	text-align: left;
}

@media (max-width: 760px) {
	.btrtb-progress-almost { font-size: 15px; }
	.btrtb-payment-note { gap: 7px; }
	.btrtb-payment-note strong { font-size: 20px; }
	.btrtb-payment-note span { font-size: 15px; line-height: 1.4; }
}


/* v1.8.12 concise ceremony-location explanations */
.btrtb-ceremony-choice {
	min-height: 104px;
	align-items: center;
}

.btrtb-radio-choice .btrtb-ceremony-copy {
	display: grid;
	width: 100%;
	gap: 6px;
	text-align: center;
	line-height: 1.28;
}

.btrtb-radio-choice .btrtb-ceremony-copy strong {
	display: block;
	color: #000;
	font-size: 17px;
	font-weight: 900;
}

.btrtb-radio-choice .btrtb-ceremony-copy small {
	display: block;
	color: #283548;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
	text-transform: none;
}

@media (max-width: 760px) {
	.btrtb-ceremony-choice { min-height: 96px; }
	.btrtb-radio-choice .btrtb-ceremony-copy strong { font-size: 16px; }
	.btrtb-radio-choice .btrtb-ceremony-copy small { font-size: 14px; }
}


/* v1.8.13 stronger outer frame and integrated banner divider */
.btrtb-shell {
	position: relative;
}

.btrtb-header-banner-image {
	background: #75b900;
}

@media (max-width: 760px) {
	.btrtb-shell {
		border-width: 2px;
		box-shadow: 0 14px 28px rgba(23, 32, 51, 0.16);
	}
	.btrtb-header-banner-frame {
		border-bottom-width: 3px;
	}
}


/* v1.8.14 compact opening payment notice */
.btrtb-intro .btrtb-payment-note-intro {
	max-width: 650px;
	gap: 3px;
	padding: 12px 18px;
	text-align: center;
}

.btrtb-intro .btrtb-payment-note-intro strong {
	font-size: 21px;
	line-height: 1.1;
}

.btrtb-intro .btrtb-payment-note-intro span {
	font-size: 17px;
	font-weight: 850;
	line-height: 1.3;
}

@media (max-width: 760px) {
	.btrtb-intro .btrtb-payment-note-intro {
		max-width: none;
		padding: 12px 14px;
	}
	.btrtb-intro .btrtb-payment-note-intro strong {
		font-size: 20px;
	}
	.btrtb-intro .btrtb-payment-note-intro span {
		font-size: 16px;
		line-height: 1.28;
	}
}


/* v1.8.15 clearer estimated-time, date, address, and final-step cues */
.btrtb-date-selected-display {
	font-size: 19px;
	line-height: 1.35;
}

.btrtb-time-grid select:invalid {
	color: #596579 !important;
	font-style: italic;
}

.btrtb-progress-almost {
	font-size: 20px;
	color: var(--btrtb-yellow);
	text-shadow: 0 2px 0 rgba(0,0,0,.25);
	animation: btrtb-almost-pulse 1.65s ease-in-out infinite;
}

@keyframes btrtb-almost-pulse {
	0%, 100% { transform: scale(1); opacity: .9; }
	50% { transform: scale(1.035); opacity: 1; }
}

@media (max-width: 760px) {
	.btrtb-date-selected-display { font-size: 17px; }
	.btrtb-progress-almost { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
	.btrtb-progress-almost { animation: none; }
}


/* v1.8.17 stronger contact-field autofill identification */
.btrtb-autofill-label {
	display: block;
	margin: 0 0 8px 3px;
	color: var(--btrtb-ink);
	font-size: 15px;
	font-weight: 900;
	letter-spacing: .02em;
	text-transform: uppercase;
}

@media (max-width: 760px) {
	.btrtb-autofill-label {
		font-size: 16px;
		margin-bottom: 9px;
	}
}


/* v1.8.18 complete address flow for unlisted venues */
.btrtb-venue-manual {
	margin-top: 14px;
}
.btrtb-venue-manual[hidden] { display: none !important; }
.btrtb-venue-manual-heading {
	margin: 0 0 10px;
	color: var(--btrtb-blue-dark);
	font-size: 18px;
	font-weight: 950;
	text-align: center;
}
.btrtb-venue-address-grid {
	grid-template-columns: 1.2fr .85fr .75fr;
}
.btrtb-venue-search-again {
	display: inline-flex;
	margin-top: 10px;
	padding: 9px 13px;
	border: 2px solid var(--btrtb-blue);
	border-radius: 999px;
	background: #eef6ff;
	color: var(--btrtb-blue-dark);
	font: inherit;
	font-size: 14px;
	font-weight: 900;
	cursor: pointer;
}
.btrtb-venue-search-again:hover,
.btrtb-venue-search-again:focus {
	background: #dceeff;
	outline: 0;
}
@media (max-width: 760px) {
	.btrtb-venue-address-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
	.btrtb-venue-address-grid { grid-template-columns: 1fr; }
	.btrtb-venue-search-again { width: 100%; justify-content: center; }
}


/* v1.8.19 separate off-site ceremony address */
.btrtb-ceremony-address-panel {
	max-width: 760px;
}

@media (max-width: 760px) {
	.btrtb-ceremony-address-panel .btrtb-address-grid {
		grid-template-columns: 1fr;
	}
}


/* v1.8.22 mobile action priority */
@media (max-width: 760px) {
	.btrtb-actions [data-next],
	.btrtb-actions [data-submit] {
		order: 1;
		flex: 1 1 100%;
		width: 100%;
	}

	.btrtb-actions [data-prev] {
		order: 2;
		flex: 1 1 100%;
		width: 100%;
	}
}


/* v1.8.23 mobile date formatting and Michigan-only event locations */
.btrtb-date-selected-label,
.btrtb-date-selected-value {
	display: inline;
}

.btrtb-fixed-state[readonly] {
	background: #f3f7fc !important;
	color: #000 !important;
	cursor: default;
}

@media (max-width: 760px) {
	.btrtb-date-selected-label,
	.btrtb-date-selected-value {
		display: block;
		width: 100%;
	}
	.btrtb-date-selected-label {
		margin-bottom: 4px;
	}
}


/* v1.8.26 RoboForm identity bridge and Event Hero request */
.btrtb-autofill-bridge {
	position: fixed !important;
	top: 0 !important;
	left: -10000px !important;
	width: 360px !important;
	height: auto !important;
	overflow: visible !important;
	opacity: .01 !important;
	pointer-events: none !important;
	z-index: -1 !important;
}

.btrtb-autofill-bridge input,
.btrtb-autofill-bridge label,
.btrtb-autofill-bridge legend {
	display: block !important;
	width: 100% !important;
	height: auto !important;
}

.btrtb-hero-request-name {
	margin-top: 18px;
	padding: 18px;
	border: 2px solid var(--btrtb-blue);
	border-radius: 12px;
	background: #eef6ff;
}

.btrtb-hero-request-name label {
	display: block;
	margin-bottom: 8px;
	font-size: 17px;
	font-weight: 900;
}

.btrtb-hero-request-note {
	margin: 8px 2px 0;
	color: var(--btrtb-muted);
	font-size: 15px;
	font-weight: 700;
}


/* v1.8.32 administrator-only testing tools */
.btrtb-admin-tools {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 14px;
	border-top: 2px solid #111;
	border-bottom: 2px solid #111;
	background: #101826;
	color: #fff;
}

.btrtb-admin-version {
	display: flex;
	align-items: center;
	gap: 9px;
	font-family: Arial, sans-serif;
	font-size: 13px;
	line-height: 1.2;
}

.btrtb-admin-version strong {
	display: inline-flex;
	padding: 4px 7px;
	border-radius: 999px;
	background: #ffd23f;
	color: #111;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .05em;
}

.btrtb-admin-version span {
	font-weight: 800;
}

.btrtb-admin-test-button {
	min-height: 36px;
	padding: 7px 13px;
	border: 2px solid #ffd23f;
	border-radius: 8px;
	background: #ffd23f;
	color: #111;
	font: 900 12px/1 Arial, sans-serif;
	letter-spacing: .04em;
	cursor: pointer;
}

.btrtb-admin-test-button:hover,
.btrtb-admin-test-button:focus {
	background: #fff3b3;
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.btrtb-test-mode-banner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 10px 14px;
	background: #fff1a8;
	border-bottom: 3px solid #d00;
	color: #710000;
	font-family: Arial, sans-serif;
	font-size: 13px;
	font-weight: 800;
	text-align: center;
}

.btrtb-test-mode-banner[hidden] {
	display: none !important;
}

.btrtb-test-mode-banner strong {
	padding: 4px 8px;
	border-radius: 5px;
	background: #d00;
	color: #fff;
	font-size: 12px;
	letter-spacing: .05em;
}

@media (max-width: 600px) {
	.btrtb-admin-tools,
	.btrtb-test-mode-banner {
		align-items: stretch;
		flex-direction: column;
		text-align: center;
	}
	.btrtb-admin-version {
		justify-content: center;
	}
	.btrtb-admin-test-button {
		width: 100%;
	}
}


/* v1.8.33 clearer mailing-state dropdown */
.btrtb-state-select {
	appearance: auto !important;
	-webkit-appearance: menulist !important;
	-moz-appearance: menulist !important;
	background-image: none !important;
	background-color: #ffffff !important;
	border: 3px solid var(--btrtb-blue) !important;
	cursor: pointer;
	padding-right: 12px !important;
}

.btrtb-state-select:hover,
.btrtb-state-select:focus {
	border-color: var(--btrtb-blue-dark) !important;
	box-shadow: 0 0 0 3px rgba(11,79,156,.12);
}


/* v1.8.34 mobile venue, date visibility, review typography, and cached-form reliability */
.btrtb-wrap .btrtb-date-input {
	border: 3px solid #9aafc4 !important;
	background: #f2f7fc !important;
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.95), 0 3px 8px rgba(7,57,111,.10) !important;
}
.btrtb-wrap .btrtb-date-input:hover,
.btrtb-wrap .btrtb-date-input:focus {
	border-color: var(--btrtb-blue) !important;
	background: #ffffff !important;
	box-shadow: 0 0 0 4px rgba(11,79,156,.14), 0 3px 8px rgba(7,57,111,.10) !important;
}

/* v1.8.36 help-needed safety net */
.btrtb-help-panel {
	margin: 18px 0 24px;
	padding: 18px;
	border: 3px solid #ffd23f;
	border-radius: 18px;
	background: #fff9df;
	box-shadow: 0 8px 22px rgba(7,57,111,.12);
}

.btrtb-help-panel[hidden] {
	display: none !important;
}

.btrtb-help-guide-row {
	align-items: flex-start;
}

.btrtb-help-bubble {
	background: #ffffff;
	border-color: #d5e1ee;
}

.btrtb-help-bubble h3 {
	margin-bottom: 6px;
}

.btrtb-help-bubble p {
	margin: 0;
	font-size: 17px;
	font-weight: 750;
	line-height: 1.45;
}

.btrtb-help-actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-top: 16px;
}

.btrtb-help-actions[hidden] {
	display: none !important;
}

.btrtb-help-actions .btrtb-button {
	min-height: 58px;
	margin: 0;
}

.btrtb-admin-help-preview {
	background: #ffffff;
	border-color: #ffffff;
	color: #0b4f9c;
}

.btrtb-admin-help-preview:hover,
.btrtb-admin-help-preview:focus {
	background: #e9f3ff;
}

@media (max-width: 600px) {
	.btrtb-help-panel {
		margin: 14px 0 20px;
		padding: 14px;
	}
	.btrtb-help-actions {
		grid-template-columns: 1fr;
	}
	.btrtb-help-bubble p {
		font-size: 16px;
	}
}

/* v1.8.37 discreet mobile build stamp for cache/version checks */
.btrtb-mobile-build-stamp {
	display: none;
}

@media (max-width: 760px) {
	.btrtb-mobile-build-stamp {
		display: block;
		padding: 1px 7px 4px;
		color: #8b95a3;
		font-family: Arial, sans-serif;
		font-size: 9px;
		font-weight: 600;
		line-height: 1;
		letter-spacing: .02em;
		text-align: right;
		opacity: .62;
		user-select: none;
		pointer-events: none;
	}
}

/* v1.8.40 mobile venue search visibility */
.btrtb-venue-results-hint {
	position: sticky;
	top: 0;
	z-index: 1;
	margin: -8px -8px 6px;
	padding: 8px 12px;
	border-bottom: 1px solid rgba(11, 79, 156, .22);
	background: #eaf4ff;
	color: var(--btrtb-blue-dark);
	font-size: 13px;
	font-weight: 900;
	letter-spacing: .03em;
	text-align: center;
	text-transform: uppercase;
}

@media (max-width: 760px) {
	.btrtb-venue-search-active .btrtb-venue-results {
		max-height: 250px;
		margin-top: 8px;
		border-width: 3px;
		box-shadow: 0 12px 28px rgba(0, 0, 0, .22);
	}

	.btrtb-venue-search-active .btrtb-venue-option {
		min-height: 58px;
		padding: 11px 12px;
		border-bottom: 1px solid rgba(11, 79, 156, .12);
	}

	.btrtb-venue-search-active .btrtb-venue-option:last-child {
		border-bottom: 0;
	}
}


/* v1.8.41 always-visible event calendar with direct month/year navigation */
.btrtb-inline-calendar {
	width: 100%;
	max-width: 720px;
	margin: 0 auto;
	padding: 18px;
	border: 3px solid var(--btrtb-blue);
	border-radius: 18px;
	background: #ffffff;
	box-shadow: 0 8px 22px rgba(7,57,111,.12);
}

.btrtb-calendar-nav {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr) 58px;
	gap: 12px;
	align-items: end;
	margin-bottom: 16px;
}

.btrtb-calendar-nav-button {
	display: inline-flex;
	min-width: 58px;
	min-height: 58px;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 3px solid var(--btrtb-blue);
	border-radius: 12px;
	background: var(--btrtb-yellow);
	color: var(--btrtb-blue-dark);
	font: inherit;
	font-size: 40px;
	font-weight: 950;
	line-height: 1;
	cursor: pointer;
}

.btrtb-calendar-nav-button:hover,
.btrtb-calendar-nav-button:focus {
	background: #ffe268;
	outline: 0;
	box-shadow: 0 0 0 4px rgba(11,79,156,.14);
}

.btrtb-calendar-nav-button:disabled {
	border-color: #c7d1dc;
	background: #eef2f6;
	color: #9aa6b2;
	cursor: default;
	box-shadow: none;
}

.btrtb-calendar-jump {
	display: grid;
	grid-template-columns: minmax(130px, .65fr) minmax(0, 1.35fr);
	gap: 12px;
}

.btrtb-calendar-jump label {
	display: grid;
	gap: 5px;
	margin: 0;
	color: var(--btrtb-blue-dark);
	font-size: 13px;
	font-weight: 950;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.btrtb-calendar-jump select {
	width: 100%;
	min-height: 54px;
	padding: 8px 38px 8px 13px;
	border: 3px solid #9aafc4;
	border-radius: 10px;
	background-color: #f4f8fc;
	color: #111111;
	font: inherit;
	font-size: 19px;
	font-weight: 900;
	cursor: pointer;
}

.btrtb-calendar-year-jump select {
	border-color: var(--btrtb-blue);
	background-color: #fff8d9;
}

.btrtb-calendar-jump select:hover,
.btrtb-calendar-jump select:focus {
	border-color: var(--btrtb-blue);
	background-color: #ffffff;
	outline: 0;
	box-shadow: 0 0 0 4px rgba(11,79,156,.12);
}

.btrtb-calendar-weekdays,
.btrtb-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 7px;
}

.btrtb-calendar-weekdays {
	margin-bottom: 7px;
	color: var(--btrtb-blue-dark);
	font-size: 13px;
	font-weight: 950;
	letter-spacing: .02em;
	text-align: center;
	text-transform: uppercase;
}

.btrtb-calendar-weekdays span {
	padding: 5px 2px;
}

.btrtb-calendar-day,
.btrtb-calendar-blank {
	min-height: 58px;
}

.btrtb-calendar-day {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 4px;
	border: 2px solid #c5d1dd;
	border-radius: 10px;
	background: #f7f9fc;
	color: #111111;
	font: inherit;
	font-size: 19px;
	font-weight: 900;
	cursor: pointer;
	transition: transform .12s ease, border-color .12s ease, background .12s ease, box-shadow .12s ease;
}

.btrtb-calendar-day:hover,
.btrtb-calendar-day:focus {
	border-color: var(--btrtb-blue);
	background: #eaf4ff;
	outline: 0;
	transform: translateY(-1px);
	box-shadow: 0 0 0 3px rgba(11,79,156,.11);
}

.btrtb-calendar-day.is-selected {
	border: 3px solid var(--btrtb-blue-dark);
	background: var(--btrtb-yellow);
	color: var(--btrtb-blue-dark);
	box-shadow: inset 0 0 0 2px #ffffff, 0 3px 8px rgba(7,57,111,.15);
}

.btrtb-calendar-day:disabled,
.btrtb-calendar-day.is-unavailable {
	border-color: #e1e6eb;
	background: #f4f5f6;
	color: #b1bac3;
	cursor: default;
	transform: none;
	box-shadow: none;
}

.btrtb-inline-calendar + .btrtb-date-selected-display {
	max-width: 720px;
	margin: 14px auto 0;
}

@media (max-width: 760px) {
	.btrtb-inline-calendar {
		padding: 12px;
		border-radius: 15px;
	}

	.btrtb-calendar-nav {
		grid-template-columns: 46px minmax(0, 1fr) 46px;
		gap: 7px;
		margin-bottom: 12px;
	}

	.btrtb-calendar-nav-button {
		min-width: 46px;
		min-height: 52px;
		font-size: 34px;
	}

	.btrtb-calendar-jump {
		grid-template-columns: minmax(92px, .75fr) minmax(0, 1.25fr);
		gap: 7px;
	}

	.btrtb-calendar-jump label {
		gap: 3px;
		font-size: 11px;
	}

	.btrtb-calendar-jump select {
		min-height: 52px;
		padding: 7px 28px 7px 8px;
		font-size: 16px;
	}

	.btrtb-calendar-weekdays,
	.btrtb-calendar-grid {
		gap: 4px;
	}

	.btrtb-calendar-weekdays {
		font-size: 10px;
	}

	.btrtb-calendar-day,
	.btrtb-calendar-blank {
		min-height: 45px;
	}

	.btrtb-calendar-day {
		border-radius: 8px;
		font-size: 16px;
	}
}

@media (max-width: 390px) {
	.btrtb-calendar-nav {
		grid-template-columns: 40px minmax(0, 1fr) 40px;
	}
	.btrtb-calendar-nav-button {
		min-width: 40px;
		min-height: 48px;
	}
	.btrtb-calendar-jump select {
		font-size: 14px;
	}
	.btrtb-calendar-day,
	.btrtb-calendar-blank {
		min-height: 40px;
	}
}


/* v1.8.42 five-year calendar window + clearer month/year controls */
.btrtb-calendar-jump label > span {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--btrtb-blue-dark);
}


/* v1.8.43 year-first calendar navigation */
/* Year is intentionally the first control; month availability continues to be derived from the selected year and minimum event date. */
