/* =============================================================
   Fire Door Checks — Trust & Authority design system
   Self-contained stylesheet — no external fonts, CDNs, or @imports.
   ============================================================= */

/* ---- Tokens ---- */
:root {
  /* Brand */
  --navy-900:#0b1521;
  --navy-800:#0f1b2d;
  --navy-700:#16273d;
  --navy-600:#1e3454;
  --ink:#0f1b2d;
  --slate:#42566b;
  --muted:#67788c;

  --bg:#ffffff;
  --bg-soft:#f6f8fb;
  --bg-alt:#eef2f7;
  --line:#e3e9f0;
  --line-strong:#cdd8e4;

  --red:#d7382c;
  --red-dark:#b62b21;
  --red-soft:#fdeceb;
  --green:#1f9d55;
  --green-soft:#e7f6ee;
  --amber:#f0a92b;
  --white:#ffffff;

  /* Type */
  --font: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif;

  /* Spacing / shape */
  --container:1140px;
  --radius:14px;
  --radius-sm:9px;
  --radius-lg:22px;

  --shadow-sm:0 1px 2px rgba(15,27,45,.06), 0 1px 3px rgba(15,27,45,.08);
  --shadow-md:0 6px 20px rgba(15,27,45,.08), 0 2px 6px rgba(15,27,45,.06);
  --shadow-lg:0 24px 60px -18px rgba(15,27,45,.30);

  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---- Reset / base ---- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:var(--bg);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--red-dark);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.15;margin:0 0 .5em;color:var(--ink);letter-spacing:-.02em;font-weight:800}
h1{font-size:clamp(2.15rem,5vw,3.6rem)}
h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
h3{font-size:clamp(1.2rem,2vw,1.45rem);font-weight:700}
p{margin:0 0 1rem}
ul{margin:0 0 1rem;padding-left:1.15rem}
strong{font-weight:700}
:focus-visible{outline:3px solid var(--red);outline-offset:2px;border-radius:4px}
::selection{background:var(--red);color:#fff}

/* ---- Layout ---- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:22px}
.section{padding:clamp(56px,8vw,104px) 0}
.section--soft{background:var(--bg-soft)}
.section--navy{background:var(--navy-800);color:#dbe4ef}
.section--navy h1,.section--navy h2,.section--navy h3{color:#fff}
.section--navy .card h3{color:var(--ink)}
.narrow{max-width:760px}
.center{text-align:center}
.eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--red-dark);margin-bottom:1rem;
}
.section--navy .eyebrow{color:#ff8f84}
.eyebrow svg{flex:0 0 auto}
.lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--slate)}
.section--navy .lead{color:#cbd8e8}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:inherit;font-size:1rem;font-weight:700;line-height:1;cursor:pointer;
  padding:.95rem 1.5rem;border-radius:var(--radius-sm);border:2px solid transparent;
  transition:transform .15s var(--ease), box-shadow .2s var(--ease), background .2s, color .2s;
  text-decoration:none;white-space:nowrap;
}
.btn:hover{text-decoration:none;transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--primary{background:var(--red);color:#fff;box-shadow:0 8px 20px -6px rgba(215,56,44,.55)}
.btn--primary:hover{background:var(--red-dark)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn--ghost:hover{border-color:var(--ink);background:var(--bg-soft)}
.btn--light{background:#fff;color:var(--navy-800)}
.btn--light:hover{background:#eef2f7}
.btn--outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn--outline-light:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn--lg{padding:1.1rem 1.9rem;font-size:1.05rem}
.btn--block{width:100%}

/* ---- Header ---- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.82);
  backdrop-filter:saturate(160%) blur(12px);
  -webkit-backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid transparent;
  transition:border-color .25s, box-shadow .25s;
}
.site-header.is-stuck{border-color:var(--line);box-shadow:var(--shadow-sm)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:72px}
.brand{display:inline-flex;align-items:center;gap:.62rem;font-weight:800;color:var(--ink);font-size:1.14rem;letter-spacing:-.025em}
.brand:hover{text-decoration:none}
.brand__mark{width:40px;height:40px;flex:0 0 auto;border-radius:11px;box-shadow:0 4px 10px -2px rgba(15,27,45,.28)}
.brand__lockup{display:flex;flex-direction:column;line-height:1.08}
.brand__text em{font-style:normal;color:var(--red)}
.brand__tag{font-size:.58rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:3px;white-space:nowrap}
@media (max-width:560px){.brand__tag{display:none}}
.nav__links{display:flex;align-items:center;gap:1.9rem;list-style:none;margin:0;padding:0}
.nav__links a{color:var(--slate);font-weight:600;font-size:.98rem}
.nav__links a:hover{color:var(--ink);text-decoration:none}
.nav__cta{display:flex;align-items:center;gap:.75rem}
.nav__phone{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;color:var(--ink)}
.nav__phone:hover{color:var(--red-dark);text-decoration:none}
.nav__toggle{display:none;align-items:center;justify-content:center;min-width:44px;min-height:44px;background:none;border:0;padding:.5rem;cursor:pointer;color:var(--ink)}

/* Mobile nav */
@media (max-width:900px){
  .nav__links,.nav__phone{display:none}
  .nav__toggle{display:inline-flex}
  .nav__links.is-open{
    display:flex;flex-direction:column;align-items:flex-start;gap:0;
    position:absolute;left:0;right:0;top:72px;background:#fff;
    border-bottom:1px solid var(--line);box-shadow:var(--shadow-md);padding:.5rem 22px 1.2rem;
  }
  .nav__links.is-open li{width:100%}
  .nav__links.is-open a{display:block;width:100%;padding:.85rem 0;border-bottom:1px solid var(--line)}
}

/* ---- Hero ---- */
.hero{position:relative;overflow:hidden;background:var(--navy-800);color:#dbe4ef}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(900px 500px at 78% -10%, rgba(215,56,44,.28), transparent 60%),
    radial-gradient(700px 600px at 5% 110%, rgba(30,52,84,.9), transparent 55%);
  pointer-events:none;
}
.hero__grid{
  position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);
  align-items:center;padding:clamp(56px,8vw,96px) 0;
}
.hero h1{color:#fff}
.hero__lead{font-size:clamp(1.1rem,1.8vw,1.3rem);color:#ccdaea;max-width:34ch}
.hero__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin:1.8rem 0 1.5rem}
.hero__trust{display:flex;flex-wrap:wrap;gap:1.1rem 1.6rem;margin-top:1.7rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12)}
.hero__trust span{display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;font-weight:600;color:#cdd9e8}
.hero__trust svg{color:var(--green);flex:0 0 auto}
@media (max-width:840px){
  .hero__grid{grid-template-columns:1fr}
  .hero__art{order:-1;max-width:320px;margin-inline:auto}
}

/* ---- Trust bar ---- */
.trustbar{border-bottom:1px solid var(--line);background:#fff}
.trustbar__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 2.4rem;padding:1.15rem 0}
.trustbar__item{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;color:var(--slate);font-size:.95rem}
.trustbar__item svg{color:var(--red);flex:0 0 auto}

/* ---- Alert / legal driver ---- */
.statement{border-left:3px solid var(--red);padding:.15rem 0 .15rem 1.4rem;margin:.2rem 0}
.statement h3{margin:0 0 .4rem;font-size:1.15rem}
.statement p{margin:0;color:var(--slate)}

/* ---- Grids ---- */
.grid{display:grid;gap:1.4rem}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
.grid--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:900px){.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}

/* ---- Cards ---- */
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s;
  height:100%;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--line-strong)}
.card__icon{
  width:52px;height:52px;border-radius:12px;display:grid;place-items:center;
  background:var(--red-soft);color:var(--red);margin-bottom:1.1rem;
}
.card h3{margin-bottom:.4rem}
.card p{color:var(--slate);margin-bottom:0;font-size:.98rem}

/* Sector card variant */
.sector{position:relative;overflow:hidden}
.sector::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--red);transition:width .35s var(--ease)}
.sector:hover::before{width:100%}
.sector__icon{width:50px;height:50px;border-radius:12px;display:grid;place-items:center;background:var(--navy-800);color:#fff;margin-bottom:1rem}
.sector__tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--red-dark);background:var(--red-soft);padding:.25rem .6rem;border-radius:100px;margin-bottom:.7rem}
.sector h3{margin-bottom:.4rem}
.sector__desc{color:var(--slate);font-size:.9rem;margin:0 0 .9rem}
.sector ul{margin:0;padding:.9rem 0 0;border-top:1px solid var(--line);list-style:none}
.sector li{display:flex;gap:.5rem;align-items:flex-start;font-size:.92rem;color:var(--slate);padding:.28rem 0}
.sector li svg{color:var(--green);flex:0 0 auto;margin-top:.2rem}

/* Service cards (numbered, deliverables) */
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem}
@media (max-width:720px){.service-grid{grid-template-columns:1fr}}
.service{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.7rem;height:100%;transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s}
.service::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--red);transition:width .35s var(--ease)}
.service:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--line-strong)}
.service:hover::before{width:100%}
.service__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem}
.service__icon{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:var(--red-soft);color:var(--red)}
.service__num{font-size:1.35rem;font-weight:800;color:var(--line-strong);letter-spacing:.02em}
.service h3{margin-bottom:.45rem}
.service p{color:var(--slate);font-size:.98rem;margin-bottom:1.1rem}
.service__list{list-style:none;padding:.95rem 0 0;margin:0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.5rem .9rem}
.service__list li{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:var(--slate)}
.service__list svg{color:var(--green);flex:0 0 auto}

/* Sample report */
.sample-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,3.5rem);align-items:center}
@media (max-width:820px){.sample-grid{grid-template-columns:1fr}}
.report-preview{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--line);background:#fff;max-width:440px;margin-inline:auto;transition:transform .25s var(--ease)}
.report-preview:hover{transform:translateY(-4px)}
.report-preview__tag{position:absolute;top:14px;right:14px;z-index:2;background:var(--amber);color:#3a2a00;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:.32rem .7rem;border-radius:100px}
.report-preview svg,.report-preview img{display:block;width:100%;height:auto}
.sample-list{list-style:none;padding:0;margin:1.2rem 0 1.7rem}
.sample-list li{display:flex;gap:.65rem;align-items:flex-start;padding:.42rem 0;color:var(--slate)}
.sample-list li svg{color:var(--green);flex:0 0 auto;margin-top:.2rem}

/* ---- Steps ---- */
.steps{counter-reset:step;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media (max-width:820px){.steps{grid-template-columns:1fr}}
.step{position:relative;padding:1.6rem 1.5rem 1.5rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.step__num{
  counter-increment:step;width:46px;height:46px;border-radius:12px;background:var(--navy-800);color:#fff;
  display:grid;place-items:center;font-weight:800;font-size:1.25rem;margin-bottom:1rem;
}
.step__num::before{content:counter(step)}
.step__icon{position:absolute;top:1.7rem;right:1.6rem;color:var(--line-strong)}

/* ---- Stats ---- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;text-align:center}
@media (max-width:700px){.stats{grid-template-columns:1fr;gap:.8rem}}
.stat{padding:1.4rem 1rem}
.stat__num{font-size:clamp(2.2rem,5vw,3.2rem);font-weight:800;line-height:1;color:#fff;letter-spacing:-.03em}
.stat__label{margin-top:.6rem;color:#c4d1e3;font-size:.98rem}

/* ---- Pricing ---- */
.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:stretch}
@media (max-width:900px){.pricing{grid-template-columns:1fr;max-width:460px;margin-inline:auto}}
.price-card{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:1.9rem 1.7rem;position:relative;height:100%;
}
.price-card--featured{border:2px solid var(--red);box-shadow:var(--shadow-lg)}
.price-card__badge{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  background:var(--red);color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;padding:.35rem .9rem;border-radius:100px;
}
.price-card__icon{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--red-soft);color:var(--red);margin-bottom:1rem}
.price-card--featured .price-card__icon{background:var(--red);color:#fff}
.price-card h3{margin-bottom:.3rem}
.price-card__desc{color:var(--muted);font-size:.92rem;min-height:2.6em}
.price-card__price{display:flex;align-items:baseline;gap:.3rem;margin:1rem 0}
.price-card__from{font-size:.85rem;color:var(--muted);font-weight:600}
.price-card__amount{font-size:2.6rem;font-weight:800;letter-spacing:-.03em;color:var(--ink)}
.price-card__unit{color:var(--muted);font-weight:600}
.price-card ul{list-style:none;padding:0;margin:.5rem 0 1.6rem}
.price-card li{display:flex;gap:.55rem;align-items:flex-start;padding:.4rem 0;font-size:.95rem;color:var(--slate);border-top:1px solid var(--line)}
.price-card li:first-child{border-top:0}
.price-card li svg{color:var(--green);flex:0 0 auto;margin-top:.2rem}
.price-card .btn{margin-top:auto}

/* ---- FAQ (native details) ---- */
.faq{max-width:800px;margin-inline:auto}
.faq details{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:.8rem;background:#fff;overflow:hidden}
.faq details[open]{box-shadow:var(--shadow-sm)}
.faq summary{
  list-style:none;cursor:pointer;padding:1.1rem 1.3rem;font-weight:700;color:var(--ink);
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:12px;height:12px;flex:0 0 auto;border-right:2.5px solid var(--red);border-bottom:2.5px solid var(--red);transform:rotate(45deg);transition:transform .2s var(--ease);margin-top:-4px}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:4px}
.faq .faq__body{padding:0 1.3rem 1.2rem;color:var(--slate)}
.faq .faq__body p:last-child{margin-bottom:0}

/* ---- Quote tool ---- */
.quote-tool{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}
.quote-tool__grid{display:grid;grid-template-columns:1fr .82fr}
@media (max-width:820px){.quote-tool__grid{grid-template-columns:1fr}}
.quote-tool__controls{padding:clamp(1.4rem,3vw,2.2rem)}
.quote-tool__result{background:var(--navy-800);color:#fff;padding:clamp(1.4rem,3vw,2.2rem);display:flex;flex-direction:column;justify-content:center}
.field{margin-bottom:1.3rem}
.field label{display:block;font-weight:700;margin-bottom:.5rem;color:var(--ink);font-size:.98rem}
.field .hint{font-weight:400;color:var(--muted);font-size:.86rem}
.input,select,textarea{
  width:100%;font-family:inherit;font-size:1rem;color:var(--ink);background:#fff;
  border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);padding:.8rem .9rem;transition:border-color .15s, box-shadow .15s;
}
.input:focus,select:focus,textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
textarea{min-height:120px;resize:vertical}
/* Town-search combobox (quote estimator) */
.combo{position:relative}
.combo__list{
  position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;margin:0;padding:.3rem;
  list-style:none;max-height:264px;overflow-y:auto;background:#fff;
  border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);
}
.combo__list[hidden]{display:none}
.combo__option{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.6rem .7rem;border-radius:var(--radius-sm);cursor:pointer;color:var(--ink);font-size:.96rem;line-height:1.3;
}
.combo__option:hover,.combo__option[aria-selected="true"]{background:var(--red-soft)}
.combo__option mark{background:transparent;color:var(--red-dark);font-weight:800;padding:0}
.combo__price{font-weight:700;color:var(--red-dark);font-variant-numeric:tabular-nums;flex:0 0 auto}
.combo__empty{padding:.6rem .7rem;color:var(--muted);font-size:.92rem;line-height:1.4}
.combo__readout{min-height:1.25em}
.combo__readout.is-set{color:var(--slate);font-weight:600}
.combo__set-price{color:var(--red-dark);font-weight:800}
.seg{display:flex;gap:.5rem;flex-wrap:wrap}
.seg input{position:absolute;opacity:0;width:0;height:0}
.seg label{
  flex:1 1 auto;text-align:center;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);
  padding:.7rem .6rem;font-weight:600;font-size:.92rem;cursor:pointer;margin:0;color:var(--slate);transition:.15s;
}
.seg input:checked + label{border-color:var(--red);background:var(--red-soft);color:var(--red-dark)}
.seg input:focus-visible + label{outline:3px solid var(--red);outline-offset:2px}
.field-label{display:block;font-weight:700;margin-bottom:.5rem;color:var(--ink);font-size:.98rem}
.range-row{display:flex;align-items:center;gap:1rem}
input[type=range]{flex:1;accent-color:var(--red)}
.range-val{min-width:3ch;font-weight:800;font-size:1.3rem;color:var(--ink)}
.quote-result__label{font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:#b9c7da;font-weight:700}
.quote-result__price{font-size:clamp(2.4rem,6vw,3.4rem);font-weight:800;letter-spacing:-.03em;margin:.3rem 0}
.quote-result__sub{color:#cbd8e8;font-size:.95rem}
.quote-result__note{font-size:.82rem;color:#a9b8cd;margin-top:1.2rem;border-top:1px solid rgba(255,255,255,.14);padding-top:1rem}

/* ---- Form ---- */
.form-note{background:var(--amber);color:#3a2a00;font-weight:600;font-size:.9rem;padding:.7rem 1rem;border-radius:var(--radius-sm);margin-bottom:1.4rem;display:flex;gap:.55rem;align-items:flex-start}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
.form-grid .field{margin-bottom:0}
.form-grid .field--full{grid-column:1/-1}
@media (max-width:560px){.form-grid{grid-template-columns:1fr}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.required{color:var(--red)}

/* ---- Contact cards ---- */
.contact-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
@media (max-width:700px){.contact-methods{grid-template-columns:1fr}}
.contact-method{display:flex;gap:.9rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem}
.contact-method svg{color:var(--red);flex:0 0 auto}
.contact-method strong{display:block;color:var(--ink)}
.contact-method a{color:var(--slate);font-weight:600}

/* ---- CTA band ---- */
.cta-band{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(125% 125% at 50% -20%,var(--navy-700) 0%,var(--navy-800) 45%,var(--navy-900) 100%);color:#fff;border-radius:var(--radius-lg);padding:clamp(2.8rem,6vw,4.4rem) clamp(1.5rem,5vw,3.4rem);text-align:center;border:1px solid rgba(255,255,255,.09);box-shadow:var(--shadow-lg),inset 0 1px 0 rgba(255,255,255,.09)}
/* layered ember glow */
.cta-band::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(650px 320px at 50% -25%,rgba(215,56,44,.42),transparent 60%),radial-gradient(520px 320px at 110% 120%,rgba(215,56,44,.22),transparent 60%)}
/* faint grid texture, masked to fade out */
.cta-band::after{content:"";position:absolute;z-index:-1;inset:0;opacity:.5;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 75%);mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 75%)}
.cta-band>*{position:relative}
.cta-band__eyebrow{display:inline-block;margin:0 0 1.1rem;padding:.42rem .95rem;border-radius:999px;background:rgba(215,56,44,.16);border:1px solid rgba(255,255,255,.14);color:#ffd9d5;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em}
.cta-band h2{color:#fff;font-size:clamp(1.7rem,3.4vw,2.4rem);margin:0}
.cta-band .lead{color:#ccdaea;max-width:52ch;margin:1rem auto 0}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center;margin-top:1.9rem}
.cta-band__actions .btn--primary{box-shadow:0 12px 30px -8px rgba(215,56,44,.7)}
.cta-band__trust{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem 1.5rem;margin:1.9rem 0 0;padding:1.5rem 0 0;border-top:1px solid rgba(255,255,255,.1);font-size:.86rem;font-weight:600;color:#b9cbe0}
.cta-band__trust li{display:inline-flex;align-items:center;gap:.5rem}
.cta-band__trust li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px rgba(215,56,44,.18)}

/* ---- Guide / regulations page ---- */
.guide-hero{position:relative;overflow:hidden;background:var(--navy-800);color:#c3d3e5;padding:clamp(2.4rem,5vw,3.4rem) 0 clamp(2.6rem,5vw,3.6rem)}
.guide-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(760px 420px at 88% -20%,rgba(215,56,44,.26),transparent 62%);pointer-events:none}
.guide-hero>*{position:relative}
.guide-hero h1{color:#fff;max-width:20ch}
.guide-hero .lead{max-width:60ch;color:#cbd9ea}
.guide-hero .eyebrow{color:#ff9086}
.breadcrumb{display:flex;gap:.5rem;align-items:center;font-size:.85rem;color:#b3c3d7;margin-bottom:1.2rem}
.breadcrumb a{color:#dce7f3}
.breadcrumb a:hover{color:#fff}
.breadcrumb span[aria-hidden]{opacity:.5}
.fact-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.6rem}
.fact-chips .chip{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);color:#dbe6f2}

.guide-layout{display:grid;grid-template-columns:230px 1fr;gap:clamp(2rem,5vw,3.6rem);align-items:start}
@media (max-width:900px){.guide-layout{grid-template-columns:1fr}}
.guide-toc{position:sticky;top:92px}
@media (max-width:900px){.guide-toc{position:static;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.4rem;margin-bottom:.5rem}}
.guide-toc strong{display:block;font-size:.78rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-bottom:.9rem}
.guide-toc ol{list-style:none;padding:0;margin:0;counter-reset:toc}
.guide-toc li{counter-increment:toc}
.guide-toc a{display:flex;gap:.6rem;align-items:baseline;padding:.4rem 0 .4rem .9rem;border-left:2px solid var(--line);color:var(--slate);font-size:.92rem;line-height:1.4;transition:.15s}
.guide-toc a::before{content:counter(toc,decimal-leading-zero);font-size:.72rem;font-weight:700;color:var(--muted)}
.guide-toc a:hover{border-color:var(--red);color:var(--ink);text-decoration:none}
.guide-toc a.is-active{border-color:var(--red);color:var(--ink);font-weight:600}
.guide-toc a.is-active::before{color:var(--red)}

.prose{max-width:720px}
.prose>h2{position:relative;margin-top:2.8rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.prose>h2:first-child{margin-top:0;padding-top:0;border-top:0}
.prose>h2::after{content:"";position:absolute;top:0;left:0;width:34px;height:3px;border-radius:3px;background:var(--red)}
.prose>h2:first-child::after{display:none}
.prose h3{margin-top:1.8rem}
.prose ul{padding-left:1.3rem}
.prose li{margin-bottom:.5rem;color:var(--slate)}
.prose p{color:var(--slate)}
.callout{border-left:3px solid var(--line-strong);padding:.15rem 0 .15rem 1.4rem;margin:1.8rem 0}
.callout p:last-child{margin-bottom:0}
.prose ul.check-list{list-style:none;padding:0;margin:1.5rem 0}
.prose .check-list li{display:flex;gap:.8rem;align-items:flex-start;padding:.75rem 0;margin:0;border-top:1px solid var(--line);color:var(--slate)}
.prose .check-list li:first-child{border-top:0}
.check-list li>svg{flex:0 0 auto;color:var(--green);margin-top:.2rem}
.check-list strong{color:var(--ink)}

/* Scroll offset so anchored headings clear the sticky header */
[id]{scroll-margin-top:88px}

/* ---- Footer ---- */
.site-footer{position:relative;background:var(--navy-900);color:#9aacc0;padding:clamp(3rem,5vw,4.4rem) 0 1.6rem}
.site-footer::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--red),#ff8f84 55%,transparent)}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.15fr;gap:2.2rem;margin-bottom:2.4rem}
@media (max-width:980px){.footer__grid{grid-template-columns:1fr 1fr 1fr;gap:2rem 1.6rem}}
@media (max-width:680px){.footer__grid{grid-template-columns:1fr 1fr;gap:2rem 1.6rem}}
@media (max-width:520px){.footer__grid{grid-template-columns:1fr;gap:1.8rem}}
.site-footer .brand{color:#fff;margin-bottom:1rem}
.site-footer .brand__text em{color:#ff7a6f}
.site-footer .brand__tag{color:rgba(255,255,255,.58)}
.footer__badge{display:inline-flex;margin-top:1.1rem;background:#fff;border-radius:11px;padding:12px 16px}
.footer__badge img{display:block;height:52px;width:auto}
.footer__about{max-width:34ch;font-size:.95rem;line-height:1.6;color:#8ea1b7}
.footer__creds{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem}
.footer__cred{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:#c7d4e3;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:100px;padding:.35rem .75rem}
.footer__cred svg{color:#2ec06f;flex:0 0 auto}
.site-footer h4{color:#fff;font-size:.8rem;letter-spacing:.11em;text-transform:uppercase;margin-bottom:1rem}
.footer__links{list-style:none;padding:0;margin:0}
.footer__links li{margin-bottom:.6rem}
.footer__links a{color:#9aacc0;font-size:.95rem}
.footer__links a:hover{color:#fff}
.footer__contact{list-style:none;padding:0;margin:0}
.footer__contact li{display:flex;gap:.6rem;align-items:flex-start;margin-bottom:.85rem;font-size:.95rem}
.footer__contact svg{color:#ff7a6f;flex:0 0 auto;margin-top:.15rem}
.footer__contact a{color:#c7d4e3;font-weight:600}
.footer__contact a:hover{color:#fff}
.footer__contact span{color:#8ea1b7}
.footer__bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:1.5rem;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;justify-content:space-between;align-items:center;font-size:.84rem;color:#7f92a8}
.footer__bottom a{color:#9aacc0}
.footer__bottom a:hover{color:#fff}

/* ---- Sticky mobile CTA ---- */
.mobile-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;gap:.6rem;padding:.7rem;
  background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(15,27,45,.1);
}
.mobile-cta .btn{flex:1}
@media (max-width:640px){.mobile-cta{display:flex}body{padding-bottom:76px}}

/* ---- Cookie consent banner ---- */
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:1200;max-width:660px;margin-inline:auto;background:var(--navy-800);color:#dbe4ef;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:1.1rem 1.2rem;display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1.2rem}
.cookie-banner__text{margin:0;font-size:.9rem;line-height:1.5;flex:1 1 260px}
.cookie-banner__text a{color:#fff;text-decoration:underline}
.cookie-banner__actions{display:flex;gap:.6rem;flex:0 0 auto}
.cookie-banner .btn{padding:.6rem 1.15rem;font-size:.9rem}
@media (max-width:640px){.cookie-banner{left:.6rem;right:.6rem;bottom:calc(76px + .6rem)}.cookie-banner__actions{width:100%}.cookie-banner .btn{flex:1}}

/* ---- Reveal animation ---- */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease), transform .7s var(--ease)}
[data-reveal].is-visible{opacity:1;transform:none}
[data-reveal-delay="1"]{transition-delay:.08s}
[data-reveal-delay="2"]{transition-delay:.16s}
[data-reveal-delay="3"]{transition-delay:.24s}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1;transform:none}
}

/* ---- Utility ---- */
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.section-head{max-width:640px;margin:0 auto clamp(2rem,4vw,3rem);text-align:center}
.section-head.left{margin-inline:0;text-align:left}
.badge-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}
.chip{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--line);border-radius:100px;padding:.4rem .9rem;font-size:.85rem;font-weight:600;color:var(--slate)}
.skip-link{position:absolute;left:-999px;top:0;background:#fff;padding:.6rem 1rem;z-index:100}
.skip-link:focus{left:8px;top:8px}

/* =============================================================
   Location / "areas we cover" pages
   ============================================================= */
/* Clickable pill links (sibling areas, coverage) on light backgrounds */
a.chip{transition:border-color .15s var(--ease),color .15s,background .15s}
a.chip:hover{border-color:var(--red);color:var(--red-dark);background:var(--red-soft);text-decoration:none}

/* Local intro split: copy + quick-facts card */
.local-split{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(2rem,5vw,3.4rem);align-items:start}
@media (max-width:860px){.local-split{grid-template-columns:1fr}}

/* Quick-facts card (councils, postcodes, coverage) */
.quickfacts{list-style:none;padding:0;margin:0}
.quickfacts>li{display:flex;gap:.9rem;padding:.75rem 0;border-top:1px solid var(--line)}
.quickfacts>li:first-child{border-top:0;padding-top:0}
.quickfacts .qf-ico{flex:0 0 auto;color:var(--red);margin-top:.15rem}
.quickfacts .qf-label{display:block;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:.15rem}
.quickfacts .qf-val{color:var(--ink);font-weight:600;font-size:.96rem;line-height:1.5}

/* Multi-column tick list of covered towns */
.area-list{list-style:none;padding:0;margin:1.4rem 0 0;columns:3;column-gap:2rem}
@media (max-width:860px){.area-list{columns:2}}
@media (max-width:480px){.area-list{columns:1}}
.area-list li{display:flex;gap:.55rem;align-items:flex-start;padding:.4rem 0;color:var(--slate);break-inside:avoid;font-size:.96rem}
.area-list li svg{color:var(--green);flex:0 0 auto;margin-top:.25rem}

/* Areas hub: grid of location link-cards */
.area-card{display:flex;flex-direction:column}
.area-card__tag{display:inline-block;align-self:flex-start;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--red-dark);background:var(--red-soft);padding:.25rem .6rem;border-radius:100px;margin-bottom:.7rem}
.area-card h3{margin-bottom:.4rem}
.area-card h3 a{color:var(--ink)}
.area-card h3 a::after{content:"";position:absolute;inset:0}
.area-card h3 a:hover{color:var(--red-dark);text-decoration:none}
.area-card{position:relative}
.area-card p{color:var(--slate);font-size:.95rem;margin-bottom:1rem}
.area-card__more{margin-top:auto;font-weight:700;color:var(--red-dark);display:inline-flex;align-items:center;gap:.35rem}

/* Sibling-area link cluster */
.area-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.3rem}

/* Area-page hero with inline UK locator map */
.area-hero__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(1.4rem,4vw,3rem);align-items:center}
@media (max-width:820px){.area-hero__grid{grid-template-columns:1fr;gap:1.6rem}}
.area-hero__copy{min-width:0}
.area-hero__map{margin:0;display:flex;flex-direction:column;align-items:center;gap:.6rem;justify-self:center}
.uk-map{width:100%;max-width:220px;height:auto;filter:drop-shadow(0 14px 34px rgba(0,0,0,.42))}
@media (max-width:820px){.uk-map{max-width:168px}}
.area-hero__map figcaption{font-size:.82rem;font-weight:600;letter-spacing:.03em;color:#bdccdf;text-transform:uppercase}
.uk-map__base{fill:#213a5b;stroke:#31517a;stroke-width:.5;stroke-linejoin:round}
.uk-map__hi{fill:#ff5647;stroke:#ff8a7f;stroke-width:.6;stroke-linejoin:round}
.uk-map__glow{fill:#fff;opacity:.22}
.uk-map__pin{fill:#fff;stroke:#b62b21;stroke-width:2}

/* Homepage interactive coverage map */
.hero__map{margin:0;display:flex;flex-direction:column;align-items:center;gap:.75rem}
.hm-map{width:100%;max-width:440px;height:auto;overflow:visible;filter:drop-shadow(0 20px 44px rgba(0,0,0,.45))}
@media (max-width:840px){.hm-map{max-width:320px}}
.hm-gb{fill:#1b3251;stroke:#2a4a70;stroke-width:.5;stroke-linejoin:round}
.hm-region{cursor:pointer}
.hm-region path{fill:#3a5f8c;stroke:#5a80ab;stroke-width:.5;stroke-linejoin:round;transition:fill .2s var(--ease)}
.hm-region--primary path{fill:#c8483d;stroke:#e0655a}
.hm-region:hover path,.hm-region:focus-visible path{fill:#ff5647}
.hm-region:focus-visible{outline:none}
.hm-region:focus-visible path{stroke:#fff;stroke-width:1.2}
.hm-base__disc{fill:#e0392c;stroke:#fff;stroke-width:.9}
.hm-base__pulse{fill:#ff5647;transform-box:fill-box;transform-origin:center;animation:hm-pulse 2.8s ease-out infinite}
@keyframes hm-pulse{0%{transform:scale(.7);opacity:.55}70%{transform:scale(2.4);opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.hm-base__pulse{display:none}}
.hero__map-cap{font-size:.86rem;font-weight:600;color:#c6d3e5;text-align:center}
.hero__map-hint{color:#93a6bd;font-weight:500}
