/* Shared editorial language for material pages and the company. */
.editorial-nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:19px 0;border-block:1px solid var(--line);font-size:13px}
.editorial-nav>span{font-weight:600}.editorial-nav nav{display:flex;gap:26px}.editorial-nav a{color:var(--muted)}.editorial-nav a:hover{color:var(--ink)}
.section-index{display:block;font-size:12px;line-height:1.5;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:22px}
.editorial-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:end;margin-bottom:42px}
.editorial-heading h2{font-size:32px;line-height:1.1875;margin:0;letter-spacing:0}
.editorial-heading>p,.editorial-heading>.prose{font-size:16px;line-height:1.8;max-width:420px;margin:0}
.product-page h1,.company-page h1{font-weight:500;line-height:1.1;letter-spacing:0}
.product-hero{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;padding:34px 0 30px}
.product-hero-no-image{grid-template-columns:1fr;padding-bottom:70px}
.product-hero-copy{padding-block:12px;min-width:0}.product-hero .section-index{color:var(--muted);margin-bottom:18px}
.product-hero h1{font-size:clamp(36px,4.5vw,48px);margin-bottom:24px;overflow-wrap:anywhere;line-height:1.083333}
.product-intro{font-size:16px;line-height:1.85;max-width:590px;margin:0;color:var(--muted)}
.product-actions{display:flex;align-items:center;gap:28px;margin-top:28px;flex-wrap:wrap}
.product-actions .button,.product-request .button{font-size:14px;padding:19px 26px;min-height:58px}
.product-actions .text-link{font-size:14px}
.product-hero-visual{margin:0;min-width:0;background:var(--sage)}
.product-hero-visual>a{position:relative;display:block;overflow:hidden;aspect-ratio:1.2}
.product-hero-visual img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.product-hero-visual>a:hover img{transform:scale(1.025)}
.product-hero-visual figcaption{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;font-size:11px;line-height:1.5}
.product-hero-visual figcaption>span:last-child{letter-spacing:1px;flex-shrink:0}
.product-zoom{position:absolute;right:18px;bottom:18px;width:44px;height:44px;display:grid;place-items:center;background:var(--paper);font-size:24px;color:var(--ink)}
.product-photo-strip{display:grid;grid-template-columns:repeat(var(--photo-columns,4),minmax(0,1fr)) 1fr;gap:16px;margin-bottom:55px;max-width:800px;margin-left:auto}
.product-photo-strip>a{position:relative;display:block;aspect-ratio:1.3;background:var(--sage);overflow:hidden}
.product-photo-strip img{width:100%;height:100%;object-fit:cover}.product-photo-strip>a:not(.product-all-photos)>span{position:absolute;right:8px;bottom:4px;font-size:20px;background:var(--paper);padding:1px 5px}
.product-photo-strip .product-all-photos{padding:12px;display:flex;flex-direction:column;justify-content:center;gap:9px;background:transparent;border:1px solid var(--line)}
.product-photo-strip .product-all-photos>span{position:static;background:transparent;padding:0;color:var(--muted);font-size:12px}.product-all-photos strong{font-size:12px;font-weight:500}
.product-description{background:var(--sage);padding-block:85px}
.product-description-grid{display:grid;grid-template-columns:.8fr 1.5fr;gap:85px}
.product-description-grid>div:first-child h2{font-size:32px;letter-spacing:0;line-height:1.1875}.product-description-grid>div:first-child>p{font-size:15px;max-width:240px}
.product-prose{font-size:16px;line-height:1.95;max-width:760px}
.product-prose p{margin-bottom:24px}.product-prose h3{font-size:24px;line-height:1.4;letter-spacing:0;margin:35px 0 18px;font-weight:500}.product-prose>h3:first-child{margin-top:0}
.product-prose ul,.product-prose ol{padding-left:22px;margin:18px 0 30px}.product-prose li{padding-left:6px;margin-bottom:13px}
.product-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.product-gallery>a{position:relative;display:block;background:var(--sage);overflow:hidden;aspect-ratio:1/1.1}.product-gallery img{height:100%;width:100%;object-fit:cover;transition:transform .4s ease}.product-gallery a:hover img{transform:scale(1.025)}
.product-gallery>a:first-child:nth-last-child(4){grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.product-gallery>a:only-child{max-width:640px;grid-column:1/-1;aspect-ratio:1.3}
.product-gallery-section{padding-block:90px}
.product-request{padding:30px 0 85px}
.product-request-box{display:grid;grid-template-columns:1fr 1.15fr;background:var(--calc-bg);gap:0}
.product-request-copy{padding:52px 44px;min-width:0}.product-request-copy .section-index{color:var(--ink)}
.product-request-copy h2{font-size:32px;line-height:1.1875;overflow-wrap:anywhere;letter-spacing:0;color:var(--ink)}
.product-request-copy>p{font-size:16px;color:var(--ink);line-height:1.9;margin-bottom:22px}
.product-request-contacts{display:flex;flex-direction:column;gap:10px;padding-top:20px}.product-request-contacts a{font-size:21px;color:var(--ink)}
.product-lead-form{background:var(--paper);margin:20px;padding:32px;min-width:0}.product-lead-form h3{font-size:23px;margin-bottom:25px;letter-spacing:0}
.product-lead-form label{font-size:13px}.product-lead-form input,.product-lead-form textarea{font-size:15px;padding:12px 0}
.product-lead-form .consent{font-size:12px;line-height:1.6;margin-block:18px 25px}.product-lead-form .button{width:100%}
.product-lead-form .form-result{margin-top:15px;font-size:14px}
.company-hero{display:grid;grid-template-columns:1fr 1.2fr;gap:75px;align-items:center;padding:34px 0 60px}
.company-hero h1{font-size:clamp(36px,4.5vw,48px);margin-bottom:26px;line-height:1.083333}.company-hero>div>p{font-size:17px;line-height:1.85;max-width:480px;margin-bottom:35px}
.company-hero .button{font-size:14px;margin-right:20px}.company-hero .text-link{display:inline-flex;font-size:13px;margin-top:22px}
.company-hero figure{margin:0;position:relative}.company-hero img{width:100%;height:470px;object-fit:cover}.company-hero figcaption{position:absolute;bottom:0;left:0;right:0;padding:30px 24px 22px;color:var(--paper);font-size:12px;background:var(--dark)}
.company-overview{padding-top:10px;padding-bottom:70px}
.company-numbers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding-block:35px 45px;border-block:1px solid var(--line);gap:30px}
.company-numbers>div{border-right:1px solid var(--line);padding-right:28px}.company-numbers>div:last-child{border:0}
.company-numbers strong{display:block;font-size:clamp(45px,5vw,68px);font-weight:400;letter-spacing:-2px;line-height:1.2;margin-bottom:16px;color:var(--ink)}
.company-numbers span{font-size:13px;line-height:1.6;color:var(--muted)}
.company-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:52px;padding-top:60px}
.company-page .company-benefits article{background:var(--white);border:1px solid var(--line);padding:30px;min-width:0}
.company-benefits h2{font-size:32px;line-height:1.1875;letter-spacing:0;max-width:300px;margin-bottom:18px}.company-benefits .prose{font-size:15px;line-height:1.9}
.company-team{padding-block:50px 90px}.company-team .team-card h3{font-size:19px}.company-team .team-card p{font-size:13px;line-height:1.7}
.company-partners{padding-block:85px;background:var(--dark);color:var(--paper)}
.company-partners .editorial-heading h2{font-size:32px;line-height:1.1875}.company-partners p{color:var(--calc-bg)}.company-partners .prose{font-size:15px}
.partner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--muted);border-left:1px solid var(--muted);margin-top:50px}
.partner-grid article{padding:28px 30px;border-right:1px solid var(--muted);border-bottom:1px solid var(--muted);min-height:160px}.partner-grid .section-index{font-size:11px;margin-bottom:20px}
.partner-grid h3{font-size:21px;line-height:1.6;font-weight:500;letter-spacing:0;max-width:350px}
.company-documents{padding-block:90px}.company-document-list{border-top:1px solid var(--line)}
.company-document-group{border-bottom:1px solid var(--line)}
.company-document-group summary{list-style:none;display:flex;align-items:center;gap:24px;padding:24px 0;font-size:21px;cursor:pointer}
.company-document-group summary::-webkit-details-marker{display:none}
.company-document-group .document-count{font-size:12px;background:var(--sage);padding:6px 10px;color:var(--muted)}
.document-expand{font-size:28px;line-height:1;font-weight:400;margin-left:auto}.company-document-group[open] .document-expand{transform:rotate(45deg)}
.company-document-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:10px 0 35px}
.company-document{background:var(--sage);padding:18px;display:flex;flex-direction:column;gap:20px;min-width:0}
.company-document img{height:255px;width:100%;object-fit:contain;background:var(--paper)}
.company-document strong{display:block;font-size:13px;line-height:1.7;font-weight:500;overflow-wrap:anywhere}.company-document small{display:block;margin-top:12px;font-size:12px;color:var(--muted)}
.home-company-copy{padding-top:60px}.home-company-copy .company-overview{width:100%}
.home-hero .hero-text h1{font-size:clamp(36px,4.5vw,48px);line-height:1.083333}.home-hero .hero-meta{font-size:11px}
.image-dialog{border:0;padding:24px;width:min(1180px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 40px);background:var(--paper);color:var(--ink)}
.image-dialog::backdrop{background:var(--dark)}
.image-dialog-top,.image-dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:14px}
.image-dialog-top{padding-bottom:20px}.image-dialog-top>span{font-size:16px;max-width:75%;line-height:1.5}
.image-dialog button{font:inherit;background:transparent;border:1px solid var(--line);cursor:pointer;min-width:44px;min-height:44px;color:var(--ink)}
.image-dialog-top button{display:inline-flex;align-items:center;justify-content:center;gap:10px;flex-shrink:0;padding:10px 14px;line-height:1;white-space:nowrap}.image-dialog-close-icon{display:block;flex:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.image-dialog-stage{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:22px;align-items:center}
.image-dialog-stage img{height:min(68dvh,750px);width:100%;object-fit:contain;min-width:0}.image-dialog-stage button{font-size:22px}
.image-dialog-bottom{padding-top:18px}.image-dialog-bottom a{border-bottom:1px solid var(--line);font-size:13px}
.image-dialog button:disabled{opacity:.3;cursor:default}
@media(max-width:1100px){
 .product-hero,.company-hero{gap:40px}.product-hero h1{font-size:clamp(36px,4.5vw,48px);line-height:1.083333}.company-hero h1{font-size:clamp(36px,4.5vw,48px);line-height:1.083333}.company-hero img{height:460px}
 .product-description-grid{gap:55px}.product-request-copy{padding:38px 30px}.product-lead-form{margin:16px;padding:26px}
 .product-lead-form .form-row{grid-template-columns:1fr;gap:0}.editorial-heading{gap:45px}.company-benefits{gap:32px}.company-document-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
 .editorial-nav{display:block;padding:14px 0}.editorial-nav>span{display:none}.editorial-nav nav{gap:23px;overflow:auto;padding-bottom:3px;white-space:nowrap;font-size:12px}
 .product-hero,.company-hero{grid-template-columns:1fr;gap:30px;padding:36px 0 26px}.product-hero-copy{padding:0}.product-hero .section-index{font-size:11px;margin-bottom:18px}
 .product-hero h1{font-size:clamp(36px,4.5vw,48px);letter-spacing:0;margin-bottom:22px;line-height:1.083333}.product-intro{font-size:15px;line-height:1.85}.product-actions{margin-top:26px;gap:20px}
 .product-actions .button{padding:16px 22px;font-size:13px}.product-actions .text-link{font-size:12px}
 .product-hero-visual>a{aspect-ratio:1/1}.product-hero-visual figcaption{padding:13px 16px;font-size:10px}.product-zoom{width:38px;height:38px;font-size:21px;right:13px;bottom:13px}
 .product-photo-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:35px;max-width:none}.product-photo-strip .product-all-photos{grid-column:1/-1;aspect-ratio:auto;flex-direction:row;justify-content:space-between;padding:12px 0;border:0;border-bottom:1px solid var(--line)}
 .product-description{padding-block:50px}.product-description-grid{grid-template-columns:1fr;gap:26px}.product-description-grid>div:first-child h2{font-size:32px;margin:0;line-height:1.1875}.product-description-grid>div:first-child>p{display:none}
 .product-prose{font-size:15px;line-height:1.9}.product-prose h3{font-size:22px;line-height:1.4;margin-top:28px}.product-prose p{margin-bottom:20px}
 .section-index{font-size:11px;margin-bottom:15px}.editorial-heading{grid-template-columns:1fr;gap:20px;margin-bottom:28px}.editorial-heading h2{font-size:32px;letter-spacing:0;line-height:1.1875}.editorial-heading>p,.editorial-heading>.prose{font-size:14px;line-height:1.85;max-width:none}
 .product-gallery-section{padding-block:50px}.product-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.product-gallery>a{aspect-ratio:1/1.1}.product-gallery>a:first-child:nth-last-child(4){grid-column:1/-1;grid-row:auto;aspect-ratio:1.3}
 .product-request{padding:0 0 50px}.product-request-box{grid-template-columns:1fr}.product-request-copy{padding:30px 25px}.product-request-copy h2{font-size:32px;letter-spacing:0;line-height:1.1875}.product-request-copy>p{font-size:14px}.product-request-contacts{padding-top:5px}.product-request-contacts a{font-size:18px}
 .product-lead-form{padding:26px 22px;margin:0 14px 14px}.product-lead-form h3{font-size:21px}.product-lead-form label{font-size:12px}.product-lead-form .consent{font-size:11px}
 .company-hero h1{font-size:clamp(36px,4.5vw,48px);letter-spacing:0;line-height:1.083333}.company-hero>div>p{font-size:16px;line-height:1.85;margin-bottom:26px}.company-hero .button{font-size:13px}.company-hero img{height:360px}.company-hero figcaption{font-size:11px;padding:30px 16px 16px}
 .company-overview{padding-bottom:30px}.company-numbers{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px;padding-block:27px}.company-numbers>div{padding-right:15px}.company-numbers>div:nth-child(2){border:0}.company-numbers strong{font-size:49px;margin-bottom:10px}.company-numbers span{font-size:12px}
 .company-benefits{grid-template-columns:1fr;gap:30px;padding-top:35px}.company-benefits article{border-bottom:1px solid var(--line);padding-bottom:18px}.company-benefits h2{font-size:32px;max-width:none;line-height:1.1875}.company-benefits .prose{font-size:14px;line-height:1.9}
 .company-page .company-benefits article{padding:24px}
 .company-team{padding-block:30px 50px}.company-team .team-card h3{font-size:17px}.company-team .team-card p{font-size:12px}
 .company-partners{padding-block:50px}.company-partners .editorial-heading h2{font-size:32px;line-height:1.1875}.partner-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:30px}.partner-grid article{padding:22px 18px;min-height:150px}.partner-grid h3{font-size:17px;line-height:1.6;letter-spacing:0}.partner-grid .section-index{margin-bottom:15px}
 .company-documents{padding-block:50px}.company-document-group summary{font-size:17px;gap:14px;padding-block:20px}.company-document-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.company-document{padding:12px;gap:15px}.company-document img{height:180px}.company-document strong{font-size:12px}.company-document small{font-size:11px}
 .home-company-copy{padding-top:40px}.home-hero .hero-text h1{font-size:clamp(36px,4.5vw,48px);letter-spacing:0;line-height:1.083333}.home-hero .hero-meta{font-size:10px}
 .image-dialog{padding:15px;width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.image-dialog-top{gap:10px;padding-bottom:15px}.image-dialog-top>span{font-size:13px;max-width:65%}.image-dialog-top button{width:44px;height:44px;padding:0}.image-dialog-close-label{display:none}
 .image-dialog-stage{grid-template-columns:34px minmax(0,1fr) 34px;gap:6px}.image-dialog-stage button{min-width:34px;min-height:44px;font-size:18px}.image-dialog-stage img{height:65dvh}.image-dialog-bottom{font-size:12px;gap:15px}.image-dialog-bottom a{font-size:12px}
}
@media(max-width:430px){.product-hero h1{font-size:clamp(36px,4.5vw,48px);line-height:1.083333}.product-photo-strip{gap:8px}.partner-grid{grid-template-columns:1fr}.partner-grid article{min-height:0}.company-document-grid{grid-template-columns:1fr}.company-document img{height:300px}}
@media(prefers-reduced-motion:reduce){.product-hero-visual img,.product-gallery img{transition:none}}

.company-partners .section-index{color:var(--gold)}
.image-dialog button:disabled{opacity:1;color:var(--muted);background:var(--sage);border-color:var(--line)}

/* Project stories keep the cover within the text column's scroll boundary. */
.project-page{padding-bottom:70px}
.project-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:65px;align-items:start;padding-top:34px}
.project-layout-no-image{grid-template-columns:1fr}
.project-layout-no-image .project-copy{max-width:820px}
.project-copy{min-width:0}
.project-heading h1{font-size:clamp(36px,4.5vw,48px);line-height:1.083333;overflow-wrap:anywhere;letter-spacing:0;margin-bottom:24px}
.project-intro{font-size:16px;line-height:1.9;margin:0}
.project-description{max-width:none;margin-top:32px;padding-top:32px;border-top:1px solid var(--line)}
.project-description>:last-child{margin-bottom:0}
.project-cover{position:sticky;top:28px;align-self:start;min-width:0;margin:0}
.project-cover>a,.project-gallery>a{display:block;position:relative;background:var(--sage)}
.project-cover img{display:block;width:100%;height:auto;max-height:calc(100dvh - 56px);object-fit:cover}
.project-zoom{position:absolute;right:18px;bottom:18px;width:44px;height:44px;display:grid;place-items:center;background:var(--paper);color:var(--ink);font-size:24px}
.project-materials{margin-top:60px;padding-top:42px;border-top:1px solid var(--line)}
.project-materials .prose{max-width:none}
.project-materials h2:first-child{margin-top:0}
.project-documents{width:100%;margin-top:32px}
.project-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:55px}
.project-gallery img{width:100%;height:300px;object-fit:cover}
@media(max-width:1100px){.project-layout{gap:35px}.project-heading h1{font-size:clamp(36px,4.5vw,48px);line-height:1.083333}}
@media(max-width:760px){
 .project-page{padding-bottom:50px}.project-layout{grid-template-columns:1fr;gap:26px;padding-top:24px}
 .project-copy{display:contents}.project-heading{order:0}.project-cover{position:static;order:1}.project-description{order:2;margin-top:0;padding-top:26px;font-size:15px}
 .project-heading h1{font-size:clamp(36px,4.5vw,48px);letter-spacing:0;line-height:1.083333}.project-intro{font-size:14px}.project-cover img{max-height:none}
 .project-zoom{width:38px;height:38px;right:13px;bottom:13px;font-size:21px}
 .project-materials{margin-top:40px;padding-top:30px}.project-materials h2{font-size:32px;line-height:1.1875}
 .project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:30px}.project-gallery img{height:220px}
}
@media(max-width:430px){.project-gallery{grid-template-columns:1fr}.project-gallery img{height:300px}}

/* Homepage approach panel and two-column partner section. */
.home-company-copy .company-benefits{background:var(--white);margin-top:40px;padding:40px;gap:40px}
.partners-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:start}
.partners-copy{position:sticky;top:28px;align-self:start;min-width:0}
.partners-copy h2{font-size:32px;line-height:1.1875;margin-bottom:24px}
.partners-copy .prose{font-size:16px;line-height:1.5}.partners-copy .prose p:last-child{margin-bottom:0}
.company-partners .section-index{color:var(--gold-light)}
.partner-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.partner-list li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:18px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line)}
.partner-list .section-index{font-size:12px;line-height:1.5;margin:4px 0 0}
.partner-list h3{font-size:21px;line-height:1.4;font-weight:500;letter-spacing:0;margin:0;overflow-wrap:anywhere}
@media(max-width:1000px){.partners-layout{gap:45px}}
@media(max-width:900px){.home-company-copy .company-benefits{grid-template-columns:1fr;gap:30px}.home-company-copy .company-benefits h2{max-width:none}}
@media(max-width:700px){.home-company-copy .company-benefits{margin-top:30px;padding:24px;gap:30px}.partners-layout{grid-template-columns:1fr;gap:32px}.partners-copy{position:static}.partner-list li{padding:20px 0;gap:14px}.partner-list h3{font-size:19px}}
