/* Shared editorial layouts: six pages, one Nolvos identity. */
.header .nav-cta{border:0;background:var(--blue);color:#fff;border-radius:4px;padding:11px 22px;min-height:44px}
.header .nav-cta:hover,.header .nav-cta[aria-current]{color:#fff;background:var(--blue-dark)}
.header nav{gap:30px;font-size:13px}
.footer-main>div{display:flex;flex-wrap:wrap;gap:16px 25px}
.button:has(>span:only-child){gap:25px}
.text-link{border-bottom:1px solid currentColor;min-height:38px;padding-bottom:4px;line-height:1.5}
.opening-v4 h1{max-width:850px}
.opening-v4-copy p{line-height:1.75}
.offer-fold-v4 .offer-fold-content{grid-template-columns:1fr 1fr .9fr;gap:30px}
.offer-illustration{align-self:center;border-radius:5px;overflow:hidden}
.offer-illustration img{width:100%;height:auto;max-height:245px;object-fit:contain}
.offer-illustration img[src*="architecture"]{height:225px;object-fit:cover}
.expertise-illustration img[src*="architecture"]{height:350px;object-fit:cover}
.editorial-photo{width:100%;height:100%;object-fit:cover;border-radius:5px}
.studio-photo{margin-top:34px;aspect-ratio:1.8;overflow:hidden;border-radius:5px}
.studio-photo img{width:100%;height:100%;object-fit:cover}
.page-visual{margin-top:40px;display:grid;grid-template-columns:1.12fr 1fr;gap:30px;align-items:center;border-radius:6px;background:#e8edfd;padding:34px}
.page-visual>img{width:100%;height:auto;max-height:370px;object-fit:contain}
.page-visual figcaption{max-width:410px}
.page-visual .eyebrow{color:var(--blue);margin-bottom:16px}
.page-visual h2,.page-visual h3{font:600 clamp(25px,3vw,38px)/1.18 var(--title);letter-spacing:-.045em}
.page-visual p:not(.eyebrow){font-size:15px;line-height:1.75;margin-top:18px;color:var(--muted)}
.detail-hero,.expertise-hero{padding-top:24px;padding-bottom:65px}
.detail-hero>.eyebrow,.expertise-hero>.eyebrow{color:var(--blue);margin-bottom:24px}
.detail-hero h1,.expertise-hero h1{font-size:clamp(48px,6.2vw,84px);line-height:1.1;max-width:1100px}
.detail-hero h1 em,.expertise-hero h1 em{color:var(--blue)}
.detail-intro{display:grid;grid-template-columns:1.4fr 1fr;align-items:end;gap:60px;margin-top:32px}
.detail-intro>p{font-size:18px;line-height:1.7;max-width:650px}
.detail-intro>a{justify-self:end}
.expertise-hero .page-hero-bottom>p{max-width:760px;font-size:18px}
.expertise-jump{display:flex;gap:12px;flex-wrap:wrap;margin-top:38px;padding-top:24px;border-top:1px solid var(--line)}
.expertise-jump a{font-size:13px;line-height:1.5;padding:11px 15px;border:1px solid #c2c6cb;border-radius:30px;transition:background .2s,color .2s}
.expertise-jump a:hover{color:#fff;background:var(--ink);border-color:var(--ink)}
.expertise-jump span{display:none}
.expertise-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 70px;border-top:1px solid var(--line);padding-block:70px}
.expertise-detail-heading{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:22px 70px;align-items:start}
.expertise-detail-heading>.eyebrow{grid-column:1/-1;color:var(--blue)}
.expertise-detail-heading h2{font-size:clamp(32px,3.5vw,49px);line-height:1.17;overflow-wrap:normal}
.expertise-detail-heading h2 em{color:var(--blue)}
.expertise-detail-heading>p:last-child{font-size:17px;line-height:1.75;color:var(--muted);max-width:630px}
.expertise-illustration{margin:0;align-self:center;border-radius:6px;overflow:hidden}
.expertise-illustration img{width:100%;height:auto}
.expertise-deliverables{align-self:center}
.expertise-deliverables h3{font-size:24px;line-height:1.3;margin-bottom:22px}
.expertise-deliverables li{border-top:1px solid var(--line);padding:13px 0;font-size:14px;line-height:1.75;color:var(--muted)}
.expertise-deliverables li strong{color:var(--ink);font-weight:600}
.expertise-usecases{grid-column:1/-1;padding:30px;background:#ebece6;border-radius:6px}
.expertise-usecases>.eyebrow{margin-bottom:25px;color:#4b5763}
.expertise-usecase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.expertise-usecase-grid article{border-top:2px solid #c1c7be;padding-top:18px}
.expertise-usecase-grid h3{font-size:19px;line-height:1.3;margin-bottom:12px}
.expertise-usecase-grid p{font-size:14px;line-height:1.7;color:#505d65}
.expertise-detail>.text-link{grid-column:1/-1;justify-self:start}
.expertise-page .maintenance .text-link{margin-top:24px;color:#e6ecff}
.method-hero-image{margin-top:38px;display:grid;grid-template-columns:1.3fr 1fr;min-height:280px;background:#e8edfd;border-radius:6px;overflow:hidden}
.method-hero-image>img{width:100%;height:100%;max-height:370px;object-fit:cover}
.method-hero-image figcaption{padding:35px;display:flex;flex-direction:column;justify-content:center;gap:22px}
.method-hero-image figcaption>span{font-size:11px;letter-spacing:.08em;color:var(--blue)}
.method-hero-image figcaption>p{font:500 27px/1.35 var(--title);letter-spacing:-.035em}
.method-mini-flow{display:flex;gap:8px;flex-wrap:wrap}
.method-mini-flow a{display:flex;align-items:center;min-height:44px;font-size:12px;padding:8px 10px;background:#fff;border-radius:4px;border:1px solid #cbd5ef}
.method-mini-flow a:hover{border-color:var(--blue);color:var(--blue)}
.method-journey{padding-bottom:70px}
.method-step{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;padding:55px 0;border-top:1px solid var(--line)}
.method-step-heading .eyebrow{color:var(--blue);margin-bottom:23px}
.method-step-heading h2{font-size:clamp(32px,3.1vw,45px);line-height:1.2}
.method-step-content>p{font-size:17px;line-height:1.75;color:var(--muted)}
.method-deliverables{display:grid;grid-template-columns:1.2fr 1fr;gap:27px;padding-top:28px;margin-top:28px;border-top:1px solid var(--line)}
.method-deliverables h3{font-size:17px;margin-bottom:14px;line-height:1.4}
.method-deliverables ul{list-style:disc;padding-left:18px}
.method-deliverables li,.method-deliverables p{font-size:14px;line-height:1.75;color:var(--muted)}
.method-deliverables li+li{margin-top:8px}
.detail-band{background:var(--ink);color:var(--paper);padding:75px 0}
.detail-band>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.detail-band .eyebrow{color:#bdccff;margin-bottom:24px}
.detail-band h2{font-size:clamp(34px,3.5vw,48px)}
.detail-band p:not(.eyebrow){font-size:16px;line-height:1.8;color:#d0d7df}
.detail-band p+p{margin-top:20px}
.method-support .support-scope{max-width:780px;font-size:14px}
.detail-closing{background:#e8edfd;padding:70px 0}
.detail-closing .eyebrow{color:var(--blue);margin-bottom:22px}
.detail-closing h2{max-width:800px}
.detail-closing p:not(.eyebrow){margin:25px 0;font-size:17px;line-height:1.75;max-width:650px}
/* Contact: one clear conversation, with a form that belongs to the page. */
.contact-breadcrumb{padding-top:24px}
.contact-breadcrumb .breadcrumb{margin-bottom:26px}
.contact-compose{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:75px;padding:0 0 80px;max-width:1328px;align-items:start}
.contact-aside>.eyebrow{color:var(--blue);margin-bottom:20px!important}
.contact-aside h1{font-size:clamp(44px,4.5vw,64px);line-height:1.12;letter-spacing:-.055em}
.contact-compose .contact-aside>p:not(.eyebrow){font-size:17px;line-height:1.75;max-width:48ch;color:var(--muted);margin-top:25px}
.contact-address{display:inline-block;font:500 clamp(20px,2vw,27px)/1.5 var(--title);color:var(--blue);border-bottom:1px solid #a6b7f7;margin-top:25px;letter-spacing:-.025em}
.contact-photo{width:100%;aspect-ratio:1.8;margin-top:30px;overflow:hidden;border-radius:5px}
.contact-photo img{width:100%;height:100%;object-fit:cover}
.contact-compose form,.application-section form{background:#fff;padding:35px;border:1px solid #dfe2dc;border-radius:7px;box-shadow:0 12px 30px #19212b06}
.contact-compose form>h2{font-size:27px;letter-spacing:-.04em;margin:0 0 10px}
.contact-compose .form-intro{color:var(--muted);font-size:14px;margin-bottom:25px}
.contact-compose label,.application-section label{font-size:13px}
.contact-compose input,.contact-compose select,.contact-compose textarea,.application-section input,.application-section select,.application-section textarea{background:#fafaf7;border-color:#ccd1cb;border-radius:4px;margin-bottom:20px;transition:border-color .2s,box-shadow .2s}
.contact-compose input:focus,.contact-compose select:focus,.contact-compose textarea:focus,.application-section input:focus,.application-section select:focus,.application-section textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px #3159e81c}
.contact-compose textarea,.application-section textarea{min-height:135px}
.contact-compose .contact-status,.application-section .contact-status{border-radius:4px;padding:15px;background:#e8edfd;font-size:14px}
.contact-compose .contact-status:empty,.application-section .contact-status:empty{display:none}
.contact-relay .text-link{color:var(--blue);margin-bottom:10px;font-size:15px}
.mail-explanation{font-size:12px;line-height:1.6;margin-top:14px}
.contact-fields-pair{gap:16px}
.contact-compose .contact-fields-pair label span,.application-section .contact-fields-pair label span{display:block;font-size:10px}
/* Careers: editorial introduction, real disciplines, spontaneous application. */
.recruit-opening .recruit-hero-grid{grid-template-columns:1.08fr 1fr;align-items:center;gap:65px}
.recruit-opening h1{font-size:clamp(43px,4.4vw,64px);line-height:1.12;margin-top:23px;overflow-wrap:normal}
.recruit-opening h1 em{color:var(--blue)}
.recruit-opening .eyebrow{color:var(--blue)}
.recruit-opening .recruit-hero-grid>div>p:not(.eyebrow){font-size:17px;line-height:1.75;color:var(--muted);margin-top:25px}
.recruit-opening .button{margin-top:26px}
.recruit-caption{display:block;font-size:12px;margin-top:12px;color:var(--muted)}
.recruit-photo{aspect-ratio:1.15;overflow:hidden;border-radius:5px}
.recruit-photo img{height:100%;width:100%;object-fit:cover}
.application-form-title{font-size:25px;line-height:1.3;margin-bottom:28px}
.application-section .form-layout{gap:75px;grid-template-columns:.85fr 1.15fr}
.application-section .form-layout>div>p{font-size:17px;line-height:1.75}
.application-section .form-layout .text-link{color:var(--blue);font-size:18px;margin-top:20px;display:inline-block;overflow-wrap:anywhere}
.recruit-expectations .expectation-list article{padding-top:25px}
.cabinet-hero-visual{margin-top:35px;display:grid;grid-template-columns:1.1fr 1fr;gap:30px;background:#e8edfd;padding:30px;border-radius:6px;align-items:center}
.cabinet-hero-visual img{width:100%;height:auto}
.cabinet-hero-visual h2{font-size:34px;margin-bottom:18px}
.cabinet-hero-visual p{font-size:16px;color:var(--muted);line-height:1.75}
@media(max-width:1100px){
 .header nav{gap:18px;font-size:12px}
 .contact-compose{gap:35px}
 .contact-compose form,.application-section form{padding:25px}
 .expertise-detail,.expertise-detail-heading{column-gap:35px}
 .method-step{gap:40px}
 .recruit-opening .recruit-hero-grid{gap:35px}
}
@media(max-width:900px){
 .header nav{font-size:17px;gap:0}
 .header nav .nav-cta{margin-top:16px;padding:14px 20px;align-self:flex-start}
 .contact-compose{grid-template-columns:1fr 1.15fr;gap:28px}
 .contact-aside h1{font-size:43px}
 .contact-compose .contact-fields-pair{grid-template-columns:1fr;gap:0}
 .method-deliverables{grid-template-columns:1fr;gap:22px}
 .expertise-usecase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .method-hero-image{grid-template-columns:1fr 1fr}
 .method-hero-image figcaption{padding:25px}
}
@media(max-width:760px){
 .offer-fold-v4 .offer-fold-content{grid-template-columns:1fr;gap:22px}
 .offer-illustration{max-width:100%;width:100%}
 .offer-illustration img{max-height:250px}
 .expertise-illustration img[src*="architecture"]{height:260px}
 .wrap{width:calc(100% - 40px)}
 .opening-v4 h1{font-size:clamp(39px,8.4vw,58px)}
 .detail-hero,.expertise-hero{padding-top:18px;padding-bottom:40px}
 .detail-hero h1,.expertise-hero h1{font-size:clamp(38px,8vw,58px)}
 .detail-intro,.expertise-detail-heading{grid-template-columns:1fr;gap:22px}
 .detail-intro{margin-top:25px}
 .detail-intro>p,.expertise-hero .page-hero-bottom>p{font-size:16px;line-height:1.75}
 .detail-intro>a{justify-self:start}
 .expertise-jump{gap:8px;margin-top:25px;padding-top:20px}
 .expertise-jump a{font-size:12px;padding:10px 13px}
 .expertise-detail{grid-template-columns:1fr;gap:25px;padding-block:42px}
 .expertise-detail-heading h2{font-size:34px}
 .expertise-detail-heading>p:last-child{font-size:16px}
 .expertise-deliverables h3{font-size:23px}
 .expertise-usecases{padding:23px}
 .expertise-usecase-grid{grid-template-columns:1fr;gap:23px}
 .expertise-usecase-grid h3{font-size:20px}
 .expertise-usecase-grid p,.expertise-deliverables li{font-size:15px}
 .page-visual,.method-hero-image,.cabinet-hero-visual{grid-template-columns:1fr;padding:22px;gap:25px;margin-top:28px}
 .page-visual figcaption{max-width:none}
 .page-visual p:not(.eyebrow){font-size:15px}
 .method-hero-image{padding:0;gap:0}
 .method-hero-image>img{height:auto;aspect-ratio:1.8;object-fit:cover}
 .method-hero-image figcaption{padding:25px}
 .method-hero-image figcaption>p{font-size:25px}
 .method-journey{padding-bottom:25px}
 .method-step{grid-template-columns:1fr;gap:25px;padding:36px 0}
 .method-step-heading .eyebrow{margin-bottom:17px}
 .method-step-heading h2{font-size:34px}
 .method-step-content>p{font-size:16px}
 .method-deliverables{grid-template-columns:1fr;gap:25px;margin-top:23px;padding-top:23px}
 .method-deliverables li,.method-deliverables p{font-size:15px}
 .detail-band{padding:45px 0}
 .detail-band>.wrap{grid-template-columns:1fr;gap:25px}
 .detail-band h2{font-size:34px}
 .detail-band p:not(.eyebrow){font-size:15px}
 .detail-closing{padding:45px 0}
 .detail-closing h2{font-size:38px}
 .detail-closing p:not(.eyebrow){font-size:16px}
 .contact-breadcrumb{padding-top:17px}
 .contact-breadcrumb .breadcrumb{margin-bottom:20px}
 .contact-compose{grid-template-columns:1fr;gap:28px;padding-bottom:45px}
 .contact-aside h1{font-size:44px}
 .contact-compose .contact-aside>p:not(.eyebrow){font-size:16px;margin-top:20px}
 .contact-address{font-size:24px;margin-top:20px}
 .contact-photo{margin-top:25px;aspect-ratio:2}
 .contact-compose form,.application-section form{padding:24px 20px}
 .contact-compose form>h2{font-size:25px}
 .contact-compose .contact-fields-pair{grid-template-columns:1fr 1fr;gap:14px}
 .contact-compose label,.application-section label{font-size:14px}
 .contact-compose .contact-fields-pair label span,.application-section .contact-fields-pair label span{font-size:10px}
 .contact-compose label span,.application-section label span{font-size:11px}
 .recruit-opening .recruit-hero-grid{grid-template-columns:1fr;gap:28px}
 .recruit-opening h1{font-size:43px}
 .recruit-opening .recruit-hero-grid>div>p:not(.eyebrow){font-size:16px;margin-top:22px}
 .recruit-photo{aspect-ratio:1.8}
 .application-section .form-layout{grid-template-columns:1fr;gap:28px}
 .application-section .form-layout>div>p{font-size:16px}
 .application-section .contact-fields-pair{grid-template-columns:1fr}
 .studio-photo{aspect-ratio:1.6;margin-top:25px}
 .footer-main>div{gap:12px 22px}
}
@media(max-width:360px){
 .contact-compose .contact-fields-pair{grid-template-columns:1fr;gap:0}
 .contact-aside h1,.recruit-opening h1{font-size:38px}
 .contact-address{font-size:22px}
 .expertise-detail-heading h2{font-size:31px}
}
@media(prefers-reduced-motion:reduce){.expertise-jump a,.contact-compose input,.contact-compose select,.contact-compose textarea{transition:none}}

/* Fragment focus lets the skip link place keyboard users in the content. */
main[tabindex="-1"]:focus{outline:none}
