﻿@charset "UTF-8";
/**
 * Pennichuck 2026 theme styles.
 *
 * File purpose: header/utility bar, mega menu, hero parallax, quick-action
 * cards, info cards, footer, water-system pages and accessibility helpers.
 * Design tokens come from theme.json (--wp--preset--*).
 *
 * @package Pennichuck2026
 * @version 1.0.0
 * @since 2026-09-26
 *
 * Change log:
 * 2026-09-27 Elementor footer 12859: full-bleed gray/black bars, Go Green tree, block-style buttons.
 * 2026-09-27 Elementor footer 12859: three-column grid matching block footer-content pattern.
 * 2026-09-27 MWS mobile: restore header/intro (overflow-y visible; less negative overlap margin).
 * 2026-09-27 MWS card shadows clipped before wave; removed news-row ::before seam line.
 * 2026-09-27 PUC Activity Elementor title: stop color:inherit override (restores Elementor white on navy).
 * 2026-09-27 Elementor homepage: clip horizontal overflow (100vw wave); MWS centered; hide duplicate MWS h2.
 * 2026-09-27 Elementor What's New row: full-width on small screens (override 22rem padding + flex min-width).
 * 2026-09-27 Elementor section h2/h3 typography aligned with theme.json; Explore header + equal-height card grid.
 * 2026-09-27 Elementor Explore Pennichuck: info-card layout, hover lift, image zoom, scroll reveal.
 * 2026-09-27 Elementor PUC Activity: white teaser text (dynamic injection had no Elementor color class).
 * 2026-09-27 What's New post entries: title, summary, accessible read-more link styling.
 * 2026-09-27 Wave divider: full viewport width (fix right-edge gap).
 * 2026-09-27 Wave divider: tighter seam to News, darker fill for contrast.
 * 2026-09-27 MWS→News wave divider (Elementor dacd670).
 * 2026-09-27 Elementor mission band: spillway photo, navy overlay, 2×2 stats.
 * 2026-09-27 News row uses CSS grid so PUC matches What's New height.
 * 2026-09-30 MWS section head: stretch layout; PW-Section-* global classes match Explore headers.
 * 2026-09-30 Elementor home mobile: opaque action cards/icons; continuous MWS tint; wave under content.
 * 2026-09-27 Full-bleed pw-tint pseudo on action row; MWS section aligns below.
 * 2026-09-27 Elementor homepage is full-bleed (header-footer template)
 *     and Hello page title is hidden so the hero is not a boxed card.
 * 2026-09-27 Action cards drop the 1400px cap so the first Pay card
 *     shares the same left edge as the hero copy and logo.
 * 2026-09-27 FSE hero copy is left-aligned with the action icons again.
 *     Vertical center uses align-items; justify-content: center had
 *     centered the cover text horizontally.
 * 2026-09-27 Left and right side padding use the same --pw-page-gutter.
 *     Header/topbar/alert are full width (no 1400 cap) so the Pay
 *     button inset matches the logo.
 * 2026-09-27 Logo stays at the 328×52 image size on desktop. Action
 *     cards overlap the hero photo. Hero lead is 1.4rem.
 * 2026-09-27 Hero copy is vertically centered in the cover (FSE + Elementor).
 * 2026-09-27 Header/hero/action cards share --pw-align-inline so copy
 *     lines up with the logo. Wider side gutter. Social icons stay
 *     visible on mobile and are 24px.
 * 2026-09-26 Translation widget buttons in the utility bar (Español · Português).
 * 2026-09-26 PUC eyebrow uses --accent on the navy card; What's New keeps
 *     --primary on white. Sky/primary on #003a66 failed WCAG 1.4.3.
 * 2026-09-26 Light-background eyebrows use --primary instead of --sky so
 *     0.85rem text meets WCAG 1.4.3 AA (sky on white was ~2.8:1).
 * 2026-09-28 Site chrome + page title band + footer copyright bar use 100vw
 *     breakout so navy/white/blue/black backgrounds stay edge-to-edge on Hello.
 * 2026-09-28 Hello: document width 100% (not 100vw) + overflow-x only on homepage;
 *     global overflow-x + 100vw clipped the right ~45% on wide viewports/captures.
 */

/* ------------------------------------------------------------------ */
/* Base + accessibility                                                 */
/* ------------------------------------------------------------------ */
:root {
	--pw-radius: 12px;
	--pw-radius-lg: 20px;
	--pw-shadow: 0 2px 6px rgba(0, 58, 102, 0.08), 0 12px 32px rgba(0, 58, 102, 0.10);
	--pw-shadow-hover: 0 6px 14px rgba(0, 58, 102, 0.14), 0 24px 48px rgba(0, 58, 102, 0.18);
	--pw-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--pw-header-h: 84px;
	--pw-content-max: 1400px;
	--pw-page-gutter: clamp(2rem, 5vw, 4rem);
	/**
	 * @deprecated 2026-09-27
	 * Replaced by: same value as --pw-page-gutter on both sides
	 * Reason: the 1400-centering formula made the right header inset
	 *     tighter than the left when the logo + nav overflowed
	 * Remove after: 2026-11-27
	 *
	 * --pw-align-inline: max(var(--pw-page-gutter), calc((100% - var(--pw-content-max)) / 2 + var(--pw-page-gutter)));
	 */
	--pw-align-inline: var(--pw-page-gutter);
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

body { -webkit-font-smoothing: antialiased; }
/* Header, main and footer sit flush; sections manage their own spacing. */
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-site-blocks > main > .wp-block-post-content > :first-child { margin-block-start: 0; }

:focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 4px;
}
.has-accent-background-color :focus-visible,
.pw-topbar :focus-visible { outline-color: var(--wp--preset--color--white); }
.wp-block-button__link:focus-visible { outline-offset: 3px; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link.screen-reader-text:focus {
	clip: auto; clip-path: none; height: auto; width: auto; left: 1rem; top: 1rem; z-index: 100000;
	padding: 0.8rem 1.2rem; background: var(--wp--preset--color--accent); color: var(--wp--preset--color--navy);
	font-weight: 700; text-decoration: none; border-radius: 999px;
}

img { max-width: 100%; height: auto; }
a { text-underline-offset: 0.15em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }

.pw-badge {
	display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--navy);
	border-radius: 999px; padding: 0.1rem 0.55rem; vertical-align: middle; line-height: 1.4;
}
.pw-badge--muted { background: var(--wp--preset--color--tint-2); color: var(--wp--preset--color--primary-dark); }

.pw-icon { width: 1.25em; height: 1.25em; display: inline-block; vertical-align: -0.25em; flex: none; }

/* Eyebrow heading style */
.is-style-pw-eyebrow {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: 0.85rem !important; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--wp--preset--color--primary) !important; margin-bottom: 0.5rem;
}
.pw-hero .is-style-pw-eyebrow,
.has-navy-background-color .is-style-pw-eyebrow,
.has-primary-dark-background-color .is-style-pw-eyebrow,
.has-primary-background-color .is-style-pw-eyebrow { color: var(--wp--preset--color--accent) !important; }

/* ------------------------------------------------------------------ */
/* Utility bar                                                          */
/* ------------------------------------------------------------------ */
.pw-topbar {
	background: var(--wp--preset--color--navy); color: #fff; font-size: 0.95rem;
}
.pw-topbar a { color: #fff; text-decoration: none; }
.pw-topbar a:hover, .pw-topbar a:focus-visible { text-decoration: underline; }
.pw-topbar .wp-block-social-links,
.pw-topbar .pw-topbar__social {
	display: flex !important;
	flex-shrink: 0;
	gap: 0.35rem;
}
.pw-topbar .wp-block-social-link a { padding: 0.4rem; }
.pw-topbar .wp-block-social-link svg,
.pw-topbar__social svg { width: 24px; height: 24px; }
.pw-topbar__phone { font-weight: 700; font-size: 1.05rem; display: inline-flex; align-items: center; gap: 0.4rem; }
.pw-topbar__phone .pw-icon { color: var(--wp--preset--color--accent); }
.pw-topbar .pw-utility-links { display: flex; gap: 1.25rem; flex-wrap: wrap; align-items: center; margin: 0; padding: 0; list-style: none; }
/**
 * @deprecated 2026-09-27
 * Replaced by: social icons remain visible at every breakpoint
 * Reason: both the 2026 theme and Hello/Elementor hid icons below 781px
 * Remove after: 2026-11-27
 */
/* @media (max-width: 781px) {
	.pw-topbar .pw-topbar__social { display: none; }
} */

/* ------------------------------------------------------------------ */
/* Header                                                               */
/* ------------------------------------------------------------------ */
.pw-header {
	position: sticky; top: 0; z-index: 900; background: #fff;
	box-shadow: 0 1px 0 var(--wp--preset--color--tint-2), 0 8px 24px rgba(0, 58, 102, 0.06);
}
.admin-bar .pw-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .pw-header { top: 46px; } }

.pw-header.wp-block-group,
.pw-topbar.wp-block-group,
.pw-alert.wp-block-group {
	max-width: none;
	width: 100%;
}
/* Viewport breakout when a parent is narrower than the screen (Hello + nested title band). */
.pw-full-bleed,
body > .pw-alert,
body > .pw-topbar,
body > .pw-header,
.pw-alert.is-layout-constrained,
.pw-topbar.is-layout-constrained,
.pw-header.is-layout-constrained,
.wp-block-group.alignfull.pw-alert,
.wp-block-group.alignfull.pw-topbar,
.wp-block-group.alignfull.pw-header,
aside.alignfull.pw-alert {
	display: block;
	box-sizing: border-box;
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
}
.pw-header.wp-block-group > .pw-header__inner,
.pw-topbar.wp-block-group > .wp-block-group,
.pw-alert.wp-block-group > .pw-alert__inner,
.pw-header:not(.wp-block-group) .pw-header__inner,
.pw-topbar:not(.wp-block-group) .pw-topbar__inner,
.pw-alert:not(.wp-block-group) .pw-alert__inner {
	max-width: none;
	width: 100%;
	margin-inline: 0;
	padding-left: var(--pw-page-gutter);
	padding-right: var(--pw-page-gutter);
	box-sizing: border-box;
}
.pw-header__inner {
	display: flex; align-items: center; gap: 1.5rem; min-height: var(--pw-header-h);
	padding-top: 0.5rem; padding-bottom: 0.5rem;
}
@media (min-width: 1280px) { .pw-header__inner { flex-wrap: nowrap !important; } }
/**
 * @deprecated 2026-09-27
 * Replaced by: flex 0 0 auto + 328×52 so the logo matches the PNG
 * Reason: flex-shrink made the header logo smaller than pennichuck-logo.png
 * Remove after: 2026-11-27
 *
 * .pw-header__logo { flex: 0 1 328px; min-width: 0; }
 * .pw-header__logo .custom-logo, .pw-header__logo img { width: 328px; max-width: 100%; height: auto; }
 */
.pw-header__logo { flex: 0 0 auto; }
.pw-header__logo .wp-block-site-logo { max-width: none; }
.pw-header__logo .custom-logo, .pw-header__logo img {
	width: 328px; height: 52px; max-width: none; display: block;
}
@media (max-width: 599px) {
	.pw-header__logo .custom-logo, .pw-header__logo img {
		width: min(328px, 70vw); height: auto;
	}
}
.pw-header__logo a { display: block; }
.pw-header__nav { flex: 1 1 auto; display: flex; justify-content: center; }
.pw-header__actions { display: flex; align-items: center; gap: 0.75rem; margin-left: auto; }
.pw-header__actions .wp-block-buttons { flex-wrap: nowrap; }
.pw-header__actions .wp-block-button__link { padding: 0.65rem 1.25rem; font-size: 1rem; white-space: nowrap; }
.pw-header__search .wp-block-search__button {
	background: transparent; color: var(--wp--preset--color--primary); border: 2px solid var(--wp--preset--color--tint-2);
	border-radius: 999px; padding: 0.55rem; margin-left: 0;
}
.pw-header__search .wp-block-search__button:hover,
.pw-header__search .wp-block-search__button:focus-visible { background: var(--wp--preset--color--tint); border-color: var(--wp--preset--color--primary); }
.pw-header__search .wp-block-search__button svg { width: 22px; height: 22px; }
.pw-header__search .wp-block-search__button.has-icon svg { fill: currentColor; }

/* Laptop range: tighten the menu so the full-size logo still fits beside it. */
@media (min-width: 1280px) and (max-width: 1599px) {
	.pw-header__inner { gap: 1rem; }
	.pw-header__nav .pw-mega__list { gap: 0; }
	.pw-header__nav .pw-mega__toggle { font-size: 0.95rem; padding: 0.7rem 0.55rem; }
	.pw-header__nav .pw-mega__toggle::after { left: 0.6rem; right: 0.6rem; }
	.pw-header__actions { gap: 0.5rem; }
	.pw-header__actions .wp-block-button__link { padding: 0.65rem 1rem; }
}
@media (max-width: 1279px) {
	.pw-header__inner { flex-wrap: wrap; gap: 0.75rem 1rem; }
	.pw-header__nav { order: 3; flex-basis: 100%; justify-content: flex-start; }
}
@media (max-width: 599px) {
	.pw-header__actions .pw-header__search { display: none; }
}

/* ------------------------------------------------------------------ */
/* Mega menu                                                            */
/* ------------------------------------------------------------------ */
.pw-mega { position: static; font-weight: 600; }
.pw-mega ul { list-style: none; margin: 0; padding: 0; }
.pw-mega__burger {
	display: none; align-items: center; gap: 0.5rem; background: var(--wp--preset--color--tint); border: 2px solid var(--wp--preset--color--tint-2);
	color: var(--wp--preset--color--primary-dark); border-radius: 999px; padding: 0.55rem 1rem; font: inherit; font-weight: 700; cursor: pointer;
}
.pw-mega__burger .pw-icon { width: 1.4em; height: 1.4em; }
.pw-mega__burger-icon--close { display: none; }
.pw-mega__burger[aria-expanded="true"] .pw-mega__burger-icon--close { display: inline-block; }
.pw-mega__burger[aria-expanded="true"] .pw-mega__burger-icon:not(.pw-mega__burger-icon--close) { display: none; }

.pw-mega__list { display: flex; gap: 0.25rem; }
.pw-mega__toggle {
	display: inline-flex; align-items: center; gap: 0.35rem; background: none; border: 0; cursor: pointer;
	font: inherit; font-weight: 600; font-size: 1rem; color: var(--wp--preset--color--primary-dark); white-space: nowrap;
	padding: 0.7rem 0.8rem; border-radius: 999px; position: relative; transition: background 0.2s var(--pw-ease), color 0.2s var(--pw-ease);
}
.pw-mega__toggle::after {
	content: ""; position: absolute; left: 0.9rem; right: 0.9rem; bottom: 0.25rem; height: 3px; border-radius: 3px;
	background: var(--wp--preset--color--accent); transform: scaleX(0); transform-origin: left; transition: transform 0.25s var(--pw-ease);
}
.pw-mega__toggle:hover, .pw-mega__toggle[aria-expanded="true"] { color: var(--wp--preset--color--primary); background: var(--wp--preset--color--tint); }
.pw-mega__toggle[aria-expanded="true"]::after { transform: scaleX(1); }
.pw-mega__chevron { width: 1em; height: 1em; transition: transform 0.25s var(--pw-ease); }
.pw-mega__toggle[aria-expanded="true"] .pw-mega__chevron { transform: rotate(180deg); }

.pw-mega__panel {
	position: absolute; left: 0; right: 0; top: 100%; background: #fff; z-index: 950;
	border-top: 1px solid var(--wp--preset--color--tint-2);
	box-shadow: 0 30px 50px rgba(0, 58, 102, 0.18);
	animation: pw-panel-in 0.25s var(--pw-ease);
}
.pw-mega__panel[hidden] { display: none; }
@keyframes pw-panel-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.pw-mega__panel-inner {
	max-width: var(--wp--style--global--wide-size, 1240px); margin: 0 auto; padding: 2rem var(--wp--preset--spacing--30) 2.25rem;
	display: grid; gap: 1.75rem 2.5rem;
	grid-template-columns: repeat(min(var(--pw-groups, 4), 5), minmax(0, 1fr));
}
.pw-mega__group-title {
	font-family: var(--wp--preset--font-family--body); font-size: 0.85rem; letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--wp--preset--color--muted); margin: 0 0 0.75rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--wp--preset--color--tint-2);
}
.pw-mega__group-toggle {
	all: unset; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; width: 100%; cursor: pointer;
	font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit;
}
.pw-mega__group-toggle:focus-visible { outline: 3px solid var(--wp--preset--color--accent); outline-offset: 2px; }
.pw-mega__tri { width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 8px solid var(--wp--preset--color--primary); transition: transform 0.2s var(--pw-ease); }
.pw-mega__group-toggle[aria-expanded="true"] .pw-mega__tri { transform: rotate(180deg); }
.pw-mega__links { display: flex; flex-direction: column; gap: 0.15rem; }
.pw-mega__links[hidden] { display: none; }
.pw-mega__link {
	display: block; padding: 0.45rem 0.6rem; margin-left: -0.6rem; border-radius: 8px; color: var(--wp--preset--color--ink);
	text-decoration: none; font-weight: 500; line-height: 1.35; transition: background 0.15s, color 0.15s, padding-left 0.2s var(--pw-ease);
}
.pw-mega__link:hover, .pw-mega__link:focus-visible { background: var(--wp--preset--color--tint); color: var(--wp--preset--color--primary); padding-left: 0.85rem; text-decoration: underline; }
.pw-mega__link.is-featured { font-weight: 700; color: var(--wp--preset--color--primary); }
.pw-mega__link.is-featured::before { content: "\2605  "; color: var(--wp--preset--color--accent); -webkit-text-stroke: 0.5px var(--wp--preset--color--primary); }
.pw-mega__link.is-tbd { color: var(--wp--preset--color--muted); cursor: default; }

/* Narrow: accordion */
@media (max-width: 1279px) {
	.pw-mega { position: relative; width: 100%; }
	.pw-mega__burger { display: inline-flex; }
	.pw-mega__list { display: none; flex-direction: column; gap: 0; margin-top: 0.75rem; border-top: 1px solid var(--wp--preset--color--tint-2); }
	.pw-mega.is-open .pw-mega__list { display: flex; }
	.pw-mega__item { border-bottom: 1px solid var(--wp--preset--color--tint-2); }
	.pw-mega__toggle { width: 100%; justify-content: space-between; border-radius: 0; padding: 1rem 0.5rem; font-size: 1.1rem; }
	.pw-mega__toggle::after { display: none; }
	.pw-mega__panel { position: static; box-shadow: none; border: 0; animation: none; background: var(--wp--preset--color--surface); }
	.pw-mega__panel-inner { grid-template-columns: 1fr; gap: 1.25rem; padding: 1rem 0.75rem 1.5rem; }
	.pw-mega__link { margin-left: 0; padding: 0.6rem 0.6rem; }
}

/* ------------------------------------------------------------------ */
/* Alert banner                                                         */
/* ------------------------------------------------------------------ */
.pw-alert {
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--navy); font-weight: 600;
	position: relative; z-index: 901;
}
.pw-alert p { margin: 0; }
.pw-alert a { color: var(--wp--preset--color--navy); text-decoration: underline; font-weight: 700; }
.pw-alert__inner { display: flex; align-items: center; gap: 0.75rem; padding: 0.7rem 0; }
.pw-alert__inner > .pw-icon { color: var(--wp--preset--color--alert); flex: none; width: 1.5em; height: 1.5em; }
.pw-alert__dismiss {
	margin-left: auto; background: rgba(31, 49, 129, 0.1); border: 0; border-radius: 999px; width: 2.25rem; height: 2.25rem; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center; color: var(--wp--preset--color--navy); flex: none;
}
.pw-alert__dismiss:hover { background: rgba(31, 49, 129, 0.2); }
.pw-alert.is-dismissed { display: none; }

/* ------------------------------------------------------------------ */
/* Hero                                                                 */
/* ------------------------------------------------------------------ */
.pw-hero.wp-block-cover, .is-style-pw-hero.wp-block-cover { min-height: clamp(540px, 78vh, 760px); overflow: hidden; isolation: isolate; }
.pw-stats-band.wp-block-cover { min-height: 0; }
.pw-hero .wp-block-cover__image-background {
	transform: translate3d(0, var(--pw-parallax, 0px), 0) scale(1.12); will-change: transform; transform-origin: center;
}
@media (prefers-reduced-motion: reduce) { .pw-hero .wp-block-cover__image-background { transform: none; } }
.pw-hero .wp-block-cover__background { background: linear-gradient(180deg, rgba(0, 58, 102, 0.20) 0%, rgba(0, 58, 102, 0.55) 55%, rgba(0, 58, 102, 0.85) 100%) !important; opacity: 1 !important; }
/**
 * @deprecated 2026-09-27
 * Replaced by: --pw-align-inline (same inset as logo + action cards)
 * Reason: 1rem gutter left the header and hero too close to the viewport edge
 * Remove after: 2026-11-27
 *
 * .pw-hero.wp-block-cover {
 *   justify-content: flex-start;
 *   padding-left: max(var(--wp--preset--spacing--30), calc((100% - 1400px) / 2));
 *   padding-right: var(--wp--preset--spacing--30);
 * }
 */
/**
 * Cover is a row flexbox. justify-content is the horizontal axis.
 * @deprecated 2026-09-27
 * Replaced by: justify-content: flex-start + align-items: center
 * Reason: justify-content: center centered the 2026 hero copy instead
 *     of lining it up with the action cards
 * Remove after: 2026-11-27
 *
 * .pw-hero.wp-block-cover:not(.pw-stats-band) { justify-content: center; }
 */
.pw-hero.wp-block-cover:not(.pw-stats-band) {
	align-items: center;
	justify-content: flex-start;
	padding-left: var(--pw-page-gutter);
	padding-right: var(--pw-page-gutter);
	box-sizing: border-box;
}
/**
 * @deprecated 2026-09-27
 * Replaced by: justify-content: center (no extra bottom pad on the inner)
 * Reason: client asked to center the hero copy vertically
 * Remove after: 2026-11-27
 *
 * .pw-hero.wp-block-cover {
 *   justify-content: flex-start;
 *   padding-left: var(--pw-align-inline);
 *   padding-right: var(--pw-align-inline);
 * }
 * .pw-hero .wp-block-cover__inner-container { padding-bottom: 6rem; }
 */
.pw-hero .wp-block-cover__inner-container,
.pw-hero .wp-block-cover__inner-container.has-global-padding {
	max-width: none;
	width: 100%;
	margin-inline: 0;
	/* 1rem = action-card side padding so copy lines up with the Pay icon. */
	padding-left: 1rem !important;
	padding-right: 0 !important;
	text-align: left;
}
/* Hello default template boxed the Elementor page and showed the title. */
body.page-id-12857 .page-header,
body.page-id-12770 .page-header,
body.elementor-page-12857 .page-header,
body.elementor-page-12770 .page-header,
body.pwt-elementor-home .page-header {
	display: none !important;
}
html,
body.hello-elementor {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}
body.hello-elementor {
	overflow-x: visible !important; /* Hello reset uses overflow-x: clip */
	min-width: 100%;
}
/* Inner pages: 100vw chrome was widening the document (~45% empty gutter on the right). */
html:has(body.hello-pennichuck:not(.pwt-elementor-home)),
html:has(body.hello-elementor:not(.pwt-elementor-home)) {
	overflow-x: clip;
}
body.hello-pennichuck:not(.pwt-elementor-home),
body.hello-elementor:not(.pwt-elementor-home) {
	overflow-x: clip !important;
	max-width: 100%;
}
html:has(body.page-id-12857),
html:has(body.page-id-12770),
html:has(body.elementor-page-12857),
html:has(body.elementor-page-12770),
html:has(body.pwt-elementor-home) {
	overflow-x: clip;
}
body.page-id-12857,
body.page-id-12770,
body.elementor-page-12857,
body.elementor-page-12770,
body.pwt-elementor-home {
	overflow-x: hidden;
	max-width: 100%;
	width: 100%;
}
body.page-id-12857 #page,
body.page-id-12770 #page,
body.elementor-page-12857 #page,
body.elementor-page-12770 #page,
body.pwt-elementor-home #page,
body.page-id-12857 .site,
body.page-id-12770 .site,
body.elementor-page-12857 .site,
body.elementor-page-12770 .site,
body.pwt-elementor-home .site,
body.page-id-12857 .site-content,
body.page-id-12770 .site-content,
body.elementor-page-12857 .site-content,
body.elementor-page-12770 .site-content,
body.pwt-elementor-home .site-content,
footer.elementor-location-footer {
	width: 100% !important;
	max-width: 100% !important;
	overflow-x: hidden;
	margin-inline: 0 !important;
	padding-inline: 0 !important;
	box-sizing: border-box;
}
body.page-id-12857 .site-main,
body.page-id-12770 .site-main,
body.elementor-page-12857 .site-main,
body.elementor-page-12770 .site-main,
body.pwt-elementor-home .site-main,
body.page-id-12857 .page-content,
body.page-id-12770 .page-content,
body.elementor-page-12857 .page-content,
body.elementor-page-12770 .page-content,
body.pwt-elementor-home .page-content,
body.pwt-elementor-home {
	max-width: none !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	overflow-x: hidden !important;
}
body.pwt-elementor-home [data-id="127580ae"] {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}
/* Section headings on Elementor homepage — match block theme (Enriqueta + preset sizes). */
body.pwt-elementor-home h2.e-default-h2 {
	font-family: var(--wp--preset--font-family--heading) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
}
/* Section headers: kit global classes (PW-Section-*) — client edits copy/styles in Elementor. */
body.pwt-elementor-home [class*="PW-Section-Eyebrow"] {
	font-family: var(--pw-font-body, var(--wp--preset--font-family--body)) !important;
}
body.pwt-elementor-home [class*="PW-Section-Title"] {
	font-family: var(--pw-font-heading, var(--wp--preset--font-family--heading)) !important;
}
body.pwt-elementor-home [class*="PW-Section-Intro"] {
	font-family: var(--pw-font-body, var(--wp--preset--font-family--body)) !important;
}
body.pwt-elementor-home [data-id="39c44ab1"] h2,
body.pwt-elementor-home [data-id="4ca6706"] h2 {
	font-size: inherit;
	color: inherit;
}
/* Hello + Elementor homepage: action row gutter only (hero edited in Elementor). */
body.pwt-elementor-home [data-id="127580ae"],
body.pwt-elementor-home .e-d7a4ae3-359b {
	padding-left: var(--pw-page-gutter) !important;
	padding-right: var(--pw-page-gutter) !important;
	padding-bottom: 1rem;
	background-color: transparent !important;
	position: relative;
	z-index: 4;
	isolation: isolate;
	overflow: visible !important;
}
/**
 * Full-bleed pw-tint behind the lower half of the action cards (row is max-width
 * 1400px; without 100vw the viewport gutters stayed white). MWS section matches below.
 */
body.pwt-elementor-home [data-id="127580ae"]::before {
	content: "";
	position: absolute;
	z-index: -1;
	left: 0;
	right: 0;
	width: 100%;
	transform: none;
	top: 42%;
	bottom: -3rem;
	background-color: var(--wp--preset--color--tint, #eaf8fe);
	pointer-events: none;
}
/* Kit PW-Action-* cards: solid surfaces so hero/tint does not show through SVG icons. */
body.pwt-elementor-home [data-id="127580ae"] [class*="PW-Action-Card"] {
	position: relative;
	z-index: 1;
	background: #fff !important;
	border-radius: var(--pw-radius, 12px);
	box-shadow: var(--pw-shadow, 0 2px 6px rgba(0, 58, 102, 0.08), 0 12px 32px rgba(0, 58, 102, 0.1));
	border-bottom: 4px solid var(--wp--preset--color--sky, #00a5df);
	box-sizing: border-box;
	overflow: hidden;
}
body.pwt-elementor-home [data-id="127580ae"] [class*="PW-Action-Icon"] img,
body.pwt-elementor-home [data-id="127580ae"] .elementor-widget-e-image[class*="PW-Action-Icon"] img {
	display: block;
	width: 64px;
	height: 64px;
	padding: 14px;
	border-radius: 50%;
	background: var(--wp--preset--color--tint, #eaf8fe);
	box-sizing: border-box;
}
body.pwt-elementor-home [data-id="53075993"],
body.pwt-elementor-home .e-269b6021-655a {
	align-items: stretch !important;
	width: 100% !important;
	max-width: 100% !important;
}
body.pwt-elementor-home [data-id="6ca728a9"],
body.pwt-elementor-home [data-id="7bdc405"] {
	width: 100% !important;
	max-width: 72rem !important;
	margin-inline: auto !important;
	box-sizing: border-box;
}
body.pwt-elementor-home [data-id="6ca728a9"] {
	margin-block-end: 1.5rem !important;
}
body.pwt-elementor-home [data-id="7bdc405"] {
	align-items: flex-start !important;
	text-align: left;
}
body.pwt-elementor-home [data-id="711c8c5"],
body.pwt-elementor-home .e-5ed28c19-b435 {
	width: 100% !important;
	max-width: 72rem !important;
	margin-inline: auto !important;
	box-sizing: border-box;
}
body.pwt-elementor-home [data-id="53075993"] {
	margin-block-start: -3rem;
	padding-block-start: 7rem;
	padding-block-end: 4.5rem !important;
	gap: 0 !important;
	row-gap: 0 !important;
	background-color: var(--wp--preset--color--tint, #eaf8fe) !important;
	position: relative;
	z-index: 1;
	overflow-x: clip;
	overflow-y: visible;
}
body.pwt-elementor-home [data-id="711c8c5"],
body.pwt-elementor-home [data-id="711c8c5"] .pmws {
	position: relative;
	z-index: 2;
}
body.pwt-elementor-home [data-id="53075993"],
body.pwt-elementor-home .e-269b6021-655a,
body.pwt-elementor-home [data-id="711c8c5"],
body.pwt-elementor-home .e-5ed28c19-b435 {
	overflow-y: visible !important;
}
body.pwt-elementor-home [data-id="38a560b1"],
body.pwt-elementor-home .elementor-element-38a560b1,
body.pwt-elementor-home [data-id="38a560b1"] .elementor-widget-container {
	overflow: visible !important;
	height: auto !important;
	max-height: none !important;
}
body.pwt-elementor-home .pmws,
body.pwt-elementor-home .pmws__head > div {
	overflow: visible !important;
}
/* Saved-system cards sit above the wave; soften shadow so it does not read as a seam line. */
body.pwt-elementor-home .pmws .pmws-card,
body.pwt-elementor-home .pmws .pmws__picker {
	box-shadow: 0 2px 8px rgba(0, 58, 102, 0.07);
}
body.pwt-elementor-home [data-id="711c8c5"] .pmws__grid {
	padding-bottom: 0.25rem;
}
@media (max-width: 1023px) {
	body.pwt-elementor-home [data-id="127580ae"]::before {
		bottom: 0;
	}
	body.pwt-elementor-home [data-id="53075993"] {
		margin-block-start: 0 !important;
	}
}
@media (max-width: 767px) {
	body.pwt-elementor-home [data-id="127580ae"]::before {
		top: 0;
		bottom: -1.25rem;
	}
	body.pwt-elementor-home [data-id="127580ae"],
	body.pwt-elementor-home .e-d7a4ae3-359b {
		margin-block-start: -0.5rem !important;
		padding-bottom: 1.25rem !important;
	}
	body.pwt-elementor-home [data-id="53075993"] {
		margin-block-start: 0 !important;
		padding-block-start: 2rem !important;
		padding-block-end: 5.25rem !important;
	}
}
@media (max-width: 899px) and (min-width: 768px) {
	body.pwt-elementor-home [data-id="53075993"] {
		padding-block-start: 4rem !important;
	}
}
/* News row: equal-height columns (flex + align-items failed vs Elementor local CSS). */
body.pwt-elementor-home [data-id="3ece41af"],
body.pwt-elementor-home .e-2f9f569-a4ac {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch !important;
	align-self: stretch !important;
	margin-block-start: 0 !important;
	position: relative;
	overflow: visible !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
	gap: 2rem !important;
	padding-block: 4rem !important;
	/* Local Elementor CSS uses 22rem side padding — leaves ~0 width on tablets. */
	padding-inline: max(var(--pw-page-gutter), calc((100% - 1240px) / 2)) !important;
}
body.pwt-elementor-home [data-id="3ece41af"] > .elementor-element {
	min-width: 0 !important;
	max-width: 100% !important;
}
body.pwt-elementor-home [data-id="53075993"] + [data-id="dacd670"],
body.pwt-elementor-home [data-id="53075993"] + [data-id="3ece41af"],
body.pwt-elementor-home [data-id="dacd670"] + [data-id="3ece41af"] {
	margin-block-start: 0 !important;
}
body.pwt-elementor-home [data-id="148b4cc4"],
body.pwt-elementor-home [data-id="4ae5f977"],
body.pwt-elementor-home .e-3dbcacf8-1a4b,
body.pwt-elementor-home .e-35bb892f-2cb5 {
	flex: none !important;
	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	min-height: 100% !important;
	height: auto !important;
	box-sizing: border-box;
}
/* What's New / PUC cards: downward shadow only (avoids a dark hairline on the gray band). */
body.pwt-elementor-home [data-id="148b4cc4"],
body.pwt-elementor-home .e-3dbcacf8-1a4b {
	box-shadow: 0 12px 32px rgba(0, 58, 102, 0.1) !important;
}
body.pwt-elementor-home [data-id="148b4cc4"],
body.pwt-elementor-home [data-id="4ae5f977"] {
	display: flex !important;
	flex-direction: column !important;
}
/* Navy PUC card — base text color (Elementor widgets + toolkit teaser). */
body.pwt-elementor-home [data-id="4ae5f977"] {
	color: #fff;
}
body.pwt-elementor-home [data-id="4ae5f977"] h2 {
	font-size: var(--wp--preset--font-size--x-large) !important;
	color: #fff !important;
}
body.pwt-elementor-home [data-id="4ae5f977"] p:not([class*="e-60f3db2b"]) {
	color: #fff !important;
}
body.pwt-elementor-home [data-id="4ae5f977"] a:not(.e-521845ff-3219) {
	color: #fff;
}
body.pwt-elementor-home [data-id="2d3ef7ae"] {
	flex: 1 1 auto;
	min-height: 0;
	min-width: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}
body.pwt-elementor-home [data-id="2d3ef7ae"] .pw-whats-new__scroll-host {
	display: block;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
body.pwt-elementor-home .pw-whats-new__entry-title {
	overflow-wrap: break-word;
}
body.pwt-elementor-home [data-id="4ae5f977"] [data-id="2b51f5ee"],
body.pwt-elementor-home .e-521845ff-3219 {
	margin-block-start: auto !important;
}
/* Toolkit-injected Regulatory teaser (plain <p>, not Elementor paragraph widget). */
body.pwt-elementor-home [data-id="4ae5f977"] .pw-puc__teaser,
body.pwt-elementor-home [data-id="4ae5f977"] > p:not([class]) {
	color: #fff !important;
	margin: 0;
}
@media (max-width: 900px) {
	body.pwt-elementor-home [data-id="3ece41af"],
	body.pwt-elementor-home .e-2f9f569-a4ac {
		grid-template-columns: 1fr;
		gap: 1.5rem !important;
	}
}
@media (max-width: 767px) {
	body.pwt-elementor-home [data-id="3ece41af"],
	body.pwt-elementor-home .e-2f9f569-a4ac {
		padding-block: 2.5rem !important;
		padding-inline: var(--pw-page-gutter) !important;
	}
}
/* Explore Pennichuck — match block pattern pennichuck/explore (.is-style-pw-info-card). */
body.pwt-elementor-home [data-id="6adf6a80"] {
	align-items: center !important;
}
body.pwt-elementor-home [data-id="155a1558"],
body.pwt-elementor-home [data-id="6884b393"] {
	width: min(1240px, 100%);
	max-width: 1240px;
	box-sizing: border-box;
}
body.pwt-elementor-home [data-id="155a1558"] {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	justify-content: space-between !important;
	align-items: flex-end !important;
	padding: 0 !important;
	margin-bottom: 1.5rem;
}
body.pwt-elementor-home [data-id="3becb9fa"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0 !important;
}
body.pwt-elementor-home [data-id="35bec8a"] {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: 0.85rem !important;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary) !important;
	margin: 0 0 0.5rem !important;
}
body.pwt-elementor-home [data-id="43734ed6"] {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--medium) !important;
	font-weight: 700 !important;
	color: var(--wp--preset--color--primary) !important;
	background: transparent !important;
	padding: 0 !important;
	border: 0 !important;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin-inline-start: auto !important;
	flex: 0 0 auto;
	white-space: nowrap;
}
body.pwt-elementor-home [data-id="43734ed6"]::after {
	content: "\2192";
	transition: transform 0.25s var(--pw-ease);
}
body.pwt-elementor-home [data-id="43734ed6"]:hover::after,
body.pwt-elementor-home [data-id="43734ed6"]:focus-visible::after {
	transform: translateX(4px);
}
body.pwt-elementor-home [data-id="6884b393"] {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem !important;
	align-items: stretch !important;
}
@media (max-width: 1024px) {
	body.pwt-elementor-home [data-id="6884b393"] {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 600px) {
	body.pwt-elementor-home [data-id="6884b393"] {
		grid-template-columns: 1fr;
	}
}
body.pwt-elementor-home [data-id="6884b393"] > .elementor-element {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
	padding: 0 !important;
	height: 100%;
	min-height: 100%;
	flex: none !important;
	width: 100% !important;
	background: #fff;
	border-radius: var(--pw-radius);
	box-shadow: var(--pw-shadow);
	overflow: hidden;
	transition: transform 0.3s var(--pw-ease), box-shadow 0.3s var(--pw-ease);
}
body.pwt-elementor-home [data-id="6884b393"] > .elementor-element:hover,
body.pwt-elementor-home [data-id="6884b393"] > .elementor-element:focus-within {
	transform: translateY(-6px);
	box-shadow: var(--pw-shadow-hover);
}
body.pwt-elementor-home [data-id="6884b393"] > .elementor-element > img {
	display: block;
	flex: 0 0 auto;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	margin: 0;
	transition: transform 0.6s var(--pw-ease);
}
body.pwt-elementor-home [data-id="6884b393"] > .elementor-element:hover > img {
	transform: scale(1.05);
}
body.pwt-elementor-home [data-id="6884b393"] h3 {
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: 1.3rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	margin: 0 0 0.5rem !important;
	padding: 1.35rem 1.5rem 0 !important;
	color: var(--wp--preset--color--primary-dark) !important;
}
body.pwt-elementor-home [data-id="6884b393"] h3 a {
	text-decoration: none;
	color: inherit;
}
body.pwt-elementor-home [data-id="6884b393"] h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}
body.pwt-elementor-home [data-id="6884b393"] > .elementor-element:hover h3 a,
body.pwt-elementor-home [data-id="6884b393"] > .elementor-element:focus-within h3 a {
	text-decoration: underline;
}
body.pwt-elementor-home [data-id="6884b393"] p {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--medium) !important;
	line-height: 1.6 !important;
	margin: 0 !important;
	margin-top: auto !important;
	padding: 0 1.5rem 1.5rem !important;
	color: var(--wp--preset--color--muted) !important;
	flex: 1 1 auto;
}
/* Mission band — matches pennichuck/stats-band (photo + navy overlay, 2×2 stats). */
body.pwt-elementor-home [data-id="39c44ab1"],
body.pwt-elementor-home .e-195ef5bd-bb3b {
	position: relative;
	isolation: isolate;
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
	box-sizing: border-box;
	padding-block: 5rem !important;
	padding-inline: max(var(--pw-page-gutter), calc((100% - 72rem) / 2)) !important;
	background-color: transparent !important;
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 3rem !important;
}
body.pwt-elementor-home [data-id="39c44ab1"]::before,
body.pwt-elementor-home .e-195ef5bd-bb3b::before {
	content: "";
	position: absolute;
	z-index: -1;
	left: 0;
	right: 0;
	width: 100%;
	transform: none;
	top: 0;
	bottom: 0;
	background-image: linear-gradient(rgba(31, 49, 129, 0.82), rgba(31, 49, 129, 0.82)), url("/wp-content/uploads/2026/06/011c-IMG_3788-KEPT-supply-pond-spillway-scaled.jpg");
	background-size: cover;
	background-position: center;
	pointer-events: none;
}
body.pwt-elementor-home [data-id="413e4f2d"],
body.pwt-elementor-home .e-2f4f28a0-6ef8 {
	flex: 1 1 20rem !important;
	max-width: 42rem;
}
body.pwt-elementor-home [data-id="6baf3c0f"],
body.pwt-elementor-home .e-6176882f-a68f {
	flex: 1 1 22rem !important;
	max-width: 36rem;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 1.5rem !important;
	align-content: center;
}
body.pwt-elementor-home [data-id="479e7faf"],
body.pwt-elementor-home [data-id="4bf312fe"],
body.pwt-elementor-home [data-id="55e6bdef"],
body.pwt-elementor-home [data-id="76369b7c"] {
	flex: none !important;
	width: 100% !important;
	max-width: none !important;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--pw-radius, 12px);
	padding: 1.25rem 1rem !important;
	text-align: center;
	gap: 0.35rem !important;
}
body.pwt-elementor-home [data-id="39c44ab1"] [data-id="2d97f730"],
body.pwt-elementor-home [data-id="39c44ab1"] .e-1e5ed709-6780 {
	color: var(--wp--preset--color--accent, #ffd23e) !important;
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
body.pwt-elementor-home [data-id="39c44ab1"] [data-id="1120ab91"],
body.pwt-elementor-home [data-id="39c44ab1"] .e-43a5ffe0-cbce {
	color: #fff !important;
}
body.pwt-elementor-home [data-id="39c44ab1"] [data-id="2fd7fb73"],
body.pwt-elementor-home [data-id="39c44ab1"] .e-2801e843-c66b {
	color: #fff !important;
}
body.pwt-elementor-home [data-id="6baf3c0f"] [data-id="9f7aa17"],
body.pwt-elementor-home [data-id="6baf3c0f"] [data-id="764079b"],
body.pwt-elementor-home [data-id="6baf3c0f"] [data-id="59ac9b01"],
body.pwt-elementor-home [data-id="6baf3c0f"] [data-id="5d482c52"],
body.pwt-elementor-home [data-id="6baf3c0f"] .e-53c2ab53-e68e,
body.pwt-elementor-home [data-id="6baf3c0f"] .e-18d0263f-e3bc,
body.pwt-elementor-home [data-id="6baf3c0f"] .e-746570a8-62f6,
body.pwt-elementor-home [data-id="6baf3c0f"] .e-6bd3a739-94ad {
	color: #fff !important;
	opacity: 0.9;
	font-size: 0.95rem;
	margin: 0 !important;
}
body.pwt-elementor-home [data-id="6baf3c0f"] [data-id="798a9a4f"],
body.pwt-elementor-home [data-id="6baf3c0f"] [data-id="5090c16"],
body.pwt-elementor-home [data-id="6baf3c0f"] [data-id="2b00ea25"],
body.pwt-elementor-home [data-id="6baf3c0f"] [data-id="6a5f38b4"],
body.pwt-elementor-home [data-id="6baf3c0f"] .e-79de1ff8-a3ce,
body.pwt-elementor-home [data-id="6baf3c0f"] .e-4696e6ac-e9db,
body.pwt-elementor-home [data-id="6baf3c0f"] .e-272e198f-e014,
body.pwt-elementor-home [data-id="6baf3c0f"] .e-73b3cab8-eaf6 {
	color: var(--wp--preset--color--accent, #ffd23e) !important;
	font-family: var(--wp--preset--font-family--heading, "Enriqueta", Georgia, serif);
	font-size: 2.6rem !important;
	line-height: 1.1;
	margin: 0 !important;
}
@media (max-width: 900px) {
	body.pwt-elementor-home [data-id="413e4f2d"],
	body.pwt-elementor-home [data-id="6baf3c0f"] {
		max-width: none;
		flex: 1 1 100% !important;
	}
}
/**
 * @deprecated 2026-09-27
 * Replaced by: Elementor Hero / Hero Copy / Hero Background Photo on page 12857
 * Reason: theme !important blocked hero image and text edits in Elementor
 * Remove after: 2026-11-27
 *
 * [data-id="4ca6706"],
 * [data-id="127580ae"] { padding-left/right: var(--pw-page-gutter) !important; }
 * [data-id="4ca6706"] { align-items, justify-content, min-height, background-size... }
 * [data-id="2856b7a3"] { padding-left: 1.5rem !important; }
 * [data-id="680b7381"] { padding-left: 0 !important; }
 */
/**
 * @deprecated 2026-09-27
 * Replaced by: Elementor global classes PW Action Card / PW Action Icon
 *     and local styles on Actions row (127580ae) in page 12857
 * Reason: User edits hover, centering, and card width in Elementor only
 * Remove after: 2026-11-27
 *
 * [data-id="127580ae"] {
 *   justify-content: flex-start !important;
 *   position: relative;
 *   z-index: 2;
 *   margin-top: -5.5rem !important;
 *   background-color: transparent !important;
 * }
 * [data-id="127580ae"] > * { align-items: flex-start !important; }
 * @media (max-width: 767px) {
 *   [data-id="127580ae"] { margin-top: -3rem !important; }
 * }
 */
.pw-hero h1 { color: #fff; text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35); max-width: 18ch; }
.pw-hero p { color: #fff; font-size: 1.4rem; max-width: 46ch; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35); }
/**
 * @deprecated 2026-09-27 — Hero Lead font size lives on widget Hero Lead (12857).
 * [data-id="253dc77e"] { font-size: 1.4rem !important; }
 */
.pw-hero .wp-block-buttons { margin-top: 1.5rem; }
.pw-hero__scroll-hint { position: absolute; bottom: 5.5rem; left: 50%; transform: translateX(-50%); color: #fff; opacity: 0.8; animation: pw-bob 2.2s infinite; }
@keyframes pw-bob { 0%, 100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, 8px); } }

/* Buttons */
.is-style-pw-accent .wp-block-button__link { background: var(--wp--preset--color--accent) !important; color: var(--wp--preset--color--navy) !important; }
.is-style-pw-accent .wp-block-button__link:hover, .is-style-pw-accent .wp-block-button__link:focus-visible { background: #ffdc6b !important; box-shadow: 0 6px 18px rgba(255, 210, 62, 0.45); }
.is-style-pw-ghost .wp-block-button__link { background: transparent !important; color: #fff !important; border: 2px solid rgba(255, 255, 255, 0.85); }
.is-style-pw-ghost .wp-block-button__link:hover, .is-style-pw-ghost .wp-block-button__link:focus-visible { background: rgba(255, 255, 255, 0.15) !important; border-color: #fff; }
.wp-block-button__link { transition: transform 0.2s var(--pw-ease), box-shadow 0.2s var(--pw-ease), background 0.2s; }
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0, 58, 102, 0.22); }

/* ------------------------------------------------------------------ */
/* Quick actions                                                        */
/* ------------------------------------------------------------------ */
/**
 * @deprecated 2026-09-27
 * Replaced by: full-width row + --pw-page-gutter (same as hero/logo)
 * Reason: max-width 1400 inset the first Pay card past the hero copy
 * Remove after: 2026-11-27
 *
 * .pw-quick-actions {
 *   max-width: var(--pw-content-max) !important;
 *   margin-left: auto !important;
 *   margin-right: auto !important;
 * }
 */
/* Overlap was -4.5rem; 2026-09-27 raised to -5.5rem so cards sit on the photo. */
.pw-quick-actions {
	position: relative; z-index: 2; margin-top: -5.5rem !important;
	max-width: none !important;
	width: 100%;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: var(--pw-page-gutter);
	padding-right: var(--pw-page-gutter);
	box-sizing: border-box;
}
.pw-quick-actions .pw-quick-actions__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 1023px) { .pw-quick-actions .pw-quick-actions__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 599px) { .pw-quick-actions .pw-quick-actions__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; } .pw-quick-actions { margin-top: -3rem !important; } }

/* Cards share one height (grid stretch, no flow gap); hovering grows the card
   taller by 1rem without moving its neighbours (padding up, margin down). */
.pw-quick-actions .pw-quick-actions__grid > * { margin-block-start: 0 !important; margin-block-end: 0; }
/**
 * @deprecated 2026-09-27
 * Replaced by: flex-start / text-align left so the Pay icon shares
 *     the hero copy's left edge
 * Reason: centered icons sat inward of the headline
 * Remove after: 2026-11-27
 *
 * text-align: center; align-items: center;
 */
.is-style-pw-action-card {
	position: relative; background: #fff; border-radius: var(--pw-radius); box-shadow: var(--pw-shadow); padding: 1.5rem 1rem 1.25rem !important;
	text-align: left !important; display: flex !important; flex-direction: column; align-items: flex-start !important; justify-content: center; gap: 0.75rem;
	border-bottom: 4px solid var(--wp--preset--color--sky);
	transition: transform 0.3s var(--pw-ease), box-shadow 0.3s var(--pw-ease), border-color 0.3s, padding 0.3s var(--pw-ease), margin 0.3s var(--pw-ease);
}
@media (hover: hover) {
	.is-style-pw-action-card:hover, .is-style-pw-action-card:focus-within {
		transform: translateY(-4px); box-shadow: var(--pw-shadow-hover); border-bottom-color: var(--wp--preset--color--accent);
		padding-top: 2rem !important; padding-bottom: 1.75rem !important; margin-block-start: -0.5rem !important; margin-block-end: -0.5rem;
	}
}
@media (hover: none) {
	.is-style-pw-action-card:focus-within { box-shadow: var(--pw-shadow-hover); border-bottom-color: var(--wp--preset--color--accent); }
}
.is-style-pw-action-card > * { margin: 0 !important; }
.is-style-pw-action-card .wp-block-image {
	width: auto !important;
	margin-left: 0 !important;
	margin-right: auto !important;
	align-self: flex-start;
}
.is-style-pw-action-card .wp-block-image img {
	width: 64px; height: 64px; padding: 14px; border-radius: 50%; background: var(--wp--preset--color--tint); color: var(--wp--preset--color--primary);
	transition: transform 0.35s var(--pw-ease), background 0.3s;
}
.is-style-pw-action-card:hover .wp-block-image img, .is-style-pw-action-card:focus-within .wp-block-image img { transform: scale(1.1) rotate(-4deg); background: var(--wp--preset--color--accent); }
.is-style-pw-action-card h3, .is-style-pw-action-card h2 { font-family: var(--wp--preset--font-family--body); font-size: 1.05rem; font-weight: 700; margin: 0; line-height: 1.3; }
.is-style-pw-action-card h3 a, .is-style-pw-action-card h2 a { text-decoration: none; color: var(--wp--preset--color--primary-dark); }
.is-style-pw-action-card h3 a::after, .is-style-pw-action-card h2 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.is-style-pw-action-card:hover h3 a, .is-style-pw-action-card:hover h2 a { color: var(--wp--preset--color--primary); text-decoration: underline; }
.is-style-pw-action-card p { margin: 0; font-size: 0.9rem; color: var(--wp--preset--color--muted); }
.is-style-pw-action-card .pw-badge { position: absolute; top: 0.6rem; right: 0.6rem; }

/* ------------------------------------------------------------------ */
/* Cards / panels                                                       */
/* ------------------------------------------------------------------ */
.is-style-pw-card { background: #fff; border-radius: var(--pw-radius); box-shadow: var(--pw-shadow); padding: 1.75rem !important; }

/* What's New: same 1240px column as the other homepage sections. */
.pw-whats-new-section { width: 100%; }
.pw-whats-new-section__grid {
	width: min(1240px, calc(100% - 2rem)); margin-inline: auto;
	display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, 0.85fr); gap: 2rem; align-items: stretch;
}
@media (max-width: 899px) { .pw-whats-new-section__grid { grid-template-columns: 1fr; } }
.pw-whats-new, .pw-puc { padding: 1.75rem; border-radius: var(--pw-radius); box-shadow: var(--pw-shadow); }
/**
 * @deprecated 2026-09-26
 * Replaced by: separate What's New (primary on white) and PUC (accent on
 *     primary-dark) eyebrow colors.
 * Reason: WCAG 1.4.3 — shared primary (or earlier sky) on the navy PUC card
 *     fails AA. Accent on #003a66 is ~8:1, matching other dark-band eyebrows.
 * Remove after: 2026-11-26
 *
 * Original:
 * .pw-whats-new__eyebrow, .pw-puc__eyebrow { font-size: 0.85rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--primary); margin: 0 0 0.35rem; }
 */
/* .pw-whats-new__eyebrow, .pw-puc__eyebrow { font-size: 0.85rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--primary); margin: 0 0 0.35rem; } */
.pw-whats-new__eyebrow, .pw-puc__eyebrow { font-size: 0.85rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; margin: 0 0 0.35rem; }
.pw-whats-new__eyebrow { color: var(--wp--preset--color--primary); }
/**
 * @deprecated 2026-09-26
 * Replaced by: white text on the navy PUC card (eyebrow + title + body)
 * Reason: WCAG 1.4.3 — client confirmed white; sky/primary/accent on this
 *     card still failed or were the wrong pair. Live-theme heading color
 *     was also painting "PUC Activity" dark on navy.
 * Remove after: 2026-11-26
 *
 * Original:
 * .pw-puc__eyebrow { color: var(--wp--preset--color--accent) !important; }
 */
/* .pw-puc__eyebrow { color: var(--wp--preset--color--accent) !important; } */
.pw-whats-new__title, .pw-puc__title { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--x-large); }
.pw-whats-new__scroll {
	max-height: 22rem; overflow-y: auto; overscroll-behavior: contain;
	padding: 0.15rem 0.85rem 0.15rem 0; margin: 0 0 0.75rem;
	border-top: 1px solid var(--wp--preset--color--tint-2); border-bottom: 1px solid var(--wp--preset--color--tint-2);
}
.pw-whats-new__scroll:focus { outline: 3px solid var(--wp--preset--color--accent); outline-offset: 3px; }
.pw-whats-new__scroll:focus-visible { outline: 3px solid var(--wp--preset--color--accent); outline-offset: 3px; }
.pw-whats-new__list { list-style: none; margin: 0; padding: 0; }
.pw-whats-new__item { padding: 1.1rem 0; border-bottom: 1px solid var(--wp--preset--color--tint-2); }
.pw-whats-new__item:last-child { border-bottom: 0; }
.pw-whats-new__item h3, .pw-whats-new__item h4 { font-size: 1.15rem; margin: 0 0 0.5rem; }
.pw-whats-new__item p { margin: 0 0 0.5rem; }
.pw-whats-new__item p:last-child { margin-bottom: 0; }
.pw-whats-new__entry-title { font-size: 1.15rem; margin: 0 0 0.5rem; line-height: 1.35; }
.pw-whats-new__entry-summary { margin: 0 0 0.65rem; color: #333; }
.pw-whats-new__entry-more { margin: 0; }
.pw-whats-new__read-more {
	font-weight: 700;
	color: var(--wp--preset--color--primary, #00518f);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
.pw-whats-new__read-more:hover,
.pw-whats-new__read-more:focus-visible {
	color: var(--wp--preset--color--navy, #003a66);
}
.pw-whats-new__hint { margin: 0; font-size: 0.9rem; color: var(--wp--preset--color--muted); }
.pw-whats-new-loop-card .elementor-widget-theme-post-featured-image a {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--pw-radius, 8px);
	background: var(--wp--preset--color--surface, #f4f7fa);
}
.pw-whats-new-loop-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	border-radius: 0;
}
.pw-whats-new-loop-card .elementor-widget-theme-post-title h3 {
	font-size: 1.15rem;
	margin: 0 0 0.35rem;
	line-height: 1.35;
}
.pw-whats-new-loop-card .elementor-widget-theme-post-title a {
	color: var(--wp--preset--color--primary, #00518f);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
.pw-whats-new-loop-card .elementor-widget-theme-post-excerpt p {
	margin: 0 0 0.75rem;
	color: #333;
}
/* What's New loop carousel (Home 12857): a11y contrast, focus, anti-clipping */
.elementor-element-202b2ca.elementor-widget-loop-carousel {
	--swiper-pagination-spacing: 1.5rem;
	--swiper-padding-bottom: 3.5rem;
}
.elementor-element-202b2ca.elementor-widget-loop-carousel .swiper {
	min-height: 12rem;
	width: 100%;
	padding-bottom: var(--swiper-padding-bottom, 3.5rem);
	box-sizing: border-box;
}
.elementor-element-202b2ca .pw-whats-new-loop-card .elementor-widget-theme-post-excerpt p {
	margin-bottom: 1.5rem !important;
}
.elementor-element-202b2ca .swiper-pagination-bullets {
	margin-top: 1.25rem;
}
.elementor-element-202b2ca .elementor-loop-container {
	width: 100% !important;
	max-width: 100%;
	box-sizing: border-box;
}
.elementor-element-202b2ca .e-loop-item,
.elementor-element-202b2ca .swiper-slide {
	height: auto;
	min-width: 0 !important;
	max-width: 100%;
	box-sizing: border-box;
}
.elementor-element-202b2ca .pw-whats-new-loop-card {
	min-width: 0;
	max-width: 100%;
	overflow: visible;
}
.elementor-element-202b2ca .pw-whats-new-loop-card .elementor-widget-theme-post-title h3,
.elementor-element-202b2ca .pw-whats-new-loop-card .elementor-widget-theme-post-title a,
.elementor-element-202b2ca .pw-whats-new-loop-card .elementor-widget-theme-post-excerpt p {
	overflow-wrap: anywhere;
	word-break: normal;
	hyphens: auto;
}
.elementor-element-202b2ca :is(.elementor-swiper-button-prev, .elementor-swiper-button-next) {
	color: var(--wp--preset--color--primary-dark, #003a66) !important;
	background: transparent !important;
	min-width: 2.75rem;
	min-height: 2.75rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: color 0.15s ease, background-color 0.15s ease;
}
.elementor-element-202b2ca :is(.elementor-swiper-button-prev, .elementor-swiper-button-next):is(:hover, :active, :focus) {
	color: var(--wp--preset--color--ink, #1d2a35) !important;
	background: var(--wp--preset--color--tint-2, #d3e9f5) !important;
}
.elementor-element-202b2ca :is(.elementor-swiper-button-prev, .elementor-swiper-button-next) svg,
.elementor-element-202b2ca :is(.elementor-swiper-button-prev, .elementor-swiper-button-next) i {
	fill: currentColor !important;
	color: inherit !important;
}
.elementor-element-202b2ca .swiper-pagination-bullet {
	background: var(--wp--preset--color--muted, #5c6670) !important;
	opacity: 1 !important;
	width: 0.65rem;
	height: 0.65rem;
}
.elementor-element-202b2ca .swiper-pagination-bullet:hover,
.elementor-element-202b2ca .swiper-pagination-bullet:active {
	background: var(--wp--preset--color--primary-dark, #003a66) !important;
}
.elementor-element-202b2ca .swiper-pagination-bullet-active {
	background: var(--wp--preset--color--primary, #00518f) !important;
}
.elementor-element-202b2ca .swiper-pagination-bullet-active:hover,
.elementor-element-202b2ca .swiper-pagination-bullet-active:active {
	background: var(--wp--preset--color--ink, #1d2a35) !important;
}
.elementor-element-202b2ca :is(.elementor-swiper-button-prev, .elementor-swiper-button-next):focus-visible,
.elementor-element-202b2ca .swiper-pagination-bullet:focus-visible {
	outline: 3px solid var(--wp--preset--color--accent, #ffd23e);
	outline-offset: 3px;
}
.elementor-element-202b2ca .pw-whats-new-loop-card .elementor-widget-theme-post-title a:focus-visible {
	outline: 3px solid var(--wp--preset--color--accent, #ffd23e);
	outline-offset: 3px;
	border-radius: 2px;
}
body.pwt-elementor-home [data-id="2d3ef7ae"] {
	border-top: 1px solid var(--wp--preset--color--tint-2);
	border-bottom: 1px solid var(--wp--preset--color--tint-2);
	padding-block: 0.15rem;
	margin-block-end: 0.75rem;
}
/* Dynamic What's New list replaces legacy paragraph widgets in this scroll area. */
body.pwt-elementor-home [data-id="2d3ef7ae"] > .elementor-element:not([data-id="18a6c570"]) {
	display: none !important;
}
body.pwt-elementor-home [data-id="2d3ef7ae"] .pw-whats-new__scroll-host:focus {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}
.pw-puc { background: #003a66; background: var(--wp--preset--color--primary-dark, #003a66); color: #fff; }
.pw-puc .pw-puc__eyebrow,
.pw-puc .pw-puc__title,
.pw-puc > p,
.pw-puc__teaser { color: #fff !important; }
.pw-puc a { color: #fff; }
.pw-puc .wp-element-button { display: inline-block; margin: 0.5rem 0 1rem; background: var(--wp--preset--color--accent); color: var(--wp--preset--color--navy); text-decoration: none; border-radius: 999px; padding: 0.7rem 1.3rem; font-weight: 700; }
.pw-puc__meta { font-size: 0.9rem; margin: 0; }
.is-style-pw-panel { background: var(--wp--preset--color--tint); border-radius: var(--pw-radius-lg); padding: 2rem !important; }

/* Equal-height row: columns stretch to the tallest card; the card fills the column. */
.wp-block-columns:has(.is-style-pw-info-card) { align-items: stretch !important; }
.wp-block-columns:has(.is-style-pw-info-card) > .wp-block-column { display: flex; }
.is-style-pw-info-card {
	position: relative; background: #fff; border-radius: var(--pw-radius); box-shadow: var(--pw-shadow); overflow: hidden;
	display: flex; flex-direction: column; flex: 1 1 auto; width: 100%; height: 100%; padding: 0 !important;
	transition: transform 0.3s var(--pw-ease), box-shadow 0.3s var(--pw-ease);
}
.is-style-pw-info-card:hover, .is-style-pw-info-card:focus-within { transform: translateY(-6px); box-shadow: var(--pw-shadow-hover); }
.is-style-pw-info-card > .wp-block-image { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; }
.is-style-pw-info-card > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--pw-ease); }
.is-style-pw-info-card:hover > .wp-block-image img { transform: scale(1.05); }
.is-style-pw-info-card > :not(.wp-block-image) { padding-left: 1.5rem; padding-right: 1.5rem; }
.is-style-pw-info-card > .wp-block-image + * { padding-top: 1.35rem; }
.is-style-pw-info-card > :last-child { padding-bottom: 1.5rem; margin-top: auto; }
.is-style-pw-info-card h3 { font-size: 1.3rem; margin: 0 0 0.5rem; }
.is-style-pw-info-card h3 a { text-decoration: none; }
.is-style-pw-info-card h3 a::after { content: ""; position: absolute; inset: 0; }
.is-style-pw-info-card:hover h3 a { text-decoration: underline; }
.is-style-pw-info-card p { margin: 0 0 0.75rem; color: var(--wp--preset--color--muted); }
.pw-arrow-link { font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: 0.35rem; }
.pw-arrow-link::after { content: "\2192"; transition: transform 0.25s var(--pw-ease); }
.pw-arrow-link:hover::after, .is-style-pw-info-card:hover .pw-arrow-link::after { transform: translateX(4px); }

.is-style-pw-link-list { list-style: none; padding: 0; margin: 0; }
.is-style-pw-link-list li { padding: 0.65rem 0; border-bottom: 1px solid var(--wp--preset--color--tint-2); }
.is-style-pw-link-list li:last-child { border-bottom: 0; }
.is-style-pw-link-list a { font-weight: 600; text-decoration: none; display: flex; align-items: flex-start; gap: 0.5rem; }
.is-style-pw-link-list a::before { content: "\203A"; color: var(--wp--preset--color--sky); font-weight: 700; flex: none; }
.is-style-pw-link-list a:hover { text-decoration: underline; }

/* Section rhythm */
.pw-section { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); }
.pw-section--tight { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.pw-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.pw-section__head h2 { margin: 0; }

/* Reveal on scroll */
.pw-reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.7s var(--pw-ease), transform 0.7s var(--pw-ease); }
.pw-reveal.is-visible { opacity: 1; transform: none; }
.pw-reveal-stagger > * { opacity: 0; transform: translateY(24px); transition: opacity 0.6s var(--pw-ease), transform 0.6s var(--pw-ease); }
.pw-reveal-stagger.is-visible > * { opacity: 1; transform: none; }
.pw-reveal-stagger.is-visible > :nth-child(2) { transition-delay: 0.08s; }
.pw-reveal-stagger.is-visible > :nth-child(3) { transition-delay: 0.16s; }
.pw-reveal-stagger.is-visible > :nth-child(4) { transition-delay: 0.24s; }
.pw-reveal-stagger.is-visible > :nth-child(5) { transition-delay: 0.32s; }
.no-js .pw-reveal, .no-js .pw-reveal-stagger > * { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .pw-reveal, .pw-reveal-stagger > * { opacity: 1; transform: none; } }

/* Wave divider (tint → news grey on Elementor homepage) */
.pw-wave { display: block; width: 100%; height: 60px; color: var(--wp--preset--color--tint); margin-bottom: -1px; }
body.pwt-elementor-home {
	--pw-wave-fill: #c5d0da;
}
body.pwt-elementor-home [data-id="53075993"]::after {
	content: "";
	display: block;
	position: absolute;
	z-index: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	max-width: 100%;
	transform: none;
	height: 60px;
	margin: 0;
	pointer-events: none;
	background-color: var(--wp--preset--color--tint, #eaf8fe);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none' aria-hidden='true'%3E%3Cpath fill='%23c5d0da' d='M0,28 C320,58 640,8 960,32 C1120,44 1280,36 1440,28 L1440,60 L0,60 Z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 100% 100%;
	box-sizing: border-box;
	line-height: 0;
}
/* Empty Elementor divider container — wave is drawn on MWS ::after to avoid layout gaps. */
body.pwt-elementor-home [data-id="dacd670"] {
	display: none !important;
}

/* Stat strip */
.pw-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; text-align: center; margin: 0; }
.pw-stats > div { display: flex; flex-direction: column-reverse; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: var(--pw-radius); padding: 1.25rem 1rem; }
.pw-stats dd { margin: 0; }
.pw-stats strong { display: block; font-family: var(--wp--preset--font-family--heading); font-size: 2.6rem; color: var(--wp--preset--color--accent); line-height: 1.1; }
.pw-stats span { color: #fff; opacity: 0.9; font-size: 0.95rem; }
.pw-stats-band .wp-block-cover__background { background: var(--wp--preset--color--navy) !important; opacity: 0.82 !important; }

/* ------------------------------------------------------------------ */
/* Footer                                                               */
/* ------------------------------------------------------------------ */
/**
 * Footer layout matches the live site: three ACF boxes + copyright.
 * Content comes from patterns/footer-content.php (original homepage fields).
 *
 * @deprecated 2026-09-26 invented Contact / Customers / Company columns and
 *     .pw-footer__brand wordmark block. Removed from parts/footer.html.
 *     Reason: do not replace client footer copy. Remove leftover brand rules after 2026-11-26.
 */
.pw-footer { background: #373d40; color: #fff; }
.pw-footer a { color: #c1e0ef; }
.pw-footer a:hover, .pw-footer a:focus-visible { color: #fff; }
.pw-footer h2, .pw-footer h3 {
	color: #fff; font-family: var(--wp--preset--font-family--body); font-size: 1.35rem;
	letter-spacing: 0.04em; text-transform: uppercase; margin: 0 0 1rem; font-weight: 700;
}
.pw-footer p { margin: 0 0 0.6rem; }
.pw-footer__inner { width: min(1240px, calc(100% - 2rem)); margin-inline: auto; }
.pw-footer__top { padding: 2.5rem 0 2rem; }
.pw-footer__boxes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
@media (max-width: 767px) { .pw-footer__boxes { grid-template-columns: 1fr; } }
.pw-footer__box { text-align: center; }
.pw-footer__box-inner { max-width: 22rem; margin-inline: auto; }
.pw-footer__box.is-middle .pw-footer__box-inner { max-width: 16rem; }
.pw-footer__box h2 { display: flex; align-items: center; justify-content: center; gap: 0.5rem; flex-wrap: wrap; }
.pw-footer__box .tree-img { width: 59px; height: 69px; object-fit: contain; }
/*
 * Live footer buttons: compact chip, 10px 0 10px 0 corners, label-sized.
 * Wrappers (.btn-outer) must stay shrink-wrapped — painting them as a
 * block fills the column and makes Pay Online / Watertight look huge.
 */
.pw-footer .btn-outer,
.pw-footer .green-btn-outer {
	display: inline-block;
	width: auto;
	max-width: 100%;
	margin-top: 1rem;
	padding: 0;
	background: transparent;
	border: 0;
}
/**
 * @deprecated 2026-09-26
 * Replaced by: darker #00518f on .btn / .blue-btn only (not .btn-outer)
 * Reason: WCAG 1.4.3 needed a darker blue; filling .btn-outer made the
 *     left and right buttons full-column blocks with the wrong shape.
 * Remove after: 2026-11-26
 *
 * Original:
 * .pw-footer .btn { background: var(--wp--preset--color--sky); }
 * .pw-footer .btn, .pw-footer .btn-outer { background: #00518f; }
 * .pw-footer .btn-outer { border-color: #00518f; }
 * .pw-footer .btn, .pw-footer .green-btn, .pw-footer .blue-btn {
 *     display: inline-block; margin-top: 1rem; padding: 0.65rem 1.5rem; border-radius: 10px 0;
 *     font-weight: 700; text-decoration: none; color: #fff;
 * }
 */
/* .pw-footer .btn { background: var(--wp--preset--color--sky); } */
/* .pw-footer .btn, .pw-footer .btn-outer { background: #00518f; } */
/* .pw-footer .btn-outer { border-color: #00518f; } */
.pw-footer .btn,
.pw-footer .green-btn,
.pw-footer .blue-btn {
	display: inline-block;
	width: auto;
	margin: 0;
	padding: 8px 26px;
	border-radius: 10px 0 10px 0;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
	color: #fff;
}
.pw-footer .btn,
.pw-footer .blue-btn { background: #00518f; }
.pw-footer .green-btn { background: #2f8703; }
.pw-footer .btn:hover, .pw-footer .btn:focus-visible,
.pw-footer .green-btn:hover, .pw-footer .green-btn:focus-visible,
.pw-footer .blue-btn:hover, .pw-footer .blue-btn:focus-visible { color: #000; background: #dcfbcd; }
.pw-footer .footer-social { margin-top: 0.75rem; }
.pw-footer .footer-social a { color: #78d2ff; font-weight: 700; }
.pw-footer__bottom { background: #000; padding: 1rem 0 1.25rem; text-align: center; font-size: 0.95rem; }
.pw-footer__bottom p { margin: 0.75rem 0 0; }
.pw-footer__legal a { color: #78d2ff; }
/*
 * Trademark marks sit on a white chip so brand colors stay true on the black bar.
 * @deprecated 2026-09-26 invert(1) on these images turned the blue P orange and
 *     crushed them to 20px. Do not re-apply color filters to the logos.
 */
.pw-footer__legal img {
	height: 34px; width: auto; vertical-align: middle;
	background: #fff; border-radius: 4px; padding: 3px 6px; filter: none;
}
.pw-footer__legal img[src*="Styled-P"] { height: 38px; padding: 2px; }
.pw-footer__legal img[src*="PennNoCorp"], .pw-footer__wordmark-img { height: 28px; padding: 4px 8px; }
.pw-footer__trademarks { font-size: 0.85rem; }

/* Elementor Theme Builder footer (12859) — match pennichuck/footer-content three-column layout. */
footer.elementor-location-footer,
.elementor-12859,
.elementor-12772 {
	color: #fff;
	box-sizing: border-box;
	overflow-x: visible;
	background: #373d40;
}
footer.elementor-location-footer {
	width: 100vw !important;
	max-width: 100vw !important;
	margin-inline: calc(50% - 50vw) !important;
	padding: 0 !important;
}
.elementor-12859,
.elementor-12772 {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
footer.elementor-location-footer::before,
.elementor-12859,
.elementor-12772::before {
	content: none !important;
	display: none !important;
}
footer.elementor-location-footer > .elementor,
footer.elementor-location-footer .elementor-12859,
.elementor-12772 {
	margin: 0 !important;
	padding: 0 !important;
}
.elementor-12859,
.elementor-12772 a {
	color: #c1e0ef;
}
.elementor-12859,
.elementor-12772 a:hover,
.elementor-12859,
.elementor-12772 a:focus-visible {
	color: #fff;
}
.elementor-12859,
.elementor-12772 [data-id="43959dd4"],
.elementor-12859,
.elementor-12772 .e-7cefe634-3d33 {
	align-items: stretch !important;
	width: 100% !important;
	max-width: none !important;
	gap: 0 !important;
	row-gap: 0 !important;
	background: #373d40 !important;
}
.elementor-12859,
.elementor-12772 [data-id="1667c8c1"],
.elementor-12859,
.elementor-12772 .e-49b06a8f-fc1e {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem !important;
	align-items: start;
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
	margin-block-end: 0 !important;
	box-sizing: border-box;
	padding-inline: max(var(--pw-page-gutter), calc((100% - 1240px) / 2)) !important;
	background: #373d40 !important;
	border: 0 !important;
}
.elementor-12859,
.elementor-12772 [data-id="382c2947"],
.elementor-12859,
.elementor-12772 .e-3bbe3a8c-ed20 {
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
	align-self: stretch !important;
	flex: 1 1 auto !important;
}
@media (max-width: 767px) {
	.elementor-12859,
.elementor-12772 [data-id="1667c8c1"],
	.elementor-12859,
.elementor-12772 .e-49b06a8f-fc1e {
		grid-template-columns: 1fr;
	}
}
.elementor-12859,
.elementor-12772 [data-id="76a90c75"],
.elementor-12859,
.elementor-12772 [data-id="413ee389"] {
	width: 100%;
	max-width: 22rem;
	justify-self: center;
}
.elementor-12859,
.elementor-12772 [data-id="29e114a9"] {
	width: 100%;
	max-width: 16rem;
	justify-self: center;
}
.elementor-12859,
.elementor-12772 [data-id="1667c8c1"] h2 {
	color: #fff !important;
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: 1.35rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 0 0 1rem !important;
	line-height: 1.3 !important;
}
.elementor-12859,
.elementor-12772 [data-id="1613c20e"] {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	text-transform: none !important;
	letter-spacing: normal;
}
.elementor-12859,
.elementor-12772 [data-id="655275f0"] strong {
	text-transform: uppercase;
}
.elementor-12859,
.elementor-12772 [data-id="1613c20e"]::before {
	content: "";
	display: inline-block;
	width: 59px;
	height: 69px;
	flex-shrink: 0;
	background: url("/wp-content/uploads/2016/10/GoGreen.png") center / contain no-repeat;
}
.elementor-12859,
.elementor-12772 [data-id="1667c8c1"] p {
	margin: 0 0 0.6rem !important;
	color: #fff !important;
}
.elementor-12859,
.elementor-12772 [data-id="4035e1ff"],
.elementor-12859,
.elementor-12772 [data-id="172c4948"] {
	display: inline-block !important;
	width: auto !important;
	margin-top: 1rem !important;
	padding: 8px 26px !important;
	border-radius: 10px 0 10px 0 !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	text-decoration: none !important;
	color: #fff !important;
	background: #00518f !important;
	border: 0 !important;
}
.elementor-12859,
.elementor-12772 [data-id="5d373311"] {
	display: inline-block !important;
	width: auto !important;
	margin-top: 1rem !important;
	padding: 8px 26px !important;
	border-radius: 10px 0 10px 0 !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	text-decoration: none !important;
	text-transform: uppercase;
	color: #fff !important;
	background: #2f8703 !important;
	border: 0 !important;
}
.elementor-12859,
.elementor-12772 [data-id="4035e1ff"],
.elementor-12859,
.elementor-12772 [data-id="172c4948"] {
	text-transform: uppercase;
}
.elementor-12859,
.elementor-12772 [data-id="4035e1ff"]:hover,
.elementor-12859,
.elementor-12772 [data-id="4035e1ff"]:focus-visible,
.elementor-12859,
.elementor-12772 [data-id="172c4948"]:hover,
.elementor-12859,
.elementor-12772 [data-id="172c4948"]:focus-visible,
.elementor-12859,
.elementor-12772 [data-id="5d373311"]:hover,
.elementor-12859,
.elementor-12772 [data-id="5d373311"]:focus-visible {
	color: #000 !important;
	background: #dcfbcd !important;
}
.elementor-12859,
.elementor-12772 [data-id="6eea3c0b"] a,
.elementor-12859,
.elementor-12772 [data-id="6eaefd5c"] a {
	color: #78d2ff !important;
	font-weight: 700;
}
.elementor-12859,
.elementor-12772 [data-id="382c2947"],
.elementor-12859,
.elementor-12772 .e-3bbe3a8c-ed20 {
	text-align: center !important;
	align-items: center !important;
	justify-content: center !important;
}
.elementor-12859,
.elementor-12772 [data-id="478245f0"],
.elementor-12859,
.elementor-12772 [data-id="478245f0"] .elementor-widget-container {
	width: 100% !important;
	max-width: min(1240px, calc(100% - 2rem));
	margin-inline: auto !important;
	text-align: center !important;
}
.elementor-12859,
.elementor-12772 [data-id="382c2947"] p,
.elementor-12859,
.elementor-12772 [data-id="478245f0"] p,
.elementor-12859,
.elementor-12772 [data-id="478245f0"] span,
.elementor-12859,
.elementor-12772 .pw-footer__legal,
.elementor-12859,
.elementor-12772 .pw-footer__legal p {
	color: #fff !important;
	font-size: 0.95rem !important;
	margin: 0 !important;
	text-align: center !important;
}
.elementor-12859,
.elementor-12772 [data-id="382c2947"] a,
.elementor-12859,
.elementor-12772 .pw-footer__legal a {
	color: #78d2ff !important;
}
.elementor-12859,
.elementor-12772 [data-id="382c2947"],
.elementor-12859,
.elementor-12772 .e-3bbe3a8c-ed20 {
	background: #000 !important;
	margin-block-start: -1px !important;
	border: 0 !important;
	border-top: none !important;
	box-shadow: none !important;
	outline: none !important;
	padding: calc(1rem + 1px) max(var(--pw-page-gutter), calc((100% - 1240px) / 2)) 1.25rem !important;
}
.elementor-12859,
.elementor-12772 [data-id="478245f0"] img,
.elementor-12859,
.elementor-12772 .pw-footer__legal img {
	float: none !important;
	display: inline-block;
	vertical-align: middle;
}
.elementor-12859,
.elementor-12772 [data-id="382c2947"] .pw-footer__trademarks,
.elementor-12859,
.elementor-12772 .pw-footer__trademarks {
	font-size: 0.85rem;
	margin: 0.75rem 0 0 !important;
	text-align: center !important;
}
.elementor-12859,
.elementor-12772 [data-id="382c2947"] .pw-footer__trademarks img,
.elementor-12859,
.elementor-12772 .pw-footer__trademarks img {
	display: inline-block;
	vertical-align: middle;
	height: 34px;
	width: auto;
}
.elementor-12859,
.elementor-12772 [data-id="382c2947"] .pw-footer__trademarks img[src*="Styled-P"],
.elementor-12859,
.elementor-12772 .pw-footer__trademarks img[src*="Styled-P"] {
	height: 38px;
	padding: 2px;
}
.elementor-12859,
.elementor-12772 [data-id="382c2947"] .pw-footer__trademarks img[src*="PennNoCorp"],
.elementor-12859,
.elementor-12772 .pw-footer__trademarks img.pw-footer__wordmark-img {
	height: 28px;
	padding: 4px 8px;
}

/* ------------------------------------------------------------------ */
/* Content pages                                                        */
/* ------------------------------------------------------------------ */
.pw-page-header { background: var(--wp--preset--gradient--water); color: #fff; padding: clamp(2rem, 5vw, 4rem) 0; position: relative; overflow: hidden; }
.pw-page-header::after { content: ""; position: absolute; right: -10%; top: -40%; width: 50%; aspect-ratio: 1; border-radius: 50%; background: rgba(255, 255, 255, 0.08); pointer-events: none; }
.pw-page-header h1,
.pw-page-header .pw-page-header__title { color: #fff; margin: 0; font-family: var(--wp--preset--font-family--heading); font-size: clamp(1.5rem, 2.8vw, 2.15rem); line-height: 1.2; font-weight: 700; }
.pw-page-header a, .pw-page-header .wp-block-post-terms, .pw-page-header .wp-block-post-date { color: #fff; }
.pw-page-header .pw-breadcrumb { font-size: 0.95rem; opacity: 0.9; margin-bottom: 0.5rem; }
.pw-page-header .pw-breadcrumb a { color: #fff; }
/* Never show the inner-page title band on the Elementor homepage (hero is the h1). */
body.pwt-elementor-home .pw-page-header--branded,
body.pwt-elementor-home .page-header,
body.page-id-12857 .page-header,
body.page-id-12770 .page-header,
body.elementor-page-12857 .page-header,
body.elementor-page-12770 .page-header,
body.home .pw-page-header--branded {
	display: none !important;
}
/* Toolkit printed the blue band; drop Hello's duplicate title box. */
body.hello-pennichuck .site-main:has(.pw-page-header--branded) > .page-header {
	display: none !important;
}
/* Style Hello's .page-header like the branded band when the toolkit has not replaced it. */
body.hello-pennichuck:not(.pwt-elementor-home) .site-main {
	max-width: none !important;
	width: 100% !important;
	margin-inline: 0 !important;
}
body.hello-pennichuck:not(.pwt-elementor-home) .site-main > .page-header {
	width: 100%;
	max-width: none !important;
	margin-inline: 0;
	box-sizing: border-box;
	padding-inline: max(var(--pw-page-gutter), calc((100vw - 1240px) / 2));
	padding-block: clamp(1.15rem, 2.2vw, 1.65rem);
	background: linear-gradient(105deg, #00518f 0%, #1488b9 42%, #00a5df 78%, #3ec5ef 100%);
	position: relative;
	overflow: hidden;
	border: 0;
}
body.hello-pennichuck:not(.pwt-elementor-home) .site-main > .page-header::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--pw-page-header-deco);
	background-repeat: no-repeat;
	background-position: right 2% center;
	background-size: auto 92%;
	pointer-events: none;
}
body.hello-pennichuck:not(.pwt-elementor-home) .site-main > .page-header .entry-title {
	max-width: min(1240px, 100%) !important;
	width: 100% !important;
	margin-inline: auto !important;
	padding-inline: 0;
	color: #fff !important;
	font-weight: 700;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.5rem, 2.8vw, 2.15rem);
	line-height: 1.2;
	position: relative;
	z-index: 1;
}
body.hello-pennichuck:not(.pwt-elementor-home) .page-content {
	max-width: min(1240px, 100%);
	margin-inline: auto;
	padding-inline: var(--pw-page-gutter, 1.5rem);
}
.pw-page-header--branded {
	/* Lighter sky-forward band (matches legacy header-with-logo art direction). */
	--pw-page-header-bg: linear-gradient(105deg, #00518f 0%, #1488b9 42%, #00a5df 78%, #3ec5ef 100%);
	--pw-page-header-deco: url("../images/header-with-logo-transparent.svg");
	position: relative;
	box-sizing: border-box;
	background: var(--pw-page-header-bg);
	padding-block: clamp(1.15rem, 2.2vw, 1.65rem);
	padding-inline: max(var(--pw-page-gutter), calc((100vw - 1240px) / 2));
	min-height: 0;
	display: flex;
	align-items: center;
	overflow: hidden;
}
.page-content > .pw-page-header--branded,
.site-main > .pw-page-header--branded {
	padding-inline: max(var(--pw-page-gutter), calc((100vw - 1240px) / 2));
}
.pw-page-header--branded::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--pw-page-header-deco);
	background-repeat: no-repeat;
	background-position: right 2% center;
	background-size: auto 92%;
	pointer-events: none;
	z-index: 1;
}
.pw-page-header--branded::after { display: none; }
.pw-page-header__inner {
	width: min(1240px, 100%);
	margin-inline: auto;
	position: relative;
	z-index: 2;
}
/* Inner pages only: gap below title band — do not pad/type the Elementor root (breaks full-width rows). */
.page-content > .pw-page-header--branded + .elementor {
	margin-top: var(--wp--preset--spacing--50, 2.5rem);
}
.page-content > .pw-page-header--branded + *:not(.elementor) {
	margin-top: var(--wp--preset--spacing--50, 2.5rem);
}
/* Prose-style pages: larger body copy in text widgets only (not homepage 12857). */
.page-content > .pw-page-header--branded + .elementor:not(body.pwt-elementor-home) .elementor-widget-text-editor .elementor-widget-container,
.page-content > .pw-page-header--branded + .elementor:not(body.pwt-elementor-home) .elementor-widget-text-editor .elementor-widget-container p,
.page-content > .pw-page-header--branded + .elementor:not(body.pwt-elementor-home) [data-widget_type="text-editor.default"] .elementor-widget-container,
.page-content > .pw-page-header--branded + .elementor:not(body.pwt-elementor-home) .e-paragraph {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
	line-height: 1.6;
	color: var(--wp--preset--color--ink, #1d2a35);
}
.page-content > .pw-page-header--branded + *:not(.elementor) {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
	line-height: 1.6;
}
@media (max-width: 599px) {
	.pw-page-header--branded::before {
		background-size: auto 100%;
		opacity: 0.5;
		background-position: 92% center;
	}
}
body.pwt-elementor-home [data-id="53075993"]:target {
	scroll-margin-top: calc(var(--pw-header-h, 5rem) + 1rem);
}
.entry-content > * + * { margin-top: 1.25rem; }
.wp-block-post-content h2 { margin-top: 2.5rem; }
.wp-block-post-content a:not(.wp-block-button__link):focus-visible { outline-offset: 2px; }
.pw-water-system-title .pw-badge { margin-left: 0.5rem; }

/* Engineering shared contacts */
.pw-eng-contacts { border-top: 4px solid var(--wp--preset--color--sky); }
.pw-eng-contacts h2 { font-size: 1.4rem; }
.pw-eng-contacts .wp-block-columns { gap: 1.5rem; }

/* Search results / archives */
.pw-archive-item { padding: 1.25rem 0; border-bottom: 1px solid var(--wp--preset--color--tint-2); }
.pw-archive-item h2 { font-size: 1.35rem; margin: 0 0 0.35rem; }

/**
 * Translation widget (utility bar).
 * Change log:
 * 2026-09-26 Replaced the non-working "coming before launch" label with
 *     Español · Português buttons that machine-translate the page. Google's
 *     default banner/gadget is hidden; our buttons are the accessible UI.
 */
.pw-translate { display: inline-flex; align-items: center; gap: 0.4rem; }
.pw-translate__nav { display: inline-flex; align-items: center; gap: 0; }
.pw-topbar .pw-translate__btn {
	appearance: none; background: none; border: 0; padding: 0; margin: 0;
	font: inherit; color: #fff; cursor: pointer; text-decoration: none;
}
.pw-topbar .pw-translate__btn:hover,
.pw-topbar .pw-translate__btn:focus-visible { text-decoration: underline; }
.pw-topbar .pw-translate__btn[aria-current="true"] { font-weight: 700; text-decoration: underline; }
.pw-translate__engine,
.pw-translate ~ .goog-te-spinner-pos { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; }
body.pw-is-translated { top: 0 !important; }
body.pw-is-translated .goog-te-banner-frame,
body.pw-is-translated .skiptranslate,
body.pw-is-translated .goog-te-balloon-frame,
body.pw-is-translated #goog-gt-tt { display: none !important; }
.VIpgJd-ZVi9od-ORHb-OEVmcd,
.VIpgJd-ZVi9od-aZ2wEe-wOHMyf { display: none !important; }

/* Print */
@media print {
	.pw-header, .pw-topbar, .pw-footer, .pw-alert, .pw-mega { display: none !important; }
}

/* Hello inner pages: full-width chrome without 100vw (avoids horizontal overflow). */
body.hello-elementor:not(.pwt-elementor-home) .pw-full-bleed,
body.hello-pennichuck:not(.pwt-elementor-home) .pw-full-bleed,
body.hello-elementor:not(.pwt-elementor-home) > .pw-alert,
body.hello-pennichuck:not(.pwt-elementor-home) > .pw-alert,
body.hello-elementor:not(.pwt-elementor-home) > .pw-topbar,
body.hello-pennichuck:not(.pwt-elementor-home) > .pw-topbar,
body.hello-elementor:not(.pwt-elementor-home) > .pw-header,
body.hello-pennichuck:not(.pwt-elementor-home) > .pw-header,
body.hello-elementor:not(.pwt-elementor-home) .pw-page-header--branded,
body.hello-pennichuck:not(.pwt-elementor-home) .pw-page-header--branded,
body.hello-elementor:not(.pwt-elementor-home) footer.elementor-location-footer,
body.hello-pennichuck:not(.pwt-elementor-home) footer.elementor-location-footer {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin-inline: 0;
}
