/* Shared layout contract. Load after style.css; keep page-specific spacing here. */
:root{--content-width:1240px;--gutter:48px;--section-space:80px;--section-gap:64px;--grid-gap:24px;--card-pad:32px;--block-gap:32px}
.wrap,article.wrap.prose,.wrap.prose{width:min(var(--content-width),calc(100% - var(--gutter)*2));max-width:var(--content-width);margin-inline:auto}
.wrap .wrap{width:100%;max-width:none}
main{min-width:0}main>*{min-width:0}
.section{padding-block:var(--section-space)}
/* Equal section gaps on a shared background; colored panels retain their own inset. */
.section:not(.dark):not(.technical-section):not(.section-tint)+.section:not(.dark):not(.technical-section):not(.section-tint){padding-top:0}
.pagehero{padding-block:64px 56px}
.pagehero .crumb{margin-bottom:24px!important}
.pagehero .eyebrow{margin-bottom:24px}
.pagehero h1,.article-page .pagehero h1{max-width:1120px;margin-bottom:24px;font-size:clamp(34px,4vw,56px);line-height:1.3;text-wrap:pretty}
html[lang="en"] .pagehero h1{font-size:clamp(34px,4vw,56px);line-height:1.2}
.pagehero .lead,.article-page .pagehero .lead{max-width:960px;margin:0;font-size:17px;line-height:1.9}
.eyebrow{margin-bottom:24px}
h2,.business-section h2{font-size:clamp(28px,3vw,40px);line-height:1.4;letter-spacing:-.5px;margin:0 0 24px}
html[lang="en"] h2{line-height:1.3}
h3{margin:0 0 16px;line-height:1.5}
p{margin:0 0 20px}
.section>.wrap>:last-child,.feature>:last-child,.business-card>:last-child,.workflow article>:last-child,.note>:last-child{margin-bottom:0}
.section-head{gap:32px;margin-bottom:var(--block-gap);align-items:flex-end}
.section-head>div{min-width:0}.section-head h2{margin:0}.section-head p{margin:0;max-width:440px}
.section-head>.textlink{flex-shrink:0}
.section-tint{background:#f0edf5}
.grid2,.grid3,.business-grid,.related-reading ul{gap:var(--grid-gap)}
.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3,.business-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid2>*,.grid3>*,.business-grid>*,.contact-grid>*,.workflow>*,.footer-grid>*{min-width:0}
.feature,.business-card{padding:var(--card-pad);border-radius:10px;display:flex;flex-direction:column}
.feature{border-top-width:3px}
.feature .num{margin-bottom:24px}.feature .glyph{margin-bottom:24px;flex-shrink:0}
.feature h3,.business-card h3{margin:0 0 16px;font-size:22px;line-height:1.45}
.feature p,.business-card p{font-size:15px;line-height:1.85;margin-bottom:24px}
.feature .textlink{margin-top:auto;padding-top:8px}
.business-card .eyebrow{margin-bottom:24px}
.business-grid{margin-top:var(--block-gap)}
.business-section .lead{max-width:960px;margin-bottom:0}
.workflow{gap:var(--grid-gap);margin-top:var(--block-gap)}
.workflow h3{margin-bottom:16px}.workflow p{margin-bottom:0}
.research-card{display:flex;flex-direction:column;padding-top:24px}
.research-card h3{margin:16px 0}.research-card p{margin-bottom:24px}
.research-card .textlink{margin-top:auto}
.application{padding-block:28px;gap:24px}
.application:last-child{border-bottom:1px solid var(--line)}
.actions{margin-top:var(--block-gap)}
.btn{min-height:48px;line-height:1.6}
main>.wrap:has(>.cta){padding-bottom:var(--section-space)}
.cta{padding:48px;margin:0;gap:32px}
.cta>div{min-width:0}.cta .btn{flex-shrink:0}.cta h2{margin:0 0 16px;line-height:1.4}
/* Full-width content aligns with page hero and navigation on every content page. */
.prose h2,.article-page .prose>.article-heading{font-size:28px;line-height:1.45;margin:40px 0 16px;padding:0;letter-spacing:0}
.prose h3{font-size:22px;margin:32px 0 16px}
.prose>h2:first-child{margin-top:0}
.prose p,.prose li,.article-page .prose>p:not(.article-meta){font-size:17px;line-height:1.95;color:#545467}
.prose>p,.article-page .prose>p:not(.article-meta){margin-bottom:24px}
.prose>ul{margin-block:16px 24px}
.prose>ul li+li{margin-top:12px}
.answer-summary{padding:var(--card-pad);margin:0 0 var(--block-gap)}
.answer-summary h2{line-height:1.4}.answer-summary p{font-size:16px;line-height:1.9}
.note{margin:var(--block-gap) 0;padding:24px;color:var(--muted)}
.article-section{padding-top:48px}
.article-meta{padding-bottom:24px;margin-bottom:var(--block-gap);line-height:1.8}
.article-intro{gap:var(--grid-gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-bottom:var(--block-gap)}
.article-intro .answer-summary{padding:var(--card-pad);margin:0}
.article-toc{padding:24px 28px;margin:0 0 40px}
.article-toc ul{gap:16px 24px}
.article-toc li{font-size:14px;line-height:1.7}
.article-evidence,.article-page .related-reading{margin-top:40px;padding-top:32px}
.article-evidence h2,.prose .related-reading h2{margin:0 0 20px;font-size:26px}
.article-evidence p{font-size:16px;margin-bottom:20px}
.related-reading ul{margin:0 0 24px}
.related-item{padding:24px}.related-item a{font-size:17px}
.source-list article{padding-block:28px}.source-list article:first-child{padding-top:0}
.source-list h2{font-size:22px;margin:0 0 12px;line-height:1.5}
.source-list h2 a{display:inline;padding:0;border:0}
.source-list p{margin:0}.source-list>p:last-child{margin-top:28px}
.faq details{padding-block:24px}
.faq details:first-child{border-top:1px solid var(--line)}
.faq details p{margin:16px 0 0;max-width:100%;font-size:16px;line-height:1.9}
.faq summary{line-height:1.6}
.faq summary:after{flex-shrink:0}
.contact-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:48px;align-items:start}
.contact-grid form{padding:var(--card-pad)}
form .grid2{gap:0 24px}
form label{margin-bottom:20px}
form input,form select,form textarea{min-width:0}
form .btn{width:100%}
form .status:empty{display:none}
form .status{margin:20px 0 0}
.project-steps{gap:32px;margin:32px 0 0;padding-left:24px}
.project-steps p{margin-top:12px;font-size:15px}
.table-scroll{margin-top:var(--block-gap);border:1px solid var(--line);border-radius:8px}
th,td{padding:20px;line-height:1.8}tr:last-child td{border-bottom:0}
.table-scroll+p{margin-top:24px}
footer{padding-block:56px 24px}.footer-grid{gap:32px;margin-bottom:40px}.footer-bottom{padding-top:24px;align-items:baseline}
.footer-bottom>span{min-width:0}
.footer-bottom .copyright-brand{display:inline}
@media(max-width:1100px){:root{--gutter:32px;--section-space:64px;--card-pad:24px}.contact-grid{gap:32px}.workflow{grid-template-columns:repeat(2,minmax(0,1fr))}.feature h3,.business-card h3{font-size:20px}}
@media(max-width:900px){.grid3,.business-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3>:last-child:nth-child(odd),.business-grid>:last-child:nth-child(odd){grid-column:1/-1}.contact-grid{grid-template-columns:1fr}.project-steps{gap:24px}.cta{padding:32px}.section-head{gap:24px}}
@media(max-width:760px){:root{--gutter:20px;--section-space:48px;--grid-gap:20px;--card-pad:24px;--block-gap:24px}
.pagehero{padding-block:36px}.pagehero .crumb{margin-bottom:24px!important}.pagehero .eyebrow{margin-bottom:20px}
.pagehero h1,.article-page .pagehero h1,html[lang="en"] .pagehero h1{font-size:32px;line-height:1.3;letter-spacing:-.5px;margin-bottom:20px}
.pagehero .lead,.article-page .pagehero .lead{font-size:16px;line-height:1.85}
h2,.business-section h2{font-size:28px;line-height:1.4;margin-bottom:20px}
.section-head{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:24px}.section-head p{margin:0;max-width:none}
.grid2,.grid3,.business-grid{grid-template-columns:1fr}.grid3>:last-child:nth-child(odd),.business-grid>:last-child:nth-child(odd){grid-column:auto}
.feature h3,.business-card h3{font-size:21px}.feature .num,.business-card .eyebrow{margin-bottom:20px}
.workflow{gap:24px 20px;margin-top:24px}.workflow h3{font-size:18px}
.application{gap:16px;grid-template-columns:28px minmax(0,1fr) 20px;padding-block:24px}
.cta{padding:28px;display:block}.cta h2{font-size:27px}.cta .btn{margin-top:24px}
.prose h2,.article-page .prose>.article-heading{font-size:24px;margin:32px 0 16px}.prose h3{font-size:21px;margin:28px 0 16px}
.prose p,.prose li,.article-page .prose>p:not(.article-meta){font-size:16px;line-height:1.9}
.article-section{padding-top:32px}.article-meta{font-size:12px;padding-bottom:20px;margin-bottom:24px}
.article-intro{grid-template-columns:1fr;gap:24px}.article-intro .answer-summary{padding:24px}
.article-toc{padding:24px;margin-bottom:32px}.article-toc ul{grid-template-columns:1fr;gap:14px}
.article-evidence,.article-page .related-reading{margin-top:32px;padding-top:24px}.article-evidence h2,.prose .related-reading h2{font-size:24px}
.related-reading ul{grid-template-columns:1fr}.related-item{padding:20px}
.note{padding:20px}.source-list h2{font-size:20px}.source-list article{padding-block:24px}
.contact-grid{gap:32px}.project-steps{grid-template-columns:1fr;gap:24px}form .grid2{gap:0}
footer{padding-top:40px}.footer-grid{gap:24px;margin-bottom:32px}.footer-bottom{padding-top:20px}
.footer-bottom>span{display:block;margin-bottom:8px}.footer-bottom .copyright-brand{display:inline}
th,td{padding:16px;min-width:150px}
}
@media(max-width:380px){.workflow{grid-template-columns:1fr}.cta{padding:24px}.actions .btn{width:100%}}
/* Eyebrows are labels even when placed inside long-form content. */
.prose>.eyebrow{font-size:11px;line-height:1.6;color:#67509b;margin:0 0 24px}
.prose>.eyebrow+h2{margin-top:0}
@media(max-width:760px){.prose>.eyebrow{font-size:10px;margin-bottom:20px}}
.prose .article-meta{font-size:13px;line-height:1.8;color:var(--muted)}
.article-meta time{white-space:nowrap}
p{ text-wrap:pretty }
@media(max-width:760px){.prose .article-meta{font-size:12px}}
