/* CMS theme roles keep the exact original palette as fallbacks.
   Status/validation colors, RAL samples, photographs and optical masks are independent. */
/* ELIPS studio system: controlled measure, warm paper, architectural photography. */
:root {
 --ink:var(--theme-text, #152b3b); --midnight:var(--theme-primary, #102433); --paper:var(--theme-page, #faf8f3); --stone:var(--theme-surface-alt, #eeebe4);
 --muted:var(--theme-muted, #65716f); --brass:var(--theme-accent, #a08150); --champagne:var(--theme-highlight, #d4bd91); --line:var(--theme-border, #d9d7cf);
 --content-width:1320px; --gutter:48px; --section-space:76px; --grid-gap:32px;
 --color-primary:var(--midnight); --color-text-main:var(--ink); --color-text-muted:var(--muted);
 --color-bg-page:var(--paper); --color-bg-alt:var(--stone); --color-gold:var(--brass); --color-gold-light:var(--champagne);
 --header-height:76px;
}
body { background:var(--paper); color:var(--theme-text, var(--ink)); }
.container { width:100%; max-width:var(--content-width); padding-inline:var(--gutter); margin-inline:auto; }
h1,h2,h3 { text-wrap:balance; }
p { text-wrap:pretty; }
.site-header,.site-header.scrolled { background:var(--paper); color:var(--theme-text, var(--ink)); border-bottom:1px solid var(--line); box-shadow:none; }
.header-container { height:var(--header-height); gap:24px; }
.logo-title { font-size:1.04rem; letter-spacing:.035em; color:var(--theme-text, var(--ink)); }
.logo-title span { color:var(--theme-accent-on-primary, #987b4d); }.logo-subtitle { color:var(--muted); font-size:.51rem; letter-spacing:.17em; }
.logo-icon ellipse:nth-child(2) { stroke:var(--theme-text, var(--ink)); }
.nav-menu { gap:24px; }
.nav-link { color:var(--theme-text, var(--ink)); font-size:.81rem; }
.nav-link.active,.nav-link:hover { color:var(--theme-accent-on-primary, #876a3c); }
.nav-link.active::after { height:1px; bottom:8px; background:var(--brass); }
.header-actions { gap:20px; }.phone-link { color:var(--theme-text, var(--ink)); font-weight:500; }
.header-phone-sub { color:var(--theme-accent-on-primary, #81683f); font-size:.68rem; }.header-actions>.btn { min-height:43px; }
.btn { border-radius:2px; min-height:50px; padding:14px 22px; font-size:.88rem; font-weight:500; box-shadow:none; transform:none; }
.btn-gold { background:var(--theme-button-start, var(--champagne)); color:var(--theme-on-button, var(--theme-on-accent, var(--ink))); box-shadow:none; }
.btn-gold:hover { background:var(--theme-button-fill, var(--theme-accent, #dfcba8)); color:var(--theme-on-button, var(--theme-on-accent, var(--ink))); box-shadow:none; transform:none; }
.btn-navy { background:var(--midnight); color:var(--theme-on-primary, #fff); }.btn-navy:hover { background:var(--theme-primary-soft, #254355); transform:none; }
.text-link { display:inline-flex; align-items:center; gap:20px; padding:8px 0; color:var(--theme-text, var(--ink)); font-size:.86rem; border-bottom:1px solid var(--theme-border, #a8afa7); }
.text-link span { color:var(--theme-accent-strong, var(--brass)); }.text-link:hover { border-color:var(--brass); color:var(--theme-accent-strong, #876a3c); }
.eyebrow { font:500 .65rem/1.5 var(--font-sans); letter-spacing:.15em; color:var(--theme-accent-strong, var(--brass)); margin:0 0 18px; }
.section { padding:var(--section-space) 0; }
.studio-home h2,.studio-home h1 { font-family:var(--font-serif); font-weight:500; line-height:1.14; letter-spacing:-.035em; color:var(--theme-text, var(--ink)); }
.studio-home h2 { font-size:clamp(2rem,3.05vw,2.8rem); }
.studio-home h1 em,.studio-home h2 em { font-weight:500; color:var(--theme-accent-strong, #93764b); }
.studio-body { font-size:.96rem; line-height:1.8; color:var(--muted); max-width:480px; margin:22px 0; }
.studio-hero { padding-top:44px; }
.studio-hero-top { display:grid; grid-template-columns:1.25fr 1fr; gap:60px; align-items:end; margin-bottom:34px; }
.studio-hero .hero-content { padding:0; max-width:none; }
.studio-hero h1 { font-size:clamp(2.7rem,4.1vw,3.8rem); }
.studio-hero h1 em { display:block; margin-top:4px; font-size:.86em; }
.studio-hero-intro { padding-bottom:3px; }
.studio-hero-intro>p { font-size:.98rem; line-height:1.8; color:var(--muted); max-width:455px; margin-bottom:20px; }
.studio-hero .hero-buttons { gap:23px; flex-wrap:nowrap; }
.studio-hero .hero-buttons .btn { padding:14px 20px; }
.studio-hero-photo { margin:0; position:relative; }
.studio-hero .hero-media { position:static; width:100%; height:auto; z-index:auto; }
.studio-hero .hero-media img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; object-position:center 0; }
.studio-hero-photo figcaption { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:21px 24px; background:var(--midnight); color:var(--theme-on-primary-muted, #f4f0e6); font-size:.9rem; }
.image-index { margin-right:24px; color:var(--champagne); font-size:.65rem; letter-spacing:.1em; }
.studio-hero-photo figcaption>a { color:var(--champagne); font-size:.8rem; white-space:nowrap; }
.studio-hero-photo figcaption>a span { margin-left:20px; }
.studio-image-note { position:absolute; right:18px; bottom:82px; background:color-mix(in srgb, var(--theme-primary, rgb(16 36 51)) 72%, transparent); color:var(--theme-on-primary-muted, #eee9df); padding:5px 8px; font-size:.62rem; letter-spacing:.03em; }
.studio-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:26px; padding-bottom:30px; }
.studio-benefits>div { display:flex; align-items:flex-start; gap:18px; padding-right:28px; }
.studio-benefits>div+div { border-left:1px solid var(--line); padding-left:30px; }
.studio-benefits>div>span { font-family:var(--font-serif); font-size:1.3rem; color:var(--theme-accent-strong, var(--brass)); line-height:1.6; }
.studio-benefits strong { display:block; font-size:.91rem; font-weight:500; }.studio-benefits small { display:block; font-size:.77rem; color:var(--muted); margin-top:4px; }
.studio-section-heading { display:grid; grid-template-columns:1.25fr 1fr; gap:60px; align-items:end; margin-bottom:32px; }
.studio-section-heading>div:last-child>p,.studio-section-heading>p { font-size:.95rem; line-height:1.8; color:var(--muted); max-width:455px; margin-bottom:14px; }
.studio-materials { padding-top:48px; }
.studio-materials .material-layout { grid-template-columns:.85fr 1.15fr; gap:64px; align-items:start; }
.studio-materials .material-list { margin:0; border-top:1px solid var(--line); }
.studio-materials .material-row { padding:20px 0; gap:20px; border-color:var(--line); }
.studio-materials .material-row>span:first-child { color:var(--theme-accent-strong, var(--brass)); font-size:.73rem; }
.studio-materials .material-row strong { font-size:1.55rem; }.studio-materials .material-row small { font-size:.82rem; line-height:1.6; }
.studio-materials .material-row[aria-pressed=true] { border-color:var(--brass); }.studio-materials .material-row:hover strong { color:var(--theme-accent-strong, var(--brass)); }
.studio-materials .material-figure { display:block; align-self:start; }
.studio-materials .material-image { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; flex:none; }
.studio-materials .material-figure figcaption { min-height:0; padding:16px 0 0; }
.studio-materials .material-figure strong { font-size:.85rem; }.studio-materials .material-figure small { font-size:.71rem; }.studio-materials .material-figure a { font-size:.77rem; }
.material-help { padding-top:20px; }.material-help p { font-size:.82rem; color:var(--muted); margin-bottom:4px; }
.studio-portfolio { background:var(--stone); }
.studio-projects { display:grid; grid-template-columns:1.12fr 1fr 1fr; gap:24px; align-items:start; }
.studio-project-photo { position:relative; overflow:hidden; }
.studio-project-photo img { width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; transition:transform .45s; }
.studio-project:first-child .studio-project-photo img { aspect-ratio:4/3; }
.studio-project:hover img { transform:scale(1.025); }
.project-image-label { position:absolute; left:14px; top:14px; color:var(--theme-on-primary, #fff); background:color-mix(in srgb, var(--theme-primary, rgb(16 36 51)) 84%, transparent); font-size:.6rem; letter-spacing:.12em; padding:5px 8px; }
.studio-project-meta { display:flex; justify-content:space-between; align-items:start; gap:15px; padding-top:17px; }
.studio-project-meta p { font-size:.6rem; letter-spacing:.1em; color:var(--theme-accent-strong, var(--brass)); margin-bottom:9px; }
.studio-project-meta h3 { font-family:var(--font-serif); font-size:1.35rem; line-height:1.35; font-weight:500; }
.studio-project-meta>span { color:var(--theme-accent-strong, var(--brass)); font-size:1.2rem; padding-top:24px; }
.studio-gallery-note { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--theme-border, #cfcdc3); padding-top:19px; margin-top:28px; font-size:.77rem; color:var(--muted); }
.studio-gallery-note a { color:var(--theme-accent-strong, #826b47); }
.studio-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.studio-detail-grid img { width:100%; height:auto; aspect-ratio:1.5; object-fit:cover; object-position:center 0; }
.studio-detail-grid>a>p { font-size:.61rem; letter-spacing:.12em; color:var(--theme-accent-strong, var(--brass)); margin:18px 0 10px; }
.studio-detail-grid h3 { display:flex; justify-content:space-between; gap:20px; font-size:1rem; font-family:var(--font-sans); font-weight:500; line-height:1.5; }
.studio-detail-grid h3 span { color:var(--theme-accent-strong, var(--brass)); }
.studio-detail-grid small { display:block; margin-top:10px; font-size:.82rem; line-height:1.75; color:var(--muted); }
.studio-disclosure { font-size:.72rem; color:var(--muted); margin-top:24px; }
.studio-estimate { background:var(--stone); }
.studio-estimate-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:100px; align-items:start; }
.studio-estimate-form { margin-top:28px; }
.estimate-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-bottom:20px; }
.studio-estimate-form label { font-size:.8rem; display:block; margin-bottom:9px; color:var(--theme-text, var(--ink)); }
.studio-estimate-form input,.studio-estimate-form select { background:var(--paper); border:1px solid var(--theme-border, #c6cbc3); border-radius:2px; padding:13px; width:100%; height:49px; font-size:.95rem; color:var(--theme-text, var(--ink)); }
.studio-estimate-form select { font-size:.84rem; }
.estimate-actions { display:flex; align-items:center; gap:24px; margin-top:23px; }
.studio-quote { padding:35px; background:var(--midnight); color:var(--theme-on-primary, #fff); }
.studio-quote .eyebrow { color:var(--theme-accent-on-primary, var(--champagne)); }.studio-quote h3 { font-family:var(--font-serif); font-weight:500; font-size:1.6rem; margin:0 0 22px; color:var(--theme-on-primary, #fff); }
#homeEstimateBreakdown>div { display:flex; align-items:center; justify-content:space-between; gap:24px; font-size:.83rem; padding:14px 0; border-bottom:1px solid var(--theme-primary-soft, #3c4f59); color:var(--theme-on-primary-muted, #c7d0d3); }
#homeEstimateBreakdown strong { color:var(--theme-on-primary, #fff); font-weight:400; white-space:nowrap; }
.studio-quote-total { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px 0 18px; }
.studio-quote-total>span { font-size:.85rem; color:var(--theme-on-primary-muted, #c7d0d3); }.studio-quote-total output { font-family:var(--font-serif); color:var(--theme-accent-on-primary, var(--champagne)); font-size:3.4rem; line-height:1; }
.studio-quote-total small { font-family:var(--font-sans); font-size:.82rem; }
#homeEstimateStatus { color:var(--theme-on-primary-muted, #c4ced3); font-size:.76rem; line-height:1.8; margin-bottom:22px; }
.studio-quote>.btn { width:100%; }.studio-quote-source { font-size:.72rem; color:var(--theme-on-primary-muted, #b9c7cc); line-height:1.7; margin-top:17px; }.studio-quote-source a { text-decoration:underline; text-underline-offset:3px; }
.studio-quote[aria-busy=true] output { opacity:.5; }
.studio-process { padding-block:60px; }.studio-process .studio-section-heading { margin-bottom:30px; }
.studio-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.studio-steps article { border-top:1px solid var(--theme-accent-strong, #b4a383); padding-top:17px; }
.studio-steps article>span { font-family:var(--font-serif); font-size:1.65rem; color:var(--theme-accent-strong, var(--brass)); }
.studio-steps h3 { font-size:1rem; font-weight:500; margin:15px 0 10px; }.studio-steps p { font-size:.83rem; line-height:1.75; color:var(--muted); }
.studio-trust { background:var(--midnight); color:var(--theme-on-primary, #fff); padding-block:58px; }
.studio-trust-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:80px; align-items:center; }
.studio-trust h2 { color:var(--theme-on-primary, #fff); }.studio-trust h2 em { color:var(--theme-accent-on-primary, var(--champagne)); }.studio-trust .studio-body { color:var(--theme-on-primary-muted, #c4cfd4); }
.trust-links { display:flex; flex-wrap:wrap; gap:10px 28px; }.trust-links .text-link { color:var(--champagne); font-size:.8rem; border-color:var(--theme-muted, #6b7475); }
.studio-archive { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.studio-archive img { width:100%; aspect-ratio:4/3; object-fit:contain; background:var(--theme-surface-alt, #e4e5df); }
.studio-archive a>span { font-size:.73rem; display:block; margin-top:12px; color:var(--theme-accent-on-primary, #e3d7bd); }.studio-archive>p { grid-column:1/-1; font-size:.7rem; color:var(--theme-on-primary-muted, #bac7cd); }
.studio-faq { background:var(--paper); }
.studio-faq-grid { display:grid; grid-template-columns:.9fr 1.25fr; gap:100px; align-items:start; }
.studio-faq .faq-intro { grid-row:auto; }.studio-faq .section-title { font-size:2.6rem; }
.faq-question { font-size:.94rem; line-height:1.6; padding:18px 0; }.faq-answer { font-size:.88rem; line-height:1.8; color:var(--muted); }
.studio-faq .faq-item { background:none; }.studio-faq .faq-item.active .faq-answer { padding-bottom:18px; }
.studio-appointment { background:var(--stone); }
.studio-appointment-grid { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:start; }
.appointment-story>p:not(.eyebrow) { margin:22px 0 26px; font-size:.94rem; line-height:1.8; color:var(--muted); max-width:450px; }
.appointment-story figure { margin:0; }.appointment-story img { width:100%; height:auto; aspect-ratio:1.8; object-fit:cover; object-position:center 32%; }
.appointment-story figcaption { color:var(--muted); font-size:.7rem; margin-top:12px; }
.appointment-form { padding:34px; background:var(--paper); border:1px solid var(--line); }
.appointment-form h3 { font-family:var(--font-serif); font-size:1.7rem; font-weight:500; margin-bottom:10px; }.appointment-form>p:not(.eyebrow) { color:var(--muted); font-size:.82rem; margin-bottom:25px; }
.appointment-form .form-inline-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:22px; }
.form-label { font-size:.8rem; }.form-input,.form-textarea,.form-select { background:var(--theme-surface, #fff); font-size:.95rem; border-radius:2px; min-height:48px; border-color:var(--theme-border, #cdd1c9); }
.form-checkbox-label { font-size:.77rem; line-height:1.7; margin:17px 0 22px; }.form-checkbox-label a { text-decoration:underline; text-underline-offset:3px; }.form-service-note { font-size:.73rem; line-height:1.8; }
.site-footer { background:var(--theme-primary-deep, #0c1e2b); color:var(--theme-on-primary-muted, #eee9df); padding-top:45px; }
.footer-grid { grid-template-columns:1.25fr 1fr 1fr 1.2fr; gap:40px; margin-bottom:34px; }.footer-brand { font-size:1rem; }.footer-heading { font-size:.64rem; color:var(--theme-accent-on-primary, var(--champagne)); margin-bottom:17px; }.footer-links a,.footer-desc { font-size:.8rem; }.footer-phone { font-size:.9rem; }.footer-email { font-size:.83rem; }.footer-bottom { padding:19px 0; font-size:.7rem; }
@media(min-width:1600px) { :root { --content-width:1480px; --gutter:60px; }.studio-hero h1 { font-size:4rem; }.studio-hero .hero-media img { aspect-ratio:16/9; } }
@media(max-width:1279px) { :root { --gutter:36px; --section-space:64px; }.header-container { gap:18px; }.nav-menu { gap:17px; }.nav-link { font-size:.76rem; }.header-actions { gap:16px; }.header-actions>.btn { display:inline-flex; font-size:.75rem; padding:11px 14px; }.logo-title { font-size:.96rem; }.studio-hero-top,.studio-section-heading { gap:40px; }.studio-hero h1 { font-size:3rem; }.studio-hero .hero-buttons { gap:15px; }.studio-hero .hero-buttons .btn { padding:13px 16px; font-size:.82rem; }.studio-hero .text-link { font-size:.8rem; }.studio-estimate-grid,.studio-faq-grid { gap:64px; }.studio-appointment-grid { gap:56px; }.studio-trust-grid { gap:50px; } }
@media(max-width:1199px) {
 .nav-menu { background:var(--paper); gap:0; }.nav-link { color:var(--theme-text, var(--ink)); font-size:1rem; border-color:var(--line); }.mobile-toggle { color:var(--theme-text, var(--ink)); background:none; border:1px solid var(--line); }.nav-menu.open { padding-inline:var(--gutter); }.logo-icon { width:32px; }
 .studio-hero-top { grid-template-columns:1.05fr 1fr; }.studio-hero h1 { font-size:2.8rem; }.studio-hero h1 em { font-size:.87em; }.studio-hero .hero-buttons { flex-wrap:wrap; }.studio-materials .material-layout { gap:38px; }.studio-materials .material-row { padding:16px 0; }.studio-project-meta h3 { font-size:1.2rem; }.studio-detail-grid { gap:23px; }.studio-estimate-grid { gap:45px; }.studio-quote { padding:28px; }
}
@media(max-width:900px) {
 .studio-hero-top { grid-template-columns:1fr; gap:22px; }.studio-hero h1 { font-size:3.2rem; }.studio-hero-intro { display:flex; align-items:center; gap:34px; }.studio-hero-intro>p { flex:1; margin:0; font-size:.91rem; }.studio-hero-intro .hero-buttons { flex:1; gap:10px; }.studio-benefits>div { padding-right:14px; gap:12px; }.studio-benefits>div+div { padding-left:20px; }.studio-benefits strong { font-size:.82rem; }.studio-benefits small { font-size:.72rem; }
 .studio-section-heading { gap:32px; grid-template-columns:1.1fr 1fr; }.studio-home h2 { font-size:2.2rem; }.studio-section-heading>div:last-child>p { font-size:.87rem; }.studio-materials .material-layout { grid-template-columns:1fr 1fr; gap:30px; }.studio-materials .material-row strong { font-size:1.4rem; }.studio-materials .material-row small { font-size:.76rem; }.studio-materials .material-image { aspect-ratio:4/5; }.studio-projects { grid-template-columns:1fr 1fr; gap:27px; }.studio-project:first-child { grid-column:1/-1; }.studio-project:first-child .studio-project-photo img { aspect-ratio:2.2; }.studio-project-meta h3 { font-size:1.35rem; }.studio-detail-grid h3 { font-size:.89rem; }.studio-detail-grid small { font-size:.79rem; }.studio-estimate-grid { grid-template-columns:1fr 1fr; gap:35px; }.estimate-fields { gap:10px; }.studio-estimate-form label { font-size:.74rem; }.estimate-actions { flex-wrap:wrap; gap:10px 20px; }.studio-quote h3 { font-size:1.45rem; }.studio-quote-total { flex-wrap:wrap; }.studio-quote-total output { font-size:3rem; }.studio-faq-grid { gap:40px; }.studio-faq .section-title { font-size:2.3rem; }.studio-appointment-grid { gap:35px; }.appointment-form { padding:25px; }.appointment-form .form-inline-grid { grid-template-columns:1fr; }.studio-trust-grid { gap:40px; }.footer-grid { gap:26px; }
}
@media(max-width:767px) {
 :root { --gutter:22px; --header-height:68px; --section-space:48px; }
 .header-container { gap:14px; }.logo-title { font-size:.92rem; }.header-actions { gap:10px; }.header-actions>.btn { display:none; }.header-actions .phone-link { color:var(--theme-text, var(--ink)); background:none; border:1px solid var(--line); border-radius:2px; width:38px; height:38px; }.header-actions .phone-link svg { stroke:var(--theme-text, var(--ink)); width:17px; height:17px; }.mobile-toggle { width:38px; height:38px; border-radius:2px; }.nav-menu { top:var(--header-height); max-height:calc(100dvh - var(--header-height)); }
 .studio-hero { padding-top:29px; }.studio-hero-top { display:block; margin-bottom:27px; }.studio-hero .eyebrow { font-size:.59rem; margin-bottom:17px; }.studio-hero h1 { font-size:clamp(2.45rem,7.3vw,3.3rem); line-height:1.15; }.studio-hero h1 em { font-size:.82em; margin-top:7px; }.studio-hero-intro { display:block; margin-top:23px; }.studio-hero-intro>p { font-size:.9rem; max-width:470px; }.studio-hero .hero-buttons { margin-top:20px; gap:14px 20px; flex-wrap:wrap; }.studio-hero .hero-buttons .btn { flex:none; width:auto; font-size:.85rem; padding:14px 17px; }.studio-hero .text-link { font-size:.8rem; }
 .studio-hero-photo { margin-inline:calc(-1 * var(--gutter)); }.studio-hero .hero-media img { aspect-ratio:1.5; object-position:68% 0; }.studio-hero-photo figcaption { padding:16px 22px; display:block; font-size:.8rem; }.image-index { display:block; margin:0 0 7px; font-size:.58rem; }.studio-hero-photo figcaption>a { display:none; }.studio-image-note { bottom:86px; right:12px; font-size:.56rem; }
 .studio-benefits { grid-template-columns:1fr; margin-top:6px; padding-bottom:0; }.studio-benefits>div,.studio-benefits>div+div { border:0; border-bottom:1px solid var(--line); padding:16px 0; gap:22px; }.studio-benefits>div:last-child { border:0; }.studio-benefits>div>span { font-size:1.12rem; width:22px; }.studio-benefits strong { font-size:.87rem; }.studio-benefits small { font-size:.76rem; margin-top:3px; }
 .studio-home h2 { font-size:clamp(2rem,6.5vw,2.5rem); }.studio-section-heading { display:block; margin-bottom:26px; }.studio-section-heading>div:last-child { margin-top:20px; }.studio-section-heading>div:last-child>p,.studio-section-heading>p { font-size:.9rem; max-width:470px; }.eyebrow { font-size:.59rem; margin-bottom:15px; }.text-link { font-size:.81rem; }
 .studio-materials { padding-top:35px; }.studio-materials .material-layout { grid-template-columns:1fr; gap:25px; }.studio-materials .material-row { padding:17px 0; }.studio-materials .material-row strong { font-size:1.45rem; }.studio-materials .material-row small { font-size:.8rem; }.studio-materials .material-image { aspect-ratio:4/3; }.material-help { padding-top:17px; }.studio-materials .material-figure figcaption { gap:12px; }.studio-materials .material-figure a { font-size:.72rem; }
 .studio-projects { grid-template-columns:1fr; gap:28px; }.studio-project:first-child { grid-column:auto; }.studio-project:first-child .studio-project-photo img { aspect-ratio:4/3; }.studio-project-meta h3 { font-size:1.4rem; }.studio-project-meta p { font-size:.58rem; }.studio-gallery-note { display:block; font-size:.75rem; }.studio-gallery-note a { display:block; margin-top:12px; }
 .studio-detail-grid { grid-template-columns:1fr; gap:30px; }.studio-detail-grid img { aspect-ratio:1.65; }.studio-detail-grid h3 { font-size:.98rem; }.studio-detail-grid small { font-size:.85rem; }.studio-disclosure { font-size:.71rem; line-height:1.7; }
 .studio-estimate-grid { grid-template-columns:1fr; gap:29px; }.studio-body { font-size:.9rem; line-height:1.8; margin:20px 0; }.estimate-fields { gap:12px; }.studio-estimate-form label { font-size:.75rem; }.studio-estimate-form input { padding:12px; font-size:1rem; }.studio-estimate-form select { font-size:.82rem; }.estimate-actions { gap:20px; }.studio-quote { padding:26px; }.studio-quote h3 { font-size:1.55rem; }.studio-quote-total { flex-wrap:nowrap; }.studio-quote-total output { font-size:3.2rem; }
 .studio-process { padding-block:46px; }.studio-steps { grid-template-columns:1fr 1fr; gap:26px 20px; }.studio-steps h3 { font-size:.91rem; }.studio-steps p { font-size:.79rem; }.studio-steps article>span { font-size:1.45rem; }.studio-process .studio-section-heading>p { margin-top:18px; }
 .studio-trust-grid { grid-template-columns:1fr; gap:30px; }.studio-trust { padding-block:46px; }.studio-archive { gap:15px; }.studio-archive a>span { font-size:.69rem; line-height:1.6; }.trust-links { gap:10px 20px; }.trust-links .text-link { font-size:.77rem; }
 .studio-faq-grid { display:block; }.studio-faq .faq-intro { margin-bottom:28px; }.studio-faq .section-title { font-size:2.1rem; }.faq-question { font-size:.89rem; }.faq-answer { font-size:.85rem; }
 .studio-appointment-grid { grid-template-columns:1fr; gap:30px; }.appointment-story>p:not(.eyebrow) { font-size:.9rem; }.appointment-story img { aspect-ratio:1.8; }.appointment-form { padding:25px; }.appointment-form .form-inline-grid { gap:18px; }.appointment-form h3 { font-size:1.6rem; }.form-input,.form-select,.form-textarea { font-size:1rem; }.form-label { font-size:.8rem; }.form-checkbox-label { font-size:.76rem; }.form-service-note { font-size:.73rem; }
 .footer-grid { grid-template-columns:1fr 1fr; gap:28px 24px; }.footer-grid>div:first-child { grid-column:1/-1; }.footer-grid>div:last-child { grid-column:1/-1; }.footer-desc { margin-top:12px; }.footer-heading { font-size:.64rem; }.footer-links a { font-size:.8rem; }.footer-bottom { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
}
@media(max-width:374px) { :root { --gutter:18px; }.logo-title { font-size:.86rem; }.header-container { gap:8px; }.header-actions { gap:8px; }.studio-hero h1 { font-size:2.3rem; }.studio-hero .hero-buttons { gap:12px; }.studio-hero .text-link { font-size:.75rem; }.studio-home h2 { font-size:1.95rem; }.studio-quote { padding:22px; }.appointment-form { padding:22px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
/* Avoid surplus blank photo height and align each image to its neighbouring content. */
.studio-materials .material-image { aspect-ratio:1.55; }
.studio-home .studio-section-heading { align-items:end; }
.studio-detail-grid>a:last-child img { object-fit:cover; }
@media(max-width:767px) { .studio-materials .material-image { aspect-ratio:4/3; }.studio-hero h1 { font-size:2.3rem; }.studio-hero h1 em { font-size:.83em; } }
/* Inner pages keep a common measure and their own hierarchy. */
.page-hero-grid { gap:60px; grid-template-columns:1.1fr 1fr; }
.page-hero-copy { padding:30px 0 36px; }
.page-hero-copy .breadcrumbs { margin-bottom:20px; font-size:.72rem; color:var(--theme-on-primary-muted, #bbc7cf); }
.page-hero-copy .section-pretitle { margin-bottom:17px; font-size:.62rem; color:var(--champagne); }
.page-hero-title { font-size:clamp(2.3rem,3.2vw,3rem); line-height:1.16; font-weight:500; max-width:620px; }
.page-hero-subtitle { margin-top:18px; font-size:.93rem; line-height:1.8; color:var(--theme-on-primary-muted, #c9d2d7); }
.page-hero-photo { min-height:300px; }
.page-hero-photo img { object-position:50% 0; }
.page-hero-links { margin-top:22px; display:flex; gap:25px; flex-wrap:wrap; }.page-hero-links a { font-size:.81rem; color:var(--champagne); border-bottom:1px solid var(--theme-muted, #6c787b); padding-bottom:8px; }
.utility-intro,.studio-tool-intro { color:var(--theme-text, var(--ink)); background:var(--stone); border-bottom:1px solid var(--line); }
.utility-intro .page-hero-grid,.studio-tool-intro .page-hero-grid { display:block; }
.utility-intro .page-hero-copy,.studio-tool-intro .page-hero-copy { padding:27px 0 37px; max-width:930px; }
.utility-intro .page-hero-title,.utility-intro .page-hero-title span,.studio-tool-intro .page-hero-title { color:var(--theme-text, var(--ink)); font-size:2.7rem; }
.utility-intro .page-hero-subtitle,.studio-tool-intro .page-hero-subtitle { color:var(--muted); max-width:780px; font-size:.92rem; }
.utility-intro .page-hero-copy .section-pretitle,.studio-tool-intro .page-hero-copy .section-pretitle { color:var(--theme-accent-strong, var(--brass)); }
.utility-intro .breadcrumbs,.utility-intro .breadcrumbs a,.studio-tool-intro .breadcrumbs,.studio-tool-intro .breadcrumbs a { color:var(--muted); }
.section-title { font-size:clamp(2rem,2.8vw,2.65rem); line-height:1.2; font-weight:500; }
.section-desc { font-size:.96rem; line-height:1.8; }.section-pretitle { font-size:.65rem; letter-spacing:.14em; }
.lead-banner { background:var(--midnight); padding:36px; border-radius:2px; }
.lead-banner-title { font-size:2.3rem; }.lead-banner-desc { font-size:.93rem; line-height:1.8; }.lead-banner .badge-tag { font-size:.65rem; }
.editorial-form { padding:30px; border:1px solid var(--line); background:var(--paper); }
.grid-cta-split,.grid-faq-layout,.grid-project-layout,.grid-measure-layout,.contacts-layout,.grid-2col-split { gap:65px; }
.grid-measure-layout,.contacts-layout { align-items:start; }
/* Material directory: a structured comparison instead of a single vague image. */
.service-catalog .studio-section-heading { margin-bottom:32px; }
.service-catalog-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.service-catalog-grid article { display:grid; grid-template-columns:.92fr 1fr; gap:25px; padding-bottom:26px; border-bottom:1px solid var(--line); }
.service-catalog-grid img { width:100%; height:100%; max-height:270px; aspect-ratio:4/5; object-fit:cover; object-position:center 25%; }
.service-catalog-grid article:last-child img { object-fit:contain; background:var(--theme-surface-alt, #ede8df); }
.service-catalog-grid .eyebrow { margin-bottom:11px; }
.service-catalog-grid h3 { font-family:var(--font-serif); font-weight:500; font-size:1.45rem; line-height:1.35; }
.service-catalog-grid article>div>p:not(.eyebrow) { font-size:.83rem; line-height:1.8; color:var(--muted); margin:14px 0; }
.service-catalog-grid .text-link { font-size:.78rem; }
.service-lighting { background:var(--stone); }
.service-lighting-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:70px; align-items:center; }
.service-lighting-grid figure { margin:0; }.service-lighting-grid figure img { width:100%; aspect-ratio:4/3; object-fit:cover; }.service-lighting-grid figcaption { font-size:.76rem; color:var(--muted); margin-top:13px; }
.service-lighting-grid article { display:flex; gap:22px; border-bottom:1px solid var(--theme-border, #d2cec3); padding:22px 0; }.service-lighting-grid article:first-child { padding-top:0; }.service-lighting-grid article>span { color:var(--theme-accent-strong, var(--brass)); font-size:.73rem; }.service-lighting-grid article h3 { font-size:1rem; font-weight:500; margin-bottom:10px; }.service-lighting-grid article p { font-size:.86rem; line-height:1.8; color:var(--muted); }
.service-details-band { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }.service-details-band p:not(.eyebrow) { color:var(--muted); font-size:.93rem; line-height:1.8; margin:22px 0; }.service-details-band img { width:100%; height:330px; object-fit:cover; object-position:center 5%; }
/* Portfolio: coherent photos and readable captions. */
.works-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px 27px; }
.works-grid .work-card-img-wrap { aspect-ratio:4/3; overflow:hidden; }
.works-grid .work-card-img { object-position:center 0; }
.works-grid .work-card-title { font-family:var(--font-serif); font-size:1.28rem; line-height:1.35; }
.works-grid .work-card-sub { font-size:.78rem; line-height:1.6; }
.works-grid .work-card-tag { font-size:.59rem; padding:6px 8px; background:color-mix(in srgb, var(--theme-primary, rgb(16 36 51)) 85%, transparent); color:var(--theme-accent-on-primary, #f3e9d7); }
.portfolio-filters { gap:12px; margin-bottom:16px; }.btn-pill-gold { font-size:.81rem; border-radius:2px; padding:10px 15px; }.btn-pill-gold.active { background:var(--midnight); color:var(--theme-accent-on-primary, var(--champagne)); }
.portfolio-archive { background:var(--stone); }.portfolio-archive-grid { gap:28px; }.archive-open>img { aspect-ratio:4/3; height:auto; }.archive-open>span { font-size:.84rem; line-height:1.7; }
.source-note { font-size:.77rem; line-height:1.8; }
/* Case viewer: enough height for the complete interior, details remain a real separate crop. */
.project-heading { background:var(--paper); padding:27px 0; }.project-heading .breadcrumbs { margin-bottom:20px; }#projectTitle { font-size:2.9rem; margin-top:0; }
.project-main-slide { aspect-ratio:16/9; }.project-main-img { object-fit:contain; background:var(--stone); }.studio-case-gallery { padding-block:30px !important; }
.project-thumb-btn { width:195px; }.project-thumb-btn img { height:95px; }.project-thumb-caption { font-size:.73rem; }
.grid-project-layout { grid-template-columns:1.15fr 1fr; }.grid-project-layout .section-desc { font-size:.96rem !important; }.spec-title { font-size:.69rem; }.spec-value { font-size:.86rem; }
.case-consultation { margin-top:28px; border-top:1px solid var(--line); padding-top:25px; }.case-consultation .eyebrow { margin-bottom:12px; }.case-consultation h3 { font-size:1.05rem; font-weight:500; margin-bottom:13px; }.case-consultation p:not(.eyebrow) { font-size:.86rem; line-height:1.8; color:var(--muted); margin-bottom:14px; }
.similar-grid .work-card-title { font-family:var(--font-serif); font-size:1.2rem; }.similar-grid .work-card-sub { font-size:.76rem; }
/* Reviews: full source text stays available without stretching every column. */
.reviews-grid { gap:32px 50px; align-items:start; }
.review-card { gap:0; padding-top:23px; }
.review-card .quote-mark { margin-bottom:16px; }.review-name { margin-bottom:17px; font-family:var(--font-serif); font-size:1.4rem; font-weight:500; }.review-text { font-size:.88rem; line-height:1.8; margin-bottom:14px; }
.review-preview { display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }
.review-preview.is-expanded { display:block; }
.review-expand { border:0; background:transparent; font-size:.78rem; color:var(--theme-accent-strong, #856b43); padding:8px 0; align-self:flex-start; cursor:pointer; margin-bottom:13px; }
.review-card .section-link { margin-top:0; font-size:.73rem; }
/* Tools: use the available space and keep attention on controls. */
.picker-layout { grid-template-columns:.9fr 1.2fr; gap:36px; align-items:start; }.picker-controls { padding:27px; }.visualizer-display { border:0; background:transparent; }.visualizer-caption { font-size:.76rem; }.visualizer-badge { background:var(--midnight); color:var(--theme-on-primary-muted, #eee9df); border-radius:2px; }.room-pills-grid { gap:9px; }.room-pill { min-height:44px; font-size:.76rem; padding:9px; }.picker-step-title { font-size:.9rem; }.surface-card-title { font-size:.79rem; }.surface-card-desc { font-size:.66rem; }
.calc-layout { gap:38px; }.calc-card { padding:30px; }.calc-label { font-size:.9rem; }.calc-desc { font-size:.87rem; }.calc-type-select { font-size:.9rem; }.calc-mini-card { padding:19px; background:var(--stone); border:1px solid var(--line); }.calc-summary { background:var(--midnight); }.calculator-page .section-header { margin-bottom:28px; }.calculator-page .process-card { padding-top:20px; }.calculator-page .process-desc { font-size:.84rem; }
/* Terms and contacts stay functional, concise and distinct. */
.promotion-grid { gap:35px; }.promotion-card { padding:25px; border:1px solid var(--line); border-top:2px solid var(--brass); background:var(--paper); }.promotion-card .btn { align-self:flex-start; }.promotion-source { font-size:.75rem; color:var(--theme-accent-strong, #846b43); }
.offers-grid { gap:35px 28px; }.offer-card-img-wrap { aspect-ratio:4/3; }.offer-card-title { font-size:1.5rem; }.offer-card-desc { font-size:.88rem; }
.contact-intro .page-hero-title { font-size:3rem; }.contact-hero-channels a { font-size:1.5rem; }.contact-channel-title { font-size:1.07rem; }.contact-channel-sub { font-size:.8rem; }.contact-channel-icon { background:none; border:1px solid var(--line); color:var(--theme-accent-strong, var(--brass)); border-radius:2px; }
.service-region { padding:30px; gap:50px; margin-top:45px; }.service-region h3 { font-size:2.4rem; }.service-region p { font-size:.89rem; }
.grid-measure-layout>.editorial-form { padding:30px; }.measurement-story h3 { font-size:1rem !important; }.measurement-story p { font-size:.86rem; line-height:1.8; }.measurement-story>img { margin-top:28px; height:260px !important; object-fit:cover; object-position:center 24%; }
.story-image { aspect-ratio:4/3; }.about-story { gap:70px; }.about-story>div>div[style] { font-size:.88rem; }.about-story .section-desc { font-size:.93rem; }
.question-aside { background:var(--midnight); padding:25px; }.question-photo { height:auto; aspect-ratio:4/3; object-position:center 0; }.question-aside>p { font-size:.9rem !important; }
.privacy-content { max-width:900px; margin:auto; padding:36px; background:var(--paper); border:1px solid var(--line); }.privacy-title { font-size:2.4rem; }
@media(max-width:1100px) {
 .service-catalog-grid article { grid-template-columns:1fr; gap:20px; }.service-catalog-grid img { height:auto; max-height:none; aspect-ratio:1.65; }.service-lighting-grid,.service-details-band { gap:45px; }.grid-measure-layout,.contacts-layout { gap:40px; }.reviews-grid { gap:30px; }.picker-layout { grid-template-columns:1fr 1.2fr; gap:25px; }.picker-controls { padding:22px; }
}
@media(max-width:900px) { .page-hero-grid { gap:35px; }.page-hero-title { font-size:2.4rem; }.page-hero-photo { min-height:330px; }.page-hero-subtitle { font-size:.87rem; }.works-grid { grid-template-columns:1fr 1fr; }.grid-project-layout { gap:35px; }.promotion-card { padding:23px; }.offer-card-title { font-size:1.35rem; } }
@media(max-width:767px) {
 .page-hero-grid { grid-template-columns:1fr; gap:0; }.page-hero-copy { padding:24px 0 29px; }.page-hero-copy .breadcrumbs { font-size:.69rem; }.page-hero-title { font-size:2.25rem; }.page-hero-subtitle { font-size:.89rem; }.page-hero-photo { min-height:0; height:auto; aspect-ratio:1.8; margin-inline:calc(-1 * var(--gutter)); }.page-hero-photo img { object-position:center 15%; }.page-hero-photo figcaption { font-size:.53rem; }
 .utility-intro .page-hero-copy,.studio-tool-intro .page-hero-copy { padding:25px 0 30px; }.utility-intro .page-hero-title,.utility-intro .page-hero-title span,.studio-tool-intro .page-hero-title { font-size:2.2rem; }.utility-intro .page-hero-subtitle,.studio-tool-intro .page-hero-subtitle { font-size:.89rem; }.page-hero-copy .section-pretitle { font-size:.59rem; }
 .section-title { font-size:2rem; }.section-desc { font-size:.91rem; }.section-pretitle { font-size:.6rem; }.lead-banner { padding:26px; }.lead-banner-title { font-size:2rem; }.lead-banner-desc { font-size:.89rem; }
 .service-catalog-grid { grid-template-columns:1fr; gap:29px; }.service-catalog-grid article { grid-template-columns:1fr; padding-bottom:26px; }.service-catalog-grid img { aspect-ratio:1.55; }.service-catalog-grid h3 { font-size:1.6rem; }.service-catalog-grid article>div>p:not(.eyebrow) { font-size:.88rem; }.service-lighting-grid,.service-details-band { grid-template-columns:1fr; gap:30px; }.service-lighting-grid article p { font-size:.86rem; }.service-details-band img { height:auto; aspect-ratio:1.5; }.service-details-band p:not(.eyebrow) { font-size:.9rem; }
 .works-grid { grid-template-columns:1fr; gap:29px; }.works-grid .work-card-title { font-size:1.4rem; }.works-grid .work-card-sub { font-size:.8rem; }.portfolio-filters { gap:8px; }.btn-pill-gold { font-size:.75rem; padding:9px 12px; }.portfolio-archive-grid { grid-template-columns:1fr; gap:27px; }
 .grid-project-layout,.grid-cta-split,.grid-faq-layout,.grid-measure-layout,.contacts-layout,.grid-2col-split { grid-template-columns:1fr; gap:30px; }#projectTitle { font-size:2.15rem; }.project-main-slide { aspect-ratio:16/9; }.project-thumb-btn { width:calc(50% - 6px); }.case-consultation { margin-top:23px; }.similar-grid .work-card-title { font-size:1.3rem; }
 .reviews-grid { grid-template-columns:1fr; }.review-text { font-size:.88rem; }.review-name { font-size:1.4rem; }.review-expand { font-size:.8rem; }.source-note { font-size:.75rem; }
 .picker-layout { grid-template-columns:1fr; gap:27px; }.picker-controls { padding:23px; }.room-pill { font-size:.76rem; }.picker-step-title { font-size:.88rem; }.calc-card { padding:23px; }.calc-label { font-size:.84rem; }.calc-type-select { font-size:.84rem; }
 .promotion-grid { grid-template-columns:1fr; gap:25px; }.promotion-card { padding:24px; }.offers-grid { grid-template-columns:1fr; }.offer-card-title { font-size:1.55rem; }.offer-card-desc { font-size:.9rem; }.contact-intro .page-hero-title { font-size:2.3rem; }.contact-hero-channels a { font-size:1.3rem; }.contact-hero-channels { padding:23px 0 27px; }.contact-channel-title { font-size:1.02rem; }.service-region { gap:25px; padding:24px; margin-top:32px; }.service-region h3 { font-size:2rem; }
 .grid-measure-layout>.editorial-form { padding:25px; }.measurement-story>img { height:auto !important; aspect-ratio:1.7; }.about-story { gap:28px; }.story-image { aspect-ratio:4/3; }.about-story .section-desc { font-size:.9rem; }.privacy-content { padding:23px; }.privacy-title { font-size:2rem; }
}

/* Captions remain readable at actual viewing sizes. */
.eyebrow,.section-pretitle,.page-hero-copy .section-pretitle { font-size:.72rem; }
.studio-project-meta p,.studio-detail-grid>a>p { font-size:.7rem; }
.project-image-label,.works-grid .work-card-tag { font-size:.68rem; }
.page-hero-photo figcaption,.studio-image-note { font-size:.65rem; }

.material-specimen { background:var(--midnight); color:var(--theme-on-primary, #fff); padding:28px; display:flex; flex-direction:column; justify-content:center; }
.material-specimen[hidden],.studio-materials .material-image[hidden] { display:none; }
.material-specimen h3 { font-family:var(--font-serif); font-size:1.75rem; line-height:1.25; font-weight:500; color:var(--theme-on-primary, #fff); }
.material-specimen h3 em { color:var(--theme-accent-on-primary, var(--champagne)); }
.material-specimen>p:not(.eyebrow) { font-size:.84rem; line-height:1.8; color:var(--theme-on-primary-muted, #c9d2d5); margin:15px 0 20px; }
.material-specimen .eyebrow { color:var(--theme-accent-on-primary, var(--champagne)); font-size:.68rem; }
.material-specimen dl>div { display:flex; justify-content:space-between; gap:18px; border-top:1px solid var(--theme-primary-soft, #43535a); padding:12px 0; }
.material-specimen dt { font-size:.95rem; }.material-specimen dd { font-size:.75rem; color:var(--theme-accent-on-primary, #d3c3a5); }
.material-specimen>small { color:var(--theme-on-primary-muted, #b9c6cc); font-size:.68rem; line-height:1.7; margin-top:10px; }
.material-figure .material-specimen { aspect-ratio:1.55; padding:35px; }
.service-catalog-grid .material-specimen { padding:22px; min-height:270px; }
.service-catalog-grid .material-specimen h3 { font-size:1.5rem; }
.service-catalog-grid .material-specimen dl>div { display:block; }
.service-catalog-grid .material-specimen dd { margin-top:4px; }
@media(max-width:1100px) { .service-catalog-grid .material-specimen { min-height:250px; }.service-catalog-grid .material-specimen dl>div { display:flex; } }
@media(max-width:767px) { .material-figure .material-specimen { aspect-ratio:auto; min-height:300px; padding:28px; } }

.studio-home .material-specimen>p:not(.eyebrow) { color:var(--theme-on-primary-muted, #c9d2d5); }
