/* Standalone application canvas: remove theme and Elementor width gutters only
 * on pages that contain the Play Farm booking shortcode. */
body.pfb-booking-page {
	background: #061014;
	margin: 0;
	min-width: 0;
	overflow-x: hidden;
	overflow-x: clip;
}

/* Elementor/WordPress footer shortcode: [playfarm_app_download_button] */
.pfb-app-download-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	max-width: 360px;
	padding: 13px 18px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 16px;
	background: #ef6548;
	box-shadow: 0 12px 28px rgba(7, 18, 22, 0.2);
	color: #fffaf0 !important;
	text-decoration: none !important;
	transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.pfb-app-download-link:hover,
.pfb-app-download-link:focus-visible {
	background: #dc5138;
	box-shadow: 0 15px 34px rgba(7, 18, 22, 0.28);
	color: #fff !important;
	transform: translateY(-2px);
}

.pfb-app-download-link__icon {
	display: grid;
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	place-items: center;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.16);
	font-size: 24px;
	font-weight: 800;
	line-height: 1;
}

.pfb-app-download-link > span:last-child {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.pfb-app-download-link strong,
.pfb-app-download-link small {
	display: block;
	color: inherit;
	line-height: 1.25;
}

.pfb-app-download-link strong {
	font-size: 15px;
	font-weight: 800;
}

.pfb-app-download-link small {
	font-size: 11px;
	opacity: 0.82;
}

/* Manual GCash QR payment */
.pfb-app .pfb-gcash-box {
	margin: 28px 0 20px;
	padding: clamp(18px, 3vw, 28px);
	border: 1px solid rgba(0, 112, 255, 0.24);
	border-radius: 22px;
	background: linear-gradient(145deg, rgba(0, 112, 255, 0.08), rgba(255, 255, 255, 0.98));
	text-align: left;
}

.pfb-app .pfb-gcash-box[hidden] {
	display: none !important;
}

.pfb-app details.pfb-gcash-box > summary {
	cursor: pointer;
	color: #071a32;
	font-size: 17px;
	font-weight: 800;
}

.pfb-app .pfb-gcash-grid {
	display: grid;
	grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
	gap: clamp(20px, 4vw, 38px);
	align-items: start;
}

.pfb-app details.pfb-gcash-box .pfb-gcash-grid {
	margin-top: 22px;
}

.pfb-app .pfb-gcash-qr {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: stretch;
}

.pfb-app .pfb-gcash-qr img {
	display: block;
	width: 100%;
	max-width: 320px;
	height: auto;
	margin: 0 auto;
	border: 8px solid #fff;
	border-radius: 18px;
	box-shadow: 0 14px 34px rgba(4, 28, 64, 0.15);
}

.pfb-app .pfb-gcash-copy {
	min-width: 0;
}

.pfb-app .pfb-gcash-amount {
	display: block;
	margin: 5px 0 12px;
	color: #0564d8;
	font-size: clamp(30px, 5vw, 46px);
	line-height: 1;
	letter-spacing: -0.03em;
}

.pfb-app .pfb-gcash-copy > p {
	margin: 10px 0;
	color: #42536a;
	line-height: 1.65;
}

.pfb-app .pfb-gcash-expiry {
	padding: 10px 12px;
	border-radius: 10px;
	background: #fff5db;
	color: #785500 !important;
	font-weight: 750;
}

.pfb-app .pfb-gcash-proof-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 18px;
}

.pfb-app .pfb-gcash-proof-form .pfb-field:last-of-type,
.pfb-app .pfb-gcash-proof-form .pfb-btn {
	grid-column: 1 / -1;
}

.pfb-app .pfb-gcash-proof-form input[type="file"] {
	padding: 11px;
	background: #fff;
}

.pfb-app .pfb-gcash-warning {
	margin-top: 15px !important;
	padding-left: 12px;
	border-left: 3px solid #ec9e00;
	color: #6d5317 !important;
	font-size: 13px;
}

.pfb-portal .pfb-gcash-box--portal {
	margin-top: 24px;
}

.pfb-portal .pfb-status--payment_review {
	background: #fff2c7;
	color: #765700;
}

@media (max-width: 760px) {
	.pfb-app .pfb-gcash-grid,
	.pfb-app .pfb-gcash-proof-form {
		grid-template-columns: 1fr;
	}

	.pfb-app .pfb-gcash-proof-form .pfb-field:last-of-type,
	.pfb-app .pfb-gcash-proof-form .pfb-btn {
		grid-column: auto;
	}

	.pfb-app .pfb-gcash-qr img {
		max-width: 280px;
	}
}

body.pfb-booking-page :where(.site, .site-content, .content-area, .site-main, .elementor, .elementor-section-wrap) {
	margin: 0;
	max-width: none;
	padding: 0;
	width: 100%;
}

body.pfb-booking-page .elementor > .e-con.e-parent,
body.pfb-booking-page .elementor > .elementor-section,
body.pfb-booking-page .elementor-section > .elementor-container,
body.pfb-booking-page .elementor-widget-shortcode,
body.pfb-booking-page .elementor-widget-shortcode > .elementor-widget-container {
	margin: 0 !important;
	max-width: none !important;
	padding: 0 !important;
	width: 100% !important;
}

/* The account portal uses a plugin-owned canvas so block themes, classic
 * themes, and page-builder templates cannot reintroduce headers, footers,
 * content-width caps, or global padding. The selectors below also provide a
 * safe fallback if another plugin prevents the template filter from running. */
body.pfb-player-portal-page {
	background: #061014 !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.pfb-player-portal-page .pfb-standalone-main,
body.pfb-player-portal-page :where(.wp-site-blocks, .site, .site-content, .content-area, .site-main, .entry-content, .wp-block-post-content) {
	margin: 0 !important;
	max-width: none !important;
	padding: 0 !important;
	width: 100% !important;
}

body.pfb-player-portal-page :where(.wp-site-blocks > header, .wp-site-blocks > footer, #masthead, #colophon, .site-header, .site-footer, [data-elementor-type="header"], [data-elementor-type="footer"]) {
	display: none !important;
}

body.pfb-player-portal-page .pfb-app {
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: none !important;
	width: 100vw !important;
}

.pfb-app {
	--pfb-ink: #061014;
	--pfb-ink-2: #07191f;
	--pfb-panel: rgba(12, 38, 44, 0.78);
	--pfb-panel-strong: #0b252b;
	--pfb-cream: #f7efe2;
	--pfb-muted: rgba(247, 239, 226, 0.64);
	--pfb-orange: #ff6b22;
	--pfb-orange-2: #ff8a3d;
	--pfb-aqua: #47d8dd;
	--pfb-gold: #d8b46a;
	--pfb-border: rgba(150, 255, 249, 0.13);
	--pfb-border-soft: rgba(255, 255, 255, 0.09);
	background:
		radial-gradient(circle at 5% 2%, rgba(71, 216, 221, 0.13), transparent 28%),
		radial-gradient(circle at 92% 6%, rgba(255, 107, 34, 0.12), transparent 26%),
		linear-gradient(145deg, #07191f 0%, var(--pfb-ink) 52%, #020608 100%);
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--pfb-cream);
	font-family: "Plus Jakarta Sans", Inter, Poppins, Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.55;
	margin: 0 calc(50% - 50vw);
	max-width: none;
	min-height: 100vh;
	overflow: hidden;
	overflow: clip;
	position: relative;
	width: 100vw;
}

@supports (min-height: 100dvh) {
	.pfb-app {
		min-height: 100dvh;
	}
}

.pfb-app *,
.pfb-app *::before,
.pfb-app *::after {
	box-sizing: border-box;
}

.pfb-app [hidden] {
	display: none !important;
}

.pfb-app a {
	color: inherit;
}

.pfb-app button,
.pfb-app input,
.pfb-app select,
.pfb-app textarea {
	font: inherit;
}

.pfb-appbar {
	align-items: center;
	backdrop-filter: blur(18px);
	background: rgba(2, 14, 17, 0.7);
	border-bottom: 1px solid var(--pfb-border-soft);
	display: flex;
	gap: 24px;
	justify-content: space-between;
	min-height: 84px;
	padding: 15px clamp(22px, 5vw, 72px);
}

.pfb-brand {
	align-items: center;
	display: inline-flex;
	gap: 13px;
	text-decoration: none;
}

.pfb-brand-mark,
.pfb-brand-monogram {
	align-items: center;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid var(--pfb-border);
	border-radius: 15px;
	display: inline-flex;
	height: 52px;
	justify-content: center;
	overflow: hidden;
	width: 58px;
}

.pfb-brand-mark img {
	height: 46px;
	object-fit: contain;
	width: 55px;
}

.pfb-brand-monogram {
	color: var(--pfb-orange);
	font-size: 18px;
	font-weight: 900;
}

.pfb-brand > span:last-child {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}

.pfb-brand strong {
	color: var(--pfb-cream);
	font-size: 15px;
	font-weight: 900;
	letter-spacing: -0.02em;
}

.pfb-brand small {
	color: var(--pfb-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin-top: 3px;
	text-transform: uppercase;
}

.pfb-back-link {
	align-items: center;
	border: 1px solid var(--pfb-border);
	border-radius: 999px;
	color: var(--pfb-cream);
	display: inline-flex;
	font-size: 13px;
	font-weight: 800;
	gap: 7px;
	padding: 10px 16px;
	text-decoration: none;
	transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.pfb-back-link svg,
.pfb-btn svg {
	fill: none;
	height: 18px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
	width: 18px;
}

.pfb-back-link:hover,
.pfb-back-link:focus-visible {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(150, 255, 249, 0.3);
	color: #fff;
	transform: translateY(-1px);
}

.pfb-hero {
	align-items: flex-end;
	display: grid;
	gap: 36px;
	grid-template-columns: minmax(0, 1fr) auto;
	padding: clamp(54px, 7vw, 92px) clamp(22px, 5vw, 72px) 54px;
}

.pfb-kicker {
	align-items: center;
	color: var(--pfb-orange);
	display: inline-flex;
	font-size: 12px;
	font-weight: 900;
	gap: 9px;
	letter-spacing: 0.14em;
	margin-bottom: 22px;
	text-transform: uppercase;
}

.pfb-kicker > span {
	background: var(--pfb-aqua);
	border-radius: 999px;
	box-shadow: 0 0 0 5px rgba(71, 216, 221, 0.1);
	height: 7px;
	width: 7px;
}

.pfb-hero h1 {
	color: var(--pfb-cream);
	font-family: "Plus Jakarta Sans", Inter, sans-serif;
	font-size: clamp(44px, 6.6vw, 88px);
	font-weight: 900;
	letter-spacing: -0.075em;
	line-height: 0.94;
	margin: 0;
	max-width: 920px;
}

.pfb-hero h1 span {
	background: linear-gradient(120deg, var(--pfb-orange), var(--pfb-orange-2));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.pfb-hero-copy > p {
	color: var(--pfb-muted);
	font-size: clamp(15px, 1.5vw, 18px);
	line-height: 1.75;
	margin: 24px 0 0;
	max-width: 680px;
}

.pfb-mode-badge {
	align-items: center;
	background: rgba(255, 255, 255, 0.045);
	border: 1px solid var(--pfb-border);
	border-radius: 999px;
	color: var(--pfb-muted);
	display: inline-flex;
	font-size: 12px;
	font-weight: 800;
	gap: 9px;
	margin-bottom: 6px;
	padding: 10px 14px;
	white-space: nowrap;
}

.pfb-mode-badge > span,
.pfb-live-dot {
	background: var(--pfb-gold);
	border-radius: 50%;
	box-shadow: 0 0 0 5px rgba(216, 180, 106, 0.09);
	height: 8px;
	width: 8px;
}

.pfb-mode-badge.is-live > span,
.pfb-live-dot {
	background: #5ee6a8;
	box-shadow: 0 0 0 5px rgba(94, 230, 168, 0.1);
}

.pfb-rate-strip {
	display: grid;
	gap: 12px;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 0.8fr) minmax(0, 1.4fr);
	padding: 0 clamp(22px, 5vw, 72px) 24px;
}

.pfb-rate-strip article {
	background: rgba(255, 255, 255, 0.045);
	border: 1px solid var(--pfb-border);
	border-radius: 17px;
	display: grid;
	gap: 2px 10px;
	grid-template-columns: auto 1fr;
	padding: 15px 17px;
}

.pfb-rate-strip article > span {
	color: var(--pfb-muted);
	font-size: 10px;
	font-weight: 800;
	grid-column: 1 / -1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pfb-rate-strip article > strong {
	color: var(--pfb-cream);
	font-size: clamp(17px, 2vw, 22px);
	line-height: 1.2;
}

.pfb-rate-strip article > small {
	align-self: end;
	color: var(--pfb-aqua);
	font-size: 10px;
	font-weight: 750;
	padding-bottom: 2px;
}

.pfb-rate-strip__schedule > strong {
	color: var(--pfb-orange) !important;
	font-size: clamp(14px, 1.6vw, 18px) !important;
}

.pfb-service-choice {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	padding: 0 clamp(22px, 5vw, 72px) 24px;
}

.pfb-service-choice > a {
	display: flex;
	min-width: 0;
	flex-direction: column;
	padding: 17px 19px;
	border: 1px solid var(--pfb-border);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.045);
	color: var(--pfb-cream);
	text-decoration: none;
	transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.pfb-service-choice > a:hover,
.pfb-service-choice > a:focus-visible {
	border-color: rgba(71, 216, 221, 0.55);
	background: rgba(71, 216, 221, 0.08);
	transform: translateY(-2px);
}

.pfb-service-choice > a.is-active {
	border-color: rgba(94, 230, 168, 0.48);
	background: rgba(94, 230, 168, 0.075);
}

.pfb-service-choice span {
	color: var(--pfb-aqua);
	font-size: 10px;
	font-weight: 850;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.pfb-service-choice strong {
	margin-top: 4px;
	font-size: clamp(16px, 2vw, 21px);
}

.pfb-service-choice small {
	margin-top: 5px;
	color: var(--pfb-muted);
	font-size: 11px;
	line-height: 1.45;
}

.pfb-booking-layout {
	align-items: start;
	display: grid;
	gap: 24px;
	grid-template-columns: minmax(0, 1.55fr) minmax(310px, 0.65fr);
	padding: 0 clamp(22px, 5vw, 72px) 38px;
}

.pfb-form-card,
.pfb-summary {
	backdrop-filter: blur(18px);
	background: linear-gradient(145deg, rgba(12, 48, 54, 0.82), rgba(4, 27, 31, 0.94));
	border: 1px solid var(--pfb-border);
	border-radius: 28px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
}

.pfb-form-card {
	min-width: 0;
	overflow: hidden;
}

.pfb-stepper {
	background: rgba(1, 17, 21, 0.44);
	border-bottom: 1px solid var(--pfb-border-soft);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	list-style: none;
	margin: 0;
	padding: 0 clamp(20px, 3vw, 36px);
}

.pfb-stepper li {
	align-items: center;
	color: rgba(247, 239, 226, 0.38);
	display: flex;
	font-size: 12px;
	font-weight: 800;
	gap: 9px;
	padding: 22px 8px 20px;
	position: relative;
}

.pfb-stepper li::after {
	background: transparent;
	bottom: -1px;
	content: "";
	height: 2px;
	left: 8px;
	position: absolute;
	right: 8px;
}

.pfb-stepper li > span {
	align-items: center;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 50%;
	display: inline-flex;
	font-size: 10px;
	height: 24px;
	justify-content: center;
	width: 24px;
}

.pfb-stepper li.is-active,
.pfb-stepper li.is-complete {
	color: var(--pfb-cream);
}

.pfb-stepper li.is-active::after {
	background: linear-gradient(90deg, var(--pfb-orange), var(--pfb-orange-2));
}

.pfb-stepper li.is-active > span {
	background: var(--pfb-orange);
	border-color: var(--pfb-orange);
	color: #fff;
}

.pfb-stepper li.is-complete > span {
	background: rgba(94, 230, 168, 0.14);
	border-color: rgba(94, 230, 168, 0.3);
	color: #5ee6a8;
}

.pfb-step-panel,
.pfb-success {
	padding: clamp(24px, 4vw, 42px);
}

.pfb-section-heading {
	align-items: flex-end;
	display: flex;
	gap: 28px;
	justify-content: space-between;
	margin-bottom: 26px;
}

.pfb-section-heading > div {
	align-items: baseline;
	display: flex;
	gap: 12px;
}

.pfb-section-heading > div > span {
	color: var(--pfb-orange);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.12em;
}

.pfb-section-heading h2 {
	color: var(--pfb-cream);
	font-size: clamp(22px, 3vw, 34px);
	font-weight: 900;
	letter-spacing: -0.045em;
	line-height: 1.12;
	margin: 0;
}

.pfb-section-heading > p {
	color: var(--pfb-muted);
	font-size: 12px;
	line-height: 1.55;
	margin: 0;
	max-width: 290px;
	text-align: right;
}

.pfb-play-type {
	align-items: center;
	background: linear-gradient(135deg, rgba(255, 107, 34, 0.1), rgba(71, 216, 221, 0.04));
	border: 1px solid rgba(255, 107, 34, 0.25);
	border-radius: 18px;
	display: grid;
	gap: 13px;
	grid-template-columns: auto 1fr auto;
	margin-bottom: 24px;
	padding: 15px 17px;
}

.pfb-play-type-icon {
	align-items: center;
	background: linear-gradient(135deg, var(--pfb-orange), var(--pfb-orange-2));
	border-radius: 13px;
	display: flex;
	height: 44px;
	justify-content: center;
	width: 44px;
}

.pfb-play-type-icon svg {
	fill: none;
	height: 25px;
	stroke: #fff;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
	width: 25px;
}

.pfb-play-type div:nth-child(2) {
	display: flex;
	flex-direction: column;
}

.pfb-play-type div:nth-child(2) span {
	color: var(--pfb-muted);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pfb-play-type div:nth-child(2) strong {
	color: var(--pfb-cream);
	font-size: 14px;
	margin-top: 2px;
}

.pfb-play-type em {
	background: rgba(94, 230, 168, 0.1);
	border: 1px solid rgba(94, 230, 168, 0.18);
	border-radius: 999px;
	color: #72e9b3;
	font-size: 10px;
	font-style: normal;
	font-weight: 800;
	padding: 6px 9px;
}

.pfb-field-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pfb-field-grid--schedule {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pfb-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.pfb-field--wide {
	grid-column: 1 / -1;
}

.pfb-field > span {
	color: rgba(247, 239, 226, 0.78);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.035em;
}

.pfb-field > span small {
	color: var(--pfb-muted);
	font-weight: 600;
}

.pfb-field > small {
	color: var(--pfb-muted);
	font-size: 10px;
	line-height: 1.5;
}

.pfb-field input,
.pfb-field select,
.pfb-field textarea {
	appearance: none;
	background: rgba(1, 17, 21, 0.64);
	border: 1px solid rgba(255, 255, 255, 0.13);
	border-radius: 13px;
	color: var(--pfb-cream);
	min-height: 50px;
	outline: 0;
	padding: 12px 14px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
	width: 100%;
}

.pfb-field textarea {
	min-height: 112px;
	resize: vertical;
}

.pfb-field select {
	background-image: linear-gradient(45deg, transparent 50%, var(--pfb-muted) 50%), linear-gradient(135deg, var(--pfb-muted) 50%, transparent 50%);
	background-position: calc(100% - 18px) 22px, calc(100% - 13px) 22px;
	background-repeat: no-repeat;
	background-size: 5px 5px, 5px 5px;
	padding-right: 34px;
}

.pfb-field input::placeholder,
.pfb-field textarea::placeholder {
	color: rgba(247, 239, 226, 0.33);
}

.pfb-field input:focus,
.pfb-field select:focus,
.pfb-field textarea:focus {
	background-color: rgba(4, 25, 29, 0.9);
	border-color: rgba(71, 216, 221, 0.65);
	box-shadow: 0 0 0 4px rgba(71, 216, 221, 0.09);
}

.pfb-availability-heading {
	align-items: center;
	border-top: 1px solid var(--pfb-border-soft);
	display: flex;
	gap: 20px;
	justify-content: space-between;
	margin-top: 28px;
	padding-top: 24px;
}

.pfb-availability-heading > div {
	align-items: center;
	display: flex;
	gap: 10px;
}

.pfb-availability-heading strong {
	color: var(--pfb-cream);
	font-size: 14px;
}

.pfb-availability-heading small {
	color: var(--pfb-muted);
	font-size: 11px;
}

.pfb-availability {
	margin-top: 16px;
	min-height: 110px;
}

.pfb-loading,
.pfb-empty-state {
	align-items: center;
	background: rgba(1, 17, 21, 0.42);
	border: 1px dashed rgba(255, 255, 255, 0.13);
	border-radius: 16px;
	color: var(--pfb-muted);
	display: flex;
	font-size: 12px;
	gap: 12px;
	justify-content: center;
	min-height: 108px;
	padding: 20px;
	text-align: center;
}

.pfb-loading > span {
	animation: pfb-spin 0.8s linear infinite;
	border: 2px solid rgba(71, 216, 221, 0.18);
	border-radius: 50%;
	border-top-color: var(--pfb-aqua);
	height: 20px;
	width: 20px;
}

.pfb-empty-state span {
	color: var(--pfb-orange);
	font-size: 24px;
}

.pfb-empty-state p {
	margin: 0;
}

@keyframes pfb-spin {
	to { transform: rotate(360deg); }
}

.pfb-court-grid {
	display: grid;
	gap: 14px;
}

.pfb-court-card {
	background: rgba(1, 17, 21, 0.5);
	border: 1px solid var(--pfb-border-soft);
	border-radius: 17px;
	padding: 16px;
}

.pfb-court-heading {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	margin-bottom: 13px;
}

.pfb-court-heading h3 {
	color: var(--pfb-cream);
	font-size: 14px;
	font-weight: 900;
	margin: 0;
}

.pfb-court-heading span {
	color: var(--pfb-muted);
	font-size: 10px;
	font-weight: 700;
}

.pfb-booked-block {
	background: rgba(255, 107, 34, 0.055);
	border: 1px solid rgba(255, 107, 34, 0.16);
	border-radius: 13px;
	margin-bottom: 14px;
	padding: 12px;
}

.pfb-booked-block h4,
.pfb-available-heading {
	color: var(--pfb-muted);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: 0.09em;
	margin: 0 0 9px;
	text-transform: uppercase;
}

.pfb-booked-list {
	display: grid;
	gap: 7px;
}

.pfb-booked-item {
	align-items: center;
	background: rgba(1, 17, 21, 0.48);
	border-radius: 10px;
	display: grid;
	gap: 12px;
	grid-template-columns: minmax(112px, auto) minmax(0, 1fr);
	padding: 9px 10px;
}

.pfb-booked-item > span {
	color: var(--pfb-orange);
	font-size: 10px;
	font-weight: 850;
}

.pfb-booked-item > div {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.pfb-booked-item strong {
	color: var(--pfb-cream);
	font-size: 11px;
	overflow-wrap: anywhere;
}

.pfb-booked-item small {
	color: var(--pfb-muted);
	font-size: 9px;
	margin-top: 2px;
}

.pfb-available-heading {
	margin-top: 2px;
}

.pfb-slot-grid {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pfb-slot-button {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.11);
	border-radius: 10px;
	color: rgba(247, 239, 226, 0.78);
	cursor: pointer;
	font-size: 11px;
	font-weight: 800;
	min-height: 42px;
	padding: 8px;
	transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.pfb-slot-button:hover,
.pfb-slot-button:focus-visible {
	background: rgba(71, 216, 221, 0.08);
	border-color: rgba(71, 216, 221, 0.42);
	color: #fff;
	transform: translateY(-1px);
}

.pfb-slot-button.is-selected {
	background: linear-gradient(135deg, var(--pfb-orange), var(--pfb-orange-2));
	border-color: transparent;
	box-shadow: 0 8px 22px rgba(255, 107, 34, 0.2);
	color: #fff;
}

.pfb-court-unavailable {
	color: var(--pfb-muted);
	font-size: 11px;
	margin: 0;
}

.pfb-actions {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	margin-top: 28px;
}

.pfb-actions--end {
	justify-content: flex-end;
}

.pfb-btn {
	align-items: center;
	border-radius: 999px;
	cursor: pointer;
	display: inline-flex;
	font-size: 12px;
	font-weight: 900;
	gap: 7px;
	justify-content: center;
	min-height: 48px;
	padding: 11px 20px;
	transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.pfb-btn--primary {
	background: linear-gradient(135deg, var(--pfb-orange), var(--pfb-orange-2));
	border: 1px solid transparent;
	box-shadow: 0 10px 28px rgba(255, 107, 34, 0.18);
	color: #fff;
}

.pfb-btn--secondary {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid var(--pfb-border);
	color: var(--pfb-cream);
}

.pfb-btn--gcash {
	background: linear-gradient(135deg, #0877ff, #25a5ff);
	border: 1px solid rgba(255, 255, 255, 0.14);
	box-shadow: 0 10px 28px rgba(8, 119, 255, 0.22);
	color: #fff;
	margin-bottom: 12px;
	text-decoration: none;
}

.pfb-btn--gcash[hidden] {
	display: none;
}

.pfb-btn:hover:not(:disabled),
.pfb-btn:focus-visible:not(:disabled) {
	box-shadow: 0 13px 32px rgba(0, 0, 0, 0.22);
	transform: translateY(-1px);
}

.pfb-btn:disabled {
	cursor: not-allowed;
	filter: grayscale(0.45);
	opacity: 0.48;
}

.pfb-consent {
	align-items: flex-start;
	color: var(--pfb-muted);
	display: flex;
	font-size: 11px;
	gap: 10px;
	line-height: 1.6;
	margin-top: 18px;
}

.pfb-consent input {
	accent-color: var(--pfb-orange);
	flex: 0 0 auto;
	height: 17px;
	margin-top: 1px;
	width: 17px;
}

.pfb-consent a {
	color: var(--pfb-aqua);
}

.pfb-test-notice,
.pfb-alert {
	border-radius: 13px;
	font-size: 12px;
	line-height: 1.55;
	margin: 18px clamp(24px, 4vw, 42px) 0;
	padding: 12px 14px;
}

.pfb-test-notice {
	background: rgba(216, 180, 106, 0.1);
	border: 1px solid rgba(216, 180, 106, 0.22);
	color: #ead7aa;
	margin-left: 0;
	margin-right: 0;
}

.pfb-alert.is-error {
	background: rgba(255, 107, 34, 0.1);
	border: 1px solid rgba(255, 107, 34, 0.3);
	color: #ffc2a4;
}

.pfb-alert.is-success {
	background: rgba(94, 230, 168, 0.1);
	border: 1px solid rgba(94, 230, 168, 0.25);
	color: #b9f5d7;
}

.pfb-honeypot {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.pfb-summary {
	overflow: hidden;
	padding: 22px;
	position: sticky;
	top: 24px;
}

.pfb-summary-top {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 18px;
}

.pfb-summary-top > span {
	color: var(--pfb-cream);
	font-size: 15px;
	font-weight: 900;
}

.pfb-summary-top > em {
	background: rgba(71, 216, 221, 0.08);
	border: 1px solid rgba(71, 216, 221, 0.16);
	border-radius: 999px;
	color: var(--pfb-aqua);
	font-size: 9px;
	font-style: normal;
	font-weight: 900;
	letter-spacing: 0.06em;
	padding: 5px 8px;
	text-transform: uppercase;
}

.pfb-court-visual {
	background:
		linear-gradient(90deg, transparent 49.5%, rgba(247, 239, 226, 0.5) 49.5%, rgba(247, 239, 226, 0.5) 50.5%, transparent 50.5%),
		linear-gradient(rgba(255, 107, 34, 0.18), rgba(71, 216, 221, 0.07)),
		#123b41;
	border: 2px solid rgba(247, 239, 226, 0.38);
	border-radius: 15px;
	height: 172px;
	overflow: hidden;
	position: relative;
}

.pfb-court-visual::before,
.pfb-court-visual::after {
	border: 1px solid rgba(247, 239, 226, 0.42);
	content: "";
	position: absolute;
	top: 16px;
	bottom: 16px;
	width: 32%;
}

.pfb-court-visual::before { left: 9%; }
.pfb-court-visual::after { right: 9%; }

.pfb-court-lines::before,
.pfb-court-lines::after,
.pfb-court-lines span {
	background: rgba(247, 239, 226, 0.45);
	content: "";
	height: 1px;
	left: 9%;
	position: absolute;
	right: 9%;
}

.pfb-court-lines::before { top: 50%; }
.pfb-court-lines::after { top: 27%; }
.pfb-court-lines span:first-child { top: 73%; }

.pfb-ball {
	background: var(--pfb-orange);
	border-radius: 50%;
	box-shadow: 0 0 0 6px rgba(255, 107, 34, 0.11);
	height: 15px;
	position: absolute;
	right: 20%;
	top: 31%;
	width: 15px;
}

.pfb-court-visual > strong {
	bottom: 18px;
	color: rgba(247, 239, 226, 0.28);
	font-size: 18px;
	font-weight: 900;
	letter-spacing: -0.04em;
	line-height: 0.84;
	position: absolute;
	right: 17px;
	text-align: right;
}

.pfb-summary-list {
	margin: 18px 0 0;
}

.pfb-summary-list > div {
	align-items: baseline;
	border-bottom: 1px solid var(--pfb-border-soft);
	display: grid;
	gap: 14px;
	grid-template-columns: 70px 1fr;
	padding: 11px 0;
}

.pfb-summary-list dt {
	color: var(--pfb-muted);
	font-size: 10px;
	font-weight: 700;
}

.pfb-summary-list dd {
	color: var(--pfb-cream);
	font-size: 11px;
	font-weight: 800;
	margin: 0;
	text-align: right;
}

.pfb-summary-total {
	align-items: center;
	display: flex;
	gap: 14px;
	justify-content: space-between;
	padding: 18px 0 12px;
}

.pfb-summary-total span {
	color: var(--pfb-muted);
	font-size: 11px;
}

.pfb-summary-total strong {
	color: var(--pfb-orange);
	font-size: 15px;
	text-align: right;
}

.pfb-summary > p {
	align-items: flex-start;
	background: rgba(1, 17, 21, 0.5);
	border-radius: 11px;
	color: var(--pfb-muted);
	display: flex;
	font-size: 10px;
	gap: 8px;
	line-height: 1.55;
	margin: 0;
	padding: 11px;
}

.pfb-summary > p svg {
	fill: none;
	flex: 0 0 15px;
	height: 15px;
	stroke: var(--pfb-aqua);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
	width: 15px;
}

.pfb-success {
	align-items: center;
	display: flex;
	flex-direction: column;
	min-height: 560px;
	text-align: center;
}

.pfb-success-icon {
	align-items: center;
	background: rgba(94, 230, 168, 0.12);
	border: 1px solid rgba(94, 230, 168, 0.24);
	border-radius: 50%;
	display: flex;
	height: 76px;
	justify-content: center;
	margin: 28px 0 18px;
	width: 76px;
}

.pfb-success-icon svg {
	fill: none;
	height: 38px;
	stroke: #5ee6a8;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
	width: 38px;
}

.pfb-success-icon.is-pending {
	background: rgba(78, 207, 216, 0.1);
	border-color: rgba(78, 207, 216, 0.28);
}

.pfb-success-icon.is-pending svg {
	display: none;
}

.pfb-success-icon.is-pending::before {
	animation: pfb-spin 0.8s linear infinite;
	border: 3px solid rgba(78, 207, 216, 0.25);
	border-radius: 50%;
	border-top-color: var(--pfb-aqua);
	content: '';
	height: 30px;
	width: 30px;
}

.pfb-success-icon.is-error,
.pfb-success-icon.is-review {
	background: rgba(255, 107, 34, 0.1);
	border-color: rgba(255, 107, 34, 0.3);
}

.pfb-success-icon.is-error svg,
.pfb-success-icon.is-review svg {
	display: none;
}

.pfb-success-icon.is-error::before,
.pfb-success-icon.is-review::before {
	color: var(--pfb-orange);
	content: '!';
	font-size: 34px;
	font-weight: 900;
}

.pfb-success > span {
	color: var(--pfb-orange);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pfb-success h2 {
	color: var(--pfb-cream);
	font-size: clamp(28px, 4vw, 42px);
	font-weight: 900;
	letter-spacing: -0.055em;
	line-height: 1.05;
	margin: 10px 0 13px;
}

.pfb-success > p {
	color: var(--pfb-muted);
	font-size: 13px;
	max-width: 520px;
}

.pfb-reference {
	background: rgba(255, 107, 34, 0.08);
	border: 1px solid rgba(255, 107, 34, 0.22);
	border-radius: 15px;
	display: flex;
	flex-direction: column;
	margin: 14px 0 17px;
	padding: 13px 22px;
}

.pfb-reference small {
	color: var(--pfb-muted);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pfb-reference strong {
	color: var(--pfb-orange);
	font-size: 19px;
	letter-spacing: 0.04em;
	margin-top: 3px;
}

.pfb-success-details {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 650px;
	width: 100%;
}

.pfb-success-details > div {
	background: rgba(1, 17, 21, 0.5);
	border: 1px solid var(--pfb-border-soft);
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	padding: 12px;
}

.pfb-success-details span {
	color: var(--pfb-muted);
	font-size: 9px;
	font-weight: 700;
}

.pfb-success-details strong {
	color: var(--pfb-cream);
	font-size: 11px;
	margin-top: 3px;
}

.pfb-success-note {
	margin: 18px auto !important;
}

.pfb-trust-row {
	border-bottom: 1px solid var(--pfb-border-soft);
	border-top: 1px solid var(--pfb-border-soft);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin: 4px clamp(22px, 5vw, 72px) 0;
	padding: 24px 0;
}

.pfb-trust-row > div {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: center;
	padding: 0 18px;
}

.pfb-trust-row > div + div {
	border-left: 1px solid var(--pfb-border-soft);
}

.pfb-trust-row svg {
	fill: none;
	height: 27px;
	stroke: var(--pfb-aqua);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
	width: 27px;
}

.pfb-trust-row span {
	display: flex;
	flex-direction: column;
}

.pfb-trust-row strong {
	color: var(--pfb-cream);
	font-size: 11px;
}

.pfb-trust-row small {
	color: var(--pfb-muted);
	font-size: 9px;
	margin-top: 2px;
}

.pfb-app-footer {
	align-items: center;
	color: rgba(247, 239, 226, 0.36);
	display: flex;
	font-size: 10px;
	gap: 18px;
	justify-content: space-between;
	padding: 23px clamp(22px, 5vw, 72px) 25px;
}

.pfb-app-footer a {
	color: rgba(247, 239, 226, 0.58);
	font-weight: 800;
	text-decoration: none;
}

.pfb-app-footer a:hover,
.pfb-app-footer a:focus-visible {
	color: var(--pfb-orange);
}

.pfb-app :focus-visible {
	outline: 3px solid rgba(71, 216, 221, 0.62);
	outline-offset: 3px;
}

@media (max-width: 980px) {
	.pfb-booking-layout {
		grid-template-columns: 1fr;
	}

	.pfb-summary {
		position: static;
	}

	.pfb-court-visual {
		display: none;
	}

	.pfb-summary-list {
		display: grid;
		gap: 0 22px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.pfb-app {
		border-radius: 0;
	}

	.pfb-appbar {
		min-height: 72px;
	}

	.pfb-brand-mark,
	.pfb-brand-monogram {
		height: 44px;
		width: 48px;
	}

	.pfb-brand-mark img {
		height: 40px;
		width: 45px;
	}

	.pfb-back-link {
		font-size: 0;
		padding: 9px;
	}

	.pfb-back-link svg {
		height: 20px;
		width: 20px;
	}

	.pfb-hero {
		align-items: flex-start;
		grid-template-columns: 1fr;
		padding-bottom: 36px;
	}

	.pfb-rate-strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pfb-rate-strip__schedule {
		grid-column: 1 / -1;
	}

	.pfb-mode-badge {
		margin: 0;
	}

	.pfb-section-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}

	.pfb-section-heading > p {
		max-width: none;
		text-align: left;
	}

	.pfb-field-grid--schedule,
	.pfb-field-grid {
		grid-template-columns: 1fr;
	}

	.pfb-field--wide {
		grid-column: auto;
	}

	.pfb-slot-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pfb-trust-row {
		grid-template-columns: 1fr;
	}

	.pfb-trust-row > div {
		justify-content: flex-start;
		padding: 12px 6px;
	}

	.pfb-trust-row > div + div {
		border-left: 0;
		border-top: 1px solid var(--pfb-border-soft);
	}

	.pfb-success-details {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.pfb-stepper {
		padding-left: 13px;
		padding-right: 13px;
	}

	.pfb-stepper li {
		justify-content: center;
		padding-left: 3px;
		padding-right: 3px;
	}

	.pfb-stepper li strong {
		display: none;
	}

	.pfb-play-type {
		grid-template-columns: auto 1fr;
	}

	.pfb-rate-strip {
		grid-template-columns: 1fr;
	}

	.pfb-rate-strip__schedule {
		grid-column: auto;
	}

	.pfb-service-choice {
		grid-template-columns: 1fr;
	}

	.pfb-booked-item {
		align-items: flex-start;
		grid-template-columns: 1fr;
		gap: 3px;
	}

	.pfb-play-type em {
		grid-column: 1 / -1;
		justify-self: start;
	}

	.pfb-availability-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 4px;
	}

	.pfb-actions {
		align-items: stretch;
		flex-direction: column-reverse;
	}

	.pfb-actions .pfb-btn {
		width: 100%;
	}

	.pfb-summary-list {
		grid-template-columns: 1fr;
	}

	.pfb-app-footer {
		align-items: flex-start;
		flex-direction: column;
		gap: 5px;
	}
}

/* v0.11.5: reliable launcher into the canonical installable app page. */
.pfb-global-app-install {
	position: fixed;
	z-index: 99998;
	right: max(16px, env(safe-area-inset-right, 0px));
	bottom: max(16px, env(safe-area-inset-bottom, 0px));
	display: none;
	max-width: min(330px, calc(100vw - 32px));
	align-items: center;
	gap: 11px;
	box-sizing: border-box;
	padding: 12px 15px;
	border: 1px solid rgba(255, 255, 255, 0.32);
	border-radius: 16px;
	background: #d74430;
	box-shadow: 0 16px 42px rgba(25, 28, 36, 0.28);
	color: #fff !important;
	font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	text-decoration: none !important;
	transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.pfb-global-app-install:hover,
.pfb-global-app-install:focus-visible {
	background: #bd3525;
	box-shadow: 0 20px 46px rgba(25, 28, 36, 0.34);
	color: #fff !important;
	transform: translateY(-2px);
}

.pfb-global-app-install__icon {
	display: grid;
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	place-items: center;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.17);
	font-size: 23px;
	font-weight: 900;
	line-height: 1;
}

.pfb-global-app-install > span:last-child {
	display: grid;
	min-width: 0;
	gap: 2px;
}

.pfb-global-app-install strong,
.pfb-global-app-install small {
	display: block;
	color: inherit;
	line-height: 1.25;
}

.pfb-global-app-install strong {
	font-size: 14px;
	font-weight: 850;
}

.pfb-global-app-install small {
	font-size: 10px;
	opacity: 0.84;
}

@media (max-width: 780px) {
	.pfb-global-app-install {
		display: flex;
	}
}

@media (max-width: 420px) {
	.pfb-global-app-install {
		right: 12px;
		bottom: max(12px, env(safe-area-inset-bottom, 0px));
		max-width: calc(100vw - 24px);
		padding: 10px 13px;
	}
}

.pfb-multi-court-note {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	margin: -4px 0 16px;
	padding: 11px 13px;
	border: 1px solid rgba(74, 224, 221, 0.2);
	border-radius: 12px;
	background: rgba(74, 224, 221, 0.06);
	color: rgba(247, 239, 226, 0.72);
	font-size: 12px;
	line-height: 1.5;
}

.pfb-multi-court-note::before {
	flex: 0 0 auto;
	color: #4ae0dd;
	content: "●";
	font-size: 9px;
	line-height: 1.8;
}

.pfb-slot-button.is-matching:not(.is-selected) {
	border-color: rgba(74, 224, 221, 0.5);
	background: rgba(74, 224, 221, 0.08);
	box-shadow: inset 0 0 0 1px rgba(74, 224, 221, 0.07);
	color: #dbffff;
}

@media (prefers-reduced-motion: reduce) {
	.pfb-app *,
	.pfb-app *::before,
	.pfb-app *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	.pfb-loading > span {
		animation-duration: 1.6s;
	}
}

/* Player account and My Bookings portal. */
.pfb-appbar-actions {
	align-items: center;
	display: flex;
	gap: 10px;
}

.pfb-account-link {
	border-radius: 999px;
	color: var(--pfb-aqua) !important;
	font-size: 13px;
	font-weight: 850;
	padding: 10px 14px;
	text-decoration: none;
}

.pfb-account-link:hover,
.pfb-account-link:focus-visible {
	background: rgba(71, 216, 221, 0.08);
	color: #8bf6f7 !important;
}

.pfb-portal-hero {
	padding: clamp(48px, 7vw, 82px) clamp(22px, 5vw, 72px) 34px;
}

.pfb-portal-hero h1 {
	color: var(--pfb-cream);
	font-size: clamp(42px, 6vw, 78px);
	font-weight: 900;
	letter-spacing: -0.065em;
	line-height: 0.98;
	margin: 0;
}

.pfb-portal-hero > p {
	color: var(--pfb-muted);
	font-size: clamp(15px, 1.5vw, 18px);
	line-height: 1.75;
	margin: 20px 0 0;
	max-width: 720px;
}

.pfb-portal-shell {
	padding: 0 clamp(22px, 5vw, 72px) clamp(52px, 6vw, 78px);
}

.pfb-auth-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
}

.pfb-auth-grid--single {
	grid-template-columns: minmax(0, 720px);
}

.pfb-portal-card,
.pfb-booking-card,
.pfb-portal-toolbar {
	backdrop-filter: blur(18px);
	background: linear-gradient(145deg, rgba(12, 48, 54, 0.82), rgba(4, 27, 31, 0.94));
	border: 1px solid var(--pfb-border);
	border-radius: 26px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.2);
}

.pfb-portal-card {
	padding: clamp(24px, 3.4vw, 42px);
}

.pfb-portal-card--accent {
	background:
		radial-gradient(circle at 100% 0, rgba(255, 107, 34, 0.13), transparent 40%),
		linear-gradient(145deg, rgba(12, 48, 54, 0.86), rgba(4, 27, 31, 0.96));
}

.pfb-portal-eyebrow {
	color: var(--pfb-orange);
	display: block;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.12em;
	margin-bottom: 8px;
	text-transform: uppercase;
}

.pfb-portal-card h2 {
	color: var(--pfb-cream);
	font-size: clamp(25px, 3vw, 36px);
	letter-spacing: -0.04em;
	line-height: 1.1;
	margin: 0 0 10px;
}

.pfb-portal-card > p {
	color: var(--pfb-muted);
	line-height: 1.7;
	margin: 0 0 24px;
}

.pfb-account-form {
	display: flex;
	flex-direction: column;
	gap: 17px;
	margin-top: 24px;
}

.pfb-account-fields {
	display: grid;
	gap: 17px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pfb-account-fields .pfb-field--wide {
	grid-column: 1 / -1;
}

.pfb-account-check {
	align-items: flex-start;
	color: var(--pfb-muted);
	display: flex;
	font-size: 13px;
	gap: 9px;
	line-height: 1.5;
}

.pfb-account-check input {
	accent-color: var(--pfb-orange);
	margin-top: 3px;
}

.pfb-account-check a,
.pfb-text-link {
	color: var(--pfb-aqua) !important;
}

.pfb-text-link {
	font-size: 13px;
	font-weight: 750;
	text-align: center;
}

.pfb-portal-notice {
	align-items: flex-start;
	background: rgba(71, 216, 221, 0.08);
	border: 1px solid rgba(71, 216, 221, 0.23);
	border-radius: 16px;
	display: flex;
	flex-direction: column;
	gap: 3px;
	margin-bottom: 20px;
	padding: 15px 18px;
}

.pfb-portal-notice strong {
	color: var(--pfb-cream);
	font-size: 14px;
}

.pfb-portal-notice span {
	color: var(--pfb-muted);
	font-size: 13px;
}

.pfb-portal-notice--success {
	background: rgba(94, 230, 168, 0.09);
	border-color: rgba(94, 230, 168, 0.25);
}

.pfb-portal-notice--warning {
	background: rgba(216, 180, 106, 0.1);
	border-color: rgba(216, 180, 106, 0.28);
}

.pfb-portal-notice--error {
	background: rgba(255, 107, 89, 0.1);
	border-color: rgba(255, 107, 89, 0.3);
}

.pfb-verification-card,
.pfb-portal-empty {
	margin: 0 auto;
	max-width: 760px;
	text-align: center;
}

.pfb-portal-icon {
	align-items: center;
	background: rgba(71, 216, 221, 0.1);
	border: 1px solid rgba(71, 216, 221, 0.22);
	border-radius: 18px;
	display: inline-flex;
	height: 64px;
	justify-content: center;
	margin-bottom: 22px;
	width: 64px;
}

.pfb-portal-icon svg {
	fill: none;
	height: 30px;
	stroke: var(--pfb-aqua);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
	width: 30px;
}

.pfb-portal-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.pfb-verification-card .pfb-portal-actions,
.pfb-portal-empty .pfb-portal-actions {
	justify-content: center;
}

.pfb-portal-actions form {
	margin: 0;
}

.pfb-portal-toolbar {
	align-items: center;
	display: flex;
	gap: 24px;
	justify-content: space-between;
	margin-bottom: 20px;
	padding: 20px 22px;
}

.pfb-portal-toolbar > div:first-child {
	display: flex;
	flex-direction: column;
}

.pfb-portal-toolbar span,
.pfb-portal-toolbar small {
	color: var(--pfb-muted);
	font-size: 11px;
}

.pfb-portal-toolbar strong {
	color: var(--pfb-cream);
	font-size: 18px;
}

.pfb-my-bookings-list {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pfb-booking-card {
	min-width: 0;
	padding: clamp(21px, 2.5vw, 30px);
}

.pfb-booking-card-head {
	align-items: flex-start;
	display: flex;
	gap: 16px;
	justify-content: space-between;
}

.pfb-booking-card-ref {
	color: var(--pfb-orange);
	display: block;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: 0.09em;
	margin-bottom: 6px;
}

.pfb-booking-card h2 {
	color: var(--pfb-cream);
	font-size: 24px;
	letter-spacing: -0.035em;
	margin: 0;
}

.pfb-portal .pfb-status-pill {
	border-radius: 999px;
	font-size: 10px;
	font-weight: 850;
	padding: 7px 10px;
	white-space: nowrap;
}

.pfb-portal .pfb-status--confirmed,
.pfb-portal .pfb-status--completed {
	background: rgba(94, 230, 168, 0.11);
	color: #8ef0ba;
}

.pfb-portal .pfb-status--pending,
.pfb-portal .pfb-status--pending_payment,
.pfb-portal .pfb-status--cancellation_requested,
.pfb-portal .pfb-status--payment_issue {
	background: rgba(216, 180, 106, 0.12);
	color: #f3d18d;
}

.pfb-portal .pfb-status--cancelled,
.pfb-portal .pfb-status--declined,
.pfb-portal .pfb-status--expired,
.pfb-portal .pfb-status--no_show {
	background: rgba(255, 107, 89, 0.11);
	color: #ff9f91;
}

.pfb-booking-facts {
	border-bottom: 1px solid var(--pfb-border-soft);
	border-top: 1px solid var(--pfb-border-soft);
	display: grid;
	gap: 13px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 20px 0;
	padding: 18px 0;
}

.pfb-booking-facts > div {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.pfb-booking-facts span {
	color: var(--pfb-muted);
	font-size: 9px;
	font-weight: 850;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pfb-booking-facts strong {
	color: var(--pfb-cream);
	font-size: 13px;
	margin-top: 3px;
	overflow-wrap: anywhere;
}

.pfb-booking-card-note {
	background: rgba(216, 180, 106, 0.09);
	border: 1px solid rgba(216, 180, 106, 0.2);
	border-radius: 12px;
	color: var(--pfb-muted);
	font-size: 12px;
	line-height: 1.6;
	padding: 12px 14px;
}

.pfb-booking-card-actions {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.pfb-booking-card-actions form {
	margin: 0;
}

.pfb-cancel-details {
	min-width: min(100%, 300px);
}

.pfb-cancel-details > summary {
	color: #ffad9f;
	cursor: pointer;
	font-size: 12px;
	font-weight: 800;
	padding: 10px 3px;
}

.pfb-cancel-details form {
	background: rgba(255, 255, 255, 0.035);
	border: 1px solid var(--pfb-border-soft);
	border-radius: 13px;
	margin-top: 6px;
	padding: 13px;
}

.pfb-cancel-details label {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.pfb-cancel-details label span,
.pfb-cancel-details p {
	color: var(--pfb-muted);
	font-size: 11px;
}

.pfb-cancel-details textarea {
	background: rgba(255, 255, 255, 0.055);
	border: 1px solid var(--pfb-border);
	border-radius: 9px;
	color: var(--pfb-cream);
	padding: 9px;
	resize: vertical;
	width: 100%;
}

.pfb-btn--danger {
	background: rgba(255, 107, 89, 0.12);
	border: 1px solid rgba(255, 107, 89, 0.32);
	color: #ffb3a7;
}

.pfb-btn--danger:hover,
.pfb-btn--danger:focus-visible {
	background: rgba(255, 107, 89, 0.2);
	color: #fff;
}

@media (max-width: 980px) {
	.pfb-auth-grid,
	.pfb-my-bookings-list {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	.pfb-appbar-actions {
		gap: 2px;
	}

	.pfb-account-link {
		font-size: 11px;
		padding: 9px 7px;
	}

	.pfb-portal-toolbar {
		align-items: flex-start;
		flex-direction: column;
	}

	.pfb-account-fields {
		grid-template-columns: 1fr;
	}

	.pfb-account-fields .pfb-field--wide {
		grid-column: auto;
	}

	.pfb-booking-facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.pfb-portal-hero,
	.pfb-portal-shell {
		padding-left: 16px;
		padding-right: 16px;
	}

	.pfb-portal-hero h1 {
		font-size: 40px;
	}

	.pfb-portal-actions,
	.pfb-booking-card-actions {
		align-items: stretch;
		flex-direction: column;
		width: 100%;
	}

	.pfb-portal-actions form,
	.pfb-portal-actions .pfb-btn,
	.pfb-booking-card-actions form,
	.pfb-booking-card-actions .pfb-btn {
		width: 100%;
	}

	.pfb-booking-card-head {
		align-items: flex-start;
		flex-direction: column;
	}
}

.pfb-consent--policy,
.pfb-booking-policy {
	border: 1px solid rgba(216, 180, 106, 0.28);
	border-radius: 12px;
	background: rgba(216, 180, 106, 0.075);
}

.pfb-consent--policy {
	padding: 12px;
}

.pfb-booking-policy {
	display: grid;
	gap: 4px;
	margin: 16px 0 0;
	padding: 12px 14px;
}

.pfb-booking-policy strong {
	color: #f1d79f;
	font-size: 11px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.pfb-booking-policy span {
	color: var(--pfb-muted);
	font-size: 12px;
	line-height: 1.55;
}

.pfb-checkout-option {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 20px;
	padding: 16px;
	border: 1px solid rgba(71, 216, 221, 0.24);
	border-radius: 16px;
	background: linear-gradient(135deg, rgba(71, 216, 221, 0.085), rgba(255, 107, 34, 0.035));
}

.pfb-checkout-option > div {
	display: grid;
	gap: 3px;
}

.pfb-checkout-option span {
	color: #47d8dd;
	font-size: 10px;
	font-weight: 850;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pfb-checkout-option strong {
	color: var(--pfb-cream);
	font-size: 15px;
}

.pfb-checkout-option p {
	margin: 0;
	color: var(--pfb-muted);
	font-size: 12px;
	line-height: 1.5;
}

.pfb-checkout-option .pfb-btn {
	flex: 0 0 auto;
}

@media (max-width: 640px) {
	.pfb-checkout-option {
		align-items: stretch;
		flex-direction: column;
	}

	.pfb-checkout-option .pfb-btn {
		width: 100%;
	}
}

/* v0.10.2: approved Finest Ideas light palette. */
body.pfb-booking-page,
body.pfb-player-portal-page {
	background: #f8f6f5;
}

.pfb-app {
	--pfb-ink: #f8f6f5;
	--pfb-ink-2: #ffffff;
	--pfb-panel: #ffffff;
	--pfb-panel-strong: #ffffff;
	--pfb-cream: #191c24;
	--pfb-muted: #606267;
	--pfb-orange: #d74430;
	--pfb-orange-2: #e16050;
	--pfb-aqua: #386e9c;
	--pfb-gold: #9a6a24;
	--pfb-border: rgba(25, 28, 36, 0.14);
	--pfb-border-soft: rgba(25, 28, 36, 0.09);
	background:
		radial-gradient(circle at 5% 2%, rgba(56, 110, 156, 0.09), transparent 28%),
		radial-gradient(circle at 92% 6%, rgba(247, 220, 203, 0.82), transparent 26%),
		#f8f6f5;
	color: var(--pfb-cream);
}

.pfb-appbar {
	background: rgba(255, 255, 255, 0.92);
	border-bottom-color: var(--pfb-border-soft);
}

.pfb-brand-mark,
.pfb-brand-monogram {
	background: #fff;
	border-color: var(--pfb-border);
	box-shadow: 0 8px 20px rgba(25, 28, 36, 0.08);
}

.pfb-brand-monogram {
	background: var(--pfb-orange);
	border-color: var(--pfb-orange);
	color: #fff;
}

.pfb-brand strong,
.pfb-back-link,
.pfb-rate-strip article > strong,
.pfb-service-choice > a,
.pfb-service-choice strong,
.pfb-section-heading h2,
.pfb-play-type div:nth-child(2) strong,
.pfb-availability-heading strong,
.pfb-court-heading h3,
.pfb-booked-item strong,
.pfb-summary-top > span,
.pfb-summary-list dd,
.pfb-success h2,
.pfb-success-details strong,
.pfb-trust-row strong,
.pfb-portal-card h2,
.pfb-portal-toolbar strong,
.pfb-booking-card h2,
.pfb-booking-facts strong,
.pfb-checkout-option strong {
	color: var(--pfb-cream);
}

.pfb-brand small,
.pfb-hero-copy > p,
.pfb-mode-badge,
.pfb-service-choice small,
.pfb-section-heading > p,
.pfb-field > small,
.pfb-availability-heading small,
.pfb-booked-item small,
.pfb-court-unavailable,
.pfb-summary-list dt,
.pfb-summary-total span,
.pfb-success > p,
.pfb-success-details span,
.pfb-trust-row small,
.pfb-portal-hero > p,
.pfb-portal-card > p,
.pfb-booking-facts span,
.pfb-booking-card-note,
.pfb-checkout-option p {
	color: var(--pfb-muted);
}

.pfb-back-link {
	background: #fff;
	border-color: var(--pfb-border);
}

.pfb-back-link:hover,
.pfb-back-link:focus-visible {
	background: rgba(56, 110, 156, 0.07);
	border-color: rgba(56, 110, 156, 0.3);
	color: var(--pfb-aqua);
}

.pfb-hero h1 {
	color: var(--pfb-cream);
}

.pfb-hero h1 span {
	background: none;
	color: var(--pfb-orange);
}

.pfb-kicker {
	color: var(--pfb-aqua);
}

.pfb-kicker > span {
	background: var(--pfb-orange);
	box-shadow: 0 0 0 5px rgba(215, 68, 48, 0.1);
}

.pfb-mode-badge,
.pfb-rate-strip article,
.pfb-service-choice > a {
	background: #fff;
	border-color: var(--pfb-border);
	box-shadow: 0 9px 28px rgba(25, 28, 36, 0.06);
}

.pfb-mode-badge.is-live > span,
.pfb-live-dot {
	background: #3f995d;
	box-shadow: 0 0 0 5px rgba(46, 97, 68, 0.1);
}

.pfb-rate-strip__schedule > strong {
	color: #2e6144 !important;
}

.pfb-service-choice > a:hover,
.pfb-service-choice > a:focus-visible {
	border-color: rgba(56, 110, 156, 0.38);
	background: rgba(56, 110, 156, 0.06);
}

.pfb-service-choice > a.is-active {
	border-color: rgba(46, 97, 68, 0.36);
	background: rgba(46, 97, 68, 0.07);
}

.pfb-service-choice > a:first-child.is-active {
	border-color: rgba(56, 110, 156, 0.36);
	background: rgba(56, 110, 156, 0.07);
}

.pfb-service-choice span,
.pfb-consent a,
.pfb-account-check a,
.pfb-text-link,
.pfb-account-link {
	color: var(--pfb-aqua) !important;
}

.pfb-form-card,
.pfb-summary,
.pfb-portal-card,
.pfb-booking-card,
.pfb-portal-toolbar {
	background: #fff;
	border-color: var(--pfb-border);
	box-shadow: 0 22px 54px rgba(25, 28, 36, 0.1);
}

.pfb-stepper {
	background: #f5f4f3;
	border-bottom-color: var(--pfb-border-soft);
}

.pfb-stepper li {
	color: #989a9e;
}

.pfb-stepper li > span {
	border-color: rgba(25, 28, 36, 0.16);
}

.pfb-stepper li.is-active,
.pfb-stepper li.is-complete {
	color: var(--pfb-cream);
}

.pfb-stepper li.is-active::after,
.pfb-stepper li.is-active > span {
	background: var(--pfb-orange);
	border-color: var(--pfb-orange);
}

.pfb-stepper li.is-complete > span {
	background: rgba(46, 97, 68, 0.1);
	border-color: rgba(46, 97, 68, 0.26);
	color: #2e6144;
}

.pfb-section-heading > div > span {
	color: var(--pfb-aqua);
}

.pfb-play-type {
	background: linear-gradient(135deg, rgba(215, 68, 48, 0.07), rgba(247, 220, 203, 0.5));
	border-color: rgba(215, 68, 48, 0.2);
}

.pfb-play-type-icon {
	background: var(--pfb-orange);
}

.pfb-play-type em {
	background: rgba(46, 97, 68, 0.1);
	border-color: rgba(46, 97, 68, 0.2);
	color: #2e6144;
}

.pfb-field > span {
	color: #555b63;
}

.pfb-field input,
.pfb-field select,
.pfb-field textarea,
.pfb-cancel-details textarea {
	background-color: #fff;
	border-color: rgba(25, 28, 36, 0.18);
	color: var(--pfb-cream);
	color-scheme: light;
}

.pfb-field input::placeholder,
.pfb-field textarea::placeholder {
	color: #989ba0;
}

.pfb-field input:focus,
.pfb-field select:focus,
.pfb-field textarea:focus {
	background-color: #fff;
	border-color: var(--pfb-aqua);
	box-shadow: 0 0 0 4px rgba(56, 110, 156, 0.1);
}

.pfb-loading,
.pfb-empty-state,
.pfb-court-card,
.pfb-booked-item,
.pfb-success-details > div,
.pfb-summary > p {
	background: #faf9f8;
	border-color: var(--pfb-border-soft);
}

.pfb-loading,
.pfb-empty-state {
	border-color: rgba(25, 28, 36, 0.16);
}

.pfb-loading > span {
	border-color: rgba(56, 110, 156, 0.18);
	border-top-color: var(--pfb-aqua);
}

.pfb-booked-block {
	background: rgba(215, 68, 48, 0.05);
	border-color: rgba(215, 68, 48, 0.15);
}

.pfb-slot-button {
	background: #f4f7fa;
	border-color: rgba(56, 110, 156, 0.2);
	color: var(--pfb-aqua);
}

.pfb-slot-button:hover,
.pfb-slot-button:focus-visible {
	background: rgba(56, 110, 156, 0.08);
	border-color: rgba(56, 110, 156, 0.42);
	color: var(--pfb-aqua);
}

.pfb-slot-button.is-selected {
	background: var(--pfb-aqua);
	border-color: var(--pfb-aqua);
	box-shadow: 0 8px 22px rgba(56, 110, 156, 0.2);
	color: #fff;
}

.pfb-slot-button.is-matching:not(.is-selected) {
	background: rgba(46, 97, 68, 0.08);
	border-color: rgba(46, 97, 68, 0.4);
	color: #2e6144;
}

.pfb-btn--primary,
.pfb-btn--gcash,
.pfb-app-download-link {
	background: var(--pfb-orange);
	border-color: #c43a29;
	box-shadow: 0 11px 28px rgba(215, 68, 48, 0.2);
	color: #fff !important;
}

.pfb-app-download-link:hover,
.pfb-app-download-link:focus-visible {
	background: #c93d2a;
	box-shadow: 0 14px 32px rgba(215, 68, 48, 0.24);
}

.pfb-btn--secondary {
	background: #fff;
	border-color: rgba(56, 110, 156, 0.26);
	color: var(--pfb-aqua);
}

.pfb-test-notice,
.pfb-consent--policy,
.pfb-booking-policy {
	background: #fff8ea;
	border-color: rgba(154, 106, 36, 0.23);
	color: #80571c;
}

.pfb-booking-policy strong {
	color: #80571c;
}

.pfb-alert.is-error {
	background: #fff0ed;
	border-color: rgba(185, 52, 42, 0.25);
	color: #8f2d25;
}

.pfb-alert.is-success,
.pfb-portal-notice--success {
	background: #edf6f0;
	border-color: rgba(46, 97, 68, 0.24);
	color: #245237;
}

.pfb-summary-top > em,
.pfb-portal-eyebrow,
.pfb-booking-card-ref {
	background: rgba(56, 110, 156, 0.08);
	border-color: rgba(56, 110, 156, 0.16);
	color: var(--pfb-aqua);
}

.pfb-court-visual {
	background:
		linear-gradient(90deg, transparent 49.5%, rgba(255, 255, 255, 0.65) 49.5%, rgba(255, 255, 255, 0.65) 50.5%, transparent 50.5%),
		linear-gradient(rgba(215, 68, 48, 0.14), rgba(56, 110, 156, 0.16)),
		#386e9c;
	border-color: rgba(255, 255, 255, 0.62);
}

.pfb-court-visual::before,
.pfb-court-visual::after,
.pfb-court-lines::before,
.pfb-court-lines::after,
.pfb-court-lines span {
	border-color: rgba(255, 255, 255, 0.68);
	background-color: rgba(255, 255, 255, 0.68);
}

.pfb-court-visual > strong {
	color: rgba(255, 255, 255, 0.35);
}

.pfb-success-icon {
	background: rgba(46, 97, 68, 0.1);
	border-color: rgba(46, 97, 68, 0.22);
}

.pfb-success-icon svg {
	stroke: #2e6144;
}

.pfb-success-icon.is-pending {
	background: rgba(56, 110, 156, 0.09);
	border-color: rgba(56, 110, 156, 0.24);
}

.pfb-success-icon.is-error,
.pfb-success-icon.is-review,
.pfb-reference {
	background: rgba(215, 68, 48, 0.07);
	border-color: rgba(215, 68, 48, 0.2);
}

.pfb-app-footer {
	color: #777b80;
}

.pfb-app-footer a {
	color: #606267;
}

.pfb-app :focus-visible {
	outline-color: rgba(56, 110, 156, 0.58);
}

.pfb-multi-court-note,
.pfb-checkout-option,
.pfb-portal-card--accent,
.pfb-verification-card,
.pfb-portal-empty {
	background: linear-gradient(135deg, rgba(56, 110, 156, 0.07), rgba(247, 220, 203, 0.38));
	border-color: rgba(56, 110, 156, 0.2);
}

.pfb-account-link {
	background: #fff;
	border-color: var(--pfb-border);
}

.pfb-portal-notice,
.pfb-booking-card-note,
.pfb-cancel-details form {
	background: #faf9f8;
	border-color: var(--pfb-border-soft);
}

.pfb-portal-notice--warning,
.pfb-portal .pfb-status--pending,
.pfb-portal .pfb-status--pending_payment,
.pfb-portal .pfb-status--cancellation_requested,
.pfb-portal .pfb-status--payment_issue,
.pfb-portal .pfb-status--payment_review {
	background: #fff5df;
	color: #80571c;
}

.pfb-portal-notice--error,
.pfb-portal .pfb-status--cancelled,
.pfb-portal .pfb-status--declined,
.pfb-portal .pfb-status--expired,
.pfb-portal .pfb-status--no_show {
	background: #fff0ed;
	color: #8f2d25;
}

.pfb-portal .pfb-status--confirmed,
.pfb-portal .pfb-status--completed {
	background: #edf6f0;
	color: #245237;
}

.pfb-booking-facts {
	background: var(--pfb-border-soft);
}

.pfb-booking-facts > div {
	background: #faf9f8;
}

.pfb-btn--danger {
	background: #fff0ed;
	border-color: rgba(185, 52, 42, 0.25);
	color: #8f2d25;
}

.pfb-app .pfb-gcash-box {
	border-color: rgba(56, 110, 156, 0.22);
	background: linear-gradient(145deg, rgba(56, 110, 156, 0.07), #fff);
}

.pfb-app details.pfb-gcash-box > summary,
.pfb-app .pfb-gcash-copy > p {
	color: var(--pfb-cream);
}

.pfb-app .pfb-gcash-amount {
	color: var(--pfb-aqua);
}

/* v0.11 advertised pricing and equipment controls. */
.pfb-rate-strip--advertised {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pfb-rate-strip--advertised .pfb-rate-strip__schedule {
	grid-column: auto;
}

.pfb-rate-strip--advertised article {
	grid-template-columns: 1fr;
}

.pfb-rate-strip--advertised article > small {
	align-self: auto;
}

.pfb-service-choice--court-only {
	grid-template-columns: 1fr;
}

.pfb-machine-addon {
	display: grid;
	grid-template-columns: auto auto minmax(0, 1fr);
	align-items: start;
	gap: 11px;
	margin-top: 18px;
	padding: 15px 16px;
	border: 1px solid rgba(56, 110, 156, 0.22);
	border-radius: 16px;
	background: linear-gradient(135deg, rgba(56, 110, 156, 0.07), rgba(247, 220, 203, 0.3));
	cursor: pointer;
}

.pfb-machine-addon > input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.pfb-machine-addon__check {
	display: grid;
	width: 23px;
	height: 23px;
	place-items: center;
	border: 2px solid rgba(56, 110, 156, 0.42);
	border-radius: 7px;
	background: #fff;
}

.pfb-machine-addon > input:checked + .pfb-machine-addon__check {
	border-color: var(--pfb-aqua);
	background: var(--pfb-aqua);
}

.pfb-machine-addon > input:checked + .pfb-machine-addon__check::after {
	color: #fff;
	content: "✓";
	font-size: 15px;
	font-weight: 950;
}

.pfb-machine-addon > input:focus-visible + .pfb-machine-addon__check {
	outline: 3px solid rgba(56, 110, 156, 0.22);
	outline-offset: 2px;
}

.pfb-machine-addon:has(input:disabled) {
	cursor: not-allowed;
	opacity: 0.62;
}

.pfb-machine-addon > span:last-child {
	display: grid;
	gap: 3px;
}

.pfb-machine-addon strong {
	color: var(--pfb-cream);
	font-size: 13px;
	font-weight: 900;
}

.pfb-machine-addon small,
.pfb-machine-addon em {
	color: var(--pfb-muted);
	font-size: 10px;
	font-style: normal;
	font-weight: 750;
	line-height: 1.45;
}

.pfb-machine-addon em {
	color: var(--pfb-aqua);
}

.pfb-machine-hours {
	display: grid;
	gap: 7px;
	margin-top: -4px;
	padding: 13px 14px;
	border: 1px solid rgba(56, 110, 156, 0.22);
	border-radius: 12px;
	background: rgba(56, 110, 156, 0.06);
}

.pfb-machine-hours .pfb-field {
	margin: 0;
}

.pfb-machine-hours p {
	margin: 0;
	color: var(--pfb-muted);
	font-size: 10px;
	font-weight: 700;
	line-height: 1.45;
}

.pfb-voucher-box {
	display: grid;
	gap: 8px;
	margin-top: 16px;
	padding: 15px 16px;
	border: 1px solid rgba(247, 220, 203, 0.24);
	border-radius: 16px;
	background: rgba(247, 220, 203, 0.06);
}

.pfb-voucher-box > label {
	color: var(--pfb-cream);
	font-size: 12px;
	font-weight: 900;
}

.pfb-voucher-box > label small {
	color: var(--pfb-muted);
	font-weight: 700;
}

.pfb-voucher-box__apply {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
}

.pfb-voucher-box__apply input {
	min-width: 0;
	min-height: 44px;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid rgba(247, 220, 203, 0.25);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.96);
	color: #231b25;
	font: inherit;
	font-weight: 800;
	text-transform: uppercase;
}

.pfb-voucher-box__apply .pfb-btn {
	min-height: 44px;
	padding: 10px 18px;
}

.pfb-voucher-box > small {
	color: var(--pfb-muted);
	font-size: 10px;
	font-weight: 750;
	line-height: 1.45;
}

.pfb-voucher-box > small.is-success,
[data-pfb-summary-discount-row] dd {
	color: #67d7aa;
}

.pfb-voucher-box > small.is-error {
	color: #ff9d9d;
}

.pfb-voucher-box > small.is-warning,
.pfb-voucher-box > small.is-pending {
	color: #f0cb78;
}

@media (max-width: 980px) {
	.pfb-rate-strip--advertised {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.pfb-rate-strip--advertised {
		grid-template-columns: 1fr;
	}

	.pfb-voucher-box__apply {
		grid-template-columns: 1fr;
	}

	.pfb-voucher-box__apply .pfb-btn {
		width: 100%;
	}
}
