@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root{--bg:#070707;--text:#f5f5f5;--muted:#a5a5a5;--line:rgba(255,255,255,.12);--max:1180px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;line-height:1.6}
body.no-scroll{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit}

.site-header{position:fixed;top:0;left:0;right:0;z-index:20;min-height:82px;padding:10px 3.2vw;display:flex;align-items:center;gap:28px;background:linear-gradient(rgba(0,0,0,.88),transparent);transition:.3s}
.site-header.scrolled{background:rgba(7,7,7,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{flex:0 0 auto}
.brand img{width:145px;height:60px;object-fit:contain}
.service-line{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;white-space:nowrap}
.service-line b{font-weight:400;color:#777}
nav{display:flex;align-items:center;gap:22px;font-size:12px;font-weight:600}
nav a{opacity:.85}
nav a:hover{opacity:1}

.hero{min-height:clamp(500px,52vw,860px);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#050505}
.hero-media{position:absolute;inset:0;background:url('images/banner-wide-current.png') center center/contain no-repeat}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02),transparent 65%,rgba(0,0,0,.18));pointer-events:none}
.scroll-hint{position:absolute;z-index:2;bottom:28px;left:50%;transform:translateX(-50%);font-size:28px;line-height:1;color:#fff;animation:bounce 2s infinite}
@keyframes bounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,7px)}}

.section,.intro{width:min(var(--max),90%);margin:auto}
.intro{padding:120px 0 105px;display:grid;grid-template-columns:1.05fr .95fr;gap:70px}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:700;color:#cfcfcf;margin:0 0 18px}
h1{font-size:clamp(45px,6.4vw,82px);line-height:.98;letter-spacing:-.055em;margin:0;font-weight:900}
h1 em,h2 em{font-style:normal;color:#aaa}
h2{font-size:clamp(42px,6vw,78px);line-height:1;letter-spacing:-.05em;margin:0}
.intro-copy{align-self:end;max-width:550px}
.intro-copy>p{color:#aaa;font-size:18px;margin:0 0 28px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:14px 22px;border-radius:4px;font-weight:700;font-size:13px}
.button span{font-size:18px;line-height:0}
.button-primary{background:#fff;color:#080808}
.button-ghost{border:1px solid rgba(255,255,255,.6);color:#fff;background:transparent}
.button-ghost:hover{background:#fff;color:#080808}

.services{padding:20px 0 130px}
.section-heading{margin-bottom:45px}
.centered{text-align:center}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.service-card{padding:28px 25px 30px;border:1px solid var(--line);background:linear-gradient(145deg,#15171c,#0c0c0c);min-height:245px;transition:transform .3s,border-color .3s}
.service-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.3)}
.icon{width:50px;height:50px;margin-bottom:25px}
.icon svg{width:100%;height:100%;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
h3{font-size:19px;margin:0 0 9px;letter-spacing:-.025em}
.service-card p{color:#999;font-size:13px;max-width:320px;margin:0}

.feature-image{position:relative;height:min(70vw,700px);overflow:hidden;cursor:zoom-in}
.feature-image img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block;transition:transform .6s}
.feature-image:hover img{transform:scale(1.025)}
.feature-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.82),transparent 65%);pointer-events:none}
.feature-caption{position:absolute;z-index:2;left:5vw;bottom:48px}
.feature-caption h2{font-size:clamp(38px,6vw,76px)}
.image-hint{display:block;margin-top:15px;font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:#ccc}

.projects{padding:130px 0}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:250px;gap:12px}
.gallery-item{margin:0;overflow:hidden;background:#151515;cursor:zoom-in}
.gallery-item.large{grid-row:span 2}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.gallery-item:hover img{transform:scale(1.04)}
.gallery-note{text-align:center;color:#777;font-size:11px;margin:18px 0 0}

.about{padding:20px 0 150px;display:grid;grid-template-columns:1fr 1fr;gap:100px}
.about-copy>p:not(.eyebrow){color:#aaa;max-width:600px;margin-top:30px}
.about-mark{min-height:420px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#0b0b0b}
.about-mark img{width:min(70%,330px);max-height:360px;object-fit:contain}

.contact{background:#f3f3f3;color:#090909;padding:130px 5vw}
.contact-inner{width:min(900px,100%);margin:auto;text-align:center}
.contact .eyebrow{color:#555}
.contact h2{font-size:clamp(52px,8vw,100px)}
.contact p:not(.eyebrow):not(.contact-note){max-width:570px;margin:30px auto;color:#555;font-size:17px}
.contact .button-primary{background:#090909;color:#fff}.contact-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.contact .button-dark{border:1px solid #aaa;color:#111;background:transparent}.contact .button-dark:hover{background:#090909;color:#fff}
.contact-note{margin-top:22px;color:#777;font-size:12px}

footer{padding:45px 5vw;display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;align-items:end;border-top:1px solid var(--line)}
.footer-brand img{width:150px;height:105px;object-fit:contain;object-position:left center}
.footer-links{display:flex;gap:20px;justify-content:center;font-size:12px;color:#999}
footer>p{text-align:right;color:#777;font-size:11px;margin:0}

.lightbox{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.94);display:flex;align-items:center;justify-content:center;padding:40px;opacity:0;pointer-events:none;transition:opacity .25s}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox img{max-width:92vw;max-height:90vh;object-fit:contain;box-shadow:0 10px 50px rgba(0,0,0,.5)}
.lightbox-close{position:absolute;top:18px;right:25px;border:0;background:transparent;color:#fff;font-size:45px;line-height:1;cursor:pointer;font-weight:300}

@media(max-width:1000px){
  .site-header{gap:16px}
  .service-line{font-size:10px;gap:7px}
  nav{gap:14px}
}
@media(max-width:800px){
  .site-header{height:70px;min-height:70px;padding:8px 4vw}
  .brand img{width:125px;height:50px}
  .service-line{display:none}
  nav{margin-left:auto}
  nav a:not(:last-child){display:none}
  .intro,.about{grid-template-columns:1fr;gap:35px;padding-top:90px;padding-bottom:90px}
  .intro-copy{max-width:none}
  .service-grid{grid-template-columns:1fr 1fr}
  .service-card{min-height:220px}
  .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:190px}
  .gallery-item.large{grid-row:span 1;grid-column:span 2}
  .about-mark{min-height:260px}
  footer{grid-template-columns:1fr}
  .footer-links{justify-content:flex-start}
  footer>p{text-align:left}
}
@media(max-width:520px){
  .hero{min-height:90svh}
  .hero-media{background-position:center center}
  .service-grid{grid-template-columns:1fr}
  .service-card{min-height:0}
  .gallery{grid-template-columns:1fr}
  .gallery-item.large{grid-column:auto}
  .feature-image{height:90vw}
  .feature-caption{left:22px;bottom:28px}
}

.instagram-link{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;opacity:.8;transition:.2s}
.instagram-link:hover{opacity:1;transform:translateY(-2px)}
.instagram-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.instagram-link svg circle:last-child{fill:currentColor;stroke:none}

.icon-spotlight svg{stroke-width:2.1}

.legal-page{min-height:100vh;background:#070707;color:#f5f5f5}.legal-wrap{width:min(900px,90%);margin:auto;padding:150px 0 110px}.legal-wrap .eyebrow{margin-bottom:20px}.legal-wrap h1{font-size:clamp(48px,7vw,82px);line-height:.95;margin:0 0 55px;letter-spacing:-.05em}.legal-wrap h2{font-size:28px;line-height:1.1;margin:55px 0 16px;letter-spacing:-.03em}.legal-wrap p,.legal-wrap li{color:#aaa;font-size:15px;line-height:1.8}.legal-wrap ul{padding-left:22px}.legal-wrap a{text-decoration:underline;text-underline-offset:3px}.legal-back{display:inline-flex;margin-top:45px;padding:12px 18px;border:1px solid #555;border-radius:4px;text-decoration:none!important;color:#fff!important}.legal-note{border-left:2px solid #555;padding:10px 18px;margin:25px 0;color:#999}

.service-line{margin-left:auto;margin-right:auto;font-size:12px;letter-spacing:.12em;font-weight:700}
.service-line b{display:none}
.footer-links{align-items:center}

/* v19: header has no service-line text */
.site-header .service-line{display:none!important}
.footer-links{display:flex;align-items:center;gap:14px}
.maps-link{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:inherit;opacity:.8;transition:opacity .2s,transform .2s}
.maps-link:hover{opacity:1;transform:translateY(-2px)}
.maps-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
