/* Independent shared visual system. Existing structural selectors are adapters. */
:root {
 --color-black:#000; --color-white:#fff; --color-off-white:#fafafa; --color-light-gray:#f2f2f2; --color-mid-gray:#666; --color-border:#d8d8d8;
 --color-bg:#fff; --color-bg-soft:var(--color-light-gray); --color-dark:#000; --color-text:#111; --color-muted:#606060; --color-accent:#fff; --color-accent-dark:#555; --color-inverse:#fff; --color-surface:#fff; --text-on-dark-secondary:#ccc;
 --container-max:1360px; --gutter:32px; --container:min(calc(100% - var(--gutter)*2),var(--container-max)); --header-height:76px;
 --space-xs:8px; --space-sm:16px; --space-md:24px; --space-lg:40px; --space-xl:64px; --section-space:clamp(56px,6vw,88px);
 --type-display:clamp(40px,4.2vw,64px); --type-h1:clamp(32px,3vw,46px); --type-h2:clamp(28px,2.5vw,38px); --type-h3:clamp(22px,1.7vw,26px); --type-body-large:clamp(18px,1.45vw,21px); --type-body:16px; --type-small:14px; --type-eyebrow:12px;
 --transition:180ms ease; --radius-sm:0; --radius-md:0;
}
body { background:#fff; color:#111; font-family:var(--font-brand); font-size:var(--type-body); line-height:1.6; }
button,input,select,textarea { font-family:var(--font-brand); }
h1,h2,h3,.page-title,.project-page-title { font-family:var(--font-brand); font-weight:700; letter-spacing:-.02em; line-height:1.14; }
h1,.page-title,.project-page-title { font-size:var(--type-h1); } h2 { font-size:var(--type-h2); } h3 { font-size:var(--type-h3); }
.lead,.project-page-lead { font-size:var(--type-body-large); line-height:1.55; color:var(--color-muted); }
.eyebrow,.product-card__family { font-size:var(--type-eyebrow); font-weight:500; letter-spacing:.09em; text-transform:uppercase; color:var(--color-muted); }
.container,.catalog-shell,.product-shell { width:var(--container); margin-inline:auto; }.container--narrow { max-width:900px; }
.section,.section--dark.section,.about-global { padding-block:var(--section-space); }.section--soft { background:var(--color-light-gray); }
.section--dark,.cta-band,.project-cta { background:#000; color:#fff; }.section--dark .lead,.section--dark .eyebrow,.cta-band p,.cta-band .eyebrow,.project-cta .eyebrow { color:#ccc; }
.section__head { gap:40px; margin-bottom:40px; grid-template-columns:minmax(0,1fr) minmax(0,.8fr); }.section__head h2 { max-width:24ch; }.section__head .lead { color:var(--color-muted); margin:0; }.section--dark .section__head .lead { color:#ccc; }
.site-header,.site-header.is-scrolled,.site-header.is-open,.project-page-body .site-header,.projects-page .site-header { height:var(--header-height); background:#000; color:#fff; position:sticky; top:0; border:0; box-shadow:none; backdrop-filter:none; }
.header__inner { width:min(100%,1440px); height:100%; margin:auto; padding:0 var(--gutter); gap:28px; }.site-logo { display:block; flex:0 0 96px; width:96px; height:96px; margin:0 30px 0 0; padding:0; align-self:center; background:#fff; }.site-logo img { width:100%; height:100%; object-fit:contain; }
.nav { flex:1; justify-content:center; gap:clamp(16px,1.6vw,26px); }.nav a { font-size:12px; font-weight:400; letter-spacing:.02em; text-transform:uppercase; color:#e5e5e5; white-space:nowrap; }.nav a:hover,.nav a[aria-current] { color:#fff; text-decoration:underline; text-underline-offset:7px; }.nav a::after,.nav__trigger::before { content:none; }.header__actions { flex:0 0 auto; margin-left:auto; }.nav .nav__cta { display:none; }
.button,.button-primary-dark,.button-primary-light,.button-outline-dark,.button-outline-light { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:12px 26px; border:1px solid transparent; border-radius:999px; font-family:var(--font-brand); font-size:13px; font-weight:500; letter-spacing:.04em; text-transform:uppercase; line-height:1.3; text-align:center; box-shadow:none; transition:background var(--transition),color var(--transition); }
.button-primary-dark,.button--accent { background:#000; color:#fff; border-color:#000; }.button-primary-light,.button--light { background:#fff; color:#000; border-color:#fff; }.button-outline-dark { background:transparent; color:#000; border-color:#000; }.button-outline-light,.button--ghost { background:transparent; color:#fff; border-color:#fff; }
.button-primary-dark:hover,.button--accent:hover { background:#333; color:#fff; border-color:#333; }.button-primary-light:hover,.button--light:hover { background:#e6e6e6; color:#000; }.button-outline-dark:hover { background:#000; color:#fff; }.button-outline-light:hover,.button--ghost:hover { background:#fff; color:#000; }
.header__actions .button { min-height:36px; padding:9px 20px; font-size:11px; border-radius:999px; background:#fff; color:#000; border:0; }
.cta-band .button--accent,.project-cta .button--accent,.section--dark .button--accent,.hero .button--accent { background:#fff; color:#000; border-color:#fff; }.cta-band .button--accent:hover,.hero .button--accent:hover { background:#ddd; }
.text-link,.editorial-link,.source-link { font-size:var(--type-small); font-weight:500; letter-spacing:0; background:none; }.text-link:hover,.editorial-link:hover { text-decoration:underline; text-underline-offset:5px; }
.hero { min-height:680px; display:flex; align-items:center; background:#000; }.hero::before { background:rgba(0,0,0,.45); }.hero::after { content:none; }.hero__content { width:var(--container); padding:80px 0 100px; margin:auto; }.hero h1 { max-width:900px; font-size:var(--type-display); line-height:1.08; letter-spacing:-.025em; }.hero .lead { max-width:700px; margin-top:28px; font-size:var(--type-body-large); color:#fff; }.hero__meta { color:#e2e2e2; margin-top:24px; font-size:var(--type-small); }.hero__actions { gap:16px; margin-top:32px; }.hero__next span { width:18px; height:18px; border-width:2px; }
html.motion-enabled .hero [data-reveal] { opacity:1 !important; transform:none !important; transition:none; }
.statement { font-size:var(--type-h2); line-height:1.2; letter-spacing:-.02em; }.intro-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; }.intro-grid > div:last-child .lead { font-size:var(--type-body-large); color:var(--color-muted); }.metric { grid-template-columns:40px 1fr; gap:24px; padding:20px 0; border-color:var(--color-border); }
/* PageBanner uses one original local geometric texture. */
.page-hero,.catalog-banner,.projects-intro__copy,.blog-hero__copy,.about-hero__copy { background:#111 url('/images/ui/banner-grid.svg') center/cover; color:#fff; padding:48px var(--gutter); text-align:center; }.page-hero { padding:48px 0; }.page-hero .container { width:var(--container); }
.page-hero .page-title,.catalog-banner h1,.projects-intro__copy h1,.blog-hero h1,.about-hero h1 { max-width:1000px; margin:0 auto 20px; font-size:var(--type-h1); line-height:1.15; letter-spacing:-.02em; }.page-hero .lead,.projects-intro__copy .lead,.blog-hero .lead,.about-hero .lead { max-width:880px; margin:0 auto; color:#ddd; font-size:var(--type-body); }
.page-hero .eyebrow,.projects-intro__copy .eyebrow,.blog-hero__copy .eyebrow,.about-hero__copy .eyebrow { color:#ccc; margin-bottom:12px; }.catalog-banner { min-height:190px; padding:48px var(--gutter); border-bottom:4px solid #777; }.catalog-banner:before,.catalog-banner:after { content:none; }
.page-hero .container { display:block; }
body:has([data-solutions-grid]) .page-hero .container { display:block; }
.article-page .breadcrumbs { padding-top:0; }
.blog-hero__featured { grid-template-rows:auto; }
.blog-hero__featured > div { background:#fff; color:#111; }
.blog-hero__featured .editorial-link { color:#111; }
.article-page .page-title { font-size:var(--type-h1); max-width:none; }
.article-card .project-card__copy h2 { font-size:var(--type-h3); }
.legal-page h2 { font-size:var(--type-h3); line-height:1.3; margin-bottom:16px; }
.legal-page .container--narrow { max-width:850px; }
.news-hero,.archive-hero--light { padding:48px 0; background:#111 url('/images/ui/banner-grid.svg') center/cover; color:#fff; text-align:center; }
.news-hero h1,.archive-hero--light h1 { max-width:1000px; margin:0 auto 20px; font-size:var(--type-h1); }
.news-hero .lead,.archive-hero--light .lead { margin:auto; max-width:880px; color:#ddd; font-size:var(--type-body); }
.news-hero .eyebrow,.archive-hero--light .eyebrow { color:#ccc; }
.news-archive { background:#fff; padding-block:var(--section-space); }
.projects-intro,.blog-hero,.about-hero { padding:0; background:#fff; color:#111; }.projects-intro > .container,.blog-hero__grid,.about-hero__grid { width:100%; max-width:none; display:grid; grid-template-columns:minmax(0,1fr); gap:0; min-height:0; }.projects-intro__copy,.blog-hero__copy,.about-hero__copy { width:100%; max-width:none; }.projects-intro__copy .project-location { margin:16px auto 0; font-size:var(--type-small); color:#ccc; }
.projects-intro [data-featured-project],.blog-hero__featured,.about-hero__media { width:var(--container); margin:var(--space-xl) auto 0; }.projects-intro .featured-project,.blog-hero__featured { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); align-items:center; gap:40px; color:#111; background:#fff; }.featured-project__media,.projects-intro .featured-project__media { min-height:0; aspect-ratio:16/9; }.projects-intro .featured-project__copy,.blog-hero__featured > div { padding:0; }.featured-project__copy h2,.projects-intro .featured-project__copy h2,.blog-hero__featured h2 { font-size:var(--type-h2); line-height:1.16; }.blog-hero__featured { position:static; overflow:visible; }.blog-hero__featured:before,.blog-hero__featured:after { content:none; }.blog-hero__featured img { position:static; width:100%; height:auto; min-height:0; aspect-ratio:16/9; object-fit:cover; }.blog-hero__featured .eyebrow { color:var(--color-muted); }
.projects-showcase,.blog-archive { padding-block:var(--section-space); background:#fff; }.projects-showcase > .container > h2 { margin-bottom:24px; font-size:var(--type-h2); }
.projects-grid,.projects-grid--home,.projects-grid--about,.blog-article-grid,.card-grid--solutions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 28px; }.project-card,.solution-card,.article-card,.category-card,.product-card { min-width:0; padding:0; border-radius:0; box-shadow:none; background:#fff; }
.project-card:nth-child(even),.card-grid--solutions .solution-card:nth-child(even),.projects-grid--about .project-card:nth-child(even) { padding-top:0; }.projects-grid--home .project-card:first-child { grid-column:auto; display:block; padding:0; }
.card-media,.projects-grid--home .project-card:first-child .card-media,.projects-grid--about .project-card .card-media,.card-grid--solutions .solution-card .card-media { aspect-ratio:3/2; min-height:0; overflow:hidden; border:1px solid var(--color-border); background:var(--color-light-gray); }.card-media img { width:100%; height:100%; object-fit:cover; transition:transform var(--transition); }.project-card:hover .card-media img,.solution-card:hover .card-media img { transform:scale(1.025); }
.project-card__copy,.projects-grid--home .project-card:first-child .project-card__copy,.card-body { padding:20px 0 0; }.solution-card .card-body h2,.article-card h2,.project-card__copy h3,.projects-grid--home .project-card:first-child h3,.projects-grid--about .project-card__copy h3 { font-size:var(--type-h3); line-height:1.2; letter-spacing:-.015em; margin:0 0 12px; }.project-card__copy p,.card-body p { font-size:var(--type-body); }.project-card .eyebrow,.card-body .eyebrow { font-size:var(--type-eyebrow); }.solution-card .text-link,.editorial-link { margin-top:16px; }
.project-filters,.blog-category-nav { display:flex; flex-wrap:wrap; gap:12px; margin:0 0 32px; padding:0 0 24px; border-bottom:1px solid var(--color-border); }.project-filters button,.project-filters a { min-height:44px; padding:10px 16px; border:1px solid var(--color-border); border-radius:999px; background:#fff; color:#333; font-size:var(--type-small); }.project-filters .is-active,.project-filters [aria-pressed=true],.project-filters [aria-current=page] { background:#000; color:#fff; border-color:#000; }
.breadcrumbs { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 28px; font-size:var(--type-small); font-weight:400; text-transform:none; letter-spacing:0; line-height:1.5; color:var(--color-muted); overflow-wrap:anywhere; }.breadcrumbs a:hover { text-decoration:underline; }
.project-page-intro .breadcrumbs { font-size:var(--type-small); }
.project-page-intro { padding:40px 0 48px; background:#fff; }.project-page-title { max-width:1000px; margin:18px 0; }.project-page-lead { max-width:880px; margin-top:24px; }.project-page__media { margin:0; aspect-ratio:16/9; }.project-page__media img { width:100%; height:100%; object-fit:cover; }.project-story { padding-block:var(--section-space); }.project-story__section { padding:32px 0; background:transparent; border-top:1px solid var(--color-border); }.project-story__section--soft { background:transparent; }.project-story__label h2 { font-size:var(--type-h2); }
.solution-page-intro { width:var(--container); padding:12px 0 48px; margin:auto; }[data-solution-page] > .breadcrumbs { width:var(--container); margin:32px auto 20px; }.solution-page-intro h1 { font-size:var(--type-h1); max-width:1000px; }.solution-page-intro .lead { max-width:880px; }.solution-hero { width:var(--container); margin:0 auto; aspect-ratio:16/9; }.solution-hero img { width:100%; height:100%; object-fit:cover; }
.process-section.section { background:#000; color:#fff; padding-block:var(--section-space); }.process-section .lead,.process-section .eyebrow { color:#ccc; }.process-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 32px; width:100%; }.process-step,.process-grid--light .process-step { min-height:0; padding:28px 0; border:0; border-top:1px solid #555; background:transparent; }.process-step h3,.process-step:nth-child(2) h3 { font-size:22px; line-height:1.35; max-width:28ch; letter-spacing:0; }.process-step span,.process-grid--light .process-step span { margin-bottom:20px; color:#ccc; font-size:var(--type-small); }
.cta-band,.project-cta { padding-block:var(--section-space); margin-top:0; }.cta-band h2,.project-cta h2,.about-cta h2 { font-size:var(--type-h2); letter-spacing:-.02em; }
.about-hero__media { aspect-ratio:16/7; }.about-editorial-grid h2,.about-space-first h2,.about-global__head h2,.about-hq__copy h2,.about-principles__head h2,.about-projects__head h2 { font-size:var(--type-h2); letter-spacing:-.02em; line-height:1.16; }.about-editorial-grid,.about-space-first__grid,.about-hq__grid { gap:48px; }.about-copy { font-size:var(--type-body-large); margin-top:28px; }.about-space-first__copy { margin-top:0; }.about-projects__head,.about-principles__head { margin-bottom:40px; }
.article-page { padding:40px 0 var(--section-space); }.article-page h1 { font-size:var(--type-h1); max-width:none; }.article-hero-image { width:100%; aspect-ratio:16/9; object-fit:cover; margin:32px 0; }.article-body { max-width:800px; margin-inline:auto; font-size:18px; line-height:1.75; }.article-body h2 { font-size:var(--type-h2); }.article-body .section { padding-block:32px; }.article-meta { font-size:var(--type-small); color:var(--color-muted); }.article-body .cta-band { margin-top:48px; padding:32px; }
.contact-grid { gap:64px; }.contact-item { border-top:1px solid var(--color-border); padding:20px 0; }.contact-item strong { font-size:clamp(23px,2.3vw,34px); overflow-wrap:anywhere; }.contact-item strong a { background:none; text-decoration:none; }.contact-item strong a:hover { text-decoration:underline; }.legal-content { max-width:850px; margin:auto; font-size:18px; }.legal-content h2 { font-size:var(--type-h3); }
.site-footer { padding:64px 0 28px; background:#000; color:#fff; }.footer-grid { grid-template-columns:1.2fr 1fr 1fr; gap:64px; }.footer-logo { margin:0 0 24px; width:112px; height:112px; background:#fff; }.footer-logo img { width:100%; height:100%; object-fit:contain; }.footer-grid p,.footer-col a { font-size:var(--type-small); color:#ccc; }.footer-col h2 { color:#fff; font-size:var(--type-small); font-weight:500; margin-bottom:24px; }.footer-col a { min-height:32px; margin-bottom:4px; }.footer-col a:hover { color:#fff; text-decoration:underline; }.footer-bottom { margin-top:48px; padding-top:24px; border-color:#444; color:#aaa; }
.catalog-page .catalog-layout { width:var(--container); }.catalog-search input,.catalog-filters select { min-height:48px; border:1px solid var(--color-border); background:#fafafa; color:#111; font-size:var(--type-body); box-shadow:none; }
.products-banner { height:auto; min-height:190px; padding:48px var(--gutter); background:#111 url('/images/ui/banner-grid.svg') center/cover; border-bottom:4px solid #777; }
.products-banner h1,.products-banner > p { font-family:var(--font-brand); font-size:var(--type-h1); font-weight:700; letter-spacing:-.02em; }
.category-card h2 { font-family:var(--font-brand); font-size:var(--type-h3); font-weight:700; }
.category-card p { font-size:var(--type-body); line-height:1.6; }
.category-card__image { border-radius:0; background:var(--color-light-gray); }
.projects-intro__copy .page-title { max-width:1000px; }
.catalog-control select { min-height:48px; background-color:var(--color-off-white); border-color:var(--color-border); font-size:var(--type-small); }
.catalog-content .catalog-filter-bar { gap:16px; }
.catalog-downloads .button,.catalog-library a { border-radius:999px; box-shadow:none; }
.listing-title { font-size:var(--type-h1); }
.menu-toggle[aria-expanded=true] span:nth-child(2) { opacity:0; }
.about-hero h1 { max-width:1000px; }
.project-page-lead { width:auto; }
select { appearance:none; background-image:url('/images/ui/chevron.svg') !important; background-repeat:no-repeat !important; background-position:right 12px center !important; background-size:12px !important; padding-right:36px !important; }
.product-page .product-shell { padding-top:32px; }.product-page .product-top { padding-top:0; }.product-info h1 { font-size:var(--type-h1); line-height:1.15; }.product-info .lead { font-size:var(--type-body-large); }.product-gallery { background:var(--color-off-white); }.product-local-nav { margin-top:56px; }.product-section h2 { font-size:var(--type-h2); }.product-specs dd,.product-specs td { overflow-wrap:anywhere; }.category-card,.product-card__media { border-color:var(--color-border); background:var(--color-light-gray); }.product-card h3 { font-size:var(--type-h3); }
.product-page { background:#fff; }
.product-section { scroll-margin-top:calc(var(--header-height) + 24px); }
.product-top .breadcrumbs { font-size:var(--type-small); font-weight:400; text-transform:none; letter-spacing:0; }
.contact-list .button { width:fit-content; }
:focus-visible { outline:2px solid currentColor; outline-offset:4px; }[hidden] { display:none !important; }
/* Critical content is visible on first paint; interaction stays on image hover. */
html.motion-enabled .reveal,html.motion-enabled [data-reveal] { opacity:1 !important; transform:none !important; clip-path:none !important; }
.hero__image { transform:none !important; transition:none; will-change:auto; }
@media(max-width:1200px) { :root { --header-height:80px; --gutter:24px; }.site-logo { flex-basis:80px; width:80px; height:80px; margin-right:12px; }.header__inner { gap:16px; }.nav { gap:14px; }.nav a { font-size:11px; }.header__actions .button { padding:9px 14px; font-size:10px; } }
@media(max-width:1100px) {
 .header__actions .button { display:none; }.menu-toggle { display:block; width:44px; height:44px; border:0; color:#fff; }
 .nav { position:fixed; top:var(--header-height); inset-inline:0; height:calc(100svh - var(--header-height)); display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; background:#000; color:#fff; padding:20px var(--gutter) 32px; transform:translateX(100%); visibility:hidden; overflow-y:auto; }.nav.is-open { transform:none; visibility:visible; }.nav a { font-size:18px; letter-spacing:.04em; padding:16px 0; border-bottom:1px solid #444; white-space:normal; }.nav .nav__cta { display:inline-flex; margin-top:24px; width:fit-content; padding:12px 24px !important; border:0 !important; color:#000 !important; background:#fff !important; border-radius:999px; font-size:13px !important; }.mega-menu { display:none !important; }
 .projects-grid,.card-grid--solutions { grid-template-columns:repeat(2,minmax(0,1fr)); }.section__head,.intro-grid,.contact-grid { grid-template-columns:minmax(0,1fr); gap:32px; }
}
@media(max-width:768px) {
 :root { --gutter:20px; --header-height:72px; --space-xl:40px; }.site-logo { width:72px; height:72px; flex-basis:72px; }
 .hero { min-height:640px; }.hero__content { padding:64px 0 84px; }.hero h1 { max-width:720px; }.hero .lead { font-size:18px; }
 .page-hero,.catalog-banner,.projects-intro__copy,.blog-hero__copy,.about-hero__copy { padding-block:36px; }.projects-intro .featured-project,.blog-hero__featured { grid-template-columns:minmax(0,1fr); gap:24px; }
 .about-editorial-grid,.about-space-first__grid,.about-hq__grid { grid-template-columns:minmax(0,1fr); gap:24px; }.process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }.footer-grid > div:first-child { grid-column:1/-1; }.cta-band__inner { align-items:flex-start; flex-direction:column; }.product-hero { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:620px) {
 .projects-grid,.projects-grid--home,.projects-grid--about,.card-grid--solutions { grid-template-columns:minmax(0,1fr); gap:36px; }.hero h1 { font-size:clamp(32px,8.2vw,40px); }.hero__actions { flex-direction:column; align-items:flex-start; }.button { width:fit-content; max-width:100%; }.page-hero .page-title { font-size:var(--type-h1); }
 .process-grid { grid-template-columns:minmax(0,1fr); }.process-step h3 { font-size:20px; }.about-hero__media { aspect-ratio:3/2; }.about-projects__head { display:block; }.about-projects__head .editorial-link { margin-top:24px; }
 .project-story__section,.project-story__grid,.project-facts { grid-template-columns:minmax(0,1fr); }.footer-grid { grid-template-columns:minmax(0,1fr); }.contact-grid { gap:32px; }.article-body { font-size:17px; }.product-specs div { grid-template-columns:minmax(0,1fr); gap:6px; }.product-top .breadcrumbs { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }*,*:before,*:after { animation:none !important; transition:none !important; }.reveal,[data-reveal] { opacity:1 !important; transform:none !important; }.project-card:hover img,.solution-card:hover img,.product-card:hover img { transform:none; } }
/* Final polish of the accepted system: typography and spacing only. */
.header__inner { gap:24px; }
.site-logo { width:76px; height:76px; flex-basis:76px; margin-right:20px; overflow:hidden; }
.site-logo img { transform:none; }
.nav { gap:clamp(18px,1.7vw,28px); }
.nav a { font-size:14px; letter-spacing:.035em; }
.header__actions .button { min-height:40px; padding:10px 22px; font-size:13px; }
.solution-card .card-body { padding-top:26px; }
.solution-card .card-body h2 { font-size:clamp(26px,2vw,30px); margin-bottom:16px; }
.solution-card .card-body p { font-size:18px; line-height:1.65; }
.solution-card .text-link { margin-top:22px; font-size:16px; font-weight:600; }
.card-grid--solutions { row-gap:56px; }
.projects-intro .featured-project { grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:48px; }
.projects-intro .featured-project__copy h2 { font-size:clamp(34px,3.2vw,48px); margin:16px 0; }
.projects-intro .featured-project__copy .eyebrow { font-size:13px; }
.projects-intro .featured-project__copy .project-location { font-size:16px; }
.projects-intro .featured-project__copy > p:not(.eyebrow):not(.project-location) { display:block; font-size:18px; line-height:1.6; }
.projects-intro .featured-project__copy .editorial-link { font-size:16px; margin-top:24px; }
.product-hero { grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); gap:clamp(36px,5vw,72px); }
.product-info h1 { font-size:clamp(38px,4.1vw,60px); margin:18px 0 24px; }
.product-info .eyebrow { font-size:13px; }
.product-info .lead { font-size:clamp(18px,1.6vw,23px); }
.product-official-name { font-size:16px; }
.product-status,.product-facts dt,.product-specs caption,.product-image-placeholder { font-size:14px; }
.product-specs th,.product-specs td { font-size:14px; }
.product-info > .button { margin-top:28px; font-size:14px; }
.product-top .breadcrumbs { font-size:14px; line-height:1.6; margin-bottom:36px; }
.product-section { padding:56px 0 72px; }
.product-section > h2 { margin-bottom:32px; }
.product-local-nav { margin-top:64px; font-size:14px; }
.catalog-sidebar a,.sidebar-mobile summary,.catalog-library a { font-size:14px; }
.catalog-secondary,.product-card__type,.product-card__link { font-size:14px; }
.catalog-utility a,.sidebar-category > div a,.download-library p,.category-card__link,.listing-breadcrumb,.catalog-reset,.catalog-toolbar #result-count { font-size:14px; }
.download-library a { font-size:13px; }
.blog-hero__featured h2 { font-size:clamp(30px,2.8vw,42px); margin:16px 0 20px; }
.blog-hero__featured .eyebrow { font-size:13px; line-height:1.6; }
.blog-hero__featured .editorial-link { font-size:16px; }
.article-page .container--narrow { max-width:780px; }
.article-page .page-title { font-size:clamp(34px,3.5vw,50px); margin:16px 0 24px; }
.article-page .lead { font-size:clamp(19px,1.6vw,23px); }
.article-meta { margin-top:24px; font-size:14px; }
.article-body { max-width:760px; }
.article-body h3 { font-size:var(--type-h3); }
.about-hero { padding-bottom:16px; }
.about-editorial-grid { padding-top:8px; }
.contact-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(40px,6vw,88px); padding-bottom:24px; }
.contact-grid h2 { max-width:18ch; }
.contact-grid .lead { margin-top:28px; max-width:30ch; }
.contact-list { display:flex; flex-direction:column; gap:0; }
.contact-list .contact-item { padding:28px 0; border:0; border-top:1px solid var(--color-border); }
.contact-item span { margin-bottom:12px; font-size:14px; }
.contact-item strong { display:block; font-size:clamp(28px,2.8vw,40px); line-height:1.2; letter-spacing:-.02em; }
.contact-item strong a { border:0; }
.contact-list > p { padding:28px 0; margin:0; border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); }
.contact-list > p .text-link { font-size:clamp(28px,2.8vw,40px); line-height:1.2; letter-spacing:-.02em; font-weight:700; border:0; text-decoration:none; }
.contact-list > p .text-link::after { content:none; }
.contact-list > p .text-link:hover { text-decoration:underline; text-underline-offset:6px; }
.contact-list > .button { margin-top:32px; }
.site-footer { padding-top:80px; }
.footer-grid p,.footer-col a,.footer-bottom { font-size:14px; line-height:1.6; }
.footer-col h2 { font-size:14px; letter-spacing:.06em; }
.page-hero,.catalog-banner,.products-banner,.projects-intro__copy,.blog-hero__copy,.about-hero__copy,.news-hero,.archive-hero--light { min-height:220px; padding-block:44px; display:flex; flex-direction:column; justify-content:center; }
.page-hero .lead,.projects-intro__copy .lead,.blog-hero .lead,.about-hero .lead,.news-hero .lead,.archive-hero--light .lead { max-width:780px; }
@media(min-width:1101px) {
 .page-hero,.catalog-banner,.products-banner,.projects-intro__copy,.blog-hero__copy,.about-hero__copy,.news-hero,.archive-hero--light { height:300px; }
}
@media(min-width:1101px) and (max-width:1250px) {
 :root { --header-height:76px; }
 .header__inner { gap:16px; }.site-logo { margin-right:8px; }.nav { gap:16px; }.nav a { font-size:13px; }.header__actions .button { font-size:12px; padding-inline:16px; }
}
@media(max-width:1100px) {
 :root { --header-height:76px; }
 .nav { gap:0; }.nav a { font-size:18px; letter-spacing:.04em; }
 .contact-grid { grid-template-columns:minmax(0,1fr); gap:40px; }
}
@media(max-width:860px) {
 .product-hero { grid-template-columns:minmax(0,1fr); gap:36px; }
}
@media(max-width:768px) {
 :root { --header-height:72px; }
 .site-logo { width:72px; height:72px; flex-basis:72px; margin-right:0; }
 .projects-intro .featured-project { grid-template-columns:minmax(0,1fr); gap:28px; }
 .product-info h1 { font-size:clamp(36px,8.8vw,48px); }
 .product-section { padding:40px 0 48px; }
 .page-hero,.catalog-banner,.products-banner,.projects-intro__copy,.blog-hero__copy,.about-hero__copy,.news-hero,.archive-hero--light { min-height:190px; padding-block:36px; }
 .blog-hero__featured h2 { font-size:30px; }
 .contact-grid { padding-bottom:16px; }
 .contact-list .contact-item,.contact-list > p { padding-block:24px; }
 .contact-item strong,.contact-list > p .text-link { font-size:clamp(26px,7.3vw,32px); }
 .site-footer { padding-top:56px; }
}
/* Accepted mobile concept: final touch and spacing corrections only. */
@media(max-width:620px) {
 .contact-grid { gap:32px; }
 .contact-list { margin-top:0; }
 .product-page:not(.product-page--software) .product-gallery { aspect-ratio:auto; padding:20px 36px; }
 .product-page:not(.product-page--software) .product-gallery > img { height:auto; aspect-ratio:1; }
 .product-local-nav { flex-wrap:nowrap; white-space:nowrap; gap:8px; overflow-x:auto; max-width:100%; scrollbar-width:thin; }
 .product-local-nav a { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; min-height:44px; padding:10px 8px; font-size:14px; line-height:1.4; white-space:nowrap; }
 .catalog-utility a,.sidebar-mobile > summary { min-height:44px; }
 .sidebar-category > summary,.sidebar-category > div a { min-height:44px; display:flex; align-items:center; overflow-wrap:anywhere; }
 .article-body a { overflow-wrap:anywhere; }
}
