/*
 * Theme Name: Torchinsky Hebrew Funeral Home
 * Theme URI: https://www.321webmarketing.com/
 * Author: 321 Web Marketing
 * Author URI: https://www.321webmarketing.com/
 * Description: Torchinsky Hebrew Funeral Home child theme for the 321 parent theme on the Genesis Framework.
 * Version: 1.1.0
 * License: GPL-3.0-or-later
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 * Text Domain: tto-child
 * Domain Path: /languages
 * Template: genesis
 */

@charset 'UTF-8';

/*
 * Authoring notes
 * - tto-parent sets html { font-size: 62.5%; } so 1rem = 10px.
 * - px appears only in min-width / max-width declarations and @media queries; hairlines are 0.1rem.
 * - Breakpoint tiers: xxl 1352 / xl 1196 / l 992 / m 896 / s 768 / xs 600 / xxs 513 (max-width = tier - 1).
 * - Page sections are Advanced Columns rows classed `section section-<type>` (see build-artifacts/editor/builder.js).
 */

/* ## Design tokens
--------------------------------------------- */

:root {
	--color-ink: #1a1a1a;
	--color-charcoal: #2b2b2b;
	--color-header: #3a3a3a;
	--color-accent: #c9a77a;
	--color-accent-dark: #b38f5f;
	--color-secondary: #7a5c3e;
	--color-secondary-dark: #5f4630;
	--color-bg: #f4f3f0;
	--color-bg-alt: #e6e4df;
	--color-body: #4a4a4a;
	--color-body-ink: #1c1c1c;
	--color-hairline: #c9c6c0;
	--color-muted-on-dark: #bdbdbd;
	--color-muted-on-bronze: #d6d6d6;
	--color-white: #fff;
	--color-map: #dfe4e0;
	--font-serif: 'Newsreader', serif;
	--font-sans: 'Archivo', sans-serif;
	--gutter-x: 5.6rem;
	--wrap-max: 1352px;
	--section-y: 8.8rem;
	--theme-wrap-width: calc(100% - (var(--gutter-x) * 2));
	--theme-wrap-max-width: var(--wrap-max);
	--theme-wrap-padding-mobile: 0;
	--edge: max(var(--gutter-x), calc((100vw - var(--wrap-max)) / 2));
	--transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

/* ## Base
--------------------------------------------- */

body {
	background-color: var(--color-bg);
	color: var(--color-body-ink);
	font-family: var(--font-sans);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 400;
	font-family: var(--font-serif);
	letter-spacing: normal;
	text-wrap: pretty;
}

a {
	transition: var(--transition);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 0.2rem solid var(--color-accent);
	outline-offset: 0.3rem;
}

.entry-content a:not(.button) {
	color: var(--color-secondary);
	text-decoration: underline;
	text-decoration-thickness: 0.1rem;
	text-underline-offset: 0.3rem;
}

.entry-content a:not(.button):hover {
	color: var(--color-body-ink);
}

.screen-reader-text {
	position: absolute !important;
	width: 0.1rem;
	height: 0.1rem;
	white-space: nowrap;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

.site-description {
	display: none;
}

/* ## Page layout: full-width sections on pages (blog contexts keep the parent layout)
--------------------------------------------- */

body:not(.single-post):not(.blog):not(.archive):not(.search) .site-inner {
	max-width: none;
	margin: 0;
	padding: 0;
}

body:not(.single-post):not(.blog):not(.archive):not(.search) .site-inner > .wrap {
	width: 100%;
	max-width: none;
	padding: 0;
}

body:not(.single-post):not(.blog):not(.archive):not(.search) .content-sidebar-wrap {
	display: block;
}

body:not(.single-post):not(.blog):not(.archive):not(.search) .entry {
	margin: 0;
}

body:not(.single-post):not(.blog):not(.archive):not(.search) .entry-header .entry-title {
	display: none;
}

body:not(.single-post):not(.blog):not(.archive):not(.search) .entry-content > * {
	margin-left: 0;
	margin-right: 0;
}

/* ## Shared primitives
--------------------------------------------- */

.eyebrow {
	color: var(--color-secondary);
	font-size: 1.2rem;
	font-weight: 700;
	font-family: var(--font-sans);
	margin: 0 0 1.8rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.lead {
	color: var(--color-body);
	font-size: 1.8rem;
	line-height: 1.6;
}

.button-row {
	margin-top: 3.4rem;
}

.button-row,
.button-row > .wp-block-group__inner-container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.4rem;
}

.button-row .custom-button {
	width: auto;
	margin: 0;
}

/* Buttons (tto-custom-button): solid charcoal by default; is-accent / is-outline / is-light / is-link */

.entry-content a.button,
.site-footer a.button {
	background-color: var(--color-charcoal);
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	color: var(--color-bg);
	font-size: 1.3rem;
	font-weight: 700;
	font-family: var(--font-sans);
	line-height: 1;
	padding: 1.8rem 2.8rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	border: 0.2rem solid var(--color-charcoal);
	border-radius: 0;
	transition: var(--transition);
}

.entry-content a.button:hover,
.site-footer a.button:hover {
	background-color: var(--color-secondary);
	color: var(--color-white);
	border-color: var(--color-secondary);
}

.entry-content a.button.is-accent {
	background-color: var(--color-accent);
	color: var(--color-ink);
	border-color: var(--color-accent);
}

.entry-content a.button.is-accent:hover {
	background-color: var(--color-accent-dark);
	color: var(--color-ink);
	border-color: var(--color-accent-dark);
}

.entry-content a.button.is-outline {
	background-color: transparent;
	color: var(--color-secondary);
	border-color: var(--color-secondary);
}

.entry-content a.button.is-outline:hover {
	background-color: var(--color-secondary);
	color: var(--color-white);
}

.entry-content a.button.is-light {
	background-color: transparent;
	color: var(--color-white);
	border-color: var(--color-white);
}

.entry-content a.button.is-light:hover {
	background-color: var(--color-white);
	color: var(--color-ink);
}

.entry-content a.button.is-link {
	background-color: transparent;
	color: var(--color-body-ink);
	font-size: 1.2rem;
	padding: 0 0 0.4rem;
	border-width: 0 0 0.2rem;
	border-color: var(--color-charcoal);
}

.entry-content a.button.is-link:hover {
	background-color: transparent;
	color: var(--color-secondary);
	border-color: var(--color-secondary);
}

.entry-content a.button svg,
.entry-content a.button i {
	width: 1.2rem;
	height: 1.2rem;
	color: currentColor;
}

/* Phone numbers (tto-phone-number-block) */

.phone-number-block a.phone-link {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	color: var(--color-secondary);
	font-size: 2.4rem;
	font-family: var(--font-serif);
	line-height: 1.1;
	text-decoration: none;
}

.phone-number-block a.phone-link:hover {
	color: var(--color-body-ink);
}

.phone-number-block a.phone-link .icon svg,
.phone-number-block a.phone-link .icon i {
	width: 0.7em;
	height: 0.7em;
	color: currentColor;
}

.phone-number-block.is-large a.phone-link {
	font-size: 4.4rem;
}

/* ## Sections: shared frame
--------------------------------------------- */

.entry-content .section {
	background-color: var(--color-bg);
	margin: 0;
	padding: var(--section-y) 0;
}

.entry-content .section > .gb-layout-column-wrap,
.entry-content .section .gb-layout-column-wrap {
	display: grid;
}

.entry-content .section > .gb-layout-column-wrap {
	width: var(--theme-wrap-width);
	max-width: var(--theme-wrap-max-width);
	margin: 0 auto;
	grid-gap: 0 6.4rem;
}

.entry-content .section h2 {
	color: var(--color-body-ink);
	font-size: 4rem;
	line-height: 1.12;
	margin: 0;
}

.entry-content .section h3 {
	color: var(--color-body-ink);
	font-size: 2.6rem;
	line-height: 1.2;
	margin: 0;
}

.entry-content .section p,
.entry-content .section li {
	color: var(--color-body);
	font-size: 1.6rem;
	line-height: 1.65;
}

.entry-content .section h2 + p,
.entry-content .section h2 + ul,
.entry-content .section h2 + ol {
	margin-top: 2.2rem;
}

.entry-content .section p + p {
	margin-top: 1.2rem;
}

.entry-content .section .wp-block-image {
	margin: 0;
}

/* Tables (core/table in sections): editorial rules, no box grid; first column reads as row labels.
   The paragraph right after a table is its footnote. */

.entry-content .section .wp-block-table {
	margin: 3.2rem 0 0;
	overflow-x: auto;
}

.entry-content .section .wp-block-table table {
	width: 100%;
	border-collapse: collapse;
}

.entry-content .section .wp-block-table thead {
	border: 0;
}

.entry-content .section .wp-block-table th {
	color: var(--color-secondary);
	font-size: 1.2rem;
	font-weight: 700;
	font-family: var(--font-sans);
	line-height: 1.4;
	padding: 0 2.4rem 1.4rem 0;
	letter-spacing: 0.14em;
	text-align: left;
	text-transform: uppercase;
	border: 0;
	border-bottom: 0.2rem solid var(--color-body-ink);
	vertical-align: bottom;
}

.entry-content .section .wp-block-table td {
	color: var(--color-body);
	font-size: 1.6rem;
	line-height: 1.5;
	padding: 1.8rem 2.4rem 1.8rem 0;
	text-align: left;
	border: 0;
	border-bottom: 0.1rem solid var(--color-hairline);
	vertical-align: top;
}

.entry-content .section .wp-block-table td:first-child {
	color: var(--color-body-ink);
	font-weight: 600;
}

.entry-content .section .wp-block-table + p {
	font-size: 1.4rem;
	margin-top: 2rem;
}

/* The parent puts bullets on every li; section lists draw their own markers */

.entry-content .section ul li,
.entry-content .section ol li {
	list-style: none;
}

.entry-content .faq-accordion-items .accordion-body ul {
	margin: 1.2rem 0 0;
	padding-left: 2rem;
}

.entry-content .faq-accordion-items .accordion-body ul li {
	font-size: 1.6rem;
	list-style: disc;
}

/* Nested grids that re-tile by tier: drop Advanced Columns' named areas so column counts govern */

.entry-content .cards > .gb-layout-column-wrap,
.entry-content .stats > .gb-layout-column-wrap,
.entry-content .regions > .gb-layout-column-wrap,
.entry-content .tiles > .gb-layout-column-wrap,
.entry-content .section-phones > .gb-layout-column-wrap {
	grid-template-areas: none;
}

.entry-content .cards > .gb-layout-column-wrap > .gb-block-layout-column,
.entry-content .stats > .gb-layout-column-wrap > .gb-block-layout-column,
.entry-content .regions > .gb-layout-column-wrap > .gb-block-layout-column,
.entry-content .tiles > .gb-layout-column-wrap > .gb-block-layout-column,
.entry-content .section-phones > .gb-layout-column-wrap > .gb-block-layout-column {
	grid-area: auto;
}

/* Split sections: the image bleeds to the viewport edge, the copy aligns to the 1352px wrap */

.entry-content .section-hero:not(.is-text-only),
.entry-content .section-media:not(.is-text-only),
.entry-content .section-quote,
.entry-content .section-areas {
	padding: 0;
}

.entry-content .section-hero:not(.is-text-only) > .gb-layout-column-wrap,
.entry-content .section-media:not(.is-text-only) > .gb-layout-column-wrap,
.entry-content .section-quote > .gb-layout-column-wrap,
.entry-content .section-areas > .gb-layout-column-wrap {
	width: 100%;
	max-width: none;
	grid-gap: 0;
}

.entry-content .is-cover,
.entry-content .is-cover img {
	width: 100%;
	height: 100%;
	margin: 0;
}

.entry-content .is-cover img {
	object-fit: cover;
	display: block;
}

.entry-content .is-map {
	background-color: var(--color-map);
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	margin: 0;
	padding: 4rem;
}

.entry-content .is-map img {
	object-fit: contain;
	display: block;
	width: 100%;
	height: auto;
	max-height: 100%;
}

/* ## Section: Hero
--------------------------------------------- */

.entry-content .section-hero > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	min-height: 52rem;
}

.entry-content .section-hero.is-image-left > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

.entry-content .section-hero--content > .gb-block-layout-column-inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100%;
	padding: 8rem 8rem 8rem var(--edge);
}

.entry-content .section-hero.is-image-left .section-hero--content > .gb-block-layout-column-inner {
	padding: 8rem var(--edge) 8rem 8rem;
}

.entry-content .section-hero--media > .gb-block-layout-column-inner {
	min-height: 32rem;
	height: 100%;
}

.entry-content .section-hero h1 {
	color: var(--color-body-ink);
	font-size: 5.4rem;
	line-height: 1.08;
	margin: 0;
	letter-spacing: -0.01em;
}

.entry-content .section-hero .lead {
	max-width: 56rem;
	margin: 2.4rem 0 0;
}

.entry-content .section-hero .lead + .lead {
	margin-top: 1.2rem;
}

.entry-content .section-hero--note {
	max-width: 52rem;
	margin: 2.8rem 0 0;
	padding-top: 1.8rem;
	border-top: 0.1rem solid var(--color-hairline);
}

.entry-content .section-hero .section-hero--note {
	font-size: 1.4rem;
	line-height: 1.5;
}

.entry-content .section-hero.is-text-only {
	padding: var(--section-y) 0 6.4rem;
}

/* Text-only heroes size to their copy: the 52rem minimum is for heroes with an image column */

.entry-content .section-hero.is-text-only > .gb-layout-column-wrap {
	min-height: 0;
}

.entry-content .section-hero.is-text-only .section-hero--content > .gb-block-layout-column-inner {
	max-width: 84rem;
	padding: 0;
}

.entry-content .section-hero.is-feature > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	min-height: 70rem;
}

.entry-content .section-hero.is-feature .section-hero--content > .gb-block-layout-column-inner {
	padding: 9.6rem 9.6rem 9.6rem var(--edge);
}

/* ## Section: Checks (icon list band)
--------------------------------------------- */

.entry-content .section-checks {
	background-color: var(--color-secondary);
	padding: 4.8rem 0;
}

.entry-content .section-checks .checks {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.entry-content .section-checks .checks li {
	display: flex;
	align-items: flex-start;
	gap: 1.4rem;
	color: var(--color-bg);
	font-size: 2rem;
	font-family: var(--font-serif);
	line-height: 1.3;
	margin: 0;
	padding: 0 3.2rem;
}

.entry-content .section-checks .checks li:first-child {
	padding-left: 0;
}

.entry-content .section-checks .checks li:not(:last-child) {
	border-right: 0.1rem solid rgba(255, 255, 255, 0.18);
}

.entry-content .section-checks .checks li::before {
	flex: none;
	position: static;
	color: var(--color-accent);
	font-size: 1.6rem;
	font-family: var(--font-sans);
	line-height: 1.6;
	content: "\2713";
}

/* ## Section: Media + content
--------------------------------------------- */

.entry-content .section-media > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.entry-content .section-media--content > .gb-block-layout-column-inner {
	padding: 8.8rem 8rem 8.8rem var(--edge);
}

.entry-content .section-media.is-image-left .section-media--content > .gb-block-layout-column-inner {
	padding: 8.8rem var(--edge) 8.8rem 8rem;
}

.entry-content .section-media--media > .gb-block-layout-column-inner {
	min-height: 56rem;
	height: 100%;
}

.entry-content .section-media.is-alt,
.entry-content .section-media.is-alt .section-media--content {
	background-color: var(--color-bg-alt);
}

.entry-content .section-media.is-text-only .section-media--content > .gb-block-layout-column-inner {
	max-width: 84rem;
	padding: 0;
}

.entry-content .section-media ul,
.entry-content .section-prose ul {
	margin: 2.4rem 0 0;
	padding: 0;
	border-top: 0.1rem solid var(--color-hairline);
	list-style: none;
}

.entry-content .section-media ul li,
.entry-content .section-prose ul li {
	margin: 0;
	padding: 1.4rem 0 1.4rem 2.4rem;
	border-bottom: 0.1rem solid var(--color-hairline);
	text-indent: -2.4rem;
}

.entry-content .section-media ul li::before,
.entry-content .section-prose ul li::before {
	position: static;
	display: inline-block;
	width: 2.4rem;
	color: var(--color-secondary);
	content: "\2014";
	text-indent: 0;
}

.entry-content .section-media ol,
.entry-content .section-prose ol {
	margin: 2.4rem 0 0;
	padding: 0;
	border-top: 0.1rem solid var(--color-hairline);
	list-style: none;
	counter-reset: torch-list;
}

.entry-content .section-media ol li,
.entry-content .section-prose ol li {
	display: flex;
	gap: 1.8rem;
	margin: 0;
	padding: 1.6rem 0;
	border-bottom: 0.1rem solid var(--color-hairline);
	counter-increment: torch-list;
}

.entry-content .section-media ol li::before,
.entry-content .section-prose ol li::before {
	flex: none;
	position: static;
	width: 3rem;
	color: var(--color-secondary);
	font-family: var(--font-serif);
	content: counter(torch-list, decimal-leading-zero);
}

.entry-content .section-media h3,
.entry-content .section-prose h3 {
	font-size: 2.4rem;
	margin-top: 3.6rem;
}

.entry-content .section-media h3 + p,
.entry-content .section-prose h3 + p,
.entry-content .section-prose h3 + ul,
.entry-content .section-prose h3 + ol {
	margin-top: 1.2rem;
}

/* ## Section: Prose (rich content)
--------------------------------------------- */

.entry-content .section-prose > .gb-layout-column-wrap > .gb-block-layout-column > .gb-block-layout-column-inner {
	max-width: 84rem;
}

.entry-content .section-prose.is-alt {
	background-color: var(--color-bg-alt);
}

.entry-content .section-prose + .section-prose {
	padding-top: 0;
}

.entry-content .section-prose.is-alt + .section-prose.is-alt {
	padding-top: 0;
}

.entry-content .section-prose p + ul,
.entry-content .section-prose p + ol,
.entry-content .section-prose ul + p,
.entry-content .section-prose ol + p {
	margin-top: 2.4rem;
}

.entry-content .section-prose blockquote {
	background-color: var(--color-bg-alt);
	margin: 2.4rem 0 0;
	padding: 2.4rem 2.8rem;
	border: 0;
}

.entry-content .section-prose blockquote p {
	color: var(--color-body-ink);
	font-size: 2rem;
	font-family: var(--font-serif);
	line-height: 1.5;
}

/* ## Section: Intro
--------------------------------------------- */

.entry-content .section-intro {
	padding-bottom: 0;
}

.entry-content .section-intro > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	align-items: end;
}

.entry-content .section-intro h2 {
	font-size: 5.2rem;
	line-height: 1.1;
}

.entry-content .section-intro h2 em {
	color: var(--color-secondary);
}

.entry-content .section-intro p {
	max-width: 52rem;
	font-size: 1.7rem;
}

/* ## Section: Cards (feature grid)
--------------------------------------------- */

.entry-content .section-cards.is-alt {
	background-color: var(--color-bg-alt);
}

.entry-content .section-cards h2 {
	max-width: 76rem;
}

.entry-content .section-cards .cards {
	margin-top: 4.8rem;
}

.entry-content .section-cards .cards + .cards {
	margin-top: 4.8rem;
}

.entry-content .section-cards .cards > .gb-layout-column-wrap {
	grid-gap: 4.8rem 4.8rem;
}

/* Five cards (Service Areas "Choose Your Area") tile three across, so the last row holds two */

.entry-content .section-cards .cards.gb-layout-columns-5 > .gb-layout-column-wrap {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.entry-content .section-cards .feature-card > .gb-block-layout-column-inner {
	height: 100%;
	padding-top: 2.4rem;
	border-top: 0.2rem solid var(--color-charcoal);
}

.entry-content .section-cards .feature-card h3 {
	font-size: 2.4rem;
}

.entry-content .section-cards .feature-card h3 + p,
.entry-content .section-cards .feature-card h3 + ul {
	margin-top: 1.2rem;
}

.entry-content .section-cards .feature-card p,
.entry-content .section-cards .feature-card li {
	font-size: 1.5rem;
}

.entry-content .section-cards .feature-card ul {
	margin: 1.2rem 0 0;
	padding: 0;
	list-style: none;
}

.entry-content .section-cards .feature-card ul li {
	padding: 0.6rem 0;
	border-bottom: 0.1rem solid var(--color-hairline);
}

.entry-content .section-cards .feature-card .custom-button {
	margin-top: 2rem;
}

.entry-content .section-cards .icon-block {
	margin-bottom: 2rem;
}

.entry-content .section-cards .icon-block i,
.entry-content .section-cards .icon-block svg {
	width: 3.2rem;
	height: 3.2rem;
	color: var(--color-secondary);
	font-size: 3.2rem;
}

.entry-content .section-cards .cards + p {
	max-width: 76rem;
	margin-top: 4rem;
}

/* Band variant: bronze icon band (home) */

.entry-content .section-cards.is-band {
	background-color: var(--color-secondary);
	padding: 0;
}

.entry-content .section-cards.is-band .cards {
	margin: 0;
}

.entry-content .section-cards.is-band .cards > .gb-layout-column-wrap {
	grid-gap: 0;
}

.entry-content .section-cards.is-band .feature-card > .gb-block-layout-column-inner {
	padding: 5.6rem;
	border: 0;
}

.entry-content .section-cards.is-band .feature-card:first-child > .gb-block-layout-column-inner {
	padding-left: 0;
}

.entry-content .section-cards.is-band .feature-card:not(:last-child) > .gb-block-layout-column-inner {
	border-right: 0.1rem solid rgba(255, 255, 255, 0.15);
}

.entry-content .section-cards.is-band h3 {
	color: var(--color-bg);
}

.entry-content .section-cards.is-band p {
	color: var(--color-muted-on-bronze);
}

.entry-content .section-cards.is-band .icon-block i,
.entry-content .section-cards.is-band .icon-block svg {
	color: var(--color-accent);
}

/* ## Section: Steps (parent tto-guidance-steps restyled as rule columns)
--------------------------------------------- */

.entry-content .section-steps h2 {
	max-width: 76rem;
}

.entry-content .section-steps .guidance-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr));
	gap: 4.8rem;
	margin: 4.8rem 0 0;
	counter-reset: torch-step;
}

.entry-content .section-steps .guidance-step {
	display: block;
	padding-top: 2.8rem;
	border-top: 0.2rem solid var(--color-charcoal);
	counter-increment: torch-step;
}

.entry-content .section-steps .guidance-step--number {
	display: block;
	height: auto;
}

.entry-content .section-steps .guidance-step--number p {
	display: none;
}

.entry-content .section-steps .guidance-step--number::before {
	position: static;
	display: block;
	color: var(--color-secondary);
	font-size: 8rem;
	font-family: var(--font-serif);
	line-height: 1;
	content: counter(torch-step, decimal-leading-zero) ".";
}

.entry-content .section-steps .guidance-step--number::after {
	display: none;
}

.entry-content .section-steps .guidance-step--heading {
	display: block;
	min-height: 0;
}

.entry-content .section-steps .guidance-step--heading h3 {
	font-size: 2.6rem;
	margin: 3rem 0 0;
}

.entry-content .section-steps .guidance-step--copy p {
	max-width: 36rem;
	font-size: 1.5rem;
	line-height: 1.7;
	margin: 1.6rem 0 0;
}

.entry-content .section-steps .guidance-steps + p {
	margin-top: 4rem;
}

/* ## Section: CTA band
--------------------------------------------- */

.entry-content .section-cta {
	background-color: var(--color-secondary);
	padding: 7.2rem 0;
}

.entry-content .section-cta > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	grid-gap: 0 4rem;
}

.entry-content .section-cta h2 {
	color: var(--color-bg);
}

.entry-content .section-cta p {
	color: var(--color-muted-on-bronze);
	margin-top: 1.2rem;
}

.entry-content .section-cta--actions > .gb-block-layout-column-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 2.4rem;
}

.entry-content .section-cta .button-row {
	margin: 0;
}

.entry-content .section-cta .phone-number-block a.phone-link {
	color: var(--color-bg);
}

.entry-content .section-cta .phone-number-block a.phone-link:hover {
	color: var(--color-accent);
}

.entry-content .section-cta a.button.is-solid {
	background-color: var(--color-bg);
	color: var(--color-ink);
	border-color: var(--color-bg);
}

.entry-content .section-cta a.button.is-solid:hover {
	background-color: var(--color-accent);
	border-color: var(--color-accent);
}

.entry-content .section-cta a.button.is-outline {
	color: var(--color-bg);
	border-color: var(--color-bg);
}

.entry-content .section-cta a.button.is-outline:hover {
	background-color: var(--color-bg);
	color: var(--color-ink);
}

/* ## Section: Callout (parent tto-callout-cta)
--------------------------------------------- */

.entry-content .section-callout {
	padding-top: 0;
}

.entry-content .section-callout .callout-cta {
	background-color: var(--color-bg-alt);
	max-width: 84rem;
	margin: 0;
	padding: 3.2rem 3.6rem;
	border: 0;
	border-left: 0.4rem solid var(--color-secondary);
	border-radius: 0;
}

.entry-content .section-callout .callout-cta--heading p {
	display: flex;
	align-items: center;
	gap: 1.2rem;
	color: var(--color-body-ink);
	font-size: 2.2rem;
	font-family: var(--font-serif);
	line-height: 1.3;
	margin: 0;
}

.entry-content .section-callout .callout-cta--heading i,
.entry-content .section-callout .callout-cta--heading svg {
	width: 2rem;
	height: 2rem;
	color: var(--color-secondary);
}

.entry-content .section-callout .callout-cta--copy p {
	font-size: 1.5rem;
	margin-top: 1.2rem;
}

/* ## Section: Awards row
--------------------------------------------- */

.entry-content .section-awards {
	background-color: var(--color-bg-alt);
}

.entry-content .section-awards .awards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
	gap: 0.2rem;
	margin: 3.6rem 0 0;
	padding: 0;
	list-style: none;
}

.entry-content .section-awards .awards li {
	background-color: var(--color-bg);
	font-size: 1.4rem;
	line-height: 1.5;
	margin: 0;
	padding: 2.8rem 3rem;
}

.entry-content .section-awards .awards strong {
	display: block;
	color: var(--color-body-ink);
	font-size: 2.2rem;
	font-weight: 400;
	font-family: var(--font-serif);
	line-height: 1.2;
	margin-bottom: 0.6rem;
}

.entry-content .section-awards .awards a {
	color: var(--color-body-ink);
}

.entry-content .section-awards .awards a:hover {
	color: var(--color-secondary);
}

/* ## Section: FAQ (parent tto-faq-accordion)
--------------------------------------------- */

.entry-content .section-faq > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

.entry-content .section-faq--intro p {
	margin-top: 2rem;
}

.entry-content .faq-accordion-items {
	margin: 0;
}

.entry-content .faq-accordion-items .accordion {
	display: block;
	border-top: 0.1rem solid var(--color-body-ink);
}

.entry-content .faq-accordion-items .accordion-item,
.entry-content .faq-accordion-items .accordion-item:first-child,
.entry-content .faq-accordion-items .accordion-item:last-child {
	background-color: transparent;
	border: 0;
	border-bottom: 0.1rem solid var(--color-hairline);
	border-radius: 0;
	overflow: visible;
}

.entry-content .faq-accordion-items .accordion-header {
	font-size: inherit;
	margin: 0;
}

.entry-content .faq-accordion-items .accordion-button {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 2.4rem;
	width: 100%;
	color: var(--color-body-ink);
	font-size: 2.2rem;
	font-weight: 400;
	font-family: var(--font-serif);
	line-height: 1.25;
	text-align: left;
}

.entry-content .faq-accordion-items .accordion-button:hover {
	color: var(--color-secondary);
}

.entry-content .faq-accordion-items .accordion-button svg,
.entry-content .faq-accordion-items .accordion-button i {
	flex: none;
	width: 1.4rem;
	height: 1.4rem;
	color: var(--color-secondary);
}

.entry-content .faq-accordion-items .accordion-body {
	border: 0;
}

.entry-content .faq-accordion-items .accordion-body p {
	color: var(--color-body);
	font-size: 1.6rem;
	line-height: 1.65;
	margin: 0;
}

.entry-content .faq-accordion-items .accordion-body p + p {
	margin-top: 1.2rem;
}

/* The parent sets these with !important inside later layers; an earlier layer wins. */

@layer overrides {
	.site-header .menu-toggle {
		margin: 0 !important;
	}

	.entry-content .faq-accordion-items .accordion-button {
		background-color: transparent !important;
		padding: 2.4rem 0 !important;
	}

	.entry-content .faq-accordion-items .accordion-body {
		padding: 0.4rem 4.8rem 2.6rem 0 !important;
	}
}

/* Grouped FAQs (FAQs page): a small heading above each accordion, targeted by the jump links */

.entry-content .section-faq .faq-group-heading {
	color: var(--color-secondary);
	font-size: 1.3rem;
	font-weight: 700;
	font-family: var(--font-sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.entry-content .section-faq .faq-group-heading:not(:first-child) {
	margin-top: 4.8rem;
}

/* ## Jump-link targets
--------------------------------------------- */

/* Clear the sticky header when a #link lands on a heading, anchor or form */

.entry-content [id],
.gform_wrapper {
	scroll-margin-top: 17.6rem;
}

.entry-content .section-anchor {
	display: block;
	height: 0;
}

/* ## Section: Link list
--------------------------------------------- */

.entry-content .section-links {
	padding-top: 6.4rem;
	padding-bottom: 6.4rem;
	border-top: 0.1rem solid var(--color-hairline);
}

.entry-content .section-links > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

.entry-content .section-links h2 {
	font-size: 3.2rem;
}

.entry-content .section-links .link-list {
	margin: 0;
	padding: 0;
	border-top: 0.1rem solid var(--color-hairline);
	list-style: none;
}

.entry-content .section-links .link-list li {
	margin: 0;
	padding: 1.6rem 0;
	border-bottom: 0.1rem solid var(--color-hairline);
}

.entry-content .section-links .link-list a {
	color: var(--color-body-ink);
	font-size: 2rem;
	font-family: var(--font-serif);
	text-decoration: none;
}

.entry-content .section-links .link-list a:hover {
	color: var(--color-secondary);
}

.entry-content .section-links .link-list span {
	display: block;
	color: var(--color-body);
	font-size: 1.4rem;
	margin-top: 0.4rem;
}

/* ## Section: Form
--------------------------------------------- */

.entry-content .section-form {
	background-color: var(--color-bg-alt);
}

.entry-content .section-form > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

.entry-content .section-form .contact-details {
	margin: 3.2rem 0 0;
	padding: 0;
	border-top: 0.1rem solid var(--color-hairline);
	list-style: none;
}

.entry-content .section-form .contact-details li {
	font-size: 1.5rem;
	margin: 0;
	padding: 1.4rem 0;
	border-bottom: 0.1rem solid var(--color-hairline);
}

.entry-content .section-form--form > .gb-block-layout-column-inner {
	background-color: var(--color-bg);
	padding: 4rem;
}

/* ## Section: Location
--------------------------------------------- */

.entry-content .section-location > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	align-items: center;
}

.entry-content .section-location .location-map iframe,
.entry-content .section-location iframe {
	display: block;
	width: 100%;
	min-height: 42rem;
	border: 0;
}

/* ## Section: Quote feature
--------------------------------------------- */

.entry-content .section-quote,
.entry-content .section-quote .section-quote--content {
	background-color: var(--color-ink);
}

.entry-content .section-quote > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

.entry-content .section-quote--media > .gb-block-layout-column-inner {
	min-height: 62rem;
	height: 100%;
}

.entry-content .section-quote--content > .gb-block-layout-column-inner {
	padding: 8.8rem var(--edge) 8.8rem 8rem;
}

.entry-content .section-quote .eyebrow {
	color: var(--color-accent);
}

.entry-content .pull-quote {
	margin: 0;
	padding: 0;
	border: 0;
}

.entry-content .pull-quote p {
	color: var(--color-bg);
	font-size: 3rem;
	font-family: var(--font-serif);
	line-height: 1.35;
}

.entry-content .pull-quote p::before {
	position: static;
	content: "\201C";
}

.entry-content .pull-quote p::after {
	position: static;
	content: "\201D";
}

.entry-content .section-quote .byline {
	color: var(--color-muted-on-dark);
	font-size: 1.5rem;
	margin-top: 3.4rem;
}

.entry-content .section-quote .stats {
	margin-top: 4.4rem;
	padding-top: 3.4rem;
	border-top: 0.1rem solid rgba(255, 255, 255, 0.15);
}

.entry-content .section-quote .stats > .gb-layout-column-wrap {
	grid-gap: 2.4rem;
}

.entry-content .section-quote .stat--value {
	color: var(--color-bg);
	font-size: 3rem;
	font-family: var(--font-serif);
	line-height: 1.2;
}

.entry-content .section-quote .stat--label {
	color: var(--color-muted-on-dark);
	font-size: 1.3rem;
	line-height: 1.4;
	margin-top: 0.6rem;
}

/* ## Section: Testimonial
--------------------------------------------- */

.entry-content .section-testimonial {
	background-color: var(--color-bg-alt);
}

.entry-content .section-testimonial > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	grid-gap: 0 8rem;
}

.entry-content .section-testimonial .pull-quote p {
	color: var(--color-body-ink);
	font-size: 2.8rem;
	line-height: 1.4;
}

.entry-content .section-testimonial .byline {
	font-size: 1.5rem;
	margin-top: 2.2rem;
}

.entry-content .section-testimonial .tiles > .gb-layout-column-wrap {
	grid-gap: 0.2rem;
}

.entry-content .section-testimonial .tiles + .tiles {
	margin-top: 0.2rem;
}

.entry-content .section-testimonial .tile > .gb-block-layout-column-inner {
	background-color: var(--color-bg);
	height: 100%;
	padding: 3rem;
}

.entry-content .section-testimonial .tile--value {
	color: var(--color-body-ink);
	font-size: 4rem;
	font-family: var(--font-serif);
	line-height: 1.1;
}

.entry-content .section-testimonial .tile--label {
	font-size: 1.4rem;
	line-height: 1.5;
	margin-top: 0.6rem;
}

.entry-content .section-testimonial .tile.is-link > .gb-block-layout-column-inner {
	display: flex;
	align-items: center;
}

.entry-content .section-testimonial .tile--link a {
	color: var(--color-body-ink);
	font-size: 1.5rem;
	text-decoration: none;
}

.entry-content .section-testimonial .tile--link a::after {
	position: static;
	content: " \2192";
}

.entry-content .section-testimonial .tile--link a:hover {
	color: var(--color-secondary);
}

/* ## Section: Areas (home)
--------------------------------------------- */

.entry-content .section-areas > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.entry-content .section-areas--content > .gb-block-layout-column-inner {
	padding: 8.8rem 8rem 8.8rem var(--edge);
}

.entry-content .section-areas--media > .gb-block-layout-column-inner {
	min-height: 52rem;
	height: 100%;
}

.entry-content .section-areas .regions {
	margin-top: 4rem;
}

.entry-content .section-areas .regions > .gb-layout-column-wrap {
	grid-gap: 3.2rem;
}

.entry-content .section-areas .region--label {
	color: var(--color-secondary);
	font-size: 1.2rem;
	font-weight: 700;
	margin-bottom: 1rem;
	padding-bottom: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border-bottom: 0.1rem solid var(--color-hairline);
}

.entry-content .section-areas .region--list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.entry-content .section-areas .region--list li {
	font-size: 1.5rem;
	line-height: 2;
	margin: 0;
}

.entry-content .section-areas .region--list a {
	color: var(--color-body-ink);
	text-decoration: none;
}

.entry-content .section-areas .region--list a:hover {
	color: var(--color-secondary);
}

/* ## Section: Phones (contact)
--------------------------------------------- */

.entry-content .section-phones {
	background-color: var(--color-charcoal);
	padding: 0;
}

.entry-content .section-phones > .gb-layout-column-wrap {
	grid-gap: 0;
}

.entry-content .section-phones .phone-item > .gb-block-layout-column-inner {
	padding: 4.4rem 4rem;
}

.entry-content .section-phones .phone-item:first-child > .gb-block-layout-column-inner {
	padding-left: 0;
}

.entry-content .section-phones .phone-item:not(:last-child) > .gb-block-layout-column-inner {
	border-right: 0.1rem solid rgba(255, 255, 255, 0.15);
}

.entry-content .section-phones .phone-item--label {
	color: var(--color-accent);
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.entry-content .section-phones .phone-number-block a.phone-link {
	color: var(--color-bg);
	font-size: 3.6rem;
	margin-top: 0.8rem;
}

.entry-content .section-phones .phone-number-block a.phone-link:hover {
	color: var(--color-accent);
}

/* ## Section: Contact (client contact-panels block)
--------------------------------------------- */

.entry-content .section-contact {
	padding: 0;
}

.entry-content .section-contact > .gb-layout-column-wrap {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	width: 100%;
	max-width: none;
	grid-gap: 0;
}

.entry-content .section-contact--panels > .gb-block-layout-column-inner {
	background-color: var(--color-bg-alt);
	height: 100%;
	padding: 7.2rem 6.4rem 7.2rem var(--edge);
}

.entry-content .section-contact--details > .gb-block-layout-column-inner {
	padding: 7.2rem var(--edge) 7.2rem 6.4rem;
}

.entry-content .section-contact--details h2 {
	font-size: 3rem;
}

.entry-content .section-contact--details .wp-block-image {
	height: 30rem;
	margin-top: 4rem;
}

.contact-panels--tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.2rem;
	margin-bottom: 2.8rem;
}

.contact-panels--tab {
	background-color: var(--color-bg);
	color: var(--color-body);
	font-size: 1.3rem;
	font-weight: 700;
	padding: 2.2rem 2.4rem;
	letter-spacing: 0.12em;
	text-align: center;
	text-transform: uppercase;
	border: 0;
	cursor: pointer;
	transition: var(--transition);
}

.contact-panels--tab:hover {
	color: var(--color-secondary);
}

.contact-panels--tab.active {
	background-color: var(--color-charcoal);
	color: var(--color-bg);
}

.contact-panels--panel {
	display: none;
}

.contact-panels--panel.active {
	display: block;
}

.contact-panels--callout {
	background-color: var(--color-bg);
	display: flex;
	align-items: center;
	gap: 2rem;
	margin-bottom: 2.4rem;
	padding: 2.8rem;
}

.contact-panels--phone {
	color: var(--color-charcoal);
	font-size: 3.4rem;
	font-family: var(--font-serif);
	white-space: nowrap;
}

.contact-panels--phone:hover {
	color: var(--color-secondary);
}

.contact-panels--note {
	color: var(--color-body);
	font-size: 1.4rem;
	line-height: 1.55;
	margin: 0;
}

/* ## Gravity Forms
--------------------------------------------- */

.gform_wrapper.gravity-theme .gform_fields {
	grid-row-gap: 2rem;
	grid-column-gap: 2rem;
}

.gform_wrapper .gfield_label {
	display: block;
	color: var(--color-body);
	font-size: 1.3rem;
	font-weight: 600;
	margin-bottom: 0.8rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.gform_wrapper input[type=text],
.gform_wrapper input[type=tel],
.gform_wrapper input[type=email],
.gform_wrapper select,
.gform_wrapper textarea {
	background-color: var(--color-white);
	width: 100%;
	color: var(--color-body-ink);
	font-size: 1.6rem;
	padding: 1.6rem;
	border: 0.1rem solid var(--color-hairline);
	border-radius: 0;
	transition: var(--transition);
}

.gform_wrapper input[type=text]:hover,
.gform_wrapper input[type=tel]:hover,
.gform_wrapper input[type=email]:hover,
.gform_wrapper select:hover,
.gform_wrapper textarea:hover {
	border-color: var(--color-body);
}

.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
	border-color: var(--color-secondary);
	outline: 0.2rem solid var(--color-accent);
	outline-offset: 0;
}

.gform_wrapper textarea {
	resize: vertical;
}

.gform_wrapper .gform_footer {
	margin-top: 2rem;
}

/* Submit matches the theme button. Gravity Forms renders it as <button class="gform_button">, so
   input[type=submit] alone missed it and the parent's rounded black button showed instead. */

.gform_wrapper .gform_footer .gform_button,
.gform_wrapper .gform_footer button[type=submit],
.gform_wrapper input[type=submit] {
	background-color: var(--color-charcoal);
	color: var(--color-bg);
	font-size: 1.3rem;
	font-weight: 700;
	font-family: var(--font-sans);
	line-height: 1;
	padding: 1.8rem 2.8rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border: 0.2rem solid var(--color-charcoal);
	border-radius: 0;
	cursor: pointer;
	transition: var(--transition);
}

.gform_wrapper .gform_footer .gform_button:hover,
.gform_wrapper .gform_footer button[type=submit]:hover,
.gform_wrapper input[type=submit]:hover {
	background-color: var(--color-secondary);
	color: var(--color-white);
	border-color: var(--color-secondary);
}

/* ## Chrome: top bar
--------------------------------------------- */

.top-nav-bar {
	background-color: var(--color-ink);
	color: var(--color-muted-on-dark);
	font-size: 1.3rem;
	letter-spacing: 0.04em;
}

.top-nav-bar > .wrap {
	padding: 0;
}

.top-nav-bar .widget,
.top-nav-bar .widget-wrap {
	width: 100%;
}

.top-nav-bar .widget-wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 4rem;
}

.top-bar--license {
	color: var(--color-muted-on-dark);
}

.top-bar--need a {
	color: var(--color-bg);
	font-weight: 700;
}

.top-bar--need a:hover {
	color: var(--color-accent);
}

/* ## Chrome: header
--------------------------------------------- */

.site-header {
	background-color: var(--color-header);
	color: var(--color-white);
	border-bottom: 0.1rem solid rgba(255, 255, 255, 0.12);
}

.site-header > .wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 3.2rem;
	min-height: 12.4rem;
	padding: 0;
}

/* The parent caps .title-area at 200px; the logo lockup is wider, so it overflowed into the menu
   and the flex gap never applied. Let the area size to the logo. */

.site-header .title-area {
	flex: none;
	width: auto;
	max-width: none;
}

.site-title {
	font-size: inherit;
	margin: 0;
}

.site-logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.7rem;
	color: var(--color-white);
}

.site-logo:hover {
	color: var(--color-accent);
}

.site-logo--mark {
	display: flex;
	align-items: center;
	gap: 1.6rem;
}

.site-logo--mark svg {
	width: 2.4rem;
	height: 2.4rem;
}

.site-logo--word {
	font-size: 3rem;
	font-weight: 700;
	font-family: var(--font-sans);
	line-height: 1;
	letter-spacing: 0.14em;
}

.site-logo--sub {
	font-size: 1.2rem;
	font-weight: 600;
	font-family: var(--font-sans);
	line-height: 1;
	letter-spacing: 0.34em;
	text-transform: uppercase;
}

/* ## Chrome: primary navigation (desktop, m and up)
--------------------------------------------- */

.site-header .nav-primary {
	background-color: transparent;
	display: flex;
	align-items: center;
	gap: 1.6rem;
}

.nav-primary > .wrap {
	display: flex;
	align-items: center;
	gap: 2.4rem;
	min-height: 0;
	padding: 0;
}

.nav-primary .menu-primary {
	display: flex;
	gap: 1.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-header .nav-primary .menu-primary > .menu-item > a {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	color: var(--color-white);
	font-size: 1.3rem;
	font-weight: 600;
	padding: 2.4rem 0;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.site-header .nav-primary .menu-primary > .menu-item > a:hover,
.site-header .nav-primary .menu-primary > .menu-item:hover > a,
.site-header .nav-primary .menu-primary > .menu-item.current-menu-item > a,
.site-header .nav-primary .menu-primary > .menu-item.current-menu-ancestor > a {
	color: var(--color-accent);
}

.site-header .nav-primary .menu-primary > .menu-item.has-dropdown-icon > a > span {
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 0.7rem;
}

.site-header .nav-primary .menu-primary > .menu-item > a .dropdown-icon,
.site-header .nav-primary .menu-primary > .menu-item > a .dropdown-icon i,
.site-header .nav-primary .menu-primary > .menu-item > a .dropdown-icon svg {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1rem;
	height: 1rem;
	color: currentColor;
	fill: currentColor;
}

/* The chevron's ink sits on the text baseline, so centered boxes still read low next to
   uppercase labels: lift it to the cap-height middle */

.site-header .nav-primary .menu-primary > .menu-item > a .dropdown-icon {
	transform: translateY(-0.2rem);
}

/* Every .sub-menu gets a translateY slide and top: 80% from tto-management's tto-grid-utility.css;
   that made nested mega-menu columns jump on hover. Menus open instantly and hang from the header. */

.nav-primary .menu .sub-menu {
	transform: none !important;
	transition: none !important;
}

.nav-primary .menu > .menu-item.mega-menu > .mega-menu-container,
.nav-primary .menu > .menu-item > .sub-menu {
	transition: none !important;
}

/* Simple dropdowns (Service Areas, About) */

.nav-primary .menu > .menu-item:not(.mega-menu) > .sub-menu {
	background-color: var(--color-bg);
	gap: 0;
	min-width: 30rem;
	padding: 1.4rem 0;
	border-top: 0;
	border-bottom: 0.4rem solid var(--color-secondary);
	box-shadow: 0 1.8rem 4rem rgba(0, 0, 0, 0.18);
}

.nav-primary .menu > .menu-item:not(.mega-menu) > .sub-menu .menu-item {
	gap: 0;
}

/* The parent makes each .menu-item a flex row, so the link shrank to its label and the hover
   background stopped mid-panel. Grow it to the full panel width. */

.nav-primary .menu > .menu-item:not(.mega-menu) > .sub-menu .menu-item a {
	flex: 1 1 auto;
	display: block;
	color: var(--color-body-ink);
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.4;
	padding: 1rem 2.6rem;
	letter-spacing: 0;
	text-transform: none;
}

.nav-primary .menu > .menu-item:not(.mega-menu) > .sub-menu .menu-item a:hover,
.nav-primary .menu > .menu-item:not(.mega-menu) > .sub-menu .menu-item a:focus-visible {
	background-color: var(--color-bg-alt);
	color: var(--color-secondary);
}

/* Mega menu (Services): parent wrap-full system positions it; skin only */

.nav-primary .menu > .menu-item.mega-menu > .mega-menu-container {
	background-color: var(--color-bg);
	padding: 0 !important;
	border-top: 0;
	border-bottom: 0.6rem solid var(--color-secondary);
	box-shadow: 0 3rem 6rem rgba(0, 0, 0, 0.25);
}

.nav-primary.wrap-full .menu > .menu-item.mega-menu > .mega-menu-container > .mega-menu-wrap {
	width: 100%;
	max-width: 100%;
	margin: 0;
}

.mega-menu-wrap {
	display: flex;
	align-items: stretch;
}

.mega-menu--intro {
	flex: 0 0 34rem;
	background-color: var(--color-charcoal);
	color: var(--color-bg);
	padding: 4.4rem 4rem;
}

.mega-menu--intro-heading {
	color: var(--color-bg);
	font-size: 3rem;
	font-weight: 400;
	font-family: var(--font-serif);
	margin: 0;
}

.mega-menu--intro-copy {
	color: var(--color-muted-on-dark);
	font-size: 1.4rem;
	line-height: 1.6;
	margin: 1.6rem 0 0;
}

.site-header .nav-primary .mega-menu--intro a.mega-menu--intro-link {
	display: inline-block;
	height: auto !important;
	color: var(--color-bg) !important;
	font-size: 1.3rem !important;
	font-weight: 700 !important;
	margin-top: 2.4rem;
	padding: 0 0 0.4rem !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border-bottom: 0.2rem solid var(--color-bg);
	align-self: flex-start;
}

.site-header .nav-primary .mega-menu--intro a.mega-menu--intro-link:hover {
	color: var(--color-accent) !important;
	border-color: var(--color-accent);
}

.mega-menu--intro-photo {
	object-fit: cover;
	display: block;
	width: 100%;
	height: 12rem;
	margin-top: 2.4rem;
}

.nav-primary .menu .mega-menu-container .mega-menu-wrap > .sub-menu {
	flex: 1;
	background-color: transparent !important;
	position: static !important;
	display: flex !important;
	gap: 0 !important;
	min-width: 0;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}

.nav-primary .menu > .menu-item.mega-menu > .mega-menu-container {
	overflow: hidden;
}

.nav-primary .menu .mega-menu-container .mega-menu-wrap > .sub-menu > .menu-item {
	flex: 1 1 0 !important;
	background-color: transparent !important;
	display: block !important;
	min-width: 0;
	padding: 3.6rem 3.2rem !important;
	border-left: 0.1rem solid rgba(0, 0, 0, 0.08);
}

.nav-primary .menu .mega-menu-container .mega-menu-wrap > .sub-menu > .menu-item > a,
.nav-primary .menu .mega-menu-container .mega-menu-wrap > .sub-menu > .menu-item > p {
	background-color: transparent !important;
	color: var(--color-secondary) !important;
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	padding: 0 0 1.2rem !important;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	pointer-events: none;
}

.nav-primary .menu .mega-menu-container .sub-menu .sub-menu {
	background-color: transparent !important;
	position: static !important;
	display: block !important;
	min-width: 0 !important;
	width: auto !important;
	left: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	opacity: 1 !important;
	border: 0 !important;
	box-shadow: none !important;
	pointer-events: auto !important;
	clip-path: none !important;
}

.nav-primary .menu .mega-menu-container .sub-menu .sub-menu .menu-item {
	padding: 0 !important;
	border: 0;
}

.nav-primary .menu .mega-menu-container .sub-menu .sub-menu .menu-item a,
.nav-primary .menu .mega-menu-container .sub-menu .sub-menu .menu-item p {
	display: block;
	color: var(--color-body-ink) !important;
	font-size: 1.5rem !important;
	font-weight: 400 !important;
	padding: 0.7rem 0 !important;
	letter-spacing: 0;
	text-transform: none;
	pointer-events: auto;
}

.nav-primary .menu .mega-menu-container .sub-menu .sub-menu .menu-item a:hover,
.nav-primary .menu .mega-menu-container .sub-menu .sub-menu .menu-item a:focus-visible {
	color: var(--color-secondary) !important;
}

/* Header CTAs */

.primary-header-ctas,
.primary-header-ctas .widget-wrap {
	display: flex;
	gap: 1rem;
}

.header-cta--solid,
.header-cta--outline {
	display: inline-block;
	font-size: 1.3rem;
	font-weight: 700;
	padding: 1.6rem 2rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border: 0.2rem solid var(--color-accent);
}

.header-cta--solid {
	background-color: var(--color-accent);
	color: var(--color-ink);
}

.header-cta--solid:hover {
	background-color: var(--color-white);
	color: var(--color-ink);
	border-color: var(--color-white);
}

.header-cta--outline {
	color: var(--color-white);
	border-color: var(--color-white);
}

.header-cta--outline:hover {
	background-color: var(--color-white);
	color: var(--color-ink);
}

/* ## Chrome: breadcrumbs
--------------------------------------------- */

body:not(.single-post) .breadcrumb {
	background-color: var(--color-bg-alt);
	display: flex !important;
	flex-wrap: wrap;
	flex-direction: row !important;
	align-items: center;
	gap: 0.4rem 0;
	width: 100%;
	color: var(--color-body);
	font-size: 1.4rem;
	padding: 1.8rem var(--edge);
}

/* Items may shrink so a long page title wraps instead of pushing the page wider than a phone */

body:not(.single-post) .breadcrumb > *,
body:not(.single-post) .breadcrumb > span > * {
	flex: 0 1 auto;
	min-width: 0;
}

body:not(.single-post) .breadcrumb > span {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.8rem;
}

body:not(.single-post) .breadcrumb > span:first-child {
	min-width: 0 !important;
	max-width: none !important;
}

body:not(.single-post) .breadcrumb,
body:not(.single-post) .breadcrumb * {
	white-space: normal;
}

body:not(.single-post) .breadcrumb a,
body:not(.single-post) .breadcrumb .breadcrumb-separator {
	color: var(--color-body);
	font-size: 1.4rem;
	font-weight: 400;
}

body:not(.single-post) .breadcrumb .breadcrumb-separator {
	margin-inline: 0.8rem;
}

body:not(.single-post) .breadcrumb a:hover {
	color: var(--color-secondary);
}

body:not(.single-post) .breadcrumb .breadcrumb-link-text-wrap:last-child {
	color: var(--color-body-ink);
}

/* ## Chrome: footer (one "Footer" menu; its top-level items are the columns)
--------------------------------------------- */

.site-footer {
	background-color: var(--color-ink);
	color: var(--color-muted-on-dark);
	font-size: 1.4rem;
	line-height: 1.8;
	padding: 0;
}

.site-footer > .wrap {
	padding: 0;
}

.site-footer-widgets {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 3fr);
	gap: 4rem;
	padding: 6.4rem 0 3.2rem;
}

.site-footer .widget {
	min-width: 0;
}

.site-footer a {
	color: var(--color-muted-on-dark);
}

.site-footer a:hover {
	color: var(--color-white);
}

.footer-brand--name {
	color: var(--color-bg);
	font-size: 2.4rem;
	font-family: var(--font-serif);
}

.footer-brand--row,
.footer-brand--note {
	margin-top: 1.4rem;
}

.footer-brand--note {
	font-size: 1.3rem;
}

.footer-brand--ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 2.2rem;
}

.site-footer .footer-cta--solid,
.site-footer .footer-cta--outline {
	display: inline-block;
	font-size: 1.2rem;
	font-weight: 700;
	padding: 1.2rem 2rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border: 0.2rem solid var(--color-accent);
}

.site-footer .footer-cta--solid {
	background-color: var(--color-accent);
	color: var(--color-ink);
}

.site-footer .footer-cta--solid:hover {
	background-color: var(--color-white);
	color: var(--color-ink);
	border-color: var(--color-white);
}

.site-footer .footer-cta--outline {
	color: var(--color-bg);
}

.site-footer .footer-cta--outline:hover {
	background-color: var(--color-accent);
	color: var(--color-ink);
}

.site-footer .menu-widget--title {
	display: none;
}

.site-footer .menu-widget--items > .menu {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer .menu-widget--items > .menu > .menu-item {
	flex: none;
	display: block;
}

.site-footer .menu-widget--items > .menu > .menu-item > a,
.site-footer .menu-widget--items > .menu > .menu-item > p {
	display: block;
	color: var(--color-bg);
	font-size: 1.2rem;
	font-weight: 700;
	margin-bottom: 1rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	pointer-events: none;
}

.site-footer .menu-widget--items .sub-menu {
	background-color: transparent;
	position: static;
	display: block;
	min-width: 0;
	width: auto;
	margin: 0;
	padding: 0;
	opacity: 1;
	box-shadow: none;
	transform: none;
	list-style: none;
	visibility: visible;
}

.site-footer .menu-widget--items .sub-menu .menu-item {
	margin: 0;
	padding: 0;
}

.site-footer .menu-widget--items .sub-menu a {
	display: block;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 2;
	padding: 0.4rem 0;
}

.site-footer-credits,
.site-footer-credits.standalone,
.site-footer-credits .widget {
	background-color: transparent;
}

.site-footer-credits {
	padding: 0;
}

.site-footer-credits > .wrap {
	width: 100%;
	font-size: 1.2rem;
	padding: 2rem 0 3.2rem;
	border-top: 0.1rem solid rgba(255, 255, 255, 0.12);
}

.footer-credits p {
	display: flex;
	justify-content: space-between;
	margin: 0;
}

/* Right side of the credits: "Powered by 321 Web Marketing", Privacy Policy, Terms of Use */

.footer-credits .credit--links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 2.4rem;
}

/* ## Blog archive: standard 321 template (tto-parent parts/archive/home.php), brand tokens only
--------------------------------------------- */

/* The "Before Footer Pattern (Archive)" content sits in a group classed entry-content so the theme's
   button and CTA-band styles apply. That extra level breaks the parent's direct-child layout rules
   (.archive-content--after > .wrap > .wp-block-genesis-blocks-gb-columns), so restore them here. */

.archive-content--after .entry-content .bottom-cta-section {
	padding: var(--theme-section-padding) 0;
}

.archive-content--after .entry-content .bottom-cta-section > .gb-layout-column-wrap {
	row-gap: 4rem;
	column-gap: 6rem;
	width: var(--theme-wrap-width);
	max-width: var(--theme-wrap-max-width);
	margin: 0 auto;
}

.blog .site-inner,
.archive .site-inner,
.search .site-inner {
	background-color: var(--color-bg);
}

.blog-archive--heading h1,
.blog-archive--section-heading h2,
.blog-recent-articles h2,
.blog-recent-articles h3,
.blog-archive h2,
.blog-archive h3 {
	color: var(--color-body-ink);
	font-weight: 400;
	font-family: var(--font-serif);
}

.blog-recent-articles h2 a,
.blog-recent-articles h3 a,
.blog-archive h2 a,
.blog-archive h3 a {
	color: var(--color-body-ink);
}

.blog-recent-articles h2 a:hover,
.blog-recent-articles h3 a:hover,
.blog-archive h2 a:hover,
.blog-archive h3 a:hover {
	color: var(--color-secondary);
}

.blog-archive--featured {
	background-color: var(--color-bg-alt);
}

.blog-pagination .active a,
.blog-pagination a:hover {
	background-color: var(--color-charcoal);
	color: var(--color-bg);
}

.blog .section-hero.is-text-only {
	padding-top: 4.8rem;
}

/* ## Blog single: standard 321 template (tto-parent parts/single/post.php), brand tokens only
--------------------------------------------- */

.single-post .single-post-title h1 {
	color: var(--color-body-ink);
	font-weight: 400;
	font-family: var(--font-serif);
}

.single-post .single-post-breadcrumb a,
.single-post .single-post-breadcrumb .breadcrumb-separator,
.single-post .entry-before,
.single-post .entry-content {
	color: var(--color-body);
}

.single-post .entry-before a,
.single-post .entry-content a {
	color: var(--color-secondary);
}

.single-post .entry-before a:hover,
.single-post .entry-content a:hover,
.single-post .single-post-breadcrumb a:hover {
	color: var(--color-body-ink);
}

.single-post .entry-content h2,
.single-post .entry-content h3 {
	color: var(--color-body-ink);
	font-weight: 400;
	font-family: var(--font-serif);
}

.single-post .entry-content blockquote {
	background-color: var(--color-bg-alt);
	font-size: 2rem;
	font-family: var(--font-serif);
	margin: 2.8rem 0;
	padding: 2.4rem 2.8rem;
	border: 0;
}

.single-post .tto-toc--heading p,
.single-post .share-heading p {
	color: var(--color-body-ink);
	font-family: var(--font-serif);
}

.single-post .tto-toc--list a {
	color: var(--color-body);
}

.single-post .tto-toc--list a:hover,
.single-post .tto-toc--list .number {
	color: var(--color-secondary);
}

.single-post .sidebar-cta {
	background-color: var(--color-charcoal);
	color: var(--color-bg);
}

.single-post .sidebar-cta--heading p {
	color: var(--color-bg);
	font-family: var(--font-serif);
}

.single-post .sidebar-cta--copy p {
	color: var(--color-muted-on-dark);
}

.single-post .sidebar-cta .custom-button a.button {
	background-color: var(--color-accent);
	color: var(--color-ink);
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border-color: var(--color-accent);
	border-radius: 0;
}

.single-post .sidebar-cta .custom-button a.button:hover {
	background-color: var(--color-white);
	border-color: var(--color-white);
}

.single-post .single-company-info {
	background-color: var(--color-bg-alt);
}

.single-post .single-company-info--heading p {
	color: var(--color-body-ink);
	font-family: var(--font-serif);
}

/* The parent renders this as a transparent arrow text link: keep it, make it legible */

.single-post .single-company-info a.button {
	color: var(--color-secondary) !important;
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.single-post .single-company-info a.button:hover {
	color: var(--color-body-ink) !important;
}

/* ## 404 and utility pages
--------------------------------------------- */

.error404 .entry-content,
.search-no-results .entry-content {
	padding: 0;
}

/* The client chapel-sign photo is portrait with the sign at the very top */

img[src*="chapel-sign"] {
	object-position: center top;
}

/* ## Responsive
--------------------------------------------- */

/* Below xxl the full header (logo, five menu items, two CTAs) no longer fits one row, so the two
   CTAs stack into one equal-width column; slimmer padding keeps the pair inside the header height. */

@media (min-width: 896px) and (max-width: 1351px) {
	.primary-header-ctas .widget-wrap {
		flex-direction: column;
		align-items: stretch;
		gap: 0.6rem;
	}

	.primary-header-ctas .header-cta--solid,
	.primary-header-ctas .header-cta--outline {
		display: flex;
		align-items: center;
		justify-content: center;
		line-height: 1.2;
		padding-top: 1rem;
		padding-bottom: 1rem;
		text-align: center;
	}
}

/* xl: tighten the header so the logo never meets the menu */

@media (max-width: 1195px) {
	.site-header > .wrap {
		gap: 2rem;
	}

	.site-header .nav-primary {
		gap: 1.6rem;
	}

	.site-logo--word {
		font-size: 2.2rem;
	}

	.site-logo--sub {
		font-size: 1rem;
	}

	.site-logo--mark {
		gap: 1.2rem;
	}

	.site-logo--mark svg {
		width: 2rem;
		height: 2rem;
	}

	.nav-primary .menu-primary {
		gap: 1rem;
	}

	.site-header .nav-primary .menu-primary > .menu-item > a {
		font-size: 1.15rem;
		letter-spacing: 0.02em;
	}

	.header-cta--solid,
	.header-cta--outline {
		font-size: 1.2rem;
		padding: 1.4rem;
	}

	.mega-menu--intro {
		padding: 3.6rem 3.2rem;
		flex-basis: 26rem;
	}

	.nav-primary .menu .mega-menu-container .mega-menu-wrap > .sub-menu > .menu-item {
		padding: 3.2rem 2.4rem !important;
	}

	.entry-content .section-hero h1 {
		font-size: 4.8rem;
	}

	.entry-content .section-checks .checks li {
		font-size: 1.8rem;
		padding: 0 2.4rem;
	}
}

/* l: below full desktop layout */

@media (max-width: 991px) {
	:root {
		--gutter-x: 4rem;
		--section-y: 7.2rem;
	}

	.site-header > .wrap {
		gap: 2rem;
	}

	.site-logo--word {
		font-size: 2rem;
	}

	.site-logo--sub {
		font-size: 0.9rem;
		letter-spacing: 0.28em;
	}

	.site-header .nav-primary {
		gap: 1.2rem;
	}

	.nav-primary .menu-primary {
		gap: 0.8rem;
	}

	.site-header .nav-primary .menu-primary > .menu-item > a {
		font-size: 1.1rem;
		letter-spacing: 0;
	}

	.header-cta--solid,
	.header-cta--outline {
		font-size: 1.1rem;
		padding: 1.2rem 1rem;
	}

	.entry-content .section-hero > .gb-layout-column-wrap,
	.entry-content .section-hero.is-image-left > .gb-layout-column-wrap,
	.entry-content .section-hero.is-feature > .gb-layout-column-wrap,
	.entry-content .section-media > .gb-layout-column-wrap,
	.entry-content .section-quote > .gb-layout-column-wrap,
	.entry-content .section-areas > .gb-layout-column-wrap,
	.entry-content .section-contact > .gb-layout-column-wrap {
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
		grid-template-areas: "col1" "col2";
	}

	/* Image-left sections put the image first in the markup; stacked, the copy still leads */

	.entry-content .section-hero.is-image-left > .gb-layout-column-wrap,
	.entry-content .section-media.is-image-left > .gb-layout-column-wrap,
	.entry-content .section-quote > .gb-layout-column-wrap {
		grid-template-areas: "col2" "col1";
	}

	.entry-content .section-hero--content > .gb-block-layout-column-inner,
	.entry-content .section-hero.is-image-left .section-hero--content > .gb-block-layout-column-inner,
	.entry-content .section-hero.is-feature .section-hero--content > .gb-block-layout-column-inner,
	.entry-content .section-media--content > .gb-block-layout-column-inner,
	.entry-content .section-media.is-image-left .section-media--content > .gb-block-layout-column-inner,
	.entry-content .section-quote--content > .gb-block-layout-column-inner,
	.entry-content .section-areas--content > .gb-block-layout-column-inner,
	.entry-content .section-contact--panels > .gb-block-layout-column-inner,
	.entry-content .section-contact--details > .gb-block-layout-column-inner {
		padding: var(--section-y) var(--edge);
	}

	.entry-content .section-hero--media > .gb-block-layout-column-inner,
	.entry-content .section-media--media > .gb-block-layout-column-inner,
	.entry-content .section-quote--media > .gb-block-layout-column-inner,
	.entry-content .section-areas--media > .gb-block-layout-column-inner {
		min-height: 0;
		height: 42rem;
	}

	.entry-content .section-intro > .gb-layout-column-wrap,
	.entry-content .section-faq > .gb-layout-column-wrap,
	.entry-content .section-links > .gb-layout-column-wrap,
	.entry-content .section-form > .gb-layout-column-wrap,
	.entry-content .section-location > .gb-layout-column-wrap,
	.entry-content .section-testimonial > .gb-layout-column-wrap,
	.entry-content .section-cta > .gb-layout-column-wrap {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "col1" "col2";
		grid-gap: 3.2rem;
	}

	.entry-content .section-cta--actions > .gb-block-layout-column-inner {
		justify-content: flex-start;
	}

	.entry-content .section-checks .checks {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.4rem 0;
	}

	.entry-content .section-checks .checks li:nth-child(2n + 1) {
		padding-left: 0;
	}

	.entry-content .section-checks .checks li:nth-child(2n) {
		border-right: 0;
	}

	.entry-content .section-cards .cards.gb-layout-columns-3 > .gb-layout-column-wrap,
	.entry-content .section-cards .cards.gb-layout-columns-4 > .gb-layout-column-wrap,
	.entry-content .section-cards .cards.gb-layout-columns-5 > .gb-layout-column-wrap {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.entry-content .section-cards.is-band .feature-card > .gb-block-layout-column-inner {
		padding: 4rem 3.2rem;
	}

	.site-footer-widgets {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* m: mobile menu takes over at 895px and below */

@media (min-width: 896px) {
	.site-header .nav-primary .sub-menu-toggle {
		display: none;
	}

	/* Trim the parent's 3.75rem top/bottom item padding: header 149px -> 139px. Dropdowns still
	   hang from the bottom of the item, flush with the header edge. */

	.nav-primary .menu > .menu-item {
		padding-top: 3.25rem;
		padding-bottom: 3.25rem;
	}

	.nav-primary .menu > .menu-item:not(.mega-menu) > .sub-menu {
		top: 100% !important;
	}
}

@media (max-width: 895px) {
	.site-header > .wrap,
	.top-nav-bar > .wrap,
	.site-footer > .wrap {
		width: var(--theme-wrap-width);
		max-width: var(--theme-wrap-max-width);
		margin: 0 auto;
		padding: 0;
	}

	.site-header > .wrap {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 2rem;
		min-height: 0;
		padding: 1.6rem 0;
	}

	.site-logo {
		align-items: flex-start;
	}

	.site-logo--word {
		font-size: 2.2rem;
	}

	.site-logo--sub {
		font-size: 0.9rem;
	}

	.site-logo--mark {
		gap: 0.8rem;
	}

	.site-logo--mark svg {
		width: 1.8rem;
		height: 1.8rem;
	}

	/* Toggle sits on the dark header: white bars and close icon */

	.site-header .menu-toggle {
		color: var(--color-white);
	}

	.site-header .menu-toggle .hamburger-icon,
	.site-header .menu-toggle .hamburger-icon::before,
	.site-header .menu-toggle .hamburger-icon::after {
		background-color: var(--color-white);
	}

	.site-header .menu-toggle.active .hamburger-icon {
		background-color: transparent;
	}

	.site-header .menu-toggle svg,
	.site-header .menu-toggle i {
		color: var(--color-white);
		fill: currentColor;
	}

	/* Panel */

	.site-header .nav-primary {
		background-color: var(--color-bg);
		position: absolute;
		display: block;
		gap: 0;
		width: 100%;
		height: 100vh;
		top: 100%;
	}

	.site-header .nav-primary > .wrap {
		display: flex;
		flex-direction: column;
		gap: 3.2rem;
		width: 100%;
		min-height: 0;
		padding: 2.4rem 0 4rem;
	}

	.site-header .nav-primary .menu-primary {
		flex-direction: column;
		gap: 0;
		padding: 0 var(--gutter-x);
	}

	.site-header .nav-primary .menu-primary > .menu-item {
		border-bottom: 0.1rem solid var(--color-hairline);
	}

	.site-header .nav-primary .menu-primary > .menu-item > a {
		min-height: 5.2rem;
		color: var(--color-body-ink);
		font-size: 1.8rem;
		font-weight: 600;
		padding: 1.4rem 0;
		letter-spacing: 0.02em;
		text-transform: none;
	}

	.site-header .nav-primary .menu-primary > .menu-item > a:hover,
	.site-header .nav-primary .menu-primary > .menu-item:hover > a,
	.site-header .nav-primary .menu-primary > .menu-item.current-menu-item > a {
		color: var(--color-secondary);
	}

	.site-header .nav-primary .menu-primary > .menu-item > a .dropdown-icon {
		display: none;
	}

	.site-header .nav-primary .sub-menu-toggle {
		color: var(--color-body-ink);
	}

	.site-header .nav-primary .sub-menu-toggle svg,
	.site-header .nav-primary .sub-menu-toggle i {
		color: var(--color-body-ink);
		fill: currentColor;
	}

	/* Accordion sub-menus: undo the desktop dropdown panel and mega skin */

	.nav-primary .menu > .menu-item.mega-menu > .mega-menu-container,
	.nav-primary .menu > .menu-item > .sub-menu {
		background-color: transparent !important;
		position: static !important;
		min-width: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		box-shadow: none !important;
		transition: max-height 0.4s ease-in-out !important;
	}

	.mega-menu-wrap {
		display: block;
	}

	.mega-menu--intro {
		display: none;
	}

	/* Secondary rows: same size as primary, one step lighter; tertiary rows indented, not taller */

	.nav-primary .menu > .menu-item:not(.mega-menu) > .sub-menu .menu-item a {
		min-height: 4rem;
		color: var(--color-body);
		font-size: 1.6rem;
		padding: 1rem 0 1rem 1.6rem;
	}

	.nav-primary .menu .mega-menu-container .mega-menu-wrap > .sub-menu {
		display: block !important;
		padding-bottom: 1.2rem !important;
	}

	.nav-primary .menu .mega-menu-container .mega-menu-wrap > .sub-menu > .menu-item {
		padding: 1.6rem 0 0 1.6rem !important;
		border-left: 0;
	}

	.nav-primary .menu .mega-menu-container .mega-menu-wrap > .sub-menu > .menu-item > a,
	.nav-primary .menu .mega-menu-container .mega-menu-wrap > .sub-menu > .menu-item > p {
		font-size: 1.4rem !important;
		margin: 0 !important;
		padding: 0 0 0.4rem !important;
		letter-spacing: 0.08em;
	}

	.nav-primary .menu .mega-menu-container .sub-menu .sub-menu .menu-item a,
	.nav-primary .menu .mega-menu-container .sub-menu .sub-menu .menu-item p {
		min-height: 4rem;
		color: var(--color-body) !important;
		font-size: 1.6rem !important;
		padding: 0.9rem 0 0.9rem 1.2rem !important;
	}

	/* Header CTAs inside the light panel: dark variants */

	.primary-header-ctas {
		padding: 0 var(--gutter-x);
	}

	/* Both CTAs share a row and stretch to the same height: center their labels and match sizes */

	.primary-header-ctas .header-cta--solid,
	.primary-header-ctas .header-cta--outline {
		flex: 1 1 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		font-size: 1.2rem;
		line-height: 1.2;
		padding: 1.4rem 1.6rem;
		text-align: center;
	}

	.primary-header-ctas .widget {
		width: 100%;
	}

	.primary-header-ctas .widget-wrap {
		flex-wrap: wrap;
	}

	.primary-header-ctas .header-cta--outline {
		color: var(--color-body-ink);
		border-color: var(--color-charcoal);
	}

	.primary-header-ctas .header-cta--outline:hover {
		background-color: var(--color-charcoal);
		color: var(--color-white);
	}

	.top-bar--license {
		display: none;
	}

	.entry-content [id],
	.gform_wrapper {
		scroll-margin-top: 11.2rem;
	}

	.top-nav-bar .widget-wrap {
		justify-content: center;
		padding: 0.8rem 0;
		text-align: center;
	}
}

/* s: tablet portrait and below */

@media (max-width: 767px) {
	.archive-content--after .entry-content .bottom-cta-section {
		padding: var(--theme-section-padding-mobile) 0;
	}

	.archive-content--after .entry-content .bottom-cta-section > .gb-layout-column-wrap {
		display: flex;
		flex-direction: column;
		gap: 6rem;
		width: 100%;
		max-width: 100%;
		margin: 0;
		padding: 0 var(--gutter-x);
	}

	/* The child sets --theme-wrap-padding-mobile to 0, so the archive's own wraps lose their side
	   gutter on phones; give its headings, filters and cards the standard gutter. */

	.archive-content--featured > .wrap,
	.archive-content--main > .wrap {
		padding-right: var(--gutter-x);
		padding-left: var(--gutter-x);
	}

	:root {
		--gutter-x: 2rem;
		--section-y: 5.6rem;
	}

	.entry-content .section h2 {
		font-size: 3.2rem;
	}

	.entry-content .section-hero h1 {
		font-size: 3.8rem;
	}

	.entry-content .section-intro h2 {
		font-size: 3.6rem;
	}

	.entry-content .section-hero--media > .gb-block-layout-column-inner,
	.entry-content .section-media--media > .gb-block-layout-column-inner,
	.entry-content .section-quote--media > .gb-block-layout-column-inner,
	.entry-content .section-areas--media > .gb-block-layout-column-inner {
		height: 30rem;
	}

	.entry-content .section-cards .cards > .gb-layout-column-wrap,
	.entry-content .section-cards .cards.gb-layout-columns-3 > .gb-layout-column-wrap,
	.entry-content .section-cards .cards.gb-layout-columns-4 > .gb-layout-column-wrap,
	.entry-content .section-cards .cards.gb-layout-columns-5 > .gb-layout-column-wrap,
	.entry-content .section-quote .stats > .gb-layout-column-wrap,
	.entry-content .section-areas .regions > .gb-layout-column-wrap,
	.entry-content .section-testimonial .tiles > .gb-layout-column-wrap {
		grid-template-columns: minmax(0, 1fr);
	}

	.entry-content .section-cards .cards {
		margin-top: 3.2rem;
	}

	.entry-content .section-cards .cards > .gb-layout-column-wrap {
		grid-gap: 3.2rem;
	}

	.entry-content .section-cards.is-band .feature-card > .gb-block-layout-column-inner,
	.entry-content .section-cards.is-band .feature-card:first-child > .gb-block-layout-column-inner {
		padding: 3.2rem 0;
		border-right: 0;
		border-bottom: 0.1rem solid rgba(255, 255, 255, 0.15);
	}

	.entry-content .section-checks .checks {
		grid-template-columns: minmax(0, 1fr);
	}

	.entry-content .section-checks .checks li,
	.entry-content .section-checks .checks li:nth-child(2n + 1) {
		padding: 0;
		border-right: 0;
	}

	.entry-content .section-phones > .gb-layout-column-wrap {
		grid-template-columns: minmax(0, 1fr);
	}

	.entry-content .section-phones .phone-item > .gb-block-layout-column-inner,
	.entry-content .section-phones .phone-item:first-child > .gb-block-layout-column-inner {
		padding: 2.8rem 0;
		border-right: 0;
		border-bottom: 0.1rem solid rgba(255, 255, 255, 0.15);
	}

	.entry-content .section-form--form > .gb-block-layout-column-inner {
		padding: 2.4rem;
	}

	.entry-content .pull-quote p {
		font-size: 2.4rem;
	}

	.phone-number-block.is-large a.phone-link {
		font-size: 3.2rem;
	}

	.entry-content .faq-accordion-items .accordion-button {
		font-size: 1.9rem;
	}

	.site-footer .menu-widget--items > .menu {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.4rem;
	}

	.footer-credits p {
		flex-direction: column;
		gap: 0.6rem;
	}

	@layer overrides {
		.entry-content .faq-accordion-items .accordion-body {
			padding: 0.4rem 0 2.4rem 0 !important;
		}
	}

	.entry-content .section-cards.is-band .feature-card:not(:last-child) > .gb-block-layout-column-inner {
		border-right: 0;
	}
}

/* xs: phones */

@media (max-width: 599px) {
	.entry-content .section-hero h1 {
		font-size: 3.4rem;
	}

	.button-row,
	.button-row > .wp-block-group__inner-container {
		flex-direction: column;
		align-items: stretch;
	}

	.entry-content .button-row a.button {
		justify-content: center;
		width: 100%;
	}

	.contact-panels--callout {
		flex-direction: column;
		align-items: flex-start;
	}

	/* Three-column comparison tables keep readable columns and scroll inside their own box */

	.entry-content .section .wp-block-table table:has(th:nth-child(3)) {
		min-width: 56rem;
	}

	/* Mobile menu CTAs: too narrow for two labels side by side, so they stack full width */

	.primary-header-ctas .header-cta--solid,
	.primary-header-ctas .header-cta--outline {
		flex-basis: 100%;
	}
}

/* xxl: wide monitors keep the 1352px content cap; nothing grows past it */

@media (min-width: 1352px) {
	/* Both header CTAs sit side by side from here up; slimmer side padding keeps the row inside the
	   1240px wrap at exactly 1352px. */

	.header-cta--solid,
	.header-cta--outline {
		padding-right: 1.6rem;
		padding-left: 1.6rem;
	}

	.entry-content .section-hero.is-text-only .section-hero--content > .gb-block-layout-column-inner {
		max-width: 88rem;
	}
}

/* Ultra-wide (deliberate one-off outside the house tiers): below 2000px split-section images bleed
   to the viewport edge as designed; from 2000px up they stop at the wrap edge like every other
   section, and the copy's outer padding drops to zero because the grid itself is now the wrap. */

@media (min-width: 2000px) {
	.entry-content .section-hero:not(.is-text-only),
	.entry-content .section-media:not(.is-text-only),
	.entry-content .section-quote,
	.entry-content .section-areas {
		--edge: 0rem;
	}

	.entry-content .section-hero:not(.is-text-only) > .gb-layout-column-wrap,
	.entry-content .section-media:not(.is-text-only) > .gb-layout-column-wrap,
	.entry-content .section-quote > .gb-layout-column-wrap,
	.entry-content .section-areas > .gb-layout-column-wrap {
		width: var(--theme-wrap-width);
		max-width: var(--theme-wrap-max-width);
	}
}
