/* Interlock / architectural collection. Native CSS + a small interaction layer. */
:root { --atelier-accent:#bce8ff; --atelier-dark:#111820; --atelier-white:#f6f8fa; }
body.atelier-theme { background:var(--atelier-white); --color-button:#125c91; --color-link:#175a85; --color-ink:#172330; --color-page-bg:var(--atelier-white); }
.atelier-theme :focus-visible { outline:2px solid #3c97d1; outline-offset:5px; }
.atelier-header { position:sticky; top:0; z-index:110; height:96px; padding:0 3.3vw; display:flex; align-items:center; justify-content:space-between; gap:32px; background:var(--atelier-dark); color:white; }
.atelier-header::after { content:''; position:absolute; bottom:0; left:0; width:var(--atelier-progress,0%); height:2px; background:var(--atelier-accent); }
.atelier-logo img { width:144px; height:auto; display:block; }
.atelier-header a { color:inherit; text-decoration:none; }
.atelier-nav,.atelier-actions { display:flex; align-items:center; gap:36px; }
.atelier-header button { font:inherit; color:inherit; cursor:pointer; border:0; background:none; }
.atelier-nav a,.atelier-nav button { padding:15px 0; font-size:14px; position:relative; }
.atelier-nav a::after,.atelier-nav button::after { content:''; position:absolute; left:0; bottom:5px; height:1px; width:100%; background:var(--atelier-accent); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.atelier-nav a:hover::after,.atelier-nav button:hover::after { transform:scaleX(1); }
.atelier-nav span { margin-left:10px; color:var(--atelier-accent); }
.atelier-quote { border-bottom:1px solid #778591; padding:13px 0; font-size:14px; }
.atelier-quote span { margin-left:24px; color:var(--atelier-accent); }
.atelier-menu-button { display:flex; align-items:center; gap:17px; min-height:48px; }
.atelier-menu-button i { width:24px; display:grid; gap:6px; }
.atelier-menu-button b { height:1px; background:currentColor; transition:transform .3s; }
.atelier-menu-button:hover b:first-child { transform:translateX(4px); }
.atelier-menu-button:hover b:last-child { transform:translateX(-4px); }
.atelier-menu-open { overflow:hidden; }
.atelier-dialog { color:var(--atelier-white); background:var(--atelier-dark); width:100%; max-width:none; height:100dvh; max-height:none; margin:0; padding:0 3.3vw; border:0; overflow:auto; }
.atelier-dialog[open] { animation:menu-enter .45s cubic-bezier(.2,.8,.2,1); }
.atelier-dialog::backdrop { background:#111820a6; }
.atelier-dialog button { color:inherit; font:inherit; cursor:pointer; }
.atelier-dialog a { color:inherit; text-decoration:none; }
.atelier-dialog-top { height:96px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #3d4b58; gap:24px; }
.atelier-dialog-top img { width:144px; height:auto; }
.atelier-dialog-top>span { font-size:13px; color:#bdc9d2; }
.atelier-dialog-top button { display:flex; align-items:center; gap:24px; background:none; border:0; padding:12px; }
.atelier-dialog-top button span { font-size:36px; font-weight:200; }
.atelier-menu-body { display:grid; grid-template-columns:1.3fr 1fr; gap:7vw; padding:40px 0; }
.atelier-menu-tabs { display:flex; gap:28px; margin-bottom:28px; }
.atelier-menu-tabs button { background:none; border:0; border-bottom:1px solid transparent; padding:12px 0; font-size:13px; color:#aebdca; }
.atelier-menu-tabs button[aria-selected=true] { color:var(--atelier-accent); border-color:var(--atelier-accent); }
.atelier-link-panel[hidden] { display:none; }
.atelier-link-panel>a { display:flex; align-items:center; gap:18px; border-bottom:1px solid #354452; font-size:clamp(24px,3vw,48px); letter-spacing:-.05em; font-weight:400; line-height:1.2; padding:14px 0; transition:color .2s,padding .3s; }
.atelier-link-panel>a small { font-size:11px; color:#a8b7c4; letter-spacing:0; align-self:flex-start; margin-top:9px; }
.atelier-link-panel>a>span { margin-left:auto; font-size:25px; color:var(--atelier-accent); opacity:0; transform:translate(-10px,10px); transition:opacity .2s,transform .3s; }
.atelier-link-panel>a:hover,.atelier-link-panel>a:focus-visible { color:var(--atelier-accent); padding-left:10px; }
.atelier-link-panel>a:hover>span,.atelier-link-panel>a:focus-visible>span { opacity:1; transform:none; }
.atelier-minor { display:flex; flex-wrap:wrap; gap:16px 26px; padding-top:24px; font-size:13px; color:#c1cdd7; }
.atelier-minor a:hover { color:var(--atelier-accent); }
.atelier-menu-image { position:relative; margin:0; min-height:430px; overflow:hidden; background:#20384b; }
.atelier-menu-image::after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 40%,#101820d9); pointer-events:none; }
.atelier-menu-image img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.atelier-menu-image figcaption { position:absolute; bottom:30px; left:30px; right:30px; z-index:1; display:grid; gap:20px; }
.atelier-menu-image figcaption span { font-size:clamp(28px,3vw,46px); line-height:1.1; letter-spacing:-.04em; }
.atelier-menu-image figcaption a { font-size:13px; color:var(--atelier-accent); }
.atelier-image-label { position:absolute; top:24px; left:26px; z-index:1; font-size:10px; letter-spacing:.15em; color:white; background:#111820d9; padding:9px 12px; }
.atelier-menu-footer { display:flex; justify-content:space-between; align-items:end; gap:40px; border-top:1px solid #3d4b58; padding:26px 0 32px; font-size:12px; color:#bdc9d2; }
.atelier-menu-footer form { flex-basis:40%; }
.atelier-menu-footer form>div { display:flex; border-bottom:1px solid #6e8495; margin-top:12px; }
.atelier-menu-footer input { width:100%; background:transparent; border:0; color:white; font:inherit; font-size:20px; padding:10px 0; border-radius:0; }
.atelier-menu-footer input::placeholder { color:#a9bdca; }
.atelier-menu-footer form button { background:none; border:0; font-size:28px; padding:4px 18px; color:var(--atelier-accent); }
.atelier-menu-footer strong { display:block; color:white; font-size:23px; font-weight:400; margin-top:10px; }
.atelier-nojs { display:flex; gap:25px; padding:20px; }
/* The house is the stage; type and navigation occupy an architectural grid. */
.arch-hero { position:relative; min-height:720px; height:calc(100svh - 96px); max-height:1100px; background:#243341; color:var(--atelier-white); overflow:hidden; }
.arch-image-wrap { position:absolute; inset:0; overflow:hidden; }
.arch-image { width:100%; height:100%; object-fit:cover; object-position:50% 61%; animation:house-enter 1.6s cubic-bezier(.2,.8,.2,1) both; }
.arch-image-wrap::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#091521d4 0%,#09152165 42%,#09152108 64%,#091521eb 100%),linear-gradient(90deg,#08152360,transparent 70%); }
.arch-grid { position:absolute; inset:0 3.3vw; display:grid; grid-template-columns:repeat(3,1fr); pointer-events:none; opacity:.14; }
.arch-grid i { border-left:1px solid #d6e6f1; }
.arch-grid i:last-child { border-right:1px solid #d6e6f1; }
.arch-topline { position:relative; display:flex; justify-content:space-between; padding:28px 3.3vw; font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
.arch-headline { position:relative; padding:12px 3.3vw 0; }
:root body.atelier-theme .arch-headline h1 { font-size:clamp(62px,8.9vw,154px); font-weight:450; line-height:.98; letter-spacing:-.068em; margin:0; color:white; max-width:1200px; text-wrap:nowrap; }
.arch-headline h1>span { display:block; animation:type-enter .9s cubic-bezier(.2,.8,.2,1) both; }
.arch-headline h1>span:nth-child(2) { animation-delay:.13s; }
.arch-headline h1 em { font-family:Georgia,serif; font-weight:400; letter-spacing:-.075em; color:var(--atelier-accent); }
.arch-intro { display:flex; align-items:center; gap:28px; margin-top:32px; animation:type-enter 1s .25s both; }
.arch-intro p { font-size:15px; line-height:1.6; margin:0; color:#e0eaf2; }
.arch-round { display:grid; place-items:center; width:54px; height:54px; border:1px solid #bed6e680; border-radius:50%; color:white; font-size:24px; text-decoration:none; transition:background .3s,transform .3s; }
.arch-round:hover { background:var(--atelier-accent); color:var(--atelier-dark); transform:rotate(45deg); }
.arch-bottom { position:absolute; bottom:75px; left:3.3vw; right:3.3vw; display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:24px; }
.arch-coordinate { font-size:11px; color:#e0eaf2; display:flex; align-items:center; gap:10px; padding-bottom:15px; }
.arch-pulse { width:6px; height:6px; background:var(--atelier-accent); border-radius:50%; box-shadow:0 0 0 5px #bce8ff17; }
.arch-project { color:white; text-decoration:none; font-size:12px; display:grid; gap:9px; }
.arch-project>span { color:#c5d4df; font-size:11px; }
.arch-project strong { font-weight:400; }
.arch-project b { margin-left:14px; color:var(--atelier-accent); }
.arch-cta { display:flex; align-items:center; gap:35px; background:var(--atelier-accent); color:var(--atelier-dark); text-decoration:none; padding:20px 26px; font-size:14px; transition:background .2s,transform .3s; }
.arch-cta:hover { background:#daf2ff; transform:translateY(-4px); }
.arch-cta span { font-size:22px; }
.arch-scroll { position:absolute; bottom:0; left:3.3vw; right:3.3vw; border-top:1px solid #d6e6f150; padding:16px 0; color:#e0eaf2; text-decoration:none; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.arch-scroll span { margin-right:20px; }
/* A slower editorial rhythm after the immersive opening. */
:root body.atelier-theme .home-intro { max-width:none; padding:100px 6vw; grid-template-columns:1fr 2fr; gap:9vw; border-bottom:1px solid #d4dee6; }
:root body.atelier-theme .home-intro .home-answer { font-size:clamp(20px,2.15vw,34px); color:#243747; font-weight:400; line-height:1.4; letter-spacing:-.035em; }
:root body.atelier-theme .home-eyebrow { color:#395970; font-size:11px; letter-spacing:.1em; }
:root body.atelier-theme .home-body-inner { max-width:none; padding:0 6vw; }
:root body.atelier-theme .home-sec { margin-top:110px; }
:root body.atelier-theme .home-sec h2 { font-size:clamp(32px,4.3vw,68px); letter-spacing:-.05em; line-height:1.07; max-width:22ch; }
:root body.atelier-theme .home-lead { max-width:70ch; line-height:1.7; color:#526778; }
:root body.atelier-theme .home-products { display:flex; gap:10px; height:530px; counter-reset:collection; }
:root body.atelier-theme .home-products>li { flex:1; min-width:0; position:relative; transition:flex .7s cubic-bezier(.2,.8,.2,1); overflow:hidden; background:#1c2c3a; }
:root body.atelier-theme .home-products>li.is-featured { flex:3.6; }
:root body.atelier-theme .home-products a { height:100%; position:relative; display:block; overflow:hidden; }
:root body.atelier-theme .home-products a::after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 35%,#0c1823db); pointer-events:none; }
:root body.atelier-theme .home-products img { width:100%; height:100%; border-radius:0; object-fit:cover; transition:transform .9s; }
:root body.atelier-theme .home-products a:hover img { transform:scale(1.05); }
:root body.atelier-theme .home-products span { position:absolute; z-index:1; left:23px; bottom:45px; color:white; padding:0; font-size:clamp(20px,2.3vw,34px); writing-mode:vertical-rl; transform:rotate(180deg); white-space:nowrap; transition:opacity .3s; }
:root body.atelier-theme .home-products .is-featured span { writing-mode:horizontal-tb; transform:none; bottom:60px; }
:root body.atelier-theme .home-prod-line { position:absolute; z-index:1; bottom:25px; left:23px; right:20px; opacity:0; color:#e0ebf3; font-size:12px; transform:translateY(10px); transition:opacity .3s .2s,transform .3s .2s; padding:0; }
:root body.atelier-theme .is-featured .home-prod-line { opacity:1; transform:none; }
:root body.atelier-theme .home-products>li::before { content:attr(data-number); position:absolute; z-index:2; top:20px; left:22px; color:white; font-size:12px; }
:root body.atelier-theme .home-products a:hover span { color:var(--atelier-accent); text-decoration:none; }
:root body.atelier-theme .home-trust { background:#e8eff5; padding:34px 6vw; }
:root body.atelier-theme .home-trust a,:root body.atelier-theme .home-trust span { color:#3d5365; }
:root body.atelier-theme .home-trust strong { color:#172a3a; }
:root body.atelier-theme .home-climate { background:#142434; color:white; padding:65px 6vw; }
:root body.atelier-theme .home-climate-inner { padding:0; max-width:none; }
:root body.atelier-theme .home-climate h2 { color:#fff; max-width:34ch; font-size:clamp(28px,3vw,45px); }
:root body.atelier-theme .home-chip { border-color:#586f83; color:#e2edf6; border-radius:0; background:transparent; }
:root body.atelier-theme .home-chip.is-on { background:var(--atelier-accent); color:#142434; border-color:var(--atelier-accent); }
:root body.atelier-theme .home-climate-panel { color:#ccdeeb; }
:root body.atelier-theme .home-climate-panel strong { color:var(--atelier-accent); }
:root body.atelier-theme .home-climate-panel a { color:#e0f2ff; }
:root body.atelier-theme .home-stats { background:transparent; border:0; gap:0; }
:root body.atelier-theme .home-stats li { background:transparent; border-top:1px solid #9dafbd; padding:32px 24px 40px 0; }
:root body.atelier-theme .home-stats strong { font-size:30px; color:#233b50; }
:root body.atelier-theme .home-projects { gap:24px; }
:root body.atelier-theme .home-projects img { border-radius:0; aspect-ratio:4/5; object-fit:cover; }
:root body.atelier-theme .home-reviews li { border-top-color:#658dab; background:#eaf1f6; }
:root body.atelier-theme .home-hubs a { border-radius:0; }
:root body.atelier-theme .home-quote-section { background:#bce8ff; max-width:none; padding:90px 6vw; gap:8vw; }
:root body.atelier-theme .home-quote-intro h2 { font-size:clamp(45px,6vw,92px); letter-spacing:-.065em; }
:root body.atelier-theme .home-nap { background:#14212d; }
:root body.atelier-theme .home-nap h2 { color:#e7f2fa; }
:root body.atelier-theme .home-body { padding-bottom:100px; }
:root body.atelier-theme .home-sticky { background:#142434; }
.atelier-reveal { opacity:1; }
.atelier-reveal.atelier-in { animation:section-enter .8s cubic-bezier(.2,.8,.2,1) both; }
@keyframes section-enter { from { transform:translateY(26px); } to { transform:none; } }
@keyframes type-enter { from { opacity:0; transform:translateY(25px); clip-path:inset(100% 0 0); } to { opacity:1; transform:none; clip-path:inset(0); } }
@keyframes house-enter { from { transform:scale(1.07); } to { transform:scale(1); } }
@keyframes menu-enter { from { opacity:0; transform:translateY(-30px); } to { opacity:1; transform:none; } }
@media(min-width:901px) { .atelier-dialog .atelier-menu-content { min-height:460px; } }
@media(max-width:1100px) { .atelier-nav { gap:20px; } .atelier-actions { gap:24px; } .atelier-quote { display:none; } .arch-hero { min-height:700px; } .atelier-menu-body { gap:4vw; } }
@media(max-width:760px) {
 .atelier-header,.atelier-dialog-top { height:80px; padding-left:0; padding-right:0; }.atelier-header { padding:0 22px; }.atelier-logo img,.atelier-dialog-top img { width:125px; }.atelier-nav { display:none; }.atelier-dialog { padding:0 22px; }.atelier-dialog-top>span { display:none; }.atelier-menu-body { display:block; padding:18px 0 28px; }.atelier-menu-image { display:none; }.atelier-menu-tabs { gap:22px; margin-bottom:16px; }.atelier-menu-tabs button { font-size:11px; }.atelier-link-panel>a { font-size:32px; padding:18px 0; }.atelier-link-panel>a>span { opacity:1; transform:none; }.atelier-menu-footer { display:grid; gap:26px; }.atelier-menu-footer>span { display:none; }
 .arch-hero { height:calc(100svh - 80px); min-height:700px; max-height:950px; }.arch-topline { padding:22px; font-size:9px; }.arch-topline>span:last-child { display:none; }.arch-headline { padding:35px 22px 0; }:root body.atelier-theme .arch-headline h1 { font-size:clamp(36px,10.5vw,79px); line-height:1.06; letter-spacing:-.06em; }.arch-intro { margin-top:25px; gap:25px; }.arch-intro p { font-size:13px; }.arch-round { width:45px; height:45px; }.arch-image { object-position:60% 50%; }.arch-bottom { left:22px; right:22px; bottom:70px; grid-template-columns:1fr; gap:17px; }.arch-coordinate { display:none; }.arch-project { font-size:11px; }.arch-project>span { display:none; }.arch-cta { justify-content:space-between; padding:18px 22px; }.arch-scroll { left:22px; right:22px; }.arch-grid { inset:0 22px; }
 :root body.atelier-theme .home-intro { padding:55px 24px; grid-template-columns:1fr; gap:25px; }:root body.atelier-theme .home-body-inner { padding:0 24px; }:root body.atelier-theme .home-sec { margin-top:70px; }:root body.atelier-theme .home-sec h2 { font-size:38px; }:root body.atelier-theme .home-products { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; height:430px; padding-bottom:12px; }:root body.atelier-theme .home-products>li,:root body.atelier-theme .home-products>li.is-featured { flex:0 0 83%; scroll-snap-align:start; }:root body.atelier-theme .home-products span { writing-mode:horizontal-tb; transform:none; bottom:70px; font-size:28px; }:root body.atelier-theme .home-products .is-featured span { bottom:70px; }:root body.atelier-theme .home-prod-line { opacity:1; transform:none; bottom:25px; }:root body.atelier-theme .home-climate { padding:45px 24px; }:root body.atelier-theme .home-climate h2 { font-size:28px; }:root body.atelier-theme .home-trust { padding:30px 24px; }:root body.atelier-theme .home-quote-section { padding:60px 24px; }:root body.atelier-theme .home-projects img { aspect-ratio:4/3; }
}
@media(prefers-reduced-motion:reduce) { .atelier-theme *, .atelier-theme *::before, .atelier-theme *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }.atelier-reveal { opacity:1; transform:none; } }

/* Anchor targets clear the stable navigation at every breakpoint. */
.atelier-theme #roof-styles,.atelier-theme #request-quote { scroll-margin-top:112px; }
@media(max-width:760px){.atelier-theme #roof-styles,.atelier-theme #request-quote{scroll-margin-top:96px;}}

:root body.atelier-theme .pr { --pr-navy:#142434; --pr-sky-band:#eaf1f6; --pr-sky:#eaf1f6; --pr-eyebrow:#175a85; }
:root body.atelier-theme .pr-btn.pr-btn-gold { background:#bce8ff; color:#142434; border-radius:0; }
:root body.atelier-theme .site-footer { background:#111820; }
:root body.atelier-theme .home-btn { background:#125c91; color:white; border-radius:0; }
@media(max-width:760px) {
 :root body.atelier-theme:has(.arch-hero) .a11y-fab { left:auto; right:16px; bottom:16px!important; width:44px; height:44px; background:#125c91; }
 :root body.atelier-theme:has(.home-sticky.is-on) .a11y-fab { bottom:84px!important; }
}

/* Obsidian + glacier blue: ice accents, deep-blue primary actions. */
.arch-cta { background:#125c91; color:#fff; }
.arch-cta:hover { background:#0c4874; }
:root body.atelier-theme .pr-btn.pr-btn-gold { background:#125c91; color:#fff; }
:root body.atelier-theme .home-quote-section { background:#dceef9; }

/* Keep the dedicated Projects experience in primary navigation on every screen. */
.atelier-projects-mobile { display:none; }
@media(max-width:760px) { .atelier-projects-mobile { display:block; font-size:13px; white-space:nowrap; } .atelier-actions { gap:20px; } }
@media(max-width:400px) { .atelier-menu-button>span { display:none; } .atelier-header { gap:16px; } .atelier-menu-button { min-width:44px; justify-content:center; } }

/* Preserve contrast for links inserted by the post-build glossary pass. */
.arch-topline a, .arch-intro p a { color: inherit; text-decoration-color: currentColor; }

/* Readability: paired surfaces and stronger specificity than the legacy refresh layer. */
:root body.refresh-theme.atelier-theme { font-size:18px; line-height:1.65; --color-text-soft:#334b5b; --color-muted-2:#42596a; }
:root body.refresh-theme.atelier-theme .home-climate { background:#eaf1f6; color:#172330; }
:root body.refresh-theme.atelier-theme .home-climate h2 { color:#172330; font-size:clamp(28px,3vw,44px); line-height:1.25; letter-spacing:-.025em; }
:root body.refresh-theme.atelier-theme .home-climate-panel,
:root body.refresh-theme.atelier-theme .home-climate-panel p { color:#334b5b; font-size:18px; line-height:1.7; }
:root body.refresh-theme.atelier-theme .home-climate-panel strong { color:#125c91; font-size:30px; line-height:1.3; }
:root body.refresh-theme.atelier-theme .home-climate-panel a { color:#125c91; text-decoration:underline; text-underline-offset:4px; }
:root body.refresh-theme.atelier-theme .home-chip { font-size:17px; min-height:48px; padding:12px 18px; color:#243b44; border-color:#637d8e; }
:root body.refresh-theme.atelier-theme .home-chip.is-on { background:#142434; color:#fff; border-color:#142434; }
:root body.refresh-theme.atelier-theme .home-chip:hover { background:#d4e3ee; color:#142434; }
:root body.refresh-theme.atelier-theme .home-trust { background:#142434; color:#fff; }
:root body.refresh-theme.atelier-theme .home-trust a,
:root body.refresh-theme.atelier-theme .home-trust strong { color:#fff; }
:root body.refresh-theme.atelier-theme .home-trust strong { font-size:20px; line-height:1.4; }
:root body.refresh-theme.atelier-theme .home-trust span { color:#dce8f1; font-size:16px; line-height:1.5; }
:root body.refresh-theme.atelier-theme .home-trust ul { gap:28px; }
:root body.refresh-theme.atelier-theme .home-intro .home-answer,
:root body.refresh-theme.atelier-theme .home-lead,
:root body.refresh-theme.atelier-theme .home-steps p,
:root body.refresh-theme.atelier-theme .home-stats p,
:root body.refresh-theme.atelier-theme .home-quote-intro > p:not(.home-eyebrow) { font-size:18px; line-height:1.75; color:#334b5b; letter-spacing:normal; }
:root body.refresh-theme.atelier-theme .home-intro a { color:#125c91; text-decoration:underline; text-underline-offset:3px; }
:root body.refresh-theme.atelier-theme .home-eyebrow { font-size:15px; color:#175a85; line-height:1.6; letter-spacing:.08em; }
:root body.refresh-theme.atelier-theme .home-rev-meta,
:root body.refresh-theme.atelier-theme .home-stat-src,
:root body.refresh-theme.atelier-theme .home-ev-meta,
:root body.refresh-theme.atelier-theme .home-ev-venue,
:root body.refresh-theme.atelier-theme .home-vid-loc,
:root body.refresh-theme.atelier-theme .home-hubs span { font-size:16px; color:#42596a; line-height:1.6; }
:root body.refresh-theme.atelier-theme .home-ev-month,
:root body.refresh-theme.atelier-theme .home-ev-year { font-size:15px; opacity:1; }
:root body.refresh-theme.atelier-theme .home-btn { font-size:18px; min-height:48px; }
:root body.refresh-theme.atelier-theme .home-nap p { font-size:18px; color:#e0ebf3; }
:root body.refresh-theme.atelier-theme .home-nap-note { font-size:16px; color:#dce8f1; }
:root body.refresh-theme.atelier-theme .site-footer .f-col-h,
:root body.refresh-theme.atelier-theme .site-footer .f-col a { font-size:16px; line-height:1.6; }
.atelier-theme .atelier-nav a,.atelier-theme .atelier-nav button,
.atelier-theme .atelier-quote,.atelier-theme .atelier-projects-mobile { font-size:17px; }
.atelier-theme .atelier-menu-tabs button { font-size:17px; min-height:48px; }
.atelier-theme .atelier-minor,.atelier-theme .atelier-menu-footer,
.atelier-theme .atelier-dialog-top>span,.atelier-theme .atelier-menu-image figcaption a { font-size:16px; }
.atelier-theme .atelier-link-panel>a small { font-size:15px; }
.atelier-theme .arch-intro p { font-size:18px; line-height:1.65; color:#fff; }
.atelier-theme .arch-topline,.atelier-theme .arch-coordinate,
.atelier-theme .arch-project,.atelier-theme .arch-project>span,
.atelier-theme .arch-scroll { font-size:15px; color:#fff; }
.atelier-theme .arch-cta { font-size:18px; }
:root body.refresh-theme.atelier-theme .home-prod-line { font-size:16px; line-height:1.5; color:#fff; }
:root body.refresh-theme.atelier-theme .project-ready .home-proj-loc { font-size:17px; }
.atelier-theme .project-map-link { font-size:17px; }
.atelier-theme .project-selector button { font-size:16px; }
.atelier-theme :focus-visible { outline:3px solid #237cb3; outline-offset:4px; }
.atelier-theme .atelier-header :focus-visible,.atelier-theme .atelier-dialog :focus-visible { outline-color:#bce8ff; }
@media(max-width:1100px) { .atelier-theme .atelier-nav { gap:20px; } .atelier-theme .atelier-quote { display:none; } }
@media(max-width:760px) {
 .atelier-theme .arch-hero { height:auto; min-height:820px; max-height:none; }
 .atelier-theme .arch-headline { padding-top:24px; }
 .atelier-theme .arch-intro { margin-top:24px; }
 .atelier-theme .atelier-menu-tabs { flex-wrap:wrap; gap:8px 20px; }
 :root body.refresh-theme.atelier-theme .home-climate-panel { grid-template-columns:1fr; }
 :root body.refresh-theme.atelier-theme .home-trust ul { gap:28px 16px; }
}
/* Product names and descriptions stay horizontal and visible without hover. */
:root body.refresh-theme.atelier-theme .home-products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; height:auto; overflow:visible; }
:root body.refresh-theme.atelier-theme .home-products>li { background:#142434; }
:root body.refresh-theme.atelier-theme .home-products a { display:flex; flex-direction:column; height:100%; background:#142434; color:#fff; }
:root body.refresh-theme.atelier-theme .home-products a::after { display:none; }
:root body.refresh-theme.atelier-theme .home-products img { height:260px; border-radius:0; }
:root body.refresh-theme.atelier-theme .home-products span { position:static; writing-mode:horizontal-tb; transform:none; white-space:normal; color:#fff; font-size:24px; line-height:1.3; padding:20px 20px 10px; }
:root body.refresh-theme.atelier-theme .home-prod-line { position:static; opacity:1; transform:none; padding:0 20px 24px; color:#e0ebf3; }
:root body.refresh-theme.atelier-theme .home-products>li::before { font-size:16px; background:#142434; padding:3px 8px; }
@media(max-width:900px) { :root body.refresh-theme.atelier-theme .home-products { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:580px) { :root body.refresh-theme.atelier-theme .home-products { grid-template-columns:1fr; } }

/* Full-viewport hero: navigation + hero fill the visible browser height.
   Keep controls in normal flow so enlarged text and short screens can scroll. */
:root body.atelier-theme .arch-hero {
 display:flex; flex-direction:column;
 height:calc(100svh - 96px); min-height:0; max-height:none;
}
:root body.atelier-theme .arch-topline { flex-shrink:0; }
:root body.atelier-theme .arch-headline { flex-shrink:0; }
:root body.atelier-theme .arch-bottom {
 position:relative; left:auto; right:auto; bottom:auto;
 margin: auto 3.3vw 0; padding:28px 0 24px; flex-shrink:0;
}
:root body.atelier-theme .arch-scroll {
 position:relative; left:auto; right:auto; bottom:auto;
 margin:0 3.3vw; flex-shrink:0;
}
@media(max-width:760px) {
 :root body.atelier-theme .arch-hero { height:calc(100svh - 80px); min-height:0; max-height:none; }
 :root body.atelier-theme .arch-bottom { margin-left:22px; margin-right:22px; padding-top:28px; padding-bottom:20px; }
 :root body.atelier-theme .arch-scroll { margin-left:22px; margin-right:22px; }
}
@media(max-height:650px) {
 :root body.atelier-theme .arch-hero { height:auto; min-height:calc(100svh - 96px); }
}
@media(max-height:650px) and (max-width:760px) {
 :root body.atelier-theme .arch-hero { min-height:calc(100svh - 80px); }
}
