:root{--ink:#211e1b;--muted:#61615b;--line:#deded8;--font:"Helvetica Neue",Helvetica,Arial,sans-serif;--gutter:clamp(20px,6vw,120px);--header-height:88px;--header-expanded:88px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:108px}
body{margin:0;background:white;color:var(--ink);font:16px/1.75 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-weight:600;line-height:1.2;letter-spacing:-.02em}
h1{font-size:44px}h2{font-size:36px}h3{font-size:20px}
button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #4c6729;outline-offset:5px}
[hidden]{display:none!important}
.section-pad{padding:60px var(--gutter)}
.skip-link{position:fixed;left:20px;top:-80px;z-index:50;padding:12px 20px;color:white;background:var(--ink)}
.skip-link:focus{top:10px}
/* Sticky navigation compacts after the first short scroll. */
.site-header{position:sticky;top:0;z-index:30;height:var(--header-height);padding:0 var(--gutter);display:flex;gap:28px;align-items:center;background:white;transition:height .2s ease,box-shadow .2s ease}
.brand{display:inline-block;line-height:1;flex-shrink:0}
.brand img{width:215px;height:auto;transition:width .2s ease}
.site-header nav{display:flex;align-items:center;gap:28px;margin-left:auto;font-size:14px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}
.site-header nav>a{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid transparent}
.site-header nav>a:hover{border-color:var(--ink)}
.header-quote{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:46px;padding:10px 16px;border:1px solid var(--ink);font-size:14px;font-weight:600;line-height:1.5;white-space:nowrap}
.header-quote:hover{background:#f4f4ef}
.menu-toggle{display:none}
.mobile-nav{position:fixed;top:var(--header-height);left:0;right:0;z-index:29;background:white;padding:8px var(--gutter) 20px;border-bottom:1px solid var(--line);max-height:calc(100dvh - var(--header-height));overflow-y:auto}
.mobile-nav a{display:flex;align-items:center;min-height:50px;font-size:17px;font-weight:600}
body.is-scrolled{--header-height:68px}
.is-scrolled .site-header{box-shadow:0 1px 0 #211e1b18}
.is-scrolled .site-header .brand img{width:175px}
/* The hero uses content flow so enlarged text and short screens cannot overlap. */
.home-hero{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:calc(100vh - var(--header-expanded));min-height:calc(100svh - var(--header-expanded));padding:100px var(--gutter) 80px;background:#252820;color:white;overflow:hidden}
.home-hero-photo,.home-hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.home-hero-photo{object-fit:cover;object-position:center 52%}
.home-hero-shade{background:linear-gradient(0deg,#0e100fe6 0%,#0e100f99 37%,#0e100f0d 80%)}
.home-hero-copy{position:relative;margin-top:auto;max-width:100%}
.home-hero h1{font-size:clamp(42px,4.5vw,68px);font-weight:600;letter-spacing:-.035em;max-width:950px;line-height:1.12}
.hero-slogan{font-size:28px;font-weight:500;line-height:1.5;margin-top:16px}
.hero-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:30px}
.hero-links :is(.hero-quote,.image-button){display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:56px;padding:15px 23px;border:2px solid white;font-size:16px;font-weight:600;line-height:1.4;transition:background-color .18s,color .18s}
.hero-quote{background:white;color:var(--ink)}
.hero-quote:hover{background:#eeeee7}
.hero-links .image-button:hover{background:white;color:var(--ink)}

.home-hero a:focus-visible{outline-color:white}
@media(min-width:1001px) and (hover:hover) and (prefers-reduced-motion:no-preference){
 .home-hero{background-image:url('/assets/marriott-interior.jpeg');background-size:cover;background-position:center;background-attachment:fixed}
 .home-hero-photo{opacity:0}
}
.home-introduction{padding:80px var(--gutter) 12px;max-width:1140px;margin:auto;text-align:center}
.home-introduction p{font-size:23px;line-height:1.65;font-weight:500;max-width:900px;margin:auto}
.home-introduction .text-link{margin-top:22px}
.text-link{display:inline-flex;align-items:center;gap:20px;min-height:44px;border-bottom:1px solid currentColor;padding:6px 0;font-size:16px;font-weight:600;line-height:1.5}
.home-work{padding-top:52px;padding-bottom:62px}
.home-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px}
.home-section-heading>a{display:inline-flex;align-items:center;min-height:44px;font-size:16px;font-weight:500}
.home-section-heading>a:hover{text-decoration:underline;text-underline-offset:5px}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 28px;margin-top:28px}
.project-card{display:block;min-width:0}
.project-photo{aspect-ratio:1.4;overflow:hidden}
.project-photo img{width:100%;height:100%;object-fit:cover}
.project-info{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-top:13px}
.project-info :is(h2,h3){font-size:20px;font-weight:600;line-height:1.45;letter-spacing:-.01em;min-width:0}
.supply-sections{padding:0 var(--gutter) 30px}
.supply-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:8%;margin-bottom:62px}
.supply-section>img{width:100%;aspect-ratio:1.4;object-fit:cover}
.supply-section>div{max-width:460px;min-width:0}
.supply-section p{font-size:18px;line-height:1.75;color:var(--muted);margin:19px 0 16px}
.supply-section.reverse>img{grid-column:2;grid-row:1}
.supply-section.reverse>div{grid-column:1;grid-row:1;padding-left:12%}
.home-contact-line{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap;padding:12px var(--gutter) 72px}
.home-contact-line p{font-size:28px;font-weight:600;line-height:1.3}
.home-contact-line>a:last-child{display:inline-flex;align-items:center;min-height:44px;font-size:16px;color:var(--muted)}
.simple-capabilities{max-width:1300px;margin:auto}
.simple-capabilities>p,.simple-capabilities>div>p,.section-intro{font-size:18px;line-height:1.75;color:var(--muted);margin-top:20px}
.simple-capabilities>p{max-width:700px}
.simple-capabilities>img{width:100%;aspect-ratio:2;object-fit:cover;margin:39px 0}
.simple-capabilities>div{max-width:680px}
.simple-capabilities .text-link{margin-top:25px}
.case-heading{padding-top:35px;padding-bottom:35px}
.back-link{display:inline-flex;align-items:center;min-height:44px;font-size:16px;margin-bottom:22px;border-bottom:1px solid var(--ink)}
.case-heading h1{max-width:1000px;margin-bottom:18px}
.case-meta,.case-credit,.case-scope-summary{font-size:16px;line-height:1.9;color:var(--muted)}
.case-scope-summary{margin-top:14px;color:var(--ink)}
.case-cover{padding:0 var(--gutter)}
.case-cover img{width:100%;aspect-ratio:1.9;object-fit:cover}
.case-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;padding-top:25px;padding-bottom:35px}
.case-gallery img{width:100%;aspect-ratio:1.4;object-fit:cover}
.case-contact{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:30px;padding-bottom:45px;font-size:16px}
.portfolio-page .project-grid{margin-top:35px}
.contact-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:10%}
.section-intro{max-width:420px}
.owner-contact{margin-top:35px}
.owner-contact h3{margin-bottom:14px}
.owner-contact>a{display:flex;align-items:center;min-height:44px;width:fit-content;max-width:100%;overflow-wrap:anywhere;font-size:16px}
.owner-contact .phone-link{font-size:23px}
.owner-contact p{font-size:16px;color:var(--muted);line-height:1.8;margin-top:19px}
.inquiry-panel{min-width:0}
.form-intro{font-size:24px;font-weight:600;margin-bottom:20px}
.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
label{display:block;min-width:0;font-size:15px;font-weight:600;line-height:1.6;margin-bottom:18px}
label>span{font-size:12px;color:var(--muted);font-weight:400}
input,textarea{display:block;width:100%;min-width:0;padding:10px 11px;margin-top:6px;border:1px solid #bfc3b9;border-radius:0;font-size:16px;font-weight:400;line-height:1.6;background:white;color:var(--ink);min-height:48px}
textarea{resize:vertical}
input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#a33724}
.form-note{font-size:14px;line-height:1.8;color:var(--muted);margin-bottom:18px;overflow-wrap:anywhere}
.form-actions{display:flex;align-items:center;gap:19px;flex-wrap:wrap}
.button{display:inline-flex;justify-content:space-between;align-items:center;gap:24px;min-height:54px;max-width:100%;padding:13px 20px;border:1px solid transparent;font-size:16px;font-weight:600;line-height:1.4}
.button-dark{background:var(--ink);color:white}
.button-dark:hover{background:#42433d}
.button:disabled{background:#676a61;cursor:wait}
.copy-button{min-height:44px;border:0;border-bottom:1px solid var(--ink);background:none;padding:6px 0;font-size:14px}
.form-privacy{font-size:13px;line-height:1.8;color:var(--muted);margin-top:18px}
.form-privacy a{text-decoration:underline;text-underline-offset:3px}
.form-errors{border-left:3px solid #a33724;background:#fff4ee;padding:13px;font-size:14px;line-height:1.8;margin:15px 0;color:#7d2e20}
.form-errors ul{margin:7px 0 0;padding-left:20px}
.form-errors a{text-decoration:underline}
#form-status{font-size:14px;line-height:1.8;color:#365c22;overflow-wrap:anywhere}
#form-status:not(:empty){margin-top:19px}
#form-status.error{color:#8c3020}
.policy-page{max-width:1000px;margin:auto;overflow-wrap:anywhere}
.policy-page h1{margin-top:15px}
.policy-page h2{font-size:26px;margin:31px 0 14px}
.policy-page p{font-size:16px;line-height:1.9;color:var(--muted);margin-top:16px}
.policy-page p a{text-decoration:underline;text-underline-offset:3px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.8px}
.policy-page>.eyebrow{color:var(--muted)}
/* One unified footer. */
footer{padding:0 var(--gutter);background:white}
.footer-bar{display:grid;grid-template-columns:180px minmax(0,1fr) auto;align-items:start;gap:48px;padding:36px 0;border-top:1px solid var(--line)}
.footer-bar .brand img{width:180px}
.footer-contact{display:grid;justify-items:start;gap:6px;font-size:15px;line-height:1.6;min-width:0}
.footer-contact>a{display:block;max-width:100%;overflow-wrap:anywhere}

.footer-contact>span{color:var(--muted)}
.footer-meta{display:grid;gap:14px;text-align:right;font-size:13px;line-height:1.8}
.footer-meta>span{color:var(--muted)}
.footer-meta nav{display:flex;justify-content:flex-end;gap:24px;font-size:14px}
.footer-meta nav a{display:inline-flex;align-items:center;min-height:44px}
.footer-bar a:hover{text-decoration:underline;text-underline-offset:4px}
/* Below-fold content is visible by default. JavaScript enables one-time section reveals. */
.scroll-reveal{opacity:0;transform:translateY(32px);transition:opacity 1s ease-out,transform 1s cubic-bezier(.2,.65,.3,1)}
.scroll-reveal.is-visible,.scroll-reveal:focus-within{opacity:1;transform:none}
.scroll-reveal:focus-within{transition:none}
@media(max-width:1100px){.site-header{gap:20px}.site-header nav{gap:20px}.site-header .brand img{width:180px}.header-quote{gap:12px;padding:10px 12px}.supply-section{gap:6%}.footer-bar{grid-template-columns:150px minmax(0,1fr) auto;gap:24px}.footer-bar .brand img{width:150px}}
@media(max-width:900px){
 :root{--header-height:78px;--header-expanded:78px}
 body.is-scrolled{--header-height:64px}
 .site-header{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;gap:12px}
 .site-header nav{display:none}
 .site-header .brand img{width:160px;max-width:100%}
 .is-scrolled .site-header .brand img{width:140px}
 .header-quote{font-size:13px;min-height:44px}
 .menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:44px;height:44px;padding:8px;border:0;background:none}
 .menu-toggle span{display:block;width:26px;height:2px;background:var(--ink)}
 .contact-section{grid-template-columns:minmax(0,1fr);gap:40px}
 .section-intro{max-width:600px}
 .footer-bar{grid-template-columns:150px minmax(0,1fr)}
 .footer-meta{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;text-align:left;gap:20px}
}
@media(max-width:740px){
 html{scroll-padding-top:88px}
 h1{font-size:36px}h2{font-size:32px}
 .section-pad{padding:43px var(--gutter)}
 .home-hero{padding:64px var(--gutter) 56px}
 .home-hero-photo{object-position:56% center}
 .home-hero-shade{background:linear-gradient(0deg,#0e100fe6 0%,#0e100f99 55%,#0e100f33 100%)}
 .home-hero h1{font-size:clamp(36px,7.5vw,48px);max-width:600px}
 .hero-slogan{font-size:23px;margin-top:14px}
 .hero-links{gap:12px;margin-top:26px}
 .hero-links :is(.hero-quote,.image-button){min-height:52px;padding:14px 18px;font-size:15px;gap:20px}

 .home-introduction{padding:44px var(--gutter) 0;text-align:left}
 .home-introduction p{font-size:20px;line-height:1.7}
 .home-work{padding-top:38px;padding-bottom:40px}
 .home-section-heading>a{font-size:15px}
 .project-grid{grid-template-columns:minmax(0,1fr);gap:28px;margin-top:24px}
 .project-photo{aspect-ratio:1.3}
 .project-info :is(h2,h3){font-size:19px}
 .supply-sections{padding:0 var(--gutter) 10px}
 .supply-section,.supply-section.reverse{display:flex;flex-direction:column;align-items:stretch;gap:24px;margin-bottom:40px}
 .supply-section>div,.supply-section.reverse>div{padding:0;max-width:none}
 .supply-section p{margin:15px 0 12px}
 .home-contact-line{justify-content:flex-start;gap:18px 24px;padding-bottom:44px}
 .home-contact-line p{flex-basis:100%;font-size:26px}
 .simple-capabilities>img{aspect-ratio:1.3;margin:30px 0}
 .case-heading{padding-top:30px;padding-bottom:28px}
 .case-cover img{aspect-ratio:1.3}
 .case-gallery{grid-template-columns:minmax(0,1fr);gap:18px;padding-top:18px;padding-bottom:20px}
 .case-gallery img{aspect-ratio:1.3}
 .case-contact{padding-top:25px}
 .field-row{grid-template-columns:minmax(0,1fr);gap:0}
 .form-actions{gap:16px}
 .owner-contact{margin-top:26px}
 .policy-page h2{font-size:24px}
 .footer-bar{grid-template-columns:minmax(0,1fr);gap:20px;padding:28px 0}
 .footer-contact{gap:2px}
 .footer-contact>a{display:inline-flex;align-items:center;min-height:44px}
 .footer-meta{grid-column:auto;display:grid;gap:6px}
 .footer-meta nav{justify-content:flex-start}
}
@media(max-width:480px){
 .site-header{gap:8px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
 .site-header .brand img{width:145px}
 .is-scrolled .site-header .brand img{width:125px}
 .header-quote{font-size:12px;padding:10px}
 .hero-links{display:grid;grid-template-columns:minmax(0,1fr)}
 .hero-links :is(.hero-quote,.image-button){width:100%}
 .form-actions .button{width:100%}
}
@media(orientation:landscape) and (max-height:550px){.home-hero{padding-top:44px}.home-hero h1{font-size:40px}.hero-links{display:flex}}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none}html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{.site-header{position:static}.home-hero-photo{opacity:1}.mobile-nav,.menu-toggle{display:none!important}}

/* Link cues use typography and interaction, without arrow icons. */
.hero-links :is(.hero-quote,.image-button),.button{justify-content:center;text-align:center}
.hero-links :is(.hero-quote,.image-button){min-width:180px}
.project-info :is(h2,h3){text-decoration:underline;text-decoration-color:#b8b8b0;text-decoration-thickness:1px;text-underline-offset:5px}
.project-card:is(:hover,:focus-visible) :is(h2,h3){text-decoration-color:var(--ink);text-decoration-thickness:2px}
.project-photo img{transition:opacity .2s ease}
.project-card:is(:hover,:focus-visible) .project-photo img{opacity:.88}
.text-link:is(:hover,:focus-visible),.back-link:is(:hover,:focus-visible){box-shadow:inset 0 -1px currentColor}
.home-section-heading>a,.case-contact>a:not(.text-link),.footer-meta nav a{ text-decoration:underline;text-decoration-color:#b8b8b0;text-decoration-thickness:1px;text-underline-offset:5px}
.home-section-heading>a:hover,.case-contact>a:hover,.footer-meta nav a:hover{text-decoration-color:var(--ink);text-decoration-thickness:2px}
.case-gallery a{cursor:zoom-in}
@media(max-width:480px){.hero-links :is(.hero-quote,.image-button){min-width:0}}
