:root{
  --navy:#26266b; --navy-deep:#17174a; --red:#cf2027; --yellow:#ffe500;
  --wall:#e7ebf1; --ink:#1b1c45; --muted:#515375; --white:#fff; --line:#cfd5e0;
  --wrap:1180px; --slant:-6deg;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--ink);font:400 1.0625rem/1.65 Inter,system-ui,sans-serif;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:Archivo,Inter,sans-serif;line-height:1.08;margin:0;letter-spacing:-.01em;font-weight:800}
h2{font-size:clamp(2rem,4.2vw,3.25rem);max-width:18ch}
h3{font-size:1.3rem;line-height:1.2;font-weight:700}
p{margin:0 0 1em;max-width:62ch}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.wrap{width:min(100% - 40px,var(--wrap));margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--yellow);color:var(--navy);padding:8px 14px;z-index:60}
.skip:focus{left:8px}

/* Header */
.top{position:sticky;top:0;z-index:50;background:var(--white);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:28px;min-height:84px}
.brand{display:block;flex:none}
.brand img{width:112px}
.nav{margin-left:auto;display:flex;align-items:center;gap:26px}
.nav a{text-decoration:none;font-weight:600;font-size:.98rem;padding:6px 0;border-bottom:3px solid transparent}
.nav a:hover{border-color:var(--yellow)}
.nav a[aria-current=page]{border-color:var(--red)}
.top-call{flex:none}
.menu{display:none;margin-left:auto;background:none;border:2px solid var(--navy);color:var(--navy);font:600 .95rem Inter,sans-serif;padding:8px 14px;border-radius:4px;cursor:pointer}

/* Buttons */
.btn{display:inline-block;text-decoration:none;font:700 1.02rem Inter,sans-serif;padding:14px 22px;border-radius:4px;border:2px solid transparent;cursor:pointer}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:#ad161d}
.btn-yellow{background:var(--yellow);color:var(--navy)}
.btn-yellow:hover{background:#fff}
.btn-ghost{border-color:#fff;color:#fff}
.btn-ghost:hover{background:#fff;color:var(--navy)}
.btn-line{border-color:var(--navy);color:var(--navy)}
.btn-line:hover{background:var(--navy);color:#fff}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}

/* Hero: the logo's tilted banner, at full size */
.hero{position:relative;overflow:hidden;background:var(--navy-deep);color:#fff;min-height:min(88vh,780px);display:flex;flex-direction:column;justify-content:flex-end}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,23,74,.1) 25%,rgba(23,23,74,.92) 88%)}
.banner{position:absolute;z-index:2;left:-15%;width:130%;top:26%;background:var(--navy);transform:rotate(var(--slant));padding:clamp(22px,3.2vw,44px) 0;box-shadow:0 7px 0 var(--red);animation:sweep .7s cubic-bezier(.2,.8,.2,1) both}
.banner h1{color:var(--yellow);font-size:clamp(2.35rem,5.3vw,5.6rem);font-weight:900;font-style:italic;text-align:center;text-wrap:balance;width:min(100vw,1300px);margin-inline:auto;padding-inline:22px}
@keyframes sweep{from{transform:rotate(var(--slant)) translateX(-100%)}to{transform:rotate(var(--slant)) translateX(0)}}
.hero-foot{position:relative;z-index:3;padding-block:0 44px;display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.hero-foot p{font-size:clamp(1.15rem,1.9vw,1.4rem);line-height:1.4;margin:0;max-width:30em;font-weight:500}
.hero-foot .actions{margin-top:18px}
.score{flex:none;text-decoration:none;display:block;text-align:right}
.score b{display:block;font:900 3.2rem/1 Archivo,sans-serif;color:var(--yellow)}
.score span{font-size:.95rem}

/* Sections */
.sec{padding-block:clamp(56px,8vw,104px)}
.wall{background:var(--wall)}
.navy{background:var(--navy);color:#fff}
.navy h2,.navy h3{color:#fff}
.lead{font-size:1.2rem;line-height:1.55}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,72px);align-items:center}
.split.top-align{align-items:start}
.photo{border-radius:4px;width:100%;object-fit:cover}

.promises{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,56px);margin-top:40px}
.promises li{border-top:6px solid var(--red);padding-top:16px}
.promises h3{font-size:1.5rem;margin-bottom:8px}
.promises p{margin:0;color:var(--muted)}

.big-quote{margin:0}
.big-quote p{font:700 clamp(1.5rem,3.1vw,2.35rem)/1.22 Archivo,sans-serif;max-width:26ch;color:#fff}
.big-quote footer{color:var(--yellow);font-weight:600}
.rating-side b{display:block;font:900 clamp(5rem,12vw,9rem)/.9 Archivo,sans-serif;color:var(--yellow)}
.rating-side p{margin:12px 0 0}

.svc-links{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;margin:26px 0}
.svc-links li{border-bottom:1px solid var(--line);padding:11px 0;font-weight:600}

.steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:40px}
.steps li{counter-increment:s}
.steps li::before{content:counter(s);display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--red);color:#fff;font:800 1.2rem Archivo,sans-serif;margin-bottom:14px}
.steps p{margin:6px 0 0;color:var(--muted);font-size:1rem}

.notice{background:var(--yellow);color:var(--navy)}
.notice .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);padding-block:44px}
.notice h3{font-size:1.5rem;margin-bottom:6px}
.notice p{margin:0}

/* Inner page header */
.page-head{background:var(--navy);color:#fff;padding-block:60px 96px;clip-path:polygon(0 0,100% 0,100% 72%,0 100%)}
.page-head h1{font-size:clamp(2.4rem,6vw,4.4rem);font-style:italic;font-weight:900;color:var(--yellow);max-width:17ch}
.page-head p{margin:16px 0 0;font-size:1.2rem;max-width:44ch}

/* Services */
.svc{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(32px,6vw,72px)}
.svc article{border-top:1px solid var(--line);padding:26px 0}
.svc h2,.svc h3{margin-bottom:8px}
.svc p{margin:0;color:var(--muted)}
.makes{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:20px}
.makes li{background:#fff;border:1px solid var(--line);padding:6px 14px;border-radius:4px;font-weight:600;font-size:.98rem}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font:700 1.15rem Archivo,sans-serif;padding:18px 0}
.faq details p{color:var(--muted)}

/* Reviews */
.wall-of-love{columns:3;column-gap:32px}
.wall-of-love blockquote{break-inside:avoid;margin:0 0 32px;border-left:6px solid var(--yellow);padding-left:18px}
.wall-of-love p{margin:0 0 8px;font-size:1.1rem;line-height:1.5}
.wall-of-love footer{color:var(--muted);font-size:.95rem}
.wall-of-love blockquote:nth-child(3n+1){border-color:var(--red)}
.wall-of-love blockquote:nth-child(3n+2){border-color:var(--navy)}

/* Contact */
.hours{width:100%;border-collapse:collapse;margin-top:12px}
.hours th,.hours td{text-align:left;padding:10px 0;border-bottom:1px solid var(--line);font-weight:500}
.hours td{text-align:right}
.hours .closed td,.hours .closed th{color:var(--muted)}
.map{width:100%;height:340px;border:0;border-radius:4px;display:block;margin-top:24px}
form label{display:block;font-weight:600;margin-bottom:14px}
form input,form select,form textarea{display:block;width:100%;margin-top:6px;font:400 1rem Inter,sans-serif;padding:12px;border:1px solid #8a8fa8;border-radius:4px;background:#fff;color:var(--ink)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-note{font-size:.95rem;color:var(--muted);margin-top:10px}
[role=status]{font-weight:600;margin-top:12px}

/* Footer */
.closing{background:var(--navy);color:#fff;padding-block:56px}
.closing .wrap{display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.closing h2{color:var(--yellow);font-style:italic;font-weight:900}
.foot{background:var(--navy-deep);color:#dfe2f2;font-size:.97rem;padding-block:44px 28px}
.foot .wrap{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:32px}
.foot img{width:128px;margin-bottom:12px}
.foot h3{color:#fff;font-size:1.05rem;margin-bottom:8px}
.foot a{text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot p{margin:0 0 .4em}
.fine{grid-column:1/-1;border-top:1px solid #3a3a7a;padding-top:16px;font-size:.88rem}

.callbar{display:none}

@media (max-width:980px){
  .menu{display:block}
  .top-call{display:none}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:6px 20px 14px;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .nav a{padding:12px 0;border-bottom:1px solid var(--line)}
  .nav a[aria-current=page]{color:var(--red);border-color:var(--line)}
  .steps{grid-template-columns:1fr 1fr}
  .wall-of-love{columns:2}
}
@media (max-width:760px){
  :root{--slant:-5deg}
  body{font-size:1rem;padding-bottom:64px}
  .top .wrap{min-height:70px}
  .brand img{width:88px}
  .hero{min-height:620px}
  .banner{top:14%}
  .hero-foot{padding-bottom:28px}
  .score{text-align:left}
  .score b{display:inline;font-size:1.7rem;margin-right:6px}
  .split,.promises,.notice .wrap,.svc,.form-row{grid-template-columns:1fr}
  .split .photo{order:-1}
  .foot .wrap{grid-template-columns:1fr}
  .wall-of-love{columns:1}
  .page-head{padding-block:40px 104px}
  .callbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;inset:auto 0 0 0;z-index:55}
  .callbar a{text-align:center;text-decoration:none;font-weight:700;padding:18px 8px;background:var(--red);color:#fff}
  .callbar a+a{background:var(--navy)}
}
@media (max-width:440px){
  .steps{grid-template-columns:1fr}
  .svc-links{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .banner{animation:none}
}
