@font-face{font-family:Onest;src:url('assets/onest.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--paper:#efeee9;--ink:#1b1c19;--orange:#ff542f;--muted:#62645c;--line:#c9cbc1;--gutter:clamp(24px,calc(4.5vw / 0.9),88px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Onest,Arial,sans-serif;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit;cursor:pointer}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{border:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #ac341c;outline-offset:6px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:2px}::selection{background:var(--orange);color:var(--ink)}h1,h2,h3,p{margin:0}img{max-width:100%;display:block}.skip{position:fixed;top:-100px;left:20px;background:var(--ink);color:white;padding:16px;z-index:99}.skip:focus{top:12px}.header{height:90px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.identity{display:flex;gap:15px;align-items:center;min-height:44px;font-size:13px;line-height:1.2;font-weight:700;letter-spacing:.02em}.brand-mark{font-size:46px;line-height:1;letter-spacing:-7px;margin-right:7px;font-weight:500}.brand-sub{display:block;font-size:10px;letter-spacing:.13em;margin-top:6px;font-weight:500}.desktop-nav{display:flex;gap:32px;align-items:center}.desktop-nav a{font-size:14px;display:flex;align-items:center;min-height:44px;position:relative}.desktop-nav a:after{content:'';height:1px;background:#ff542f;position:absolute;left:0;right:100%;bottom:6px}.desktop-nav a:hover:after{right:0}.header-actions{display:flex;gap:22px;align-items:center}.header-cta{background:transparent;padding:14px 0;font-size:14px;border-bottom:1px solid var(--ink);min-height:44px;display:flex;gap:24px;align-items:center}.header-cta span{font-size:24px;line-height:1}.menu-button{background:transparent;width:44px;height:44px;display:none;align-items:center;justify-content:center;flex-direction:column;gap:7px}.menu-button span{width:25px;height:2px;background:var(--ink)}
.hero{height:800px;position:relative;overflow:hidden;isolation:isolate}.hero-orange{position:absolute;left:46%;right:0;top:355px;height:350px;background:var(--orange);z-index:0}.hero-portrait{position:absolute;right:5%;bottom:0;width:49%;height:795px;mix-blend-mode:multiply;z-index:1}.hero-portrait img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.hero-kicker{position:absolute;left:var(--gutter);top:48px;display:flex;gap:20px;align-items:center;font-size:11px;line-height:1.5;letter-spacing:.07em;font-weight:600}.tiny-cross{font-size:42px;font-weight:400;line-height:1}.hero h1{position:absolute;left:var(--gutter);top:134px;z-index:2;font-size:clamp(90px,calc(8.9vw / 0.9),154px);line-height:.95;letter-spacing:-.071em;font-weight:500}.hero h1>span{position:relative}.hero-description{position:absolute;left:var(--gutter);top:552px;z-index:3}.hero-description p{font-size:17px;line-height:1.5;margin-bottom:28px;color:#4f5149}.button{display:inline-flex;gap:32px;align-items:center;justify-content:space-between;min-height:56px;padding:15px 24px;font-size:14px;font-weight:500;transition:background .2s,transform .2s}.button>span{font-size:25px;line-height:1}.button:hover{transform:translateY(-2px)}.black{background:var(--ink);color:var(--paper)}.black:hover{background:#34362f}.outline{background:transparent;border:1px solid #8a8c82;color:var(--ink)}.outline:hover{background:#e3e3db}.hero-side{position:absolute;right:24px;top:61px;writing-mode:vertical-rl;font-size:11px;letter-spacing:.13em;font-weight:500}.hero-bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:25px;display:flex;justify-content:space-between;align-items:center;z-index:3;font-size:10px;letter-spacing:.08em}.hero-bottom a{display:flex;align-items:center;gap:18px;font-size:12px;letter-spacing:0;min-height:44px}.hero-bottom a>span{font-size:24px}.discipline-strip{display:flex;justify-content:space-between;align-items:center;padding:28px var(--gutter);gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:17px}.discipline-strip>span:nth-child(even){font-size:28px;color:#585c51}.section{padding:105px var(--gutter)}.section-top{display:flex;justify-content:space-between;align-items:start;margin-bottom:60px;gap:32px}.section-index{font-size:11px;font-weight:500;letter-spacing:.08em}.aside-note{font-size:14px;line-height:1.5;width:240px;color:var(--muted)}h2{font-size:clamp(40px,calc(4.2vw / 0.9),68px);line-height:1.08;font-weight:500;letter-spacing:-.055em}h2>span{color:#787b70}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:48px;margin-bottom:52px}.section-heading h2{max-width:790px}.section-heading>p{width:260px;flex-shrink:0;font-size:14px;color:var(--muted);line-height:1.6}.concept-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:start}.concept-card{width:100%;padding:0;background:transparent;text-align:left;display:block}.concept-card:focus-visible{outline-offset:8px}.concept-preview{aspect-ratio:1.27;position:relative;overflow:hidden;padding:25px;transition:transform .45s;isolation:isolate}.concept-card:hover .concept-preview{transform:translateY(-5px)}.editorial-preview{background:var(--orange);color:#201d18}.digital{padding-top:90px}.mock-nav{display:flex;align-items:center;justify-content:space-between;font-size:8px;font-weight:500;letter-spacing:.06em}.mock-nav b{font-size:18px;letter-spacing:-.05em;font-weight:600}.mock-nav>span:last-child{font-size:22px;line-height:1}.editorial-word{font-size:clamp(50px,calc(6.9vw / 0.9),110px);line-height:.96;font-weight:500;letter-spacing:-.07em;position:absolute;left:25px;top:26%}.editorial-word i{font-style:normal;margin-left:40px}.editorial-bottom{position:absolute;bottom:25px;left:25px;right:25px;display:flex;align-items:end;justify-content:space-between;font-size:11px;line-height:1.5}.mock-circle{display:flex;align-items:center;justify-content:center;width:55px;height:55px;border:1px solid #302017;border-radius:50%;font-size:29px}.mock-vertical{writing-mode:vertical-rl;position:absolute;right:22px;top:32%;font-size:8px;letter-spacing:.08em}.digital-preview{background:#252822;color:#efeee9}.digital-title{font-size:clamp(30px,calc(3.2vw / 0.9),49px);letter-spacing:-.06em;font-weight:400;line-height:1.08;position:absolute;top:25%;left:25px;z-index:2}.digital-title>span{color:#e1ed99}.digital-graphic{position:absolute;right:7%;bottom:15%;width:43%;aspect-ratio:1;display:flex;align-items:center;justify-content:center}.digital-graphic span{position:absolute;width:100%;height:100%;border:1px solid #e1ed99;border-radius:50%}.digital-graphic span:nth-child(2){width:65%;height:65%;background:#e1ed99}.digital-graphic span:nth-child(3){width:25%;height:25%;background:#252822;border-color:#252822;transform:translateX(-65%)}.digital-bottom{position:absolute;left:25px;right:25px;bottom:25px;display:flex;justify-content:space-between;border-top:1px solid #71786a;padding-top:16px;font-size:9px}.digital-bottom>span:last-child{color:#e1ed99}.concept-label{padding:24px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px}.mini-label{font-size:9px;letter-spacing:.06em;color:var(--muted)}.concept-label h3{font-weight:500;font-size:25px;letter-spacing:-.04em;margin-top:7px}.round-arrow{border:1px solid #a0a396;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:25px;flex-shrink:0;transition:background .2s}.concept-card:hover .round-arrow{background:var(--ink);color:var(--paper)}.services{padding-top:20px;padding-bottom:120px}.services h2{margin-bottom:56px}.service-list{border-top:1.5px solid #ff542f}details{border-bottom:1.5px solid #ff542f}summary{display:flex;align-items:center;gap:32px;min-height:135px;cursor:pointer;list-style:none;padding:25px 0}summary::-webkit-details-marker{display:none}.service-num{font-size:13px;color:var(--muted);width:9%}summary h3{font-size:clamp(28px,calc(3.1vw / 0.9),48px);letter-spacing:-.05em;font-weight:500;flex:1}.service-caption{font-size:10px;letter-spacing:.02em;color:var(--muted);width:27%}.plus{font-size:36px;font-weight:300;width:44px;height:44px;display:flex;align-items:center;justify-content:center;transition:transform .25s}details[open] .plus{transform:rotate(45deg)}details[open] summary h3{color:#a73118}.service-body{padding:0 76px 38px 12%;display:grid;grid-template-columns:1fr .85fr;gap:25px 80px;color:var(--muted);font-size:16px}.service-body p{max-width:470px}.service-body ul{padding-left:18px;margin:0;line-height:1.8}.text-button{background:transparent;color:var(--ink);font-size:14px;display:inline-flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid currentColor;min-height:44px;padding:8px 0;width:max-content}.service-body .text-button{grid-column:1 / -1}.about{background:var(--ink);color:var(--paper);padding:64px var(--gutter) 100px;overflow:hidden}.about-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:65px}.about-star{color:var(--orange);font-size:65px;line-height:1}.about-grid{display:grid;grid-template-columns:.83fr 1.1fr;gap:10%;align-items:center}.about-photo{position:relative;align-self:end;background:#e5e5dc;isolation:isolate;overflow:hidden;padding-top:25px}.about-photo:before{content:'';background:var(--orange);position:absolute;bottom:20%;height:37%;left:0;right:0;z-index:-1}.about-photo img{width:100%;mix-blend-mode:multiply;filter:grayscale(1);max-height:520px;object-fit:contain;object-position:right bottom}.about-photo>span{display:block;background:var(--ink);font-size:9px;letter-spacing:.06em;padding-top:18px;position:relative}.about-copy h2{font-size:clamp(38px,calc(4.4vw / 0.9),68px);margin-bottom:34px}.about-copy h2>span{color:#a4a799}.about-copy p{font-size:17px;color:#bfc2b5;max-width:495px;margin-bottom:20px;line-height:1.65}.light{color:var(--paper);margin-top:16px}.process h2{margin-bottom:60px}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:60px;margin:0;padding:0;list-style:none}.process-grid li{border-top:1px solid var(--line);padding-top:24px}.process-grid li>span{font-size:10px;letter-spacing:.05em;color:var(--muted)}.process-grid h3{font-size:26px;line-height:1.2;letter-spacing:-.04em;font-weight:500;margin:30px 0 16px}.process-grid p{font-size:16px;color:var(--muted);line-height:1.6;max-width:350px}.contact{background:var(--orange);padding-top:55px;padding-bottom:65px}.contact-top{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.07em}.contact h2{font-size:clamp(68px,calc(8.9vw / 0.9),154px);letter-spacing:-.07em;line-height:1;margin:65px 0 55px;font-weight:500}.contact h2>span{color:inherit}.contact-bottom{display:flex;align-items:end;justify-content:space-between;gap:32px;border-top:1px solid #983d27;padding-top:35px}.contact-bottom p{font-size:16px}.contact-button{font-size:24px;font-weight:500;letter-spacing:-.04em;padding:20px 0 16px;display:flex;align-items:center;gap:70px;background:transparent;border-bottom:2px solid var(--ink)}.contact-button span{font-size:48px;line-height:1}.contact-button:hover span{transform:translate(4px,-4px)}footer{padding:50px var(--gutter);display:flex;justify-content:space-between;gap:40px;align-items:center}footer p{font-size:12px;color:var(--muted);line-height:1.6}.back-top{font-size:14px;display:flex;align-items:center;min-height:44px}
body:has(dialog[open]){overflow:hidden}dialog{margin:auto;background:var(--paper);color:var(--ink);padding:0;border:0;width:620px;max-width:calc(100% - 40px);max-height:calc(90svh / 0.9);overflow:auto;box-shadow:0 24px 120px #0004}dialog::backdrop{background:#181b17bb;backdrop-filter:blur(8px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:18px 30px;position:sticky;top:0;background:var(--paper);z-index:5;min-height:80px;font-size:10px;letter-spacing:.07em}.close{width:44px;height:44px;background:transparent;font-size:32px;line-height:1;font-weight:300;flex-shrink:0}.close:hover{background:#dedfd6}.dialog-body{padding:32px}.dialog-body h2{font-size:48px;margin-bottom:24px}.dialog-body>p{font-size:15px;color:var(--muted);margin:0 0 24px;line-height:1.6}.dialog-body .section-index{font-size:10px;margin-bottom:16px}.dialog-body>ul{padding-left:20px;color:var(--muted);line-height:1.8;margin:0 0 28px}.mobile-nav{padding:26px 32px}.mobile-nav a{display:flex;align-items:center;justify-content:space-between;font-size:32px;letter-spacing:-.05em;min-height:72px;border-bottom:1px solid var(--line)}.mobile-nav a:last-child{border:0}.mobile-nav a>span{font-size:12px;letter-spacing:0;color:var(--muted)}.concept-dialog{width:800px}.concept-art{height:290px;position:relative;overflow:hidden}.concept-art .concept-preview{height:100%;aspect-ratio:auto}.concept-art .editorial-word{font-size:95px;top:22%}.concept-art .digital-title{font-size:46px;top:26%}.concept-art .digital-graphic{width:190px;right:15%;bottom:20%}.selection{padding:14px 16px;background:#e5e4d9;display:flex;align-items:center;gap:12px;justify-content:space-between;font-size:13px;margin:20px 0}.selection[hidden]{display:none}.selection button{min-height:44px;padding:8px 0;background:transparent;font-size:12px;flex-shrink:0}label{display:flex;justify-content:space-between;gap:10px;font-size:14px;margin:20px 0 10px}label>span{font-size:12px;color:var(--muted)}input,select,textarea{background:transparent;border:1px solid #919487;border-radius:0;color:var(--ink);padding:14px 15px;width:100%;font-size:16px;min-height:52px}textarea{resize:vertical;min-height:136px;line-height:1.5}textarea::placeholder,input::placeholder{color:#696c60}textarea[aria-invalid=true]{border:2px solid #a93015}.form-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.form-buttons .button{font-size:13px;padding:14px 19px;gap:20px}.form-status{font-size:13px;line-height:1.5;min-height:40px;margin:17px 0 0;color:var(--muted)}.form-status.error{color:#a72e15}.form-status.success{color:#315b33}.dialog-body .privacy{margin:22px 0 0;border-top:1px solid var(--line);padding-top:18px;font-size:11px;line-height:1.6}#real-contacts a{display:block;min-height:44px;padding:12px 0;text-decoration:underline}
@media(min-width:1530px){.hero{height:900px}.hero-portrait{height:895px;right:7%;width:47%}.hero-orange{top:400px;height:380px}.hero h1{top:145px}.hero-description{top:660px}.hero-kicker{top:55px}}
@media(max-width:990px) and (min-width:630.9px){.desktop-nav{gap:20px}.header{height:90px}.hero{height:750px}.hero h1{font-size:calc(9.7vw / 0.9);top:145px}.hero-portrait{height:680px;right:1%;width:52%}.hero-orange{top:355px;height:300px}.hero-description{top:490px}.hero-description p{font-size:15px}.hero-kicker{top:44px}.section-heading{align-items:start}.section-heading>p{width:220px}.concept-label h3{font-size:22px}.service-body{gap:25px 40px}.process-grid{gap:32px}.contact-button{gap:32px}.about-grid{gap:6%}.about-copy p{font-size:16px}}
@media(max-width:810px){.desktop-nav{display:none}.menu-button{display:flex}.section-heading{display:block}.section-heading>p{width:auto;max-width:450px;margin-top:25px}.section-heading h2{max-width:650px}.aside-note{width:220px}.service-caption{display:none}.service-num{width:6%}.service-body{padding-left:11%;padding-right:0}.about-grid{grid-template-columns:.8fr 1fr;gap:5%}.about-copy h2{font-size:40px}.about-copy p{font-size:15px}.process-grid{gap:24px}.process-grid h3{font-size:22px}.process-grid p{font-size:15px}}
@media(max-width:630px){:root{--gutter:24px}.header{height:90px;gap:8px}.identity{gap:11px;font-size:10px}.brand-mark{font-size:37px;letter-spacing:-5px;margin-right:5px}.brand-sub{font-size:8px;letter-spacing:.1em;margin-top:5px}.header-actions{gap:10px}.header-cta{font-size:11px;gap:12px;min-height:44px;padding:8px 0}.header-cta span{font-size:21px}.header-cta{white-space:nowrap}.hero{height:1040px}.hero-kicker{top:25px;gap:12px;font-size:9px}.tiny-cross{font-size:32px}.hero h1{font-size:clamp(58px,calc(16.4vw / 0.9),98px);line-height:.95;top:96px;letter-spacing:-.07em}.hero-portrait{top:322px;bottom:auto;height:490px;width:100%;right:-2%;}.hero-portrait img{object-position:center bottom}.hero-orange{left:0;right:0;top:546px;height:240px}.hero-side{top:337px;right:17px;font-size:9px;z-index:2}.hero-description{top:837px;left:var(--gutter);right:var(--gutter)}.hero-description p{font-size:15px;line-height:1.5;margin-bottom:20px;max-width:420px}.desktop-break{display:none}.hero-description .button{min-height:54px;font-size:13px;gap:40px;padding:14px 22px}.hero-bottom{bottom:12px;font-size:8px;gap:15px}.hero-bottom a{font-size:10px;gap:12px}.hero-bottom a>span{font-size:20px}.discipline-strip{padding:23px var(--gutter);flex-wrap:wrap;justify-content:start;gap:12px 17px;font-size:13px}.discipline-strip>span:nth-child(even){font-size:20px}.discipline-strip>span:nth-child(6){display:none}.discipline-strip>span:last-child{width:100%;padding-top:4px}.section{padding:65px var(--gutter)}.section-top{margin-bottom:35px;gap:18px}.section-index{font-size:9px;letter-spacing:.05em}.aside-note{font-size:11px;width:142px}.section-heading{margin-bottom:32px}.section-heading>p{font-size:14px;line-height:1.55;max-width:330px;margin-top:23px}h2{font-size:40px;letter-spacing:-.055em;line-height:1.1}.concept-grid{grid-template-columns:1fr;gap:36px}.digital{padding-top:0}.concept-preview{padding:20px;aspect-ratio:1.18}.editorial-word{font-size:clamp(60px,calc(16.8vw / 0.9),98px);left:20px;top:27%}.editorial-word i{margin-left:25px}.mock-nav{font-size:7px}.mock-nav b{font-size:16px}.editorial-bottom{bottom:20px;left:20px;right:20px;font-size:9px}.mock-circle{width:43px;height:43px;font-size:23px}.mock-vertical{right:17px;font-size:7px}.digital-title{font-size:clamp(30px,calc(8.5vw / 0.9),52px);left:20px;top:26%}.digital-bottom{left:20px;right:20px;bottom:20px;font-size:8px}.digital-graphic{right:8%;bottom:20%;width:36%}.concept-label{padding:19px 0}.mini-label{font-size:8px}.concept-label h3{font-size:23px}.round-arrow{width:44px;height:44px;font-size:23px}.services{padding-top:20px;padding-bottom:70px}.services h2{margin-bottom:38px}summary{gap:14px;min-height:100px;padding:20px 0}summary h3{font-size:29px}.service-num{width:24px;font-size:11px}.plus{font-size:30px;width:32px}.service-body{padding:0 0 28px 38px;display:block;font-size:14px}.service-body p{margin-bottom:20px;line-height:1.6}.service-body ul{margin-bottom:18px;font-size:13px}.text-button{font-size:13px}.about{padding:40px var(--gutter) 65px}.about-top{margin-bottom:30px}.about-star{font-size:48px}.about-grid{display:flex;flex-direction:column-reverse;gap:40px;align-items:stretch}.about-copy h2{font-size:40px;margin-bottom:26px}.about-copy p{font-size:15px;line-height:1.65}.about-photo{align-self:stretch;margin-right:45px;padding-top:15px}.about-photo img{max-height:370px}.about-photo>span{font-size:8px}.process h2{margin-bottom:40px}.process-grid{grid-template-columns:1fr;gap:32px}.process-grid li{padding-top:18px}.process-grid li>span{font-size:9px}.process-grid h3{font-size:26px;margin:20px 0 14px}.process-grid p{font-size:15px;max-width:440px}.contact{padding-top:35px;padding-bottom:40px}.contact-top{font-size:8px;gap:20px;align-items:start}.contact-top>span{width:80px;text-align:right;line-height:1.6}.contact h2{font-size:clamp(52px,calc(14.3vw / 0.9),92px);line-height:1.03;margin:45px 0 35px;letter-spacing:-.065em}.contact h2>span{white-space:nowrap}.contact-bottom{display:block;padding-top:25px}.contact-bottom p{font-size:14px}.contact-button{font-size:23px;gap:38px;width:100%;justify-content:space-between;margin-top:24px;padding:13px 0}.contact-button span{font-size:43px}footer{padding:35px var(--gutter);gap:26px;flex-wrap:wrap}footer .identity{width:60%}footer p{order:3;width:100%;font-size:11px}.back-top{font-size:12px}dialog{max-width:calc(100% - 28px);max-height:calc(93svh / 0.9)}.dialog-head{padding:14px 20px;min-height:72px;font-size:9px;letter-spacing:.04em}.dialog-body{padding:25px 22px}.dialog-body h2{font-size:38px;margin-bottom:22px}.dialog-body>p{font-size:14px}.mobile-nav{padding:18px 22px}.mobile-nav a{font-size:29px;min-height:70px}.concept-art{height:230px}.concept-art .editorial-word{font-size:64px;top:24%}.concept-art .digital-title{font-size:32px;top:28%}.concept-art .digital-graphic{width:100px;right:10%;bottom:20%}.dialog-body>ul{font-size:14px}.dialog-body .button{font-size:12px;padding:14px 18px;gap:18px}.form-buttons .button{width:100%;font-size:13px;justify-content:center;gap:25px;min-height:52px}.form-buttons{gap:10px}.selection{align-items:start;font-size:12px}.selection button{font-size:11px}label{font-size:13px}label>span{font-size:11px}.form-status{font-size:12px}.dialog-body .privacy{font-size:10px}}
@media(max-width:333px){:root{--gutter:20px}.header-cta{font-size:10px;gap:8px}.header-actions{gap:7px}.identity{font-size:9px;gap:8px}.header .brand-sub{font-size:7px}.brand-mark{font-size:31px}.menu-button{width:35px}.hero h1{font-size:calc(16.5vw / 0.9)}.hero-portrait{height:450px;top:320px;width:110%;right:-5%}.hero-orange{top:525px;height:220px}.hero-description{top:801px}.hero{height:1020px}.hero-description p{font-size:14px}.hero-side{top:320px}.hero-bottom>span{max-width:130px}.section-top{display:block}.aside-note{width:auto;margin-top:14px}summary h3{font-size:25px}.service-body{padding-left:0}.concept-label h3{font-size:20px}h2,.about-copy h2{font-size:35px}.contact h2{font-size:calc(14vw / 0.9)}.about-photo{margin-right:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Align the natural crop with the viewport, not a floating image edge. */
@media(min-width:630.9px){.hero-portrait{right:0}.hero-portrait img{object-position:right bottom}.hero-bottom a{color:var(--paper);text-shadow:0 1px 8px #0009}}
@media(max-width:630px){.hero-portrait{right:0;width:100%}}

.slash-mark{display:flex;align-items:center;justify-content:center;width:1em;height:1em;font-style:normal;font-weight:400;line-height:1}.concept-art .editorial-word{font-size:82px;top:20%}.concept-art .mock-vertical{display:none}.concept-art .digital-graphic{bottom:24%}@media(max-width:630px){.concept-art .editorial-word{font-size:60px;top:22%}}
@media(max-width:630px){.concept-card.digital .digital-title{top:20%;font-size:clamp(27px,calc(7.8vw / 0.9),48px)}.concept-card.digital .digital-graphic{width:30%;bottom:19%}}
/* Orange second screen: a full-width field with two contrasting concepts. */
.projects{background:var(--orange);color:var(--ink);margin-bottom:70px}
.projects .aside-note,.projects .section-heading>p,.projects .mini-label{color:var(--ink)}
.projects h2>span{color:#fff}
.projects .concept-label{border-bottom-color:#71301f}
.projects .round-arrow{border-color:var(--ink)}
.projects .concept-card:hover .round-arrow{background:var(--ink);color:var(--paper)}
.projects .concept-card:focus-visible{outline-color:var(--ink)}
.editorial-preview{background:var(--paper);color:var(--ink)}
.editorial-word i{color:#95351f}
.editorial-preview .mock-circle{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.digital-preview{background:var(--ink)}
.digital-title>span,.digital-bottom>span:last-child{color:#ff805b}
.digital-graphic span{border-color:#ff805b}
.digital-graphic span:nth-child(2){background:#ff805b}
.digital-graphic span:nth-child(3){background:var(--ink);border-color:var(--ink)}
.digital-bottom{border-top-color:#777067}
@media(max-width:630px){.projects{margin-bottom:40px}}
/* Portfolio: vertical page scroll drives a pinned horizontal image lane. */
.projects .section-heading{margin-bottom:36px}.gallery-setup{padding:24px;border:1px solid #7f301e;display:grid;grid-template-columns:1fr auto;gap:12px 28px;margin-bottom:24px;color:var(--ink)}.gallery-setup[hidden]{display:none}.gallery-setup strong{font-size:16px;font-weight:500}.gallery-setup p{font-size:13px;line-height:1.5;max-width:650px;margin-top:7px}.gallery-setup-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.upload-works,.export-gallery{margin:0;position:relative;min-height:48px;padding:12px 18px;background:var(--ink);color:var(--paper);font-size:13px;display:flex;align-items:center;justify-content:center;gap:22px;cursor:pointer}.upload-works input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0}.upload-works:focus-within{outline:3px solid white;outline-offset:3px}.export-gallery{background:transparent;color:var(--ink);border:1px solid var(--ink)}.export-gallery:disabled{opacity:.45;cursor:not-allowed}#gallery-upload-status{grid-column:1/-1;margin:0;font-size:12px}.gallery-scroll-scene{position:relative;margin-top:24px}.gallery-pin{position:sticky;top:0;height:var(--pin-height,calc(100svh / 0.9));display:flex;flex-direction:column;justify-content:center;gap:18px;padding:24px 0;background:var(--orange)}.gallery-bar{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:48px}.gallery-index{display:flex;align-items:center;gap:16px;font-size:18px;line-height:1}.gallery-index-rule{width:48px;height:1px;background:var(--ink)}#gallery-total{font-size:13px}#gallery-instruction{font-size:12px;line-height:1.5;margin-left:auto}.gallery-controls,.work-viewer-arrows{display:flex;gap:8px}.gallery-controls button,.work-viewer-arrows button{border:1px solid var(--ink);background:transparent;color:var(--ink);width:48px;height:48px;font-size:25px;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.gallery-controls button:hover:not(:disabled),.work-viewer-arrows button:hover:not(:disabled){background:var(--ink);color:var(--paper)}.gallery-controls button:disabled{opacity:.35;cursor:default}.works-viewport{width:100%;overflow:hidden;outline-offset:4px;--card-width:clamp(330px,calc(54vw / 0.9),760px)}.works-viewport:focus-visible{outline:2px solid var(--ink)}.works-track{display:flex;gap:28px;width:max-content;will-change:transform}.work-card{width:var(--card-width);flex-shrink:0;min-width:0}.work-open{position:relative;width:100%;padding:0;border:0;background:var(--paper);text-align:left;display:block}.work-visual{height:clamp(230px,calc(46svh / 0.9),500px);width:100%;position:relative;background:var(--paper);overflow:hidden}.work-visual img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .5s}.work-open:hover img{transform:scale(1.025)}.work-visual .work-zoom{position:absolute;right:18px;bottom:18px;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--ink);color:var(--paper);font-size:25px}.work-placeholder{height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:30px;color:var(--ink);background:var(--paper)}.work-placeholder-top{display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.06em}.work-placeholder-number{font-size:clamp(110px,calc(15vw / 0.9),220px);font-weight:400;line-height:.9;letter-spacing:-.08em;align-self:center}.work-placeholder-caption{font-size:15px;line-height:1.5}.work-placeholder-caption small{display:block;font-size:12px;margin-top:5px}.work-card:nth-child(even) .work-placeholder{color:var(--paper);background:var(--ink)}.work-card:nth-child(even) .work-placeholder-number{color:#ff805b}.work-card:nth-child(3n) .work-placeholder{background:#d8d7ca}.work-card:nth-child(3n) .work-placeholder-number{color:#95351f}.work-label{border-bottom:1px solid #71301f;padding:20px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:87px}.work-label .mini-label{font-size:10px;letter-spacing:.05em}.work-label h3{font-size:25px;line-height:1.2;font-weight:500;letter-spacing:-.035em;margin-top:6px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.work-label .work-number{font-size:13px;flex-shrink:0}.gallery-progress{height:2px;background:#8d371f;position:relative;margin-top:3px}.gallery-progress span{position:absolute;left:0;top:0;bottom:0;background:var(--ink);width:14.2857%;transform-origin:left;transition:none}.gallery-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;min-height:44px;letter-spacing:.06em}.gallery-foot a{display:flex;min-height:44px;gap:16px;align-items:center;letter-spacing:0;font-size:12px}.gallery-foot a>span{font-size:23px}.gallery-manual .gallery-pin{position:relative;height:auto;min-height:0}.gallery-manual .works-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--ink) transparent;overscroll-behavior-x:contain}.gallery-manual .works-track{transform:none!important;will-change:auto}.gallery-manual .work-card{scroll-snap-align:start}.gallery-manual .work-visual{height:min(calc(46svh / 0.9),450px)}.work-dialog{width:1000px}.work-image-stage{background:#deded4;max-height:calc(60svh / 0.9);overflow:auto}.work-image-stage>img{width:100%;height:auto;display:block}.work-image-stage>.work-placeholder{height:330px}.work-image-stage .work-placeholder-number{font-size:130px}.work-viewer-actions{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.work-viewer-actions button:disabled{opacity:.4;cursor:not-allowed}#work-note[hidden]{display:none}
@media(max-width:810px){.gallery-setup{grid-template-columns:1fr}.gallery-setup-actions{justify-content:start}.works-viewport{--card-width:calc(70vw / 0.9)}#gallery-instruction{max-width:230px}.gallery-setup{padding:20px}}
@media(max-width:630px){.projects .section-heading{margin-bottom:28px}.gallery-setup{padding:18px;margin-bottom:18px;gap:16px}.gallery-setup strong{font-size:15px}.gallery-setup p{font-size:12px}.gallery-setup-actions{gap:10px}.upload-works,.export-gallery{font-size:12px;padding:12px 14px;min-height:46px;gap:15px}#gallery-upload-status{font-size:11px}.gallery-scroll-scene{margin-top:0}.gallery-pin{padding:18px 0;gap:14px}.gallery-bar{gap:15px;flex-wrap:wrap;min-height:48px}.gallery-index{font-size:17px;gap:12px}.gallery-index-rule{width:28px}.gallery-controls button{width:44px;height:44px;font-size:23px}#gallery-instruction{font-size:11px;max-width:180px;flex:1;margin:0}.gallery-controls{margin-left:auto}.works-viewport{--card-width:calc(calc(100vw / 0.9) - 72px)}.works-track{gap:18px}.work-visual{height:clamp(220px,calc(43svh / 0.9),360px)}.work-placeholder{padding:22px}.work-placeholder-top{font-size:9px}.work-placeholder-number{font-size:142px}.work-placeholder-caption{font-size:14px}.work-placeholder-caption small{font-size:11px}.work-label{min-height:80px;padding:17px 0}.work-label h3{font-size:23px}.work-label .mini-label{font-size:8px}.work-label .work-number{font-size:11px}.gallery-foot{font-size:8px;gap:12px}.gallery-foot a{font-size:11px;gap:10px}.gallery-foot a>span{font-size:19px}.work-visual .work-zoom{width:44px;height:44px;right:14px;bottom:14px;font-size:24px}.work-image-stage{max-height:calc(50svh / 0.9)}.work-viewer-actions{gap:16px}.work-viewer-actions>.button{width:100%;justify-content:space-between}.work-viewer-arrows button{width:44px;height:44px}.work-image-stage>.work-placeholder{height:270px}.work-image-stage .work-placeholder-number{font-size:100px}}
@media(max-height:540px){.gallery-bar{flex-wrap:nowrap}.gallery-pin{height:auto}.work-visual{height:240px}.gallery-manual .work-visual{height:240px}}
/* Requested brand accent in both header and footer. */
.identity .brand-mark{color:var(--orange)}
.hero-cta-pair{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap}.hero-cta-pair .button{gap:22px}.hero-cta-pair .outline{border-color:var(--ink)}#brief-title{white-space:pre-line}
@media(max-width:630px){.hero-cta-pair{gap:10px}.hero-description .hero-cta-pair .button{font-size:12px;padding:12px 15px;gap:16px;min-height:52px}}
@media(max-width:333px){.hero-description .hero-cta-pair .button{padding:12px;gap:10px;font-size:11px}}
.desktop-nav{gap:26px}.blog{padding-top:70px;border-top:1px solid var(--line)}.blog-empty{display:grid;grid-template-columns:1.5fr 1fr;gap:60px;align-items:end}.blog-empty>div{max-width:380px}.blog-status{display:block;font-size:10px;letter-spacing:.06em;margin-bottom:17px;color:var(--muted)}.blog-empty p{font-size:16px;color:var(--muted);line-height:1.6}
@media(max-width:990px){.desktop-nav{gap:18px}.desktop-nav a{font-size:12px}}
@media(max-width:630px){.blog{padding-top:55px}.blog-empty{grid-template-columns:1fr;gap:30px}.blog-empty p{font-size:15px}.blog-status{font-size:9px}}
@media(min-width:630.9px){.hero-description{width:420px;max-width:calc(calc(46vw / 0.9) - var(--gutter))}}
@media(min-width:630.9px) and (max-width:990px){.hero-cta-pair .button{font-size:12px;padding:14px 16px;gap:12px}}
@media(max-width:630px){.hero-description{width:auto;max-width:none}}

/* Estimate questionnaire */
#price-dialog{width:680px}#price-dialog .dialog-head{gap:16px}#quiz-step{margin-left:auto;white-space:nowrap}.quiz-progress-track{height:3px;background:#d5d5ca}.quiz-progress-track span{display:block;background:var(--orange);height:100%;transition:width .2s}.quiz-hint{font-size:14px!important;color:var(--muted);line-height:1.6;margin:16px 0 22px!important}.quiz-options{border:0;padding:0;margin:24px 0;display:grid;gap:10px}.quiz-option{display:flex;gap:14px;align-items:center;min-height:56px;border:1px solid #a2a396;padding:14px 16px;margin:0;cursor:pointer;font-size:15px}.quiz-option:has(input:checked){background:#e3e2d8;border-color:#1b1c19}.quiz-option input{width:20px;height:20px;min-height:0;margin:0;flex:0 0 20px;accent-color:#a83218}.quiz-option span{font-size:inherit;color:inherit}.quiz-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:24px}.quiz-actions .button{min-height:52px;font-size:14px}.quiz-skip{background:none;min-height:44px;text-decoration:underline;font-size:14px}.quiz-error{font-size:14px;color:#a52e19;margin-top:12px}.quiz-error:empty{display:none}.quiz-estimate{padding:26px;background:#e3e2d8;margin:24px 0}.quiz-estimate h3{font-size:32px;font-weight:500;line-height:1.15;letter-spacing:-.045em;margin:16px 0}.quiz-estimate p:last-child{font-size:14px;color:#53554c;line-height:1.6}.quiz-summary summary{min-height:64px;padding:12px 0;font-size:18px}.quiz-summary summary:after{content:'+';margin-left:auto}.quiz-summary[open] summary:after{content:'−'}.quiz-summary dl{font-size:14px;line-height:1.6}.quiz-summary dt{font-weight:600;margin:18px 0 5px}.quiz-summary dd{margin:0;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.quiz-status{background:#e3e2d8;padding:18px;font-size:14px;line-height:1.6;margin-top:24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#quiz-telegram{margin-top:18px}#quiz-body h2{font-size:clamp(31px,calc(4vw / 0.9),45px)}[hidden]{display:none!important}@media(max-width:630px){.quiz-actions{gap:10px}.quiz-actions .button{padding:14px 16px}.quiz-option{font-size:14px;padding:12px;min-height:54px}.quiz-estimate{padding:20px}.quiz-estimate h3{font-size:29px}#quiz-body{padding:26px 22px}.quiz-actions .black{flex-grow:1;justify-content:center}.quiz-actions .outline{justify-content:center}}
@media(prefers-reduced-motion:no-preference){.section-heading,.about-copy,.process-grid>li,.blog-empty{transition:opacity .4s ease,transform .4s ease}.reveal-pending{opacity:0;transform:translateY(12px)}#quiz-body{animation:quiz-enter .2s ease both}@keyframes quiz-enter{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
@media(prefers-reduced-motion:reduce){.reveal-pending{opacity:1!important;transform:none!important}.quiz-progress-track span{transition:none}#quiz-body{animation:none}}
.quiz-option{justify-content:flex-start}.quiz-option>span{flex:1;text-align:left;margin:0}

@media(min-width:990.9px){html:lang(es) .hero h1{font-size:clamp(88px,calc(8.3vw / 0.9),144px)}}
/* Global navigation and contact icons */
i18n-text{display:inline} .language-select {
    width: 48px;
    flex: 0 0 auto;
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    min-width: 48px;
    min-height: 30px;
    border: 1px solid #1b1c19;
    border-radius: 0;
    padding: 0 19px 0 5px;
    background-color: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%276%27 viewBox=%270 0 10 6%27%3E%3Cpath d=%27m1 1 4 4 4-4%27 fill=%27none%27 stroke=%27%231b1c19%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 5px center;
    background-size: 10px 6px;
    -webkit-appearance: none;
    color: var(--ink);
    cursor: pointer;
} .language-select:focus-visible{outline:2px solid var(--orange);outline-offset:4px}.footer-extra{border-top:1px solid var(--line);padding:24px var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:24px}.language-links{display:flex;gap:8px 24px;flex-wrap:wrap}.language-links a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;text-decoration:none}.language-links a[aria-current=page]{color:#a83218;text-decoration:underline;text-underline-offset:5px}.social-links{display:flex;gap:12px}.social-icon{width:44px;height:44px;border:1px solid var(--ink);display:flex;align-items:center;justify-content:center;color:var(--ink)}.social-icon svg{width:23px;height:23px;fill:currentColor}.social-icon[aria-disabled]{opacity:.55;cursor:not-allowed}.social-icon[href]:hover{background:var(--orange)}.header-actions{gap:16px}.header-cta{white-space:nowrap;flex-shrink:0}#brief-title{white-space:pre-line}.service-list h3{overflow-wrap:break-word}html:lang(de) .identity,html:lang(fr) .identity{font-size:11px}.service-body{overflow-wrap:break-word}@media(max-width:990px){.desktop-nav{gap:16px}.header-cta{display:none}}@media(max-width:630px){.header-actions{gap:12px}.footer-extra{flex-direction:column;align-items:flex-start}.language-links{gap:4px 20px}.hero-cta-pair{flex-wrap:wrap}.hero-cta-pair .button{min-height:52px}.service-list h3{font-size:clamp(23px,calc(7vw / 0.9),30px)}}@media(max-width:323.1px){.header-actions{gap:6px}.header .identity{gap:8px;font-size:8px!important}.header{gap:10px}.hero h1{font-size:clamp(48px,calc(15.5vw / 0.9),58px)}}

/* Global 90% presentation, with viewport sizing matched to browser zoom. */
:root { --site-scale: 0.9; zoom: 0.9; }
/* Lift the hero description without changing the surrounding layout. */
.hero-description { transform: translateY(-30px); }

/* Portfolio screenshot proportions. */
.work-visual, .gallery-manual .work-visual { height: auto; aspect-ratio: 2 / 1; }
.work-visual img { object-fit: cover; object-position: center; }

/* Theme switch: immediately after the brand, before navigation. */
.header-brand { display: flex; align-items: center; gap: 18px; flex: 0 0 auto; }
.theme-toggle { width: 44px; height: 44px; min-width: 44px; padding: 10px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; background: transparent; color: var(--ink); border: 1px solid transparent; }
.theme-toggle:hover { background: #1b1c190c; border-color: var(--line); }
.theme-toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.theme-toggle .theme-sun { display: none; }
html[data-theme="dark"] .theme-toggle .theme-moon { display: none; }
html[data-theme="dark"] .theme-toggle .theme-sun { display: block; }
html[data-theme="light"] { color-scheme: light; }
html[data-theme="dark"] { color-scheme: dark; --paper: #353535; --ink: #f4f2ed; --muted: #c5c5bf; --line: #6b6b67; --theme-surface: #424242; }
html[data-theme="dark"] body { background: #353535; }
html[data-theme="dark"] .theme-toggle:hover { background: #ffffff0d; }
html[data-theme="dark"] .hero-description p { color: #d0d0cb; }
html[data-theme="dark"] .hero-portrait { mix-blend-mode: normal; }
html[data-theme="dark"] .discipline-strip > span:nth-child(even),
html[data-theme="dark"] h2 > span { color: #b9bab3; }
html[data-theme="dark"] .black:hover { background: #dad8d1; }
html[data-theme="dark"] .outline { border-color: #a1a19b; }
html[data-theme="dark"] .outline:hover { background: #484848; }
html[data-theme="dark"] details[open] summary h3,
html[data-theme="dark"] .language-links a[aria-current="page"] { color: #ffab91; }
html[data-theme="dark"] .skip { color: #353535; }
html[data-theme="dark"] :is(button,a,input,select,textarea,summary):focus-visible { outline-color: #ffab91; }
html[data-theme="dark"] ::selection { background: #ffab91; color: #1b1c19; }
/* Orange sections keep their original high-contrast ink and visual identity. */
html[data-theme="dark"] :is(.projects,.contact) { --ink: #1b1c19; --paper: #efeee9; --muted: #35352f; --line: #71301f; color: #1b1c19; color-scheme: light; }
html[data-theme="dark"] .projects h2 > span { color: #fff; }
html[data-theme="dark"] .contact h2 > span { color: inherit; }
/* The about section stays dark, rather than inverting into a light block. */
html[data-theme="dark"] .about { background: #272727; color: #f4f2ed; }
html[data-theme="dark"] .about-photo { background: #353535; }
html[data-theme="dark"] .about-photo img { mix-blend-mode: normal; }
html[data-theme="dark"] .about-photo > span { background: #272727; color: #c5c5bf; }
html[data-theme="dark"] .about-copy h2 > span { color: #b9bab3; }
html[data-theme="dark"] .about-copy p { color: #cdcdc6; }
html[data-theme="dark"] .about .light { color: #f4f2ed; }
/* Native controls, questionnaires, dialogs, validation and selected states. */
html[data-theme="dark"] dialog::backdrop { background: #101010cc; }
html[data-theme="dark"] .close:hover { background: #4a4a4a; }
html[data-theme="dark"] :is(.selection,.quiz-estimate,.quiz-status) { background: var(--theme-surface); }
html[data-theme="dark"] .quiz-progress-track { background: #62625e; }
html[data-theme="dark"] .quiz-option { border-color: #888882; }
html[data-theme="dark"] .quiz-option:hover { background: #3e3e3e; }
html[data-theme="dark"] .quiz-option:has(input:checked) { background: #4d403b; border-color: #ffab91; }
html[data-theme="dark"] .quiz-option input { accent-color: #ffab91; }
html[data-theme="dark"] .quiz-estimate p:last-child { color: #d0d0cb; }
html[data-theme="dark"] :is(input,select,textarea) { border-color: #92928a; }
html[data-theme="dark"] :is(input,textarea)::placeholder { color: #babbb3; opacity: 1; }
html[data-theme="dark"] select option { background: #353535; color: #f4f2ed; }
html[data-theme="dark"] :is(.form-status.error,.quiz-error) { color: #ffb6a1; }
html[data-theme="dark"] textarea[aria-invalid="true"] { border-color: #ffb6a1; }
html[data-theme="dark"] .form-status.success { color: #a8dcb0; }
html[data-theme="dark"] .work-image-stage { background: #2b2b2b; }
html[data-theme="dark"] .language-select { background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%276%27 viewBox=%270 0 10 6%27%3E%3Cpath d=%27m1 1 4 4 4-4%27 fill=%27none%27 stroke=%27%23f4f2ed%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E"); }
html[data-theme="dark"] .social-icon[href]:hover { color: #1b1c19; }
@media(max-width:990px) { .header-brand { gap: 12px; } }
@media(max-width:630px) { .header-brand { gap: 8px; } .theme-toggle { width: 44px; min-width: 44px; } }
@media(max-width:323.1px) { .header-brand { gap: 4px; } }
html[data-theme="dark"] .hero-bottom a { color: #f4f2ed; text-shadow: 0 1px 8px #0009; }
/* Direct contact methods, plus the existing enquiry form. */
.contact-actions { display: grid; grid-template-columns: 1fr; gap: 12px; width: min(100%,440px); flex-shrink: 0; }
.contact-actions .contact-button { font-size: 20px; gap: 24px; justify-content: space-between; padding: 13px 0; margin: 0; width: 100%; }
.contact-actions .contact-button > span { font-size: 32px; }
.contact-method { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 13px 16px; border: 1px solid #1b1c19; color: #1b1c19; font-size: 15px; }
.contact-method:hover { background: #1b1c19; color: #efeee9; }
.contact-method > span { font-size: 23px; line-height: 1; }
@media(max-width:630px) { .contact-actions { width: 100%; margin-top: 26px; } .contact-actions .contact-button { font-size: 20px; } }
/* Keep navigation available while scrolling; reserve space at anchor targets. */
:root { --sticky-header-height: 106px; scroll-padding-top: calc(var(--sticky-header-height) + 20px); }
.header { position: sticky; top: 0; z-index: 40; background: var(--paper); }
.gallery-pin { top: var(--sticky-header-height); }
@media(max-width:990px) and (min-width:630.9px) { :root { --sticky-header-height: 90px; } }
@media(max-width:630px) { :root { --sticky-header-height: 85px; } }

/* Requested finishing corrections: both themes and all languages. */
html:not([data-theme="dark"]) .services h2 > span { color: #ff542f; }
.contact h2 > .contact-idea,
html[data-theme="dark"] .contact h2 > .contact-idea { color: #fff; }
.header-cta { color: #ff542f; border-bottom-color: #ff542f; }

/* Compact next-step section: copy left, contact methods right. */
.contact { padding-top: 102px; padding-bottom: 104px; }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); gap: clamp(32px, 4vw, 64px); align-items: center; margin-top: 32px; }
.contact .contact-copy { min-width: 0; }
.contact .contact-copy h2 { font-size: clamp(56px, calc(6vw / 0.9), 100px); line-height: 1.02; margin: 0 0 24px; }
.contact-copy > p { font-size: 16px; line-height: 1.5; }
.contact-layout > .contact-actions { width: 100%; margin: 0; gap: 10px; }
.contact-layout .contact-method { min-height: 48px; padding: 11px 14px; }
.contact-layout .contact-button { min-height: 48px; padding: 9px 0; }
@media (max-width: 990px) {
 .contact-layout { grid-template-columns: minmax(0, 1fr) minmax(285px, 340px); gap: 28px; }
 .contact .contact-copy h2 { font-size: clamp(48px, calc(5.7vw / 0.9), 68px); }
}
@media (max-width: 730px) {
 .contact { padding-top: 28px; padding-bottom: 30px; }
 .contact-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 26px; }
 .contact .contact-copy h2 { font-size: clamp(48px, calc(12.6vw / 0.9), 76px); margin-bottom: 18px; }
 .contact-copy > p { font-size: 14px; }
 .contact-layout > .contact-actions { margin: 0; }
}

/* Compact, shared footer: owner in the main row, legal links beside languages. */
.site-footer { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 24px; padding-top: 30px; padding-bottom: 30px; }
.site-footer .footer-owner { font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; white-space: nowrap; }
.site-footer .footer-owner p { display: inline; margin: 0 12px 0 0; font-size: 13px; color: var(--ink); }
.footer-owner a { text-decoration: none; white-space: nowrap; }
.footer-owner a:hover { text-decoration: underline; }
.footer-extra { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 460px) auto; align-items: start; gap: 24px; padding-top: 18px; padding-bottom: 18px; }
.footer-legal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 20px; }
.footer-legal a, .footer-legal button { display: flex; align-items: center; min-height: 44px; font: inherit; font-size: 12px; line-height: 1.4; text-align: left; color: var(--ink); background: transparent; padding: 4px 0; overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 3px; }
.footer-extra .language-links { gap: 4px 20px; }
.footer-extra .social-links { padding-top: 3px; }
.blog-empty h2 > span, html[data-theme="dark"] .blog-empty h2 > span { color: var(--muted); }
@media (max-width: 1100px) {
 .site-footer { grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px 24px; }
 .site-footer > p { grid-column: 2; }
 .site-footer .footer-owner { grid-column: 1 / 3; grid-row: 2; white-space: normal; }
 .site-footer .back-top { grid-column: 3; grid-row: 1; }
 .footer-extra { grid-template-columns: minmax(0, 1fr) auto; }
 .footer-extra .footer-legal { grid-column: 1 / -1; grid-row: 2; }
 .footer-extra .social-links { grid-column: 2; grid-row: 1; }
}
@media (max-width: 630px) {
 .site-footer { grid-template-columns: minmax(0, 1fr) auto; gap: 16px; padding-top: 24px; padding-bottom: 24px; }
 .site-footer .identity { width: auto; }
 .site-footer > p { grid-column: 1 / -1; grid-row: 2; order: initial; margin: 0; }
 .site-footer .footer-owner { grid-column: 1 / -1; grid-row: 3; }
 .site-footer .back-top { grid-column: 2; grid-row: 1; }
 .footer-extra { gap: 14px; }
 .footer-extra .language-links { gap: 0 16px; }
 .footer-extra .language-links a { font-size: 13px; }
 .footer-extra .social-links { gap: 8px; }
 .footer-legal { gap: 6px 16px; }
}

/* Language follows brand and theme; underline only, no square frame. */
.language-select { border: 0; border-bottom: 1px solid currentColor; }
.header-brand .language-select { margin-left: 2px; }
@media (max-width: 630px) { .header-brand { gap: 8px; } .header-brand .language-select { margin-left: 0; } }
@media (max-width: 323.1px) { .header-brand { gap: 4px; } }

/* Latest request: process accent and one horizontal legal navigation. */
.process h2 > span, html[data-theme="dark"] .process h2 > span { color: #ff542f; }
.footer-extra { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 24px; }
.footer-extra .language-links { grid-column: 1; grid-row: 1; }
.footer-extra .social-links { grid-column: 2; grid-row: 1; }
.footer-extra .footer-legal { grid-column: 1 / -1; grid-row: 2; display: flex; flex-direction: row; flex-wrap: wrap; gap: 4px 28px; }
.footer-legal a, .footer-legal button { flex: 0 1 auto; }
@media (max-width: 630px) { .footer-extra .footer-legal { gap: 2px 18px; } }

/* Footer: brand, direct contacts, then quiet utility navigation. */
.site-footer { grid-template-columns: minmax(240px,1fr) auto auto; align-items: start; gap: 32px 48px; padding-top: 40px; padding-bottom: 32px; }
.site-footer .footer-brand { min-width: 0; }
.site-footer .footer-brand .identity { width: auto; display: inline-flex; }
.site-footer .footer-brand > p { width: auto; margin: 16px 0 0 56px; font-size: 14px; line-height: 1.6; }
.site-footer .footer-owner { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; grid-column: auto; grid-row: auto; white-space: normal; overflow-wrap: normal; }
.site-footer .footer-owner > p { display: block; width: auto; order: initial; margin: 0; font-size: 14px; line-height: 1.6; font-weight: 500; }
.footer-contact-row { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.footer-contact-links { display: flex; gap: 8px 24px; align-items: center; flex-wrap: wrap; }
.footer-contact-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; text-decoration: none; }
.footer-contact-links a:hover { color: var(--orange); }
.site-footer .social-links { display: flex; gap: 8px; padding: 0; }
.site-footer .social-icon { width: 44px; height: 44px; min-width: 44px; border-color: var(--line); }
.site-footer .back-top { grid-column: auto; grid-row: auto; min-height: 44px; align-self: start; font-size: 14px; white-space: nowrap; }
.footer-extra { display: flex; flex-direction: row; align-items: flex-start; justify-content: space-between; gap: 20px 40px; padding-top: 20px; padding-bottom: 28px; }
.footer-extra .language-links { flex: 0 0 auto; display: flex; flex-wrap: wrap; gap: 0 20px; }
.footer-extra .language-links a { min-height: 44px; font-size: 14px; }
.footer-extra .footer-legal { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0 24px; max-width: 850px; }
.footer-extra .footer-legal a, .footer-extra .footer-legal button { min-height: 44px; font-size: 13px; line-height: 1.5; text-decoration: none; color: var(--muted); }
.footer-extra .footer-legal a:hover, .footer-extra .footer-legal button:hover { text-decoration: underline; color: var(--ink); }
@media (max-width: 1200px) {
 .site-footer { grid-template-columns: minmax(220px,1fr) minmax(0,1fr) auto; gap: 28px; }
 .footer-contact-row { gap: 12px; }
 .footer-contact-links { gap: 0 20px; }
 .footer-extra { flex-direction: column; gap: 8px; }
 .footer-extra .footer-legal { justify-content: flex-start; max-width: none; }
}
@media (max-width: 730px) {
 .site-footer { grid-template-columns: minmax(0,1fr) auto; gap: 24px 16px; padding-top: 28px; padding-bottom: 24px; }
 .site-footer .footer-brand { grid-column: 1; grid-row: 1; }
 .site-footer .footer-brand > p { margin: 12px 0 0; font-size: 14px; }
 .site-footer .footer-owner { grid-column: 1 / -1; grid-row: 2; gap: 8px; }
 .site-footer .footer-owner > p { font-size: 14px; }
 .site-footer .back-top { grid-column: 2; grid-row: 1; font-size: 14px; }
 .footer-contact-row { width: 100%; justify-content: space-between; gap: 12px; }
 .footer-contact-links { gap: 0 20px; }
 .footer-extra { padding-top: 14px; padding-bottom: 22px; gap: 8px; }
 .footer-extra .language-links { gap: 0 18px; }
 .footer-extra .footer-legal { gap: 0 20px; }
 .footer-extra .footer-legal a, .footer-extra .footer-legal button { font-size: 13px; }
}
/* Header CTA: dark ink and the existing orange underline. */
.header-cta { color: #252822; border-bottom-color: #ff542f; }
html[data-theme="dark"] .header-cta { color: var(--ink); }
/* Updated hero headline, kept to three explicit lines. */
.hero h1 { font-size: clamp(64px,calc(6vw / 0.8),184px); line-height: 1.02; letter-spacing: -.06em; }
@media(max-width:990px) { .hero h1 { font-size: clamp(52px,calc(7.2vw / 0.9),88px); } }
@media(max-width:630px) { .hero h1 { font-size: clamp(30px,calc(8.7vw / 0.9),60px); } }
/* Final questionnaire step: an explicit reply destination, never an automatic quote. */
#quiz-body h2.quiz-contact-title { font-size: clamp(26px,calc(3vw / 0.9),36px); line-height: 1.1; letter-spacing: -.04em; }
#price-dialog .quiz-hint { margin: 12px 0 22px !important; }
.quiz-contact-form { display: grid; gap: 20px; }
.quiz-contact-form label.quiz-field { display: grid; grid-template-columns: minmax(0,1fr); justify-content: stretch; gap: 8px; margin: 0; font-size: 14px; }
.quiz-contact-form .quiz-field > span { font-size: 14px; color: var(--ink); }
.quiz-contact-form input:not([type="radio"]) { width: 100%; margin: 0; min-height: 52px; font-size: 16px; }
.quiz-channel-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 0; border: 0; margin: 0; }
.quiz-channel-options legend { padding: 0; margin-bottom: 12px; font-size: 14px; }
.quiz-channel { display: flex; justify-content: center; align-items: center; gap: 8px; border: 1px solid var(--line); padding: 12px 8px; min-height: 52px; font-size: 14px; cursor: pointer; margin: 0; }
.quiz-channel input { width: 16px; height: 16px; min-height: 0; flex: 0 0 16px; margin: 0; accent-color: var(--orange); }
.quiz-channel span { font: inherit; margin: 0; }
.quiz-channel:has(input:checked) { border-color: var(--orange); background: color-mix(in srgb,var(--orange) 8%,var(--paper)); }
.quiz-channel:focus-within { outline: 2px solid var(--ink); outline-offset: 3px; }
.quiz-contact-note { font-size: 13px; line-height: 1.6; color: var(--muted); margin: -8px 0 0; }
#quiz-body .quiz-summary { margin-top: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
#quiz-body .quiz-summary summary { min-height: 52px; font-size: 15px; }
.quiz-success-mark { width: 52px; height: 52px; border: 1px solid var(--orange); color: var(--orange); display: grid; place-items: center; font-size: 28px; margin-bottom: 24px; }
#quiz-body .quiz-submit { flex: 1 1 250px; justify-content: center; }
@media(max-width:630px) { .quiz-channel-options { gap: 6px; } .quiz-channel { padding: 12px 4px; font-size: 14px; gap: 6px; } #quiz-body .quiz-actions { align-items: stretch; } }

/* Contact action list: primary page link first, dark secondary methods. */
.contact-layout .contact-method { min-height: 48px; padding: 11px 14px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid #1b1c19; background-color: #1b1c19; color: #ffffff; font-size: 15px; }
.contact-layout .contact-method:hover { background-color: #30332c; color: #ffffff; }
html[data-theme="dark"] .contact-layout .contact-method { background-color: #353535; color: #ffffff; border-color: #1b1c19; }
.contact-layout .contact-button { display: flex; align-items: center; justify-content: space-between; text-align: left; }

/* Delivery notices and form recovery actions */
.delivery-notice{font-size:14px;line-height:1.6;color:var(--muted);margin:12px 0 16px;overflow-wrap:anywhere}.contact-mail-fallback{margin-top:16px;white-space:normal}.header-brand .identity>span:last-child{white-space:nowrap}.quiz-channel{min-height:52px}.pd-consent input{flex-shrink:0}

/* Dark hero: the orange band is above the portrait, with the same multiply tint as the light theme.
   A white backing behind that band keeps its exposed area bright orange rather than muddy brown. */
html[data-theme="dark"] .hero{--band-left:46%;--band-top:355px;--band-height:350px}
html[data-theme="dark"] .hero::before{content:"";position:absolute;left:var(--band-left);right:0;top:var(--band-top);height:var(--band-height);background:#fff;z-index:0;pointer-events:none}
html[data-theme="dark"] .hero-orange{z-index:2;mix-blend-mode:multiply;pointer-events:none}
@media(min-width:1530px){html[data-theme="dark"] .hero{--band-top:400px;--band-height:380px}}
@media(max-width:990px) and (min-width:630.9px){html[data-theme="dark"] .hero{--band-height:300px}}
@media(max-width:630px){html[data-theme="dark"] .hero{--band-left:0%;--band-top:546px;--band-height:240px}}
@media(max-width:333px){html[data-theme="dark"] .hero{--band-top:525px;--band-height:220px}}

/* Simplified first screen: remove the eyebrow and lift the main content. */
.hero h1{transform:translateY(-48px)}
.hero-description{transform:translateY(-78px)}
@media(max-width:630px){
 .hero{height:1008px}
 .hero-portrait,.hero-orange,.hero-side{transform:translateY(-32px)}
 html[data-theme="dark"] .hero::before{transform:translateY(-32px)}
 .hero-description{transform:translateY(-62px)}
}
@media(max-width:333px){.hero{height:988px}}

/* Match the light-theme photo tint in the personal approach section. */
html[data-theme="dark"] .about-photo::before{background:#fff;z-index:0;pointer-events:none}
html[data-theme="dark"] .about-photo img{position:relative;z-index:1}
html[data-theme="dark"] .about-photo::after{content:"";position:absolute;left:0;right:0;bottom:20%;height:37%;background:var(--orange);mix-blend-mode:multiply;z-index:2;pointer-events:none}
html[data-theme="dark"] .about-photo>span{z-index:3}

/* Footer alignment requested by the site owner. */
.site-footer .footer-brand>p{width:auto;margin:16px 0 0 0px;font-size:14px;line-height:1.6}
/* Twenty percent larger than the previous headline at each breakpoint. */
.hero h1{font-size:clamp(76.8px,calc(7.2vw / .8),220.8px)}
@media(max-width:990px){.hero h1{font-size:clamp(62.4px,calc(8.64vw / .9),105.6px)}}
@media(max-width:630px){.hero h1{font-size:clamp(36px,calc(10.44vw / .9),72px)}}
@media(min-width:990.9px){.hero h1{transform:translateY(-72px)}.hero-description{transform:translateY(-64px)}}
/* Editorial journal, using the site's existing type and orange accent. */
.journal-heading{display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:end;margin-bottom:56px}
.journal-heading>p{color:var(--muted);font-size:17px;line-height:1.65;max-width:420px}
.journal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.journal-card{display:flex;flex-direction:column;border-top:1px solid var(--line);padding:28px 0 24px;min-width:0;transition:border-color .2s}
.journal-card-top{display:flex;justify-content:space-between;gap:24px;font-size:11px;letter-spacing:.06em;color:var(--muted)}
.journal-card h3{font-size:clamp(26px,2.6vw,40px);font-weight:500;line-height:1.13;letter-spacing:-.045em;margin:32px 0 20px;max-width:620px;text-wrap:balance}
.journal-card>p{font-size:16px;line-height:1.65;color:var(--muted);max-width:530px;margin-bottom:28px}
.journal-card-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:auto;font-size:14px;min-height:44px}
.journal-card-bottom>span{font-size:27px;transition:transform .2s}
.journal-card:hover{border-top-color:var(--orange)}
.journal-card:hover .journal-card-bottom>span{transform:translate(3px,-3px)}
.journal-featured{grid-column:1/-1;background:var(--orange);color:#1b1c19;border:0;padding:36px 40px}
.journal-featured h3{font-size:clamp(32px,3.8vw,58px);max-width:850px}
.journal-featured>p{max-width:700px}
.journal-featured .journal-card-top,.journal-featured>p{color:#252822}
@media(max-width:700px){.journal-heading{grid-template-columns:1fr;gap:24px;margin-bottom:32px}.journal-grid{grid-template-columns:1fr;gap:16px}.journal-featured{grid-column:auto;padding:24px}.journal-card h3{margin-top:24px}.journal-card-top{font-size:10px;gap:12px}.journal-heading>p{font-size:16px}}

/* Photo journal carousel: three desktop cards, two tablet cards, one mobile. */
.journal-toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px}
.journal-toolbar>p{font-size:13px;color:var(--muted);display:flex;gap:16px;align-items:center}
.journal-controls{display:flex;gap:8px;align-items:center}
.journal-position{font-size:12px;font-variant-numeric:tabular-nums;margin-right:16px;white-space:nowrap}
.journal-controls button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:25px;cursor:pointer;transition:background .2s}
.journal-controls button:hover:not(:disabled){background:var(--orange);color:#1b1c19}
.journal-controls button:disabled{opacity:.3;cursor:default}
.journal-grid{display:flex;gap:24px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding:0;overscroll-behavior-x:contain;padding-bottom:20px;scrollbar-width:thin;scrollbar-color:var(--orange) var(--line)}
.journal-grid::-webkit-scrollbar{height:5px}.journal-grid::-webkit-scrollbar-thumb{background:var(--orange)}.journal-grid::-webkit-scrollbar-track{background:var(--line)}
.journal-grid .journal-card{flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start;scroll-snap-stop:normal;min-width:0;border:0;padding:0 0 16px;background:none;color:var(--ink);outline-offset:-2px}
.journal-card-image{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;margin-bottom:24px;background:var(--line)}
.journal-grid .journal-card h3{font-size:clamp(25px,2.25vw,34px);margin:24px 0 16px;line-height:1.14;letter-spacing:-.045em;text-wrap:balance}
.journal-grid .journal-card>p{font-size:16px;line-height:1.6;margin-bottom:24px}
.journal-grid .journal-card-bottom{border-bottom:1px solid var(--line);padding-bottom:16px}
.journal-grid .journal-card:hover .journal-card-bottom{border-bottom-color:var(--orange)}
@media(max-width:1100px) and (min-width:700.9px){.journal-grid .journal-card{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:700px){.journal-grid{gap:20px}.journal-grid .journal-card{flex-basis:100%}.journal-toolbar{gap:12px}.journal-toolbar>p{font-size:12px;gap:6px}.journal-position{font-size:11px;margin-right:6px}.journal-controls button{width:44px;height:44px}.journal-grid .journal-card h3{font-size:28px}.journal-card-image{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){.journal-grid{scroll-behavior:auto}}

/* Mobile hero spacing and manual gallery containment, 2026-10-16. */
@media(max-width:630px){
 .hero-description{width:auto;max-width:none;margin-top:50px}
 .hero{height:1008px;margin-bottom:50px}
}
/* In manual mode the pin is relative: a sticky top offset would move it
   outside its measured scene and the orange section on short screens. */
.gallery-manual .gallery-pin{top:0}

/* Requested direction-strip spacing. */
.discipline-strip{display:flex;justify-content:space-between;align-items:center;padding:28px var(--gutter);gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:17px;margin-top:0}
/* Align the mobile portrait's lower edge with the orange band, in both themes. */
@media(max-width:630px){
 .hero-portrait{right:0;width:100%;height:464px}
 .hero-portrait img{object-position:right bottom}
}
@media(max-width:333px){.hero-portrait{height:425px}}

@media(max-width:630px){.hero-bottom>span{margin-top:30px}}

/* Lift only the mobile portrait group an additional 80px. */
@media(max-width:430px){
 .hero-portrait,.hero-orange,.hero-side{transform:translateY(-112px)}
 html[data-theme="dark"] .hero::before{transform:translateY(-112px)}
}

@media(max-width:630px){.about-photo{align-self:stretch;margin-right:0;padding-top:15px}}

/* Full-screen navigation. Native dialog keeps keyboard focus inside the menu. */
html:has(#menu-dialog[open]){overflow:hidden}
#menu-dialog{position:fixed;inset:0;margin:0;width:calc(100vw / var(--site-scale,.9));height:calc(100dvh / var(--site-scale,.9));max-width:none;max-height:none;padding:0;border:0;box-sizing:border-box;background:var(--paper);color:var(--ink);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
#menu-dialog[open]{display:flex;flex-direction:column;animation:menu-reveal 220ms cubic-bezier(.2,.7,.2,1) both}
#menu-dialog::backdrop{background:var(--paper)}
#menu-dialog .dialog-head{flex:none;display:flex;align-items:center;justify-content:space-between;min-height:90px;padding:16px var(--gutter);border-bottom:1px solid var(--line);background:transparent}
#menu-dialog #menu-title{display:flex;align-items:center;gap:22px;font-size:11px;letter-spacing:.12em}
#menu-dialog #menu-title::before{content:"/";color:var(--orange);font-size:47px;font-weight:500;line-height:1;letter-spacing:-.08em}
#menu-dialog .close{display:flex;align-items:center;justify-content:center;width:48px;height:48px;min-width:48px;padding:0;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:33px;line-height:1;transition:background-color 160ms,color 160ms,border-color 160ms}
#menu-dialog .close:hover{background:var(--orange);border-color:var(--orange);color:#1b1c19}
#menu-dialog .mobile-nav{flex:1 0 auto;display:flex;flex-direction:column;justify-content:center;padding:24px var(--gutter);gap:0}
#menu-dialog .mobile-nav a{display:flex;align-items:center;justify-content:flex-start;gap:22px;min-height:76px;padding:15px 0;border-bottom:1px solid var(--line);font-size:clamp(32px,calc(5.8vw / .9),76px);font-weight:500;line-height:1.08;letter-spacing:-.055em;transition:color 160ms}
#menu-dialog .mobile-nav a:first-child{border-top:1px solid var(--line)}
#menu-dialog .mobile-nav a>i18n-text{min-width:0}
#menu-dialog .mobile-nav a>span{order:-1;flex:none;align-self:center;width:28px;color:var(--muted,var(--ink));font-size:11px;font-weight:400;line-height:1;letter-spacing:.06em}
#menu-dialog .mobile-nav a::after{content:"↗";margin-left:auto;flex:none;color:var(--orange);font-size:.65em;letter-spacing:0;transition:transform 160ms}
#menu-dialog .mobile-nav a:hover{color:var(--orange)}
#menu-dialog .mobile-nav a:hover::after{transform:translate(3px,-3px)}
#menu-dialog .mobile-nav a:focus-visible,#menu-dialog .close:focus-visible,#menu-dialog .menu-footer a:focus-visible{outline:2px solid var(--orange);outline-offset:5px}
#menu-dialog .menu-footer{flex:none;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 var(--gutter);padding:22px 0 28px;border-top:1px solid var(--line);font-size:12px;line-height:1.5}
#menu-dialog .menu-footer>span{font-size:10px;letter-spacing:.08em;text-transform:uppercase}
#menu-dialog .menu-footer a{display:inline-flex;align-items:center;gap:24px;min-height:44px;border-bottom:1px solid var(--orange)}
@keyframes menu-reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:430px){#menu-dialog .mobile-nav a{gap:16px}#menu-dialog .mobile-nav a>span{width:20px}#menu-dialog .menu-footer{align-items:flex-start;flex-direction:column;gap:8px;padding-top:18px;padding-bottom:24px}}
@media(prefers-reduced-motion:reduce){#menu-dialog[open]{animation:none}#menu-dialog a,#menu-dialog .close,#menu-dialog a::after{transition:none}}

@media(max-width:430px){.hero-description{width:auto;max-width:none;margin-top:0}}

/* The explicit grid display must not override the HTML hidden state. */
.storage-banner[hidden]{display:none!important}

/* Halve the portrait-to-description gap on narrow phones; keep the footer spacing. */
@media(max-width:430px){.hero-description{top:786.5px}.hero{height:957.5px}}
@media(max-width:333px){.hero-description{top:748px}.hero{height:955px}}
/* Keep the heading-to-portrait interval compact on larger phones. */
@media(min-width:431px) and (max-width:630px){
 .hero{--hero-compact-lift:clamp(8px,calc(219.8px - 35.2vw),70px);height:calc(1008px - var(--hero-compact-lift))}
 .hero-portrait,.hero-orange,.hero-side{transform:translateY(calc(-32px - var(--hero-compact-lift)))}
 html[data-theme="dark"] .hero::before{transform:translateY(calc(-32px - var(--hero-compact-lift)))}
 .hero-description{transform:translateY(calc(-62px - var(--hero-compact-lift)))}
}

/* Requested exact description offset; preserve room for its controls and footer. */
@media(max-width:430px){.hero-description{top:888.5px}.hero{height:1059.5px}}
@media(max-width:333px){.hero{height:1095.5px}}
/* Narrow-phone content follows the portrait instead of fixed text/footer offsets. */
@media(max-width:430px){
 .hero{height:auto;min-height:0;display:flex;flex-direction:column;padding-top:702px;padding-bottom:24px}
 .hero-portrait,.hero-orange,.hero-side{transform:translateY(-112px)}
 html[data-theme="dark"] .hero::before{transform:translateY(-112px)}
 .hero-description{position:relative;inset:auto;top:auto;left:auto;right:auto;width:auto;max-width:none;transform:none;margin:0 var(--gutter)}
 .hero-bottom{position:relative;inset:auto;left:auto;right:auto;bottom:auto;margin:0px var(--gutter) 0;flex:none}
}
@media(max-width:333px){.hero{padding-top:661px}}

@media(max-width:630px){.section{padding:40px var(--gutter)}}

/* Launch QA: accessible text accents; brand surfaces unchanged. */
html:not([data-theme="dark"]) :is(.services,.process) h2 > span{color:#d83b19}
html[data-theme="dark"] .process h2 > span{color:#ff795a}
.service-detail-link{display:inline-flex;align-items:center;min-height:44px;margin-top:16px;text-decoration:underline;text-underline-offset:4px}

/* --- nav dropdown: geography --- */
.nav-dropdown{position:relative;display:inline-flex;align-items:center}
.nav-dropdown-toggle{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:44px}
.nav-caret{font-size:10px;line-height:1;opacity:.65;transition:transform .18s ease;padding-right:10px}
.nav-dropdown-toggle[aria-expanded="true"] .nav-caret{transform:rotate(180deg)}
.nav-dropdown-menu{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);z-index:60;display:none;gap:34px;padding:22px 26px;min-width:520px;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 18px 50px rgba(0,0,0,.16)}
.nav-dropdown-menu.is-open{display:flex}
.nav-dd-col{display:flex;flex-direction:column;gap:2px;min-width:200px}
.nav-dd-title{margin:0 0 8px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav-dropdown-menu a{display:flex;align-items:center;min-height:32px;font-size:13px;color:var(--ink);text-decoration:none;white-space:nowrap;border-bottom:0}
.nav-dropdown-menu a:after{display:none}
.nav-dropdown-menu a:hover{color:var(--orange)}
@media (max-width:1100px){.nav-dropdown{display:none}}
/* --- mobile geography block --- */
.mobile-geo{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}
.mobile-geo-title{margin:0 0 10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.mobile-geo-sub{margin:12px 0 6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.mobile-geo-links{display:flex;flex-wrap:wrap;gap:8px 16px}
.mobile-geo-links a{font-size:15px;min-height:32px;display:inline-flex;align-items:center;color:var(--ink);text-decoration:none;border-bottom:0}
.mobile-geo-links a:hover{color:var(--orange)}

/* ===== Language modal ===== */
.lang-button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:12px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}
.lang-button:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.lang-button:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
.lang-caret{display:inline-block;font-size:9px;line-height:1;color:var(--orange);opacity:1;transform:translateY(-1px);transition:transform .18s ease,color .18s ease}
.lang-button:hover .lang-caret{color:currentColor}
.lang-button[aria-expanded="true"] .lang-caret{transform:rotate(180deg) translateY(1px)}
#lang-dialog{width:460px}
#lang-dialog .dialog-head span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
#lang-dialog .close{display:flex;align-items:center;justify-content:center;width:48px;height:48px;min-width:48px;padding:0;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:26px;line-height:1;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}
#lang-dialog .close:hover{background:var(--orange);border-color:var(--orange);color:#1b1c19}
.lang-body{padding:24px 30px 30px}
.lang-lead{margin:0 0 18px;font-size:13px;line-height:1.55;color:var(--muted);max-width:34ch}
.lang-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.lang-item{display:flex;align-items:center;gap:14px;min-height:56px;padding:10px 4px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;transition:color .2s ease,padding-left .2s ease}
.lang-item:hover{color:var(--orange);padding-left:10px}
.lang-item:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.lang-code{display:inline-flex;align-items:center;justify-content:center;width:34px;height:26px;flex:none;border:1px solid var(--line);font-size:10px;letter-spacing:.08em;color:var(--muted)}
.lang-name{font-size:16px;line-height:1.3;flex:1}
.lang-check{opacity:0;font-size:14px;color:var(--orange)}
.lang-item.is-current .lang-check{opacity:1}
.lang-item.is-current .lang-code{border-color:var(--orange);color:var(--orange)}
html[data-theme="dark"] .lang-button:hover{background:var(--orange);border-color:var(--orange);color:#1b1c19}
html[data-theme="dark"] .lang-item:hover{color:var(--orange)}
@media (max-width:1100px){.lang-button{min-height:40px;padding:0 10px;font-size:11px}}
@media (max-width:560px){#lang-dialog{width:100%}#lang-dialog .dialog-head{padding:14px 20px}.lang-body{padding:18px 20px 22px}.lang-name{font-size:15px}}
