/* Geitel / V1.18. Shared composition rules derived from the reviewed references.
   Désourdy: consistent grid. Snøhetta: restrained typography and open space.
   Teenage Engineering: one focal object. Velora: a photograph as the section itself. */
.edition-118{--carbon:#101719;--graphite:#192326;--white:#f5f5f0;--paper:#e7ebe7;--ink:#172125;--muted:#526168;--blue:#3b6478;--gutter:clamp(22px,4.4vw,76px);--container:1320px;background:var(--white);font-weight:400}
.edition-118 h1,.edition-118 h2,.edition-118 h3{font-weight:400;letter-spacing:-.038em;hyphens:none;overflow-wrap:break-word}
.edition-118 p{max-width:68ch;text-wrap:pretty}
.edition-118 .section{padding-block:clamp(64px,7.8vw,112px)}
.edition-118 .section.compact{padding-block:clamp(52px,6vw,80px)}
.edition-118 .eyebrow,.edition-118 .section-number{font-size:.6875rem;letter-spacing:.13em}
.edition-118 .site-header{background:#101719;border-color:#ffffff20}
.edition-118 .nav{min-height:86px}
.edition-118 .brand{width:192px;height:66px}
.edition-118 .brand-logo-nav{width:192px}
.edition-118 .nav-links{gap:24px;font-size:.8125rem}
.edition-118 .nav-links .nav-cta{background:transparent;border-color:#6b8998;padding-inline:20px}
.edition-118 .nav-links .nav-cta:hover{background:#3b6478}
.edition-118 .btn{border-radius:0;padding:15px 22px;font-size:.875rem;min-height:52px;gap:28px}
.edition-118 .btn-primary,.edition-118 .quote-band .btn{background:#3b6478}
.edition-118 .btn-primary:hover,.edition-118 .quote-band .btn:hover{background:#2e5264}
.edition-118 .text-link{line-height:1.5;min-height:44px;font-size:.875rem;text-align:left}
.edition-118 .hero-refined{background:#101719;padding-top:clamp(52px,6.4vw,90px)}
.edition-118 .hero-refined .hero-shell{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(32px,5vw,76px);padding-bottom:64px}
.edition-118 .hero-refined h1{font-size:clamp(2.65rem,4.5vw,4.4rem);line-height:1.05;letter-spacing:-.045em}
.edition-118 .hero-refined h1 .accent{color:#b0c3ca;margin-top:10px}
.edition-118 .hero-refined .hero-kicker{margin-bottom:32px;font-size:.6875rem}
.edition-118 .hero-refined .lead{max-width:53ch;font-size:1.0625rem;line-height:1.75;margin-top:32px;color:#e5ebed}
.edition-118 .hero-options{max-width:49ch;font-size:.9375rem;color:#bdcacf;line-height:1.75;margin-top:18px}
.edition-118 .hero-refined .actions{margin-top:32px}
.edition-118 .hero-refined .hero-brand{max-width:530px;width:100%;background:radial-gradient(ellipse at center,#718e971c,transparent 67%)}
.edition-118 .hero-refined .hero-g{inset:16%;width:68%;height:68%;opacity:1}
.edition-118 .hero-refined .cad-lines{opacity:.54;color:#a1bdc8}
.edition-118 .cad-caption{bottom:-14px;letter-spacing:.24em;font-size:.625rem;color:#8da6b2}
.cad-corner{position:absolute;width:22px;height:22px;border-color:#8ba8b65e;border-style:solid;pointer-events:none}
.corner-tl{top:0;left:0;border-width:1px 0 0 1px}.corner-br{bottom:0;right:0;border-width:0 1px 1px 0}
.edition-118 .hero-proof{padding-block:14px;color:#a9bdc6;font-size:.75rem;border-color:#ffffff26}
.edition-118 .hero-proof a{font-size:.75rem}
/* A single spine aligns section titles, descriptions and service rows. */
.edition-118 .editorial-heading{grid-template-columns:minmax(120px,.46fr) minmax(0,1fr);gap:40px;margin-bottom:56px}
.edition-118 .editorial-heading h2{font-size:clamp(2.15rem,3.5vw,3.45rem);line-height:1.1;max-width:25ch}
.edition-118 .editorial-heading p{max-width:49ch;font-size:1rem;line-height:1.75;margin-top:24px}
.edition-118 .service-row,.edition-118 .home-services .service-row{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr) 26px;gap:40px;align-items:center;padding:29px 0;border-color:#a7b5b6}
.edition-118 .service-row h3,.edition-118 .home-services .service-row h3{font-size:clamp(1.25rem,1.8vw,1.6rem);line-height:1.25;max-width:26ch}
.edition-118 .service-row p{font-size:.9375rem;line-height:1.65;max-width:51ch}
.edition-118 .service-row:hover{background:#e7ece8}
.edition-118 .service-arrow{font-size:1.35rem}
/* Wide photography: foreground copy sits at the bottom, leaving the work visible. */
.edition-118 .photo-scene{background:#101719}
.edition-118 .scene-panorama{min-height:680px;padding:340px 0 64px;align-items:flex-end}
.edition-118 .scene-panorama>.scene-image{width:100%;height:100%;max-height:none;inset:0}
.edition-118 .scene-panorama>.scene-image img{object-position:50% 48%}
.edition-118 .scene-panorama::after{background:linear-gradient(0deg,rgba(8,17,22,.96),rgba(8,17,22,.68) 29%,rgba(8,17,22,.04) 70%)}
.edition-118 .scene-panorama .scene-copy{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:clamp(40px,8vw,120px);width:100%;max-width:none;align-items:start}
.edition-118 .scene-panorama h2{grid-column:1;grid-row:1/3;font-size:clamp(2.3rem,3.7vw,3.5rem);max-width:23ch;margin:0}
.edition-118 .scene-panorama p{grid-column:2;max-width:45ch;line-height:1.75;font-size:1rem}
.edition-118 .scene-panorama .text-link{grid-column:2;justify-self:start;margin-top:18px}
/* References are real names on a calm reading surface, not oversized marketing headings. */
.edition-118 .references-home{background:#e7ebe7;color:#172125;border:0}
.edition-118 .references-editorial{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:clamp(40px,8vw,120px);align-items:start}
.edition-118 .reference-heading .eyebrow{color:#4a6978;margin-bottom:28px}
.edition-118 .reference-heading h2{font-size:clamp(2rem,3.1vw,3rem);max-width:16ch;line-height:1.15}
.edition-118 .reference-heading .text-link{margin-top:30px;max-width:100%}
.home-reference-list{list-style:none;padding:0;margin:0;border-top:1px solid #9eafb0}
.home-reference-list li{padding:16px 0;border-bottom:1px solid #b8c4c2;font-size:clamp(1rem,1.6vw,1.35rem);line-height:1.4;letter-spacing:-.015em;overflow-wrap:anywhere}
/* Portraits: image occupies its own half of the background, faces are not shaded by copy. */
.edition-118 .scene-paper{background:#f5f5f0;color:#172125;min-height:640px;padding:100px 0}
.edition-118 .scene-paper>.scene-image{width:50%;inset:0 auto 0 0;max-height:none}
.edition-118 .scene-paper>.scene-image img{object-position:center 42%}
.edition-118 .scene-paper::after{display:none}
.edition-118 .scene-paper .scene-copy{width:43%;margin-left:auto;max-width:510px;padding:0}
.edition-118 .scene-paper h2{font-size:clamp(2rem,3.4vw,3.3rem);line-height:1.12;margin-bottom:26px;max-width:18ch}
.edition-118 .scene-paper p,.edition-118 .scene-paper .lead{color:#526168;line-height:1.8;font-size:1rem;max-width:43ch}
.edition-118 .scene-paper .text-link{color:#294e60;margin-top:26px}
.edition-118 .scene-paper a:focus-visible{outline-color:#3b6478}
/* Supporting pages: distinct image area, consistent reading widths. */
.edition-118 .page-hero.photo-scene:not(.scene-people){min-height:570px;padding:56px 0 64px}
.edition-118 .page-hero.photo-scene:not(.scene-people) .scene-copy{width:49%;max-width:650px;padding:0}
.edition-118 .page-hero.photo-scene:not(.scene-people)>.scene-image{width:56%;left:auto;right:0;height:100%;max-height:none}
.edition-118 .page-hero.photo-scene:not(.scene-people)::after{background:linear-gradient(90deg,#101719 0%,#101719 42%,rgba(16,23,25,.94) 47%,rgba(16,23,25,.18) 63%,transparent 78%)}
.edition-118 .page-hero.photo-scene h1{font-size:clamp(2.2rem,3.45vw,3.4rem);line-height:1.14;max-width:21ch}
.edition-118 .page-hero.photo-scene .lead{font-size:1rem;line-height:1.8;max-width:49ch}
.edition-118 .page-hero .breadcrumbs{font-size:.75rem;margin-bottom:38px}
.edition-118 .page-hero .eyebrow{margin-bottom:20px}
.edition-118 .page-hero.scene-quiet:not(.scene-people){min-height:430px}
.edition-118 .page-hero.scene-people{min-height:780px;padding:420px 0 60px}
.edition-118 .page-hero.scene-people h1{font-size:clamp(2.5rem,4.1vw,4rem);max-width:15ch}
.edition-118 .page-hero.scene-people .scene-copy{gap:12px 70px}
.edition-118 .page-hero.scene-people::after{background:linear-gradient(0deg,#101719,rgba(16,23,25,.94) 27%,transparent 64%)}
.edition-118 .text-grid,.edition-118 .company-story{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(40px,8vw,116px)}
.edition-118 .company-story{grid-template-columns:minmax(0,.8fr) minmax(0,1.25fr)}
.edition-118 .prose{max-width:64ch}
.edition-118 .prose p,.edition-118 .prose li{line-height:1.8;font-size:1rem}
.edition-118 .project-start{background:transparent;border-top:1px solid #708b99;padding:28px 0 0}
.edition-118 .project-start h2{font-size:1.35rem;letter-spacing:-.025em;margin-bottom:24px}
.edition-118 .project-start dl>div{display:grid;grid-template-columns:95px minmax(0,1fr);gap:20px;padding:18px 0}
.edition-118 .project-start dd{margin:0;font-size:.875rem}
.edition-118 .project-start dt{font-size:.8125rem}
.edition-118 .scope-note{background:#e7ebe7;padding:18px 0}
.edition-118 .scope-note p{font-size:.8125rem}
.edition-118 .related-services{gap:40px}
.edition-118 .related-service h3{font-size:1.25rem}
.edition-118 .related-service p{font-size:.875rem;line-height:1.75}
.edition-118 .buying-guide{background:#e7ebe7;padding-block:76px}
.edition-118 .guide-heading{align-items:baseline;gap:32px;margin-bottom:36px}
.edition-118 .guide-heading h2{font-size:2rem}
.edition-118 .knowledge-teaser a{grid-template-columns:minmax(0,1fr) 100px;gap:32px;padding-block:24px}
.edition-118 .knowledge-teaser h3{font-size:1.15rem;line-height:1.45;letter-spacing:-.02em;max-width:65ch}
.edition-118 .knowledge-teaser .ktag{font-size:.6875rem}
.edition-118 .quote-band{background:#19272d;color:#f5f5f0;padding-block:clamp(64px,7vw,100px)}
.edition-118 .quote-band-inner{grid-template-columns:minmax(0,1fr) auto;gap:56px;align-items:center}
.edition-118 .quote-band h2{font-size:clamp(2rem,3.1vw,3rem);max-width:28ch;line-height:1.15}
.edition-118 .quote-band p{max-width:60ch;color:#becbd1;font-size:.9375rem;line-height:1.8;margin-top:22px}
.edition-118 .quote-band .btn{background:#e7ebe7;color:#172125;white-space:normal;max-width:100%}
.edition-118 .quote-band .btn:hover{background:#fff}
.edition-118 .footer-compact{background:#101719;padding-top:52px}
.edition-118 .footer-compact .footer-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.7fr)}
.edition-118 .footer-compact .footer-statement{font-size:1.05rem}
.edition-118 .footer-trust{margin-top:24px}
.edition-118 .footer-compact .footer-col a,.edition-118 .footer-compact .footer-col>span{font-size:.8125rem}
.edition-118 .footer-bottom{font-size:.6875rem}
.edition-118 .certificate-paper{padding:14px;box-shadow:0 10px 30px #17202412;transition:none}
.edition-118 .certificate-paper:hover{transform:none}
.edition-118 .certificate-copy h2{font-size:clamp(2rem,3vw,2.9rem)}
.edition-118 .certificate-facts>div{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr)}
.edition-118 .contact-panel{border:0;padding:36px;background:#e7ebe7}
.edition-118 .contact-panel.dark{background:#19272d}
.edition-118 .form-shell{border:0;background:#fff}
.edition-118 .form-head{background:#e7ebe7}
.edition-118 .form-section{padding-block:36px}
.edition-118 .field input,.edition-118 .field select,.edition-118 .field textarea{border-radius:0}
@media(max-width:1100px){.edition-118 .nav-links{gap:16px}.edition-118 .hero-refined .hero-shell{gap:24px}.edition-118 .hero-refined h1{font-size:clamp(2.5rem,4.5vw,3.5rem)}.edition-118 .references-editorial{gap:48px}}
@media(max-width:900px){.edition-118 .footer-compact .footer-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}}
@media(max-width:800px){
 .edition-118 .nav{min-height:78px}
 .edition-118 .hero-refined{padding-top:42px}
 .edition-118 .hero-refined .hero-shell{display:block;padding-bottom:36px}
 .edition-118 .hero-refined .hero-copy{max-width:620px}
 .edition-118 .hero-refined h1{font-size:clamp(2.1rem,6.4vw,3.35rem);line-height:1.1}
 .edition-118 .hero-refined .hero-kicker{margin-bottom:27px}
 .edition-118 .hero-refined .hero-brand{position:absolute;top:-24px;right:-155px;width:490px;max-width:none;opacity:.22}
 .edition-118 .hero-refined .hero-g{opacity:.7}
 .edition-118 .cad-corner,.edition-118 .cad-caption{display:none}
 .edition-118 .hero-refined .lead{max-width:52ch;font-size:1rem;margin-top:26px}
 .edition-118 .hero-options{max-width:52ch}
 .edition-118 .hero-proof{gap:4px;padding-block:14px}
 .edition-118 .editorial-heading,.edition-118 .references-editorial,.edition-118 .text-grid,.edition-118 .company-story{grid-template-columns:minmax(0,1fr);gap:28px}
 .edition-118 .editorial-heading{margin-bottom:38px}
 .edition-118 .editorial-heading h2{font-size:clamp(2rem,5.6vw,2.8rem)}
 .edition-118 .service-row,.edition-118 .home-services .service-row{grid-template-columns:minmax(0,1fr) 24px;gap:14px 20px;padding:25px 0}
 .edition-118 .service-row .service-description{grid-column:1;max-width:55ch}
 .edition-118 .service-row .service-arrow{grid-column:2;grid-row:1}
 .edition-118 .scene-panorama{min-height:590px;padding:280px 0 44px}
 .edition-118 .scene-panorama .scene-copy{display:block;padding:0}
 .edition-118 .scene-panorama h2{font-size:clamp(2rem,6vw,2.8rem);margin-bottom:22px}
 .edition-118 .scene-panorama p{max-width:45ch;font-size:.9375rem}
 .edition-118 .scene-panorama::after{background:linear-gradient(0deg,#101719 0%,rgba(16,23,25,.9) 27%,rgba(16,23,25,.35) 56%,transparent 85%)}
 .edition-118 .scene-panorama>.scene-image img{object-position:46% center}
 .edition-118 .reference-heading h2{max-width:25ch}
 .edition-118 .reference-heading .eyebrow{margin-bottom:20px}
 .edition-118 .reference-heading .text-link{margin-top:20px}
 .edition-118 .home-reference-list{margin-top:8px}
 .edition-118 .scene-paper{padding:0 0 48px;min-height:0;display:block}
 .edition-118 .scene-paper>.scene-image{position:relative;inset:auto;width:100%;height:clamp(360px,80vw,520px);max-height:none}
 .edition-118 .scene-paper>.scene-image img{object-position:center 38%}
 .edition-118 .scene-paper .scene-layout{padding-top:40px}
 .edition-118 .scene-paper .scene-copy{width:100%;max-width:580px;margin:0}
 .edition-118 .scene-paper h2{font-size:2.2rem;max-width:24ch}
 .edition-118 .page-hero.photo-scene:not(.scene-people){display:block;padding:clamp(230px,48vw,330px) 0 44px;min-height:0}
 .edition-118 .page-hero.photo-scene:not(.scene-people)>.scene-image{inset:0;width:100%;height:clamp(340px,70vw,510px)}
 .edition-118 .page-hero.photo-scene:not(.scene-people)::after{background:linear-gradient(0deg,#101719 0%,#101719 24%,rgba(16,23,25,.84) 47%,rgba(16,23,25,0) 78%)}
 .edition-118 .page-hero.photo-scene:not(.scene-people) .scene-copy{width:100%;max-width:620px;padding:20px 0 0}
 .edition-118 .page-hero.photo-scene h1{font-size:clamp(2rem,5.6vw,2.8rem);max-width:24ch;line-height:1.17}
 .edition-118 .page-hero .breadcrumbs{margin-bottom:24px}
 .edition-118 .page-hero.scene-quiet:not(.scene-people){padding-top:180px}
 .edition-118 .page-hero.scene-quiet:not(.scene-people)>.scene-image{height:330px}
 .edition-118 .page-hero.scene-people{padding:clamp(260px,48vw,400px) 0 48px;min-height:0}
 .edition-118 .page-hero.scene-people .scene-copy{display:block;padding:20px 0 0}
 .edition-118 .page-hero.scene-people h1{max-width:25ch;font-size:2.5rem;margin-bottom:24px}
 .edition-118 .page-hero.scene-people .lead{margin-top:20px}
 .edition-118 .page-hero.scene-people::after{background:linear-gradient(0deg,#101719 0%,#101719 28%,rgba(16,23,25,.9) 50%,transparent 76%)}
 .edition-118 .project-start{margin-top:16px}
 .edition-118 .buying-guide{padding-block:60px}
 .edition-118 .quote-band-inner{grid-template-columns:minmax(0,1fr);gap:30px}
 .edition-118 .quote-band .btn{justify-self:start}
 .edition-118 .certificate-facts>div{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr)}
}
@media(max-width:600px){
 .edition-118 .footer-compact .footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .edition-118 .knowledge-teaser a{grid-template-columns:minmax(0,1fr);gap:10px}
 .edition-118 .knowledge-teaser .ktag{grid-column:1;text-align:left}
 .edition-118 .scene-paper>.scene-image{height:410px}
 .edition-118 .hero-refined .actions{gap:16px 22px}
 .edition-118 .hero-refined h1{font-size:clamp(1.95rem,7.8vw,2.8rem)}
 .edition-118 .hero-refined .hero-brand{right:-175px;width:450px}
 .edition-118 .guide-heading h2{font-size:1.8rem}
 .edition-118 .project-start dl>div{grid-template-columns:minmax(0,1fr);gap:6px}
 .edition-118 .contact-panel{padding:28px 22px}
 .edition-118 .certificate-facts>div{grid-template-columns:minmax(0,1fr);gap:7px}
 .edition-118 .quote-band .btn{width:auto}
}
@media(max-width:380px){.edition-118 .brand{width:164px}.edition-118 .brand-logo-nav{width:164px}.edition-118 .footer-compact .footer-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.edition-118 *{scroll-behavior:auto!important}.edition-118 .service-row:hover .service-arrow{transform:none}}
@media print{.edition-118 .hero-refined{background:#fff;color:#111}.edition-118 .hero-refined .lead,.edition-118 .hero-options{color:#111}.edition-118 .photo-scene>.scene-image{display:none}.edition-118 .photo-scene,.edition-118 .page-hero.photo-scene{background:#fff;color:#111;min-height:0;padding:24px 0}.edition-118 .photo-scene::after{display:none}.edition-118 .photo-scene .scene-copy{width:100%}.edition-118 .photo-scene p,.edition-118 .photo-scene .lead{color:#333}}

/* Final direction: genuine welding photography replaces the G/CAD hero entirely. */
.edition-118 .hero-photographic{position:relative;isolation:isolate;padding-top:clamp(60px,7vw,102px);background:#101719}
.hero-photographic>.hero-background{position:absolute;inset:0;width:100%;height:100%;max-height:none;z-index:0;pointer-events:none}
.hero-photographic>.hero-background img{object-fit:cover;object-position:68% 48%;width:100%;height:100%}
.hero-photographic::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(8,15,19,.95),rgba(8,15,19,.9) 32%,rgba(8,15,19,.7) 49%,rgba(8,15,19,.2) 75%,rgba(8,15,19,.12)),linear-gradient(0deg,rgba(8,15,19,.9),transparent 22%)}
.edition-118 .hero-photographic .hero-shell{display:block;position:relative;z-index:2;padding-bottom:62px;min-height:540px}
.edition-118 .hero-photographic .hero-copy{max-width:650px}
.edition-118 .hero-photographic h1{font-size:clamp(2.65rem,4.6vw,4.4rem);line-height:1.07;text-shadow:0 2px 18px #07101620}
.edition-118 .hero-photographic h1 .accent{color:#d0dde2}
.edition-118 .hero-photographic .lead{max-width:52ch}
.edition-118 .hero-photographic .hero-options{color:#d0dbe0;max-width:49ch}
.edition-118 .hero-photographic>.container{position:relative;z-index:2}
.edition-118 .hero-photographic .hero-proof{border-color:#bbcbd84d;color:#d0dbe0}
.edition-118 .hero-photographic .hero-proof a{color:#e1edf3}
@media(max-width:1050px) and (min-width:801px){.edition-118 .hero-photographic .hero-copy{max-width:580px}.hero-photographic::after{background:linear-gradient(90deg,rgba(8,15,19,.96),rgba(8,15,19,.87) 49%,rgba(8,15,19,.45) 76%,rgba(8,15,19,.2)),linear-gradient(0deg,rgba(8,15,19,.9),transparent 22%)}}
@media(max-width:800px){
 .edition-118 .hero-photographic{padding-top:230px}
 .hero-photographic>.hero-background{height:530px}
 .hero-photographic>.hero-background img{object-position:73% 35%}
 .hero-photographic::after{background:linear-gradient(0deg,#101719 0%,#101719 32%,rgba(16,23,25,.94) 50%,rgba(16,23,25,.5) 73%,rgba(16,23,25,.08) 95%)}
 .edition-118 .hero-photographic .hero-shell{min-height:0;padding-bottom:30px}
 .edition-118 .hero-photographic .hero-copy{max-width:610px}
 .edition-118 .hero-photographic h1{font-size:clamp(2.1rem,6.4vw,3.35rem);line-height:1.12}
 .edition-118 .hero-photographic .hero-kicker{margin-bottom:24px}
}
@media(max-width:600px){.edition-118 .hero-photographic{padding-top:195px}.hero-photographic>.hero-background{height:440px}.edition-118 .hero-photographic h1{font-size:clamp(1.95rem,7.8vw,2.8rem)}.hero-photographic::after{background:linear-gradient(0deg,#101719 0%,#101719 42%,rgba(16,23,25,.94) 62%,rgba(16,23,25,.45) 83%,rgba(16,23,25,.05) 98%)}}
@media print{.hero-photographic>.hero-background,.hero-photographic::after{display:none}.edition-118 .hero-photographic{padding-top:24px}.edition-118 .hero-photographic .hero-shell{min-height:0}.edition-118 .hero-photographic h1 .accent,.edition-118 .hero-photographic .hero-options{color:#222}}

/* V1.19: restrained partner strip and carefully positioned replacement photographs. */
.partner-banner{background:#f5f5f0;color:#172126;padding:28px 0 32px;border-bottom:1px solid #d9dddd}
.partner-banner-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.edition-118 .partner-banner-heading h2{font-size:1rem;line-height:1.5;letter-spacing:0;font-weight:400;margin:0;color:#43535b}
.partner-motion{border:0;border-bottom:1px solid #96a2a7;background:transparent;color:#253e4b;font:inherit;font-size:.8125rem;line-height:1.4;min-height:44px;padding:8px 0;white-space:nowrap;cursor:pointer}
.partner-motion[hidden]{display:none}
.partner-motion:focus-visible{outline:2px solid #3b6478;outline-offset:5px}
.partner-track{width:100%}
.partner-group{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:30px 40px;list-style:none;margin:0;padding:0}
.partner-group-copy{display:none}
.partner-logo{display:flex;flex:none;align-items:center;justify-content:center;width:180px;height:90px;margin:0;padding:0;overflow:hidden}
.partner-logo img{display:block;width:170px;height:72px;max-width:100%;object-fit:contain;flex:none}
.partner-logo--grahn img,.partner-logo--vrj img{filter:brightness(0)}
.partner-logo--sku img{width:142px;height:60px}
.partner-logo--colliers img{width:125px;height:72px}
.partner-logo--lmp img{width:240px;max-width:none;height:240px;mix-blend-mode:multiply}
.partner-banner[data-animated="true"] .partner-viewport{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent)}
.partner-banner[data-animated="true"] .partner-track{display:flex;width:max-content;animation:partner-scroll 38s linear infinite}
.partner-banner[data-animated="true"] .partner-group{display:flex;flex-wrap:nowrap;flex:none;justify-content:flex-start;gap:72px;padding-right:72px}
.partner-banner[data-paused="true"] .partner-track{animation-play-state:paused}
@media(hover:hover){.partner-banner .partner-viewport:hover .partner-track{animation-play-state:paused}}
@keyframes partner-scroll{to{transform:translateX(-50%)}}
.edition-118 .home-quality-link{margin:32px 0 0;font-size:.8125rem;line-height:1.7;color:#465961}
.home-quality-link a{display:inline-block;padding:12px 0;text-underline-offset:5px}
.edition-118 .scene-contact-office>.scene-image img{object-position:51% 44%}
.edition-118 .scene-onsite-welding>.scene-image img{object-position:50% 45%}
.edition-118 [data-photo="valmis-terasporras"] img{object-position:center 52%}
@media(max-width:600px){
 .partner-banner{padding:20px 0 24px}
 .partner-banner-heading{align-items:flex-start;gap:12px;margin-bottom:8px}
 .edition-118 .partner-banner-heading h2{max-width:24ch;font-size:.875rem}
 .partner-motion{font-size:.75rem;min-width:94px;padding-top:0}
 .partner-group{justify-content:center;gap:20px}
 .partner-logo{width:150px;height:80px}
 .partner-logo img{width:145px;height:65px}
 .partner-logo--sku img{width:130px;height:55px}
 .partner-logo--colliers img{width:108px;height:62px}
 .partner-logo--lmp img{width:216px;height:216px}
 .partner-banner[data-animated="true"] .partner-group{gap:36px;padding-right:36px}
 .edition-118 .scene-contact-office>.scene-image img{object-position:center 37%}
 .edition-118 .scene-onsite-welding>.scene-image img{object-position:center 37%}
}
@media(prefers-reduced-motion:reduce){
 .partner-banner[data-animated="true"] .partner-track{animation:none;display:block;width:100%}
 .partner-banner[data-animated="true"] .partner-viewport{overflow:visible;mask-image:none}
 .partner-banner[data-animated="true"] .partner-group{flex-wrap:wrap;padding:0;justify-content:center;gap:24px}
 .partner-banner .partner-group-copy{display:none!important}
 .partner-motion{display:none}
}
@media print{.partner-banner .partner-track{animation:none!important;width:100%!important;display:block!important}.partner-banner .partner-group{flex-wrap:wrap!important;padding:0!important}.partner-banner .partner-viewport{overflow:visible!important;mask-image:none!important}.partner-banner .partner-group-copy,.partner-motion{display:none!important}}
/* Grahn's supplied logo has an opaque black background, unlike the SVG marks. */
.partner-logo--grahn img{filter:invert(1);mix-blend-mode:multiply}

/* V1.20: services shown alongside a full-height work photograph. */
.service-offer{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,80px);align-items:stretch}
.service-offer-image{position:relative;isolation:isolate;min-height:620px;overflow:hidden;background:#152026}
.service-offer-image>.service-backdrop{position:absolute;inset:0;height:100%}
.service-offer-image .service-backdrop img{object-position:52% 47%}
.service-offer-image::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0c171ced,transparent 52%);pointer-events:none}
.service-image-caption{position:absolute;bottom:36px;left:clamp(24px,3vw,44px);right:24px;z-index:1;font-size:clamp(1.4rem,2.3vw,2rem);line-height:1.2;letter-spacing:-.025em;color:#fff}
.edition-118 .service-offer .service-row{grid-template-columns:minmax(0,1fr) 26px;gap:12px 24px;padding:25px 0;align-items:start}
.edition-118 .service-offer .service-row .service-description{grid-column:1;margin:0;max-width:52ch}
.edition-118 .service-offer .service-row .service-arrow{grid-column:2;grid-row:1;padding-top:3px}
.edition-118 .service-offer .service-row h3{font-size:clamp(1.25rem,1.7vw,1.5rem);max-width:30ch}
.partner-viewport:focus-visible{outline:2px solid #3b6478;outline-offset:8px}
.partner-viewport:focus-within .partner-track{animation-play-state:paused}
/* A native player keeps playback, sound, fullscreen and keyboard controls familiar. */
.origin-film{margin:56px 0 0}
.origin-film video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#0b1013;object-fit:contain}
.origin-film video:focus-visible{outline:3px solid #547e92;outline-offset:5px}
.origin-film figcaption{display:flex;justify-content:space-between;gap:16px;padding-top:18px;font-size:.875rem;line-height:1.5;color:#536269}
.origin-film figcaption>span:last-child{white-space:nowrap}
.edition-118 .scene-contact-detail>.scene-image img{object-position:70% 55%}
/* Team names lead, while role labels may wrap without squeezing email addresses. */
.team-grid-updated{grid-template-columns:repeat(4,minmax(0,1fr));gap:44px 32px}
.team-grid-updated .person h3{margin:0 0 12px}
.team-grid-updated .person .role{min-height:3em;max-width:27ch;margin-bottom:16px}
.contact-layout{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(36px,5vw,80px);align-items:start}
.contact-company>p{color:#d1dbe0;line-height:1.75}
.contact-company .actions{margin:28px 0 32px}
.contact-company .contact-line{grid-template-columns:1fr;gap:8px}
.contact-people{min-width:0}
.edition-118 .contact-people>h2{font-size:clamp(1.8rem,2.5vw,2.5rem);line-height:1.15;margin:0 0 40px;max-width:24ch}
.contact-person-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 32px}
.contact-person{min-width:0;border-top:1px solid #aebbbd;padding-top:24px}
.contact-person .eyebrow{font-size:.6875rem;letter-spacing:.08em;margin-bottom:16px}
.contact-person h3{font-size:1.5rem;margin-bottom:8px;line-height:1.25}
.contact-person p{font-size:.9375rem;line-height:1.65;color:#465860;margin:16px 0}
.contact-person .contact-role{font-size:.8125rem;line-height:1.5;margin-top:0;min-height:3em}
.contact-person-links{margin-top:20px}
.contact-person-links a{display:block;width:fit-content;max-width:100%;min-height:44px;padding:8px 0;color:#355b70;font-size:.9375rem;overflow-wrap:anywhere;text-underline-offset:4px}
.contact-person-links a:hover{text-decoration:underline}
.contact-installation{margin-top:44px;border-top:1px solid #aebbbd;padding-top:26px}
.contact-installation h3{font-size:1.25rem;margin-bottom:16px}
.contact-installation p{line-height:1.9;margin:16px 0;font-size:.9375rem;max-width:60ch}
.contact-installation p span{color:#465860}
@media(max-width:1100px){.team-grid-updated{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-layout{grid-template-columns:minmax(0,1fr)}.contact-company{max-width:none}.contact-company .contact-line{grid-template-columns:150px minmax(0,1fr);gap:20px}.service-offer{gap:32px}}
@media(max-width:800px){.service-offer{grid-template-columns:minmax(0,1fr);gap:28px}.service-offer-image{min-height:0;aspect-ratio:4/3;max-height:520px}.service-offer-image .service-backdrop img{object-position:center 48%}.origin-film{margin-top:36px}.origin-film figcaption{flex-wrap:wrap;font-size:.8125rem}.edition-118 .scene-contact-detail>.scene-image img{object-position:65% center}}
@media(max-width:600px){.contact-person-grid,.team-grid-updated{grid-template-columns:minmax(0,1fr);gap:30px}.contact-person .contact-role,.team-grid-updated .person .role{min-height:0}.contact-person-links{margin-top:12px}.contact-company .contact-line{grid-template-columns:minmax(0,1fr);gap:8px}.service-image-caption{bottom:26px}.origin-film figcaption{gap:6px}.origin-film figcaption span{width:100%}}
@media print{.service-offer{display:block}.service-offer-image{display:none}.origin-film video{max-height:250px}.contact-layout{display:block}.contact-person-grid{grid-template-columns:1fr 1fr}.contact-company{break-inside:avoid}}

/* V1.21: a single photographic service section replaces the detached photo column. */
.services-scene{position:relative;isolation:isolate;overflow:hidden;background:#101c22;color:#fff;padding:clamp(64px,7vw,110px) 0}
.services-scene>.services-scene-background{position:absolute;inset:0;height:100%;width:100%;z-index:-2}
.services-scene-background img{object-fit:cover;object-position:36% 48%}
.services-scene::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,21,28,.5) 0%,rgba(9,21,28,.62) 36%,rgba(9,21,28,.95) 61%,#09151cf5),linear-gradient(180deg,#09151cd1,transparent 43%,#09151c33)}
.services-scene-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(48px,7vw,120px);align-items:start}
.services-scene-intro{max-width:470px}
.services-scene .eyebrow{color:#c6dce6;margin-bottom:24px}
.edition-118 .services-scene h2{font-size:clamp(2rem,3.2vw,3.4rem);line-height:1.14;max-width:19ch;margin:0 0 28px;color:#fff}
.services-scene-intro>p{max-width:36ch;color:#e0e7eb;font-size:1rem;line-height:1.8}
.service-scene-links{border-top:1px solid #8aa1ac70}
.service-scene-link{display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:24px;align-items:center;padding:24px 8px 24px 0;border-bottom:1px solid #8aa1ac70;color:#fff;transition:background-color .2s}
.edition-118 .service-scene-link h3{font-size:clamp(1.125rem,1.45vw,1.375rem);line-height:1.35;letter-spacing:-.025em;margin:0 0 8px;color:#fff}
.service-scene-link p{font-size:.875rem;line-height:1.65;color:#d0dee4;margin:0;max-width:46ch}
.service-scene-link>span{font-size:1.75rem;color:#b9d5e4;line-height:1}
.service-scene-link:hover{background:#ffffff0d}
.service-scene-link:focus-visible{outline:2px solid #c0e1ef;outline-offset:5px;background:#ffffff0d}
.edition-118 .services-scene .home-quality-link{margin:18px 0 0;color:#d0dee4;font-size:.75rem;line-height:1.7}
/* Compact, deliberately bounded video left of the story text on desktop. */
.origin-story-layout{display:grid;grid-template-columns:minmax(0,420px) minmax(0,620px);gap:clamp(44px,7vw,110px);align-items:center;justify-content:center}
.origin-story-layout>.origin-film{margin:0;width:100%;max-width:420px}
.origin-story-layout .origin-film video{width:100%;aspect-ratio:16/9;height:auto;box-shadow:0 18px 55px #13262e1a}
.origin-story-copy{min-width:0}
.edition-118 .origin-story-copy h2{font-size:clamp(2rem,3vw,3rem);max-width:19ch;line-height:1.15;margin:18px 0 26px}
.origin-story-copy>p{font-size:1rem;line-height:1.8}
/* Fade the team photograph into the paper background without obscuring faces. */
.edition-118 .team-responsibility{padding:90px 0;min-height:640px}
.edition-118 .team-responsibility>.scene-image{width:58%;mask-image:linear-gradient(90deg,#000 0%,#000 55%,transparent 100%)}
.edition-118 .team-responsibility>.scene-image img{object-position:38% 40%}
.edition-118 .team-responsibility .scene-copy{width:44%;max-width:560px}
.edition-118 .team-responsibility .scene-copy p{max-width:46ch;font-size:.9375rem;line-height:1.85;margin:22px 0}
.edition-118 .team-responsibility .eyebrow{color:#536a74;margin-bottom:22px}
.edition-118 .team-responsibility h2{font-size:clamp(2rem,3.2vw,3.2rem);max-width:19ch}
.team-grid-updated .person .role{min-height:0;margin-bottom:9px;color:#294451;font-size:.875rem}
.team-grid-updated .person .person-responsibility{font-size:.8125rem;line-height:1.65;color:#53656e;min-height:3.3em;max-width:28ch;margin:0 0 18px}
.team-grid-updated .person h3{font-size:clamp(1.3rem,1.65vw,1.5rem);line-height:1.35}
@media(max-width:1050px){.services-scene-layout{gap:40px}.origin-story-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px}.edition-118 .team-responsibility .scene-copy{width:48%}.edition-118 .team-responsibility>.scene-image{width:56%}}
@media(max-width:800px){
 .services-scene{padding:52px 0 44px}
 .services-scene-layout{grid-template-columns:minmax(0,1fr);gap:38px}
 .services-scene>.services-scene-background{height:440px;inset:0}
 .services-scene-background img{object-position:50% 42%}
 .services-scene::before{background:linear-gradient(180deg,#0a171f9c 0,#0a171fb3 120px,#101c22e8 350px,#101c22 440px)}
 .services-scene-intro{max-width:480px}
 .edition-118 .services-scene h2{font-size:2.125rem;margin-bottom:20px}
 .service-scene-link{padding:22px 4px 22px 0;gap:18px}
 .origin-story-layout{grid-template-columns:minmax(0,1fr);gap:28px}
 .origin-story-layout>.origin-film{max-width:420px;justify-self:start}
 .edition-118 .team-responsibility{padding:0 0 48px;min-height:0}
 .edition-118 .team-responsibility>.scene-image{width:100%;height:440px;mask-image:linear-gradient(180deg,#000 0%,#000 66%,transparent 100%)}
 .edition-118 .team-responsibility>.scene-image img{object-position:center 35%}
 .edition-118 .team-responsibility .scene-layout{padding-top:0;position:relative}
 .edition-118 .team-responsibility .scene-copy{width:100%;max-width:590px}
 .edition-118 .team-responsibility h2{font-size:2.2rem}
}
@media(max-width:600px){.edition-118 .team-responsibility>.scene-image{height:390px}.team-grid-updated .person .person-responsibility{min-height:0}.origin-story-layout .origin-film video{box-shadow:none}}
@media(prefers-reduced-motion:reduce){.service-scene-link{transition:none}}
@media print{.services-scene{background:#fff;color:#111;padding:30px 0}.services-scene>.services-scene-background,.services-scene::before{display:none}.edition-118 .services-scene h2,.edition-118 .service-scene-link h3,.services-scene p,.services-scene .eyebrow,.service-scene-link{color:#111}.edition-118 .team-responsibility .scene-copy{width:100%}.origin-story-layout{display:block}}
/* The 404 service shortcuts remain readable on their light background. */
.service-links-light .service-scene-link,.edition-118 .service-links-light .service-scene-link h3{color:#172126}
.service-links-light .service-scene-link p,.service-links-light .service-scene-link>span{color:#435e6c}
.service-links-light .service-scene-link:hover{background:#dfe6e3}
.service-links-light .service-scene-link:focus-visible{outline-color:#355b70}

/* V1.22: one type family, centered partner heading, photographic project index. */
.partner-banner-heading{justify-content:center;text-align:center}
.edition-118 .partner-banner-heading h2{max-width:none;width:100%;text-align:center}
.partner-logo--verkkokauppa img{width:180px;height:58px}
.partner-logo--grk img{width:110px;height:84px}
.work-showcase-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:40px;margin-bottom:48px}
.edition-118 .work-showcase-heading h2{font-size:clamp(2rem,3vw,3rem);line-height:1.17;margin:0;max-width:22ch}
.work-showcase-heading .eyebrow{padding-top:8px}
.work-showcase-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
.work-showcase-card{position:relative;isolation:isolate;overflow:hidden;min-width:0;min-height:480px;background:#18232a;color:#fff}
.work-showcase-card--wide{grid-column:span 3}
.work-showcase-card--tall{grid-column:span 2}
.work-showcase-card>.work-showcase-photo{position:absolute;inset:0;height:100%;z-index:-2}
.work-showcase-card::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,#09151ce6,transparent 52%)}
.work-showcase-title{position:absolute;bottom:30px;left:32px;right:26px}
.edition-118 .work-showcase-title h3{font-size:clamp(1.4rem,2.3vw,2.2rem);line-height:1.2;color:#fff;letter-spacing:-.035em}
.work-showcase-card [data-photo="verkkopariportti"] img{object-position:center}
.work-showcase-card [data-photo="valmiit-pihakaiteet"] img{object-position:center 40%}
.work-showcase-card [data-photo="hitsaus-kohteessa"] img{object-position:center 42%}
.named-references{background:#e7ece9;border-top:1px solid #d0d9d7}
.named-references-heading{display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1fr);gap:60px;align-items:start;margin-bottom:48px}
.edition-118 .named-references-heading h2{font-size:clamp(1.8rem,2.7vw,2.7rem);max-width:25ch;line-height:1.2}
.named-sites-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;list-style:none;padding:0;margin:0;border-top:1px solid #acbab9}
.named-sites-grid li{padding:28px 28px 32px 0;border-bottom:1px solid #acbab9;min-width:0;min-height:116px}
.edition-118 .named-sites-grid h3{font-size:clamp(1.1rem,1.5vw,1.35rem);line-height:1.5;max-width:29ch;font-weight:500;letter-spacing:-.025em}
@media(max-width:1050px){.work-showcase-card{min-height:410px}.named-sites-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.work-showcase-heading,.named-references-heading{display:block;margin-bottom:32px}.work-showcase-heading .eyebrow,.named-references-heading .eyebrow{margin-bottom:20px}.work-showcase-grid{gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.work-showcase-card--wide,.work-showcase-card--tall{grid-column:span 1;min-height:350px}.work-showcase-title{left:22px;right:18px;bottom:24px}}
@media(max-width:600px){.work-showcase-grid{grid-template-columns:minmax(0,1fr);gap:20px}.work-showcase-card--wide{min-height:320px}.work-showcase-card--tall{min-height:420px}.named-sites-grid{grid-template-columns:minmax(0,1fr)}.named-sites-grid li{min-height:0;padding:22px 0}.partner-logo--verkkokauppa img{width:148px;height:48px}.partner-logo--grk img{width:100px;height:76px}.edition-118 .partner-banner-heading h2{max-width:none}}
@media print{.work-showcase-grid{grid-template-columns:1fr 1fr}.work-showcase-card--wide,.work-showcase-card--tall{grid-column:auto;min-height:240px;break-inside:avoid}.named-sites-grid{grid-template-columns:1fr 1fr}.work-showcase-section,.named-references{padding:30px 0}}

/* V1.23: bounded case rows, uncropped photographs and compact billing details. */
.case-section{padding-top:48px;padding-bottom:64px}
.case-index{display:flex;flex-wrap:wrap;gap:12px 32px;padding-bottom:32px;border-bottom:1px solid #b5c2c3}
.case-index a{display:flex;align-items:center;gap:18px;min-height:44px;font-size:.875rem;color:#304f5e}
.case-index a:hover{text-decoration:underline;text-underline-offset:5px}
.case-row{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center;padding:56px 0;border-bottom:1px solid #b5c2c3;scroll-margin-top:120px}
.case-row:last-child{border-bottom:0;padding-bottom:0}
.case-row--reverse{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr)}
.case-row--reverse .case-gallery{grid-column:2;grid-row:1}
.case-row--reverse .case-copy{grid-column:1;grid-row:1}
.case-gallery,.case-copy{min-width:0}
.case-gallery{background:#18252b;color:#f3f5f2;overflow:hidden}
.case-track{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#809ba6 #18252b;height:clamp(320px,31vw,430px)}
.case-slide{flex:0 0 100%;min-width:0;height:100%;scroll-snap-align:start;scroll-snap-stop:always;background:radial-gradient(ellipse at center,#34434a,#18252b 80%)}
.case-slide>.case-photo{height:100%;width:100%;margin:0}
.case-slide .case-photo picture{display:block;height:100%}
.case-slide .case-photo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.case-gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:8px 18px;border-top:1px solid #b0c4cd2b}
.case-counter{font-size:.75rem;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.case-arrows{display:flex;gap:8px}
.case-arrows[hidden]{display:none}
.case-arrows button{display:grid;place-items:center;width:44px;height:44px;border:1px solid #8ca5af;background:transparent;color:#f3f5f2;cursor:pointer;font-size:1.4rem;line-height:1}
.case-arrows button:hover{background:#35515e}
.case-arrows button[aria-disabled="true"]{opacity:.35;cursor:default}
.case-track:focus-visible{outline:3px solid #b0d9e9;outline-offset:-4px}
.case-arrows button:focus-visible{outline:2px solid #b0d9e9;outline-offset:3px}
.edition-118 .case-copy h2{font-size:clamp(1.75rem,2.7vw,2.65rem);line-height:1.15;letter-spacing:-.035em;margin:0 0 18px;overflow-wrap:anywhere}
.case-copy>p{font-size:.9375rem;line-height:1.8;max-width:49ch;margin:0 0 20px;color:#465a63}
.case-copy>.case-lead{font-size:1.0625rem;font-weight:600;line-height:1.55;color:#233b47;margin-bottom:16px}
.case-scope{display:flex;flex-wrap:wrap;gap:8px 14px;padding:0;margin:24px 0;list-style:none}
.case-scope li{font-size:.75rem;line-height:1.5;color:#3e5863;padding-bottom:6px;border-bottom:1px solid #b2c2c7}
.case-copy .case-collaborators{font-size:.75rem;line-height:1.65;margin-bottom:22px}
.case-copy .text-link{font-size:.875rem;min-height:44px;display:inline-flex;align-items:center;gap:16px}
.case-detail .case-row{padding-top:0}
.case-section+.named-references .named-references-heading{display:block}
.billing-details h3{font-size:1rem;color:#eef3f4;margin:0 0 8px}
.billing-details dl{margin:0;display:grid;gap:14px;min-width:0}
.billing-details dt{font-size:.75rem;color:#b6c7ce;margin-bottom:4px}
.billing-details dd{margin:0;font-size:.9375rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;color:#f3f5f2}
.edition-118 .home-people-scene>.scene-image img{object-position:58% 42%}
@media(max-width:800px){
 .case-section{padding-top:28px;padding-bottom:44px}
 .case-index{gap:4px 24px;padding-bottom:20px}
 .case-row,.case-row--reverse{grid-template-columns:minmax(0,1fr);gap:28px;padding:36px 0}
 .case-row--reverse .case-gallery,.case-row--reverse .case-copy{grid-column:auto;grid-row:auto}
 .case-track{height:clamp(300px,76vw,430px)}
 .case-copy>p{max-width:60ch}
 .case-scope{margin:18px 0}
 .edition-118 .home-people-scene>.scene-image img{object-position:58% 32%}
}
@media print{
 .case-row,.case-row--reverse{display:block;break-inside:avoid;padding:24px 0}
 .case-track{height:250px;overflow:hidden}
 .case-gallery-controls,.case-index{display:none}
 .case-gallery{margin-bottom:24px}
}

/* V1.24: language links remain visible outside the mobile menu. */
.edition-118 .nav{gap:20px}
.edition-118 .nav>.brand{order:0;margin-right:auto}
.edition-118 .nav>.nav-links{order:1}
.edition-118 .nav>.language-switch{order:2;display:flex;align-items:center;gap:3px;flex-shrink:0;font-size:.6875rem;letter-spacing:.035em;color:#83959e}
.language-switch a{display:flex;align-items:center;justify-content:center;min-width:40px;min-height:44px;color:#c7d3d9;position:relative}
.language-switch a[aria-current="true"]{color:#fff;font-weight:700}
.language-switch a[aria-current="true"]::after{content:"";position:absolute;bottom:6px;left:9px;right:9px;height:2px;background:#a4c9da}
.language-switch a:hover{color:#fff;background:#ffffff0a}
.language-switch a:focus-visible{outline:2px solid #a4c9da;outline-offset:2px}
.edition-118 .nav>.menu-btn{order:3}
@media(max-width:1200px){
 .edition-118 .menu-btn{display:flex}
 .edition-118 .nav-links{display:none}
 .edition-118 .nav-links.open{display:flex;position:absolute;top:100%;left:0;right:0;background:var(--carbon);padding:18px var(--gutter) 28px;flex-direction:column;gap:0;align-items:stretch;border-bottom:1px solid #51606b;max-height:calc(100dvh - 86px);overflow:auto;box-shadow:0 18px 30px #0004}
 .edition-118 .nav-links.open>a{padding:12px 0;border-bottom:1px solid #303b43;min-height:50px}
 .edition-118 .nav-links.open .nav-cta{justify-content:center;margin:18px 0 0;background:var(--blue);border:0}
 .edition-118 .nav-links>a.active:after{right:auto;width:30px}
}
@media(max-width:600px){
 .edition-118 .nav{gap:8px;flex-wrap:wrap;padding-block:4px}
 .edition-118 .brand{width:clamp(104px,32vw,156px);height:58px}
 .edition-118 .brand-logo-nav{width:100%}
 .edition-118 .menu-btn{min-width:44px;width:44px;padding:8px;justify-content:center}
 .edition-118 .menu-btn>span:first-child{display:none}
 .edition-118 .nav>.language-switch{font-size:.6875rem;gap:1px}
}

/* V1.25: real project evidence, restrained layouts and clear enquiry ownership. */
.partner-motion-control{display:flex;justify-content:center;padding-top:24px}
.partner-motion-control button{min-width:140px;min-height:44px;padding:10px 18px;border:1px solid #82959d;background:transparent;color:inherit;font:inherit;font-size:.75rem;cursor:pointer}
.partner-motion-control button[hidden]{display:none}
.partner-motion-control button:hover{background:#ffffff0c}
.partner-motion-control button:focus-visible{outline:2px solid #a4c9da;outline-offset:4px}
.home-case-feature{position:relative;isolation:isolate;background:var(--paper,#f1f0e9);color:#16242b;min-height:520px;display:flex;align-items:center;overflow:hidden;padding-block:80px}
.home-case-feature>.home-case-image{position:absolute;inset:0 0 0 auto;width:62%;height:100%;margin:0;z-index:-1;mask-image:linear-gradient(90deg,transparent,#000 32%)}
.home-case-image picture,.home-case-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:60% center}
.home-case-copy{max-width:38%}
.edition-118 .home-case-copy h2{font-size:clamp(1.8rem,3vw,3rem);line-height:1.14;margin:0 0 24px;overflow-wrap:anywhere}
.home-case-copy p{font-size:1rem;line-height:1.8;margin-bottom:24px;color:#40545e}
.home-case-copy .text-link{display:flex;align-items:center;gap:16px;width:fit-content;min-height:44px;font-size:.875rem}
.edition-118 .home-people-scene{min-height:580px}
.edition-118 .home-people-scene>.scene-image{width:54%;mask-image:linear-gradient(90deg,#000 0%,#000 66%,transparent 100%)}
.edition-118 .home-people-scene>.scene-image img{object-position:58% 24%}
.delivery-heading{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;margin-bottom:44px}
.delivery-heading p{max-width:52ch;color:#465a63;line-height:1.8}
.delivery-steps{list-style:none;counter-reset:delivery;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;padding:0;margin:0 0 30px}
.delivery-steps li{counter-increment:delivery;border-top:1px solid #aabcc4;padding-top:24px}
.delivery-steps li::before{content:'0' counter(delivery);display:block;font-size:.75rem;color:#466d80;margin-bottom:20px}
.delivery-steps h3{font-size:1.125rem;margin:0 0 12px}
.delivery-steps p{font-size:.9375rem;line-height:1.8;color:#465a63}
.case-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,5vw,80px);align-items:start}
.case-detail-layout .prose{min-width:0}
.edition-118 .case-detail-layout .prose h2{font-size:clamp(1.4rem,2vw,1.9rem);margin:0 0 18px}
.case-detail-layout .prose p{font-size:1rem;line-height:1.8;margin-bottom:32px}
.case-gallery--portrait{width:100%;max-width:430px;justify-self:center}
.case-detail-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;border-top:1px solid #b5c2c3;margin:48px 0 0;padding-top:28px}
.case-detail-facts dt{font-size:.75rem;color:#496472;margin-bottom:12px}
.case-detail-facts dd{margin:0;font-size:.9375rem;line-height:1.7}
.service-project-link{display:inline-flex;align-items:center;gap:16px;min-height:44px;margin-top:20px}
.quote-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.65fr);gap:clamp(32px,4vw,64px);align-items:start}
.quote-layout .form-shell{min-width:0;width:100%;margin:0}
.quote-contact{position:sticky;top:120px;min-width:0;padding-top:12px}
.edition-118 .quote-contact h2{font-size:clamp(1.7rem,2.4vw,2.4rem);line-height:1.2;margin:0 0 32px}
.quote-contact h3{font-size:1.25rem;margin:0 0 6px}
.quote-contact p{max-width:42ch;line-height:1.8;font-size:.9375rem;color:#465a63;margin:0 0 24px}
.quote-contact-links a{display:block;width:fit-content;max-width:100%;min-height:44px;padding:10px 0;font-size:.9375rem;overflow-wrap:anywhere;text-underline-offset:4px}
.quote-contact-links a:hover{text-decoration:underline}
.contact-intro{max-width:58ch;line-height:1.8;margin:0 0 32px;color:#465a63}
.contact-person{scroll-margin-top:120px}
@media(max-width:1000px){
 .quote-layout{grid-template-columns:minmax(0,1fr)}
 .quote-contact{position:static;max-width:640px}
 .delivery-heading{gap:32px}
 .delivery-steps{gap:24px}
}
@media(max-width:800px){
 .home-case-feature{display:block;padding:0 0 44px;min-height:0}
 .home-case-feature>.home-case-image{position:relative;inset:auto;width:100%;height:clamp(260px,65vw,430px);mask-image:none;z-index:0;margin-bottom:36px}
 .home-case-copy{max-width:100%}
 .home-case-copy p{max-width:54ch}
 .edition-118 .home-people-scene{min-height:0}
 .edition-118 .home-people-scene>.scene-image{width:100%;mask-image:linear-gradient(180deg,#000 0%,#000 68%,transparent 100%)}
 .edition-118 .home-people-scene>.scene-image img{object-position:58% 22%}
 .case-detail-layout,.delivery-heading{grid-template-columns:minmax(0,1fr);gap:28px}
 .case-detail-facts{grid-template-columns:minmax(0,1fr);gap:24px;margin-top:32px}
 .delivery-steps{grid-template-columns:minmax(0,1fr);gap:24px}
 .delivery-steps li::before{margin-bottom:12px}
 .delivery-steps p{max-width:60ch}
}
@media print{.partner-motion-control{display:none}.quote-contact{position:static}.quote-layout,.case-detail-layout{display:block}}

/* Desktop keeps the original paper composition; mobile fades into charcoal. */
.edition-118 .photo-scene.home-people-scene.scene-paper{background:#f5f5f0;color:#172125;color-scheme:light}
.edition-118 .home-people-scene.scene-paper::before,.edition-118 .home-people-scene.scene-paper::after{content:none;display:none}
.edition-118 .home-people-scene.scene-paper .scene-copy{background:#f5f5f0;color:#172125}
.edition-118 .home-people-scene.scene-paper h2{color:#172125}
.edition-118 .home-people-scene.scene-paper p{color:#43535b}
.edition-118 .home-people-scene.scene-paper .text-link{color:#294e60;border-color:#294e60}
.edition-118 .home-people-scene.scene-paper .text-link:hover{color:#172125}
@media(max-width:800px){
 .edition-118 .photo-scene.home-people-scene.scene-paper{background:#101719;color:#f5f5f0;color-scheme:dark}
 .edition-118 .home-people-scene.scene-paper .scene-layout{background:transparent;color:#f5f5f0;isolation:isolate;padding-top:12px}
 .edition-118 .home-people-scene.scene-paper .scene-layout::before{content:none}
 .edition-118 .home-people-scene.scene-paper .scene-copy{background:transparent;color:#f5f5f0}
 .edition-118 .home-people-scene.scene-paper h2{color:#f5f5f0}
 .edition-118 .home-people-scene.scene-paper p{color:#d6dfe4}
 .edition-118 .home-people-scene.scene-paper .text-link{color:#edf3f6;border-color:#9db2bc}
 .edition-118 .home-people-scene.scene-paper .text-link:hover{color:#fff}
}
.email-enquiry{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(32px,7vw,96px);align-items:start}
.email-enquiry>div,.email-enquiry>aside{min-width:0}
.email-enquiry h2{font-size:clamp(1.6rem,2.8vw,2.5rem);margin:0 0 24px}
.email-enquiry h3{font-size:1.15rem;margin:32px 0 12px}
.email-enquiry p{font-size:1rem;line-height:1.8;max-width:52ch;margin:0 0 24px;color:#43535b}
.email-enquiry .email-enquiry-hint{font-size:.875rem;margin-top:20px}
.email-enquiry .email-address{display:inline-block;font-weight:600;min-height:44px;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:4px}
.email-enquiry aside{border-left:1px solid #bac7cb;padding-left:32px}
@media(max-width:800px){.email-enquiry{grid-template-columns:minmax(0,1fr)}.email-enquiry aside{border-left:0;border-top:1px solid #bac7cb;padding:28px 0 0}}

/* Rooftop overview retains the railing and the recognisable setting. */
.home-case-image img{object-position:55% 48%}

/* V1.27: slogan, team photography and compact contact details. */
.edition-118 .hero-photographic h1{max-width:20ch}
.edition-118 .hero-photographic h1 .slogan-fi{font-size:.62em;line-height:1.3;margin-top:20px;letter-spacing:-.025em}
.edition-118 .page-hero.company-team-hero{background:#101719;min-height:0;padding:clamp(420px,35vw,610px) 0 64px}
.edition-118 .company-team-hero>.scene-image{height:clamp(560px,48vw,800px);max-height:none;mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 100%)}
.edition-118 .company-team-hero>.scene-image img{object-fit:cover;object-position:center 20%}
.edition-118 .page-hero.company-team-hero::after{background:linear-gradient(0deg,#101719 0%,rgba(16,23,25,.72) 20%,transparent 58%)}
.edition-118 .company-team-hero .scene-copy{grid-template-columns:1fr 1fr;gap:16px 64px}
.edition-118 .company-team-hero h1{grid-column:1;grid-row:2/4;margin:0}
.edition-118 .company-team-hero .lead{grid-column:2;grid-row:2;margin:0}
.edition-118 .company-team-hero .actions{grid-column:2;grid-row:3}
.team-grid-updated{grid-template-columns:repeat(3,minmax(0,1fr));gap:56px 32px}
.team-grid-updated .person{border:0;padding:0}
.team-portrait{display:block;aspect-ratio:4/5;overflow:hidden;margin-bottom:24px;background:#192326}
.team-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 28%}
.team-grid-updated .person .person-responsibility{min-height:0;margin-bottom:12px}
.team-other{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:56px}
.team-other .person h3{font-size:1.5rem;margin:0 0 12px}
.team-other .person .role{min-height:0;margin-bottom:9px;color:#294451;font-size:.875rem}
.team-other .person-responsibility{font-size:.8125rem;color:#53656e;margin-bottom:12px}
@media(max-width:1000px){.team-grid-updated{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){
 .edition-118 .page-hero.company-team-hero{padding:calc(100vw * .62) 0 48px}
 .edition-118 .company-team-hero>.scene-image{height:calc(100vw * 2 / 3);mask-image:linear-gradient(180deg,#000 0%,#000 72%,transparent 100%)}
 .edition-118 .company-team-hero>.scene-image img{object-fit:contain;object-position:center top}
 .edition-118 .page-hero.company-team-hero::after{content:none}
 .edition-118 .company-team-hero .scene-layout::before{content:none}
 .edition-118 .company-team-hero .scene-copy{display:block;padding:0}
 .edition-118 .company-team-hero .lead{margin-top:24px}
}
@media(max-width:600px){
 .team-grid-updated{grid-template-columns:minmax(0,1fr);gap:40px}
 .team-portrait{aspect-ratio:4/5;max-width:440px;margin-bottom:20px}
 .team-other{grid-template-columns:minmax(0,1fr);gap:28px;margin-top:40px}
}
