@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;500;600;700;800&family=Source+Sans+3:wght@400;500;600&display=swap');
:root{--ink:#201d19;--paper:#f8f6f1;--gold:#e7a54f;--muted:#bcb6ac;--line:#ffffff24}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--ink);color:var(--paper);font:18px/1.6 'Source Sans 3',sans-serif}h1,h2,h3,.brand,.button{font-family:'Bricolage Grotesque',sans-serif}h1,h2,h3{line-height:1.07;letter-spacing:-.035em;margin:0;text-wrap:balance}h1{font-size:clamp(64px,8.5vw,128px);font-weight:700}h1 em{font-style:normal;color:var(--gold)}h2{font-size:clamp(36px,4.2vw,64px);font-weight:600}h3{font-size:28px;font-weight:600}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button,input,textarea,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}header{position:fixed;top:0;left:0;right:0;z-index:20;padding:20px 5%;display:flex;justify-content:space-between;align-items:center;background:#201d19eb;backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand{font-size:29px;font-weight:800;line-height:1}.brand span{display:block;font:9px/1.4 'Source Sans 3',sans-serif;letter-spacing:.16em;margin-top:7px}nav{display:flex;gap:30px;align-items:center;font-size:15px}.nav-cta{border:1px solid #e7a54f77;padding:10px 18px;border-radius:5px}.menu{display:none}.guided-page{position:relative;isolation:isolate}.scroll-beam{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.beam-track{stroke:#cb9656;stroke-width:1;opacity:.13}.beam-trail{stroke:var(--gold);stroke-width:2;filter:drop-shadow(0 0 5px #e7a54f88)}.beam-tip{fill:#ffe3b6;stroke:#d89238;stroke-width:2;filter:drop-shadow(0 0 6px #e7a54f)}section{position:relative;padding:120px 6%}section>div:not(.hero-overlay){position:relative;z-index:3}.hero{min-height:100svh;display:grid;place-items:center;text-align:center;padding-top:150px;padding-bottom:150px;overflow:hidden}.hero-photo,.hero-overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-photo{image-rendering:auto;object-position:center 38%}.hero-overlay{background:linear-gradient(180deg,#201d19b8 0%,#201d198a 42%,#201d19bb 65%,#201d19ed 84%,var(--ink) 100%)}.hero-content{max-width:1120px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.19em;color:var(--gold);margin:0 0 24px;text-transform:uppercase}.intro{font-size:22px;line-height:1.55;max-width:740px;margin:26px auto 0;color:var(--muted);text-wrap:pretty}.hero .intro{color:#e4dfd7}.actions{display:flex;justify-content:center;gap:16px;margin-top:38px}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;background:var(--gold);border:1px solid var(--gold);color:var(--ink);border-radius:6px;padding:16px 24px;font-weight:600;font-size:16px;cursor:pointer;transition:transform .2s}.button:hover{transform:translateY(-2px)}.secondary{background:#201d1933;color:var(--paper);border-color:#ffffff44}.wrap{max-width:1250px;margin:auto;text-align:center}.narrow{max-width:780px}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-top:1px solid var(--line);margin-top:50px;padding-top:32px}.facts strong,.facts span{display:block}.facts strong{font:500 25px 'Bricolage Grotesque';color:var(--gold)}.facts span{font-size:15px;color:var(--muted);margin-top:10px}.light{background:var(--paper);color:var(--ink)}.light .eyebrow{color:#9d621f}.light .intro{color:#67625b}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:58px;text-align:left}.services article{border-top:1px solid #b6a99a;padding:30px 0}.number{font-size:11px;letter-spacing:.15em;color:#8d602a}.services h3{margin-top:25px}.services p{font-size:17px;color:#656059;min-height:110px}.services a,.text-link{font-weight:600;font-size:16px;border-bottom:1px solid #bd966b;padding-bottom:7px}.more-services{margin-top:34px;border-top:1px solid #ddd5c9;padding-top:30px}.more-services span{font-size:13px;color:#777}.more-services p{margin:10px 0}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:60px;text-align:left}figure{margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}figure img{display:block;width:100%;height:340px;object-fit:cover}figcaption{padding:28px}figcaption span{font-size:11px;letter-spacing:.15em;color:var(--gold)}figcaption h3{font-size:25px;margin:14px 0}figcaption p{margin:0;color:var(--muted);font-size:16px}.comparison{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px;margin-top:60px;border-top:1px solid var(--line);padding-top:50px;text-align:left}.comparison>img{width:100%;height:360px;object-fit:contain;background:#161411;border-radius:8px}.comparison p{color:var(--muted)}.switch{display:inline-flex;gap:4px;border:1px solid var(--line);padding:4px;border-radius:7px;margin-top:15px}.switch button{background:none;border:0;color:var(--paper);padding:9px 25px;cursor:pointer;border-radius:4px}.switch .active{background:var(--gold);color:var(--ink)}.portrait{display:grid;grid-template-columns:320px 1fr;text-align:left;gap:70px;align-items:center;max-width:950px;margin:55px auto 0}.portrait img{width:100%;border-radius:8px}.portrait p{color:#656059}.portrait .eyebrow{font-size:10px}.portrait h3{font-size:37px}.portrait .text-link{display:inline-block;margin-top:10px}details{text-align:left;border-bottom:1px solid var(--line);padding:22px 0}details:first-of-type{margin-top:45px}summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;font-weight:600}summary::after{content:'+';color:var(--gold)}details[open] summary::after{content:'−'}details p{font-size:17px;color:var(--muted)}.contact{background:#2a251e}form{max-width:640px;text-align:left;margin:45px auto 0}label{display:block;font-size:14px;margin-bottom:20px}select,textarea{display:block;width:100%;border:1px solid #ffffff30;background:#ffffff08;color:var(--paper);padding:14px;margin-top:9px;border-radius:5px}select option{color:#222}textarea{min-height:120px;resize:vertical}form .button{width:100%}.form-note{font-size:13px;color:var(--muted);text-align:center}.contact-links{display:flex;flex-wrap:wrap;justify-content:center;gap:18px 35px;margin-top:45px}.contact-links span{width:100%;font-size:14px;color:var(--muted)}footer{padding:50px 6%;display:flex;justify-content:space-between;gap:30px;align-items:center;border-top:1px solid var(--line)}footer p,footer div{font-size:12px;color:var(--muted)}footer div{display:flex;flex-direction:column;gap:8px}#form-status{font-size:14px;color:var(--gold)}@media(max-width:750px){header{padding:16px 6%}.brand{font-size:24px}.brand span{font-size:8px}.menu{display:block;background:none;color:var(--paper);border:0;font-size:14px}.menu span{margin-left:10px}nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--ink);padding:25px;flex-direction:column;align-items:stretch}nav.open{display:flex}section{padding:90px 7%}.hero{min-height:850px;min-height:100svh;padding:150px 7%}.hero .eyebrow{font-size:10px;letter-spacing:.12em}.intro{font-size:19px}.actions{flex-direction:column;align-items:stretch}.facts{grid-template-columns:1fr;gap:25px}.services,.project-grid,.comparison,.portrait{grid-template-columns:1fr}.services{gap:10px}.services p{min-height:0}.project-grid img{height:260px}.comparison{gap:25px}.portrait{gap:30px}.portrait img{max-width:280px;margin:auto}.portrait h3{font-size:32px}.portrait .eyebrow{line-height:1.8}footer{flex-direction:column;text-align:center}.comparison>img{height:300px}.button{min-height:54px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.beam-tip{display:none}.button{transition:none}}

@media(max-width:750px){h1{font-size:clamp(44px,13vw,60px)}}

/* Compact closing section: keep heading, inquiry and contacts visible together. */
.contact{padding:36px 6% 30px}
.contact .eyebrow{margin-bottom:12px}
.contact h2{font-size:clamp(30px,3vw,42px)}
.contact .intro{font-size:18px;line-height:1.4;margin-top:14px}
.contact form{margin-top:22px}
.contact label{margin-bottom:12px}
.contact select,.contact textarea{padding:10px;margin-top:5px}
.contact textarea{min-height:76px;height:76px}
.contact form .button{padding:12px 20px}
.contact .form-note{margin:8px 0 0}
#form-status:empty{display:none}
.contact-links{margin-top:20px;gap:8px 28px}
footer{padding:22px 6%}
@media(min-width:900px){
.contact .wrap{max-width:1120px;display:grid;grid-template-columns:1fr 1fr;column-gap:64px;align-items:start;text-align:left}
.contact .eyebrow,.contact h2,.contact .intro,.contact-links{grid-column:1}
.contact .intro{margin-left:0}
.contact form{grid-column:2;grid-row:1 / span 5;width:100%;margin:0}
.contact-links{justify-content:flex-start}
.contact{padding-top:44px;padding-bottom:44px}
}
@media(max-width:750px){.contact{padding:40px 7%}footer{gap:12px;padding:24px 7%}}

/* Closing screen includes the measured fixed navigation and footer. */
.contact{min-height:calc(100svh - var(--closing-header,89px) - var(--closing-footer,94px));display:flex;align-items:center}
.contact>.wrap{width:100%}

/* Reference-led closing card: full-bleed photograph and left contact copy. */
.contact{background:linear-gradient(90deg,rgba(32,29,25,.92) 0%,rgba(32,29,25,.76) 45%,rgba(32,29,25,.3) 100%),url('assets/contact-putz.jpg') center/cover no-repeat; padding:64px 7%}
.contact .wrap{display:flex;flex-direction:column;align-items:flex-start;text-align:left;max-width:1120px;gap:0}
.contact h2{font-size:clamp(38px,4.2vw,64px);max-width:720px;font-weight:700;letter-spacing:-.02em}
.contact .intro{max-width:570px;margin:22px 0 0;color:#e1ddd5;font-size:20px}
.contact-links{order:3;justify-content:flex-start;max-width:600px;margin-top:26px}
.contact-inquiry{order:4;margin-top:28px;max-width:600px;width:100%;border:0}
.contact-inquiry>summary{display:inline-flex;list-style:none;cursor:pointer;padding:14px 24px;font-size:17px}
.contact-inquiry>summary::-webkit-details-marker{display:none}
.contact-inquiry form{margin-top:20px;background:rgba(32,29,25,.88);padding:22px;border:1px solid #ffffff24;border-radius:8px}
@media(max-width:750px){.contact{padding:50px 7%;background-position:60% center}.contact h2{font-size:38px}.contact .intro{font-size:18px}}
