:root{
  --black:#000;
  --white:#fff;
  --paper:#ecece7;
  --gray:#bdbdb7;
  --line:rgba(255,255,255,.2);
  --inkline:rgba(0,0,0,.18);
  --max:1380px;
  --pad:clamp(20px,4vw,64px);
}
*{box-sizing:border-box}
html{width:100%;max-width:100vw;overflow-x:clip}body{width:100%;max-width:100vw;overflow-x:clip;position:relative}main,section,header,footer,.wrap,.cta,.actions{max-width:100%;min-width:0}
html{scroll-behavior:smooth}
body{margin:0;background:var(--black);color:#fff;font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit}
.wrap{width:min(var(--max),100%);margin:auto}
.eyebrow{font:700 12px/1.25 "Courier New",monospace;letter-spacing:.16em;text-transform:uppercase}
.display{font-family:Impact,"Arial Narrow","Arial Black",sans-serif;text-transform:uppercase;letter-spacing:-.02em}
header{position:sticky;top:0;z-index:50;height:88px;padding:0 var(--pad);display:grid;grid-template-columns:auto 1fr auto;align-items:center;background:#000;border-bottom:1px solid var(--line)}
.logo{width:176px;height:66px;display:flex;align-items:center}.logo img{width:170px;height:auto;object-fit:contain}
.desktop{justify-self:center;display:flex;gap:clamp(18px,2.6vw,42px)}
.desktop a{font:700 11px/1 "Courier New",monospace;letter-spacing:.12em;text-transform:uppercase;padding:10px 0;border-bottom:1px solid transparent}
.desktop a:hover,.desktop a[aria-current="page"]{border-color:#fff}
.header-call{border:1px solid #fff;padding:13px 17px;font-weight:900;font-size:13px;letter-spacing:.04em}
.menu{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mobile-menu{display:none;position:relative;justify-self:end}
.mobile-menu summary{width:54px;height:54px;list-style:none;cursor:pointer;border:1px solid rgba(255,255,255,.7);border-radius:50%;display:grid;place-items:center;padding:0;background:#000;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;position:relative;isolation:isolate;animation:menu-button-nudge 5.2s ease-in-out infinite}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu summary::before,.mobile-menu summary::after{content:"";position:absolute;inset:-5px;border:1px solid rgba(255,255,255,.52);border-radius:50%;pointer-events:none;opacity:0;z-index:-1}
    .mobile-menu summary::before{animation:menu-ring-pulse 5.2s ease-out infinite}
    .mobile-menu summary::after{inset:-10px;border-color:rgba(255,255,255,.22);animation:menu-ring-pulse-2 5.2s ease-out infinite}
    .mobile-menu summary:hover{background:#fff;color:#000;border-color:#fff;transform:scale(1.04)}
    .mobile-menu[open] summary{background:#fff;color:#000;border-color:#fff;animation:none}
    .mobile-menu[open] summary::before,.mobile-menu[open] summary::after{animation:none;opacity:0}
.menu-icon{width:20px;height:16px;position:relative;display:block}
.menu-icon i{position:absolute;left:0;width:20px;height:2px;background:currentColor;transition:transform .24s ease,opacity .18s ease,top .24s ease,left .24s ease,width .24s ease}
.menu-icon i:nth-child(1){top:0}
.menu-icon i:nth-child(2){top:7px}
.menu-icon i:nth-child(3){top:14px}
    .mobile-menu:not([open]) .menu-icon i:nth-child(1){animation:menu-line-1 5.2s ease-in-out infinite}
    .mobile-menu:not([open]) .menu-icon i:nth-child(2){animation:menu-line-2 5.2s ease-in-out infinite}
    .mobile-menu:not([open]) .menu-icon i:nth-child(3){animation:menu-line-3 5.2s ease-in-out infinite}
.mobile-menu[open] .menu-icon i:nth-child(1){top:7px;transform:rotate(45deg)}
.mobile-menu[open] .menu-icon i:nth-child(2){opacity:0;transform:scaleX(.4)}
.mobile-menu[open] .menu-icon i:nth-child(3){top:7px;transform:rotate(-45deg)}
.mobile-menu nav{position:absolute;right:0;top:calc(100% + 10px);width:min(260px,calc(100vw - 40px));background:#000;border:1px solid #fff;padding:8px;display:grid;z-index:80;box-shadow:0 18px 48px rgba(0,0,0,.45);transform-origin:top right;animation:menu-drop .18s ease-out}
.mobile-menu nav a{padding:15px 16px;font:700 12px/1 "Courier New",monospace;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.16)}
.mobile-menu nav a:last-child{border-bottom:0}
.mobile-menu nav a:hover,.mobile-menu nav a:focus{background:#fff;color:#000}
    @keyframes menu-drop{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
    @keyframes menu-button-nudge{
      0%,72%,100%{transform:translateX(0) scale(1)}
      76%{transform:translateX(-2px) scale(1.03)}
      80%{transform:translateX(2px) scale(1.03)}
      84%{transform:translateX(0) scale(1)}
    }
    @keyframes menu-ring-pulse{
      0%,70%,100%{opacity:0;transform:scale(.88)}
      74%{opacity:.7;transform:scale(.9)}
      86%{opacity:0;transform:scale(1.2)}
    }
    @keyframes menu-ring-pulse-2{
      0%,73%,100%{opacity:0;transform:scale(.9)}
      78%{opacity:.28;transform:scale(.92)}
      91%{opacity:0;transform:scale(1.22)}
    }
    @keyframes menu-line-1{
      0%,70%,100%{left:0;width:20px}
      76%{left:3px;width:17px}
      82%{left:0;width:20px}
    }
    @keyframes menu-line-2{
      0%,72%,100%{left:0;width:20px}
      78%{left:-3px;width:23px}
      84%{left:0;width:20px}
    }
    @keyframes menu-line-3{
      0%,74%,100%{left:0;width:20px}
      80%{left:5px;width:15px}
      86%{left:0;width:20px}
    }
    @media (prefers-reduced-motion: reduce){
      .mobile-menu summary,
      .mobile-menu summary::before,
      .mobile-menu summary::after,
      .mobile-menu:not([open]) .menu-icon i{animation:none!important}
      .mobile-menu nav{animation:none!important}
    }

.page-hero{padding:clamp(58px,8vw,118px) var(--pad);border-bottom:1px solid var(--line)}
.page-hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(42px,7vw,100px);align-items:end}
.page-hero h1{margin:16px 0 0;font:400 clamp(60px,8vw,126px)/.9 Impact,"Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:-.025em}
.page-intro{font:400 clamp(16px,1.3vw,20px)/1.65 "Courier New",monospace;color:#ddd;max-width:580px;margin:0}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.btn{min-height:56px;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:0 22px;border:1px solid currentColor;font-weight:900;font-size:13px;letter-spacing:.08em;text-transform:uppercase;transition:.15s}
.btn.light{background:#fff;color:#000}.btn.light:hover{background:transparent;color:#fff}
.btn.dark{background:#000;color:#fff}.btn.dark:hover{background:#fff;color:#000}
.btn.paper{color:#000}.btn.paper:hover{background:#000;color:#fff}
.btn-icon{width:15px;height:15px;flex:0 0 15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}
.btn:hover .btn-icon{transform:translateX(2px)}
.btn[href^="http"]:hover .btn-icon,.btn[href^="tel:"]:hover .btn-icon{transform:translate(1px,-1px)}



.section{padding:clamp(58px,7vw,104px) var(--pad)}
.paper{background:var(--paper);color:#000}
.white{background:#fff;color:#000}
.black{background:#000;color:#fff}
.section-head{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(32px,7vw,100px);margin-bottom:40px}
.section-head h2{margin:12px 0 0;font:400 clamp(42px,6vw,88px)/.92 Impact,"Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:-.02em}
.section-copy{font:400 16px/1.65 "Courier New",monospace;max-width:720px}

.service{display:grid;grid-template-columns:74px .95fr 1.25fr;gap:30px;align-items:start;padding:30px 0;border-top:1px solid var(--inkline)}
.service:last-child{border-bottom:1px solid var(--inkline)}
.service-no{font:700 11px/1 "Courier New",monospace;letter-spacing:.12em}
.service h3{font:400 clamp(28px,3vw,46px)/1 Impact,"Arial Narrow",sans-serif;text-transform:uppercase;margin:0}
.service p{font:400 15px/1.65 "Courier New",monospace;margin:0;max-width:680px}

.fact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 42px}
.fact{border-top:1px solid currentColor;padding:18px 0;display:grid;grid-template-columns:130px 1fr;gap:22px;font:700 12px/1.45 "Courier New",monospace;text-transform:uppercase;letter-spacing:.07em}
.fact a{text-decoration:underline;text-underline-offset:4px}

.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px}
.review{border-top:1px solid var(--inkline);padding-top:20px}
.review h3{margin:0 0 8px;font:400 26px/1 Impact,"Arial Narrow",sans-serif;text-transform:uppercase}
.review-stars{margin-bottom:12px;font:900 14px/1 Arial,sans-serif;letter-spacing:.16em}
.review-age{margin-bottom:14px;font:700 10px/1.4 "Courier New",monospace;letter-spacing:.12em;text-transform:uppercase;color:#555}
.review p{margin:0 0 12px;font:400 15px/1.65 "Courier New",monospace}
.review-meta{font:700 10px/1.4 "Courier New",monospace;letter-spacing:.12em;text-transform:uppercase;color:#555}

.cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:center;max-width:100%;min-width:0}
.cta h2{margin:0;min-width:0;max-width:100%;font:400 clamp(44px,6vw,90px)/.9 Impact,"Arial Narrow",sans-serif;text-transform:uppercase;overflow-wrap:break-word}

.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(44px,8vw,120px)}
.contact-list{display:grid;gap:28px}
.contact-item small{display:block;margin-bottom:8px;font:700 10px/1 "Courier New",monospace;letter-spacing:.14em;text-transform:uppercase;color:#aaa}
.contact-item a,.contact-item p{margin:0;font:400 clamp(20px,2.6vw,36px)/1.2 Impact,"Arial Narrow",sans-serif;text-transform:uppercase}
form{display:grid;grid-template-columns:1fr 1fr;gap:20px}
label{display:grid;gap:8px}label.full{grid-column:1/-1}
label span{font:700 10px/1 "Courier New",monospace;letter-spacing:.14em;text-transform:uppercase;color:#bbb}
input,select,textarea{width:100%;padding:14px 0;border:0;border-bottom:1px solid #fff;background:transparent;color:#fff;outline:none;border-radius:0}
select option{background:#000;color:#fff}
.submit{grid-column:1/-1;min-height:58px;border:1px solid #fff;background:#fff;color:#000;font-weight:900;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.form-note{grid-column:1/-1;font:400 11px/1.5 "Courier New",monospace;color:#999;margin:0}

.map{height:460px;background:#000;border:1px solid var(--inkline)}
#dj-map{width:100%;height:100%}
.mapboxgl-ctrl-group{border-radius:0!important;box-shadow:none!important;border:1px solid rgba(255,255,255,.25)!important;background:#000!important}
.mapboxgl-ctrl-group button{background:#000!important}.mapboxgl-ctrl-group button span{filter:invert(1)}
.dj-pin-wrap{width:86px;height:96px;display:flex;align-items:flex-start;justify-content:center;cursor:pointer;filter:drop-shadow(0 10px 10px rgba(0,0,0,.45))}
.dj-pin{width:72px;height:72px;background:#000;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center}
.dj-pin-logo{width:52px;height:auto;max-height:36px;object-fit:contain;transform:rotate(45deg)}

footer{background:#000;border-top:1px solid var(--line);padding:30px var(--pad) 38px}
.footer-inner{width:min(var(--max),100%);margin:auto;display:grid;grid-template-columns:auto 1fr auto;gap:36px;align-items:center}
.footer-logo{width:150px}.footer-center{text-align:center;font:700 11px/1.55 "Courier New",monospace;letter-spacing:.1em;text-transform:uppercase}
.footer-meta{text-align:right;font:700 11px/1.7 "Courier New",monospace}
.mobile-dock{display:none}

@media(max-width:900px){
  header{height:76px;grid-template-columns:auto 1fr;padding-left:20px;padding-right:20px}.logo{width:142px;height:58px}.logo img{width:138px}.desktop,.header-call{display:none}.menu{display:none}.mobile-menu{display:block;justify-self:end}
  .page-hero .wrap,.section-head,.contact-grid{grid-template-columns:1fr}
  .service{grid-template-columns:50px 1fr}.service p{grid-column:2}
  .fact-grid,.review-grid{grid-template-columns:1fr}
  .cta{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr;text-align:center}.footer-logo{margin:auto}.footer-meta{text-align:center}
}
@media(max-width:640px){
  html,body{width:100%!important;max-width:100vw!important;overflow-x:clip!important}
  main,section,.wrap,.cta,.actions,.btn{max-width:100%!important;min-width:0!important}
  .cta{grid-template-columns:minmax(0,1fr)!important}
  .cta h2{font-size:clamp(42px,13vw,58px);line-height:.92;white-space:normal}

  body{padding-bottom:62px}
  .page-hero,.section{padding-left:20px;padding-right:20px}
  .page-hero h1{font-size:clamp(54px,18vw,80px)}
  .actions{display:grid;min-width:0}.btn{width:100%;min-width:0;gap:16px;padding-left:20px;padding-right:20px;overflow:hidden}
  .service{grid-template-columns:36px 1fr;gap:16px}.service h3{font-size:28px}
  .fact{grid-template-columns:90px 1fr;gap:14px}
  form{grid-template-columns:1fr}label.full,.submit,.form-note{grid-column:auto}
  .map{height:360px}
  .mobile-dock{position:fixed;z-index:60;bottom:0;left:0;right:0;height:62px;background:#fff;color:#000;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #000}
  .mobile-dock a{display:flex;align-items:center;justify-content:center;border-right:1px solid #000;font:900 11px/1 Arial,sans-serif;letter-spacing:.08em}.mobile-dock a:last-child{border-right:0}
}
.reviews-full{padding-top:clamp(36px,4vw,56px)}

.page-hero .wrap > *{opacity:0;transform:translateY(18px);animation:page-hero-rise .62s cubic-bezier(.22,1,.36,1) forwards}
.page-hero .wrap > *:nth-child(1){animation-delay:.08s}
.page-hero .wrap > *:nth-child(2){animation-delay:.20s}
@keyframes page-hero-rise{to{opacity:1;transform:translateY(0)}}
.motion-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .page-hero .wrap > *{animation:none!important;opacity:1!important;transform:none!important}
  .motion-ready .reveal{opacity:1!important;transform:none!important;transition:none!important}
}

.review.review-featured{grid-column:1/-1;background:#000;color:#fff;border:1px solid #000;padding:clamp(24px,3vw,38px)}
.review.review-featured .review-age{color:#aaa}
.review.review-featured p{max-width:980px;font-size:clamp(16px,1.3vw,20px)}
@media(max-width:900px){.review.review-featured{grid-column:auto}}
