:root{
  --red:#d7191f; --red-dk:#b01016; --ink:#15171a; --ink-2:#3b4048; --mute:#6b717b;
  --paper:#fbf8f4; --card:#ffffff; --line:#e7e1d9; --dark:#16181c;
  --radius:14px; --gut:clamp(16px,4vw,40px);
  --head:"Barlow Condensed",Impact,"Arial Narrow",sans-serif;
  --body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1160px;margin:0 auto;padding:0 var(--gut)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;z-index:99}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--red);outline-offset:2px}

h1,h2,h3{font-family:var(--head);line-height:1.02;margin:0;letter-spacing:.005em}
h1{font-size:clamp(46px,7.2vw,88px);font-weight:800;text-transform:uppercase}
h2{font-size:clamp(34px,4.6vw,54px);font-weight:800;text-transform:uppercase}
h3{font-size:26px;font-weight:700;text-transform:uppercase}
.eyebrow{font:600 13px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin:0 0 14px}

/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(251,248,244,.94);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:24px;height:72px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--red);color:#fff;font:800 20px/1 var(--head);letter-spacing:.02em}
.brand-name{font:800 23px/1 var(--head);text-transform:uppercase}
.brand-name em{font-style:normal;color:var(--red)}
.brand-name small{display:block;font:500 11px/1.5 var(--body);letter-spacing:.08em;color:var(--mute);text-transform:uppercase;margin-top:3px}
.nav{display:flex;gap:26px}
.nav a{text-decoration:none;font-weight:600;font-size:15px;color:var(--ink-2)}
.nav a:hover{color:var(--red)}
.call-pill{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;text-decoration:none;font-weight:600;padding:10px 16px;border-radius:999px;font-size:15px;white-space:nowrap}
.call-pill svg{width:16px;height:16px;fill:currentColor}
.call-pill:hover{background:var(--red)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;font:700 19px/1 var(--head);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;padding:16px 24px;border-radius:10px;border:2px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dk)}
.btn-line{border-color:var(--ink);color:var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-wide{width:100%}
.btn[disabled]{opacity:.6;cursor:progress}

/* hero */
.hero{padding:clamp(36px,6vw,72px) 0 clamp(48px,7vw,96px)}
.hero-in{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(28px,5vw,64px);align-items:center}
.lede{font-size:clamp(18px,1.6vw,20px);color:var(--ink-2);max-width:34em;margin:22px 0 28px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.proof{list-style:none;padding:0;margin:34px 0 0;display:flex;flex-wrap:wrap;gap:10px 28px;color:var(--mute);font-size:15px}
.proof strong{display:block;font:800 26px/1 var(--head);color:var(--ink);text-transform:uppercase}
.hero-photo{margin:0;position:relative}
.hero-photo img{width:100%;height:auto;aspect-ratio:11/10;object-fit:cover;border-radius:var(--radius);box-shadow:0 30px 60px -30px rgba(21,23,26,.45)}
.hero-photo::before{content:"";position:absolute;inset:auto -14px -14px auto;width:46%;height:46%;background:var(--red);border-radius:var(--radius);z-index:-1}
.hero-photo figcaption{font-size:13px;color:var(--mute);margin-top:10px}

/* sections */
section{scroll-margin-top:80px}
.sec-head{margin-bottom:clamp(28px,4vw,44px)}
.services,.reviews{padding:clamp(56px,8vw,104px) 0}
.services{background:var(--card);border-block:1px solid var(--line)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px 24px;display:flex;flex-direction:column;gap:10px}
.card p{margin:0;color:var(--ink-2);flex:1}
.card .num{font:800 15px/1 var(--head);color:var(--red);letter-spacing:.08em}
.card a{font-weight:600;color:var(--red);text-decoration:none;margin-top:6px}
.card a:hover{text-decoration:underline}
.card-dark{background:var(--dark);border-color:var(--dark);color:#fff}
.card-dark p{color:#c9ccd2}
.card-dark a{color:#fff}
.licence{display:block;margin-top:8px;font-size:14px;color:var(--mute)}
.licence mark{background:#fff3b0;padding:0 3px}

.how{padding:clamp(56px,8vw,96px) 0;background:var(--red);color:#fff}
.how .eyebrow{color:#ffd6d7}
.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.steps li{counter-increment:s;border-top:2px solid rgba(255,255,255,.5);padding-top:18px}
.steps li::before{content:"0" counter(s);display:block;font:800 44px/1 var(--head);opacity:.55;margin-bottom:8px}
.steps strong{display:block;font:700 24px/1.1 var(--head);text-transform:uppercase;margin-bottom:6px}
.steps span{color:#ffe7e8}

.areas{padding:clamp(56px,8vw,96px) 0}
.areas-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.areas p{color:var(--ink-2)}
.towns{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.towns li{border:1.5px solid var(--ink);border-radius:999px;padding:9px 16px;font:700 18px/1 var(--head);text-transform:uppercase;letter-spacing:.03em}
.towns li:first-child{background:var(--ink);color:#fff}
.towns li:last-child{border-style:dashed;color:var(--mute);border-color:var(--mute)}

.reviews{background:var(--card);border-block:1px solid var(--line)}
.quotes{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:18px}
.quote{margin:0;background:var(--paper);border-radius:var(--radius);padding:28px;border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;gap:18px}
.quote:first-child{background:var(--dark);color:#fff;border-color:var(--dark)}
.quote blockquote{margin:0;font-size:17px}
.quote:first-child blockquote{font-size:19px}
.quote figcaption{font-weight:600;font-size:15px}
.quote figcaption::before{content:"★★★★★ ";color:var(--red);letter-spacing:.05em}
.more{color:var(--mute);margin:20px 0 0;font-size:15px}
.partners{margin-top:44px;padding-top:26px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.partners span{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:600}
.partners ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 26px}
.partners li{font:700 21px/1 var(--head);text-transform:uppercase;color:var(--ink-2)}

/* quote form */
.quote-sec{padding:clamp(56px,8vw,104px) 0;background:var(--dark);color:#fff}
.quote-in{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,64px);align-items:start}
.quote-side p{color:#c9ccd2}
.quote-sec .eyebrow{color:#ff7a7e}
.big-call{display:block;text-decoration:none;font:800 clamp(38px,4.8vw,54px)/1 var(--head);color:#fff;margin:26px 0 18px}
.big-call small{display:block;font:600 13px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:#ff7a7e;margin-bottom:8px}
.big-call:hover{color:#ff7a7e}
.side-links{font-size:15px}
.side-links a{color:#fff}
.qform{background:var(--card);color:var(--ink);border-radius:var(--radius);padding:clamp(20px,3vw,32px);display:grid;gap:14px;position:relative}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.qform label{display:grid;gap:6px;font-weight:600;font-size:15px}
.qform label b{color:var(--red)}
.qform input,.qform select,.qform textarea{font:400 16px/1.4 var(--body);color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;width:100%}
.qform input:focus,.qform select:focus,.qform textarea:focus{border-color:var(--ink);outline:none;background:#fff}
.qform [aria-invalid=true]{border-color:var(--red);background:#fff5f5}
.field-err{color:var(--red);font-weight:500;font-size:14px}
.form-err{margin:0;color:var(--red);font-weight:600}
.fine{margin:0;font-size:13px;color:var(--mute);text-align:center}
.thanks{position:absolute;inset:0;background:var(--card);border-radius:var(--radius);display:flex;flex-direction:column;justify-content:center;padding:32px}
.thanks[hidden]{display:none}
.thanks h3{font-size:36px;margin-bottom:10px}
.thanks a{color:var(--red);font-weight:600}

/* footer */
.foot{background:#0e0f12;color:#a8adb5;padding:34px 0 96px;font-size:15px}
.foot a{color:#fff}
.foot p{margin:6px 0}
.foot strong{color:#fff}
.credit{font-size:13px;opacity:.75}

.mobile-call{display:none}

/* responsive */
@media (max-width:960px){
  .nav{display:none}
  .hero-in,.areas-in,.quote-in{grid-template-columns:1fr}
  .hero-photo{order:-1}
  .hero-photo::before{display:none}
  .cards{grid-template-columns:1fr 1fr}
  .quotes{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
}
@media (max-width:620px){
  body{font-size:16px}
  .top-in{height:62px}
  .brand-name{font-size:20px}
  .brand-name small{display:none}
  .call-pill span{display:none}
  .call-pill{padding:10px}
  .cards,.row2{grid-template-columns:1fr}
  .btn{width:100%}
  .hero-photo img{aspect-ratio:4/3}
  .mobile-call{display:block;position:fixed;left:12px;right:12px;bottom:12px;z-index:30;background:var(--red);color:#fff;text-align:center;text-decoration:none;font:800 20px/1 var(--head);text-transform:uppercase;letter-spacing:.04em;padding:16px;border-radius:12px;box-shadow:0 10px 30px -8px rgba(0,0,0,.45)}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* real logo */
.top-in{height:88px}
.logo{height:72px;width:auto}
html{scroll-padding-top:100px}
section{scroll-margin-top:96px}
@media (max-width:620px){.top-in{height:72px}.logo{height:58px}}

/* business */
.business{padding:clamp(56px,8vw,104px) 0;background:var(--card);border-bottom:1px solid var(--line)}
.business-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.business p{color:var(--ink-2);margin:18px 0 26px}
.biz-points{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.biz-points li{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--red);border-radius:10px;padding:18px}
.biz-points strong{display:block;font:700 20px/1.1 var(--head);text-transform:uppercase;margin-bottom:6px}
.biz-points span{color:var(--ink-2);font-size:15px}
.fine a{color:inherit}
.legal-line mark{background:#fff3b0;color:var(--ink);padding:0 3px}
/* privacy page */
.legal{max-width:760px;padding-top:clamp(36px,6vw,64px);padding-bottom:clamp(48px,7vw,88px)}
.legal h1{font-size:clamp(38px,6vw,60px);margin-bottom:8px}
.legal h2{font-size:28px;margin:34px 0 8px}
.legal p{color:var(--ink-2)}
.legal a{color:var(--red)}
.legal .back a{color:var(--ink)}
.updated{font-size:14px;color:var(--mute)}
@media (max-width:960px){.business-in{grid-template-columns:1fr}}
@media (max-width:620px){.biz-points{grid-template-columns:1fr}}

/* WhatsApp */
.btn svg{width:20px;height:20px;fill:currentColor;margin-right:8px}
.btn-wa{background:#157a3f;color:#fff}
.btn-wa:hover{background:#0f6331}
.wa-nudge{margin:14px 0 0;font-size:15px;color:var(--ink-2)}
.wa-nudge a{color:#157a3f;font-weight:600}
.wa-card{display:flex;gap:14px;align-items:flex-start;text-decoration:none;background:#157a3f;color:#fff;border-radius:12px;padding:16px 18px;margin:0 0 18px}
.wa-card:hover{background:#0f6331}
.wa-card svg{flex:none;width:28px;height:28px;fill:#fff;margin-top:2px}
.wa-card strong{display:block;font:800 22px/1.1 var(--head);text-transform:uppercase;margin-bottom:4px}
.wa-card span{font-size:15px;color:#e3f5ea}
.mobile-bar{display:none}
@media (max-width:620px){
  .mobile-call{display:none}
  .mobile-bar{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;position:fixed;left:12px;right:12px;bottom:12px;z-index:30}
  .mobile-bar a{display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:#fff;font:800 20px/1 var(--head);text-transform:uppercase;letter-spacing:.04em;padding:16px 10px;border-radius:12px;box-shadow:0 10px 30px -8px rgba(0,0,0,.45)}
  .mobile-bar svg{width:20px;height:20px;fill:currentColor}
  .mb-call{background:var(--red)}
  .mb-wa{background:#157a3f}
}
