@font-face { font-family:Manrope; src:url('/fonts/manrope/Manrope-Variable.ttf') format('truetype'); font-weight:200 800; font-display:swap; }
:root { --paper:#f2f0eb; --ink:#191b1a; --muted:#666a66; --line:#cbc8c0; --accent:#cf4d2f; --white:#faf9f6; --font-label:10px; --font-ui:12px; --font-body:16px; --font-lead:22px; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Manrope,Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; }
a:focus-visible,button:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }

.site-header { background:rgba(250,249,246,.97); border-bottom:1px solid var(--line); position:relative; z-index:20; }
.header-main { min-height:132px; padding:0 4vw; display:grid; grid-template-columns:minmax(245px,1.2fr) minmax(150px,.72fr) minmax(155px,.72fr) minmax(300px,1.08fr) auto; align-items:stretch; }
.identity,.header-contact,.service-area,.facebook-top { border-right:1px solid #dedbd4; }
.identity { padding-right:28px; display:flex; align-items:center; gap:25px; }
.brand { width:100%; min-width:0; display:flex; align-items:center; gap:10px; line-height:1; }
.brand-logo-mark { width:min(225px,100%); height:88px; display:block; position:relative; flex:0 0 auto; line-height:1; }
.brand-roof { position:absolute; left:0; right:0; top:-6px; height:32px; background:var(--accent); clip-path:polygon(9% 80%,20% 80%,42% 6%,63% 77%,96% 77%,96% 90%,61% 90%,42% 24%,22% 94%,9% 94%); }
.brand-wordmark { position:absolute; left:0; top:31px; display:flex; align-items:baseline; white-space:nowrap; font-family:Arial,Helvetica,sans-serif; font-size:36px; font-style:italic; letter-spacing:-2px; transform:scaleX(1.08); transform-origin:left center; }
.brand-wordmark b { color:var(--accent); font-weight:400; }
.brand-wordmark i { color:#151515; font-weight:500; font-style:italic; }
.brand-tagline { position:absolute; right:3px; bottom:0; color:#151515; white-space:nowrap; font-family:Arial,Helvetica,sans-serif; font-size:16px; font-style:italic; font-weight:700; letter-spacing:-.5px; }
.owner-name { padding-left:25px; border-left:1px solid var(--line); color:#555954; font-size:var(--font-ui); font-weight:750; white-space:nowrap; }
.header-contact { padding:0 25px; display:flex; align-items:center; gap:14px; transition:background .2s ease; }
.header-contact:hover,.facebook-top:hover { background:#f0eee8; }
.header-contact small,.area-copy small { display:block; margin-bottom:7px; color:var(--muted); font-size:var(--font-label); font-weight:800; letter-spacing:1.05px; text-transform:uppercase; }
.header-contact strong,.area-copy strong { display:block; font-size:var(--font-ui); line-height:1.35; }
.header-email { padding-left:14px; padding-right:14px; gap:10px; }
.header-email strong { font-size:11px; letter-spacing:-.45px; }
.header-email,.header-email > span:last-child { min-width:0; }
.header-email strong { overflow-wrap:anywhere; }
.contact-icon { width:31px; height:31px; border:1px solid var(--accent); display:grid; place-items:center; color:var(--accent); font-size:15px; font-weight:800; flex:0 0 auto; }
.service-area { padding:10px 22px; display:flex; align-items:center; gap:17px; }
.map-frame { width:120px; height:114px; padding:3px; display:grid; place-items:center; flex:0 0 auto; background:transparent; }
.map-frame img { width:100%; height:100%; object-fit:contain; }
.area-copy strong { font-size:var(--font-ui); }
.area-copy { min-width:135px; display:grid; gap:9px; }
.area-detail { display:block; }
.area-detail + .area-detail { padding-top:9px; border-top:1px solid #dedbd4; }
.area-detail small { margin-bottom:3px; }
.facebook-top { min-width:92px; padding:0 15px; display:grid; place-content:center; justify-items:center; gap:7px; border-right:0; transition:background .2s ease; }
.facebook-top b { display:grid; place-items:center; width:30px; height:30px; border:1px solid var(--accent); border-radius:50%; color:var(--accent); font-family:Arial,sans-serif; font-size:18px; line-height:1; }
.facebook-top span { color:var(--muted); font-size:var(--font-label); font-weight:800; letter-spacing:.9px; text-transform:uppercase; }
.header-nav { height:48px; padding:0 4vw; display:flex; align-items:center; justify-content:space-between; background:var(--ink); color:white; position:sticky; top:0; }
nav { display:flex; gap:34px; font-size:var(--font-ui); letter-spacing:1.15px; text-transform:uppercase; font-weight:800; }
nav a:hover { color:var(--accent); }
.nav-note { color:#aeb2ae; font-size:var(--font-label); font-weight:700; letter-spacing:1px; text-transform:uppercase; }

.hero { min-height:510px; padding:70px 5vw 58px; display:grid; grid-template-columns:1fr; align-items:center; position:relative; overflow:hidden; }
.hero-copy { max-width:1050px; }
.hero::before { content:""; position:absolute; left:0; top:17%; width:5vw; height:2px; background:var(--accent); }
.overline,.label { font-size:var(--font-label); letter-spacing:1.8px; text-transform:uppercase; color:var(--muted); font-weight:800; }
.overline { margin:0 0 23px; }
h1,h2 { margin:0; font-weight:720; letter-spacing:-5px; line-height:.91; }
h1 { font-size:clamp(58px,7.2vw,108px); }
h1 em { color:var(--accent); font-style:normal; }
.hero-copy > p:not(.overline) { max-width:630px; color:var(--muted); font-size:var(--font-body); line-height:1.65; margin:27px 0 30px; }
.hero-actions { display:flex; gap:9px; flex-wrap:wrap; }
.button { min-width:215px; padding:17px 19px; display:inline-flex; justify-content:space-between; align-items:center; text-transform:uppercase; font-size:var(--font-ui); letter-spacing:.9px; font-weight:850; border:1px solid var(--ink); }
.button.dark { background:var(--ink); color:white; }.button.line:hover { background:white; }.button.dark:hover { background:var(--accent); border-color:var(--accent); }

.stats { background:var(--ink); color:white; padding:28px 5vw; display:grid; grid-template-columns:.6fr repeat(3,1fr); gap:3vw; align-items:center; }
.stats > p { color:#b0b4b0; font-size:var(--font-label); text-transform:uppercase; letter-spacing:1.25px; max-width:140px; line-height:1.55; }
.stats div { display:grid; border-left:1px solid #484b49; padding-left:28px; }
.stats strong { font-size:clamp(27px,3.4vw,48px); letter-spacing:-2px; }.stats span { color:#c0c3c0; font-size:var(--font-ui); letter-spacing:.95px; text-transform:uppercase; margin-top:6px; }

.section { padding:82px 5vw; }
.section-heading,.projects-heading,.reviews-heading { display:grid; grid-template-columns:.35fr 1.65fr; gap:5vw; align-items:start; }
.label { margin:6px 0 0; display:flex; gap:10px; align-items:center; }.label::before { content:""; width:24px; height:1px; background:var(--accent); }
h2 { font-size:clamp(42px,5.2vw,76px); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); margin-top:55px; }
.service-promise { margin:25px 0 0; max-width:720px; color:var(--muted); font-size:var(--font-body); line-height:1.7; }
.service-grid article { padding:25px 28px 10px 0; border-right:1px solid var(--line); min-height:190px; }
.service-grid article + article { padding-left:28px; }.service-grid article:last-child { border:0; }
.service-grid article > span { color:var(--accent); font-size:var(--font-label); }.service-grid h3 { font-size:var(--font-lead); letter-spacing:-.8px; margin:34px 0 12px; }.service-grid p { color:var(--muted); line-height:1.65; font-size:var(--font-body); max-width:380px; margin:0; }

.projects { background:#202321; color:white; overflow:hidden; padding-right:0; }
.projects-heading { padding-right:5vw; grid-template-columns:1fr; align-items:end; }
.projects .label { color:#969a96; margin-bottom:20px; }
.project-slider { margin-top:50px; overflow:hidden; padding:0 0 24px; outline:none; }
.project-track { display:flex; gap:14px; width:max-content; animation:project-marquee 64s linear infinite; will-change:transform; }
.project-carousel:hover .project-track,.project-carousel:focus-within .project-track { animation-play-state:paused; }
.project-slider figure { flex:0 0 min(62vw,700px); width:min(62vw,700px); margin:0; }
.project-image-button { width:100%; padding:0; border:0; display:block; overflow:hidden; background:#343835; color:inherit; cursor:zoom-in; }
.project-image-button img { height:440px; object-fit:cover; background:#343835; transition:transform .45s ease,opacity .2s ease; }
.project-image-button:hover img { transform:scale(1.018); opacity:.93; }
.project-image-button:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.project-slider figcaption { display:grid; grid-template-columns:30px 1fr auto; gap:16px; padding:14px 0; align-items:center; }
.project-slider figcaption span { color:var(--accent); font-size:var(--font-label); }.project-slider figcaption strong { font-size:var(--font-body); }.project-slider figcaption small { color:#b3b7b3; font-size:var(--font-label); text-transform:uppercase; letter-spacing:.9px; }
.facebook-link { display:inline-block; margin-top:27px; color:#d7dad7; font-size:var(--font-ui); letter-spacing:1.05px; text-transform:uppercase; border-bottom:1px solid #686d69; padding-bottom:6px; }.facebook-link span { color:var(--accent); margin-left:12px; }
.project-controls { min-height:70px; padding:0 5vw 0 0; display:flex; align-items:center; justify-content:space-between; border-top:1px solid #454946; }
.project-controls > span { color:#9da19d; font-size:var(--font-label); font-weight:800; letter-spacing:1.05px; }
.project-arrows { display:flex; gap:8px; }
.project-arrows button { width:42px; height:42px; border:1px solid #5b605c; background:transparent; color:white; font-size:16px; cursor:pointer; }
.project-arrows button:hover { border-color:var(--accent); background:var(--accent); }
@keyframes project-marquee { to { transform:translateX(calc(-50% - 7px)); } }

.lightbox { position:fixed; inset:0; z-index:100; padding:42px 7vw; display:grid; grid-template-columns:56px minmax(0,1fr) 56px; align-items:center; gap:24px; background:rgba(16,18,17,.94); color:white; }
.lightbox-content { width:100%; max-width:1250px; margin:0 auto; display:grid; justify-items:center; }
.lightbox-content img { width:auto; max-width:100%; max-height:78vh; object-fit:contain; box-shadow:0 25px 70px rgba(0,0,0,.38); }
.lightbox-content figcaption { width:100%; max-width:1000px; padding:15px 0 0; display:flex; justify-content:space-between; gap:25px; color:#c7cac7; }
.lightbox-content figcaption strong { color:white; font-size:14px; }
.lightbox-content figcaption span { font-size:11px; letter-spacing:1.1px; }
.lightbox-close,.lightbox-arrow { border:1px solid rgba(255,255,255,.38); background:rgba(25,27,26,.35); color:white; cursor:pointer; }
.lightbox-close:hover,.lightbox-arrow:hover { border-color:var(--accent); background:var(--accent); }
.lightbox-close { position:absolute; top:24px; right:27px; width:43px; height:43px; font-size:28px; font-weight:250; line-height:1; }
.lightbox-arrow { width:56px; height:56px; font-size:20px; }

.reviews-heading { grid-template-columns:1fr .55fr; align-items:end; }
.reviews-heading .label { margin-bottom:20px; }.reviews-heading > p { color:var(--muted); font-size:10px; line-height:1.6; max-width:300px; margin:0; }
.review-slider { margin-top:50px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.review-window { overflow:hidden; }
.review-track { width:max-content; display:flex; gap:1px; animation:review-marquee 54s linear infinite; will-change:transform; }
.review-slider:hover .review-track,.review-slider:focus-within .review-track { animation-play-state:paused; }
.review-slide { flex:0 0 min(70vw,850px); width:min(70vw,850px); min-height:290px; margin:0; padding:36px 4vw 32px; display:grid; grid-template-columns:52px minmax(0,1fr) 145px; gap:3vw; align-items:center; background:var(--paper); border-right:1px solid var(--line); }
.review-number { align-self:start; color:var(--accent); font-size:var(--font-label); font-weight:800; }
.review-slide > p { max-width:650px; margin:0; font-size:var(--font-lead); line-height:1.45; letter-spacing:-.7px; }
.review-slide footer { align-self:end; font-size:var(--font-ui); font-weight:800; }
.review-controls { min-height:70px; padding:0 9vw; display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line); }
.review-controls > span { color:var(--muted); font-size:var(--font-label); font-weight:800; letter-spacing:1.05px; }
.review-arrows { display:flex; gap:8px; }
.review-arrows button { width:42px; height:42px; border:1px solid var(--line); background:transparent; color:var(--ink); font-size:16px; cursor:pointer; }
.review-arrows button:hover { border-color:var(--accent); background:var(--accent); color:white; }
@keyframes review-marquee { to { transform:translateX(calc(-50% - .5px)); } }

.contact { padding:72px 6vw; background:var(--accent); color:white; display:grid; grid-template-columns:1.15fr .85fr; gap:9vw; align-items:end; }
.contact .label { color:rgba(255,255,255,.72); margin-bottom:24px; }
.contact .label::before { background:white; }
.contact h2 { font-size:clamp(48px,6vw,88px); }
.contact-copy > p:last-child { max-width:620px; margin:26px 0 0; color:rgba(255,255,255,.9); font-size:var(--font-body); line-height:1.65; }
.contact-person { display:grid; justify-items:start; align-content:end; }
.contact-person > span { color:rgba(255,255,255,.82); font-size:var(--font-label); font-weight:800; letter-spacing:1.35px; text-transform:uppercase; }
.contact-person > a { color:white; border-bottom:1px solid rgba(255,255,255,.52); padding-bottom:4px; }
.contact-phone { margin-top:8px; font-size:clamp(28px,3.8vw,52px); font-weight:800; letter-spacing:-2px; white-space:nowrap; }
.contact-email { margin-top:17px; font-size:clamp(12px,1.25vw,18px); font-weight:700; letter-spacing:-.4px; }
.contact-person > a b { font-size:.6em; }
.contact-person img { width:min(330px,100%); height:auto; margin:22px 0 -10px -10px; }
.contact-person small { color:rgba(255,255,255,.82); font-size:var(--font-label); letter-spacing:.9px; text-transform:uppercase; }
.site-footer { padding:27px 5vw 78px; background:var(--ink); color:#b0b4b0; display:flex; justify-content:space-between; align-items:center; font-size:var(--font-label); text-transform:uppercase; letter-spacing:.8px; }.site-footer a { color:white; }.site-footer p { margin:0; }
.footer-brand { width:150px; padding:8px 10px; background:var(--white); }
.footer-brand .brand-logo-mark { width:100%; height:53px; }
.footer-brand .brand-wordmark { top:19px; font-size:22px; letter-spacing:-1.2px; }
.footer-brand .brand-roof { top:-3px; height:19px; }
.footer-brand .brand-tagline { font-size:9px; }
.mobile-call { display:none; }

@media(max-width:1100px){
  .header-main{grid-template-columns:minmax(205px,.85fr) minmax(115px,.45fr) minmax(190px,.72fr) minmax(270px,.95fr) 55px}.owner-name{display:none}.identity{padding-right:18px}.header-contact{padding-left:13px;padding-right:13px}.service-area{padding-left:10px;padding-right:12px}.map-frame{width:108px;height:108px}.facebook-top{min-width:55px}
}
@media(max-width:850px){
  .header-main{min-height:auto;padding:0 5vw;grid-template-columns:1fr auto auto}.identity,.header-contact{min-height:78px;border-bottom:1px solid #dedbd4}.identity{padding-right:14px}.header-contact{padding:0 16px}.header-contact .contact-icon{display:none}.header-contact strong{font-size:11px}.service-area{min-height:128px;grid-column:1/3;padding:7px 12px 7px 0;gap:14px}.map-frame{width:116px;height:116px}.area-copy strong{font-size:11px}.facebook-top{min-width:74px;grid-column:3;padding:0 10px;border-bottom:0}.facebook-top span{display:block}.header-nav{padding:0 5vw}.hero{grid-template-columns:1fr;min-height:auto;padding:72px 6vw 55px}.hero::before{display:none}.hero-mark{display:none}.hero h1,h2{letter-spacing:-3px}.stats{grid-template-columns:repeat(3,1fr);padding:23px 6vw}.stats>p{grid-column:1/-1;margin:0}.section{padding:65px 6vw}.section-heading{grid-template-columns:1fr;gap:24px}.service-grid{grid-template-columns:1fr;margin-top:40px}.service-grid article,.service-grid article+article{padding:22px 0;border-right:0;border-bottom:1px solid var(--line);min-height:auto;display:grid;grid-template-columns:35px .8fr 1fr;gap:15px;align-items:start}.service-grid h3{margin:0}.projects{padding-right:0}.projects-heading{padding-right:6vw}.project-slider figure{flex-basis:78vw;width:78vw}.project-image-button img{height:420px}.reviews-heading{grid-template-columns:1fr;gap:25px}.review-slide{flex-basis:82vw;width:82vw;padding-left:5vw;padding-right:5vw;grid-template-columns:42px minmax(0,1fr) 130px}.review-controls{padding-left:5vw;padding-right:5vw}.contact{grid-template-columns:1fr;gap:48px;padding:62px 7vw}.contact-person img{width:290px}.mobile-call{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:30;background:var(--white);padding:15px 17px;justify-content:space-between;text-transform:uppercase;font-size:10px;letter-spacing:.9px;font-weight:850;box-shadow:0 8px 30px rgba(0,0,0,.25)}.mobile-call span{color:var(--accent)}
}
@media(max-width:560px){
  .header-main{padding:0 5vw;grid-template-columns:1fr 1fr}.identity{grid-column:1/-1;border-right:0}.brand-logo-mark{width:215px}.header-contact{padding:0 10px}.header-contact:nth-of-type(1){padding-left:0}.header-email{border-right:0}.service-area{min-height:132px;grid-column:1;padding-left:0}.map-frame{width:96px;height:112px}.area-copy{gap:7px}.area-detail+.area-detail{padding-top:7px}.facebook-top{min-height:132px;grid-column:2}.header-nav{height:44px;padding:0 5vw;display:flex;justify-content:center}.header-nav nav{width:100%;justify-content:space-between;gap:14px;font-size:10px}.nav-note{display:none}.hero h1{font-size:50px}.hero-copy>p:not(.overline){font-size:var(--font-body)}.hero-actions{display:grid}.stats{grid-template-columns:1fr}.stats div{padding:14px 0;border-left:0;border-top:1px solid #454946}.stats strong{font-size:31px}.service-grid article,.service-grid article+article{grid-template-columns:27px 1fr}.service-grid p{grid-column:2}.projects-heading{grid-template-columns:1fr}.project-slider{margin-top:32px}.project-slider figure{flex-basis:86vw;width:86vw}.project-image-button img{height:390px}.project-slider figcaption{grid-template-columns:24px 1fr}.project-slider figcaption small{grid-column:2}.lightbox{padding:70px 16px 24px;grid-template-columns:1fr}.lightbox-content img{max-height:72vh}.lightbox-arrow{position:absolute;bottom:22px;width:48px;height:48px}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox-content figcaption{padding-bottom:62px}.review-slide{flex-basis:88vw;width:88vw;min-height:290px;padding:30px 5vw;grid-template-columns:1fr;gap:18px}.review-number{align-self:auto}.review-slide>p{font-size:20px}.review-slide footer{align-self:auto}.review-controls{padding:0 5vw}.contact-phone{font-size:31px}.contact-email{font-size:14px}.site-footer{align-items:flex-start;flex-direction:column;gap:18px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-track,.review-track{animation:none}.project-slider,.review-window{overflow-x:auto}}
