/* savia-pages.css: design standard for the public inner pages.
   Scoped to body.sv-pg (set with @section('body_class','sv-pg') on each page),
   so home, apply, portal, contact and record are not affected.
   Standard: nothing under 12px, body copy 16px+, mono for short labels only,
   44px tap targets, WCAG AA contrast, no horizontal scroll at 375px. */

/* 1. Body copy 16px+ with comfortable leading (single-class rules in savia.css lose to this). */
body.sv-pg main :is(p,li,dd,dt,td,th,summary,small,figcaption){line-height:1.6}
body.sv-pg main :is(p,li,dd,td,small){font-size:16px}
body.sv-pg main :is(.section-heading,.process-heading)>p{font-size:18px;line-height:1.6}
body.sv-pg main .opportunity-card .rate,
body.sv-pg main .rate-who,body.sv-pg main .rate-examples,
body.sv-pg main .research-measures p,body.sv-pg main .process-copy p,
body.sv-pg main .privacy-panel-item p,body.sv-pg main .research-focus small,
body.sv-pg main .data-table,body.sv-pg main .data-table td,
body.sv-pg main .data-chips small,body.sv-pg main .state-list span,
body.sv-pg main .state-list strong,body.sv-pg main .eval-check p,
body.sv-pg main .bench-prov>div,body.sv-pg main .bench-prov dd{font-size:16px!important;line-height:1.6}
body.sv-pg main .data-link{font-size:16px;min-height:44px}
body.sv-pg main .research-focus strong,body.sv-pg main .partner-panel-rows b{font-size:16px}
body.sv-pg main .benchmark-meta dd{font-size:14px}
body.sv-pg main .on-ink p,body.sv-pg main .on-ink .section-heading p{color:rgba(250,248,244,.78)}
body.sv-pg main .on-ink .form-note p,body.sv-pg main .on-ink .form-note li{color:var(--muted);font-size:16px}
body.sv-pg main .hero-copy>p{font-size:clamp(17px,1.6vw,20px);line-height:1.6;color:rgba(250,248,244,.8)}
body.sv-pg main .page-hero:not(.on-ink) .hero-copy>p{color:var(--muted)}

/* 2. Mono type is for short labels only, and never below 12px. */
body.sv-pg :is(.eyebrow,.trace-top,.trace-footer,.trace-heading small,.proof-bar .proof-region,.pill,.tag-row span,
 .flow-center small,.steps-grid span,.use-grid span,.dimension-grid span,.expert-steps span,.eval-preview-top,.eval-check>span,
 .eval-check i,.loop-grid b,.benchmark-head,.benchmark-note,.research-measures span,.method-grid li span,.expert-statement p,
 .principles-grid span,.opportunity-field,.open-badge,.process-rule,.process-number,.process-copy small,.research-focus span,
 .benchmark-meta dt,.agenda-grid span,.footer-meta,.partner-panel-top,.partner-panel-foot,.partner-panel-rows span,
 .bench-item-top,.bench-prov dt,.bench-prov code,.prov-derived,.prov-inferred,.bench-options span,.data-table th,.data-table code,
 .files-table td:last-child code,.rate-code,.rate-range small,.language-switch a,.footer-nav h3,.privacy-panel-tag,.privacy-panel-foot,
 .sg-privacy){font-size:12px;line-height:1.4}
body.sv-pg .eyebrow{font-size:13px;letter-spacing:.1em}
body.sv-pg .flow-side span{font-size:14px;padding:12px}
body.sv-pg .opportunity-card footer{font-size:14px}
body.sv-pg .opportunity-card footer a{font-size:15px}
body.sv-pg .partner-panel-top,body.sv-pg .partner-panel-foot,body.sv-pg .trace-top,body.sv-pg .trace-footer{height:auto;min-height:46px;padding-block:10px;gap:12px;flex-wrap:wrap}
body.sv-pg .benchmark-head,body.sv-pg .benchmark-note{gap:12px;flex-wrap:wrap}
body.sv-pg .process-copy small{letter-spacing:.04em}
/* contrast: lift the low-alpha greys on dark panels to at least 4.5:1 */
body.sv-pg .partner-panel-top,body.sv-pg .partner-panel-rows span,body.sv-pg .flow-center small,
body.sv-pg .footer-meta,body.sv-pg .language-switch a{color:rgba(250,248,244,.78)}
body.sv-pg .language-switch a.current{color:var(--ink)}
body.sv-pg .partner-panel-top span:first-child,body.sv-pg .partner-panel-foot{color:var(--green)}
body.sv-pg .proof-bar>span{color:rgba(250,248,244,.78);font-size:14px}
body.sv-pg .flow-side span{color:rgba(250,248,244,.85)}
body.sv-pg .eval-check i{border-color:rgba(30,91,67,.55)}

/* 3. Heading hierarchy: h1 > section h2 > card h3 > label. */
body.sv-pg main h1{letter-spacing:-.025em;overflow-wrap:break-word}
body.sv-pg main .section-heading h2,body.sv-pg main .process-heading h2{font-size:clamp(32px,4vw,56px);line-height:1.08}
body.sv-pg main section h2{text-wrap:balance}
body.sv-pg main :is(.limits-section,.rates-included,.opp-block,.role-grid,.belief-grid,.principles-grid) h2{font-size:clamp(26px,2.8vw,38px);line-height:1.15}
body.sv-pg main h3{font-size:clamp(21px,1.9vw,24px);line-height:1.2}
body.sv-pg main .research-measures h3{font-size:clamp(24px,2.6vw,32px)}
body.sv-pg main .section-heading>h2+p,body.sv-pg main .section-heading>p{margin-top:20px}
body.sv-pg main .eyebrow{margin-bottom:6px}

/* 4. Spacing rhythm: one vertical step for every content band (heroes keep their own). */
body.sv-pg main>section:not(.page-hero):not(.mission-hero):not(.opportunities-shell){padding-block:clamp(60px,7vw,96px)}
body.sv-pg main>section.page-hero{padding-block:clamp(56px,7vw,96px)}
body.sv-pg main .section-heading{margin-bottom:clamp(28px,3.5vw,48px)}
body.sv-pg main .button-row{gap:16px 28px}
body.sv-pg main .rate-card{padding:32px}
body.sv-pg main .rate-card h3{margin:32px 0 16px}
body.sv-pg .opportunity-card h2{margin:36px 0 10px;font-size:clamp(21px,2vw,24px)}
body.sv-pg .opportunity-card{min-height:0}

/* 5. Tap targets 44px+ */
body.sv-pg main .text-link{min-height:44px;font-size:16px}
body.sv-pg main .button{min-height:48px;font-size:16px}
body.sv-pg .opp-tabs a{min-height:44px;display:inline-flex;align-items:center;font-size:15px}
body.sv-pg .opportunity-card footer a{min-height:44px;display:inline-flex;align-items:center}
body.sv-pg .opportunity-search button{min-height:44px;font-size:16px}
body.sv-pg .opportunity-search input{min-height:44px;font-size:16px}
body.sv-pg .faq-list summary{min-height:44px}
body.sv-pg .benchmark-note .text-link{font-size:14px;min-height:44px}
body.sv-pg main :is(.sources-block,.limits-list,.terms-list) li a,
body.sv-pg main .files-table td a{display:inline-flex;align-items:center;min-height:44px}
body.sv-pg main .service-breadcrumb a{display:inline-flex;align-items:center;min-height:44px}
body.sv-pg .footer-nav a,body.sv-pg .footer-meta a{display:inline-flex;align-items:center;min-height:44px}
body.sv-pg .radio-pill span{min-height:44px;display:flex;align-items:center}

/* 6. Expert call to action (added on countries, rates, mission, field). */
body.sv-pg .sv-expert-cta{display:flex;align-items:center;justify-content:space-between;gap:20px 40px;flex-wrap:wrap;margin-top:28px;padding:20px 24px;border:1px solid rgba(63,221,140,.45);background:rgba(63,221,140,.07);max-width:640px}
body.sv-pg .sv-expert-cta strong{font:500 18px/1.3 var(--display);color:inherit}
body.sv-pg .page-hero:not(.on-ink) .sv-expert-cta{border-color:rgba(30,91,67,.4);background:rgba(30,91,67,.06)}
body.sv-pg .belief-section .sv-expert-cta{max-width:none}
body.sv-pg .sv-expert-cta .button{white-space:normal;text-align:left}

/* 7. Phone: 375px, no horizontal scroll */
body.sv-pg main{overflow-x:clip}
body.sv-pg main :is(h1,h2,h3,p,li,dd,td,a,code){overflow-wrap:anywhere}
body.sv-pg main .data-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:700px){
  body.sv-pg main h1{font-size:clamp(34px,10vw,44px);line-height:1.04;hyphens:auto}
  body.sv-pg main .section-heading h2,body.sv-pg main .process-heading h2{font-size:clamp(28px,8vw,36px)}
  body.sv-pg main .button{width:100%}
  body.sv-pg main .button-row{align-items:stretch;flex-direction:column;gap:12px}
  body.sv-pg main .button-row .text-link{align-self:flex-start}
  body.sv-pg main .rate-card{padding:26px 22px}
  body.sv-pg .flow-visual{grid-template-columns:1fr;gap:20px}
  body.sv-pg .flow-center{aspect-ratio:auto;padding:22px}
  body.sv-pg .flow-center:before,body.sv-pg .flow-center:after{display:none}
  body.sv-pg .flow-side span{font-size:14px;padding:12px}
  body.sv-pg .sv-expert-cta{padding:18px}
  body.sv-pg .sv-expert-cta .button{width:100%}
  body.sv-pg .benchmark-head,body.sv-pg .benchmark-note,body.sv-pg .eval-preview-top{flex-direction:column;align-items:flex-start}
  body.sv-pg .opportunity-card footer{flex-direction:column;align-items:flex-start}
  body.sv-pg .eval-preview{box-shadow:8px 8px 0 var(--fog)}
  body.sv-pg .state-list>div{grid-template-columns:16px 1fr}
}

/* ---- global floor (all pages): shared footer, eyebrow labels, arrow glyphs never below 12px ---- */
.site-footer .footer-nav h3,.site-footer .footer-meta,.site-footer .footer-meta *,.site-footer a,.eyebrow,.door b span,.door span[aria-hidden]{font-size:max(12px,1em)}
.site-footer .footer-nav h3,.site-footer .footer-meta span{font-size:12px}
.eyebrow{font-size:12px}
.language-switch a{font-size:12px}

/* ---- global footer polish (phone review 2026-10-15) ---- */
.site-footer .footer-meta{gap:6px}
.site-footer .footer-meta a{font:400 14px/1.4 var(--mono);color:var(--green);min-height:44px;display:inline-flex;align-items:center}
.site-footer .footer-meta span{color:rgba(250,248,244,.7)}
.site-footer p{text-wrap:balance;max-width:34ch;color:rgba(250,248,244,.72);font-size:14px}
.site-footer .footer-nav a{display:inline-flex;align-items:center;min-height:44px}
.site-footer{padding-bottom:36px}
