:root { --black:#101010; --charcoal:#252525; --gold:#f3b91d; --cream:#f1eee6; --white:#fff; --grey:#6e6b64; --line:rgba(16,16,16,.2); --pad:clamp(22px,4.6vw,74px); }
*,*::before,*::after{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;color:var(--black);background:var(--cream);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased} body.menu-open{overflow:hidden} img{display:block;width:100%} a{color:inherit;text-decoration:none} button{color:inherit;font:inherit} section{scroll-margin-top:82px}.skip-link{position:fixed;z-index:100;top:-60px;left:20px;padding:12px 18px;color:var(--black);background:var(--gold)}.skip-link:focus{top:12px}:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.site-header{position:fixed;z-index:50;top:0;right:0;left:0;display:grid;height:82px;grid-template-columns:minmax(230px,1fr) auto 255px;align-items:stretch;color:var(--white);background:rgba(16,16,16,.96);border-bottom:1px solid rgba(255,255,255,.16);transition:transform .3s}.site-header.hidden{transform:translateY(-100%)}.brand{display:flex;padding:6px var(--pad);align-items:center}.brand img{width:145px;height:67px;object-fit:contain}.desktop-nav{display:flex}.desktop-nav a{display:flex;padding:0 clamp(16px,2vw,31px);align-items:center;border-left:1px solid rgba(255,255,255,.14);font-size:.64rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;transition:.2s}.desktop-nav a:hover{color:var(--black);background:var(--gold)}.header-cta{display:flex;padding:0 20px;flex-direction:column;align-items:center;justify-content:center;color:var(--black);background:var(--gold);font-size:.62rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.header-cta span{margin-top:5px;font-size:.78rem;letter-spacing:.04em}.menu-toggle,.mobile-nav{display:none}
.hero{position:relative;display:flex;min-height:100svh;padding:145px var(--pad) clamp(125px,11vw,170px);align-items:flex-end;overflow:hidden;color:var(--white);background:var(--black)}.hero-image{position:absolute;inset:82px 0 0;height:calc(100% - 82px);object-fit:cover;object-position:center 57%}.hero-overlay{position:absolute;inset:82px 0 0;background:linear-gradient(90deg,rgba(0,0,0,.91),rgba(0,0,0,.45) 55%,rgba(0,0,0,.05) 82%),linear-gradient(0deg,rgba(0,0,0,.78),transparent 60%)}.hero-copy{position:relative;z-index:2;max-width:980px}.kicker{margin:0 0 28px;font-size:.65rem;font-weight:900;letter-spacing:.19em;line-height:1.4;text-transform:uppercase}.kicker.light{color:#d1cec5}h1,h2,h3{margin:0;font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-weight:900;letter-spacing:-.02em;line-height:.88;text-transform:uppercase}h1{font-size:clamp(4.4rem,9vw,9rem)}h1 span,h2 span{color:var(--gold)}.hero-copy>p:nth-of-type(2){max-width:590px;margin:30px 0 0;color:#dedbd2;font-size:clamp(1rem,1.35vw,1.2rem);line-height:1.6}.hero-actions{display:flex;margin-top:30px;gap:10px}.button{display:inline-flex;min-height:55px;padding:15px 23px;align-items:center;justify-content:center;border:1px solid currentColor;font-size:.65rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;transition:.2s}.button-gold{color:var(--black);background:var(--gold);border-color:var(--gold)}.button-gold:hover{color:var(--gold);background:transparent}.button-outline{color:var(--white);border-color:rgba(255,255,255,.75)}.button-outline:hover{color:var(--black);background:var(--white)}.hero-logo{position:absolute;z-index:2;top:clamp(120px,14vw,185px);right:clamp(28px,6vw,100px);width:clamp(120px,14vw,210px)}.service-strip{position:absolute;z-index:4;right:0;bottom:0;left:0;overflow:hidden;color:var(--black);background:var(--gold)}.strip-track{display:flex;width:max-content;padding:23px 0;align-items:center;animation:marquee 27s linear infinite}.strip-track span{padding:0 27px;font:900 clamp(1.05rem,1.7vw,1.6rem)/1 Impact,sans-serif;text-transform:uppercase}.strip-track i{width:7px;height:7px;background:var(--black);transform:rotate(45deg)}@keyframes marquee{to{transform:translateX(-50%)}}
.section{padding:clamp(85px,10vw,155px) var(--pad)}.section-heading{display:grid;margin-bottom:clamp(50px,7vw,95px);grid-template-columns:.5fr 1.2fr .65fr;gap:45px;align-items:end}.section-heading .kicker{margin:0}h2{font-size:clamp(3.7rem,6.8vw,7rem)}.section-heading>p:last-child{margin:0;color:var(--grey);line-height:1.65}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:clamp(420px,41vw,620px);gap:11px}.service-card{position:relative;display:flex;padding:28px;align-items:flex-end;overflow:hidden;color:var(--white);background:var(--charcoal)}.service-large{grid-column:span 2}.service-card img{position:absolute;inset:0;height:100%;object-fit:cover;transition:transform .6s}.service-card:hover img{transform:scale(1.035)}.card-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.9),transparent 62%)}.service-card>div:last-child{position:relative;z-index:2}.service-card h3{font-size:clamp(2rem,3vw,3.2rem);line-height:.94}.service-card p{max-width:490px;margin:16px 0 0;color:#d5d2ca;line-height:1.55}.number{position:absolute;z-index:2;top:24px;right:24px;display:grid;width:45px;height:45px;place-items:center;color:var(--black);background:var(--gold);font-size:.64rem;font-weight:900}
.about{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(60px,9vw,145px);align-items:center;color:var(--white);background:var(--black)}.about-photos{position:relative;min-height:clamp(600px,57vw,760px)}.about-photos figure{position:absolute;margin:0;overflow:hidden}.owner-photo{top:0;left:0;width:82%;height:88%}.owner-photo img,.dogs-photo img{height:100%;object-fit:cover}.owner-photo img{object-position:center}.owner-photo figcaption{position:absolute;right:0;bottom:0;left:0;display:flex;padding:17px 19px;justify-content:space-between;color:var(--black);background:var(--gold);font:900 1.25rem/1 Impact,sans-serif;text-transform:uppercase}.owner-photo figcaption span{font:900 .58rem Arial;letter-spacing:.15em}.dogs-photo{right:0;bottom:0;width:45%;height:45%;border:8px solid var(--black)}.dogs-photo figcaption{position:absolute;right:0;bottom:0;padding:11px 14px;color:var(--black);background:var(--gold);font-size:.58rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.about-copy h2 span{color:transparent;-webkit-text-stroke:2px var(--gold)}.about-copy>p:not(.kicker){max-width:670px;color:#c4c0b7;line-height:1.72}.about-copy .about-lede{margin-top:31px;color:var(--white);font-size:clamp(1.16rem,1.7vw,1.45rem);line-height:1.55}.facts{display:flex;margin-top:35px;padding-top:18px;flex-wrap:wrap;gap:12px;border-top:1px solid #555}.facts span{padding:9px 12px;color:var(--gold);border:1px solid #555;font-size:.58rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.reviews{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(60px,10vw,155px);align-items:center}.review-controls{display:flex;margin-top:42px;align-items:center;gap:18px}.review-controls button{width:48px;height:48px;background:transparent;border:1px solid var(--black);cursor:pointer}.review-controls button:hover{color:var(--black);background:var(--gold)}.review-controls span{font-size:.68rem;letter-spacing:.1em}.review-stage blockquote{display:none;margin:0}.review-stage blockquote.active{display:block;animation:revealReview .4s}.review-stage blockquote p{margin:0;font-size:clamp(1.5rem,2.8vw,2.75rem);font-weight:800;letter-spacing:-.025em;line-height:1.35}.review-stage cite{display:flex;margin-top:47px;padding-top:18px;justify-content:space-between;border-top:1px solid var(--black);font-size:.62rem;font-style:normal;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.review-stage cite span{font:900 1.15rem Impact}@keyframes revealReview{from{opacity:0;transform:translateY(10px)}}
.work{padding:clamp(80px,9vw,140px) var(--pad);color:var(--white);background:var(--charcoal)}.work-heading{display:flex;margin-bottom:clamp(45px,6vw,80px);align-items:end;justify-content:space-between;gap:40px}.work-heading .kicker{order:2;margin:0}.work-heading h2 span{color:transparent;-webkit-text-stroke:2px var(--gold)}.project-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(280px,27vw,440px);gap:10px}.project{position:relative;margin:0;overflow:hidden;background:#333}.project-tall{grid-column:span 2;grid-row:span 2}.project-wide{grid-column:span 2}.project img{height:100%;object-fit:cover;transition:transform .6s}.project:hover img{transform:scale(1.03)}.project::after{position:absolute;inset:0;content:"";background:linear-gradient(0deg,rgba(0,0,0,.82),transparent 48%)}.project figcaption{position:absolute;z-index:2;right:22px;bottom:22px;left:22px;display:flex;flex-direction:column;gap:7px}.project figcaption span{color:#ccc8be;font-size:.56rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.project figcaption b{font:900 clamp(1.35rem,2vw,2rem)/1 Impact;text-transform:uppercase}
.contact{display:grid;padding:clamp(90px,11vw,165px) var(--pad);grid-template-columns:.9fr 1.1fr;gap:clamp(55px,10vw,160px);color:var(--white);background:var(--black)}.contact h2{font-size:clamp(4.3rem,7.5vw,7.7rem)}.contact h2 span{color:transparent;-webkit-text-stroke:2px var(--gold)}.contact-links{border-top:1px solid #555}.contact-links a{display:flex;padding:26px 0;flex-direction:column;gap:8px;border-bottom:1px solid #555;transition:color .2s}.contact-links a:hover{color:var(--gold)}.contact-links small{color:#999;font-size:.58rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.contact-links b{overflow-wrap:anywhere;font-size:clamp(1.05rem,1.6vw,1.4rem)}footer{display:grid;padding:48px var(--pad) 25px;grid-template-columns:1fr 1fr;background:var(--cream)}.footer-brand img{width:190px;height:120px;padding:8px;object-fit:contain;background:var(--black)}footer nav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--black)}footer nav a{padding:16px 0;border-bottom:1px solid var(--line);font-size:.62rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}footer nav a:nth-child(odd){border-right:1px solid var(--line)}footer nav a:nth-child(even){padding-left:20px}.footer-bottom{display:flex;margin-top:50px;padding-top:17px;grid-column:1/-1;justify-content:space-between;border-top:1px solid var(--black);color:var(--grey);font-size:.6rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.mobile-call{display:none}.js .reveal{opacity:0;transform:translateY(25px);transition:opacity .7s,transform .7s}.js .reveal.visible{opacity:1;transform:none}
@media(max-width:1000px){.site-header{grid-template-columns:minmax(200px,1fr) auto 220px}.desktop-nav a{padding-inline:13px}.section-heading{grid-template-columns:.42fr 1.2fr}.section-heading>p:last-child{grid-column:2}.service-grid{grid-template-columns:repeat(2,1fr)}.service-large{grid-column:span 2}.reviews{grid-template-columns:1fr}.review-heading{display:grid;grid-template-columns:1fr 1fr}.review-heading .kicker{grid-column:1/-1}.review-controls{grid-column:2;grid-row:2;align-self:end;justify-self:end}.project-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){body{padding-bottom:58px}.site-header{height:70px;grid-template-columns:1fr 70px;background:var(--black)}.brand{padding:5px 16px}.brand img{width:122px;height:58px}.desktop-nav,.header-cta{display:none}.menu-toggle{display:grid;padding:21px;place-content:center;gap:8px;color:var(--white);background:var(--black);border:0;border-left:1px solid #444}.menu-toggle span{display:block;width:27px;height:2px;background:currentColor;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-5px) rotate(-45deg)}.mobile-nav{position:fixed;z-index:55;top:70px;right:0;bottom:0;left:0;display:flex;padding:28px 22px 90px;flex-direction:column;color:var(--white);background:#101010;visibility:hidden;opacity:0;transform:translateY(-8px);transition:.2s}.mobile-nav.open{visibility:visible;opacity:1;transform:none}.mobile-nav a{padding:20px 4px;border-bottom:1px solid #4a4a4a;font:900 2rem Impact;text-transform:uppercase}.hero{min-height:860px;padding:125px 21px 163px}.hero-image,.hero-overlay{inset:70px 0 0;height:calc(100% - 70px)}.hero-image{object-position:54% center}.hero-overlay{background:linear-gradient(0deg,rgba(0,0,0,.96),rgba(0,0,0,.72) 58%,rgba(0,0,0,.16))}.hero-copy>.kicker{display:none}h1{font-size:clamp(3.9rem,16vw,5.4rem);line-height:.9}.hero-copy>p:nth-of-type(2){font-size:.95rem}.hero-logo{top:100px;right:18px;width:100px}.hero-actions{align-items:stretch;flex-direction:column}.service-strip{bottom:58px}.section-heading{grid-template-columns:1fr;gap:22px}.section-heading>p:last-child{grid-column:auto}.service-grid{grid-template-columns:1fr;grid-auto-rows:460px}.service-large{grid-column:auto}.about{grid-template-columns:1fr}.about-photos{width:min(100%,580px);min-height:630px;justify-self:center}.reviews{display:flex;flex-direction:column;align-items:stretch}.review-heading{display:contents}.review-stage{order:1;margin-top:55px}.review-controls{order:2;margin-top:30px;align-self:flex-start}.work-heading{display:block}.work-heading .kicker{margin-bottom:25px}.project-grid{grid-template-columns:1fr 1fr;grid-auto-rows:350px}.project-tall{grid-column:span 2;grid-row:auto}.contact{grid-template-columns:1fr}.mobile-call{position:fixed;z-index:60;right:0;bottom:0;left:0;display:flex;height:58px;padding:10px 18px;align-items:center;justify-content:space-between;color:var(--black);background:var(--gold);font-size:.6rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.mobile-call span{font-size:.72rem}}
@media(max-width:520px){.section{padding-block:78px}h2{font-size:clamp(3.4rem,16vw,4.8rem)}.about-photos{min-height:550px}.owner-photo{width:88%;height:86%}.dogs-photo{width:48%;height:42%}.project-grid{display:block}.project{height:420px;margin-bottom:9px}.project-tall{height:360px}footer{grid-template-columns:1fr}footer nav{margin-top:35px}.footer-bottom{gap:17px;flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.js .reveal{opacity:1;transform:none}}

/* Direct headings use a restrained scale for longer, search-focused labels. */
h1 { max-width: 960px; font-size: clamp(3.3rem, 5.6vw, 5.8rem); line-height: .94; }
h2 { font-size: clamp(3.25rem, 5.4vw, 5.6rem); line-height: .95; }
.service-card h3 { font-size: clamp(1.8rem, 2.5vw, 2.7rem); line-height: .96; }
.contact h2 { font-size: clamp(3.4rem, 5.6vw, 5.8rem); }
.hero-logo { display: flex; aspect-ratio: 1; padding: 16px; align-items: center; justify-content: center; background: var(--black); border-radius: 50%; transform: rotate(15deg); }
.hero-logo img { height: auto; object-fit: contain; }
.footer-brand { display: flex; width: clamp(110px, 12vw, 140px); aspect-ratio: 1; padding: 13px; align-items: center; justify-content: center; background: var(--black); border-radius: 50%; transform: rotate(-15deg); }
.footer-brand img { width: 100%; height: auto; padding: 0; object-fit: contain; background: transparent; }

@media (max-width: 760px) {
  h1 { font-size: clamp(2.85rem, 11.5vw, 3.85rem); line-height: .96; }
}

@media (max-width: 520px) {
  h2, .contact h2 { font-size: clamp(3rem, 13vw, 4rem); }
}

.hero-image { object-position: center bottom; }
