
  @import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
  :root{color-scheme:dark;--bg:#111316;--ink:#f4f4f1;--muted:#a5a8aa;--line:#35393d;--lime:#9bbdff;--panel:#1b1e20;font-family:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.wrap{max-width:1440px;margin:auto;padding-inline:clamp(22px,5vw,80px)}.eyebrow{font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--lime)}h1,h2,h3,.brand,.big-num{font-family:'Space Grotesk',Arial,sans-serif}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(3.6rem,7.5vw,8.6rem);line-height:.97;letter-spacing:-.07em;max-width:920px;margin:28px 0}h2{font-size:clamp(2.6rem,5vw,5.5rem);line-height:1.04;letter-spacing:-.055em;margin:18px 0 24px}h3{font-size:1.65rem;letter-spacing:-.035em}p{line-height:1.65}header{position:absolute;z-index:5;width:100%;border-bottom:1px solid #ffffff29}header .row{height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:1.6rem;font-weight:700;letter-spacing:-.075em;white-space:nowrap}.brand b{color:var(--lime)}nav{display:flex;gap:34px;color:#dbdcdc;font-size:.93rem}nav a:hover,.footer-links a:hover{color:var(--lime)}.top-cta{border:1px solid #ffffff80;border-radius:99px;padding:12px 20px;font-size:.88rem;font-weight:700;white-space:nowrap}.top-cta:hover{background:var(--lime);color:#111}.hero{min-height:790px;min-height:100svh;position:relative;display:flex;align-items:center;overflow:hidden;background:#0e1012}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0e1012 0%,#0e1012ee 34%,#0e101244 66%,#0e101222),linear-gradient(0deg,#0e1012 0%,transparent 22%),url('/atelier.webp') 72% center/cover no-repeat}.hero .wrap{position:relative;width:100%;padding-top:140px;padding-bottom:90px}.hero p{font-size:clamp(1.05rem,1.4vw,1.3rem);max-width:540px;color:#d1d3d2}.hero h1 em{font-style:normal;color:var(--lime)}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:38px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;border-radius:100px;padding:18px 26px;font-weight:700;transition:transform .2s,background .2s;border:1px solid transparent}.btn:hover{transform:translateY(-3px)}.btn-primary{background:var(--lime);color:#172235}.btn-secondary{border-color:#ffffff88;color:white}.btn-secondary:hover{background:#ffffff20}.hero-foot{position:absolute;bottom:35px;left:0;right:0;display:flex;justify-content:space-between;color:#b8bbba;font-size:.82rem;letter-spacing:.09em;text-transform:uppercase}.hero-foot span:last-child{color:var(--lime)}.ticker{border-block:1px solid var(--line);background:#191c1e}.ticker .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-block:22px;color:#c2c6c5;font-size:.84rem;text-transform:uppercase;letter-spacing:.12em}.ticker b{color:var(--lime);font-weight:500}.section{padding-block:clamp(90px,10vw,155px)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:48px}.section-head p{max-width:360px;color:var(--muted);margin:0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.service-card{background:var(--bg);padding:clamp(26px,3.2vw,48px);min-height:350px;display:flex;flex-direction:column}.big-num{color:var(--lime);font-size:.95rem;margin-bottom:auto}.service-card h3{margin-bottom:12px}.service-card p{color:var(--muted);margin:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,7vw,120px);align-items:center}.material{background:#f1f3f6;color:#192335}.material .eyebrow{color:#31528b}.material h2{max-width:680px}.material p{color:#545d6a}.material-list{border-top:1px solid #c9d0dc;margin-top:36px}.material-row{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:23px 0;border-bottom:1px solid #c9d0dc}.material-row strong{font-size:1.25rem}.material-row span{color:#545d6a}.material-visual{background:#191c1d;min-height:520px;padding:34px;display:flex;align-items:end;position:relative;overflow:hidden}.material-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#101315dd,transparent 38%),url("/atelier.webp") 76% center/cover no-repeat;filter:saturate(.8)}.visual-label{position:relative;z-index:1;color:#e2e7ef;display:flex;justify-content:space-between;width:100%;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.process{background:#191c1e}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:60px}.step{border-top:1px solid #7c8796;padding-top:24px}.step small{color:var(--lime);font-size:.88rem}.step h3{margin:46px 0 14px}.step p{color:var(--muted)}.pricing{border-top:1px solid var(--line)}.pricing .split{align-items:start}.pricing-note{color:var(--muted);max-width:510px}.price-panel{border:1px solid var(--line);padding:clamp(26px,4vw,50px);background:var(--panel)}.price-line{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}.price-line:first-child{padding-top:0}.price-line strong{font-family:'Space Grotesk';font-size:2rem;letter-spacing:-.05em;white-space:nowrap}.price-line small{color:var(--muted);display:block;margin-top:4px}.price-panel>p{font-size:.9rem;color:var(--muted);margin:24px 0 0}.contact{background:#e8eef8;color:#172235;padding-block:clamp(80px,9vw,140px)}.contact .eyebrow{color:#31528b}.contact h2{max-width:1020px;font-size:clamp(3.2rem,7vw,7.2rem)}.contact p{max-width:610px;font-size:1.1rem;color:#3c4b61}.contact .btn{background:#19253a;color:white;margin-top:28px}.contact .btn:hover{background:#2c4161}footer{padding-block:50px;color:#8f9692}.footer-row{display:flex;align-items:start;justify-content:space-between;gap:30px;flex-wrap:wrap}footer .brand{color:var(--ink)}.footer-links{display:flex;gap:24px;flex-wrap:wrap}footer small{display:block;margin-top:45px}a:focus-visible,button:focus-visible{outline:3px solid var(--lime);outline-offset:4px}@media(max-width:850px){nav{display:none}.hero{min-height:740px}.hero:before{background:linear-gradient(90deg,#0e1012 0%,#0e1012c9 48%,#0e101268 100%),linear-gradient(0deg,#0e1012,transparent 28%),url('/atelier.webp') 62% center/cover no-repeat}.service-grid,.steps{grid-template-columns:1fr}.service-card{min-height:250px}.big-num{margin-bottom:55px}.split{grid-template-columns:1fr}.material-visual{min-height:400px}.section-head{display:block}.section-head p{margin-top:20px}.hero-foot{position:static;margin-top:80px}}@media(max-width:560px){header .row{height:70px}.brand{font-size:1.35rem}.top-cta{font-size:.78rem;padding:10px 14px}.hero h1{font-size:clamp(3.4rem,14vw,5rem)}.hero .wrap{padding-top:170px}.hero-foot{display:none}.ticker .wrap{gap:12px}.ticker span{width:100%}.material-row{grid-template-columns:72px 1fr}.material-visual{min-height:340px}.visual-label{font-size:.65rem}.price-line strong{font-size:1.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}
  
/* 3D Fabbtory identity and requested contact flow */
header{position:sticky;top:0;background:#111316ed;backdrop-filter:blur(18px);border-bottom:1px solid #ffffff29}header .brand,footer .brand{display:inline-flex;align-items:center;gap:7px}header .brand .brandmark,footer .brand .brandmark{margin-right:5px}.brandmark{flex:none}header .row{height:78px}.hero{min-height:calc(100svh - 78px)}.hero .wrap{padding-top:70px}section[id]{scroll-margin-top:78px}.service-grid{grid-template-columns:repeat(4,1fr)}.service-card{padding:clamp(24px,2.5vw,42px)}.contact{color:#172235}.contact>div>h2{margin-bottom:54px}.contact-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.75fr);gap:clamp(38px,7vw,110px)}.quote-form{background:#fafbfc;padding:clamp(24px,3.2vw,48px);border:1px solid #c8d2e1}.quote-form label{display:block;font-weight:700;font-size:.93rem;margin-bottom:20px}.quote-form input:not([type=checkbox]):not([type=radio]),.quote-form textarea,.quote-form select{display:block;width:100%;margin-top:9px;border:1px solid #c3cbd7;background:white;color:#192335;padding:14px 15px;border-radius:3px;min-height:51px}.quote-form textarea{resize:vertical;min-height:125px}.quote-form input[type=file]{font-size:.85rem;cursor:pointer}.quote-form small{display:block;color:#526177;margin:-10px 0 23px;line-height:1.5}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.agree{display:flex!important;align-items:start;gap:11px;font-size:.84rem!important;line-height:1.5;font-weight:500!important}.agree input{margin-top:4px;accent-color:#31528b}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-note{font-size:.85rem!important;margin:16px 0 0;color:#515f73!important}.contact-aside{display:flex;flex-direction:column}.aside-block{border-top:1px solid #9daec5;padding:26px 0}.aside-block .eyebrow{color:#31528b;font-size:.76rem}.aside-block h3{margin:13px 0 12px}.aside-block p{font-size:.96rem;margin:10px 0 0}.phone{display:block;font-family:'Space Grotesk',Arial,sans-serif;font-size:clamp(1.8rem,3vw,3rem);letter-spacing:-.05em;margin-top:14px;font-weight:700;white-space:nowrap}.email-link{display:block;font-weight:700;font-size:1.1rem;margin-top:13px;overflow-wrap:anywhere}.quote-form .btn{border:0}.quote-form input:focus,.quote-form textarea:focus,.quote-form select:focus{outline:2px solid #31528b;outline-offset:2px}
@media(max-width:1100px){.service-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:850px){header .row{height:auto;min-height:74px;flex-wrap:wrap;padding-block:10px}nav{display:flex;width:100%;order:3;overflow-x:auto;gap:22px;padding:5px 0 2px;white-space:nowrap;font-size:.82rem}.hero{min-height:calc(100svh - 110px)}section[id]{scroll-margin-top:122px}.contact-grid{grid-template-columns:1fr}.contact-aside{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.aside-block:last-child{grid-column:1/-1}}@media(max-width:560px){.service-grid{grid-template-columns:1fr}.field-pair,.contact-aside{grid-template-columns:1fr;gap:0}.aside-block:last-child{grid-column:auto}header .brand{font-size:1.18rem}header .brandmark{width:30px;height:30px}.hero .wrap{padding-top:75px}.hero{min-height:720px}.quote-form{padding:22px}.phone{white-space:normal}}
.admin{min-height:100vh;max-width:980px;margin:auto;padding:50px 24px;background:#111316;color:#f4f4f1}.admin>a,.admin article a{color:#9bbdff}.admin h1{font-size:clamp(2.5rem,5vw,4rem);margin:30px 0}.admin>p{color:#a5a8aa}.admin article{border:1px solid #35393d;background:#1b1e20;padding:28px;margin:22px 0}.admin h2{font-size:1.6rem;margin:0}.admin-top{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.admin time,.admin small{color:#a5a8aa}.admin .project-text{white-space:pre-wrap;border-top:1px solid #35393d;padding-top:18px}.file-links{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.file-links a{border:1px solid #8598b5;border-radius:4px;padding:9px 12px;overflow-wrap:anywhere}@media(max-width:600px){.admin-top{display:block}}

.wordmark{display:block;width:clamp(190px,18vw,236px);height:auto}header .brand,footer .brand{gap:0}.material-row{grid-template-columns:125px 1fr}.material-row p{margin:0 0 14px;color:#545d6a}.swatches{display:flex;flex-wrap:wrap;gap:12px 18px}.swatch{display:inline-flex;align-items:center;gap:7px;font-size:.91rem;color:#303b4b;white-space:nowrap}.swatch i{width:22px;height:22px;border-radius:50%;border:1px solid #959faf;box-shadow:0 1px 3px #0002}.material-row strong{font-size:1rem}.quote-form button:disabled{opacity:.65;cursor:wait}.quote-form output{display:block;margin-top:17px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}.quote-form noscript{display:block;margin-top:12px}@media(max-width:560px){header .wordmark{width:185px}.material-row{grid-template-columns:1fr;gap:8px}}

/* Atelier location before the quote flow */
.location-strip{background:#e8eef8;color:#172235;padding:clamp(35px,5vw,70px) 0}.location-inner{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.75fr);gap:clamp(24px,5vw,75px);align-items:center}.location-strip .eyebrow{color:#31528b}.location-strip h2{font-size:clamp(2rem,3.4vw,3.9rem);margin:12px 0 15px}.location-strip p{max-width:680px;margin:0;font-size:1rem}.location-map{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:205px;padding:28px;background:#1b2940;color:#f1f5fb;border-radius:8px;transition:transform .2s,background .2s}.location-map:hover{transform:translateY(-3px);background:#293f60}.location-map .map-pin{font-size:2.2rem;color:#9bbdff;margin-bottom:13px}.location-map strong{font-size:1.16rem}.location-map small{display:block;margin-top:12px;line-height:1.5;color:#c7d4e4;font-size:.84rem}.quote-form small a,.contact-aside p a{text-decoration:underline;text-underline-offset:3px;font-weight:700}@media(max-width:800px){.location-inner{grid-template-columns:1fr}.location-map{min-height:155px}}
.quote-form .form-intro{font-size:1rem;line-height:1.55;color:#3c4b61;margin-bottom:25px}.quote-form small{margin:0 0 24px}.quote-form output{display:block;margin-top:14px;line-height:1.5;color:#31528b;font-weight:600}

#large-files[hidden]{display:none}.mail-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.mail-actions .mail-alt{font-weight:700;text-decoration:underline;text-underline-offset:4px}.quote-form input[type=file]{width:100%;padding:10px 0;cursor:pointer}
.file-list{display:grid;gap:10px;margin:0 0 24px}.file-row{display:grid;grid-template-columns:minmax(0,1fr) 88px auto;gap:12px;align-items:center;padding:14px;background:#fff;border:1px solid #ccd5e2;border-radius:5px}.file-details{min-width:0}.file-details strong{display:block;overflow-wrap:anywhere;font-size:.93rem}.file-details small{display:block!important;margin:5px 0 0!important;color:#5a6779}.quote-form .file-quantity{margin:0;font-size:.78rem}.quote-form .file-quantity input{margin-top:4px;min-height:39px;padding:6px 8px}.file-remove{border:0;background:transparent;text-decoration:underline;cursor:pointer;color:#31528b;font:inherit;font-size:.86rem;padding:10px 0}@media(max-width:560px){.file-row{grid-template-columns:minmax(0,1fr) 72px}.file-remove{grid-column:1/-1;text-align:left;padding:0}}

.quote-form .urgency-choice{display:flex;align-items:flex-start;gap:12px;border:1px solid #afbed3;padding:15px;margin:8px 0 22px;background:#fff}.quote-form .urgency-choice input{margin-top:5px;accent-color:#31528b;min-width:19px;min-height:19px}.urgency-choice span{display:block}.quote-form .urgency-choice small{margin:5px 0 0;color:#526177;font-weight:400}.quote-form input[type=datetime-local]{font:inherit}

.send-action{margin-top:40px;padding-top:28px;border-top:1px solid #c6d2e2}.quote-confirm{border:1px solid #afbed3;border-radius:9px;max-width:min(540px,calc(100vw - 32px));padding:clamp(22px,3vw,36px);background:#fafbfc;color:#172235;box-shadow:0 20px 80px #0005}.quote-confirm::backdrop{background:#101827b8}.quote-confirm h3{font-size:1.65rem;margin:0 0 14px}.quote-confirm p{line-height:1.55}.confirm-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:25px}.confirm-cancel{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;cursor:pointer;padding:12px;font:inherit}.confirm-actions .btn{border:0}

.confirm-files{max-height:180px;overflow:auto;margin:18px 0;padding-left:22px;line-height:1.55}.confirm-files li{margin:5px 0;overflow-wrap:anywhere}

.deadline-field{margin:5px 0 22px}.deadline-field>strong{display:block;margin-bottom:15px;font-size:.96rem}.deadline-field>strong span{font-weight:400}.deadline-inputs{display:grid;grid-template-columns:1fr 1fr;gap:18px}.quote-form .deadline-inputs label{margin:0;font-size:.87rem}.picker-wrap{position:relative;display:block}.quote-form .picker-wrap input{padding-right:100px}.picker-button{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:#e9f0f9;color:#273a59;border-radius:3px;padding:9px 11px;font:inherit;font-size:.79rem;font-weight:700;cursor:pointer}.picker-button:hover,.picker-button:focus-visible{background:#9bbdff}.quote-form .deadline-field>small{margin:12px 0 0}@media(max-width:560px){.deadline-inputs{grid-template-columns:1fr;gap:12px}}

.quote-confirm .confirm-cancel{border:1px solid #8ca0bc;border-radius:5px;background:#fff;color:#263851;font-weight:700;padding:12px 17px;text-decoration:none}.quote-confirm .confirm-cancel:hover,.quote-confirm .confirm-cancel:focus-visible{background:#edf2fa}

.quote-form .picker-wrap select{padding-right:15px;appearance:auto}

.deadline-field[hidden]{display:none}
.file-config{grid-column:1/-1;display:grid;grid-template-columns:minmax(130px,.65fr) minmax(0,1.35fr);gap:18px;padding-top:14px;border-top:1px solid #dce3ed}.quote-form .file-material{margin:0;font-size:.85rem}.quote-form .file-material select{margin-top:8px;min-height:43px;padding:8px 10px}.file-color-title{display:block;font-weight:700;font-size:.85rem;margin-bottom:8px}.file-swatches{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.file-swatch{display:inline-flex;align-items:center;gap:6px;border:1px solid #cbd3dc;border-radius:28px;background:#fff;color:#263241;padding:5px 9px 5px 6px;font:inherit;font-size:.8rem;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.file-swatch .dot{width:18px;height:18px;border-radius:50%;border:1px solid #8995a3;box-shadow:0 1px 3px #0002;transition:transform .18s ease}.file-swatch:hover,.file-swatch:focus-visible{transform:translateY(-3px);box-shadow:0 5px 12px #0002;border-color:#31528b}.file-swatch:hover .dot,.file-swatch:focus-visible .dot{transform:scale(1.18)}.file-swatch[aria-pressed=true]{border-color:#31528b;background:#eaf1fc;box-shadow:inset 0 0 0 1px #31528b}.quote-form .file-colors input{margin-top:6px;min-height:43px;padding:8px 10px}.material .swatch{transition:transform .2s ease,color .2s ease}.material .swatch i{transition:transform .2s ease,box-shadow .2s ease}.material .swatch:hover{transform:translateY(-4px);color:#182518}.material .swatch:hover i{transform:scale(1.3);box-shadow:0 6px 15px #0004}@media(max-width:560px){.file-config{grid-template-columns:1fr;gap:14px}}@media(prefers-reduced-motion:reduce){.material .swatch,.material .swatch i,.file-swatch,.file-swatch .dot{transition:none}}
.urgent-block{border:1px solid #afbed3;background:#fff;padding:16px;margin:6px 0 24px}.urgent-block .urgency-choice{border:0;padding:0;margin:0;background:transparent}.urgent-options{margin-top:18px;padding-top:17px;border-top:1px solid #d5dfec}.urgent-options[hidden]{display:none}.urgency-timing{display:flex;flex-wrap:wrap;gap:10px 22px;margin-bottom:16px}.quote-form .urgency-timing label{display:inline-flex;gap:8px;align-items:center;margin:0;font-weight:600;font-size:.88rem}.urgency-timing input{accent-color:#31528b}.urgent-block .deadline-field{margin:0}.file-expert{grid-column:1/-1;border-top:1px solid #dce3ed;padding-top:13px}.quote-form .file-expert-toggle{display:inline-flex;align-items:center;gap:8px;margin:0;cursor:pointer;font-size:.87rem}.file-expert-toggle input{accent-color:#31528b;width:18px;height:18px}.expert-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:13px;padding:15px;background:#f3f6f9;border:1px solid #d5dfec}.expert-panel[hidden]{display:none}.quote-form .expert-panel label{margin:0;font-size:.82rem}.quote-form .expert-panel select,.quote-form .expert-panel input{margin-top:6px;min-height:43px;padding:8px 10px}.expert-panel label:nth-child(4),.expert-panel small{grid-column:1/-1}.quote-form .expert-panel small{margin:0;color:#526177}@media(max-width:700px){.expert-panel{grid-template-columns:1fr 1fr}}@media(max-width:450px){.expert-panel{grid-template-columns:1fr}}
.file-swatch.any-color .dot{background:conic-gradient(#f2d12c 0 25%,#276ac1 25% 50%,#cb3437 50% 75%,#468943 75%)}

.file-row-document{grid-template-columns:minmax(0,1fr) auto}.file-row-document .file-document-note{grid-column:1/-1;margin:0;font-size:.9rem}.file-document-note textarea{display:block;width:100%;min-height:72px;margin-top:8px;padding:10px 12px;border:1px solid #c3cbd7;border-radius:3px;resize:vertical;font:inherit}

.quote-mode{display:flex;gap:12px;border:0;padding:0;margin:0 0 28px}.quote-mode legend{font-weight:700;margin-bottom:12px}.quote-form .quote-mode label{flex:1;display:flex;gap:10px;align-items:flex-start;padding:15px;margin:0;border:1px solid #c8d2e1;border-radius:5px;background:#fff;cursor:pointer}.quote-mode label:has(input:checked){border-color:#31528b;background:#eaf1fc;box-shadow:inset 0 0 0 1px #31528b}.quote-mode input{accent-color:#31528b;flex:none;margin-top:3px}.quote-mode strong,.quote-mode small{display:block}.quote-form .quote-mode small{margin:4px 0 0;font-weight:400}.quote-form.mode-simple .file-row:not(.file-row-document){grid-template-columns:minmax(0,1fr) auto}.quote-form.mode-simple .file-row:not(.file-row-document) .file-quantity,.quote-form.mode-simple .file-config{display:none}@media(max-width:600px){.quote-mode{flex-direction:column}}

.quote-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.quote-mode legend{grid-column:1/-1}.quote-form .quote-mode label{min-width:0;min-height:96px;align-items:flex-start;gap:10px}.quote-form .quote-mode input[type=radio]{appearance:auto;display:inline-block;width:18px;height:18px;min-height:0;padding:0;margin:3px 0 0;flex:0 0 18px;accent-color:#31528b}.quote-mode label span{min-width:0;overflow-wrap:break-word}.quote-mode strong{font-size:.94rem;line-height:1.3}.quote-form .quote-mode small{font-size:.8rem;line-height:1.4}@media(max-width:600px){.quote-mode{grid-template-columns:1fr}.quote-form .quote-mode label{min-height:0}}

.quote-form .expert-panel textarea{display:block;width:100%;min-height:70px;margin-top:6px;padding:10px 12px;border:1px solid #c3cbd7;border-radius:3px;resize:vertical;font:inherit;line-height:1.5;box-sizing:border-box}

.quote-form .quote-promise{color:#25354d;font-size:1rem;line-height:1.5;margin:0 0 18px}.quote-promise strong{font-weight:700}

.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.upload-picker{margin-bottom:20px}.upload-picker>label{display:block;font-weight:700;font-size:.93rem;margin-bottom:9px}.upload-picker-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.add-files{border:1px solid #31528b;background:#eaf1fc;color:#25354d;border-radius:5px;padding:12px 18px;font-weight:700}.add-files:hover,.add-files:focus-visible{background:#9bbdff}.upload-picker-row span{font-size:.9rem;line-height:1.45;color:#31528b}.upload-picker:has(input:focus-visible) .add-files{outline:3px solid #31528b;outline-offset:3px}

.quote-form.mode-simple .file-row:not(.file-row-document){grid-template-columns:minmax(0,1fr) 88px auto}.quote-form.mode-simple .file-row:not(.file-row-document) .file-quantity{display:block}.quote-form.mode-simple .file-config{display:block}.quote-form.mode-simple .file-material,.quote-form.mode-simple .file-expert{display:none}.quote-form .detailed-help{display:none}.quote-form:not(.mode-simple) .simple-help{display:none}.quote-form:not(.mode-simple) .detailed-help{display:inline}@media(max-width:560px){.quote-form.mode-simple .file-row:not(.file-row-document){grid-template-columns:minmax(0,1fr) 72px}.quote-form.mode-simple .file-row:not(.file-row-document) .file-remove{grid-column:1/-1}}

.price-example{margin-top:28px;padding:22px 24px;border:1px solid #cbd3dc;background:#edf2f7}.price-example>strong{display:block;color:var(--lime);font-size:1rem;margin-bottom:13px}.price-example p{margin:8px 0;color:#f4f4f1;line-height:1.5;font-size:.96rem}.price-example b{color:var(--lime)}.price-example small{display:block;margin-top:13px;color:#cbd4e0;font-size:.82rem;line-height:1.5}

.example-inline-link{display:block;width:max-content;max-width:100%;margin:28px 0 24px;color:var(--lime);font-weight:700;text-decoration:underline;text-underline-offset:5px}.example-inline-link:hover{color:#e3edff}
.example-page h1{font-size:clamp(3.1rem,6.5vw,7.5rem);max-width:1100px}.example-page h1 em{font-style:normal;color:var(--lime)}.example-hero{padding-block:clamp(50px,7vw,110px)}.example-back{display:inline-block;color:#b9c7d6;margin-bottom:62px;font-size:.9rem;text-decoration:underline;text-underline-offset:4px}.example-hero>p{max-width:770px;color:#cbd5e0;font-size:clamp(1.08rem,1.5vw,1.35rem)}.example-facts{border-top:1px solid var(--line);margin-top:58px;padding-top:22px;display:flex;gap:24px;align-items:baseline;justify-content:space-between;flex-wrap:wrap;color:#c7d2df}.example-facts strong{font-family:'Space Grotesk';font-size:clamp(1.7rem,3vw,3rem);color:var(--lime)}.example-photo-section{background:#f1f3f6;color:#192335;padding-block:clamp(50px,7vw,100px)}.example-photo-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(30px,6vw,90px);align-items:center}.example-page figure{margin:0}.example-page figure img{display:block;width:100%;height:auto;object-fit:contain}.example-page figcaption{font-size:.85rem;line-height:1.5;margin-top:12px;color:#778493}.example-photo-section figcaption{color:#5e6b79}.example-photo-text p{color:#465363}.example-photo-text .eyebrow{color:#31528b}.example-lead{max-width:820px;color:#c2ccda}.example-table-wrap{overflow-x:auto;border:1px solid var(--line);margin-top:38px}.example-table{border-collapse:collapse;width:100%;min-width:580px;text-align:left}.example-table th,.example-table td{padding:19px 24px;border-bottom:1px solid var(--line)}.example-table thead{background:#252a2a;color:#cdd7e1;font-size:.85rem}.example-table tbody tr:last-child th,.example-table tbody tr:last-child td{border-bottom:0}.example-table tbody tr:nth-child(even){background:#1b2020}.example-table .example-actual{background:#263551}.example-table th small{display:block;font-weight:400;color:#b6c3d4;margin-top:4px}.example-table td:last-child{font-weight:700;color:var(--lime);font-size:1.25rem;white-space:nowrap}.example-disclaimer{margin-top:24px;color:#c2ccda;font-size:.91rem}.example-supports{background:#1d2533}.example-supports-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.7fr);gap:clamp(40px,8vw,130px);align-items:center}.example-supports-grid p{max-width:630px;color:#c7d3e3}.example-supports-grid figure{max-width:470px;justify-self:center}.example-supports-grid figure img{max-height:650px}.example-caption{color:var(--lime)!important;font-weight:700}.example-end{background:#e8eef8;color:#192335;padding-block:clamp(65px,9vw,130px)}.example-end-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(35px,8vw,120px);align-items:center}.example-end-grid figure{background:#222;padding:12px}.example-end-grid figure img{max-height:460px}.example-end-grid figcaption{color:#d9e1ed}.example-end .eyebrow{color:#204b78}.example-end p{max-width:550px;color:#435163}.example-end .btn{background:#151914;color:#fff;margin-top:20px}.example-end small{display:block;margin-top:18px;font-size:.85rem;color:#435163}@media(max-width:800px){.example-photo-grid,.example-supports-grid,.example-end-grid{grid-template-columns:1fr}.example-hero{padding-top:45px}.example-back{margin-bottom:40px}.example-facts{display:grid;gap:10px}.example-supports-grid figure{max-width:420px}}

.example-video-section{padding-block:clamp(55px,7vw,105px);background:#171e2b}.example-video-section h2{max-width:920px}.example-video-section p{max-width:700px;color:#cbd4e0}.example-video-section video{display:block;width:100%;max-width:1100px;aspect-ratio:14/9;object-fit:contain;background:#0c111a;border:1px solid #485b79;margin:30px auto 0}.example-video-section small{display:block;max-width:1100px;margin:12px auto 0;color:#abb9cb;font-size:.82rem}

.step-link{display:block;cursor:pointer;transition:border-color .2s ease,transform .2s ease}.step-link:hover{border-color:var(--lime);transform:translateY(-3px)}.step-link:focus-visible{outline:2px solid var(--lime);outline-offset:6px}.step-link h3 span{color:var(--lime);font-size:.75em}

.legal-page{padding-block:clamp(160px,16vw,230px) 100px;max-width:1040px}.legal-page h1{font-size:clamp(3.1rem,6vw,6rem);margin-bottom:70px}.legal-page section{border-top:1px solid var(--line);padding:28px 0 34px}.legal-page h2{font-size:clamp(1.45rem,2.5vw,2.15rem);letter-spacing:-.035em;margin:0 0 15px}.legal-page p{color:#d4dce8;max-width:760px;margin-bottom:14px}.legal-page p:last-child{margin-bottom:0}.legal-page section a{text-decoration:underline;text-underline-offset:3px}.legal-page section a:hover{color:var(--lime)}

/* Atelier premium: a neutral canvas, deep engineering blue, copper actions.
   Major spacing follows the rounded phi progression 8 / 13 / 21 / 34 / 55 / 89 / 144. */
:root{
  color-scheme:light;
  --paper:#faf9f6;
  --surface:#ffffff;
  --wash:#f1f3f5;
  --ink-deep:#18212d;
  --ink-soft:#596472;
  --blue:#204b78;
  --blue-deep:#183a60;
  --copper:#c2461b;
  --copper-hover:#a83b16;
  --line:#dfe3e7;
  --bg:var(--paper);
  --ink:var(--ink-deep);
  --muted:var(--ink-soft);
  --panel:var(--surface);
  --lime:#aec7e4;
  --space-1:8px;
  --space-2:13px;
  --space-3:21px;
  --space-4:34px;
  --space-5:55px;
  --space-6:89px;
  --space-7:144px;
}
body{background:var(--paper);color:var(--ink-deep)}
.wrap{max-width:1390px;padding-inline:clamp(21px,5vw,89px)}
.section{padding-block:clamp(89px,9vw,144px)}
.section-head{gap:var(--space-6);margin-bottom:var(--space-5)}
.section-head p{max-width:380px}
.eyebrow,.big-num{color:var(--blue)}
h1{font-size:clamp(3.5rem,7.2vw,8.1rem)}
h2{font-size:clamp(2.2rem,4.45vw,5rem)}
a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:4px}

/* The dark opening keeps the workshop photography dramatic. */
header{background:#171b20f2;border-bottom-color:#ffffff2b}
header nav,header .brand{color:#f8f8f6}
header nav a:hover{color:#b9cee6}
.top-cta,.btn-primary{background:var(--copper);color:white;border-color:var(--copper)}
.top-cta:hover,.btn-primary:hover{background:var(--copper-hover);color:white}
.top-cta:focus-visible,.hero .btn:focus-visible{outline-color:#f3aa7d}
.hero{background:#171b20;color:#faf9f6}
.hero:before{background:linear-gradient(90deg,#14191f 0%,#14191fe8 34%,#14191f55 66%,#14191f25),linear-gradient(0deg,#14191f 0%,transparent 23%),url('/atelier.webp') 72% center/cover no-repeat}
.hero .eyebrow,.hero-foot span:last-child,.hero h1 em{color:#bad0e9}
.hero h1 em{font-style:normal}
.hero .btn-secondary:hover{background:#ffffff28}
.ticker{background:#eceff2;border-color:var(--line)}
.ticker .wrap{color:#435163;padding-block:var(--space-3)}
.ticker b{color:var(--blue);font-weight:700}

/* Light editorial content, with quiet cards and true material swatches. */
.service-grid{background:var(--line);border-color:var(--line)}
.service-card{background:var(--surface);min-height:320px;padding:clamp(34px,3vw,55px)}
.service-card p{color:var(--ink-soft)}
.material,.example-photo-section{background:var(--wash);color:var(--ink-deep)}
.material .eyebrow,.example-photo-text .eyebrow{color:var(--blue)}
.material p,.material-row p,.material-row span,.example-photo-text p{color:#4d5867}
.material-list,.material-row{border-color:#cfd5dc}
.swatch{color:#263241}
.swatch i{border-color:#a7b0ba}
.material-visual{background:#17212d}
.material-visual:before{background:linear-gradient(0deg,#101821e8,transparent 40%),url('/atelier.webp') 76% center/cover no-repeat;filter:saturate(.92)}
.process,.example-supports,.example-video-section{background:#1b2634;color:#f6f7f8}
.process .eyebrow,.process .step small,.example-supports .eyebrow,.example-video-section .eyebrow{color:#b4cce8}
.process .section-head p,.step p,.example-supports-grid p,.example-video-section p{color:#c9d2dc}
.step{border-color:#566678}
.step-link:hover{border-color:#bad0e9}
.step-link:focus-visible{outline-color:#bad0e9}
.step-link h3 span{color:#bad0e9}
.pricing{background:var(--paper);border-color:var(--line)}
.pricing-note{color:var(--ink-soft)}
.price-panel{background:var(--surface);border-color:var(--line);box-shadow:0 13px 55px #202c3710}
.price-line{border-color:var(--line)}
.price-line small,.price-panel>p{color:var(--ink-soft)}
.price-example{background:#edf2f7;border-color:#d7e1ec}
.price-example>strong,.price-example b{color:var(--blue-deep)}
.price-example p{color:var(--ink-deep)}
.price-example small{color:var(--ink-soft)}
.example-inline-link{color:var(--blue);text-decoration-color:var(--blue)}
.example-inline-link:hover{color:var(--blue-deep)}

/* The address stays prominent before the long quote form. */
.location-strip{background:#e9eef3;color:var(--ink-deep);padding-block:var(--space-5)}
.location-inner,.contact-grid{grid-template-columns:minmax(0,1.618fr) minmax(270px,1fr);gap:clamp(34px,5vw,89px)}
.location-strip .eyebrow{color:var(--blue)}
.location-strip p{color:#435163}
.location-map{background:var(--blue-deep);color:white;padding:var(--space-4);border-radius:8px}
.location-map:hover{background:#24517f}
.location-map .map-pin{color:#c5d9ee}
.contact{background:var(--paper);color:var(--ink-deep);padding-block:clamp(89px,9vw,144px)}
.contact .eyebrow,.aside-block .eyebrow{color:var(--blue)}
.contact>div>h2{margin-bottom:var(--space-5)}
.contact p,.aside-block p{color:#435163}
.quote-form{background:var(--surface);border:1px solid var(--line);box-shadow:0 21px 89px #1d2b3710;padding:clamp(21px,3vw,55px)}
.quote-form .form-intro,.quote-promise,.quote-form output{color:#344354}
.quote-form input:not([type=checkbox]):not([type=radio]),.quote-form textarea,.quote-form select{border-color:#b8c2cc;color:var(--ink-deep);background:white}
.quote-form input:focus,.quote-form textarea:focus,.quote-form select:focus{outline-color:var(--blue)}
.quote-form small,.quote-form .urgency-choice small,.file-details small{color:#536071}
.quote-form .quote-mode label,.file-row,.urgent-block,.quote-form .urgency-choice{border-color:#cbd3dc;background:#fff}
.quote-mode label:has(input:checked){border-color:var(--blue);background:#edf3f9;box-shadow:inset 0 0 0 1px var(--blue)}
.quote-mode input,.quote-form .quote-mode input[type=radio],.quote-form .urgency-choice input{accent-color:var(--blue)}
.file-remove,.upload-picker-row span,.quote-form small a{color:var(--blue)}
.add-files{background:#f1f5f9;color:var(--blue-deep);border-color:var(--blue)}
.add-files:hover,.add-files:focus-visible{background:#dbe8f4}
.upload-picker:has(input:focus-visible) .add-files{outline-color:var(--blue)}
.file-swatch{border-color:#cbd3dc;color:#263241}
.send-action{margin-top:var(--space-5);padding-top:var(--space-4);border-color:var(--line)}
.contact .btn,.quote-form .btn,.quote-confirm .btn{background:var(--copper);border-color:var(--copper);color:#fff}
.contact .btn:hover,.quote-form .btn:hover,.quote-confirm .btn:hover{background:var(--copper-hover)}
.contact .btn:focus-visible,.quote-confirm .btn:focus-visible{outline-color:var(--blue)}
.quote-confirm{background:white;color:var(--ink-deep);border-color:var(--line)}
.aside-block{border-color:#cbd3dc;padding-block:var(--space-4)}
.phone,.email-link,.contact-aside p a{color:var(--blue-deep)}

/* Case study and legal copy use the same colour grammar. */
.example-page{color:var(--ink-deep)}
.example-hero{background:#1b2634;color:#f7f8f9}
.example-page h1 em,.example-facts strong{color:#b4cce8}
.example-hero>p,.example-back,.example-facts{color:#cbd5e0}
.example-table-wrap{border-color:var(--line)}
.example-table th,.example-table td{border-color:var(--line)}
.example-table thead{background:#e7edf3;color:var(--ink-deep)}
.example-table tbody tr:nth-child(even){background:#f2f5f7}
.example-table .example-actual{background:#e6eef7}
.example-table th small,.example-disclaimer,.example-lead{color:var(--ink-soft)}
.example-table td:last-child{color:var(--blue-deep)}
.example-caption{color:#b4cce8!important}
.example-end{background:#e9eef3;color:var(--ink-deep);padding-block:clamp(89px,9vw,144px)}
.example-end-grid{grid-template-columns:minmax(0,1.618fr) minmax(0,1fr);gap:clamp(34px,5vw,89px)}
.example-end .eyebrow{color:var(--blue)}
.example-end p,.example-end small{color:#435163}
.example-end .btn{background:var(--copper);color:#fff}
.example-end .btn:hover{background:var(--copper-hover)}
.legal-page{color:var(--ink-deep)}
.legal-page p{color:#485362}
.legal-page section{border-color:var(--line)}
.legal-page section a:hover{color:var(--blue)}
footer{background:#171b20;color:#b8c2cd}
footer .brand{color:white}
.footer-links a:hover{color:#c8d9ed}

@media(max-width:850px){
  .hero:before{background:linear-gradient(90deg,#14191ff2 0%,#14191fd6 48%,#14191f7a 100%),linear-gradient(0deg,#14191f,transparent 28%),url('/atelier.webp') 62% center/cover no-repeat}
  .location-inner,.contact-grid{grid-template-columns:1fr}
  .section-head{gap:var(--space-4)}
}
@media(max-width:800px){.example-end-grid{grid-template-columns:1fr}}
@media(max-width:560px){
  .section{padding-block:var(--space-6)}
  .location-strip{padding-block:var(--space-4)}
  .service-card{min-height:240px}
  .quote-form{padding:var(--space-3)}
}

/* Logo introduction followed by the original photographic hero. */
.hero{display:block;min-height:0;overflow:visible;background:#0f1419}
.hero:before{display:none}
.hero-intro.wrap{padding-top:clamp(42px,5vw,75px);padding-bottom:clamp(48px,6vw,86px);text-align:center}
.hero-media{width:420px;max-width:100%;margin-inline:auto}
.hero-logo{position:relative;isolation:isolate;display:grid;width:420px;max-width:100%;overflow:hidden;background:#0f1419}
.hero-logo picture,.hero-logo img,.hero-logo video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.hero-logo picture{position:relative;inset:auto;aspect-ratio:1}
.hero-logo video{height:auto;aspect-ratio:1;opacity:1}
.hero-logo.is-playing video{opacity:1}
.hero-intro .eyebrow{margin-top:clamp(10px,2vw,25px)}
.hero-intro h1{margin:22px auto 0}
.hero-photo{position:relative;min-height:clamp(530px,68svh,850px);display:flex;align-items:center;overflow:hidden;background:#14191f}
.hero-photo:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#14191f 0%,#14191fe8 34%,#14191f55 66%,#14191f25),linear-gradient(0deg,#14191f 0%,transparent 23%),url('/atelier.webp') 72% center/cover no-repeat}
.hero-photo .wrap{position:relative;width:100%;padding-block:clamp(90px,13vw,190px) 50px}
.hero-photo p{max-width:540px}
.hero-photo .hero-foot{margin-top:clamp(110px,17vw,240px)}
.location-inner{grid-template-columns:minmax(0,1.618fr) minmax(270px,1fr);gap:clamp(34px,5vw,89px)}
@media(max-width:850px){.hero-photo{min-height:570px}.location-inner{grid-template-columns:1fr}}
@media(max-width:560px){.hero-intro.wrap{padding-top:32px;padding-bottom:45px}.hero-media,.hero-logo{width:280px}.hero-intro h1{font-size:clamp(3.3rem,12vw,5.4rem)}.hero-photo{min-height:510px}.hero-photo .wrap{padding-top:110px}.hero-photo:before{background:linear-gradient(90deg,#14191ff5 0%,#14191fc8 52%,#14191f66),linear-gradient(0deg,#14191f 0%,transparent 28%),url('/atelier.webp') 67% center/cover no-repeat}}
@media(prefers-reduced-motion:reduce){.hero-logo video{display:none}}

.pricing-tax{font-size:.9rem;color:var(--muted);margin:22px 0 0;font-style:italic}

.hero-logo-play{position:relative;z-index:3;justify-self:center;margin:18px 0 8px;border:1px solid #ffffff80;border-radius:999px;background:#0f1419;color:#fff;padding:10px 18px;cursor:pointer;white-space:nowrap;min-height:44px}
.hero-logo-play[hidden]{display:none}
.hero-logo.is-still video{display:none}

.hero-logo picture{z-index:1}
.hero-logo video{z-index:2}
.hero-logo.is-manual video{display:block!important}

/* Compact brand introduction and readable commercial actions. */
.hero .hero-media,.hero .hero-logo{width:320px}
.hero-intro.wrap{padding-top:34px;padding-bottom:55px}
.hero-intro h1{font-size:clamp(3.3rem,6.2vw,6.6rem)}
.hero .hero-reassurance{max-width:780px;margin:21px auto 0;color:#c9d2dc;font-size:1rem}
.pricing .btn-secondary{color:var(--blue-deep);border-color:var(--blue);margin-top:21px}
.pricing .btn-secondary:hover{background:#e7edf3}
.pricing .btn-primary{margin-top:21px}
.upload-guidance{margin-bottom:21px;font-size:.9rem;color:#435163}
.upload-guidance summary,.fabrication-facts summary{cursor:pointer;font-weight:700;line-height:1.5}
.upload-guidance p{font-size:.9rem;margin-top:13px}
.privacy-note{font-size:.85rem!important;line-height:1.6}
.privacy-note a{text-decoration:underline;text-underline-offset:3px}
.copy-email{border:1px solid #b8c2cc;background:#fff;border-radius:4px;padding:6px 10px;color:var(--blue-deep);margin-left:8px;font-size:.85rem}
.fabrication-facts{margin-top:21px;border-top:1px solid #566678;padding-top:21px;color:#dce3ec}
.fabrication-facts p{font-size:.95rem;margin:17px 0;max-width:none}
.fabrication-table-wrap{overflow-x:auto}
.fabrication-facts table{width:100%;border-collapse:collapse;font-size:.88rem;line-height:1.5}
.fabrication-facts caption{text-align:left;padding-bottom:13px;font-weight:700}
.fabrication-facts th,.fabrication-facts td{text-align:left;border-bottom:1px solid #566678;padding:10px 8px}
.fabrication-facts thead{color:#bad0e9}
.fabrication-facts .fabrication-disclaimer{font-size:.82rem;color:#bac7d5}
@media(max-width:560px){.hero .hero-media,.hero .hero-logo{width:240px}.hero-intro.wrap{padding-top:21px;padding-bottom:34px}.hero-intro h1{font-size:clamp(3rem,11vw,4rem)}.hero .hero-reassurance{font-size:.9rem}.fabrication-facts table{font-size:.8rem}}
.hero-logo-play:focus-visible{outline:3px solid #f3aa7d;outline-offset:3px}

/* Real fabrication: a restrained 8:5 media frame beside the existing CTA. */
.hero-photo{min-height:0;background:#14191f}
.hero-photo:before{display:none}
.hero-photo .fabrication-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.618fr);align-items:center;gap:clamp(34px,5vw,89px);padding-block:clamp(55px,7vw,89px)}
.fabrication-copy{max-width:510px}
.fabrication-copy .hero-actions{gap:13px;margin-top:34px}
.fabrication-copy .btn{padding:16px 23px;gap:13px}
.fabrication-copy .hero-foot{position:static;margin-top:55px;font-size:.72rem;gap:21px}
.fabrication-figure{width:100%;max-width:560px;justify-self:end;margin:0}
.fabrication-media{position:relative;isolation:isolate;aspect-ratio:8 / 5;overflow:hidden;background:#0f1419;border-radius:8px}
.fabrication-media img,.fabrication-media video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.fabrication-media img{z-index:1}
.fabrication-media video{z-index:2;opacity:0;transition:opacity 200ms ease;pointer-events:none}
.fabrication-media.is-playing video{opacity:1}
.fabrication-figure figcaption{display:flex;align-items:center;justify-content:space-between;gap:13px;flex-wrap:wrap;margin-top:13px;color:#c9d2dc;font-size:.78rem;line-height:1.6}
.fabrication-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 16px;border:1px solid #78899c;border-radius:999px;color:#f6f7f8;white-space:nowrap;font-size:.8rem;font-weight:600;cursor:pointer}
.fabrication-toggle:hover{background:#ffffff15;border-color:#bad0e9}
.fabrication-toggle:focus-visible{outline:3px solid #f3aa7d;outline-offset:4px}
.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}
@media(max-width:850px){.hero-photo .fabrication-layout{grid-template-columns:1fr;gap:34px;padding-block:55px}.fabrication-figure{max-width:560px;justify-self:center}.fabrication-copy{max-width:620px}.fabrication-copy .hero-foot{margin-top:34px}}
@media(max-width:560px){.hero-photo .fabrication-layout{padding-block:34px 55px}.fabrication-figure figcaption{font-size:.73rem}.fabrication-toggle{padding-inline:13px}.fabrication-copy .hero-foot{display:flex;font-size:.65rem}}
@media(prefers-reduced-motion:reduce){.fabrication-media video{transition:none}}

/* Three stages echo the logo, with luminous tones on the dark background. */
.process .step:nth-child(1){--stage-color:#FF8A3D}
.process .step:nth-child(2){--stage-color:#7C9DF0}
.process .step:nth-child(3){--stage-color:#4FC7A0}
.process .step h3,.process .step h3 span{color:var(--stage-color)}

/* Materials: useful comparison replaces the decorative photograph. */
.print-capacity{margin-top:21px;padding:17px 0 0;border-top:1px solid #566678;color:#dce3ec}
.print-capacity strong{font-size:1rem}
.print-capacity p{font-size:.94rem;margin:8px 0 0;line-height:1.6}
.fablab-note{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.618fr);gap:34px;padding-top:34px;margin-top:34px;border-top:1px solid #cfd5dc}
.fablab-note h3{font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.35;margin:0}
.fablab-note p{font-size:1rem;margin:0;max-width:720px}
.faq{background:#fff}
.faq-list{max-width:1000px;margin-left:auto}
.faq-list details{border-top:1px solid #cfd5dc;padding:21px 0}
.faq-list details:last-child{border-bottom:1px solid #cfd5dc}
.faq-list summary{cursor:pointer;font-size:1.05rem;line-height:1.5;font-weight:600;padding-right:13px}
.faq-list summary:focus-visible{outline:2px solid var(--blue);outline-offset:6px}
.faq-list p{font-size:1rem;line-height:1.7;max-width:800px;margin:17px 0 0;color:#435163}
@media(max-width:700px){.fablab-note{grid-template-columns:1fr;gap:21px}}
.material-heading{display:grid;grid-template-columns:minmax(0,1.618fr) minmax(280px,1fr);gap:clamp(34px,5vw,89px);align-items:end;margin-bottom:55px}
.material-heading h2{margin-bottom:0}
.material-heading>p{margin:0;max-width:480px}
.material-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px}
.material-card{display:flex;flex-direction:column;min-height:100%;padding:clamp(26px,3.5vw,55px);background:#fff;border:1px solid #cfd5dc;box-shadow:0 13px 55px #202c370b}
.material-code{display:block;color:var(--blue);font-family:'Space Grotesk',Arial,sans-serif;font-size:.86rem;font-weight:700;letter-spacing:.15em;margin-bottom:34px}
.material-card h3{font-size:clamp(1.75rem,2.5vw,2.65rem);margin-bottom:21px}
.material-card p{font-size:1rem}
.material-colours{margin-top:auto;padding-top:34px;border-top:1px solid #d9dee4}
.material-colours>strong{display:block;margin-bottom:17px}
.material-advice{display:grid;grid-template-columns:minmax(0,1.618fr) minmax(280px,1fr);gap:clamp(34px,5vw,89px);margin-top:21px;padding:clamp(26px,3.5vw,55px);background:#1b2634;color:#f6f7f8}
.material-advice .eyebrow{color:#b4cce8}
.material-advice h3{font-size:clamp(1.8rem,3vw,3rem);margin:17px 0 21px}
.material-advice p{color:#c9d2dc;margin-bottom:13px}
.material-advice p:last-child{margin-bottom:0}
.material-options{display:grid;gap:21px}
.material-options>div{padding-bottom:21px;border-bottom:1px solid #566678}
.material-options strong{color:#fff}
.material-options p{margin:8px 0 0;font-size:.94rem}
.material-question{padding:21px;background:#253548}
@media(max-width:850px){.material-heading,.material-cards,.material-advice{grid-template-columns:1fr}.material-heading{align-items:start}.material-heading>p{max-width:700px}.material-card{min-height:0}}
@media(max-width:560px){.material-heading{margin-bottom:34px}.material-cards{gap:13px}.material-card,.material-advice{padding:21px}.material-code{margin-bottom:21px}.material-colours{padding-top:21px}}

.showcase-choice{margin:24px 0;color:var(--muted);font-size:.875rem;line-height:1.5}
.quote-form .showcase-choice label{display:flex;align-items:flex-start;gap:10px;font-size:.875rem;font-weight:400}
.quote-form .showcase-choice input{width:18px;height:18px;min-width:18px;margin:2px 0 0;padding:0;accent-color:var(--blue)}
.showcase-choice small{display:block;margin:8px 0 0 28px;font-size:.875rem}

/* Navigation complète : ligne dédiée sur les écrans intermédiaires. */
header nav{gap:clamp(12px,1.5vw,24px);white-space:nowrap}
@media(min-width:851px) and (max-width:1200px){header .row{height:auto;min-height:86px;flex-wrap:wrap;padding-block:10px}header nav{width:100%;order:3;overflow-x:auto;padding:5px 0 2px}section[id]{scroll-margin-top:138px}}

/* Réalisations : galerie compacte, indépendante des textes. */
.realisations-carousel{margin:3rem 0;min-width:0;max-width:100%}
.realisations-heading h3{font-size:clamp(1.25rem,2vw,1.6rem);margin:0 0 .5rem}
.realisations-heading p{margin:0 0 1rem;color:#5f6670}
.realisations-pause{width:1rem!important;height:1rem!important;display:inline-block!important;vertical-align:middle;margin:0 .5rem 1rem 0!important;accent-color:#2457c5}
.realisations-pause-label{display:inline!important;font-size:.875rem!important;cursor:pointer}
.realisations-viewport{overflow:hidden;margin-top:1rem;max-width:100%;border-radius:12px}
.realisations-track{display:flex;width:max-content;animation:realisations-scroll 160s linear infinite;animation-play-state:running;will-change:transform}
.realisations-group{display:flex;gap:16px;padding-right:16px}
.realisation-thumb{margin:0;width:200px;flex:0 0 200px;background:#fff;border:1px solid #e3e6ea;border-radius:10px;overflow:hidden}
.realisation-thumb img{display:block;width:100%;height:150px;object-fit:contain;background:#f1f2f4}
.realisation-thumb figcaption{font-size:.875rem;line-height:1.4;padding:12px;color:#171a1f}

@keyframes realisations-scroll{to{transform:translateX(-50%)}}
@media(max-width:600px){.realisation-thumb{width:160px;flex-basis:160px}.realisation-thumb img{height:120px}.realisation-thumb figcaption{padding:10px}.realisations-carousel{margin:2rem 0}}


/* Savoir-faire : titres dépliables et vignettes sans légendes. */
.service-grid{align-items:start}
.service-card.service-disclosure{min-height:0;padding:0}
.service-disclosure summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px;min-height:104px}
.service-disclosure summary::-webkit-details-marker{display:none}
.service-disclosure summary h3{margin:0;font-size:clamp(1.1rem,1.8vw,1.45rem)}
.service-disclosure summary::after{content:'+';font-size:1.6rem;line-height:1;flex:none;color:var(--ink-soft)}
.service-disclosure[open] summary::after{content:'−'}
.service-disclosure summary:focus-visible{outline:2px solid #2457c5;outline-offset:-4px}
.service-description{padding:0 24px 24px}
.service-description p{margin:0}

.realisations-pause:checked~.realisations-viewport .realisations-track,.realisations-viewport:hover .realisations-track{animation-play-state:paused}

/* Chargement progressif et vitesse réglable. */
.realisations-track{animation:none!important}
.realisations-speed{display:inline-flex;align-items:center;margin-left:16px;border:1px solid #cbd3dc;border-radius:999px;padding:7px 13px;background:#fff;color:#171a1f;font-size:.875rem;cursor:pointer}
.realisations-speed:hover{border-color:#2457c5;color:#2457c5}
.realisations-speed:focus-visible{outline:2px solid #2457c5;outline-offset:3px}
.realisation-thumb img[data-src]{opacity:0;transition:opacity .2s}
.realisation-thumb img.realisation-loaded{opacity:1}

.application-domains{text-align:center;margin-top:28px}
.application-promise{font-family:'Space Grotesk',Arial,sans-serif;font-size:clamp(1.15rem,2vw,1.6rem);font-weight:500;line-height:1.4;margin:0 0 14px;color:var(--ink)}
.application-cycle{display:grid;place-items:center;min-height:4.5rem;padding:0 12px}
.application-cycle span{grid-area:1/1;opacity:0;max-width:100%;font-size:clamp(.9rem,1.2vw,1.05rem);line-height:1.65;color:var(--ink-soft);animation:domain-fade 32s ease-in-out infinite;animation-delay:var(--domain-delay)}
@keyframes domain-fade{0%{opacity:0}3.75%,21.25%{opacity:1}25%,100%{opacity:0}}
.realisations-pause:checked~.application-domains .application-cycle span{animation-play-state:paused}
@media(max-width:600px){.application-cycle{min-height:6rem}}


/* Fenêtres homogènes : cadrage plein et exploration lente des formats longs. */
.realisation-thumb img{object-fit:cover;object-position:center}
.realisation-thumb img.realisation-pan-vertical{animation:realisation-pan-y 18s ease-in-out infinite alternate}
.realisation-thumb img.realisation-pan-horizontal{animation:realisation-pan-x 18s ease-in-out infinite alternate}
@keyframes realisation-pan-y{0%,10%{object-position:50% 0%}90%,100%{object-position:50% 100%}}
@keyframes realisation-pan-x{0%,10%{object-position:0% 50%}90%,100%{object-position:100% 50%}}
.realisations-pause:checked~.realisations-viewport .realisation-thumb img{animation-play-state:paused}

/* Les anciennes petites sources restent entières pour éviter un zoom dégradant. */
.realisation-thumb img.realisation-source-small{object-fit:contain;animation:none;object-position:center}

.application-promise-cycle{display:grid;align-items:center;min-height:2.8em}
.application-promise-cycle span{grid-area:1/1;animation:promise-fade 48s ease-in-out infinite;opacity:0}
.application-promise-cycle span:nth-child(2){animation-delay:16s}
.application-promise-cycle span:nth-child(3){animation-delay:32s}
@keyframes promise-fade{0%{opacity:0}2.5%,30.833333%{opacity:1}33.333333%,100%{opacity:0}}
.realisations-pause:checked~.application-domains .application-promise-cycle span{animation-play-state:paused}

.application-promise-cycle{color:#bad0e9}

.location-map .map-pin{display:block;line-height:0;margin-bottom:21px}
.atelier-compass{display:block;width:64px;height:64px;color:#c5d9ee}

.atelier-compass{width:82px;height:82px}

.promise-ellipsis{font-weight:inherit;white-space:nowrap}
.promise-ellipsis i{font-style:normal;opacity:0;animation:promise-dot 48s ease-in-out infinite;animation-delay:var(--dot-start)}
.promise-ellipsis i:nth-child(2){animation-delay:calc(var(--dot-start) + 1s)}
.promise-ellipsis i:nth-child(3){animation-delay:calc(var(--dot-start) + 2s)}
@keyframes promise-dot{0%{opacity:0}1.25%,25%{opacity:1}29.166667%,100%{opacity:0}}
.realisations-pause:checked~.application-domains .promise-ellipsis i{animation-play-state:paused}

.promise-ellipsis i:nth-child(1){color:#FF8A3D}
.promise-ellipsis i:nth-child(2){color:#7C9DF0}
.promise-ellipsis i:nth-child(3){color:#4FC7A0}

.faq-question{border-top:1px solid var(--line);padding-top:34px;margin-top:34px;max-width:680px}.faq-question label{display:block;margin:18px 0 8px;font-weight:600}.faq-question input,.faq-question textarea{width:100%;padding:14px;border:1px solid #b8c2cc;border-radius:5px;background:white;color:#172235}.faq-question textarea{resize:vertical;min-height:100px}.faq-question .btn{margin-top:24px}.faq-question small{display:block;line-height:1.6}.faq-question small a{text-decoration:underline}.faq-question .btn:disabled{opacity:.6;cursor:wait}.faq-question-status{margin-top:16px}

.faq-question .faq-help-note{font-size:.82rem;color:var(--ink-soft);margin-top:-4px;line-height:1.6}

/* Confirmation et transfert */
.quote-confirm{width:min(720px,calc(100vw - 28px));max-width:720px;max-height:90dvh;padding:24px;overflow:auto}.confirm-files{max-height:none;overflow:visible;padding:0;list-style:none}.recap-card{background:#fff;border:1px solid #dce4ef;border-radius:12px;padding:16px;margin:12px 0;overflow-wrap:anywhere}.recap-card h4{color:#2457c5;margin:0 0 8px}.recap-card p{margin:5px 0;font-size:.95rem}.recap-group{font-weight:700;color:#2457c5;margin:24px 0 10px}.recap-deferred{border-left:4px solid #c44817;background:#fff8f3}.confirm-actions{position:sticky;bottom:-24px;background:#fafbfc;padding:16px 0;margin-top:16px;border-top:1px solid #dce4ef}.confirm-actions button{flex:1;min-width:160px}.confirm-actions button:disabled{opacity:.6;cursor:wait}#send-progress{background:#edf3fc;border-radius:12px;padding:18px;margin:18px 0}#send-progress[hidden]{display:none}#send-progress h4{margin:0 0 8px}#send-progress progress{width:100%;height:18px;accent-color:#2457c5}#send-progress p{font-size:.95rem}#send-percent{display:block;margin-top:8px}@media(max-width:560px){.quote-confirm{padding:18px}.confirm-actions{bottom:-18px;gap:8px}.confirm-actions button{min-width:0;font-size:.85rem;padding:12px}.recap-card{padding:12px}}

/* Récapitulatif : hiérarchie et lecture par fichier */
#quote-confirm{width:min(800px,calc(100vw - 28px));max-width:800px;background:#f5f7fa;border-radius:20px;padding:24px;max-height:90dvh;overflow:auto}
#quote-confirm h3{font-size:1.65rem;letter-spacing:-.025em}
#quote-confirm .recap-overview{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 8px}
#quote-confirm .recap-overview span{background:#e8effa;color:#204e96;border-radius:30px;padding:7px 12px;font-size:.9rem;font-weight:700}
#quote-confirm .recap-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#quote-confirm .recap-card{list-style:none;margin:10px 0;padding:18px;background:#fff;border:1px solid #dce4ef;border-radius:14px;position:relative}
#quote-confirm .recap-grid .recap-card{margin:0}
#quote-confirm .recap-card>strong{display:block;padding-right:64px;font-size:1rem;line-height:1.4}
#quote-confirm .recap-type{position:absolute;right:16px;top:17px;font-size:.72rem;font-weight:700;letter-spacing:.04em;color:#4f6380;background:#edf1f6;padding:4px 7px;border-radius:6px}
#quote-confirm .recap-specs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 12px;margin:16px 0 0}
#quote-confirm .recap-specs dt{font-size:.75rem;color:#647084;margin:0 0 4px;font-weight:500}
#quote-confirm .recap-specs dd{margin:0;font-size:.92rem;font-weight:600;line-height:1.4;display:flex;align-items:center;gap:7px;overflow-wrap:anywhere}
#quote-confirm .recap-color{flex:0 0 12px;width:12px;height:12px;border:1px solid #b5bec9;border-radius:50%}
#quote-confirm .recap-group{margin:22px 0 10px;font-size:1rem;color:#2457c5}
#quote-confirm .confirm-files{max-height:none;overflow:visible;padding:0;margin:0;list-style:none}
#quote-confirm .recap-deferred{background:#fff8f0;border-left:4px solid #c44817}
#quote-confirm .confirm-actions{position:sticky;bottom:-24px;margin:20px -24px -24px;padding:18px 24px;background:#f5f7fa;border-top:1px solid #dce4ef;z-index:2;display:flex;flex-wrap:nowrap;gap:12px}
#quote-confirm .confirm-actions button{min-width:0;flex:1;font-size:.9rem;padding:14px 12px;line-height:1.4}
#quote-confirm #confirm-hint{font-size:.85rem;color:#5f6670;margin:16px 0}
@media(max-width:560px){#quote-confirm{padding:18px;border-radius:14px}#quote-confirm .recap-grid{grid-template-columns:1fr}#quote-confirm .recap-specs{grid-template-columns:repeat(2,minmax(0,1fr))}#quote-confirm .recap-card{padding:14px}#quote-confirm .confirm-actions{bottom:-18px;margin:18px -18px -18px;padding:14px 18px;gap:8px}#quote-confirm .confirm-actions button{font-size:.8rem}#quote-confirm .recap-overview span{font-size:.8rem}}

#quote-confirm .transfer-warning{padding:14px 16px;border:1px solid #ebcb87;border-left:4px solid #be7b10;border-radius:10px;background:#fff5dd;color:#64420b;font-size:.95rem;line-height:1.5}#quote-confirm .transfer-warning span{font-size:1.3rem}#quote-confirm .transfer-stages{font-size:.82rem;color:#385681;margin:14px 0;line-height:1.6}#quote-confirm #interrupt-send{padding:10px 14px;border:1px solid #8a9ab0;border-radius:8px;background:white;color:#263851;font:inherit;font-size:.9rem;cursor:pointer}#quote-confirm #interrupt-send[hidden]{display:none}#quote-confirm #interrupt-send:disabled{opacity:.5;cursor:wait}
