/* ==========================================================================
   Sofiology Phase 3D — Supporting Page Families v1.0
   Authoritative presentation for Industry, Case Study, Insights, Authority,
   FAQ, Contact, Search/404 and Legal templates.
   Breakpoints: 1200 / 1024 / 768 / 480 only.
   ========================================================================== */

.sof-support-page { overflow:visible; }
.sof-support-page a { text-underline-offset:3px; }
.sof-support-page .eyebrow { margin:0 0 14px; color:var(--sof-color-green-dark,#315A2E); font-weight:750; text-transform:uppercase; }
.sof-support-page .sof-support-hero--dark .eyebrow,
.sof-support-page .sof-support-section--dark .eyebrow,
.sof-authority-hero .eyebrow,
.sof-404-hero .eyebrow,
.sof-contact-hero .eyebrow { color:#a9c6a1; }

/* Shared supporting layout ------------------------------------------------ */
.sof-support-hero { padding-block:clamp(88px,9vw,136px); }
.sof-support-hero--light { background:var(--sof-color-off-white,#FAFAF7); }
.sof-support-hero--dark { background:var(--sof-color-dark,#0D1711); color:#eff5ef; }
.sof-support-hero--dark h1,
.sof-support-hero--dark h2,
.sof-support-section--dark h1,
.sof-support-section--dark h2,
.sof-support-section--dark h3,
.sof-support-section--dark h4,
.sof-authority-hero h1,
.sof-authority-hero h2,
.sof-404-hero h1,
.sof-404-hero h2,
.sof-contact-hero h1,
.sof-contact-hero h2 { color:#fff !important; }
.sof-support-hero__split { display:grid; grid-template-columns:minmax(0,1.22fr) minmax(320px,.78fr); gap:clamp(48px,7vw,104px); align-items:end; }
.sof-support-hero__split h1 { margin:0; max-width:900px; }
.sof-support-hero__split--visual { grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr); align-items:center; }
.sof-support-hero__lead { margin:22px 0 0; max-width:710px; color:#5d6961; font-size:clamp(17px,1.4vw,20px); line-height:1.62; }
.sof-support-hero--dark .sof-support-hero__lead,
.sof-authority-hero .sof-support-hero__lead,
.sof-404-hero .sof-support-hero__lead,
.sof-contact-hero .sof-support-hero__lead { color:#c6d1c8; }
.sof-support-kicker { margin:0 0 14px; color:#9fbd97; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.sof-support-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:30px; }
.sof-button--on-dark { border:1px solid rgb(255 255 255 / .34); background:transparent; color:#fff; }
.sof-button--on-dark:hover,.sof-button--on-dark:focus-visible { background:rgb(255 255 255 / .08); border-color:rgb(255 255 255 / .6); color:#fff; }
.sof-support-text-link { display:inline-flex; align-items:center; gap:6px; margin-top:18px; color:var(--sof-color-green-dark,#315A2E); font-size:14px; font-weight:750; text-decoration:none; }
.sof-support-text-link:hover,.sof-support-text-link:focus-visible { text-decoration:underline; }

.sof-support-section { padding-block:104px; }
.sof-support-section--white { background:#fff; }
.sof-support-section--off-white { background:var(--sof-color-off-white,#FAFAF7); }
.sof-support-section--pale { background:var(--sof-color-green-pale,#EAF2E5); }
.sof-support-section--dark { background:var(--sof-color-dark,#0D1711); color:#e6eee8; }
.sof-support-section--dark p { color:#c1cec4; }
.sof-support-intro { max-width:850px; margin-bottom:48px; }
.sof-support-intro h2 { margin:0; }
.sof-support-intro__support { margin:18px 0 0; max-width:660px; color:#606b63; font-size:16px; line-height:1.68; }
.sof-support-section--dark .sof-support-intro__support { color:#b9c7bd; }
.sof-support-intro--split { max-width:none; display:grid; grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr); gap:64px; align-items:start; }
.sof-support-intro--split .sof-support-intro__support { margin-top:4px; }
.sof-support-split { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr); gap:clamp(56px,8vw,112px); align-items:start; }
.sof-support-sticky { position:sticky; top:calc(var(--sof-header-height-scrolled) + 34px); }
.sof-support-row-list { border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-support-row-list article { display:grid; grid-template-columns:56px minmax(0,1fr); gap:22px; padding:27px 0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); }
.sof-support-row-list article>span { color:var(--sof-color-green-dark,#315A2E); font-size:12px; font-weight:800; letter-spacing:.05em; }
.sof-support-row-list h3 { margin:0; font-size:clamp(21px,2vw,28px); }
.sof-support-flow { display:flex; align-items:stretch; gap:13px; margin-top:50px; }
.sof-support-flow article { flex:1 1 0; min-width:0; border:1px solid rgb(162 193 154 / .2); border-radius:14px; background:rgb(255 255 255 / .035); padding:23px; }
.sof-support-flow article>span { display:block; margin-bottom:48px; color:#9fbd97; font-size:12px; font-weight:800; }
.sof-support-flow article p { margin:0; color:#eef4ef; font-size:15px; line-height:1.58; }
.sof-support-flow>i { align-self:center; color:#71906a; font-style:normal; }
.sof-support-link-list { margin-top:28px; border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-support-link-list>a { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; padding:20px 0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); color:#172219; font-weight:700; text-decoration:none; }
.sof-support-link-list>a:hover span,.sof-support-link-list>a:focus-visible span { color:var(--sof-color-green-dark,#315A2E); }
.sof-related-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(52px,8vw,110px); }
.sof-related-grid h2 { margin:0; font-size:clamp(32px,3.2vw,48px); }
.sof-support-empty { max-width:760px; padding:42px; border:1px solid var(--sof-color-border,#E6E6DF); border-radius:16px; background:#fff; }
.sof-support-empty h2 { margin:0 0 12px; font-size:clamp(30px,3vw,44px); }
.sof-support-empty p { margin:0; color:#657068; }

/* FAQ accordion shared --------------------------------------------------- */
.sof-support-faq-list { border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-support-faq { border-bottom:1px solid var(--sof-color-border,#E6E6DF); }
.sof-support-faq summary { min-height:70px; display:grid; grid-template-columns:auto minmax(0,1fr) 24px; gap:18px; align-items:center; list-style:none; cursor:pointer; padding:20px 0; }
.sof-support-faq summary::-webkit-details-marker { display:none; }
.sof-support-faq summary>span { color:var(--sof-color-green-dark,#315A2E); font-size:12px; font-weight:800; }
.sof-support-faq summary strong { color:#142018; font-size:17px; line-height:1.42; }
.sof-support-faq summary i { position:relative; width:20px; height:20px; }
.sof-support-faq summary i::before,.sof-support-faq summary i::after { content:""; position:absolute; top:9px; left:3px; width:14px; height:1.5px; background:#315A2E; transition:transform 220ms ease; }
.sof-support-faq summary i::after { transform:rotate(90deg); }
.sof-support-faq[open] summary i::after { transform:rotate(0); }
.sof-support-faq>div { padding:0 42px 24px; color:#566159; font-size:16px; line-height:1.7; }
.sof-support-faq>div>*:first-child { margin-top:0; }
.sof-support-faq>div>*:last-child { margin-bottom:0; }

/* Final conversion ------------------------------------------------------- */
.sof-support-final { padding-block:96px; background:var(--sof-color-green-pale,#EAF2E5); }
.sof-support-final--dark { background:var(--sof-color-dark,#0D1711); color:#eef4ef; }
.sof-support-final--dark h2 { color:#fff !important; }
.sof-support-final--dark p { color:#c2cec5; }
.sof-support-final__grid { display:grid; grid-template-columns:minmax(0,1.25fr) auto; gap:64px; align-items:end; }
.sof-support-final__grid h2 { max-width:850px; margin:0; }
.sof-support-final__grid p:not(.eyebrow) { max-width:700px; margin:20px 0 0; color:#59645c; font-size:17px; }
.sof-support-final--dark .sof-support-final__grid p:not(.eyebrow) { color:#bdc9c0; }
.sof-support-final__grid>.sof-support-actions { margin:0; justify-content:flex-end; }

/* Industry hub/detail ---------------------------------------------------- */
.sof-industry-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-industry-card { min-height:260px; display:grid; grid-template-columns:52px minmax(0,1fr) auto; gap:24px; align-items:start; padding:34px 30px 34px 0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); color:#132018; text-decoration:none; }
.sof-industry-card:nth-child(odd) { padding-right:42px; border-right:1px solid var(--sof-color-border,#E6E6DF); }
.sof-industry-card:nth-child(even) { padding-left:42px; }
.sof-industry-card__index { color:var(--sof-color-green-dark,#315A2E); font-size:12px; font-weight:800; }
.sof-industry-card h2 { margin:0 0 16px; font-size:clamp(27px,2.6vw,38px); transition:color 180ms ease; }
.sof-industry-card p { margin:0; color:#657068; font-size:15px; line-height:1.65; }
.sof-industry-card>i { font-style:normal; transition:transform 180ms ease; }
.sof-industry-card:hover h2,.sof-industry-card:focus-visible h2 { color:var(--sof-color-green-dark,#315A2E); }
.sof-industry-card:hover>i,.sof-industry-card:focus-visible>i { transform:translate(3px,-3px); }
.sof-industry-hero-system { min-height:440px; position:relative; border:1px solid rgb(167 197 159 / .18); border-radius:20px; background:radial-gradient(circle at center,rgb(85 128 76 / .14),transparent 52%); }
.sof-industry-hero-system::before,.sof-industry-hero-system::after { content:""; position:absolute; left:50%; top:50%; border:1px solid rgb(159 190 151 / .13); border-radius:50%; transform:translate(-50%,-50%); }
.sof-industry-hero-system::before { width:62%; aspect-ratio:1; }
.sof-industry-hero-system::after { width:88%; aspect-ratio:1; }
.sof-industry-hero-system__core { position:absolute; z-index:2; left:50%; top:50%; width:145px; min-height:88px; display:grid; place-items:center; text-align:center; transform:translate(-50%,-50%); padding:16px; border:1px solid rgb(169 203 160 / .28); border-radius:50%; background:#17291b; color:#fff; font-size:14px; font-weight:750; }
.sof-industry-hero-system__node { position:absolute; z-index:2; display:flex; flex-direction:column; gap:4px; min-width:114px; padding:13px 15px; border:1px solid rgb(169 203 160 / .2); border-radius:12px; background:#132018; color:#eef5ef; font-size:13px; font-weight:650; }
.sof-industry-hero-system__node small { color:#91af89; font-size:10px; }
.sof-industry-hero-system__node:nth-of-type(2){left:7%;top:12%}.sof-industry-hero-system__node:nth-of-type(3){right:6%;top:17%}.sof-industry-hero-system__node:nth-of-type(4){right:3%;bottom:15%}.sof-industry-hero-system__node:nth-of-type(5){left:39%;bottom:5%}.sof-industry-hero-system__node:nth-of-type(6){left:4%;bottom:21%}
.sof-industry-context-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-industry-context-grid article { padding:28px 30px 10px 0; }
.sof-industry-context-grid article+article { padding-left:30px; border-left:1px solid var(--sof-color-border,#E6E6DF); }
.sof-industry-context-grid span,.sof-industry-diagnostic-grid article>span { display:block; margin-bottom:50px; color:var(--sof-color-green-dark,#315A2E); font-size:12px; font-weight:800; }
.sof-industry-context-grid p { margin:0; color:#4f5a52; font-size:16px; line-height:1.68; }
.sof-industry-diagnostic-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.sof-industry-diagnostic-grid article { min-height:310px; padding:26px; border:1px solid rgb(63 111 58 / .15); border-radius:16px; background:rgb(255 255 255 / .48); }
.sof-industry-diagnostic-grid h3 { margin:0 0 12px; }
.sof-industry-diagnostic-grid p { margin:0; color:#566159; font-size:15px; line-height:1.65; }
.sof-industry-capability-list { border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-industry-capability-list>a { display:grid; grid-template-columns:58px minmax(0,1fr) auto; gap:24px; align-items:start; padding:26px 0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); color:#142018; text-decoration:none; }
.sof-industry-capability-list>a>span { color:var(--sof-color-green-dark,#315A2E); font-size:12px; font-weight:800; }
.sof-industry-capability-list h3 { margin:0 0 8px; font-size:clamp(22px,2.3vw,30px); }
.sof-industry-capability-list p { margin:0; max-width:760px; color:#657068; font-size:15px; }
.sof-industry-capability-list i { font-style:normal; transition:transform 180ms ease; }
.sof-industry-capability-list>a:hover i,.sof-industry-capability-list>a:focus-visible i { transform:translate(3px,-3px); }
.sof-proof-rail { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(370px,calc((100% - 24px)/2.25)); gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; padding-bottom:12px; }
.sof-proof-card { min-height:350px; display:flex; flex-direction:column; scroll-snap-align:start; padding:28px; border:1px solid var(--sof-color-border,#E6E6DF); border-radius:16px; background:#fff; color:#142018; text-decoration:none; }
.sof-proof-card>span { color:var(--sof-color-green-dark,#315A2E); font-size:12px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.sof-proof-card h3 { margin:58px 0 14px; font-size:clamp(24px,2.4vw,32px); }
.sof-proof-card p { margin:0 0 30px; color:#657068; font-size:15px; line-height:1.65; }
.sof-proof-card strong { margin-top:auto; font-size:14px; }

/* Case Study hub/detail -------------------------------------------------- */
.sof-case-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.sof-case-card { display:grid; grid-template-rows:auto 1fr; overflow:hidden; border:1px solid var(--sof-color-border,#E6E6DF); border-radius:18px; background:#fff; color:#152018; text-decoration:none; }
.sof-case-card__media { aspect-ratio:16/9; overflow:hidden; background:#eef1ed; }
.sof-case-card__media img { width:100%; height:100%; object-fit:cover; }
.sof-case-card__media--fallback { display:flex; justify-content:space-between; align-items:flex-start; padding:24px; background:linear-gradient(135deg,#122017,#26442a); color:#dceadc; text-decoration:none; }
.sof-case-card__media--fallback span { font-size:12px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.sof-case-card__media--fallback strong { font-size:42px; font-weight:650; color:#89a982; }
.sof-case-card__body { display:flex; flex-direction:column; padding:28px; }
.sof-case-card__body>span { color:var(--sof-color-green-dark,#315A2E); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.sof-case-card h2 { margin:44px 0 14px; font-size:clamp(28px,3vw,42px); }
.sof-case-card p { margin:0 0 30px; color:#657068; font-size:15px; line-height:1.64; }
.sof-case-card__metrics { display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; }
.sof-case-card__metrics span { padding:7px 10px; border-radius:999px; background:var(--sof-color-green-pale,#EAF2E5); color:#315A2E; font-size:11px; font-weight:750; }
.sof-case-hero { padding-block:104px; background:var(--sof-color-off-white,#FAFAF7); }
.sof-case-hero__grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr); gap:clamp(48px,7vw,96px); align-items:center; }
.sof-case-hero h1 { margin:0; }
.sof-case-hero figure { margin:0; overflow:hidden; border-radius:18px; background:#eef1ed; }
.sof-case-hero figure img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.sof-case-meta { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:26px; color:#657068; font-size:13px; }
.sof-case-snapshot { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--sof-color-border,#E6E6DF); border-bottom:1px solid var(--sof-color-border,#E6E6DF); }
.sof-case-snapshot article { padding:26px; }
.sof-case-snapshot article+article { border-left:1px solid var(--sof-color-border,#E6E6DF); }
.sof-case-snapshot span { display:block; margin-bottom:12px; color:#6c776f; font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.06em; }
.sof-case-snapshot strong { color:#172219; font-size:15px; line-height:1.5; }
.sof-case-narrative { border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-case-narrative>article { display:grid; grid-template-columns:58px minmax(250px,.62fr) minmax(0,1.38fr); gap:24px; padding:34px 0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); }
.sof-case-narrative>article>span { color:#315A2E; font-size:12px; font-weight:800; }
.sof-case-narrative>article>div { display:grid; grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr); gap:50px; align-items:start; }
.sof-case-narrative h2 { margin:0; font-size:clamp(30px,3vw,44px); }
.sof-case-narrative>article>div>p { margin:0; color:#4f5a52; font-size:17px; line-height:1.72; }
.sof-case-narrative>article>div>p+p { margin-top:1em; }
.sof-case-outcome { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); gap:72px; align-items:end; color:#eaf1eb; }
.sof-case-outcome h2,.sof-case-outcome h3 { color:#fff !important; }
.sof-case-outcome>div h2 { margin:0; }
.sof-case-outcome>p { margin:0; color:#becac1; font-size:18px; line-height:1.7; }
.sof-case-metric-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:48px; }
.sof-case-metric-grid article { padding:27px; border:1px solid rgb(165 197 157 / .2); border-radius:14px; background:rgb(255 255 255 / .035); }
.sof-case-metric-grid strong { display:block; margin-bottom:10px; color:#fff; font-size:clamp(28px,3.2vw,46px); line-height:1; }
.sof-case-metric-grid span { color:#b9c8bc; font-size:14px; }
.sof-case-snapshot__change { background:var(--sof-color-green-pale,#EAF2E5); }
.sof-case-snapshot article p { margin:0; color:#465249; font-size:15px; line-height:1.65; }
.sof-case-proof-list { margin-top:44px; border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-case-proof-list article { display:grid; grid-template-columns:170px minmax(0,1fr); gap:28px; padding:24px 0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); }
.sof-case-proof-list article>span { color:var(--sof-color-green-dark,#315A2E); font-size:12px; font-weight:800; text-transform:uppercase; }
.sof-case-proof-list h3 { margin:0 0 8px; font-size:22px; }
.sof-case-proof-list p { margin:0; color:#657068; }
.sof-case-learning { max-width:980px; }
.sof-case-learning h2 { max-width:820px; }

/* Insights --------------------------------------------------------------- */
.sof-insight-feature { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(42px,6vw,84px); align-items:center; }
.sof-insight-feature__media { display:block; overflow:hidden; border-radius:18px; aspect-ratio:4/3; background:#eef1ed; }
.sof-insight-feature__media img { width:100%; height:100%; object-fit:cover; }
.sof-insight-feature h2 { margin:18px 0; font-size:clamp(36px,4vw,58px); }
.sof-insight-feature h2 a { color:inherit; text-decoration:none; }
.sof-insight-feature p { max-width:650px; color:#5d6860; font-size:17px; }
.sof-insight-meta { display:flex; flex-wrap:wrap; gap:8px 16px; color:#657068; font-size:12px; font-weight:650; }
.sof-insights-toolbar { display:flex; justify-content:space-between; gap:24px; align-items:center; margin-bottom:38px; }
.sof-insights-filters { display:flex; flex-wrap:wrap; gap:8px; }
.sof-insights-filters button { min-height:42px; padding:0 15px; border:1px solid var(--sof-color-border,#E6E6DF); border-radius:999px; background:#fff; color:#38433b; font:650 13px/1 var(--sof-font-sans); cursor:pointer; }
.sof-insights-filters button.is-active { border-color:#315A2E; background:#315A2E; color:#fff; }
.sof-insights-search input,.sof-faq-search input { min-height:48px; min-width:270px; padding:0 15px; border:1px solid var(--sof-color-border,#E6E6DF); border-radius:12px; background:#fff; font:500 15px/1.2 var(--sof-font-sans); }
.sof-insights-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.sof-insight-card { min-width:0; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--sof-color-border,#E6E6DF); border-radius:16px; background:#fff; }
.sof-insight-card__media { aspect-ratio:16/9; overflow:hidden; background:#edf0ec; }
.sof-insight-card__media img { width:100%; height:100%; object-fit:cover; }
.sof-insight-card>div { display:flex; flex:1; flex-direction:column; padding:24px; }
.sof-insight-card h2 { margin:38px 0 12px; font-size:clamp(23px,2.2vw,31px); }
.sof-insight-card h2 a { color:inherit; text-decoration:none; }
.sof-insight-card p { margin:0 0 28px; color:#657068; font-size:15px; line-height:1.63; }
.sof-insight-card footer { display:flex; justify-content:space-between; gap:16px; margin-top:auto; color:#6c776f; font-size:12px; }
.sof-insight-card footer a { color:#315A2E; font-weight:750; text-decoration:none; }
.sof-support-filter-empty { margin-top:28px; color:#657068; }
.sof-article-hero { padding-block:100px 90px; background:var(--sof-color-off-white,#FAFAF7); }
.sof-article-hero__grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr); gap:clamp(48px,7vw,96px); align-items:center; }
.sof-article-hero h1 { margin:0; font-size:clamp(3rem,5vw,5rem); }
.sof-article-hero figure { margin:0; overflow:hidden; border-radius:18px; }
.sof-article-hero figure img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.sof-article-opening { padding:88px 0 18px; background:#fff; }
.sof-article-opening h2 { margin:0; font-size:clamp(34px,3.6vw,52px); }
.sof-article-opening__argument { margin:24px 0 0; color:#4e5951; font-size:19px; line-height:1.72; }
.sof-article-body { padding:42px 0 96px; background:#fff; }
.sof-prose { color:#3e4941; font-size:17px; line-height:1.76; }
.sof-prose h2 { margin:2.2em 0 .7em; font-size:clamp(31px,3vw,43px); }
.sof-prose h3 { margin:1.8em 0 .65em; font-size:clamp(23px,2.2vw,30px); }
.sof-prose p,.sof-prose ul,.sof-prose ol,.sof-prose blockquote { margin:0 0 1.3em; }
.sof-prose ul,.sof-prose ol { padding-left:1.35em; }
.sof-prose a { color:#315A2E; }
.sof-prose blockquote { padding:4px 0 4px 24px; border-left:3px solid #7e9c75; color:#203024; font-size:20px; }
.sof-prose img { max-width:100%; height:auto; border-radius:12px; }
.sof-article-takeaway-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:72px; }
.sof-article-takeaway-grid ol { margin:28px 0 0; padding-left:24px; }
.sof-article-takeaway-grid li { padding:0 0 18px 8px; }
.sof-article-thinking { border-top:1px solid rgb(63 111 58 / .18); }
.sof-article-thinking article { padding:22px 0; border-bottom:1px solid rgb(63 111 58 / .18); }
.sof-article-thinking span { display:block; margin-bottom:8px; color:#315A2E; font-size:12px; font-weight:800; text-transform:uppercase; }
.sof-article-thinking p { margin:0; color:#425047; }
.sof-author-card { display:flex; gap:24px; align-items:center; max-width:720px; }
.sof-author-card img,.sof-author-card__initial { width:84px; height:84px; flex:0 0 84px; border-radius:50%; object-fit:cover; }
.sof-author-card__initial { display:grid; place-items:center; background:#EAF2E5; color:#315A2E; font-size:28px; font-weight:750; }
.sof-author-card h2 { margin:0; font-size:32px; }
.sof-author-card p:not(.eyebrow) { margin:5px 0 0; color:#657068; }

/* Authority -------------------------------------------------------------- */
.sof-authority-hero { padding-block:clamp(94px,10vw,146px); background:var(--sof-color-dark,#0D1711); color:#eef4ef; }
.sof-authority-hero__grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr); gap:clamp(48px,7vw,100px); align-items:center; }
.sof-authority-hero__copy h1 { margin:0; max-width:930px; }
.sof-authority-hero__body { max-width:720px; margin-top:18px; color:#aebbb1; font-size:15px; }
.sof-authority-hero__body p { margin:0; }
.sof-authority-hero__visual { display:grid; place-items:center; min-height:390px; }
.sof-authority-hero__visual img { display:block; width:min(100%,520px); max-height:470px; object-fit:contain; }
.sof-authority-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:42px; }
.sof-authority-card-grid article { min-height:250px; padding:27px; border:1px solid var(--sof-color-border,#E6E6DF); border-radius:16px; background:rgb(255 255 255 / .66); }
.sof-support-section--dark .sof-authority-card-grid article { border-color:rgb(160 192 152 / .2); background:rgb(255 255 255 / .035); }
.sof-authority-card-grid .sof-support-kicker { display:block; margin-bottom:58px; color:#315A2E; }
.sof-support-section--dark .sof-authority-card-grid .sof-support-kicker { color:#9fbd97; }
.sof-authority-card-grid h3 { margin:0 0 10px; }
.sof-authority-card-grid p { margin:0; color:#606b63; font-size:15px; line-height:1.65; }
.sof-support-section--dark .sof-authority-card-grid p { color:#becac1; }
.sof-authority-section-body { max-width:780px; margin-top:30px; }
.sof-authority-process { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin-top:50px; border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-authority-process article { position:relative; padding:27px 28px 15px 0; }
.sof-authority-process article+article { padding-left:28px; border-left:1px solid var(--sof-color-border,#E6E6DF); }
.sof-authority-process span { display:block; margin-bottom:58px; color:#315A2E; font-size:12px; font-weight:800; }
.sof-authority-process h3 { margin:0 0 10px; }
.sof-authority-process p { margin:0; color:#626d65; font-size:15px; line-height:1.64; }
.sof-align-layout { display:grid; grid-template-columns:minmax(360px,.8fr) minmax(0,1.2fr); gap:72px; align-items:center; }
.sof-align-visual { display:grid; place-items:center; min-height:500px; }
.sof-align-visual img { width:min(100%,520px); max-height:520px; }
.sof-align-list { border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-align-list article { display:grid; grid-template-columns:58px minmax(0,1fr); gap:22px; padding:23px 0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); }
.sof-align-list article>span { color:#315A2E; font-size:22px; font-weight:800; }
.sof-align-list h3 { margin:0 0 7px; }
.sof-align-list p { margin:0; color:#657068; font-size:15px; }
.sof-authority-statement { max-width:1000px; margin-inline:auto; text-align:center; }
.sof-authority-statement h2 { margin:0; }
.sof-authority-statement>p:not(.eyebrow) { max-width:740px; margin:22px auto 0; color:#5f6a62; font-size:18px; }
.sof-support-section--dark .sof-authority-statement>p:not(.eyebrow) { color:#bdc8c0; }
.sof-authority-statement .sof-support-actions { justify-content:center; }
.sof-founder-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.sof-founder-card { overflow:hidden; border:1px solid var(--sof-color-border,#E6E6DF); border-radius:18px; background:#fff; }
.sof-founder-card__media { aspect-ratio:5/4; overflow:hidden; background:#e9eee8; }
.sof-founder-card__media img { width:100%; height:100%; object-fit:cover; }
.sof-founder-card__placeholder { width:100%; height:100%; display:grid; place-content:center; gap:10px; text-align:center; background:linear-gradient(135deg,#e8efe5,#f6f7f3); color:#315A2E; }
.sof-founder-card__placeholder span { font-size:64px; font-weight:750; letter-spacing:-.06em; }
.sof-founder-card__placeholder small { color:#6e7a70; font-size:12px; }
.sof-founder-card__body { padding:30px; }
.sof-founder-card h3 { margin:0 0 14px; font-size:clamp(30px,3vw,44px); }
.sof-founder-card__bio { margin:0; color:#59645c; font-size:16px; line-height:1.67; }
.sof-founder-card__tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:22px; }
.sof-founder-card__tags span { padding:7px 10px; border-radius:999px; background:#eef4eb; color:#315A2E; font-size:11px; font-weight:700; }
.sof-founder-card__details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:26px; padding-top:22px; border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-founder-card__details strong { display:block; margin-bottom:10px; color:#172219; font-size:12px; text-transform:uppercase; }
.sof-founder-card__details span { display:block; margin-bottom:7px; color:#657068; font-size:13px; line-height:1.5; }

/* FAQ hub --------------------------------------------------------------- */
.sof-faq-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; align-items:end; margin-bottom:62px; }
.sof-faq-search input { width:100%; min-width:0; height:56px; font-size:16px; }
.sof-faq-category-wrap { display:grid; gap:7px; }
.sof-faq-category-wrap label { color:#5e6961; font-size:12px; font-weight:700; }
.sof-faq-category-wrap select { min-width:240px; min-height:56px; padding:0 42px 0 14px; border:1px solid var(--sof-color-border,#E6E6DF); border-radius:12px; background:#fff; font:600 14px/1.2 var(--sof-font-sans); }
.sof-faq-group { display:grid; grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr); gap:70px; padding:56px 0; border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-faq-group:first-child { border-top:0; padding-top:0; }
.sof-faq-group header h2 { margin:0; font-size:clamp(28px,3vw,42px); }

/* Contact --------------------------------------------------------------- */
.sof-contact-hero { padding-block:clamp(96px,10vw,150px); background:var(--sof-color-dark,#0D1711); color:#edf4ee; }
.sof-contact-hero__grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr); gap:clamp(54px,8vw,110px); align-items:end; }
.sof-contact-hero h1 { margin:0; max-width:900px; }
.sof-contact-hero aside { padding:27px; border:1px solid rgb(165 197 157 / .2); border-radius:16px; background:rgb(255 255 255 / .035); }
.sof-contact-hero aside strong { color:#fff; font-size:17px; }
.sof-contact-hero aside p { margin:10px 0 0; color:#b8c5bb; font-size:14px; }
.sof-contact-principles { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:30px; }
.sof-contact-principles span { padding:7px 11px; border:1px solid rgb(165 197 157 / .22); border-radius:999px; color:#b9d0b3; font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.05em; }
.sof-contact-principles i { color:#668261; font-style:normal; }
.sof-contact-main { padding-block:104px; background:#fff; }
.sof-contact-main__grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); gap:clamp(50px,7vw,96px); align-items:start; }
.sof-contact-form-panel h2,.sof-contact-channels h2 { margin:0 0 28px; font-size:clamp(32px,3.2vw,48px); }
.sof-contact-form-panel .sofsvc-form-wrap { margin:0; }
.sof-contact-form-panel .sofsvc-form { display:grid; gap:18px; }
.sof-contact-form-panel .sofsvc-form__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.sof-contact-form-panel .sofsvc-form label { display:grid; gap:7px; color:#263128; font-size:13px; font-weight:700; }
.sof-contact-form-panel .sofsvc-form input:not([type="checkbox"]),.sof-contact-form-panel .sofsvc-form textarea,.sof-contact-form-panel .sofsvc-form select { width:100%; min-height:50px; padding:12px 14px; border:1px solid #cfd7cf; border-radius:11px; background:#fff; color:#1b271e; font:500 15px/1.4 var(--sof-font-sans); }
.sof-contact-form-panel .sofsvc-form textarea { min-height:140px; resize:vertical; }
.sof-contact-form-panel .sofsvc-form input:focus,.sof-contact-form-panel .sofsvc-form textarea:focus,.sof-contact-form-panel .sofsvc-form select:focus { outline:2px solid rgb(63 111 58 / .22); outline-offset:1px; border-color:#6f9669; }
.sof-contact-form-panel .sofsvc-form__consent { grid-template-columns:20px minmax(0,1fr); align-items:start; font-weight:500; color:#5f6a62; line-height:1.5; }
.sof-contact-form-panel .sofsvc-form__consent input { width:18px; height:18px; margin-top:2px; }
.sof-contact-form-panel .sofsvc-form__consent a { color:#315A2E; }
.sof-contact-form-panel .sofsvc-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.sofsvc-form-message { display:flex; gap:9px; margin-bottom:20px; padding:14px 16px; border-radius:10px; font-size:14px; }
.sofsvc-form-message--success { background:#e7f3e3; color:#274f28; }.sofsvc-form-message--error{background:#faecea;color:#7d2923}
.sof-contact-channel-list { border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-contact-channel-list>a { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; padding:22px 0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); color:#172219; text-decoration:none; }
.sof-contact-channel-list span { display:grid; gap:5px; }.sof-contact-channel-list strong{font-size:16px}.sof-contact-channel-list small{color:#667169;font-size:13px;line-height:1.5}.sof-contact-channel-list i{font-style:normal;transition:transform 180ms ease}.sof-contact-channel-list>a:hover i{transform:translate(3px,-3px)}
.sof-contact-reassurance { margin-top:34px; padding:22px; border-radius:14px; background:var(--sof-color-green-pale,#EAF2E5); }.sof-contact-reassurance strong{color:#203024}.sof-contact-reassurance p{margin:8px 0 0;color:#59655c;font-size:14px}

/* Search / 404 ----------------------------------------------------------- */
.sof-search-hero { padding-block:92px 72px; background:var(--sof-color-off-white,#FAFAF7); }
.sof-search-hero h1 { margin:0 0 32px; }
.sof-search-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; max-width:900px; }
.sof-search-form input { width:100%; min-height:54px; padding:0 17px; border:1px solid #cfd7cf; border-radius:12px; background:#fff; font:500 16px/1.2 var(--sof-font-sans); }
.sof-search-summary { margin:18px 0 0; color:#667169; }
.sof-search-group { display:grid; grid-template-columns:220px minmax(0,1fr); gap:64px; padding:48px 0; border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-search-group:first-child { border-top:0; padding-top:0; }
.sof-search-group header h2 { margin:0; font-size:30px; }
.sof-search-results { border-top:1px solid var(--sof-color-border,#E6E6DF); }
.sof-search-results article { padding:24px 0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); }
.sof-search-results article>span { color:#315A2E; font-size:11px; font-weight:800; text-transform:uppercase; }
.sof-search-results h3 { margin:8px 0; font-size:clamp(22px,2.1vw,29px); }.sof-search-results h3 a{color:inherit;text-decoration:none}
.sof-search-results p { max-width:760px; margin:0; color:#657068; font-size:14px; }
.sof-search-pagination { margin-top:42px; }.sof-search-pagination .nav-links{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sof-search-pagination a,.sof-search-pagination span{min-width:42px;min-height:42px;display:grid;place-items:center;padding:7px;border:1px solid var(--sof-color-border,#E6E6DF);border-radius:9px;text-decoration:none}.sof-search-pagination .current{background:#315A2E;color:#fff;border-color:#315A2E}
.sof-search-empty { max-width:1050px; }.sof-search-empty h2{margin:0}.sof-search-empty>p:not(.eyebrow){color:#657068;font-size:17px}
.sof-recovery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:34px; }
.sof-recovery-grid>a { position:relative; min-height:150px; display:flex; flex-direction:column; padding:22px 52px 22px 22px; border:1px solid var(--sof-color-border,#E6E6DF); border-radius:14px; background:#fff; color:#172219; text-decoration:none; }
.sof-recovery-grid strong { font-size:20px; }.sof-recovery-grid span{margin-top:8px;color:#657068;font-size:14px;line-height:1.55}.sof-recovery-grid i{position:absolute;right:20px;top:20px;font-style:normal;transition:transform 180ms ease}.sof-recovery-grid>a:hover i{transform:translate(3px,-3px)}
.sof-404-hero { padding-block:clamp(100px,11vw,160px); background:var(--sof-color-dark,#0D1711); color:#eaf2eb; }
.sof-404-hero__grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr); gap:clamp(54px,8vw,110px); align-items:center; }
.sof-404-hero h1 { margin:0; }
.sof-404-search { padding:28px; border:1px solid rgb(165 197 157 / .2); border-radius:16px; background:rgb(255 255 255 / .04); }
.sof-404-routes { margin-top:72px; padding-top:64px; border-top:1px solid var(--sof-color-border,#E6E6DF); }.sof-404-routes h2,.sof-404-suggestions h2{max-width:800px;margin:0}

/* Legal ----------------------------------------------------------------- */
.sof-legal-hero { padding:90px 0 58px; background:var(--sof-color-off-white,#FAFAF7); }.sof-legal-hero h1{margin:0;font-size:clamp(44px,5vw,68px)}.sof-legal-updated{margin:20px 0 0;color:#6b766e;font-size:13px}.sof-legal-body{padding:72px 0 100px;background:#fff}.sof-legal-page .sof-reading{width:min(100%,840px)}

/* ----------------------------------------------------------------------- */
@media (max-width:1200px) {
	.sof-support-section { padding-block:88px; }
	.sof-support-hero__split--visual,.sof-authority-hero__grid { grid-template-columns:minmax(0,1fr) minmax(360px,.8fr); gap:48px; }
	.sof-industry-hero-system { min-height:390px; }
	.sof-insights-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.sof-authority-process { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.sof-authority-process article:nth-child(3) { border-left:0; border-top:1px solid var(--sof-color-border,#E6E6DF); padding-left:0; padding-top:28px; }
	.sof-authority-process article:nth-child(4) { border-top:1px solid var(--sof-color-border,#E6E6DF); padding-top:28px; }
}

@media (max-width:1024px) {
	.sof-support-hero { padding-block:80px; }
	.sof-support-hero__split,.sof-support-hero__split--visual,.sof-case-hero__grid,.sof-article-hero__grid,.sof-authority-hero__grid,.sof-contact-hero__grid,.sof-contact-main__grid,.sof-404-hero__grid { grid-template-columns:1fr; }
	.sof-support-hero__split { gap:32px; align-items:start; }
	.sof-support-hero__split--visual { gap:46px; }
	.sof-support-sticky { position:static; }
	.sof-support-split { grid-template-columns:1fr; gap:42px; }
	.sof-support-intro--split { grid-template-columns:1fr; gap:18px; }
	.sof-support-intro--split .sof-support-intro__support { margin-top:0; }
	.sof-industry-hero-system { min-height:360px; max-width:680px; width:100%; }
	.sof-industry-context-grid,.sof-industry-diagnostic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.sof-industry-context-grid article:nth-child(3) { grid-column:1/-1; border-left:0; border-top:1px solid var(--sof-color-border,#E6E6DF); padding-left:0; }
	.sof-case-snapshot { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.sof-case-snapshot article:nth-child(3){border-left:0;border-top:1px solid var(--sof-color-border,#E6E6DF)}.sof-case-snapshot article:nth-child(4){border-top:1px solid var(--sof-color-border,#E6E6DF)}
	.sof-case-narrative>article>div { grid-template-columns:1fr; gap:16px; }
	.sof-case-outcome { grid-template-columns:1fr; gap:26px; }
	.sof-case-metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.sof-insight-feature { grid-template-columns:1fr; }
	.sof-insight-feature__media { max-width:760px; }
	.sof-article-takeaway-grid,.sof-related-grid,.sof-align-layout { grid-template-columns:1fr; gap:46px; }
	.sof-align-visual { min-height:360px; justify-items:start; }
	.sof-align-visual img { max-height:390px; }
	.sof-authority-hero__visual { min-height:320px; justify-items:start; }
	.sof-authority-hero__visual img { max-height:360px; }
	.sof-faq-group { grid-template-columns:1fr; gap:24px; }
	.sof-search-group { grid-template-columns:1fr; gap:24px; }
	.sof-contact-main__grid { gap:70px; }
}

@media (max-width:768px) {
	.sof-support-section { padding-block:64px; }
	.sof-support-hero { padding-block:64px; }
	.sof-support-hero__lead { font-size:17px; }
	.sof-support-actions { align-items:stretch; }
	.sof-support-actions .button { flex:1 1 220px; text-align:center; justify-content:center; }
	.sof-support-intro { margin-bottom:34px; }
	.sof-support-row-list article { grid-template-columns:42px minmax(0,1fr); gap:14px; padding:22px 0; }
	.sof-support-flow { flex-direction:column; gap:10px; }
	.sof-support-flow article { width:100%; }
	.sof-support-flow article>span { margin-bottom:24px; }.sof-support-flow>i{align-self:flex-start;transform:rotate(90deg);margin-left:18px}
	.sof-related-grid { gap:52px; }
	.sof-support-final { padding-block:68px; }
	.sof-support-final__grid { grid-template-columns:1fr; gap:32px; }
	.sof-support-final__grid>.sof-support-actions { justify-content:flex-start; }
	.sof-industry-grid,.sof-case-grid,.sof-industry-context-grid,.sof-industry-diagnostic-grid,.sof-insights-grid,.sof-authority-card-grid,.sof-founder-grid { grid-template-columns:1fr; }
	.sof-industry-card,.sof-industry-card:nth-child(odd),.sof-industry-card:nth-child(even) { min-height:0; padding:28px 0; border-right:0; }
	.sof-industry-context-grid article,.sof-industry-context-grid article+article,.sof-industry-context-grid article:nth-child(3) { grid-column:auto; padding:24px 0; border-left:0; border-top:1px solid var(--sof-color-border,#E6E6DF); }
	.sof-industry-context-grid article:first-child { border-top:0; }
	.sof-industry-context-grid span,.sof-industry-diagnostic-grid article>span { margin-bottom:30px; }
	.sof-industry-diagnostic-grid article { min-height:0; }
	.sof-industry-hero-system { min-height:0; display:grid; grid-template-columns:1fr; gap:8px; border:0; background:transparent; }
	.sof-industry-hero-system::before,.sof-industry-hero-system::after { display:none; }
	.sof-industry-hero-system__core,.sof-industry-hero-system__node,.sof-industry-hero-system__node:nth-of-type(n) { position:static; width:100%; min-height:0; transform:none; border-radius:12px; }
	.sof-industry-hero-system__core { place-items:start; border-radius:12px; text-align:left; }
	.sof-proof-rail { grid-auto-columns:88%; }
	.sof-case-snapshot { grid-template-columns:1fr; }.sof-case-snapshot article,.sof-case-snapshot article+article,.sof-case-snapshot article:nth-child(3),.sof-case-snapshot article:nth-child(4){border-left:0;border-top:1px solid var(--sof-color-border,#E6E6DF)}.sof-case-snapshot article:first-child{border-top:0}
	.sof-case-metric-grid { grid-template-columns:1fr; }
	.sof-case-narrative>article { grid-template-columns:42px minmax(0,1fr); gap:14px; }
	.sof-case-narrative>article>div { grid-column:2; }
	.sof-case-proof-list article { grid-template-columns:1fr; gap:8px; }
	.sof-insights-toolbar { align-items:stretch; flex-direction:column; }
	.sof-insights-search input { width:100%; min-width:0; }
	.sof-insights-filters { flex-wrap:nowrap; overflow-x:auto; padding-bottom:5px; }
	.sof-insights-filters button { flex:0 0 auto; }
	.sof-article-hero,.sof-case-hero { padding-block:64px; }
	.sof-article-body { padding-bottom:68px; }
	.sof-article-opening { padding-top:64px; }
	.sof-authority-hero { padding-block:72px; }
	.sof-authority-hero__visual { min-height:260px; }
	.sof-authority-hero__visual img { max-height:300px; }
	.sof-authority-process { grid-template-columns:1fr; border-top:1px solid var(--sof-color-border,#E6E6DF); }
	.sof-authority-process article,.sof-authority-process article+article,.sof-authority-process article:nth-child(3),.sof-authority-process article:nth-child(4) { padding:23px 0; border-left:0; border-top:0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); }
	.sof-authority-process span { margin-bottom:26px; }
	.sof-align-visual { min-height:280px; }.sof-align-visual img{max-height:320px}
	.sof-founder-card__details { grid-template-columns:1fr; }
	.sof-faq-toolbar { grid-template-columns:1fr; margin-bottom:44px; }
	.sof-faq-category-wrap select { width:100%; min-width:0; }
	.sof-faq-group { padding:42px 0; }
	.sof-support-faq summary { min-height:64px; grid-template-columns:minmax(0,1fr) 22px; }.sof-support-faq summary>span{display:none}.sof-support-faq>div{padding-left:0;padding-right:28px}
	.sof-contact-main { padding-block:68px; }
	.sof-contact-form-panel .sofsvc-form__grid { grid-template-columns:1fr; }
	.sof-contact-form-panel .sofsvc-form button[type="submit"] { width:100%; }
	.sof-search-hero { padding-block:64px 52px; }
	.sof-search-form { grid-template-columns:1fr; }.sof-search-form .button{width:100%}
	.sof-recovery-grid { grid-template-columns:1fr; }
	.sof-404-routes { margin-top:52px; padding-top:46px; }
	.sof-legal-hero { padding:64px 0 42px; }.sof-legal-body{padding:56px 0 72px}
}

@media (max-width:480px) {
	.sof-support-page h1 { overflow-wrap:anywhere; }
	.sof-support-page h2,.sof-support-page h3 { overflow-wrap:break-word; }
	.sof-support-hero { padding-block:56px; }
	.sof-support-section { padding-block:56px; }
	.sof-support-actions { flex-direction:column; align-items:stretch; }.sof-support-actions .button{flex:0 0 auto;width:100%}
	.sof-industry-card { grid-template-columns:38px minmax(0,1fr) auto; gap:12px; }
	.sof-industry-capability-list>a { grid-template-columns:40px minmax(0,1fr) auto; gap:12px; }
	.sof-proof-rail { grid-auto-columns:92%; }
	.sof-proof-card { min-height:320px; padding:22px; }.sof-proof-card h3{margin-top:42px}
	.sof-case-card__body,.sof-founder-card__body { padding:22px; }
	.sof-case-snapshot article { padding:22px 0; }
	.sof-insight-card>div { padding:21px; }
	.sof-article-takeaway-grid { gap:38px; }
	.sof-author-card { align-items:flex-start; }.sof-author-card img,.sof-author-card__initial{width:64px;height:64px;flex-basis:64px}.sof-author-card h2{font-size:27px}
	.sof-authority-hero__visual { min-height:220px; }.sof-authority-hero__visual img{max-height:250px}
	.sof-align-visual { min-height:230px; }.sof-align-visual img{max-height:260px}
	.sof-align-list article { grid-template-columns:42px minmax(0,1fr); gap:14px; }
	.sof-founder-card__placeholder span { font-size:48px; }
	.sof-contact-hero { padding-block:64px; }.sof-contact-hero aside{padding:22px}.sof-contact-principles i{display:none}.sof-contact-principles span{width:100%;text-align:center}
	.sof-contact-main__grid { gap:54px; }
	.sof-recovery-grid>a { min-height:132px; padding:19px 46px 19px 19px; }
	.sof-support-empty { padding:28px 22px; }
}

@media (prefers-reduced-motion:reduce) {
	.sof-support-page * { scroll-behavior:auto!important; transition-duration:.001ms!important; animation-duration:.001ms!important; animation-iteration-count:1!important; }
}

/* ==========================================================================
   Case Study — research / evidence-first reading template (Theme v0.8.1)
   The Case Study is a report, not a showcase page. Decorative treatments are
   intentionally reduced so the business problem, intervention and evidence
   carry the page.
   ========================================================================== */
.sof-case-research { background:#fff; color:#152019; }
.sof-case-report-shell { max-width:1120px; }
.sof-case-report-head { padding:72px 0 58px; border-bottom:1px solid var(--sof-color-border,#E6E6DF); background:var(--sof-color-off-white,#FAFAF7); }
.sof-case-report-head h1 { max-width:900px; margin:0; color:#111c15; font-size:clamp(46px,5vw,70px); line-height:.98; letter-spacing:-.052em; text-wrap:balance; }
.sof-case-report-lead { max-width:790px; margin:22px 0 0; color:#59645c; font-size:18px; line-height:1.68; }
.sof-case-report-meta { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:42px 0 0; border-top:1px solid var(--sof-color-border,#E6E6DF); border-bottom:1px solid var(--sof-color-border,#E6E6DF); }
.sof-case-report-meta>div { min-width:0; padding:18px 22px 18px 0; }
.sof-case-report-meta>div+div { padding-left:22px; border-left:1px solid var(--sof-color-border,#E6E6DF); }
.sof-case-report-meta dt { margin:0 0 7px; color:#707a73; font-size:12px; font-weight:750; letter-spacing:.055em; text-transform:uppercase; }
.sof-case-report-meta dd { margin:0; color:#152019; font-size:15px; font-weight:700; line-height:1.45; }

.sof-case-report-section { padding:64px 0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); background:#fff; }
.sof-case-report-section--soft { background:#FAFAF7; }
.sof-case-report-section--summary { padding-top:58px; }
.sof-case-report-section--comparison { background:#fff; }
.sof-case-report-section--compact { padding:38px 0; }
.sof-case-report-section__head { max-width:800px; margin-bottom:30px; }
.sof-case-report-section__head h2 { margin:0; color:#152019; font-size:clamp(30px,3vw,40px); line-height:1.08; letter-spacing:-.035em; }
.sof-case-report-section__head>p:not(.eyebrow) { max-width:720px; margin:13px 0 0; color:#667068; font-size:15px; line-height:1.65; }

.sof-case-summary-table { border-top:1px solid #cfd5ce; }
.sof-case-summary-table>div { display:grid; grid-template-columns:230px minmax(0,1fr); gap:36px; padding:22px 0; border-bottom:1px solid #dfe3dd; }
.sof-case-summary-table strong { color:#18221b; font-size:14px; line-height:1.5; }
.sof-case-summary-table p { max-width:760px; margin:0; color:#4f5a52; font-size:16px; line-height:1.68; }

.sof-case-comparison-wrap { overflow-x:auto; border:1px solid #d6dbd4; border-radius:8px; background:#fff; scrollbar-width:thin; }
.sof-case-comparison-wrap:focus-visible { outline:2px solid #315A2E; outline-offset:3px; }
.sof-case-comparison-table { width:100%; min-width:760px; border-collapse:collapse; table-layout:fixed; }
.sof-case-comparison-table th,.sof-case-comparison-table td { padding:18px 20px; border-bottom:1px solid #e1e5df; border-right:1px solid #e7eae5; text-align:left; vertical-align:top; }
.sof-case-comparison-table th:last-child,.sof-case-comparison-table td:last-child { border-right:0; }
.sof-case-comparison-table tbody tr:last-child th,.sof-case-comparison-table tbody tr:last-child td { border-bottom:0; }
.sof-case-comparison-table thead th { background:#F4F6F2; color:#5c675f; font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.sof-case-comparison-table thead th:first-child { width:28%; }
.sof-case-comparison-table thead th:nth-child(2),.sof-case-comparison-table thead th:nth-child(3) { width:18%; }
.sof-case-comparison-table tbody th { color:#19241c; font-size:14px; font-weight:750; line-height:1.45; }
.sof-case-comparison-table td { color:#505b53; font-size:14px; line-height:1.5; }
.sof-case-comparison-table td strong { display:block; color:#17321d; font-size:22px; line-height:1.15; }
.sof-case-comparison-table td small { display:block; margin-top:6px; color:#758078; font-size:11px; line-height:1.45; }
.sof-case-qualitative-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid #d6dbd4; border-radius:8px; overflow:hidden; }
.sof-case-qualitative-comparison>div { padding:24px; }
.sof-case-qualitative-comparison>div+div { border-left:1px solid #d6dbd4; background:#F6F8F4; }
.sof-case-qualitative-comparison span { display:block; margin-bottom:12px; color:#315A2E; font-size:12px; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.sof-case-qualitative-comparison p { margin:0; color:#4f5a52; font-size:15px; line-height:1.67; }
.sof-case-evidence-note { margin:18px 0 0; padding:14px 16px; border-left:3px solid #77936f; background:#F6F8F4; color:#5a655d; font-size:13px; line-height:1.6; }

.sof-case-report-chapter { display:grid; grid-template-columns:250px minmax(0,760px); gap:72px; justify-content:space-between; align-items:start; }
.sof-case-report-chapter>header { min-width:0; }
.sof-case-report-chapter>header>span { display:block; margin-bottom:24px; color:#315A2E; font-size:12px; font-weight:800; }
.sof-case-report-chapter>header h2 { margin:0; color:#152019; font-size:clamp(28px,2.7vw,36px); line-height:1.1; letter-spacing:-.035em; }
.sof-case-report-copy { min-width:0; max-width:760px; }
.sof-case-report-copy h3 { margin:0 0 10px; color:#18221b; font-size:20px; line-height:1.3; }
.sof-case-report-copy h3:not(:first-child) { margin-top:36px; padding-top:32px; border-top:1px solid #e1e5df; }
.sof-case-report-copy p { margin:0; color:#4f5a52; font-size:17px; line-height:1.75; }
.sof-case-report-copy p+p { margin-top:1em; }
.sof-case-report-copy ul,.sof-case-report-copy ol { color:#4f5a52; font-size:16px; line-height:1.7; }

.sof-case-implementation-list { margin:8px 0 0; padding:0; list-style:none; border-top:1px solid #dfe3dd; counter-reset:sof-case-step; }
.sof-case-implementation-list li { counter-increment:sof-case-step; display:grid; grid-template-columns:42px minmax(0,1fr); gap:18px; padding:20px 0; border-bottom:1px solid #dfe3dd; }
.sof-case-implementation-list li::before { content:counter(sof-case-step,decimal-leading-zero); color:#315A2E; font-size:11px; font-weight:800; }
.sof-case-implementation-list strong { display:block; margin-bottom:6px; color:#18221b; font-size:15px; line-height:1.4; }
.sof-case-implementation-list p { margin:0; color:#566159; font-size:15px; line-height:1.65; }

.sof-case-evidence-register { border-top:1px solid #d8ddd6; }
.sof-case-evidence-register>div { display:grid; grid-template-columns:120px 190px minmax(0,1fr); gap:24px; padding:20px 0; border-bottom:1px solid #dfe3dd; }
.sof-case-evidence-register span { color:#315A2E; font-size:11px; font-weight:800; letter-spacing:.045em; text-transform:uppercase; }
.sof-case-evidence-register strong { color:#18221b; font-size:14px; line-height:1.45; }
.sof-case-evidence-register p { margin:0; color:#515c54; font-size:15px; line-height:1.62; }
.sof-case-evidence-register small { grid-column:3; color:#778179; font-size:11px; line-height:1.45; }

.sof-case-report-learning { padding:58px 0; border-bottom:1px solid var(--sof-color-border,#E6E6DF); background:#EEF4E9; }
.sof-case-report-learning h2 { max-width:880px; margin:0; color:#18301e; font-size:clamp(30px,3.4vw,44px); line-height:1.12; letter-spacing:-.04em; }
.sof-case-related { display:grid; grid-template-columns:230px minmax(0,1fr); gap:36px; align-items:start; }
.sof-case-related>strong { color:#18221b; font-size:14px; }
.sof-case-related>div { display:flex; flex-wrap:wrap; gap:8px 22px; }
.sof-case-related a { color:#315A2E; font-size:14px; font-weight:700; text-decoration:none; }
.sof-case-related a:hover,.sof-case-related a:focus-visible { text-decoration:underline; }

.sof-case-report-cta { padding:58px 0; background:#F4F7F1; }
.sof-case-report-cta__inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:54px; align-items:end; }
.sof-case-report-cta h2 { max-width:720px; margin:0; color:#152019; font-size:clamp(30px,3.4vw,44px); line-height:1.08; letter-spacing:-.04em; }
.sof-case-report-cta p:not(.eyebrow) { max-width:680px; margin:14px 0 0; color:#5a655d; font-size:15px; line-height:1.65; }

@media (max-width:1024px) {
	.sof-case-report-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.sof-case-report-meta>div:nth-child(3) { border-left:0; border-top:1px solid var(--sof-color-border,#E6E6DF); }
	.sof-case-report-meta>div:nth-child(4) { border-top:1px solid var(--sof-color-border,#E6E6DF); }
	.sof-case-report-chapter { grid-template-columns:210px minmax(0,1fr); gap:48px; }
	.sof-case-evidence-register>div { grid-template-columns:105px 160px minmax(0,1fr); gap:18px; }
}

@media (max-width:768px) {
	.sof-case-report-head { padding:58px 0 46px; }
	.sof-case-report-head h1 { font-size:clamp(40px,10vw,54px); }
	.sof-case-report-lead { font-size:17px; }
	.sof-case-report-section { padding:52px 0; }
	.sof-case-report-section--compact { padding:34px 0; }
	.sof-case-summary-table>div { grid-template-columns:1fr; gap:8px; padding:19px 0; }
	.sof-case-qualitative-comparison { grid-template-columns:1fr; }
	.sof-case-qualitative-comparison>div+div { border-left:0; border-top:1px solid #d6dbd4; }
	.sof-case-report-chapter { grid-template-columns:1fr; gap:30px; }
	.sof-case-report-chapter>header>span { margin-bottom:14px; }
	.sof-case-report-copy { max-width:none; }
	.sof-case-report-copy p { font-size:16px; }
	.sof-case-evidence-register>div { grid-template-columns:1fr; gap:7px; padding:19px 0; }
	.sof-case-evidence-register small { grid-column:auto; }
	.sof-case-related { grid-template-columns:1fr; gap:14px; }
	.sof-case-report-cta__inner { grid-template-columns:1fr; gap:26px; align-items:start; }
	.sof-case-report-cta__inner>.button { justify-self:start; }
}

@media (max-width:480px) {
	.sof-case-report-head { padding:48px 0 38px; }
	.sof-case-report-meta { grid-template-columns:1fr; margin-top:32px; }
	.sof-case-report-meta>div,.sof-case-report-meta>div+div,.sof-case-report-meta>div:nth-child(3),.sof-case-report-meta>div:nth-child(4) { padding:14px 0; border-left:0; border-top:1px solid var(--sof-color-border,#E6E6DF); }
	.sof-case-report-meta>div:first-child { border-top:0; }
	.sof-case-comparison-table { min-width:690px; }
	.sof-case-report-section__head { margin-bottom:24px; }
	.sof-case-report-learning,.sof-case-report-cta { padding:48px 0; }
	.sof-case-report-cta__inner>.button { width:100%; justify-content:center; }
}

/* Phase 4A — legal identity block: informational, not promotional. */
.sof-legal-identity{margin-top:48px;padding-top:24px;border-top:1px solid var(--sof-color-border,#E6E6DF);display:grid;gap:5px;color:#5f6a62;font-size:14px;line-height:1.6}.sof-legal-identity strong{color:#1d2820;font-size:15px}.sof-legal-identity a{width:max-content;color:#315A2E;text-decoration:none}.sof-legal-identity a:hover{text-decoration:underline}
