@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600&family=Playfair+Display:wght@500;600&display=swap');

:root { --ink:#151515; --soft-ink:#66635d; --paper:#f4f3ef; --white:#fff; --line:#d9d7d0; --brand:#efca32; --brand-dark:#c7a319; --charcoal:#1a1b1b; --forest:#24322d; --radius:6px; --shadow:0 24px 70px rgba(0,0,0,.16); --pad:clamp(22px,5vw,88px); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; color:var(--ink); background:var(--paper); font-family:"DM Sans",sans-serif; line-height:1.55; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
h1,h2,h3,p { margin-top:0; }
.topbar { display:flex; justify-content:flex-end; gap:34px; padding:8px var(--pad); color:#d8d8d3; background:#111; font:500 11px/1.5 "Manrope",sans-serif; text-transform:uppercase; }
.topbar a { color:var(--brand); }
.nav { position:sticky; top:0; z-index:30; display:flex; align-items:center; justify-content:space-between; min-height:86px; padding:14px var(--pad); background:rgba(244,243,239,.94); border-bottom:1px solid rgba(21,21,21,.1); backdrop-filter:blur(18px); }
.brand img { width:145px; }
.nav-links { display:flex; align-items:center; gap:clamp(18px,2vw,34px); font:700 12px/1 "Manrope",sans-serif; text-transform:uppercase; }
.nav-links>a:not(.button) { position:relative; padding:12px 0; }
.nav-links>a:not(.button)::after { content:""; position:absolute; left:0; right:100%; bottom:5px; height:2px; background:var(--brand-dark); transition:right .25s ease; }
.nav-links>a:hover::after { right:0; }
.menu-button { display:none; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 24px; border:1px solid var(--ink); border-radius:var(--radius); background:var(--ink); color:white; font:700 12px/1 "Manrope",sans-serif; text-transform:uppercase; transition:transform .2s,background .2s,color .2s; }
.button:hover { transform:translateY(-3px); background:var(--brand); border-color:var(--brand); color:var(--ink); box-shadow:0 12px 28px rgba(21,21,21,.18); }
.button:focus-visible { outline:3px solid rgba(239,202,50,.55); outline-offset:3px; }
.button.small { min-height:44px; padding-inline:18px; }
.button.ghost { border-color:rgba(255,255,255,.6); background:transparent; color:white; }
.button.ghost:hover { background:white; color:var(--ink); }
.button.light { background:var(--brand); border-color:var(--brand); color:var(--ink); }
.button.light:hover { background:white; border-color:white; }
.hero .actions .button:first-child { min-width:190px; background:var(--brand); border-color:var(--brand); color:var(--ink); box-shadow:0 14px 36px rgba(0,0,0,.28); }
.hero .actions .button:first-child:hover { background:white; border-color:white; }
.hero .actions .button:first-child::after,.cta-band .button::after,.nav-links .button::after { content:"→"; margin-left:13px; font-size:17px; line-height:0; transition:transform .2s; }
.hero .actions .button:first-child:hover::after,.cta-band .button:hover::after,.nav-links .button:hover::after { transform:translateX(4px); }
.eyebrow { display:inline-block; color:var(--brand-dark); font:700 11px/1.2 "Manrope",sans-serif; text-transform:uppercase; }
.eyebrow::before { content:""; display:inline-block; width:28px; height:2px; margin:0 10px 3px 0; background:currentColor; }
.hero { position:relative; display:grid; align-items:end; min-height:calc(100svh - 118px); padding:clamp(100px,14vh,180px) var(--pad) clamp(50px,8vh,90px); color:white; background:linear-gradient(90deg,rgba(10,12,11,.88) 0%,rgba(10,12,11,.62) 46%,rgba(10,12,11,.08) 75%),var(--hero-image) center/cover no-repeat; isolation:isolate; }
.hero::after { content:""; position:absolute; inset:auto 0 0; height:150px; z-index:-1; background:linear-gradient(transparent,rgba(0,0,0,.3)); }
.hero-copy { max-width:830px; }
.hero .eyebrow { color:var(--brand); margin-bottom:26px; }
h1 { max-width:780px; margin-bottom:24px; font:500 clamp(58px,7vw,112px)/.9 "Playfair Display",serif; }
h2 { margin-bottom:20px; font:500 clamp(38px,4.2vw,68px)/1 "Playfair Display",serif; }
h3 { font:600 22px/1.18 "Manrope",sans-serif; }
.hero p { max-width:650px; margin-bottom:0; color:rgba(255,255,255,.8); font-size:clamp(17px,1.3vw,21px); }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.hero-proof { position:absolute; right:var(--pad); bottom:clamp(50px,8vh,90px); display:grid; width:215px; padding:20px; border-left:2px solid var(--brand); background:rgba(15,15,15,.45); backdrop-filter:blur(10px); }
.hero-proof strong { font:600 17px "Manrope",sans-serif; }
.hero-proof span { color:rgba(255,255,255,.65); font-size:12px; }
.trust-strip { display:grid; grid-template-columns:repeat(4,1fr); padding:0 var(--pad); background:var(--brand); }
.trust-strip span { padding:19px 24px; border-right:1px solid rgba(21,21,21,.2); text-align:center; font:700 11px "Manrope",sans-serif; text-transform:uppercase; }
.trust-strip span:last-child { border-right:0; }
.section { padding:clamp(72px,9vw,142px) var(--pad); }
.section-heading { display:grid; grid-template-columns:1fr 1.6fr; gap:24px 70px; align-items:end; margin-bottom:48px; }
.section-heading h2 { margin:0; }
.section-heading p { grid-column:2; max-width:660px; margin:-8px 0 0; color:var(--soft-ink); font-size:17px; }
.statement { display:grid; grid-template-columns:.6fr 1.4fr; gap:70px; background:white; }
.statement h2 { max-width:900px; }
.statement p { max-width:660px; color:var(--soft-ink); font-size:18px; }
.text-link { display:inline-block; margin-top:20px; padding-bottom:5px; border-bottom:2px solid var(--brand-dark); font-weight:700; }
.intro { display:grid; grid-template-columns:.8fr 1fr; gap:70px; background:white; }
.intro p { color:var(--soft-ink); font-size:19px; }
.split { display:grid; grid-template-columns:.85fr 1fr; gap:clamp(40px,7vw,110px); align-items:start; background:white; }
.two-col { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.52fr); gap:clamp(40px,6vw,90px); }
.muted { background:#e8e7e1; }
.services-section { background:var(--paper); }
.service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:#c8c6bf; border:1px solid #c8c6bf; }
.service-card { min-height:100%; background:white; overflow:hidden; }
.service-image { display:block; overflow:hidden; }
.service-card img { width:100%; aspect-ratio:1/.82; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.service-card:hover img { transform:scale(1.045); }
.service-card>div { position:relative; min-height:255px; padding:28px; }
.service-card small { position:absolute; top:30px; right:26px; color:#aaa69c; font:600 11px "Manrope",sans-serif; }
.service-card h3 { max-width:calc(100% - 35px); margin-bottom:14px; }
.service-card p { color:var(--soft-ink); font-size:14px; }
.service-card div>a { position:absolute; left:28px; bottom:26px; font-weight:700; font-size:13px; }
.process { display:grid; grid-template-columns:.8fr 1.4fr; gap:8vw; padding:clamp(72px,9vw,140px) var(--pad); color:white; background:var(--forest); }
.process .eyebrow { color:var(--brand); }
.process .section-heading { display:block; margin:0; }
.process ol { list-style:none; margin:0; padding:0; border-top:1px solid rgba(255,255,255,.2); }
.process li { display:grid; grid-template-columns:65px 1fr; gap:18px; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.2); }
.process li b { color:var(--brand); font:600 12px "Manrope",sans-serif; }
.process li span { color:rgba(255,255,255,.65); }
.process li strong { display:inline-block; min-width:110px; color:white; }
.projects-section { background:white; }
.project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.project-card { position:relative; min-height:500px; overflow:hidden; color:white; background:#111; }
.project-card img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease,opacity .4s; }
.project-card::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.8)); }
.project-card div { position:absolute; z-index:1; left:32px; right:32px; bottom:28px; }
.project-card span { color:var(--brand); font:700 11px "Manrope",sans-serif; text-transform:uppercase; }
.project-card h3 { margin:8px 0 0; font:500 30px "Playfair Display",serif; }
.project-card i { position:absolute; right:0; bottom:4px; opacity:0; font-style:normal; font-size:12px; transition:opacity .25s; }
.project-card:hover img { transform:scale(1.035); opacity:.86; }
.project-card:hover i { opacity:1; }
.list-panel,.contact-panel,.form { border:1px solid var(--line); background:white; }
.list-panel { padding:20px 28px; border-top:4px solid var(--brand); }
.list-panel p { margin:0; padding:16px 0; border-bottom:1px solid var(--line); color:var(--soft-ink); font-weight:600; }
.list-panel p:last-child { border:0; }
.contact-panel { padding:34px; border-top:5px solid var(--brand); }
.contact-panel h3 { margin-top:20px; }
.contact-panel p { color:var(--soft-ink); }
.contact-panel a { display:block; padding:14px 0; border-top:1px solid var(--line); font-weight:700; }
.info-list p { margin:0 0 10px; color:var(--soft-ink); font-weight:600; }
.city-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.city-grid span { padding:18px; background:white; font-weight:600; }
.form { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:clamp(24px,3vw,42px); box-shadow:0 22px 60px rgba(0,0,0,.09); }
.form-intro { display:flex; align-items:flex-start; gap:15px; margin:12px 0 2px; padding-top:28px; border-top:1px solid var(--line); }
.form-intro:first-child { margin-top:0; padding-top:0; border-top:0; }
.form-intro h3 { margin:0 0 4px; font-size:18px; }
.form-intro p { margin:0; color:var(--soft-ink); font-size:13px; }
.form-step { display:grid; flex:0 0 34px; width:34px; height:34px; place-items:center; border-radius:50%; background:var(--brand); color:var(--ink); font:700 11px "Manrope",sans-serif; }
.form label { display:grid; gap:8px; color:#53514c; font:700 11px "Manrope",sans-serif; text-transform:uppercase; }
.form input,.form select,.form textarea { width:100%; min-height:52px; padding:13px 15px; border:1px solid #cbc9c1; border-radius:3px; outline:0; background:#fafaf8; color:var(--ink); transition:border .2s,box-shadow .2s; }
.form input:focus,.form select:focus,.form textarea:focus { border-color:var(--brand-dark); box-shadow:0 0 0 3px rgba(239,202,50,.18); }
.form textarea { resize:vertical; }
.form .wide,.form button,.form-success { grid-column:1/-1; }
.form .check { display:flex; align-items:center; text-transform:none; }
.form .check input { width:auto; min-height:auto; }
.field-hint { color:#77736b; font-size:11px; font-weight:500; line-height:1.45; text-transform:none; }
.address-autocomplete { position:relative; display:block; }
.address-autocomplete input { padding-right:46px; }
.address-loader { position:absolute; top:17px; right:17px; display:none; width:18px; height:18px; border:2px solid #d5d2ca; border-top-color:var(--brand-dark); border-radius:50%; animation:address-spin .7s linear infinite; }
.address-loader.visible { display:block; }
@keyframes address-spin { to { transform:rotate(360deg); } }
.address-suggestions { position:absolute; z-index:50; top:calc(100% + 6px); left:0; right:0; display:none; max-height:310px; overflow-y:auto; border:1px solid #cbc9c1; border-radius:4px; background:white; box-shadow:0 20px 45px rgba(0,0,0,.16); }
.address-suggestions.open { display:block; }
.address-option { display:grid; width:100%; gap:3px; padding:14px 16px; border:0; border-bottom:1px solid #e8e6df; background:white; color:var(--ink); text-align:left; cursor:pointer; }
.address-option:last-child { border-bottom:0; }
.address-option:hover,.address-option[aria-selected="true"] { background:#fff9dd; }
.address-option strong { font-size:13px; }
.address-option span { color:var(--soft-ink); font-size:12px; }
.form-success { padding:50px 20px; text-align:center; }
.form-success .eyebrow { margin-bottom:18px; }
.form-success h3 { max-width:520px; margin:0 auto 14px; font:500 clamp(28px,3vw,42px)/1.12 "Playfair Display",serif; }
.form-success p { max-width:520px; margin:0 auto 26px; color:var(--soft-ink); }
.form-message { min-height:0; margin:0; font-size:13px; }
.form-error { padding:13px 15px; border-left:3px solid #a63d32; background:#fff0ed; color:#7b2921; }
.form button:disabled { cursor:wait; opacity:.65; transform:none; }
.cta-band { position:relative; display:grid; grid-template-columns:1fr auto; align-items:end; gap:60px; padding:clamp(65px,8vw,115px) var(--pad); color:white; background:#171817; overflow:hidden; }
.cta-band::before { content:""; position:absolute; top:0; left:var(--pad); width:72px; height:5px; background:var(--brand); }
.cta-band h2 { max-width:900px; margin:16px 0 0; }
.cta-band .eyebrow { color:var(--brand); }
.cta-band .button { min-width:220px; min-height:58px; box-shadow:0 14px 34px rgba(0,0,0,.3); }
.footer { display:grid; grid-template-columns:1.35fr repeat(4,1fr); gap:40px; padding:60px var(--pad); color:#e7e5de; background:#101111; border-top:1px solid #333; }
.footer-brand img { width:150px; margin-bottom:22px; filter:brightness(1.25); }
.footer-brand p { max-width:280px; }
.footer strong { display:block; margin-bottom:14px; color:var(--brand); font:700 11px "Manrope",sans-serif; text-transform:uppercase; }
.footer p { color:#aaa9a4; font-size:14px; }
.footer a { font-weight:600; font-size:14px; }
.copyright { padding:17px var(--pad); color:#777; background:#0b0c0c; font-size:11px; text-align:right; }
@media (max-width:1100px) { .hero-proof{display:none}.service-grid{grid-template-columns:repeat(2,1fr)}.footer{grid-template-columns:repeat(2,1fr)}.footer-brand{grid-column:1/-1} }
@media (max-width:820px) { .topbar span:first-child{display:none}.topbar{justify-content:space-between;gap:10px}.nav{min-height:72px}.brand img{width:125px}.menu-button{display:grid;gap:6px;width:44px;height:44px;place-content:center;border:1px solid #bbb;border-radius:var(--radius);background:transparent}.menu-button span{display:block;width:20px;height:2px;background:var(--ink)}.nav-links{position:absolute;inset:72px 0 auto;display:none;flex-direction:column;align-items:stretch;gap:0;padding:18px var(--pad) 28px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.nav-links.open{display:flex}.nav-links a{padding:15px 0!important;border-bottom:1px solid var(--line)}.nav-links .button{margin-top:14px}.hero{min-height:720px;background:linear-gradient(0deg,rgba(8,10,9,.92),rgba(8,10,9,.05) 80%),var(--hero-image) 64% center/cover no-repeat}h1{font-size:clamp(52px,14vw,80px)}.trust-strip{grid-template-columns:repeat(2,1fr)}.trust-strip span{border-bottom:1px solid rgba(21,21,21,.2)}.statement,.intro,.split,.two-col,.process,.section-heading,.cta-band{grid-template-columns:1fr}.section-heading p{grid-column:1;margin:0}.process{gap:44px}.city-grid{grid-template-columns:repeat(2,1fr)}.project-card{min-height:390px} }
@media (max-width:560px) { .topbar{font-size:9px}.hero{min-height:calc(100svh - 103px);padding-bottom:45px}.hero p{font-size:16px}.actions{align-items:stretch}.actions .button{width:100%}.trust-strip{display:none}.service-grid,.project-grid,.city-grid,.form,.footer{grid-template-columns:1fr}.service-card>div{min-height:235px}.project-card{min-height:420px}.form,.contact-panel{padding:24px}.process li{grid-template-columns:42px 1fr}.process li strong{display:block}.cta-band{align-items:stretch}.footer-brand{grid-column:auto}.copyright{text-align:center} }
@media (prefers-reduced-motion:no-preference) { .hero-copy{animation:rise .8s ease both}@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}} }
