/* Southern Voices — layer for what theme.json can't express. Mobile-first. */

:root {
	--sv-radius: 14px;
	--sv-radius-sm: 10px;
	--sv-shadow: var(--wp--preset--shadow--card);
	--sv-blue-tint: #E8F1F8;
	--sv-orange-tint: #FDF0E3;
}

.skip-link:focus { position: fixed; top: .5rem; left: .5rem; z-index: 1000; background: #fff; padding: .5rem 1rem; }
img { height: auto; }

/* Large monitors: step the whole rem-based scale up so the wider layout doesn't read as tiny text. */
@media (min-width: 1800px) { html { font-size: 106.25%; } }
@media (min-width: 2300px) { html { font-size: 118.75%; } }
@media (min-width: 3000px) { html { font-size: 137.5%; } }

/* ---------- Header ---------- */
/* Blur lives on a pseudo-element: backdrop-filter on the header itself would become the containing block for the
   position:fixed mobile menu overlay and trap it inside the 64px header (the menu would open invisibly). */
.sv-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--wp--preset--color--border); background: transparent; isolation: auto; }
.sv-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(255,255,255,.96); -webkit-backdrop-filter: saturate(1.4) blur(6px); backdrop-filter: saturate(1.4) blur(6px); pointer-events: none; }
/* Mobile overlay menu: full screen, white, comfortable tap targets */
.wp-block-navigation__responsive-container.is-menu-open { background: #fff !important; padding: 1.25rem 1.5rem 2rem !important; overflow-y: auto; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.05rem; padding: .45rem 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding: 0 0 .5rem 1rem !important; border: 0 !important; box-shadow: none !important; }
.wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.admin-bar .sv-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .sv-header { top: 46px; } }
.sv-phone a { font-weight: 700; color: var(--wp--preset--color--navy); text-decoration: none; white-space: nowrap; letter-spacing: -.01em; }
.sv-phone a:hover { color: var(--wp--preset--color--primary); }
.sv-phone__label { display: block; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--wp--preset--color--brand-orange); }
/* Logo */
.sv-header .wp-block-site-logo img { width: clamp(190px, 14vw + 60px, 270px) !important; height: auto; }

/* ---------- Header navigation dropdowns ---------- */
.sv-header .wp-block-navigation-item__content { padding: .35rem 0; }
@media (min-width: 600px) {
	.sv-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
		border: 1px solid var(--wp--preset--color--border); border-radius: 14px; box-shadow: 0 18px 48px rgba(14,42,71,.16);
		padding: .6rem; min-width: 17rem; background: #fff;
	}
	.sv-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container a {
		padding: .55rem .8rem; border-radius: 8px; white-space: nowrap; font-weight: 600; color: var(--wp--preset--color--navy);
	}
	.sv-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container a:hover { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--primary); }
	/* title + one-line description */
	.sv-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: flex; flex-direction: column; align-items: flex-start; gap: .1rem; }
	.sv-header .wp-block-navigation-item__description { display: block; font-size: .78rem; font-weight: 400; color: var(--wp--preset--color--muted); white-space: nowrap; }

	/* Regular panels open under their own label, left-aligned (core right-aligns them in a right-justified nav) */
	.sv-header .wp-block-navigation__responsive-container:not(.is-menu-open) li.sv-menu:not(.sv-mega) > .wp-block-navigation__submenu-container { left: -.8rem !important; right: auto !important; }

	/* Two-column panels (Answering Service, Call Center) */
	.sv-header .wp-block-navigation__responsive-container:not(.is-menu-open) .sv-menu--2col > .wp-block-navigation__submenu-container {
		display: grid; grid-template-columns: repeat(2, minmax(15rem, 1fr)); gap: .15rem .4rem; width: max-content; max-width: min(40rem, 92vw);
	}

	/* Industries mega menu: four columns with group headings; anchored to the right edge of the menu */
	.sv-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container { position: relative; }
	.sv-header .wp-block-navigation__responsive-container:not(.is-menu-open) li.sv-mega { position: static; }
	.sv-header .wp-block-navigation__responsive-container:not(.is-menu-open) .sv-mega > .wp-block-navigation__submenu-container {
		display: block !important; columns: 4 11rem; column-gap: 1.25rem; width: min(58rem, 92vw); left: auto !important; right: -1rem; padding: 1rem 1.25rem;
	}
	.sv-header .sv-mega > .wp-block-navigation__submenu-container > li { break-inside: avoid; }
	.sv-header .sv-mega > .wp-block-navigation__submenu-container a { padding: .38rem .6rem !important; font-weight: 500 !important; }
	.sv-header .sv-nav-heading { break-before: column; }
	.sv-header .sv-nav-heading:first-child, .sv-header .sv-nav-heading.sv-nav-heading--same-col { break-before: auto; }
	.sv-header .sv-nav-heading > .wp-block-navigation-item__content { pointer-events: none; font-size: .72rem !important; font-weight: 800 !important; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--brand-orange) !important; padding-top: .8rem !important; }
	.sv-header .sv-nav-heading:first-child > .wp-block-navigation-item__content { padding-top: .38rem !important; }
	.sv-header .sv-nav-all > .wp-block-navigation-item__content { color: var(--wp--preset--color--primary) !important; font-weight: 700 !important; margin-top: .4rem; }
}
/* Phone overlay menu: plain list, no descriptions */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__description { display: none; }
.wp-block-navigation__responsive-container.is-menu-open .sv-nav-heading > .wp-block-navigation-item__content { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--wp--preset--color--brand-orange); pointer-events: none; padding-top: .8rem; }
@media (max-width: 1240px) { .sv-header__cta { display: none !important; } }
@media (max-width: 781px) {
	.sv-header__cta { display: none !important; }
	.sv-header .sv-phone__label { display: none; }
}

/* ---------- Section bands (alignfull groups in content) ---------- */
.sv-band { padding-block: var(--wp--preset--spacing--70); }
.sv-band--tint { background: var(--wp--preset--color--surface); }
.sv-band--navy { background: var(--wp--preset--color--navy); color: #fff; }
.sv-band--navy :is(h2, h3, h4) { color: #fff; }
.sv-band--navy a:not(.wp-element-button) { color: #fff; }
.entry-content > .sv-band:first-child, .wp-block-post-content > .sv-band:first-child { margin-top: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-top: 0; }

.sv-eyebrow { font-size: .8rem !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--brand-orange); margin-bottom: .25rem !important; }
.sv-lede { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--muted); text-wrap: pretty; }
.sv-band--navy .sv-lede { color: rgba(255,255,255,.82); }
/* Section heads span the same width as the content below them. */
.sv-section-head { margin-bottom: var(--wp--preset--spacing--50) !important; }
.sv-section-head > * { max-width: none; }
.sv-section-head > :is(h2, h3) { text-wrap: balance; }
.sv-section-head > p { text-wrap: pretty; }
.sv-section-head.is-centered > * { margin-inline: auto; text-align: center; }

/* ---------- Hero (full-width centered cover; featured image under a navy overlay) ---------- */
.sv-hero.wp-block-cover { color: #fff; background: var(--wp--preset--color--navy); }
.sv-hero .wp-block-cover__image-background { filter: saturate(.85); }
.sv-hero .wp-block-cover__background { opacity: 1 !important; background:
	radial-gradient(50rem 26rem at 50% 110%, rgba(237,134,39,.22), transparent 70%),
	linear-gradient(180deg, rgba(14,42,71,.90) 0%, rgba(14,42,71,.80) 55%, rgba(14,42,71,.92) 100%) !important; }
.sv-hero .wp-block-cover__inner-container { text-align: center; }
.sv-hero .wp-block-post-title { color: #fff; margin: 0 auto; text-wrap: balance; }
.sv-hero .sv-lede { color: rgba(255,255,255,.86); margin: 1.1rem auto 0; max-width: 50rem; }
.sv-hero .sv-phone { text-align: left; }
.sv-hero .sv-phone a { color: #fff; }
.sv-hero .sv-phone__label { color: #F6B26B; }
.sv-hero .sv-trust { justify-content: center; }
.sv-hero .sv-trust li { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.22); color: #fff; }
.wp-block-button.is-style-sv-accent .wp-block-button__link { background: var(--wp--preset--color--brand-orange); color: var(--wp--preset--color--navy); }
.wp-block-button.is-style-sv-accent .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--navy); }

/* Hero, post content and the first band sit flush (no root block-gap between them). */
main > .sv-hero + *, main > .wp-block-post-content, .wp-block-post-content > :first-child { margin-block-start: 0 !important; }

/* Trust strip */
.sv-trust { list-style: none; padding: 0; margin: var(--wp--preset--spacing--40) 0 0; display: flex; flex-wrap: wrap; gap: .5rem; font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--preset--color--navy); }
.sv-trust li { display: inline-flex; align-items: center; gap: .4rem; background: rgba(255,255,255,.8); border: 1px solid var(--wp--preset--color--border); border-radius: 999px; padding: .3rem .8rem .3rem .55rem; }
.sv-trust li::before { content: ""; width: 1rem; height: 1rem; border-radius: 50%; background: var(--wp--preset--color--brand-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 70% no-repeat; }

/* ---------- Icons & cards ---------- */
.sv-icon { width: 1.5rem; height: 1.5rem; display: inline-block; vertical-align: middle; flex: none; }
.sv-icon-badge { display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: 12px; }
.sv-icon-badge .sv-icon { width: 1.5rem; height: 1.5rem; }
.sv-icon-badge--blue { background: var(--sv-blue-tint); color: var(--wp--preset--color--primary); }
.sv-icon-badge--orange { background: var(--sv-orange-tint); color: #C2620F; }
.sv-icon-badge--navy { background: var(--wp--preset--color--navy); color: #fff; }

.is-style-sv-card { background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: var(--sv-radius); box-shadow: var(--sv-shadow); padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); transition: transform .15s ease, box-shadow .15s ease; }
.is-style-sv-card > :first-child { margin-top: 0; }
.is-style-sv-card h3 { font-size: 1.15rem; margin-block: .9rem .35rem; }
.is-style-sv-card p { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); margin: 0; }
.is-style-sv-card:has(a:hover) { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(14,42,71,.06), 0 14px 32px rgba(14,42,71,.12); }
.is-style-sv-card h3 a { color: inherit; text-decoration: none; }
.is-style-sv-card h3 a::after { content: "\00a0→"; color: var(--wp--preset--color--brand-orange); }

/* Link lists inside cards; navy "see all" card */
.is-style-sv-card .sv-card-links { margin: 1rem 0 0; gap: .45rem; font-size: var(--wp--preset--font-size--small); }
.is-style-sv-card .sv-card-links > li { padding-left: 1.6rem; }
.is-style-sv-card .sv-card-links > li::before { width: 1.05rem; height: 1.05rem; top: .2rem; }
.is-style-sv-card .sv-card-links a { font-weight: 600; text-decoration: none; }
.is-style-sv-card .sv-card-links a:hover { text-decoration: underline; }
.is-style-sv-card.sv-card--navy { background: var(--wp--preset--color--navy); border-color: var(--wp--preset--color--navy); }
.is-style-sv-card.sv-card--navy h3 a, .is-style-sv-card.sv-card--navy p { color: #fff; }
.is-style-sv-card.sv-card--navy p { opacity: .8; }
.is-style-sv-card .wp-block-post-title { font-size: 1.15rem; margin-block: .9rem .35rem; }
.is-style-sv-card .wp-block-post-title a { color: var(--wp--preset--color--navy); text-decoration: none; }

/* Photo-topped cards */
.is-style-sv-card.sv-card--media { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.sv-card--media > .wp-block-image { margin: 0; }
.sv-card--media > .wp-block-image img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; display: block; }
.sv-card--media .sv-card__body { padding: clamp(1.25rem, 1rem + 1.2vw, 2rem); }
.sv-card--media .sv-card__body h3 { font-size: var(--wp--preset--font-size--x-large); margin-top: 0; }
.sv-card--media .sv-card__body > p { font-size: var(--wp--preset--font-size--medium); }
.sv-card--media ul.is-style-sv-checks { margin-top: 1.1rem; font-size: var(--wp--preset--font-size--small); gap: .6rem; }

/* ---------- Media & text ---------- */
.wp-block-media-text.is-style-sv-split { gap: 0; }
.wp-block-media-text.is-style-sv-split .wp-block-media-text__media img { border-radius: 20px; box-shadow: 0 16px 40px rgba(14,42,71,.14); aspect-ratio: 4 / 3; object-fit: cover; }
.wp-block-media-text.is-style-sv-split .wp-block-media-text__content { padding: var(--wp--preset--spacing--40) 0; }
@media (min-width: 782px) {
	.wp-block-media-text.is-style-sv-split:not(.has-media-on-the-right) .wp-block-media-text__content { padding-left: var(--wp--preset--spacing--60); }
	.wp-block-media-text.is-style-sv-split.has-media-on-the-right .wp-block-media-text__content { padding-right: var(--wp--preset--spacing--60); }
}
.wp-block-media-text__content > :first-child { margin-top: 0; }

/* Photos in column splits */
.wp-block-image.sv-photo { margin: 0; }
.wp-block-image.sv-photo img { width: 100%; border-radius: 20px; box-shadow: 0 16px 40px rgba(14,42,71,.14); aspect-ratio: 4 / 3; object-fit: cover; }
.sv-band--navy .wp-block-image.sv-photo img { box-shadow: 0 16px 40px rgba(0,0,0,.35); }
@media (max-width: 781px) { .wp-block-columns.sv-split { flex-direction: column-reverse; } .wp-block-columns.sv-split .wp-block-column:has(.sv-photo) { order: -1; } }

/* ---------- List styles: steps & checks ---------- */
ol.is-style-sv-steps { list-style: none; padding: 0; counter-reset: sv-step; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
ol.is-style-sv-steps > li { counter-increment: sv-step; position: relative; background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: var(--sv-radius); padding: 3.4rem 1.25rem 1.25rem; box-shadow: var(--sv-shadow); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
ol.is-style-sv-steps > li::before { content: counter(sv-step); position: absolute; top: 1.1rem; left: 1.25rem; width: 1.9rem; height: 1.9rem; border-radius: 50%; display: grid; place-items: center; background: var(--wp--preset--color--brand-orange); color: #fff; font-weight: 800; font-size: .95rem; }
ol.is-style-sv-steps > li strong { display: block; color: var(--wp--preset--color--navy); font-size: 1.05rem; margin-bottom: .3rem; }
@media (min-width: 900px) {
	ol.is-style-sv-steps > li:not(:last-child)::after { content: ""; position: absolute; top: 2.05rem; left: calc(1.25rem + 2.4rem); right: -1rem; height: 2px; background: repeating-linear-gradient(90deg, var(--wp--preset--color--border) 0 6px, transparent 6px 12px); }
}

ul.is-style-sv-checks { list-style: none; padding: 0; display: grid; gap: .85rem; }
ul.is-style-sv-checks > li { position: relative; padding-left: 2.1rem; }
ul.is-style-sv-checks > li::before { content: ""; position: absolute; left: 0; top: .2rem; width: 1.35rem; height: 1.35rem; border-radius: 50%; background: var(--wp--preset--color--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 65% no-repeat; }
ul.is-style-sv-checks > li strong { color: var(--wp--preset--color--navy); }
.sv-band--navy ul.is-style-sv-checks > li::before { background-color: var(--wp--preset--color--brand-orange); }
.sv-band--navy ul.is-style-sv-checks > li strong { color: #fff; }

/* ---------- Stat strip ---------- */
.sv-stats { padding-block: var(--wp--preset--spacing--50); }
.sv-stats--navy { background: var(--wp--preset--color--navy); color: #fff; }
.sv-stats--light { background: #fff; border-block: 1px solid var(--wp--preset--color--border); }
.sv-stats__inner { max-width: var(--wp--style--global--wide-size); margin: 0 auto; padding-inline: var(--wp--style--root--padding-left, 1rem); display: grid; grid-template-columns: repeat(2, 1fr); row-gap: 1.75rem; }
@media (min-width: 782px) { .sv-stats__inner { grid-template-columns: repeat(4, 1fr); } }
.sv-stats__item { display: flex; flex-direction: column-reverse; align-items: center; gap: .3rem; text-align: center; padding-inline: 1rem; }
.sv-stats__item + .sv-stats__item { border-left: 1px solid rgba(255,255,255,.16); }
@media (max-width: 781px) { .sv-stats__item:nth-child(odd) { border-left: 0; } }
.sv-stats__item dd { margin: 0; font-size: clamp(1.75rem, 1.2rem + 2vw, 2.6rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.05; }
.sv-stats__item dd::after { content: ""; display: block; width: 2rem; height: 3px; margin: .6rem auto 0; border-radius: 2px; background: var(--wp--preset--color--brand-orange); }
.sv-stats__item dt { font-size: var(--wp--preset--font-size--small); opacity: .8; }
.sv-stats--light .sv-stats__item dd { color: var(--wp--preset--color--navy); }
.sv-stats--light .sv-stats__item + .sv-stats__item { border-left-color: var(--wp--preset--color--border); }

/* ---------- Call flow (caller → agent → outcome branches) ---------- */
.sv-flow { margin: 0; --sv-line: var(--wp--preset--color--primary); --sv-drop: 2rem; }
.sv-flow__node { position: relative; background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: var(--sv-radius); box-shadow: var(--sv-shadow); padding: 1.1rem 1.2rem; display: grid; grid-template-columns: auto 1fr; column-gap: .9rem; row-gap: .15rem; align-items: start; text-align: left; }
.sv-flow__node > .sv-icon { grid-row: span 2; width: 2.6rem; height: 2.6rem; padding: .6rem; border-radius: 10px; background: var(--sv-blue-tint); color: var(--wp--preset--color--primary); }
.sv-flow__node strong { color: var(--wp--preset--color--navy); line-height: 1.3; }
.sv-flow__node span { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); line-height: 1.45; }

/* Intake: caller above agent, centered, joined by a short arrow. */
.sv-flow__intake { display: grid; gap: var(--sv-drop); max-width: 30rem; margin-inline: auto; position: relative; }
.sv-flow__node--caller::after, .sv-flow__node--agent::after { content: ""; position: absolute; left: 50%; top: 100%; width: 2px; height: var(--sv-drop); background: var(--sv-line); transform: translateX(-1px); }
.sv-flow__node--caller::before { content: ""; position: absolute; left: 50%; top: calc(100% + var(--sv-drop) - 7px); border: 6px solid transparent; border-top: 8px solid var(--sv-line); border-bottom: 0; transform: translateX(-6px); z-index: 1; }
.sv-flow__node--agent { border-color: var(--wp--preset--color--primary); box-shadow: 0 0 0 4px var(--sv-blue-tint), var(--sv-shadow); }
.sv-flow__node--agent > .sv-icon { background: var(--wp--preset--color--primary); color: #fff; }

/* Outcomes: mobile = left rail; desktop = horizontal bus with drops. */
.sv-flow__outcomes { list-style: none; margin: var(--sv-drop) 0 0; padding: 0 0 0 1.5rem; display: grid; gap: 1.1rem; position: relative; }
.sv-flow__outcomes::before { content: ""; position: absolute; left: .5rem; top: calc(-1 * var(--sv-drop)); bottom: 2rem; width: 2px; background: var(--sv-line); }
.sv-flow__out::before { content: ""; position: absolute; left: -1rem; top: 2rem; width: 1rem; height: 2px; background: var(--sv-line); }
.sv-flow__out { padding-top: 1.35rem; }
.sv-flow__tag { position: absolute; top: -.7rem; left: 1.1rem; font-style: normal; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: .2rem .6rem; border-radius: 999px; background: var(--sv-tag-bg); color: var(--sv-tag-fg); }
.sv-flow__out > .sv-icon { background: var(--sv-tag-bg); color: var(--sv-tag-fg); }
.sv-flow__out--urgent      { --sv-tag-bg: #FDE8E4; --sv-tag-fg: #B42318; }
.sv-flow__out--lead        { --sv-tag-bg: var(--sv-blue-tint); --sv-tag-fg: var(--wp--preset--color--primary); }
.sv-flow__out--appointment { --sv-tag-bg: #EEE9FC; --sv-tag-fg: #5A3DB8; }
.sv-flow__out--dispatch    { --sv-tag-bg: var(--sv-orange-tint); --sv-tag-fg: #A9520D; }
.sv-flow__out--question    { --sv-tag-bg: #E2F4F3; --sv-tag-fg: #0B7471; }
.sv-flow__out--message     { --sv-tag-bg: #E6F4EA; --sv-tag-fg: #1E7B3A; }

@media (min-width: 900px) {
	.sv-flow { --sv-drop: 2.25rem; }
	.sv-flow__outcomes { padding: 0; grid-template-columns: repeat(var(--sv-n), minmax(0, 1fr)); gap: 1rem; margin-top: calc(var(--sv-drop) * 2); }
	/* bus: spans from first card's center to last card's center */
	.sv-flow__outcomes::before { left: calc(50% / var(--sv-n)); right: calc(50% / var(--sv-n)); top: calc(-1 * var(--sv-drop)); bottom: auto; width: auto; height: 2px; }
	/* stem from agent down to bus */
	.sv-flow__outcomes::after { content: ""; position: absolute; left: 50%; top: calc(-2 * var(--sv-drop)); width: 2px; height: var(--sv-drop); background: var(--sv-line); transform: translateX(-1px); }
	.sv-flow__node--agent::after { display: none; }
	/* drops into each card, with arrowheads */
	.sv-flow__out::before { left: 50%; top: calc(-1 * var(--sv-drop)); width: 2px; height: calc(var(--sv-drop) - 2px); transform: translateX(-1px); }
	.sv-flow__out::after { content: ""; position: absolute; left: 50%; top: -9px; border: 6px solid transparent; border-top: 8px solid var(--sv-line); border-bottom: 0; transform: translateX(-6px); }
	.sv-flow__out { grid-template-columns: 1fr; text-align: center; justify-items: center; align-content: start; padding: 1.25rem 1rem; }
	.sv-flow__out > .sv-icon { grid-row: auto; margin-bottom: .5rem; }
	.sv-flow__out .sv-flow__tag { position: static; margin-bottom: .75rem; white-space: nowrap; }
}
@media (prefers-reduced-motion: no-preference) {
	.sv-flow__node--agent > .sv-icon { animation: sv-pulse 2.4s ease-out infinite; }
	@keyframes sv-pulse { 0% { box-shadow: 0 0 0 0 rgba(31,108,159,.45); } 70% { box-shadow: 0 0 0 12px rgba(31,108,159,0); } 100% { box-shadow: 0 0 0 0 rgba(31,108,159,0); } }
}

/* ---------- Coverage clock ---------- */
/* Stacks by default; goes side-by-side only when its container is wide (container query, not viewport). */
:where(.wp-block-column, .is-style-sv-card, .wp-block-group):has(> .sv-clock) { container-type: inline-size; }
.sv-clock { margin: 0; display: grid; gap: 1.25rem; align-items: center; }
.sv-clock svg { max-width: 14rem; }
@container (min-width: 34rem) { .sv-clock { grid-template-columns: 14rem 1fr; } }
.sv-clock svg { width: 100%; margin-inline: auto; display: block; }
.sv-clock circle { fill: none; stroke-width: 26; }
.sv-clock__sv { stroke: var(--wp--preset--color--primary); }
.sv-clock__staff { stroke: var(--wp--preset--color--border); }
.sv-clock__lunch { stroke: var(--wp--preset--color--brand-orange); }
.sv-clock__tick { font-size: 9px; font-weight: 600; fill: var(--wp--preset--color--muted); text-anchor: middle; }
.sv-clock__center { font-size: 26px; font-weight: 800; fill: var(--wp--preset--color--navy); text-anchor: middle; }
.sv-clock__sub { font-size: 10px; font-weight: 600; fill: var(--wp--preset--color--muted); text-anchor: middle; text-transform: uppercase; letter-spacing: .1em; }
.sv-clock__legend { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; font-size: var(--wp--preset--font-size--small); }
.sv-clock__legend li { display: flex; gap: .6rem; align-items: center; }
.sv-clock__key { width: .9rem; height: .9rem; border-radius: 4px; flex: none; }
.sv-clock__key--staff { background: var(--wp--preset--color--border); }
.sv-clock__key--sv { background: var(--wp--preset--color--primary); }
.sv-clock__key--lunch { background: var(--wp--preset--color--brand-orange); }
.sv-clock__key--overflow { background: repeating-linear-gradient(45deg, var(--wp--preset--color--primary) 0 3px, #fff 3px 6px); border: 1px solid var(--wp--preset--color--primary); }
.sv-clock__note { font-size: .8rem; color: var(--wp--preset--color--muted); margin: .9rem 0 0; }

/* ---------- Data points (sourced stats with a meter bar) ---------- */
.sv-datapoint { border-radius: var(--sv-radius); padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); }
.sv-band:not(.sv-band--navy) .sv-datapoint { background: #fff; border-color: var(--wp--preset--color--border); box-shadow: var(--sv-shadow); }
.sv-datapoint > * { margin: 0; }
.sv-datapoint__value { font-size: clamp(2.5rem, 1.8rem + 2.5vw, 3.5rem); font-weight: 800; letter-spacing: -.03em; line-height: 1; }
.sv-datapoint__value span { font-size: .4em; font-weight: 600; letter-spacing: 0; opacity: .7; }
.sv-meter { height: .55rem; border-radius: 999px; background: rgba(255,255,255,.14); margin: 1rem 0 .9rem !important; display: flex; overflow: hidden; }
.sv-band:not(.sv-band--navy) .sv-meter { background: var(--wp--preset--color--surface); }
.sv-meter span { display: block; height: 100%; background: var(--wp--preset--color--brand-orange); border-radius: 999px; }
.sv-meter--compare { background: none !important; flex-direction: column; gap: .3rem; height: auto; }
.sv-meter--compare span { height: .55rem; }
.sv-meter--compare span + span { background: rgba(255,255,255,.35); }
.sv-band:not(.sv-band--navy) .sv-meter--compare span + span { background: var(--wp--preset--color--border); }
.sv-datapoint > p:last-child { font-size: var(--wp--preset--font-size--small); opacity: .85; }
.sv-source { margin-top: var(--wp--preset--spacing--40) !important; opacity: .7; }

/* ---------- Pricing card ---------- */
.sv-price { background: #fff; border-radius: 20px; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); box-shadow: 0 20px 50px rgba(14,42,71,.18); border-top: 6px solid var(--wp--preset--color--brand-orange); text-align: center; color: var(--wp--preset--color--ink); }
.sv-price p { margin: 0; }
.sv-price__eyebrow { font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.sv-price__amount { font-size: clamp(3.5rem, 2.5rem + 4vw, 5rem); font-weight: 800; line-height: 1; letter-spacing: -.03em; color: var(--wp--preset--color--navy); margin-top: .4rem !important; }
.sv-price__currency { font-size: .45em; vertical-align: .9em; margin-right: .05em; }
.sv-price__unit { font-weight: 600; color: var(--wp--preset--color--navy); }
.sv-price__note { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); margin: 1rem auto 1.4rem !important; max-width: 22rem; }

/* ---------- FAQ ---------- */
.wp-block-sv-faq { border-top: 1px solid var(--wp--preset--color--border); }
.wp-block-sv-faq details { padding-block: 1.1rem; }
.wp-block-sv-faq details summary { cursor: pointer; font-weight: 700; color: var(--wp--preset--color--navy); list-style: none; display: flex; justify-content: space-between; gap: 1rem; font-size: 1.05rem; }
.wp-block-sv-faq details summary::-webkit-details-marker { display: none; }
.wp-block-sv-faq details summary::after { content: "+"; flex: none; width: 1.75rem; height: 1.75rem; border-radius: 50%; display: grid; place-items: center; background: var(--sv-blue-tint); color: var(--wp--preset--color--primary); font-weight: 700; transition: transform .2s ease; }
.wp-block-sv-faq details[open] summary::after { transform: rotate(45deg); }
.wp-block-sv-faq details > :not(summary) { margin-top: .6rem; color: var(--wp--preset--color--muted); }
@media (min-width: 900px) { .sv-sticky { position: sticky; top: 7rem; } }

/* ---------- Blog posts ---------- */
.sv-post-hero { background: var(--wp--preset--color--surface); }
.sv-post-hero .wp-block-post-title { margin-block: .4rem .8rem; text-wrap: balance; }
.sv-post-hero .wp-block-post-terms a { color: inherit; text-decoration: none; }
.sv-post .wp-block-post-featured-image { margin-top: calc(-1 * var(--wp--preset--spacing--40)); margin-bottom: var(--wp--preset--spacing--50); }
.sv-post .wp-block-post-content { font-size: 1.125rem; line-height: 1.7; }
.sv-post .wp-block-post-content h2 { margin-top: 2.5rem; }
.sv-post .wp-block-post-content .wp-block-image img { border-radius: 12px; }
.sv-post .wp-block-post-content details { border-bottom: 1px solid var(--wp--preset--color--border); padding-block: .9rem; }
.sv-post .wp-block-post-content summary { font-weight: 700; color: var(--wp--preset--color--navy); cursor: pointer; }

/* ---------- Footer & CTA band ---------- */
/* Template parts butt together: no root block-gap between header, main and footer. */
.wp-site-blocks > * + * { margin-block-start: 0; }
main > .wp-block-sv-cta-band:last-child { margin-bottom: 0; }
.sv-footer a { color: inherit; text-decoration: none; }
.sv-footer a:hover { text-decoration: underline; }
.wp-block-sv-cta-band { background:
	radial-gradient(40rem 20rem at 100% 0%, rgba(237,134,39,.18), transparent 60%),
	var(--wp--preset--color--navy); color: #fff; }
.wp-block-sv-cta-band h2 { color: #fff; }
.wp-block-sv-cta-band .sv-cta-band__phone { color: #fff; font-weight: 700; font-size: 1.15rem; text-decoration: none; }
.sv-footer { border-top: 1px solid rgba(255,255,255,.08); }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }

/* Lazy third-party embeds reserve space so the page doesn't jump (CLS). */
.sv-lazy-embed { min-height: 32rem; }

/* Tables (blog comparisons) */
.wp-block-table { margin-block: 1.75rem; overflow-x: auto; }
.wp-block-table table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--small); border: 1px solid var(--wp--preset--color--border); border-radius: var(--sv-radius-sm); overflow: hidden; }
.wp-block-table th, .wp-block-table td { padding: .75rem 1rem; border: 0; border-bottom: 1px solid var(--wp--preset--color--border); text-align: left; vertical-align: top; }
.wp-block-table thead th { background: var(--wp--preset--color--navy); color: #fff; font-weight: 700; }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--wp--preset--color--surface); }
.wp-block-table.is-style-stripes { border-bottom: 0; }
.wp-block-table figcaption { font-size: .8rem; color: var(--wp--preset--color--muted); }

/* ---------- Industry directory ---------- */
.sv-dir { display: grid; gap: var(--wp--preset--spacing--50); }
.sv-dir__title { font-size: var(--wp--preset--font-size--small) !important; text-transform: uppercase; letter-spacing: .08em; color: var(--wp--preset--color--brand-orange) !important; margin: 0 0 1rem; }
.sv-dir__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr)); }
.sv-dir__card { display: grid; grid-template-columns: auto 1fr; column-gap: .9rem; row-gap: .2rem; align-items: start; background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: var(--sv-radius); box-shadow: var(--sv-shadow); padding: 1.1rem 1.2rem; text-decoration: none; color: inherit; transition: transform .15s ease, box-shadow .15s ease; }
.sv-dir__card .sv-icon-badge { grid-row: span 2; width: 2.6rem; height: 2.6rem; }
.sv-dir__card strong { color: var(--wp--preset--color--navy); }
.sv-dir__card strong::after { content: "\00a0→"; color: var(--wp--preset--color--brand-orange); }
.sv-dir__card span:not(.sv-icon-badge) { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); line-height: 1.45; }
.sv-dir__card:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(14,42,71,.06), 0 14px 32px rgba(14,42,71,.12); }
.sv-dir--columns { grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)); gap: 1.5rem 2rem; }
.sv-dir--columns .sv-dir__group { background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: var(--sv-radius); box-shadow: var(--sv-shadow); padding: 1.25rem 1.4rem; }
.sv-dir__links { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.sv-dir__links a { display: flex; gap: .6rem; align-items: center; font-weight: 600; color: var(--wp--preset--color--navy); text-decoration: none; }
.sv-dir__links a:hover { color: var(--wp--preset--color--primary); }
.sv-dir__links .sv-icon { width: 1.1rem; height: 1.1rem; color: var(--wp--preset--color--primary); }

/* Related articles (single posts) */
.sv-related { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(17rem, 100%), 1fr)); }
.sv-related__card { display: flex; flex-direction: column; gap: .5rem; text-decoration: none; color: inherit; }
.sv-related__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; }
.sv-related__cat { font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--brand-orange); }
.sv-related__card strong { color: var(--wp--preset--color--navy); line-height: 1.35; }
