:root{--blue:#0a46c2;--blue-2:#2f6bf0;--ink:#0b0d12;--ink-2:#13161d;--line:#262a33;--text:#e9ecf2;--muted:#a5adbb;--white:#fff;--r:14px;--wrap:1120px}
*{box-sizing:border-box}
button,input,select,textarea{font-family:inherit}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--ink);color:var(--text);font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:99;background:#fff;color:#000;padding:8px 12px;border-radius:8px}
h1,h2,h3{font-family:"Arial Narrow","Roboto Condensed","Helvetica Neue",Arial,sans-serif;font-stretch:condensed;text-transform:uppercase;letter-spacing:.02em;line-height:1.05;margin:0 0 .5em;color:var(--white)}
h1{font-size:clamp(2.3rem,7vw,4.2rem);font-weight:800}
h2{font-size:clamp(1.8rem,4.5vw,2.7rem);font-weight:800}
h3{font-size:1.25rem;font-weight:700}
.accent{color:var(--blue-2)}
.eyebrow{color:var(--blue-2);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;margin:0 0 .6em}
.lead{font-size:1.15rem;color:var(--muted);max-width:34em}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(0,0,0,.96);border-bottom:1px solid var(--line)}
.header-row{display:flex;align-items:center;gap:20px;height:68px}
.brand{order:1;flex-shrink:0}.brand img{height:52px;width:auto}
.nav{display:none;gap:26px;margin-left:auto}
.nav a{text-decoration:none;color:var(--muted);font-weight:600;font-size:.95rem}
.nav a:hover{color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 22px;border-radius:10px;font-weight:700;text-decoration:none;border:2px solid transparent;cursor:pointer;font-size:1rem;transition:transform .15s,background .15s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-2)}
.btn-outline{border-color:#fff;color:#fff;background:transparent}
.btn-outline:hover{background:#fff;color:#000}
.btn-block{width:100%}
.btn-call-sm{margin-left:auto;padding:9px 14px;background:var(--blue);color:#fff;font-size:.9rem;order:2;flex-shrink:0}
.btn-call-sm svg{width:16px;height:16px;fill:currentColor}
.btn-call-sm span{display:none}

/* hero */
.hero{background:radial-gradient(1200px 500px at 85% 10%,rgba(10,70,194,.35),transparent 60%),linear-gradient(180deg,#000 0%,var(--ink) 100%);padding:48px 0 56px;border-bottom:1px solid var(--line)}
.hero-grid{display:grid;gap:28px}
.hero-logo{display:none}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 22px}
.cta-row .btn{flex:1 1 200px}
.badges{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.badges li{border:1px solid var(--line);background:var(--ink-2);border-radius:999px;padding:7px 14px;font-size:.88rem;color:var(--muted)}
.badges strong{color:#fff;margin-right:4px}
.badges a{text-decoration:none}

/* sections */
.section{padding:64px 0}
.section.alt{background:var(--ink-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cards{display:grid;gap:16px;grid-template-columns:1fr;margin-top:20px}
.card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:24px;border-top:3px solid var(--blue)}
.card p{margin:0;color:var(--muted)}
.ico{width:44px;height:44px;fill:none;stroke:var(--blue-2);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:12px}
.about-grid{display:grid;gap:28px}
.about-grid p{color:var(--muted);max-width:38em}
.about-grid strong{color:#fff}
.facts{margin:0;display:grid;gap:12px;grid-template-columns:1fr 1fr}
.facts div{background:var(--ink);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.facts dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--blue-2);font-weight:700}
.facts dd{margin:2px 0 0;color:#fff;font-weight:600}
.rating{font-size:1.05rem;color:var(--muted)}
.rating strong{color:#fff}
.stars{color:#f5b301;letter-spacing:2px}
.quotes{display:grid;gap:16px;margin:22px 0}
.quote{margin:0;background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;justify-content:space-between}
.quote blockquote{margin:0 0 14px;color:var(--text);font-size:1.02rem}
.quote figcaption{color:var(--muted);font-size:.88rem;font-weight:600}
.link{color:var(--blue-2);font-weight:700;text-decoration:none}
.link:hover{text-decoration:underline}
.area{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.area p{color:var(--muted);max-width:38em}

/* contact */
.contact-grid{display:grid;gap:32px}
.contact-grid>div>p{color:var(--muted)}
.contact-list{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px}
.contact-list li{display:flex;flex-direction:column;font-weight:600;color:#fff;word-break:break-word}
.contact-list span{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--blue-2)}
.contact-list a{text-decoration:none}
.form{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:22px;display:grid;gap:14px}
.row2{display:grid;gap:14px}
.field{display:grid;gap:6px}
label{font-size:.85rem;font-weight:700;color:var(--muted)}
input,select,textarea{width:100%;font:inherit;color:#fff;background:#0a0c10;border:1px solid #353a45;border-radius:10px;padding:12px 14px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue-2);outline-offset:1px;border-color:transparent}
.fine{margin:0;font-size:.8rem;color:var(--muted)}

/* footer */
.site-footer{border-top:1px solid var(--line);background:#000;padding:36px 0 96px;color:var(--muted);font-size:.92rem}
.site-footer strong{color:#fff}
.site-footer a{text-decoration:none}
.footer-grid{display:grid;gap:18px}
.mobile-call{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;background:var(--blue);color:#fff;text-align:center;font-weight:800;padding:15px;border-radius:12px;text-decoration:none;box-shadow:0 10px 30px rgba(0,0,0,.5)}

@media (min-width:640px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .row2{grid-template-columns:1fr 1fr}
  .btn-call-sm span{display:inline}
}
@media (min-width:900px){
  .nav{display:flex}
  .btn-call-sm{margin-left:8px}
  .hero{padding:110px 0 120px}
  .hero-grid{grid-template-columns:1.15fr .85fr;align-items:center}
  .hero-logo{display:none}
  .cta-row .btn{flex:0 0 auto}
  .cards{grid-template-columns:repeat(3,1fr)}
  .about-grid{grid-template-columns:1.2fr .8fr;align-items:center}
  .quotes{grid-template-columns:repeat(3,1fr)}
  .area{flex-direction:row;justify-content:space-between;align-items:center}
  .contact-grid{grid-template-columns:.9fr 1.1fr}
  .footer-grid{grid-template-columns:1.4fr 1fr auto;align-items:end}
  .mobile-call{display:none}
  .site-footer{padding-bottom:36px}
  .section{padding:88px 0}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}

/* hero photo */
.hero.has-photo{position:relative;background:#000 url("assets/work/kitchen-blue-islands-sm.jpg") center/cover no-repeat;background-image:image-set(url("assets/work/kitchen-blue-islands-sm.webp") type("image/webp"),url("assets/work/kitchen-blue-islands-sm.jpg") type("image/jpeg"))}
.hero.has-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.74) 55%,rgba(11,13,18,.96) 100%)}
.hero.has-photo>.wrap{position:relative}
@media (min-width:900px){
  .hero.has-photo{background-image:image-set(url("assets/work/kitchen-blue-islands.webp") type("image/webp"),url("assets/work/kitchen-blue-islands.jpg") type("image/jpeg"))}
  .hero.has-photo::before{background:linear-gradient(90deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.72) 45%,rgba(0,0,0,.25) 100%)}
}

/* gallery */
.sub{color:var(--muted);margin:0 0 22px}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;grid-auto-flow:row dense}
.g-cell,.g-pair{margin:0;display:flex;flex-direction:column;gap:6px}
.g-pair{grid-column:1/-1}
.g-pair-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.g-item{position:relative;display:block;border-radius:10px;overflow:hidden;background:#000;aspect-ratio:1/1;border:1px solid var(--line)}
.g-pair .g-item{aspect-ratio:4/3}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.g-item:hover img{transform:scale(1.04)}
.g-item:focus-visible{outline:2px solid var(--blue-2);outline-offset:2px}
.g-tag{position:absolute;left:8px;top:8px;background:rgba(0,0,0,.75);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;border-radius:6px}
.g-pair-row .g-item:last-child .g-tag{background:var(--blue)}
.g-cell figcaption,.g-pair figcaption{font-size:.85rem;color:var(--muted);font-weight:600;line-height:1.3}
@media (min-width:640px){.gallery{grid-template-columns:repeat(3,1fr);gap:14px}.g-pair{grid-column:span 2}}
@media (min-width:900px){.gallery{grid-template-columns:repeat(4,1fr)}}

/* lightbox */
.lightbox{border:0;padding:0;margin:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;background:rgba(0,0,0,.94);color:#fff}
.lightbox[open]{display:flex;align-items:center;justify-content:center}
.lightbox::backdrop{background:rgba(0,0,0,.9)}
.lightbox figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:94vw}
.lightbox img{max-width:94vw;max-height:82vh;object-fit:contain;border-radius:6px}
.lightbox figcaption{color:#cfd5e0;font-weight:600;font-size:.95rem;text-align:center}
.lb-btn{position:fixed;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:999px;width:48px;height:48px;font-size:2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb-btn:hover{background:var(--blue)}
.lb-close{top:14px;right:14px}
.lb-prev{left:10px;top:50%;transform:translateY(-50%)}
.lb-next{right:10px;top:50%;transform:translateY(-50%)}
@media (max-width:639px){.lb-prev,.lb-next{top:auto;bottom:18px;transform:none}.lb-prev{left:calc(50% - 60px)}.lb-next{right:calc(50% - 60px)}.lightbox img{max-height:72vh}}

.cities{display:flex;flex-wrap:wrap;gap:.5rem .9rem;margin:1rem 0 0;padding:0;list-style:none}
.cities li{background:rgba(0,0,0,.06);padding:.35rem .7rem;border-radius:999px;font-size:.92rem}
.section.alt .cities li,.alt .cities li{background:rgba(255,255,255,.08)}
#area .cities li{background:rgba(255,255,255,.08)}

/* multipage additions */
.nav a.active{color:#fff}
.nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;margin-left:10px;flex-shrink:0;background:transparent;border:1px solid var(--line);border-radius:10px;padding:10px;cursor:pointer;order:3}
.nav-toggle span{display:block;height:2px;background:#fff;border-radius:1px}
body.nav-open{overflow:hidden}
@media (max-width:899px){
  .nav{display:none;position:fixed;top:68px;left:0;right:0;bottom:0;width:100%;height:auto;min-height:calc(100vh - 68px);min-height:calc(100dvh - 68px);background:rgba(0,0,0,.97);flex-direction:column;align-items:stretch;padding:20px;padding-bottom:88px;gap:0;margin:0;z-index:55;overflow:auto;-webkit-overflow-scrolling:touch}
  .nav.open{display:flex}
  .nav a{padding:14px 8px;border-bottom:1px solid var(--line);font-size:1.05rem;color:#fff}
  .btn-call-sm{margin-left:10px}
  body.nav-open .mobile-call{visibility:hidden;pointer-events:none}
}
@media (min-width:900px){
  .nav-toggle{display:none}
  .nav{display:flex;margin-left:auto;order:2}
  .btn-call-sm{order:3;margin-left:16px}
  .btn-call-sm span{display:inline}
}

.page-hero{padding:40px 0 28px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#000,var(--ink))}
.page-hero .lead{margin-bottom:0}
.page-hero .cta-row{margin-top:22px;margin-bottom:0}
.muted,.svc-copy{color:var(--muted);max-width:40em}
.intro-split{display:grid;gap:28px}
.intro-split p{color:var(--muted);max-width:38em}
.mini-facts{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.mini-facts li{background:var(--ink-2);border:1px solid var(--line);border-radius:12px;padding:16px}
.mini-facts strong{display:block;color:#fff;font-size:1.05rem}
.mini-facts span{color:var(--muted);font-size:.9rem}
.card-link{text-decoration:none;transition:border-color .15s,transform .15s}
.card-link:hover{border-color:var(--blue-2);transform:translateY(-2px)}
.more{margin:22px 0 0}
.feat-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}
.feat{text-decoration:none;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#000;display:flex;flex-direction:column}
.feat picture,.feat img{aspect-ratio:4/3;object-fit:cover;width:100%;height:100%}
.feat span{padding:10px 12px;font-size:.88rem;font-weight:600;color:var(--muted);background:var(--ink-2)}
.cta-band-inner{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.cta-band h2{margin-bottom:.3em}
.cta-band p{color:var(--muted);margin:0}
.footer-nav{display:flex;flex-wrap:wrap;gap:12px 18px}
.footer-nav a{font-weight:600}
.cities li{background:rgba(255,255,255,.08);color:var(--text)}
#area .cities li{background:rgba(255,255,255,.08)}

.jump{padding-top:28px;padding-bottom:8px}
.jump-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.jump-list a{display:inline-block;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--ink-2);text-decoration:none;font-weight:600;font-size:.9rem;color:var(--muted)}
.jump-list a:hover{color:#fff;border-color:var(--blue-2)}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0}
.svc-photo{margin:0}
.svc-photo a{display:block;border-radius:10px;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;background:#000}
.svc-photo img{width:100%;height:100%;object-fit:cover}
.svc-photo figcaption{font-size:.85rem;color:var(--muted);font-weight:600;margin-top:6px}

.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.filter{appearance:none;border:1px solid var(--line);background:var(--ink-2);color:var(--muted);font-weight:700;font-size:.88rem;padding:9px 14px;border-radius:999px;cursor:pointer}
.filter.active,.filter:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.filter-count{color:var(--muted);font-size:.9rem;margin:0 0 14px}

.process{list-style:none;margin:24px 0;padding:0;display:grid;gap:14px;counter-reset:step}
.process li{position:relative;background:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:20px 20px 20px 64px;counter-increment:step}
.process li::before{content:counter(step);position:absolute;left:18px;top:20px;width:32px;height:32px;border-radius:50%;background:var(--blue);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:.95rem}
.process strong{display:block;color:#fff;margin-bottom:.35em;text-transform:uppercase;letter-spacing:.04em;font-size:.95rem}
.process p{margin:0;color:var(--muted)}

.area-grid{display:grid;gap:14px;margin:22px 0}
.area-card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:22px;border-top:3px solid var(--blue)}
.area-card p{margin:0;color:var(--muted)}
.quotes-stack{grid-template-columns:1fr}
.rating.big{font-size:1.2rem;margin-bottom:8px}

@media (min-width:640px){
  .feat-strip{grid-template-columns:repeat(3,1fr)}
  .svc-grid{grid-template-columns:repeat(4,1fr)}
  .area-grid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:900px){
  .intro-split{grid-template-columns:1.2fr .8fr;align-items:center}
  .feat-strip{grid-template-columns:repeat(6,1fr)}
  .cta-band-inner{flex-direction:row;justify-content:space-between;align-items:center}
  .area-grid{grid-template-columns:repeat(3,1fr)}
  .process{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1.3fr 1fr 1fr auto;align-items:start}
  .quotes-stack{grid-template-columns:1fr}
}
