[hidden]{display:none!important}
:root{--navy:#0f1a38;--blue:#1c4fa3;--red:#c8102e;--gold:#f4b324;--paper:#f4f6fa;--ink:#161b2e;--mute:#555d73;--line:#d9deea}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font:400 1.0625rem/1.6 "Public Sans",system-ui,Arial,sans-serif;color:var(--ink);background:#fff}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.wrap{width:min(1120px,92%);margin:0 auto}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:.5rem 1rem;z-index:99}
.skip:focus{left:0}
h1,h2,h3{font-family:"Barlow Condensed","Arial Narrow",sans-serif;line-height:1.05;margin:0 0 .6rem;letter-spacing:.01em}
h1{font-size:clamp(2.8rem,7vw,5rem);font-weight:700}
h2{font-size:clamp(2rem,4.5vw,3rem);font-weight:700}
h3{font-size:1.6rem;font-weight:600}
.intro{max-width:62ch;color:var(--mute);margin:0 0 2rem}
.fine{font-size:.85rem;color:var(--mute);max-width:60ch}

/* header */
.top{position:sticky;top:0;z-index:40;background:var(--navy);color:#fff}
.top__in{display:flex;align-items:center;gap:1.5rem;padding:.6rem 0}
.brand{display:flex;align-items:center;gap:.7rem;color:#fff;text-decoration:none;margin-right:auto}
.brand img{border-radius:8px}
.brand b{display:block;font-family:"Barlow Condensed",sans-serif;font-size:1.4rem;line-height:1}
.brand small{color:#b9c3dd;font-size:.8rem}
.nav{display:flex;gap:1.4rem}
.nav a{color:#dbe3f5;text-decoration:none;font-weight:600;font-size:.95rem}
.nav a:hover{color:#fff;text-decoration:underline}
.btn{display:inline-block;padding:.75rem 1.3rem;border-radius:6px;font-weight:700;text-decoration:none;color:#fff}
.btn--red{background:var(--red)}
.btn--blue{background:var(--blue)}
.btn--gold{background:var(--gold);color:var(--navy)}
.btn:hover{filter:brightness(1.1)}

/* hero */
.hero{background:var(--navy);color:#fff;padding:3rem 0 4rem}
.hero__in{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center}
.lead{font-size:1.2rem;max-width:46ch;color:#dbe3f5}
.phone{display:block;background:var(--red);color:#fff;text-decoration:none;padding:.5rem 1.2rem 0;margin:1.8rem 0 1rem;font:700 clamp(2.6rem,7vw,4.4rem)/1.1 "Barlow Condensed",sans-serif;letter-spacing:.04em;max-width:30rem;border-bottom:6px solid #fff}
.phone span{display:block;font:600 1rem "Public Sans",sans-serif;letter-spacing:0;opacity:.9}
.phone:hover{filter:brightness(1.1)}
.status{margin:0 0 .4rem;font-weight:600}
.status.is-open::before,.status.is-closed::before{content:"";display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.5rem}
.status.is-open::before{background:#3ddc84}
.status.is-closed::before{background:#ff6b6b}
.links{display:flex;gap:1.2rem;margin:0}
.links a{color:#fff}
.hero__img{border-radius:10px;border:4px solid #fff;max-height:560px;width:100%;object-fit:cover}

/* sections */
.section{padding:4.5rem 0}
.section--alt{background:var(--paper)}
.section--navy{background:var(--blue);color:#fff}
.section--navy .intro,.section--navy .fine{color:#dbe6ff}
.prices{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem}
.prices article{border-top:6px solid var(--red);padding-top:1rem}
dl{margin:0}
dl div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line)}
dt{color:var(--ink)}
dd{margin:0;font-weight:700;white-space:nowrap}
.also{margin:2.5rem 0 0;max-width:75ch}

/* financing */
.fin{display:grid;grid-template-columns:1fr 320px;gap:3rem;align-items:center}
.fin img{border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,.3)}
.ticks{list-style:none;padding:0;margin:0 0 1.5rem}
.ticks li{padding:.3rem 0 .3rem 1.6rem;position:relative;font-weight:600}
.ticks li::before{content:"✓";position:absolute;left:0;color:var(--gold)}
.reviews{text-align:center}
.reviews .intro{margin-inline:auto}
.quote{max-width:46rem;margin:0 auto 2rem;padding:1.6rem 1.8rem;background:var(--paper);border-left:6px solid var(--gold);border-radius:6px;text-align:left}
.quote .stars{color:#d99a00;font-size:1.4rem;letter-spacing:.1em}
.quote blockquote{margin:.4rem 0 .8rem;font-size:1.25rem;line-height:1.5}
.quote figcaption{color:var(--mute);font-weight:600}
.review-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem}

/* gallery */
.gallery{columns:3 260px;column-gap:1rem}
.gallery button{display:block;width:100%;padding:0;border:0;margin:0 0 1rem;background:none;cursor:zoom-in;break-inside:avoid}
.gallery img{width:100%;border-radius:8px}
.lightbox{position:fixed;inset:0;background:rgba(5,10,25,.92);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}
.lightbox img{max-height:92vh;max-width:96vw;width:auto;border-radius:6px}
.lightbox__x{position:absolute;top:.6rem;right:1rem;font-size:2.4rem;line-height:1;color:#fff;background:none;border:0;cursor:pointer}

/* contact */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:3rem}
address{font-style:normal;font-size:1.2rem;margin-bottom:1rem}
.big{font:700 2.2rem "Barlow Condensed",sans-serif;text-decoration:none}
.hours{border-collapse:collapse;margin:1.2rem 0 .4rem;width:100%;max-width:22rem}
.hours caption{text-align:left;font:600 1.5rem "Barlow Condensed",sans-serif}
.hours th,.hours td{text-align:left;padding:.4rem 0;border-bottom:1px solid var(--line);font-weight:400}
.hours th{font-weight:700}
.contact iframe{width:100%;min-height:380px;height:100%;border:0;border-radius:8px}
.foot{background:var(--navy);color:#b9c3dd;padding:1.5rem 0 5rem;font-size:.9rem}

/* mobile call bar */
.callbar{display:none}
@media (max-width:820px){
  .nav{display:none}
  .top .btn{display:none}
  .hero__in,.fin,.contact{grid-template-columns:1fr}
  .hero__img{max-height:360px;object-position:center 30%}
  .prices{grid-template-columns:1fr}
  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--navy);padding:.6rem .6rem calc(.6rem + env(safe-area-inset-bottom,0px));gap:.6rem}
  .callbar a{flex:1;text-align:center;padding:.8rem;border-radius:6px;font-weight:700;text-decoration:none;color:#fff;background:#2a3a66}
  .callbar a:first-child{background:var(--red)}
}
