/*
Theme Name: Graphics Universal
Theme URI: https://graphicsuniversal.com/
Author: Graphics Universal
Description: Custom block theme for Graphics Universal, built from the approved Claude Design prototype (Graphics Universal Prototype v2) and FINAL-AUDIT.md.
Version: 0.2.0
Requires at least: 6.6
Requires PHP: 8.0
License: Proprietary
Text Domain: graphics-universal
*/

/* ==========================================================================
   Base
   ========================================================================== */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}
body { -webkit-font-smoothing: antialiased; }
*, *::before, *::after { box-sizing: border-box; }

/* Template-part wrappers must not create a box: the sticky nav bar needs the
   page, not a header-sized wrapper, as its scroll container. */
.gu-header-part,
.gu-footer-part,
.wp-block-gu-site-header { display: contents; }
.wp-site-blocks > * { margin-block: 0; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid #002F6C;
	outline-offset: 2px;
}

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.gu-icon {
	font-family: 'Material Symbols Outlined';
	font-weight: normal;
	font-style: normal;
	font-size: 26px;
	line-height: 1.1;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	direction: ltr;
	font-feature-settings: 'liga';
	-webkit-font-smoothing: antialiased;
	color: #64A70B; /* decorative, always beside a navy text label */
}

/* ==========================================================================
   Skip link
   ========================================================================== */

.gu-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100;
	background: #002F6C;
	color: #fff;
	padding: 14px 20px;
	font-size: 15.5px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
}
.gu-skip:focus { left: 8px; top: 8px; color: #fff; }
.gu-skip:focus-visible { outline-color: #fff; outline-offset: -4px; }

/* ==========================================================================
   Top bar
   ========================================================================== */

.gu-topbar {
	min-height: 38px;
	background: #002F6C;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: 14px;
	padding: 0 clamp(14px, 3vw, 40px);
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11.5px;
	letter-spacing: .06em;
	color: #A9C6DD;
	overflow: hidden;
}
.gu-topbar a { color: #fff; }
.gu-topbar a:focus-visible { outline-color: #fff; outline-offset: -3px; }
.gu-topbar__phone {
	display: flex;
	align-items: center;
	white-space: nowrap;
	min-width: 0;
}
.gu-topbar__end {
	display: flex;
	align-items: stretch;
	gap: 18px;
	white-space: nowrap;
	min-width: 0;
}
.gu-topbar__social {
	display: flex;
	align-items: center;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gu-topbar__social a {
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.gu-topbar__social a:hover { background: #0B4F83; }
.gu-topbar__portal {
	display: flex;
	align-items: center;
	font-weight: 500;
	text-transform: uppercase;
}
.gu-topbar__pay {
	display: flex;
	align-items: center;
	background: #C8102E;
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 1.2;
	padding: 0 16px;
	text-transform: uppercase;
	white-space: nowrap;
}
.gu-topbar .gu-topbar__pay:hover { background: #A50D26; color: #fff; }

/* ==========================================================================
   Header bar (sticky)
   ========================================================================== */

.gu-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: #fff;
	border-bottom: 1px solid #E6E1D6;
}
.admin-bar .gu-header { top: var(--wp-admin--admin-bar--height, 32px); }

.gu-header__bar {
	position: relative;
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 0 clamp(16px, 3vw, 40px);
}
.gu-header__start {
	display: flex;
	align-items: center;
	gap: clamp(20px, 3vw, 40px);
	min-width: 0;
}
.gu-header__logo { display: block; flex-shrink: 0; }
.gu-header__logo img { display: block; width: auto; }
.gu-header__logo-full { height: 38px; }
.gu-header__logo-mark { height: 42px; display: none !important; }

.gu-nav__list {
	display: flex;
	align-items: center;
	gap: 26px;
	height: 80px;
	margin: 0;
	padding: 0;
	list-style: none;
	flex-shrink: 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	color: #002F6C;
	white-space: nowrap;
}
.gu-nav__item {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}
.gu-nav__link {
	display: inline-flex;
	align-items: center;
	height: 36px;
	line-height: 1;
	color: #002F6C;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
}
.gu-nav__item.is-active > .gu-nav__link { border-bottom-color: #64A70B; }
.gu-nav__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	/* 24px target; the -6px right margin keeps the approved footprint
	   (6px space + 12px chevron) by extending into the empty item gap. */
	width: 24px;
	height: 36px;
	margin: 0 -6px 0 0;
	padding: 0;
	border: 0;
	background: none;
	color: #002F6C;
	font: inherit;
	font-size: 9px;
	line-height: 1;
	cursor: pointer;
}
.gu-nav__item.is-open .gu-nav__toggle span[aria-hidden] { transform: rotate(180deg); }

/* Dropdown panels: 1px hairline and 3px navy top rule, no shadow (decision 6). */
.gu-panel {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 61;
	width: min(460px, 92vw);
	max-width: calc(100vw - 32px);
	max-height: calc(100vh - 134px);
	max-height: calc(100dvh - 134px);
	overflow-y: auto;
	overscroll-behavior: contain;
	background: #fff;
	border: 1px solid #D5CFC2;
	border-top: 3px solid #002F6C;
	white-space: normal;
	line-height: 1.5;
	font-weight: 400;
}
.gu-panel--wide { width: min(760px, 92vw); }
.gu-nav__item.is-open > .gu-panel { display: block; }

.gu-panel__head,
.gu-panel__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: #F7F5F0;
}
.gu-panel__head { padding: 16px 22px; border-bottom: 1px solid #EEE8DC; }
.gu-panel__foot { padding: 14px 22px; border-top: 1px solid #EEE8DC; }
.gu-panel__label {
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 10.5px;
	letter-spacing: .14em;
	color: #6B6455;
	text-transform: uppercase;
}
.gu-panel__all { font-size: 13px; font-weight: 600; color: #002F6C; }
.gu-panel__list {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 10px;
	list-style: none;
}
.gu-panel--wide .gu-panel__list {
	display: grid;
	grid-template-columns: 1fr 1fr;
}
.gu-panel__link {
	display: grid;
	grid-template-columns: 34px 1fr;
	gap: 14px;
	align-items: start;
	padding: 16px 18px;
	border-radius: 2px;
}
.gu-panel__link:hover { background: #F7F5F0; }
.gu-panel__text { display: block; }
.gu-panel__title {
	display: block;
	font-size: 15.5px;
	font-weight: 700;
	color: #002F6C;
	line-height: 1.3;
}
.gu-panel__desc {
	display: block;
	font-size: 13px;
	color: #6B6455;
	margin-top: 3px;
	line-height: 1.4;
}
.gu-panel__industries {
	font-size: 13.5px;
	font-weight: 600;
	color: #002F6C;
	border-bottom: 2px solid #64A70B;
	padding-bottom: 2px;
}
.gu-panel__quote {
	font-size: 13.5px;
	font-weight: 600;
	color: #fff;
	background: #002F6C;
	padding: 10px 16px;
}
.gu-panel__quote:hover { background: #002A4E; color: #fff; }
.gu-panel__hours { font-size: 13.5px; color: #4A4A44; }
.gu-panel__phone { font-size: 13.5px; font-weight: 600; color: #002F6C; }

/* Header buttons */
.gu-header__actions {
	display: flex;
	align-items: center;
	gap: 9px;
	flex-shrink: 0;
}
.gu-hbtn {
	display: inline-flex;
	align-items: center;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .09em;
	line-height: 1.2;
	text-transform: uppercase;
	white-space: nowrap;
	color: #fff;
	background: #002F6C;
	padding: 9px 15px; /* + 1px border = the approved 10px 16px box */
	border: 1px solid #002F6C;
}
.gu-hbtn:hover { background: #002A4E; border-color: #002A4E; color: #fff; }
/* Promotional Store: the prototype's white-on-green fill measures 2.97:1, so it
   takes the audit's secondary style (navy outline, navy label). */
.gu-hbtn--outline { background: #fff; color: #002F6C; }
.gu-hbtn--outline:hover { background: #F7F5F0; border-color: #002F6C; color: #002F6C; }
.gu-header__quote-short { display: none; }

.gu-burger {
	display: none;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid #D5CFC2;
	background: #fff;
	cursor: pointer;
	align-items: center;
	justify-content: center;
}
.gu-burger__bars {
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.gu-burger__bars span {
	display: block;
	width: 20px;
	height: 2px;
	background: #002F6C;
}
.gu-header.is-sheet-open .gu-burger__bars span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.gu-header.is-sheet-open .gu-burger__bars span:nth-child(2) { opacity: 0; }
.gu-header.is-sheet-open .gu-burger__bars span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ==========================================================================
   Mobile sheet
   ========================================================================== */

.gu-sheet {
	display: none;
	border-top: 1px solid #E6E1D6;
	background: #fff;
	padding: 16px clamp(16px, 3vw, 40px) 24px;
	max-height: min(70vh, calc(100vh - 118px));
	max-height: min(70dvh, calc(100dvh - 118px));
	overflow-y: auto;
	overscroll-behavior: contain;
}
.gu-sheet__list,
.gu-sheet__sub {
	margin: 0;
	padding: 0;
	list-style: none;
}
.gu-sheet__row {
	display: flex;
	align-items: stretch;
	border-bottom: 1px solid #EEE8DC;
}
.gu-sheet__link {
	flex: 1;
	display: block;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -.02em;
	line-height: 1.3;
	color: #002F6C;
	padding: 16px 0;
}
.gu-sheet__toggle {
	flex: 0 0 52px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: none;
	color: #002F6C;
	cursor: pointer;
}
.gu-sheet__chev {
	width: 10px;
	height: 10px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-3px) rotate(45deg);
}
.gu-sheet__toggle[aria-expanded="true"] .gu-sheet__chev { transform: translateY(2px) rotate(-135deg); }
.gu-sheet__sub { border-bottom: 1px solid #EEE8DC; }
.gu-sheet__sublink {
	display: block;
	font-size: 16px;
	line-height: 1.5;
	color: #4A4A44;
	padding: 12px 0 12px 16px;
	border-bottom: 1px solid #F4F1EA;
}
.gu-sheet__sub li:last-child .gu-sheet__sublink { border-bottom: 0; }
.gu-sheet [aria-current="page"] { color: #002F6C; font-weight: 700; }
.gu-sheet__actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 14px;
}
.gu-sheet__quote,
.gu-sheet__call {
	font-size: 15.5px;
	font-weight: 600;
	letter-spacing: .02em;
	text-align: center;
	text-transform: uppercase;
}
.gu-sheet__quote { background: #002F6C; color: #fff; padding: 18px; }
.gu-sheet__quote:hover { background: #002A4E; color: #fff; }
.gu-sheet__call { border: 1px solid #002F6C; color: #002F6C; padding: 17px; }

/* ==========================================================================
   Compact header: below 1000px, or wherever the desktop row stops fitting
   (class set by assets/js/header.js).
   ========================================================================== */

.gu-nav-compact .gu-nav,
.gu-nav-compact .gu-header__logo-full,
.gu-nav-compact .gu-header__promo,
.gu-nav-compact .gu-header__quote-long,
.gu-nav-compact .gu-topbar__social,
.gu-nav-compact .gu-topbar__portal { display: none; }

.gu-nav-compact .gu-header__logo-mark { display: block !important; }
.gu-nav-compact .gu-header__actions { gap: 10px; }
.gu-nav-compact .gu-header__quote { min-height: 44px; padding: 9px 14px; }
.gu-nav-compact .gu-header__quote-short { display: inline; }
.gu-nav-compact .gu-burger { display: flex; }
.gu-nav-compact .gu-header.is-sheet-open .gu-sheet { display: block; }
.gu-nav-compact .gu-topbar__phone { font-size: 10.5px; letter-spacing: .04em; }
.gu-nav-compact .gu-topbar__pay { font-size: 10.5px; padding: 0 12px; }

/* Without JavaScript: below 1000px the mobile links show as a plain list, and
   desktop dropdowns open on hover and keyboard focus. */
@media (max-width: 999.98px) {
	html:not(.gu-js) .gu-nav,
	html:not(.gu-js) .gu-header__logo-full,
	html:not(.gu-js) .gu-header__promo,
	html:not(.gu-js) .gu-burger,
	html:not(.gu-js) .gu-sheet__toggle,
	html:not(.gu-js) .gu-topbar__social,
	html:not(.gu-js) .gu-topbar__portal { display: none; }
	html:not(.gu-js) .gu-header__logo-mark { display: block !important; }
	html:not(.gu-js) .gu-sheet { display: block; max-height: none; }
	html:not(.gu-js) .gu-sheet__sub[hidden] { display: block; }
}
html:not(.gu-js) .gu-nav__item:hover > .gu-panel,
html:not(.gu-js) .gu-nav__item:focus-within > .gu-panel { display: block; }

/* ==========================================================================
   Footer
   ========================================================================== */

.gu-footer {
	background: #002F6C;
	color: #A9C6DD;
	font-size: 14px;
	line-height: normal;
	padding: clamp(26px, 2.8vw, 36px) clamp(20px, 3vw, 40px) 32px;
}
.gu-footer a { color: #A9C6DD; }
.gu-footer a:hover { color: #fff; }
.gu-footer a:focus-visible { outline-color: #fff; }
.gu-footer p { margin: 0; }
.gu-footer__main {
	max-width: 1720px;
	margin-inline: auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	gap: clamp(28px, 4vw, 64px);
}
.gu-footer__brand {
	flex: 0 1 420px;
	min-width: min(100%, 280px);
}
.gu-footer__logo { display: block; }
.gu-footer__logo img {
	display: block;
	width: 100%;
	max-width: 400px;
	height: auto;
}
.gu-footer__address,
.gu-footer__contact { margin-top: 14px !important; line-height: 1.7; }
.gu-footer__contact a { color: #fff; }
.gu-footer__social {
	display: flex;
	gap: 10px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}
.gu-footer__social a {
	width: 40px;
	height: 40px;
	border: 1px solid #1D5C8F;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}
.gu-footer__social a:hover { background: #0B4F83; }
.gu-footer__columns {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(24px, 2.6vw, 48px);
	justify-content: flex-start;
	flex: 0 1 auto;
	min-width: min(100%, 408px);
}
.gu-footer__col {
	flex: 0 1 180px;
	min-width: 150px;
}
.gu-footer .gu-footer__heading {
	display: block;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 10.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #fff;
}
.gu-footer__links {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}
.gu-footer__base {
	max-width: 1720px;
	margin: 32px auto 0;
	padding-top: 20px;
	border-top: 1px solid #1D5C8F;
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #A9C6DD;
}
.gu-footer__base a {
	color: inherit;
	display: inline-block;
	padding: 4px 0;
	margin: -4px 0;
}
.gu-footer__base a:hover { color: #fff; }

/* ==========================================================================
   Placeholder page body (until each page template is built)
   ========================================================================== */

.gu-main { min-height: 40vh; }

/* ==========================================================================
   Shared section system (values from the approved prototype markup)
   ========================================================================== */

.gu-main--flush,
.gu-page-body > * { margin-block: 0; }
.gu-main--flush { padding: 0; }

/* Content caps at 1720px while backgrounds run full width (FINAL-AUDIT 8). */
.gu-section {
	--gu-pad-x: max(clamp(20px, 3vw, 40px), calc((100% - 1720px) / 2));
	padding: clamp(44px, 5vw, 76px) var(--gu-pad-x);
}
/* The prototype sets line-height only where it matters and leaves the rest at
   the browser's "normal"; matching that keeps section heights identical. */
.gu-section,
.gu-hero,
.gu-band-photo { line-height: normal; }
/* Block-gap margins would add to grid and flex gaps; spacing here is explicit. */
:is(.gu-svc-list, .gu-split, .gu-sechead, .gu-quote-band__inner, .gu-cta-band__row, .gu-mapwrap, .gu-workset, .gu-svc-row,
	.gu-tl, .gu-tl-list, .gu-values, .gu-perks, .gu-steps, .gu-steps6, .gu-state-cards, .gu-tl__pair, .gu-openings) > * { margin-block: 0; }
.gu-section--off { background: #F7F5F0; }
.gu-section--deep { background: #002A4E; }
.gu-section--ruled { border-top: 1px solid #E6E1D6; border-bottom: 1px solid #E6E1D6; }
.gu-section p,
.gu-section h2,
.gu-section h3 { margin: 0; }

/* Buttons (core/button): navy primary is the theme.json default. */
.gu-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.gu-actions .wp-block-button { margin: 0; }
.gu-actions .wp-block-button__link {
	font-size: 15.5px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	line-height: 1.2;
	border-radius: 0;
	padding: 17px 30px;
}
.wp-block-button.is-style-gu-light .wp-block-button__link {
	background: #fff;
	color: #002F6C;
}
.wp-block-button.is-style-gu-light .wp-block-button__link:hover { background: #F7F5F0; color: #002F6C; }
.wp-block-button.is-style-gu-outline-light .wp-block-button__link {
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, .55);
	padding: 16px 29px;
}
.wp-block-button.is-style-gu-outline-light .wp-block-button__link:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.wp-block-button.is-style-gu-outline .wp-block-button__link {
	background: transparent;
	color: #002F6C;
	border: 1px solid #002F6C;
	padding: 16px 29px;
}
.wp-block-button.is-style-gu-outline .wp-block-button__link:hover { background: #F7F5F0; color: #002F6C; }

/* On navy and photographic grounds the focus ring turns light green. */
.gu-hero :focus-visible,
.gu-band-photo :focus-visible,
.gu-section--deep :focus-visible,
.gu-mapwrap__panel :focus-visible { outline-color: #A6D95C; }

/* Press colour bar */
.gu-pressbar { display: flex; align-items: center; }
.gu-pressbar span { display: block; width: 26px; height: 9px; }
.gu-pressbar__c { background: #00A3E0; }
.gu-pressbar__m { background: #E5007D; }
.gu-pressbar__y { background: #FFED00; }
.gu-pressbar__k { background: #1A1A18; }
.gu-pressbar .gu-pressbar__rule { flex: 1; width: auto; height: 1px; margin-left: 14px; background: #D5CFC2; }
.gu-pressbar--dark .gu-pressbar__rule { background: #1D5C8F; }
.gu-pressbar--photo { max-width: 520px; }
.gu-pressbar--photo .gu-pressbar__rule { background: rgba(255, 255, 255, .4); }

/* Section heading row: H2 with an adjacent text link */
.gu-sechead {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 20px;
}
.gu-sechead h2 {
	font-size: clamp(30px, 4vw, 46px);
	letter-spacing: -.038em;
	line-height: 1.02;
}
.gu-sechead__link { display: flex; flex-wrap: wrap; gap: 22px; }
.gu-sechead__link a,
.gu-textlinks a {
	font-size: 15.5px;
	font-weight: 600;
	color: #002F6C;
	border-bottom: 2px solid #64A70B; /* decoration only; the label stays navy */
	padding-bottom: 3px;
}
.gu-sechead__link--mono a {
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 10.5px;
	font-weight: 400;
	letter-spacing: .16em;
	text-transform: uppercase;
	padding-bottom: 4px;
}
.gu-textlinks {
	display: flex;
	flex-wrap: wrap;
	gap: 26px;
	margin-top: 26px !important;
}
.gu-textlinks--on-dark { gap: 22px; margin-top: 22px !important; }
.gu-textlinks--on-dark a { color: #A6D95C; }
.gu-textlinks--on-dark a:hover { color: #fff; }

.gu-eyebrow {
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: #002F6C;
}

/* Photos placed with the Cover block keep their focal point (editable). */
.gu-split__media,
.gu-quote-band__photo,
.gu-band-photo { padding: 0; }
.gu-split__media .wp-block-cover__inner-container,
.gu-quote-band__photo .wp-block-cover__inner-container { display: none; }

/* ==========================================================================
   Homepage
   ========================================================================== */

/* 1. Hero */
.gu-hero {
	position: relative;
	min-height: max(420px, calc(100svh - 118px));
	display: flex;
	align-items: center;
	overflow: hidden;
	background: #002F6C;
}
.gu-hero-media { position: absolute; inset: 0; }
.gu-hero-media__poster,
.gu-hero-media__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.gu-hero-media__video { opacity: 0; transition: opacity .6s ease; }
.gu-hero-media.is-playing .gu-hero-media__video { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
	.gu-hero-media__video { transition: none; }
}
.gu-hero-media__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(2, 40, 77, .94) 0%, rgba(0, 52, 95, .86) 42%, rgba(0, 58, 105, .42) 78%, rgba(0, 58, 105, .22) 100%);
}
.gu-hero-media__toggle {
	position: absolute;
	right: 16px;
	bottom: 16px;
	z-index: 3;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	background: rgba(2, 40, 77, .86);
	border: 1px solid rgba(255, 255, 255, .42);
	color: #fff;
	cursor: pointer;
}
.gu-hero-media__toggle[hidden] { display: none; }
.gu-hero-media__toggle .gu-icon { font-size: 22px; line-height: 1; color: #fff; }
.gu-hero__content {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1180px;
	padding: clamp(48px, 7vw, 96px) clamp(20px, 5vw, 72px);
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.gu-hero__content > * { margin: 0 !important; }
.gu-hero__title img {
	display: block;
	width: clamp(240px, 44vw, 660px);
	max-width: 100%;
	height: auto;
	aspect-ratio: 1440 / 603;
}
.gu-hero__services {
	font-size: clamp(15px, 1.62vw, 24px);
	line-height: 1.3;
	font-weight: 600;
	color: #A6D95C;
	letter-spacing: -.01em;
	white-space: nowrap;
}
/* Phones and small tablets: the line was shrinking to 9px to stay on one row
   (28 Oct 2026 mobile review); keep it readable and let it wrap instead. */
@media (max-width: 940px) {
	.gu-hero__services { white-space: normal; text-wrap: balance; max-width: 30ch; }
}
.gu-hero__intro {
	font-size: clamp(16.5px, 1.4vw, 19px);
	line-height: 1.5;
	color: #CFE0EE;
	max-width: 620px;
	text-wrap: pretty;
}
.gu-hero__actions { gap: 14px; margin-top: 8px !important; }
.gu-hero__actions .wp-block-button__link { padding: 19px 32px; }
.gu-hero__actions .is-style-gu-outline-light .wp-block-button__link { padding: 18px 31px; }

/* 2. Built on Service band */
.gu-intro {
	padding-top: clamp(46px, 5.5vw, 84px);
	padding-bottom: clamp(40px, 4.5vw, 64px);
	border-bottom: 1px solid #E6E1D6;
}
.gu-split {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(28px, 4vw, 72px);
	align-items: flex-start;
}
.gu-split__text { flex: 1 1 520px; min-width: min(100%, 320px); }
.gu-split__text .gu-eyebrow { margin-top: 22px; }
.gu-split .wp-block-cover.gu-split__media {
	flex: 1 1 380px;
	min-width: min(100%, 300px);
	align-self: stretch;
	min-height: clamp(240px, 26vw, 380px);
}
.gu-intro__title {
	margin-top: 18px !important;
	font-size: clamp(30px, 4.4vw, 52px);
	line-height: 1.04;
	letter-spacing: -.04em;
	max-width: 20ch;
}
.gu-lead {
	margin-top: 22px !important;
	font-size: clamp(17px, 1.5vw, 19.5px);
	line-height: 1.6;
	color: #4A4A44;
	max-width: 52ch;
}

/* 3. Our Services list: ruled rows, two columns, 8 = 4 x 2 */
.gu-svc-list {
	margin-top: clamp(26px, 3vw, 38px);
	display: grid;
	/* min(100%, ...) stops the 340px column overflowing phones narrower than 380px. */
	grid-template-columns: repeat(auto-fit, minmax(min(100%, max(45%, 340px)), 1fr));
	gap: 0 clamp(24px, 3vw, 52px);
	border-bottom: 1px solid #E6E1D6;
}
.gu-svc-row {
	position: relative;
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	column-gap: clamp(14px, 1.6vw, 22px);
	align-items: start;
	padding: clamp(18px, 2vw, 24px) 0;
	border-top: 1px solid #E6E1D6;
}
.gu-svc-row:hover { background: #FBFAF7; }
/* Icon block (gu/icon): green beside a navy label, per the approved rows. */
.gu-svc-row > .gu-icon-block {
	grid-row: 1 / span 2;
	font-size: 30px;
	line-height: 1;
	color: #64A70B;
	padding-top: 2px;
}
.gu-svc-row__title,
.gu-svc-row__desc { grid-column: 2; }
.gu-svc-row__title {
	font-size: clamp(21px, 2.3vw, 27px);
	font-weight: 700;
	letter-spacing: -.03em;
	line-height: 1.15;
}
.gu-svc-row__title a { color: #002F6C; }
.gu-svc-row__title .gu-ext { font-size: 15px; }
/* The whole row is the link target. */
.gu-svc-row__title a::after { content: ""; position: absolute; inset: 0; }
.gu-svc-row__title a:focus-visible { outline: none; }
.gu-svc-row:has(a:focus-visible) { outline: 2px solid #002F6C; outline-offset: 2px; }
.gu-svc-row__desc {
	margin-top: 6px !important;
	font-size: 15.5px;
	line-height: 1.55;
	color: #4A4A44;
	max-width: 54ch;
}

/* 4. "Your Partner in Print and Beyond." photo band */
.wp-block-cover.gu-band-photo {
	width: 100%;
	aspect-ratio: 3 / 2;
	min-height: clamp(380px, 42vw, 620px);
	background: #002A4E;
	align-items: center;
	justify-content: flex-start;
	padding: clamp(28px, 4vw, 64px) max(clamp(20px, 3vw, 40px), calc((100% - 1720px) / 2));
}
.gu-band-photo .wp-block-cover__background {
	opacity: 1 !important;
	background:
		linear-gradient(180deg, rgba(2, 40, 77, .22) 0%, rgba(2, 40, 77, 0) 45%, rgba(2, 40, 77, .34) 100%),
		linear-gradient(90deg, rgba(2, 40, 77, .95) 0%, rgba(2, 40, 77, .9) 38%, rgba(2, 40, 77, .5) 62%, rgba(2, 40, 77, .34) 100%) !important;
}
.gu-band-photo .wp-block-cover__inner-container {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	color: #fff;
}
.gu-band-photo .wp-block-cover__inner-container > * { margin: 0; }
.gu-band-photo__statement {
	margin-top: 22px !important;
	font-size: clamp(36px, 6vw, 92px);
	line-height: 1.02;
	letter-spacing: -.042em;
	font-weight: 700;
	color: #fff;
	max-width: 26ch;
}
.gu-band-photo .gu-actions { margin-top: 26px !important; }
.gu-band-photo .gu-actions .wp-block-button__link { padding: 16px 26px; }
.gu-band-photo .gu-actions .is-style-gu-outline-light .wp-block-button__link { padding: 15px 25px; }

/* 5. See Our Work */
.gu-workset {
	margin-top: clamp(24px, 2.6vw, 34px);
	display: flex;
	flex-wrap: wrap;
	gap: clamp(14px, 1.6vw, 22px);
}
.gu-workset__feature {
	flex: 1 1 440px;
	min-width: min(100%, 320px);
	display: block;
}
.gu-workset__img {
	display: block;
	width: 100%;
	height: clamp(150px, 15vw, 208px);
	object-fit: cover;
	background: #002F6C;
}
.gu-workset__img--big { height: clamp(300px, 34vw, 470px); }
.gu-workset__meta { display: block; padding-top: 12px; }
.gu-workset__feature .gu-workset__meta { padding-top: 16px; }
.gu-workset__cat {
	display: block;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 10.5px;
	letter-spacing: .14em;
	color: #002F6C;
}
.gu-workset__cat--sm { font-size: 10px; }
.gu-workset__title {
	display: block;
	margin-top: 6px;
	font-size: 16.5px;
	font-weight: 700;
	letter-spacing: -.02em;
	line-height: 1.25;
	color: #002F6C;
}
.gu-workset__title--big {
	margin-top: 8px;
	font-size: clamp(19px, 1.9vw, 23px);
	letter-spacing: -.025em;
	line-height: 1.2;
}
.gu-workset__spec {
	display: block;
	margin-top: 7px;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11.5px;
	color: #6B6455;
}
/* Four smaller projects: 2 x 2, or a single column when narrow (never 3 + 1). */
.gu-workset__grid {
	flex: 1 1 420px;
	min-width: min(100%, 300px);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(max(calc(50% - 11px), min(190px, 100%)), 1fr));
	gap: clamp(14px, 1.6vw, 22px);
	align-content: start;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gu-workset__item { display: block; }

/* 6. Jordan quote band */
.gu-quote-band__inner {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(26px, 3.6vw, 64px);
	align-items: center;
}
.gu-quote-band__inner .wp-block-cover.gu-quote-band__photo {
	flex: 0 1 240px;
	min-width: min(100%, 200px);
	min-height: 0;
	height: clamp(240px, 22vw, 300px);
}
.gu-quote-band__text { flex: 1 1 460px; min-width: min(100%, 320px); }
.gu-pullquote,
.gu-section .gu-pullquote {
	margin: 18px 0 0 !important;
	padding: 0;
	border: 0;
}
.gu-pullquote p {
	margin: 0;
	font-size: clamp(22px, 2.7vw, 33px);
	line-height: 1.3;
	letter-spacing: -.03em;
	font-weight: 600;
	color: #fff;
}
.gu-pullquote cite {
	display: block;
	margin-top: 18px;
	font-size: 15px;
	font-style: normal;
	color: #A9C6DD;
}

/* 7. Where We Service */
.gu-mapwrap {
	margin-top: clamp(26px, 3vw, 38px);
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 1px;
	background: #1D5C8F;
	border: 1px solid #1D5C8F;
}
.gu-mapwrap__map {
	flex: 1 1 460px;
	min-height: clamp(380px, 46vw, 560px);
	position: relative;
	background: #00274A;
	overflow: hidden;
}
.gu-mapwrap__map service-area-map {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.gu-mapwrap__panel {
	flex: 1 1 300px;
	max-width: 420px;
	background: #002F6C;
	padding: clamp(26px, 3vw, 36px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 14px;
}
.gu-mapwrap__panel p { margin: 0; }
/* Once the panel wraps under the map (460 + 300px no longer fit), let it span
   the row instead of leaving a strip of the divider colour beside it. */
.gu-map-home { container-type: inline-size; }
@container (max-width: 762px) {
	.gu-mapwrap__panel { max-width: none; }
}
.gu-mapwrap__eyebrow {
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #A6D95C;
}
.gu-mapwrap__name {
	font-size: clamp(28px, 3.4vw, 40px);
	font-weight: 700;
	color: #fff;
	letter-spacing: -.035em;
	line-height: 1.05;
}
.gu-mapwrap__dist { font-size: 16.5px; line-height: 1.5; color: #A9C6DD; }
.gu-mapwrap__cta {
	align-self: flex-start;
	margin-top: 8px;
	font-size: 15.5px;
	letter-spacing: .02em;
	font-weight: 600;
	color: #002F6C;
	background: #fff;
	padding: 15px 24px;
	text-transform: uppercase;
}
.gu-mapwrap__cta:hover { background: #F7F5F0; color: #002F6C; }
.gu-mapwrap__hint { margin-top: 6px !important; font-size: 14px; line-height: 1.5; color: #A9C6DD; }
.gu-map-home .gu-sechead h2 {
	font-size: clamp(28px, 3.4vw, 42px);
	letter-spacing: -.04em;
	line-height: 1.04;
}

/* 8. Latest Insights: 4 across, 2 x 2, or 1 (balanced, never 3 + 1). */
.gu-insights-home .gu-sechead h2 { font-size: clamp(28px, 3.4vw, 40px); }
.gu-insights-home { container-type: inline-size; }
.gu-insight-cards {
	margin: clamp(22px, 2.4vw, 32px) 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(16px, 1.8vw, 24px);
}
@container (min-width: 524px) {
	.gu-insight-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container (min-width: 1072px) {
	.gu-insight-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.gu-insight-cards > li { display: flex; }
.gu-insight-card { display: flex; flex-direction: column; width: 100%; }
.gu-insight-card__img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	object-fit: cover;
	background: #002F6C;
}
.gu-insight-card__body {
	border-top: 2px solid #002F6C;
	padding-top: 14px;
	margin-top: 16px;
	display: flex;
	flex-direction: column;
	gap: 9px;
	flex: 1;
}
.gu-insight-card__cat,
.gu-insight-card__date {
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 10px;
}
.gu-insight-card__cat { letter-spacing: .14em; color: #002F6C; }
.gu-insight-card__title {
	font-size: 18.5px;
	font-weight: 700;
	color: #002F6C;
	line-height: 1.22;
	letter-spacing: -.025em;
}
.gu-insight-card__excerpt { font-size: 14.5px; line-height: 1.55; color: #4A4A44; }
.gu-insight-card__date { letter-spacing: .06em; color: #6B6455; margin-top: auto; padding-top: 10px; }

/* ==========================================================================
   Shared inner-page components
   ========================================================================== */

/* Breadcrumbs: a small mono line in a white strip (CLAUDE-CODE-HANDOFF 5). */
.gu-crumbs { background: #fff; padding: 4px clamp(20px, 3vw, 48px) 0; }
.gu-crumbs ol {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	line-height: normal;
}
.gu-crumbs li { display: flex; align-items: center; gap: 8px; }
.gu-crumbs a { color: #4A4A44; display: inline-flex; align-items: center; min-height: 44px; }
.gu-crumbs a:hover { color: #002F6C; }
.gu-crumbs__sep { color: #6B6455; }
.gu-crumbs [aria-current] { color: #002F6C; font-weight: 600; }

/* Who We Are tabs */
.gu-tabs {
	display: flex;
	border-bottom: 1px solid #E6E1D6;
	background: #F7F5F0;
	padding: 0 clamp(12px, 3vw, 40px);
	overflow-x: auto;
	line-height: normal;
}
.gu-tabs__tab {
	font-size: 15px;
	font-weight: 600;
	padding: 18px 22px;
	white-space: nowrap;
	color: #6B6455;
	border-bottom: 2px solid transparent;
}
.gu-tabs__tab:hover { color: #002F6C; }
/* Keep all three tabs on screen on the narrowest phones. */
@media (max-width: 380px) {
	.gu-tabs__tab { padding-left: 14px; padding-right: 14px; }
}
.gu-tabs__tab.is-current { color: #002F6C; border-bottom-color: #002F6C; }

/* Mono eyebrow sizes used on inner pages */
.gu-eyebrow--12 { font-size: 12px; letter-spacing: .16em; }
.gu-eyebrow--on-dark { color: #A6D95C; }
.gu-eyebrow--muted { color: #6B6455; font-size: 11px; letter-spacing: .14em; }

/* Split hero: text panel beside a photo (Our Story, Careers) */
.gu-split-hero {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(400px, 100%), 1fr));
	min-height: 440px;
	line-height: normal;
}
.gu-split-hero > * { margin: 0 !important; }
.gu-split-hero--careers { min-height: 420px; }
.gu-split-hero__text {
	padding: clamp(44px, 6vw, 72px) clamp(20px, 4vw, 48px);
	background: #F7F5F0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
}
.gu-split-hero__text > * { margin: 0 !important; }
.gu-split-hero__text h1 {
	font-size: clamp(44px, 6.4vw, 78px);
	line-height: .94;
	letter-spacing: -.045em;
}
.gu-split-hero--careers h1 { font-size: clamp(44px, 6vw, 64px); line-height: .98; letter-spacing: -.04em; }
.gu-split-hero__text .gu-lead--hero { font-size: 19px; line-height: 1.5; color: #4A4A44; max-width: 480px; }
.gu-split-hero__text .gu-actions { gap: 14px; margin-top: 6px !important; }
/* In the prototype the photo's own 3:2 shape sets the hero height. */
.gu-split-hero { container-type: inline-size; }
.wp-block-cover.gu-split-hero__media { min-height: 320px; padding: 0; background: #002F6C; }
/* Side by side, the photo column is half the width at the photo's 3:2 shape;
   stacked (under 800px) it is the prototype's 320px band. */
@container (min-width: 800px) {
	.wp-block-cover.gu-split-hero__media { min-height: max(320px, 33.333cqw); }
}
.gu-split-hero__media .wp-block-cover__inner-container { display: none; }

/* Inner-page buttons: 17/26 primary, 16/26 outline */
.gu-actions--inner .wp-block-button__link { padding: 17px 26px; }
.gu-actions--inner .is-style-gu-outline .wp-block-button__link,
.gu-actions--inner .is-style-gu-outline-light .wp-block-button__link { padding: 16px 25px; }
.gu-actions--inner .is-style-gu-outline-light .wp-block-button__link { border-color: #A9C6DD; }

/* Closing bands: title, line, buttons */
.gu-closer {
	padding: clamp(36px, 4vw, 52px) clamp(20px, 3vw, 48px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
	line-height: normal;
}
.gu-closer > * { margin: 0 !important; }
.gu-closer--navy { background: #002F6C; }
.gu-closer--off { background: #F7F5F0; padding-top: clamp(36px, 4vw, 56px); padding-bottom: clamp(36px, 4vw, 56px); }
.gu-closer__text > * { margin: 0 !important; }
.gu-closer__title {
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 700;
	color: #002F6C;
	letter-spacing: -.03em;
	line-height: 1.1;
}
.gu-closer__line { font-size: 16.5px; color: #4A4A44; margin-top: 8px !important; }
.gu-closer--navy .gu-closer__title { color: #fff; }
.gu-closer--navy .gu-closer__line { color: #A9C6DD; }
.gu-closer--navy .gu-closer__line a { color: #fff; text-decoration: underline; text-underline-offset: 3px; } /* not colour alone (WCAG 1.4.1) */
.gu-closer--navy :focus-visible { outline-color: #A6D95C; }

/* Icon block: a block-level glyph; size and colour come from its section. */
.gu-icon-block { display: block; line-height: 1; margin: 0; }

/* ==========================================================================
   Meet Our Team
   ========================================================================== */

.gu-team-hero {
	padding: clamp(44px, 6vw, 64px) clamp(20px, 4vw, 48px);
	background: #F7F5F0;
	border-bottom: 1px solid #E6E1D6;
	text-align: center;
	line-height: normal;
}
.gu-team-hero h1 {
	margin: 0 auto;
	font-size: clamp(46px, 7.5vw, 84px);
	letter-spacing: -.045em;
	line-height: 1;
	max-width: 900px;
}
.gu-team-hero .gu-actions { justify-content: center; gap: 14px; margin-top: 26px; }
.gu-team-hero .gu-actions .wp-block-button__link { padding: 16px 26px; }
.gu-team-hero .gu-actions .is-style-gu-outline .wp-block-button__link { padding: 15px 25px; }
.gu-team-sec {
	padding: clamp(36px, 5vw, 52px) clamp(20px, 3vw, 44px) clamp(40px, 5vw, 60px);
	text-align: center;
	line-height: normal;
}
.gu-team-sec > * { margin: 0 !important; }
.gu-team-sec--ruled { border-top: 1px solid #E6E1D6; }
.gu-team-sec h2 { font-size: clamp(26px, 3.4vw, 32px); letter-spacing: -.03em; }
.gu-team-addr {
	margin: 8px auto 24px !important;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #6B6455;
}
.gu-team { display: flex; flex-direction: column; gap: 24px; }
.gu-team--sales { margin-top: clamp(28px, 3vw, 40px) !important; }
.gu-team__row {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	justify-content: center;
	align-items: stretch;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	/* Room for exactly this row's cards, so rows centre at any count. */
	max-width: calc(var(--gu-count) * 262px + (var(--gu-count) - 1) * 24px);
}
.gu-team--leadership .gu-team__row { max-width: 1180px; }
/* Card framing as approved for Our Team (protected page; keeps its soft shadow). */
.gu-person {
	background: #fff;
	box-shadow: 0 2px 10px rgba(0, 47, 108, .10);
	display: flex;
	flex-direction: column;
	flex: 0 0 auto;
	width: 262px;
	max-width: 100%;
	min-height: 385px;
}
.gu-team--leadership .gu-person { flex: 1 1 240px; width: auto; max-width: 272px; }
.gu-person__photo {
	display: block;
	width: 100%;
	height: 240px;
	object-fit: cover;
	object-position: center 18%;
	background: #EEE8DC;
}
/* Team member without a portrait: the logo mark centred on a light tile of the
   same height, so the card matches its row (2 Nov 2026). */
.gu-person__photo--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(160deg, #F7F5F0 0%, #ECE6DA 100%);
}
.gu-person__mark {
	display: block;
	width: 96px;
	height: auto;
	opacity: .9;
}
.gu-person__body {
	padding: 22px 20px 24px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: center;
	justify-content: center;
	text-align: center;
	flex: 1;
}
.gu-person__body p { margin: 0; }
.gu-person__name { font-size: 18px; font-weight: 700; color: #002F6C; letter-spacing: -.01em; }
.gu-person__title { font-size: 15px; color: #2F6390; }
.gu-person__phone { font-size: 14.5px; font-weight: 600; margin-top: 6px !important; }
.gu-person__phone a { color: #002F6C; }
.gu-person__email { font-size: 13.5px; word-break: break-all; }
.gu-person__email { margin-top: 3px !important; }
.gu-person__email a { color: #6B6455; }
/* 24px tap targets (WCAG 2.5.8) without moving the text: padding grows the hit
   area, the matching negative margin keeps the line where it was. */
.gu-person__phone a,
.gu-person__email a { display: inline-block; padding-block: 4px; margin-block: -4px; }
.gu-person a:hover { text-decoration: underline; }

/* ==========================================================================
   Our Story: timeline
   ========================================================================== */

.gu-story-tl {
	padding: clamp(44px, 5.5vw, 72px) clamp(20px, 3vw, 48px) clamp(48px, 6vw, 76px);
	background: #F7F5F0;
	border-top: 1px solid #E6E1D6;
	border-bottom: 1px solid #E6E1D6;
	line-height: normal;
}
.gu-story-tl__inner { max-width: 940px; }
.gu-story-tl__inner > * { margin: 0; }
.gu-story-tl h2 {
	margin: 14px 0 clamp(30px, 3.6vw, 46px) !important;
	font-size: clamp(28px, 3.6vw, 40px);
	letter-spacing: -.035em;
	line-height: 1.04;
}
.gu-tl {
	--gu-tl-date: clamp(96px, 11vw, 152px);
	--gu-tl-gap: clamp(12px, 1.6vw, 26px);
	position: relative;
	display: grid;
	grid-template-columns: var(--gu-tl-date) 40px minmax(0, 1fr);
	align-items: start;
	column-gap: var(--gu-tl-gap);
	margin: 0 !important;
}
/* Rail and marker sit in the 40px middle column. */
.gu-tl::before,
.gu-tl::after {
	content: "";
	position: absolute;
	left: calc(var(--gu-tl-date) + var(--gu-tl-gap) + 20px);
}
.gu-tl::before { top: 12px; bottom: -18px; width: 2px; margin-left: -1px; background: #D8D2C4; }
.gu-tl::after {
	top: 10px;
	width: 10px;
	height: 10px;
	margin-left: -5px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid #B9C6CF;
	box-shadow: 0 0 0 5px #F7F5F0; /* gap in the rail around the marker */
	box-sizing: border-box;
}
.gu-tl.is-major::before { top: 16px; }
.gu-tl.is-major::after { top: 7px; width: 16px; height: 16px; margin-left: -8px; background: #64A70B; border-color: #64A70B; }
.gu-tl:last-child::before { display: none; }
.gu-tl__date { grid-column: 1; text-align: right; padding-top: 4px; }
.gu-tl.is-major .gu-tl__date { padding-top: 0; }
.gu-tl__date > * { margin: 0 !important; }
.gu-tl__pre { font-size: clamp(14px, 1.3vw, 17px); font-weight: 700; letter-spacing: -.01em; color: #002F6C; margin-bottom: 2px !important; }
.gu-tl__pre--mono { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11px; font-weight: 400; letter-spacing: .12em; color: #6B6455; margin-bottom: 4px !important; }
.gu-tl__year {
	font-size: clamp(22px, 2.5vw, 32px);
	line-height: 1;
	letter-spacing: -.04em;
	font-weight: 700;
	color: #5A7089;
}
.gu-tl.is-major .gu-tl__year { font-size: clamp(28px, 3.4vw, 44px); color: #002F6C; }
.gu-tl__body { grid-column: 3; padding-bottom: clamp(28px, 3.2vw, 42px); }
.gu-tl.is-major .gu-tl__body { padding-bottom: clamp(34px, 4vw, 52px); }
.gu-tl:last-child .gu-tl__body { padding-bottom: 0; }
.gu-tl__body > * { margin: 0; }
.gu-tl__body h3 { font-size: clamp(19px, 1.9vw, 24px); letter-spacing: -.03em; line-height: 1.18; }
.gu-tl.is-major .gu-tl__body h3 { font-size: clamp(21px, 2.2vw, 28px); }
.gu-tl__body p { margin-top: 10px !important; font-size: 17px; line-height: 1.68; color: #4A4A44; max-width: 64ch; }
.gu-tl__body .wp-block-image { margin: 18px 0 0 !important; }
.gu-tl__body .wp-block-image img { display: block; width: 100%; height: auto; }
.gu-w-300 { max-width: 300px; }
.gu-w-380 { max-width: 380px; }
.gu-w-440 { max-width: 440px; }
.gu-w-560 { max-width: 560px; }
.gu-tl__body .gu-w-560,
.gu-tl__body .gu-w-380 { margin-top: 22px !important; }
.gu-tl__pair { display: flex; flex-wrap: wrap; gap: 14px; max-width: 560px; margin-top: 18px !important; }
.gu-tl__pair .wp-block-image { flex: 1 1 200px; min-width: min(100%, 180px); margin: 0 !important; }
.gu-tl__pair figcaption,
.gu-tl__body figcaption {
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 10.5px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #6B6455;
	margin: 8px 0 0;
	text-align: left;
}

/* What hasn't changed: four values, 4 / 2 x 2 / 1 */
.gu-values-sec {
	background: #002F6C;
	padding: clamp(40px, 5vw, 64px) clamp(20px, 3vw, 48px);
	line-height: normal;
	container-type: inline-size;
}
.gu-values-sec > * { margin: 0; }
.gu-values-sec h2 { margin: 14px 0 30px !important; font-size: clamp(28px, 3.6vw, 38px); letter-spacing: -.03em; color: #fff; }
.gu-values { display: grid; grid-template-columns: 1fr; gap: 20px; justify-content: center; }
@container (min-width: 520px) { .gu-values { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 1020px) { .gu-values { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.gu-value { border-top: 2px solid #64A70B; padding-top: 18px; margin: 0 !important; }
.gu-value > * { margin: 0 !important; }
.gu-value__title { font-size: 20px; font-weight: 700; color: #fff; }
.gu-value__copy { font-size: 15px; line-height: 1.5; color: #A9C6DD; margin-top: 8px !important; }

/* ==========================================================================
   Careers
   ========================================================================== */

.gu-careers-why {
	padding: clamp(40px, 5vw, 64px) clamp(20px, 3vw, 48px);
	line-height: normal;
	container-type: inline-size;
}
.gu-careers-why > * { margin: 0; }
/* Headings the prototype leaves at line-height: normal. */
.gu-careers-why h2,
.gu-values-sec h2,
.gu-team-sec h2,
.gu-states-sec h2,
.gu-process h2,
.gu-openings__now h2 { line-height: normal; }
.gu-main--flush > * { margin-block: 0; }
.gu-careers-why h2 { margin: 14px 0 30px !important; font-size: clamp(28px, 3.6vw, 38px); letter-spacing: -.03em; }
.gu-perks {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1px;
	background: #E6E1D6;
	border: 1px solid #E6E1D6;
	justify-content: center;
}
/* Boxes fill the row (as the prototype's balancer does); a width cap would let
   the grid's hairline colour show as bars beside them on wide screens. */
@container (min-width: 880px) { .gu-perks { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gu-perk {
	background: #fff;
	padding: 32px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0 !important;
}
.gu-perk > .gu-icon-block { font-size: 38px; color: #002F6C; }
.gu-perk > * { margin: 0 !important; }
.gu-perk__title { font-size: 23px; font-weight: 700; color: #002F6C; letter-spacing: -.02em; margin-top: 4px !important; }
.gu-perk__copy { font-size: 16px; line-height: 1.55; color: #4A4A44; }

.gu-openings-sec { padding: 0 clamp(20px, 3vw, 48px) clamp(40px, 5vw, 64px); line-height: normal; }
.gu-openings {
	border: 1px solid #D5CFC2;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
}
.gu-openings > * { margin: 0 !important; padding: clamp(28px, 4vw, 44px); }
.gu-openings__apply { background: #F7F5F0; border-left: 1px solid #E6E1D6; }
.gu-openings__now > * { margin: 0; }
.gu-openings__now h2 { margin: 14px 0 10px !important; font-size: clamp(24px, 3vw, 32px); letter-spacing: -.03em; }
.gu-openings__now > p:not(.gu-eyebrow) { font-size: 16.5px; line-height: 1.55; color: #4A4A44; max-width: 520px; }
.gu-openings__now .gu-actions { margin-top: 22px !important; }
.gu-steps {
	counter-reset: gu-step;
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-top: 18px !important;
}
.gu-step {
	counter-increment: gu-step;
	display: grid;
	grid-template-columns: 34px 1fr;
	column-gap: 14px;
	align-items: start;
	margin: 0 !important;
}
.gu-step::before {
	content: counter(gu-step);
	grid-row: 1 / span 2;
	width: 34px;
	height: 34px;
	background: #002F6C;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	font-weight: 700;
}
.gu-step > * { grid-column: 2; margin: 0 !important; }
.gu-step__title { font-size: 17px; font-weight: 700; color: #002F6C; }
.gu-step__copy { font-size: 15px; line-height: 1.5; color: #4A4A44; margin-top: 3px !important; }
.gu-step__copy a { text-decoration: underline; text-underline-offset: 3px; } /* not colour alone (WCAG 1.4.1) */

/* ==========================================================================
   Locations We Serve (hub)
   ========================================================================== */

.gu-loc-intro {
	padding: clamp(44px, 6vw, 64px) clamp(20px, 4vw, 48px);
	background: #F7F5F0;
	border-bottom: 1px solid #E6E1D6;
	line-height: normal;
}
.gu-loc-intro > * { margin: 0; }
.gu-loc-intro h1 {
	margin-top: 14px !important;
	font-size: clamp(38px, 5.5vw, 56px);
	letter-spacing: -.04em;
	line-height: 1;
	max-width: 820px;
}
.gu-loc-intro__lead { margin-top: 16px !important; font-size: 19px; line-height: 1.5; color: #4A4A44; max-width: 680px; }
.gu-loc-map { padding: clamp(28px, 4vw, 44px) clamp(20px, 3vw, 48px) 0; line-height: normal; container-type: inline-size; }
.gu-loc-map .gu-mapwrap { margin-top: 0; }
@container (max-width: 762px) {
	.gu-loc-map .gu-mapwrap__panel { max-width: none; }
}
.gu-brandline-sec { padding: clamp(30px, 4vw, 46px) clamp(20px, 3vw, 48px) 0; text-align: center; container-type: inline-size; }
.gu-brandline {
	margin: 0;
	font-size: clamp(11px, 2.55cqw, 40px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.025em;
	color: #002F6C;
	white-space: nowrap;
}
/* On phones the one-line statement would run off screen (as it does in the
   prototype below ~480px); let it wrap at a readable size instead. */
@container (max-width: 480px) {
	.gu-brandline { white-space: normal; font-size: 18px; }
}
.gu-states-sec { padding: clamp(36px, 5vw, 56px) clamp(20px, 3vw, 48px); line-height: normal; container-type: inline-size; }
.gu-states-sec > * { margin: 0; }
.gu-states-sec h2 { margin: 0 0 20px !important; font-size: clamp(26px, 3.4vw, 34px); letter-spacing: -.03em; }
/* Six regions: 3 x 2, 2 x 3 or 1 (never 4 + 2). */
.gu-state-cards { display: grid; grid-template-columns: 1fr; gap: 20px; justify-content: center; }
@container (min-width: 500px) { .gu-state-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 760px) { .gu-state-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gu-state-card {
	position: relative;
	border: 1px solid #D5CFC2;
	background: #fff;
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-height: 150px;
	margin: 0 !important;
}
.gu-state-card:hover { border-color: #002F6C; background: #FBFAF7; }
.gu-state-card > .gu-icon-block { font-size: 28px; color: #002F6C; }
.gu-state-card > * { margin: 0 !important; }
.gu-state-card__name { font-size: 21px; font-weight: 700; letter-spacing: -.025em; margin-top: 2px !important; }
.gu-state-card__name a { color: #002F6C; }
.gu-state-card__name a::after { content: ""; position: absolute; inset: 0; }
.gu-state-card__name a:focus-visible { outline: none; }
.gu-state-card:has(a:focus-visible) { outline: 2px solid #002F6C; outline-offset: 2px; }
.gu-state-card__blurb { font-size: 14.5px; line-height: 1.5; color: #4A4A44; }
.gu-state-card__more { margin-top: auto !important; padding-top: 8px; font-size: 14px; font-weight: 600; color: #002F6C; }

.gu-process-sec { padding: 0 clamp(20px, 3vw, 48px) clamp(40px, 5vw, 60px); line-height: normal; }
.gu-process {
	background: #F7F5F0;
	border: 1px solid #E6E1D6;
	padding: clamp(28px, 4vw, 44px);
	container-type: inline-size;
}
.gu-process > * { margin: 0; }
.gu-process h2 { margin: 12px 0 26px !important; font-size: clamp(26px, 3.4vw, 34px); letter-spacing: -.03em; }
/* Six steps: 6, 3 x 2, 2 x 3 or 1 across (balanced). */
.gu-steps6 { display: grid; grid-template-columns: 1fr; row-gap: clamp(30px, 3.5vw, 44px); }
@container (min-width: 380px) { .gu-steps6 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 570px) { .gu-steps6 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@container (min-width: 1140px) { .gu-steps6 { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.gu-step6 { display: flex; flex-direction: column; gap: 14px; margin: 0 !important; }
.gu-step6 > * { margin: 0 !important; }
/* Number box with the green rail running through it. */
.gu-step6__num {
	display: flex;
	align-items: center;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 14px;
	font-weight: 500;
	color: #fff;
}
.gu-step6__num::before,
.gu-step6__num::after { content: ""; flex: 1; height: 2px; background: #64A70B; opacity: .35; }
.gu-step6__num span {
	width: 42px;
	height: 42px;
	flex-shrink: 0;
	background: #002F6C;
	display: flex;
	align-items: center;
	justify-content: center;
}
.gu-step6__text {
	padding: 0 16px;
	display: flex;
	flex-direction: column;
	gap: 7px;
	text-align: center;
	align-items: center;
}
.gu-step6__text > .gu-icon-block { font-size: 26px; color: #002F6C; }
.gu-step6__text > * { margin: 0 !important; }
.gu-step6__title { font-size: 17.5px; font-weight: 700; color: #002F6C; letter-spacing: -.02em; }
.gu-step6__copy { font-size: 14.5px; line-height: 1.5; color: #4A4A44; }
.gu-process__cta { display: flex; align-items: center; gap: 12px; margin-top: 22px !important; flex-wrap: wrap; }
.gu-process__cta > * { margin: 0 !important; }
.gu-process__cta .wp-block-button__link { padding: 16px 26px; }
.gu-process__call { font-size: 15px; color: #6B6455; }
.gu-process__call a { font-weight: 600; }

/* ==========================================================================
   State and city pages (protected location pages)
   ========================================================================== */

/* Location breadcrumb strip */
.gu-crumbs--location {
	padding: 18px clamp(20px, 3vw, 48px);
	border-bottom: 1px solid #EEE8DC;
}
.gu-crumbs--location ol { gap: 8px; letter-spacing: .1em; }
.gu-crumbs--location li { gap: 8px; }
.gu-crumbs--location a { color: #6B6455; min-height: 0; }
.gu-crumbs--location [aria-current] { font-weight: 500; }
/* Article strip: the topic is shown as written, in navy (approved line 2209). */
.gu-crumbs a.gu-crumbs__end { color: #002F6C; font-weight: 500; text-transform: none; }

.gu-loc-hero,
.gu-city-hero,
.gu-loc-sec { line-height: normal; }
:is(.gu-loc-hero, .gu-city-hero, .gu-market-cards, .gu-whybox__items, .gu-city-market__inner, .gu-sector-tiles, .gu-city-svc-cards,
	.gu-bullets, .gu-city-why, .gu-city-faq__inner, .gu-nearby-cards) > * { margin-block: 0; }

/* Hero: text beside the map */
.gu-loc-hero {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	background: #F7F5F0;
	border-bottom: 1px solid #E6E1D6;
}
.gu-loc-hero__text { flex: 1 1 420px; min-width: min(100%, 420px); padding: clamp(40px, 5vw, 60px) clamp(20px, 4vw, 48px); }
.gu-loc-hero__text > * { margin: 0; }
.gu-loc-hero h1 { margin-top: 14px !important; font-size: clamp(36px, 5vw, 52px); letter-spacing: -.04em; line-height: 1.02; }
.gu-loc-hero__intro { margin-top: 16px !important; font-size: 19px; line-height: 1.5 !important; color: #4A4A44; }
.gu-loc-hero .gu-actions { margin-top: 24px !important; }
.gu-areamap--state {
	flex: 1 1 420px;
	min-width: min(100%, 420px);
	display: flex;
	border-left: 1px solid #E6E1D6;
	overflow: hidden;
}
.gu-areamap--state service-area-map { display: block; width: 100%; min-height: clamp(320px, 34vw, 440px); }

.gu-city-hero {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	min-height: clamp(420px, 48vw, 560px);
}
.gu-city-hero__text {
	flex: 1 1 400px;
	padding: clamp(36px, 4.5vw, 60px) clamp(20px, 4vw, 48px);
	background: #F7F5F0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 16px;
}
.gu-city-hero__text > * { margin: 0 !important; }
.gu-city-hero h1 { font-size: clamp(32px, 4.4vw, 48px); letter-spacing: -.04em; line-height: 1.02; max-width: 560px; }
.gu-city-dist {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 12.5px;
	letter-spacing: .08em;
	color: #002F6C;
}
.gu-city-dist::before { content: ""; width: 26px; height: 2px; background: #64A70B; flex-shrink: 0; }
.gu-city-hero__intro { font-size: 18px; line-height: 1.55 !important; color: #4A4A44; max-width: 540px; }
.gu-city-hero .gu-actions { margin-top: 8px !important; }
.gu-areamap--city {
	flex: 1 1 440px;
	min-height: clamp(320px, 40vw, 560px);
	position: relative;
	background: #00274A;
	border-left: 1px solid #E6E1D6;
}
.gu-areamap--city service-area-map { position: absolute; inset: 0; width: 100%; height: 100%; }

/* Shared section padding on location pages */
.gu-loc-sec { padding: clamp(36px, 5vw, 52px) clamp(20px, 3vw, 48px); container-type: inline-size; }
.gu-loc-sec--tail { padding-top: 0; }
.gu-loc-sec--b56 { padding-bottom: clamp(40px, 5vw, 56px); }
.gu-loc-sec--b60 { padding-bottom: clamp(40px, 5vw, 60px); }
.gu-loc-sec--deliv { padding-bottom: clamp(36px, 4vw, 52px); }
.gu-loc-sec.gu-city-market { padding-top: clamp(34px, 4vw, 52px); }
.gu-loc-sec > * { margin: 0; }
.gu-loc-sec h2 { font-size: clamp(26px, 3.4vw, 34px); letter-spacing: -.03em; line-height: normal; }

/* State: market cards (5 -> 5 or 1; 3 -> 3 or 1) */
.gu-markets-note { margin: 6px 0 24px !important; font-size: 16px; color: #6B6455; }
.gu-market-cards { display: grid; grid-template-columns: 1fr; gap: 18px; }
@container (min-width: 531px) { .gu-market-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@container (min-width: 897px) { .gu-market-cards--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.gu-market-card {
	position: relative;
	border: 1px solid #D5CFC2;
	background: #fff;
	padding: clamp(18px, 1.7vw, 26px);
	display: flex;
	flex-direction: column;
	gap: 8px;
	transition: border-color .15s ease, background .15s ease;
}
@media (prefers-reduced-motion: reduce) { .gu-market-card { transition: none; } }
.gu-market-card:hover,
.gu-market-card.is-hl { border-color: #002F6C; background: #FBFAF7; }
.gu-market-card > * { margin: 0 !important; }
.gu-market-card__name { font-size: 22px; font-weight: 700; letter-spacing: -.02em; }
.gu-market-card__copy { font-size: 15px; line-height: 1.5 !important; color: #4A4A44; }
.gu-market-card__more { margin-top: auto !important; padding-top: 10px; font-size: 14.5px; font-weight: 600; color: #002F6C; }
/* Whole card is the link (from its name). */
.gu-market-card__name a,
.gu-city-svc__title a,
.gu-nearby-card a { color: #002F6C; }
.gu-market-card__name a::after,
.gu-city-svc__title a::after,
.gu-nearby-card a::after { content: ""; position: absolute; inset: 0; }
:is(.gu-market-card, .gu-city-svc, .gu-nearby-card) a:focus-visible { outline: none; }
:is(.gu-market-card, .gu-city-svc, .gu-nearby-card):has(a:focus-visible) { outline: 2px solid #002F6C; outline-offset: 2px; }

/* State: why box */
.gu-whybox { border: 1px solid #D5CFC2; padding: clamp(26px, 3.5vw, 40px); container-type: inline-size; }
.gu-whybox > * { margin: 0; }
.gu-whybox h2 { margin-bottom: 20px !important; font-size: clamp(24px, 3vw, 30px); }
.gu-whybox__items { display: grid; grid-template-columns: 1fr; gap: 22px; }
@container (min-width: 794px) { .gu-whybox__items { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gu-whyitem > * { margin: 0 !important; }
.gu-whyitem__title { font-size: 18px; font-weight: 700; color: #002F6C; }
.gu-whyitem__copy { font-size: 15px; line-height: 1.55 !important; color: #4A4A44; margin-top: 6px !important; max-width: 54ch; }

/* City: the market + industries */
.gu-city-market { padding-bottom: 0; }
.gu-city-market__inner { display: flex; flex-wrap: wrap; gap: clamp(22px, 2.6vw, 38px); align-items: stretch; max-width: 1280px; }
.gu-city-market__text { flex: 1 1 400px; min-width: min(100%, 400px); }
.gu-city-market__text > * { margin: 0; }
.gu-city-market__text h2 { margin-top: 12px !important; font-size: clamp(24px, 3.2vw, 32px); line-height: 1.1; }
.gu-city-market__text p:not(.gu-eyebrow) { margin-top: 14px !important; font-size: 17px; line-height: 1.6 !important; color: #4A4A44; }
.gu-city-market__text p a { text-decoration: underline; text-underline-offset: 3px; } /* not colour alone (WCAG 1.4.1) */
.gu-city-market__sectors { flex: 1.15 1 420px; display: flex; flex-direction: column; }
.gu-city-market__sectors > * { margin: 0 !important; }
.gu-sector-tiles {
	flex: 1;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 12px;
	margin-top: 16px !important;
}
@media (min-width: 1000px) { .gu-sector-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gu-sector-tiles > p {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background: #F7F5F0;
	border: 1px solid #E2DDD0;
	padding: 22px 16px;
	min-height: 112px;
	margin: 0 !important;
	font-size: 16px;
	line-height: 1.3 !important;
	color: #002F6C;
	font-weight: 600;
	letter-spacing: -.015em;
	overflow-wrap: break-word;
	hyphens: auto;
}

/* City: what we print (6 -> 3 x 2, 2 x 3, 1) */
.gu-city-svcs { padding-top: clamp(30px, 3.4vw, 44px); padding-bottom: clamp(32px, 4vw, 48px); }
.gu-city-svcs h2 { margin-bottom: 22px !important; }
.gu-city-svc-cards { display: grid; grid-template-columns: 1fr; gap: 1px; background: #E6E1D6; border: 1px solid #E6E1D6; }
@container (min-width: 520px) { .gu-city-svc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 780px) { .gu-city-svc-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gu-city-svc { position: relative; background: #fff; padding: 26px; display: flex; flex-direction: column; gap: 9px; }
.gu-city-svc:hover { background: #F7F5F0; }
.gu-city-svc > * { margin: 0 !important; }
.gu-city-svc > .gu-icon-block { font-size: 32px; color: #002F6C; }
.gu-city-svc__title { font-size: 20px; font-weight: 700; letter-spacing: -.02em; margin-top: 4px !important; }
.gu-city-svc__copy { font-size: 14.5px; line-height: 1.5 !important; color: #4A4A44; }
.gu-city-svc__more { margin-top: auto !important; padding-top: 10px; font-size: 14px; font-weight: 600; color: #002F6C; }

/* City: delivery panel */
.gu-delivery { background: #002F6C; padding: clamp(28px, 4vw, 44px); container-type: inline-size; }
.gu-delivery > * { margin: 0; }
.gu-delivery h2 { margin-top: 12px !important; font-size: clamp(24px, 3.2vw, 32px); line-height: 1.1; color: #fff; max-width: 700px; }
.gu-delivery__copy { margin: 14px 0 24px !important; font-size: 17.5px; line-height: 1.55 !important; color: #A9C6DD; max-width: 680px; }
.gu-bullets { display: grid; grid-template-columns: 1fr; gap: 18px; }
@container (min-width: 756px) { .gu-bullets { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gu-bullet { background: #0B4F83; border: 1px solid #1D5C8F; padding: 22px; margin: 0 !important; }
.gu-bullet > * { margin: 0 !important; }
.gu-bullet__title { font-size: 18px; font-weight: 700; color: #fff; }
.gu-bullet__copy { font-size: 14.5px; line-height: 1.5 !important; color: #A9C6DD; margin-top: 6px !important; }
.gu-delivery :focus-visible { outline-color: #A6D95C; }

/* City: why + talk to us */
.gu-city-why { border: 1px solid #D5CFC2; display: flex; flex-wrap: wrap; }
.gu-city-why__list { flex: 1 1 320px; padding: clamp(26px, 3.5vw, 40px); }
.gu-city-why__list > * { margin: 0; }
.gu-city-why__list h2 { margin-bottom: 16px !important; font-size: clamp(24px, 3vw, 30px); }
.gu-city-why__items { display: flex; flex-direction: column; gap: 14px; }
.gu-city-why__items > * { margin: 0 !important; }
.gu-city-why__items .gu-whyitem__title { font-size: 17px; }
.gu-city-why__items .gu-whyitem__copy { margin-top: 4px !important; max-width: none; }
.gu-city-talk { flex: 1 1 260px; padding: clamp(26px, 3.5vw, 40px); background: #F7F5F0; border-left: 1px solid #E6E1D6; }
.gu-city-talk > * { margin: 0; }
.gu-city-talk__title { font-size: 21px; font-weight: 700; color: #002F6C; margin-top: 10px !important; letter-spacing: -.02em; }
.gu-contact-lines { font-size: 15.5px; line-height: 1.7 !important; color: #4A4A44; margin-top: 10px !important; }
.gu-contact-lines__phone { font-weight: 600; }
.gu-city-talk__links { display: flex; flex-direction: column; gap: 9px; margin-top: 18px !important; font-size: 15px; font-weight: 600; }
.gu-city-talk__links > * { margin: 0 !important; }

/* City: FAQ (rail + accordion) */
.gu-city-faq__inner { display: flex; flex-wrap: wrap; gap: clamp(24px, 3.4vw, 56px); align-items: flex-start; max-width: 1280px; }
.gu-city-faq__rail { flex: 1 1 300px; position: sticky; top: 110px; }
.admin-bar .gu-city-faq__rail { top: 142px; }
.gu-city-faq__rail > * { margin: 0; }
.gu-city-faq__rail h2 { margin-top: 12px !important; font-size: clamp(24px, 3.2vw, 32px); line-height: 1.12; }
.gu-city-faq__lead { margin-top: 14px !important; font-size: 16.5px; line-height: 1.6 !important; color: #4A4A44; }
.gu-city-faq__links { margin-top: 20px !important; padding-top: 20px; border-top: 1px solid #E6E1D6; display: flex; flex-direction: column; gap: 10px; font-size: 15.5px; font-weight: 600; }
.gu-city-faq__links > * { margin: 0 !important; }
.gu-city-faq__list { flex: 1.6 1 460px; min-width: min(100%, 460px); }
.gu-city-faq__list > * { margin: 0 !important; }
.wp-block-details.gu-faq { border-bottom: 1px solid #E6E1D6; }
.wp-block-details.gu-faq summary {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	max-width: 620px;
	padding: 18px 4px;
	list-style: none;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.35;
	color: #002F6C;
	letter-spacing: -.01em;
}
.wp-block-details.gu-faq summary::after {
	content: "expand_more" / "";
	font-family: 'Material Symbols Outlined';
	font-weight: normal;
	font-size: 21px;
	line-height: 1.2;
	letter-spacing: normal;
	flex-shrink: 0;
	font-feature-settings: 'liga';
	transition: transform .18s ease;
}
@media (prefers-reduced-motion: reduce) { .wp-block-details.gu-faq summary::after { transition: none; } }
.wp-block-details.gu-faq[open] summary::after { transform: rotate(180deg); }
.wp-block-details.gu-faq > :not(summary) { margin: 0; padding: 0 40px 20px 4px; font-size: 16px; line-height: 1.6 !important; color: #4A4A44; }

/* City: nearby areas (4 -> 4, 2 x 2, 1) */
.gu-nearby { border-top: 1px solid #E6E1D6; padding-top: 26px; container-type: inline-size; }
.gu-nearby > * { margin: 0; }
.gu-nearby-cards { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 16px !important; }
@container (min-width: 412px) { .gu-nearby-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 836px) { .gu-nearby-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.gu-nearby-card {
	position: relative;
	border: 1px solid #D5CFC2;
	background: #fff;
	padding: 18px 20px;
	margin: 0 !important;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-size: 16.5px;
	font-weight: 600;
}
.gu-nearby-card::after { content: "→" / ""; font-size: 15px; font-weight: 400; color: #002F6C; }
.gu-nearby-card:hover { border-color: #002F6C; background: #F7F5F0; }

/* Ultrawide: content stops at 1720px and centres; backgrounds stay full width
   (FINAL-AUDIT 8, PROJECT_SPEC 11d). Below ~1820px these resolve to the
   sections' own padding, so normal widths are unchanged. */
@media (min-width: 1800px) {
	.gu-crumbs,
	.gu-tabs,
	.gu-team-hero,
	.gu-team-sec,
	.gu-story-tl,
	.gu-values-sec,
	.gu-careers-why,
	.gu-openings-sec,
	.gu-loc-intro,
	.gu-loc-map,
	.gu-brandline-sec,
	.gu-states-sec,
	.gu-process-sec,
	.gu-loc-sec,
	.gu-closer {
		padding-left: max(48px, calc((100% - 1720px) / 2));
		padding-right: max(48px, calc((100% - 1720px) / 2));
	}
}

/* 9. Closing call to action */
.gu-cta-band {
	padding-top: clamp(40px, 4.6vw, 68px);
	padding-bottom: clamp(40px, 4.6vw, 68px);
	border-top: 1px solid #E6E1D6;
}
.gu-cta-band__row {
	margin-top: 24px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 28px;
}
.gu-cta-band h2 {
	font-size: clamp(28px, 3.8vw, 46px);
	letter-spacing: -.04em;
	line-height: 1.02;
	max-width: 22ch;
}
.gu-cta-band__text p {
	margin-top: 14px !important;
	font-size: 17px;
	line-height: 1.55;
	color: #4A4A44;
	max-width: 50ch;
}

/* ==========================================================================
   Our Work, Insights and FAQ (approved source lines 926-969, 1403-1515,
   2152-2368)
   ========================================================================== */

/* Intro bands that share the Locations intro */
.gu-loc-intro--work h1 { font-size: clamp(40px, 5.5vw, 56px); }
.gu-loc-intro--work .gu-loc-intro__lead { max-width: 640px; }
.gu-loc-intro--faq .gu-loc-intro__lead { line-height: 1.55; max-width: 700px; }

/* Filter buttons (links): 44px tap target (PROJECT_SPEC 10b) */
.gu-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.gu-chips > li { margin: 0; }
.gu-chip {
	min-height: 44px;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	line-height: normal;
	padding: 9px 16px;
	border: 1px solid #D5CFC2;
	background: transparent;
	color: #002F6C;
}
.gu-chip:hover { border-color: #002F6C; color: #002F6C; }
.gu-chip[aria-current] { border-color: #64A70B; background: #64A70B; color: #002A4E; } /* navy on green 4.91:1 (decision 23 pairing) */
.gu-chip--topic { padding: 11px 18px; background: #fff; }
.gu-chip--topic[aria-current] { border-color: #002F6C; background: #002F6C; color: #fff; }
.gu-mono-count {
	margin: 0;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11.5px;
	letter-spacing: .1em;
	color: #6B6455;
}

/* Our Work gallery: always 4 across, 2 below 640px, left-aligned (FINAL-AUDIT 8) */
.gu-workgrid { line-height: normal; }
.gu-workgrid__bar {
	padding: clamp(28px, 4vw, 40px) clamp(20px, 3vw, 48px) 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}
.gu-workgrid__count { margin: 0; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11.5px; letter-spacing: .1em; color: #6B6455; }
.gu-workgrid__grid {
	list-style: none;
	margin: 0;
	padding: 24px clamp(20px, 3vw, 48px) clamp(40px, 5vw, 60px);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}
@media (max-width: 639.98px) {
	.gu-workgrid__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.gu-workcard { min-width: 0; margin: 0; border: 1px solid #E6E1D6; }
.gu-workcard[hidden] { display: none; }
.gu-workcard__img { display: block; width: 100%; height: 240px; object-fit: cover; background: #002F6C; }
.gu-workcard__body { padding: 20px; }
.gu-workcard__body > * { margin: 0; }
.gu-workcard__cat { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 10.5px; letter-spacing: .12em; color: #002F6C; }
.gu-workcard__title { margin-top: 8px !important; font-size: 19px; font-weight: 700; color: #002F6C; line-height: 1.25; }
.gu-workcard__spec { margin-top: 8px !important; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11.5px; color: #6B6455; }

/* Insights: navy header with facts column */
.gu-ins-part { display: contents; }
.gu-ins-part > * { margin-block: 0; }
.gu-ins-head {
	padding: clamp(30px, 3.6vw, 44px) clamp(20px, 4vw, 48px) clamp(26px, 3vw, 36px);
	background: #002F6C;
	line-height: normal;
}
.gu-ins-head :focus-visible { outline-color: #A6D95C; }
.gu-ins-head__row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: clamp(20px, 3vw, 48px); }
.gu-ins-head__row > * { margin: 0 !important; }
.gu-ins-head__text { flex: 1 1 520px; max-width: 760px; }
.gu-ins-head__text > * { margin: 0; }
.gu-ins-head__eyebrow {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #A6D95C;
}
.gu-ins-head__eyebrow::before { content: ""; width: 34px; height: 2px; background: #A6D95C; }
.gu-ins-head h1 {
	margin-top: 14px !important;
	font-size: clamp(34px, 4.6vw, 52px);
	letter-spacing: -.04em;
	line-height: 1.02;
	color: #fff;
}
.gu-ins-head__lead { margin-top: 12px !important; font-size: clamp(16.5px, 1.35vw, 18.5px); line-height: 1.55; color: #CFE0EE; max-width: 640px; }
.gu-ins-stats { flex: 0 1 260px; display: flex; flex-direction: column; gap: 10px; padding-bottom: 6px; }
.gu-ins-stats > div { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 9px; border-bottom: 1px solid #1D5C8F; }
.gu-ins-stats > div:last-child { padding-bottom: 0; border-bottom: 0; }
.gu-ins-stats dt,
.gu-ins-stats dd { margin: 0; font-family: 'IBM Plex Mono', ui-monospace, monospace; text-transform: uppercase; }
.gu-ins-stats dt { font-size: 10.5px; letter-spacing: .12em; color: #A9C6DD; }
.gu-ins-stats dd { font-size: 11.5px; color: #fff; text-transform: none; }
.gu-ins-stats > div:last-child dd { text-transform: uppercase; }

/* Featured latest article (first page of the listing only) */
.gu-ins-feature { padding: clamp(28px, 3.4vw, 40px) clamp(20px, 3vw, 48px) 0; line-height: normal; }
.gu-ins-feature__card { display: flex; flex-wrap: wrap; border: 1px solid #D5CFC2; background: #002F6C; }
.gu-ins-feature__card:hover { border-color: #002F6C; }
.gu-ins-feature__card:focus-visible { outline-offset: 3px; }
/* The photo fills its column at the text panel's height (at least the
   approved minimum), never setting the height itself. */
.gu-ins-feature__media {
	position: relative;
	flex: 1.35 1 420px;
	min-width: min(100%, 420px);
	align-self: stretch;
	min-height: clamp(240px, 30vw, 420px);
	background: #002F6C;
}
.gu-ins-feature__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gu-ins-feature__body {
	flex: 1 1 340px;
	min-width: min(100%, 340px);
	padding: clamp(26px, 3.2vw, 44px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 14px;
}
.gu-ins-feature__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.gu-badge {
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	background: #64A70B;
	color: #002A4E; /* navy on green 4.91:1; white was 2.97:1 */
	padding: 5px 10px;
}
.gu-ins-feature__cat { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 10.5px; letter-spacing: .12em; color: #A6D95C; }
.gu-ins-feature__date { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11px; color: #A9C6DD; }
.gu-ins-feature__title { font-size: clamp(25px, 2.9vw, 36px); font-weight: 700; color: #fff; letter-spacing: -.032em; line-height: 1.1; }
.gu-ins-feature__excerpt { font-size: 17px; line-height: 1.55; color: #CFE0EE; max-width: 520px; }
.gu-ins-feature__more {
	margin-top: 8px;
	align-self: flex-start;
	font-size: 15px;
	font-weight: 600;
	color: #A6D95C;
	border-bottom: 2px solid #64A70B;
	padding-bottom: 3px;
}

/* Subscribe box (hidden until its HubSpot form is connected) */
.gu-subscribe-sec { padding: clamp(32px, 4vw, 44px) clamp(20px, 3vw, 48px) 0; line-height: normal; }
.gu-subscribe {
	background: #002F6C;
	padding: clamp(26px, 3.5vw, 40px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
}
.gu-subscribe > * { margin: 0 !important; }
.gu-subscribe :focus-visible { outline-color: #A6D95C; }
.gu-subscribe__text { flex: 1 1 320px; }
.gu-subscribe__text > * { margin: 0; }
.gu-subscribe__eyebrow { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #A6D95C; }
.gu-subscribe__title { margin-top: 10px !important; font-size: clamp(22px, 2.8vw, 28px); font-weight: 700; color: #fff; letter-spacing: -.03em; line-height: 1.15; }
.gu-subscribe__line { margin-top: 8px !important; font-size: 15.5px; color: #A9C6DD; max-width: 460px; }
.gu-subscribe__form { flex: 1 1 300px; max-width: 460px; }
.gu-hsform--placeholder {
	border: 1px dashed #A9C6DD;
	padding: 16px;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 12px;
	color: #6B6455;
	background: #fff;
}

/* Topic buttons and count */
.gu-ins-topics {
	margin-top: clamp(28px, 3.4vw, 40px);
	padding: clamp(26px, 3vw, 34px) clamp(20px, 3vw, 48px) 0;
	border-top: 1px solid #E6E1D6;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	line-height: normal;
}
.gu-ins-topics__count { margin: 0; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11.5px; letter-spacing: .1em; color: #6B6455; }

/* Article cards: auto-fill so a short topic keeps the same card width */
.gu-ins-grid { padding: 20px clamp(20px, 3vw, 48px) clamp(34px, 4vw, 48px); line-height: normal; }
.gu-pcards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(max(23%, 240px), 1fr));
	gap: clamp(18px, 1.8vw, 26px);
}
.gu-pcards > li { display: flex; margin: 0; }
.gu-pcard { display: flex; flex-direction: column; width: 100%; border: 1px solid #D5CFC2; }
.gu-pcard--navy { background: #002F6C; transition: border-color .18s ease, transform .18s ease; }
.gu-pcard--navy:hover { border-color: #64A70B; transform: translateY(-3px); }
@media (prefers-reduced-motion: reduce) { .gu-pcard--navy, .gu-pcard--navy:hover { transition: none; transform: none; } }
.gu-pcard--navy:focus-visible { outline-color: #002F6C; outline-offset: 3px; }
.gu-pcard__img { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; object-fit: cover; background: #002F6C; }
.gu-pcard__body { padding: 22px; display: flex; flex-direction: column; gap: 9px; flex: 1; }
.gu-pcard__meta { display: block; }
.gu-pcard__cat,
.gu-pcard__date { display: block; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 10px; }
.gu-pcard__cat { letter-spacing: .12em; }
.gu-pcard__date { letter-spacing: .06em; margin-top: 5px; }
.gu-pcard__title { font-size: 19px; font-weight: 700; line-height: 1.25; letter-spacing: -.02em; }
.gu-pcard__excerpt { font-size: 14.5px; line-height: 1.5; }
.gu-pcard__more { margin-top: auto; padding-top: 12px; font-size: 14px; font-weight: 600; }
.gu-pcard--navy .gu-pcard__cat { color: #A6D95C; }
.gu-pcard--navy .gu-pcard__date,
.gu-pcard--navy .gu-pcard__excerpt { color: #A9C6DD; }
.gu-pcard--navy .gu-pcard__title { color: #fff; }
.gu-pcard--navy .gu-pcard__more { color: #A6D95C; }
/* Light cards (more in this topic, under an article) */
.gu-pcard--light { border-color: #E6E1D6; background: #fff; }
.gu-pcard--light:hover { border-color: #002F6C; }
.gu-pcard--light .gu-pcard__img { aspect-ratio: auto; height: 200px; }
.gu-pcard--light .gu-pcard__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gu-pcard--light .gu-pcard__cat { color: #002F6C; }
.gu-pcard--light .gu-pcard__date { margin-top: 0; letter-spacing: normal; color: #6B6455; }
.gu-pcard--light .gu-pcard__title,
.gu-pcard--light .gu-pcard__more { color: #002F6C; }
.gu-pcard--light .gu-pcard__excerpt { color: #4A4A44; }

.gu-ins-empty { border: 1px solid #E6E1D6; background: #F7F5F0; padding: 48px; text-align: center; }
.gu-ins-empty > p { margin: 0; }
.gu-ins-empty__title { font-size: 22px; font-weight: 700; color: #002F6C; }
.gu-ins-empty__line { margin-top: 8px !important; font-size: 16px; color: #4A4A44; }
.gu-ins-empty__line a { color: #002F6C; font-weight: 600; border-bottom: 2px solid #64A70B; }

.gu-pager { margin-top: clamp(26px, 3vw, 36px); }
.gu-pager ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gu-pager .page-numbers {
	min-width: 44px;
	min-height: 44px;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 14px;
	border: 1px solid #D5CFC2;
	font-size: 14px;
	font-weight: 600;
	color: #002F6C;
}
.gu-pager a.page-numbers:hover { border-color: #002F6C; }
.gu-pager .page-numbers.current { background: #002F6C; border-color: #002F6C; color: #fff; }
.gu-pager .page-numbers.dots { border-color: transparent; }

/* Article */
.gu-art-head {
	padding: clamp(30px, 4vw, 48px) clamp(20px, 4vw, 48px) clamp(22px, 3vw, 32px);
	background: #F7F5F0;
	border-bottom: 1px solid #E6E1D6;
	line-height: normal;
}
.gu-art-head__inner { max-width: 820px; }
.gu-art-head__inner > * { margin: 0; }
.gu-art-head__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.gu-art-head__meta > * { margin: 0; }
.gu-art-head__cat a {
	display: inline-block;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 10.5px;
	letter-spacing: .12em;
	background: #64A70B;
	color: #002A4E; /* navy on green 4.91:1; white was 2.97:1 */
	padding: 5px 9px;
}
.gu-art-head__cat a:hover { background: #002F6C; color: #fff; }
.gu-art-head__date { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11.5px; color: #6B6455; }
.gu-art-head h1 {
	margin-top: 16px !important;
	font-size: clamp(30px, 4.4vw, 46px);
	line-height: 1.08;
	letter-spacing: -.035em;
}
.gu-art-head__lead { margin-top: 14px !important; }
.gu-art-head__lead p { margin: 0; font-size: 19px; line-height: 1.55; color: #4A4A44; }
.gu-art-hero-sec { padding: clamp(22px, 3vw, 32px) clamp(20px, 3vw, 48px) 0; }
.gu-art-hero-sec:not(:has(img)) { display: none; }
.gu-art-hero { max-width: 820px; margin: 0; background: #002F6C; }
.gu-art-hero img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }

.gu-takeaways { padding: clamp(26px, 3.5vw, 38px) clamp(20px, 3vw, 48px) 0; line-height: normal; }
.gu-takeaways__box { max-width: 720px; box-sizing: border-box; background: #F7F5F0; border-left: 3px solid #64A70B; padding: clamp(20px, 2.6vw, 28px); }
.gu-takeaways__label { margin: 0; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #002F6C; }
.gu-takeaways__list { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.gu-takeaways__list li { display: flex; gap: 12px; align-items: flex-start; margin: 0; font-size: 16.5px; line-height: 1.55; color: #002F6C; font-weight: 500; }
.gu-takeaways__list li::before { content: ""; width: 6px; height: 6px; margin-top: 9px; flex-shrink: 0; background: #64A70B; }
/* Article bullets: the marker is absolutely positioned, not a flex sibling.
   As a flex container the list item turned every bold run and link inside it
   into its own flex item, so text could not wrap through them and bullets
   with links overflowed phone screens (5 Nov 2026 final audit). */
.gu-art-body ul:not(.gu-related-links) > li::before { content: ""; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; background: #64A70B; }

.gu-art-body { padding: clamp(28px, 4vw, 44px) clamp(20px, 3vw, 48px) clamp(36px, 5vw, 56px); line-height: normal; }
.gu-art-body > * { max-width: 720px; margin-block: 22px 0; }
.gu-art-body > p { margin-top: 14px; font-size: 17.5px; line-height: 1.68; color: #3F3F3A; text-wrap: pretty; }
.gu-art-body > :first-child { margin-top: 14px; }
.gu-art-body p a { color: #002F6C; font-weight: 600; border-bottom: 1px solid #64A70B; }
.gu-art-body > h2 { margin-top: 32px; font-size: clamp(21px, 2.6vw, 27px); line-height: 1.2; letter-spacing: -.025em; }
.gu-art-body > h3 { margin-top: 24px; font-size: clamp(17px, 2vw, 20px); line-height: 1.3; letter-spacing: -.015em; }
.gu-art-body > ul:not(.gu-related-links) { list-style: none; margin-top: 16px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.gu-art-body > ul:not(.gu-related-links) > li { position: relative; display: block; padding-left: 18px; margin: 0; font-size: 17px; line-height: 1.6; color: #3F3F3A; overflow-wrap: anywhere; }
.gu-art-body > .gu-note { margin-top: 26px; background: #002F6C; padding: clamp(20px, 2.4vw, 26px); font-size: 17px; line-height: 1.6; color: #fff; box-sizing: border-box; }
.gu-art-body > .gu-note a { color: #fff; border-bottom-color: #A6D95C; }
.gu-art-body > .gu-related-links {
	list-style: none;
	margin-top: 26px;
	padding: 20px 0 0;
	border-top: 1px solid #E6E1D6;
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	font-size: 16px;
	font-weight: 600;
}
.gu-art-body > .gu-related-links li { margin: 0; }
.gu-art-body > .gu-related-links a { color: #002F6C; }
.gu-art-body > .gu-related-links a::after { content: " →"; }

/* Images added in an article: full measure, caption as a small mono line. */
.gu-art-body > .wp-block-image { margin-top: 26px; }
.gu-art-body > .wp-block-image img { display: block; width: 100%; height: auto; }
.gu-art-body > .wp-block-image.alignleft,
.gu-art-body > .wp-block-image.alignright,
.gu-art-body > .wp-block-image.aligncenter { float: none; margin-left: 0; margin-right: 0; }
.gu-art-body > .wp-block-image :is(.alignleft, .alignright, .aligncenter) { float: none; margin: 0; }
.gu-art-body .wp-block-image figcaption,
.gu-art-body .wp-block-table figcaption {
	margin: 10px 0 0;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11.5px;
	line-height: 1.5;
	letter-spacing: .02em;
	text-align: left;
	color: #6B6455;
}

/* Numbered lists: the approved numbered-step marker (navy square, white figure). */
/* The list's own counter is used, so "Start value" and "Reverse order" still work. */
.gu-art-body > ol { list-style: none; margin-top: 22px; padding: 0; }
.gu-art-body > ol > li {
	position: relative;
	min-height: 36px;
	margin: 14px 0 0;
	padding: 5px 0 0 52px;
	list-style: none;
	font-size: 17px;
	line-height: 1.6;
	color: #3F3F3A;
}
.gu-art-body > ol > li:first-child { margin-top: 0; }
.gu-art-body > ol > li::before {
	content: counter(list-item);
	position: absolute;
	left: 0;
	top: 0;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #002F6C;
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
}
.gu-art-body > :is(ul, ol) li a { color: #002F6C; font-weight: 600; border-bottom: 1px solid #64A70B; }
.gu-art-body > :is(ul, ol) li :is(ul, ol) { margin: 8px 0 0; padding-left: 1.2em; }

/* Quotes: the approved pull quote (green rule, navy text, mono citation). */
.gu-art-body > .wp-block-quote,
.gu-art-body > blockquote {
	margin: 30px 0 0;
	padding: 6px 0 6px 22px;
	border: 0;
	border-left: 3px solid #64A70B;
	background: none;
}
.gu-art-body > .wp-block-quote > p,
.gu-art-body > blockquote > p {
	margin: 0;
	font-size: clamp(20px, 2.3vw, 25px);
	line-height: 1.35;
	font-weight: 600;
	letter-spacing: -.02em;
	color: #002F6C;
	font-style: normal;
}
.gu-art-body > .wp-block-quote > p + p { margin-top: 12px; }
.gu-art-body > .wp-block-quote cite {
	display: block;
	margin-top: 10px;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11px;
	font-style: normal;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #6B6455;
}

/* Tables: the approved comparison table (navy head, hairline rows). Cells wrap
   on phones as in the prototype; a table too wide even then scrolls inside its
   own box instead of widening the page. */
.gu-art-body > .wp-block-table { margin-top: 22px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.gu-art-body > .wp-block-table table { width: 100%; border-collapse: collapse; border: 1px solid #D5CFC2; table-layout: auto; }
@media (max-width: 480px) {
	.gu-art-body > .wp-block-table :is(th, td) { padding: 12px 10px; font-size: 14.5px; overflow-wrap: break-word; }
}
.gu-art-body > .wp-block-table :is(th, td) {
	padding: 14px 16px;
	border: 0;
	border-top: 1px solid #E6E1D6;
	text-align: left;
	vertical-align: top;
	font-size: 15.5px;
	line-height: 1.5;
	color: #3F3F3A;
}
.gu-art-body > .wp-block-table thead th,
.gu-art-body > .wp-block-table thead td {
	padding-top: 13px;
	padding-bottom: 13px;
	border-top: 0;
	background: #002F6C;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 10.5px;
	font-weight: 400;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #A6D95C;
}
.gu-art-body > .wp-block-table :is(thead, tfoot) { border: 0; }
.gu-art-body > .wp-block-table tbody tr > :first-child { font-weight: 700; color: #002F6C; }
.gu-art-body > .wp-block-table tfoot :is(th, td) { font-weight: 600; background: #F7F5F0; }
.gu-art-body > .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: #F7F5F0; }
.gu-art-body > .wp-block-table.is-style-stripes { border-bottom: 0; }

/* Smaller headings and dividers someone may add. */
.gu-art-body > h4 { margin-top: 22px; font-size: 17.5px; line-height: 1.35; letter-spacing: -.01em; }
.gu-art-body > hr { margin-top: 32px; border: 0; border-top: 1px solid #E6E1D6; }

.gu-related { padding: 0 clamp(20px, 3vw, 48px) clamp(36px, 5vw, 56px); line-height: normal; }
.gu-related__inner { border-top: 1px solid #E6E1D6; padding-top: clamp(26px, 3.5vw, 36px); container-type: inline-size; }
.gu-related__inner > * { margin: 0; }
.gu-related__label { margin-bottom: 18px !important; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #6B6455; }
/* Four newest (client decision 21): 4 across, 2 x 2, or 1, never 3 + 1, as the
   homepage Insights row. Card styling is the approved related card. */
.gu-related__cards { list-style: none; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
@container (min-width: 524px) { .gu-related__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 1072px) { .gu-related__cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.gu-related__cards > li { display: flex; margin: 0; min-width: 0; }
.gu-related__back { margin-top: 26px !important; }
.gu-related__back a { font-size: 16px; font-weight: 600; color: #002F6C; border-bottom: 2px solid #64A70B; padding-bottom: 3px; }

/* FAQ page */
.gu-faq-index { margin-top: 26px !important; }
/* Balanced like the prototype (min 150px): 5 across, then 3 + 2, 2 + 2 + 1, 1. */
.gu-faq-index { container-type: inline-size; }
.gu-faq-index ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.gu-faq-index li { margin: 0; flex: 0 0 100%; }
@container (min-width: 310px) { .gu-faq-index li { flex-basis: calc((100% - 10px) / 2); } }
@container (min-width: 470px) { .gu-faq-index li { flex-basis: calc((100% - 20px) / 3); } }
@container (min-width: 790px) { .gu-faq-index li { flex-basis: calc((100% - 40px) / 5); } }
.gu-faq-index li > a { height: 100%; }
.gu-faq-index a {
	border: 1px solid #D5CFC2;
	background: #fff;
	padding: 14px 18px;
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	box-sizing: border-box;
}
.gu-faq-index a:hover { border-color: #002F6C; background: #FBFAF7; }
.gu-faq-index .gu-icon { font-size: 22px; line-height: 1; color: #002F6C; }
.gu-faq-index__label { font-size: 15px; font-weight: 600; color: #002F6C; }
.gu-faq-index__count { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11px; color: #6B6455; }
.gu-faq-list { padding: clamp(36px, 5vw, 56px) clamp(20px, 3vw, 48px) 0; max-width: 1000px; margin: 0 auto !important; box-sizing: content-box; line-height: normal; }
.gu-faq-list > * { margin-block: 0; }
.gu-faq-cat { margin-bottom: clamp(34px, 4vw, 52px) !important; scroll-margin-top: 100px; }
.gu-faq-cat > * { margin: 0; }
.gu-faq-cat__head { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 2px solid #002F6C; }
.gu-faq-cat__head > * { margin: 0 !important; }
.gu-faq-cat__head .gu-icon { font-size: 26px; line-height: 1; color: #002F6C; }
.gu-faq-cat__head h2 { font-size: clamp(22px, 2.8vw, 29px); letter-spacing: -.03em; line-height: normal; }
.gu-faq-list .wp-block-details.gu-faq summary { max-width: none; padding: 20px 4px; font-size: clamp(16.5px, 1.8vw, 19px); }
.gu-faq-list .wp-block-details.gu-faq summary::after { font-size: 22px; }
.gu-faq-list .wp-block-details.gu-faq > :not(summary) { padding: 0 44px 22px 4px; font-size: 16.5px; max-width: 760px; }
.gu-faq-closer-sec { padding: 0 clamp(20px, 3vw, 48px) clamp(44px, 5vw, 64px); max-width: 1000px; margin: 0 auto !important; box-sizing: content-box; }
.gu-faq-closer-sec > .gu-closer { padding: clamp(30px, 4vw, 48px); }
.gu-faq-closer-sec .gu-closer__title { font-size: clamp(25px, 3.2vw, 34px); }

/* FAQ questions are h3 headings inside the summary; they keep its type. */
.wp-block-details.gu-faq summary::-webkit-details-marker { display: none; }
.gu-faq__q { margin: 0; font: inherit; color: inherit; letter-spacing: inherit; line-height: inherit; }

@media (min-width: 1800px) {
	.gu-workgrid__bar,
	.gu-workgrid__grid,
	.gu-ins-head,
	.gu-ins-feature,
	.gu-subscribe-sec,
	.gu-ins-topics,
	.gu-ins-grid,
	.gu-art-head,
	.gu-art-hero-sec,
	.gu-takeaways,
	.gu-art-body,
	.gu-related {
		padding-left: max(48px, calc((100% - 1720px) / 2));
		padding-right: max(48px, calc((100% - 1720px) / 2));
	}
}

/* ==========================================================================
   Our Services hub and service pages (approved source lines 608-924)
   ========================================================================== */

:is(.gu-svc-top, .gu-svc-intro__cols, .gu-svc-head, .gu-svc-tiles, .gu-svc-tile, .gu-svc-build__items, .gu-svc-why, .gu-svc-faq__inner,
	.gu-svc-cta__row, .gu-hub-cards, .gu-hub-card, .gu-hub-band, .gu-hub-band__text, .gu-svc-hero .wp-block-cover__inner-container) > * { margin-block: 0; }
:is(.gu-svc-intro, .gu-svc-offer, .gu-svc-build, .gu-svc-apps, .gu-svc-why, .gu-svc-faq, .gu-svc-cta, .gu-hub-svcs, .gu-hub-band, .gu-hub-work, .gu-hub-insights) {
	line-height: normal;
}
:is(.gu-svc-intro, .gu-svc-offer, .gu-svc-build, .gu-svc-apps, .gu-svc-why, .gu-svc-faq, .gu-svc-cta, .gu-hub-svcs, .gu-hub-work, .gu-hub-insights) :is(h2, h3, p) { margin: 0; }

/* Mono text links with a green rule (SEE OUR WORK, Our Story) */
.gu-monolinks { display: flex; flex-wrap: wrap; gap: 14px 28px; }
.gu-monolinks a {
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 10.5px;
	letter-spacing: .16em;
	color: #002F6C;
	border-bottom: 2px solid #64A70B;
	padding-bottom: 4px;
}
.gu-monolinks--on-dark a { color: #A6D95C; }
.gu-monolinks--on-dark a:hover { color: #fff; }
.gu-monolinks--stack { flex-direction: column; align-items: flex-start; gap: 10px; }
.gu-svc-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; }
.gu-svc-head h2,
.gu-svc-build h2,
.gu-svc-apps h2,
.gu-svc-why h2,
.gu-svc-faq h2 { font-size: clamp(26px, 3.1vw, 38px); letter-spacing: -.04em; line-height: 1.06; }

/* Hero: photo with the approved navy shading, colour bar, title and buttons */
.gu-svc-top { display: flex; flex-direction: column; }
/* The hero grows so hero + intro fill the first screen (header and breadcrumb
   strip measure about 167px, as in the prototype). */
.gu-svc-top:not(.gu-svc-top--hub) { min-height: min(calc(100vh - 167px), 1400px); }
.wp-block-cover.gu-svc-hero {
	flex: 1 1 auto;
	min-height: clamp(320px, 34vw, 460px);
	padding: 0;
	align-items: stretch;
	background: #002A4E;
}
.gu-svc-top--hub .wp-block-cover.gu-svc-hero { height: clamp(320px, 34vw, 460px); min-height: 0; flex: none; }
.gu-svc-hero .wp-block-cover__background {
	opacity: 1 !important;
	background:
		linear-gradient(180deg, rgba(2, 40, 77, .22) 0%, rgba(2, 40, 77, 0) 45%, rgba(2, 40, 77, .34) 100%),
		linear-gradient(90deg, rgba(2, 40, 77, .95) 0%, rgba(2, 40, 77, .9) 38%, rgba(2, 40, 77, .72) 68%, rgba(2, 40, 77, .58) 100%) !important;
}
.gu-svc-hero .wp-block-cover__inner-container {
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: clamp(28px, 4vw, 64px) clamp(20px, 3vw, 48px);
	box-sizing: border-box;
	line-height: normal;
}
.gu-svc-hero .gu-pressbar { width: min(520px, 100%); }
.gu-svc-hero .gu-svc-hero__title {
	margin-top: 22px !important;
	font-size: clamp(40px, 7vw, 104px);
	line-height: 1;
	letter-spacing: -.045em;
	color: #fff;
	max-width: 14ch;
}
.gu-svc-hero .gu-actions { margin-top: 28px !important; }
.gu-svc-hero .gu-actions .wp-block-button__link { padding: 16px 28px; }
.gu-svc-hero .gu-actions .is-style-gu-outline-light .wp-block-button__link { padding: 15px 27px; border-color: #A9C6DD; }
.gu-svc-hero :focus-visible { outline-color: #A6D95C; }

/* Intro: two-line heading, two paragraphs side by side */
.gu-svc-intro { padding: clamp(40px, 4.4vw, 68px) clamp(20px, 3vw, 48px); }
.gu-svc-intro .gu-svc-intro__title {
	margin: 0 0 clamp(26px, 3vw, 44px);
	font-size: clamp(30px, 3.9vw, 72px);
	letter-spacing: -.04em;
	font-weight: 800;
	line-height: 1.05;
}
.gu-svc-intro__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr)); column-gap: clamp(36px, 4.4vw, 80px); align-items: start; }
.gu-svc-intro .gu-svc-intro__cols > p { margin: 0 0 16px; max-width: 64ch; font-size: clamp(16.5px, 1.4vw, 18px); line-height: 1.65; color: #4A4A44; }
:is(.gu-svc-intro__cols, .gu-svc-why__copy, .gu-svc-faq) a:not(.wp-block-button__link) { color: #002F6C; font-weight: 600; border-bottom: 1px solid #64A70B; }
.gu-svc-faq .gu-monolinks a { font-weight: 400; border-bottom-width: 2px; }

/* What we print: photo tiles (6 -> 3 x 2 / 2 x 3 / 1; 3 -> 3 / 1) */
.gu-svc-offer { padding: clamp(40px, 4.6vw, 72px) clamp(20px, 3vw, 48px); background: #F7F5F0; border-top: 1px solid #E6E1D6; border-bottom: 1px solid #E6E1D6; container-type: inline-size; }
.gu-svc-tiles { margin-top: clamp(26px, 3vw, 40px) !important; display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(24px, 2.6vw, 38px) clamp(20px, 2.2vw, 30px); }
@container (min-width: 590px) { .gu-svc-tiles:not(.gu-svc-tiles--3) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 900px) { .gu-svc-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } .gu-svc-tiles:not(.gu-svc-tiles--3) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gu-svc-tile { display: flex; flex-direction: column; }
.wp-block-cover.gu-svc-tile__img { width: 100%; aspect-ratio: 21 / 10; max-height: 420px; min-height: 0; padding: 0; background: #002F6C; }
.gu-svc-tile__img .wp-block-cover__inner-container,
.gu-hub-card__img .wp-block-cover__inner-container,
.gu-hub-band__img .wp-block-cover__inner-container { display: none; }
.gu-svc-tile__text { border-top: 2px solid #002F6C; margin-top: 15px !important; padding-top: 13px; }
.gu-svc-tile__text h3 { font-size: clamp(18px, 1.7vw, 22px); font-weight: 700; letter-spacing: -.03em; line-height: 1.18; }
.gu-svc-tile__copy { margin-top: 7px !important; font-size: 14.5px; line-height: 1.55; color: #4A4A44; }

/* Built for...: four decisions (4 / 2 x 2 / 1) */
.gu-svc-build { padding: clamp(40px, 4.6vw, 72px) clamp(20px, 3vw, 48px); container-type: inline-size; }
.gu-svc-build__lead { margin-top: 14px !important; font-size: clamp(16.5px, 1.4vw, 18px); line-height: 1.6; color: #4A4A44; max-width: 56ch; }
.gu-svc-build__items { margin-top: clamp(24px, 2.8vw, 38px) !important; display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(20px, 2.2vw, 32px); }
@container (min-width: 452px) { .gu-svc-build__items { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 936px) { .gu-svc-build__items { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.gu-svc-build__item { border-top: 2px solid #64A70B; padding-top: 14px; }
.gu-svc-build__label { font-size: clamp(17px, 1.5vw, 20px); font-weight: 700; letter-spacing: -.025em; color: #002F6C; }
.gu-svc-build__copy { margin-top: 7px !important; font-size: 14.5px; line-height: 1.55; color: #4A4A44; }

/* Applications: navy ruled list (6 -> 3 x 2 / 2 x 3 / 1) */
.gu-svc-apps { padding: clamp(40px, 4.6vw, 72px) clamp(20px, 3vw, 48px); background: #002F6C; container-type: inline-size; }
.gu-svc-apps h2 { color: #fff; }
.gu-svc-apps__list { list-style: none; margin: clamp(22px, 2.6vw, 34px) 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 clamp(24px, 2.6vw, 44px); }
@container (min-width: 504px) { .gu-svc-apps__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 778px) { .gu-svc-apps__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gu-svc-apps__list li { margin: 0; border-top: 1px solid #1D5C8F; padding: clamp(13px, 1.3vw, 17px) 0; font-size: clamp(17px, 1.6vw, 21px); font-weight: 700; letter-spacing: -.03em; color: #fff; }

/* More Than a Printer */
.gu-svc-why { padding: clamp(40px, 4.6vw, 72px) clamp(20px, 3vw, 48px); background: #F7F5F0; border-bottom: 1px solid #E6E1D6; display: flex; flex-wrap: wrap; gap: clamp(24px, 3.4vw, 60px); align-items: flex-start; }
.gu-svc-why__text { flex: 1 1 340px; min-width: min(100%, 300px); }
.gu-svc-why__copy { margin-top: 14px !important; font-size: clamp(16.5px, 1.4vw, 18px); line-height: 1.62; color: #4A4A44; max-width: 44ch; }
.gu-svc-why__text .gu-monolinks { margin-top: 22px !important; }
.gu-svc-why__list { flex: 1 1 420px; min-width: min(100%, 300px); list-style: none; margin: 0; padding: 0; }
.gu-svc-why__list li { margin: 0; border-top: 1px solid #D5CFC2; padding: 14px 0 16px; font-size: clamp(18px, 1.7vw, 22px); font-weight: 700; letter-spacing: -.03em; color: #002F6C; }
.gu-svc-why__list li:first-child { border-top: 2px solid #64A70B; }
.gu-svc-why__list li:last-child { border-bottom: 1px solid #D5CFC2; }

/* Common Questions: sticky rail beside the accordion */
.gu-svc-faq { padding: clamp(40px, 4.6vw, 72px) clamp(20px, 3vw, 48px); }
.gu-svc-faq__inner { display: flex; flex-wrap: wrap; gap: clamp(24px, 3.4vw, 60px); align-items: flex-start; max-width: 1280px; }
.gu-svc-faq__rail { flex: 1 1 280px; min-width: min(100%, 260px); position: sticky; top: 110px; }
.admin-bar .gu-svc-faq__rail { top: 142px; }
/* Once a rail (service and city pages) stacks above its accordion it must scroll
   away with the page; sticky there pinned it over the questions (28 Oct 2026
   mobile review). Placed after both rail rules so it wins. */
@media (max-width: 860px) {
	.gu-svc-faq__rail, .gu-city-faq__rail { position: static; }
}
.gu-svc-faq__rail .gu-monolinks { margin-top: 18px !important; }
.gu-svc-faq__list { flex: 1.6 1 440px; min-width: min(100%, 320px); }
.gu-svc-faq__list > * { margin: 0 !important; }
.gu-svc-faq .wp-block-details.gu-faq summary { cursor: pointer; }
.gu-svc-faq .wp-block-details.gu-faq summary::after { font-size: 22px; }
.gu-svc-faq .wp-block-details.gu-faq > :not(summary) { padding: 0 4px 20px; line-height: 1.65 !important; max-width: 64ch; }

/* Closing call to action: navy (service pages) or off-white (hub) */
.gu-svc-cta { padding: clamp(38px, 4.2vw, 62px) clamp(20px, 3vw, 48px); background: #002F6C; }
.gu-svc-cta--light { padding: clamp(40px, 4.4vw, 64px) clamp(20px, 3vw, 48px); background: #F7F5F0; border-top: 1px solid #E6E1D6; }
.gu-svc-cta .gu-pressbar { margin: 0 0 24px; }
.gu-svc-cta__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 28px; }
.gu-svc-cta h2 { font-size: clamp(27px, 3.4vw, 42px); letter-spacing: -.04em; line-height: 1.04; color: #fff; }
.gu-svc-cta--light h2 { font-size: clamp(36px, 5.2vw, 68px); letter-spacing: -.045em; line-height: 1; color: #002F6C; }
.gu-svc-cta__line { margin-top: 14px !important; font-size: 17px; line-height: 1.6; color: #CFE0EE; max-width: 52ch; }
.gu-svc-cta .gu-actions .wp-block-button__link { padding: 16px 28px; }
.gu-svc-cta .gu-actions :is(.is-style-gu-outline, .is-style-gu-outline-light) .wp-block-button__link { padding: 15px 27px; }
.gu-svc-cta--navy .is-style-gu-outline-light .wp-block-button__link { border-color: #A9C6DD; }
.gu-svc-cta--navy :focus-visible { outline-color: #A6D95C; }

/* Hub: service cards (8 -> 4 x 2 / 2 x 4 / 1) */
.gu-hub-svcs { padding: clamp(44px, 5vw, 78px) clamp(20px, 3vw, 48px); container-type: inline-size; }
.gu-hub-svcs > h2 { font-size: clamp(38px, 5vw, 68px); letter-spacing: -.045em; line-height: 1; }
.gu-hub-cards { margin-top: clamp(28px, 3.2vw, 44px) !important; display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(24px, 2.6vw, 40px) clamp(20px, 2.2vw, 32px); }
@container (min-width: 572px) { .gu-hub-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 1176px) { .gu-hub-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.gu-hub-card { position: relative; display: flex; flex-direction: column; }
.wp-block-cover.gu-hub-card__img { width: 100%; height: clamp(190px, 18vw, 250px); min-height: 0; padding: 0; background: #002F6C; }
.gu-hub-card__text { border-top: 2px solid #002F6C; margin-top: 16px !important; padding-top: 14px; }
.gu-hub-card__text > * { margin: 0; }
.gu-hub-card__title { font-size: clamp(19px, 1.8vw, 24px); font-weight: 700; letter-spacing: -.03em; line-height: 1.15; }
.gu-hub-card__title a { color: #002F6C; }
/* The whole card is the link (from its title). */
.gu-hub-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.gu-hub-card__title a:focus-visible { outline: none; }
.gu-hub-card:has(a:focus-visible) { outline: 2px solid #002F6C; outline-offset: 4px; }
.gu-hub-card__desc {
	margin-top: 8px !important;
	font-size: 15px;
	line-height: 1.55;
	color: #4A4A44;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 46.5px;
}
.gu-hub-card__more { margin-top: 12px !important; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 10.5px; letter-spacing: .14em; color: #002F6C; }

/* Hub: navy band with team photo */
.gu-hub-band { display: flex; flex-wrap: wrap; align-items: stretch; background: #002F6C; }
/* The photo keeps its own 3:2 shape (as the prototype image does): full width
   above the text when stacked, at least that tall beside it. */
.wp-block-cover.gu-hub-band__img { flex: 1 1 400px; min-width: min(100%, 280px); min-height: clamp(260px, 28vw, 420px); aspect-ratio: 1600 / 1067; padding: 0; }
.gu-hub-band__text { flex: 1 1 460px; min-width: min(100%, 320px); padding: clamp(34px, 4vw, 66px) clamp(20px, 3vw, 48px); display: flex; flex-direction: column; justify-content: center; }
.gu-hub-band__text h2 { margin-top: 16px !important; font-size: clamp(26px, 3.1vw, 40px); line-height: 1.06; letter-spacing: -.04em; color: #fff; }
.gu-hub-band__text > p:not(.gu-eyebrow):not(.gu-monolinks) { margin-top: 14px !important; font-size: clamp(16px, 1.35vw, 18px); line-height: 1.65; color: #CFE0EE; max-width: 50ch; }
.gu-hub-band .gu-hub-band__text > h2 + p:not(.gu-monolinks) { margin-top: 20px !important; }
.gu-hub-band__text .gu-monolinks { margin-top: 26px !important; }
.gu-hub-band :focus-visible { outline-color: #A6D95C; }

/* Hub: From Our Presses (6 -> 3 x 2 / 2 x 3 / 1) and Insights */
.gu-hub-work { padding: clamp(44px, 5vw, 78px) clamp(20px, 3vw, 48px); background: #F7F5F0; border-top: 1px solid #E6E1D6; border-bottom: 1px solid #E6E1D6; container-type: inline-size; }
.gu-hub-insights { padding: clamp(44px, 5vw, 78px) clamp(20px, 3vw, 48px); container-type: inline-size; }
:is(.gu-hub-work, .gu-hub-insights) .gu-svc-head h2 { font-size: clamp(36px, 5.2vw, 68px); letter-spacing: -.045em; line-height: 1; }
.gu-worktiles { list-style: none; margin: clamp(26px, 3vw, 38px) 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(18px, 2vw, 26px); }
@container (min-width: 546px) { .gu-worktiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 832px) { .gu-worktiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gu-worktiles > li { margin: 0; }
.gu-worktile { display: block; }
.gu-worktile__img { display: block; width: 100%; height: clamp(200px, 20vw, 280px); object-fit: cover; background: #002F6C; }
.gu-worktile__meta { display: block; padding-top: 12px; }
.gu-worktile__cat { display: block; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 10px; letter-spacing: .14em; color: #002F6C; }
.gu-worktile__title { display: block; margin-top: 6px; font-size: 17px; font-weight: 700; letter-spacing: -.025em; line-height: 1.25; color: #002F6C; }
.gu-worktile__spec { display: block; margin-top: 6px; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11px; color: #6B6455; }
.gu-hub-insights .gu-insight-cards { margin-top: clamp(26px, 3vw, 38px); }

@media (min-width: 1800px) {
	.gu-svc-intro,
	.gu-svc-offer,
	.gu-svc-build,
	.gu-svc-apps,
	.gu-svc-why,
	.gu-svc-faq,
	.gu-svc-cta,
	.gu-hub-svcs,
	.gu-hub-work,
	.gu-hub-insights,
	.gu-svc-hero .wp-block-cover__inner-container {
		padding-left: max(48px, calc((100% - 1720px) / 2));
		padding-right: max(48px, calc((100% - 1720px) / 2));
	}
}
/* ==========================================================================
   Industries, Client Portal, Request a Quote, Contact, Upload Files,
   Thank You (approved source lines 1516-1735, 2369-2403)
   ========================================================================== */

:is(.gu-page-head, .gu-ind-head, .gu-ind-sec, .gu-portal-sec, .gu-portal-help-sec, .gu-quote-sec, .gu-contact-sec, .gu-boxcta-sec, .gu-upload-sec, .gu-thanks) { line-height: normal; }
:is(.gu-page-head, .gu-ind-head, .gu-ind-tiles, .gu-ind-tile, .gu-ind-tile__text, .gu-portal-tiles, .gu-portal-tile, .gu-portal-help, .gu-portal-help__col,
	.gu-quote-sec, .gu-quote-form, .gu-aside, .gu-contact-cards, .gu-contact-card, .gu-boxcta, .gu-boxcta__text, .gu-upload-sec, .gu-thanks) > * { margin-block: 0; }

/* Shared small parts */
.gu-label { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #6B6455; }
.gu-lines { font-size: 15px; line-height: 1.75; color: #4A4A44; }
.gu-lines a { color: #002F6C; }
.gu-lines strong { font-weight: 600; }
.gu-textlink a { display: inline-block; font-size: 15px; font-weight: 600; color: #002F6C; border-bottom: 2px solid #64A70B; padding-bottom: 3px; }

/* Page heads */
.gu-page-head > * { margin: 0; }
.gu-page-head__eyebrow { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: #002F6C; }
.gu-page-head--navy { background: #002F6C; padding: clamp(40px, 5vw, 56px) clamp(20px, 3vw, 48px); }
.gu-page-head--navy .gu-page-head__eyebrow { color: #A6D95C; }
.gu-page-head--navy h1 { margin-top: 14px !important; font-size: clamp(36px, 5vw, 52px); letter-spacing: -.04em; line-height: 1; color: #fff; max-width: 700px; }
.gu-page-head--navy .gu-page-head__lead { margin-top: 14px !important; font-size: 18px; color: #A9C6DD; max-width: 560px; }
.gu-page-head--navy :focus-visible { outline-color: #A6D95C; }
.gu-page-head--center { padding: clamp(44px, 6vw, 64px) clamp(20px, 3vw, 40px); text-align: center; }
.gu-page-head--center h1 { margin: 16px auto 0 !important; font-size: clamp(38px, 5.5vw, 56px); line-height: 1.08; max-width: 760px; }
.gu-page-head--off { background: #F7F5F0; border-bottom: 1px solid #E6E1D6; padding: clamp(44px, 6vw, 60px) clamp(20px, 3vw, 48px); }
.gu-page-head--off h1 { margin-top: 14px !important; font-size: clamp(38px, 5vw, 52px); letter-spacing: -.04em; line-height: 1; }
.gu-page-head--off .gu-page-head__lead { margin-top: 14px !important; font-size: 19px; color: #4A4A44; max-width: 560px; }
.gu-page-head--upload h1 { font-size: clamp(36px, 5vw, 50px); }
.gu-page-head--upload .gu-page-head__lead { max-width: 600px; }
.gu-page-head--upload .gu-page-head__eyebrow { margin-top: 18px !important; }
.gu-page-head__back a { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: #6B6455; }
.gu-page-head__back a:hover { color: #002F6C; }

/* Industries We Serve (8 -> 4 x 2 / 2 x 4 / 1) */
.gu-ind-head { padding: clamp(34px, 4vw, 60px) clamp(20px, 3vw, 48px) clamp(30px, 3.4vw, 44px); background: #F7F5F0; border-bottom: 1px solid #E6E1D6; }
.gu-ind-head h1 { font-size: clamp(40px, 6.4vw, 74px); line-height: .96; letter-spacing: -.045em; }
.gu-ind-head__lead { margin-top: 18px !important; font-size: clamp(17px, 1.5vw, 20px); line-height: 1.55; color: #4A4A44; max-width: 60ch; }
.gu-ind-sec { padding: clamp(36px, 4.2vw, 60px) clamp(20px, 3vw, 48px); container-type: inline-size; }
.gu-ind-tiles { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(18px, 2vw, 28px); }
@container (min-width: 508px) { .gu-ind-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 1044px) { .gu-ind-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.gu-ind-tile { position: relative; display: flex; flex-direction: column; }
.wp-block-cover.gu-ind-tile__img { width: 100%; height: clamp(190px, 17vw, 240px); min-height: 0; padding: 0; background: #002F6C; }
.gu-ind-tile__img .wp-block-cover__inner-container { display: none; }
.gu-ind-tile__text { border-top: 2px solid #002F6C; margin-top: 14px !important; padding-top: 12px; }
.gu-ind-tile__text > * { margin: 0; }
.gu-ind-tile__name { font-size: clamp(18px, 1.7vw, 22px); font-weight: 700; letter-spacing: -.025em; line-height: 1.2; }
.gu-ind-tile__name a { color: #002F6C; }
.gu-ind-tile__copy { margin-top: 7px !important; font-size: 14.5px; line-height: 1.55; color: #4A4A44; }
/* Whole tile is the link (from its name). */
:is(.gu-ind-tile__name, .gu-portal-tile__title) a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
:is(.gu-ind-tile__name, .gu-portal-tile__title) a:focus-visible { outline: none; }
:is(.gu-ind-tile, .gu-portal-tile):has(a:focus-visible) { outline: 2px solid #002F6C; outline-offset: 4px; }
.gu-svc-cta--plain { padding: clamp(36px, 4.2vw, 56px) clamp(20px, 3vw, 48px); background: #F7F5F0; border-top: 1px solid #E6E1D6; }
.gu-svc-cta--plain h2 { font-size: clamp(26px, 3.4vw, 40px); letter-spacing: -.04em; line-height: 1.04; color: #002F6C; }
.gu-svc-cta--plain .gu-svc-cta__line { color: #4A4A44; }

/* Client Portal: four tiles (2 x 2 / 1) and the help box */
.gu-portal-sec { padding: clamp(36px, 5vw, 56px) clamp(20px, 3vw, 40px) 20px; background: #F7F5F0; container-type: inline-size; }
.gu-portal-tiles { display: grid; grid-template-columns: minmax(0, 512px); justify-content: center; gap: 20px; max-width: 1080px; margin: 0 auto; }
@container (min-width: 660px) { .gu-portal-tiles { grid-template-columns: repeat(2, minmax(0, 512px)); } }
.gu-portal-tile { position: relative; background: #fff; border: 1px solid #D5CFC2; padding: 32px; display: flex; flex-direction: column; gap: 12px; min-height: 250px; box-sizing: border-box; }
.gu-portal-tile:hover { border-color: #002F6C; background: #FBFAF7; }
.gu-portal-tile .gu-icon { font-size: 40px; line-height: 1; color: #002F6C; }
.gu-portal-tile__title { margin-top: 4px !important; font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.gu-portal-tile__title a { color: #002F6C; }
.gu-portal-tile__copy { font-size: 15.5px; line-height: 1.5; color: #4A4A44; }
.gu-portal-tile__more { margin-top: auto !important; align-self: flex-start; font-size: 15px; font-weight: 600; color: #002F6C; border-bottom: 2px solid #64A70B; padding-bottom: 3px; }
.gu-portal-logo { min-height: 250px; display: flex; align-items: center; justify-content: center; padding: 40px; box-sizing: border-box; }
.gu-portal-logo .wp-block-image { margin: 0; display: flex; justify-content: center; width: 100%; }
.gu-portal-logo img { width: auto; max-width: 46%; max-height: 150px; height: auto; display: block; }
.gu-portal-help-sec { padding: 20px clamp(20px, 3vw, 40px) clamp(40px, 5vw, 64px); background: #F7F5F0; }
.gu-portal-help { max-width: 1080px; margin: 0 auto !important; background: #fff; border: 1px solid #D5CFC2; display: flex; flex-wrap: wrap; justify-content: center; }
.gu-portal-help__col { flex: 1 1 260px; max-width: 520px; padding: 32px; box-sizing: border-box; }
.gu-portal-help__col:first-child { max-width: 416px; border-right: 1px solid #E6E1D6; }
.gu-portal-help__col > * { margin: 0; }
.gu-portal-help__title { margin-top: 10px !important; font-size: 21px; font-weight: 700; letter-spacing: -.02em; color: #002F6C; }
.gu-portal-help__copy { margin-top: 8px !important; font-size: 15px; line-height: 1.5; color: #4A4A44; }
.gu-portal-help .gu-textlink { margin-top: 14px !important; }
.gu-portal-help .gu-lines { margin-top: 10px !important; }

/* Request a Quote: form (HubSpot) beside the "Prefer to talk?" panel */
.gu-quote-sec { padding: clamp(36px, 5vw, 56px) clamp(20px, 3vw, 48px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(370px, 100%), 1fr)); gap: clamp(28px, 4vw, 48px); align-items: start; }
.gu-quote-form .gu-actions { margin-top: 22px !important; }
.gu-aside { background: #F7F5F0; border: 1px solid #E6E1D6; padding: clamp(24px, 3vw, 32px); }
.gu-aside > * { margin: 0; }
.gu-aside__title { margin-top: 10px !important; font-size: 22px; font-weight: 700; letter-spacing: -.02em; color: #002F6C; }
.gu-aside > .gu-aside__title:first-child { margin-top: 0 !important; }
.gu-aside .gu-lines { margin-top: 10px !important; font-size: 16px; line-height: 1.7; }
.gu-aside .gu-aside__rule { margin: 22px 0 !important; border: 0; border-top: 1px solid #E6E1D6; opacity: 1; }
.gu-aside__copy { font-size: 15px; line-height: 1.6; color: #4A4A44; }
.gu-aside__copy a { color: #002F6C; font-weight: 600; }

/* Contact: three cards (3 / 1) and the box call to action */
.gu-contact-sec { padding: clamp(36px, 5vw, 56px) clamp(20px, 3vw, 48px); container-type: inline-size; }
.gu-contact-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
@container (min-width: 940px) { .gu-contact-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gu-contact-card { border: 1px solid #D5CFC2; padding: 32px; }
.gu-contact-card > * { margin: 0; }
.gu-contact-card .gu-icon { font-size: 36px; line-height: 1; color: #002F6C; }
.gu-contact-card__title { margin-top: 10px !important; font-size: 22px; font-weight: 700; color: #002F6C; }
.gu-contact-card .gu-lines { margin-top: 8px !important; font-size: 16px; line-height: 1.7; }
.gu-contact-card .gu-textlink { margin-top: 12px !important; }
.gu-boxcta-sec { padding: 0 clamp(20px, 3vw, 48px) clamp(40px, 5vw, 60px); }
.gu-boxcta { background: #F7F5F0; border: 1px solid #E6E1D6; padding: clamp(28px, 4vw, 44px); display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.gu-boxcta__text > * { margin: 0; }
.gu-boxcta__title { font-size: clamp(22px, 3vw, 28px); font-weight: 700; letter-spacing: -.03em; color: #002F6C; }
.gu-boxcta__line { margin-top: 8px !important; font-size: 16.5px; color: #4A4A44; }

/* Upload Files: heading, instructions and the upload button, with the checklist
   beside them once the row is wide enough (2 Nov 2026: the embedded uploader
   was replaced by a link to the company's upload site, which cannot be framed). */
.gu-upload-sec { padding: clamp(36px, 5vw, 56px) clamp(20px, 3vw, 48px); display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; container-type: inline-size; }
@media (min-width: 1000px) { .gu-upload-sec { grid-template-columns: minmax(0, 1fr) minmax(320px, 460px); gap: 40px; } }
.gu-upload-sec .gu-aside--checklist { max-width: 720px; }
.gu-stf { margin: 0; }
/* Upload Files heading and instructions above the uploader (client request 2026-10-16). */
.gu-upload-files { min-width: 0; }
.gu-upload-files > * { margin: 0; }
.gu-upload-files h2 { font-size: clamp(24px, 3.2vw, 32px); line-height: 1.1; color: #002F6C; }
.gu-upload-files .gu-upload-files__intro { margin-top: 12px !important; max-width: 640px; font-size: 17px; line-height: 1.6; color: #4A4A44; }
.gu-upload-files .gu-upload-files__embed { margin-top: 24px !important; }
.gu-aside--checklist { padding: 28px; }
.gu-aside--checklist .gu-aside__title { font-size: 20px; }
.gu-checklist { list-style: none; margin: 14px 0 0 !important; padding: 0; display: flex; flex-direction: column; gap: 12px; font-size: 15px; line-height: 1.5; color: #4A4A44; }
.gu-checklist li { margin: 0; }
.gu-checklist li::before { content: "· "; }
.gu-aside--checklist .gu-textlink { margin-top: 18px !important; }

/* Thank You */
.gu-thanks { padding: clamp(56px, 8vw, 110px) clamp(20px, 3vw, 48px); text-align: center; background: #F7F5F0; }
.gu-thanks .gu-icon { font-size: 64px; line-height: 1; color: #002F6C; }
.gu-thanks h1 { margin: 20px auto 0 !important; font-size: clamp(34px, 5vw, 52px); letter-spacing: -.04em; line-height: 1.02; max-width: 720px; }
.gu-thanks__lead { margin: 16px auto 0 !important; font-size: 19px; line-height: 1.55; color: #4A4A44; max-width: 560px; }
.gu-thanks .gu-actions { justify-content: center; margin-top: 28px !important; }

@media (min-width: 1800px) {
	.gu-page-head,
	.gu-ind-head,
	.gu-ind-sec,
	.gu-quote-sec,
	.gu-contact-sec,
	.gu-boxcta-sec,
	.gu-upload-sec {
		padding-left: max(48px, calc((100% - 1720px) / 2));
		padding-right: max(48px, calc((100% - 1720px) / 2));
	}
}
/* Request a Quote (client decision 23, option A): brand green #64A70B with deep
   navy #002A4E text. Text 4.91:1 (WCAG 2.2 AA); hover #72B51C, text 5.79:1.
   Against navy and the shaded photos the button edge measures 4.3:1 or more;
   on white and off-white the navy label identifies the control (WCAG 1.4.11
   does not require a boundary for text buttons). Focus ring: navy on light
   grounds, light green on dark grounds (existing rules). */
.wp-block-button.is-style-gu-quote .wp-block-button__link,
.wp-block-button.is-style-gu-quote .wp-block-button__link:visited {
	background: #64A70B;
	color: #002A4E;
	border: 0;
}
.wp-block-button.is-style-gu-quote .wp-block-button__link:hover,
.wp-block-button.is-style-gu-quote .wp-block-button__link:focus-visible { background: #72B51C; color: #002A4E; }
/* Upload Files button: inline on wide screens, full width on phones. */
.gu-stf { container-type: inline-size; }
.gu-stf__action { margin: 0; }
.gu-stf__open {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	min-height: 52px;
	min-width: 280px;
	padding: 17px 32px;
	background: #002F6C;
	color: #fff !important;
	font-size: 15.5px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	text-decoration: none;
	box-sizing: border-box;
}
.gu-stf__open:hover,
.gu-stf__open:focus-visible { background: #002A4E; }
.gu-stf__note { margin: 10px 0 0; font-size: 13.5px; line-height: 1.5; color: #6B6455; }
@container (max-width: 479px) {
	.gu-stf__open { display: flex; width: 100%; min-width: 0; }
	.gu-stf__note { text-align: center; }
}
/* Request a Quote: the panel's height is set by assets/js/quote-align.js to
   reach the bottom of the form's message box. */
.gu-aside--quote { box-sizing: border-box; }
/* Request a Quote: a box for each service at the bottom of the panel
   (6 -> 3 x 2 when the panel is wide enough, otherwise 2 x 3). */
.gu-aside--quote { display: flex; flex-direction: column; }
.gu-quote-svcs { margin-top: auto !important; padding-top: 18px; container-type: inline-size; }
.gu-quote-svcs > * { margin: 0; }
.gu-quote-svcs__grid { margin-top: 12px !important; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@container (min-width: 400px) { .gu-quote-svcs__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gu-quote-svcs__grid > * { margin: 0; }
.gu-quote-svc {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 52px;
	padding: 10px 12px;
	background: #fff;
	border: 1px solid #D5CFC2;
	box-sizing: border-box;
}
.gu-quote-svc > * { margin: 0; }
.gu-quote-svc:hover { border-color: #002F6C; background: #FBFAF7; }
.gu-quote-svc .gu-icon { font-size: 20px; line-height: 1; color: #64A70B; flex-shrink: 0; }
.gu-quote-svc__name { font-size: 14px; font-weight: 600; line-height: 1.25; letter-spacing: -.01em; }
.gu-quote-svc__name a { color: #002F6C; }
.gu-quote-svc__name a::after { content: ""; position: absolute; inset: 0; }
.gu-quote-svc__name a:focus-visible { outline: none; }
.gu-quote-svc:has(a:focus-visible) { outline: 2px solid #002F6C; outline-offset: 2px; }
/* Service boxes with descriptions (client request 2026-10-15): larger, two
   across in the panel, one across on narrow phones. Overrides the compact
   version above. */
.gu-quote-svcs__grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
@container (min-width: 380px) { .gu-quote-svcs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.gu-quote-svc { align-items: flex-start; gap: 12px; min-height: 0; padding: 16px 18px; }
.gu-quote-svc .gu-icon { font-size: 24px; margin-top: 1px; }
.gu-quote-svc__text > * { margin: 0; }
.gu-quote-svc__name { font-size: 16px; line-height: 1.25; letter-spacing: -.015em; }
.gu-quote-svc__desc { margin-top: 5px !important; font-size: 13.5px; line-height: 1.45; color: #4A4A44; }
/* The boxes take up the panel's remaining height (so extra height goes into
   the boxes, not a gap above them); content centred in each box. */
.gu-quote-svcs { flex: 1 1 auto; display: flex; flex-direction: column; margin-top: 0 !important; }
.gu-quote-svcs__grid { flex: 1 1 auto; align-content: stretch; }
@media (min-width: 800px) { .gu-quote-svcs__grid { grid-auto-rows: 1fr; } }
.gu-quote-svc { align-items: center; }
/* Side by side with a narrow panel (about 800-1279px wide screens): two
   across, name only, so the panel does not outgrow the form. */
@media (min-width: 800px) and (max-width: 1279.98px) {
	.gu-quote-svcs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gu-quote-svc__desc { display: none; }
	.gu-quote-svc { padding: 14px 16px; }
}
/* Promotional Products highlight under the service boxes: a navy card, the
   whole card links to the promotional store (new tab). */
.gu-quote-promo {
	position: relative;
	margin-top: 12px !important;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	background: #002F6C;
	box-sizing: border-box;
	flex-wrap: wrap;
}
.gu-quote-promo > * { margin: 0; }
.gu-quote-promo:hover { background: #002A4E; }
.gu-quote-promo .gu-icon { font-size: 28px; line-height: 1; color: #A6D95C; flex-shrink: 0; }
.gu-quote-promo__text { flex: 1 1 200px; }
.gu-quote-promo__text > * { margin: 0; }
.gu-quote-promo__name { font-size: 17px; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; }
.gu-quote-promo__name a { color: #fff; }
.gu-quote-promo__name a::after { content: ""; position: absolute; inset: 0; }
.gu-quote-promo__name a:focus-visible { outline: none; }
.gu-quote-promo:has(a:focus-visible) { outline: 2px solid #002F6C; outline-offset: 2px; }
.gu-quote-promo__desc { margin-top: 4px !important; font-size: 13.5px; line-height: 1.45; color: #CFE0EE; }
.gu-quote-promo__more { font-size: 14px; font-weight: 600; color: #A6D95C; border-bottom: 2px solid #64A70B; padding-bottom: 2px; white-space: nowrap; }
@media (min-width: 800px) and (max-width: 1279.98px) { .gu-quote-promo__desc { display: none; } }
/* Fit: slightly tighter boxes so the panel ends level with the form. */
.gu-quote-svcs__grid { gap: 10px; }
.gu-quote-svc { padding: 14px 16px; }
.gu-quote-promo { margin-top: 10px !important; padding: 16px 18px; }
@media (min-width: 800px) and (max-width: 1319.98px) {
	.gu-quote-svcs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gu-quote-svc__desc,
	.gu-quote-promo__desc { display: none; }
}
/* Privacy Policy and Terms of Service: long-form legal text in a readable column */
.gu-page-head--legal h1 { margin-top: 0 !important; }
.gu-legal { padding: clamp(32px, 4.4vw, 56px) clamp(20px, 3vw, 48px) clamp(44px, 5vw, 72px); line-height: normal; }
.gu-legal > * { max-width: 760px; margin-block: 0; }
.gu-legal > p { margin-top: 12px; font-size: 16.5px; line-height: 1.65; color: #3F3F3A; }
.gu-legal > p:first-child { margin-top: 0; }
.gu-legal > h2 { margin-top: 34px; font-size: clamp(21px, 2.4vw, 26px); line-height: 1.2; letter-spacing: -.02em; }
.gu-legal > h3 { margin-top: 22px; font-size: 18px; line-height: 1.3; letter-spacing: -.01em; }
.gu-legal > ul,
.gu-legal > ol { margin-top: 12px; padding-left: 1.3em; }
.gu-legal li { margin: 6px 0 0; font-size: 16.5px; line-height: 1.6; color: #3F3F3A; }
.gu-legal a { color: #002F6C; font-weight: 600; border-bottom: 1px solid #64A70B; }
.gu-legal strong { color: #002F6C; font-weight: 700; }

/* 404 (approved centred layout) */
.gu-notfound .gu-page-head__eyebrow { margin: 0; color: #002F6C; }
.gu-notfound h1 { margin-top: 16px !important; max-width: 640px; }
.gu-notfound .gu-thanks__lead { max-width: 520px; }
.gu-notfound .gu-thanks__lead a { color: #002F6C; font-weight: 600; border-bottom: 1px solid #64A70B; }

/* Search results (not in the prototype; plain list in the site's type) */
.gu-page-head--search h1 { margin-top: 14px !important; font-size: clamp(32px, 4.4vw, 46px); letter-spacing: -.04em; line-height: 1.05; }
.gu-search-form { margin-top: 22px !important; max-width: 560px; }
.gu-search-form .wp-block-search__inside-wrapper { display: flex; gap: 10px; border: 0; padding: 0; }
.gu-search-form .wp-block-search__input { flex: 1; min-height: 50px; padding: 12px 16px; border: 1px solid #D5CFC2; border-radius: 0; font-size: 16px; color: #2B2B28; background: #fff; }
.gu-search-form .wp-block-search__button { min-height: 50px; margin: 0; padding: 0 24px; border: 0; border-radius: 0; background: #002F6C; color: #fff; font-size: 15px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; }
.gu-search-results { padding: clamp(28px, 4vw, 48px) clamp(20px, 3vw, 48px) clamp(44px, 5vw, 72px); line-height: normal; }
.gu-search-items { list-style: none; margin: 0; padding: 0; max-width: 820px; }
.gu-search-items > li { margin: 0; padding: 20px 0; border-bottom: 1px solid #E6E1D6; }
.gu-search-items > li:first-child { border-top: 1px solid #E6E1D6; }
.gu-search-item__title { margin: 0; font-size: 20px; letter-spacing: -.02em; line-height: 1.25; }
.gu-search-item__title a { color: #002F6C; }
.gu-search-item__excerpt { margin-top: 6px; }
.gu-search-item__excerpt p { margin: 0; font-size: 15.5px; line-height: 1.55; color: #4A4A44; }
.gu-search-none { margin: 0; font-size: 17px; color: #4A4A44; }
.gu-search-none a { color: #002F6C; font-weight: 600; }
.gu-search-results .gu-pager { margin-top: 26px; display: flex; gap: 8px; flex-wrap: wrap; }
.gu-search-results .gu-pager .page-numbers,
.gu-search-results .gu-pager a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 14px; border: 1px solid #D5CFC2; font-size: 14px; font-weight: 600; color: #002F6C; box-sizing: border-box; }
.gu-search-results .gu-pager .page-numbers.current { background: #002F6C; border-color: #002F6C; color: #fff; }

@media (min-width: 1800px) {
	.gu-legal,
	.gu-search-results {
		padding-left: max(48px, calc((100% - 1720px) / 2));
		padding-right: max(48px, calc((100% - 1720px) / 2));
	}
}