/**
 * Glass, Wood, Wang & Associates — inner-page chrome and shared components
 * (Phase 5a, 2026-10-28). Figma V7WjaFzWcfAuZRr5JWjPDI.
 *
 * Loads after every parent stylesheet (enqueued at wp_enqueue_scripts 20 from
 * the child's functions.php), so a rule here only needs the parent's
 * specificity to win. One block per component; each block names the Figma
 * node it matches and the starter request it stands in for (design-notes.md
 * → S2 candidates). Values come from the child theme.json: the custom keys
 * added for this phase use the S2 hook names where a request proposes one
 * (header.contactBackground, toc.activeBackground, cta.button…), so the
 * values carry over when the starter ships the hooks.
 *
 * Mobile-first; only the starter breakpoints (48em, 64em, 80em, 105em).
 * Icon masks set the whole mask shorthand with a path relative to this file
 * (assets/icons/ of the child): a --firm-icon url() would resolve against
 * main.css instead (CLAUDE-starter.md → CSS cascade traps).
 */

/* ==========================================================================
   0. Icons (Figma vectors in the child's assets/icons/), buttons and the
   display headings' weight
   Button_Regular 2077:288: label shadow (custom.textShadow.button).
   ========================================================================== */

.firm-icon--gww-pin { mask: url("../icons/pin.svg") center / contain no-repeat; -webkit-mask: url("../icons/pin.svg") center / contain no-repeat; }
.firm-icon--gww-phone-outline { mask: url("../icons/phone-outline.svg") center / contain no-repeat; -webkit-mask: url("../icons/phone-outline.svg") center / contain no-repeat; }
.firm-icon--gww-clock { mask: url("../icons/clock.svg") center / contain no-repeat; -webkit-mask: url("../icons/clock.svg") center / contain no-repeat; }
.firm-icon--gww-arrow-up { mask: url("../icons/arrow-up.svg") center / contain no-repeat; -webkit-mask: url("../icons/arrow-up.svg") center / contain no-repeat; }
.firm-icon--gww-phone-sm { mask: url("../icons/phone-sm.svg") center / contain no-repeat; -webkit-mask: url("../icons/phone-sm.svg") center / contain no-repeat; }
.firm-icon--gww-phone-md { mask: url("../icons/phone-md.svg") center / contain no-repeat; -webkit-mask: url("../icons/phone-md.svg") center / contain no-repeat; }
.firm-icon--gww-chevron-right-sm { mask: url("../icons/chevron-right-sm.svg") center / contain no-repeat; -webkit-mask: url("../icons/chevron-right-sm.svg") center / contain no-repeat; }
.firm-icon--gww-why-people { mask: url("../icons/why-people.svg") left center / contain no-repeat; -webkit-mask: url("../icons/why-people.svg") left center / contain no-repeat; }
.firm-icon--gww-why-accessible { mask: url("../icons/why-accessible.svg") left center / contain no-repeat; -webkit-mask: url("../icons/why-accessible.svg") left center / contain no-repeat; }
.firm-icon--gww-why-mandarin { mask: url("../icons/why-mandarin.svg") left center / contain no-repeat; -webkit-mask: url("../icons/why-mandarin.svg") left center / contain no-repeat; }
.firm-icon--gww-why-holistic { mask: url("../icons/why-holistic.svg") left center / contain no-repeat; -webkit-mask: url("../icons/why-holistic.svg") left center / contain no-repeat; }

.wp-element-button {
	text-shadow: var(--wp--custom--text-shadow--button);
}

/* Display-family headings are Playfair Bold (every Figma heading but the two
   home titles, which set 600 / 500 later in this file). The parent's
   .firm-heading weight is 400: while only the 700 face existed it fell back
   to Bold; since Phase 6b-2 added the 500 and 600 faces it rendered Medium
   (Phase 6d). S2: a heading weight key. */
.firm-heading:is(.firm-heading--display, .firm-heading--display-2, .firm-heading--h1, .firm-heading--h2, .firm-heading--h3, .firm-heading--h4, .firm-heading--h5, .firm-heading--h6) {
	font-weight: 700;
}

/* ==========================================================================
   1. Header — Desktop / Header 2432:2901 (1920 × 140), Mobile / Header
   2529:8797 (360 × 119.6). S2: GWW-8, GWW-16 (a, b), GWW-20, Chongo 30 / 39.
   ========================================================================== */

/* 1px #C1C7CD line and the sm shadow at every width (today: no line, lg from 80em). */
.site-header {
	border-block-end: var(--wp--custom--border-width--thin) solid var(--wp--custom--header--border);
	box-shadow: var(--wp--preset--shadow--sm);
}

/* Compact bar: 14px vertical padding (the gutter stays the 20px token, G-31). */
.site-header__bar {
	padding-block: var(--wp--custom--header--bar-padding-mobile);
}

/* Call bar: one gradient row, phone icon + call text left, the number right in
   Gold 500 (Figma 2529:8797; "AVAILABLE 24/7" is never printed, G-8). */
.firm-phone--call-bar {
	gap: var(--wp--preset--spacing--30);
	padding-block: var(--wp--preset--spacing--20);
	background: var(--wp--preset--gradient--primary-linear);
}

.site-header__call-label {
	gap: var(--wp--preset--spacing--20);
}

.site-header__call-icon {
	--firm-icon-size: var(--wp--custom--header--call-bar-icon-size);
	mask-image: url("../icons/phone-xs.svg");
	-webkit-mask-image: url("../icons/phone-xs.svg");
}

.site-header__call-text {
	max-inline-size: none;
	font-size: var(--wp--custom--header--call-bar-text-size);
	font-weight: 600;
	line-height: normal;
}

.site-header__call-number {
	color: var(--wp--preset--color--rating);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--custom--header--call-bar-number-size);
	font-weight: 700;
	line-height: normal;
}

/* Full-width Mandarin strip under the call bar (the child's header-call-bar
   part prints it; the page hero no longer floats the badge). */
.site-header__strip {
	margin: 0;
	padding: var(--wp--custom--header--strip-padding) var(--wp--custom--header-gutter);
	background: var(--wp--preset--gradient--accent-linear);
	color: var(--wp--custom--text--on-accent, var(--wp--preset--color--base));
	font-size: var(--wp--custom--header--strip-text-size);
	font-weight: 600;
	line-height: normal;
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-align: center;
	text-transform: uppercase;
}

.site-header.is-open .site-header__strip {
	display: none;
}

@media (min-width: 80em) {
	.site-header__bar {
		padding-block: 0;
	}

	.site-header__strip {
		display: none;
	}

	/* Nav items Instrument Sans Medium; the current page stays Bold Blue 600 (parent).
	   A parent item never wraps its chevron onto a second line on the desktop bar. */
	.site-nav__list > li > .menu-item__link,
	.site-nav__list > li > .menu-item__toggle,
	.site-nav__list > li > .menu-item__label {
		font-weight: var(--wp--custom--header--link-weight);
	}

	.site-nav .menu-item:has(> .menu-item__toggle--icon) {
		flex-wrap: nowrap;
	}

	/* Condensed bar (80–105em, no Figma frame): the six items at 12px with a
	   40px logo fit on one row from about 1400px; narrower, whole items wrap
	   onto a second centered row (the parent let a chevron drop under its
	   label instead). */
	.site-nav__list {
		flex-wrap: wrap;
		justify-content: center;
		gap: 0 var(--wp--preset--spacing--20);
	}

	.site-nav__list > li > .menu-item__link,
	.site-nav__list > li > .menu-item__toggle,
	.site-nav__list > li > .menu-item__label {
		font-size: var(--wp--custom--header--nav-font-size-laptop);
	}

	/* The brand never shrinks (a squeezed flex item distorted the fixed-height logo). */
	.site-header__brand {
		flex: none;
	}

	.site-header__brand .custom-logo {
		block-size: var(--wp--custom--logo--header-laptop);
	}

	.site-header__contact-text {
		max-inline-size: var(--wp--custom--header--contact-text-width-laptop);
	}

	/* Contact box: radial blue gradient, two lines on a 3px gap, the number in
	   Instrument Sans Bold with the gold gradient fill. On the condensed bar
	   (80–105em) the box hugs the unwrapped number (Chongo 39: the parent's
	   capped box wrapped it) and the badge drops to 14px to stay on one line. */
	.site-header__contact {
		gap: var(--wp--custom--header--contact-gap);
		padding-inline: var(--wp--preset--spacing--40);
		background: var(--wp--custom--header--contact-background);
	}

	.firm-phone--header .firm-phone__number {
		white-space: nowrap;
	}

	.site-header__badge {
		font-size: var(--wp--preset--font-size--body-xxs);
	}

	.site-header__contact:has(.firm-phone--header:hover) {
		background: var(--wp--custom--header--contact-background);
		filter: brightness(1.12);
	}

	.site-header__contact-text {
		letter-spacing: var(--wp--custom--header--call-text-tracking);
	}

	.firm-phone--header {
		gap: var(--wp--custom--header--phone-gap);
		font-family: var(--wp--preset--font-family--body);
		font-size: var(--wp--custom--header--phone-font-size-laptop);
		font-weight: 700;
		line-height: var(--wp--custom--line-height--h-4);
	}

	.firm-phone--header .firm-phone__number {
		background: var(--wp--custom--header--contact-phone);
		-webkit-background-clip: text;
		background-clip: text;
		color: transparent;
		-webkit-text-fill-color: transparent;
	}

	.site-header__phone-icon {
		--firm-icon-size: var(--wp--custom--icon--md);
	}

	.site-header__badge {
		font-weight: 600;
	}
}

@media (min-width: 105em) {
	.site-header__bar {
		min-block-size: var(--wp--custom--header--bar-height);
	}

	.site-nav__list {
		flex-wrap: nowrap;
		gap: var(--wp--custom--header--nav-gap);
	}

	.site-nav__list > li > .menu-item__link,
	.site-nav__list > li > .menu-item__toggle,
	.site-nav__list > li > .menu-item__label {
		font-size: var(--wp--preset--font-size--body-sm);
	}

	.site-header__brand .custom-logo {
		block-size: var(--wp--custom--logo--header);
	}

	.site-header__contact {
		inline-size: var(--wp--custom--header--contact-width);
		padding-inline: var(--wp--preset--spacing--30);
	}

	.site-header__badge {
		font-size: var(--wp--preset--font-size--body-sm);
	}

	.site-header__contact-text {
		max-inline-size: var(--wp--custom--header--contact-text-width);
	}

	.firm-phone--header {
		font-size: var(--wp--custom--header--phone-font-size);
	}
}

/* ==========================================================================
   2. Page hero — Desktop / Hero Banner 2431:325 (instance 2432:3202), Mobile /
   Hero 2529:8878. Eyebrow between two gold rules, Display title, subtitle.
   The star row (Logo 2431:310, 327.45 × 38.37, 50 top / 24 gap; mobile
   2525:8482, 203.02 × 23.79, 48 / 14) prints above the eyebrow while Firm
   Settings → hero_stars_show is on (Sumi 2026-10-30, G-33): the top padding
   then shrinks by the row and its gap, so the eyebrow and title keep their
   measured positions with the switch on or off. S2: GWW-14, G-30.
   ========================================================================== */

.page-hero--centered .page-hero__content {
	padding-block: var(--wp--custom--page-hero--padding-top-mobile) var(--wp--custom--page-hero--padding-bottom-mobile);
}

.page-hero--centered .page-hero__titles {
	justify-items: center;
	gap: var(--wp--custom--page-hero--gap-mobile);
}

.page-hero--stars .page-hero__content {
	padding-block-start: var(--wp--custom--page-hero--stars-padding-top-mobile);
}

/* Decorative (aria-hidden, empty alt); the gap below it is the titles' gap. */
.page-hero__stars {
	display: block;
	inline-size: var(--wp--custom--page-hero--stars-width-mobile);
	block-size: auto;
	max-inline-size: 100%;
}

.page-hero__eyebrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--custom--page-hero--eyebrow-gap-mobile);
	margin: 0;
	color: var(--wp--preset--color--rating);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--body-xxs);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--h-6);
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-transform: uppercase;
}

/* The gold rules (desktop only; the mobile eyebrow has none). */
.page-hero__eyebrow::before,
.page-hero__eyebrow::after {
	content: "";
	display: none;
	flex: none;
	inline-size: var(--wp--custom--page-hero--eyebrow-rule);
	block-size: var(--wp--custom--border-width--thin);
	background: var(--wp--preset--gradient--accent-linear);
}

.page-hero--centered .page-hero__title {
	max-inline-size: var(--wp--custom--page-hero--title-width);
}

.page-hero--centered .page-hero__subtitle {
	max-inline-size: var(--wp--custom--page-hero--subtitle-width);
	color: var(--wp--custom--page-hero--title-centered, var(--wp--preset--color--base));
	font-weight: 400;
	line-height: var(--wp--custom--line-height--body-lg); /* 1.6 on both frames (Phase 5e) */
	text-transform: none;
}

@media (min-width: 64em) {
	.page-hero--centered .page-hero__content {
		padding-block: var(--wp--custom--page-hero--padding-top) var(--wp--custom--page-hero--padding-bottom);
	}

	.page-hero--stars .page-hero__content {
		padding-block-start: var(--wp--custom--page-hero--stars-padding-top);
	}

	.page-hero--centered .page-hero__titles {
		gap: var(--wp--custom--page-hero--gap);
	}

	.page-hero__stars {
		inline-size: var(--wp--custom--page-hero--stars-width);
	}

	.page-hero__eyebrow {
		gap: var(--wp--custom--page-hero--eyebrow-gap);
		font-size: var(--wp--preset--font-size--body-lg);
		line-height: var(--wp--custom--line-height--menu);
	}

	.page-hero__eyebrow::before,
	.page-hero__eyebrow::after {
		display: block;
	}
}

/* ==========================================================================
   3. Breadcrumbs — Desktop / Breadcrumbs 2431:358 (62px band, 15px / 600 /
   0.9px, chevrons, current crumb Gold 500), mobile 2529:8891 (33px, 11px).
   One line at every width: the current crumb ellipsizes. The crumb wrappers
   are inline-flex so the Home icon no longer lifts its crumb (Chongo 32 bug).
   S2: GWW-7 (d, e), GWW-16 (g), Chongo 32.
   ========================================================================== */

.breadcrumbs {
	font-size: var(--wp--custom--breadcrumbs--font-size-mobile);
	font-weight: var(--wp--custom--breadcrumbs--font-weight);
	line-height: normal;
	letter-spacing: var(--wp--custom--letter-spacing--wide);
}

.breadcrumbs__inner {
	display: flex;
	align-items: center;
	min-block-size: var(--wp--custom--breadcrumbs--min-height-mobile);
	padding-block: 0;
}

.breadcrumbs__inner > span {
	flex-wrap: nowrap;
	gap: var(--wp--custom--breadcrumbs--gap-mobile);
	min-inline-size: 0;
}

.breadcrumbs__inner > span > span {
	display: inline-flex;
	flex: none;
	align-items: center;
}

/* Only the current crumb gives way (and ellipsizes); links never wrap. */
.breadcrumbs__inner > span > .breadcrumb_last {
	flex: 0 1 auto;
	min-inline-size: 0;
}

.breadcrumbs a {
	gap: var(--wp--custom--breadcrumbs--gap-mobile);
	white-space: nowrap;
}

.breadcrumbs__inner > span > span:first-child > a::before {
	inline-size: var(--wp--custom--breadcrumbs--icon-size-mobile);
	block-size: var(--wp--custom--breadcrumbs--icon-size-mobile);
	mask: url("../icons/home-sm.svg") center / contain no-repeat;
	-webkit-mask: url("../icons/home-sm.svg") center / contain no-repeat;
}

/* The ">>" text separator becomes the 9 × 14 chevron (the text collapses). */
.breadcrumbs__separator {
	flex: none;
	inline-size: var(--wp--custom--breadcrumbs--separator-width-mobile);
	block-size: var(--wp--custom--breadcrumbs--separator-height-mobile);
	overflow: hidden;
	color: transparent;
	font-size: 0;
	background-color: var(--wp--custom--breadcrumbs--icon, var(--wp--preset--color--primary));
	mask: url("../icons/chevron-right-sm.svg") center / contain no-repeat;
	-webkit-mask: url("../icons/chevron-right-sm.svg") center / contain no-repeat;
}

.breadcrumbs .breadcrumb_last {
	display: block;
	overflow: hidden;
	color: var(--wp--custom--breadcrumbs--current);
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (min-width: 64em) {
	.breadcrumbs {
		font-size: var(--wp--custom--breadcrumbs--font-size);
		line-height: normal;
	}

	.breadcrumbs__inner {
		min-block-size: var(--wp--custom--breadcrumbs--min-height);
		padding-block: 0;
	}

	.breadcrumbs__inner > span,
	.breadcrumbs a {
		gap: var(--wp--custom--breadcrumbs--gap);
	}

	.breadcrumbs__inner > span > span:first-child > a::before {
		inline-size: var(--wp--custom--breadcrumbs--icon-size);
		block-size: var(--wp--custom--breadcrumbs--icon-size);
		mask-image: url("../icons/home-sm.svg");
		-webkit-mask-image: url("../icons/home-sm.svg");
	}

	.breadcrumbs__separator {
		inline-size: var(--wp--custom--breadcrumbs--separator-width);
		block-size: var(--wp--custom--breadcrumbs--separator-height);
	}
}

/* ==========================================================================
   4. Footer — Desktop / Footer 2431:286 (instance 2432:3036, 1920 × 709),
   Mobile / Footer 2529:9094 (360 × 1120). Columns 1fr / 370 / 1fr, titles
   Instrument Sans Bold 20, links 18, texts 16 / 1.7, padding 72 / 56,
   "Address" / "Phone" labels and the "Website by" credit (child footer.php
   and components/office.php). S2: GWW-16 (f), GWW-21.
   ========================================================================== */

.site-footer {
	padding: var(--wp--custom--footer--padding-top-mobile) var(--wp--custom--gutter) var(--wp--custom--footer--padding-bottom-mobile);
	line-height: var(--wp--custom--line-height--body-lg);
}

.site-footer__grid,
.site-footer__column {
	gap: var(--wp--custom--footer--block-gap-mobile);
}

.site-footer__title {
	margin-block-end: var(--wp--preset--spacing--20);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--h-6);
	font-weight: 600;
	line-height: normal;
}

.site-footer__block p + p {
	margin-block-start: var(--wp--preset--spacing--20);
}

/* Quick links: two 150px columns on phones, one list from laptop. */
.footer-nav__list {
	grid-template-columns: repeat(2, var(--wp--custom--footer--link-column-mobile));
	gap: var(--wp--custom--footer--link-gap-mobile);
	line-height: normal;
}

/* Two classes: over the parent's ".site-footer a { color: inherit }". */
.site-footer .firm-phone--footer {
	color: var(--wp--custom--footer--phone-mobile);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--custom--footer--phone-size-mobile);
	font-weight: 700;
	line-height: normal;
}

.site-footer .firm-phone--footer:is(:hover, :focus-visible) {
	color: var(--wp--custom--footer--link-hover, var(--wp--preset--color--accent));
}

.site-footer__bottom {
	display: grid;
	gap: var(--wp--custom--footer--block-gap-mobile);
	margin-block-start: 0;
	padding-block-start: var(--wp--custom--footer--block-gap-mobile);
	border-block-start-color: var(--wp--custom--footer--text, var(--wp--preset--color--base));
	font-size: var(--wp--preset--font-size--body-xxs);
	line-height: var(--wp--custom--line-height--body-lg);
	text-align: start;
}

.site-footer__disclaimer > :last-child {
	margin-block-end: 0;
}

.site-footer__credit {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	margin: 0;
	font-size: var(--wp--custom--footer--credit-label-size-mobile);
	text-transform: uppercase;
}

.site-footer__credit-link {
	display: inline-flex;
	align-items: center;
}

.site-footer__credit-logo {
	display: block;
	inline-size: auto;
	block-size: var(--wp--custom--footer--credit-logo-height-mobile);
}

@media (min-width: 64em) {
	.site-footer {
		padding: var(--wp--custom--footer--padding-top) var(--wp--custom--gutter) var(--wp--custom--footer--padding-bottom);
		line-height: var(--wp--custom--line-height--body);
	}

	.site-footer__grid {
		grid-template-columns: minmax(0, 1fr) var(--wp--custom--footer--links-column) minmax(0, 1fr);
		column-gap: var(--wp--preset--spacing--60);
	}

	.site-footer__column {
		gap: var(--wp--preset--spacing--60);
	}

	/* Logo to the Address label: 49px (the column gap plus this margin). */
	.site-footer__brand {
		margin-block-end: calc(var(--wp--custom--footer--logo-gap) - var(--wp--preset--spacing--60));
	}

	.site-footer__title {
		margin-block-end: var(--wp--preset--spacing--40);
		font-size: var(--wp--preset--font-size--body-lg);
		font-weight: 700;
		line-height: var(--wp--custom--line-height--body-lg);
	}

	.office__address,
	.footer-nav__list {
		font-size: var(--wp--preset--font-size--body);
		line-height: var(--wp--custom--line-height--body-lg);
	}

	.footer-nav__list {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--20);
	}

	.site-footer .firm-phone--footer {
		color: var(--wp--custom--footer--text, var(--wp--preset--color--base));
		font-size: var(--wp--preset--font-size--h-5);
		line-height: var(--wp--custom--line-height--body-lg);
	}

	.site-footer__bottom {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		gap: var(--wp--preset--spacing--60);
		margin-block-start: var(--wp--preset--spacing--80);
		padding-block-start: var(--wp--custom--footer--bottom-gap);
		font-size: var(--wp--preset--font-size--body-xs);
	}

	.site-footer__disclaimer {
		grid-column: 1 / -1;
	}

	.site-footer__copyright {
		max-inline-size: var(--wp--custom--footer--copyright-width);
	}

	.site-footer__credit {
		flex-wrap: nowrap;
		font-size: inherit;
	}

	.site-footer__credit-logo {
		block-size: var(--wp--custom--footer--credit-logo-height);
	}
}

/* ==========================================================================
   5. Sidebar cards — Sidebar / Practice Areas 2405:1832 (instances 2406:2186,
   2408:3066), Our Office 2408:3106, Consultation Form 2408:3127. Gold strip,
   divider border, md shadow, h4 title, Instrument Sans SemiBold 18 items with
   chevrons, "View all" bar with an arrow, office rows with icons (child
   sidebar/office.php), visible form labels on #E7EBF2 fields, full-width
   button. S2: GWW-7 (a, b), GWW-16 (d, h), Chongo 35 / 36 / 37.
   ========================================================================== */

/* Phase 5c: the gap between modules (Desktop / Practice Area 2408:2937 and
   Blog Post 2410:3226: 40; Mobile 2529:8949 / 2530:10096: 20). */
.sidebar {
	gap: var(--wp--custom--sidebar--module-gap-mobile);
}

@media (min-width: 64em) {
	.sidebar {
		gap: var(--wp--custom--sidebar--module-gap);
	}
}

.sidebar-module__card {
	border: var(--wp--custom--border-width--thin) solid var(--wp--custom--sidebar--card-border);
	box-shadow: var(--wp--custom--sidebar--card-shadow);
}

.sidebar-module__card::before {
	content: "";
	display: block;
	block-size: var(--wp--custom--sidebar--strip-height);
	background: var(--wp--custom--sidebar--top-strip);
}

.sidebar-module__title,
.sidebar-module__title--divided {
	padding: var(--wp--custom--sidebar--title-padding);
	border-block-end: 0;
	font-size: var(--wp--preset--font-size--h-4);
	line-height: var(--wp--custom--line-height--h-2);
}

/* List modules (practice areas, related links). Two classes: the links carry
   firm-heading--h5, whose family rule has class-level specificity. */
.sidebar-practice-areas__list .sidebar-practice-areas__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	padding: var(--wp--custom--sidebar--link-padding);
	border-block-start: var(--wp--custom--border-width--thin) solid var(--wp--custom--sidebar--divider, var(--wp--preset--color--divider));
	border-block-end: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--body);
	font-weight: var(--wp--custom--sidebar--link-weight);
	line-height: var(--wp--custom--line-height--h-6);
}

.sidebar-practice-areas__list .sidebar-practice-areas__link::after {
	content: "";
	flex: none;
	inline-size: var(--wp--custom--sidebar--icon-width);
	block-size: var(--wp--custom--sidebar--icon-height);
	background-color: var(--wp--custom--sidebar--icon);
	mask: url("../icons/chevron-right-sm.svg") center / contain no-repeat;
	-webkit-mask: url("../icons/chevron-right-sm.svg") center / contain no-repeat;
}

.sidebar-practice-areas__list .sidebar-practice-areas__link--all {
	padding: var(--wp--custom--sidebar--all-padding);
	border-block-start-color: transparent;
	font-size: var(--wp--preset--font-size--body-sm);
	line-height: normal;
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-transform: uppercase;
}

.sidebar-practice-areas__list .sidebar-practice-areas__link--all::after {
	inline-size: var(--wp--custom--sidebar--all-icon-width);
	background-color: var(--wp--preset--color--rating);
	mask-image: url("../icons/arrow-right.svg");
	-webkit-mask-image: url("../icons/arrow-right.svg");
}

/* Office card (child sidebar/office.php): name line, pin / phone / clock rows, map, directions. */
.sidebar-office__body {
	gap: var(--wp--custom--sidebar--body-gap);
	padding: var(--wp--custom--sidebar--body-padding);
	color: var(--wp--preset--color--foreground);
}

.sidebar-office__office {
	gap: var(--wp--custom--sidebar--body-gap);
}

/* Phase 5e: the Search card (Sidebar / Search 2405:1934) as the other cards:
   the strip full width, the title's own padding, the 56px field on the
   surface fill and the square button, 28 / 34 around them. The frame's
   "Enhanced by Google" field and Google-blue button are a Custom Search
   look; the site uses WordPress search (G-43). */
.sidebar-search__card {
	gap: 0;
	padding: 0;
}

.sidebar-search__form {
	padding: var(--wp--custom--sidebar--search-padding);
}

.sidebar-search__input {
	block-size: var(--wp--custom--sidebar--search-height);
	background: var(--wp--preset--color--surface);
}

.sidebar-search__button {
	inline-size: var(--wp--custom--sidebar--search-height);
	block-size: var(--wp--custom--sidebar--search-height);
}

/* Phase 5e: without a module title (Firm Settings → Sidebar → office title
   empty) the body opens the card, so it takes the title's top padding instead
   of sitting on the gold strip. */
.sidebar-module__card > .sidebar-office__body:first-child {
	padding-block-start: var(--wp--custom--sidebar--body-padding-top-untitled);
}

.sidebar-office__label {
	margin: 0;
	color: var(--wp--custom--sidebar--text, var(--wp--preset--color--foreground));
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-6);
}

.sidebar-office__row {
	display: flex;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--30);
	margin: 0;
	font-size: var(--wp--preset--font-size--body-sm);
	font-style: normal;
	line-height: var(--wp--custom--sidebar--row-line-height);
}

.sidebar-office__row-icon {
	--firm-icon-size: var(--wp--custom--sidebar--row-icon-size);
	flex: none;
	color: var(--wp--custom--sidebar--icon);
}

.firm-phone--sidebar-office {
	color: var(--wp--preset--color--foreground);
	font: inherit;
}

.sidebar-office__map {
	block-size: var(--wp--custom--sidebar--map-height);
	aspect-ratio: auto;
}

.sidebar-office__directions {
	display: flex;
	inline-size: 100%;
	text-decoration: none;
}

/* Form card: Figma labels visible (15px Gray 80), #E7EBF2 fields with a
   #D3DBE8 line, 52px tall, the note 13px, the button full width. The
   wrapper class raises the specificity over form.css, which can print late. */
.sidebar-form__form {
	padding: var(--wp--custom--form--sidebar-padding);
}

.sidebar-form .firm-form_wrapper form.firm-form {
	--gf-ctrl-font-size: var(--wp--custom--form--label-size);
	--gf-ctrl-size: var(--wp--custom--form--field-height);
	--gf-ctrl-bg-color: var(--wp--custom--form--field-background);
	--gf-ctrl-bg-color-hover: var(--wp--custom--form--field-background);
	--gf-ctrl-bg-color-focus: var(--wp--custom--form--field-background);
	--gf-ctrl-border-color: var(--wp--custom--form--field-border);
	--gf-ctrl-placeholder-color: transparent;
	--gf-ctrl-label-color-primary: var(--wp--preset--color--foreground);
	--gf-ctrl-label-font-size-primary: var(--wp--custom--form--label-size);
	--gf-ctrl-label-line-height-primary: normal;
	--gf-ctrl-label-color-req: var(--wp--preset--color--foreground);
	--gf-label-space-primary: var(--wp--preset--spacing--20);
	--gf-form-gap-y: var(--wp--preset--spacing--40);
	/* Phase 5e: the sidebar stacks every field, so no column gap: eleven 24px
	   gaps gave the 12-column grid a 264px minimum, wider than the 220–245px
	   form between 48em and the wide desktop (the fields spilled out). */
	--gf-form-gap-x: 0px;
	--gf-ctrl-btn-font-weight: 600;
	--gf-ctrl-btn-border-color-primary: var(--wp--custom--button--border);
	--gf-ctrl-btn-border-color-hover-primary: var(--wp--custom--button--border);
	--gf-ctrl-btn-border-color-focus-primary: var(--wp--custom--button--border);
}

.sidebar-form .firm-form_wrapper form.firm-form .gfield_label {
	position: static;
	inline-size: auto;
	block-size: auto;
	overflow: visible;
	clip-path: none;
	white-space: normal;
}

.sidebar-form .firm-form_wrapper form.firm-form textarea.textarea {
	block-size: var(--wp--custom--form--textarea-height);
}

.sidebar-form .firm-form_wrapper form.firm-form .firm-form__required {
	color: var(--wp--preset--color--foreground);
	font-size: var(--wp--custom--form--note-size);
	line-height: normal;
	text-transform: none;
}

.sidebar-form .firm-form_wrapper.gform-theme--framework form.firm-form .gform_footer {
	align-items: stretch;
	gap: var(--wp--preset--spacing--40);
}

.sidebar-form .firm-form_wrapper form.firm-form .gform_button {
	inline-size: 100%;
	text-shadow: var(--wp--custom--text-shadow--button);
}

/* ==========================================================================
   6. Table of contents — Desktop / Table of Contents 2433:5940 (260 wide):
   gold strip, Playfair 24 title, 15 / 1.45 SemiBold items, active row (gold
   bar + #EEF3FC, Bold Blue 600: aria-current from assets/js/gww-toc.js),
   lg shadow, "Back to top" and the help card (child components/toc.php).
   Below 48em the accordion stays (G-29). S2: GWW-7 (a, b, c), GWW-16 (c),
   GWW-17, Chongo 33.
   ========================================================================== */

/* The active row and the jump agree (Phase 6d): a TOC jump lands a heading
   at the root scroll-padding plus its own scroll-margin (spacing-60), but the
   "being read" test in toc.js / gww-toc.js only adds the scroll-padding, so
   the clicked heading stayed 32px short of it and the previous row stayed
   active. On pages with a table of contents the spacing moves into the root
   scroll-padding: same landing place, and both scripts read the whole offset.
   S2: the toc scripts could add the heading's scroll-margin. */
:root:has([data-toc]) {
	scroll-padding-block-start: calc(var(--firm-sticky-offset) + var(--wp--preset--spacing--60));
}

:root:has([data-toc]) .page-layout .firm-content :is(h2, h3, h4) {
	scroll-margin-block-start: 0;
}

.toc {
	gap: 0;
	padding: 0;
	border-color: var(--wp--custom--toc--border, var(--wp--preset--color--divider));
	border-radius: var(--wp--custom--toc--radius);
	box-shadow: var(--wp--custom--toc--shadow);
}

.toc::before {
	content: "";
	display: block;
	block-size: var(--wp--custom--toc--strip-height);
	background: var(--wp--custom--toc--top-strip);
}

.toc__title,
.js .toc__toggle {
	padding: var(--wp--custom--toc--header-padding);
}

.toc__title {
	font-size: var(--wp--custom--toc--title-font-size-mobile);
	line-height: var(--wp--custom--line-height--h-2);
	text-align: start;
}

.toc__toggle-title {
	font-size: var(--wp--custom--toc--title-font-size-mobile);
	line-height: var(--wp--custom--line-height--h-2);
}

/* Phase 5c: below 48em the box is drawn fully expanded with no toggle
   (Mobile / Practice Area 2529:8903, Mobile / Blog Post 2530:10021; G-29;
   custom.toc.mobile = "expanded", GWW-17): the title, list and footer show
   at first paint and the parent's toggle button never prints. */
.js .toc__toggle {
	display: none;
}

.js .toc__title {
	display: block;
}

.js .toc:not(.is-expanded) .toc__list {
	display: grid;
}

@media (min-width: 48em) {
	.toc__title,
	.toc__toggle-title {
		font-size: var(--wp--custom--toc--title-font-size);
	}
}

.toc__list {
	gap: 0;
	padding: 0;
}

.toc__item,
.toc__item + .toc__item {
	padding: 0;
	border-block-start: var(--wp--custom--border-width--thin) solid var(--wp--custom--toc--divider, var(--wp--preset--color--divider));
	background: none;
}

.toc__link {
	position: relative;
	padding: var(--wp--custom--toc--link-padding);
	font-size: var(--wp--custom--toc--link-font-size);
	font-weight: var(--wp--custom--toc--link-weight);
	line-height: var(--wp--custom--line-height--toc);
}

.toc__link[aria-current="location"] {
	background: var(--wp--custom--toc--active-background);
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

.toc__link[aria-current="location"]::before {
	content: "";
	position: absolute;
	inset-block: calc(var(--wp--custom--border-width--thin) * -1) 0;
	inset-inline-start: 0;
	inline-size: var(--wp--custom--toc--indicator-width);
	background: var(--wp--custom--toc--active-indicator);
}

/* Footer rows: always shown (Phase 5c: the mobile box is expanded, above). */
.toc__footer {
	display: grid;
}

.toc__back {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--custom--toc--back-padding);
	border-block-start: var(--wp--custom--border-width--thin) solid var(--wp--custom--toc--divider, var(--wp--preset--color--divider));
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--custom--toc--back-font-size);
	font-weight: 600;
	line-height: normal;
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-decoration: none;
	text-transform: uppercase;
}

.toc__back:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--primary-dark);
	text-decoration: underline;
}

.toc__back-icon {
	inline-size: var(--wp--custom--toc--back-icon-width);
	block-size: var(--wp--custom--toc--back-icon-height);
}

.toc__help {
	display: grid;
	justify-items: start;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--custom--toc--help-padding);
	background: var(--wp--custom--toc--help-background);
	color: var(--wp--preset--color--base);
}

.toc__help-title {
	margin: 0;
	font-size: var(--wp--custom--toc--help-title-size);
	font-weight: 600;
	line-height: var(--wp--custom--line-height--h-6);
}

.toc__help .firm-phone--toc-help {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--rating);
	font-size: var(--wp--custom--toc--help-phone-size-mobile);
	font-weight: 700;
	line-height: normal;
}

.toc__help .firm-phone--toc-help:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--base);
	text-decoration: underline;
}

.toc__help .firm-phone--toc-help:focus-visible {
	outline-color: var(--wp--preset--color--base);
}

.toc__help-icon {
	--firm-icon-size: var(--wp--custom--toc--help-icon-size);
}

.toc__help-note {
	margin: 0;
	font-size: var(--wp--custom--toc--help-note-size);
	line-height: normal;
}

@media (min-width: 48em) {
	.toc__help .firm-phone--toc-help {
		font-size: var(--wp--custom--toc--help-phone-size);
	}
}

/* ==========================================================================
   7. FAQ item — Desktop / FAQ Item 2433:5866: gradient question bar with a
   #0B2A6B line, Instrument Sans Bold 20 / 1.4, 22 / 28 padding, gold chevron
   (up when open), white answer card with the divider line, 17 / 1.7 text,
   24 / 28 / 28 padding, 12px between items. S2: GWW-16 (e), Chongo 34.
   ========================================================================== */

.firm-faq {
	gap: var(--wp--preset--spacing--30);
}

.firm-faq__item,
.firm-faq__item:has([aria-expanded="true"]) {
	border: 0;
}

.firm-content .firm-faq__question,
.firm-faq__question {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--body-lg);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-6);
}

.firm-faq__button {
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--custom--faq--question-padding);
	border: var(--wp--custom--border-width--thin) solid var(--wp--custom--faq--bar-border);
	border-radius: 0;
}

.firm-faq__button .firm-faq__icon {
	inline-size: var(--wp--custom--faq--icon-width);
	block-size: var(--wp--custom--faq--icon-height);
	background-color: var(--wp--custom--faq--icon, var(--wp--preset--color--primary));
	mask: url("../icons/chevron-up-sm.svg") center / contain no-repeat;
	-webkit-mask: url("../icons/chevron-up-sm.svg") center / contain no-repeat;
	rotate: 0deg;
	transition: rotate 0.2s ease;
}

.firm-faq__button[aria-expanded="false"] .firm-faq__icon {
	rotate: 180deg;
}

/* Closed state (Desktop / FAQ Item, State=Closed 2433:9495, read in Phase 5d): a surface bar with the divider border and Blue 800 text. */
.firm-faq__button[aria-expanded="false"] {
	border-color: var(--wp--custom--faq--bar-closed-border);
	background: var(--wp--custom--faq--bar-closed);
	color: var(--wp--custom--faq--bar-closed-text);
}

.firm-faq__panel {
	padding: var(--wp--custom--faq--answer-padding);
	border: var(--wp--custom--border-width--thin) solid var(--wp--custom--faq--card-border, var(--wp--preset--color--divider));
	border-block-start: 0;
	color: var(--wp--preset--color--foreground);
	font-size: var(--wp--custom--faq--answer-font-size);
	line-height: var(--wp--custom--line-height--body);
}

.firm-faq__panel[hidden] {
	padding: 0;
	border: 0;
}

@media (prefers-reduced-motion: reduce) {
	.firm-faq__button .firm-faq__icon {
		transition: none;
	}
}

/* ==========================================================================
   8. Inline CTA (firm/cta Background photo style) — Desktop / Inline CTA
   2433:5859 (580 card) and 2432:3228 (the 1066 band on About; the index pages'
   section fills the 1500 container), Mobile / Inline CTA 2529:9004. No logo
   bar (child blocks/cta.php), Instrument Sans Bold 40 title, 26 / 500 text,
   the outline button inside the veiled box; on phones the Figma stack: a navy
   box with a blue fade and the regular gold button. S2: GWW-18 (d), GWW-19.
   ========================================================================== */

.firm-cta--background-photo {
	position: relative;
	isolation: isolate;
	padding: var(--wp--custom--cta--padding-mobile);
	background: var(--wp--custom--cta--panel, var(--wp--preset--color--primary-dark));
}

.firm-cta--background-photo .firm-cta__row {
	position: static;
	isolation: auto;
	background: var(--wp--custom--cta--box-mobile);
}

.firm-cta--background-photo .firm-cta__veil {
	background: var(--wp--custom--cta--veil-mobile);
}

.firm-cta--background-photo .firm-cta__body {
	gap: var(--wp--custom--cta--gap);
	padding: var(--wp--custom--cta--body-padding-mobile);
}

.firm-cta--background-photo .firm-cta__title {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--h-4);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-3);
}

.firm-cta--background-photo .firm-cta__text {
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 400;
	line-height: var(--wp--custom--cta--text-line-height-mobile);
}

/* Three classes: over the parent's hook rule for the consultation button and
   over the call fallback's own rules. */
.firm-cta.firm-cta--background-photo .firm-cta__button {
	padding: var(--wp--preset--spacing--40);
	border: var(--wp--custom--border-width--thin) solid var(--wp--custom--button--border);
	border-radius: var(--wp--custom--radius--sm);
	background: var(--wp--preset--color--accent);
	color: var(--wp--custom--text--on-accent, var(--wp--preset--color--base));
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--body-xs);
	font-weight: 600;
	line-height: var(--wp--custom--line-height--button);
	text-shadow: var(--wp--custom--text-shadow--button);
}

.firm-cta.firm-cta--background-photo .firm-cta__button:is(:hover, :focus-visible) {
	background: var(--wp--preset--color--primary);
	color: var(--wp--custom--text--on-primary, var(--wp--preset--color--base));
}

.firm-cta.firm-cta--background-photo .firm-cta__button:focus-visible {
	outline-color: var(--wp--preset--color--base);
	outline-offset: calc(var(--wp--custom--border-width--thick) * -2);
}

@media (min-width: 48em) {
	.firm-cta--background-photo {
		padding: 0;
	}

	.firm-cta--background-photo .firm-cta__row {
		background: none;
	}

	.firm-cta--background-photo .firm-cta__veil {
		background: var(--wp--custom--cta--veil, var(--wp--custom--overlay--heavy));
	}

	.firm-cta--background-photo .firm-cta__body {
		padding: var(--wp--custom--cta--body-padding);
		text-transform: capitalize;
	}

	.firm-cta--background-photo .firm-cta__title {
		font-size: var(--wp--preset--font-size--h-3);
		line-height: var(--wp--custom--line-height--h-2);
	}

	.firm-cta--background-photo .firm-cta__text {
		font-size: var(--wp--preset--font-size--h-5);
		font-weight: 500;
		line-height: var(--wp--custom--line-height--h-5);
	}

	.firm-cta.firm-cta--background-photo .firm-cta__button {
		display: flex;
		align-items: center;
		justify-content: center;
		min-block-size: var(--wp--custom--cta--button-height);
		margin-block-start: var(--wp--custom--cta--button-gap);
		padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
		border-radius: 0;
		background: var(--wp--custom--cta--button);
		color: var(--wp--custom--cta--button-text, var(--wp--preset--color--base));
		font-size: var(--wp--preset--font-size--body-lg);
		font-weight: 700;
		line-height: var(--wp--custom--line-height--h-5);
		text-shadow: none;
	}

	.firm-cta.firm-cta--background-photo .firm-cta__button:is(:hover, :focus-visible) {
		background: var(--wp--custom--cta--button-hover, var(--wp--preset--color--accent));
		color: var(--wp--custom--cta--button-hover-text, var(--wp--preset--color--base));
	}

	/* Wide contexts (About body, the content-cta section): the photo band
	   spans the column, the 580px stack is centered with 56px above and below. */
	.about-page .firm-cta--background-photo,
	.attorney-profile--gww .firm-cta--background-photo,
	.blog-archive--gww .firm-cta--background-photo,
	.content-cta .firm-cta--background-photo {
		max-inline-size: none;
		padding-block: var(--wp--custom--cta--band-padding);
	}

	.about-page .firm-cta--background-photo .firm-cta__body,
	.attorney-profile--gww .firm-cta--background-photo .firm-cta__body,
	.blog-archive--gww .firm-cta--background-photo .firm-cta__body,
	.content-cta .firm-cta--background-photo .firm-cta__body,
	.about-page .firm-cta.firm-cta--background-photo .firm-cta__button,
	.attorney-profile--gww .firm-cta.firm-cta--background-photo .firm-cta__button,
	.blog-archive--gww .firm-cta.firm-cta--background-photo .firm-cta__button,
	.content-cta .firm-cta.firm-cta--background-photo .firm-cta__button {
		inline-size: 100%;
		max-inline-size: var(--wp--custom--cta--stack-width);
		margin-inline: auto;
	}
}

/* ==========================================================================
   9. Content typography (editor body) — Heading 2408:2959 (eyebrow, H2 Blue
   800 48 / 1.2, 4 × 96 gold rule, 18px gaps), H3 2408:2965 (Instrument Sans
   Bold 28 / 1.3 Blue 800), Desktop / Section Bar 2433:4031 (the "Section bar"
   heading style, registered by the client mu-plugin), Desktop / Bullet Item
   2433:4037 (gold diamond, 16px gap, 14px between items), 32px between blocks
   (20 on phones). H2 48px is provisional (G-30). S2: GWW-15.
   ========================================================================== */

.firm-content > * + * {
	margin-block-start: var(--wp--custom--content--block-gap-mobile);
}

:is(.firm-content, .is-root-container) :is(h2, h3, h4) {
	color: var(--wp--custom--content--heading-color);
}

:is(.firm-content, .is-root-container) h2 {
	font-size: var(--wp--custom--content--heading-size);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-2);
}

:is(.firm-content, .is-root-container) h2::after {
	content: "";
	display: block;
	inline-size: var(--wp--custom--content--rule-width);
	block-size: var(--wp--custom--content--rule-height);
	margin-block-start: var(--wp--custom--content--rule-gap);
	background: var(--wp--custom--content--heading-rule);
}

:is(.firm-content, .is-root-container) h3 {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--custom--content--subheading-size);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-4);
}

:is(.firm-content, .is-root-container) h4 {
	font-family: var(--wp--preset--font-family--body);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-4);
}

/* Eyebrow paragraph style: Instrument Sans Medium, Gold 700, 6% tracking. */
:is(.firm-content, .is-root-container) .is-style-eyebrow {
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--h-6);
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-transform: uppercase;
}

.firm-content > .is-style-eyebrow + h2 {
	margin-block-start: var(--wp--custom--content--eyebrow-gap);
}

/* Section bar (heading style "Section bar", attorney profiles). */
:is(.firm-content, .is-root-container) .is-style-section-bar {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--custom--content--bar-padding);
	background: var(--wp--preset--gradient--primary-linear);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--custom--content--bar-font-size);
	font-weight: 700;
	line-height: normal;
}

:is(.firm-content, .is-root-container) .is-style-section-bar::before {
	content: "";
	flex: none;
	inline-size: var(--wp--custom--content--bar-rule-width);
	block-size: var(--wp--custom--content--bar-rule-height);
	background: var(--wp--preset--gradient--accent-linear);
}

:is(.firm-content, .is-root-container) .is-style-section-bar::after {
	content: none;
}

/* Bullet items: the gold diamond marker. */
:is(.firm-content, .is-root-container) ul {
	padding-inline-start: 0;
	list-style: none;
}

:is(.firm-content, .is-root-container) ul > li {
	position: relative;
	padding-inline-start: var(--wp--custom--content--bullet-indent);
}

:is(.firm-content, .is-root-container) ul > li::before {
	content: "";
	position: absolute;
	inset-block-start: var(--wp--custom--content--bullet-offset-y);
	inset-inline-start: var(--wp--custom--content--bullet-offset-x);
	inline-size: var(--wp--custom--content--bullet-size);
	block-size: var(--wp--custom--content--bullet-size);
	rotate: 45deg;
	background: var(--wp--preset--gradient--accent-linear);
}

:is(.firm-content, .is-root-container) li + li {
	margin-block-start: var(--wp--custom--content--bullet-gap);
}

@media (min-width: 64em) {
	.firm-content > * + * {
		margin-block-start: var(--wp--preset--spacing--60);
	}

	.firm-content > .is-style-eyebrow + h2 {
		margin-block-start: var(--wp--custom--content--eyebrow-gap);
	}

	:is(.firm-content, .is-root-container) .is-style-eyebrow {
		line-height: var(--wp--custom--line-height--h-6);
	}
}

/* ==========================================================================
   10. Layout row (Phase 5b) — the 1500px content container at 1920 (x 210 to
   1710: Desktop / About Us 2406:1971, DUI 2408:2935). Main + sidebar
   1066 / 74 / 360; TOC + main + sidebar 260 / 40 / 800 / 40 / 360. The gaps
   are grid tracks in fr units so the row scales as one piece at 1440 and
   1280 (the parent scaled its columns the same way); below 80em the parent's
   layouts apply unchanged. S2: GWW-2.
   ========================================================================== */

@media (min-width: 80em) {
	/* The box is the container plus its two gutters, so the inner row is 1500 at 1920. */
	.page-layout {
		grid-template-areas: "toc . content . sidebar";
		grid-template-columns:
			minmax(0, var(--wp--custom--page-layout--toc-column))
			minmax(0, var(--wp--custom--page-layout--column-gap))
			minmax(0, var(--wp--custom--page-layout--main-column))
			minmax(0, var(--wp--custom--page-layout--column-gap))
			minmax(0, var(--wp--custom--page-layout--sidebar-column));
		column-gap: 0;
		max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
	}

	.page-layout:not(.page-layout--has-toc),
	.page-layout--archive.page-layout--has-sidebar {
		grid-template-areas: "content . sidebar";
		grid-template-columns:
			minmax(0, var(--wp--custom--page-layout--main-column-wide))
			minmax(0, var(--wp--custom--page-layout--sidebar-gap))
			minmax(0, var(--wp--custom--page-layout--sidebar-column));
		column-gap: 0;
	}

	/* One text column (no sidebar, no TOC): the parent's reading measure stays. */
	.page-layout:not(.page-layout--has-toc):not(.page-layout--has-sidebar) {
		grid-template-areas: "content";
		grid-template-columns: minmax(0, 793fr);
		max-inline-size: calc(793 / 1500 * var(--wp--style--global--content-size));
	}

	.page-layout--has-header.page-layout--has-toc {
		grid-template-areas:
			"toc . header . sidebar"
			"toc . content . sidebar";
	}

	.page-layout--has-header:not(.page-layout--has-toc) {
		grid-template-areas:
			"header . sidebar"
			"content . sidebar";
	}
}

/* ==========================================================================
   11. About Us body (Phase 5b) — Desktop / About Us 2406:1833: the heading
   pattern (eyebrow above the title, gold rule), the intro row (photo 420 × 460
   left, text 606 right, the rest full width: the parent's media-flow at the
   Figma size), the feature cards (2431:650: 521 × 240, blue vertical gradient)
   and the "Meet Our Attorneys" panel (2406:2083: surface box, centered
   heading, 2 × 2 cards, button). Mobile / About Us 2527:8398. S2: GWW-18.
   ========================================================================== */

/* Shared section heading (components/gww-section-heading). */
.gww-heading {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--custom--content--eyebrow-gap);
}

.gww-heading--center {
	align-items: center;
	text-align: center;
}

.gww-heading__eyebrow,
.about-intro__subtitle.about-intro__subtitle {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--h-6);
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-transform: uppercase;
}

.gww-heading__title,
.about-intro__title.about-intro__title {
	color: var(--wp--custom--content--heading-color);
	font-size: var(--wp--custom--content--heading-size);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-2);
}

.gww-heading__rule,
.about-intro__title::after {
	content: "";
	display: block;
	inline-size: var(--wp--custom--content--rule-width);
	block-size: var(--wp--custom--content--rule-height);
	background: var(--wp--custom--content--heading-rule);
}

.about-intro__title::after {
	margin-block-start: var(--wp--custom--content--rule-gap);
}

.gww-heading__intro {
	max-inline-size: var(--wp--custom--about--panel-inner-width);
	margin: 0;
	color: var(--wp--preset--color--foreground);
	font-size: var(--wp--preset--font-size--body);
	line-height: var(--wp--custom--line-height--body);
}

/* The About body: 20px between blocks on phones, 36 from laptop. */
.about-page--gww,
.about-page--gww .about-intro {
	gap: var(--wp--custom--about--block-gap-mobile);
}

/* Intro heading: the subtitle is the eyebrow, above the title. */
.about-page--gww .about-intro__heading {
	gap: var(--wp--custom--content--eyebrow-gap);
}

.about-page--gww .about-intro__subtitle {
	order: -1;
}

/* Intro row: the photo at the Figma ratio, text beside it from tablet. */
.about-page--gww .about-intro__body {
	--firm-media-flow-ratio: 420 / 460;
	--firm-media-flow-width: calc(100% * 420 / 1066);
	--firm-media-flow-background: var(--wp--preset--color--surface);
}

.about-page--gww .about-intro__body .media-flow__media {
	margin-block-end: var(--wp--custom--about--block-gap-mobile);
}

/* Feature cards. */
.gww-features {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--about--block-gap-mobile);
}

.gww-features__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--custom--about--card-row-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-feature-card {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--about--card-gap);
	padding: var(--wp--custom--about--card-padding-mobile);
	background: var(--wp--custom--about--card-background);
	color: var(--wp--preset--color--base);
}

.gww-feature-card__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--h-5);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-4);
}

.gww-feature-card__text {
	margin: 0;
	font-size: var(--wp--preset--font-size--body);
	line-height: var(--wp--custom--line-height--body);
}

/* Meet Our Attorneys panel. */
.gww-team-panel {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--about--panel-gap);
	padding: var(--wp--custom--about--panel-padding-mobile);
	border: var(--wp--custom--border-width--thin) solid var(--wp--preset--color--divider);
	background: var(--wp--preset--color--surface);
}

.gww-team-panel__heading {
	gap: var(--wp--custom--about--panel-gap);
	inline-size: 100%;
	max-inline-size: var(--wp--custom--about--panel-inner-width);
}

.gww-team-panel__actions {
	inline-size: 100%;
	margin: 0;
	text-align: center;
}

.gww-team-panel__button {
	display: flex;
}

/* The compact attorneys section inside GWW frames: no box of its own. */
.attorneys.attorneys--compact.attorneys--gww {
	inline-size: 100%;
	max-inline-size: var(--wp--custom--about--panel-inner-width);
	padding: 0;
	overflow: visible;
	background: none;
	box-shadow: none;
	text-align: start;
}

@media (min-width: 48em) {
	/* Beside the text the float needs no bottom margin: a paragraph that
	   drops under the photo keeps the content's own block gap. */
	.about-page--gww .about-intro__body .media-flow__media {
		margin-block-end: 0;
		margin-inline-end: var(--wp--custom--about--intro-gap);
	}

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

	.gww-team-panel__button {
		display: inline-flex;
	}
}

@media (min-width: 64em) {
	.about-page--gww,
	.about-page--gww .about-intro,
	.gww-features {
		gap: var(--wp--custom--about--block-gap);
	}

	.gww-features__list {
		row-gap: var(--wp--custom--about--block-gap);
	}

	.gww-feature-card {
		padding: var(--wp--custom--about--card-padding);
	}

	.gww-feature-card__text {
		font-size: var(--wp--custom--about--card-text-size);
	}

	.gww-team-panel {
		padding: var(--wp--custom--about--panel-padding);
	}

	/* The About instances are 482 × 475.5 (the component scaled wide); the
	   other instances and the mobile grid keep the component's 359 / 475.6. */
	.gww-team-panel .gww-attorney-card {
		aspect-ratio: var(--wp--custom--about--panel-card-ratio);
	}
}

/* ==========================================================================
   12. Attorney card (Phase 5b) — Desktop / Attorney Card 2431:892 (instances
   482 × 475.5 on About, 324 × 428 on profiles, 331 × 437 on Our Attorneys;
   133 wide in the mobile About grid): the headshot over the blue gradient,
   the black blurred name band (20.26% of the height) with the #DEC69A
   SemiBold name and the white job title line. Sizes follow the card's
   width (container query units) so one part serves every instance. Cards
   without a headshot keep the frame in the Figma's navy fill (G-24).
   S2: GWW-18 (b), teamCard.style "band".
   ========================================================================== */

.gww-attorney-card {
	container-type: inline-size;
	position: relative;
	display: block;
	aspect-ratio: var(--wp--custom--attorney-card--ratio);
	overflow: hidden;
	background: var(--wp--custom--attorney-card--background);
	color: var(--wp--preset--color--base);
	text-decoration: none;
}

.gww-attorney-card__frame {
	position: absolute;
	inset: 0;
	display: block;
}

.gww-attorney-card--no-photo .gww-attorney-card__frame {
	background: var(--wp--custom--attorney-card--placeholder);
}

/* The photo box (attorneyCard.photoTop / photoHeight): since Phase 6b the
   studio headshots fill the card (0 / 100%), cropped from the top on the
   wider About cards; the 5b cutouts sat 24% down in a 115% box. */
.gww-attorney-card__image {
	position: absolute;
	inset: var(--wp--custom--attorney-card--photo-top) 0 auto;
	inline-size: 100%;
	block-size: var(--wp--custom--attorney-card--photo-height);
	object-fit: cover;
	object-position: 50% 0;
}

.gww-attorney-card__band {
	position: absolute;
	inset: auto 0 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--wp--custom--attorney-card--band-gap);
	block-size: var(--wp--custom--attorney-card--band-height);
	padding-inline: var(--wp--preset--spacing--20);
	background: var(--wp--custom--attorney-card--band);
	-webkit-backdrop-filter: blur(var(--wp--custom--attorney-card--band-blur));
	backdrop-filter: blur(var(--wp--custom--attorney-card--band-blur));
	font-family: var(--wp--preset--font-family--body);
	line-height: var(--wp--custom--attorney-card--line-height);
	text-align: center;
	text-transform: uppercase;
}

.gww-attorney-card__name {
	color: var(--wp--custom--attorney-card--name);
	font-size: var(--wp--custom--attorney-card--name-size);
	font-weight: 600;
}

.gww-attorney-card__title {
	color: var(--wp--preset--color--base);
	font-size: var(--wp--custom--attorney-card--title-size);
	font-weight: 400;
}

a.gww-attorney-card:is(:hover, :focus-visible) .gww-attorney-card__name {
	text-decoration: underline;
}

a.gww-attorney-card:focus-visible {
	outline: var(--wp--custom--border-width--thick) solid var(--wp--preset--color--primary);
	outline-offset: var(--wp--custom--border-width--thick);
}

/* Card grid (compact attorneys section): two per row, 12px apart on phones,
   20 from laptop; an optional profile button under each card. */
.gww-attorney-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--custom--attorney-card--grid-gap-mobile);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-attorney-grid__item {
	display: grid;
	gap: var(--wp--custom--attorney-card--button-gap);
}

.gww-attorney-grid__button {
	display: flex;
	text-decoration: none;
}

@media (min-width: 64em) {
	.gww-attorney-grid {
		gap: var(--wp--custom--attorney-card--grid-gap);
	}
}

/* ==========================================================================
   13. Attorney profile intro row (Phase 5b) — Desktop / Attorney Profile
   2407:2310, row 2407:2454: the attorney card 324 × 428, a 40px gap, then
   the intro column (eyebrow = job title, "Attorney {Name}" in Playfair 56 /
   1.15 Blue 800, the gold rule, the 18 / 1.7 lead, the 22px Bold call link
   with a 22px phone glyph), 36px to the bio below. Mobile 2528:8506: the
   card first, 20px, the text (name 32px, call 18px). S2: People C10.
   ========================================================================== */

.attorney-profile--gww {
	gap: var(--wp--custom--profile--block-gap-mobile);
}

.gww-attorney-intro {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--profile--row-gap-mobile);
}

.gww-attorney-intro__card {
	inline-size: 100%;
	max-inline-size: var(--wp--custom--profile--card-width);
}

.gww-attorney-intro__text {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--custom--profile--intro-gap);
	min-inline-size: 0;
}

.gww-attorney-intro__eyebrow {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--h-6);
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-transform: uppercase;
}

.gww-attorney-intro__name.gww-attorney-intro__name {
	color: var(--wp--custom--content--heading-color);
	font-size: var(--wp--preset--font-size--h-1);
	line-height: var(--wp--custom--profile--name-line-height);
	overflow-wrap: anywhere;
}

.gww-attorney-intro__rule {
	display: block;
	inline-size: var(--wp--custom--content--rule-width);
	block-size: var(--wp--custom--content--rule-height);
	background: var(--wp--custom--content--heading-rule);
}

.gww-attorney-intro__lead {
	margin: 0;
	color: var(--wp--preset--color--foreground);
	font-size: var(--wp--preset--font-size--body);
	line-height: var(--wp--custom--line-height--body);
}

.gww-attorney-intro__call {
	margin: 0;
}

/* Two classes over the global link styles; the icon is a child mask. */
.gww-attorney-intro__call .firm-phone--attorney-intro {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--custom--profile--call-gap);
	color: var(--wp--custom--content--heading-color);
	font-size: var(--wp--custom--profile--call-size-mobile);
	font-weight: 700;
	line-height: normal;
	text-decoration: none;
}

.gww-attorney-intro__call .firm-phone--attorney-intro:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

.gww-attorney-intro__call-icon {
	--firm-icon-size: var(--wp--custom--profile--call-icon-size);
	color: var(--wp--custom--sidebar--icon);
}

@media (min-width: 48em) {
	.gww-attorney-intro {
		flex-direction: row;
		align-items: flex-start;
		gap: var(--wp--custom--profile--row-gap);
	}

	.gww-attorney-intro__card {
		flex: 0 0 var(--wp--custom--profile--card-width);
	}

	.gww-attorney-intro__name.gww-attorney-intro__name {
		font-size: var(--wp--preset--font-size--h-2);
	}

	.gww-attorney-intro__call .firm-phone--attorney-intro {
		font-size: var(--wp--custom--profile--call-size);
	}
}

@media (min-width: 64em) {
	.attorney-profile--gww {
		gap: var(--wp--custom--profile--block-gap);
	}
}

/* ==========================================================================
   14. Our Attorneys (Phase 5b) — the hidden backup frame Desktop / Our
   Attorneys 2503:9403 with the final styling: centered heading (2503:9409),
   56px, the four cards 331 wide with 40px gaps in a 1445px row (2503:9414),
   a "View Attorney Profile" button under each, then the inline CTA section.
   Two cards per row below laptop (no mobile frame). S2: GWW-18 (c).
   ========================================================================== */

.team-page--gww {
	align-items: center;
	gap: var(--wp--custom--team-page--gap-mobile);
}

.team-page__heading {
	inline-size: 100%;
}

.team-page__heading .gww-heading__intro {
	max-inline-size: var(--wp--custom--team-page--intro-width);
}

.team-page--gww .attorneys.attorneys--compact.attorneys--gww {
	max-inline-size: var(--wp--custom--team-page--row-width);
}

/* No mobile frame: two cards per row, the card itself is the link, so the
   profile buttons wait for tablet (a 20-character label in a 154px button
   took three lines). */
.team-page--gww .gww-attorney-grid__button {
	display: none;
}

/* The CTA section follows the cards at the Figma's 56px (without the
   backup frame's "Team Values" row). */
.team-page--gww + .content-cta {
	padding-block-start: var(--wp--custom--team-page--gap);
}

@media (min-width: 48em) {
	.team-page--gww .gww-attorney-grid__button {
		display: flex;
	}
}

@media (min-width: 64em) {
	.team-page--gww {
		gap: var(--wp--custom--team-page--gap);
	}

	.team-page--gww .gww-attorney-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: var(--wp--custom--team-page--card-gap);
	}
}

/* ==========================================================================
   15. Blog index (Phase 5b) — Desktop / Blog 2410:2624: the horizontal blog
   card 2431:725 (1066 × 220: 1px divider border, lg shadow, 36 / 40 padding,
   meta row with the Gold 600 category, a 1 × 14 divider and the 15px muted
   date line, Playfair 30 / 1.25 Blue 800 title, 17 / 1.7 excerpt, 16px
   gaps, cards 30 apart), Desktop / Pagination 2431:626 (16px SemiBold boxes,
   12 / 18 padding, 10 apart, the current page on the vertical blue gradient
   with the #0B2A6B line, "Next" in title case) and the Recent Articles
   sidebar card (the practice areas list styles). Mobile / Blog 2530:9492:
   card 20 / 24 padding, meta on two lines, title 24px. S2: postCard
   horizontal variant, recent_posts sidebar module.
   ========================================================================== */

.post-list {
	gap: var(--wp--custom--blog--list-gap);
}

.post-card--gww {
	gap: var(--wp--custom--blog--card-gap-mobile);
	padding: var(--wp--custom--blog--card-padding-mobile);
	border: var(--wp--custom--border-width--thin) solid var(--wp--preset--color--divider);
	box-shadow: var(--wp--preset--shadow--lg);
}

.post-card__meta--gww {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--20) var(--wp--custom--blog--meta-gap);
	margin: 0;
	color: var(--wp--custom--text--subtle, var(--wp--preset--color--muted));
	font-size: var(--wp--custom--blog--meta-line-size);
	line-height: normal;
}

/* Two classes: over the global link styles. */
.post-card__meta--gww .post-card__category {
	color: var(--wp--custom--blog--category);
	font-size: var(--wp--custom--blog--meta-size);
	font-weight: 600;
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-decoration: none;
	text-transform: uppercase;
}

.post-card__meta--gww .post-card__category:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--accent);
	text-decoration: underline;
}

.post-card__divider {
	display: none;
	inline-size: var(--wp--custom--border-width--thin);
	block-size: var(--wp--custom--blog--meta-divider-height);
	background: var(--wp--custom--blog--meta-divider);
}

.post-card__line {
	flex-basis: 100%;
}

.post-card__meta--gww .post-card__author {
	color: inherit;
	text-decoration: none;
}

.post-card__meta--gww .post-card__author:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

.post-card--gww .post-card__title {
	color: var(--wp--custom--post-card--title, var(--wp--preset--color--primary));
	font-size: var(--wp--custom--blog--title-size);
	line-height: var(--wp--custom--blog--title-line-height);
}

.post-card--gww .post-card__excerpt {
	color: var(--wp--preset--color--foreground);
	font-size: var(--wp--preset--font-size--body);
	line-height: var(--wp--custom--line-height--body);
}

/* The CTA 30px under the cards or the pagination (Figma 2433:8318 at y 826). */
.blog-archive__cta {
	margin-block-start: var(--wp--custom--blog--list-gap);
}

/* Pagination: Figma boxes (the parent draws 44px display-type squares). */
.pagination {
	margin-block-start: var(--wp--custom--blog--list-gap);
}

.pagination__list {
	justify-content: center;
	gap: var(--wp--custom--blog--pagination-gap);
}

.pagination .pagination__link,
.pagination__dots {
	min-inline-size: 0;
	min-block-size: 0;
	padding: var(--wp--custom--blog--pagination-padding);
	border-color: var(--wp--preset--color--divider);
	background: var(--wp--preset--color--base);
	color: var(--wp--custom--post-card--title, var(--wp--preset--color--primary));
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 600;
	line-height: normal;
}

.pagination .pagination__link--step {
	padding: var(--wp--custom--blog--pagination-padding);
	text-transform: none;
}

.pagination a.pagination__link:is(:hover, :focus-visible) {
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--surface);
}

.pagination .pagination__link[aria-current="page"] {
	border-color: var(--wp--custom--blog--pagination-current-border);
	background: var(--wp--custom--blog--pagination-current);
	color: var(--wp--custom--text--on-primary, var(--wp--preset--color--base));
}

@media (min-width: 64em) {
	.post-card--gww {
		gap: var(--wp--custom--blog--card-gap);
		padding: var(--wp--custom--blog--card-padding);
	}

	.post-card__meta--gww {
		flex-wrap: nowrap;
	}

	.post-card__divider {
		display: block;
	}

	.post-card__line {
		flex-basis: auto;
	}

	.post-card--gww .post-card__excerpt {
		font-size: var(--wp--custom--blog--excerpt-size);
	}
}

/* ==========================================================================
   16. Pages with a table of contents (Phase 5c) — Desktop / Practice Area —
   DUI Charges 2408:2794 (Body 2408:2934: 100px above and below the row) and
   Desktop / Blog Post 2410:3099 (Body 2410:3223); Mobile / Practice Area
   2529:8796 and Mobile / Blog Post 2530:9927 (Content 2529:8902 / 2530:10020:
   56px above and below, 48px between the table of contents, the main column
   and the sidebar; the table of contents expanded, block 6). The inline CTA
   after the practice intro is printed by the client mu-plugin (toc-pages.php)
   through the Background photo style of block 8. S2: GWW-17, Chongo 40.
   ========================================================================== */

.page-layout {
	padding-block: var(--wp--custom--page-layout--padding-block-mobile);
}

.page-layout__toc {
	margin-block-end: var(--wp--custom--page-layout--stack-gap-mobile);
}

.page-layout__sidebar {
	margin-block-start: var(--wp--custom--page-layout--stack-gap-mobile);
}

@media (min-width: 48em) {
	/* The parent's grid places the columns from here. */
	.page-layout__toc {
		margin-block-end: var(--wp--preset--spacing--40);
	}

	.page-layout__sidebar {
		margin-block-start: 0;
	}
}

@media (min-width: 64em) {
	.page-layout {
		padding-block: var(--wp--custom--page-layout--padding-block);
	}
}

/* ==========================================================================
   17. Blog post (Phase 5c) — Desktop / Blog Post 2410:3099 (Main Column
   2410:3225, 800 wide, 30px gaps): the title Playfair 56 / 1.18 Blue 800, the
   meta row 2410:3227 (Gold category 15 / 600 / 0.9px, 1 × 14 dividers, the
   muted 15px date and "By:" line), the 96 × 4 gold rule, the featured image
   800 × 400 and the "Recent Posts" box 2410:3334 (blue gradient, 36 / 40
   padding, Playfair 32 title over a 72 × 3 gold rule, 18px SemiBold rows with
   white chevrons). Mobile 2530:10022: title 32, meta wrapping, image 328 ×
   364, box 20 / 24 with a 24px title and 16px rows. Parts: the child
   post-meta.php, single-layout.php and gww-post-recent.php. S2: postMeta
   Figma row, single featured image, recent posts box.
   ========================================================================== */

.page-layout__header {
	margin-block-end: var(--wp--custom--post--header-gap);
}

/* Below tablet the mobile frame stacks the table of contents above the post
   title (Mobile / Blog Post 2530:10020: TOC, then the main column). One class,
   so the parent's tablet rule (header, TOC, content beside the sidebar) and
   block 10's desktop columns keep winning from 48em. */
.page-layout--has-header {
	grid-template-areas:
		"toc"
		"header"
		"content"
		"sidebar";
}

.post-header {
	gap: var(--wp--custom--post--header-gap);
}

/* The gold rule under the meta row (Figma 2410:3234). */
.post-header::after {
	content: "";
	display: block;
	inline-size: var(--wp--custom--content--rule-width);
	block-size: var(--wp--custom--content--rule-height);
	background: var(--wp--custom--content--heading-rule);
}

.post-header__title {
	color: var(--wp--custom--content--heading-color);
	/* The h2 token from 32px (the mobile frame's h1 32) to 56. */
	font-size: var(--wp--custom--post--title-size);
	font-weight: 700;
	line-height: var(--wp--custom--post--title-line-height);
}

.post-meta--gww {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--20) var(--wp--custom--blog--meta-gap);
	color: var(--wp--custom--text--subtle, var(--wp--preset--color--muted));
	font-size: var(--wp--custom--blog--meta-line-size);
	line-height: normal;
}

.post-meta__part {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--10);
}

/* Two classes: over the parent's post-meta link rule and the global link styles. */
.post-meta--gww .post-meta__link {
	color: inherit;
	text-decoration: none;
}

.post-meta--gww .post-meta__link:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

.post-meta--gww .post-meta__category {
	color: var(--wp--custom--blog--category);
	font-size: var(--wp--custom--post--meta-category-size);
	font-weight: 600;
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-transform: uppercase;
}

.post-meta--gww .post-meta__category:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--accent);
}

.post-meta__divider {
	inline-size: var(--wp--custom--border-width--thin);
	block-size: var(--wp--custom--blog--meta-divider-height);
	background: var(--wp--custom--blog--meta-divider);
}

.post-thumbnail--gww {
	margin: 0 0 var(--wp--custom--post--header-gap);
	aspect-ratio: var(--wp--custom--post--image-ratio-mobile);
	overflow: hidden;
}

.post-thumbnail__image {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.gww-post-recent {
	display: grid;
	gap: var(--wp--custom--post--recent-gap);
	margin-block-start: var(--wp--custom--content--block-gap-mobile);
	padding: var(--wp--custom--post--recent-padding-mobile);
	background: var(--wp--custom--post--recent-background);
	color: var(--wp--preset--color--base);
}

.gww-post-recent__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--h-4);
	font-weight: 700;
	line-height: var(--wp--custom--blog--title-line-height);
}

.gww-post-recent__title::after {
	content: "";
	display: block;
	inline-size: var(--wp--custom--post--recent-rule-width);
	block-size: var(--wp--custom--post--recent-rule-height);
	margin-block-start: var(--wp--custom--post--recent-gap);
	background: var(--wp--custom--content--heading-rule);
}

.gww-post-recent__list {
	display: grid;
	gap: var(--wp--custom--post--recent-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-post-recent__link {
	display: flex;
	align-items: flex-start;
	gap: var(--wp--custom--post--recent-icon-gap-mobile);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 600;
	line-height: normal;
	text-decoration: none;
}

.gww-post-recent__link:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--rating);
	text-decoration: underline;
}

.gww-post-recent__link:focus-visible {
	outline-color: var(--wp--preset--color--base);
}

.gww-post-recent__icon {
	flex: none;
	inline-size: var(--wp--custom--sidebar--icon-width);
	block-size: var(--wp--custom--sidebar--icon-height);
	margin-block-start: var(--wp--preset--spacing--10);
	background: currentColor;
	mask: url("../icons/chevron-right-sm.svg") center / contain no-repeat;
	-webkit-mask: url("../icons/chevron-right-sm.svg") center / contain no-repeat;
}

@media (min-width: 64em) {
	.post-thumbnail--gww {
		aspect-ratio: var(--wp--custom--post--image-ratio);
	}

	.gww-post-recent {
		margin-block-start: var(--wp--preset--spacing--60);
		padding: var(--wp--custom--post--recent-padding);
	}

	.gww-post-recent__link {
		gap: var(--wp--custom--post--recent-icon-gap);
	}
}

/* ==========================================================================
   18. Full-width pages (Phase 5d) — the 1500 container at 1920 (Body at y 100,
   mobile Container 2529:8546 at y 56), blocks 48 apart (28 on phones), the
   centered heading pattern (eyebrow, Playfair 48 Blue 800, 96 × 4 rule,
   1000px intro) and the Desktop / Link Item rows (2431:529: SemiBold 19 /
   1.4 Blue 800, 22 / 8 / 4 padding, #C9D2E3 rule, 9 × 14 gold chevron) with
   the Category Title (2431:524: 6 × 34 gold bar, Playfair 34). S2: an index
   heading pattern (eyebrow / intro fields) and linkList.style "rows".
   ========================================================================== */

.gww-page {
	padding-block: var(--wp--custom--page-layout--padding-block-mobile);
}

/* Followed by the consultation CTA or another block: the frame's 48px gap, then the next band. */
.gww-page:has(+ .content-cta),
.gww-page:has(+ .gww-page) {
	padding-block-end: var(--wp--custom--full-width--gap-mobile);
}

.gww-page + .gww-page {
	padding-block-start: 0;
}

.gww-page + .content-cta {
	padding-block: 0 var(--wp--custom--page-layout--padding-block-mobile);
}

/* The inner content is the 1500 container at 1920 (x 210 to 1710), as the layout row (block 10). */
.gww-page > .firm-section__container,
.gww-page + .content-cta > .firm-section__container {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--full-width--gap-mobile);
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
}

.gww-page__pending {
	display: grid;
	gap: var(--wp--preset--spacing--20);
}

/* The CTA band fills the container (the section's auto margins would keep it at 580 in the flex column). */
.gww-page + .content-cta .firm-cta--background-photo {
	inline-size: 100%;
}

/* The heading pattern on these pages: the intro at the frame's 1000px. */
.gww-heading--page {
	inline-size: 100%;
}

.gww-heading--page .gww-heading__intro {
	max-inline-size: var(--wp--custom--full-width--intro-width);
}

/* Link rows (Desktop / Link Item): one column on phones. */
.gww-link-rows {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--custom--full-width--row-gap-mobile);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-link-rows__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--custom--full-width--row-padding-mobile);
	border-block-end: var(--wp--custom--border-width--thin) solid var(--wp--custom--full-width--row-border);
	color: var(--wp--custom--link-list--label, var(--wp--preset--color--primary-dark));
	font-size: var(--wp--custom--full-width--row-font-size);
	font-weight: 600;
	line-height: var(--wp--custom--line-height--h-6);
}

.gww-link-rows__item--link {
	padding: 0;
}

/* Two classes: links get their color and underline from the global element styles. */
.gww-link-rows .gww-link-rows__link {
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--custom--full-width--row-padding-mobile);
	color: inherit;
	text-decoration: none;
}

.gww-link-rows .gww-link-rows__link:is(:hover, :focus-visible) {
	color: var(--wp--custom--link-list--label-hover, var(--wp--preset--color--primary));
}

.gww-link-rows__icon {
	flex: none;
	inline-size: var(--wp--custom--sidebar--icon-width);
	block-size: var(--wp--custom--sidebar--icon-height);
	color: var(--wp--custom--sidebar--icon);
}

/* Category title (a county, a group): gold bar + Playfair title; the whole row may be a link. */
.gww-group-title {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
	margin: 0;
	color: var(--wp--custom--content--heading-color);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--custom--full-width--group-title-size);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-3);
}

.gww-group-title::before {
	content: "";
	flex: none;
	inline-size: var(--wp--custom--full-width--group-bar-width);
	block-size: var(--wp--custom--full-width--group-bar-height);
	background: var(--wp--custom--content--heading-rule);
}

/* Two classes: links get their color and underline from the global element styles. */
.gww-group-title .gww-group-title__link {
	color: inherit;
	text-decoration: none;
}

.gww-group-title .gww-group-title__link:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

@media (prefers-reduced-motion: no-preference) {
	.gww-link-rows .gww-link-rows__link,
	.gww-group-title .gww-group-title__link {
		transition: color 0.2s ease;
	}
}

/* tablet: two columns of rows. */
@media (min-width: 48em) {
	.gww-link-rows {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--wp--custom--full-width--row-gap);
	}
}

/* laptop: the frame's three columns, 48px rhythm, 100px above and below. */
@media (min-width: 64em) {
	.gww-page {
		padding-block: var(--wp--custom--page-layout--padding-block);
	}

	.gww-page:has(+ .content-cta),
	.gww-page:has(+ .gww-page) {
		padding-block-end: var(--wp--custom--full-width--gap);
	}

	.gww-page + .content-cta {
		padding-block: 0 var(--wp--custom--page-layout--padding-block);
	}

	.gww-page > .firm-section__container,
	.gww-page + .content-cta > .firm-section__container {
		gap: var(--wp--custom--full-width--gap);
	}

	.gww-link-rows {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.gww-link-rows__item,
	.gww-link-rows .gww-link-rows__link {
		padding: var(--wp--custom--full-width--row-padding);
	}

	.gww-link-rows__item--link {
		padding: 0;
	}
}

/* ==========================================================================
   19. Practice cards (Phase 5d) — Desktop / Practice Card — Plain 2517:8444
   (492 × 201, #3371F2 → #0E2561, 1.5px white border, 0 6.64 6.64 25% shadow,
   Instrument Sans Bold 26 / 1.1 capitals, 30px side padding, 15px gaps; the
   gold bar grows from the center on hover), mobile 2529:8556 (328 × 96, 20px
   label). S2: linkList.style "cards".
   ========================================================================== */

.gww-practice-cards {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--custom--practice-card--gap);
	inline-size: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-practice-cards__item {
	display: flex;
}

/* Two classes: links get their color and underline from the global element styles.
   Hover and focus belong to links only: a home card without a page is a <div> (2026-11-09). */
.gww-practice-cards .gww-practice-card {
	position: relative;
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: center;
	min-block-size: var(--wp--custom--practice-card--height-mobile);
	padding: var(--wp--preset--spacing--30) var(--wp--custom--practice-card--label-padding);
	border: var(--wp--custom--practice-card--border) solid var(--wp--preset--color--base);
	background: var(--wp--custom--practice-card--background);
	box-shadow: var(--wp--custom--practice-card--shadow);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--custom--practice-card--label-size);
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	overflow: hidden;
}

.gww-practice-cards .gww-practice-card::after {
	content: "";
	position: absolute;
	inset-block-end: 0;
	inset-inline: 0;
	block-size: var(--wp--custom--practice-card--bar);
	background: var(--wp--preset--gradient--accent-linear);
	transform: scaleX(0);
	transform-origin: center;
}

.gww-practice-cards a.gww-practice-card:is(:hover, :focus-visible) {
	background: var(--wp--custom--practice-card--background-hover);
	color: var(--wp--preset--color--base);
	transform: translateY(var(--wp--custom--practice-card--lift));
}

.gww-practice-cards a.gww-practice-card:is(:hover, :focus-visible)::after {
	transform: scaleX(1);
}

.gww-practice-cards a.gww-practice-card:focus-visible {
	outline: var(--wp--custom--border-width--thick) solid var(--wp--preset--color--primary);
	outline-offset: var(--wp--custom--border-width--thick);
}

@media (prefers-reduced-motion: no-preference) {
	.gww-practice-cards .gww-practice-card {
		transition: background 0.3s ease-out, transform 0.3s ease-out;
	}

	.gww-practice-cards .gww-practice-card::after {
		transition: transform 0.3s ease-out;
	}
}

/* tablet: two cards per row (no frame). */
@media (min-width: 48em) {
	.gww-practice-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* laptop: the frame's 3 × 3 grid, 201px cards. */
@media (min-width: 64em) {
	.gww-practice-cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.gww-practice-cards .gww-practice-card {
		min-block-size: var(--wp--custom--practice-card--height);
	}
}

/* ==========================================================================
   20. Areas We Serve (Phase 5d) — Desktop / Areas We Serve 2408:3818: "Cities
   by County" 2561:8385 (county groups 48 apart: Category Title 2431:524 then
   Link Item rows in three columns, 32 / 8 gaps), the Office block 2408:3922
   (#0549B2 → navy box, 56px padding, 20px gaps, Gold 500 eyebrow, Playfair 44
   title, 24px icon rows, the call button; the map 565 tall). Mobile 2529:9682:
   the "Counties" list first (rows 20 apart), groups 32 apart, 24px titles,
   rows 14px padding 6 apart; the box 28px padding, 28px title, map 220.
   S2: linkList.style "rows", an office block section.
   ========================================================================== */

.gww-areas__counties .gww-link-rows {
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--40);
}

/* A county without a page (Phase 6d) is the same row without a link. */
.gww-areas__counties .gww-link-rows .gww-link-rows__link,
.gww-areas__counties .gww-link-rows__item:not(.gww-link-rows__item--link) {
	padding: var(--wp--custom--full-width--row-padding);
}

.gww-areas__groups {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--full-width--group-gap-mobile);
	inline-size: 100%;
}

.gww-areas__group {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--full-width--group-title-gap);
}

/* Office block */
.gww-office {
	inline-size: 100%;
	box-shadow: var(--wp--preset--shadow--md);
}

.gww-office__info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--custom--office--gap);
	padding: var(--wp--custom--office--padding-mobile);
	background: var(--wp--custom--office--background);
	color: var(--wp--preset--color--base);
}

.gww-office__eyebrow {
	margin: 0;
	color: var(--wp--preset--color--rating);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--h-6);
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-transform: uppercase;
}

.gww-office__title {
	color: inherit;
	font-size: var(--wp--custom--office--title-size);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-2);
}

.gww-office__text {
	margin: 0;
	font-size: var(--wp--preset--font-size--body);
	line-height: var(--wp--custom--line-height--body);
}

.gww-office__row {
	display: flex;
	align-items: center;
	gap: var(--wp--custom--office--row-gap);
	margin: 0;
	font-size: var(--wp--custom--office--row-font-size);
	font-style: normal;
	font-weight: 600;
	line-height: var(--wp--custom--line-height--h-5);
}

.gww-office__row-icon {
	flex: none;
	inline-size: var(--wp--custom--office--icon-size);
	block-size: var(--wp--custom--office--icon-size);
	color: var(--wp--preset--color--rating);
}

/* Two classes: links get their color from the global element styles. */
.gww-office__row .firm-phone--office-block {
	color: inherit;
	text-decoration: none;
}

.gww-office__row .firm-phone--office-block:is(:hover, :focus-visible) {
	color: inherit;
	text-decoration: underline;
}

/* The call button (a phone link styled as the theme button; full width on phones). */
.gww-office__info .gww-office__button {
	inline-size: 100%;
}

.gww-office__map {
	block-size: var(--wp--custom--office--map-height-mobile);
}

.gww-office__map iframe {
	inline-size: 100%;
	block-size: 100%;
	border: 0;
}

/* laptop: the frame's desktop block. */
@media (min-width: 64em) {
	.gww-areas__counties {
		display: none;
	}

	.gww-areas__groups {
		gap: var(--wp--custom--full-width--group-gap);
	}

	.gww-office__info {
		padding: var(--wp--custom--office--padding);
	}

	.gww-office__info .gww-office__button {
		inline-size: auto;
	}

	.gww-office__map {
		block-size: var(--wp--custom--office--map-height);
	}
}

/* ==========================================================================
   21. Location page (Phase 5d) — Desktop / Oklahoma City Practice Areas
   2408:3460 (the heading pattern, the Link Grid of Desktop / Link Item rows
   in three columns, the inline CTA 56 below), Mobile 2529:9356 (one column,
   rows 20 apart). The rows and heading come from block 18; the county pages
   (page kind location, no body) render it through the client mu-plugin.
   ========================================================================== */

.gww-page--location .gww-link-rows {
	gap: var(--wp--preset--spacing--40);
}

.gww-page--location .gww-link-rows .gww-link-rows__link {
	padding: var(--wp--custom--full-width--row-padding);
}

@media (min-width: 48em) {
	.gww-page--location .gww-link-rows {
		gap: var(--wp--custom--full-width--row-gap);
	}
}

/* ==========================================================================
   22. Case Results (Phase 5d) — Desktop / Sample Case Results 2409:2717: the
   heading pattern, the Outcome Card rows (not built: results are claims,
   G-11), the Disclaimer 2409:2767 (gold-50 #FBF8EF box, 1px #E0E0E0 border,
   24 / 32 padding, Instrument Sans Medium Italic 16 / 1.6 Gray 80), the CTA
   56 below. Mobile 2532:8502: 25 / 21 padding. S2: a Case Results template.
   ========================================================================== */

.gww-results__pending {
	inline-size: 100%;
}

.gww-results__disclaimer {
	inline-size: 100%;
	margin: 0;
	padding: var(--wp--custom--results--disclaimer-padding-mobile);
	border: var(--wp--custom--border-width--thin) solid var(--wp--custom--results--disclaimer-border);
	background: var(--wp--custom--results--disclaimer-background);
	color: var(--wp--preset--color--foreground);
	font-size: var(--wp--preset--font-size--body-sm);
	font-style: italic;
	font-weight: 500;
	line-height: var(--wp--custom--line-height--body-lg);
}

@media (min-width: 64em) {
	.gww-results__disclaimer {
		padding: var(--wp--custom--results--disclaimer-padding);
	}
}

/* ==========================================================================
   23. Testimonials (Phase 5d) — Desktop / Testimonials 2409:3081: the heading
   pattern, the Trustindex area 2424:2852 (1500 wide, surface box with the
   divider border, 49px padding; the widget draws itself), the "Share Your
   Experience" banner 2409:3145 (surface box, 48 / 56 padding, eyebrow,
   Playfair 36 / 1.25 Blue 800 title, 18 / 1.7 text, the gold button on the
   right), the CTA 48 below. Mobile 2532:8856: 25px padding, the button full
   width under the copy. S2: a Testimonials template with a review banner.
   ========================================================================== */

.gww-reviews {
	inline-size: 100%;
	padding: var(--wp--custom--reviews--area-padding-mobile);
	border: var(--wp--custom--border-width--thin) solid var(--wp--custom--reviews--area-border);
	background: var(--wp--custom--reviews--area-background);
}

/* The reviews block spans the box, not the content measure. */
.gww-reviews .firm-reviews-widget--page {
	inline-size: 100%;
	max-inline-size: none;
	margin-inline: 0;
}

.gww-review-banner {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--reviews--banner-gap-mobile);
	inline-size: 100%;
	padding: var(--wp--custom--reviews--banner-padding-mobile);
	border: var(--wp--custom--border-width--thin) solid var(--wp--custom--reviews--area-border);
	background: var(--wp--custom--reviews--area-background);
}

.gww-review-banner__copy {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--custom--reviews--banner-copy-gap);
	min-inline-size: 0;
}

.gww-review-banner__eyebrow {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--h-6);
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-transform: uppercase;
}

.gww-review-banner__title {
	color: var(--wp--custom--content--heading-color);
	font-size: var(--wp--custom--reviews--banner-title-size);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-3);
	overflow-wrap: break-word;
}

.gww-review-banner__text {
	margin: 0;
	font-size: var(--wp--preset--font-size--body);
	line-height: var(--wp--custom--line-height--body);
}

.gww-review-banner .gww-review-banner__button {
	flex: none;
	inline-size: 100%;
}

/* laptop: the frame's 49px box, the banner row with the button on the right. */
@media (min-width: 64em) {
	.gww-reviews {
		padding: var(--wp--custom--reviews--area-padding);
	}

	.gww-review-banner {
		flex-direction: row;
		align-items: center;
		gap: var(--wp--custom--reviews--banner-gap);
		padding: var(--wp--custom--reviews--banner-padding);
	}

	.gww-review-banner .gww-review-banner__button {
		inline-size: auto;
	}
}

/* ==========================================================================
   24. Resources hub (Phase 5d) — Desktop / Resources 2411:2940: the heading
   pattern, "Row / Sample Resources" 2503:16738 (two 676 groups 148 apart;
   Resource Group 2411:2947: Playfair 32 / 1.25 Blue 800 title, 18px gap,
   Resource Link rows 2431:556: SemiBold 18 / 1.4 Blue 600 with the 9 × 14
   gold chevron, 16px padding, 18 apart; icon and description hidden), the
   CTA 48 below. Mobile 2532:9601: one column, groups 32 apart, 24px titles,
   54px rows. S2: the resource group style on sections/link-groups.
   ========================================================================== */

.gww-resources {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--custom--resources--row-gap) var(--wp--custom--resources--column-gap);
	inline-size: 100%;
}

.gww-resources__group {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--wp--custom--resources--group-gap);
	min-inline-size: 0;
}

.gww-resources__title {
	color: var(--wp--custom--content--heading-color);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--custom--resources--title-size);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-3);
	overflow-wrap: break-word;
}

.gww-resources__subtitle {
	margin: 0;
	color: var(--wp--preset--color--foreground);
}

.gww-resources__links {
	display: grid;
	gap: var(--wp--custom--resources--group-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-resources__item {
	display: flex;
}

/* Two classes: links get their color and underline from the global element styles. */
.gww-resources__links .gww-resources__link {
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--custom--resources--link-padding-mobile);
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 600;
	line-height: var(--wp--custom--line-height--h-6);
	text-decoration: none;
	overflow-wrap: anywhere;
}

.gww-resources__links .gww-resources__link:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--primary-dark);
	text-decoration: underline;
}

@media (prefers-reduced-motion: no-preference) {
	.gww-resources__links .gww-resources__link {
		transition: color 0.2s ease;
	}
}

/* laptop: the frame's two columns. */
@media (min-width: 64em) {
	.gww-resources {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gww-resources__links .gww-resources__link {
		padding: var(--wp--custom--resources--link-padding);
	}
}

/* ==========================================================================
   25. FAQs page (Phase 5d) — Desktop / FAQs 2411:3347: the heading pattern 56
   above two 734 columns 32 apart, the Desktop / FAQ Items (block 7) 12 apart,
   the CTA 56 below. Mobile 2533:8491: one column, items 12 apart, the CTA
   28 below. The starter section keeps its options (light, 2 columns, bars);
   only the rhythm changes here. S2: an eyebrow for sections/faq.
   ========================================================================== */

.gww-faqs .gww-page--faqs {
	padding-block-end: var(--wp--custom--full-width--gap-mobile);
}

.gww-faqs .gww-page--faqs:has(+ .faq) {
	padding-block-end: var(--wp--custom--full-width--gap-mobile);
}

.gww-faqs .faq {
	padding-block: 0;
}

/* The FAQ section's container is the 1500 row at 1920 too. */
.gww-faqs .faq > .firm-section__container {
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
}

.gww-faqs .faq__columns {
	gap: var(--wp--custom--faq--item-gap) var(--wp--custom--faq--column-gap);
}

.gww-faqs .faq__column {
	gap: var(--wp--custom--faq--item-gap);
}

.gww-faqs .faq + .content-cta {
	padding-block: var(--wp--custom--full-width--gap-mobile) var(--wp--custom--page-layout--padding-block-mobile);
}

/* The CTA band at container width here too (the heading section may be absent for visitors). */
.gww-faqs .content-cta > .firm-section__container {
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
}

.gww-faqs .content-cta .firm-cta--background-photo {
	inline-size: 100%;
}

/* Visitors without questions: the CTA follows the breadcrumbs with the page padding. */
.gww-faqs > .content-cta:first-child {
	padding-block: var(--wp--custom--page-layout--padding-block-mobile);
}

@media (min-width: 64em) {
	.gww-faqs .gww-page--faqs,
	.gww-faqs .gww-page--faqs:has(+ .faq) {
		padding-block-end: var(--wp--custom--full-width--gap-large);
	}

	.gww-faqs .faq + .content-cta {
		padding-block: var(--wp--custom--full-width--gap-large) var(--wp--custom--page-layout--padding-block);
	}

	.gww-faqs > .content-cta:first-child {
		padding-block: var(--wp--custom--page-layout--padding-block);
	}
}

/* FAQ items of the section (the FAQs page, light variant): the Desktop / FAQ
   Item of block 7 — the gradient question bar with the #0B2A6B line,
   Instrument Sans Bold 20 / 1.4 white, 22 / 28 padding, the gold chevron
   (up when open), the white answer card with the divider border, 17 / 1.7,
   24 / 28 / 28 padding — instead of the starter's painted card and display
   question. Three classes: over the light variant's :has() rules. */
.gww-faqs .faq--light .faq__item,
.gww-faqs .faq--light .faq__item:has([aria-expanded="true"]) {
	background: none;
	color: var(--wp--preset--color--foreground);
}

.gww-faqs .faq--light .faq__question {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--body-lg);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-6);
}

.gww-faqs .faq--light .faq__button {
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--custom--faq--question-padding);
	border: var(--wp--custom--border-width--thin) solid var(--wp--custom--faq--bar-border);
	background: var(--wp--custom--faq--bar, var(--wp--preset--color--primary));
	color: var(--wp--custom--faq--bar-text, var(--wp--preset--color--base));
}

.gww-faqs .faq--light .faq__button[aria-expanded="true"] {
	background: var(--wp--custom--faq--bar-open, var(--wp--preset--color--primary-dark));
}

/* Closed state (State=Closed 2433:9495): surface bar, divider border, Blue 800 text. */
.gww-faqs .faq--light .faq__button[aria-expanded="false"] {
	border-color: var(--wp--custom--faq--bar-closed-border);
	background: var(--wp--custom--faq--bar-closed);
	color: var(--wp--custom--faq--bar-closed-text);
}

.gww-faqs .faq--light .faq__button .faq__icon {
	inline-size: var(--wp--custom--faq--icon-width);
	block-size: var(--wp--custom--faq--icon-height);
	background-color: var(--wp--custom--faq--icon, var(--wp--preset--color--primary));
	mask: url("../icons/chevron-up-sm.svg") center / contain no-repeat;
	-webkit-mask: url("../icons/chevron-up-sm.svg") center / contain no-repeat;
}

.gww-faqs .faq--light .faq__button .faq__icon--expand {
	rotate: 180deg;
}

.gww-faqs .faq--light .faq__panel {
	padding: var(--wp--custom--faq--answer-padding);
	border: var(--wp--custom--border-width--thin) solid var(--wp--custom--faq--card-border, var(--wp--preset--color--divider));
	border-block-start: 0;
	background: var(--wp--preset--color--base);
}

.gww-faqs .faq--light .faq__panel[hidden] {
	padding: 0;
	border: 0;
}

.gww-faqs .faq--light .faq__answer {
	padding-block-start: 0;
	border-block-start: 0;
	font-size: var(--wp--custom--faq--answer-font-size);
	line-height: var(--wp--custom--line-height--body);
}

.gww-faqs .faq--light .faq__button:focus-visible {
	outline-color: var(--wp--preset--color--primary-dark);
	outline-offset: var(--wp--custom--border-width--thick);
}

/* ==========================================================================
   26. Contact body (Phase 5d) — Desktop / Contact Us 2411:3730: the heading
   pattern (eyebrow, title, rule; no intro), the Row 2411:3758: Office 681
   (map 565 tall, then Office Details 2411:3761: #0549B2 → navy box, 44 / 44 /
   48 padding, 18px gaps, Gold 500 16px eyebrow, Playfair 32 / 1.25 white
   title, 18 / 1.7 address, the phone row 26 Bold with the 24px icon) | the
   Contact Form card 779 (white, divider border, lg shadow, the 6px gold rule,
   48 padding; eyebrow 16 Gold 700 + Playfair 38 title 14 apart, 48 / 8
   padding; labels 15 Gray 80, 54px #E7EBF2 fields with the #D3DBE8 border,
   16 / 20 gaps, the 13px required note, the full-width button, the 13px
   muted notice), 40 apart, 56 below the heading. Mobile 2533:8817: map 220,
   box 24 padding, 20px phone; card 25 padding, 24 / 8 heading with a 96 × 4
   gold rule under the title, 16px field gaps. S2: contact.layout "gww".
   ========================================================================== */

.contact-block:has(> .firm-section__container > .gww-contact) {
	padding-block: var(--wp--custom--page-layout--padding-block-mobile);
}

.contact-block:has(> .firm-section__container > .gww-contact) > .firm-section__container {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--full-width--gap-mobile);
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
}

.gww-contact__heading {
	inline-size: 100%;
}

.gww-contact {
	gap: var(--wp--custom--full-width--gap-mobile);
	inline-size: 100%;
}

.gww-contact__office {
	box-shadow: var(--wp--preset--shadow--md);
}

.gww-contact__map {
	block-size: var(--wp--custom--contact--map-height-mobile);
}

.gww-contact__map iframe {
	inline-size: 100%;
	block-size: 100%;
	border: 0;
}

/* The parent's map box fills the slot (Phase 6d): its own 372px minimum
   (contact-block.css: spacing-90 × 3) left 193px of white under the map at
   the 565px desktop slot and ran 152px past the 220px mobile one. */
.gww-contact__map .contact-block__map {
	block-size: 100%;
	min-block-size: 0;
}

/* The details box: over the parent's panel rules (two classes). */
.contact-block__panel.gww-contact__details {
	display: flex;
	flex: none;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--custom--contact--details-gap);
	padding: var(--wp--custom--contact--details-padding-mobile);
	background: var(--wp--custom--office--background);
}

.gww-contact__details .gww-contact__group {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--custom--contact--details-gap);
}

.gww-contact__eyebrow {
	margin: 0;
	color: var(--wp--preset--color--rating);
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--h-6);
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-transform: uppercase;
}

.gww-contact__details .gww-contact__name {
	margin: 0;
	color: inherit;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-3);
}

.gww-contact__details .gww-contact__address {
	font-size: var(--wp--preset--font-size--body);
	line-height: var(--wp--custom--line-height--body);
	white-space: pre-line;
}

.gww-contact__phone {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	margin: 0;
}

.gww-contact__phone-icon {
	flex: none;
	inline-size: var(--wp--custom--office--icon-size);
	block-size: var(--wp--custom--office--icon-size);
	color: var(--wp--preset--color--rating);
}

/* Two classes: over the parent's panel phone rule. */
.gww-contact__phone .firm-phone--contact {
	color: inherit;
	text-decoration: none;
}

.gww-contact__phone .firm-phone--contact:is(:hover, :focus-visible) {
	color: inherit;
	text-decoration: underline;
}

.gww-contact__phone .firm-phone--contact .firm-phone__number {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--custom--contact--phone-size-mobile);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-5);
}

/* The form card: over the parent's card rules (two classes). */
.contact-block__card.gww-contact__card {
	position: relative;
	padding: var(--wp--custom--contact--card-padding-mobile);
	border: var(--wp--custom--border-width--thin) solid var(--wp--preset--color--divider);
	box-shadow: var(--wp--preset--shadow--lg);
}

.contact-block__card.gww-contact__card::before {
	content: "";
	position: absolute;
	inset-block-start: calc(-1 * var(--wp--custom--border-width--thin));
	inset-inline: calc(-1 * var(--wp--custom--border-width--thin));
	block-size: var(--wp--custom--sidebar--strip-height);
	background: var(--wp--preset--gradient--accent-linear);
}

.gww-contact__card-heading {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--contact--card-heading-gap);
	padding: var(--wp--custom--contact--card-heading-padding-mobile);
	text-align: center;
}

.gww-contact__card-eyebrow {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--h-6);
	letter-spacing: var(--wp--custom--letter-spacing--wide);
	text-transform: uppercase;
}

.gww-contact__card .contact-block__card-title.gww-contact__card-title {
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--wp--custom--content--heading-color);
	font-size: var(--wp--custom--contact--card-title-size);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-2);
}

/* The mobile frame draws the gold rule under the form title. */
.gww-contact__card .gww-contact__card-title::after {
	content: "";
	display: block;
	inline-size: var(--wp--custom--content--rule-width);
	block-size: var(--wp--custom--content--rule-height);
	margin: var(--wp--custom--content--rule-gap) auto 0;
	background: var(--wp--custom--content--heading-rule);
}

/* The form at the frame's sizes (Gravity Forms Orbital variables on form.firm-form). */
.gww-contact__card .firm-form_wrapper form.firm-form {
	--gf-ctrl-font-size: var(--wp--custom--form--label-size);
	--gf-ctrl-size: var(--wp--custom--contact--field-height);
	--gf-ctrl-bg-color: var(--wp--custom--form--field-background);
	--gf-ctrl-bg-color-hover: var(--wp--custom--form--field-background);
	--gf-ctrl-bg-color-focus: var(--wp--custom--form--field-background);
	--gf-ctrl-border-color: var(--wp--custom--form--field-border);
	--gf-ctrl-label-color-primary: var(--wp--preset--color--foreground);
	--gf-ctrl-label-font-size-primary: var(--wp--custom--form--label-size);
	--gf-ctrl-label-line-height-primary: normal;
	--gf-ctrl-label-color-req: var(--wp--preset--color--foreground);
	--gf-label-space-primary: var(--wp--preset--spacing--20);
	--gf-form-gap-y: var(--wp--custom--contact--field-gap);
	--gf-form-gap-x: var(--wp--preset--spacing--40);
	--gf-ctrl-btn-font-weight: 600;
	--gf-ctrl-btn-border-color-primary: var(--wp--custom--button--border);
	--gf-ctrl-btn-border-color-hover-primary: var(--wp--custom--button--border);
	--gf-ctrl-btn-border-color-focus-primary: var(--wp--custom--button--border);
}

.gww-contact__card .firm-form_wrapper form.firm-form textarea.textarea {
	min-block-size: calc(var(--wp--custom--form--textarea-height) + var(--wp--preset--spacing--40));
}

.gww-contact__card .firm-form_wrapper form.firm-form .firm-form__required {
	margin-block: var(--wp--custom--contact--field-gap) 0;
	color: var(--wp--preset--color--foreground);
	font-size: var(--wp--custom--form--note-size);
}

.gww-contact__card .firm-form_wrapper.gform-theme--framework form.firm-form .gform_footer {
	align-items: stretch;
	margin-block-start: var(--wp--custom--contact--field-gap);
	padding: 0;
}

.gww-contact__card .firm-form_wrapper form.firm-form .gform_button {
	inline-size: 100%;
}

.gww-contact__card .firm-form_wrapper form.firm-form .firm-form__notice {
	margin-block: var(--wp--custom--contact--field-gap) 0;
	color: var(--wp--custom--text--subtle, var(--wp--preset--color--muted));
	font-size: var(--wp--custom--form--note-size);
	line-height: var(--wp--custom--line-height--body-lg);
	text-align: center;
}

/* laptop: the frame's columns, 56 under the heading, 100 above and below. */
@media (min-width: 64em) {
	.contact-block:has(> .firm-section__container > .gww-contact) {
		padding-block: var(--wp--custom--page-layout--padding-block);
	}

	.contact-block:has(> .firm-section__container > .gww-contact) > .firm-section__container {
		gap: var(--wp--custom--full-width--gap-large);
	}

	/* Two classes plus :has(): over the parent's laptop columns rule. */
	.contact-block__layout.gww-contact:has(> .contact-block__card) {
		grid-template-columns: minmax(0, var(--wp--custom--contact--office-column)) minmax(0, var(--wp--custom--contact--form-column));
		align-items: start;
		gap: var(--wp--custom--contact--column-gap);
	}

	.gww-contact__map {
		block-size: var(--wp--custom--contact--map-height);
	}

	.contact-block__panel.gww-contact__details {
		gap: var(--wp--custom--contact--details-gap);
		padding: var(--wp--custom--contact--details-padding);
	}

	.gww-contact__phone .firm-phone--contact .firm-phone__number {
		font-size: var(--wp--custom--contact--phone-size);
	}

	.contact-block__card.gww-contact__card {
		padding: var(--wp--custom--contact--card-padding);
	}

	.gww-contact__card-heading {
		padding: var(--wp--custom--contact--card-heading-padding);
	}

	.gww-contact__card .gww-contact__card-title::after {
		display: none;
	}
}

/* ==========================================================================
   27. Mobile pass and tap targets (Phase 5e) — Mobile / Navigation Menu
   2545:7704 (51px rows), Mobile / Footer 2529:9094, Mobile / Header
   2529:8797. Every nav item, crumb, sidebar link, pagination link and button
   is at least 44px to the finger (control.size): small controls drawn in the
   frames keep their look and get a centered 44px hit area (::after), rows
   that would overlap grow instead (footer links, submenu rows: G-42).
   S2: a tap-target rule for the parent's header, breadcrumbs and footer.
   ========================================================================== */

/* Hit areas: the box the finger can hit, centered on the drawn control. */
.site-header__toggle,
.firm-phone--call-bar,
.site-header__brand .custom-logo-link,
.site-footer .custom-logo-link,
.breadcrumbs a,
.firm-phone:not(.firm-phone--inline, .firm-phone--header),
.gww-group-title__link,
.gww-post-recent__link,
.contact-block__directions-link {
	position: relative;
}

.site-header__toggle::after,
.firm-phone--call-bar::after,
.site-header__brand .custom-logo-link::after,
.site-footer .custom-logo-link::after,
.breadcrumbs a::after,
.firm-phone:not(.firm-phone--inline, .firm-phone--header)::after,
.gww-group-title__link::after,
.gww-post-recent__link::after,
.contact-block__directions-link::after {
	content: "";
	position: absolute;
	inset-block-start: 50%;
	inset-inline-start: 50%;
	inline-size: max(100%, var(--wp--custom--control--size));
	block-size: max(100%, var(--wp--custom--control--size));
	translate: -50% -50%;
	z-index: 1; /* above the next section, which would take the lower edge */
}

/* The crumbs' area sits 8px low: on pages without a hero the band starts
   right under the sticky header, which would cover its top edge. */
.breadcrumbs a::after {
	translate: -50% calc(-50% + var(--wp--preset--spacing--20));
}

/* The toggle loses its 4px padding (the hit area above keeps it at 44), so
   the bar is the frame's 56.6 (28.6 logo + 14 / 14) instead of 60. */
.site-header__toggle {
	padding: 0;
}

/* Mandarin strip: a fixed line height, or the CJK fallback font grows the
   "normal" line box to 16px (strip 26 vs the frame's 23.4). */
.site-header__strip {
	line-height: var(--wp--custom--line-height--h-1);
}

/* Mobile menu: top-level rows at the frame's 51px, sub-items at 44 (the
   frame's 38 is under the target, G-42). */
.site-nav__list > li > :is(.menu-item__link, .menu-item__toggle, .menu-item__label) {
	min-block-size: var(--wp--custom--header--menu-row-height-mobile);
}

.site-nav .sub-menu :is(.menu-item__link, .menu-item__label) {
	min-block-size: var(--wp--custom--control--size);
}

/* Footer quick links: 44px rows in the two phone columns (the frame's 18px
   links on a 28px pitch, G-42). */
.footer-nav__list {
	row-gap: 0;
}

.footer-nav__list a {
	display: flex;
	align-items: center;
	min-block-size: var(--wp--custom--control--size);
}

/* Pagination boxes never under the target on phones. */
.pagination .pagination__link,
.pagination__dots {
	min-inline-size: var(--wp--custom--control--size);
	min-block-size: var(--wp--custom--control--size);
}

@media (min-width: 64em) {
	.footer-nav__list {
		row-gap: var(--wp--preset--spacing--20);
	}

	.footer-nav__list a {
		display: inline;
		min-block-size: 0;
	}

	.pagination .pagination__link,
	.pagination__dots {
		min-inline-size: 0;
		min-block-size: 0;
	}
}

@media (min-width: 80em) {
	.site-nav__list > li > :is(.menu-item__link, .menu-item__toggle, .menu-item__label),
	.site-nav .sub-menu :is(.menu-item__link, .menu-item__label) {
		min-block-size: 0;
	}
}

/* ==========================================================================
   28. Home hero and ornament (Phase 6b) — Desktop / Homepage → Section / Hero
   2381:2096 (1920 × 882), Mobile 2544:8467 (360 × 731): one centered column
   over the full-bleed photo and the navy veil (the frame's 50% navy plus the
   vertical navy fade), the star row (5f file), the h1 as the gold eyebrow
   line (Instrument Sans Medium, 5% tracking, Gold 500 with a soft shadow),
   the headline (Playfair Bold 72 / 1.25 → 36), the text (20 / 1.7 → 15 /
   1.6) and the button (full width on phones). From 105em the gold bracket
   lines and the screen-blended sparkles (drawn for the 1920 line breaks).
   The ornament: the gold rule at the top of the intro with the seal centered
   on it, from 80em (the mobile frame has neither).
   S2: a centered home hero layout (homeHero.layout); the ornament is
   client-only.
   ========================================================================== */
.gww-hero {
	position: relative;
	isolation: isolate;
	overflow: clip;
	padding-block: var(--wp--custom--home--hero-padding-top) var(--wp--custom--home--hero-padding-bottom);
	padding-inline: var(--wp--custom--gutter);
	text-align: center;
}

.gww-hero__media,
.gww-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.gww-hero__background {
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	object-position: var(--wp--custom--home--hero-image-position);
}

.gww-hero__overlay {
	z-index: 0;
	background: var(--wp--custom--home--hero-overlay);
}

.gww-hero__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--hero-gap);
	margin-inline: auto;
	max-inline-size: var(--wp--custom--home--hero-headline-width);
}

.gww-hero__stars {
	display: block;
	inline-size: var(--wp--custom--home--hero-stars-width);
	block-size: auto;
	margin-block-end: calc(var(--wp--custom--home--hero-stars-gap) - var(--wp--custom--home--hero-gap));
}

.gww-hero__titles {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--hero-gap);
	inline-size: 100%;
}

.gww-hero__title.firm-heading {
	--firm-heading-size: var(--wp--custom--home--hero-eyebrow-size);
	--firm-heading-line-height: var(--wp--custom--line-height--caption);
	max-inline-size: var(--wp--custom--home--hero-title-width);
	color: var(--wp--preset--color--rating);
	font-weight: 500;
	letter-spacing: var(--wp--custom--home--hero-eyebrow-tracking);
	text-shadow: var(--wp--custom--home--hero-eyebrow-shadow);
}

.gww-hero__headline.firm-heading {
	--firm-heading-line-height: var(--wp--custom--home--hero-headline-line-height);
	font-weight: 700;
	text-shadow: var(--wp--custom--text-shadow--hero);
}

.gww-hero__text {
	margin: 0;
	max-inline-size: var(--wp--custom--home--hero-text-width);
	font-size: var(--wp--custom--home--hero-text-size);
	line-height: var(--wp--custom--home--hero-text-line-height);
}

.wp-element-button.gww-hero__cta {
	display: flex;
	inline-size: 100%;
	margin-block-start: calc(var(--wp--custom--home--hero-button-gap) - var(--wp--custom--home--hero-gap));
}

.gww-hero__frame,
.gww-hero__sparkle {
	display: none;
}

/* Their <picture> wrappers (Phase 6c: no download below 105em) generate no
   box, so the images stay the flex items / positioned boxes they were; the
   <source> would otherwise become an empty flex item (one more gap each). */
.gww-hero__titles > picture {
	display: contents;
}

.gww-hero__titles > picture > source {
	display: none;
}

@media (min-width: 48em) {
	.gww-hero__text {
		line-height: var(--wp--custom--home--hero-text-line-height-wide);
	}

	.wp-element-button.gww-hero__cta {
		display: inline-flex;
		inline-size: auto;
	}
}

@media (min-width: 105em) {
	.gww-hero__frame,
	.gww-hero__sparkle {
		position: absolute;
		display: block;
		block-size: auto;
		pointer-events: none;
	}

	.gww-hero__frame {
		inset-block-start: var(--wp--custom--home--hero-frame-top);
		inline-size: var(--wp--custom--home--hero-frame-width);
	}

	.gww-hero__frame--left {
		inset-inline-start: calc(50% - var(--wp--custom--home--hero-frame-left));
	}

	.gww-hero__frame--right {
		inset-inline-start: calc(50% + var(--wp--custom--home--hero-frame-right));
	}

	.gww-hero__sparkle {
		inline-size: var(--wp--custom--home--hero-sparkle-width);
		mix-blend-mode: screen;
	}

	.gww-hero__sparkle--right {
		inset-block-start: var(--wp--custom--home--hero-sparkle-right-top);
		inset-inline-start: calc(50% + var(--wp--custom--home--hero-sparkle-right-left));
	}

	.gww-hero__sparkle--left {
		inset-block-start: var(--wp--custom--home--hero-sparkle-left-top);
		inset-inline-start: calc(50% - var(--wp--custom--home--hero-sparkle-left-left));
	}
}

/* The seal and gold rule between the hero and the intro (desktop only). */
.gww-ornament {
	display: none;
}

/* The seal (here and in the photo banner): the ring with its words turns
   around the mark's center; the GW&W mark stays still on top of it. */
.gww-seal__logo {
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
}

@media (prefers-reduced-motion: no-preference) {
	.gww-seal__ring {
		transform-origin: var(--wp--custom--home--seal-origin);
		animation: gww-seal-turn var(--wp--custom--home--seal-turn) linear infinite;
	}
}

@keyframes gww-seal-turn {
	to {
		rotate: 1turn;
	}
}

@media (min-width: 80em) {
	.gww-ornament {
		position: relative;
		z-index: 2;
		display: block;
		block-size: 0;
	}

	.gww-ornament__rule {
		position: absolute;
		inset-block-start: 0;
		inset-inline-start: 50%;
		inline-size: min(var(--wp--custom--home--ornament-width), var(--wp--custom--home--ornament-max-width));
		block-size: auto;
		translate: -50% 0;
	}

	.gww-ornament__seal {
		position: absolute;
		inset-block-start: var(--wp--custom--home--seal-top);
		inset-inline-start: 50%;
		inline-size: var(--wp--custom--home--seal-size);
		aspect-ratio: 1;
		border-radius: var(--wp--custom--radius--full);
		translate: -50% 0;
		backdrop-filter: blur(var(--wp--custom--home--seal-blur));
	}

	.gww-ornament__seal img {
		display: block;
		inline-size: 100%;
		block-size: auto;
	}

	/* The seal reaches above and below the rule: the hero and the intro keep
	   the frame's clearance at every desktop width (1920: 17 above the seal,
	   39.5 below it), where their fluid padding alone would run under it. */
	.gww-hero:has(+ .gww-ornament) {
		padding-block-end: max(var(--wp--custom--home--hero-padding-bottom), var(--wp--custom--home--hero-padding-bottom-ornament));
	}

	.gww-ornament + .gww-intro {
		padding-block-start: max(var(--wp--custom--home--intro-padding), var(--wp--custom--home--intro-padding-top-ornament));
	}
}

/* ==========================================================================
   29. Home intro (Phase 6b) — Desktop / Homepage → Section / Intro 2381:2135
   (1920 × 1153), Mobile 2544:8479 (360 × 1161): one centered column over the
   day skyline under the frame's #003B97 multiply tint and navy fade: the
   gold eyebrow (20 → 17, 5% tracking), the title (Playfair Bold 68 / 1.2
   → 34, capitals), the three paragraphs (18 → 16 / 1.7, 1131 wide, 24
   apart), the consultation card (580 wide on the transparent → #0458D9
   fade, Instrument Sans Bold 40 → 28 title, Medium 26 → 20 line, the black
   bar button with the gold border). Padding 167.5 → 56 / 16.
   S2: a centered home intro with an inline card.
   ========================================================================== */
.gww-intro {
	position: relative;
	isolation: isolate;
	overflow: clip;
	padding-block: var(--wp--custom--home--intro-padding);
	text-align: center;
}

.gww-intro > .firm-section__container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--intro-block-gap);
}

.gww-intro__media,
.gww-intro__tint,
.gww-intro__veil {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.gww-intro__background {
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	object-position: var(--wp--custom--home--intro-image-position);
}

.gww-intro__tint {
	z-index: 0;
	background: var(--wp--custom--home--intro-tint);
	mix-blend-mode: multiply;
}

.gww-intro__veil {
	z-index: 0;
	background: var(--wp--custom--home--intro-veil);
}

.gww-intro__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--intro-header-gap);
}

.gww-intro__eyebrow {
	margin: 0;
	color: var(--wp--preset--color--rating);
	font-size: var(--wp--custom--home--eyebrow-size);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--caption);
	letter-spacing: var(--wp--custom--home--eyebrow-tracking);
	text-transform: uppercase;
}

.gww-intro__title.firm-heading {
	--firm-heading-size: var(--wp--custom--home--intro-title-size);
	--firm-heading-line-height: var(--wp--custom--line-height--display-2);
	font-weight: 700;
	text-transform: uppercase;
}

.gww-intro__text {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--home--intro-paragraph-gap);
	max-inline-size: var(--wp--custom--home--intro-text-width);
	font-size: var(--wp--preset--font-size--body);
	line-height: var(--wp--custom--line-height--body);
}

.gww-intro__text > * {
	margin: 0;
}

.gww-intro__card {
	display: flex;
	flex-direction: column;
	inline-size: 100%;
	max-inline-size: var(--wp--custom--home--intro-card-width);
	margin-block-start: calc(var(--wp--custom--home--intro-card-gap) - var(--wp--custom--home--intro-block-gap));
}

.gww-intro__card-body {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--home--intro-card-gap-inner);
	padding: var(--wp--custom--home--intro-card-padding);
	background: var(--wp--custom--home--intro-card-background);
}

.gww-intro__card-title,
.gww-intro__card-text {
	margin: 0;
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-2);
	text-transform: capitalize;
}

.gww-intro__card-title {
	font-size: var(--wp--custom--home--intro-card-title-size);
}

.gww-intro__card-text {
	font-size: var(--wp--custom--home--intro-card-text-size);
	font-weight: 500;
	line-height: var(--wp--custom--home--intro-card-text-line-height);
}

.gww-intro__card-button {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--wp--custom--home--intro-button-padding);
	padding-block: calc(var(--wp--custom--home--intro-button-padding-block) - var(--wp--custom--border-width--thin));
	border: var(--wp--custom--border-width--thin) solid var(--wp--custom--button--border);
	background: var(--wp--custom--home--intro-button-background);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--custom--home--intro-button-size);
	font-weight: 700;
	line-height: var(--wp--custom--home--intro-card-text-line-height);
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
}

.gww-intro__card-button:is(:hover, :focus-visible) {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
}

/* The mobile frame's 16px side padding on the home sections (the site
   gutter is 20, G-31). */
.gww-intro > .firm-section__container {
	padding-inline: var(--wp--custom--home--gutter-mobile);
}

@media (min-width: 48em) {
	.gww-intro > .firm-section__container {
		padding-inline: var(--wp--custom--gutter);
	}
}

/* ==========================================================================
   30. Home practice areas (Phase 6b) — Desktop / Homepage → Section /
   Practice Areas 2381:2153 (1920 × 1218), Mobile 2544:8497 (360 × 1858):
   the navy radial band, the heading in its home style (gold eyebrow 20 →
   17, white Playfair 56 → 32 title, no gold rule, white 20 → 17 / 1.6
   intro, 1098 wide), the photo cards (sections/gww-practice-cards photo
   variant: 3 × 3 at 492 × 201 from laptop, one per row at 328 × 140 on
   phones; the photo under the frame's #0A1E50 color tint, a 40% navy layer
   and the vignette; label Bold 26 → 20), the button 56 → 28 below. Padding
   124 / 210 → 56 / 16, gaps 56 → 28. The home heading style serves the
   next home sections too.
   S2: a photo card style for the practice list.
   ========================================================================== */
.gww-home-practice {
	padding-block: var(--wp--custom--home--section-padding);
	background: var(--wp--custom--home--practice-background);
}

.gww-home-practice > .firm-section__container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--section-gap);
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
	padding-inline: var(--wp--custom--home--gutter-mobile);
}

.gww-heading--home {
	gap: var(--wp--custom--home--heading-gap);
	max-inline-size: var(--wp--custom--home--heading-width);
}

.gww-heading--home .gww-heading__eyebrow {
	color: var(--wp--preset--color--rating);
	font-size: var(--wp--custom--home--eyebrow-size);
	line-height: var(--wp--custom--line-height--caption);
	letter-spacing: var(--wp--custom--home--eyebrow-tracking);
}

.gww-heading--home .gww-heading__title {
	color: inherit;
	font-size: var(--wp--custom--home--title-size);
}

.gww-heading--caps .gww-heading__title {
	text-transform: uppercase;
}

.gww-heading--home .gww-heading__rule {
	display: none;
}

.gww-heading--home .gww-heading__intro {
	max-inline-size: none;
	margin-block-start: var(--wp--custom--home--heading-intro-gap);
	color: inherit;
	font-size: var(--wp--custom--home--intro-size);
	line-height: var(--wp--custom--home--intro-line-height);
}

.gww-practice-cards.gww-practice-cards--photo {
	max-inline-size: var(--wp--custom--home--practice-grid-width);
}

.gww-practice-cards--photo .gww-practice-card {
	isolation: isolate;
	min-block-size: var(--wp--custom--home--practice-card-height);
	padding: 0;
	font-size: var(--wp--custom--home--practice-label-size);
}

.gww-practice-cards--photo .gww-practice-card__image {
	position: absolute;
	inset: 0;
	z-index: -2;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.gww-practice-cards--photo .gww-practice-card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--wp--custom--home--practice-tint);
	mix-blend-mode: color;
}

.gww-practice-cards--photo .gww-practice-card__label {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-inline: var(--wp--custom--practice-card--label-padding);
	background: var(--wp--custom--home--practice-veil);
}

.gww-practice-cards--photo .gww-practice-card::after {
	z-index: 1;
}

.gww-practice-cards__actions {
	inline-size: 100%;
	margin: 0;
	text-align: center;
}

/* Phones: the frame's full-width button. */
.gww-practice-cards__actions .wp-element-button {
	display: flex;
	inline-size: 100%;
}

@media (min-width: 48em) {
	.gww-home-practice > .firm-section__container {
		padding-inline: var(--wp--custom--gutter);
	}

	.gww-practice-cards__actions .wp-element-button {
		display: inline-flex;
		inline-size: auto;
	}
}

@media (min-width: 64em) {
	.gww-practice-cards.gww-practice-cards--photo {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.gww-practice-cards--photo .gww-practice-card {
		min-block-size: var(--wp--custom--home--practice-card-height);
	}
}

/* ==========================================================================
   31. Home attorneys (Phase 6b) — Desktop / Homepage → Section / Meet The
   Attorneys 2381:2181 (1920 × 1097.5), Mobile 2544:8584 (360 × 2602): the
   navy band, the home heading with the title at the intro's 68 → 34 and
   the 18 → 16 / 1.7 intro (1084 wide), the gold laurels from 105em, the GWW
   card (block 12) with its gold profile bar under it (16px label, 75 tall;
   15px and 58 on phones, 14 below the card), four 360 cards 12 apart from
   laptop, two per row on tablets, stacked on phones (32 apart), the "View
   all members" button. Padding 39 / 124 → 56 / 16, gap 56 → 28.
   S2: GWW-18 (b) teamCard.style "band" on the home (full) variant.
   ========================================================================== */
.gww-home-attorneys {
	padding-block: var(--wp--custom--home--attorneys-padding-top) var(--wp--custom--home--section-padding);
}

.gww-home-attorneys > .firm-section__container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--section-gap);
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
	padding-inline: var(--wp--custom--home--gutter-mobile);
}

.gww-home-attorneys__header {
	position: relative;
	inline-size: 100%;
}

.gww-home-attorneys__header .gww-heading {
	gap: var(--wp--custom--home--attorneys-heading-gap);
	margin-inline: auto;
}

.gww-heading--display .gww-heading__title {
	font-size: var(--wp--custom--home--intro-title-size);
}

.gww-home-attorneys__header .gww-heading__intro {
	max-inline-size: var(--wp--custom--home--attorneys-intro-width);
	margin-block-start: 0;
	font-size: var(--wp--custom--home--attorneys-intro-size);
	line-height: var(--wp--custom--line-height--body);
}

.gww-home-attorneys__laurel {
	display: none;
}

.gww-home-attorneys__row {
	position: relative;
	inline-size: 100%;
}

.gww-home-attorneys__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--custom--home--attorneys-item-gap-mobile);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-home-attorneys__item {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--home--attorneys-button-gap-mobile);
}

.wp-element-button.gww-home-attorneys__button {
	min-block-size: 0;
	padding-block: calc(var(--wp--custom--home--attorneys-button-padding) - var(--wp--custom--border-width--thin));
	border-radius: 0;
	font-size: var(--wp--custom--home--attorneys-button-size);
	text-transform: uppercase;
}

.gww-home-attorneys .attorneys__actions {
	inline-size: 100%;
	margin: 0;
	text-align: center;
}

/* Phones: the frame's full-width button. */
.gww-home-attorneys .attorneys__actions .wp-element-button {
	display: flex;
	inline-size: 100%;
}

@media (min-width: 48em) {
	.gww-home-attorneys > .firm-section__container {
		padding-inline: var(--wp--custom--gutter);
	}

	.gww-home-attorneys .attorneys__actions .wp-element-button {
		display: inline-flex;
		inline-size: auto;
	}

	.gww-home-attorneys__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64em) {
	.gww-home-attorneys__list {
		grid-template-columns: repeat(4, minmax(0, var(--wp--custom--home--attorneys-card-width)));
		justify-content: center;
		gap: var(--wp--custom--home--attorneys-card-gap);
	}

	.gww-home-attorneys__item {
		gap: 0;
	}

	/* More than four cards: the starter carousel (a row that scrolls). */
	.gww-home-attorneys__row[data-firm-carousel] .gww-home-attorneys__list {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	.gww-home-attorneys__row[data-firm-carousel] .gww-home-attorneys__item {
		flex: 0 0 var(--wp--custom--home--attorneys-card-width);
		scroll-snap-align: start;
	}
}

@media (min-width: 105em) {
	.gww-home-attorneys__laurel {
		position: absolute;
		inset-block-start: var(--wp--custom--home--laurel-top);
		display: block;
		inline-size: var(--wp--custom--home--laurel-width);
		block-size: auto;
	}

	.gww-home-attorneys__laurel--left {
		inset-inline-start: calc(50% - var(--wp--custom--home--laurel-left));
	}

	.gww-home-attorneys__laurel--right {
		inset-inline-start: calc(50% + var(--wp--custom--home--laurel-right));
	}
}

/* ==========================================================================
   32. Home Why Choose Us (Phase 6b) — Desktop / Homepage → Section / Why
   Choose Us 2381:2238 (1920 × 1892), Mobile 2544:8648 (360 × 2711): the
   light grey band (#E8E8E8 → #A2A2A2), the centered heading (Gold 700
   eyebrow, Blue 800 Playfair 56 → 32 title, black 18 → 16 / 1.7 intro) and
   the button 20 below, the four feature cards (block 11's card with the
   frame's line icons: 25 / 30 padding, Bold 32 → 24 / 32 title, 18 → 16 /
   32 text) two per row 20 apart (one per row, 10 apart, on phones), then
   the group photo (1412 wide) with the four blurred gold leaves from 64em;
   on phones the photo sits between the button and the cards. Padding 124
   / 16.5 → 56 / 16.
   S2: a light Why Choose Us variant.
   ========================================================================== */
.gww-why {
	position: relative;
	overflow: clip;
	padding-block: var(--wp--custom--home--section-padding);
	background: var(--wp--custom--home--why-background);
	color: var(--wp--custom--home--why-text);
}

.gww-why > .firm-section__container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--section-gap);
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
	padding-inline: var(--wp--custom--home--gutter-mobile);
}

.gww-why__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--why-button-gap);
	inline-size: 100%;
}

.gww-heading--light .gww-heading__eyebrow {
	color: var(--wp--preset--color--accent);
}

/* The frame's title box (1554) is wider than the 1500 column: it may run
   past the column, centered, never past the screen's gutters. */
.gww-why .gww-heading--light {
	max-inline-size: none;
}

.gww-heading--light .gww-heading__title {
	inline-size: min(var(--wp--custom--home--why-title-width), 100vw - 2 * var(--wp--custom--home--gutter-mobile));
	color: var(--wp--preset--color--primary-dark);
	text-transform: capitalize;
}

.gww-heading--light .gww-heading__intro {
	max-inline-size: var(--wp--style--global--content-size);
	margin-block-start: 0;
	font-size: var(--wp--preset--font-size--body);
	line-height: var(--wp--custom--line-height--body);
}

.wp-element-button.gww-why__button {
	display: flex;
	inline-size: 100%;
}

.gww-why__cards {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--custom--home--why-card-gap);
	inline-size: 100%;
	max-inline-size: var(--wp--custom--home--why-cards-width);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-feature-card.gww-feature-card--home {
	gap: var(--wp--custom--home--why-card-inner-gap);
	padding: var(--wp--custom--home--why-card-padding);
}

.gww-feature-card--home .gww-feature-card__icon {
	inline-size: var(--wp--custom--home--why-icon-width);
	block-size: var(--wp--custom--home--why-icon-height);
	color: var(--wp--preset--color--base);
}

.gww-feature-card--home .gww-feature-card__title {
	font-size: var(--wp--custom--home--why-card-title-size);
	text-transform: capitalize;
	line-height: var(--wp--custom--home--why-card-line-height);
}

.gww-feature-card.gww-feature-card--home .gww-feature-card__text {
	font-size: var(--wp--custom--home--why-card-text-size);
	line-height: var(--wp--custom--home--why-card-line-height);
}

/* Phones: the photo between the button and the cards (the mobile frame). */
.gww-why__figure {
	position: relative;
	order: -1;
	inline-size: 100%;
	max-inline-size: var(--wp--custom--home--why-photo-width);
}

.gww-why__head {
	order: -2;
}

.gww-why__image {
	display: block;
	inline-size: 100%;
	block-size: auto;
}

.gww-why__leaf {
	display: none;
}

@media (min-width: 48em) {
	.gww-why > .firm-section__container {
		padding-inline: var(--wp--custom--gutter);
	}

	.gww-heading--light .gww-heading__title {
		inline-size: min(var(--wp--custom--home--why-title-width), 100vw - 2 * var(--wp--custom--gutter));
	}

	.wp-element-button.gww-why__button {
		display: inline-flex;
		inline-size: auto;
	}

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

@media (min-width: 64em) {
	.gww-why {
		padding-block-end: var(--wp--custom--home--why-padding-bottom);
	}

	.gww-why__figure {
		order: 0;
		margin-block-start: var(--wp--custom--home--why-photo-gap);
	}

	.gww-why__leaf {
		position: absolute;
		display: block;
		block-size: auto;
		translate: -50% -50%;
		pointer-events: none;
	}

	.gww-why__leaf--a {
		inset-block-start: 0;
		inset-inline-start: 98.4%;
		inline-size: 9.63%;
		rotate: -167deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur));
	}

	.gww-why__leaf--b {
		inset-block-start: 56%;
		inset-inline-start: -13.1%;
		inline-size: 13.52%;
		rotate: -13deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur));
	}

	.gww-why__leaf--c {
		inset-block-start: 42.9%;
		inset-inline-start: 112.3%;
		inline-size: 16.71%;
		rotate: 95.8deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur-large));
	}

	.gww-why__leaf--d {
		inset-block-start: 93.9%;
		inset-inline-start: -3.25%;
		inline-size: 7.62%;
		rotate: 84.2deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur-large));
	}
}

/* ==========================================================================
   33. Home "What To Do After an Arrest" (Phase 6b) — Desktop / Homepage →
   Section / What To Do After An Arrest 2381:2344 (1920 × 812), Mobile
   2544:8700 (360 × 1465): the blue band (#0458D8 under the navy fade), the
   home heading 15 apart (title 68 → 34 in capitals, intro 1123 wide), the
   three cards (block 11's card: 25 / 30 → 20 padding, Bold 32 → 24 / 1.2
   title, 18 → 16 / 32 text) 24 apart, in a row of equal heights from laptop,
   stacked on phones. Padding 108.5 → 56 / 16, gap 74 → 28.
   S2: client-only section.
   ========================================================================== */
.gww-arrest {
	padding-block: var(--wp--custom--home--arrest-padding);
	background: var(--wp--custom--home--arrest-background);
}

.gww-arrest > .firm-section__container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--arrest-gap);
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
	padding-inline: var(--wp--custom--home--gutter-mobile);
}

.gww-heading.gww-arrest__heading {
	gap: var(--wp--custom--home--arrest-heading-gap);
	max-inline-size: var(--wp--custom--home--arrest-intro-width);
}

.gww-arrest__heading .gww-heading__intro {
	max-inline-size: var(--wp--custom--home--arrest-intro-width);
	margin-block-start: 0;
	font-size: var(--wp--preset--font-size--body);
	line-height: var(--wp--custom--line-height--body);
}

.gww-arrest__cards {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--custom--home--arrest-card-gap);
	inline-size: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-feature-card.gww-feature-card--arrest {
	gap: var(--wp--custom--home--why-card-inner-gap);
	padding: var(--wp--custom--home--why-card-padding);
}

.gww-feature-card--arrest .gww-feature-card__title {
	font-size: var(--wp--custom--home--why-card-title-size);
	line-height: var(--wp--custom--home--arrest-card-title-line-height);
}

.gww-feature-card.gww-feature-card--arrest .gww-feature-card__text {
	font-size: var(--wp--custom--home--why-card-text-size);
	line-height: var(--wp--custom--home--why-card-line-height);
}

@media (min-width: 48em) {
	.gww-arrest > .firm-section__container {
		padding-inline: var(--wp--custom--gutter);
	}
}

@media (min-width: 64em) {
	.gww-arrest__cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* ==========================================================================
   34. Home reviews (Phase 6b-2) — Desktop / Homepage → Section / Testimonials
   (Trustindex) 2381:2359 (1920 × 1093), Mobile 2544:8715 (360 × 1707): the
   navy band under the thin gold rule (1651 × 7, 56 above the heading), the
   home heading (title in Playfair SemiBold 56 → 32, intro 20 below it), the
   Trustindex widget in a transparent box, no border (48 → 24
   padding, the page widget's reserved height), the button 56 → 28 below.
   Shown only with a widget ID. Padding 0 / 124 → 56 / 16.
   S2: the home reviews with a page widget instead of testimonial entries.
   ========================================================================== */
.gww-home-reviews {
	padding-block: var(--wp--custom--home--section-padding);
	background: var(--wp--preset--color--primary-darkest);
}

.gww-home-reviews > .firm-section__container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--section-gap);
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
	padding-inline: var(--wp--custom--home--gutter-mobile);
}

.gww-home-reviews__rule {
	display: none;
}

.gww-home-reviews__heading .gww-heading__title {
	font-weight: var(--wp--custom--home--reviews-title-weight);
}

.gww-home-reviews__heading .gww-heading__intro {
	margin-block-start: var(--wp--custom--home--reviews-intro-gap);
	font-size: var(--wp--preset--font-size--body);
	line-height: var(--wp--custom--line-height--body);
}

.gww-reviews.gww-home-reviews__box {
	inline-size: 100%;
	padding: var(--wp--custom--home--reviews-box-padding);
	/* Sumi 2026-11-10: no border, as the frame. */
	border: none;
	background: none;
}

.gww-home-reviews__actions {
	inline-size: 100%;
	margin: 0;
	text-align: center;
}

.gww-home-reviews__actions .wp-element-button {
	display: flex;
	inline-size: 100%;
}

@media (min-width: 48em) {
	.gww-home-reviews > .firm-section__container {
		padding-inline: var(--wp--custom--gutter);
	}

	.gww-home-reviews__actions .wp-element-button {
		display: inline-flex;
		inline-size: auto;
	}
}

@media (min-width: 64em) {
	.gww-home-reviews {
		padding-block-start: 0;
	}

	.gww-home-reviews__rule {
		display: block;
		inline-size: min(var(--wp--custom--home--reviews-rule-width), 100vw - 2 * var(--wp--custom--gutter));
		max-inline-size: none;
		block-size: auto;
		margin-block-end: calc(var(--wp--custom--home--reviews-rule-gap) - var(--wp--custom--home--section-gap));
	}
}

/* ==========================================================================
   35. Home photo banner (Phase 6b-2) — Desktop / Homepage → Section / Photo
   Banner 2381:2433 (1920 × 727), Mobile 2544:8862 (360 × 220): the sunset
   skyline (the frame's crop, 38% down) under the navy radial fade, the gold
   rule halves at the top edge, the seal centered low (243 → 129.5, 34.5 →
   45 above the bottom; on phones the frame centers it), four blurred leaves
   from 64em (positions in % of the band, from the frame). Decorative.
   S2: client-only section.
   ========================================================================== */
.gww-banner {
	position: relative;
	overflow: clip;
	block-size: var(--wp--custom--home--banner-height);
	background: var(--wp--preset--color--primary-darkest);
}

.gww-banner__image {
	position: absolute;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	object-position: var(--wp--custom--home--banner-image-position);
}

.gww-banner__fade {
	position: absolute;
	inset: 0;
	background: var(--wp--custom--home--banner-fade);
}

.gww-banner__rule {
	position: absolute;
	inset-block-start: 0;
	display: none;
	inline-size: var(--wp--custom--home--banner-rule-width);
	block-size: auto;
	translate: 0 -50%;
}

.gww-banner__rule--left {
	inset-inline-start: 0;
}

.gww-banner__rule--right {
	inset-inline-end: 0;
}

.gww-banner__seal {
	position: absolute;
	inset-block-end: var(--wp--custom--home--banner-seal-bottom);
	inset-inline-start: 50%;
	inline-size: var(--wp--custom--home--banner-seal-size);
	aspect-ratio: 1;
	border-radius: var(--wp--custom--radius--full);
	translate: -50% 0;
	backdrop-filter: blur(var(--wp--custom--home--seal-blur));
}

.gww-banner__seal img {
	display: block;
	inline-size: 100%;
	block-size: auto;
}

.gww-banner__leaf {
	display: none;
}

@media (min-width: 64em) {
	.gww-banner__rule {
		display: block;
	}

	.gww-banner__leaf {
		position: absolute;
		display: block;
		block-size: auto;
		translate: -50% -50%;
	}

	.gww-banner__leaf--a {
		inset-block-start: 24.1%;
		inset-inline-start: 86.1%;
		inline-size: 7.08%;
		rotate: -167deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur));
	}

	.gww-banner__leaf--b {
		inset-block-start: 77.6%;
		inset-inline-start: 2.89%;
		inline-size: 7.82%;
		rotate: -13deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur));
	}

	.gww-banner__leaf--c {
		inset-block-start: 64.1%;
		inset-inline-start: 96.3%;
		inline-size: 12.29%;
		rotate: 95.8deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur-large));
	}

	.gww-banner__leaf--d {
		inset-block-start: 26%;
		inset-inline-start: 10.8%;
		inline-size: 6.5%;
		rotate: 100.3deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur-large));
	}
}

/* ==========================================================================
   36. Home Areas We Serve + office (Phase 6b-2) — Desktop / Homepage →
   Section / Areas We Serve 2381:2444 (1920 × 1011), Mobile 2544:8879 (360 ×
   1607): the navy band, two columns 739 / 714, 28 apart, on a 1481 row
   (stacked on phones): the areas title (Playfair 56 → 32, capitals), intro
   and closing text (20 → 17 / 1.7), the city pills (46 tall, Gold 500
   outline, full radius, the gold pin, SemiBold 20 → 14, two columns 10
   apart); the office title (Playfair 40 → 28), intro, the map (714 ×
   268.7), the firm line and the phone (Bold 26 → 20), the address; the call
   button 60 → 44 below (full width on phones). Padding 20 / 124 → 56 / 16.
   S2: client-only section (the parent's areas and offices sections stay).
   ========================================================================== */
.gww-areas-office {
	padding-block: var(--wp--custom--home--section-padding);
	background: var(--wp--preset--color--primary-darkest);
}

.gww-areas-office > .firm-section__container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--areas-button-gap);
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
	padding-inline: var(--wp--custom--home--gutter-mobile);
}

.gww-areas-office__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--custom--home--section-gap);
	inline-size: 100%;
	max-inline-size: var(--wp--custom--home--areas-row-width);
}

.gww-areas-office__areas,
.gww-areas-office__office {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.gww-areas-office__areas {
	gap: var(--wp--custom--home--areas-block-gap);
}

.gww-areas-office__office {
	gap: var(--wp--custom--home--areas-office-gap);
}

.gww-areas-office__title.firm-heading,
.gww-areas-office__office-title.firm-heading {
	--firm-heading-size: var(--wp--custom--home--title-size);
	font-weight: 700;
	text-transform: uppercase;
}

.gww-areas-office__office-title.firm-heading {
	--firm-heading-size: var(--wp--custom--home--areas-office-title-size);
	max-inline-size: var(--wp--custom--home--areas-office-title-width);
	--firm-heading-line-height: var(--wp--custom--line-height--h-2);
}

/* Title + text pairs sit 10 apart (the frame's text gap), not the block gap. */
.gww-areas-office__title + .gww-areas-office__text,
.gww-areas-office__office-title + .gww-areas-office__text,
.gww-areas-office__firm + .gww-areas-office__address {
	margin-block-start: calc(var(--wp--custom--home--areas-text-gap) - var(--wp--custom--home--areas-block-gap));
}

.gww-areas-office__office-title + .gww-areas-office__text,
.gww-areas-office__firm + .gww-areas-office__address {
	margin-block-start: calc(var(--wp--custom--home--areas-text-gap) - var(--wp--custom--home--areas-office-gap));
}

.gww-areas-office__text,
.gww-areas-office__address {
	margin: 0;
	font-size: var(--wp--custom--home--areas-text-size);
	font-style: normal;
	line-height: var(--wp--custom--line-height--body);
}

.gww-areas-office__cities {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--custom--home--pill-gap) var(--wp--custom--home--pill-column-gap);
	inline-size: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-areas-office__city {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--custom--home--pill-gap);
	justify-self: start;
	min-block-size: var(--wp--custom--home--pill-height);
	padding-inline: var(--wp--custom--home--pill-padding);
	border: var(--wp--custom--border-width--thin) solid var(--wp--preset--color--rating);
	border-radius: var(--wp--custom--radius--full);
	font-size: var(--wp--custom--home--pill-label-size);
	font-weight: 600;
	line-height: var(--wp--custom--line-height--h-2);
}

.gww-areas-office__pin {
	flex: none;
	inline-size: var(--wp--custom--home--pill-icon-size);
	block-size: var(--wp--custom--home--pill-icon-size);
	color: var(--wp--preset--color--rating);
}

/* Phones: the frame's two equal columns, the long county-seat pill last on a full row. */
.gww-areas-office__city {
	justify-self: stretch;
}

.gww-areas-office__city--wide {
	grid-column: 1 / -1;
	order: 1;
}

.gww-areas-office__map {
	display: block;
	inline-size: 100%;
	block-size: auto;
	aspect-ratio: var(--wp--custom--home--areas-map-ratio);
	border: 0;
}

.gww-areas-office__firm,
.gww-areas-office__label,
.gww-areas-office__phone .firm-phone {
	margin: 0;
	font-size: var(--wp--custom--home--areas-strong-size);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--h-2);
	text-transform: capitalize;
}

.gww-areas-office__firm,
.gww-areas-office__address {
	max-inline-size: var(--wp--custom--home--areas-firm-width);
}

.gww-areas-office__phone {
	display: flex;
	flex-direction: column;
	gap: var(--wp--custom--home--areas-text-gap);
}

.gww-areas-office__phone a.firm-phone {
	color: inherit;
	line-height: var(--wp--custom--line-height--body);
	text-decoration: none;
}

.gww-areas-office__phone a.firm-phone:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--rating);
}

.gww-areas-office__actions {
	inline-size: 100%;
	margin: 0;
	text-align: center;
}

.gww-areas-office__actions .wp-element-button {
	display: flex;
	inline-size: 100%;
}

@media (min-width: 48em) {
	.gww-areas-office > .firm-section__container {
		padding-inline: var(--wp--custom--gutter);
	}

	.gww-areas-office__cities {
		grid-template-columns: var(--wp--custom--home--pill-columns);
		column-gap: 0;
	}

	.gww-areas-office__city {
		justify-self: start;
	}

	.gww-areas-office__city--wide {
		grid-column: auto;
		order: 0;
	}

	.gww-areas-office__actions .wp-element-button {
		display: inline-flex;
		inline-size: auto;
	}
}

@media (min-width: 64em) {
	.gww-areas-office {
		padding-block-start: var(--wp--custom--home--areas-padding-top);
	}

	.gww-areas-office__row {
		grid-template-columns: var(--wp--custom--home--areas-columns);
		column-gap: var(--wp--custom--home--areas-column-gap);
	}
}

/* ==========================================================================
   37. Home awards (Phase 6b-2) — Desktop / Homepage → Section / Awards &
   Recognition 2381:2513 (1920 × 496), Mobile 2544:9021 (360 × 455): the
   #E8E8E8 band, the heading (Gold 700 eyebrow, Blue 800 title in capitals),
   the badges in the frame's 283.6 × 90.3 box (contained), one centered row
   40 apart (stacked 20 apart on phones). Padding 124 → 56 / 16, gap 56 →
   28. The torn-paper edges are block 39.
   S2: an eyebrow argument for sections/awards and a static logo row.
   ========================================================================== */
.gww-awards {
	padding-block: var(--wp--custom--home--section-padding);
	background: var(--wp--custom--home--awards-background);
}

.gww-awards > .firm-section__container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--section-gap);
	padding-inline: var(--wp--custom--home--gutter-mobile);
}

.gww-awards__list {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--awards-logo-gap-mobile);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-awards__item {
	display: flex;
	justify-content: center;
}

.gww-awards__logo {
	display: block;
	inline-size: auto;
	block-size: auto;
	max-inline-size: var(--wp--custom--home--awards-logo-width);
	max-block-size: var(--wp--custom--home--awards-logo-height);
}

@media (min-width: 48em) {
	.gww-awards > .firm-section__container {
		padding-inline: var(--wp--custom--gutter);
	}

	.gww-awards__list {
		flex-direction: row;
		gap: var(--wp--custom--home--awards-logo-gap);
	}
}

/* ==========================================================================
   38. Home blog (Phase 6b-2) — Desktop / Homepage → Section / Blog 2381:2525
   (1920 × 927), Mobile 2544:9033 (360 × 1341): the navy band, the centered
   heading 8 apart (gold eyebrow, white Playfair title in capitals, 20 → 17
   / 1.7 intro, 1245 wide), the cards 23 below (the frame's gradient boxes,
   25 / 30 → 20 padding, 12 apart inside, centered vertically in the 374 box;
   title Bold 32 → 24 / 1.2 in title case, meta 16, excerpt 18 → 16 / 1.7),
   three 20 apart from laptop, stacked on phones; with more than three
   cards a carousel row with the frame's 44px #0544A6 arrows; the button 23
   below. Padding 124 → 56 / 16.
   S2: an intro argument and a carousel variant for sections/recent-posts.
   ========================================================================== */
.gww-blog {
	padding-block: var(--wp--custom--home--section-padding);
	background: var(--wp--preset--color--primary-darkest);
}

.gww-blog > .firm-section__container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--blog-gap);
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
	padding-inline: var(--wp--custom--home--gutter-mobile);
}

.gww-blog__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--blog-header-gap);
	text-align: center;
}

.gww-blog__eyebrow.firm-heading {
	--firm-heading-size: var(--wp--custom--home--eyebrow-size);
	color: var(--wp--preset--color--rating);
	font-weight: 500;
	letter-spacing: var(--wp--custom--home--eyebrow-tracking);
}

.gww-blog__title.firm-heading {
	--firm-heading-size: var(--wp--custom--home--title-size);
	font-weight: 700;
	text-transform: uppercase;
}

.gww-blog__intro {
	max-inline-size: var(--wp--custom--home--blog-intro-width);
	margin: 0;
	font-size: var(--wp--custom--home--intro-size);
	line-height: var(--wp--custom--line-height--body);
}

.gww-blog__row {
	position: relative;
	inline-size: 100%;
}

.gww-blog__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--custom--home--blog-card-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gww-blog__card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--wp--custom--home--why-card-inner-gap);
	padding: var(--wp--custom--home--why-card-padding);
	background: var(--wp--custom--about--card-background);
}

.gww-blog__card-title.firm-heading {
	--firm-heading-size: var(--wp--custom--home--why-card-title-size);
	--firm-heading-line-height: var(--wp--custom--line-height--h-2);
	font-family: var(--wp--preset--font-family--body);
	font-weight: 700;
	text-transform: capitalize;
}

/* The whole card is the title's link. */
.gww-blog__link {
	color: inherit;
	text-decoration: none;
}

.gww-blog__link::after {
	content: "";
	position: absolute;
	inset: 0;
}

.gww-blog__link:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--rating);
	text-decoration: underline;
}

.gww-blog__meta {
	position: relative;
	margin: 0;
	font-size: var(--wp--custom--home--blog-meta-size);
	line-height: var(--wp--custom--line-height--h-2);
}

.gww-blog__author {
	position: relative;
	color: inherit;
}

.gww-blog__excerpt {
	margin: 0;
	font-size: var(--wp--custom--home--why-card-text-size);
	line-height: var(--wp--custom--line-height--body);
}

.gww-blog__actions {
	inline-size: 100%;
	margin: 0;
	text-align: center;
}

.gww-blog__actions .wp-element-button {
	display: flex;
	inline-size: 100%;
}

.gww-blog__control.firm-carousel__control {
	--firm-carousel-control-color: var(--wp--custom--home--blog-control-background);
	background: var(--wp--custom--home--blog-control-background);
}

@media (min-width: 48em) {
	.gww-blog > .firm-section__container {
		padding-inline: var(--wp--custom--gutter);
	}

	.gww-blog__actions .wp-element-button {
		display: inline-flex;
		inline-size: auto;
	}
}

@media (min-width: 64em) {
	.gww-blog__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.gww-blog__card {
		min-block-size: var(--wp--custom--home--blog-card-min-height);
	}

	.gww-blog__row[data-firm-carousel] .gww-blog__list {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	.gww-blog__row[data-firm-carousel] .gww-blog__card {
		flex: 0 0 calc((100% - 2 * var(--wp--custom--home--blog-card-gap)) / 3);
		scroll-snap-align: start;
	}
}

/* ==========================================================================
   39. Home CTA (Phase 6b-2) — Desktop / Homepage → Section / CTA — The
   Decisions You Make 2381:2549 (1920 × 1295), Mobile 2544:9058 (360 × 596):
   the GW&W lockup (727.6 → 276 wide, 86 → 56 from the top), the courthouse
   photo (59% down) under the white top fade and the navy bottom fade (the
   mobile frame's navy starts at the top), four blurred leaves from 64em,
   then 516 → 32 below the lockup the centered copy 20 apart: the title in
   Playfair Medium 56 → 32 capitals, the text in Instrument Sans Medium 20
   → 17 / 1.2, the button (full width on phones). Padding bottom 124 → 56.
   S2: a "lockup + photo" style for the CTA banner.
   ========================================================================== */
.gww-cta {
	position: relative;
	isolation: isolate;
	overflow: clip;
	padding-block: var(--wp--custom--home--cta-padding-top) var(--wp--custom--home--section-padding);
	background: var(--wp--preset--color--primary-darkest);
	text-align: center;
}

.gww-cta > .firm-section__container {
	/* Static, so the photo layer spans the section, not the container. */
	position: static;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--cta-gap);
	max-inline-size: calc(var(--wp--style--global--content-size) + 2 * var(--wp--custom--gutter));
	padding-inline: var(--wp--custom--home--gutter-mobile);
}

.gww-cta__media {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.gww-cta__background {
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	object-position: var(--wp--custom--home--cta-image-position);
}

.gww-cta__fade {
	position: absolute;
	inset: 0;
	background: var(--wp--custom--home--cta-fade-mobile);
}

.gww-cta__lockup {
	display: block;
	inline-size: var(--wp--custom--home--cta-lockup-width);
	block-size: auto;
	/* The mobile frame's Graphic box is 154 tall for the 130 artwork. */
	margin-block-end: var(--wp--custom--home--cta-lockup-space-mobile);
}

.gww-cta__body {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--custom--home--cta-body-gap);
	inline-size: 100%;
	max-inline-size: var(--wp--custom--home--cta-body-width);
}

.gww-cta__title.firm-heading {
	--firm-heading-size: var(--wp--custom--home--title-size);
	font-weight: var(--wp--custom--home--cta-title-weight);
	text-transform: uppercase;
}

.gww-cta__text {
	max-inline-size: var(--wp--custom--home--cta-text-width);
	font-size: var(--wp--custom--home--cta-text-size);
	font-weight: 500;
	line-height: var(--wp--custom--line-height--h-2);
}

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

.wp-element-button.gww-cta__button {
	display: flex;
	inline-size: 100%;
}

.gww-cta__leaf {
	display: none;
}

@media (min-width: 48em) {
	.gww-cta > .firm-section__container {
		padding-inline: var(--wp--custom--gutter);
	}

	.gww-cta__fade {
		background: var(--wp--custom--home--cta-fade);
	}

	.gww-cta__lockup {
		margin-block-end: 0;
	}

	.wp-element-button.gww-cta__button {
		display: inline-flex;
		inline-size: auto;
	}
}

@media (min-width: 64em) {
	.gww-cta__leaf {
		position: absolute;
		display: block;
		block-size: auto;
		translate: -50% -50%;
	}

	.gww-cta__leaf--a {
		inset-block-start: 18.55%;
		inset-inline-start: 86.15%;
		inline-size: 7.08%;
		rotate: -167deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur));
	}

	.gww-cta__leaf--b {
		inset-block-start: 20.76%;
		inset-inline-start: 12%;
		inline-size: 12.89%;
		rotate: -13deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur));
	}

	.gww-cta__leaf--c {
		inset-block-start: 62.33%;
		inset-inline-start: 95.47%;
		inline-size: 12.29%;
		rotate: 95.8deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur-large));
	}

	.gww-cta__leaf--d {
		inset-block-start: 50.02%;
		inset-inline-start: 6.53%;
		inline-size: 5.61%;
		rotate: 84.2deg;
		filter: blur(var(--wp--custom--home--why-leaf-blur-large));
	}
}

/* ==========================================================================
   40. Home contact band and torn-paper dividers (Phase 6b-2).
   Contact: Desktop / Homepage → Section / Contact Form 2381:2625 (1920 ×
   1137), Mobile 2544:9135: the navy band behind components/contact-cta
   (home only), padding 124 → 56 / 16, the white card 1300 wide, 72 / 124 →
   32 / 20 inside. Dividers: Section Divider 2381:2824 … 2381:2845, the same
   #F3F3F3 strip (1920 × 72 inside a 173 export with its shadow) on six
   section edges, each shifted from the edge as in the frame; from 64em,
   scaled with the width (the mobile frame has none). The wrapper has no
   height, so nothing moves.
   ========================================================================== */
.home .contact-cta {
	padding: var(--wp--custom--home--section-padding) var(--wp--custom--home--gutter-mobile);
	border-top: 0;
	background: var(--wp--custom--home--contact-background);
}

.home .contact-cta__card {
	max-inline-size: var(--wp--custom--home--contact-card-width);
	padding: var(--wp--custom--home--contact-card-padding-block) var(--wp--custom--home--contact-card-padding-inline);
}

.gww-divider {
	display: none;
}

@media (min-width: 48em) {
	.home .contact-cta {
		padding-inline: var(--wp--custom--gutter);
	}
}

@media (min-width: 64em) {
	.gww-divider {
		position: relative;
		z-index: 2;
		display: block;
		block-size: 0;
	}

	.gww-divider__strip {
		position: absolute;
		inset-block-start: 0;
		inset-inline-start: 0;
		display: block;
		inline-size: 100%;
		block-size: auto;
		max-inline-size: none;
		pointer-events: none;
		translate: 0 var(--gww-divider-shift);
	}

	.gww-divider--practice {
		--gww-divider-shift: var(--wp--custom--home--divider-shift-practice);
	}

	.gww-divider--why {
		--gww-divider-shift: var(--wp--custom--home--divider-shift-why);
	}

	.gww-divider--after {
		--gww-divider-shift: var(--wp--custom--home--divider-shift-after);
	}

	.gww-divider--awards {
		--gww-divider-shift: var(--wp--custom--home--divider-shift-awards);
	}

	.gww-divider--blog {
		--gww-divider-shift: var(--wp--custom--home--divider-shift-blog);
	}

	.gww-divider--cta {
		--gww-divider-shift: var(--wp--custom--home--divider-shift-cta);
	}
}
