/* Shared layout scale. Keep images bounded independently of adjacent text. */
:root { --page-width:1280px; --page-gutter:32px; --section-space:64px; --layout-gap:40px; }
.shell,.footer-shell { width:min(var(--page-width),calc(100% - var(--page-gutter)*2)); }
.header-shell { width:min(1400px,calc(100% - var(--page-gutter)*2)); }
main { overflow-wrap:break-word; }
main [id] { scroll-margin-top:100px; }
main [class*="-grid"]>*,main [class*="-layout"]>*,.detail-columns>* { min-width:0; }
.section { padding-block:var(--section-space); }
.split-heading { grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:var(--layout-gap); margin-bottom:32px; }
.section-title-row { gap:28px; margin-bottom:32px; }
.hero { min-height:540px; }
.hero-content { padding-block:56px; }
.hero h1 { max-width:850px; font-size:clamp(38px,4.8vw,64px); line-height:1.06; letter-spacing:-1.8px; }
.hero-content>p { margin-block:22px 26px; max-width:720px; font-size:17px; }
.hero-trust { margin-top:24px; }
.page-hero,.portal-hero,.sector-hero,.guide-article-hero,.geo-hero,.employment-hero { padding-block:48px; }
.page-hero h1,.portal-hero-copy h1,.sector-hero-copy h1,.guide-article-heading h1,.geo-hero h1,.employment-hero h1,.detail-hero-copy h1 { font-size:clamp(36px,3.8vw,54px); line-height:1.1; letter-spacing:-1.4px; }
.page-hero p,.portal-hero-copy>p,.sector-hero-copy>p,.guide-article-heading>p,.geo-hero p,.employment-hero p { font-size:17px; line-height:1.7; margin-top:20px; max-width:65ch; }
.portal-hero-grid,.sector-hero-grid,.guide-article-hero-grid,.geo-hero-grid,.employment-hero-grid,.page-hero--visual .page-hero-layout { grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:var(--layout-gap); }
.portal-hero figure,.sector-hero figure,.guide-article-hero figure,.geo-hero figure,.page-hero figure,.cost-driver-layout>figure,.visual-banner-grid figure,.employment-hero-photo { min-height:0; height:clamp(240px,27vw,360px); }
.page-hero figure img,.visual-banner-grid figure img { height:100%; aspect-ratio:auto; object-fit:cover; }
.portal-hero figcaption,.sector-hero figcaption,.guide-article-hero figcaption,.geo-hero figcaption,.employment-hero-photo figcaption,.cost-driver-layout>figure figcaption { max-width:calc(100% - 28px); font-size:12px; line-height:1.45; }
.detail-hero { max-width:var(--page-width); margin-inline:auto; min-height:0; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); background:var(--cream); }
.detail-hero-copy { padding:48px 40px; }
.detail-hero-image { height:360px; min-height:0; align-self:center; overflow:hidden; }
.detail-columns,.sector-overview-grid,.sector-pitfall-grid,.editorial-split,.territory-intro,.location-copy,.local-seo-grid,.employment-intro-grid,.employment-conditions,.application-grid,.cost-driver-layout,.visual-banner-grid { gap:var(--layout-gap); }
.split-heading h2,.section-title-row h2,.region-copy h2,.prose h2,.resources h2,.editorial-split h2,.sector-overview-grid h2,.sector-pitfall-grid h2,.territory-intro h2,.location-copy h2,.local-seo-grid h2,.cost-driver-layout h2,.visual-banner-grid h2,.employment-faq h2 { font-size:clamp(29px,3vw,42px); line-height:1.15; letter-spacing:-.8px; }
.cta-band { padding-block:48px; }
.cta-band h2,.employment-feature h2,.employment-closing h2 { font-size:clamp(29px,3vw,40px); line-height:1.18; letter-spacing:-.7px; }
.cta-inner { gap:32px; }
.cta-inner>.button { flex-shrink:0; }
.decision-heading { gap:var(--layout-gap); margin-bottom:28px; }
.decision-heading h2 { font-size:clamp(29px,3vw,42px); line-height:1.15; letter-spacing:-.8px; }
.decision-fields label span,.decision-form legend,.decision-result-kicker { font-size:12px; }
.decision-fields select,.decision-result li { font-size:15px; }
.guide-article-layout { grid-template-columns:240px minmax(0,780px); gap:48px; }
.article-toc nav,.methodology-nav nav { gap:0; align-items:stretch; }
.article-toc nav a,.methodology-nav a,.toc-back { font-size:14px; line-height:1.5; }
.article-meta { font-size:12px; letter-spacing:.2px; margin-top:22px; }
.breadcrumbs { font-size:13px; line-height:1.6; margin-bottom:24px; }
.article-deck { margin-bottom:36px; padding:22px; font-size:20px; }
.article-body>section { padding-bottom:32px; margin-bottom:32px; }
.article-body h2,.methodology-content h2 { font-size:clamp(28px,2.6vw,36px); line-height:1.2; letter-spacing:-.5px; margin-bottom:18px; }
.article-body p,.methodology-content p,.prose p,.resource-article p { font-size:17px; line-height:1.75; max-width:72ch; }
.article-body .article-tool { padding:24px; margin-block:32px; }
.article-summary { padding:24px!important; }
.article-summary h2 { font-size:30px; }
.article-summary p { font-size:14px!important; }
.article-checklist li,.sector-article-list li,.article-note p,.editorial-disclaimer p { font-size:15px; }
.methodology-layout { grid-template-columns:230px minmax(0,820px); gap:48px; }
.methodology-content>section { padding-bottom:32px; margin-bottom:32px; }
.resource-article { padding-bottom:36px; margin-bottom:36px; }
.service-card,.guide-card,.guide-card--visual,.topic-path-card,.sector-card,.supplier-card,.training-card,.employment-source,.job-card,.sector-flow-grid li,.sector-method-grid li,.process-strip article,.ecology-pillars article { min-height:0; }
.service-copy p,.supplier-card p,.home-sector-grid p { min-height:0; }
.service-copy,.rich-guide-copy { padding:22px; }
.service-copy h3,.guide-card h3,.rich-guide-copy h3,.sector-card h3,.topic-path-card h3 { font-size:26px; line-height:1.2; }
.service-copy p,.guide-card p,.rich-guide-copy p,.sector-card p,.topic-path-card p,.supplier-card p,.sector-flow-grid p,.sector-method-grid p,.process-strip p,.ecology-pillars p,.pilotage-method-grid p,.buyer-method-grid p,.service-depth-grid p,.training-card p,.employment-source p,.home-sector-grid p { font-size:15px; line-height:1.65; }
.guide-kicker,.eyebrow,.source-type,.supplier-origin,.section-index,.tag,.service-copy>span { font-size:12px; letter-spacing:.8px; }
.text-link,.service-copy b,.guide-card a,.supplier-card a,.home-sector-grid b,.topic-path-card b,.company-card p,.company-mini p,.form-field label,.form-note { font-size:14px; line-height:1.6; }
.chip,.source-badge { font-size:12px; letter-spacing:.2px; }
.establishment-card dl div { font-size:13px; flex-wrap:wrap; }
.establishment-card dd { overflow-wrap:anywhere; }
.establishment-card address,.network-location-card address,.establishment-card>a,.network-location-card>a,.network-location-card p a,.location-verified,.directory-disclaimer { font-size:14px; line-height:1.65; }
.establishment-card-head,.network-location-card>div:first-child { font-size:12px; flex-wrap:wrap; }
.company-meta { font-size:14px; flex-wrap:wrap; }
.facts dt,.local-facts dt,.filter-group label,.directory-search-form label { font-size:12px; }
.sector-flow-grid h3,.sector-method-grid h3,.process-strip h2,.ecology-pillars h2,.pilotage-method-grid h3,.buyer-method-grid h3,.topic-path-card h3 { margin-top:22px; }
.service-image,.rich-guide-media { height:190px; }
.guide-card-image { height:180px; }
.visual-library-grid { grid-auto-rows:210px; }
.visual-library-grid .visual-library-featured { min-height:0; }
.visual-story-grid figure,.visual-story-grid figure:first-child { min-height:0; height:300px; }
.visual-story,.related-guides,.guide-library-section,.supplier-category { content-visibility:visible; contain-intrinsic-size:none; }
.sector-table,.model-table { font-size:14px; line-height:1.65; }
.sector-table thead th { font-size:12px; }
.comparison-table-wrap { max-width:100%; }
.form-shell { max-width:1000px; }
.site-footer { padding-top:48px; }
.footer-grid { gap:32px; padding-bottom:32px; }
.footer-grid h2,.footer-grid>div:not(:first-child),.footer-grid>div:first-child p { font-size:14px; }
.ai-disclaimer small,.footer-bottom { font-size:12px; }
@media (min-width:901px) and (max-width:1100px) {
  .nav-wrap { gap:16px; }.nav-wrap nav { gap:16px; }.nav-wrap>.button-small { display:none; }
  .portal-hero-grid,.sector-hero-grid,.guide-article-hero-grid { grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:28px; }
  .buyer-method-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:1100px) { .guide-grid,.company-row,.topic-path-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.directory-search-form { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:900px) {
  :root { --page-gutter:24px; --section-space:48px; --layout-gap:28px; }
  .portal-hero-grid,.sector-hero-grid,.guide-article-hero-grid,.geo-hero-grid,.employment-hero-grid,.page-hero--visual .page-hero-layout,.detail-hero,.guide-article-layout,.methodology-layout { grid-template-columns:minmax(0,1fr); }
  .article-toc,.methodology-nav { position:static; padding:18px; }
  .article-toc nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
  .detail-hero { margin-inline:var(--page-gutter); }
  .detail-hero-copy { padding:32px; }
  .detail-hero-image { height:280px; }
  .portal-hero figure,.sector-hero figure,.guide-article-hero figure,.geo-hero figure,.page-hero figure,.cost-driver-layout>figure,.visual-banner-grid figure { height:280px; }
  .hero { min-height:0; }.hero-content { padding-block:44px; }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  :root { --page-gutter:16px; --section-space:40px; --layout-gap:24px; }
  .hero h1,.page-hero h1,.portal-hero-copy h1,.sector-hero-copy h1,.guide-article-heading h1,.geo-hero h1,.employment-hero h1,.detail-hero-copy h1 { font-size:36px; line-height:1.12; letter-spacing:-.8px; }
  .page-hero,.portal-hero,.sector-hero,.guide-article-hero,.geo-hero,.employment-hero { padding-block:32px; }
  .split-heading { grid-template-columns:1fr; gap:16px; }
  .hero-content>p,.page-hero p,.portal-hero-copy>p,.sector-hero-copy>p,.guide-article-heading>p,.geo-hero p,.employment-hero p { font-size:16px; }
  .portal-hero figure,.sector-hero figure,.guide-article-hero figure,.geo-hero figure,.page-hero figure,.cost-driver-layout>figure,.visual-banner-grid figure,.employment-hero-photo,.detail-hero-image { height:230px; }
  .detail-hero-copy { padding:28px 20px; }
  .article-toc nav { grid-template-columns:1fr; }
  .article-body p,.methodology-content p { font-size:16px; }
  .article-body .article-tool,.article-summary { padding:20px!important; }
  .article-body>section { margin-bottom:24px; padding-bottom:24px; }
  .guide-grid,.company-row,.topic-path-grid,.footer-grid,.directory-search-form { grid-template-columns:minmax(0,1fr); }
  .visual-story-grid figure,.visual-story-grid figure:first-child { height:230px; }
  .visual-library-grid { grid-auto-rows:210px; }.visual-library-grid .visual-library-featured { min-height:0; }
  .company-card { gap:14px; }.company-card h3 { font-size:24px; }
  .form-card { padding:20px; }.hero-search button { min-height:48px; }
  .section-title-row { align-items:flex-start; }.collection-count { white-space:normal; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }
@media print { .shell { width:100%; }.article-toc,.methodology-nav { display:none; }.section { padding-block:16px; }.detail-hero-image { display:none; } }
.documentary-photo { margin: 28px 0 0; padding: 20px; background: #f3f5f4; border: 1px solid #e0e6e2; border-radius: 12px; }
.documentary-photo img { display: block; width: 100%; height: auto; max-height: 380px; object-fit: contain; }
.documentary-photo figcaption { margin-top: 14px; color: #42534d; font-size: 13px; line-height: 1.65; }
.documentary-photo figcaption a, .documentary-hero figcaption a { text-decoration: underline; text-underline-offset: 2px; }
.documentary-atlas-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 36px; }
.documentary-atlas-grid h3 { font-size: 27px; line-height: 1.2; margin-bottom: 14px; }
.documentary-atlas-grid article>p { font-size: 16px; line-height: 1.7; }
.documentary-atlas-grid .documentary-photo { margin: 20px 0 16px; }
.documentary-atlas-grid .documentary-photo img { height: 260px; }
@media (min-width: 1000px) {
  .documentary-atlas-grid .documentary-photo { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:20px; align-items:center; }
  .documentary-atlas-grid .documentary-photo figcaption { margin-top:0; }
}
@media (max-width: 700px) { .documentary-atlas-grid { grid-template-columns: minmax(0,1fr); gap: 32px; } }
.guide-article-hero figure.documentary-hero { height: auto; min-height: 0; overflow: hidden; background: #eef1ef; }
.guide-article-hero .documentary-hero img { position: static; width: 100%; height: 300px; object-fit: contain; }
.guide-article-hero .documentary-hero figcaption { position: static; background: #f3f5f4; padding: 16px; color: #42534d; font-size: 12px; line-height: 1.6; font-weight: 400; max-width: none; }
@media (max-width: 600px) {
  .documentary-photo { padding: 14px; }
  .documentary-photo img { max-height: 280px; }
  .guide-article-hero .documentary-hero img { height: 240px; }
}
