/* Readable type scale shared by every page. Layouts and brand fonts stay intact. */
:root{
  --type-body:1rem;
  --type-support:.875rem;
  --type-small:.8125rem;
  --type-navigation:.9375rem;
  --type-action:.9375rem;
  --reading-leading:1.75;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:var(--type-body);line-height:var(--reading-leading)}
h1,h2,h3,h4{overflow-wrap:break-word}
.nav-wrap .brand{min-width:0;flex-shrink:1}
.main-navigation{font-size:var(--type-navigation)}
.menu-toggle{font-size:var(--type-support)}
.main-navigation .button,.button,.inner-hero .actions .button,.hero .actions .button{font-size:var(--type-action);line-height:1.5}
.text-link,.closing .text-link,.hero .actions .hero-secondary,.hero-secondary,.media-link{font-size:var(--type-action);line-height:1.6}
.hero .lead,.home-hero .lead,.contact-copy .lead,.hero .hero-copy .lead{font-size:var(--type-body);line-height:var(--reading-leading)}
.brand-promise,.home-hero .brand-promise,.about-hero .brand-promise{font-size:var(--type-support);line-height:1.65}
.eyebrow,.hero .eyebrow,.home-hero .eyebrow,.species-card-body .eyebrow,
.foundation-chapter .eyebrow,.question-heading .eyebrow,.form-heading .eyebrow,
.media-publication .eyebrow,.contact-card .eyebrow,.approved-section-heading h2,
.platform-overview>.eyebrow{font-size:var(--type-small);line-height:1.6;letter-spacing:.08em}
.caption,.micro,.page-stage,.scenario-grid .caption,.journey-section .caption,
.contact-support>.caption,.contact-copy>.caption,.history-caption,.history-context.caption,
.image-disclosure,.species-card>.image-with-caption>.image-disclosure,
.concept-frame figcaption,.data-story figcaption,.scenario-illustration figcaption,
.experience-path figcaption,.decision-question figcaption,.concept-disclaimer,
.media-copy .media-context,.privacy-date,.privacy-contact{
  font-size:var(--type-support);line-height:1.75;
}
.tag,.pending,.photo-caption,.photo-slot.compact .photo-caption,.photo--card .photo-caption,
.step-number,.card-index,.stage-label,.platform-stage .stage-label,.species-subline,.home-hero .species-subline,
.principle-band .wrap,.canvas-top,.canvas-bottom,.data-sources>div span,
.insight .eyebrow,.intelligence-canvas figcaption,.concept-header .eyebrow,.concept-header .tag,
.concept-evidence span,.foundation-panel li>span,.scenario-illustration li span{
  font-size:var(--type-small);line-height:1.65;
}
.staging-bar{font-size:var(--type-small);letter-spacing:.045em;line-height:1.6}
.photo-slot code,.photo--card code,.photo-slot.compact code{font-size:var(--type-small);overflow-wrap:anywhere}
.feature-card p,.stacked-features article p,.species-card-body p:not(.eyebrow),
.section-intro p,.journey-steps p,.tinted .journey-steps p,.foundation-panel p,
.foundation-chapter p,.experience-summary p:not(.eyebrow),.principle-list dd,
.team-functions dd,.scenario-grid p,.scenario-section .scenario-grid>div>p:not(.eyebrow),
.question-slots dd,.faq-list details p,.faq-layout>div>p:not(.eyebrow),.closing p,
.compatibility-note p,.status-panel p,.conversion-helper,.about-intro-text p,.journey-copy p,
.approved-editorial>div>p,.about-solutions p,.media-copy>p,.privacy-section p,.privacy-section li{
  font-size:var(--type-body);line-height:var(--reading-leading);
}
.feature-card h3,.four-up h3,.stacked-features article h3,.journey-steps h3,.foundation-panel h3,.team-functions dt{font-size:1.125rem;line-height:1.4}
.species-card-body h3{font-size:1.375rem;line-height:1.35}
.concept-focus p,.concept-evidence>div,.data-sources>div,.insight p,
.source-tags span,.story-rail div,.platform-stage p,.record-context>span,
.question-slots dt,.scenario-illustration li strong,.expertise-list li{font-size:var(--type-support);line-height:1.7}
.concept-steps li{font-size:var(--type-small);line-height:1.6;min-width:0;overflow-wrap:anywhere}
.question-heading h3{font-size:1.25rem;line-height:1.4}
.faq-list summary{font-size:var(--type-body);line-height:1.6}
.related-solutions,.related-solutions a{font-size:var(--type-action);line-height:1.6}
.home-hero .decision-accent .eyebrow{font-size:var(--type-small);line-height:1.5}
.home-hero .decision-accent p{font-size:var(--type-support);line-height:1.6}
.home-hero .decision-accent .caption{font-size:var(--type-small);line-height:1.65}
.media-publisher{font-size:var(--type-body);line-height:1.6}
.media-publication time{font-size:var(--type-support);line-height:1.6}
.media-copy .media-context{font-size:var(--type-support);line-height:1.75}
.contact-card .company-address{font-size:var(--type-body);line-height:1.7}
.contact-social h2{font-size:var(--type-body);line-height:1.5}
.staging-notice strong,.staging-notice p,.required-note,.field label,.field-error,.field-help,
.optional-fields summary,.privacy-note p,.privacy-note a,.form-heading>p:not(.eyebrow),
.form-status:not(:empty){font-size:var(--type-support);line-height:1.7}
.field input,.field select,.field textarea{font-size:var(--type-body);line-height:1.5}
.field label{font-weight:600}
.optional{font-size:var(--type-support)}
.privacy-review-notice{font-size:var(--type-support);line-height:1.8}
.privacy-contents h2{font-size:var(--type-body);line-height:1.5}
.privacy-contents a,.privacy-external{font-size:var(--type-support);line-height:1.7}
.site-footer h2{font-size:var(--type-small);line-height:1.6;letter-spacing:.08em}
.site-footer a:not(.footer-logo),.site-footer .company-address,.site-footer .company-address a{font-size:var(--type-support);line-height:1.7;overflow-wrap:anywhere}
.site-footer p,.site-footer .footer-note{font-size:var(--type-support);line-height:1.75}
.site-footer .footer-company{font-size:1rem;font-weight:600;line-height:1.5}
.footer-bottom{font-size:var(--type-small);line-height:1.7}
.footer-grid>div{min-width:0}
.breadcrumbs{font-size:var(--type-small);line-height:1.65}
@media(max-width:600px){
  .home-hero{--hero-min-height:clamp(800px,210vw,960px)}
  .concept-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.platform-overview>.caption,.approved-editorial .caption{font-size:var(--type-support);line-height:1.75}
/* Let larger user-selected text reflow inside existing grids rather than widen them. */
:where(.editorial-grid,.split-heading,.principles-layout,.faq-layout,.contact-grid,.privacy-layout,.scenario-grid,.hero-grid,.experience-summary,.approved-editorial,.species-grid,.about-solutions,.form-grid,.media-feature,.team-functions,.record-context,.journey-steps,.card-grid,.closing-panel,.concept-body,.privacy-contents)>*{min-width:0}
h1,h2,h3,h4,p,dt,dd,label,summary,li{overflow-wrap:anywhere}
.privacy-contents a,.record-context>span{min-width:0;overflow-wrap:anywhere}
@media(max-width:440px){.record-context-dairy,.record-context-pigs{grid-template-columns:minmax(0,1fr)}}
@media(min-width:601px) and (max-width:980px){
  /* Keep the portrait artwork complete when larger text makes the hero taller. */
  .home-hero .photo-slot.supplied img{position:absolute;right:0;bottom:0;width:100%;height:auto;max-height:100%;-webkit-mask-image:linear-gradient(180deg,transparent,#000 12%);mask-image:linear-gradient(180deg,transparent,#000 12%)}
}
/* Final visual approval: comfortable primary controls and mobile tap areas. */
.menu-toggle{font-size:var(--type-navigation)}
@media(max-width:760px){
  .contact-card .company-address a,.site-footer .company-address a{display:flex;align-items:center;min-height:44px}
  .breadcrumbs a{min-width:44px}
  .privacy-contact a{display:inline-flex;align-items:center;min-height:44px}
}
@media(max-width:600px){
  /* A little more image clearance keeps CTAs above faces; no larger headline. */
  .home-hero{--hero-min-height:clamp(880px,225vw,960px)}
  .home-hero .hero-copy .lead{line-height:1.6}
  .home-hero .photo-slot.supplied img{position:absolute;right:0;bottom:0;width:100%;height:auto;max-height:100%;-webkit-mask-image:linear-gradient(180deg,transparent,#000 18%);mask-image:linear-gradient(180deg,transparent,#000 18%)}
}
@media(max-width:360px){.home-hero{--hero-copy-padding:26px 12px}}

/* Keep footer address and contact methods together without stacked blank rows. */
.site-footer .company-address{gap:0}
.footer-contact-methods{display:grid;gap:0}
.site-footer .footer-contact-methods a{display:flex;align-items:center;min-height:32px;line-height:1.6;white-space:normal}
@media(max-width:760px){.site-footer .footer-contact-methods a{min-height:44px}}

/* Match the visible company/address and address/email spacing. */
.site-footer .footer-company{margin-bottom:5.59px}
@media(max-width:760px){.site-footer .footer-company{margin-bottom:11.59px}}

.production-form-notice{background:var(--pale-lime);border:1px solid #c8d9a9;border-radius:12px;padding:16px 18px;margin-block:24px}
.production-form-notice strong{font-size:.9rem;color:#324b22;display:block;margin-bottom:7px}
.production-form-notice p,.production-form-notice a{font-size:.9rem;color:#4e6041;line-height:1.7}
