/* ==========================================================
   Greenwood Water Heater Blocks
   Navy for trust, orange for heat. Every call button glows softly.
   ========================================================== */

:root {
	--gwh-navy: #0B2545;
	--gwh-navy-2: #123A6B;
	--gwh-ink: #334155;
	--gwh-blue: #1D5FD1;
	--gwh-sky: #E8F1FD;
	--gwh-orange: #F26A1B;
	--gwh-amber: #FFB020;
	--gwh-cream: #FFF4EA;
	--gwh-line: #E3EAF3;
	--gwh-r: 16px;
	--gwh-section: clamp(3.5rem, 8vw, 6rem);
	--gwh-shadow: 0 10px 30px rgba(11, 37, 69, 0.08);
	--gwh-i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2Z'/%3E%3C/svg%3E");
	--gwh-i-wrench: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0 5 5l-9.4 9.4a2.1 2.1 0 0 1-3-3l9.4-9.4a4 4 0 0 0-2-2Z'/%3E%3Cpath d='M14.7 6.3 17 4l3 3-2.3 2.3'/%3E%3C/svg%3E");
	--gwh-i-tank: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='3' width='12' height='17' rx='4'/%3E%3Cpath d='M6 8h12M10 13h4M9 20v2M15 20v2'/%3E%3C/svg%3E");
	--gwh-i-tools: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l6-6M14 4l6 6-4 4-6-6 4-4ZM7 13l4 4'/%3E%3C/svg%3E");
	--gwh-i-bolt: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7l1-8Z'/%3E%3C/svg%3E");
	--gwh-i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
	--gwh-i-drop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c4 5 6 8.5 6 11.5a6 6 0 0 1-12 0C6 11.5 8 8 12 3Z'/%3E%3C/svg%3E");
	--gwh-i-thermo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 4a2 2 0 0 1 4 0v10.5a4 4 0 1 1-4 0V4Z'/%3E%3Cpath d='M12 9v7'/%3E%3C/svg%3E");
	--gwh-i-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10v4h4l5 4V6L8 10H4Z'/%3E%3Cpath d='M16 9a4 4 0 0 1 0 6M18.5 6.5a8 8 0 0 1 0 11'/%3E%3C/svg%3E");
	--gwh-i-flame: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c1 4 5 5.5 5 10a5 5 0 0 1-10 0c0-2.5 1.5-4 2.5-5 .3 2 1.5 3 2.5 3-1-3 0-6 0-8Z'/%3E%3C/svg%3E");
	--gwh-i-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 2 20h20L12 3Z'/%3E%3Cpath d='M12 10v4M12 17h.01'/%3E%3C/svg%3E");
	--gwh-i-gauge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16a8 8 0 1 1 16 0'/%3E%3Cpath d='M12 16l4-5'/%3E%3C/svg%3E");
	--gwh-i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6-7-11a7 7 0 0 1 14 0c0 5-7 11-7 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
	--gwh-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	--gwh-i-tag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12V4h8l10 10-8 8L3 12Z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5'/%3E%3C/svg%3E");
}

html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--gwh-amber); outline-offset: 3px; }

/* Sections sit edge to edge */
.wp-site-blocks > * { margin-block: 0; }
.gwh-main { margin: 0 !important; padding: 0 !important; }
.gwh-main > .wp-block-post-content > .alignfull { margin-block: 0 !important; }
.gwh-section { padding-block: var(--gwh-section) !important; position: relative; }
.gwh-center { text-align: center; }
.gwh-center > * { margin-inline: auto; }
.gwh-center .wp-block-buttons, .gwh-center-buttons { justify-content: center; }
.gwh-head { max-width: 700px; margin: 0 auto clamp(1.8rem, 4vw, 2.8rem) !important; text-align: center; }
.gwh-head > p { font-size: 1.06rem; }
.gwh-muted { color: #64748B; }
.gwh-warm { background: var(--gwh-cream); }

/* ---------- Bands ---------- */
.is-style-soft-band { background: #EEF4FC; }
.is-style-navy-band {
	background: radial-gradient(900px 400px at 85% -10%, rgba(242, 106, 27, 0.25), transparent 60%), linear-gradient(150deg, #0B2545 0%, #123A6B 100%);
	color: #CFDAEA; position: relative; overflow: hidden;
}
.is-style-navy-band :where(h1, h2, h3) { color: #fff; }
.is-style-heat-band {
	position: relative; overflow: hidden; isolation: isolate;
	background: linear-gradient(135deg, #FFB020 0%, #F26A1B 60%, #E4561A 100%);
	color: #fff; padding-block: clamp(3.2rem, 7vw, 5rem) !important;
}
.is-style-heat-band :where(h1, h2, h3, p) { color: #fff; }
.is-style-heat-band h2 { font-size: clamp(1.9rem, 4vw, 2.8rem); }

/* ---------- Cards with icons ---------- */
.is-style-card {
	position: relative; background: #fff; border: 1px solid var(--gwh-line); border-radius: var(--gwh-r);
	box-shadow: var(--gwh-shadow); padding: clamp(1.3rem, 3vw, 1.8rem);
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.is-style-card-dark {
	position: relative; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--gwh-r); padding: clamp(1.3rem, 3vw, 1.8rem);
	transition: transform .3s ease, background-color .3s ease;
}
.is-style-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(11, 37, 69, 0.12); border-color: #FFD3B5; }
.is-style-card-dark:hover { transform: translateY(-6px); background: rgba(255, 255, 255, 0.1); }
.is-style-card > :first-child { margin-top: 0; }
.is-style-card h3 { margin-bottom: 0.4rem; }
.is-style-card h3 a { color: var(--gwh-navy); text-decoration: none; }
.is-style-card h3 a:hover { color: var(--gwh-orange); }

.gwh-ico { padding-top: calc(clamp(1.3rem, 3vw, 1.8rem) + 62px) !important; }
.gwh-ico::before {
	content: ""; position: absolute; left: clamp(1.3rem, 3vw, 1.8rem); top: clamp(1.3rem, 3vw, 1.8rem);
	width: 50px; height: 50px; border-radius: 14px; background: linear-gradient(135deg, #FFF1E6, #FFE0C7);
	transition: transform .4s ease;
}
.gwh-ico::after {
	content: ""; position: absolute; left: calc(clamp(1.3rem, 3vw, 1.8rem) + 13px); top: calc(clamp(1.3rem, 3vw, 1.8rem) + 13px);
	width: 24px; height: 24px; background: var(--gwh-orange);
	-webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
.gwh-service.gwh-ico::before { background: linear-gradient(135deg, #E8F1FD, #D3E4FB); }
.gwh-service.gwh-ico::after { background: var(--gwh-blue); }
.is-style-card:hover.gwh-ico::before { transform: rotate(-8deg) scale(1.08); }
.gwh-ico--phone { --ico: var(--gwh-i-phone); } .gwh-ico--wrench { --ico: var(--gwh-i-wrench); }
.gwh-ico--tank { --ico: var(--gwh-i-tank); } .gwh-ico--tools { --ico: var(--gwh-i-tools); }
.gwh-ico--bolt { --ico: var(--gwh-i-bolt); } .gwh-ico--clock { --ico: var(--gwh-i-clock); }
.gwh-ico--drop { --ico: var(--gwh-i-drop); } .gwh-ico--thermo { --ico: var(--gwh-i-thermo); }
.gwh-ico--noise { --ico: var(--gwh-i-noise); } .gwh-ico--flame { --ico: var(--gwh-i-flame); }
.gwh-ico--alert { --ico: var(--gwh-i-alert); } .gwh-ico--gauge { --ico: var(--gwh-i-gauge); }
.gwh-ico--pin { --ico: var(--gwh-i-pin); } .gwh-ico--check { --ico: var(--gwh-i-check); } .gwh-ico--tag { --ico: var(--gwh-i-tag); }

.gwh-more a { font-weight: 700; color: var(--gwh-orange); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat; transition: background-size .3s ease; }
.gwh-more a:hover { background-size: 100% 2px; }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease; }
.wp-block-button.is-style-call, .wp-block-button.is-style-glow { position: relative; isolation: isolate; }
.wp-block-button.is-style-call::before, .wp-block-button.is-style-glow::before {
	content: ""; position: absolute; inset: -4px; z-index: -1; border-radius: 16px; pointer-events: none;
	background: linear-gradient(90deg, #FFD08A, #FFB020, #FFE2B8, #FFD08A); background-size: 300% 100%;
	filter: blur(12px); opacity: 0.45;
}
.is-style-call .wp-block-button__link, .is-style-glow .wp-block-button__link {
	display: inline-flex; align-items: center; gap: 0.55em; color: #fff;
	background-color: var(--gwh-orange);
	background-image: linear-gradient(110deg, transparent 35%, rgba(255, 255, 255, 0.4) 50%, transparent 65%), linear-gradient(135deg, #FF8A3D 0%, #F26A1B 55%, #E4561A 100%);
	background-size: 250% 100%, 100% 100%; background-position: 150% 0, 0 0; background-repeat: no-repeat;
	box-shadow: 0 8px 20px rgba(242, 106, 27, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.is-style-call .wp-block-button__link::before {
	content: ""; width: 1.15em; height: 1.15em; flex: none; background: currentColor;
	-webkit-mask: var(--gwh-i-phone) center / contain no-repeat; mask: var(--gwh-i-phone) center / contain no-repeat;
}
.is-style-call .wp-block-button__link:hover, .is-style-glow .wp-block-button__link:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 14px 30px rgba(242, 106, 27, 0.4); }
.is-style-outline .wp-block-button__link { background: transparent; color: var(--gwh-navy); border: 2px solid var(--gwh-navy); }
.is-style-outline .wp-block-button__link:hover { background: var(--gwh-navy); color: #fff; transform: translateY(-2px); }
.is-style-outline-light .wp-block-button__link { background: rgba(255, 255, 255, 0.12); color: #fff; border: 2px solid rgba(255, 255, 255, 0.85); }
.is-style-outline-light .wp-block-button__link:hover { background: #fff; color: var(--gwh-navy); transform: translateY(-2px); }

/* ---------- Header ---------- */
.gwh-site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .gwh-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .gwh-site-header { top: 46px; } }
.gwh-topbar {
	background: var(--gwh-navy); color: #CFDAEA; font-size: 0.88rem; margin: 0 !important;
	padding: 0.45rem clamp(18px, 4vw, 40px) !important; max-height: 60px; overflow: hidden; transition: max-height .3s ease, padding .3s ease;
}
.gwh-topbar p { margin: 0; }
.gwh-topbar a { color: #FFB020; font-weight: 700; text-decoration: none; }
.gwh-topbar-area::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #34D399; margin-right: 0.5rem; vertical-align: middle; }
.gwh-header {
	background: rgba(255, 255, 255, 0.92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--gwh-line); margin: 0 !important; padding: 0.7rem clamp(18px, 4vw, 40px) !important; transition: box-shadow .25s ease;
}
.is-scrolled .gwh-topbar { max-height: 0; padding-block: 0 !important; }
.is-scrolled .gwh-header { box-shadow: 0 8px 24px rgba(11, 37, 69, 0.08); }
.gwh-brand { gap: 0.6rem; }
.gwh-brand .wp-block-site-title a { color: var(--gwh-navy); text-decoration: none; }
.gwh-nav a { color: var(--gwh-navy); text-decoration: none; }
.gwh-nav .wp-block-navigation-item__content:hover { color: var(--gwh-orange); }
.gwh-nav .wp-block-navigation__submenu-container { border-radius: 12px; border: 1px solid var(--gwh-line) !important; box-shadow: var(--gwh-shadow); padding: 0.4rem !important; min-width: 250px !important; }
.gwh-nav .wp-block-navigation__submenu-container a { padding: 0.55rem 0.8rem !important; border-radius: 8px; }
.gwh-nav .wp-block-navigation__submenu-container a:hover { background: var(--gwh-cream); }
.gwh-header-cta .wp-block-button__link { padding: 0.65em 1.1em; font-size: 0.95rem; }
@media (max-width: 1100px) { .gwh-brand .wp-block-site-title { display: none; } }
@media (max-width: 600px) { .gwh-topbar-area { display: none; } .gwh-header-cta { display: none !important; } }

/* ---------- Hero ---------- */
.gwh-hero {
	position: relative; overflow: hidden; isolation: isolate;
	background: linear-gradient(135deg, #E8F1FD 0%, #F7F9FC 45%, #FFF4EA 100%);
	padding-block: clamp(2.5rem, 6vw, 5rem) clamp(3.5rem, 8vw, 6rem) !important;
}
.gwh-hero::before, .gwh-hero::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; filter: blur(70px); pointer-events: none; }
.gwh-hero::before { width: 460px; height: 460px; right: -80px; top: -60px; background: rgba(255, 176, 32, 0.35); }
.gwh-hero::after { width: 420px; height: 420px; left: -140px; bottom: -160px; background: rgba(29, 95, 209, 0.18); }
.gwh-hero .wp-block-columns { gap: clamp(2rem, 5vw, 4rem); }
.gwh-hero h1 { margin-block: 0.4em 0.3em; }
.gwh-badge {
	display: inline-flex !important; align-items: center; gap: 0.55rem; padding: 0.35rem 0.9rem; border-radius: 999px;
	background: #fff; border: 1px solid var(--gwh-line); color: var(--gwh-navy); font-weight: 600; font-size: 0.86rem; box-shadow: 0 4px 14px rgba(11, 37, 69, 0.06);
}
.gwh-badge::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--gwh-orange); flex: none; }
.gwh-lead { font-size: 1.12rem; max-width: 38em; }
.gwh-hero .is-style-check { display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; margin-top: 1.4rem; font-size: 0.95rem; font-weight: 500; color: var(--gwh-navy); }
.gwh-hero .wp-block-column:last-child { position: relative; }
.wp-block-image.is-style-float { margin-inline: auto; max-width: 480px; }
.wp-block-image.is-style-float img { display: block; filter: drop-shadow(0 30px 40px rgba(11, 37, 69, 0.18)); }
.gwh-float-card {
	position: absolute !important; left: 0; bottom: 6%; max-width: 250px; margin: 0 !important;
	padding: 1rem 1rem 1rem 4.2rem !important; font-size: 0.92rem; z-index: 2;
}
.gwh-float-card p { margin: 0; }
.gwh-float-card.gwh-ico::before { left: 0.9rem; top: 50%; margin-top: -21px; width: 42px; height: 42px; border-radius: 50%; background: var(--gwh-orange); }
.gwh-float-card.gwh-ico::after { left: calc(0.9rem + 11px); top: 50%; margin-top: -10px; width: 20px; height: 20px; background: #fff; }
.gwh-crumb a { color: var(--gwh-blue); font-weight: 600; text-decoration: none; font-size: 0.92rem; }
@media (max-width: 781px) {
	.gwh-float-card { position: relative !important; left: auto; bottom: auto; margin: -2rem auto 0 !important; }
}

/* Page hero */
.gwh-page-hero {
	position: relative; overflow: hidden; isolation: isolate;
	background: linear-gradient(135deg, #E8F1FD 0%, #F7F9FC 50%, #FFF4EA 100%);
	padding-block: clamp(3.2rem, 8vw, 5.5rem) clamp(2.6rem, 6vw, 4rem) !important;
}
.gwh-page-hero::before { content: ""; position: absolute; z-index: -1; width: 420px; height: 420px; right: -100px; top: -120px; border-radius: 50%; background: rgba(255, 176, 32, 0.3); filter: blur(70px); }

/* ---------- Lists ---------- */
.is-style-check { list-style: none; padding-left: 0; display: grid; gap: 0.55rem; }
.is-style-check li { position: relative; padding-left: 1.9rem; }
.is-style-check li::before { content: ""; position: absolute; left: 0; top: 0.25em; width: 1.25em; height: 1.25em; border-radius: 50%; background: #DCFCE7; }
.is-style-check li::after { content: ""; position: absolute; left: 0.25em; top: 0.5em; width: 0.75em; height: 0.75em; background: #16A34A; -webkit-mask: var(--gwh-i-check) center / contain no-repeat; mask: var(--gwh-i-check) center / contain no-repeat; }

/* ---------- Grids ---------- */
@media (max-width: 1000px) { .gwh-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 640px) { .gwh-grid, .gwh-grid--2 { grid-template-columns: 1fr !important; } }

/* Repair vs replace */
.gwh-choice { border-top: 5px solid var(--gwh-blue) !important; }
.gwh-choice--replace { border-top-color: var(--gwh-orange) !important; }

/* Steps */
.gwh-step-num {
	display: inline-flex !important; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 50%;
	background: linear-gradient(135deg, #FFB020, #F26A1B); color: #fff; font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; font-size: 1.3rem; margin: 0 0 0.6rem !important; box-shadow: 0 0 0 6px rgba(255, 176, 32, 0.18);
}

/* Split image + text */
.gwh-split { gap: clamp(2rem, 5vw, 4rem); }
.wp-block-image.is-style-rounded img { border-radius: 20px; box-shadow: var(--gwh-shadow); }

/* Chips */
.gwh-chips { gap: 0.6rem !important; margin-bottom: 1.6rem !important; }
.gwh-chip { margin: 0 !important; }
.gwh-chip a { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.1rem; border-radius: 999px; background: #fff; border: 1px solid var(--gwh-line); color: var(--gwh-navy); font-weight: 600; text-decoration: none; transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.gwh-chip a::before { content: ""; width: 14px; height: 14px; background: var(--gwh-orange); -webkit-mask: var(--gwh-i-pin) center / contain no-repeat; mask: var(--gwh-i-pin) center / contain no-repeat; }
.gwh-chip a:hover { background: var(--gwh-navy); color: #fff; transform: translateY(-2px); }

/* FAQ */
.gwh-faq .wp-block-details { max-width: 820px; margin-inline: auto; }
.wp-block-details.is-style-faq { background: #fff; border: 1px solid var(--gwh-line); border-radius: 14px; margin-block: 0.8rem 0 !important; box-shadow: 0 4px 14px rgba(11, 37, 69, 0.04); }
.wp-block-details.is-style-faq summary { list-style: none; cursor: pointer; position: relative; padding: 1.1rem 3.6rem 1.1rem 1.3rem; font-family: var(--wp--preset--font-family--heading); font-weight: 700; color: var(--gwh-navy); }
.wp-block-details.is-style-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-faq summary::after {
	content: "+"; position: absolute; right: 1.1rem; top: 50%; width: 30px; height: 30px; margin-top: -15px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; background: var(--gwh-sky); color: var(--gwh-blue); font-size: 1.3rem; font-weight: 500; transition: transform .3s ease, background-color .3s ease, color .3s ease;
}
.wp-block-details.is-style-faq[open] summary::after { transform: rotate(45deg); background: var(--gwh-orange); color: #fff; }
.wp-block-details.is-style-faq[open] { border-color: #FFD3B5; }
.wp-block-details.is-style-faq > :not(summary) { padding: 0 1.3rem 1.2rem; margin: 0; }

/* Service pages */
.gwh-service-body { gap: clamp(2rem, 4vw, 3.5rem); align-items: flex-start !important; }
.gwh-service-body > .wp-block-column:last-child { position: sticky; top: 110px; }
.gwh-aside { margin-block: 0 1rem !important; }
.gwh-aside .wp-block-buttons { gap: 0.6rem; }
.gwh-area .wp-block-buttons { margin-top: 1rem; }

/* CTA heat waves */
.gwh-cta::before, .gwh-cta::after {
	content: ""; position: absolute; z-index: -1; bottom: -40px; width: 140px; height: 260px; opacity: 0.25; pointer-events: none;
	background: radial-gradient(closest-side, #fff, transparent); filter: blur(10px); border-radius: 50%;
}
.gwh-cta::before { left: 12%; } .gwh-cta::after { right: 14%; }

/* ---------- Contact form ---------- */
.gwh-contact { gap: clamp(1.4rem, 3vw, 2.2rem); align-items: flex-start !important; }
.gwh-lead-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.gwh-field { margin: 0 0 1rem; }
.gwh-field--full { grid-column: 1 / -1; }
.gwh-lead-form label { display: block; font-weight: 600; color: var(--gwh-navy); font-size: 0.93rem; margin-bottom: 0.35rem; }
.gwh-lead-form :is(input, select, textarea) {
	width: 100%; box-sizing: border-box; font: inherit; color: var(--gwh-ink); padding: 0.75rem 0.9rem; border-radius: 10px;
	border: 1px solid #CBD5E1; background: #fff; transition: border-color .2s ease, box-shadow .2s ease;
}
.gwh-lead-form :is(input, select, textarea):focus { outline: none; border-color: var(--gwh-orange); box-shadow: 0 0 0 4px rgba(255, 176, 32, 0.25); }
.gwh-consent { font-size: 0.85rem; color: #64748B; margin: 0 0 1rem; }
.gwh-submit {
	position: relative; cursor: pointer; border: 0; border-radius: 12px; padding: 0.95em 1.8em; color: #fff;
	font: 700 1rem/1.2 var(--wp--preset--font-family--heading);
	background: linear-gradient(135deg, #FF8A3D 0%, #F26A1B 55%, #E4561A 100%);
	box-shadow: 0 8px 20px rgba(242, 106, 27, 0.3), 0 0 18px rgba(255, 176, 32, 0.35); transition: transform .25s ease;
}
.gwh-submit:hover { transform: translateY(-2px); }
.gwh-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gwh-form-msg { padding: 0.9rem 1rem; border-radius: 10px; margin-bottom: 1rem; background: #DCFCE7; color: #14532D; }
.gwh-form-msg--error { background: #FEE2E2; color: #7F1D1D; }
@media (max-width: 640px) { .gwh-lead-form { grid-template-columns: 1fr; } }

/* ---------- Blog ---------- */
.gwh-post-grid { gap: clamp(1rem, 2.4vw, 1.6rem) !important; }
.gwh-post-card { padding: 0 !important; overflow: hidden; height: 100%; }
.gwh-post-card .wp-block-post-featured-image { margin: 0; }
.gwh-post-card__body { padding: 1.2rem 1.3rem 1.4rem; }
.gwh-post-card .wp-block-post-title a { color: var(--gwh-navy); text-decoration: none; }
.gwh-post-date { font-size: 0.85rem; color: var(--gwh-orange); font-weight: 600; }
.gwh-post-hero-img img { border-radius: 20px; }
.gwh-prose { font-size: 1.06rem; padding-bottom: 2.5rem; }
@media (max-width: 1000px) { .gwh-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 640px) { .gwh-post-grid { grid-template-columns: 1fr !important; } }

/* ---------- Footer ---------- */
.gwh-footer { background: var(--gwh-navy); color: #B8C6DA; padding-block: clamp(3rem, 6vw, 4.5rem) 1.5rem !important; font-size: 0.95rem; }
.gwh-footer .wp-block-site-title a { color: #fff !important; }
.gwh-footer-title { font-family: var(--wp--preset--font-family--body) !important; font-size: 1rem !important; color: #fff !important; }
.gwh-footer-links { list-style: none; padding: 0; display: grid; gap: 0.45rem; }
.gwh-footer a { color: #B8C6DA; text-decoration: none; transition: color .2s ease; }
.gwh-footer a:hover { color: #FFB020; }
.gwh-footer .wp-block-button__link { color: #fff; }
.gwh-disclosure { font-size: 0.85rem; border-top: 1px solid rgba(255, 255, 255, 0.12); padding-top: 1.3rem; margin-top: 2.2rem !important; }
.gwh-copyright { font-size: 0.85rem; }

/* Mobile call bar */
.gwh-mobile-bar { display: none !important; }
@media (max-width: 781px) {
	body { padding-bottom: 76px; }
	.gwh-mobile-bar {
		display: flex !important; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; margin: 0 !important;
		padding: 0.6rem 0.8rem calc(0.6rem + env(safe-area-inset-bottom, 0px)) !important;
		background: rgba(255, 255, 255, 0.96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
		box-shadow: 0 -6px 20px rgba(11, 37, 69, 0.12);
	}
	.gwh-mobile-bar .wp-block-buttons { width: 100%; display: grid !important; grid-template-columns: 1.3fr 1fr; gap: 0.6rem; }
	.gwh-mobile-bar .wp-block-button__link { width: 100%; justify-content: center; text-align: center; }
	.gwh-mobile-bar .is-style-outline .wp-block-button__link { color: var(--gwh-navy); }
}

/* ==========================================================
   Motion (skipped for visitors who choose "reduce motion")
   ========================================================== */
@media (prefers-reduced-motion: no-preference) {
	.wp-block-button.is-style-call::before, .wp-block-button.is-style-glow::before { animation: gwh-glow 3.6s ease-in-out infinite; }
	.is-style-call .wp-block-button__link, .is-style-glow .wp-block-button__link { animation: gwh-shine 4.5s ease-in-out infinite; }
	.gwh-badge::before { animation: gwh-ping 1.8s ease-out infinite; }
	.gwh-topbar-area::before { animation: gwh-ping-green 2s ease-out infinite; }
	.wp-block-image.is-style-float img { animation: gwh-float 6s ease-in-out infinite; }
	.gwh-float-card { animation: gwh-float 7s 1s ease-in-out infinite; }
	.gwh-hero::before { animation: gwh-drift 14s ease-in-out infinite alternate; }
	.gwh-hero::after { animation: gwh-drift 18s ease-in-out infinite alternate-reverse; }
	.gwh-cta::before { animation: gwh-heat 4s ease-in infinite; }
	.gwh-cta::after { animation: gwh-heat 5s 1.5s ease-in infinite; }
	.wp-block-details.is-style-faq[open] > :not(summary) { animation: gwh-fade .35s ease; }

	.gwh-js .gwh-hero .wp-block-column:first-child > * { animation: gwh-rise .8s ease both; }
	.gwh-js .gwh-hero .wp-block-column:first-child > *:nth-child(2) { animation-delay: .1s; }
	.gwh-js .gwh-hero .wp-block-column:first-child > *:nth-child(3) { animation-delay: .2s; }
	.gwh-js .gwh-hero .wp-block-column:first-child > *:nth-child(4) { animation-delay: .3s; }
	.gwh-js .gwh-hero .wp-block-column:first-child > *:nth-child(5) { animation-delay: .4s; }
	.gwh-js .gwh-hero .wp-block-column:last-child { animation: gwh-pop 1s .2s cubic-bezier(.2, .8, .2, 1) both; }
	.gwh-js .gwh-page-hero > * { animation: gwh-rise .8s ease both; }
	.gwh-js .gwh-page-hero > *:nth-child(2) { animation-delay: .1s; }
	.gwh-js .gwh-page-hero > *:nth-child(3) { animation-delay: .2s; }

	.gwh-js .gwh-reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .8, .2, 1); transition-delay: var(--d, 0s); }
	.gwh-js .gwh-reveal.is-visible { opacity: 1; transform: none; }

	@keyframes gwh-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
	@keyframes gwh-pop { from { opacity: 0; transform: translateY(26px) scale(.95); } to { opacity: 1; transform: none; } }
	@keyframes gwh-fade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
	@keyframes gwh-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
	@keyframes gwh-drift { from { transform: translate(0, 0) scale(1); } to { transform: translate(-50px, 40px) scale(1.12); } }
	@keyframes gwh-glow { 0%, 100% { opacity: .3; transform: scale(.97); background-position: 0% 50%; } 50% { opacity: .5; transform: scale(1.02); background-position: 100% 50%; } }
	@keyframes gwh-shine { 0%, 55% { background-position: 150% 0, 0 0; } 85%, 100% { background-position: -60% 0, 0 0; } }
	@keyframes gwh-ping { 0% { box-shadow: 0 0 0 0 rgba(242, 106, 27, 0.55); } 100% { box-shadow: 0 0 0 9px rgba(242, 106, 27, 0); } }
	@keyframes gwh-ping-green { 0% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.6); } 100% { box-shadow: 0 0 0 8px rgba(52, 211, 153, 0); } }
	@keyframes gwh-heat { 0% { transform: translateY(40px) scaleX(1); opacity: 0; } 30% { opacity: .3; } 100% { transform: translateY(-260px) scaleX(.6); opacity: 0; } }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}
.gwh-lead-form[hidden], .gwh-form-msg[hidden] { display: none !important; }
