/* Reusable Southern Range blocks — approved Homepage Visual System v1.0. */
.sr-section,.sr-section * { box-sizing:border-box; }
.sr-section { --sr-section-bg:var(--sr-surface-chalk); --sr-section-text:var(--sr-surface-charcoal); --sr-section-muted:#5b605e; --sr-section-accent:var(--sr-surface-eucalyptus); --sr-section-line:rgba(28,30,31,.16); --sr-section-card-bg:#fff; --sr-section-card-text:var(--sr-surface-charcoal); --sr-section-card-muted:#5d6260; --sr-section-focus:var(--sr-surface-eucalyptus); --sr-section-input-bg:#fff; --sr-section-input-text:var(--sr-surface-charcoal); width:100%; min-width:0; overflow:clip; color:var(--sr-section-text); background:var(--sr-section-bg); }
.sr-home-main { margin:0!important; background:#fff; }
.sr-home-main > * { margin-block-start:0!important; }
body.home .sr-home-main .sr-section.is-surface-chalk { --sr-section-bg:#fff; }
.sr-section.is-surface-white { --sr-section-bg:#fff; --sr-section-card-bg:var(--sr-surface-chalk); }
.sr-section.is-surface-warm-stone { --sr-section-bg:var(--sr-surface-stone); }
.sr-section.is-surface-sky { --sr-section-bg:var(--sr-surface-sky); --sr-section-card-bg:var(--sr-surface-chalk); }
.sr-section.is-surface-charcoal { --sr-section-bg:var(--sr-surface-charcoal); --sr-section-text:var(--sr-surface-chalk); --sr-section-muted:#d6ddda; --sr-section-accent:var(--sr-surface-sky); --sr-section-line:rgba(246,244,241,.22); --sr-section-card-bg:#282c2b; --sr-section-card-text:var(--sr-surface-chalk); --sr-section-card-muted:#d6ddda; --sr-section-focus:var(--wp--preset--color--signal-ochre,#EEC044); --sr-section-input-bg:var(--sr-surface-chalk); --sr-section-input-text:var(--sr-surface-charcoal); }
.sr-section.is-surface-eucalyptus { --sr-section-bg:var(--sr-surface-eucalyptus); --sr-section-text:var(--sr-surface-chalk); --sr-section-muted:#eef2ef; --sr-section-accent:var(--sr-surface-chalk); --sr-section-line:rgba(246,244,241,.26); --sr-section-card-bg:#4f6557; --sr-section-card-text:var(--sr-surface-chalk); --sr-section-card-muted:#eef2ef; --sr-section-focus:var(--wp--preset--color--signal-ochre,#EEC044); color:var(--sr-section-text); }
.sr-section-shell { width:min(calc(100% - (2 * var(--sr-page-gutter))),var(--sr-width-standard)); margin-inline:auto; padding-block:var(--sr-section-space,var(--sr-space-standard)); }
.sr-section.is-width-reading .sr-section-shell { width:min(calc(100% - (2 * var(--sr-page-gutter))),var(--sr-width-reading)); max-width:var(--sr-width-reading); }
.sr-section.is-width-standard .sr-section-shell { width:min(calc(100% - (2 * var(--sr-page-gutter))),var(--sr-width-standard)); max-width:var(--sr-width-standard); }
.sr-section.is-width-wide .sr-section-shell { width:min(calc(100% - (2 * var(--sr-page-gutter))),var(--sr-width-wide)); max-width:var(--sr-width-wide); }
.sr-section.is-width-max .sr-section-shell { width:min(calc(100% - (2 * var(--sr-page-gutter))),var(--sr-width-max)); max-width:var(--sr-width-max); }
.sr-section.is-width-full .sr-section-shell { width:100%; max-width:none; }
/* Homepage Media + Copy blocks are visual chapters. Older saved blocks can
   retain width="standard" in post content, so promote their outer shell here
   without widening the independently constrained copy measure. */
body.home .sr-home-main .sr-section--media-copy .sr-section-shell { width:min(calc(100% - (2 * var(--sr-page-gutter))),var(--sr-width-wide)); max-width:var(--sr-width-wide); }
.sr-section.is-spacing-compact { --sr-section-space:var(--sr-space-compact); }
.sr-section.is-spacing-standard { --sr-section-space:var(--sr-space-standard); }
.sr-section.is-spacing-generous { --sr-section-space:var(--sr-space-generous); }
.sr-section .sr-button--text,.sr-section .sr-section-link { color:var(--sr-section-accent)!important; }
.sr-section .sr-button:focus-visible,.sr-section .sr-section-button:focus-visible,.sr-section .sr-section-link:focus-visible { outline-color:var(--sr-section-focus); }
.sr-section-header { max-width:840px; }
.sr-section-header .sr-type-eyebrow { margin-bottom:.75rem; color:var(--sr-section-accent); }
.sr-section-intro,.sr-section-body { max-width:64ch; color:var(--sr-section-muted); font-size:clamp(1rem,1.25vw,1.15rem); line-height:1.65; }
.sr-section-intro { margin-top:1.25rem; }
.sr-section-body { margin-top:1.25rem; }
.sr-section--heading.is-align-split .sr-section-header { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); gap:clamp(2rem,7vw,7rem); max-width:none; align-items:end; }
.sr-section--heading.is-align-split .sr-type-eyebrow,.sr-section--heading.is-align-split .sr-type-section-title { grid-column:1; }
.sr-section--heading.is-align-split .sr-section-intro { grid-column:2; grid-row:1/3; align-self:end; margin:0; }
.sr-section--heading.is-align-centered .sr-section-header { margin-inline:auto; text-align:center; }
.sr-section--heading.is-align-centered .sr-section-intro { margin-inline:auto; }

/* Media + Copy is a contained editorial grid, never an outer floating card. */
.sr-section-split { display:grid; grid-template-columns:minmax(0,45fr) minmax(0,55fr); gap:clamp(2rem,7vw,7rem); align-items:center; }
.sr-section--media-copy.is-media-left .sr-section-split { grid-template-columns:minmax(0,55fr) minmax(0,45fr); }
.sr-section-media,.sr-feature-card__media,.sr-cta-panel__media { display:block; width:100%; overflow:hidden; background:#dde1dc; border-radius:var(--sr-radius-media); }
.sr-section-media img,.sr-feature-card__media img,.sr-cta-panel__media img { display:block; width:100%; height:100%; object-fit:cover; object-position:var(--sr-focal-x,50%) var(--sr-focal-y,50%); }
.is-ratio-three-two { aspect-ratio:3/2; }.is-ratio-four-three { aspect-ratio:4/3; }.is-ratio-square { aspect-ratio:1; }.is-ratio-portrait { aspect-ratio:4/5; }
.sr-section-media.is-placeholder,.sr-feature-card__media.is-placeholder { display:grid; place-items:center; color:#606763; background:linear-gradient(145deg,#e7e4de,#d8ded9); font:600 .72rem/1 var(--wp--preset--font-family--plex-mono,monospace); letter-spacing:.07em; text-transform:uppercase; }

/* Shared restrained card foundation. */
.sr-card { min-width:0; overflow:hidden; color:var(--sr-section-card-text); background:var(--sr-section-card-bg); border:1px solid var(--sr-section-line); border-radius:var(--sr-radius-md); transition:border-color var(--sr-motion-card) ease,background-color var(--sr-motion-card) ease,transform var(--sr-motion-card) var(--sr-ease-out); }
.sr-card:hover { border-color:var(--sr-section-accent); transform:translateY(-2px); }
.sr-editorial-card > a:focus-visible { outline:3px solid var(--sr-section-focus); outline-offset:-3px; }
.sr-editorial-card > a:focus-visible h3 { text-decoration:underline; text-underline-offset:.18em; }
.sr-section--feature-cards .sr-section-header,.sr-section--editorial-feed .sr-section-header { margin-bottom:clamp(2rem,4vw,3.5rem); }
.sr-feature-cards { display:grid; grid-template-columns:repeat(var(--sr-card-columns,4),minmax(0,1fr)); gap:clamp(12px,2vw,24px); }
.sr-feature-card__media { border-radius:0; }
.sr-feature-card__copy { display:flex; min-height:176px; flex-direction:column; padding:clamp(18px,2vw,24px); }
.sr-feature-card__copy .sr-type-eyebrow { margin-bottom:.55rem; color:var(--sr-section-accent); }
.sr-feature-card h3 { margin:0; }
.sr-feature-card p { margin:.65rem 0 1rem; color:var(--sr-section-card-muted); line-height:1.5; }
.sr-feature-card .sr-button { align-self:flex-start; margin-top:auto; }

/* Evidence blocks use ruled rows, not cards. */
.sr-section--key-facts .sr-section-shell,.sr-section--trust-strip .sr-section-shell { padding-block:0; }
.sr-key-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0; border-block:1px solid var(--sr-section-line); }
.sr-key-facts > div { display:flex; flex-direction:column; padding:clamp(1rem,2.2vw,1.6rem); border-right:1px solid var(--sr-section-line); }
.sr-key-facts > div:last-child { border-right:0; }
.sr-key-facts dd { order:1; margin:0; }
.sr-key-facts strong { display:block; font:600 clamp(2rem,4vw,4rem)/.95 var(--wp--preset--font-family--plex-condensed,sans-serif); letter-spacing:-.02em; }
.sr-key-facts dt { order:2; margin-top:.55rem; font:600 .7rem/1.35 var(--wp--preset--font-family--plex-mono,monospace); letter-spacing:.055em; text-transform:uppercase; }
.sr-key-facts small { display:block; margin-top:.25rem; color:var(--sr-section-muted); font-weight:400; text-transform:none; }
.sr-trust-strip { --sr-trust-icon-size:clamp(48px,5vw,72px); display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0; border-block:1px solid var(--sr-section-line); }
.sr-trust-strip__item { display:flex; align-items:center; justify-content:center; gap:clamp(.7rem,1.5vw,1.1rem); min-height:calc(var(--sr-trust-icon-size) + 3rem); padding:clamp(1.25rem,2vw,1.75rem) 1rem; border-right:1px solid var(--sr-section-line); font:600 .72rem/1.45 var(--wp--preset--font-family--plex-mono,"IBM Plex Mono",monospace); letter-spacing:.05em; text-align:center; text-transform:uppercase; }
.sr-trust-strip__item:first-child { border-left:1px solid var(--sr-section-line); }
.sr-trust-strip__icon { display:block; flex:0 0 var(--sr-trust-icon-size); width:var(--sr-trust-icon-size); height:var(--sr-trust-icon-size); object-fit:contain; border-radius:0; }
.sr-trust-strip strong { margin:0; font:inherit; }

/* FAQ. */
.sr-faq-layout { display:grid; grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr); gap:clamp(2rem,7vw,7rem); align-items:start; }
.sr-faq-list { border-top:1px solid var(--sr-section-line); }
.sr-faq-list details { border-bottom:1px solid var(--sr-section-line); }
.sr-faq-list summary { display:grid; grid-template-columns:1fr 24px; gap:1rem; align-items:center; min-height:70px; padding:1rem 0; cursor:pointer; font-weight:600; list-style:none; }
.sr-faq-list summary::-webkit-details-marker { display:none; }
.sr-faq-list summary i { position:relative; width:18px; height:18px; }
.sr-faq-list summary i::before,.sr-faq-list summary i::after { position:absolute; top:8px; left:2px; width:14px; height:2px; background:currentColor; content:""; }
.sr-faq-list summary i::after { transform:rotate(90deg); transition:transform var(--sr-motion-ui) ease; }
.sr-faq-list details[open] summary i::after { transform:rotate(0); }
.sr-faq-list details > div { max-width:68ch; padding:0 2.5rem 1.35rem 0; color:var(--sr-section-muted); line-height:1.65; }

/* CTA panels can be composed singly or as the approved dual pattern. */
.sr-section--cta-panel .sr-section-shell { width:min(calc(100% - (2 * var(--sr-page-gutter))),var(--sr-width-wide)); }
.sr-section--cta-panel.is-width-full .sr-section-shell { width:100%; max-width:none; }
.sr-cta-panel { position:relative; display:grid; min-height:220px; grid-template-columns:minmax(0,1fr); gap:2rem; align-items:center; padding:clamp(1.5rem,4vw,4rem); }
.sr-cta-panel:has(.sr-cta-panel__media) { grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr); }
.sr-cta-panel__media { position:absolute; inset:0 0 0 auto; width:45%; height:100%; border-radius:0; opacity:.34; }
.sr-cta-panel .sr-section-copy { position:relative; z-index:1; max-width:650px; }
.sr-dual-cta { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0!important; max-width:none!important; }
.sr-dual-cta > .sr-section { margin:0!important; }
.sr-dual-cta .sr-section-shell { width:100%; }

/* One editorial card family with state-driven composition. */
.sr-editorial-feed { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); grid-template-rows:repeat(2,minmax(0,1fr)); gap:clamp(12px,2vw,24px); }
.sr-editorial-card.is-featured { grid-row:1/3; }
.sr-editorial-card > a { display:grid; height:100%; color:inherit; text-decoration:none; }
.sr-editorial-card.is-featured > a { grid-template-rows:minmax(260px,1.25fr) auto; }
.sr-editorial-card.is-standard > a { grid-template-rows:auto minmax(0,1fr); }
.sr-editorial-card__media { display:block; min-height:140px; overflow:hidden; background:var(--sr-surface-stone); }
.sr-editorial-card__media img,.sr-editorial-card__media i { display:block; width:100%; height:100%; object-fit:cover; background:linear-gradient(145deg,#607b6b,#242829); }
.sr-editorial-card.is-standard .sr-editorial-card__media { min-height:0; aspect-ratio:16/9; }
.sr-editorial-card.is-standard .sr-editorial-card__media img { object-position:center; }
.sr-editorial-card__copy { display:flex; min-width:0; flex-direction:column; padding:clamp(18px,2vw,24px); }
.sr-editorial-card__copy .sr-type-eyebrow { color:var(--sr-section-accent); }
.sr-editorial-card h3 { margin:.5rem 0 0; font-size:clamp(1.25rem,2vw,2.1rem); line-height:1.04; }
.sr-editorial-card.is-standard h3 { font-size:clamp(1.05rem,1.35vw,1.3rem); }
.sr-editorial-card p { margin:.65rem 0; color:var(--sr-section-card-muted); line-height:1.5; }
.sr-editorial-card.is-standard p { display:none; }
.sr-editorial-card strong { margin-top:auto; padding-top:.85rem; font:600 .72rem/1.3 var(--wp--preset--font-family--plex-mono,monospace); text-transform:uppercase; }
.sr-section--editorial-feed.has-1-items .sr-editorial-feed { grid-template-columns:minmax(0,2fr) minmax(260px,1fr); }
.sr-section--editorial-feed.has-1-items .sr-editorial-card { grid-column:1; }
.sr-section--editorial-feed.has-2-items .sr-editorial-card.is-standard { grid-row:1/3; }

@media (min-width:2560px) {
	body.home .sr-home-main .sr-section.is-width-wide .sr-section-shell,
	body.home .sr-home-main .sr-section--media-copy .sr-section-shell { width:min(calc(100% - (2 * var(--sr-page-gutter))),var(--sr-width-max)); max-width:var(--sr-width-max); }
}

/* Compact pre-footer utility. */
.sr-newsletter { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(420px,1.2fr); gap:clamp(1.5rem,5vw,5rem); align-items:center; }
.sr-newsletter > p { margin:0; font:600 clamp(1.25rem,2vw,1.7rem)/1.2 var(--wp--preset--font-family--plex-condensed,sans-serif); }
.sr-newsletter form > label { display:block; margin-bottom:.4rem; font:600 .72rem/1.3 var(--wp--preset--font-family--plex-mono,monospace); text-transform:uppercase; }
.sr-newsletter form > div { display:grid; grid-template-columns:1fr auto; }
.sr-newsletter input { min-width:0; min-height:48px; padding:.75rem 1rem; color:var(--sr-section-input-text); background:var(--sr-section-input-bg); border:1px solid var(--sr-section-line); border-radius:var(--sr-radius-sm) 0 0 var(--sr-radius-sm); font:inherit; }
.sr-newsletter input::placeholder { color:color-mix(in srgb,var(--sr-section-input-text) 62%,transparent); }
.sr-newsletter input:focus-visible,.sr-faq-list summary:focus-visible { outline:3px solid var(--sr-section-focus); outline-offset:2px; }
.sr-newsletter button { border-radius:0 var(--sr-radius-sm) var(--sr-radius-sm) 0; }
.sr-newsletter small { display:block; margin-top:.45rem; color:var(--sr-section-muted); }

/* Editor fidelity and containment. */
.editor-styles-wrapper .sr-section-shell { --sr-section-space:clamp(2rem,5vw,4rem); }
.editor-styles-wrapper .sr-section-media.is-placeholder { min-height:220px; }
.editor-styles-wrapper .sr-site-header .sr-icon,.editor-styles-wrapper .sr-trust-strip .sr-icon { max-width:58px!important; max-height:58px!important; }
.editor-styles-wrapper .sr-site-header svg { width:auto; max-width:96px!important; height:auto; max-height:96px!important; }
.editor-styles-wrapper .sr-site-header { position:relative; }
.editor-styles-wrapper .sr-header-panel,.editor-styles-wrapper .sr-mobile-drawer,.editor-styles-wrapper .sr-header-scrim { display:none!important; }
.editor-styles-wrapper .sr-faq-editor-item { padding:1rem 0; border-bottom:1px solid var(--sr-section-line); }
.editor-styles-wrapper .sr-faq-editor-item h3,.editor-styles-wrapper .sr-faq-editor-item p { margin:.35rem 0; }
.editor-styles-wrapper .sr-newsletter-editor-form { display:grid; grid-template-columns:1fr auto; }
.editor-styles-wrapper .sr-newsletter-editor-form input { min-width:0; min-height:48px; padding:.75rem 1rem; }

@media (max-width:1024px) {
	.sr-section-split,.sr-faq-layout,.sr-section--heading.is-align-split .sr-section-header { grid-template-columns:1fr; }
	.sr-section--heading.is-align-split .sr-type-eyebrow,.sr-section--heading.is-align-split .sr-type-section-title,.sr-section--heading.is-align-split .sr-section-intro { grid-column:auto; grid-row:auto; }
	.sr-feature-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.sr-trust-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.sr-trust-strip__item:nth-child(2n) { border-right:1px solid var(--sr-section-line); }
	.sr-trust-strip__item:nth-child(-n+2) { border-bottom:1px solid var(--sr-section-line); }
	.sr-editorial-feed { grid-template-columns:1fr; grid-template-rows:auto; }
	.sr-editorial-card.is-featured { grid-row:auto; }
	.sr-editorial-card.is-featured > a { grid-template-rows:auto minmax(0,1fr); }
	.sr-editorial-card.is-featured .sr-editorial-card__media { min-height:0; aspect-ratio:16/9; }
}

@media (max-width:767px) {
	/* Mobile editorial sequence is always media then copy. This prevents the
	   desktop left/right composition from reading as a floated thumbnail. */
	body.home .sr-home-main .sr-section--media-copy .sr-section-shell.sr-section-split,
	.sr-section--media-copy .sr-section-shell.sr-section-split {
		display:flex!important;
		width:min(calc(100% - (2 * var(--sr-page-gutter))),var(--sr-width-standard))!important;
		max-width:var(--sr-width-standard)!important;
		min-width:0!important;
		flex-direction:column!important;
		grid-template-columns:none!important;
		gap:clamp(1.35rem,6vw,2rem)!important;
	}
	body.home .sr-home-main .sr-section--media-copy .sr-section-media,
	body.home .sr-home-main .sr-section--media-copy .sr-section-copy,
	.sr-section--media-copy .sr-section-media,
	.sr-section--media-copy .sr-section-copy {
		float:none!important;
		width:100%!important;
		max-width:none!important;
		min-width:0!important;
		margin-inline:0!important;
	}
	.sr-section--media-copy .sr-section-media { order:1; aspect-ratio:4/3; }
	.sr-section--media-copy .sr-section-copy { order:2; }
	.sr-section.is-spacing-generous .sr-section-shell { padding-block:clamp(2.75rem,11vw,4rem); }
	.sr-section.is-spacing-standard .sr-section-shell { padding-block:clamp(2.35rem,9vw,3.4rem); }
	.sr-section.is-spacing-compact .sr-section-shell { padding-block:clamp(1.5rem,6vw,2.25rem); }
	.sr-section-media img,.sr-feature-card__media img,.sr-cta-panel__media img { object-position:var(--sr-mobile-focal-x,50%) var(--sr-mobile-focal-y,50%); }
	.sr-feature-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
	.sr-feature-card__copy { min-height:0; padding:14px; }
	.sr-feature-card p { font-size:.88rem; }
	.sr-key-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.sr-key-facts > div:nth-child(2) { border-right:0; }
	.sr-key-facts > div:nth-child(-n+2) { border-bottom:1px solid var(--sr-section-line); }
	.sr-key-facts strong { font-size:clamp(1.75rem,10vw,2.8rem); }
	.sr-trust-strip {
		--sr-trust-icon-size:48px;
		border:1px solid var(--sr-section-line)!important;
	}
	.sr-trust-strip__item,
	.sr-trust-strip__item:first-child {
		min-height:104px;
		padding:clamp(1rem,5vw,1.25rem) .6rem;
		gap:.6rem;
		border:0!important;
		font-size:.64rem;
	}
	.sr-trust-strip__item:nth-child(odd) { border-right:1px solid var(--sr-section-line)!important; }
	.sr-trust-strip__item:nth-child(-n+2) { border-bottom:1px solid var(--sr-section-line)!important; }
	.sr-editorial-feed { grid-template-columns:1fr; grid-template-rows:auto; }
	.sr-editorial-card.is-featured { grid-row:auto; }
	.sr-editorial-card.is-standard > a { grid-template-rows:auto minmax(0,1fr); }
	.sr-editorial-card.is-standard .sr-editorial-card__media { min-height:0; aspect-ratio:16/9; }
	.sr-editorial-card.is-standard .sr-editorial-card__copy { padding:14px; }
	.sr-section--editorial-feed.has-1-items .sr-editorial-feed { grid-template-columns:1fr; }
	.sr-section--editorial-feed.has-1-items .sr-editorial-card { grid-column:auto; }
	.sr-dual-cta { grid-template-columns:1fr; }
	.sr-cta-panel { min-height:200px; padding:clamp(1.35rem,7vw,2.25rem); }
	.sr-newsletter { grid-template-columns:1fr; }
}

@media (max-width:359px) {
	.sr-newsletter form > div { grid-template-columns:1fr; }
	.sr-newsletter input,.sr-newsletter button { border-radius:var(--sr-radius-sm); }
}

@media (prefers-reduced-motion:reduce) {
	.sr-section *,.sr-section *::before,.sr-section *::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; }
	.sr-card:hover { transform:none; }
}
