/**
 * Est. 1973 — service-page unification layer (owner brief 2026-08-13).
 *
 * Design-system enforcement for the service template's mixed-ancestry main
 * column (est1973-* + fx-block + ccs-* growth blocks). Page-scoped: every
 * rule sits under body.ccs-est1973 and the .e73-inner-main column (or a
 * named block root inside it), so shared block files stay untouched.
 * Values are est1973-tokens.css tokens only.
 *
 * NOTE on the growth blocks' inline CSS: those <style> tags print inside
 * the body, AFTER this sheet — rules here win on specificity (the
 * body.ccs-est1973 prefix), with !important reserved for contested props.
 */

/* ═══════════════ §D — named rendering bugs ═══════════════ */

/* D1: "Call. Chill. Smile." double-draw — the absolutely-positioned ::after
   echo desyncs its line wraps from the ::before layer. Keep the ::before
   layer as the single source, restyle onto tokens, hard-shadow via
   text-shadow. */
body.ccs-est1973 .e73-inner-main .full-width-cta__highlight-text-visual { position: relative; }
body.ccs-est1973 .e73-inner-main .full-width-cta__highlight-text-visual::before {
	font-family: var(--e73-font-slab) !important;
	color: var(--e73-butter) !important;
	text-shadow: 2px 2px 0 var(--e73-ink);
	position: static !important;
	white-space: normal;
}
body.ccs-est1973 .e73-inner-main .full-width-cta__highlight-text-visual::after { content: none !important; }

/* D2: QUICK ANSWER eyebrow was a full-width pale-blue Pacifico bar. */
body.ccs-est1973 .e73-inner-main .ccs-answer-card__eyebrow,
body.ccs-est1973 .e73-inner-main span.ccs-answer-card__eyebrow {
	display: inline-block !important;
	width: auto !important;
	background: var(--e73-butter-2) !important;
	color: var(--e73-ink) !important;
	font-family: var(--e73-font-slab) !important;
	font-size: var(--e73-fs-xs) !important;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding: 4px 12px !important;
	border-radius: 999px;
}

/* D3: growth linkfolds — consistent open state on desktop, equal cells. */
body.ccs-est1973 .e73-inner-main .ccs-growth-links__grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--e73-space-sm);
	align-items: stretch;
}
@media (min-width: 768px) {
	body.ccs-est1973 .e73-inner-main .ccs-growth-links .ccs-linkfold > ul,
	body.ccs-est1973 .e73-inner-main .ccs-growth-links .ccs-linkfold > div {
		display: block !important;
	}
	body.ccs-est1973 .e73-inner-main .ccs-growth-links .ccs-linkfold summary { pointer-events: none; }
	body.ccs-est1973 .e73-inner-main .ccs-growth-links .ccs-linkfold summary::marker { content: ""; }
}

/* D4: mascot bleed — contained, intentional, symmetric. */
body.ccs-est1973 .e73-inner-main .full-width-cta { overflow: hidden; }
body.ccs-est1973 .e73-inner-main img.full-width-cta__man-image { left: -12px !important; bottom: 0 !important; }

/* D5: wrap on spaces, never mid-word. */
body.ccs-est1973 .e73-inner-main h2,
body.ccs-est1973 .e73-inner-main h3 {
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	text-wrap: balance;
}

/* ═══════════════ §A — one type system ═══════════════ */

/* Headings: Jost, uppercase, one color, narrow-column cap (§B2). */
body.ccs-est1973 .e73-inner-main h2 {
	font-family: var(--e73-font-slab) !important;
	font-size: clamp(26px, 3.4vw, 34px) !important;
	font-weight: 700 !important;
	line-height: 1.15 !important;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--e73-ink) !important;
}
body.ccs-est1973 .e73-inner-main h3 {
	font-family: var(--e73-font-slab) !important;
	font-size: clamp(18px, 2vw, 22px) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--e73-ink) !important;
}
body.ccs-est1973 .e73-inner-main h4 {
	font-family: var(--e73-font-slab) !important;
	font-size: var(--e73-fs-base) !important;
	font-weight: 700 !important;
	color: var(--e73-ink) !important;
}

/* Body: Bitter, one size, one color — swallow Manrope/Roboto wholesale. */
body.ccs-est1973 .e73-inner-main,
body.ccs-est1973 .e73-inner-main p,
body.ccs-est1973 .e73-inner-main li,
body.ccs-est1973 .e73-inner-main td,
body.ccs-est1973 .e73-inner-main dd,
body.ccs-est1973 .e73-inner-main dt,
body.ccs-est1973 .e73-inner-main [class^="ccs-"],
body.ccs-est1973 .e73-inner-main [class*=" ccs-"] {
	font-family: var(--e73-font-serif);
	font-size: var(--e73-fs-base);
	line-height: 1.55;
	color: var(--e73-body);
}
body.ccs-est1973 .e73-inner-main small,
body.ccs-est1973 .e73-inner-main .ccs-fine,
body.ccs-est1973 .e73-inner-main figcaption { font-size: var(--e73-fs-sm); color: var(--e73-muted); }

/* Pacifico stays a hero-only flourish. */
body.ccs-est1973 .e73-inner-main [style*="Pacifico"],
body.ccs-est1973 .e73-inner-main .ccs-script { font-family: var(--e73-font-slab) !important; }

/* Links: default + on-dark only. */
body.ccs-est1973 .e73-inner-main a { color: var(--e73-teal); }
body.ccs-est1973 .e73-inner-main a:hover { color: var(--e73-teal-2); }
body.ccs-est1973 .e73-inner-main .full-width-cta a,
body.ccs-est1973 .e73-inner-main .ccs-emergency-hub a { color: var(--e73-butter); }

/* ═══════════════ §A — color to tokens ═══════════════ */

/* Dark rhythm-break blocks: navy out, espresso in. */
body.ccs-est1973 .e73-inner-main .ccs-emergency-hub {
	background: var(--e73-dark) !important;
	border-radius: var(--e73-radius-lg);
}
body.ccs-est1973 .e73-inner-main .ccs-emergency-hub h2,
body.ccs-est1973 .e73-inner-main .ccs-emergency-hub h3 { color: var(--e73-porcelain) !important; }
body.ccs-est1973 .e73-inner-main .ccs-emergency-hub p,
body.ccs-est1973 .e73-inner-main .ccs-emergency-hub li { color: rgba(255, 250, 238, .88) !important; }

/* Light card fields: every off-white becomes porcelain/cream. */
body.ccs-est1973 .e73-inner-main .ccs-answer-card,
body.ccs-est1973 .e73-inner-main .ccs-answer-block,
body.ccs-est1973 .e73-inner-main .ccs-seo-content,
body.ccs-est1973 .e73-inner-main .ccs-city-depth,
body.ccs-est1973 .e73-inner-main .ccs-growth-links,
body.ccs-est1973 .e73-inner-main .ccs-repair-launch {
	background: transparent !important;
	border-color: var(--e73-line) !important;
}
body.ccs-est1973 .e73-inner-main .ccs-seo-content h2,
body.ccs-est1973 .e73-inner-main .ccs-city-depth h2,
body.ccs-est1973 .e73-inner-main .ccs-seo-content h3,
body.ccs-est1973 .e73-inner-main .ccs-city-depth h3 { color: var(--e73-ink) !important; }

/* ═══════════════ §A — one card recipe ═══════════════ */
body.ccs-est1973 .e73-inner-main .ccs-answer-card,
body.ccs-est1973 .e73-inner-main .ccs-growth-links .ccs-linkfold,
body.ccs-est1973 .e73-inner-main .icons-buttons .icons-button-flex > [class*="col-"],
body.ccs-est1973 .e73-inner-main .ccs-repair-launch__steps li {
	background: var(--e73-porcelain) !important;
	border: 1px solid var(--e73-line) !important;
	border-radius: var(--e73-radius-lg) !important;
	padding: var(--e73-space-md);
	box-shadow: none !important;
}

/* §B4: collapse nested card-in-card inside .icons-buttons. */
body.ccs-est1973 .e73-inner-main .icons-buttons .icons-button-flex > [class*="col-"] > div,
body.ccs-est1973 .e73-inner-main .icons-buttons [class*="__inner"],
body.ccs-est1973 .e73-inner-main .icons-buttons h2 + div {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}

/* ═══════════════ §A — three button variants ═══════════════ */
body.ccs-est1973 .e73-inner-main a.btn,
body.ccs-est1973 .e73-inner-main button.btn,
body.ccs-est1973 .e73-inner-main a[class*="__btn"],
body.ccs-est1973 .e73-inner-main a[class*="-btn"],
body.ccs-est1973 .e73-inner-main .wp-block-button__link {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 50px;
	padding: 12px 24px !important;
	border-radius: var(--e73-radius-sm) !important;
	font-family: var(--e73-font-slab) !important;
	font-size: var(--e73-fs-sm) !important;
	font-weight: 700 !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none !important;
	background: var(--e73-teal) !important;
	color: var(--e73-porcelain) !important;
	border: 0 !important;
	box-shadow: var(--e73-shadow-btn-teal) !important;
}
/* secondary (red) — the blocks that used orange/red CTAs */
body.ccs-est1973 .e73-inner-main .ccs-emergency-hub a.btn,
body.ccs-est1973 .e73-inner-main .ccs-emergency-hub a[class*="btn"],
body.ccs-est1973 .e73-inner-main .full-width-cta a.btn,
body.ccs-est1973 .e73-inner-main a.btn-secondary {
	background: var(--e73-red) !important;
	color: var(--e73-porcelain) !important;
	box-shadow: 0 6px 0 var(--e73-red-2) !important;
}
/* ghost */
body.ccs-est1973 .e73-inner-main a.btn-tertiary,
body.ccs-est1973 .e73-inner-main a[class*="btn--ghost"] {
	background: transparent !important;
	color: var(--e73-teal) !important;
	border: 2px solid currentColor !important;
	box-shadow: none !important;
}
body.ccs-est1973 .e73-inner-main .full-width-cta a.btn-tertiary,
body.ccs-est1973 .e73-inner-main .ccs-emergency-hub a.btn-tertiary { color: var(--e73-porcelain) !important; }

/* ═══════════════ §A — one list treatment ═══════════════ */
body.ccs-est1973 .e73-inner-main ul:not([class]) li { position: relative; padding-left: 24px; margin-bottom: 8px; }
body.ccs-est1973 .e73-inner-main ul:not([class]) li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .55em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--e73-teal);
}

/* ═══════════════ §C — three-step rhythm ═══════════════ */
body.ccs-est1973 .e73-inner-main > * { margin-bottom: 0 !important; }
body.ccs-est1973 .e73-inner-main > * + * { margin-top: var(--e73-space-lg) !important; }
body.ccs-est1973 .e73-inner-main section.fx-block {
	padding-top: var(--e73-space-md) !important;
	padding-bottom: var(--e73-space-md) !important;
}
/* major rhythm breaks */
body.ccs-est1973 .e73-inner-main > .full-width-cta,
body.ccs-est1973 .e73-inner-main > section:has(.full-width-cta),
body.ccs-est1973 .e73-inner-main > .ccs-seo-content { margin-top: var(--e73-space-xl) !important; }

/* ═══════════════ §B — container-relative layout ═══════════════ */

/* The 687px sidebar column is gone. Bootstrap rows may be rows again.
   Mobile still stacks. Desktop uses the full canvas. */
body.ccs-est1973 .e73-inner-main [class*="col-lg"],
body.ccs-est1973 .e73-inner-main [class*="col-md"],
body.ccs-est1973 .e73-inner-main [class*="col-sm"] {
	float: none !important;
	position: static !important;
}
body.ccs-est1973 .e73-inner-main .icons-button-flex {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--e73-space-sm);
	flex-direction: unset;
}
body.ccs-est1973 .e73-inner-main section.fx-block .row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--e73-space-sm);
}
body.ccs-est1973 .e73-inner-main section.fx-block.icons-buttons .icons-buttons__headlines,
body.ccs-est1973 .e73-inner-main section.fx-block.icons-buttons .icons-buttons__headlines .row,
body.ccs-est1973 .e73-inner-main section.fx-block.icons-buttons .icons-buttons__headlines [class*="col-"] {
	display: block;
	width: 100%;
	max-width: 46rem;
	margin-left: 0;
	margin-right: 0;
	float: none;
}
body.ccs-est1973 .e73-inner-main section.fx-block.image-text .row {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--e73-space-md);
}
body.ccs-est1973 .e73-inner-main section.fx-block .row > * {
	max-width: none !important;
}
@media (min-width: 900px) {
	body.ccs-est1973 .e73-inner-main section.fx-block.image-text .row {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: center;
	}
	body.ccs-est1973 .e73-inner-main section.fx-block.image-text .row > * {
		width: auto !important;
	}
}
@media (max-width: 899px) {
	body.ccs-est1973 .e73-inner-main .icons-buttons .row,
	body.ccs-est1973 .e73-inner-main .icons-button-flex {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	body.ccs-est1973 .e73-inner-main [class*="col-lg"],
	body.ccs-est1973 .e73-inner-main [class*="col-md"],
	body.ccs-est1973 .e73-inner-main [class*="col-sm"] {
		width: 100% !important;
		margin-left: 0 !important;
	}
}
@media (max-width: 599px) {
	body.ccs-est1973 .e73-inner-main .icons-buttons .row,
	body.ccs-est1973 .e73-inner-main .icons-button-flex {
		grid-template-columns: 1fr;
	}
}

/* ═══════════════ §E — mobile ═══════════════ */
@media (max-width: 480px) {
	body.ccs-est1973 .e73-inner-main h2 { font-size: 22px !important; }
	body.ccs-est1973 .e73-inner-main h3 { font-size: 17px !important; }
	body.ccs-est1973 .e73-inner-main > * + * { margin-top: var(--e73-space-md) !important; }
	body.ccs-est1973 .e73-inner-main .ccs-answer-card,
	body.ccs-est1973 .e73-inner-main .ccs-growth-links .ccs-linkfold { padding: var(--e73-space-sm); }
}

/* ═══════════════ round 2 — survivors from live verification ═══════════════ */

/* Bare-anchor CTAs in growth blocks (orange #CC4A10 / navy #0B1B3F). */
body.ccs-est1973 .e73-inner-main .ccs-repair-launch__actions a,
body.ccs-est1973 .e73-inner-main .ccs-answer-card a[style],
body.ccs-est1973 .e73-inner-main .ccs-emergency-hub a:not([class]) {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 12px 24px !important;
	border-radius: var(--e73-radius-sm) !important;
	font-family: var(--e73-font-slab) !important;
	font-size: var(--e73-fs-sm) !important;
	font-weight: 700 !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none !important;
	background: var(--e73-teal) !important;
	color: var(--e73-porcelain) !important;
	box-shadow: var(--e73-shadow-btn-teal) !important;
}
body.ccs-est1973 .e73-inner-main .ccs-emergency-hub a:not([class]) {
	background: var(--e73-red) !important;
	box-shadow: 0 6px 0 var(--e73-red-2) !important;
}

/* City / related-service pills (#042452 navy, white cards). */
body.ccs-est1973 .e73-inner-main a.ccs-seo-city-link {
	background: transparent !important;
	color: var(--e73-teal) !important;
	border: 1.5px solid var(--e73-teal) !important;
	border-radius: 999px !important;
	font-family: var(--e73-font-slab) !important;
	font-size: var(--e73-fs-sm) !important;
}
body.ccs-est1973 .e73-inner-main a.ccs-related-service-link {
	background: var(--e73-porcelain) !important;
	color: var(--e73-teal) !important;
	border: 1px solid var(--e73-line) !important;
	border-radius: var(--e73-radius-md) !important;
}

/* Any remaining white/blue-tinted panels -> porcelain field. */
body.ccs-est1973 .e73-inner-main details,
body.ccs-est1973 .e73-inner-main .ccs-city-depth > div,
body.ccs-est1973 .e73-inner-main .ccs-seo-content > div {
	background: var(--e73-porcelain) !important;
	border-color: var(--e73-line) !important;
}

/* Zip widget on tokens. */
body.ccs-est1973 .e73-inner-main .wpcm-zip__zipcode {
	background: var(--e73-porcelain) !important;
	border: 1.5px solid var(--e73-line) !important;
	border-radius: var(--e73-radius-sm) !important;
}
body.ccs-est1973 .e73-inner-main .wpcm-zip__submit {
	background: var(--e73-butter) !important;
	color: var(--e73-ink) !important;
	border: 0 !important;
	border-radius: var(--e73-radius-sm) !important;
	font-family: var(--e73-font-slab) !important;
	font-weight: 700 !important;
}

/* Sidebar link colors: cream + butter only. */
body.ccs-est1973 .e73-sidebar__link { color: rgba(255, 250, 238, .85) !important; }

/* round 3 — final off-token survivors */
body.ccs-est1973 .e73-inner-main .ccs-answer-card__actions a,
body.ccs-est1973 .e73-inner-main .ccs-growth-links__actions a {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 12px 24px !important;
	border-radius: var(--e73-radius-sm) !important;
	font-family: var(--e73-font-slab) !important;
	font-size: var(--e73-fs-sm) !important;
	font-weight: 700 !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none !important;
	background: var(--e73-teal) !important;
	color: var(--e73-porcelain) !important;
	box-shadow: var(--e73-shadow-btn-teal) !important;
}
body.ccs-est1973 .e73-inner-main .ccs-answer-card__actions a + a,
body.ccs-est1973 .e73-inner-main .ccs-growth-links__actions a + a {
	background: transparent !important;
	color: var(--e73-teal) !important;
	border: 2px solid currentColor !important;
	box-shadow: none !important;
}
body.ccs-est1973 .e73-inner-main .ccs-city-depth__grid > div,
body.ccs-est1973 .e73-inner-main .ccs-seo-nap-grid {
	background: var(--e73-porcelain) !important;
	border: 1px solid var(--e73-line) !important;
	border-radius: var(--e73-radius-lg) !important;
}

/* §E round 2 — mobile compression + mascot containment */
@media (max-width: 480px) {
	body.ccs-est1973 .e73-inner-main .full-width-cta .full-width-cta__text img.full-width-cta__man-image { display: none !important; }
	body.ccs-est1973 .e73-inner-main > * + * { margin-top: var(--e73-space-sm) !important; }
	body.ccs-est1973 .e73-inner-main section.fx-block {
		padding-top: var(--e73-space-sm) !important;
		padding-bottom: var(--e73-space-sm) !important;
	}
	body.ccs-est1973 .e73-inner-main .ccs-answer-card,
	body.ccs-est1973 .e73-inner-main .ccs-repair-launch__steps li,
	body.ccs-est1973 .e73-inner-main .icons-buttons .icons-button-flex > [class*="col-"] { padding: 14px !important; }
	body.ccs-est1973 .e73-inner-main ul:not([class]) li { margin-bottom: 5px; }
	body.ccs-est1973 .e73-inner-main p { margin-bottom: 10px; }
}

/* Legacy slide-animation initial transforms never resolve (trigger JS is
   gated) — neutralize alongside the opacity neutralizer. */
body.ccs-est1973 .e73-inner-main [class*="slide-left-animation"],
body.ccs-est1973 .e73-inner-main [class*="slide-up-animation"],
body.ccs-est1973 .e73-inner-main [class*="slide-angle-animation"],
body.ccs-est1973 .e73-inner-main [class*="animation-item"] {
	transform: none !important;
}

/* ═══ 2026-08-15 canvas last-word (unify loads after service.css) ═══ */
body.ccs-est1973 .e73-inner-main .container {
	max-width: none;
}
body.ccs-est1973 .e73-inner-main > * + * { margin-top: 0 !important; }
body.ccs-est1973 .e73-inner-main .ccs-repair-launch {
	background: var(--e73-teal) !important;
	border: 2px solid var(--e73-ink) !important;
	color: #D9EAE6 !important;
}
body.ccs-est1973 .e73-inner-main .ccs-repair-launch h2 { color: var(--e73-porcelain) !important; }
body.ccs-est1973 .e73-inner-main .ccs-repair-launch .ccs-repair-launch__steps {
	grid-template-columns: 1fr !important;
}
body.ccs-est1973 .e73-inner-main .ccs-repair-launch .ccs-repair-launch__steps li {
	background: rgba(255, 250, 238, .08) !important;
	border: 1px solid rgba(255, 250, 238, .22) !important;
	box-shadow: none !important;
}
body.ccs-est1973 .e73-inner-main .ccs-repair-launch .ccs-repair-launch__actions a + a {
	background: transparent !important;
	color: var(--e73-porcelain) !important;
	border: 2px solid rgba(255, 250, 238, .7) !important;
	box-shadow: none !important;
}
body.ccs-est1973 .e73-inner-main .icons-buttons .icons-button-flex,
body.ccs-est1973 .e73-inner-main .icons-buttons .row.icons-button-flex {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	flex-direction: unset !important;
}
body.ccs-est1973 .e73-inner-main .icons-buttons .icons-button-flex > [class*="col-"] {
	max-width: none !important;
	width: auto !important;
}
body.ccs-est1973 .e73-inner-main .fx-block.wysiwyg .container > .row,
body.ccs-est1973 .e73-inner-main .icons-buttons .icons-buttons__headlines {
	border: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
}
@media (max-width: 767px) {
	body.ccs-est1973 .e73-inner-main .icons-buttons .icons-button-flex,
	body.ccs-est1973 .e73-inner-main .icons-buttons .row.icons-button-flex {
		grid-template-columns: 1fr !important;
	}
}
@media (max-width: 480px) {
	body.ccs-est1973 .e73-inner-main > * + * { margin-top: 0 !important; }
	body.ccs-est1973 .e73-inner-main section.fx-block {
		padding-top: 28px !important;
		padding-bottom: 28px !important;
	}
}

/* ═══ Service-family parity pass (visual audit 2026-08-17) ═══
   Hubs don't carry .ccs-ac-repair-refresh or .e73-inner-main wrappers, so
   benefit chips kept legacy sizes (12.5–15px titles) and one hub paragraph
   rendered body-ink on the teal band. Unify on the approved composition. */
body.ccs-est1973 .fx-block.icons-buttons .icons-button__title {
	font-size: 16px;
	line-height: 1.25;
}

body.ccs-est1973 .fx-block.icons-buttons.bg-light-blue .icons-button__details p {
	color: rgba(255, 250, 238, .86);
	font-size: 14px;
	line-height: 1.5;
}

body.ccs-est1973 .e73-sidebar__title {
	font-size: var(--e73-fs-base);
}

body.ccs-est1973 .footer-seo-services h3 {
	font-size: var(--e73-fs-base) !important;
	line-height: 1.3;
}

/* Band headings on the teal chip bands carried ink (2.48:1 on teal). */
body.ccs-est1973 .fx-block.icons-buttons.bg-light-blue h2 {
	color: var(--e73-porcelain);
}

/* T6: hero intro copy holds the 16px floor on small screens. */
body.ccs-est1973 .e73-inner-main > p:first-of-type,
body.ccs-est1973 .fx-block .icons-button p {
	font-size: 16px;
}
