:root { --ink:#17191d; --paper:#f7f5f0; --blue:#b7d9ed; --cobalt:#1748b5; --silver:#d6d9da; --line:rgba(23,25,29,.2); --font-display:'Barlow Condensed'; --font-body:'Manrope'; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body),sans-serif; }
a { color:inherit; text-decoration:none; }
.nav { height:78px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 clamp(20px,5vw,76px); border-bottom:1px solid var(--line); background:var(--paper); position:relative; z-index:5; }
.wordmark { font-family:var(--font-display),sans-serif; font-size:1.05rem; font-weight:700; letter-spacing:.08em; }
.wordmark span { color:var(--cobalt); }
.navLinks { display:flex; gap:32px; font-size:.82rem; font-weight:600; }
.navLinks a,.textLink { border-bottom:1px solid transparent; }
.navLinks a:hover,.textLink:hover { border-color:currentColor; }
.navCall { justify-self:end; font-size:.82rem; font-weight:700; border:1px solid var(--ink); border-radius:999px; padding:11px 18px; }
.hero { min-height:calc(100svh - 78px); padding:clamp(54px,8vw,105px) clamp(20px,5vw,76px) 34px; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr); grid-template-rows:1fr auto; gap:50px; overflow:hidden; }
.heroCopy { align-self:center; position:relative; z-index:2; }
.eyebrow { margin:0 0 20px; text-transform:uppercase; letter-spacing:.15em; font-size:.7rem; font-weight:700; }
h1,h2 { margin:0; font-family:var(--font-display),sans-serif; text-transform:uppercase; letter-spacing:-.035em; line-height:.84; }
h1 { font-size:clamp(5.2rem,11vw,10.5rem); font-weight:600; }
h1 em { color:var(--cobalt); font-style:normal; }
.intro { max-width:580px; margin:36px 0 0; font-size:clamp(1rem,1.4vw,1.22rem); line-height:1.65; }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.primary,.secondary { padding:15px 23px; border-radius:999px; font-size:.85rem; font-weight:700; transition:transform .2s,background .2s; }
.primary { color:white; background:var(--ink); }
.secondary { border:1px solid var(--ink); }
.primary:hover,.secondary:hover { transform:translateY(-2px); }
.secondary:hover { background:white; }
.mirror { align-self:stretch; min-height:480px; display:grid; place-items:center; position:relative; }
.mirrorInner { width:min(36vw,470px); height:min(66vw,670px); max-height:72vh; min-width:340px; border:12px solid var(--ink); border-radius:50% 50% 47% 47%; background:var(--blue); box-shadow:20px 24px 0 var(--silver); position:relative; overflow:hidden; }
.mirrorInner::before { content:''; position:absolute; inset:9%; border:1px solid rgba(23,25,29,.38); border-radius:inherit; }
.blade { position:absolute; width:180%; height:62px; background:var(--cobalt); transform:rotate(-36deg); left:-35%; }
.bladeOne { top:30%; }
.bladeTwo { top:45%; background:var(--paper); border:1px solid var(--ink); }
.rating { position:absolute; left:50%; bottom:17%; transform:translateX(-50%); width:74%; padding:20px; background:var(--paper); border:1px solid var(--ink); text-align:center; }
.rating strong { display:block; font-family:var(--font-display); font-size:3.6rem; line-height:1; }
.rating span:last-child { display:block; margin-top:5px; font-size:.7rem; }
.stars { color:var(--cobalt); letter-spacing:.08em; font-size:.75rem; }
.mirrorInner>p { position:absolute; right:8%; top:8%; margin:0; font-family:var(--font-display); font-weight:700; text-align:right; line-height:.95; }
.heroFoot { grid-column:1/-1; display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding-top:24px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.services { padding:clamp(80px,11vw,160px) clamp(20px,5vw,76px); background:var(--ink); color:var(--paper); display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(50px,9vw,140px); }
.sectionHead { align-self:start; position:sticky; top:40px; }
h2 { font-size:clamp(3.6rem,7vw,7.4rem); }
.sectionHead>p:last-child { max-width:430px; margin:34px 0 0; color:#b8b8b4; line-height:1.7; }
.service { display:grid; grid-template-columns:45px 1fr; gap:0 18px; padding:30px 0; border-top:1px solid rgba(247,245,240,.25); }
.service:last-child { border-bottom:1px solid rgba(247,245,240,.25); }
.service>span { grid-row:1/3; color:var(--blue); font-size:.7rem; font-weight:700; }
.service h3 { margin:0; font-family:var(--font-display); font-size:clamp(2rem,4vw,4.2rem); text-transform:uppercase; line-height:.95; font-weight:500; }
.service p { margin:12px 0 0; color:#aaa9a5; font-size:.88rem; }
.trust { padding:clamp(75px,10vw,145px) clamp(20px,10vw,150px); background:var(--blue); position:relative; }
.quoteMark { position:absolute; top:38px; left:4%; font-family:Georgia,serif; font-size:10rem; line-height:1; color:rgba(23,25,29,.12); }
.trust>p { max-width:1100px; margin:0; font-family:var(--font-display); font-size:clamp(3rem,6.5vw,7.1rem); text-transform:uppercase; line-height:.91; letter-spacing:-.025em; }
.proof { margin-top:55px; display:flex; align-items:baseline; gap:18px; }
.proof strong { font-family:var(--font-display); font-size:2.5rem; }
.proof span { font-size:.8rem; }
.visit { padding:clamp(80px,11vw,160px) clamp(20px,8vw,120px); display:grid; grid-template-columns:1fr .75fr; gap:clamp(60px,12vw,180px); }
.visit h2 { font-size:clamp(4rem,7vw,7.5rem); }
address { margin:45px 0 18px; font-style:normal; font-size:1.15rem; line-height:1.7; }
.textLink { font-size:.82rem; font-weight:700; }
.hours { align-self:end; }
.hours>div { display:flex; justify-content:space-between; padding:17px 0; border-top:1px solid var(--line); font-size:.85rem; }
.hours>div:last-of-type { border-bottom:1px solid var(--line); }
.hours .closed { color:#7a7b7a; }
.hours .today { background:rgba(183,217,237,.45); margin-inline:-12px; padding-inline:12px; }
.hours small { display:block; margin-top:18px; color:#70716f; font-size:.7rem; }
.contactBand { padding:clamp(70px,10vw,130px) 20px; text-align:center; background:var(--cobalt); color:white; }
.contactBand h2 { font-size:clamp(3.5rem,8vw,8rem); }
.contactBand>a { display:inline-block; margin-top:40px; font-family:var(--font-display); font-size:clamp(2rem,5vw,5rem); border-bottom:2px solid currentColor; }
.contactOptions { margin-top:35px; display:flex; justify-content:center; gap:28px; font-size:.78rem; font-weight:700; }
footer { padding:30px clamp(20px,5vw,76px) 85px; display:grid; grid-template-columns:1fr auto; gap:10px 40px; border-top:1px solid var(--line); align-items:center; }
footer p { margin:0; font-size:.7rem; }
.legal { grid-column:1/-1; color:#777; }
.mobileCall { display:none; }
@media (max-width:820px) {
  .nav { grid-template-columns:1fr auto; height:68px; }
  .navLinks { display:none; }
  .navCall { font-size:.7rem; padding:9px 13px; }
  .hero { min-height:auto; grid-template-columns:1fr; padding-top:55px; }
  h1 { font-size:clamp(4.7rem,22vw,7rem); }
  .mirror { min-height:450px; }
  .mirrorInner { width:min(78vw,390px); height:min(108vw,540px); min-width:280px; }
  .heroFoot { flex-wrap:wrap; }
  .services,.visit { grid-template-columns:1fr; }
  .sectionHead { position:static; }
  .trust { padding-left:24px; padding-right:24px; }
  .proof { align-items:flex-start; flex-direction:column; gap:4px; }
  footer { grid-template-columns:1fr; padding-bottom:105px; }
  .legal { grid-column:auto; }
  .mobileCall { display:block; position:fixed; z-index:20; left:14px; right:14px; bottom:12px; padding:15px; border-radius:999px; color:white; background:var(--ink); text-align:center; font-size:.83rem; font-weight:700; box-shadow:0 10px 35px rgba(0,0,0,.2); }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; } }
:focus-visible { outline:3px solid #ff7a00; outline-offset:4px; }
