/*
Theme Name: Field Day – FunVentures
Theme URI: https://example.com/field-day
Author: Turnpike Digital
Description: A conversion-focused theme for bounce house and party rental companies. Top contact bar, ZIP checker, rental category cards that link to your booking store, a to-scale "Will it fit in your yard?" space checker, setup and safety rules, reviews, service areas, FAQs with schema, and a sticky mobile call bar. All client details live in Appearance → Customize → Party Rental Site Settings.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fieldday
Tags: business, one-column, custom-logo, custom-menu, custom-colors, translation-ready
*/

/* ---------- Tokens ---------- */
:root {
	--primary: #2a2f7a;
	--accent: #ffc933;
	--pop: #d82838;
	--ink: #1b1d3a;
	--steel: #5c6080;
	--concrete: #f4f3fb;
	--line: #dcdcec;
	--grass: #8fd18a;
	--grass-dark: #3f8f4a;
	--white: #fff;
	--display: "Righteous", "Trebuchet MS", sans-serif;
	--body: "Nunito Sans", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	--wrap: 1200px;
	--gutter: clamp(1rem, 4vw, 2rem);
	--section: clamp(3.5rem, 8vw, 6.5rem);
	--r-sm: 999px;
	--r-md: 18px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body {
	margin: 0;
	font-family: var(--body);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--ink);
	background: var(--white);
}
img, svg, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--primary); text-underline-offset: 0.18em; }
a:hover { color: var(--ink); }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
h1, h2, h3, h4 { font-family: var(--display); line-height: 1.05; margin: 0 0 0.5em; font-weight: 600; letter-spacing: -0.01em; }
p { margin: 0 0 1em; }
ul, ol { padding-left: 1.2em; }

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.screen-reader-text, .skip-link:not(:focus) {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus { position: fixed; top: 0.5rem; left: 0.5rem; z-index: 999; background: var(--accent); color: var(--ink); padding: 0.6rem 1rem; }
.icon { width: 1em; height: 1em; fill: currentColor; flex: none; }

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5em;
	font-family: var(--display); font-weight: 600; font-size: 1.125rem; letter-spacing: 0.01em;
	padding: 0.7em 1.25em; border-radius: var(--r-sm); border: 2px solid transparent;
	text-decoration: none; line-height: 1.1; cursor: pointer; white-space: nowrap;
	transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}
.btn-lg { font-size: 1.3rem; padding: 0.75em 1.4em; }
.btn-accent { background: var(--accent); color: var(--ink); }
.btn-accent:hover { background: var(--pop); color: var(--white); }
.btn-ink { background: var(--ink); color: var(--white); }
.btn-ink:hover { background: var(--primary); color: var(--white); }
.btn-ghost { border-color: var(--line); color: var(--ink); background: transparent; }
.btn-ghost:hover { border-color: var(--ink); color: var(--ink); }
.btn-ghost-light { border-color: rgba(255,255,255,0.55); color: var(--white); }
.btn-ghost-light:hover { background: var(--white); color: var(--ink); }
.btn-outline-ink { border-color: var(--ink); color: var(--ink); }
.btn-outline-ink:hover { background: var(--ink); color: var(--white); }
.text-link { font-weight: 600; color: inherit; }

/* ---------- Top bar ---------- */
.topbar { background: var(--ink); color: rgba(255,255,255,0.8); font-size: 0.9rem; }
.topbar-inner { display: flex; align-items: center; gap: 1.5rem; min-height: 38px; }
.topbar a { color: var(--white); text-decoration: none; }
.topbar-phone { display: inline-flex; align-items: center; gap: 0.4em; font-weight: 600; }
.topbar-phone .icon { color: var(--accent); }
.topbar-book { margin-left: auto; font-weight: 600; color: var(--accent) !important; }
@media (max-width: 720px) { .topbar-meta { display: none; } }

/* ---------- Header ---------- */
.site-header { background: var(--white); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 50; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.header-inner { display: flex; align-items: center; gap: 1.5rem; min-height: 76px; }
.brand { flex: 0 1 auto; min-width: 0; }
.brand img, .custom-logo { max-height: 56px; width: auto; }
.brand-name { font-family: var(--display); font-weight: 600; font-size: 1.5rem; color: var(--ink); text-decoration: none; line-height: 1; }
.primary-nav { display: flex; align-items: center; gap: 1.25rem; flex: 1; }
.primary-nav .menu { list-style: none; margin: 0 auto 0 0; padding: 0; display: flex; gap: 0.25rem; }
.primary-nav .menu li { position: relative; }
.primary-nav .menu a {
	white-space: nowrap;
	display: block; padding: 0.6rem 0.75rem; text-decoration: none; color: var(--ink);
	font-family: var(--display); font-weight: 600; font-size: 1.15rem;
}
.primary-nav .menu a:hover, .primary-nav .current-menu-item > a { color: var(--primary); box-shadow: inset 0 -3px 0 var(--accent); }
.primary-nav .sub-menu, .primary-nav .children {
	list-style: none; margin: 0; padding: 0.5rem; position: absolute; left: 0; top: 100%; min-width: 230px;
	background: var(--white); border: 1px solid var(--line); border-radius: var(--r-md);
	box-shadow: 0 16px 32px -12px rgba(21,32,42,0.28);
	opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity 0.15s, transform 0.15s, visibility 0.15s;
}
.primary-nav .sub-menu .sub-menu, .primary-nav .children .children { left: 100%; top: 0; }
.primary-nav li:hover > .sub-menu, .primary-nav li:focus-within > .sub-menu,
.primary-nav li:hover > .children, .primary-nav li:focus-within > .children { opacity: 1; visibility: visible; transform: none; }
.primary-nav .sub-menu a, .primary-nav .children a { font-family: var(--body); font-weight: 500; font-size: 1rem; padding: 0.45rem 0.7rem; border-radius: var(--r-sm); }
.primary-nav .sub-menu a:hover, .primary-nav .children a:hover { background: var(--concrete); box-shadow: none; }
.nav-actions { display: flex; gap: 0.6rem; }
.nav-toggle { display: none; margin-left: auto; background: none; border: 2px solid var(--line); border-radius: var(--r-sm); padding: 0.45rem; font-size: 1.5rem; color: var(--ink); cursor: pointer; }

@media (max-width: 1240px) {
	.nav-actions .btn-ghost { display: none; }
	.primary-nav .menu a { padding-left: 0.55rem; padding-right: 0.55rem; }
}
@media (max-width: 960px) {
	.nav-toggle { display: inline-flex; }
	.primary-nav {
		display: none; position: absolute; left: 0; right: 0; top: 100%;
		flex-direction: column; align-items: stretch; gap: 1rem;
		background: var(--white); border-bottom: 1px solid var(--line); padding: 1rem var(--gutter) 1.5rem;
		max-height: calc(100vh - 110px); overflow-y: auto;
	}
	.primary-nav.is-open { display: flex; }
	.primary-nav .menu { flex-direction: column; margin: 0; }
	.primary-nav .sub-menu, .primary-nav .children {
		position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 1rem; min-width: 0;
	}
	.primary-nav .menu a:hover { box-shadow: none; }
	.nav-actions { flex-direction: column; }
	.nav-actions .btn-ghost { display: inline-flex; }
}

/* ---------- Mobile call bar ---------- */
.mobile-bar { display: none; }
@media (max-width: 720px) {
	body { padding-bottom: 64px; }
	.mobile-bar {
		display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
		background: var(--ink); border-top: 2px solid var(--accent);
		padding-bottom: env(safe-area-inset-bottom, 0);
	}
	.mobile-bar a {
		flex: 1; display: flex; align-items: center; justify-content: center; gap: 0.4em; min-height: 58px;
		color: var(--white); text-decoration: none; font-family: var(--display); font-weight: 600; font-size: 1.15rem;
	}
	.mobile-bar a + a { border-left: 1px solid rgba(255,255,255,0.15); }
	.mobile-bar .mobile-bar-book { background: var(--accent); color: var(--ink); flex: 1.4; }
}

/* ---------- Hero ---------- */
.hero { position: relative; background: var(--primary); color: var(--white); overflow: hidden; isolation: isolate; }
.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.hero.has-image::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(100deg, rgba(21,32,42,0.92) 0%, rgba(21,32,42,0.78) 45%, rgba(21,32,42,0.35) 100%);
}
.hero-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; padding-top: clamp(3rem, 8vw, 6rem); padding-bottom: clamp(3rem, 8vw, 6rem); }
.hero-badge { display: inline-block; background: var(--pop); color: var(--white); border-radius: 999px; padding: 0.35rem 1rem; font-weight: 600; font-size: 0.95rem; margin-bottom: 1.25rem; }
.hero-title { font-size: clamp(2.4rem, 5.2vw, 4.15rem); font-weight: 600; color: var(--white); margin-bottom: 0.75rem; max-width: 14ch; letter-spacing: -0.02em; line-height: 1.02; }
.hero-tagline { font-family: var(--body); font-weight: 400; font-size: 1.15rem; line-height: 1.5; margin-bottom: 0.75rem; max-width: 42ch; color: rgba(255,255,255,0.88); }
.hero-text { font-size: 1.15rem; max-width: 42ch; color: rgba(255,255,255,0.88); }
.hero-call { margin: 0; font-size: 1.15rem; }
.hero-call a { color: var(--accent); font-weight: 700; text-decoration: none; }
.hero-photo { margin: 0; }
.hero-photo img { width: 100%; border-radius: 28px; aspect-ratio: 4 / 3; object-fit: cover; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.75rem 0 0; }

.zip-card { background: var(--white); color: var(--ink); border-radius: var(--r-md); padding: clamp(1.25rem, 3vw, 2rem); box-shadow: 0 24px 48px -20px rgba(0,0,0,0.45); }
.zip-title { font-size: 1.75rem; }
.zip-form label { display: block; font-weight: 600; font-size: 0.95rem; margin-bottom: 0.35rem; }
.zip-row { display: flex; gap: 0.5rem; }
.zip-row input {
	flex: 1; min-width: 0; font: 700 1.5rem/1 var(--display); letter-spacing: 0.08em;
	padding: 0.55rem 1rem; border: 2px solid var(--line); border-radius: 12px; color: var(--ink);
}
.zip-row input:focus { border-color: var(--primary); outline: none; box-shadow: 0 0 0 3px rgba(255,201,51,0.55); }
.zip-result { min-height: 1.6em; margin: 0.6rem 0 0; font-weight: 600; }
.zip-result.is-ok { color: #1f6b3a; }
.zip-result.is-out { color: #9a3412; }
.zip-result.is-error { color: #9a3412; }
.zip-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin: 1.25rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.zip-facts dt { font-family: var(--display); font-weight: 600; font-size: 1.6rem; line-height: 1; display: flex; align-items: center; gap: 0.2em; }
.zip-facts .star { color: var(--accent); font-size: 0.8em; display: inline-flex; }
.zip-fact-text dt { color: var(--grass-dark); font-size: 1.6rem; }
.zip-facts dd { margin: 0.25rem 0 0; font-size: 0.85rem; color: var(--steel); line-height: 1.3; }

@media (max-width: 900px) {
	.hero-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
	.btn { white-space: normal; text-align: center; }
	.hero-actions .btn { flex: 1 1 100%; }
	.zip-facts { grid-template-columns: 1fr 1fr; }
	.brand-name { font-size: 1.25rem; }
}

/* ---------- Sections ---------- */
.section { padding: var(--section) 0; }
.section-dark { background: var(--primary); color: var(--white); }
.section-dark a { color: var(--white); }
.section-head { max-width: 62ch; margin-bottom: clamp(1.75rem, 4vw, 2.75rem); }
.section-head-split { max-width: none; display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.section-title { font-size: clamp(2.1rem, 4.5vw, 3.25rem); }
.section-lede { font-size: 1.125rem; color: var(--steel); margin: 0; }
.section-dark .section-lede { color: rgba(255,255,255,0.8); }

/* ---------- Why ---------- */
.why { background: var(--concrete); }
.why-grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: clamp(2rem, 5vw, 4rem); }
.why-rating { display: flex; align-items: center; gap: 0.9rem; margin-top: 1.5rem; color: var(--steel); line-height: 1.3; }
.why-rating span:last-child { max-width: 18ch; }
.why-rating-num { font-family: var(--display); font-weight: 600; font-size: 4rem; color: var(--pop); line-height: 0.9; }
.why-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem 2.5rem; }
.why-list li { border-top: 3px solid var(--accent); padding-top: 1rem; }
.why-list h3 { font-size: 1.5rem; }
.why-list p { color: var(--steel); margin: 0; }
@media (max-width: 860px) { .why-grid, .why-list { grid-template-columns: 1fr; } }

/* ---------- Steps ---------- */
.steps { background: var(--concrete); }
.setup { background: var(--white); }
.step-list { list-style: none; counter-reset: step; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.step-list li { counter-increment: step; position: relative; padding-top: 4.25rem; }
.step-list li::before {
	content: counter(step); position: absolute; top: 0; left: 0;
	display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 50%;
	background: var(--primary); color: var(--white);
	font-family: var(--display); font-weight: 600; font-size: 1.75rem; line-height: 1;
}
.step-list li:not(:last-child)::after {
	content: ""; position: absolute; top: 1.6rem; left: 4rem; right: 0.75rem; height: 3px;
	background: repeating-linear-gradient(90deg, var(--pop) 0 10px, transparent 10px 18px);
}
.step-list h3 { font-size: 1.75rem; }
.step-list p { color: var(--steel); margin: 0; }
.steps-cta { margin: 2.5rem 0 0; }
@media (max-width: 760px) {
	.step-list { grid-template-columns: 1fr; }
	.step-list li:not(:last-child)::after { display: none; }
}

/* ---------- Rental categories ---------- */
.cat-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.cat {
	position: relative; background: var(--concrete); border-radius: var(--r-md); padding: 1.25rem 1.25rem 1.1rem;
	display: flex; flex-direction: column; transition: background-color 0.15s;
}
.cat:hover, .cat:focus-within { background: #eae8f8; }
.cat-img { width: calc(100% + 2.5rem); max-width: none; margin: -1.25rem -1.25rem 1rem; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-md) var(--r-md) 0 0; }
.cat-title { font-size: 1.4rem; margin-bottom: 0.3rem; }
.cat-title a { color: var(--ink); text-decoration: none; }
.cat-title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--r-md); }
.cat-title a:focus-visible { outline: none; }
.cat-title a:focus-visible::after { outline: 3px solid var(--pop); outline-offset: 2px; }
.cat p { margin: 0; color: var(--steel); font-size: 0.97rem; }
.cat:not(.has-img)::before {
	content: ""; width: 2.25rem; height: 0.5rem; border-radius: 999px; margin-bottom: 1rem;
	background: var(--accent);
}
.cat:not(.has-img):nth-child(3n+2)::before { background: var(--pop); }
.cat:not(.has-img):nth-child(3n+3)::before { background: var(--grass); }
@media (max-width: 960px) { .cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .cat-grid { grid-template-columns: 1fr; } }

/* ---------- Space checker (the signature piece) ---------- */
.fit { background: var(--primary); color: var(--white); }
.fit .section-lede { color: rgba(255,255,255,0.82); }
.fit-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.fit-form { margin-top: 1.75rem; display: grid; gap: 0.35rem; }
.fit-form label { font-weight: 700; font-size: 0.95rem; }
.fit-form select, .fit-form input {
	font: 600 1.15rem/1.2 var(--body); color: var(--ink); background: var(--white);
	border: 2px solid transparent; border-radius: 12px; padding: 0.7rem 0.9rem; width: 100%;
}
.fit-form select:focus, .fit-form input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(255,201,51,0.45); }
.fit-dims { display: grid; grid-template-columns: 1fr auto 1fr; gap: 0.6rem; align-items: end; margin-top: 0.9rem; }
.fit-dims > div { display: grid; gap: 0.35rem; }
.fit-x { font-family: var(--display); font-size: 1.6rem; padding-bottom: 0.55rem; color: var(--accent); }
.fit-result { margin: 1.25rem 0 0; padding: 0.9rem 1.1rem; border-radius: 12px; background: rgba(255,255,255,0.1); font-weight: 600; min-height: 3.2rem; }
.fit-result.is-ok { background: rgba(143,209,138,0.2); box-shadow: inset 4px 0 0 var(--grass); }
.fit-result.is-out, .fit-result.is-error { background: rgba(255,79,139,0.18); box-shadow: inset 4px 0 0 var(--pop); }

.fit-stage { background: #26296b; border-radius: var(--r-md); padding: clamp(0.75rem, 2vw, 1.25rem); }
.fit-svg { width: 100%; height: auto; display: block; }
.fit-yard { fill: var(--grass); }
.fit-clear { fill: rgba(255,255,255,0.35); stroke: var(--white); stroke-width: 2; stroke-dasharray: 6 5; }
.fit-clear.is-over { stroke: var(--pop); fill: rgba(255,79,139,0.3); }
.fit-unit { fill: var(--pop); }
.fit-label { font: 600 13px var(--display); fill: rgba(255,255,255,0.9); }
.fit-unit-label { font: 600 14px var(--display); fill: var(--white); }
.fit-legend { list-style: none; margin: 0.75rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; font-size: 0.9rem; color: rgba(255,255,255,0.8); }
.fit-legend li { display: flex; align-items: center; gap: 0.45rem; }
.swatch { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }
.swatch-yard { background: var(--grass); }
.swatch-clear { background: rgba(255,255,255,0.35); outline: 2px dashed var(--white); outline-offset: -2px; }
.swatch-unit { background: var(--pop); }
.fit-table-wrap { margin-top: 2.5rem; border-top: 1px solid rgba(255,255,255,0.2); }
.fit-table-wrap summary { cursor: pointer; padding: 1rem 0; font-family: var(--display); font-weight: 600; font-size: 1.2rem; }
.table-scroll { overflow-x: auto; }
.fit-table { width: 100%; border-collapse: collapse; min-width: 520px; }
.fit-table th, .fit-table td { text-align: left; padding: 0.6rem 0.75rem; border-bottom: 1px solid rgba(255,255,255,0.15); }
.fit-table thead th { font-size: 0.85rem; color: rgba(255,255,255,0.7); font-weight: 600; }
.fit-table tbody th { font-weight: 600; }
@media (max-width: 860px) { .fit-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Event types ---------- */
.event-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.event { border: 2px solid var(--line); border-radius: var(--r-md); padding: 1.5rem; }
.event-title { font-size: 1.6rem; }
.event > p { color: var(--steel); }
.event-tags-label { font-weight: 700; font-size: 0.9rem; margin: 1.25rem 0 0.5rem; color: var(--ink) !important; }
.event-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.event-tags li { background: var(--concrete); border-radius: 999px; padding: 0.25rem 0.75rem; font-size: 0.92rem; font-weight: 600; }
@media (max-width: 860px) { .event-grid { grid-template-columns: 1fr; } }

/* ---------- Setup and safety ---------- */
.setup-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.setup-col { border-radius: var(--r-md); padding: 1.5rem; background: var(--concrete); }
.setup-head { display: flex; align-items: center; gap: 0.5rem; font-size: 1.6rem; }
.setup-yes .setup-head .icon { color: var(--grass-dark); }
.setup-no .setup-head .icon { color: #c2185b; }
.setup-col ul { list-style: none; padding: 0; margin: 0; }
.setup-col li { padding: 0.7rem 0; border-top: 1px solid var(--line); }
.setup-col li strong { display: block; }
.setup-col li span { color: var(--steel); font-size: 0.97rem; }
.rules { margin-top: 1.5rem; border: 2px solid var(--accent); border-radius: var(--r-md); padding: 1.25rem 1.5rem; }
.rules-title { font-size: 1.3rem; margin-bottom: 0.5rem; }
.rules ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.rules li { padding-left: 1.25rem; position: relative; }
.rules li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 9px; height: 9px; border-radius: 50%; background: var(--pop); }
@media (max-width: 760px) { .setup-grid { grid-template-columns: 1fr; } }

/* ---------- Story ---------- */
.story { background: var(--concrete); }
.story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.story-grid.no-image { grid-template-columns: minmax(0, 1fr); }
.story-grid.no-image .story-copy { max-width: 68ch; }
.story-copy p { font-size: 1.125rem; }
.story-figure { margin: 0; position: relative; }
.story-figure img { border-radius: var(--r-md); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.story-figure figcaption {
	position: absolute; left: 1rem; bottom: 1rem; background: var(--pop); color: var(--white);
	font-family: var(--display); font-weight: 600; font-size: 1.3rem; padding: 0.35rem 0.8rem; border-radius: var(--r-sm);
}
@media (max-width: 860px) { .story-grid { grid-template-columns: 1fr; } }

/* ---------- Reviews ---------- */
.review-track {
	display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 1fr); gap: 1.25rem;
	overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 1rem;
	scrollbar-color: var(--line) transparent;
}
@media (min-width: 1000px) { .review-track { grid-auto-columns: calc((100% - 2.5rem) / 3); } }
.review { margin: 0; scroll-snap-align: start; border: 1px solid var(--line); border-radius: var(--r-md); padding: 1.5rem; display: flex; flex-direction: column; }
.review-stars { color: var(--accent); display: flex; gap: 2px; margin-bottom: 0.75rem; }
.review blockquote { margin: 0 0 1rem; flex: 1; }
.review blockquote p { margin: 0; font-size: 1.05rem; }
.review figcaption { font-weight: 600; color: var(--steel); }

/* ---------- Areas ---------- */
.areas-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: start; }
.areas-grid.no-map { grid-template-columns: 1fr; }
.area-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 1.5rem 2rem; margin-top: 2rem; }
.area-county { font-size: 1.4rem; color: var(--accent); margin-bottom: 0.35rem; }
.area-county a { color: var(--accent); text-decoration: none; }
.area-towns { list-style: none; margin: 0; padding: 0; }
.area-towns li { padding: 0.15rem 0; color: rgba(255,255,255,0.85); }
.area-map iframe { width: 100%; aspect-ratio: 1; border: 0; border-radius: var(--r-md); background: rgba(255,255,255,0.08); }
@media (max-width: 860px) { .areas-grid { grid-template-columns: 1fr; } }

/* ---------- FAQ ---------- */
.faq-grid { display: grid; grid-template-columns: 1fr 1.8fr; gap: clamp(2rem, 5vw, 4rem); }
.faq-list { border-top: 2px solid var(--ink); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary {
	list-style: none; cursor: pointer; padding: 1.1rem 2.5rem 1.1rem 0; position: relative;
	font-family: var(--display); font-weight: 600; font-size: 1.45rem; line-height: 1.2;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
	content: ""; position: absolute; right: 0.4rem; top: 50%; width: 12px; height: 12px;
	border-right: 3px solid var(--primary); border-bottom: 3px solid var(--primary);
	transform: translateY(-70%) rotate(45deg); transition: transform 0.2s;
}
.faq-item[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.faq-item p { margin: 0 0 1.25rem; color: var(--steel); max-width: 65ch; }
@media (max-width: 860px) { .faq-grid { grid-template-columns: 1fr; } }

/* ---------- CTA band ---------- */
.cta-band { background: var(--accent); color: var(--ink); padding: clamp(2.5rem, 6vw, 4rem) 0; }
.cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.cta-title { font-size: clamp(2.2rem, 5vw, 3.5rem); margin-bottom: 0.25rem; }
.cta-inner p { margin: 0; font-size: 1.15rem; }
.cta-inner .hero-actions { margin: 0; }

/* ---------- Footer ---------- */
.site-footer { background: var(--ink); color: rgba(255,255,255,0.75); padding-top: clamp(3rem, 6vw, 4.5rem); font-size: 0.97rem; }
.site-footer a { color: rgba(255,255,255,0.9); text-decoration: none; }
.site-footer a:hover { color: var(--accent); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2.5rem; }
.footer-brand .brand-name { color: var(--white); font-size: 1.6rem; margin-bottom: 0.75rem; }
.footer-brand .custom-logo { margin-bottom: 1rem; }
.footer-title { font-size: 1.2rem; color: var(--white); margin-bottom: 0.9rem; }
.footer-menu, .contact-list, .social { list-style: none; margin: 0; padding: 0; }
.footer-menu li, .contact-list li { padding: 0.25rem 0; }
.contact-list li { display: flex; gap: 0.6rem; align-items: flex-start; }
.contact-list .icon { color: var(--accent); margin-top: 0.3em; }
.social { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1rem; }
.social a { font-weight: 600; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: 3rem; padding-top: 1.25rem; padding-bottom: 1.25rem; border-top: 1px solid rgba(255,255,255,0.12); font-size: 0.88rem; }
.footer-bottom p { margin: 0; }
@media (max-width: 900px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } }

/* ---------- Inner pages ---------- */
.page-head { background: var(--primary); color: var(--white); padding: clamp(2.5rem, 6vw, 4rem) 0; }
.page-title { font-size: clamp(2.4rem, 6vw, 4rem); margin: 0; }
.page-lede { font-size: 1.15rem; color: rgba(255,255,255,0.85); margin: 0.75rem 0 0; max-width: 55ch; }
.page-head .post-meta { color: rgba(255,255,255,0.7); margin: 0.5rem 0 0; }
.page-body { padding-top: clamp(2rem, 5vw, 3.5rem); padding-bottom: clamp(2.5rem, 6vw, 4rem); }
.prose { max-width: calc(760px + 2 * var(--gutter)); }
.prose > * + * { margin-top: 1em; }
.prose h2 { font-size: 2.2rem; margin-top: 1.6em; }
.prose h3 { font-size: 1.6rem; margin-top: 1.4em; }
.prose img { border-radius: var(--r-md); }
.prose blockquote { border-left: 4px solid var(--accent); margin-left: 0; padding-left: 1.25rem; font-size: 1.15rem; }
.prose table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.prose th, .prose td { padding: 0.6rem 0.8rem; border-bottom: 1px solid var(--line); text-align: left; }
.prose .alignwide { max-width: 1100px; margin-left: auto; margin-right: auto; }
.post-hero-img { margin-bottom: 2rem; border-radius: var(--r-md); }

.content-grid { display: grid; grid-template-columns: 1fr 300px; gap: 3rem; padding-top: 3rem; padding-bottom: 4rem; }
.content-grid:not(:has(.sidebar)) { grid-template-columns: 1fr; max-width: 900px; }
.post-card { display: grid; grid-template-columns: 240px 1fr; gap: 1.5rem; padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.post-card:not(:has(.post-card-img)) { grid-template-columns: 1fr; }
.post-card-img img { border-radius: var(--r-md); aspect-ratio: 4 / 3; object-fit: cover; }
.post-card-title { font-size: 1.8rem; }
.post-card-title a { color: var(--ink); text-decoration: none; }
.post-meta { color: var(--steel); font-size: 0.92rem; }
.widget { margin-bottom: 2rem; }
.widget-title { font-size: 1.4rem; }
@media (max-width: 860px) {
	.content-grid { grid-template-columns: 1fr; }
	.post-card { grid-template-columns: 1fr; }
}

/* Core block alignment */
.alignleft { float: left; margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.aligncenter { margin-left: auto; margin-right: auto; }
.wp-caption-text, .wp-element-caption { font-size: 0.9rem; color: var(--steel); }

/* ---------- Rebuild content ---------- */
.kicker { font-family: var(--display); font-weight: 700; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pop); margin: 0 0 0.45rem; }
.cat-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.page-kicker { color: var(--accent); font-family: var(--display); font-weight: 700; font-size: 0.85rem; letter-spacing: 0.14em; text-transform: uppercase; margin: 0 0 0.6rem; }
.brand-logo img, .custom-logo-link img { max-height: 64px; width: auto; }
.site-footer .brand-logo img { max-height: 72px; margin-bottom: 1rem; }
.hours-line { display: block; }
.hours-line + .hours-line { margin-top: 0.35rem; }
.hours-line strong { color: inherit; }

.trust { background: var(--concrete); padding-top: clamp(1.5rem, 3vw, 2.25rem); padding-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.trust-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.trust-list li { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-md); padding: 1.1rem 1.2rem; }
.trust-list strong { display: block; font-family: var(--display); font-size: 1.15rem; margin-bottom: 0.2rem; }
.trust-list span { color: var(--steel); font-size: 0.95rem; }

.prices { background: var(--concrete); }
.price-list { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.price-list a { display: flex; flex-direction: column; gap: 0.35rem; min-height: 100%; text-decoration: none; color: inherit; background: var(--white); border-radius: var(--r-md); padding: 1.2rem 1.15rem; border-top: 4px solid var(--accent); }
.price-list li:nth-child(2) a { border-top-color: var(--pop); }
.price-list li:nth-child(3) a { border-top-color: var(--primary); }
.price-list li:nth-child(4) a { border-top-color: var(--grass-dark); }
.price-list li:nth-child(5) a { border-top-color: var(--accent); }
.price-name { font-weight: 700; }
.price-amt { font-family: var(--display); font-size: 1.7rem; line-height: 1; }

.product-grid { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }
.product { background: var(--concrete); border-radius: var(--r-md); overflow: hidden; }
.product a { display: block; color: inherit; text-decoration: none; height: 100%; }
.product a:hover h3 { color: var(--primary); }
.product img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--white); }
.product h3 { font-size: 1.15rem; margin: 0.85rem 1rem 0.15rem; }
.product-price { margin: 0 1rem 1rem; font-family: var(--display); font-size: 1.35rem; }
.product-badge { margin: 0.75rem 1rem 0; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pop); }
.product-scroll { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1rem; padding-bottom: 0.5rem; }
.product-scroll .product { flex: 0 0 230px; scroll-snap-align: start; }

.offer h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); }
.offer p { color: var(--steel); margin: 0; }
.offer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.offer { background: var(--concrete); border-radius: var(--r-md); padding: clamp(1.25rem, 3vw, 2rem); }
.steps { background: var(--white); }
.cta-band .kicker { color: var(--ink); }
.cta-title { font-size: clamp(1.7rem, 3.2vw, 2.5rem); max-width: 22em; }

.catalog-intro { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 2rem; align-items: start; margin-bottom: 2.5rem; }
.catalog-photo { width: 100%; border-radius: var(--r-md); object-fit: cover; aspect-ratio: 4 / 3; }
.catalog-photo-wide { display: block; aspect-ratio: 16 / 7; max-height: 440px; }
.catalog-inventory { margin-top: 0.5rem; }
.catalog-book { margin: 2rem 0 0; }
.outbound-links { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.outbound-links li { margin: 0.4rem 0; }
.page-note { padding-bottom: 0.5rem; }
.gallery-links { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin-top: 0; }
.gallery-grid { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
.gallery-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-md); }
.contact-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 0; }
.contact-cards > div { background: var(--concrete); border-radius: var(--r-md); padding: 1.25rem 1.4rem; }
.contact-cards dt { font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700; color: var(--steel); }
.contact-cards dd { margin: 0.4rem 0 0; font-family: var(--display); font-size: 1.3rem; line-height: 1.35; }
.contact-cards a { color: inherit; text-decoration: none; }
.contact-cards a:hover { color: var(--primary); }

@media (max-width: 960px) {
	.trust-list, .price-list { grid-template-columns: 1fr 1fr; }
	.gallery-grid { grid-template-columns: 1fr 1fr; }
	.catalog-intro, .offer-grid, .contact-cards { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.trust-list, .price-list, .gallery-grid { grid-template-columns: 1fr; }
}



/* ==========================================================
   MULKEY-STYLE GLASS LAYER
   Front page (body.fv-glass): dark party-night canvas, video
   hero, transparent/glass sections. Drawer + footer CTA + ZIP
   modal apply site-wide.
   ========================================================== */
.fv-glass {
	--night: #0e1030;
	--night-2: #161a4d;
	--glass: rgba(255, 255, 255, 0.06);
	--glass-2: rgba(255, 255, 255, 0.1);
	--glass-line: rgba(255, 255, 255, 0.14);
	--muted: rgba(255, 255, 255, 0.74);
	--glow: 0 18px 50px rgba(0, 0, 0, 0.35);
	background: var(--night);
	color: #fff;
}
.fv-glass::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background:
		radial-gradient(38vmax 38vmax at 8% 18%, rgba(216, 40, 56, 0.26), transparent 62%),
		radial-gradient(42vmax 42vmax at 95% 40%, rgba(255, 201, 51, 0.16), transparent 62%),
		radial-gradient(46vmax 46vmax at 28% 92%, rgba(70, 170, 255, 0.2), transparent 62%),
		linear-gradient(180deg, var(--night) 0%, var(--night-2) 50%, var(--night) 100%);
}
.fv-glass main, .fv-glass #content { background: transparent; }

/* ---- Type on dark ---- */
.fv-glass .section { background: transparent; color: #fff; position: relative; }
.fv-glass .section-title, .fv-glass .section h2, .fv-glass .section h3 { color: #fff; }
.fv-glass .section-title {
	font-size: clamp(2rem, 5vw, 3.4rem);
	line-height: 1.05;
	letter-spacing: -0.01em;
}
.fv-glass .section p, .fv-glass .section-lede, .fv-glass .section li { color: var(--muted); }
.fv-glass .section strong { color: #fff; }
.fv-glass .kicker {
	color: var(--pop);
	font-style: italic;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 800;
	font-size: 0.85rem;
}
.fv-glass .hl, .fv-glass .hero-hl, .footer-cta .hl { color: var(--accent); }
.fv-glass .section a:not(.btn) { color: var(--accent); }
.fv-glass .text-link { color: var(--accent); }

/* Alternate bands: a faint frosted stripe so sections read as layers */
.fv-glass .why, .fv-glass .steps, .fv-glass .events, .fv-glass .reviews, .fv-glass .fit {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.015));
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.fv-glass .section-dark { background: rgba(5, 6, 22, 0.45); }

/* ---- Glass cards ---- */
.fv-glass :is(.why-list > li, .step-list > li, .event, .setup-col, .offer, .review, .area, .faq-item, .price-list > li, .product, .cat, .fit-form, .story-copy, .glass-card) {
	background: var(--glass);
	border: 1px solid var(--glass-line);
	border-radius: 22px;
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
	box-shadow: var(--glow);
	color: #fff;
}
.fv-glass :is(.why-list > li, .step-list > li, .event, .setup-col, .offer, .area, .faq-item, .story-copy) { padding: clamp(1.25rem, 3vw, 1.75rem); }
.fv-glass :is(.why-list > li, .step-list > li, .event, .cat, .product, .offer, .review, .area) {
	transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
.fv-glass :is(.why-list > li, .step-list > li, .event, .cat, .product, .offer, .review, .area):hover {
	transform: translateY(-4px);
	border-color: rgba(255, 201, 51, 0.45);
	background: var(--glass-2);
}
.fv-glass .cat, .fv-glass .product { overflow: hidden; }
.fv-glass .cat-title, .fv-glass .product h3, .fv-glass .product-price, .fv-glass .price-name { color: #fff; }
.fv-glass .price-amt, .fv-glass .product-price { color: var(--accent); }
.fv-glass .product-badge { background: var(--pop); color: #fff; }

/* Why: icon-style accent bar like Mulkey's icon tiles */
.fv-glass .why-list > li { position: relative; padding-left: clamp(1.25rem, 3vw, 1.75rem); }
.fv-glass .why-list > li h3::before {
	content: "";
	display: block;
	width: 42px;
	height: 42px;
	margin-bottom: 0.9rem;
	border-radius: 12px;
	background: linear-gradient(135deg, rgba(216, 40, 56, 0.9), rgba(255, 201, 51, 0.9));
	box-shadow: 0 8px 24px rgba(216, 40, 56, 0.35);
}

/* Steps: big numbers, 3-up */
.fv-glass .step-list > li { position: relative; overflow: hidden; }
.fv-glass .step-list > li::before {
	position: static;
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin-bottom: 1rem;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--pop), var(--accent));
	color: var(--ink);
	font-family: var(--display);
	font-weight: 700;
	box-shadow: 0 8px 24px rgba(216, 40, 56, 0.35);
}
.fv-glass .step-list > li::after {
	content: counter(step);
	position: absolute;
	right: 0.9rem;
	top: -0.6rem;
	font-family: var(--display);
	font-size: 6rem;
	font-weight: 700;
	line-height: 1;
	color: rgba(255, 255, 255, 0.07);
	pointer-events: none;
}

/* Events: tag chips */
.fv-glass .event-tags li {
	background: rgba(255, 201, 51, 0.12);
	border: 1px solid rgba(255, 201, 51, 0.35);
	color: #ffe7a3;
}
.fv-glass .event-tags-label { color: rgba(255, 255, 255, 0.55); }

/* Setup: yes / no columns (Mulkey's "What goes in / what doesn't") */
.fv-glass .setup-yes { border-top: 4px solid #5fe39a; }
.fv-glass .setup-no { border-top: 4px solid var(--pop); }
.fv-glass .setup-head { display: flex; align-items: center; gap: 0.6rem; }
.fv-glass .setup-yes .setup-head .icon { color: #5fe39a; }
.fv-glass .setup-no .setup-head .icon { color: var(--pop); }
.fv-glass .setup-col li { border-color: rgba(255, 255, 255, 0.1); }

/* Reviews: horizontal drag carousel */
.fv-glass .review-track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding: 0.5rem 0.25rem 1rem;
	cursor: grab;
}
.fv-glass .review-track::-webkit-scrollbar { display: none; }
.fv-glass .review-track.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.fv-glass .review { flex: 0 0 min(85%, 380px); scroll-snap-align: start; padding: 1.5rem; }
.fv-glass .review-stars, .fv-glass .review-stars .icon { color: var(--accent); fill: var(--accent); }
.track-nav { display: flex; gap: 0.6rem; justify-content: flex-end; margin-top: 0.5rem; }
.track-nav button {
	width: 46px; height: 46px; border-radius: 50%;
	border: 1px solid var(--glass-line, #dcdcec);
	background: var(--glass, #fff);
	color: inherit; font-size: 1.2rem; cursor: pointer;
}
.track-nav button:hover { background: var(--accent); color: var(--ink); border-color: var(--accent); }

/* FAQ */
.fv-glass .faq-item summary { color: #fff; cursor: pointer; }
.fv-glass .faq-item[open] { border-color: rgba(255, 201, 51, 0.45); }

/* Service area: map in a glass frame */
.fv-glass .areas iframe { border-radius: 22px; border: 1px solid var(--glass-line); filter: saturate(0.9) contrast(1.05); min-height: 380px; }
.fv-glass .area-towns li a { color: #fff; }

/* Fit tool */
.fv-glass .fit-form { padding: 1.5rem; }
.fv-glass .fit-form label { color: #fff; }
.fv-glass .fit-form :is(input, select) {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid var(--glass-line);
	color: #fff;
	border-radius: 12px;
}
.fv-glass .fit-form option { color: var(--ink); }
.fv-glass [data-fit-svg] { background: rgba(255, 255, 255, 0.04); border-radius: 18px; }

/* CTA band: glowing gradient panel */
.fv-glass .cta-band { background: transparent; padding: clamp(2.5rem, 6vw, 4rem) 0; }
.fv-glass .cta-inner {
	background: linear-gradient(120deg, rgba(216, 40, 56, 0.9), rgba(122, 76, 255, 0.85) 55%, rgba(42, 47, 122, 0.9));
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 28px;
	padding: clamp(1.75rem, 5vw, 3rem);
	box-shadow: 0 30px 80px rgba(216, 40, 56, 0.25);
	color: #fff;
}
.fv-glass .cta-inner .kicker { color: #fff; opacity: 0.85; }
.fv-glass .cta-title { color: #fff; }
.fv-glass .cta-inner .btn-ink { background: #fff; color: var(--ink); }
.fv-glass .cta-inner .btn-outline-ink { border-color: #fff; color: #fff; }

/* ---- Buttons ---- */
.btn-glass {
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	border: 1.5px solid rgba(255, 255, 255, 0.55);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
.btn-glass:hover { background: #fff; color: var(--ink); border-color: #fff; }
.fv-glass .btn-accent { box-shadow: 0 10px 30px rgba(255, 201, 51, 0.3); }

/* ---- Header: transparent over the hero, frosted on scroll ---- */
.fv-glass .topbar { background: rgba(8, 9, 28, 0.55); position: relative; z-index: 51; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.fv-glass .site-header { background: transparent; border-bottom: 1px solid transparent; box-shadow: none; transition: border-color 0.3s ease; }
.fv-glass .site-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(14, 16, 48, 0);
	transition: background 0.3s ease;
	-webkit-backdrop-filter: blur(0);
	backdrop-filter: blur(0);
}
.fv-glass.is-scrolled .site-header { border-bottom-color: rgba(255, 255, 255, 0.1); }
.fv-glass.is-scrolled .site-header::before {
	background: rgba(14, 16, 48, 0.72);
	-webkit-backdrop-filter: blur(16px) saturate(150%);
	backdrop-filter: blur(16px) saturate(150%);
}
@media (min-width: 961px) {
	.fv-glass .primary-nav .menu > li > a { color: #fff; }
	.fv-glass .primary-nav .menu > li > a:hover, .fv-glass .primary-nav .menu > .current-menu-item > a { color: var(--accent); }
}
.fv-glass .nav-toggle { color: #fff; border-color: rgba(255, 255, 255, 0.35); }
.fv-glass .nav-actions .btn-ghost { color: #fff; border-color: rgba(255, 255, 255, 0.5); }

/* ---- Hero: full-bleed video ---- */
.fv-glass .hero-video {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	margin-top: calc(-1 * var(--hdr-h, 0px));
	padding: calc(var(--hdr-h, 0px) + clamp(3rem, 9vw, 6rem)) 0 clamp(3rem, 7vw, 5rem);
	min-height: 100vh;
	min-height: 100svh;
	background: var(--night);
	color: #fff;
	text-align: center;
}
.hero-media { position: absolute; inset: 0; z-index: -1; }
.hero-bg { width: 100%; height: 100%; object-fit: cover; }
.hero-kenburns { animation: fvKenBurns 24s ease-in-out infinite alternate; transform-origin: 60% 40%; }
@keyframes fvKenBurns { from { transform: scale(1); } to { transform: scale(1.14) translate(-2%, 1%); } }
.hero-scrim {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(80% 60% at 50% 35%, rgba(14, 16, 48, 0.35), rgba(14, 16, 48, 0.8)),
		linear-gradient(180deg, rgba(14, 16, 48, 0.55) 0%, rgba(14, 16, 48, 0.35) 40%, var(--night) 100%);
}
.fv-glass .hero-inner { position: relative; max-width: 980px; }
.hero-kicker {
	display: inline-block;
	margin: 0 0 1rem;
	color: var(--accent);
	font-style: italic;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-size: 0.85rem;
}
.fv-glass .hero-title {
	color: #fff;
	font-size: clamp(2.6rem, 8vw, 5.6rem);
	line-height: 0.98;
	letter-spacing: -0.015em;
	margin: 0 auto 1.25rem;
	text-shadow: 0 6px 40px rgba(0, 0, 0, 0.35);
}
.hero-hl { display: block; }
.fv-glass .hero-text { color: rgba(255, 255, 255, 0.86); font-size: clamp(1.05rem, 2vw, 1.2rem); max-width: 640px; margin: 0 auto 1.75rem; }
.fv-glass .hero-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; justify-content: center; margin: 0 0 1.75rem; }
.hero-pills {
	list-style: none;
	padding: 0;
	margin: 0 auto 2.5rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
}
.hero-pills li {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.55rem 1rem 0.55rem 0.55rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.16);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	text-align: left;
	line-height: 1.15;
}
.hero-pills strong { display: block; color: #fff; font-size: 0.95rem; }
.hero-pills small { color: rgba(255, 255, 255, 0.65); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; }
.pill-ico {
	display: grid; place-items: center;
	width: 34px; height: 34px; border-radius: 50%;
	background: rgba(255, 201, 51, 0.18);
	color: var(--accent);
}
.pill-ico .icon { width: 18px; height: 18px; fill: currentColor; }
.hero-cards { display: grid; gap: 1rem; grid-template-columns: 1.3fr 1fr; text-align: left; }
@media (max-width: 800px) { .hero-cards { grid-template-columns: 1fr; } }
.fv-glass .glass-card { padding: 1.4rem; }
.tab-list { display: flex; gap: 0.25rem; border-bottom: 1px solid rgba(255, 255, 255, 0.12); margin-bottom: 1.1rem; }
.tab-list button {
	flex: 1;
	background: none;
	border: 0;
	border-bottom: 3px solid transparent;
	color: rgba(255, 255, 255, 0.6);
	font: 700 0.95rem/1.2 var(--display);
	padding: 0.7rem 0.4rem;
	cursor: pointer;
}
.tab-list button[aria-selected="true"] { color: #fff; border-bottom-color: var(--pop); }
.tab-price { font-family: var(--display); font-size: 2.2rem; font-weight: 700; color: var(--accent) !important; margin: 0 0 0.8rem; }
.tab-facts { list-style: none; padding: 0; margin: 0 0 1.1rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; }
.tab-facts li { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 14px; padding: 0.6rem; text-align: center; }
.tab-facts strong { display: block; color: #fff; font-size: 0.95rem; }
.tab-facts span { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; color: rgba(255, 255, 255, 0.6); }
.tab-cta { width: 100%; justify-content: center; }
.hero-review blockquote { margin: 0.5rem 0; }
.hero-review blockquote p { color: rgba(255, 255, 255, 0.88); font-style: italic; margin: 0; }
.hero-review figcaption { color: rgba(255, 255, 255, 0.55); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; }
.hero-review .review-stars { display: flex; gap: 2px; color: var(--accent); margin: 0; }
.hero-review .review-stars .icon { width: 18px; height: 18px; fill: currentColor; }

/* ---- ZIP check band (light, like Mulkey) ---- */
.fv-glass .zipcheck {
	background: #f7f6ff;
	color: var(--ink);
	text-align: center;
	border-top: 4px solid var(--pop);
}
.fv-glass .zipcheck .section-title { color: var(--ink); }
.fv-glass .zipcheck .section-lede { color: var(--steel); max-width: 620px; margin-inline: auto; }
.zip-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	max-width: 560px;
	margin: 1.75rem auto 0;
	box-shadow: 0 20px 50px rgba(42, 47, 122, 0.18);
	border-radius: 16px;
	overflow: hidden;
	background: #fff;
}
.zip-form input {
	flex: 1 1 220px;
	min-width: 0;
	border: 0;
	padding: 1.05rem 1.2rem;
	font-size: 1.1rem;
	color: var(--ink);
	background: #fff;
}
.zip-form input:focus { outline: 2px solid var(--pop); outline-offset: -2px; }
.zip-form .btn { border-radius: 0; flex: 0 0 auto; }
.zip-form .zip-result { flex: 1 0 100%; margin: 0; padding: 0; font-weight: 700; background: #fff; }
.zip-form .zip-result:not(:empty) { padding: 0.75rem 1rem; }
.zip-form .zip-result.is-ok { color: var(--grass-dark); }
.zip-form .zip-result.is-error, .zip-form .zip-result.is-no { color: #c41d5a; }
@media (max-width: 520px) { .zip-form .btn { flex: 1 0 100%; } }
.zip-trust {
	list-style: none; padding: 0; margin: 2rem auto 0;
	display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem 1.75rem;
}
.fv-glass .zip-trust li { display: flex; align-items: center; gap: 0.45rem; color: var(--steel); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.06em; }
.fv-glass .zip-trust strong { color: var(--ink); }
.fv-glass .zip-trust small { display: none; }
.fv-glass .zip-trust .icon { color: var(--pop); width: 18px; height: 18px; fill: currentColor; }

/* ---- Slide-out drawer (all pages, mobile) ---- */
.nav-close, .drawer-actions { display: none; }
@media (max-width: 960px) {
	.primary-nav {
		display: flex;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: auto;
		width: min(86vw, 360px);
		height: 100vh;
		height: 100dvh;
		max-height: none;
		padding: 1.25rem 1.5rem 2rem;
		gap: 1.25rem;
		background: rgba(14, 16, 48, 0.94);
		-webkit-backdrop-filter: blur(18px);
		backdrop-filter: blur(18px);
		border-left: 1px solid rgba(255, 255, 255, 0.12);
		border-bottom: 0;
		box-shadow: -20px 0 60px rgba(0, 0, 0, 0.4);
		transform: translateX(105%);
		visibility: hidden;
		transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0s linear 0.35s;
		z-index: 2;
		overflow-y: auto;
	}
	.primary-nav.is-open { transform: none; visibility: visible; transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1); }
	.admin-bar .primary-nav { top: 46px; height: calc(100dvh - 46px); }
	.primary-nav .menu a { color: #fff; font-family: var(--display); font-size: 1.3rem; font-weight: 600; }
	.primary-nav .menu > li { border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
	.primary-nav .sub-menu a, .primary-nav .children a { font-size: 1.05rem; color: rgba(255, 255, 255, 0.75); }
	.nav-close {
		display: inline-flex;
		align-self: flex-end;
		align-items: center;
		gap: 0.35rem;
		background: none;
		border: 1px solid rgba(255, 255, 255, 0.25);
		color: #fff;
		border-radius: 999px;
		padding: 0.35rem 0.9rem;
		font: 700 0.8rem/1 var(--body);
		letter-spacing: 0.1em;
		text-transform: uppercase;
		cursor: pointer;
	}
	.nav-close span { font-size: 1.3rem; line-height: 0.6; }
	.drawer-actions, .primary-nav .nav-actions { display: grid; gap: 0.6rem; margin-top: auto; }
	.primary-nav .nav-actions .btn { width: 100%; justify-content: center; }
	.primary-nav .nav-actions .btn-ghost { color: #fff; border-color: rgba(255, 255, 255, 0.5); }
	.drawer-actions .btn { width: 100%; justify-content: center; }
	.drawer-actions .btn-ghost { color: #fff; border-color: rgba(255, 255, 255, 0.5); }
	.nav-overlay {
		position: fixed;
		inset: 0;
		z-index: 1;
		background: rgba(0, 0, 0, 0.55);
		-webkit-backdrop-filter: blur(6px);
		backdrop-filter: blur(6px);
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.3s ease;
	}
	body.nav-open .nav-overlay { opacity: 1; pointer-events: auto; }
	body.nav-open { overflow: hidden; }
	body.nav-open .site-header { z-index: 100000; }
}

/* ---- Footer CTA (all pages) ---- */
.footer-cta {
	position: relative;
	overflow: hidden;
	text-align: center;
	color: #fff;
	padding: clamp(3.5rem, 8vw, 6rem) 0;
	background:
		radial-gradient(60% 120% at 15% 0%, rgba(216, 40, 56, 0.45), transparent 60%),
		radial-gradient(60% 120% at 90% 100%, rgba(255, 201, 51, 0.3), transparent 60%),
		linear-gradient(135deg, #1b1d5a, #0e1030);
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.footer-cta .kicker { color: var(--accent); font-style: italic; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 800; font-size: 0.85rem; }
.footer-cta-title { color: #fff; font-size: clamp(2.2rem, 6vw, 4rem); line-height: 1.02; margin: 0.25rem 0 1rem; }
.footer-cta-text { color: rgba(255, 255, 255, 0.8); max-width: 560px; margin: 0 auto 1.75rem; }
.footer-cta-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.8rem; margin: 0; }
.fv-glass .site-footer { background: #080920; color: rgba(255, 255, 255, 0.72); border-top: 1px solid rgba(255, 255, 255, 0.08); }
.fv-glass .site-footer :is(.footer-title, h2, h3, strong) { color: #fff; }
.fv-glass .site-footer a { color: rgba(255, 255, 255, 0.85); }
.fv-glass .site-footer a:hover { color: var(--accent); }

/* ---- ZIP modal ---- */
.zip-modal { position: fixed; inset: 0; z-index: 100001; display: grid; place-items: center; padding: 1rem; }
.zip-modal[hidden] { display: none; }
.zip-modal-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.65); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.zip-modal-card {
	position: relative;
	width: min(100%, 480px);
	background: rgba(22, 26, 77, 0.92);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 26px;
	padding: 2rem 1.5rem 1.5rem;
	color: #fff;
	text-align: center;
	box-shadow: 0 40px 100px rgba(0, 0, 0, 0.5);
	animation: fvPop 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes fvPop { from { opacity: 0; transform: translateY(16px) scale(0.97); } to { opacity: 1; transform: none; } }
.zip-modal-card h2 { color: #fff; font-size: 2rem; margin: 0.2rem 0 0.5rem; }
.zip-modal-card p { color: rgba(255, 255, 255, 0.78); }
.zip-modal-card .kicker { color: var(--pop); font-style: italic; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 800; font-size: 0.8rem; margin: 0; }
.zip-modal-card .zip-form { margin-top: 1.25rem; }
.zip-modal-x { position: absolute; top: 0.8rem; right: 0.8rem; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.2); background: none; color: #fff; cursor: pointer; display: grid; place-items: center; }
.zip-modal-x .icon { width: 16px; height: 16px; fill: currentColor; }
.zip-modal-skip { display: inline-block; margin-top: 1rem; color: rgba(255, 255, 255, 0.6); font-size: 0.85rem; }
body.modal-open { overflow: hidden; }

/* ---- Mobile quick bar: glass ---- */
.fv-glass .mobile-bar {
	background: rgba(14, 16, 48, 0.78);
	-webkit-backdrop-filter: blur(16px) saturate(150%);
	backdrop-filter: blur(16px) saturate(150%);
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.fv-glass .mobile-bar a { color: #fff; }
.fv-glass .mobile-bar .mobile-bar-book { background: var(--accent); color: var(--ink); }

/* ---- Scroll reveal ---- */
.fv-reveal .reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1); }
.fv-reveal .reveal.is-in { opacity: 1; transform: none; }
.fv-glass .hero .reveal { animation: fvRise 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.fv-glass .hero .reveal:nth-child(2) { animation-delay: 0.08s; }
.fv-glass .hero .reveal:nth-child(3) { animation-delay: 0.16s; }
.fv-glass .hero .reveal:nth-child(4) { animation-delay: 0.24s; }
.fv-glass .hero .reveal:nth-child(5) { animation-delay: 0.32s; }
.fv-glass .hero .reveal:nth-child(6) { animation-delay: 0.4s; }
@keyframes fvRise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.fv-reveal .hero .reveal { opacity: 1; transform: none; transition: none; }
@media (prefers-reduced-motion: reduce) {
	.hero-kenburns { animation: none; }
	.fv-reveal .reveal { opacity: 1; transform: none; }
}

/* ---- Polish ---- */
/* Logo: larger, no plate. A thin light outline keeps the dark "VENTURES" readable on the night background. */
.site-header .brand { flex: 0 0 auto; }
.site-header .brand img, .site-header .custom-logo { height: 88px; max-height: none; width: auto; max-width: none; }
.fv-glass .brand img, .fv-glass .custom-logo {
	filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.95)) drop-shadow(0 0 1px rgba(255, 255, 255, 0.95)) drop-shadow(0 4px 14px rgba(0, 0, 0, 0.35));
}
@media (max-width: 960px) {
	.site-header .brand img, .site-header .custom-logo { height: 64px; }
}
.fv-glass .zipcheck .hl { color: var(--pop); }
.fv-glass .zip-trust li { background: none; border: 0; box-shadow: none; padding: 0; }
.fv-glass .price-list a { background: transparent; color: #fff; }
.fv-glass .setup-col li span { color: var(--muted); }
.fv-glass .product-scroll, .fv-glass .product-grid { scrollbar-color: rgba(255, 201, 51, 0.6) rgba(255, 255, 255, 0.08); }
.fv-glass .story-grid.no-image { grid-template-columns: 1.15fr 0.85fr; gap: clamp(1rem, 3vw, 2rem); align-items: stretch; }
.fv-glass .story-grid.no-image::after {
	content: "";
	min-height: 320px;
	border-radius: 22px;
	border: 1px solid var(--glass-line);
	background: url(http://funventures.local/wp-content/uploads/2026/10/funventures-lifestyle-balloons.jpg) center / cover no-repeat;
	box-shadow: var(--glow);
}
@media (max-width: 800px) {
	.fv-glass .story-grid.no-image { grid-template-columns: 1fr; }
	.fv-glass .story-grid.no-image::after { min-height: 220px; }
}


/* ---- HEADING CASE: capitalize the first letter of every word ---- */
h1, h2, h3, h4, h5, h6,
.section-title, .hero-title, .cta-title, .footer-cta-title, .cat-title, .event-title, .area-county, .setup-head, .footer-title, .faq-item summary {
	text-transform: capitalize;
}


/* ---- Real-event photo strips ---- */
.photo-strip { padding-block: clamp(1.5rem, 4vw, 2.5rem); }
.photo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(0.6rem, 1.5vw, 1rem); }
.photo-grid .photo { margin: 0; overflow: hidden; border-radius: 22px; aspect-ratio: 4 / 3; }
.photo-grid .photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.photo-grid .photo:hover img { transform: scale(1.05); }
.fv-glass .photo-grid .photo { border: 1px solid var(--glass-line); box-shadow: var(--glow); }
.photo-link { text-align: center; margin: 1.25rem 0 0; }
@media (max-width: 700px) {
	.photo-grid { grid-template-columns: repeat(3, 78%); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
	.photo-grid::-webkit-scrollbar { display: none; }
	.photo-grid .photo { scroll-snap-align: start; }
}


/* ---- NAV TYPE: small, tracked, uppercase Nunito (matches the Vercel build) ---- */
.primary-nav .menu a,
.nav-actions .btn,
.topbar-book {
	font-family: "Nunito", var(--body);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.nav-actions .btn { font-weight: 700; letter-spacing: 0.08em; padding: 0.8rem 1.4rem; }
.topbar-phone { font-family: "Nunito", var(--body); font-weight: 800; }
@media (min-width: 961px) {
	.primary-nav .menu { gap: 0.25rem 1.25rem; }
	.primary-nav .menu > li > a { padding-block: 0.4rem; }
	.primary-nav .sub-menu a, .primary-nav .children a { font-size: 0.7rem; letter-spacing: 0.12em; }
}
@media (max-width: 960px) {
	.primary-nav .menu a { font-family: "Nunito", var(--body); font-size: 0.85rem; font-weight: 800; letter-spacing: 0.14em; }
	.primary-nav .sub-menu a, .primary-nav .children a { font-size: 0.78rem; }
}

/* Keep the bigger logo + nav on one line at laptop widths */
@media (min-width: 961px) and (max-width: 1240px) {
	.primary-nav .menu { gap: 0.25rem 0.8rem; }
	.primary-nav .menu a { letter-spacing: 0.1em; }
	.site-header .brand img, .site-header .custom-logo { height: 74px; }
	.nav-actions .btn { padding: 0.75rem 1.05rem; }
}


/* ---- CONFETTI DOTS + RAINBOW BAR (from the Vercel build) ---- */
:root {
	--fv-red: #c62828;
	--fv-sun: #ffb703;
	--fv-sky: #2eb5e8;
	--fv-teal: #14c4b0;
	--fv-dots:
		radial-gradient(circle at 4px 4px, var(--fv-red) 3.6px, transparent 4px) 0 0 / 12px 8px no-repeat,
		radial-gradient(circle at 4px 4px, var(--fv-sun) 3.6px, transparent 4px) 12px 0 / 12px 8px no-repeat,
		radial-gradient(circle at 4px 4px, var(--fv-sky) 3.6px, transparent 4px) 24px 0 / 12px 8px no-repeat,
		radial-gradient(circle at 4px 4px, var(--fv-teal) 3.6px, transparent 4px) 36px 0 / 12px 8px no-repeat;
	--fv-rainbow: linear-gradient(90deg, #c62828 0%, #ff7a59 25%, #ffb703 50%, #14c4b0 75%, #2eb5e8 100%);
}
.kicker, .hero-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	font-family: "Nunito", var(--body);
	font-style: normal !important;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}
.kicker::before, .hero-kicker::before {
	content: "";
	flex: 0 0 44px;
	width: 44px;
	height: 8px;
	background: var(--fv-dots);
}
.fv-glass .hero-kicker { color: rgba(255, 255, 255, 0.9); }
.fv-glass .kicker { color: #ff8a80; }
.fv-glass .zipcheck .kicker { color: var(--fv-red); }
.fv-glass .hero-title::after, .footer-cta-title::after {
	content: "";
	display: block;
	width: 80px;
	height: 8px;
	margin: 1.1rem auto 0;
	border-radius: 999px;
	background: var(--fv-rainbow);
}
.fv-glass .cta-inner .kicker { color: #fff; }


/* ---- HERO SPLIT: copy left, two glass cards right, all over the video (Mulkey layout) ---- */
.fv-glass .hero-scrim {
	background:
		linear-gradient(100deg, rgba(14, 16, 48, 0.9) 0%, rgba(14, 16, 48, 0.62) 45%, rgba(14, 16, 48, 0.35) 75%, rgba(14, 16, 48, 0.5) 100%),
		linear-gradient(180deg, rgba(14, 16, 48, 0.35) 0%, transparent 30%, transparent 75%, var(--night) 100%);
}
.fv-glass .hero-video video.hero-bg { filter: saturate(1.1); }
@media (min-width: 1024px) {
	.fv-glass .hero-video {
		display: flex;
		align-items: center;
		text-align: left;
		padding-bottom: clamp(3rem, 6vw, 4.5rem);
	}
	.fv-glass .hero-inner {
		max-width: var(--wrap);
		width: 100%;
		display: grid;
		grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
		column-gap: clamp(2rem, 4vw, 3.5rem);
		align-items: center;
	}
	.fv-glass .hero-inner > :not(.hero-cards) { grid-column: 1; }
	.fv-glass .hero-cards {
		grid-column: 2;
		grid-row: 1 / span 5;
		grid-template-columns: 1fr;
		align-self: center;
	}
	.fv-glass .hero-kicker { justify-self: start; }
	.fv-glass .hero-title { font-size: clamp(3rem, 5.4vw, 4.9rem); margin: 0 0 1.25rem; }
	.fv-glass .hero-title::after { margin-left: 0; }
	.fv-glass .hero-text { margin: 0 0 1.75rem; }
	.fv-glass .hero-actions, .fv-glass .hero-pills { justify-content: flex-start; }
	.fv-glass .hero-pills { margin: 0; }
	.fv-glass .hero-cards .glass-card {
		background: rgba(14, 16, 48, 0.42);
		border-color: rgba(255, 255, 255, 0.16);
	}
}


/* ---- CATEGORY NAME CASE: capitalize every word in category names ---- */
.tab-list button, .tab-cta, .price-name, .event-tags li, .cat-title, .area-county, .area-towns li {
	text-transform: capitalize;
}


/* ---- RETRO TYPE: Righteous headings (single weight, so no faux bold/italic) ---- */
h1, h2, h3, h4, .section-title, .hero-title, .cta-title, .footer-cta-title, .cat-title, .event-title, .setup-head, .area-county, .tab-price, .price-amt, .product-price, .brand-name, .faq-item summary, .zip-modal-card h2 { font-weight: 400; font-style: normal; letter-spacing: 0.005em; }
.fv-glass .hero-title { line-height: 1.06; }
.hero-hl, .fv-glass .section-title .hl, .footer-cta .hl { font-style: normal; font-weight: 400; }
.tab-list button { font-family: "Nunito", var(--body); font-weight: 800; font-size: 0.8rem; letter-spacing: 0.06em; }
.fv-glass .step-list > li::before { font-family: var(--display); font-weight: 400; font-size: 1.3rem; }
.btn { font-family: "Nunito", var(--body); font-weight: 800; letter-spacing: 0.04em; }

/* Steps: pin the faint watermark number to the top-left of every card, just right of the badge (overrides the old dashed connector line) */
.fv-glass .step-list > li::after {
	left: 4rem !important;
	right: auto;
	top: -0.6rem;
	width: auto;
	height: auto;
	background: none !important;
	display: block;
}


/* ==========================================================
   BRIGHT THEME (replaces the dark navy look)
   Warm white canvas, saturated party-color bands, white cards.
   Colors come from the confetti dots: red, sun, sky, teal + hot pink.
   ========================================================== */
body.fv-glass {
	--b-ink: #1a2230;
	--b-text: #4a5163;
	--b-cream: #fffaf2;
	--b-red: #d82838;
	--b-pink: #d82838;
	--b-sun: #ffb703;
	--b-sky: #1ea7e6;
	--b-teal: #0fb9a5;
	--b-card-shadow: 0 14px 40px rgba(26, 34, 48, 0.08);
	background: var(--b-cream);
	color: var(--b-ink);
}
body.fv-glass::before { display: none; }

/* Text on the light canvas */
body.fv-glass .section { color: var(--b-ink); }
body.fv-glass .section-title, body.fv-glass .section h2, body.fv-glass .section h3 { color: var(--b-ink); }
body.fv-glass .section p, body.fv-glass .section-lede, body.fv-glass .section li { color: var(--b-text); }
body.fv-glass .section strong { color: var(--b-ink); }
body.fv-glass .kicker { color: var(--b-red); }
body.fv-glass .section .hl { color: var(--b-pink); }
body.fv-glass .section a:not(.btn), body.fv-glass .text-link { color: var(--b-red); }

/* Plain bands: no stripes, just the warm white */
body.fv-glass .why, body.fv-glass .steps, body.fv-glass .events, body.fv-glass .reviews, body.fv-glass .fit, body.fv-glass .section-dark {
	border: 0;
	background: transparent;
}

/* White cards everywhere */
body.fv-glass :is(.why-list > li, .step-list > li, .event, .setup-col, .offer, .review, .area, .faq-item, .price-list > li, .product, .cat, .fit-form, .story-copy) {
	background: #fff;
	border: 1px solid rgba(26, 34, 48, 0.07);
	box-shadow: var(--b-card-shadow);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	color: var(--b-ink);
}
body.fv-glass :is(.why-list > li, .step-list > li, .event, .cat, .product, .offer, .review, .area):hover {
	background: #fff;
	border-color: rgba(26, 34, 48, 0.07);
	box-shadow: 0 22px 50px rgba(26, 34, 48, 0.14);
}
/* Confetti-colored top edges, cycling red / sun / sky / teal */
body.fv-glass :is(.why-list, .step-list, .event-grid, .offer-grid, .area-list, .price-list) > :nth-child(4n+1) { border-top: 5px solid var(--b-red); }
body.fv-glass :is(.why-list, .step-list, .event-grid, .offer-grid, .area-list, .price-list) > :nth-child(4n+2) { border-top: 5px solid var(--b-sun); }
body.fv-glass :is(.why-list, .step-list, .event-grid, .offer-grid, .area-list, .price-list) > :nth-child(4n+3) { border-top: 5px solid var(--b-sky); }
body.fv-glass :is(.why-list, .step-list, .event-grid, .offer-grid, .area-list, .price-list) > :nth-child(4n+4) { border-top: 5px solid var(--b-teal); }
body.fv-glass :is(.cat-title, .product h3, .price-name, .area-towns li a, .faq-item summary, .fit-form label) { color: var(--b-ink); }
body.fv-glass :is(.price-amt, .product-price) { color: var(--b-red); }
body.fv-glass .price-list a { color: var(--b-ink); }
body.fv-glass .step-list > li::after { color: rgba(26, 34, 48, 0.06); }
body.fv-glass .event-tags li { background: #fff4d1; border-color: var(--b-sun); color: var(--b-ink); }
body.fv-glass .event-tags-label { color: var(--b-text); }
body.fv-glass .setup-yes { border-top: 5px solid var(--b-teal); }
body.fv-glass .setup-no { border-top: 5px solid var(--b-pink); }
body.fv-glass .setup-col li span { color: var(--b-text); }
body.fv-glass .setup-col li { border-color: rgba(26, 34, 48, 0.08); }
body.fv-glass .review-stars, body.fv-glass .review-stars .icon { color: var(--b-sun); fill: var(--b-sun); }
body.fv-glass .faq-item[open] { border-color: var(--b-sun); }
body.fv-glass .fit-form :is(input, select) { background: #fff; border: 1px solid rgba(26, 34, 48, 0.18); color: var(--b-ink); }
body.fv-glass [data-fit-svg] { background: #f3f7fb; }
body.fv-glass .areas iframe { border-color: rgba(26, 34, 48, 0.1); }
body.fv-glass .track-nav button { background: #fff; border-color: rgba(26, 34, 48, 0.15); color: var(--b-ink); }
body.fv-glass .track-nav button:hover { background: var(--b-sun); border-color: var(--b-sun); }

/* Saturated color bands with white text: Why (sky), Events (sun), Reviews (teal) */
body.fv-glass .why { background: var(--b-sky); }
body.fv-glass .events { background: var(--b-sun); }
body.fv-glass .reviews { background: var(--b-teal); }
body.fv-glass :is(.why, .reviews) :is(.section-title, .why-head h2, .section-head h2, .section-lede, .why-head p, .kicker, .text-link) { color: #fff; }
body.fv-glass .why .why-head strong, body.fv-glass .why .why-head span { color: #fff; }
body.fv-glass .events :is(.section-title, .section-head h2) { color: var(--b-ink); }
body.fv-glass :is(.why, .events, .reviews) :is(.why-list > li, .event, .review) { border-top: 0; }
body.fv-glass :is(.why, .events, .reviews) :is(.why-list > li, .event, .review) :is(h3, strong) { color: var(--b-ink); }
body.fv-glass :is(.why, .events, .reviews) :is(.why-list > li, .event, .review) p { color: var(--b-text); }
body.fv-glass .reviews .track-nav button { border-color: #fff; }

/* CTA band: hot, sunny gradient */
body.fv-glass .cta-inner {
	background: linear-gradient(115deg, var(--b-pink) 0%, #ff7a59 50%, var(--b-sun) 100%);
	border: 0;
	box-shadow: 0 24px 60px rgba(216, 40, 56, 0.3);
}
body.fv-glass .cta-inner :is(p, .cta-title) { color: #fff; }

/* ZIP band stays white, with a rainbow top edge */
body.fv-glass .zipcheck { background: #fff; border-top: 0; box-shadow: inset 0 5px 0 0 var(--b-red); }
body.fv-glass .zipcheck { background-image: var(--fv-rainbow); background-size: 100% 5px; background-repeat: no-repeat; background-color: #fff; box-shadow: none; }

/* Hero: lighter, neutral tint over the video (no navy) */
body.fv-glass .hero-video { background: #222; }
body.fv-glass .hero-scrim {
	background:
		linear-gradient(100deg, rgba(20, 20, 24, 0.7) 0%, rgba(20, 20, 24, 0.42) 45%, rgba(20, 20, 24, 0.12) 80%, rgba(20, 20, 24, 0.2) 100%),
		linear-gradient(180deg, rgba(20, 20, 24, 0.3) 0%, transparent 25%);
}
body.fv-glass .hero-cards .glass-card { background: rgba(255, 255, 255, 0.16); border-color: rgba(255, 255, 255, 0.3); }

/* Header: red top bar; white frosted bar once you scroll */
body.fv-glass .topbar { background: var(--b-red); border-bottom: 0; }
body.fv-glass .topbar, body.fv-glass .topbar a, body.fv-glass .topbar-meta { color: #fff; }
body.fv-glass .topbar-book { color: #ffe08a; }
body.fv-glass.is-scrolled .site-header::before { background: rgba(255, 255, 255, 0.9); }
body.fv-glass.is-scrolled .site-header { border-bottom-color: rgba(26, 34, 48, 0.08); box-shadow: 0 6px 24px rgba(26, 34, 48, 0.08); }
@media (min-width: 961px) {
	body.fv-glass.is-scrolled .primary-nav .menu > li > a { color: var(--b-ink); }
	body.fv-glass.is-scrolled .primary-nav .menu > li > a:hover, body.fv-glass.is-scrolled .primary-nav .menu > .current-menu-item > a { color: var(--b-red); }
}
body.fv-glass.is-scrolled .nav-toggle { color: var(--b-ink); border-color: rgba(26, 34, 48, 0.25); }

/* Drawer (all pages): white panel */
@media (max-width: 960px) {
	.primary-nav { background: rgba(255, 255, 255, 0.97); border-left: 0; }
	.primary-nav .menu a { color: #1a2230; }
	.primary-nav .menu > li { border-bottom-color: rgba(26, 34, 48, 0.08); }
	.primary-nav .sub-menu a, .primary-nav .children a { color: #4a5163; }
	.nav-close { color: #1a2230; border-color: rgba(26, 34, 48, 0.2); }
	.drawer-actions .btn-ghost, .primary-nav .nav-actions .btn-ghost { color: #1a2230; border-color: rgba(26, 34, 48, 0.3); }
}

/* Footer CTA + footer: bright, not navy */
.footer-cta { background: linear-gradient(120deg, #1ea7e6 0%, #0fb9a5 100%); border-top: 0; }
.footer-cta .kicker { color: #fff; }
.footer-cta .hl { color: #ffe08a; }
body.fv-glass .site-footer { background: #fff; color: #4a5163; border-top: 5px solid transparent; border-image: linear-gradient(90deg, #c62828, #ff7a59, #ffb703, #14c4b0, #2eb5e8) 1; }
body.fv-glass .site-footer :is(.footer-title, h2, h3, strong) { color: #1a2230; }
body.fv-glass .site-footer a { color: #1a2230; }
body.fv-glass .site-footer a:hover { color: #d82838; }

/* ZIP modal: white card */
.zip-modal-card { background: #fff; color: #1a2230; border-color: rgba(26, 34, 48, 0.08); }
.zip-modal-card h2 { color: #1a2230; }
.zip-modal-card p { color: #4a5163; }
.zip-modal-card .kicker { color: #d82838; }
.zip-modal-x { color: #1a2230; border-color: rgba(26, 34, 48, 0.2); }
.zip-modal-skip { color: #4a5163; }
.zip-modal-card .zip-form { box-shadow: 0 10px 30px rgba(26, 34, 48, 0.12); border: 1px solid rgba(26, 34, 48, 0.1); }

/* Mobile quick bar: white */
body.fv-glass .mobile-bar { background: rgba(255, 255, 255, 0.92); border-top: 1px solid rgba(26, 34, 48, 0.08); }
body.fv-glass .mobile-bar a { color: #1a2230; }
body.fv-glass .mobile-bar .mobile-bar-book { background: #ffb703; color: #1a2230; }

/* Photo strips + story image on light */
body.fv-glass .photo-grid .photo { border: 0; box-shadow: var(--b-card-shadow); }
body.fv-glass .story-grid.no-image::after { border: 0; box-shadow: var(--b-card-shadow); }

body.fv-glass .footer-cta .kicker, body.fv-glass .cta-inner .kicker { color: #fff; }
body.fv-glass .hero-cards .glass-card { background: rgba(20, 20, 24, 0.5); border-color: rgba(255, 255, 255, 0.22); }


/* ==========================================================
   WHY: BUBBLES (Vercel-style) — cream band, floating see-through
   bubbles and rings behind, color-tinted cards with a corner dot.
   ========================================================== */
body.fv-glass .why {
	background: #ffe9d6;
	overflow: hidden;
	isolation: isolate;
}
body.fv-glass .why::before,
body.fv-glass .why::after {
	content: "";
	position: absolute;
	inset: -10%;
	z-index: -1;
	pointer-events: none;
	background-repeat: no-repeat;
}
/* Soft filled bubbles */
body.fv-glass .why::before {
	background-image:
		radial-gradient(circle, rgba(255, 196, 64, 0.35) 0 60px, transparent 61px),
		radial-gradient(circle, rgba(120, 200, 160, 0.28) 0 85px, transparent 86px),
		radial-gradient(circle, rgba(255, 196, 64, 0.3) 0 48px, transparent 49px),
		radial-gradient(circle, rgba(120, 200, 160, 0.25) 0 90px, transparent 91px),
		radial-gradient(circle, rgba(46, 181, 232, 0.18) 0 70px, transparent 71px);
	background-size: 122px 122px, 172px 172px, 98px 98px, 182px 182px, 142px 142px;
	background-position: 6% 14%, 88% 26%, 80% 88%, 34% 104%, 52% 4%;
	filter: blur(1px);
	animation: fvFloatA 14s ease-in-out infinite alternate;
}
/* Hollow rings */
body.fv-glass .why::after {
	background-image:
		radial-gradient(circle, transparent 0 20px, rgba(120, 170, 170, 0.35) 21px 29px, transparent 30px),
		radial-gradient(circle, transparent 0 20px, rgba(120, 170, 170, 0.3) 21px 29px, transparent 30px),
		radial-gradient(circle, transparent 0 22px, rgba(160, 200, 120, 0.35) 23px 32px, transparent 33px),
		radial-gradient(circle, transparent 0 16px, rgba(216, 40, 56, 0.2) 17px 23px, transparent 24px);
	background-size: 62px 62px, 62px 62px, 68px 68px, 50px 50px;
	background-position: 48% 10%, 58% 46%, 70% 70%, 14% 72%;
	animation: fvFloatB 11s ease-in-out infinite alternate;
}
@keyframes fvFloatA { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(1.5%, -3%, 0); } }
@keyframes fvFloatB { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-2%, 2.5%, 0); } }
@media (prefers-reduced-motion: reduce) { body.fv-glass .why::before, body.fv-glass .why::after { animation: none; } }

/* Heading on top, cards in a 2-up grid below */
body.fv-glass .why .why-grid { display: block; }
body.fv-glass .why .why-head { margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
body.fv-glass .why :is(.section-title, .why-head h2) { color: var(--b-ink); }
body.fv-glass .why .kicker { color: var(--b-red); }
body.fv-glass .why .why-head :is(p, span, strong) { color: var(--b-text); }
body.fv-glass .why .why-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	max-width: 1100px;
}
@media (max-width: 700px) { body.fv-glass .why .why-list { grid-template-columns: 1fr; } }

/* Tinted cards with a darker corner dot */
body.fv-glass .why .why-list > li {
	position: relative;
	overflow: hidden;
	border: 0;
	border-radius: 24px;
	box-shadow: none;
	padding: clamp(1.5rem, 3vw, 2rem) clamp(1.5rem, 3vw, 2.25rem);
	--tint: #ffbba1;
	--dot: #ff9478;
	background: var(--tint);
}
body.fv-glass .why .why-list > li:nth-child(4n+2) { --tint: #acd6df; --dot: #5fc0e6; }
body.fv-glass .why .why-list > li:nth-child(4n+3) { --tint: #ffd06e; --dot: #ffbe2a; }
body.fv-glass .why .why-list > li:nth-child(4n+4) { --tint: #a3dcc6; --dot: #4fcfbc; }
body.fv-glass .why .why-list > li::after {
	content: "";
	position: absolute;
	top: -40px;
	right: -40px;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: var(--dot);
	transition: transform 0.4s ease;
}
body.fv-glass .why .why-list > li:hover { background: var(--tint); transform: translateY(-4px); box-shadow: 0 18px 40px rgba(26, 34, 48, 0.1); }
body.fv-glass .why .why-list > li:hover::after { transform: scale(1.12); }
body.fv-glass .why .why-list > li h3 { position: relative; z-index: 1; color: var(--b-ink); margin-top: 0.25rem; padding-right: 3rem; }
body.fv-glass .why .why-list > li h3::before { display: none; }
body.fv-glass .why .why-list > li p { position: relative; z-index: 1; color: #2d3444; }


/* ---- LINK CASE: capitalize every word in text links ---- */
.text-link, .photo-link a { text-transform: capitalize; }


/* ==========================================================
   ELEGANT PANELS — the big color blocks become rounded, inset
   panels with a tone-on-tone gradient, a fine confetti-dot
   texture, a hairline inner border, and slow-floating
   see-through bubbles and rings.
   ========================================================== */
body.fv-glass {
	--fx-dots: radial-gradient(rgba(255, 255, 255, 0.28) 1.1px, transparent 1.6px) 0 0 / 20px 20px;
	--fx-bubbles:
		radial-gradient(circle, rgba(255, 255, 255, 0.22) 0 70px, transparent 71px) 92% 8% / 142px 142px no-repeat,
		radial-gradient(circle, rgba(255, 255, 255, 0.16) 0 110px, transparent 111px) 4% 108% / 222px 222px no-repeat,
		radial-gradient(circle, rgba(255, 255, 255, 0.18) 0 38px, transparent 39px) 62% 96% / 78px 78px no-repeat,
		radial-gradient(circle, rgba(255, 255, 255, 0.14) 0 26px, transparent 27px) 30% 6% / 54px 54px no-repeat;
	--fx-rings:
		radial-gradient(circle, transparent 0 22px, rgba(255, 255, 255, 0.5) 23px 26px, transparent 27px) 78% 70% / 56px 56px no-repeat,
		radial-gradient(circle, transparent 0 34px, rgba(255, 255, 255, 0.35) 35px 38px, transparent 39px) 12% 22% / 80px 80px no-repeat,
		radial-gradient(circle, transparent 0 14px, rgba(255, 255, 255, 0.55) 15px 17px, transparent 18px) 48% 12% / 36px 36px no-repeat;
}

/* Section becomes a transparent frame; the wrap becomes the panel */
body.fv-glass :is(.events, .reviews) { background: transparent; overflow: visible; }
body.fv-glass :is(.events, .reviews) > .wrap {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	width: calc(100% - 2 * var(--gutter));
	max-width: calc(var(--wrap) + 4rem);
	margin-inline: auto;
	padding: clamp(2.25rem, 5vw, 4.25rem) clamp(1.25rem, 4vw, 3.75rem);
	border-radius: clamp(24px, 4vw, 40px);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4), 0 30px 70px -30px var(--panel-shadow, rgba(0, 0, 0, 0.25));
}
body.fv-glass .events > .wrap {
	background: linear-gradient(140deg, #ffd35c 0%, #ffbe2e 45%, #ffa726 100%);
	--panel-shadow: rgba(255, 160, 38, 0.55);
}
body.fv-glass .reviews > .wrap {
	background: linear-gradient(140deg, #2fd3bf 0%, #13b5a2 50%, #0f9a8c 100%);
	--panel-shadow: rgba(15, 154, 140, 0.55);
}

/* Shared texture + bubbles for every panel */
body.fv-glass :is(.events, .reviews) > .wrap::before,
body.fv-glass :is(.events, .reviews) > .wrap::after,
body.fv-glass .cta-inner::before,
body.fv-glass .cta-inner::after,
.footer-cta::before,
.footer-cta::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
}
body.fv-glass :is(.events, .reviews) > .wrap::before,
body.fv-glass .cta-inner::before,
.footer-cta::before {
	background: var(--fx-bubbles), var(--fx-dots, radial-gradient(rgba(255, 255, 255, 0.28) 1.1px, transparent 1.6px) 0 0 / 20px 20px);
	-webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.85) 100%);
	mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.85) 100%);
	animation: fvFloatA 16s ease-in-out infinite alternate;
}
body.fv-glass :is(.events, .reviews) > .wrap::after,
body.fv-glass .cta-inner::after,
.footer-cta::after {
	background: var(--fx-rings);
	animation: fvFloatB 12s ease-in-out infinite alternate;
}
/* Footer CTA sits outside body.fv-glass scoping on inner pages, so give it its own copy of the tokens */
.footer-cta {
	isolation: isolate;
	--fx-dots: radial-gradient(rgba(255, 255, 255, 0.28) 1.1px, transparent 1.6px) 0 0 / 20px 20px;
	--fx-bubbles:
		radial-gradient(circle, rgba(255, 255, 255, 0.2) 0 90px, transparent 91px) 8% 110% / 182px 182px no-repeat,
		radial-gradient(circle, rgba(255, 255, 255, 0.16) 0 60px, transparent 61px) 94% 12% / 122px 122px no-repeat,
		radial-gradient(circle, rgba(255, 255, 255, 0.18) 0 30px, transparent 31px) 70% 92% / 62px 62px no-repeat;
	--fx-rings:
		radial-gradient(circle, transparent 0 26px, rgba(255, 255, 255, 0.45) 27px 30px, transparent 31px) 18% 20% / 64px 64px no-repeat,
		radial-gradient(circle, transparent 0 14px, rgba(255, 255, 255, 0.55) 15px 17px, transparent 18px) 84% 64% / 36px 36px no-repeat;
}
.footer-cta { background: linear-gradient(135deg, #36b9ee 0%, #1ea7e6 45%, #0fb9a5 100%); }
body.fv-glass .cta-inner { position: relative; isolation: isolate; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35), 0 30px 70px -30px rgba(216, 40, 56, 0.55); }
@media (prefers-reduced-motion: reduce) {
	body.fv-glass :is(.events, .reviews) > .wrap::before, body.fv-glass :is(.events, .reviews) > .wrap::after,
	body.fv-glass .cta-inner::before, body.fv-glass .cta-inner::after, .footer-cta::before, .footer-cta::after { animation: none; }
}

/* Refined type inside the panels */
body.fv-glass .events .section-head, body.fv-glass .reviews .section-head { margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
body.fv-glass .events .kicker { color: #8a2a00; }
body.fv-glass .events :is(.section-title, .section-head h2) { color: #3a1d00; }
body.fv-glass .reviews :is(.section-title, .section-head h2, .kicker, .text-link) { color: #fff; }
/* Cards inside panels: crisp white with a soft lift */
body.fv-glass :is(.events, .reviews) :is(.event, .review) {
	background: rgba(255, 255, 255, 0.96);
	border: 0;
	box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.25);
}

body.fv-glass :is(.events, .reviews) > .wrap::before, body.fv-glass :is(.events, .reviews) > .wrap::after, body.fv-glass .cta-inner::before, body.fv-glass .cta-inner::after, .footer-cta::before, .footer-cta::after { inset: -5%; }


/* ---- Product badges: small white pill floating on the photo (replaces the red bar) ---- */
.product { position: relative; }
.product .product-badge,
body.fv-glass .product-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	width: auto;
	max-width: calc(100% - 24px);
	margin: 0;
	padding: 0.35rem 0.75rem 0.35rem 0.6rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.95);
	color: #d82838;
	font: 800 0.64rem/1 "Nunito", var(--body);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	box-shadow: 0 6px 18px rgba(26, 34, 48, 0.18);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.product .product-badge::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}

body.fv-glass .section .product .product-badge { color: #d82838; }
/* Carousel has arrows, so hide the yellow scrollbar */
body.fv-glass .featured :is(.product-scroll, .product-grid) { scrollbar-width: none; }
body.fv-glass .featured :is(.product-scroll, .product-grid)::-webkit-scrollbar { display: none; }


/* ---- BUTTON CASE: capitalize every word on buttons and small action links ---- */
.btn, button, .mobile-bar a, .zip-modal-skip, .fit summary { text-transform: capitalize; }
.primary-nav .menu a, .nav-actions .btn, .topbar-book { text-transform: uppercase; }


/* ==========================================================
   MOBILE LAYOUT FIXES
   ========================================================== */
@media (max-width: 900px) {
	.cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 640px) {
	/* Categories: 2-up, the odd last card spans the full row */
	.cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0.85rem; }
	.cat-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
	.cat-grid > :last-child:nth-child(odd) .cat-img { aspect-ratio: 16 / 7; }
	.cat .cat-title { font-size: 1.15rem; line-height: 1.15; }
	.cat p { font-size: 0.92rem; line-height: 1.5; }
	.cat .cat-img { width: auto; max-width: none; align-self: stretch; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
}

@media (max-width: 1023px) {
	/* Hero on phones/tablets: left-aligned like desktop, not centered */
	.fv-glass .hero-video { text-align: left; }
	.fv-glass .hero-inner { max-width: 100%; }
	.fv-glass .hero-title { margin-left: 0; margin-right: 0; }
	.fv-glass .hero-title::after { margin-left: 0; }
	.fv-glass .hero-text { margin-left: 0; margin-right: 0; }
	.fv-glass .hero-actions { justify-content: flex-start; }
	/* Badges: three equal tiles in one tidy row */
	.hero-pills {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0.5rem;
		margin: 0 0 2rem;
	}
	.hero-pills li {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.45rem;
		padding: 0.75rem;
		border-radius: 16px;
	}
	.hero-pills strong { font-size: 0.85rem; }
	.hero-pills small { font-size: 0.62rem; letter-spacing: 0.06em; }
	.pill-ico { width: 28px; height: 28px; }
	/* Price tabs: keep labels on one line */
	.tab-list { overflow-x: auto; scrollbar-width: none; }
	.tab-list::-webkit-scrollbar { display: none; }
	.tab-list button { white-space: nowrap; flex: 1 0 auto; font-size: 0.74rem; padding-inline: 0.6rem; }
}
@media (max-width: 520px) {
	.fv-glass .hero-actions .btn { width: 100%; justify-content: center; }
	.tab-facts li { padding: 0.5rem 0.35rem; }
	.tab-facts strong { font-size: 0.82rem; }
	.tab-facts span { font-size: 0.6rem; }
}

@media (max-width: 640px) {
	/* Color panels: use more of the screen on phones */
	body.fv-glass :is(.events, .reviews) > .wrap {
		width: calc(100% - 1.25rem);
		padding: 2rem 1rem 1.75rem;
		border-radius: 24px;
	}
	body.fv-glass .cta-inner { padding: 1.75rem 1.25rem; }
	/* Prices: 2-up instead of one long stack */
	body.fv-glass .price-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
	body.fv-glass .price-list > li:last-child:nth-child(odd) { grid-column: 1 / -1; }
	body.fv-glass .price-list a { padding: 0.9rem 0.9rem 1rem; }
	body.fv-glass .price-name { font-size: 0.85rem; }
	body.fv-glass .price-amt { font-size: 1.2rem; }
	/* Offers + areas + setup: comfortable single column */
	body.fv-glass :is(.offer-grid, .area-list, .setup-grid) { grid-template-columns: 1fr; }
}


/* ---- GALLERY MOSAIC: tiled photo grid on phones and tablets ---- */
@media (max-width: 900px) {
	.gallery-grid {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-auto-rows: 150px;
		grid-auto-flow: dense;
		gap: 8px;
		padding: 0;
		list-style: none;
	}
	.gallery-grid > li { margin: 0; overflow: hidden; border-radius: 14px; min-height: 0; }
	.gallery-grid > li img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto; display: block; }
	.gallery-grid > li:nth-child(6n+1) { grid-column: span 2; grid-row: span 2; }
	.gallery-grid > li:nth-child(6n+4) { grid-row: span 2; }
	.gallery-grid > li:nth-child(6n+6) { grid-column: span 2; }
}
@media (max-width: 560px) {
	.gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 128px; gap: 6px; }
	.gallery-grid > li { border-radius: 12px; }
	.gallery-grid > li:nth-child(6n+1) { grid-column: span 2; grid-row: span 2; }
	.gallery-grid > li:nth-child(6n+4) { grid-column: auto; grid-row: span 2; }
	.gallery-grid > li:nth-child(6n+6) { grid-column: span 2; grid-row: auto; }
}


/* ---- MOBILE TILES: homepage photo strips + Bestsellers & Featured ---- */
@media (max-width: 700px) {
	/* Photo strips: one wide photo on top, two squares below (no sideways swipe) */
	.photo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		overflow: visible;
		scroll-snap-type: none;
		gap: 8px;
	}
	.photo-grid .photo { aspect-ratio: 1 / 1; border-radius: 14px; }
	.photo-grid .photo:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }

	/* Bestsellers & Featured: tiled grid instead of a sideways carousel */
	body.fv-glass .featured .product-grid,
	body.fv-glass .featured .product-scroll {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
		overflow: visible !important;
		scroll-snap-type: none;
		padding: 0;
	}
	body.fv-glass .featured .product {
		width: auto !important;
		min-width: 0 !important;
		max-width: none !important;
		flex: none !important;
		margin: 0;
	}
	body.fv-glass .featured .product img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
	body.fv-glass .featured .product:first-child,
	body.fv-glass .featured .product:last-child:nth-child(even) { grid-column: 1 / -1; }
	body.fv-glass .featured .product:first-child img,
	body.fv-glass .featured .product:last-child:nth-child(even) img { aspect-ratio: 16 / 9; object-fit: contain; background: #fff; }
	body.fv-glass .featured .product h3 { font-size: 0.95rem; line-height: 1.2; }
	body.fv-glass .featured .track-nav { display: none; }
}


/* ==========================================================
   INNER PAGES — same bright, elegant look as the homepage.
   The flat navy page header becomes a warm gradient banner
   (red → orange → sun) with dots, bubbles and rings, tucked
   under the transparent header like the homepage hero.
   ========================================================== */
body.fv-inner .page-head {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	margin-top: calc(-1 * var(--hdr-h, 0px));
	padding: calc(var(--hdr-h, 0px) + clamp(3rem, 7vw, 5rem)) 0 clamp(3rem, 6vw, 4.5rem);
	background: linear-gradient(120deg, #d82838 0%, #f0513a 40%, #ff8a3d 75%, #ffb703 115%);
	border-radius: 0 0 clamp(28px, 5vw, 48px) clamp(28px, 5vw, 48px);
	color: #fff;
	box-shadow: 0 30px 60px -35px rgba(216, 40, 56, 0.6);
}
body.fv-inner .page-head::before,
body.fv-inner .page-head::after {
	content: "";
	position: absolute;
	inset: -5%;
	z-index: -1;
	pointer-events: none;
}
body.fv-inner .page-head::before {
	background: var(--fx-bubbles), var(--fx-dots);
	animation: fvFloatA 16s ease-in-out infinite alternate;
}
body.fv-inner .page-head::after {
	background: var(--fx-rings);
	animation: fvFloatB 12s ease-in-out infinite alternate;
}
@media (prefers-reduced-motion: reduce) { body.fv-inner .page-head::before, body.fv-inner .page-head::after { animation: none; } }
body.fv-inner .page-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	margin: 0 0 0.75rem;
	color: #fff;
	font: 700 0.8rem/1.2 "Nunito", var(--body);
	letter-spacing: 0.2em;
	text-transform: uppercase;
}
body.fv-inner .page-kicker::before {
	content: "";
	flex: 0 0 44px;
	width: 44px;
	height: 8px;
	background:
		radial-gradient(circle at 4px 4px, #fff 3.6px, transparent 4px) 0 0 / 12px 8px no-repeat,
		radial-gradient(circle at 4px 4px, #ffe08a 3.6px, transparent 4px) 12px 0 / 12px 8px no-repeat,
		radial-gradient(circle at 4px 4px, #9fe3ff 3.6px, transparent 4px) 24px 0 / 12px 8px no-repeat,
		radial-gradient(circle at 4px 4px, #8ff0e2 3.6px, transparent 4px) 36px 0 / 12px 8px no-repeat;
}
body.fv-inner .page-title {
	color: #fff;
	font-size: clamp(2.4rem, 6vw, 4.2rem);
	line-height: 1.04;
	margin: 0;
	text-shadow: 0 6px 30px rgba(120, 10, 20, 0.25);
}
body.fv-inner .page-title::after {
	content: "";
	display: block;
	width: 80px;
	height: 6px;
	margin-top: 1rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.85);
}
body.fv-inner .page-head p:not(.page-kicker) { color: rgba(255, 255, 255, 0.9); max-width: 640px; }

/* Body copy + spacing on inner pages */
body.fv-inner .page-body { padding-block: clamp(2.5rem, 6vw, 4rem); color: var(--b-ink); }
body.fv-inner .page-body :is(p, li) { color: var(--b-text); }
body.fv-inner .page-body :is(h2, h3) { color: var(--b-ink); }
body.fv-inner .page-body a:not(.btn) { color: var(--b-red); }
body.fv-inner .page-note { color: var(--b-text); }
/* Testimonials page: reviews panel spacing under the header */
body.fv-inner .page-head + .reviews { margin-top: clamp(2rem, 5vw, 3rem); }

/* Contact cards: tinted, with a corner dot (same as Why Families Choose Us) */
body.fv-inner .contact-cards > div {
	position: relative;
	overflow: hidden;
	border: 0;
	border-radius: 22px;
	padding: 1.4rem 1.5rem;
	--tint: #ffbba1; --dot: #ff9478;
	background: var(--tint);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
body.fv-inner .contact-cards > div:nth-child(4n+2) { --tint: #acd6df; --dot: #5fc0e6; }
body.fv-inner .contact-cards > div:nth-child(4n+3) { --tint: #ffd06e; --dot: #ffbe2a; }
body.fv-inner .contact-cards > div:nth-child(4n+4) { --tint: #a3dcc6; --dot: #4fcfbc; }
body.fv-inner .contact-cards > div::after {
	content: "";
	position: absolute;
	top: -34px;
	right: -34px;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: var(--dot);
}
body.fv-inner .contact-cards > div:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(26, 34, 48, 0.1); }
body.fv-inner .contact-cards dt {
	position: relative; z-index: 1;
	font: 800 0.72rem/1.2 "Nunito", var(--body);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #8a2a1c;
	margin-bottom: 0.4rem;
}
body.fv-inner .contact-cards dd { position: relative; z-index: 1; margin: 0; color: #1a2230; }
body.fv-inner .contact-cards dd a { color: #1a2230; font-weight: 700; }
/* Page-note links */
body.fv-inner .page-note a { color: var(--b-red); }


/* ---- SHORT TITLE CASE: every short label/title capitalizes each word ---- */
.setup-col li strong, .hero-pills strong, .tab-facts strong, .event-tags-label, .event-tags li,
.offer h3, .offer-title, .product h3, .area-towns li, .review-name, .review cite, .review figcaption,
.footer-title, .fit-table th, .fit-table td:first-child, .trust-list strong,
.page-body h2, .page-body h3, .page-body h4, .page-body dt, .catalog h3, .price-name { text-transform: capitalize; }


/* ==========================================================
   SERVICE AREA PAGES — breadcrumbs, content + map sidebar,
   nearby-town chips.
   ========================================================== */
.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0 0 1rem; padding: 0; font: 700 0.78rem/1.3 "Nunito", var(--body); letter-spacing: 0.06em; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: 0.35rem; color: rgba(255, 255, 255, 0.9); }
.breadcrumbs li + li::before { content: "\203A"; opacity: 0.7; }
.breadcrumbs a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, 0.45); }
.breadcrumbs a:hover { border-bottom-color: #fff; }
body.fv-inner .page-head-area .page-lede { color: rgba(255, 255, 255, 0.92); font-size: 1.1rem; max-width: 680px; margin: 1.25rem 0 1.5rem; }
body.fv-inner .page-head-area .hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0; }

.area-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: start;
	padding-block: clamp(2.5rem, 6vw, 4rem);
}
.area-layout .area-body { padding: 0; max-width: none; }
.area-body h2 { font-size: clamp(1.4rem, 3vw, 1.85rem); margin: 2rem 0 0.6rem; }
.area-body > p:first-child { font-size: 1.15rem; line-height: 1.7; color: var(--b-ink, #1a2230); }
.area-body ol { padding-left: 1.2rem; }
.area-body ol li { margin-bottom: 0.6rem; }
.area-side { position: sticky; top: 110px; display: grid; gap: 1rem; }
.area-map {
	margin: 0;
	overflow: hidden;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 14px 40px rgba(26, 34, 48, 0.1);
}
.area-map iframe { display: block; width: 100%; height: 320px; border: 0; }
.area-map figcaption { display: flex; align-items: center; gap: 0.45rem; padding: 0.8rem 1rem; font: 800 0.85rem/1.2 "Nunito", var(--body); color: var(--b-ink, #1a2230); }
.area-map figcaption .icon { width: 16px; height: 16px; fill: #d82838; color: #d82838; }
.area-links {
	position: relative;
	overflow: hidden;
	padding: 1.4rem 1.5rem;
	border-radius: 22px;
	background: #ffe9d6;
}
.area-links::after { content: ""; position: absolute; top: -40px; right: -40px; width: 110px; height: 110px; border-radius: 50%; background: #ffbe2a; opacity: 0.7; }
.area-links-title { position: relative; z-index: 1; font-size: 1.2rem; margin: 0 0 0.75rem; }
.area-links-title + .area-chips + .area-links-title { margin-top: 1.25rem; }
.area-links-title a { color: var(--b-ink, #1a2230); text-decoration: none; }
.area-chips { position: relative; z-index: 1; list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; }
.area-chips li a, .area-chips li:not(:has(a)) {
	display: inline-block;
	padding: 0.45rem 0.9rem;
	border-radius: 999px;
	background: #fff;
	color: var(--b-ink, #1a2230);
	font: 800 0.85rem/1 "Nunito", var(--body);
	text-decoration: none;
	box-shadow: 0 4px 12px rgba(26, 34, 48, 0.08);
	transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.area-chips li a:hover { background: #d82838; color: #fff; transform: translateY(-2px); }
.area-more { position: relative; z-index: 1; margin: 1rem 0 0; }
.area-more a { color: #d82838; font-weight: 800; text-transform: capitalize; }
@media (max-width: 860px) {
	.area-layout { grid-template-columns: 1fr; }
	.area-side { position: static; }
	.area-map iframe { height: 260px; }
}

/* Homepage "Where We Deliver": county + town links */
body.fv-glass .area-county a { color: #d82838; text-decoration: none; }
body.fv-glass .area-towns a { color: var(--b-ink, #1a2230); text-decoration: none; border-bottom: 1px dashed rgba(216, 40, 56, 0.45); }
body.fv-glass .area-towns a:hover, body.fv-glass .area-county a:hover { color: #d82838; border-bottom-color: #d82838; }


/* ---- AREA FAQ + REVIEW (service-area pages) ---- */
.area-faq { margin-top: 2.5rem; }
.area-faq-item {
	background: #fff;
	border-radius: 18px;
	padding: 1rem 1.25rem;
	margin-bottom: 0.7rem;
	box-shadow: 0 10px 28px rgba(26, 34, 48, 0.07);
	border-left: 5px solid #d82838;
}
.area-faq-item:nth-of-type(4n+2) { border-left-color: #ffb703; }
.area-faq-item:nth-of-type(4n+3) { border-left-color: #1ea7e6; }
.area-faq-item:nth-of-type(4n+4) { border-left-color: #0fb9a5; }
.area-faq-item summary { cursor: pointer; font-family: var(--display); font-size: 1.05rem; color: var(--b-ink, #1a2230); text-transform: capitalize; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.area-faq-item summary::-webkit-details-marker { display: none; }
.area-faq-item summary::after { content: "+"; font-family: "Nunito", var(--body); font-weight: 800; color: #d82838; transition: transform 0.2s ease; }
.area-faq-item[open] summary::after { transform: rotate(45deg); }
.area-faq-item p { margin: 0.7rem 0 0; }
.area-review {
	margin: 0;
	padding: 1.3rem 1.4rem;
	border-radius: 22px;
	background: linear-gradient(140deg, #2fd3bf 0%, #13b5a2 55%, #0f9a8c 100%);
	color: #fff;
	box-shadow: 0 20px 40px -24px rgba(15, 154, 140, 0.8);
}
.area-review .review-stars { display: flex; gap: 2px; margin: 0 0 0.5rem; color: #ffe08a; }
.area-review .review-stars .icon { width: 16px; height: 16px; fill: currentColor; }
.area-review blockquote { margin: 0; }
.area-review blockquote p { color: #fff; font-style: italic; margin: 0 0 0.6rem; line-height: 1.6; }
.area-review figcaption { font: 800 0.75rem/1.3 "Nunito", var(--body); letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.85); }


/* ---- AREA PHOTOS (service-area pages): one wide + two square ---- */
.area-photos { margin-top: 2.5rem; }
.area-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 1rem; }
.area-photo-grid figure { margin: 0; overflow: hidden; border-radius: 18px; aspect-ratio: 1 / 1; box-shadow: 0 12px 30px rgba(26, 34, 48, 0.1); }
.area-photo-grid figure:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
.area-photo-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.area-photo-grid figure:hover img { transform: scale(1.04); }

/* Header phone pill: readable over light or dark backgrounds */
.fv-glass .nav-actions .btn-ghost {
	background: rgba(14, 16, 48, 0.6);
	border-color: rgba(255, 255, 255, 0.35);
	color: #fff;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.fv-glass .nav-actions .btn-ghost:hover {
	background: #fff;
	border-color: #fff;
	color: var(--ink);
}

/* Category inventory cards: real store photos + links */
.product .product-photo {
	object-fit: contain;
	padding: 0.75rem;
	background: #fff;
}
.product a {
	display: flex;
	flex-direction: column;
}
.product-cta {
	margin: auto 1rem 1rem;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--primary);
}
.product a:hover .product-cta {
	text-decoration: underline;
}

/* ---------- Mobile overflow guard (2026-10-24) ---------- */
html, body { overflow-x: clip; }
h1, h2, h3 { overflow-wrap: break-word; }
