@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap');:root{--black:#111;--paper:#f6f5f2;--muted:#777}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--black);background:var(--paper);font-family:DM Sans,Arial,sans-serif}a{color:inherit;text-decoration:none}header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:#111;color:#fff;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.13em;font-size:14px}.brand img{height:42px;width:auto}nav{display:flex;gap:24px;font-size:12px;text-transform:uppercase;letter-spacing:.1em}nav a:hover{opacity:.55}.menu{display:none;background:transparent;color:white;border:1px solid #666;padding:10px 15px}.hero{height:min(82vh,850px);min-height:560px;position:relative;background:#222;color:white}.hero>img{width:100%;height:100%;object-fit:cover}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.65),transparent 85%)}.hero-copy{position:absolute;z-index:1;left:7%;bottom:14%;max-width:800px}.eyebrow{font-size:11px;letter-spacing:.25em;text-transform:uppercase;font-weight:700}h1,h2,h3,p{margin-top:0}h1{font-family:Manrope,sans-serif;font-size:clamp(45px,6.2vw,96px);line-height:1.08;letter-spacing:-.065em;font-weight:500}h2{font-family:Manrope,sans-serif;font-size:clamp(32px,4vw,58px);font-weight:500;letter-spacing:-.055em;line-height:1.15}p{line-height:1.75;color:#555}section{padding:100px 7%}.dark{background:#141414;color:white}.dark p{color:#aaa}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:38px}.button{display:inline-block;border:1px solid currentColor;padding:16px 24px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;margin-top:24px}.button:hover{background:white;color:#111}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 24px}.project-card img{width:100%;height:390px;object-fit:cover;transition:transform .5s}.project-card{overflow:hidden}.project-card:hover img{transform:scale(1.025)}.card-meta{padding:16px 0;display:flex;justify-content:space-between;align-items:baseline;gap:10px}.card-meta h3{font-size:19px;font-weight:500;margin:0}.card-meta span{font-size:12px;color:#777}.scroll-row{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:18px}.scroll-row .project-card{flex:0 0 min(66vw,790px);scroll-snap-align:start}.scroll-row .project-card img{height:460px}.split{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.split img{width:100%;height:600px;object-fit:cover}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.service-grid a{position:relative;min-height:350px;overflow:hidden;background:#333;color:white}.service-grid img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;filter:brightness(.63)}.service-grid span{position:absolute;left:30px;bottom:28px;font-size:25px}.intro{padding:105px 7% 50px}.intro h1{font-size:clamp(44px,5vw,74px);max-width:1100px}.intro p{max-width:750px}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gallery img{width:100%;height:auto;display:block}.gallery figure{margin:0}.gallery figure:first-child{grid-column:1/-1}.gallery figure:first-child img{max-height:850px;object-fit:cover}.gallery figcaption{font-size:11px;color:#888;padding:8px 0}.city-links{display:flex;gap:12px;flex-wrap:wrap}.city-links a{padding:13px 19px;border:1px solid #bbb;font-size:13px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%}input,textarea,select{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid #aaa;padding:17px 2px;margin-bottom:12px;font:inherit;border-radius:0}textarea{height:140px}button.send{background:#111;color:#fff;padding:18px 28px;border:0;cursor:pointer}footer{padding:55px 7%;background:#111;color:white;display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap;font-size:13px}footer p{color:#aaa}.note{font-size:13px;color:#888}.breadcrumbs{font-size:12px;color:#888;margin-bottom:30px}.text-width{max-width:820px}.stat{font-size:36px;font-weight:500}.review-panel{border-top:1px solid #555;padding-top:25px}.review-panel a{text-decoration:underline}@media(max-width:800px){header{height:70px;padding:0 5%}.brand{font-size:11px}.brand img{height:34px;width:auto}.menu{display:block}nav{display:none;position:absolute;top:70px;left:0;right:0;background:#111;padding:20px 7%;flex-direction:column;gap:20px}nav.open{display:flex}section{padding:65px 5%}.intro{padding:65px 5% 25px}.hero{height:75vh;min-height:530px}.hero-copy{left:5%;right:5%;bottom:10%}.hero h1{font-size:clamp(42px,11vw,68px)}.project-grid,.split,.service-grid,.contact-grid{grid-template-columns:1fr}.project-card img{height:310px}.scroll-row .project-card{flex-basis:87vw}.scroll-row .project-card img{height:310px}.split img{height:360px}.gallery{grid-template-columns:1fr}.gallery figure:first-child{grid-column:auto}.section-head{align-items:start;flex-direction:column}.card-meta{flex-direction:column}.service-grid a{min-height:280px}}
.hero-copy a.button + a.button{margin-left:14px}

.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:8px}
.review-card{border:1px solid #ddd;padding:28px;background:#fff}
.review-card p{margin:12px 0 16px;line-height:1.65}
.review-stars{color:#b98a1c;letter-spacing:.25em;font-size:15px}
@media(max-width:760px){.review-grid{grid-template-columns:1fr}}

.social-row{text-align:center}.social-links{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:26px}

/* Card affordance: frame + view cue (owner request 2026-10-23) */
.project-card{display:block;background:#fff;border:1px solid #e4ded2;border-radius:16px;padding:10px;box-shadow:0 3px 14px rgba(20,20,20,.06);transition:box-shadow .3s}
.project-card:hover{box-shadow:0 10px 26px rgba(20,20,20,.13)}
.project-card img{border-radius:10px}
.project-card .card-meta{padding:14px 6px 8px}
.view-cue{display:block;margin-top:6px;font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#a07d2c}
.service-grid a{border-radius:16px}
.service-grid a::after{content:"Explore";position:absolute;top:16px;right:16px;background:rgba(0,0,0,.45);color:#fff;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:6px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.55)}

/* Blog (added 2026-10-23, ships with Nov 22 batch) */
.article{max-width:760px}
.article h2{margin:34px 0 10px;font-size:26px}
.article h3{margin:26px 0 8px;font-size:20px}
.article p,.article li{line-height:1.65;color:#333}
.article ul{padding-left:22px}
.article-cta{max-width:760px;margin-top:36px;padding:18px 20px;background:#111;color:#fff;border-radius:12px}
.article-cta a{color:#e8c97a}
.post-list{display:grid;gap:18px;max-width:860px}
.post-card{display:block;background:#fff;border:1px solid #e4ded2;border-radius:16px;padding:22px;box-shadow:0 3px 14px rgba(20,20,20,.06);text-decoration:none;color:inherit}
.post-card h3{margin:0 0 8px;font-size:22px}
.post-card p{margin:0;color:#555;line-height:1.55}
.post-card .post-date{display:block;margin-top:8px;font-size:12px;color:#888}

/* FAQ sections on service pages (added 2026-10-23) */
.faq{max-width:820px}
.faq h2{margin-bottom:36px}
.faq h3{font-family:Manrope,sans-serif;font-size:21px;font-weight:600;letter-spacing:-.02em;line-height:1.3;margin:32px 0 8px}
.faq p{max-width:760px}

.review-note{margin-top:20px;font-size:14px;opacity:.7}
.review-note a{color:inherit;text-decoration:underline}

.platform-link{text-decoration:underline;text-underline-offset:5px}
