:root{--paper:#eee9e1;--cream:#ded5c7;--ink:#2f231c;--muted:#65554a;--espresso:#2f231c;--line:#c1b2a3;--cocoa:#705744;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.8;-webkit-font-smoothing:antialiased}
body.modal-open{overflow:hidden}
img{display:block;max-width:100%;height:auto}
/* Vector UI artwork avoids platform-dependent emoji/font rendering. */
.ui-icon{display:inline-block;width:1em;height:1em;flex-shrink:0;vertical-align:-.125em;pointer-events:none}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button,a,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:wait}
button{border:0}
p,h1,h2,h3,figure{margin:0}
p+p{margin-top:20px}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.04}
h2{font-size:clamp(44px,5.1vw,76px);letter-spacing:-.035em}
h3{font-size:32px}
em{font-weight:400}
p{max-width:65ch}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--cocoa);outline-offset:5px}
/* Menu anchor destinations receive focus for reading/tab order, not interaction.
   Avoid a browser-default ring around the entire section after mobile navigation.
   Interactive descendants retain their visible keyboard focus indicators above. */
section[tabindex="-1"]:focus{outline:none}
::selection{background:#c4bcba;color:#2f231c}
[hidden]{display:none!important}
.wrap{width:min(1320px,90%);margin-inline:auto}
.section{padding-block:120px}
.eyebrow{text-transform:uppercase;font-size:10px;font-weight:600;letter-spacing:.2em;line-height:1.8}
.lead{font-family:var(--serif);font-size:29px;line-height:1.35;letter-spacing:-.01em}
.small{font-size:11px;line-height:1.8}
.text-link{display:inline-flex;gap:30px;align-items:center;border-bottom:1px solid currentColor;padding:7px 0;background:none;font-size:12px;letter-spacing:.025em;line-height:1.5}
.text-link:hover{color:var(--cocoa)}
.button{display:inline-flex;justify-content:space-between;align-items:center;gap:34px;min-height:53px;padding:15px 24px;font-size:11px;letter-spacing:.04em;transition:background .2s}
.button-dark{background:var(--espresso);color:var(--paper)}
.button-dark:hover{background:#4f3f33}
.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}
.skip-link{position:fixed;top:8px;left:10px;z-index:100;background:var(--paper);padding:12px;transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:20;min-height:88px;display:flex;justify-content:space-between;align-items:center;gap:28px;padding:0 5%;background:var(--paper);border-bottom:1px solid var(--line)}
.brand{width:260px;flex-shrink:0;display:flex;min-height:48px;align-items:center}
.brand img,.footer-brand img{filter:brightness(.38) saturate(.5)}
#navigation{display:flex;align-items:center;gap:28px;font-size:10px;letter-spacing:.035em}
#navigation>a{padding-block:15px}
#navigation>a:hover{color:var(--cocoa)}
#navigation .nav-cta{margin-left:15px;border-bottom:1px solid var(--ink);padding-block:7px}
.nav-cta span{margin-left:12px}
.menu-toggle{display:none;background:none}
.hero{background:var(--cream)}
.hero-heading{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:40px;padding-block:57px 52px}
.hero-intro{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;min-width:210px}
.hero-note{font-size:11px;line-height:1.8;color:var(--muted)}
h1{font-size:clamp(65px,7.6vw,115px);line-height:.95;letter-spacing:-.045em;flex:1}
.title-dot{color:var(--cocoa)}
.round-link{border:1px solid #988d7f;border-radius:50%;width:92px;height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;line-height:1.5;flex-shrink:0;margin-bottom:4px}
.round-link>span:last-child{font-size:22px}
.round-link:hover{background:var(--ink);color:var(--paper)}
.hero-image{position:relative;margin-inline:2%;height:clamp(340px,40vw,610px);overflow:hidden;background:#a09180}
.hero-image>img{width:100%;height:100%;object-fit:cover;object-position:center 56%}
.image-caption{position:absolute;bottom:0;left:0;width:100%;display:flex;justify-content:space-between;gap:20px;padding:50px 30px 20px;background:linear-gradient(transparent,rgba(28,18,13,.85));color:white;font-size:10px;letter-spacing:.07em}
.hero-bottom{display:flex;justify-content:space-between;gap:20px;padding-block:20px;font-size:10px;letter-spacing:.03em}
.hero-bottom a{border-bottom:1px solid var(--ink)}
.hero-bottom a span{padding-left:20px}
.intro{display:grid;grid-template-columns:1fr 3fr;gap:40px}
.section-label{padding-top:10px}
.intro-columns{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:46px}
.intro-columns .text-link{margin-top:25px}
.intro-columns>div{color:var(--muted);font-size:13px}
.services{background:var(--cream)}
.section-heading{display:grid;grid-template-columns:1fr 2fr 1.25fr;gap:40px;align-items:start;margin-bottom:65px}
.section-heading>.eyebrow{padding-top:10px}
.section-heading>p:last-child{font-size:12px;line-height:1.9;color:var(--muted);align-self:end;padding-bottom:5px}
.service-list{border-top:1px solid var(--line)}
.service-list details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
.service-list summary{display:grid;grid-template-columns:60px 1.3fr 1fr 25px;gap:30px;align-items:center;padding:30px 0}
.service-number{font-size:10px;color:var(--muted)}
.service-list h3{font-size:clamp(30px,3.1vw,44px);letter-spacing:-.025em}
.service-tags{font-size:10px;color:var(--muted)}
.detail-icon{font-size:26px;font-weight:400;text-align:right;transition:transform .2s}
.service-list details[open] .detail-icon{transform:rotate(45deg)}
.service-body{display:grid;grid-template-columns:1.3fr 1fr;gap:65px;padding:0 55px 35px 90px;color:var(--muted);font-size:13px}
.service-body .capabilities{font-size:11px}
.service-body .text-link{margin-top:22px;color:var(--ink)}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px 45px;align-items:start}
.work-image{display:block;position:relative;overflow:hidden;background:#ded5cb}
.work-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.work-image:hover img{transform:scale(1.025)}
.gallery-grid .work:nth-child(1){padding-right:0}
.gallery-grid .work:nth-child(2){margin-top:100px;padding-left:65px}
.gallery-grid .work:nth-child(3){padding-right:65px;margin-top:-40px}
.gallery-grid .work:nth-child(4){margin-top:45px}
.work-image{aspect-ratio:1.4}
.work-offset .work-image,.gallery-grid .work:nth-child(3) .work-image{aspect-ratio:1}
.image-expand{position:absolute;right:15px;bottom:15px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--paper);font-size:20px}
.work figcaption{display:flex;justify-content:space-between;gap:14px;align-items:baseline;margin-top:18px}
.work figcaption h3{font-size:25px}
.work figcaption>span{font-size:9px;color:var(--muted);text-align:right}
.more-portfolio{margin-top:60px;text-align:center}
.more-portfolio>summary{display:inline-flex;min-height:44px}
.extra-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;text-align:left;margin-top:45px}
.extra-gallery figcaption{display:block}
.extra-gallery figcaption>span{display:block;text-align:left;margin-top:8px}
.approach{background:var(--espresso);color:var(--paper)}
.approach .eyebrow{color:#ded5c7}
.approach-heading{display:grid;grid-template-columns:1fr 1fr;gap:100px;margin-top:35px}
.approach-heading h2{font-size:clamp(55px,6vw,88px)}
.approach-heading>div{max-width:490px;padding-top:8px}
.approach-heading .lead{font-size:30px}
.approach-heading p+p{font-size:13px;color:#ded5cb}
.process{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);padding:0;margin:70px 0 0;border-top:1px solid #837362}
.process li{padding:25px 25px 0 0}
.process li+li{padding-left:24px;border-left:1px solid #837362}
.process li>span{font-size:10px;color:#ded5c7}
.process h3{font-size:29px;margin-top:25px}
.process p{font-size:11px;color:#ded5cb;margin-top:16px}
.approach-footnote{text-align:center;max-width:none;border-top:1px solid #837362;margin-top:50px;padding-top:28px;font-size:10px;letter-spacing:.15em;text-transform:uppercase}
.about{display:grid;grid-template-columns:1fr 1.25fr;gap:110px;align-items:center}
.portrait{max-width:430px;margin-left:35px}
.portrait>img{width:100%;aspect-ratio:660/929;object-fit:cover;filter:saturate(.75)}
.portrait figcaption{display:flex;justify-content:space-between;padding-top:16px;font-size:10px}
.portrait figcaption>span:first-child{font-size:21px;font-family:var(--serif)}
.portrait figcaption>span:last-child{align-self:center;text-transform:uppercase;font-size:9px;letter-spacing:.1em}
.about-copy h2{margin:30px 0}
.about-copy .lead{font-size:27px}
.about-copy>p:not(.eyebrow):not(.lead){font-size:13px;color:var(--muted)}
.about-copy .text-link{margin-top:30px}
.contact{background:var(--cream)}
.contact-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:110px}
.contact-info>.small{margin-top:10px;color:var(--muted)}
dl{margin:42px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:35px 25px}
dt{text-transform:uppercase;font-size:9px;letter-spacing:.12em;margin-bottom:8px;color:var(--muted)}
dd{margin:0;font-size:12px}
dd a{border-bottom:1px solid var(--line)}
#inquiry-form{border-top:1px solid var(--line);padding-top:25px}
#inquiry-form h3{font-size:31px}
.form-intro{font-size:12px;color:var(--muted);margin-top:14px;margin-bottom:30px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.field{margin-bottom:25px}
.field label{display:block;font-size:10px;margin-bottom:8px}
.optional{color:var(--muted)}
input,select,textarea{display:block;width:100%;border:0;border-bottom:1px solid #988d7f;border-radius:0;background:transparent;padding:10px 0;font-size:14px;min-height:44px}
textarea{resize:vertical;min-height:112px}
textarea::placeholder{color:#65554a;font-size:12px;opacity:1}
select{cursor:pointer}
.privacy-note{color:var(--muted);margin-bottom:23px}
.privacy-note a,.small a{text-decoration:underline;text-underline-offset:3px}
#inquiry-result{padding:22px 0;border-top:1px solid var(--line);margin-top:25px;font-size:12px}
.result-actions{display:flex;flex-wrap:wrap;gap:25px;margin-block:12px}
.site-footer{padding-block:60px 22px}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:50px}
.footer-brand{width:290px}
.footer-top>p{font-family:var(--serif);font-size:25px;font-style:italic}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:20px;font-size:9px;color:var(--muted)}
dialog{background:#2f231c;color:var(--paper);border:0;padding:20px 25px;width:min(1200px,95vw);max-width:95vw;max-height:95dvh}
dialog::backdrop{background:rgba(28,18,13,.94)}
.dialog-toolbar,.dialog-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px}
.dialog-toolbar button,.dialog-bottom button{background:none;color:var(--paper);min-width:44px;min-height:44px;font-size:15px}
.dialog-toolbar button{padding:8px}
.dialog-image-wrap{position:relative;min-height:160px;display:flex;align-items:center;justify-content:center}
.dialog-image-wrap img{max-height:72dvh;object-fit:contain;margin:auto}
.dialog-image-wrap>p{padding:45px}
#gallery-caption{text-align:center;font-family:var(--serif);font-size:23px}
.dialog-bottom{padding-top:15px}
.document{max-width:760px;padding-block:90px}
.document h1{font-size:65px;margin-bottom:30px}
.document h2{font-size:36px;margin:35px 0 15px}
.document p,.document li{font-size:14px}
.document a{text-decoration:underline}
.document ul{padding-left:20px}
@media(min-width:1600px){.hero-heading{padding-block:75px}
.hero-image{max-height:700px;height:44vw}
}
@media(max-width:1100px){.brand{width:210px}
#navigation{gap:18px}
#navigation .nav-cta{margin-left:0}
.hero-heading{gap:25px}
.hero-intro{min-width:180px}
.hero-intro .eyebrow{font-size:8px}
.round-link{width:76px;height:76px}
.section{padding-block:90px}
.section-heading{grid-template-columns:1fr 2fr;gap:25px}
.section-heading>p:last-child{grid-column:2}
.intro{grid-template-columns:1fr 3fr;gap:25px}
.intro-columns{gap:30px}
.about{gap:60px}
.portrait{margin-left:0}
.contact-grid{gap:50px;grid-template-columns:1fr 1.4fr}
.contact-info dl{grid-template-columns:1fr}
.service-list summary{grid-template-columns:40px 1.2fr 1fr 20px;gap:20px}
.service-body{padding-left:60px;gap:35px}
.process li+li{padding-left:15px}
.process h3{font-size:25px}
.work figcaption{display:block}
.work figcaption>span{display:block;text-align:left;margin-top:8px}
}
@media(max-width:800px){html{scroll-padding-top:80px}
.site-header{min-height:74px;flex-wrap:wrap;padding-block:10px}
.brand{width:230px}
.menu-toggle{display:flex;align-items:center;gap:14px;min-height:44px;padding:5px;font-size:11px}
.menu-toggle span{font-size:18px}
#navigation{width:100%;flex-wrap:wrap;gap:5px 22px;padding-bottom:10px}
body.js #navigation{display:none}
body.js #navigation.is-open{display:flex}
#navigation>a{min-height:44px}
#navigation .nav-cta{margin-left:auto}
.hero-heading{padding-block:35px;flex-wrap:wrap;gap:24px}
.hero-intro{width:100%;flex-direction:row;align-items:center;gap:20px}
.hero-intro .eyebrow{font-size:9px}
.hero-note{display:none}
h1{font-size:clamp(60px,10vw,83px);flex:1}
.round-link{width:73px;height:73px;margin-bottom:0}
.hero-image{height:420px;margin-inline:3%}
.hero-image>img{object-position:52% center}
.hero-bottom{font-size:9px}
.intro{display:block}
.intro-content{margin-top:30px}
.intro-columns{gap:40px}
.section-heading{display:block;margin-bottom:40px}
.section-heading h2{margin-top:23px}
.section-heading>p:last-child{margin-top:24px}
.section-heading br{display:initial}
.service-tags{display:none}
.service-list summary{grid-template-columns:35px 1fr 20px}
.service-body{padding-right:0;grid-template-columns:1fr 1fr;padding-left:55px}
.gallery-grid{gap:45px 25px}
.gallery-grid .work:nth-child(2){padding-left:20px;margin-top:70px}
.gallery-grid .work:nth-child(3){padding-right:20px}
.work figcaption h3{font-size:24px}
.approach-heading{gap:40px}
.process{grid-template-columns:repeat(3,1fr);row-gap:30px}
.process li:nth-child(4){padding-left:0;border-left:0}
.about{gap:40px;grid-template-columns:1fr 1.1fr}
.about h2{font-size:43px}
.about-copy .lead{font-size:24px}
.contact-grid{grid-template-columns:1fr;gap:50px}
.contact-info{display:grid;grid-template-columns:1fr 1fr;gap:10px 30px;align-items:start}
.contact-info>.button{justify-self:start}
.contact-info>.small{grid-column:1;grid-row:2;margin-top:0}
.contact-info dl{grid-column:2;grid-row:1/4;margin-top:0;grid-template-columns:1fr 1fr;gap:25px 20px}
.footer-top{flex-wrap:wrap}
.footer-brand{width:250px}
.footer-top>p{font-size:23px}
.footer-top>.text-link{margin-left:auto}
.extra-gallery{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){body{font-size:13px}
.wrap{width:88%}
.section{padding-block:68px}
.brand{width:205px}
#navigation{gap:5px 20px}
#navigation .nav-cta{margin-left:0;width:100%;border-bottom:0}
.hero-heading{width:88%;gap:25px;padding-block:30px 35px}
.hero-intro .eyebrow{font-size:8px;letter-spacing:.16em}
h1{font-size:clamp(50px,11.5vw,66px);line-height:1.02}
.round-link{width:63px;height:63px;font-size:8px}
.round-link>span:last-child{font-size:18px}
.hero-image{height:390px}
.hero-image>img{object-position:57% center}
.image-caption{padding:50px 17px 17px;font-size:9px}
.image-caption>span:last-child{display:none}
.hero-bottom{display:block;padding-block:17px}
.hero-bottom>span{display:none}
.hero-bottom>a{display:flex;justify-content:space-between;border-bottom:0;min-height:28px;align-items:center;font-size:10px}
h2{font-size:45px}
.intro-columns{grid-template-columns:1fr;gap:27px;margin-top:30px}
.lead{font-size:27px}
.intro-columns>div{font-size:12px}
.service-list summary{padding-block:25px;gap:10px;grid-template-columns:25px 1fr 20px}
.service-list h3{font-size:31px}
.service-body{grid-template-columns:1fr;gap:20px;padding-left:35px;font-size:12px}
.service-body p{max-width:100%}
.gallery-grid{grid-template-columns:1fr;gap:35px}
.gallery-grid .work:nth-child(n){padding:0;margin:0}
.gallery-grid .work-image{aspect-ratio:1.2}
.gallery-grid .work:nth-child(2) .work-image{aspect-ratio:1.25}
.work figcaption{display:flex}
.work figcaption>span{font-size:8px;text-align:right;max-width:120px;margin:0}
.work figcaption h3{font-size:25px}
.extra-gallery{grid-template-columns:1fr;gap:35px}
.more-portfolio{margin-top:40px}
.extra-gallery figcaption{display:flex}
.approach-heading{grid-template-columns:1fr;gap:25px;margin-top:25px}
.approach-heading h2{font-size:62px}
.approach-heading .lead{font-size:27px}
.approach-heading p+p{font-size:12px}
.process{grid-template-columns:1fr;margin-top:40px;row-gap:0}
.process li,.process li+li{padding:22px 0;border-left:0;border-bottom:1px solid #837362;display:grid;grid-template-columns:30px 1fr;column-gap:12px}
.process li>span{padding-top:6px}
.process h3{font-size:30px;margin:0}
.process p{grid-column:2;margin-top:10px;font-size:12px}
.approach-footnote{margin-top:25px;padding-top:0;border:0;font-size:8px;line-height:2}
.about{grid-template-columns:1fr;gap:40px}
.portrait{max-width:100%;width:88%;margin-inline:auto}
.about-copy h2{font-size:46px;margin-block:23px}
.about-copy .lead{font-size:27px}
.contact-info{display:block}
.contact-info>.small{margin-top:10px}
.contact-info dl{display:grid;grid-template-columns:1fr 1fr;margin-top:35px;gap:28px 18px}
dd{font-size:11px}
.form-row{grid-template-columns:1fr;gap:0}
.field{margin-bottom:24px}
input,textarea,select{font-size:16px}
.contact-grid{gap:45px}
#inquiry-form h3{font-size:30px}
.site-footer{padding-top:45px}
.footer-top{display:block;padding-bottom:30px}
.footer-brand{display:block;width:100%;max-width:320px}
.footer-top>p{margin-top:23px;font-size:25px}
.footer-top>.text-link{margin-top:22px}
.footer-bottom{display:grid;grid-template-columns:1fr auto;gap:12px}
.footer-bottom>span:nth-child(2){grid-row:2;grid-column:1/3}
.footer-bottom>a{grid-column:2;grid-row:1}
dialog{padding:10px 14px}
#gallery-caption{font-size:20px}
.dialog-image-wrap img{max-height:65dvh}
.document h1{font-size:50px}
.document{padding-block:60px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{transition:none!important;animation:none!important}
}

/* Keep native controls inside narrow grid tracks; preserve readable interaction contrast. */
.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-row>*,.contact-grid>*,input,select,textarea{min-width:0}
input,select,textarea{border-bottom-color:#818172}
.text-link:hover,#navigation>a:hover{color:#76613d}
#form-status:empty{display:none}
#form-status:not(:empty){margin-top:20px;font-size:12px}

@media(max-width:560px){.form-row{grid-template-columns:1fr}
.site-header{gap:10px}
.brand{width:min(205px,62vw)}
}


/* Website 2.0: colors sampled from the supplied Palette references.
   Ivory / stone / taupe / espresso, with dusty blush as a quiet accent. */
:root { --blush: #c4bcba; --stone: #b1a698; }
body { font-size: 15px; }
.brand { width: 190px; padding-block: 12px; }
.brand img, .footer-brand img { filter: none; }
.site-header { min-height: 90px; }
#navigation { font-size: 12px; gap: 26px; }
#navigation a[aria-current] { border-bottom: 1px solid currentColor; }
.hero-heading { padding-block: 60px; }
.hero-intro { min-width: 180px; }
.hero-note, .hero-bottom, .image-caption { font-size: 12px; }
.hero .eyebrow { max-width: 190px; }
.eyebrow { font-size: 11px; }
.hero-image { height: clamp(330px, 39vw, 600px); }
.hero-image > img { object-position: center; }
.hero-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
.hero-bottom > span { align-self: center; }
.intro-columns > div, .service-body, .about-copy > p:not(.lead):not(.eyebrow) { font-size: 15px; }
.design-language { margin-top: 44px; border-top: 1px solid var(--line); padding-top: 30px; max-width: 70ch; }
.design-language .eyebrow { margin-bottom: 18px; }
.design-language > p:not(.eyebrow) { color: var(--muted); }
.services { background: var(--cream); }
.expertise { margin-top: 70px; }
.expertise > h3 { font-size: 40px; margin-bottom: 30px; }
.expertise-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.expertise-grid article { border-top: 1px solid var(--line); padding-top: 22px; }
.expertise h4 { font-family: var(--serif); font-weight: 500; font-size: 27px; line-height: 1.1; margin: 0 0 16px; }
.expertise p { font-size: 14px; color: var(--muted); }
.service-tags, .service-body .capabilities { font-size: 12px; }
.service-body .text-link { font-size: 13px; }
.gallery-grid { gap: 44px 36px; }
.work-image { aspect-ratio: auto !important; background: transparent; }
.work-image img { width: 100%; height: auto; object-fit: contain; }
.work-image:hover img { transform: none; }
.work figcaption { gap: 12px; }
.work figcaption h3 { font-size: 26px; }
.work figcaption > span { font-size: 11px; }
.gallery-invitation { margin-top: 48px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); padding-top: 30px; }
.gallery-invitation p { font-family: var(--serif); font-size: 29px; font-style: italic; }
.approach { position: relative; }
.approach-heading p + p { font-size: 15px; }
.process p { font-size: 13px; }
.atelier-seal { margin: 35px auto 0; width: 105px; opacity: .85; }
.portrait img { aspect-ratio: 1284 / 1904; width: 100%; object-fit: contain; }
.portrait figcaption { flex-direction: column; align-items: start; gap: 5px; padding-top: 20px; }
.portrait figcaption span:first-child { font-family: var(--serif); font-size: 32px; line-height: 1.1; }
.portrait figcaption span:last-child { font-size: 11px; text-transform: uppercase; letter-spacing: .12em; }
.contact { background: var(--blush); }
.contact-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 80px; }
.contact-info { padding-top: 26px; }
.contact-info dl { grid-template-columns: 1fr; gap: 25px; }
.contact-info dd { font-size: 15px; }
.contact-info dt { font-size: 11px; color: var(--ink); }
.contact-info a { overflow-wrap: anywhere; }
#inquiry-form { border-color: #988d7f; }
.field label, .form-intro, .small, .privacy-note { font-size: 13px; }
input, select, textarea { font-size: 16px; min-height: 48px; border-color: #837362; }
textarea::placeholder { font-size: 14px; color: var(--ink); }
.button { min-height: 50px; font-size: 13px; }
.text-link { min-height: 44px; font-size: 13px; }
.footer-brand { width: 230px; }
.footer-top > p { font-size: 26px; }
.footer-art { display: flex; justify-content: space-between; align-items: center; padding-bottom: 30px; }
.footer-art img:first-child { width: 78px; }
.footer-art img:last-child { width: 135px; }
.footer-bottom { align-items: center; font-size: 11px; }
.footer-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
.portfolio-heading { padding-block: 75px 65px; }
.portfolio-heading h1 { margin-block: 30px; font-size: clamp(62px, 8vw, 115px); }
.portfolio-heading .lead { max-width: 36ch; }
.portfolio-prologue { display: grid; grid-template-columns: 1fr 1.6fr; gap: 65px; align-items: center; border-top: 1px solid var(--line); padding-block: 55px; }
.portfolio-prologue h2 { margin-block: 25px; }
.portfolio-prologue p:not(.eyebrow) { font-size: 14px; color: var(--muted); }
.portfolio-prologue .eyebrow:last-child { margin-top: 25px; }
.portfolio-prologue img { width: 100%; }
.portfolio-inspiration { padding-top: 30px; }
.portfolio-inspiration > p { margin-bottom: 20px; }
.portfolio-inspiration img { width: 100%; max-width: 1000px; margin: auto; }
.portfolio-index { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 45px; }
.portfolio-index p { font-size: 12px; }
.full-collection { gap: 48px 36px; }
.portfolio-cta { background: var(--blush); text-align: center; }
.portfolio-cta h2 { margin-block: 25px 35px; }
.portfolio-cta .text-link { margin-left: 30px; }
.portfolio-cta .eyebrow { max-width: none; }
dialog { overscroll-behavior: contain; }
.dialog-image-wrap { touch-action: pan-y pinch-zoom; }

@media (max-width: 1100px) {
  #navigation { gap: 18px; font-size: 11px; }
  .brand { width: 165px; }
  .contact-grid { gap: 45px; }
  .expertise-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 800px) {
  .site-header { min-height: 78px; }
  .brand { width: 155px; }
  .menu-toggle { min-height: 48px; font-size: 13px; }
  #navigation { font-size: 14px; max-height: calc(100dvh - 78px); overflow-y: auto; }
  #navigation > a { min-height: 48px; }
  .hero-heading { padding-block: 36px; }
  .hero .eyebrow { max-width: none; }
  .hero-image { height: 340px; }
  .hero-image img { object-position: 54% center; }
  .section { padding-block: 75px; }
  .contact-grid { grid-template-columns: 1fr; gap: 45px; }
  .contact-info { border-top: 1px solid #988d7f; padding-top: 35px; }
  .contact-info dl { grid-template-columns: 1fr 1fr; }
  .portfolio-prologue { grid-template-columns: 1fr; gap: 30px; }
  .portfolio-prologue > div { max-width: 60ch; }
  .portfolio-prologue h2 br { display: none; }
  .portfolio-heading { padding-block: 45px; }
  .footer-top { flex-wrap: wrap; }
}
@media (max-width: 700px) {
  body { font-size: 15px; }
  .hero-image { margin-inline: 0; height: 310px; }
  .hero-heading h1 { font-size: clamp(49px, 10vw, 70px); line-height: 1; }
  .hero-bottom { align-items: flex-start; font-size: 11px; gap: 10px; }
  .hero-bottom a { font-size: 13px; }
  .intro-columns { gap: 26px; }
  .design-language { margin-top: 30px; }
  .expertise-grid { grid-template-columns: 1fr; gap: 25px; }
  .expertise { margin-top: 45px; }
  .service-list summary { gap: 15px; padding-block: 25px; }
  .service-list h3 { font-size: 30px; }
  .service-tags { font-size: 11px; }
  .section-heading > p:last-child { font-size: 14px; }
  .gallery-grid { grid-template-columns: 1fr; gap: 32px; }
  .work figcaption h3 { font-size: 26px; }
  .gallery-invitation { flex-direction: column; align-items: flex-start; }
  .process h3 { font-size: 29px; }
  .process p { font-size: 13px; }
  .approach-footnote { font-size: 11px; line-height: 2; }
  .about-copy { order: -1; }
  .portrait { width: min(100%, 440px); margin-inline: auto; }
  .contact-info dl { grid-template-columns: 1fr; }
  .contact .section-heading h2 { font-size: clamp(39px, 10.8vw, 60px); }
  .contact-info .button { width: 100%; }
  .footer-top { display: grid; gap: 30px; padding-bottom: 30px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }
  .footer-brand { width: 210px; }
  .portfolio-heading h1 { font-size: clamp(55px, 12vw, 80px); }
  .portfolio-prologue { padding-block: 35px; }
  .portfolio-index { flex-direction: column; align-items: flex-start; gap: 18px; }
  .portfolio-cta .text-link { display: flex; width: fit-content; margin: 20px auto 0; }
  .dialog-bottom { gap: 5px; }
  #gallery-caption { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
/* Light focus ring on espresso surfaces remains visible to keyboard users. */
.approach :focus-visible, dialog :focus-visible { outline-color: #e4dece; }
/* Darker text preserves AA contrast on the supplied dusty-blush surface. */
.contact { --muted: #4f3f33; }

/* Service landing pages share the Website 2.0 palette and editorial typography. */
.inline-link{text-decoration:underline;text-underline-offset:4px}
.service-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:36px}
.service-links a{display:flex;justify-content:space-between;gap:16px;font-size:13px;padding:10px 0;line-height:1.6}
.service-links a:hover{text-decoration:underline;text-underline-offset:4px}
.site-footer .service-links{margin-top:36px;margin-bottom:0}
.service-hero{background:var(--cream);padding:28px 0 80px}
.breadcrumbs{font-size:11px;margin-bottom:60px;line-height:1.8}
.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}
.breadcrumbs>span{margin-left:8px}
.service-hero h1{font-size:clamp(50px,7vw,100px);max-width:18ch;margin-block:24px 32px;line-height:1.02}
.service-hero .lead{max-width:52ch}
.service-actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:32px}
.service-overview,.service-next{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.service-overview h2,.service-next h2{margin-block:20px 28px;font-size:clamp(40px,4.5vw,64px)}
.service-overview .text-link{margin-top:24px}
.service-overview figcaption{font-size:11px;color:var(--muted);margin-top:14px}
.service-overview figure{min-width:0}
.service-scope{background:var(--cream)}
.service-scope h2,.service-faq h2,.service-closing h2{margin-top:20px}
.service-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:48px}
.service-card-grid article{border-top:1px solid var(--line);padding-top:24px}
.service-card-grid h3{margin:18px 0;font-size:34px}
.service-next .text-link{margin-top:24px}
.service-faq{background:#c4bcba}
.faq-list{margin-top:40px;max-width:900px}
.faq-list details{border-bottom:1px solid var(--muted)}
.faq-list summary{display:flex;justify-content:space-between;gap:24px;font-size:16px;font-weight:500;padding:24px 0;line-height:1.6}
.faq-list summary span{flex-shrink:0}
.faq-list details[open] summary span{transform:rotate(45deg)}
.faq-list details p{padding-bottom:24px}
.service-closing .small{margin-top:32px}
@media(max-width:800px){
 .service-links{grid-template-columns:1fr;gap:0;padding:14px 0}
 .service-links a{padding:14px 0}
 .service-overview,.service-next{grid-template-columns:1fr;gap:36px}
 .service-card-grid{grid-template-columns:1fr;gap:28px}
 .service-hero{padding-bottom:56px}
 .breadcrumbs{margin-bottom:40px}
 .service-hero .lead{font-size:25px}
 .service-actions{gap:20px}
}
@media(prefers-reduced-motion:reduce){.faq-list summary span{transition:none}}

/* The initial hero remains visible without JavaScript or if a slide fails. */
.hero-image>img{position:absolute;inset:0;transition:opacity .8s ease}
.hero-image>img.hero-incoming{opacity:0}
.hero-image>img.hero-incoming.is-visible{opacity:1}
.hero-controls{position:absolute;top:20px;right:20px;display:flex;gap:6px}
.hero-controls button{min-width:44px;min-height:44px;padding:8px 14px;background:var(--espresso);color:var(--paper);border:1px solid var(--paper);font-size:12px;line-height:1.2}
.hero-controls button:hover{background:#4f3f33}
.hero-controls button:focus-visible{outline:2px solid white;outline-offset:3px}
@media(max-width:700px){.hero-controls{top:12px;right:12px}}
@media(prefers-reduced-motion:reduce){.hero-image>img{transition:none}}

/* Mobile navigation: a quiet, full-height drawer anchored to the left edge. */
body.menu-open { overflow: hidden; }
.mobile-menu {
  position: fixed;
  inset: 0 auto 0 0;
  margin: 0;
  width: min(360px, 86vw);
  max-width: none;
  height: 100vh;
  height: 100dvh;
  max-height: none;
  padding: max(22px, env(safe-area-inset-top)) 28px max(32px, env(safe-area-inset-bottom)) max(28px, env(safe-area-inset-left));
  background: var(--paper);
  color: var(--ink);
  border: 0;
  box-shadow: 12px 0 48px rgb(47 35 28 / 12%);
  overflow-y: auto;
}
.mobile-menu[open] { display: flex; flex-direction: column; animation: menu-enter 320ms cubic-bezier(.22, 1, .36, 1); }
.mobile-menu::backdrop { background: rgb(47 35 28 / 35%); animation: menu-backdrop-enter 320ms ease-out; }
.mobile-menu-close {
  align-self: flex-end;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 48px;
  padding: 0 4px;
  background: none;
  font-size: 13px;
}
.mobile-menu-close::after { content: ''; width: 18px; height: 18px; background: linear-gradient(45deg, transparent 47%, currentColor 48% 52%, transparent 53%), linear-gradient(-45deg, transparent 47%, currentColor 48% 52%, transparent 53%); }
body.js .mobile-menu #navigation {
  display: flex;
  flex: 1;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  width: 100%;
  max-height: none;
  overflow: visible;
  padding: 36px 0 0;
}
.mobile-menu #navigation > a {
  flex-shrink: 0;
  padding: 16px 0;
  font-family: var(--serif);
  font-size: 32px;
  line-height: 1.2;
  letter-spacing: -.02em;
}
.mobile-menu #navigation .nav-cta {
  width: 100%;
  margin: auto 0 0;
  border-top: 1px solid var(--line);
  border-bottom: 0;
  padding-top: 24px;
  font-family: var(--sans);
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: 0;
}
.mobile-menu :focus-visible { outline-color: var(--cocoa); }
@keyframes menu-enter { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@keyframes menu-backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .mobile-menu[open], .mobile-menu::backdrop { animation: none; }
}

/* Launch essentials: quiet, equal-weight privacy choices and mobile conversion. */
.hero-consultation{margin-top:20px;font-size:12px}
.site-utilities{padding-bottom:32px}
.site-utilities nav{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:12px}
.site-utilities a,.site-utilities button{text-decoration:underline;text-underline-offset:4px}
.site-utilities button{padding:0;background:none}
.mobile-cta{display:none}
[hidden]{display:none!important}
.field-error{color:#8b2923;font-size:12px;line-height:1.5}
[aria-invalid="true"]{border-color:#8b2923!important}
#form-errors{padding:12px;border:1px solid #8b2923;color:#8b2923;font-size:12px}
.gallery-loading{padding:12px;text-align:center;color:var(--ink);background:var(--cream);font-size:14px}
.dialog-image-wrap{position:relative}
.dialog-image-wrap[aria-busy="true"] #gallery-image{opacity:0}
@media(max-width:800px){
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .mobile-cta{position:fixed;z-index:35;display:flex;justify-content:center;align-items:center;gap:18px;bottom:0;left:0;right:0;min-height:64px;padding:16px 20px calc(16px + env(safe-area-inset-bottom,0px));background:var(--espresso);color:var(--paper);font-size:12px;letter-spacing:.03em}
  body.menu-open .mobile-cta,body.modal-open .mobile-cta{visibility:hidden}
  .hero-consultation{margin-top:8px}
  html{scroll-padding-bottom:90px}
}

.analytics-actions{display:flex;flex-wrap:wrap;gap:12px;margin-block:20px}
#analytics-status{margin-top:12px}

/* Consultation booking: keep Google's interface separate from studio copy. */
.booking-page{max-width:1100px}
.booking-page h1{max-width:850px;font-size:clamp(38px,6vw,65px)}
.booking-intro,.booking-help{max-width:680px}
.booking-panel{margin-block:40px;padding:clamp(24px,3vw,32px);background:#fff;border:1px solid var(--line)}
.booking-panel h2{margin-top:0;margin-bottom:20px}
.booking-panel .button{display:flex;width:fit-content;max-width:100%;justify-content:center;margin-block:28px;min-height:56px;padding:16px 28px;text-decoration:none;border:0;cursor:pointer;font-weight:600}
.booking-panel .button:disabled{opacity:.7;cursor:default}
#booking-disclosure{color:var(--muted)}
#booking-status:empty{margin:0}
#booking-status:not(:empty){margin-block:0 24px}
.booking-frame{display:block;width:100%;height:780px;border:0;background:#fff;margin-block:24px}
.booking-panel p{overflow-wrap:anywhere}
@media(max-width:600px){.booking-frame{height:850px}.booking-panel{padding:24px 16px}.booking-panel .button{width:100%}}
