@font-face{font-family:Inter;src:url('assets/fonts/inter-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url('assets/fonts/inter-bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url('assets/fonts/inter-extrabold.ttf') format('truetype');font-weight:800 900;font-style:normal;font-display:swap}
@font-face{font-family:ServiceCaption;src:url('assets/fonts/roboto-condensed-bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}

/* Desktop scale is based on the approved 793 × 1983 design. */
:root{font-size:calc(100vw / 793);--black:#0b0b0b;--paper:#edf0f4;--focus:#006a9b}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:16px;background:#080808}
body{margin:0;background:#080808;color:var(--black);font:400 18rem/1.4 Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure,blockquote{margin:0}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
a:focus-visible{outline:3px solid var(--focus);outline-offset:5px;border-radius:3px}
img{display:block;max-width:100%;height:auto}
address,cite{font-style:normal}
.site{width:100%;overflow:clip;background:#fff}
.svg-definitions{position:absolute;width:0;height:0;overflow:hidden}
.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}
.skip-link{position:fixed;top:8px;left:8px;z-index:100;padding:12px 18px;font-size:16px;background:white;color:black;transform:translateY(-180%);box-shadow:0 2px 10px #0002}
.skip-link:focus{transform:translateY(0)}

.hero{height:309rem;background:radial-gradient(ellipse at 50% 38%,#272727 0,#151515 45%,#080808 95%);color:#f6f6f6}
.hero-inner{display:grid;grid-template-columns:375rem 203rem;column-gap:5rem;width:583rem;margin:auto;position:relative}
.top-contact{padding-top:16rem;font-size:18rem;font-weight:700;line-height:24rem;letter-spacing:.05rem}
.top-contact span,.top-contact a{display:block;width:fit-content}
.top-contact a:hover,.contact-phone:hover{opacity:.72}
h1{font-size:56rem;font-weight:800;letter-spacing:-2.3rem;line-height:.93;margin-top:24rem}
.welcome{margin-top:23rem;font-size:19rem;line-height:1.5;white-space:nowrap}
.welcome-title{font-weight:800;font-size:25rem;line-height:1.2;margin-bottom:3rem;letter-spacing:-.45rem}
.hero-brand{padding-top:48rem;display:flex;flex-direction:column;align-items:center}
.brand-link{width:203rem;display:block}
.brand-link img{width:100%;height:193rem;object-fit:fill}
.home-link{display:flex;align-items:center;justify-content:center;font-size:9rem;letter-spacing:1rem;border:1rem solid #777;border-radius:3rem;min-height:33rem;width:144rem;margin-top:16rem;transition:background .2s,color .2s}
.home-link:hover{background:#f4f4f4;color:#111}
.justice-banner img{width:100%;aspect-ratio:793 / 364;object-fit:cover}

h2{font-size:30rem;line-height:1.2;letter-spacing:-.6rem;font-weight:800}
.about{height:226rem;background:radial-gradient(ellipse at center,#b7b7b7,#aaa);text-align:center;padding:25rem 30rem 0}
.about blockquote>p{font-size:32rem;line-height:1.23;font-weight:400;letter-spacing:-.7rem;margin-top:12rem}
.about cite{display:block;width:197rem;height:72rem;margin:4rem auto 0}
.about cite img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;filter:brightness(1.48) contrast(1.1);mask-image:radial-gradient(ellipse at center,#000 55%,transparent 76%)}

.services{padding:21rem 32rem 17rem;background:linear-gradient(100deg,#f1f3f6,#edf0f4);text-align:center;min-height:555rem}
.services h2{margin-bottom:15rem}
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14rem 22rem}
.service{min-width:0}
.service img{width:100%;height:116rem;object-fit:cover}
.service h3{font-family:ServiceCaption,Arial,sans-serif;font-weight:700;font-size:19rem;line-height:23rem;letter-spacing:-.3rem;margin-top:7rem;min-height:23rem;white-space:nowrap}

.contact{min-height:388rem;background:#fff;position:relative;text-align:center;padding:17rem 25rem 14rem}
.contact-content{position:relative;z-index:1}
.contact h2{margin-bottom:9rem;font-size:28rem}
.map-art{position:absolute;top:33rem;left:40rem;right:33rem;height:230rem;display:flex;justify-content:space-between;pointer-events:none;overflow:hidden;opacity:.9}
.map-art img{width:270rem;height:216rem;object-fit:fill;mix-blend-mode:multiply;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 92%,transparent)}
.tiktok-code{display:flex;flex-direction:column;align-items:center;width:148rem;margin-inline:auto;background:white}
.tiktok-code>img{width:142rem;height:144rem;object-fit:contain}
.tiktok-wordmark{display:flex;align-items:center;justify-content:center;gap:2rem;font-size:13rem;line-height:1.1;font-weight:800;padding-top:3rem}
.tiktok-wordmark svg{width:16rem;height:16rem;filter:drop-shadow(-1px -1px 0 #69c9d0) drop-shadow(1px 1px 0 #ee1d52)}
.social-handle{display:block;width:fit-content;margin:5rem auto 0;font-size:16rem;line-height:1.35;text-underline-offset:4px}
.social-handle:hover,.contact-email:hover{text-decoration:underline}
.contact-details{margin-top:12rem;display:flex;flex-direction:column;align-items:center;font-size:20rem;font-weight:700;line-height:1.4}
.contact-name{letter-spacing:-.55rem}
.contact-phone{display:flex;align-items:center;justify-content:center;gap:9rem;font-size:24rem;font-weight:800;letter-spacing:-.6rem;min-height:33rem}
.contact-phone svg{width:27rem;height:27rem;flex:none}
.contact-email{font-size:20rem;letter-spacing:-.55rem;max-width:100%;overflow-wrap:anywhere}
.locations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14rem;width:620rem;max-width:100%;margin:14rem auto 6rem;text-align:left}
.location{display:flex;gap:9rem;align-items:flex-start;padding:11rem 13rem;border:1rem solid #d4d7dc;border-radius:6rem;background:#fff;transition:border-color .2s,box-shadow .2s}
.location:hover{border-color:#0b0b0b;box-shadow:0 3rem 12rem #0001}
.location svg{width:18rem;height:18rem;flex:none;margin-top:2rem}
.location-text{display:flex;flex-direction:column;gap:3rem;min-width:0}
.location-label{font-size:13rem;font-weight:800;line-height:1.3;letter-spacing:-.2rem}
.location-address{font-size:12rem;line-height:1.4;color:#3a3a3a}
.location-map{font-size:10.5rem;font-weight:700;letter-spacing:.4rem;text-transform:uppercase;text-decoration:underline;text-underline-offset:3rem}
.soon{display:block;width:fit-content;margin:4rem 0 1rem;padding:1rem 6rem;border-radius:20rem;background:#0b0b0b;color:#fff;font-size:9rem;font-weight:700;letter-spacing:.6rem;text-transform:uppercase}
.hands-banner img{width:100%;aspect-ratio:793 / 173;object-fit:cover}
.mobile-call{display:none}

/* Mobile is a real reflow: readable native text, two-column services, and a thumb-friendly call action. */
@media(max-width:650px){
  :root{font-size:1px}
  body{font-size:16rem}
  .hero{height:auto;padding:24rem 23rem 28rem}
  .hero-inner{width:100%;grid-template-columns:minmax(0,1fr) 112rem;gap:16rem;align-items:start}
  .top-contact{padding:0;font-size:12rem;line-height:1.55;letter-spacing:0;max-width:220rem}
  .top-contact span{max-width:185rem}
  .top-contact a{font-size:16rem;min-height:33rem;display:flex;align-items:center}
  h1{font-size:clamp(30rem,7.8vw,48rem);letter-spacing:-1.4rem;line-height:1.02;margin-top:17rem}
  .hero-brand{padding-top:7rem}
  .brand-link{width:112rem}
  .brand-link img{height:auto;aspect-ratio:201/190}
  .home-link{font-size:7.6rem;letter-spacing:.8rem;width:112rem;min-height:44rem;margin-top:12rem}
  .welcome{margin-top:19rem;font-size:14rem;line-height:1.5;white-space:normal;max-width:245rem}
  .welcome-title{font-size:20rem;letter-spacing:-.3rem;margin-bottom:5rem}
  .justice-banner img{aspect-ratio:1.65;object-position:56% 50%}
  h2{font-size:26rem;letter-spacing:-.5rem}
  .about{height:auto;min-height:234rem;padding:27rem 23rem 20rem}
  .about blockquote>p{font-size:24rem;line-height:1.32;letter-spacing:-.45rem;margin-top:16rem}
  .desktop-break{display:none}
  .about cite{width:165rem;height:60rem;margin-top:10rem}
  .services{padding:27rem 18rem 28rem;min-height:0}
  .services h2{margin-bottom:21rem}
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22rem 14rem}
  .service img{height:auto;aspect-ratio:1.7;object-fit:cover}
  .service h3{font-family:Inter,Arial,sans-serif;font-size:13rem;line-height:1.35;letter-spacing:-.2rem;white-space:normal;margin-top:9rem;min-height:36rem}
  .service:last-child{grid-column:1/-1;width:calc((100% - 14rem)/2);justify-self:center}
  .contact{height:auto;padding:30rem 20rem 29rem;min-height:415rem}
  .contact h2{font-size:27rem;margin-bottom:15rem}
  .map-art{top:50rem;left:0;right:0;height:235rem;opacity:.5}
  .map-art img{width:46%;height:190rem;object-fit:cover}
  .tiktok-code{width:166rem}
  .tiktok-code>img{width:160rem;height:163rem}
  .tiktok-wordmark{font-size:14rem;gap:3rem}
  .tiktok-wordmark svg{width:17rem;height:17rem}
  .social-handle{font-size:15rem;min-height:40rem;display:flex;align-items:center;justify-content:center;margin-top:0}
  .contact-details{margin-top:8rem;font-size:16rem;line-height:1.45;width:100%}
  .contact-name{letter-spacing:-.3rem;font-size:16rem}
  .contact-phone{font-size:24rem;min-height:47rem;gap:8rem}
  .contact-phone svg{width:25rem;height:25rem}
  .contact-email{font-size:14rem;letter-spacing:-.3rem;min-height:40rem;display:flex;align-items:center}
  .locations{grid-template-columns:1fr;gap:10rem;width:100%;margin:12rem 0 4rem}
  .location{padding:13rem 14rem;gap:10rem;border-radius:8rem}
  .location svg{width:20rem;height:20rem}
  .location-label{font-size:14rem}
  .location-address{font-size:13rem}
  .location-map{font-size:11rem;min-height:24rem;display:flex;align-items:center}
  .soon{font-size:9.5rem}
  .hands-banner img{aspect-ratio:2.4;object-position:center}
  .mobile-call{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(19px,env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;background:#121212;color:#fff;border:2px solid #fff;box-shadow:0 4px 20px #0004;transition:transform .2s,background .2s}
  .mobile-call svg{width:27px;height:27px}
  .mobile-call:hover{background:#333;transform:translateY(-2px)}
  .mobile-call:active{transform:scale(.94)}
  .mobile-call:focus-visible{outline:3px solid #00a8ef;outline-offset:3px}
}
@media(max-width:359px){
  .hero{padding:20rem 17rem 25rem}
  .hero-inner{grid-template-columns:minmax(0,1fr) 92rem;gap:12rem}
  .brand-link,.home-link{width:92rem}
  .home-link{font-size:7rem;letter-spacing:.3rem}
  h1{font-size:30rem;letter-spacing:-1.2rem}
  .top-contact{font-size:10.7rem}.top-contact a{font-size:14rem}
  .welcome-title{font-size:18rem}.welcome{font-size:12.5rem}
  .contact-name{font-size:14rem}.contact-email{font-size:12.5rem}
  .service h3{font-size:12rem}.about blockquote>p{font-size:22rem}
  .mobile-call{width:54px;height:54px;right:14px;bottom:16px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}a{transition:none!important}}
