/* ==========================================================================
   Cape Coral Pool Site v8 design system (Claude Design handoff).
   Dark gray + light green, Bricolage Grotesque / Figtree / JetBrains Mono.
   Every component is prefixed cw-. Post content blocks are styled at the end.
   ========================================================================== */

:root {
	--cw-ink: oklch(0.2 0.01 160);
	--cw-ink-2: oklch(0.22 0.01 160);
	--cw-ink-3: oklch(0.24 0.01 160);
	--cw-ink-4: oklch(0.26 0.012 160);
	--cw-ink-5: oklch(0.3 0.01 160);
	--cw-deep: oklch(0.17 0.01 160);
	--cw-lime: oklch(0.88 0.15 140);
	--cw-lime-hi: oklch(0.93 0.13 140);
	--cw-lime-80: oklch(0.8 0.14 140);
	--cw-lime-75: oklch(0.75 0.15 140);
	--cw-green: oklch(0.48 0.13 145);
	--cw-green-2: oklch(0.42 0.12 145);
	--cw-green-3: oklch(0.4 0.12 145);
	--cw-mint: oklch(0.95 0.035 140);
	--cw-mint-2: oklch(0.95 0.05 140);
	--cw-mint-3: oklch(0.96 0.02 145);
	--cw-mint-4: oklch(0.92 0.02 145);
	--cw-mint-5: oklch(0.95 0.07 140);
	--cw-base: oklch(0.985 0.004 140);
	--cw-text: oklch(0.24 0.01 160);
	--cw-line: oklch(0.91 0.012 150);
	--cw-line-2: oklch(0.88 0.02 150);
	--cw-line-3: oklch(0.89 0.012 150);
	--cw-line-4: oklch(0.93 0.01 150);
	--cw-line-mint: oklch(0.85 0.06 140);
	--cw-teal: oklch(0.8 0.14 175);
	--cw-teal-2: oklch(0.75 0.13 175);
	--cw-sky: oklch(0.8 0.08 230);
	--cw-pollen: oklch(0.9 0.12 100);
	--cw-rain: oklch(0.55 0.1 200);
	--cw-f-head: 'Bricolage Grotesque', 'Figtree', system-ui, sans-serif;
	--cw-f-body: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--cw-f-mono: 'JetBrains Mono', ui-monospace, monospace;
	--cw-gut: clamp(20px, 4vw, 48px);
	--cw-sec: clamp(72px, 10vw, 120px);
	--cw-sec-s: clamp(64px, 9vw, 110px);
	--cw-ease: cubic-bezier(.2, .7, .2, 1);
	--cw-header-h: 76px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
img, svg, video { max-width: 100%; }
html { scroll-padding-top: 100px; }
body {
	margin: 0;
	background: var(--cw-base);
	color: var(--cw-text);
	font-family: var(--cw-f-body);
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
.wp-site-blocks { padding: 0 !important; }
.wp-site-blocks > * { margin-block-start: 0 !important; }
.cw-main { flex: 1; }
.cw-main > *, .cw-main { margin-block-start: 0; }
.cw-main a:not(.cw-btn):not(.cw-pill):not([class*="wp-block-button"]) { text-decoration-thickness: 1px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.cw-skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--cw-lime); color: var(--cw-ink); padding: 12px 18px; border-radius: 12px; font-weight: 700; text-decoration: none; }
.cw-skip:focus { top: 12px; }
:focus-visible { outline: 3px solid var(--cw-lime-75); outline-offset: 3px; }

@keyframes cwPulse { 0% { box-shadow: 0 0 0 0 oklch(0.88 0.15 140 / .7); } 70% { box-shadow: 0 0 0 12px oklch(0.88 0.15 140 / 0); } 100% { box-shadow: 0 0 0 0 oklch(0.88 0.15 140 / 0); } }
@keyframes cwPulseInk { 0% { box-shadow: 0 0 0 0 oklch(0.2 0.01 160 / .55); } 70% { box-shadow: 0 0 0 12px oklch(0.2 0.01 160 / 0); } 100% { box-shadow: 0 0 0 0 oklch(0.2 0.01 160 / 0); } }
@keyframes cwMarquee { to { transform: translateX(-50%); } }
@keyframes cwRipple { 0% { transform: scale(.35); opacity: .9; } 100% { transform: scale(1.5); opacity: 0; } }
@keyframes cwRise { from { opacity: 0; transform: translateY(40px); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes cwFloat { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(60px, -40px) scale(1.1); } 66% { transform: translate(-40px, 30px) scale(.95); } }
@keyframes cwTick { 0%, 20% { transform: translateY(0); } 25%, 45% { transform: translateY(-20%); } 50%, 70% { transform: translateY(-40%); } 75%, 95% { transform: translateY(-60%); } 100% { transform: translateY(-80%); } }
@keyframes cwBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(6px); } }

/* ---------- Layout + type primitives ---------- */
.cw-wrap { max-width: 1240px; margin: 0 auto; padding: 0 var(--cw-gut); box-sizing: border-box; }
.cw-sec { padding: var(--cw-sec) 0; }
.cw-sec-s { padding: var(--cw-sec-s) 0; }
.cw-stack { display: flex; flex-direction: column; gap: 44px; }
.cw-eyebrow { display: inline-flex; align-items: center; gap: 12px; font: 600 12.5px/1.3 var(--cw-f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--cw-green); }
.cw-on-dark .cw-eyebrow, .cw-eyebrow-lime { color: var(--cw-lime); }
.cw-on-mint .cw-eyebrow { color: var(--cw-green-2); }
.cw-mono { font: 600 11.5px/1.3 var(--cw-f-mono); letter-spacing: .08em; text-transform: uppercase; }
.cw-h2 { margin: 0; font: 800 clamp(38px, 5vw, 68px)/.95 var(--cw-f-head); letter-spacing: -.04em; text-wrap: balance; color: inherit; }
.cw-h2-m { font-size: clamp(34px, 4.2vw, 56px); }
.cw-h2-s { font-size: clamp(32px, 3.6vw, 48px); }
.cw-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; }
.cw-head-main { display: flex; flex-direction: column; gap: 14px; flex: 1 1 520px; }
.cw-head-side { margin: 0; flex: 0 1 400px; font-size: 17px; line-height: 1.6; opacity: .72; text-wrap: pretty; }
.cw-head-narrow .cw-head-main { flex: 0 1 760px; }
.cw-lead { margin: 0; font-size: 17px; line-height: 1.65; opacity: .75; text-wrap: pretty; }
.cw-note { margin: 0; font-size: 15.5px; line-height: 1.5; opacity: .65; }
.cw-split { display: flex; flex-wrap: wrap; gap: clamp(32px, 5vw, 72px); align-items: flex-start; }
.cw-split > .cw-split-a { flex: 1 1 360px; display: flex; flex-direction: column; gap: 16px; }
.cw-split > .cw-split-b { flex: 1.3 1 460px; display: flex; flex-direction: column; gap: 10px; }
.cw-sticky { position: sticky; top: 110px; }
.cw-ic { flex: none; display: inline-block; vertical-align: middle; }

/* Band backgrounds + wave fills */
.cw-bg-base { background: var(--cw-base); }
.cw-bg-ink { background: var(--cw-ink); }
.cw-bg-ink2 { background: var(--cw-ink-2); }
.cw-bg-mint { background: var(--cw-mint); }
.cw-bg-lime { background: var(--cw-lime); }
.cw-bg-deep { background: var(--cw-deep); }
.cw-fill-base { fill: var(--cw-base); }
.cw-fill-ink { fill: var(--cw-ink); }
.cw-fill-ink2 { fill: var(--cw-ink-2); }
.cw-fill-mint { fill: var(--cw-mint); }
.cw-fill-lime { fill: var(--cw-lime); }
.cw-fill-deep { fill: var(--cw-deep); }
.cw-wave { line-height: 0; position: relative; z-index: 1; height: clamp(36px, 5.5vw, 80px); }
/* The svg overhangs by 2px so its anti-aliased bottom row never shows the band color behind it. */
.cw-wave svg { display: block; width: 100%; height: calc(100% + 2px); overflow: visible; }
.cw-on-dark { color: #fff; }

/* ---------- Buttons ---------- */
.cw-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: 16px 26px; border-radius: 60px; font: 700 17px/1.1 var(--cw-f-body);
	text-decoration: none !important; white-space: nowrap; cursor: pointer; border: 0;
	transition: transform .25s, box-shadow .25s, background .25s, color .25s;
}
.cw-btn:hover { transform: translateY(-3px); }
.cw-btn-lg { padding: 18px 28px; font-size: clamp(18px, 1.6vw, 21px); }
.cw-btn-lime { background: var(--cw-lime); color: var(--cw-ink) !important; }
.cw-btn-lime:hover { background: var(--cw-lime-hi); box-shadow: 0 16px 34px -14px oklch(0.88 0.15 140 / .6); }
.cw-btn-ink { background: var(--cw-ink-2); color: #fff !important; }
.cw-btn-ink .cw-ic { color: var(--cw-lime); }
.cw-btn-ink:hover { background: var(--cw-ink-5); box-shadow: 0 16px 34px -14px rgba(0, 0, 0, .45); }
.cw-btn-ghost { background: transparent; color: inherit !important; border: 1.5px solid rgba(255, 255, 255, .28); padding: 22px 26px; border-radius: 80px; }
.cw-btn-ghost:hover { background: #fff; color: var(--cw-ink) !important; }
.cw-btn-line { background: transparent; color: var(--cw-ink-3) !important; border: 1.5px solid var(--cw-ink-3); padding: 15px 22px; font-size: 16px; }
.cw-btn-line:hover { background: var(--cw-ink-3); color: #fff !important; transform: none; }
.cw-btn-block { display: flex; width: 100%; }

.cw-pill {
	display: inline-flex; align-items: center; gap: 16px; align-self: flex-start;
	background: var(--cw-lime); color: var(--cw-ink) !important; text-decoration: none !important;
	padding: 14px 30px 14px 14px; border-radius: 80px;
	box-shadow: 0 12px 34px -12px oklch(0.88 0.15 140 / .65);
	transition: transform .25s, box-shadow .25s, background .25s;
}
.cw-pill:hover { background: var(--cw-lime-hi); transform: translateY(-3px); box-shadow: 0 24px 54px -14px oklch(0.88 0.15 140 / .85); }
.cw-pill-ic { width: 56px; height: 56px; border-radius: 50%; background: var(--cw-ink); color: var(--cw-lime); display: flex; align-items: center; justify-content: center; flex: none; }
.cw-pill-txt { display: flex; flex-direction: column; gap: 2px; }
.cw-pill-label { font-size: 13px; font-weight: 600; letter-spacing: .02em; }
.cw-pill-num { font: 800 clamp(24px, 2.4vw, 30px)/1 var(--cw-f-head); letter-spacing: -.01em; white-space: nowrap; }
.cw-pill-m { padding: 12px 26px 12px 12px; }
.cw-pill-m .cw-pill-ic { width: 48px; height: 48px; }
.cw-pill-m .cw-pill-num { font-size: 24px; }
.cw-pill-dark { background: var(--cw-ink); color: #fff !important; box-shadow: none; }
.cw-pill-dark:hover { background: var(--cw-ink-5); box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .5); }
.cw-pill-dark .cw-pill-ic { background: var(--cw-lime); color: var(--cw-ink); }

.cw-pulse { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: none; animation: cwPulse 2s infinite; }
.cw-pulse-lime { background: var(--cw-lime); }
.cw-pulse-ink { background: var(--cw-ink); animation-name: cwPulseInk; }

/* ---------- Top bar + header ---------- */
.cw-topbar { background: var(--cw-deep); color: rgba(255, 255, 255, .72); font-size: 13px; }
.cw-topbar .cw-wrap { padding-top: 9px; padding-bottom: 9px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.cw-topbar b { color: var(--cw-lime); font-weight: 600; }
.cw-header {
	position: sticky; top: 0; z-index: 50;
	background: oklch(0.2 0.01 160 / .94); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.admin-bar .cw-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .cw-header { top: 0; } }
.cw-header-bar { height: var(--cw-header-h); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.cw-logo { display: flex; align-items: center; gap: 12px; color: #fff !important; text-decoration: none !important; }
.cw-logo-mark { width: 40px; height: 40px; border-radius: 12px; background: var(--cw-lime); display: flex; align-items: center; justify-content: center; flex: none; }
.cw-logo-mark::after { content: ""; width: 18px; height: 18px; border-radius: 50%; border: 3.5px solid var(--cw-ink); box-sizing: border-box; }
.cw-logo-txt { display: flex; flex-direction: column; gap: 3px; }
.cw-logo-name { font: 700 18px/1 var(--cw-f-head); letter-spacing: -.01em; white-space: nowrap; }
.cw-logo-tag { font: 500 10.5px/1 var(--cw-f-mono); letter-spacing: .06em; opacity: .55; white-space: nowrap; }
.cw-nav { display: flex; align-items: center; gap: 4px; }
.cw-nav-link {
	cursor: pointer; padding: 10px 14px; border-radius: 10px; font: 600 15px/1.2 var(--cw-f-body);
	white-space: nowrap; color: #fff !important; background: transparent; border: 0; text-decoration: none !important;
	display: inline-flex; align-items: center; gap: 6px; transition: background .2s, color .2s;
}
.cw-nav-link:hover { background: rgba(255, 255, 255, .08); }
.cw-nav-link.is-active, .cw-nav-link[aria-expanded="true"] { color: var(--cw-lime) !important; background: rgba(255, 255, 255, .06); }
.cw-nav-link .cw-caret { font-size: 11px; transition: transform .2s; }
.cw-nav-link[aria-expanded="true"] .cw-caret { transform: rotate(180deg); }
.cw-header-actions { display: flex; align-items: center; gap: 10px; }
.cw-header-call {
	display: flex; align-items: center; gap: 10px; background: var(--cw-lime); color: var(--cw-ink) !important;
	padding: 12px 20px; border-radius: 60px; font-weight: 700; font-size: 16px; white-space: nowrap; text-decoration: none !important;
	transition: background .2s;
}
.cw-header-call:hover { background: var(--cw-lime-hi); }
.cw-header-call .cw-call-short { display: none; }
.cw-burger { display: none; cursor: pointer; width: 46px; height: 46px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .18); background: transparent; color: #fff; align-items: center; justify-content: center; font-size: 20px; padding: 0; }
.cw-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; pointer-events: none; }
.cw-progress span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--cw-lime), var(--cw-teal)); box-shadow: 0 0 12px var(--cw-lime); }
.cw-panel { border-top: 1px solid rgba(255, 255, 255, .08); background: var(--cw-ink); }
.cw-panel[hidden] { display: none; }
.cw-panel-grid { padding-top: 24px; padding-bottom: 28px; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.cw-panel-item { padding: 16px; border-radius: 14px; background: rgba(255, 255, 255, .04); display: flex; flex-direction: column; gap: 4px; color: #fff !important; text-decoration: none !important; transition: background .2s; }
.cw-panel-item:hover { background: rgba(255, 255, 255, .09); }
.cw-panel-item strong { font-weight: 700; font-size: 16px; }
.cw-panel-item span { font-size: 13.5px; line-height: 1.45; opacity: .6; }
.cw-panel-item.is-call { background: var(--cw-lime); color: var(--cw-ink) !important; justify-content: center; }
.cw-panel-item.is-call span { opacity: 1; font-size: 14px; }
.cw-mnav { border-top: 1px solid rgba(255, 255, 255, .08); background: var(--cw-ink); padding: 12px 20px 24px; display: flex; flex-direction: column; gap: 2px; max-height: 75vh; overflow-y: auto; }
.cw-mnav[hidden] { display: none; }
.cw-mnav-label { font: 600 11px var(--cw-f-mono); letter-spacing: .08em; opacity: .5; padding: 18px 0 6px; }
.cw-mnav-label:first-child { padding-top: 10px; }
.cw-mnav a { padding: 13px 0; font-size: 17px; font-weight: 600; border-bottom: 1px solid rgba(255, 255, 255, .07); color: #fff !important; text-decoration: none !important; }

/* ---------- Home hero ---------- */
.cw-hero {
	position: relative; min-height: calc(100vh - 112px); min-height: calc(100svh - 112px);
	display: flex; flex-direction: column; background: var(--cw-ink); color: #fff; overflow: hidden;
}
.cw-hero-media { position: absolute; inset: 0; }
.cw-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cw-hero-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, var(--cw-ink) 0%, oklch(0.2 0.01 160 / .93) 40%, oklch(0.2 0.01 160 / .45) 75%, oklch(0.2 0.01 160 / .2) 100%); }
.cw-hero-shade-b { position: absolute; inset: auto 0 0 0; height: 40%; pointer-events: none; background: linear-gradient(0deg, var(--cw-ink) 0%, oklch(0.2 0.01 160 / 0) 100%); }
.cw-hero-glow { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.cw-blob { position: absolute; border-radius: 50%; filter: blur(80px); animation: cwFloat 18s ease-in-out infinite; }
.cw-blob-a { width: 520px; height: 520px; left: -8%; top: -12%; background: oklch(0.88 0.15 140 / .22); }
.cw-blob-b { width: 420px; height: 420px; left: 30%; bottom: -20%; background: oklch(0.75 0.13 175 / .18); animation-delay: -6s; animation-duration: 22s; }
.cw-hero-dots { position: absolute; inset: 0; pointer-events: none; opacity: .5; background-image: radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px); background-size: 26px 26px; -webkit-mask-image: linear-gradient(90deg, #000, transparent 70%); mask-image: linear-gradient(90deg, #000, transparent 70%); }
.cw-hero-inner { position: relative; flex: 1; width: 100%; padding-top: clamp(48px, 8vh, 96px); padding-bottom: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: clamp(32px, 5vw, 72px); }
.cw-hero-copy { flex: 1 1 560px; display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.cw-hero-kicker { display: flex; align-items: center; gap: 12px; font: 600 12.5px var(--cw-f-mono); letter-spacing: .1em; color: var(--cw-lime); }
.cw-hero h1 { margin: 0; font: 800 clamp(54px, 7.6vw, 120px)/.88 var(--cw-f-head); letter-spacing: -.045em; text-wrap: balance; color: #fff; }
.cw-hero h1 em, .cw-hl { font-style: normal; color: var(--cw-lime); }
.cw-hero-sub { margin: 0; font-size: clamp(19px, 1.8vw, 24px); line-height: 1.4; max-width: 600px; color: rgba(255, 255, 255, .85); display: flex; flex-wrap: wrap; gap: 0 10px; align-items: baseline; }
.cw-ticker { display: inline-block; height: 1.4em; overflow: hidden; vertical-align: bottom; color: var(--cw-lime); font-weight: 700; }
.cw-ticker > span { display: flex; flex-direction: column; animation: cwTick 10s cubic-bezier(.7, 0, .3, 1) infinite; }
.cw-ticker > span > span { height: 1.4em; line-height: 1.4em; white-space: nowrap; }
.cw-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.cw-hero-fine { font-size: 14.5px; line-height: 1.5; color: rgba(255, 255, 255, .65); max-width: 520px; margin: 0; }
.cw-probs {
	flex: 1 1 340px; max-width: 440px; box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .08);
	background: oklch(0.24 0.01 160 / .78); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
	border: 1px solid rgba(255, 255, 255, .12); border-radius: 28px; padding: 26px; display: flex; flex-direction: column; gap: 6px;
}
.cw-probs-title { font: 600 11.5px var(--cw-f-mono); letter-spacing: .1em; color: var(--cw-lime); padding-bottom: 4px; margin: 0; }
.cw-probs a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 4px; border-bottom: 1px solid rgba(255, 255, 255, .08); transition: padding .25s, color .25s; color: #fff !important; text-decoration: none !important; }
.cw-probs a:hover { color: var(--cw-lime) !important; padding-left: 12px; }
.cw-probs a > span:first-child { display: flex; flex-direction: column; gap: 2px; }
.cw-probs strong { font-weight: 700; font-size: 17px; }
.cw-probs small { font-size: 13px; opacity: .55; }
.cw-arrow-dot { width: 32px; height: 32px; flex: none; border-radius: 50%; background: rgba(255, 255, 255, .08); display: flex; align-items: center; justify-content: center; }
.cw-probs-note { font-size: 14px; opacity: .65; padding-top: 10px; margin: 0; }
.cw-hero-foot { position: relative; border-top: 1px solid rgba(255, 255, 255, .1); }
.cw-hero-foot .cw-wrap { padding-top: 18px; padding-bottom: 18px; display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: center; justify-content: space-between; font-size: 14px; color: rgba(255, 255, 255, .7); }
.cw-hero-foot-areas { display: flex; flex-wrap: wrap; gap: 8px 22px; align-items: center; }
.cw-hero-foot-areas .cw-mono { color: var(--cw-lime); font-size: 11px; letter-spacing: .1em; }
.cw-scroll { display: flex; align-items: center; gap: 10px; font: 500 12px var(--cw-f-mono); letter-spacing: .08em; }
.cw-scroll span { display: inline-block; animation: cwBob 1.6s ease-in-out infinite; color: var(--cw-lime); font-size: 16px; }

[data-rise] { animation: cwRise 1s var(--cw-ease) both; }
[data-rise="1"] { animation-delay: 110ms; }
[data-rise="2"] { animation-delay: 220ms; }
[data-rise="3"] { animation-delay: 330ms; }
[data-rise="4"] { animation-delay: 440ms; }

/* ---------- Marquee ---------- */
.cw-marquee { background: var(--cw-lime); color: var(--cw-ink); padding: 20px 0; overflow: hidden; border-top: 1px solid oklch(0.2 0.01 160 / .15); border-bottom: 1px solid oklch(0.2 0.01 160 / .15); }
.cw-marquee-track { display: flex; width: max-content; animation: cwMarquee 48s linear infinite; }
.cw-marquee:hover .cw-marquee-track { animation-play-state: paused; }
.cw-marquee-row { display: flex; align-items: center; gap: 28px; padding-right: 28px; }
.cw-marquee-row span { font: 700 clamp(20px, 2.2vw, 28px)/1 var(--cw-f-head); letter-spacing: -.01em; white-space: nowrap; }
.cw-marquee-row b { font-style: normal; font-size: 16px; opacity: .45; }

/* ---------- Services bento ---------- */
.cw-services { position: relative; padding: var(--cw-sec) 0 48px; background-image: repeating-radial-gradient(circle at 100% 0%, transparent 0 38px, oklch(0.88 0.15 140 / .13) 38px 39.5px); background-size: 100% 620px; background-repeat: no-repeat; }
.cw-bento { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); grid-auto-flow: dense; gap: 16px; }
.cw-feat {
	grid-column: span 2; grid-row: span 2; position: relative; overflow: hidden; border-radius: 28px; background: var(--cw-ink);
	color: #fff !important; min-height: 496px; display: flex; flex-direction: column; justify-content: flex-end; text-decoration: none !important;
	transition: transform .3s var(--cw-ease), box-shadow .3s;
}
.cw-feat:hover { transform: translateY(-5px); box-shadow: 0 30px 60px -28px oklch(0.2 0.01 160 / .6); }
.cw-feat img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--cw-ease); }
.cw-feat:hover img { transform: scale(1.04); }
.cw-feat-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, var(--cw-ink) 18%, oklch(0.2 0.01 160 / .55) 55%, oklch(0.2 0.01 160 / 0) 100%); }
.cw-feat-body { position: relative; padding: 32px; display: flex; flex-direction: column; gap: 14px; }
.cw-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.cw-chip { font: 600 11.5px var(--cw-f-mono); letter-spacing: .06em; padding: 6px 11px; border-radius: 30px; }
.cw-chip-lime { background: var(--cw-lime); color: var(--cw-ink); }
.cw-chip-glass { background: rgba(255, 255, 255, .12); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.cw-chip-mint { background: var(--cw-mint-2); color: var(--cw-green-3); align-self: flex-start; }
.cw-chip-white { background: #fff; color: var(--cw-ink); align-self: flex-start; }
.cw-feat-title { font: 800 clamp(34px, 3.6vw, 48px)/.95 var(--cw-f-head); letter-spacing: -.035em; }
.cw-feat-text { font-size: 16.5px; line-height: 1.55; opacity: .8; max-width: 420px; }
.cw-feat-go { align-self: flex-start; display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 16px; padding-top: 6px; }
.cw-go { width: 38px; height: 38px; border-radius: 50%; background: var(--cw-lime); color: var(--cw-ink); display: flex; align-items: center; justify-content: center; font-weight: 700; flex: none; }
.cw-go-ink { background: var(--cw-ink); color: var(--cw-lime); }
.cw-card-svc {
	border: 1px solid var(--cw-line); border-radius: 24px; padding: 26px; display: flex; flex-direction: column; gap: 12px; min-height: 240px;
	background: radial-gradient(420px circle at var(--mx, 50%) var(--my, -20%), var(--cw-mint-5), #fff 55%);
	color: var(--cw-text) !important; text-decoration: none !important;
	transition: transform .3s var(--cw-ease), box-shadow .3s, border-color .3s;
}
.cw-card-svc:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -24px oklch(0.24 0.01 160 / .4); border-color: var(--cw-lime-80); }
.cw-card-svc-top { display: flex; justify-content: space-between; align-items: center; }
.cw-num { font: 600 13px var(--cw-f-mono); color: var(--cw-green); }
.cw-card-svc-title { font: 700 24px/1.1 var(--cw-f-head); letter-spacing: -.02em; margin-top: auto; }
.cw-card-svc-text { font-size: 15.5px; line-height: 1.55; opacity: .7; }
.cw-bento-cta {
	grid-column: span 2; position: relative; overflow: hidden; background: var(--cw-lime); color: var(--cw-ink) !important; border-radius: 24px;
	padding: clamp(26px, 3vw, 36px); display: flex; flex-direction: column; justify-content: space-between; gap: 16px; min-height: 240px;
	text-decoration: none !important; transition: transform .3s;
}
.cw-bento-cta:hover { transform: translateY(-5px) rotate(-1deg); }
.cw-deco-ring { position: absolute; border-radius: 50%; pointer-events: none; }
.cw-bento-cta .r1 { right: -90px; top: -110px; width: 300px; height: 300px; border: 2px solid oklch(0.2 0.01 160 / .14); }
.cw-bento-cta .r2 { right: 30px; top: -40px; width: 150px; height: 150px; border: 2px dashed oklch(0.2 0.01 160 / .14); }
.cw-bento-cta .dots { position: absolute; inset: 0; opacity: .35; background-image: radial-gradient(oklch(0.2 0.01 160 / .25) 1px, transparent 1px); background-size: 18px 18px; -webkit-mask-image: linear-gradient(90deg, transparent 40%, #000); mask-image: linear-gradient(90deg, transparent 40%, #000); pointer-events: none; }
.cw-bento-cta > :not(.cw-deco-ring):not(.dots) { position: relative; }
.cw-bento-cta-title { font: 800 clamp(26px, 2.6vw, 36px)/1.02 var(--cw-f-head); letter-spacing: -.03em; max-width: 440px; }
.cw-bento-cta-foot { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.cw-bento-cta-foot > span:first-child { font-size: 15px; line-height: 1.45; max-width: 260px; }
.cw-bento-cta-num { background: var(--cw-ink); color: #fff; padding: 16px 26px; border-radius: 60px; font-weight: 700; font-size: 18px; white-space: nowrap; display: inline-flex; align-items: center; gap: 10px; }
.cw-bento-cta-num .cw-ic { color: var(--cw-lime); }

/* ---------- Call strip ---------- */
.cw-strip-wrap { padding: 0 0 var(--cw-sec); }
.cw-strip-wrap.cw-pad-s { padding: 24px 0 var(--cw-sec-s); }
.cw-strip-wrap.cw-pad-t { padding: 0 0 var(--cw-sec-s); }
.cw-strip { position: relative; overflow: hidden; border-radius: 24px; padding: clamp(22px, 3vw, 32px) clamp(22px, 3vw, 40px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.cw-strip::before, .cw-strip::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.cw-strip::before { right: -60px; top: -130px; width: 320px; height: 320px; }
.cw-strip-copy { display: flex; flex-direction: column; gap: 6px; flex: 1 1 360px; position: relative; }
.cw-strip-eyebrow { font: 600 12px var(--cw-f-mono); letter-spacing: .08em; }
.cw-strip-title { margin: 0; font: 700 clamp(22px, 2.6vw, 30px)/1.1 var(--cw-f-head); letter-spacing: -.02em; }
.cw-strip-sub { margin: 0; font-size: 16px; line-height: 1.5; opacity: .8; }
.cw-strip .cw-btn { position: relative; flex: none; }
.cw-strip-green { background: var(--cw-lime); color: var(--cw-ink-2); }
.cw-strip-green::before { border: 2px solid oklch(0.22 0.01 160 / .12); }
.cw-strip-green::after { right: 60px; bottom: -90px; width: 170px; height: 170px; background: oklch(0.22 0.01 160 / .06); }
.cw-strip-dark { background: var(--cw-ink-3); color: #fff; }
.cw-strip-dark .cw-strip-eyebrow { color: var(--cw-lime); }
.cw-strip-dark .cw-strip-sub { opacity: .75; }
.cw-strip-dark::before { border: 2px solid oklch(0.88 0.15 140 / .2); }
.cw-strip-dark::after { left: -70px; bottom: -110px; width: 220px; height: 220px; background: oklch(0.88 0.15 140 / .06); }
.cw-strip-light { background: #fff; color: var(--cw-ink-2); border: 1.5px solid oklch(0.9 0.02 150); padding: clamp(22px, 3vw, 28px) clamp(22px, 3vw, 40px); }
.cw-strip-light::before, .cw-strip-light::after { display: none; }
.cw-strip-light .cw-strip-title { font-size: clamp(20px, 2.2vw, 26px); line-height: 1.15; }
.cw-strip-light .cw-strip-sub { opacity: .72; }
.cw-strip-light .cw-btn { padding: 16px 26px; font-size: 19px; }

/* ---------- How it works (stacked sticky cards) ---------- */
.cw-steps { display: flex; flex-direction: column; gap: 18px; list-style: none; margin: 0; padding: 0; }
.cw-step {
	position: sticky; top: 110px; border: 1px solid rgba(255, 255, 255, .08); border-radius: 30px; padding: clamp(28px, 4vw, 48px);
	display: flex; flex-wrap: wrap; gap: 24px 48px; align-items: center; min-height: 260px; box-shadow: 0 -24px 50px -30px rgba(0, 0, 0, .55);
}
.cw-step:nth-child(1) { top: 110px; background: var(--cw-ink-4); color: #fff; }
.cw-step:nth-child(2) { top: 134px; background: var(--cw-lime); color: var(--cw-ink); }
.cw-step:nth-child(3) { top: 158px; background: #fff; color: var(--cw-ink); }
.cw-step-n { font: 800 clamp(90px, 12vw, 170px)/.8 var(--cw-f-head); letter-spacing: -.06em; }
.cw-step:nth-child(1) .cw-step-n { color: var(--cw-lime); }
.cw-step:nth-child(2) .cw-step-n { color: var(--cw-ink); }
.cw-step:nth-child(3) .cw-step-n { color: var(--cw-green); }
.cw-step-body { flex: 1 1 320px; display: flex; flex-direction: column; gap: 12px; }
.cw-step-body .cw-mono { font-size: 12px; letter-spacing: .1em; opacity: .6; }
.cw-step-title { font: 800 clamp(30px, 3.4vw, 46px)/1 var(--cw-f-head); letter-spacing: -.03em; margin: 0; }
.cw-step-text { font-size: 17.5px; line-height: 1.55; opacity: .75; max-width: 520px; margin: 0; }
.cw-row-end { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; padding-top: 4px; }
.cw-row-end > span { font-size: 16px; opacity: .7; max-width: 640px; line-height: 1.5; }

/* ---------- Florida + timeline ---------- */
.cw-fl-grid { flex: 1.3 1 460px; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.cw-tile { background: #fff; border: 1px solid var(--cw-line); border-radius: 22px; padding: 26px; display: flex; flex-direction: column; gap: 10px; min-height: 200px; }
.cw-tile-title { font: 700 23px/1.1 var(--cw-f-head); padding-top: 12px; }
.cw-tile-text { font-size: 15.5px; line-height: 1.55; opacity: .7; }
.cw-tl { background: #fff; border: 1px solid var(--cw-line); border-radius: 28px; padding: clamp(20px, 3vw, 32px); overflow-x: auto; }
.cw-tl-grid { min-width: 760px; display: grid; grid-template-columns: 170px repeat(12, minmax(0, 1fr)); row-gap: 12px; position: relative; padding-bottom: 22px; }
.cw-tl-m { grid-row: 1; font: 600 12px var(--cw-f-mono); text-align: center; padding-bottom: 8px; color: oklch(0.2 0.01 160 / .45); }
.cw-tl-m.is-now { color: var(--cw-ink); }
.cw-tl-label { grid-column: 1; font-weight: 700; font-size: 15px; display: flex; align-items: center; gap: 10px; }
.cw-tl-label span { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.cw-tl-seg { height: 40px; border-radius: 40px; display: flex; align-items: center; padding: 0 14px; font: 600 12.5px var(--cw-f-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0 2px; }
.cw-c-sky { background: var(--cw-sky); color: var(--cw-ink); }
.cw-c-pollen { background: var(--cw-pollen); color: var(--cw-ink); }
.cw-c-lime { background: var(--cw-lime); color: var(--cw-ink); }
.cw-c-rain { background: var(--cw-rain); color: #fff; }
.cw-c-ink { background: var(--cw-ink-4); color: #fff; }
.cw-tl-now { grid-row: 1 / span 6; justify-self: center; width: 2px; background: var(--cw-ink); position: relative; pointer-events: none; opacity: .8; }
.cw-tl-now span { position: absolute; bottom: -26px; left: 50%; transform: translateX(-50%); font: 700 10.5px var(--cw-f-mono); background: var(--cw-ink); color: var(--cw-lime); padding: 3px 7px; border-radius: 5px; white-space: nowrap; }

/* ---------- Areas (home) ---------- */
.cw-areas-row { display: flex; flex-wrap: wrap; gap: 16px; }
.cw-area-main { flex: 1.2 1 420px; position: relative; isolation: isolate; overflow: hidden; background: var(--cw-ink-3); color: #fff; border-radius: 26px; padding: 32px; display: flex; flex-direction: column; gap: 20px; min-height: 360px; }
.cw-area-main::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255, 255, 255, .08) 1px, transparent 1px); background-size: 22px 22px; }
.cw-radar { position: absolute; right: -90px; bottom: -90px; z-index: -1; width: 360px; height: 360px; pointer-events: none; }
.cw-radar > span { position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid oklch(0.88 0.15 140 / .5); animation: cwRipple 4.5s ease-out infinite; }
.cw-radar > span:nth-child(2) { animation-delay: 1.5s; }
.cw-radar > span:nth-child(3) { animation-delay: 3s; }
.cw-radar b { position: absolute; inset: 25%; border-radius: 50%; border: 1px dashed rgba(255, 255, 255, .18); }
.cw-radar em { position: absolute; left: calc(50% - 9px); top: calc(50% - 9px); width: 18px; height: 18px; border-radius: 50%; background: var(--cw-lime); box-shadow: 0 0 0 6px oklch(0.88 0.15 140 / .25); }
.cw-area-main-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.cw-area-main-head strong { font: 800 36px/1 var(--cw-f-head); letter-spacing: -.03em; }
.cw-area-main-head .cw-mono { color: var(--cw-lime); }
.cw-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cw-tags li, .cw-tag { border: 1px solid rgba(255, 255, 255, .18); border-radius: 40px; padding: 9px 15px; font-size: 14.5px; font-weight: 600; }
.cw-area-main > p { font-size: 15px; opacity: .65; line-height: 1.5; margin: auto 0 0; }
.cw-area-tiles { flex: 1 1 380px; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.cw-area-tile { background: #fff; border-radius: 22px; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; min-height: 150px; transition: transform .2s, background .2s; color: var(--cw-text) !important; text-decoration: none !important; }
.cw-area-tile:hover { transform: translateY(-3px); background: var(--cw-lime); }
.cw-area-tile .cw-mono { font-size: 11px; letter-spacing: .06em; opacity: .6; }
.cw-area-tile > span:last-child { display: flex; justify-content: space-between; align-items: flex-end; gap: 8px; }
.cw-area-tile strong { font: 700 22px/1.05 var(--cw-f-head); }

/* ---------- Equipment image CTA ---------- */
.cw-imgcta { position: relative; padding: clamp(36px, 5.5vw, 80px) 0; background: var(--cw-ink); color: #fff; overflow: hidden; min-height: 560px; display: flex; align-items: center; }
.cw-imgcta > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cw-imgcta-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(100deg, var(--cw-ink) 28%, oklch(0.2 0.01 160 / .78) 58%, oklch(0.2 0.01 160 / .35) 100%); }
.cw-imgcta .ring1 { right: -140px; top: 50%; width: 560px; height: 560px; margin-top: -280px; border: 1.5px solid oklch(0.88 0.15 140 / .3); }
.cw-imgcta .ring2 { right: -40px; top: 50%; width: 360px; height: 360px; margin-top: -180px; border: 1.5px dashed oklch(0.88 0.15 140 / .3); }
.cw-imgcta-inner { position: relative; width: 100%; padding-top: clamp(72px, 9vw, 110px); padding-bottom: clamp(72px, 9vw, 110px); }
.cw-imgcta-copy { max-width: 660px; display: flex; flex-direction: column; gap: 24px; }
.cw-imgcta h2 { margin: 0; font: 800 clamp(40px, 5.4vw, 76px)/.92 var(--cw-f-head); letter-spacing: -.045em; text-wrap: balance; color: #fff; }
.cw-imgcta p { margin: 0; font-size: 18px; line-height: 1.55; color: rgba(255, 255, 255, .8); max-width: 520px; }
.cw-glass-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.cw-glass-chips a { padding: 11px 18px; border-radius: 60px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font-weight: 600; font-size: 15px; transition: all .25s; color: #fff !important; text-decoration: none !important; }
.cw-glass-chips a:hover { background: var(--cw-lime); color: var(--cw-ink) !important; border-color: var(--cw-lime); }
.cw-imgcta .cw-pill-m .cw-pill-ic { width: 50px; height: 50px; }
.cw-edge { position: absolute; left: 0; z-index: 3; pointer-events: none; display: block; width: 100%; height: clamp(36px, 5.5vw, 80px); }
.cw-edge-top { top: -1px; }
.cw-edge-bot { bottom: -1px; }

/* ---------- Guides carousel ---------- */
.cw-car-ctrl { display: flex; gap: 10px; align-items: center; }
.cw-round { width: 54px; height: 54px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700; cursor: pointer; transition: all .25s; border: 1.5px solid var(--cw-ink-3); background: transparent; color: var(--cw-ink-3); padding: 0; }
.cw-round:hover { background: var(--cw-ink-3); color: #fff; }
.cw-round.is-solid { background: var(--cw-ink-3); color: var(--cw-lime); }
.cw-round.is-solid:hover { background: var(--cw-lime); color: var(--cw-ink-3); transform: translateX(3px); }
.cw-car { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.cw-car::-webkit-scrollbar { display: none; }
.cw-gcard { flex: 0 0 min(400px, 84%); scroll-snap-align: start; display: flex; flex-direction: column; gap: 16px; background: #fff; border: 1px solid var(--cw-line); border-radius: 26px; padding: 12px 12px 24px; transition: transform .25s, box-shadow .25s, color .25s; color: var(--cw-text) !important; text-decoration: none !important; }
.cw-gcard:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -24px oklch(0.24 0.01 160 / .4); color: var(--cw-green-2) !important; }
.cw-gcard-img { aspect-ratio: 16 / 10; border-radius: 22px; overflow: hidden; background: var(--cw-mint-4); }
.cw-gcard-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cw-gcard-meta { font: 600 12px var(--cw-f-mono); letter-spacing: .06em; opacity: .6; padding: 0 12px; }
.cw-gcard-title { font: 700 23px/1.15 var(--cw-f-head); letter-spacing: -.015em; text-wrap: balance; padding: 0 12px; }
.cw-car-bar { height: 4px; border-radius: 4px; background: var(--cw-mint-4); overflow: hidden; margin-top: 26px; }
.cw-car-bar span { display: block; height: 100%; width: 20%; background: var(--cw-ink-3); border-radius: 4px; transition: width .25s; }

/* ---------- FAQ ---------- */
.cw-faq { display: flex; flex-direction: column; gap: 10px; }
.cw-faq-item { background: #fff; border: 1px solid var(--cw-line); border-radius: 18px; padding: 0; transition: border-color .25s, box-shadow .25s; }
.cw-faq-item:hover { border-color: var(--cw-lime-75); box-shadow: 0 14px 30px -20px oklch(0.24 0.01 160 / .35); }
.cw-faq-item summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 22px; font-weight: 700; font-size: 17.5px; line-height: 1.35; }
.cw-faq-item summary::-webkit-details-marker { display: none; }
.cw-faq-sign { flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--cw-mint); display: flex; align-items: center; justify-content: center; font-weight: 700; transition: background .2s; }
.cw-faq-sign::before { content: "+"; }
.cw-faq-item[open] .cw-faq-sign { background: var(--cw-lime); }
.cw-faq-item[open] .cw-faq-sign::before { content: "\2212"; }
.cw-faq-item p { margin: 0; padding: 0 22px 20px; font-size: 16px; line-height: 1.6; opacity: .75; }
.cw-faq-split > .cw-split-a { flex: 1 1 340px; }
.cw-faq-split > .cw-split-b { flex: 1.5 1 480px; }

/* ---------- Inner hero ---------- */
.cw-ihero { background: var(--cw-ink); color: #fff; position: relative; overflow: hidden; }
.cw-ihero::before { content: ""; position: absolute; right: -180px; top: -220px; width: 620px; height: 620px; border-radius: 50%; border: 1.5px solid oklch(0.88 0.15 140 / .18); pointer-events: none; }
.cw-ihero::after { content: ""; position: absolute; left: -120px; bottom: -200px; width: 420px; height: 420px; border-radius: 50%; background: oklch(0.88 0.15 140 / .05); pointer-events: none; }
.cw-ihero-inner { position: relative; z-index: 1; padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(56px, 7vw, 88px); display: flex; flex-wrap: wrap; gap: clamp(32px, 5vw, 64px); align-items: center; min-height: min(72vh, 680px); }
.cw-ihero-inner.is-short { min-height: 0; padding-bottom: clamp(48px, 6vw, 72px); }
.cw-ihero-copy { flex: 1.2 1 520px; display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.cw-crumbs ol { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 14px; color: rgba(255, 255, 255, .6); margin: 0; padding: 0; list-style: none; }
.cw-crumbs li { display: flex; gap: 8px; align-items: center; }
.cw-crumbs li + li::before { content: "/"; opacity: .4; }
.cw-crumbs a { color: rgba(255, 255, 255, .6) !important; text-decoration: none !important; }
.cw-crumbs a:hover { color: #fff !important; }
.cw-crumbs [aria-current] { color: var(--cw-lime); font-weight: 600; }
.cw-ihero h1 { margin: 0; font: 800 clamp(44px, 6vw, 92px)/.9 var(--cw-f-head); letter-spacing: -.045em; text-wrap: balance; color: #fff; overflow-wrap: anywhere; }
.cw-ihero-sub { margin: 0; font-size: clamp(18px, 1.6vw, 21px); line-height: 1.5; max-width: 600px; color: rgba(255, 255, 255, .8); text-wrap: pretty; }
.cw-ihero-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; padding-top: 6px; }
.cw-ihero-note { font-size: 14.5px; color: rgba(255, 255, 255, .6); max-width: 280px; line-height: 1.45; }
.cw-ihero-byline { margin: 0; font: 500 12.5px var(--cw-f-mono); letter-spacing: .04em; color: rgba(255, 255, 255, .55); }
.cw-ihero-media { flex: 1 1 380px; align-self: stretch; min-height: 380px; border-radius: 28px; overflow: hidden; border: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .7); position: relative; margin: 0; }
.cw-ihero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cw-ihero-search { display: flex; gap: 10px; flex-wrap: wrap; max-width: 560px; }
.cw-ihero-search input { flex: 1 1 260px; padding: 16px 20px; border-radius: 60px; border: 1.5px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .06); color: #fff; font: inherit; font-size: 16px; }
.cw-ihero-search input::placeholder { color: rgba(255, 255, 255, .5); }
.cw-ihero-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cw-ihero-chips a { display: inline-block; padding: 9px 15px; border-radius: 40px; border: 1px solid rgba(255, 255, 255, .2); color: #fff !important; text-decoration: none !important; font-weight: 600; font-size: 14px; }
.cw-ihero-chips a:hover, .cw-ihero-chips a.is-current { background: var(--cw-lime); color: var(--cw-ink) !important; border-color: var(--cw-lime); }

/* ---------- Service + area page sections ---------- */
.cw-qa-sec { padding: clamp(48px, 6vw, 72px) 0 0; }
.cw-qa-row { display: flex; flex-wrap: wrap; gap: 16px; }
.cw-qa { flex: 1.4 1 460px; background: #fff; border: 1px solid var(--cw-line); border-radius: 22px; padding: clamp(24px, 3vw, 34px); display: flex; flex-direction: column; gap: 12px; position: relative; overflow: hidden; }
.cw-qa::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--cw-lime); }
.cw-qa .cw-mono { color: var(--cw-green); letter-spacing: .1em; }
.cw-qa p { margin: 0; font: 600 clamp(19px, 1.7vw, 23px)/1.45 var(--cw-f-body); text-wrap: pretty; }
.cw-facts { flex: 1 1 340px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.cw-fact { background: var(--cw-ink-3); color: #fff; border-radius: 18px; padding: 18px; display: flex; flex-direction: column; gap: 6px; margin: 0; }
.cw-fact dt { font: 600 10.5px var(--cw-f-mono); letter-spacing: .08em; color: var(--cw-lime); }
.cw-fact dd { margin: 0; font: 700 17px/1.25 var(--cw-f-head); }
.cw-fact a { color: #fff !important; text-decoration: none !important; }
.cw-toc { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 18px; }
.cw-toc > span { font: 600 11px var(--cw-f-mono); letter-spacing: .1em; opacity: .55; margin-right: 6px; }
.cw-toc a { padding: 8px 14px; border-radius: 40px; border: 1px solid var(--cw-line-2); font-size: 14px; font-weight: 600; transition: all .2s; color: var(--cw-text) !important; text-decoration: none !important; }
.cw-toc a:hover { background: var(--cw-ink); color: #fff !important; border-color: var(--cw-ink); }
.cw-sec-a { padding: var(--cw-sec-s) 0 48px; }
.cw-sec-m { padding: 48px 0; }
.cw-checkrow { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid var(--cw-line); border-radius: 18px; padding: 18px 20px; font-size: 17px; font-weight: 600; margin: 0; }
.cw-checkrow::before { content: "\2713"; flex: none; width: 30px; height: 30px; border-radius: 9px; background: var(--cw-lime); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; }
.cw-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.cw-dark-sec { background: var(--cw-ink-2); color: #fff; padding: var(--cw-sec-s) 0; }
.cw-cards4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.cw-dcard { background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .08); border-radius: 22px; padding: 26px; display: flex; flex-direction: column; gap: 12px; min-height: 190px; }
.cw-dcard .cw-num, .cw-on-dark .cw-num { color: var(--cw-lime); }
.cw-dcard h3, .cw-wcard h3 { margin: 0; font: 700 22px/1.1 var(--cw-f-head); padding-top: 8px; color: inherit; letter-spacing: 0; }
.cw-dcard p, .cw-wcard p { margin: 0; font-size: 15.5px; line-height: 1.55; opacity: .7; }
.cw-wcard { background: #fff; border: 1px solid var(--cw-line); border-radius: 22px; padding: 26px; display: flex; flex-direction: column; gap: 10px; min-height: 180px; }
.cw-wcard h3 { font-size: 21px; line-height: 1.15; padding-top: 6px; }
.cw-cmp { display: flex; flex-wrap: wrap; gap: 16px; }
.cw-cmp > div { flex: 1 1 380px; border-radius: 26px; padding: 32px; display: flex; flex-direction: column; gap: 14px; }
.cw-cmp-a { background: var(--cw-mint-2); }
.cw-cmp-b { background: var(--cw-ink-3); color: #fff; }
.cw-cmp h3 { margin: 0; font: 700 26px/1.1 var(--cw-f-head); color: inherit; letter-spacing: 0; }
.cw-cmp ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.cw-cmp li { display: flex; gap: 12px; font-size: 16.5px; line-height: 1.5; border-top: 1px solid var(--cw-line-mint); padding-top: 12px; }
.cw-cmp li::before { content: "\2192"; font-weight: 800; color: var(--cw-green-2); }
.cw-cmp-b li { border-top-color: rgba(255, 255, 255, .1); }
.cw-cmp-b li::before { color: var(--cw-lime); }
.cw-costs { flex: 1.4 1 460px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.cw-cost { background: #fff; border: 1px solid var(--cw-line); border-radius: 22px; padding: 22px; display: flex; gap: 14px; align-items: flex-start; transition: border-color .25s; }
.cw-cost:hover { border-color: var(--cw-lime-80); }
.cw-cost-n { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--cw-mint-2); color: var(--cw-green-3); display: flex; align-items: center; justify-content: center; font: 700 13px var(--cw-f-mono); }
.cw-cost h3 { margin: 0 0 4px; font: 700 18px/1.2 var(--cw-f-head); letter-spacing: 0; }
.cw-cost p { margin: 0; font-size: 14.5px; line-height: 1.5; opacity: .7; }
.cw-flow { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.cw-flow li { border-top: 3px solid var(--cw-ink-3); padding-top: 20px; display: flex; flex-direction: column; gap: 10px; }
.cw-flow b { font: 800 44px/.9 var(--cw-f-head); color: var(--cw-green); }
.cw-flow strong { font: 700 20px/1.15 var(--cw-f-head); }
.cw-flow span { font-size: 15.5px; line-height: 1.55; opacity: .7; }
.cw-urg { display: flex; flex-wrap: wrap; gap: 16px; }
.cw-urg > div { flex: 1 1 380px; border-radius: 26px; padding: 32px; display: flex; flex-direction: column; gap: 14px; position: relative; overflow: hidden; }
.cw-urg-now { background: var(--cw-ink); color: #fff; }
.cw-urg-now::before { content: ""; position: absolute; right: -60px; top: -60px; width: 200px; height: 200px; border-radius: 50%; border: 2px solid oklch(0.88 0.15 140 / .25); }
.cw-urg-wait { background: var(--cw-mint-2); }
.cw-urg .cw-chip { align-self: flex-start; font-weight: 700; letter-spacing: .08em; }
.cw-urg ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.cw-urg li { display: flex; gap: 12px; font-size: 16.5px; line-height: 1.5; border-top: 1px solid rgba(255, 255, 255, .1); padding-top: 12px; }
.cw-urg-now li::before { content: "!"; color: var(--cw-lime); font-weight: 800; }
.cw-urg-wait li { border-top-color: var(--cw-line-mint); }
.cw-urg-wait li::before { content: "\2192"; color: var(--cw-green-2); font-weight: 800; }
.cw-urg .cw-btn { align-self: flex-start; margin-top: 8px; position: relative; }
.cw-mint-sec { background: var(--cw-mint); padding: clamp(64px, 8vw, 96px) 0; }
.cw-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; counter-reset: cwc; }
.cw-checks li { counter-increment: cwc; background: #fff; border-radius: 18px; padding: 18px 20px; display: flex; gap: 16px; align-items: center; font-size: 16.5px; font-weight: 600; line-height: 1.4; }
.cw-checks li::before { content: counter(cwc); flex: none; width: 34px; height: 34px; border-radius: 10px; border: 2px solid var(--cw-ink); display: flex; align-items: center; justify-content: center; font: 700 13px var(--cw-f-mono); box-sizing: border-box; }
.cw-related { flex: 1 1 320px; display: flex; flex-direction: column; gap: 10px; }
.cw-related .cw-eyebrow + .cw-eyebrow, .cw-related .cw-gap { padding-top: 18px; }
.cw-rel-link { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--cw-mint); border-radius: 16px; padding: 18px 20px; font-weight: 700; font-size: 17px; color: var(--cw-text) !important; text-decoration: none !important; transition: background .2s; }
.cw-rel-link:hover { background: var(--cw-lime); }
.cw-chiplinks { display: flex; flex-wrap: wrap; gap: 8px; }
.cw-chiplinks a { border: 1.5px solid var(--cw-ink-3); border-radius: 40px; padding: 8px 14px; font-weight: 600; font-size: 14.5px; color: var(--cw-text) !important; text-decoration: none !important; transition: all .2s; }
.cw-chiplinks a:hover { background: var(--cw-ink-3); color: #fff !important; }
.cw-chiplinks.is-lg a { padding: 9px 16px; font-size: 16px; }
.cw-rel-guide { border: 1.5px solid var(--cw-line); border-radius: 16px; padding: 18px 20px; font: 700 19px/1.25 var(--cw-f-head); color: var(--cw-text) !important; text-decoration: none !important; transition: border-color .2s; }
.cw-rel-guide:hover { border-color: var(--cw-ink-3); }
.cw-hoods-card { flex: 1.2 1 440px; background: var(--cw-ink-3); color: #fff; border-radius: 26px; padding: 32px; display: flex; flex-direction: column; gap: 18px; }
.cw-hoods-card .cw-mono { color: var(--cw-lime); }
.cw-hoods-card .cw-tags li { font-size: 15px; }
.cw-zip-row { display: flex; flex-wrap: wrap; gap: 16px; }
.cw-zips { flex: 1 1 380px; background: #fff; border: 1px solid var(--cw-line); border-radius: 22px; padding: 32px; display: flex; flex-direction: column; gap: 16px; }
.cw-zips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cw-zips li { font: 600 17px var(--cw-f-mono); background: var(--cw-mint-3); border-radius: 12px; padding: 10px 14px; }
.cw-tip { flex: 1.3 1 440px; position: relative; overflow: hidden; background: var(--cw-ink-3); color: #fff; border-radius: 22px; padding: 32px; display: flex; flex-direction: column; gap: 14px; }
.cw-tip::before { content: ""; position: absolute; inset: 0; opacity: .5; background-image: repeating-radial-gradient(circle at 100% 100%, transparent 0 30px, oklch(0.88 0.15 140 / .12) 30px 31.5px); }
.cw-tip > * { position: relative; }
.cw-tip .cw-eyebrow { color: var(--cw-lime); }
.cw-tip p { margin: 0; font: 700 clamp(22px, 2.2vw, 28px)/1.25 var(--cw-f-head); letter-spacing: -.015em; text-wrap: pretty; }
.cw-svc-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.cw-svc-links a { background: #fff; border-radius: 18px; padding: 20px 22px; display: flex; justify-content: space-between; align-items: center; gap: 12px; font-weight: 700; font-size: 17px; color: var(--cw-text) !important; text-decoration: none !important; transition: background .2s; }
.cw-svc-links a:hover { background: var(--cw-lime); }
.cw-other { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding-top: 12px; }
.cw-other > .cw-mono { font-size: 12px; opacity: .6; margin-right: 6px; }
.cw-minipost { display: flex; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--cw-line); border-radius: 18px; padding: 10px; transition: transform .25s; color: var(--cw-text) !important; text-decoration: none !important; }
.cw-minipost:hover { transform: translateX(4px); }
.cw-minipost img { flex: none; width: 96px; height: 76px; border-radius: 12px; object-fit: cover; }
.cw-minipost > span { display: flex; flex-direction: column; gap: 4px; }
.cw-minipost .cw-mono { font-size: 10.5px; letter-spacing: .06em; opacity: .6; }
.cw-minipost strong { font: 700 16.5px/1.25 var(--cw-f-head); }

/* ---------- Blog index + archives ---------- */
.cw-grid-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 36px 20px; }
.cw-pcard { display: flex; flex-direction: column; gap: 14px; color: var(--cw-text) !important; text-decoration: none !important; transition: color .2s; }
.cw-pcard:hover { color: var(--cw-green-2) !important; }
.cw-pcard-img { aspect-ratio: 16 / 10; border-radius: 22px; overflow: hidden; background: var(--cw-mint-4); }
.cw-pcard-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--cw-ease); }
.cw-pcard:hover .cw-pcard-img img { transform: scale(1.04); }
.cw-pcard .cw-mono { font-size: 12px; letter-spacing: .06em; opacity: .6; }
.cw-pcard-title { font: 700 24px/1.15 var(--cw-f-head); letter-spacing: -.015em; text-wrap: balance; margin: 0; }
.cw-pcard-ex { font-size: 15.5px; line-height: 1.55; opacity: .7; margin: 0; }
.cw-pager { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; padding-top: 48px; }
.cw-pager .page-numbers { min-width: 48px; height: 48px; padding: 0 16px; border-radius: 40px; border: 1.5px solid var(--cw-ink-3); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; color: var(--cw-text) !important; text-decoration: none !important; box-sizing: border-box; }
.cw-pager .page-numbers.current, .cw-pager a.page-numbers:hover { background: var(--cw-ink-3); color: #fff !important; }
.cw-empty { font-size: 18px; opacity: .7; }

/* ---------- Article layout (posts, problems, generic pages) ---------- */
.cw-article-sec { padding: clamp(56px, 8vw, 96px) 0; }
.cw-article-row { display: flex; flex-wrap: wrap-reverse; gap: clamp(32px, 5vw, 64px); align-items: flex-end; } /* wrap-reverse flips the cross axis: flex-end = top */
.cw-article { flex: 1 1 560px; max-width: 760px; display: flex; flex-direction: column; gap: 26px; min-width: 0; }
.cw-aside { flex: 0 1 320px; position: sticky; top: 100px; display: flex; flex-direction: column; gap: 14px; }
.cw-aside-call { background: var(--cw-ink-3); color: #fff; border-radius: 22px; padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.cw-aside-call strong { font: 700 22px/1.15 var(--cw-f-head); }
.cw-aside-call span { font-size: 15px; opacity: .7; line-height: 1.5; }
.cw-aside-call .cw-btn { padding: 15px; font-size: 18px; }
.cw-aside-links { border: 1px solid var(--cw-line); border-radius: 22px; padding: 22px; display: flex; flex-direction: column; gap: 4px; }
.cw-aside-links .cw-mono { opacity: .6; padding-bottom: 8px; }
.cw-aside-links a { padding: 10px 0; border-top: 1px solid var(--cw-line-4); font-weight: 600; font-size: 15.5px; line-height: 1.35; color: var(--cw-text) !important; text-decoration: none !important; }
.cw-aside-links a:hover { color: var(--cw-green-2) !important; }
.cw-relsvc { background: var(--cw-mint-2); border-radius: 22px; padding: 24px 26px; display: flex; justify-content: space-between; align-items: center; gap: 16px; color: var(--cw-text) !important; text-decoration: none !important; transition: background .2s; }
.cw-relsvc:hover { background: var(--cw-lime); }
.cw-relsvc > span:first-child { display: flex; flex-direction: column; gap: 4px; }
.cw-relsvc .cw-mono { opacity: .65; }
.cw-relsvc strong { font: 700 22px var(--cw-f-head); }
.cw-relsvc > span:last-child { font-size: 22px; font-weight: 700; }
.cw-callbox { background: var(--cw-ink-3); color: #fff !important; border-radius: 22px; padding: 26px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; text-decoration: none !important; }
.cw-callbox > span:first-child { font: 700 24px/1.15 var(--cw-f-head); max-width: 380px; }
.cw-callbox > span:last-child { background: var(--cw-lime); color: var(--cw-ink); padding: 16px 24px; border-radius: 60px; font-weight: 700; font-size: 18px; display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.cw-answer { background: #fff; border: 1px solid var(--cw-line); border-radius: 22px; padding: clamp(22px, 3vw, 30px); position: relative; overflow: hidden; }
.cw-answer::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--cw-lime); }
.cw-answer .cw-mono { color: var(--cw-green); letter-spacing: .1em; display: block; margin-bottom: 10px; }
.cw-answer p { margin: 0; font: 600 clamp(18px, 1.6vw, 21px)/1.5 var(--cw-f-body); }
.cw-when { background: var(--cw-ink-3); color: #fff; border-radius: 22px; padding: 26px 28px; }
.cw-when .cw-mono { color: var(--cw-lime); display: block; margin-bottom: 10px; }
.cw-when p { margin: 0; font-size: 17px; line-height: 1.6; opacity: .9; }

/* ---------- About / contact / legal ---------- */
.cw-about-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.cw-about-card { background: #fff; border: 1px solid var(--cw-line); border-radius: 24px; padding: 30px; display: flex; flex-direction: column; gap: 12px; min-height: 240px; }
.cw-about-card .cw-mono { color: var(--cw-green); }
.cw-about-card h2 { margin: 0; font: 700 28px/1.05 var(--cw-f-head); letter-spacing: -.02em; padding-top: 10px; }
.cw-about-card p { margin: 0; font-size: 16px; line-height: 1.6; opacity: .72; }
.cw-does { display: flex; flex-wrap: wrap; gap: 16px; }
.cw-does > div { flex: 1 1 420px; border-radius: 26px; padding: 34px; display: flex; flex-direction: column; gap: 14px; }
.cw-does h2 { margin: 0; font: 800 clamp(28px, 3vw, 40px)/1 var(--cw-f-head); letter-spacing: -.03em; color: inherit; }
.cw-does ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.cw-does li { display: flex; gap: 12px; font-size: 16.5px; line-height: 1.5; padding-top: 12px; }
.cw-does-yes { background: var(--cw-ink-3); color: #fff; }
.cw-does-yes li { border-top: 1px solid rgba(255, 255, 255, .1); }
.cw-does-yes li::before { content: "\2713"; color: var(--cw-lime); font-weight: 800; }
.cw-does-no { background: var(--cw-mint-2); }
.cw-does-no li { border-top: 1px solid var(--cw-line-mint); }
.cw-does-no li::before { content: "\00D7"; font-weight: 800; }
.cw-page-body { max-width: 760px; }
.cw-contact { display: flex; flex-wrap: wrap; gap: 20px; align-items: stretch; }
.cw-contact > div { flex: 1 1 420px; border-radius: 28px; padding: clamp(28px, 4vw, 44px); display: flex; flex-direction: column; gap: 18px; }
.cw-contact-call { background: var(--cw-lime); }
.cw-contact-call .cw-mono { letter-spacing: .1em; }
.cw-contact-call h2 { margin: 0; font: 800 clamp(34px, 4vw, 52px)/.95 var(--cw-f-head); letter-spacing: -.04em; }
.cw-contact-call p { margin: 0; font-size: 17px; line-height: 1.55; opacity: .8; max-width: 420px; }
.cw-contact-call .cw-pill { margin-top: auto; }
.cw-contact-form { background: #fff; border: 1px solid var(--cw-line); }
.cw-contact-form .cw-mono { color: var(--cw-green); letter-spacing: .1em; }
.cw-form { display: flex; flex-direction: column; gap: 14px; }
.cw-form label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; }
.cw-form input, .cw-form textarea { padding: 15px 16px; border-radius: 14px; border: 1.5px solid var(--cw-line-3); background: var(--cw-base); font: inherit; font-size: 16px; font-weight: 400; color: var(--cw-text); }
.cw-form input:focus, .cw-form textarea:focus { outline: none; border-color: var(--cw-green); }
.cw-form textarea { resize: vertical; }
.cw-form .cw-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cw-form button { cursor: pointer; background: var(--cw-ink-3); color: #fff; padding: 16px; border-radius: 60px; text-align: center; font: 700 17px var(--cw-f-body); border: 0; transition: background .2s; }
.cw-form button:hover { background: var(--cw-ink-5); }
.cw-form-msg { padding: 14px 16px; border-radius: 14px; font-size: 15px; margin: 0; }
.cw-form-msg.is-ok { background: var(--cw-mint-2); }
.cw-form-msg.is-err { background: oklch(0.95 0.04 30); }
.cw-sent strong { display: block; font: 800 32px/1 var(--cw-f-head); margin-bottom: 12px; }
.cw-legal-row { display: flex; flex-wrap: wrap; gap: clamp(32px, 5vw, 64px); align-items: flex-start; }
.cw-legal-tabs { flex: 0 1 260px; position: sticky; top: 100px; display: flex; flex-direction: column; gap: 4px; background: #fff; border: 1px solid var(--cw-line); border-radius: 20px; padding: 12px; }
.cw-legal-tabs a { padding: 13px 14px; border-radius: 12px; font-weight: 700; font-size: 16px; color: var(--cw-ink-3) !important; text-decoration: none !important; }
.cw-legal-tabs a:hover { background: var(--cw-mint); }
.cw-legal-tabs a[aria-current] { background: var(--cw-ink-3); color: #fff !important; }
.cw-legal { flex: 1 1 520px; max-width: 760px; display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.cw-legal .cw-meta { font: 600 12.5px var(--cw-f-mono); letter-spacing: .06em; opacity: .6; }
.cw-legal section { display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--cw-line); padding-top: 20px; }
.cw-legal section h2 { margin: 0; font: 700 26px/1.15 var(--cw-f-head); letter-spacing: -.02em; }
.cw-legal section p { margin: 0; font-size: 17px; line-height: 1.7; opacity: .8; }

/* ---------- Final CTA ---------- */
.cw-final { position: relative; background: var(--cw-lime); color: var(--cw-ink); overflow: hidden; }
.cw-final-ripple { position: absolute; right: -160px; top: 50%; margin-top: -300px; width: 600px; height: 600px; pointer-events: none; }
.cw-final-ripple > span { position: absolute; inset: 0; border-radius: 50%; border: 2px solid oklch(0.2 0.01 160 / .35); animation: cwRipple 4.5s ease-out infinite; }
.cw-final-ripple > span:nth-child(2) { animation-delay: 1.5s; }
.cw-final-ripple > span:nth-child(3) { animation-delay: 3s; }
.cw-final-ripple b { position: absolute; left: 210px; top: 210px; width: 180px; height: 180px; border-radius: 50%; background: var(--cw-ink); color: var(--cw-lime); display: flex; align-items: center; justify-content: center; }
.cw-final-inner { position: relative; padding-top: var(--cw-sec); padding-bottom: var(--cw-sec); display: flex; flex-direction: column; gap: 28px; }
.cw-final .cw-eyebrow { color: var(--cw-ink); }
.cw-final h2 { margin: 0; font: 800 clamp(44px, 7vw, 108px)/.88 var(--cw-f-head); letter-spacing: -.05em; max-width: 1000px; text-wrap: balance; color: var(--cw-ink); }
.cw-final-row { display: flex; flex-wrap: wrap; gap: 20px 40px; align-items: center; justify-content: space-between; border-top: 2px solid var(--cw-ink); padding-top: 28px; }
.cw-final-num { font: 800 clamp(40px, 6vw, 84px)/1 var(--cw-f-head); letter-spacing: -.03em; color: var(--cw-ink) !important; text-decoration: none !important; transition: transform .3s, color .3s; display: inline-flex; align-items: center; gap: .25em; }
.cw-final-num:hover { color: oklch(0.35 0.03 160) !important; transform: translateX(8px); }
.cw-final-num .cw-ic { width: .8em; height: .8em; }
.cw-final-row > span { font-size: 16px; line-height: 1.55; max-width: 360px; }

/* ---------- Footer ---------- */
.cw-footer { background: var(--cw-deep); color: rgba(255, 255, 255, .75); padding: clamp(56px, 7vw, 80px) 0 28px; }
.cw-footer .cw-wrap { display: flex; flex-direction: column; gap: 44px; }
.cw-footer-top { display: flex; flex-wrap: wrap; gap: 40px; justify-content: space-between; }
.cw-footer-brand { flex: 1 1 300px; max-width: 380px; display: flex; flex-direction: column; gap: 16px; }
.cw-footer-brand .cw-logo-mark::after { border-color: var(--cw-deep); }
.cw-footer-brand .cw-logo-name { font-size: 19px; }
.cw-footer-brand p { margin: 0; font-size: 15px; line-height: 1.6; }
.cw-footer-brand .cw-btn { align-self: flex-start; padding: 14px 22px; font-size: 18px; }
.cw-footer-cols { flex: 2 1 520px; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 28px; }
.cw-footer-cols nav { display: flex; flex-direction: column; gap: 10px; }
.cw-footer-cols .cw-mono { color: var(--cw-lime); letter-spacing: .1em; padding-bottom: 4px; }
.cw-footer-cols a { font-size: 15px; color: rgba(255, 255, 255, .75) !important; text-decoration: none !important; }
.cw-footer-cols a:hover { color: #fff !important; }
.cw-footer-legal { border-top: 1px solid rgba(255, 255, 255, .1); padding-top: 24px; display: flex; flex-direction: column; gap: 10px; font-size: 13.5px; line-height: 1.6; }
.cw-footer-legal p { margin: 0; }
.cw-footer-legal p:first-child { color: rgba(255, 255, 255, .85); }
.cw-footer-legal b { color: #fff; }
.cw-footer-legal p:last-child { opacity: .55; }

/* ---------- Floating: back to top + mobile call bar ---------- */
.cw-totop { position: fixed; right: 28px; bottom: 28px; z-index: 55; width: 56px; height: 56px; border-radius: 50%; background: var(--cw-ink); color: var(--cw-lime); border: 1px solid rgba(255, 255, 255, .12); display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700; cursor: pointer; opacity: 0; transform: translateY(20px); pointer-events: none; transition: opacity .3s, transform .3s, background .25s; box-shadow: 0 16px 34px -14px rgba(0, 0, 0, .5); padding: 0; }
.cw-totop.is-on { opacity: 1; transform: none; pointer-events: auto; }
.cw-totop:hover { background: var(--cw-lime); color: var(--cw-ink); }
.cw-callbar { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: 10px 12px calc(12px + env(safe-area-inset-bottom)); background: oklch(0.17 0.01 160 / .96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-top: 1px solid rgba(255, 255, 255, .1); }
.cw-callbar a { display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--cw-lime); color: var(--cw-deep) !important; border-radius: 60px; padding: 17px; font-weight: 800; font-size: 19px; min-height: 56px; box-sizing: border-box; animation: cwPulse 2.2s infinite; text-decoration: none !important; }

/* ---------- Scroll reveal (added by cw.js only when motion is allowed) ---------- */
.cw-js .cw-rv { opacity: 0; transform: translateY(32px); transition: opacity .8s ease var(--rv-d, 0ms), transform .8s var(--cw-ease) var(--rv-d, 0ms); }
.cw-js .cw-rv.is-in { opacity: 1; transform: none; }

/* ==========================================================================
   Post content (existing library pages, guides, problems, hubs)
   ========================================================================== */
.cw-prose { font-size: 17.5px; line-height: 1.75; color: var(--cw-text); }
.cw-prose > * { margin-block: 0 0; }
.cw-prose > * + * { margin-top: 1.15em; }
.cw-prose > .wp-block-post-content > * + * { margin-top: 1.15em; }
.cw-prose .wp-block-post-content > :first-child { margin-top: 0; }
.cw-prose p { text-wrap: pretty; }
.cw-prose h2 { font: 700 clamp(28px, 3vw, 36px)/1.1 var(--cw-f-head); letter-spacing: -.025em; margin-top: 1.9em !important; }
.cw-prose h3 { font: 700 clamp(21px, 2vw, 25px)/1.2 var(--cw-f-head); letter-spacing: -.015em; margin-top: 1.6em !important; }
.cw-prose h4 { font: 700 18px/1.3 var(--cw-f-body); margin-top: 1.4em !important; }
.cw-prose a { color: var(--cw-green-2); }
.cw-prose strong { font-weight: 700; }
.cw-prose ul:not([class*="is-style"]), .cw-prose ol:not([class*="is-style"]) { padding-left: 1.3em; }
.cw-prose li + li { margin-top: .4em; }
.cw-prose li::marker { color: var(--cw-green); }
.cw-prose .has-muted-color { color: oklch(0.45 0.01 160) !important; }
.cw-prose .has-medium-font-size { font-size: clamp(19px, 1.7vw, 21px) !important; line-height: 1.6; }
.cw-prose .has-small-font-size { font-size: 15px !important; }
.cw-prose img { border-radius: 22px; height: auto; }
.cw-prose figure { margin-inline: 0; }
.cw-prose figcaption { font-size: 14px; opacity: .65; margin-top: 8px; }
.cw-prose hr, .cw-prose .wp-block-separator { border: 0; border-top: 1px solid var(--cw-line); margin: 2em 0; opacity: 1; }
.cw-prose blockquote { margin-inline: 0; border-left: 4px solid var(--cw-lime); padding-left: 22px; font-size: 19px; }

/* Checklist + numbered circles */
.cw-prose .is-style-checklist { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.cw-prose .is-style-checklist li { position: relative; background: #fff; border: 1px solid var(--cw-line); border-radius: 16px; padding: 14px 18px 14px 58px; margin: 0; line-height: 1.55; }
.cw-prose .is-style-checklist li::before { content: "\2713"; position: absolute; left: 16px; top: 13px; width: 28px; height: 28px; border-radius: 8px; background: var(--cw-lime); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; color: var(--cw-ink); }
.cw-prose .is-style-numbered-circles { list-style: none; padding: 0; counter-reset: cwn; display: flex; flex-direction: column; gap: 12px; }
.cw-prose .is-style-numbered-circles li { counter-increment: cwn; position: relative; padding-left: 56px; margin: 0; min-height: 38px; }
.cw-prose .is-style-numbered-circles li::before { content: counter(cwn, decimal-leading-zero); position: absolute; left: 0; top: 0; width: 38px; height: 38px; border-radius: 50%; background: var(--cw-mint-2); color: var(--cw-green-3); display: flex; align-items: center; justify-content: center; font: 700 13px var(--cw-f-mono); }

/* Callout, card and mint groups */
.cw-prose .is-style-callout { background: var(--cw-mint) !important; border-radius: 22px; padding: clamp(22px, 3vw, 30px) !important; border: 0; position: relative; overflow: hidden; }
.cw-prose .is-style-callout > * + * { margin-top: .8em; }
.cw-prose .is-style-callout h3 { margin-top: 0 !important; }
.cw-prose .is-style-card { background: #fff; border: 1px solid var(--cw-line); border-radius: 22px; padding: clamp(20px, 3vw, 28px) !important; }
.cw-prose .is-style-card > * + * { margin-top: .7em; }
.cw-prose .is-style-card h3 { margin-top: 0 !important; }
.cw-prose .has-primary-light-background-color { background-color: var(--cw-mint) !important; }
.cw-prose .wp-block-columns { gap: 16px; }

/* Buttons inside content: call buttons become lime pills */
.cw-prose .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.cw-prose .wp-block-button__link, .cw-prose .is-style-call .wp-block-button__link { display: inline-flex; align-items: center; gap: 10px; background: var(--cw-ink-3); color: #fff !important; border-radius: 60px; padding: 15px 24px; font: 700 17px var(--cw-f-body); text-decoration: none !important; transition: transform .25s, background .25s; }
.cw-prose .is-style-call .wp-block-button__link { background: var(--cw-lime); color: var(--cw-ink) !important; }
.cw-prose .wp-block-button__link:hover { transform: translateY(-3px); }
.cw-prose .is-style-callout .is-style-call .wp-block-button__link { background: var(--cw-ink-3); color: #fff !important; }

/* Tables */
.cw-prose .wp-block-table { overflow-x: auto; }
.cw-prose table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--cw-line); border-radius: 18px; overflow: hidden; font-size: 15.5px; line-height: 1.5; }
.cw-prose th, .cw-prose td { padding: 14px 16px; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--cw-line-4); }
.cw-prose thead th { background: var(--cw-ink-3); color: #fff; font: 600 12px var(--cw-f-mono); letter-spacing: .06em; text-transform: uppercase; }
.cw-prose tr:last-child td { border-bottom: 0; }
.cw-prose .is-style-zebra tbody tr:nth-child(even) td { background: var(--cw-mint-3); }

/* FAQ details blocks */
.cw-prose details, .cw-prose .is-style-faq { background: #fff; border: 1px solid var(--cw-line); border-radius: 18px; padding: 0 !important; transition: border-color .25s, box-shadow .25s; }
.cw-prose details + details { margin-top: 10px !important; }
.cw-prose details:hover { border-color: var(--cw-lime-75); box-shadow: 0 14px 30px -20px oklch(0.24 0.01 160 / .35); }
.cw-prose details summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 22px; font-weight: 700; font-size: 17px; line-height: 1.35; }
.cw-prose details summary::-webkit-details-marker { display: none; }
.cw-prose details summary::after { content: "+"; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--cw-mint); display: flex; align-items: center; justify-content: center; font-weight: 700; }
.cw-prose details[open] summary::after { content: "\2212"; background: var(--cw-lime); }
.cw-prose details > :not(summary) { padding: 0 22px; margin: 0 0 18px !important; font-size: 16px; line-height: 1.65; opacity: .8; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1099px) {
	.cw-nav, .cw-topbar-areas { display: none; }
	.cw-burger { display: inline-flex; }
	.cw-header-call .cw-call-full { display: none; }
	.cw-header-call .cw-call-short { display: inline; }
	.cw-callbar { display: block; }
	.cw-footer { padding-bottom: calc(28px + 84px); }
	.cw-totop { display: none; }
	.cw-final-ripple { display: none; }
	.cw-panel { display: none !important; }
}
@media (max-width: 900px) {
	.cw-aside, .cw-legal-tabs, .cw-sticky { position: static; }
	.cw-aside { flex: 1 1 100%; }
	.cw-legal-tabs { flex: 1 1 100%; flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 519px) {
	.cw-header-bar { gap: 12px; }
	.cw-logo-tag { display: none; }
	.cw-logo-name { font-size: 16px; white-space: normal; max-width: 9.5em; line-height: 1.1; }
	.cw-logo-mark { width: 36px; height: 36px; }
	.cw-header-call { padding: 11px 16px; }
	.cw-burger { width: 44px; height: 44px; }
	.cw-header-actions { gap: 8px; }
}
@media (max-width: 639px) {
	.cw-feat, .cw-bento-cta { grid-column: 1 / -1; }
	.cw-feat { min-height: 440px; }
	.cw-bento { grid-template-columns: 1fr; }
	.cw-hero h1 { font-size: clamp(46px, 13vw, 64px); }
	.cw-pill { padding-right: 22px; gap: 12px; }
	.cw-pill-ic { width: 48px; height: 48px; }
	.cw-btn-ghost { padding: 18px 22px; }
	.cw-probs { padding: 20px; }
	.cw-facts { grid-template-columns: 1fr 1fr; }
	.cw-step { position: relative; top: auto !important; }
	.cw-head-side { flex-basis: 100%; }
	.cw-grid-posts { grid-template-columns: 1fr; }
	.cw-final-num { font-size: clamp(34px, 10vw, 48px); }
	.cw-strip .cw-btn { width: 100%; }
	.cw-split > .cw-split-a, .cw-split > .cw-split-b, .cw-qa, .cw-facts, .cw-costs, .cw-fl-grid, .cw-area-main, .cw-area-tiles, .cw-cmp > div, .cw-urg > div, .cw-zips, .cw-tip, .cw-hoods-card, .cw-contact > div, .cw-does > div, .cw-article, .cw-legal { flex-basis: 100%; }
	.cw-grid-posts { grid-template-columns: minmax(0, 1fr); }
	.cw-svc-links { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.cw-marquee-track { animation: none; }
	.cw-js .cw-rv { opacity: 1; transform: none; }
}

/* Template-part wrappers must not trap the sticky header. */
.cw-part { display: contents; }
.cw-article-sec, .cw-article-sec > *, .cw-article-row > *, .cw-article > * { margin-block-start: 0; }
.cw-article > .cw-prose { margin: 0; }
body { padding: 0 !important; }

/* Related pool topics band (patterns/topic-links.php) */
.cw-topics { border-top: 1px solid var(--cw-line); }
.cw-topics .cw-mono { color: var(--cw-green-3); }
.cw-topics-h { margin: 8px 0 16px; font: 800 clamp(24px, 3vw, 32px)/1.1 var(--cw-f-head); letter-spacing: -.02em; }
.cw-topics-sub { margin: 18px 0 10px; font: 600 11.5px/1.3 var(--cw-f-mono); letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
