/* ==========================================================================
   GutterWorks theme
   1. Tokens          2. Base            3. Buttons        4. Header
   5. Mobile drawer   6. Sections        7. Hero + art     8. Home sections
   9. Rain tool      10. Inner pages    11. FAQ           12. Quote + forms
  13. CTA band       14. Contact        15. Blog          16. Footer
  17. Mobile bar     18. Jobs           19. Small screens 20. Motion
   ========================================================================== */

/* Fallback fonts sized to match Barlow, so nothing jumps when the real fonts arrive. */
@font-face {
	font-family: "Barlow Fallback";
	src: local("Arial"), local("Helvetica Neue"), local("Helvetica"), local("Liberation Sans");
	size-adjust: 95.5%;
	ascent-override: 104.7%;
	descent-override: 20.9%;
	line-gap-override: 0%;
}

@font-face {
	font-family: "Barlow Condensed Fallback";
	src: local("Arial Bold"), local("Arial-BoldMT"), local("Helvetica Neue Bold"), local("Liberation Sans Bold"), local("Arial");
	font-weight: 700;
	size-adjust: 76.2%;
	ascent-override: 131.2%;
	descent-override: 26.2%;
	line-gap-override: 0%;
}

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	--gw-blue: #0249BB;
	--gw-navy: #013075;
	--gw-ink: #171717;
	--gw-ink-2: #1A1A1A;
	--gw-ink-3: #24272D;
	--gw-white: #FFFFFF;
	--gw-mist: #EEF2F7;
	--gw-line: #DDE3EB;
	--gw-muted: #555D69;
	--gw-sky: #7EA6F2;
	--gw-on-dark: rgba(255, 255, 255, 0.78);
	--gw-line-dark: rgba(255, 255, 255, 0.12);

	--gw-display: "Barlow Condensed", "Barlow Condensed Fallback", sans-serif;
	--gw-body: Barlow, "Barlow Fallback", sans-serif;

	--gw-wrap: 1240px;
	--gw-gutter: clamp(20px, 4vw, 40px);
	--gw-pad: clamp(64px, 8vw, 112px);
	--gw-header-h: 76px;
	--gw-r: 14px;
	--gw-r-lg: 22px;
	--gw-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--gw-shadow: 0 1px 2px rgba(23, 23, 23, 0.06), 0 12px 32px -12px rgba(23, 23, 23, 0.18);

	/* Common preset names that hosts and builder plugins assume every theme has
	   (GoDaddy's site designer, for one). Pointing them at the brand keeps any
	   styles they inject on brand instead of blank. */
	--wp--preset--color--base: #FFFFFF;
	--wp--preset--color--contrast: #171717;
	--wp--preset--color--accent-1: #0249BB;
	--wp--preset--color--accent-2: #0249BB;
	--wp--preset--color--accent-3: #013075;
	--wp--preset--color--primary: #0249BB;
	--wp--preset--color--secondary: #013075;
	--wp--preset--color--foreground: #171717;
	--wp--preset--color--background: #FFFFFF;
}

/* 2. Base ------------------------------------------------------------------ */
html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--gw-header-h) + 16px);
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--gw-white);
	color: var(--gw-ink);
	font-family: var(--gw-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.wp-site-blocks {
	padding: 0;
}

.wp-site-blocks > *,
.gw-main > *,
.gw-canvas-content > *,
.gw-header-part,
.gw-footer-part {
	margin-block: 0 !important;
}

img {
	max-width: 100%;
	height: auto;
}

:where(a) {
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1px;
}

:focus-visible {
	outline: 3px solid var(--gw-sky);
	outline-offset: 3px;
}

::selection {
	background: var(--gw-blue);
	color: #FFFFFF;
}

.gw-skip {
	position: absolute;
	left: 16px;
	top: -100px;
	z-index: 200;
	padding: 12px 18px;
	border-radius: 10px;
	background: var(--gw-white);
	color: var(--gw-ink);
	font-weight: 600;
}

.gw-skip:focus {
	top: 12px;
}

.gw-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--gw-wrap);
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--gw-gutter);
	padding-right: var(--gw-gutter);
}

.gw-icon {
	width: 24px;
	height: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
	flex: none;
}

.gw-hidden {
	display: none;
}

/* Grid layouts: the editor's block gap must not push the second column down. */
.gw-split > *,
.gw-svc-signs__layout > *,
.gw-faqs__layout > *,
.gw-quote__layout > *,
.gw-rain__layout > *,
.gw-contact__layout > *,
.gw-article__layout > *,
.gw-hero__inner > *,
.gw-cta__inner > *,
.gw-pledge__inner > *,
.gw-quote__card > *,
.gw-svc-signs__layout > * > :first-child {
	margin-block-start: 0;
}

h1,
h2,
h3,
h4 {
	margin: 0;
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

.gw-lead {
	max-width: 62ch;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
}

/* 3. Buttons --------------------------------------------------------------- */
.wp-block-buttons.gw-actions {
	gap: 12px;
}

.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 54px;
	box-sizing: border-box;
	transition: background-color 0.25s, color 0.25s, border-color 0.25s, box-shadow 0.25s, transform 0.4s var(--gw-ease);
}

.wp-block-button__link:hover {
	transform: translateY(-1px);
}

.wp-block-button__link:active {
	transform: translateY(0);
}

.wp-block-button:not(.is-style-outline):not(.gw-btn-light) .wp-block-button__link {
	box-shadow: 0 10px 24px -12px rgba(2, 73, 187, 0.75);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	border: 2px solid var(--gw-blue);
	background: transparent;
	color: var(--gw-blue);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--gw-blue);
	color: #FFFFFF;
}

.wp-block-button.gw-btn-light .wp-block-button__link {
	border: 1.5px solid rgba(255, 255, 255, 0.45);
	background: transparent;
	color: #FFFFFF;
}

.wp-block-button.gw-btn-light .wp-block-button__link:hover {
	border-color: #FFFFFF;
	background: #FFFFFF;
	color: var(--gw-ink);
}

.gw-btn-phone .wp-block-button__link::before {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 3.5h2.6l1.6 4-2 1.3a10.5 10.5 0 0 0 6.4 6.4l1.3-2 4 1.6v2.6a2 2 0 0 1-2.2 2A16.5 16.5 0 0 1 4.6 5.7a2 2 0 0 1 2-2.2z' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 3.5h2.6l1.6 4-2 1.3a10.5 10.5 0 0 0 6.4 6.4l1.3-2 4 1.6v2.6a2 2 0 0 1-2.2 2A16.5 16.5 0 0 1 4.6 5.7a2 2 0 0 1 2-2.2z' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* 4. Header ---------------------------------------------------------------- */
.gw-header-part {
	position: sticky;
	top: 0;
	z-index: 100;
}

.admin-bar .gw-header-part {
	top: 32px;
}

.gw-header {
	position: relative;
	background: var(--gw-ink);
	color: #FFFFFF;
	border-bottom: 1px solid transparent;
	transition: border-color 0.3s, box-shadow 0.3s;
}

.gw-header.is-scrolled {
	border-bottom-color: var(--gw-line-dark);
	box-shadow: 0 10px 30px -18px rgba(0, 0, 0, 0.7);
}

.gw-header__bar {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 24px;
	box-sizing: border-box;
	max-width: 1360px;
	height: var(--gw-header-h);
	margin: 0 auto;
	padding: 0 var(--gw-gutter);
}

.gw-header__logo {
	display: block;
	line-height: 0;
}

.gw-header__logo img {
	width: auto;
	height: 30px;
}

.gw-nav__list {
	display: flex;
	justify-content: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gw-nav__item {
	position: static;
	margin: 0;
}

.gw-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 44px;
	padding: 0 14px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: #FFFFFF;
	font: inherit;
	font-size: 1rem;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s;
}

.gw-nav__link:hover,
.gw-nav__link[aria-expanded="true"] {
	background: rgba(255, 255, 255, 0.08);
	color: #FFFFFF;
}

.gw-nav__link[aria-current="page"] {
	box-shadow: inset 0 -2px 0 var(--gw-sky);
	border-radius: 10px 10px 0 0;
}

.gw-chev {
	width: 14px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform 0.3s var(--gw-ease);
}

[aria-expanded="true"] > .gw-chev,
details[open] > summary .gw-chev {
	transform: rotate(180deg);
}

/* Mega panels */
.gw-mega {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--gw-white);
	color: var(--gw-ink);
	border-top: 1px solid var(--gw-line);
	box-shadow: 0 30px 60px -30px rgba(10, 12, 16, 0.45);
}

.gw-mega[hidden] {
	display: none;
}

.gw-mega:not([hidden]) {
	animation: gw-drop-in 0.35s var(--gw-ease) both;
}

@keyframes gw-drop-in {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}
}

.gw-mega__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 40px;
	box-sizing: border-box;
	max-width: 1360px;
	margin: 0 auto;
	padding: 32px var(--gw-gutter) 36px;
}

.gw-mega__services {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gw-mega__services a {
	display: grid;
	grid-template-columns: 44px 1fr;
	grid-template-rows: auto auto;
	column-gap: 14px;
	padding: 12px;
	border-radius: 12px;
	color: inherit;
	text-decoration: none;
	transition: background-color 0.2s;
}

.gw-mega__services a:hover {
	background: var(--gw-mist);
}

.gw-mega__icon {
	grid-row: span 2;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--gw-mist);
	color: var(--gw-blue);
}

.gw-mega__services a:hover .gw-mega__icon {
	background: var(--gw-blue);
	color: #FFFFFF;
}

.gw-mega__name {
	font-weight: 600;
	line-height: 1.3;
}

.gw-mega__text {
	color: var(--gw-muted);
	font-size: 0.9rem;
	line-height: 1.4;
}

.gw-mega__areas {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}

.gw-mega__group {
	margin: 0 0 10px;
	color: var(--gw-muted);
	font-size: 0.875rem;
	font-weight: 600;
}

.gw-mega__col ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gw-mega__col li {
	margin: 0;
}

.gw-mega__col a,
.gw-mega__col span {
	display: block;
	padding: 5px 0;
	color: var(--gw-ink);
	font-size: 0.975rem;
}

.gw-mega__col a {
	font-weight: 600;
	text-decoration: none;
}

.gw-mega__col a:hover {
	color: var(--gw-blue);
	text-decoration: underline;
}

.gw-mega__col span {
	color: var(--gw-muted);
}

.gw-mega__aside {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	padding: 24px;
	border-radius: var(--gw-r);
	background: var(--gw-ink);
	color: var(--gw-on-dark);
}

.gw-mega__aside p {
	margin: 0;
	line-height: 1.5;
}

.gw-mega__aside .gw-mega__aside-title {
	color: #FFFFFF;
	font-family: var(--gw-display);
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

.gw-mega__btn {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	margin-top: 6px;
	padding: 0 18px;
	border-radius: 10px;
	background: var(--gw-blue);
	color: #FFFFFF;
	font-weight: 600;
	text-decoration: none;
}

.gw-mega__btn:hover {
	background: #FFFFFF;
	color: var(--gw-ink);
}

.gw-mega__all {
	color: #FFFFFF;
	font-weight: 600;
}

/* Call + quote */
.gw-header__actions {
	display: flex;
	align-items: center;
	gap: 14px;
}

.gw-call {
	display: grid;
	justify-items: end;
	color: #FFFFFF;
	line-height: 1.15;
	text-decoration: none;
}

.gw-call__num {
	font-family: var(--gw-display);
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.01em;
}

.gw-call:hover .gw-call__num {
	color: var(--gw-sky);
}

.gw-open {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0;
	color: var(--gw-on-dark);
	font-size: 0.8125rem;
	font-weight: 500;
}

.gw-open__dot {
	position: relative;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #8A94A6;
}

.gw-open.is-open .gw-open__dot {
	background: #3DDC84;
}

.gw-open.is-open .gw-open__dot::after {
	content: "";
	position: absolute;
	inset: -4px;
	border-radius: 50%;
	border: 2px solid rgba(61, 220, 132, 0.45);
	animation: gw-ping 2.4s ease-out 3;
}

@keyframes gw-ping {
	from {
		opacity: 1;
		transform: scale(0.6);
	}
	to {
		opacity: 0;
		transform: scale(1.6);
	}
}

.gw-header__quote {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	padding: 0 20px;
	border-radius: 10px;
	background: var(--gw-blue);
	color: #FFFFFF;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s;
}

.gw-header__quote:hover {
	background: var(--gw-navy);
	color: #FFFFFF;
}

.gw-burger {
	display: none;
	align-items: center;
	gap: 10px;
	height: 46px;
	padding: 0 14px;
	border: 1.5px solid rgba(255, 255, 255, 0.3);
	border-radius: 10px;
	background: transparent;
	color: #FFFFFF;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.gw-burger__lines,
.gw-burger__lines::before,
.gw-burger__lines::after {
	display: block;
	width: 18px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform 0.3s var(--gw-ease), opacity 0.2s;
}

.gw-burger__lines {
	position: relative;
}

.gw-burger__lines::before,
.gw-burger__lines::after {
	content: "";
	position: absolute;
	left: 0;
}

.gw-burger__lines::before {
	top: -6px;
}

.gw-burger__lines::after {
	top: 6px;
}

.gw-burger[aria-expanded="true"] .gw-burger__lines {
	background: transparent;
}

.gw-burger[aria-expanded="true"] .gw-burger__lines::before {
	transform: translateY(6px) rotate(45deg);
}

.gw-burger[aria-expanded="true"] .gw-burger__lines::after {
	transform: translateY(-6px) rotate(-45deg);
}

/* 5. Mobile drawer --------------------------------------------------------- */
.gw-drawer {
	position: fixed;
	left: 0;
	right: 0;
	top: var(--gw-header-h);
	bottom: 0;
	z-index: 99;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--gw-ink);
	color: #FFFFFF;
	border-top: 1px solid var(--gw-line-dark);
}

.admin-bar .gw-drawer {
	top: calc(var(--gw-header-h) + 46px);
}

.gw-drawer[hidden] {
	display: none;
}

.gw-drawer:not([hidden]) {
	animation: gw-drop-in 0.35s var(--gw-ease) both;
}

.gw-drawer__inner {
	display: grid;
	gap: 8px;
	padding: 20px var(--gw-gutter) 40px;
}

.gw-drawer__call {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 8px;
	padding: 18px 20px;
	border-radius: var(--gw-r);
	background: var(--gw-blue);
	color: #FFFFFF;
	text-decoration: none;
}

.gw-drawer__call > span {
	display: grid;
	gap: 2px;
}

.gw-drawer__call strong {
	font-family: var(--gw-display);
	font-size: 2rem;
	line-height: 1;
}

.gw-drawer__call .gw-icon {
	width: 30px;
	height: 30px;
}

.gw-drawer__call .gw-open {
	color: rgba(255, 255, 255, 0.85);
}

.gw-drawer__group {
	border-bottom: 1px solid var(--gw-line-dark);
}

.gw-drawer__group summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 4px;
	font-family: var(--gw-display);
	font-size: 1.75rem;
	font-weight: 700;
	text-transform: uppercase;
	list-style: none;
	cursor: pointer;
}

.gw-drawer__group summary::-webkit-details-marker {
	display: none;
}

.gw-drawer__group summary .gw-chev {
	width: 20px;
	height: 20px;
}

.gw-drawer__group ul,
.gw-drawer__links {
	margin: 0;
	padding: 0 4px 12px;
	list-style: none;
}

.gw-drawer__group li a {
	display: block;
	padding: 10px 0;
	color: var(--gw-on-dark);
	font-size: 1.0625rem;
	text-decoration: none;
}

.gw-drawer__links li a {
	display: block;
	padding: 14px 0;
	border-bottom: 1px solid var(--gw-line-dark);
	color: #FFFFFF;
	font-family: var(--gw-display);
	font-size: 1.75rem;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
}

.gw-drawer__quote {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	margin-top: 12px;
	border-radius: 12px;
	background: #FFFFFF;
	color: var(--gw-ink);
	font-weight: 600;
	font-size: 1.0625rem;
	text-decoration: none;
}

.gw-drawer__hours {
	margin: 8px 0 0;
	color: var(--gw-on-dark);
	text-align: center;
	font-size: 0.9375rem;
}

html.gw-drawer-open {
	overflow: hidden;
}

/* 6. Sections -------------------------------------------------------------- */
.gw-section {
	position: relative;
	padding-top: var(--gw-pad);
	padding-bottom: var(--gw-pad);
}

.is-mist {
	background: var(--gw-mist);
}

.is-dark {
	background: var(--gw-ink);
	color: var(--gw-on-dark);
}

.is-dark :where(h1, h2, h3, h4, strong) {
	color: #FFFFFF;
}

.is-dark :where(a:not(.wp-block-button__link)) {
	color: #FFFFFF;
}

.is-blue {
	background-color: var(--gw-blue);
	background-image: repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.035) 0 2px, transparent 2px 22px);
	color: rgba(255, 255, 255, 0.9);
}

.is-blue :where(h1, h2, h3, strong, a) {
	color: #FFFFFF;
}

.gw-intro {
	display: grid;
	gap: 16px;
	max-width: 760px;
	margin-bottom: clamp(32px, 4vw, 52px);
}

.gw-intro > * {
	margin: 0 !important;
}

.gw-intro .gw-lead {
	color: var(--gw-muted);
}

.is-dark .gw-intro .gw-lead {
	color: var(--gw-on-dark);
}

.gw-more {
	margin: 32px 0 0;
	font-weight: 600;
}

/* Two columns: copy and a side panel */
.gw-split {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: clamp(40px, 6vw, 88px);
	align-items: start;
}

.gw-split__main > * {
	margin: 0 0 1.1em;
}

.gw-split__main > h2 {
	margin-bottom: 0.6em;
}

.gw-split__main p {
	max-width: 64ch;
	font-size: 1.0625rem;
}

.gw-split__side {
	display: grid;
	gap: 16px;
}

.gw-split__side > * {
	margin: 0 !important;
}

.gw-panel {
	padding: clamp(24px, 3vw, 34px);
	border-radius: var(--gw-r-lg);
	background: var(--gw-mist);
}

.is-mist .gw-panel {
	background: var(--gw-white);
}

.gw-panel > * {
	margin: 0;
}

.gw-panel h3 {
	margin-bottom: 16px;
}

.gw-panel--quiet {
	background: transparent;
	border: 1px solid var(--gw-line);
}

.gw-panel--quiet p {
	color: var(--gw-muted);
}

.gw-panel--motto {
	display: grid;
	justify-items: center;
	gap: 18px;
	padding: 48px 32px;
	background: var(--gw-ink);
	text-align: center;
}

.gw-panel__logo {
	width: 70%;
	max-width: 280px;
	height: auto;
}

.gw-motto {
	color: #FFFFFF;
	font-family: var(--gw-display);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

.gw-checks {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gw-checks li {
	position: relative;
	padding-left: 32px;
	line-height: 1.45;
}

.gw-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--gw-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 12.5l3.5 3.5 7.5-8' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 15px no-repeat;
}

.gw-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.gw-facts li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-weight: 500;
}

.gw-facts .gw-icon {
	width: 18px;
	height: 18px;
	color: var(--gw-sky);
	stroke-width: 2.4;
}

/* The seamless gutter run under dark headers */
.gw-run {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 14px;
	pointer-events: none;
}

.gw-run__line {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, #1F5FD1 0%, var(--gw-blue) 35%, var(--gw-navy) 100%);
	box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.35);
}

.gw-run__drop {
	position: absolute;
	right: 14%;
	top: 100%;
	width: 12px;
	height: 16px;
	margin-top: 3px;
	background: var(--gw-blue);
	border-radius: 50% 50% 50% 50% / 62% 62% 38% 38%;
	clip-path: polygon(50% 0, 100% 62%, 92% 84%, 72% 98%, 50% 100%, 28% 98%, 8% 84%, 0 62%);
	z-index: 2;
	opacity: 0;
}

.gw-js .gw-run__drop {
	animation: gw-drip 3.6s 1.2s var(--gw-ease) 1 both;
}

@keyframes gw-drip {
	0% {
		opacity: 0;
		transform: translateY(-10px) scale(0.4);
	}
	25% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
	60% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
	100% {
		opacity: 0;
		transform: translateY(46px) scale(0.8);
	}
}

/* 7. Hero + art ------------------------------------------------------------ */
.gw-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(36px, 4.5vw, 64px) 0 clamp(64px, 7vw, 96px);
	background:
		radial-gradient(60% 70% at 88% 18%, rgba(2, 73, 187, 0.32), transparent 62%),
		radial-gradient(40% 50% at 0% 100%, rgba(1, 48, 117, 0.35), transparent 70%),
		var(--gw-ink);
}

.gw-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
	gap: clamp(32px, 4vw, 56px);
	align-items: center;
}

.gw-hero__copy > * {
	margin: 0;
}

.gw-hero__kicker {
	margin-bottom: 18px !important;
	color: var(--gw-sky);
	font-size: 1.0625rem;
	font-weight: 600;
}

.gw-hero__title {
	max-width: 15ch;
	color: #FFFFFF;
	font-size: clamp(3rem, 1.4rem + 4.4vw, 5.5rem);
	line-height: 0.9;
	letter-spacing: -0.005em;
}

.gw-hero .gw-lead {
	max-width: 46ch;
	margin-top: 24px !important;
	color: var(--gw-on-dark);
}

.gw-hero__actions {
	margin-top: 34px !important;
}

.gw-hero .gw-facts {
	margin-top: 30px;
	color: #FFFFFF;
}

.gw-hero__art {
	position: relative;
	width: 100%;
	max-width: 560px;
	margin-left: auto;
}

.gw-art {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
	border-radius: var(--gw-r-lg);
}

.gw-art__shingles {
	fill: none;
	stroke: rgba(255, 255, 255, 0.07);
	stroke-width: 2;
}

.gw-art__fascia {
	fill: #343A44;
}

.gw-art__fill {
	fill: var(--gw-blue);
	transform: translateY(0);
}

.gw-art__gutter,
.gw-art__bead {
	fill: none;
	stroke: #E8EEF7;
	stroke-width: 7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.gw-art__hanger {
	fill: none;
	stroke: rgba(232, 238, 247, 0.4);
	stroke-width: 3;
	stroke-linecap: round;
}

.gw-art__spout {
	fill: none;
	stroke: #3A414D;
	stroke-width: 26;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.gw-art__flow {
	fill: none;
	stroke: var(--gw-blue);
	stroke-width: 10;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 260;
	stroke-dashoffset: 0;
}

.gw-art__ground {
	fill: none;
	stroke: rgba(255, 255, 255, 0.22);
	stroke-width: 2;
}

.gw-art__wall {
	fill: #1C1F25;
}

.gw-art__siding {
	fill: none;
	stroke: rgba(255, 255, 255, 0.055);
	stroke-width: 2;
}

.gw-art__ogee {
	fill: none;
	stroke: rgba(232, 238, 247, 0.55);
	stroke-width: 2.5;
	stroke-linecap: round;
}

.gw-art__soil {
	fill: none;
	stroke: rgba(255, 255, 255, 0.12);
	stroke-width: 2;
	stroke-linecap: round;
}

.gw-art__pipe {
	fill: none;
	stroke: #2E343E;
	stroke-width: 16;
	stroke-linecap: round;
}

.gw-art__splash {
	fill: none;
	stroke: var(--gw-sky);
	stroke-width: 3;
	stroke-linecap: round;
	opacity: 0;
}

.gw-art__away {
	fill: none;
	stroke: var(--gw-sky);
	stroke-width: 5;
	stroke-linecap: round;
	stroke-dasharray: 3 13;
}

.gw-art__drop {
	fill: var(--gw-sky);
	opacity: 0;
}

.gw-art__rain {
	stroke: rgba(126, 166, 242, 0.5);
	stroke-width: 2;
	stroke-linecap: round;
	opacity: 0;
}

.gw-art__tag rect {
	fill: rgba(255, 255, 255, 0.06);
	stroke: rgba(255, 255, 255, 0.16);
}

.gw-art__tag text {
	fill: #FFFFFF;
	font-family: var(--gw-display);
	font-size: 22px;
	font-weight: 700;
	text-transform: uppercase;
}

.gw-art__tag .gw-art__tag-sub {
	fill: var(--gw-sky);
	font-family: var(--gw-body);
	font-size: 15px;
	font-weight: 500;
	text-transform: none;
}

/* The one storm: rain, a drop, the gutter fills, water runs down and away. */
.gw-js .gw-art__rain {
	animation: gw-rain 1.05s linear var(--d, 0s) 3 both;
}

@keyframes gw-rain {
	0% {
		opacity: 0;
		transform: translate(0, 0);
	}
	15% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		transform: translate(-40px, 220px);
	}
}

.gw-js .gw-art__drop {
	animation: gw-drop 1.1s 0.5s cubic-bezier(0.55, 0, 0.9, 0.6) both;
}

@keyframes gw-drop {
	0% {
		opacity: 0;
		transform: translateY(0);
	}
	20% {
		opacity: 1;
		transform: translateY(0);
	}
	92% {
		opacity: 1;
		transform: translateY(70px);
	}
	100% {
		opacity: 0;
		transform: translateY(74px);
	}
}

.gw-js .gw-art__fill {
	animation: gw-fill 1.3s 1.3s var(--gw-ease) both;
}

@keyframes gw-fill {
	from {
		transform: translateY(40px);
	}
}

.gw-js .gw-art__flow {
	animation: gw-flow 1.1s 2.1s cubic-bezier(0.4, 0, 0.2, 1) both;
}

@keyframes gw-flow {
	from {
		stroke-dashoffset: 260;
	}
}

.gw-js .gw-art__away {
	animation: gw-away-in 0.8s 3s ease both, gw-away 2.2s 3s linear 4;
}

@keyframes gw-away-in {
	from {
		opacity: 0;
	}
}

@keyframes gw-away {
	to {
		stroke-dashoffset: -56;
	}
}

.gw-art__splash {
	transform-origin: 496px 494px;
}

.gw-js .gw-art__splash {
	animation: gw-splash 1s 3.4s var(--gw-ease) 3 both;
}

@keyframes gw-splash {
	0% {
		opacity: 0;
		transform: scale(0.4);
	}
	40% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		transform: scale(1.15);
	}
}

.gw-js .gw-art__tag {
	animation: gw-tag 0.8s 3.4s var(--gw-ease) both;
}

@keyframes gw-tag {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
}

/* 8. Home sections --------------------------------------------------------- */
.gw-promises {
	border-bottom: 1px solid var(--gw-line);
	background: var(--gw-white);
}

.gw-promises ul {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 34px;
	padding-bottom: 30px;
	list-style: none;
}

.gw-promises li {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	padding: 0 20px;
	border-left: 1px solid var(--gw-line);
}

.gw-promises li:first-child {
	padding-left: 0;
	border-left: 0;
}

.gw-promises .gw-icon {
	width: 30px;
	height: 30px;
	color: var(--gw-blue);
}

.gw-promises span {
	display: grid;
	color: var(--gw-muted);
	font-size: 0.9375rem;
	line-height: 1.35;
}

.gw-promises strong {
	color: var(--gw-ink);
	font-size: 1.0625rem;
}

/* Service index: one row per service */
.gw-index {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--gw-ink);
}

.gw-index__row {
	margin: 0;
	border-bottom: 1px solid var(--gw-line);
}

.gw-index__row a {
	display: grid;
	grid-template-columns: 56px minmax(0, 1.05fr) minmax(0, 1fr) 44px;
	align-items: center;
	gap: 24px;
	padding: 22px 12px;
	color: var(--gw-ink);
	text-decoration: none;
	transition: background-color 0.3s, padding 0.4s var(--gw-ease);
}

.gw-index__icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--gw-mist);
	color: var(--gw-blue);
	transition: background-color 0.3s, color 0.3s;
}

.gw-index__icon .gw-icon {
	width: 28px;
	height: 28px;
}

.gw-index__name {
	font-family: var(--gw-display);
	font-size: clamp(1.625rem, 1.2rem + 1.2vw, 2.25rem);
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

.gw-index__text {
	color: var(--gw-muted);
	line-height: 1.45;
}

.gw-index__go {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1.5px solid var(--gw-line);
	color: var(--gw-ink);
	transition: transform 0.4s var(--gw-ease), background-color 0.3s, border-color 0.3s, color 0.3s;
}

.gw-index__go .gw-icon {
	width: 20px;
	height: 20px;
}

.gw-index__row a:hover {
	background: var(--gw-mist);
	padding-left: 20px;
	padding-right: 20px;
}

.gw-index__row a:hover .gw-index__icon {
	background: var(--gw-blue);
	color: #FFFFFF;
}

.gw-index__row a:hover .gw-index__name {
	color: var(--gw-blue);
}

.gw-index__row a:hover .gw-index__go {
	border-color: var(--gw-blue);
	background: var(--gw-blue);
	color: #FFFFFF;
	transform: translateX(4px);
}

/* The phone pledge */
.gw-pledge__inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	column-gap: clamp(20px, 3vw, 40px);
	align-items: start;
}

.gw-pledge__inner > * {
	margin: 0;
}

.gw-pledge__icon {
	grid-row: span 3;
	display: grid;
	place-items: center;
	width: clamp(64px, 7vw, 92px);
	height: clamp(64px, 7vw, 92px);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: #FFFFFF;
}

.gw-pledge__icon .gw-icon {
	width: 50%;
	height: 50%;
}

.gw-pledge__quote {
	max-width: 24ch;
	color: #FFFFFF;
	font-family: var(--gw-display);
	font-size: clamp(2.25rem, 1.3rem + 3.2vw, 4.25rem);
	font-weight: 700;
	line-height: 0.98;
	text-transform: uppercase;
}

.gw-pledge__sub {
	margin-top: 16px !important;
	font-size: 1.25rem;
}

.gw-pledge__actions {
	margin-top: 28px !important;
}

.gw-pledge__phone {
	grid-column: 3;
	grid-row: 1 / span 3;
	align-self: center;
	display: grid;
	gap: 8px;
	padding: 28px 32px;
	border-radius: var(--gw-r-lg);
	background: rgba(0, 0, 0, 0.18);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
}

.gw-pledge__phone p {
	margin: 0;
}

.gw-pledge__phone .gw-open {
	color: rgba(255, 255, 255, 0.85);
}

.gw-pledge__phone a {
	color: #FFFFFF;
	font-family: var(--gw-display);
	font-size: clamp(2.5rem, 1.8rem + 2vw, 3.5rem);
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
}

.gw-pledge__phone a:hover {
	text-decoration: underline;
	text-decoration-thickness: 2px;
}

.gw-pledge__label {
	color: rgba(255, 255, 255, 0.85);
	font-weight: 600;
}

/* Reasons */
.gw-reasons {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--gw-line);
}

.gw-reason {
	margin: 0;
	padding: 34px 32px 36px 0;
	border-bottom: 1px solid var(--gw-line);
}

.gw-reason:not(:nth-child(3n + 1)) {
	padding-left: 32px;
	border-left: 1px solid var(--gw-line);
}

.gw-reason .gw-icon {
	width: 34px;
	height: 34px;
	color: var(--gw-blue);
}

.gw-reason h3 {
	margin: 18px 0 8px;
}

.gw-reason p {
	margin: 0;
	color: var(--gw-muted);
}

.is-mist .gw-reasons,
.is-mist .gw-reason {
	border-color: #D3DBE6;
}

/* Steps */
.gw-steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.gw-steps::before {
	content: "";
	position: absolute;
	left: 30px;
	right: calc((100% - 84px) / 4 - 30px);
	top: 27px;
	height: 6px;
	border-radius: 6px;
	background: linear-gradient(180deg, #1F5FD1, var(--gw-navy));
	box-shadow: inset 0 1.5px 0 rgba(255, 255, 255, 0.35);
}

.gw-step {
	position: relative;
	margin: 0;
}

.gw-step__n {
	position: relative;
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	margin-bottom: 20px;
	border: 4px solid var(--gw-white);
	border-radius: 50%;
	background: var(--gw-ink);
	color: #FFFFFF;
	font-family: var(--gw-display);
	font-size: 1.625rem;
	font-weight: 700;
}

.gw-step__title {
	margin: 0 0 8px;
	font-size: 1.3125rem;
}

.gw-step p {
	margin: 0;
	color: var(--gw-muted);
}

.gw-steps--compact {
	grid-template-columns: 1fr;
	gap: 0;
}

.gw-steps--compact::before {
	display: none;
}

.gw-steps--compact .gw-step:not(:last-child)::before {
	content: "";
	position: absolute;
	left: 21px;
	top: 23px;
	width: 4px;
	height: 100%;
	border-radius: 4px;
	background: linear-gradient(180deg, #1F5FD1, var(--gw-navy));
}

.gw-step__n {
	z-index: 1;
}

.gw-steps--compact .gw-step {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr);
	column-gap: 18px;
	padding-bottom: 24px;
}

.gw-steps--compact .gw-step__n {
	grid-row: span 2;
	width: 46px;
	height: 46px;
	margin: 0;
	border-width: 3px;
	font-size: 1.25rem;
}

.gw-steps--compact .gw-step__title {
	margin: 9px 0 4px;
	font-size: 1.125rem;
}

.is-mist .gw-step__n {
	border-color: var(--gw-mist);
}

/* Areas */
.gw-areas {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 32px;
}

.gw-areas__group {
	margin: 0 0 14px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--gw-ink);
	font-family: var(--gw-display);
	font-size: 1.625rem;
	font-weight: 700;
	text-transform: uppercase;
}

.gw-areas ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gw-areas li {
	margin: 0;
	border-bottom: 1px solid var(--gw-line);
}

.is-mist .gw-areas li {
	border-color: #D3DBE6;
}

.gw-areas li > a,
.gw-areas li > span {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 11px 0;
	font-size: 1.0625rem;
}

.gw-areas li > a {
	color: var(--gw-ink);
	font-weight: 600;
	text-decoration: none;
}

.gw-areas li > a .gw-icon {
	width: 18px;
	height: 18px;
	color: var(--gw-blue);
	transition: transform 0.3s var(--gw-ease);
}

.gw-areas li > a:hover {
	color: var(--gw-blue);
}

.gw-areas li > a:hover .gw-icon {
	transform: translateX(4px);
}

.gw-areas li > span {
	color: var(--gw-muted);
}

.gw-areas__note {
	margin: 32px 0 0;
	color: var(--gw-muted);
}

.gw-areas__note a {
	font-weight: 600;
}

/* 9. Rain tool ------------------------------------------------------------- */
.gw-rain {
	background:
		radial-gradient(50% 60% at 100% 0%, rgba(2, 73, 187, 0.22), transparent 70%),
		var(--gw-ink);
}

.gw-rain__layout {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(36px, 6vw, 80px);
	align-items: center;
}

.gw-rain__copy > * {
	margin: 0;
}

.gw-rain__copy .gw-lead {
	margin-top: 22px;
	color: var(--gw-on-dark);
}

.gw-rain__hint {
	margin-top: 18px !important;
	color: var(--gw-sky);
	font-weight: 600;
}

.gw-raintool {
	display: grid;
	gap: 28px;
	padding: clamp(24px, 3vw, 36px);
	border: 1px solid var(--gw-line-dark);
	border-radius: var(--gw-r-lg);
	background: var(--gw-ink-3);
}

.gw-raintool__controls {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.gw-raintool__field {
	display: grid;
	gap: 10px;
}

.gw-raintool__label {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	color: #FFFFFF;
	font-weight: 600;
}

.gw-raintool__label output {
	color: var(--gw-sky);
	font-variant-numeric: tabular-nums;
}

.gw-raintool__help {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.875rem;
	line-height: 1.4;
}

.gw-raintool input[type="range"] {
	--p: 25%;
	width: 100%;
	height: 28px;
	margin: 0;
	background: transparent;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.gw-raintool input[type="range"]::-webkit-slider-runnable-track {
	height: 8px;
	border-radius: 8px;
	background: linear-gradient(90deg, var(--gw-blue) var(--p), rgba(255, 255, 255, 0.14) var(--p));
}

.gw-raintool input[type="range"]::-moz-range-track {
	height: 8px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.14);
}

.gw-raintool input[type="range"]::-moz-range-progress {
	height: 8px;
	border-radius: 8px;
	background: var(--gw-blue);
}

.gw-raintool input[type="range"]::-webkit-slider-thumb {
	width: 26px;
	height: 26px;
	margin-top: -9px;
	border: 4px solid var(--gw-blue);
	border-radius: 50%;
	background: #FFFFFF;
	-webkit-appearance: none;
	appearance: none;
}

.gw-raintool input[type="range"]::-moz-range-thumb {
	width: 18px;
	height: 18px;
	border: 4px solid var(--gw-blue);
	border-radius: 50%;
	background: #FFFFFF;
}

.gw-raintool input[type="range"]:focus-visible {
	outline: none;
}

.gw-raintool input[type="range"]:focus-visible::-webkit-slider-thumb {
	box-shadow: 0 0 0 5px rgba(126, 166, 242, 0.45);
}

.gw-raintool__result {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr);
	gap: 8px 26px;
	padding-top: 26px;
	border-top: 1px solid var(--gw-line-dark);
}

.gw-raintool__gauge {
	position: relative;
	grid-row: span 3;
	align-self: stretch;
	min-height: 220px;
	overflow: hidden;
	border: 2px solid rgba(255, 255, 255, 0.25);
	border-top: 0;
	border-radius: 0 0 16px 16px;
	background: repeating-linear-gradient(180deg, transparent 0 21px, rgba(255, 255, 255, 0.12) 21px 22px);
}

.gw-raintool__level {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 30%;
	background: linear-gradient(180deg, #2A6CE0, var(--gw-blue));
	box-shadow: inset 0 3px 0 rgba(255, 255, 255, 0.35);
	transition: height 0.7s var(--gw-ease);
}

.gw-raintool__nums {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px 24px;
	margin: 0;
}

.gw-raintool__nums > div {
	margin: 0;
}

.gw-raintool__nums dt {
	color: rgba(255, 255, 255, 0.62);
	font-size: 0.9375rem;
}

.gw-raintool__nums dd {
	margin: 2px 0 0;
	color: #FFFFFF;
	font-family: var(--gw-display);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.gw-raintool__big {
	grid-column: 1 / -1;
}

.gw-raintool__big dd {
	font-size: clamp(3rem, 2rem + 3vw, 4.75rem);
}

.gw-raintool__big dd span {
	color: var(--gw-sky);
}

.gw-raintool__advice {
	margin: 4px 0 0;
	color: #FFFFFF;
	font-weight: 600;
}

.gw-raintool__fine {
	margin: 0;
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.875rem;
}

/* 10. Inner pages ---------------------------------------------------------- */
.gw-page-hero {
	position: relative;
	padding: clamp(40px, 5vw, 72px) 0 clamp(72px, 8vw, 104px);
	background:
		radial-gradient(55% 80% at 100% 0%, rgba(2, 73, 187, 0.26), transparent 65%),
		var(--gw-ink);
}

.gw-page-hero__inner > * {
	margin: 0;
}

.gw-page-hero__title {
	max-width: 17ch;
	color: #FFFFFF;
	font-size: clamp(2.75rem, 1.6rem + 4vw, 5.25rem);
	line-height: 0.92;
}

.gw-page-hero .gw-lead {
	margin-top: 22px !important;
	color: var(--gw-on-dark);
}

.gw-page-hero .gw-actions {
	margin-top: 30px !important;
}

.gw-page-hero .gw-facts {
	margin-top: 28px !important;
	color: #FFFFFF;
}

/* A K-style gutter profile, drawn large and faint, on the right of inner page headers. */
.gw-page-hero::after {
	content: "";
	position: absolute;
	right: max(var(--gw-gutter), calc((100vw - var(--gw-wrap)) / 2 + var(--gw-gutter)));
	top: 50%;
	width: clamp(260px, 26vw, 400px);
	aspect-ratio: 1;
	transform: translateY(-50%);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%237EA6F2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke-width='3' d='M40 30 V150 Q40 166 56 166 H140 Q154 166 157 152 L163 118 Q165 108 172 104 Q182 99 178 88 L174 78 Q171 70 178 66 Q186 63 188 56'/%3E%3Cpath stroke-width='1.5' stroke-dasharray='3 6' d='M40 30 H186'/%3E%3Cpath stroke-width='2' d='M52 142 Q96 128 150 142'/%3E%3Cpath stroke-width='1.2' d='M12 22 V174 M12 30 H30 M12 166 H30'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
	opacity: 0.16;
	pointer-events: none;
}

.gw-page-hero > .gw-wrap {
	position: relative;
	z-index: 1;
}

.gw-page-hero--simple,
.gw-page-hero--short {
	padding-bottom: clamp(56px, 6vw, 80px);
}

.gw-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 22px;
	padding: 0;
	list-style: none;
	color: var(--gw-on-dark);
	font-size: 0.9375rem;
}

.gw-crumbs li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
}

.gw-crumbs li + li::before {
	content: "/";
	color: rgba(255, 255, 255, 0.35);
}

.gw-crumbs a {
	color: #FFFFFF;
	text-decoration: none;
}

.gw-crumbs a:hover {
	color: var(--gw-sky);
	text-decoration: underline;
}

/* Options table */
.gw-table-wrap {
	overflow-x: auto;
	border-radius: var(--gw-r-lg);
	background: var(--gw-white);
	box-shadow: var(--gw-shadow);
}

.gw-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 1rem;
}

.gw-table th,
.gw-table td {
	padding: 18px 22px;
	border-bottom: 1px solid var(--gw-line);
	text-align: left;
	vertical-align: top;
	line-height: 1.45;
}

.gw-table thead th {
	background: var(--gw-ink);
	color: #FFFFFF;
	font-size: 0.9375rem;
	font-weight: 600;
}

.gw-table tbody th {
	width: 26%;
	color: var(--gw-ink);
	font-weight: 600;
}

.gw-table td {
	color: var(--gw-muted);
}

.gw-table tbody tr:last-child > * {
	border-bottom: 0;
}

/* Signs and steps */
.gw-svc-signs__layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(40px, 6vw, 88px);
}

.gw-svc-signs__layout h2 {
	margin-bottom: 28px;
	font-size: clamp(2rem, 1.5rem + 1.5vw, 2.75rem);
}

.gw-signs {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--gw-line);
}

.gw-signs li {
	position: relative;
	margin: 0;
	padding: 15px 0 15px 34px;
	border-bottom: 1px solid var(--gw-line);
	line-height: 1.45;
}

.gw-signs li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 18px;
	width: 13px;
	height: 17px;
	background: var(--gw-blue);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 17'%3E%3Cpath d='M6.5 0S0 7.3 0 10.5a6.5 6.5 0 0 0 13 0C13 7.3 6.5 0 6.5 0z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 17'%3E%3Cpath d='M6.5 0S0 7.3 0 10.5a6.5 6.5 0 0 0 13 0C13 7.3 6.5 0 6.5 0z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Small service cards */
.gw-svc-mini {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gw-svc-mini--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gw-svc-mini li {
	margin: 0;
}

.gw-svc-mini a {
	display: grid;
	gap: 8px;
	height: 100%;
	box-sizing: border-box;
	padding: 24px;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	background: var(--gw-white);
	color: var(--gw-ink);
	text-decoration: none;
	transition: border-color 0.25s, transform 0.4s var(--gw-ease), box-shadow 0.3s;
}

.gw-svc-mini a:hover {
	border-color: var(--gw-blue);
	box-shadow: var(--gw-shadow);
	transform: translateY(-2px);
}

.gw-svc-mini__icon {
	color: var(--gw-blue);
}

.gw-svc-mini__icon .gw-icon {
	width: 30px;
	height: 30px;
}

.gw-svc-mini__name {
	font-weight: 600;
	font-size: 1.125rem;
	line-height: 1.3;
}

.gw-svc-mini__text {
	color: var(--gw-muted);
	font-size: 0.9375rem;
	line-height: 1.45;
}

.gw-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gw-pills li {
	margin: 0;
}

.gw-pills a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 46px;
	padding: 0 18px;
	border-radius: 999px;
	background: var(--gw-white);
	color: var(--gw-ink);
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s;
}

.gw-pills a .gw-icon {
	width: 18px;
	height: 18px;
	color: var(--gw-blue);
}

.gw-pills a:hover {
	background: var(--gw-blue);
	color: #FFFFFF;
}

.gw-pills a:hover .gw-icon {
	color: #FFFFFF;
}

/* Jump links (FAQ) */
.gw-jump {
	position: sticky;
	top: var(--gw-header-h);
	z-index: 20;
	border-bottom: 1px solid var(--gw-line);
	background: rgba(255, 255, 255, 0.97);
}

.admin-bar .gw-jump {
	top: calc(var(--gw-header-h) + 32px);
}

.gw-jump ul {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 12px;
	padding-bottom: 12px;
	list-style: none;
	scrollbar-width: none;
}

.gw-jump li {
	flex: none;
	margin: 0;
}

.gw-jump a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border-radius: 999px;
	background: var(--gw-mist);
	color: var(--gw-ink);
	font-weight: 600;
	font-size: 0.9375rem;
	text-decoration: none;
	white-space: nowrap;
}

.gw-jump a:hover {
	background: var(--gw-blue);
	color: #FFFFFF;
}

/* Prose (blog articles, legal pages) */
.gw-prose {
	max-width: 70ch;
	font-size: 1.125rem;
	line-height: 1.7;
}

.gw-legal .gw-prose {
	margin: 0 auto;
}

.gw-prose > * {
	margin-top: 0;
	margin-bottom: 1.1em;
}

.gw-prose h2 {
	margin-top: 1.8em;
	margin-bottom: 0.5em;
	font-size: clamp(1.875rem, 1.5rem + 1.2vw, 2.5rem);
	line-height: 1;
}

.gw-prose h3 {
	margin-top: 1.5em;
	margin-bottom: 0.4em;
}

.gw-prose > :first-child {
	margin-top: 0;
}

.gw-prose ul,
.gw-prose ol {
	padding-left: 1.3em;
}

.gw-prose li {
	margin-bottom: 0.45em;
}

.gw-prose li::marker {
	color: var(--gw-blue);
}

.gw-prose blockquote {
	margin-left: 0;
	padding: 4px 0 4px 22px;
	border-left: 4px solid var(--gw-blue);
}

.gw-wrap--text {
	max-width: calc(70ch + 2 * var(--gw-gutter));
}

.gw-callout {
	padding: 22px 26px;
	border-radius: var(--gw-r);
	background: var(--gw-mist);
}

.gw-callout > :last-child {
	margin-bottom: 0;
}

/* 11. FAQ ------------------------------------------------------------------ */
.gw-faqs__layout {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(36px, 6vw, 88px);
	align-items: start;
}

.gw-faqs__head {
	position: sticky;
	top: calc(var(--gw-header-h) + 32px);
}

.gw-faqs__head > * {
	margin: 0 0 16px;
}

.gw-faqs__call {
	margin-top: 22px !important;
	color: var(--gw-muted);
}

.gw-faqs__call a {
	font-weight: 600;
	white-space: nowrap;
}

.gw-faqs__list {
	border-top: 1px solid var(--gw-ink);
}

.gw-faqs__list > * {
	margin: 0 !important;
}

.gw-faq {
	border-bottom: 1px solid var(--gw-line);
}

.gw-faq summary {
	position: relative;
	padding: 22px 52px 22px 0;
	font-size: 1.1875rem;
	font-weight: 600;
	line-height: 1.35;
	list-style: none;
	cursor: pointer;
	transition: color 0.2s;
}

.gw-faq summary::-webkit-details-marker {
	display: none;
}

.gw-faq summary::after {
	content: "";
	position: absolute;
	right: 4px;
	top: 50%;
	width: 32px;
	height: 32px;
	margin-top: -16px;
	border-radius: 50%;
	background: var(--gw-mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 6v12M6 12h12' fill='none' stroke='%230249BB' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / 18px no-repeat;
	transition: transform 0.35s var(--gw-ease), background-color 0.2s;
}

.gw-faq[open] summary::after {
	transform: rotate(45deg);
}

.gw-faq summary:hover {
	color: var(--gw-blue);
}

.gw-faq > p {
	max-width: 64ch;
	margin: 0 0 22px;
	color: var(--gw-muted);
}

.gw-faq[open] > p {
	animation: gw-drop-in 0.4s var(--gw-ease) both;
}

.gw-faqs--page + .gw-faqs--page {
	padding-top: 0;
}

/* 12. Quote section + forms ----------------------------------------------- */
.gw-quote {
	background:
		radial-gradient(50% 70% at 0% 100%, rgba(2, 73, 187, 0.25), transparent 70%),
		var(--gw-ink);
}

.gw-quote__layout {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(36px, 6vw, 80px);
	align-items: start;
}

.gw-quote__pitch > * {
	margin: 0;
}

.gw-quote__title {
	max-width: 15ch;
}

.gw-quote__pitch .gw-lead {
	margin-top: 22px !important;
	color: var(--gw-on-dark);
}

.gw-quote__list {
	display: grid;
	gap: 18px;
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
}

.gw-quote__list li {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
	margin: 0;
	line-height: 1.5;
}

.gw-quote__list .gw-icon {
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	padding: 10px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.08);
	color: var(--gw-sky);
}

.gw-quote__call {
	margin-top: 30px !important;
	font-size: 1.125rem;
}

.gw-quote__call a {
	font-weight: 600;
}

.gw-quote__card {
	padding: clamp(24px, 3.4vw, 44px);
	border-radius: var(--gw-r-lg);
	background: var(--gw-white);
	color: var(--gw-ink);
	box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.6);
	scroll-margin-top: calc(var(--gw-header-h) + 16px);
}

.gw-quote__card > * {
	margin: 0;
}

.gw-form {
	--wdc-accent: var(--gw-blue);
	--wdc-accent-hover: var(--gw-navy);
	--wdc-accent-soft: #EAF1FD;
	--wdc-ink: var(--gw-ink);
	--wdc-muted: var(--gw-muted);
	--wdc-line: #D3DAE5;
	--wdc-field: #F8FAFC;
	--wdc-radius: 12px;
	font-family: var(--gw-body);
}

.gw-form .wdc-step__title {
	font-family: var(--gw-display);
	font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
	text-transform: uppercase;
}

.gw-form .wdc-step__count {
	color: var(--gw-muted);
	letter-spacing: 0;
	text-transform: none;
	font-size: 0.9375rem;
}

.gw-form .wdc-btn.wdc-btn {
	border-radius: 10px;
	font-weight: 600;
}

.gw-form .wdc-chip span {
	border-radius: 10px;
}

.gw-form .wdc-form__donetitle {
	font-family: var(--gw-display);
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

/* 13. CTA band ------------------------------------------------------------- */
.gw-cta {
	padding-top: clamp(56px, 7vw, 96px);
	padding-bottom: clamp(56px, 7vw, 96px);
}

.gw-cta__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 28px 48px;
}

.gw-cta__text {
	flex: 1 1 520px;
}

.gw-cta__text > * {
	margin: 0;
}

.gw-cta__title {
	max-width: 20ch;
	color: #FFFFFF;
}

.gw-cta__text .gw-lead {
	margin-top: 16px;
}

.gw-cta .wp-block-button:not(.gw-btn-light) .wp-block-button__link {
	background: #FFFFFF;
	color: var(--gw-ink);
	box-shadow: 0 14px 30px -14px rgba(0, 0, 0, 0.5);
}

.gw-cta .wp-block-button:not(.gw-btn-light) .wp-block-button__link:hover {
	background: var(--gw-ink);
	color: #FFFFFF;
}

/* 14. Contact -------------------------------------------------------------- */
.gw-contact__layout {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
}

.gw-contact__side > * {
	margin: 0;
}

.gw-contact__card {
	padding: 30px;
	border-radius: var(--gw-r-lg);
	background: var(--gw-ink);
	color: var(--gw-on-dark);
}

.gw-contact__label {
	margin: 0;
	font-weight: 600;
}

.gw-contact__phone {
	margin: 4px 0 10px;
}

.gw-contact__phone a {
	color: #FFFFFF;
	font-family: var(--gw-display);
	font-size: clamp(2.5rem, 2rem + 1.5vw, 3.25rem);
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}

.gw-contact__phone a:hover {
	color: var(--gw-sky);
}

.gw-contact__list {
	display: grid;
	gap: 16px;
	margin: 22px 0 0;
	padding-top: 22px;
	border-top: 1px solid var(--gw-line-dark);
}

.gw-contact__list > div {
	margin: 0;
}

.gw-contact__list dt {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #FFFFFF;
	font-weight: 600;
}

.gw-contact__list dt .gw-icon {
	width: 18px;
	height: 18px;
	color: var(--gw-sky);
}

.gw-contact__list dd {
	margin: 4px 0 0 26px;
	line-height: 1.5;
}

.gw-contact__list a {
	color: #FFFFFF;
}

.gw-contact__next-title {
	margin: 36px 0 18px !important;
	font-family: var(--gw-body);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	line-height: 1.25;
	text-transform: none;
}

.gw-contact__form {
	border: 1px solid var(--gw-line);
	box-shadow: var(--gw-shadow);
}

.gw-contact__form-title {
	font-size: clamp(2rem, 1.6rem + 1.2vw, 2.75rem);
}

.gw-contact__form-lead {
	margin: 10px 0 28px !important;
	color: var(--gw-muted);
}

/* 15. Blog ----------------------------------------------------------------- */
.gw-posts__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gw-posts__grid > li {
	margin: 0;
}

.gw-post-card {
	display: grid;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r-lg);
	background: var(--gw-white);
	transition: box-shadow 0.3s, transform 0.4s var(--gw-ease);
}

.gw-post-card:hover {
	box-shadow: var(--gw-shadow);
	transform: translateY(-2px);
}

.gw-post-card > * {
	margin: 0 !important;
}

.gw-post-card__img img {
	display: block;
	width: 100%;
	object-fit: cover;
}

.gw-post-card__body {
	display: grid;
	align-content: start;
	gap: 10px;
	padding: 22px 24px 26px;
}

.gw-post-card__body > * {
	margin: 0 !important;
}

.gw-post-card__cat a {
	color: var(--gw-blue);
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
}

.gw-post-card__title {
	font-family: var(--gw-body);
	font-size: 1.3125rem;
	font-weight: 600;
	line-height: 1.3;
	text-transform: none;
}

.gw-post-card__title a {
	color: var(--gw-ink);
	text-decoration: none;
}

.gw-post-card__title a:hover {
	color: var(--gw-blue);
}

.gw-post-card__excerpt p {
	margin: 0;
	color: var(--gw-muted);
	font-size: 0.975rem;
}

.gw-pager {
	margin-top: 48px;
}

.gw-page-hero .wp-block-wdc-categories,
.gw-page-hero .wdc-cats {
	margin-top: 26px !important;
}

.gw-article-title {
	max-width: 22ch;
	font-size: clamp(2.5rem, 1.6rem + 3vw, 4.25rem);
}

.gw-article-dek {
	max-width: 60ch;
}

.gw-page-hero .wdc-post-meta,
.gw-page-hero .wp-block-wdc-post-meta {
	margin-top: 20px !important;
	color: var(--gw-on-dark);
}

.gw-article__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: clamp(40px, 6vw, 80px);
	align-items: start;
}

.gw-article__body > * {
	margin: 0 0 32px;
}

.gw-article__cover img {
	border-radius: var(--gw-r-lg);
}

.gw-article__side {
	position: sticky;
	top: calc(var(--gw-header-h) + 28px);
	display: grid;
	gap: 22px;
}

.gw-article__side > * {
	margin: 0 !important;
}

.gw-side-cta {
	padding: 26px;
	border-radius: var(--gw-r-lg);
	background: var(--gw-ink);
	color: var(--gw-on-dark);
}

.gw-side-cta > * {
	margin: 0 0 14px;
}

.gw-side-cta__title {
	color: #FFFFFF;
	font-family: var(--gw-display);
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

.gw-side-cta .wp-block-buttons {
	display: grid;
	gap: 10px;
	margin: 0;
}

.gw-side-cta .wp-block-button__link {
	width: 100%;
	min-height: 48px;
	font-size: 1rem;
}

.gw-side-cta .is-style-outline .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.45);
	color: #FFFFFF;
}

.gw-related .wp-block-wdc-related,
.gw-related > .gw-wrap > * {
	margin: 0;
}

/* 16. Footer --------------------------------------------------------------- */
.gw-footer {
	background: var(--gw-ink-2);
	color: var(--gw-on-dark);
	border-top: 1px solid var(--gw-line-dark);
}

.gw-footer a {
	color: var(--gw-on-dark);
	text-decoration: none;
}

.gw-footer a:hover {
	color: #FFFFFF;
	text-decoration: underline;
}

.gw-footer__top {
	padding: clamp(56px, 7vw, 88px) 0 48px;
}

.gw-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) repeat(3, minmax(0, 0.9fr)) minmax(0, 1.2fr);
	gap: 40px;
}

.gw-footer__logo {
	width: 160px;
	height: auto;
}

.gw-footer__motto {
	margin: 18px 0 8px;
	color: #FFFFFF;
	font-family: var(--gw-display);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

.gw-footer__blurb {
	max-width: 34ch;
	margin: 0 0 18px;
	font-size: 0.9375rem;
}

.gw-footer__social {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 600;
}

.gw-footer__social svg {
	width: 36px;
	height: 36px;
	padding: 8px;
	box-sizing: border-box;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	fill: #FFFFFF;
}

.gw-footer__h {
	margin: 0 0 16px;
	color: #FFFFFF;
	font-family: var(--gw-display);
	font-size: 1.375rem;
	font-weight: 700;
	text-transform: uppercase;
}

.gw-footer__col ul {
	display: grid;
	gap: 9px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gw-footer__col li {
	margin: 0;
	font-size: 0.9625rem;
	line-height: 1.35;
}

.gw-footer__phone {
	display: block;
	color: #FFFFFF !important;
	font-family: var(--gw-display);
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1;
}

.gw-footer__email {
	display: inline-block;
	margin-top: 10px;
	font-size: 0.9625rem;
}

.gw-footer__hours,
.gw-footer__addr {
	margin: 18px 0 0;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.gw-footer__bottom {
	border-top: 1px solid var(--gw-line-dark);
}

.gw-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 28px;
	padding-top: 22px;
	padding-bottom: 22px;
	font-size: 0.875rem;
}

.gw-footer__legal p {
	margin: 0;
}

.gw-credit {
	margin-left: auto !important;
}

.gw-credit a {
	color: #FFFFFF;
	font-weight: 600;
}

/* 17. Mobile bar ----------------------------------------------------------- */
.gw-mobilebar {
	display: none;
}

/* 18. Jobs ----------------------------------------------------------------- */
.wdc-jobs,
.wdc-recent-jobs,
.wdc-job-view,
.wdc-lightbox {
	--wdc-accent: var(--gw-blue);
	--wdc-ink: var(--gw-ink);
	--wdc-muted: var(--gw-muted);
	--wdc-line: var(--gw-line);
	--wdc-surface: var(--gw-mist);
	--wdc-card-radius: var(--gw-r);
	--wdc-dark: var(--gw-ink);
}

.wdc-recent-jobs.gw-section {
	padding-top: var(--gw-pad);
	padding-bottom: var(--gw-pad);
}

.wdc-recent-jobs__inner {
	box-sizing: border-box;
	max-width: var(--gw-wrap);
	margin: 0 auto;
	padding: 0 var(--gw-gutter);
}

.wdc-recent-jobs__title {
	font-size: var(--wp--preset--font-size--xx-large);
}

.wdc-lightbox__title {
	font-family: var(--gw-display);
	font-size: 2rem;
	text-transform: uppercase;
}

.gw-work .wdc-jobs-empty,
.wdc-recent-jobs .wdc-jobs-empty {
	background: var(--gw-white);
}

/* 19. Small screens -------------------------------------------------------- */
@media (max-width: 1180px) {
	.gw-nav,
	.gw-call {
		display: none;
	}

	.gw-burger {
		display: inline-flex;
	}

	.gw-header__bar {
		grid-template-columns: auto 1fr;
	}

	.gw-header__actions {
		justify-content: flex-end;
	}

	.gw-footer__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.gw-footer__brand,
	.gw-footer__contact {
		grid-column: span 3;
	}

	.gw-footer__contact {
		order: -1;
		grid-column: span 3;
	}

	.gw-svc-mini {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1181px) {
	.gw-drawer {
		display: none !important;
	}
}

@media (max-width: 1024px) {
	.gw-hero__inner {
		grid-template-columns: 1fr;
	}

	.gw-pledge__inner {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.gw-pledge__phone {
		grid-column: 2;
		grid-row: auto;
		justify-self: start;
		margin-top: 28px;
	}

	.gw-hero__art {
		max-width: 480px;
		margin: 8px auto 0;
	}

	.gw-split,
	.gw-svc-signs__layout,
	.gw-faqs__layout,
	.gw-quote__layout,
	.gw-rain__layout,
	.gw-contact__layout,
	.gw-article__layout {
		grid-template-columns: 1fr;
	}

	.gw-faqs__head,
	.gw-article__side {
		position: static;
	}

	.gw-page-hero::after {
		display: none;
	}

	.gw-promises ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px 0;
	}

	.gw-promises li:nth-child(3) {
		padding-left: 0;
		border-left: 0;
	}

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

	.gw-reason,
	.gw-reason:not(:nth-child(3n + 1)) {
		padding: 30px 28px 32px 0;
		border-left: 0;
	}

	.gw-reason:nth-child(2n) {
		padding-left: 28px;
		border-left: 1px solid var(--gw-line);
	}

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

	.gw-steps::before {
		display: none;
	}


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

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

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

	.gw-index__row a {
		grid-template-columns: 56px minmax(0, 1fr) 44px;
	}

	.gw-index__text {
		grid-column: 2;
		grid-row: 2;
		margin-top: -14px;
	}

	.gw-index__go {
		grid-column: 3;
		grid-row: 1 / span 2;
	}

	.gw-index__icon {
		grid-row: 1 / span 2;
	}
}

@media (max-width: 781px) {
	:root {
		--gw-header-h: 64px;
	}

	.admin-bar .gw-header-part {
		top: 46px;
	}

	.gw-header__logo img {
		height: 24px;
	}

	.gw-header__quote {
		display: none;
	}

	.gw-burger__label {
		display: none;
	}

	.gw-burger {
		width: 46px;
		justify-content: center;
		padding: 0;
	}

	body {
		padding-bottom: calc(68px + env(safe-area-inset-bottom));
	}

	.gw-mobilebar {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
		background: rgba(23, 23, 23, 0.98);
		border-top: 1px solid var(--gw-line-dark);
		transition: transform 0.35s var(--gw-ease);
	}

	.gw-mobilebar.is-hidden {
		transform: translateY(110%);
	}

	.gw-mobilebar a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		min-height: 52px;
		border-radius: 10px;
		font-weight: 600;
		font-size: 1.0625rem;
		text-decoration: none;
	}

	.gw-mobilebar__call {
		background: #FFFFFF;
		color: var(--gw-ink);
	}

	.gw-mobilebar__call .gw-icon {
		width: 20px;
		height: 20px;
	}

	.gw-mobilebar__quote {
		background: var(--gw-blue);
		color: #FFFFFF;
	}

	.gw-hero {
		padding-top: 36px;
	}

	.gw-hero__title {
		font-size: clamp(2.875rem, 1.4rem + 7.4vw, 4rem);
	}

	.gw-hero .gw-actions .wp-block-button,
	.gw-page-hero .gw-actions .wp-block-button,
	.gw-cta .gw-actions .wp-block-button {
		flex: 1 1 100%;
	}

	.gw-hero .gw-actions .wp-block-button__link,
	.gw-page-hero .gw-actions .wp-block-button__link,
	.gw-cta .gw-actions .wp-block-button__link {
		width: 100%;
	}

	.gw-promises ul {
		grid-template-columns: 1fr 1fr;
		padding-top: 26px;
		padding-bottom: 24px;
	}

	.gw-promises li,
	.gw-promises li:nth-child(n) {
		padding: 0 0 0 14px;
		border-left: 0;
		gap: 10px;
	}

	.gw-promises li:nth-child(odd) {
		padding-left: 0;
	}

	.gw-promises .gw-icon {
		width: 24px;
		height: 24px;
	}

	.gw-promises strong {
		font-size: 0.975rem;
	}

	.gw-promises span {
		font-size: 0.875rem;
	}

	.gw-index__row a {
		grid-template-columns: 44px minmax(0, 1fr);
		gap: 6px 16px;
		padding: 18px 0;
	}

	.gw-index__row a:hover {
		padding-left: 0;
		padding-right: 0;
		background: transparent;
	}

	.gw-index__icon {
		width: 44px;
		height: 44px;
		grid-row: span 2;
	}

	.gw-index__icon .gw-icon {
		width: 22px;
		height: 22px;
	}

	.gw-index__text {
		margin-top: 0;
		font-size: 0.9375rem;
	}

	.gw-index__go {
		display: none;
	}

	.gw-pledge__inner {
		grid-template-columns: 1fr;
	}

	.gw-pledge__phone {
		grid-column: auto;
		grid-row: auto;
		margin-top: 28px;
		padding: 22px 24px;
	}

	.gw-pledge__icon {
		grid-row: auto;
		margin-bottom: 20px;
	}

	.gw-reasons {
		grid-template-columns: 1fr;
	}

	.gw-reason,
	.gw-reason:not(:nth-child(3n + 1)),
	.gw-reason:nth-child(2n) {
		padding: 26px 0;
		border-left: 0;
	}

	.gw-steps {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.gw-steps::before {
		display: none;
	}

	.gw-step:not(:last-child)::before {
		content: "";
		position: absolute;
		left: 28px;
		top: 30px;
		width: 5px;
		height: 100%;
		border-radius: 4px;
		background: linear-gradient(180deg, #1F5FD1, var(--gw-navy));
	}

	.gw-steps--compact .gw-step:not(:last-child)::before {
		left: 21px;
		width: 4px;
	}

	.gw-step {
		display: grid;
		grid-template-columns: 60px minmax(0, 1fr);
		column-gap: 18px;
		padding-bottom: 26px;
	}

	.gw-step__n {
		grid-row: span 2;
		margin: 0;
	}

	.gw-step__title {
		margin: 14px 0 4px;
	}

	.gw-areas {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.gw-raintool__controls {
		grid-template-columns: 1fr;
	}

	.gw-raintool__result {
		grid-template-columns: 52px minmax(0, 1fr);
		gap: 8px 18px;
	}

	.gw-raintool__gauge {
		min-height: 180px;
	}

	.gw-raintool__nums {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.gw-table thead {
		display: none;
	}

	.gw-table,
	.gw-table tbody,
	.gw-table tr,
	.gw-table th,
	.gw-table td {
		display: block;
		width: auto !important;
	}

	.gw-table tr {
		padding: 18px 20px;
		border-bottom: 1px solid var(--gw-line);
	}

	.gw-table th,
	.gw-table td {
		padding: 0;
		border: 0;
	}

	.gw-table td {
		margin-top: 6px;
	}

	.gw-table td:first-of-type {
		color: var(--gw-ink);
	}

	.gw-svc-mini,
	.gw-svc-mini--3 {
		grid-template-columns: 1fr;
	}

	.gw-svc-mini a {
		grid-template-columns: 34px minmax(0, 1fr);
		column-gap: 14px;
		padding: 18px;
	}

	.gw-svc-mini__icon {
		grid-row: span 2;
	}

	.gw-posts__grid {
		grid-template-columns: 1fr;
	}

	.gw-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 36px 24px;
	}

	.gw-footer__brand,
	.gw-footer__contact {
		grid-column: span 2;
	}

	.gw-credit {
		margin-left: 0 !important;
	}

	.gw-mega__services {
		grid-template-columns: 1fr;
	}

	.gw-faq summary {
		font-size: 1.0625rem;
	}

	.gw-run__drop {
		right: 18%;
	}

	.gw-form .wdc-chips:not(.wdc-chips--small) {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
	}

	.gw-form .wdc-chips:not(.wdc-chips--small) .wdc-chip span {
		min-height: 52px;
		padding: 10px 12px;
		font-size: 0.9375rem;
	}
}

@media (max-width: 599px) {
	.gw-hero__art {
		display: none;
	}
}

/* 20. Motion --------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		animation-delay: 0s !important;
		transition-duration: 0.01ms !important;
	}

	.gw-art__rain,
	.gw-run__drop,
	.gw-art__drop {
		display: none;
	}
}

@media print {
	.gw-header-part,
	.gw-mobilebar,
	.gw-footer,
	.gw-quote,
	.gw-cta {
		display: none !important;
	}
}

/* The house keeps going past the edge of the drawing. */
.gw-art {
	-webkit-mask-image: linear-gradient(90deg, #000 78%, transparent 100%);
	mask-image: linear-gradient(90deg, #000 78%, transparent 100%);
}

/* Blog blocks from Web.Dznr Core ------------------------------------------- */
.wdc-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	margin: 0;
	color: var(--gw-muted);
	font-size: 0.9375rem;
}

.is-dark .wdc-meta {
	color: var(--gw-on-dark);
}

.wdc-meta a {
	font-weight: 600;
	text-decoration: none;
}

.wdc-meta__dot {
	opacity: 0.5;
}

.gw-post-card .wdc-meta {
	font-size: 0.875rem;
}

.wdc-chips-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.wdc-chips-nav a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 999px;
	color: #FFFFFF;
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
}

.wdc-chips-nav a:hover,
.wdc-chips-nav a[aria-current="page"] {
	border-color: #FFFFFF;
	background: #FFFFFF;
	color: var(--gw-ink);
}

.wdc-toc {
	padding: 22px 24px;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r-lg);
}

.wdc-toc__label {
	margin: 0 0 12px;
	font-family: var(--gw-display);
	font-size: 1.375rem;
	font-weight: 700;
	text-transform: uppercase;
}

.wdc-toc ol {
	display: grid;
	gap: 10px;
	margin: 0;
	padding-left: 1.2em;
}

.wdc-toc li::marker {
	color: var(--gw-blue);
	font-weight: 600;
}

.wdc-toc a {
	color: var(--gw-ink);
	font-size: 0.9625rem;
	line-height: 1.4;
	text-decoration: none;
}

.wdc-toc a:hover,
.wdc-toc a.is-active {
	color: var(--gw-blue);
	text-decoration: underline;
}

.wdc-related__title {
	margin: 0 0 28px;
}

.wdc-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wdc-card {
	margin: 0;
}

.wdc-card .wdc-card__link {
	display: grid;
	gap: 8px;
	height: 100%;
	box-sizing: border-box;
	padding-bottom: 22px;
	overflow: hidden;
	border-radius: var(--gw-r-lg);
	background: var(--gw-white);
	color: var(--gw-ink);
	text-decoration: none;
	transition: box-shadow 0.3s, transform 0.4s var(--gw-ease);
}

.wdc-card .wdc-card__link:hover {
	box-shadow: var(--gw-shadow);
	transform: translateY(-2px);
}

.wdc-card__image img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.wdc-card__cat,
.wdc-card__title,
.wdc-card__meta {
	padding: 0 22px;
}

.wdc-card__cat {
	margin-top: 10px;
	color: var(--gw-blue);
	font-size: 0.875rem;
	font-weight: 600;
}

.wdc-card__title {
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.3;
}

.wdc-card__meta {
	color: var(--gw-muted);
	font-size: 0.875rem;
}

@media (max-width: 1024px) {
	.wdc-related__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 1024px) {
	.gw-contact__form {
		order: -1;
	}
}

/* Search field */
.gw-search {
	max-width: 640px;
	margin-top: 26px !important;
}

.gw-search .wp-block-search__inside-wrapper {
	gap: 8px;
	padding: 0;
	border: 0;
}

.gw-search .wp-block-search__input {
	min-height: 54px;
	padding: 0 18px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.06);
	color: #FFFFFF;
	font: inherit;
}

.gw-search .wp-block-search__input::placeholder {
	color: rgba(255, 255, 255, 0.55);
}

.gw-search .wp-block-search__button {
	min-height: 54px;
	margin: 0;
	padding: 0 24px;
	border-radius: 10px;
}

/* Free Quote page: the form is the page. */
.page-free-quote .gw-quote,
.gw-canvas-content > .gw-quote:first-child {
	padding-top: clamp(40px, 5vw, 72px);
}

/* One-step quote form: compact and tidy ------------------------------------ */
.gw-quote__card-title {
	font-family: var(--gw-display);
	font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem);
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}

.gw-quote__card-lead {
	margin: 8px 0 22px !important;
	color: var(--gw-muted);
	font-size: 0.9375rem;
}

.gw-form.wdc-form--single .wdc-row {
	gap: 14px;
}

.gw-form.wdc-form--single .wdc-step > * + * {
	margin-top: 14px;
}

.gw-form .wdc-flabel {
	margin-bottom: 6px;
	font-size: 0.875rem;
	font-weight: 600;
}

.gw-form .wdc-flabel em {
	font-weight: 400;
}

.gw-form.wdc-form input[type="text"],
.gw-form.wdc-form input[type="email"],
.gw-form.wdc-form input[type="tel"],
.gw-form.wdc-form select {
	min-height: 50px;
	padding-top: 12px;
	padding-bottom: 12px;
	font-size: 1rem;
}

.gw-form.wdc-form textarea {
	min-height: 96px;
}

.gw-form .wdc-photos__drop {
	padding: 12px 16px;
}

.gw-form.wdc-form--single .wdc-btn--send {
	min-height: 56px;
	font-size: 1.0625rem;
}

.gw-form.wdc-form--single .wdc-form__fine {
	margin-top: 12px;
}
