/* able — calm industrial editorial design */
:root{--paper:#f7f7f2;--ink:#292e2b;--muted:#626862;--line:#d8dcd5;--accent:#d6eb78}
.wrap{width:min(1280px,calc(100% - 96px))}
h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.045em;text-wrap:balance}
header.nav{display:flex;height:110px;align-items:center;justify-content:space-between;border:0}
.nav-contact{display:inline-flex;align-items:center;border:0;border-bottom:1px solid #929a91;background:none;padding:10px 0;font-size:14px}
.hero{padding:64px 0 0;display:block}
.hero .hero-top{display:grid;grid-template-columns:1.4fr 1fr;column-gap:90px;row-gap:22px;align-items:start;margin:0 0 64px}
.hero h1{grid-row:1/3;font-size:clamp(48px,5.5vw,80px);line-height:1.08;max-width:760px;margin:0}
.hero h1 em{font-weight:400;color:#58654d}
.hero-subtitle{font-size:18px;line-height:1.8;letter-spacing:0;max-width:400px;margin:8px 0 0}
.hero .text-link{justify-self:start;align-self:start;font-size:15px;padding:9px 0;background:none;gap:30px}
.factory-image{margin:0;overflow:hidden;background:#e1e3de}
.factory-image img{display:block;width:100%;height:auto;aspect-ratio:2.15;object-fit:cover;object-position:50% 15%}
.hero-purpose{font-family:Georgia,'Times New Roman',serif;font-size:clamp(23px,2.7vw,36px);line-height:1.4;letter-spacing:-.025em;max-width:770px;margin:32px 0 0}
.section{padding-block:112px}
.roles .section-heading{margin-bottom:58px}
.roles .section-heading h2{font-size:clamp(38px,4.3vw,60px);max-width:800px;line-height:1.12;margin:0}
.roles .section-intro{max-width:620px;margin:20px 0 0;font-size:18px;line-height:1.7;color:var(--muted)}
.role-grid{display:block;border:0}
.role,.role+.role,.role:last-child{display:grid;grid-template-columns:1.05fr 1.1fr .65fr;column-gap:46px;row-gap:16px;align-items:start;padding:38px 0 42px;border:0;border-top:1px solid var(--line);background:none;box-shadow:none}
.role-top{grid-column:1;grid-row:1;height:auto;margin:0}
.role-top .mono{font-family:Manrope,Arial,sans-serif;font-size:13px;letter-spacing:.04em;color:var(--muted);line-height:1.5}
.role h3{grid-column:1;grid-row:2;font-family:Georgia,'Times New Roman',serif;font-size:30px;line-height:1.2;letter-spacing:-.025em;font-weight:400;min-height:0;margin:0;max-width:370px}
.role>p:not(.role-lead):not(.role-agent){grid-column:2;grid-row:1/3;font-size:16px;line-height:1.85;margin:0;max-width:450px;color:var(--muted)}
.role .role-agent{font-family:'IBM Plex Mono',monospace;font-size:12px;line-height:1.5;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 16px}
.application-sketch{grid-column:3;grid-row:1/3;align-self:center;min-width:0}
.application-sketch svg{display:block;width:100%;height:auto}
.application-sketch .fine{fill:none;stroke:#e0e5dc;stroke-width:1}
.application-sketch .dotted{fill:none;stroke:#bcc6b5;stroke-width:1.3;stroke-dasharray:3 5}
.application-sketch .outline-block{fill:none;stroke:#bbc7b0;stroke-width:1.3}
.application-sketch .faint-block{fill:#ecf0e6;stroke:#cfd8c5;stroke-width:1}
.application-sketch .accent-block{fill:#e1eacb;stroke:#b1c190;stroke-width:1}
.application-sketch .soft-line{fill:none;stroke:#a5b68b;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.roles-note{border-top:1px solid var(--line);padding-top:26px;margin:0;font-size:16px}
.system{background:#28312b;color:#f7f7f2}
.system.section{padding-block:88px}
.system-grid{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:42px;align-items:end}
.system h2{font-size:clamp(36px,2.8vw,43px);line-height:1.1;margin:0;max-width:720px}
.system h2 span{display:block;white-space:nowrap}
.system .large-copy{font-size:23px;margin:0;line-height:1.48;max-width:570px}
.system-grid>div>p:last-child:not(.large-copy){font-size:17px;line-height:1.85;max-width:470px}
.system-product{max-width:260px;margin:35px 0 0}
.system-product img{width:100%;height:auto;display:block;border-radius:0}
.system .principles{margin-top:42px;gap:50px}
.system .principles>div{border-color:#535e55;padding-top:26px}
.system .principles>div>span{display:none}
.system .principles strong{font-size:19px;font-weight:500}
.system .principles p{font-size:16px;line-height:1.85}
.system .capacity-note{font-family:Georgia,'Times New Roman',serif;font-size:30px!important;color:#f7f7f2!important;padding-top:35px;margin-top:45px;border-color:#535e55}
.mission{padding-block:142px}
.mission-statement{max-width:930px;border:0;padding:0;margin:auto}
.mission-label{font-family:Manrope,Arial,sans-serif;font-size:14px;margin-bottom:30px}
.mission-label::before{display:none}
.mission-statement h2{font-size:clamp(42px,5.2vw,70px);line-height:1.08;margin-bottom:38px}
.mission-lead{font-size:23px;line-height:1.8;max-width:780px}
.mission-outcome{font-size:20px;line-height:1.8;max-width:740px}
.mission-statement .mission-detail{max-width:780px;margin-top:38px}
.mission-detail p{font-size:17px;line-height:1.85}
.contact{display:grid;grid-template-columns:1.3fr 1fr;gap:100px;padding:70px 0 85px;background:none;border:0;border-top:1px solid var(--line);margin-bottom:0}
.contact h2{font-size:clamp(36px,4.2vw,58px);margin:0 0 28px;line-height:1.14}
.contact .contact-link{font-size:17px;padding-bottom:12px}
.contact .newsletter-title{font-size:19px;font-weight:500;color:var(--ink);margin:5px 0 14px}
.contact .signup-intro{font-size:16px;line-height:1.8;margin:0 0 24px}
.newsletter-detail summary{font-size:16px}
.contact #signup{padding-top:0}
.contact button.button{font-size:15px;background:#303b31;color:#fff;padding:15px 18px}
.contact .signup-consent{font-size:13px;line-height:1.7}
footer{padding:32px 0 42px}footer>span{font-family:Georgia,'Times New Roman',serif;font-size:24px;font-style:italic}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.hero .hero-top{column-gap:42px;grid-template-columns:1.3fr 1fr}.hero h1{font-size:60px}.role,.role+.role,.role:last-child{grid-template-columns:1fr 1.15fr;gap:18px 40px}.application-sketch{grid-column:1;grid-row:3;max-width:220px}.role>p:not(.role-lead):not(.role-agent){grid-row:2/4}.system-grid,.contact{gap:50px}.system .principles{gap:30px}}

/* A statement-led opening and three concise possibilities. */
.hero{position:relative;padding-block:68px 100px;min-height:650px}
.hero .hero-top{display:block;margin:0}
.hero h1{font-size:clamp(64px,8.3vw,116px);line-height:1.04;letter-spacing:-.05em;max-width:1000px;margin:0 0 42px}
.hero h1 em{font-style:normal;color:#58654d}
.hero-copy{max-width:560px;position:relative;z-index:1}
.hero-introduction{font-size:21px;line-height:1.55;margin:0 0 12px}
.hero-subtitle{font-size:17px;line-height:1.8;max-width:470px;margin:0 0 22px}
.hero-system{position:absolute;right:0;bottom:65px;width:32%;max-width:380px;margin:0}
.hero-system img{display:block;width:100%;height:auto;object-fit:contain}
.roles{border-top:1px solid var(--line)}
.roles .section-heading h2{max-width:780px}
.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
.role,.role+.role,.role:last-child{display:flex;flex-direction:column;gap:0;padding:26px 0 0;border:0;border-top:1px solid var(--line);min-width:0}
.role h3{font-size:32px;line-height:1.2;margin:0 0 18px;max-width:320px;min-height:2.4em}
.role>p:not(.role-lead):not(.role-agent){font-size:17px;line-height:1.8;margin:0;max-width:335px;flex:1}
.application-sketch{align-self:flex-start;width:220px;max-width:100%;margin-top:26px}
.roles-note{border:0;padding:0;margin-top:34px;font-size:15px}
@media(max-width:1050px){.hero{min-height:620px;padding-block:55px 90px}.hero h1{font-size:clamp(64px,9vw,95px)}.hero-copy{max-width:60%}.hero-system{width:33%;bottom:80px}.role-grid{gap:28px}.role h3{font-size:28px}}

/* The system in its working environment. */
.hero{min-height:0;padding-block:58px 80px}
.hero .hero-top{display:grid;grid-template-columns:1.4fr 1fr;gap:70px;align-items:center;margin:0 0 48px}
.hero h1{grid-row:auto;font-size:clamp(56px,6.6vw,94px);margin:0;max-width:740px}
.hero-copy{max-width:440px}
.hero-office{margin:0;overflow:hidden;background:#e5e7e2}
.hero-office img{display:block;width:100%;height:auto;aspect-ratio:2.15;object-fit:cover;object-position:center}
@media(max-width:1050px){.hero .hero-top{gap:36px;grid-template-columns:1.2fr 1fr}.hero h1{font-size:clamp(54px,7vw,74px)}.hero-copy{max-width:100%}}

/* Keep the factory promise compact and readable. */
.hero h1{font-size:clamp(40px,4.1vw,58px);line-height:1.13;letter-spacing:-.035em;text-wrap:initial}
.hero h1>span,.hero h1>em{display:block}
.hero h1>span{white-space:nowrap}
@media(max-width:1050px) and (min-width:721px){.hero .hero-top{grid-template-columns:1.4fr 1fr;gap:30px}.hero h1{font-size:clamp(32px,4vw,42px)}}

/* Precise schematic diagrams with a restrained industrial palette. */
.application-sketch{width:100%;max-width:300px;margin-top:34px;align-self:flex-start}
.application-sketch svg{width:100%;height:auto;display:block}
.application-sketch .diagram-guide{fill:none;stroke:#dce0da;stroke-width:1}
.application-sketch .diagram-tick{fill:none;stroke:#929b91;stroke-width:1}
.application-sketch .diagram-bar{fill:none;stroke:#465248;stroke-width:9;stroke-linecap:butt}
.application-sketch .diagram-secondary-bar{fill:none;stroke:#a3afa0;stroke-width:9;stroke-linecap:butt}
.application-sketch .diagram-accent-bar{fill:none;stroke:#a8be72;stroke-width:9;stroke-linecap:butt}
.application-sketch .diagram-link{fill:none;stroke:#a8b0a5;stroke-width:1;stroke-dasharray:2 4}
.application-sketch .diagram-line{fill:none;stroke:#465248;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter}
.application-sketch .diagram-secondary{fill:none;stroke:#b5beb0;stroke-width:1.5}
.application-sketch .diagram-node{fill:var(--paper);stroke:#465248;stroke-width:1.5}
.application-sketch .diagram-accent-node{fill:#a8be72;stroke:var(--paper);stroke-width:2}

/* Slightly stronger hero, retaining its two-line composition. */
.hero h1{font-size:clamp(44px,4.7vw,66px)}
@media(max-width:1050px) and (min-width:721px){.hero h1{font-size:clamp(34px,4.4vw,46px)}}

/* Final mobile rhythm: compact headings, natural wrapping and a stable footer. */
@media(max-width:720px){
  .wrap{width:calc(100% - 36px)}
  header.nav{display:flex;min-height:78px;height:78px;padding:16px 0;gap:16px;flex-wrap:nowrap}
  header.nav>.logo{width:94px}
  header.nav>.nav-contact{display:inline-flex;min-height:44px;padding:10px 0;font-size:12px;white-space:nowrap}
  header.nav>.nav-contact span{margin-left:12px}
  .hero{padding-block:28px 44px}
  .hero .hero-top{display:block;margin-bottom:28px}
  .hero-copy{max-width:100%}
  .hero h1{font-size:clamp(34px,9vw,42px);line-height:1.12;margin-bottom:22px}
  .hero h1>span{white-space:normal}
  .hero-subtitle{font-size:16px;line-height:1.65;margin-bottom:18px}
  .hero-office img{aspect-ratio:1.35;object-position:70% center}
  .section{padding-block:62px}
  .roles .section-heading{margin-bottom:30px}
  .roles .section-heading h2{font-size:31px;line-height:1.13}
  .roles .section-intro{margin-top:14px;font-size:16px;line-height:1.6}
  .role-grid{grid-template-columns:1fr;gap:12px}
  .role,.role+.role,.role:last-child{display:grid;grid-template-columns:minmax(0,1fr) min(31vw,120px);column-gap:16px;row-gap:0;padding:24px 0 20px}
  .role .role-agent,.role h3{grid-column:1/-1;grid-row:auto}
  .role .role-agent{font-size:10px;letter-spacing:.045em;margin-bottom:10px}
  .role h3{font-size:24px;line-height:1.2;max-width:none;min-height:0;margin-bottom:11px}
  .role>p:not(.role-lead):not(.role-agent){grid-column:1;grid-row:3;font-size:15px;line-height:1.6;max-width:440px;align-self:center}
  .application-sketch{grid-column:2;grid-row:3;width:100%;max-width:none;justify-self:end;align-self:center;margin-top:0}
  .roles-note{margin-top:20px;line-height:1.6}
  .system-grid{grid-template-columns:1fr;gap:24px}
  .system h2{font-size:30px;line-height:1.16}
  .system h2 span{display:inline;white-space:normal}
  .system h2 span+span::before{content:' '}
  .system .large-copy{font-size:20px;line-height:1.5;margin-bottom:16px}
  .system-grid>div>p:last-child:not(.large-copy){font-size:16px;line-height:1.7}
  .system .principles{grid-template-columns:1fr;gap:0;margin-top:28px}
  .system .principles>div{display:block;padding:22px 0}
  .system .principles strong{font-size:18px;margin-bottom:8px}
  .system .principles p{font-size:15px;line-height:1.65}
  .mission{padding-block:72px}
  .mission-label{margin-bottom:20px}
  .mission-statement h2{font-size:32px;line-height:1.12;margin-bottom:24px}
  .mission-lead{font-size:18px;line-height:1.7}
  .mission-statement .mission-detail{margin-top:28px}
  .mission-statement .mission-detail summary{font-size:15px}
  .mission-detail p{font-size:16px;line-height:1.75}
  .contact{grid-template-columns:1fr;gap:32px;padding-block:42px 44px}
  .contact h2{font-size:30px;line-height:1.16;margin-bottom:22px}
  .newsletter{max-width:480px}
  .newsletter-title{margin-top:0}
  .contact #signup{padding-top:0}
  footer{display:grid;grid-template-columns:1fr auto;gap:22px 18px;padding:26px 0 34px}
  footer>.logo{grid-column:1;grid-row:1}
  footer>a:last-child{grid-column:2;grid-row:1;margin:0;align-self:center}
  footer>span{grid-column:1/-1;grid-row:2;font-size:17px;line-height:1.35}
}
