@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/poppins-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/poppins-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/poppins-latin-700-normal.woff2) format("woff2")}
:root{
  --purple:#5d17eb; --purple-2:#874cf5; --yellow:#fede59; --blush:#e3c7c2;
  --bg:#ffffff; --bg-alt:#f6f2ff; --tint:#efe7ff; --blush-bg:#f9efec; --deep:#22085c; --card:#ffffff; --text:#1d1d1f; --muted:#6e6e73; --line:rgba(0,0,0,.08);
  --nav-bg:rgba(255,255,255,.72); --accent:var(--purple); --accent-text:#ffffff;
  --radius:22px; --max:1080px;
  --head:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#000; --bg-alt:#120b24; --tint:#1a0f38; --blush-bg:#170d26; --deep:#12052f; --card:#1c1c1e; --text:#f5f5f7; --muted:#a1a1a6; --line:rgba(255,255,255,.12);
         --nav-bg:rgba(22,22,24,.72); --accent:#9b6bff; }
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font:100%/1.55 var(--body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--accent);text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.25rem}
h1,h2,h3{font-family:var(--head);font-weight:600;color:var(--text)}
h1{font-size:clamp(2.4rem,6.5vw,4.5rem);line-height:1.05;letter-spacing:-.03em}
h2{font-size:clamp(1.9rem,4.5vw,3rem);line-height:1.1;letter-spacing:-.025em}
h3{font-size:1.25rem;line-height:1.25;letter-spacing:-.01em}
.lede{font-size:clamp(1.1rem,2.2vw,1.35rem);color:var(--muted);line-height:1.45;max-width:38em}
.eyebrow{font-family:var(--head);font-weight:600;font-size:.85rem;letter-spacing:.02em;color:var(--accent);margin-bottom:.75rem}
section{padding:clamp(4.5rem,10vw,7.5rem) 0}
.alt{background:var(--bg-alt)}
.center{text-align:center}.center .lede{margin-left:auto;margin-right:auto}

/* Nav: translucent material, content scrolls underneath */
.nav{position:sticky;top:0;z-index:50;background:var(--nav-bg);
  -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
  transition:box-shadow .3s ease}
.nav.scrolled{box-shadow:0 1px 0 var(--line)}
.nav .wrap{display:flex;align-items:center;gap:1.5rem;height:60px}
.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--head);font-weight:600;color:var(--text);font-size:1rem}
.brand img{width:36px;height:36px}
.links{display:flex;gap:1.5rem;margin-left:auto;font-size:.9rem}
.links a{color:var(--text);opacity:.8}
.links a:hover{opacity:1}
.menu-btn{display:none;margin-left:auto;background:none;border:0;color:var(--text);font:inherit;font-size:.95rem;padding:.5rem;cursor:pointer}

/* Buttons: feedback on press, instant */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-family:var(--head);font-weight:500;
  font-size:1rem;border-radius:999px;padding:.85rem 1.5rem;min-height:48px;border:0;cursor:pointer;
  transition:transform .1s ease-out,background-color .2s ease,opacity .2s ease;-webkit-tap-highlight-color:transparent}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--purple);color:#fff}
.btn-primary:hover{background:#4f10d2}
.btn-quiet{background:transparent;color:var(--accent);padding-left:.5rem;padding-right:.5rem}
.btn-quiet:hover{text-decoration:underline}
.btn-sm{min-height:36px;padding:.45rem 1rem;font-size:.85rem}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:2rem}
.center .actions{justify-content:center}

/* Hero */
.hero{padding-top:clamp(4rem,9vw,7rem);text-align:center}
.hero h1 span{color:var(--purple)}
@media (prefers-color-scheme:dark){.hero h1 span{color:var(--accent)}}
.hero .lede{margin:1.5rem auto 0}
.award{display:inline-block;max-width:30em;margin-top:2.5rem;font-size:.85rem;color:var(--muted)}
.award i{width:8px;height:8px;border-radius:50%;background:var(--yellow);display:inline-block;margin-right:.5rem;vertical-align:middle}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:3rem;counter-reset:s}
.step{background:var(--card);border-radius:var(--radius);padding:2rem}
.step::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:36px;height:36px;border-radius:50%;
  background:var(--purple);color:#fff;font-family:var(--head);font-weight:600;margin-bottom:1.25rem}
.step p{color:var(--muted);margin-top:.5rem}

/* Service cards */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:3rem}
.card{display:block;background:var(--bg-alt);border-radius:var(--radius);padding:2rem;color:var(--text);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -20px rgba(93,23,235,.35)}
.card:active{transform:scale(.98)}
.card p{color:var(--muted);margin-top:.5rem;font-size:.95rem}
.card .more{display:inline-block;margin-top:1.25rem;color:var(--accent);font-weight:500;font-size:.95rem}

/* Calculator */
.calc{background:var(--card);border-radius:28px;padding:clamp(1.5rem,4vw,3rem);margin-top:3rem;
  display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center;
  box-shadow:0 30px 60px -40px rgba(0,0,0,.25)}
.field{margin-bottom:1.75rem}
.field label{display:flex;justify-content:space-between;font-size:.95rem;color:var(--muted);margin-bottom:.6rem}
.field output{font-family:var(--head);font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
input[type=range]{width:100%;height:32px;-webkit-appearance:none;appearance:none;background:transparent;touch-action:pan-y}
input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(var(--purple),var(--purple)) 0/var(--p,50%) 100% no-repeat,var(--line)}
input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:var(--line)}
input[type=range]::-moz-range-progress{height:6px;border-radius:3px;background:var(--purple)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:#fff;margin-top:-11px;
  box-shadow:0 0 0 .5px rgba(0,0,0,.08),0 3px 8px rgba(0,0,0,.2);transition:transform .1s ease-out}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}
input[type=range]::-moz-range-thumb{width:28px;height:28px;border:0;border-radius:50%;background:#fff;box-shadow:0 0 0 .5px rgba(0,0,0,.08),0 3px 8px rgba(0,0,0,.2)}
.result{text-align:center;background:var(--bg-alt);border-radius:var(--radius);padding:2rem 1.5rem}
.result .big{font-family:var(--head);font-weight:600;font-size:clamp(2.6rem,7vw,3.6rem);letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1;margin:.4rem 0}
.result small{display:block;color:var(--muted);font-size:.8rem;margin-top:1rem;line-height:1.4}
.tools{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:2rem}
.chip{font-size:.9rem;padding:.5rem 1rem;border-radius:999px;background:var(--card);color:var(--text);border:1px solid var(--line);transition:transform .1s ease-out}
.chip:active{transform:scale(.97)}

/* Team */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-top:3rem}
.person{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1rem;background:var(--bg-alt);border-radius:var(--radius)}
.avatar{width:120px;height:120px;border-radius:50%;margin:0 auto 1.25rem;object-fit:cover;background:var(--purple);
  box-shadow:0 12px 28px -14px rgba(93,23,235,.6)}
.person p{color:var(--muted);font-size:.9rem;margin:.25rem 0 1.25rem}
.person .btn{margin-top:auto}

/* Guide */
.guide{background:var(--purple);color:#fff;border-radius:28px;padding:clamp(2rem,6vw,4rem);display:flex;gap:2rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.guide h2{color:#fff}
.guide p{color:rgba(255,255,255,.8);margin-top:.75rem;max-width:30em}
.btn-yellow{background:var(--yellow);color:#1d1d1f}

/* Footer */
footer{background:var(--bg-alt);padding:3.5rem 0 2.5rem;font-size:.8rem;color:var(--muted);line-height:1.6}
.fcols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;padding-bottom:2rem;border-bottom:1px solid var(--line)}
.fcols h4{font-family:var(--head);font-weight:600;color:var(--text);font-size:.85rem;margin-bottom:.75rem}
.fcols a{display:block;color:var(--muted);padding:.2rem 0}
.fcols a:hover{color:var(--text)}
.legal{padding-top:1.5rem}
.legal p+p{margin-top:.75rem}
.warn{color:var(--text);font-weight:600}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}

/* Mobile */
@media (max-width:860px){
  .links{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:0;padding:.5rem 1.25rem 1.25rem;
    background:var(--nav-bg);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}
  .links.open{display:flex}
  .links a{padding:.85rem 0;border-bottom:1px solid var(--line);font-size:1.05rem}
  .menu-btn{display:block}
  .nav .btn-sm{display:none}
  .steps,.grid,.calc{grid-template-columns:1fr}
  .team{grid-template-columns:repeat(2,1fr)}
  .fcols{grid-template-columns:1fr 1fr}
  .fcols>div:first-child{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
  .card:hover{transform:none}
}
@media (prefers-reduced-transparency:reduce){
  .nav,.links{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* ===== Inner pages ===== */
.links a[aria-current="page"]{opacity:1;font-weight:600}
.page-hero{padding:clamp(3.5rem,8vw,6rem) 0 clamp(2.5rem,5vw,3.5rem);text-align:center}
.page-hero .lede{margin:1.25rem auto 0}
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:1rem}
.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--text)}
.tight{padding-top:0}

/* Contact */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.contact-card{display:flex;flex-direction:column;background:var(--bg-alt);border-radius:var(--radius);padding:2rem;color:var(--text);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}
a.contact-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -20px rgba(93,23,235,.35)}
a.contact-card:active{transform:scale(.98)}
.contact-card .icon{width:44px;height:44px;border-radius:12px;background:var(--purple);color:#fff;display:grid;place-items:center;margin-bottom:1.25rem}
.contact-card p{color:var(--muted);margin-top:.35rem;font-size:.95rem}
.contact-card .big-link{margin-top:auto;padding-top:1.25rem;font-family:var(--head);font-weight:600;color:var(--accent);font-size:1.05rem;word-break:break-word}
.note{max-width:40em;margin:2.5rem auto 0;text-align:center;color:var(--muted);font-size:.95rem}

/* Tools index */
.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.tool-card{display:flex;flex-direction:column;background:var(--bg-alt);border-radius:var(--radius);padding:2rem;color:var(--text);
  box-shadow:0 1px 0 var(--line);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}
.tool-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -20px rgba(93,23,235,.35)}
.tool-card:active{transform:scale(.98)}
.tool-card p{color:var(--muted);margin-top:.5rem;font-size:.95rem}
.tool-card .more{margin-top:auto;padding-top:1.25rem;color:var(--accent);font-weight:500}
.tool-card.feature{grid-column:span 3;background:var(--purple);color:#fff}
.tool-card.feature h3,.tool-card.feature .more{color:#fff}
.tool-card.feature p{color:rgba(255,255,255,.8)}

/* Tool page */
.tool-frame{background:var(--card);border-radius:28px;padding:clamp(1.25rem,4vw,3rem);box-shadow:0 30px 60px -40px rgba(0,0,0,.25);min-height:260px}
.disclaimer{color:var(--muted);font-size:.85rem;margin-top:1.5rem;text-align:center;max-width:44em;margin-left:auto;margin-right:auto}
.cta-band{background:var(--bg-alt);border-radius:28px;padding:clamp(2rem,5vw,3.5rem);text-align:center}
.cta-band .actions{justify-content:center}
.cta-band p{color:var(--muted);margin:.75rem auto 0;max-width:34em}
.other-tools{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:2.5rem}

/* Mortgage Quote calculators: inherit site type and colours */
.tool-frame [class*="mq-"]{font-family:var(--body)!important}
.tool-frame .mq-calculator-btn{background:var(--purple)!important;color:#fff!important;border:0!important;border-radius:999px!important;
  font-family:var(--head)!important;font-weight:500!important;min-height:48px;padding:.85rem 1.75rem!important;box-shadow:none!important;transition:transform .1s ease-out}
.tool-frame .mq-calculator-btn:active{transform:scale(.97)}
.tool-frame input.mq-calculator-custom-input,.tool-frame select{border-radius:12px!important;border:1px solid var(--line)!important;box-shadow:none!important;
  min-height:48px;font-size:1rem!important;padding:.6rem .9rem!important;background:var(--bg)!important;color:var(--text)!important}
.tool-frame input.mq-calculator-custom-input:focus{outline:2px solid var(--purple);outline-offset:1px}
/* Calculators always sit on a light card, even in dark mode: Mortgage Quote's text is fixed dark grey */
.tool-frame{color-scheme:light;--bg:#ffffff;--bg-alt:#f5f5f7;--card:#ffffff;--text:#1d1d1f;--muted:#6e6e73;--line:rgba(0,0,0,.14);--accent:#5d17eb;color:#1d1d1f}
@media (prefers-color-scheme:dark){.tool-frame{box-shadow:0 0 0 1px rgba(255,255,255,.08)}}

@media (max-width:860px){
  .contact-grid,.tool-grid{grid-template-columns:1fr}
  .tool-card.feature{grid-column:auto}
}

/* ===== Content pages ===== */
.page-hero .actions{justify-content:center}
.split{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.prose p{font-size:1.1rem;line-height:1.65;color:var(--text);max-width:36em}
.prose p+p{margin-top:1.1rem}
.small-note{margin-top:1.5rem;font-size:.85rem;color:var(--muted);border-left:3px solid var(--purple-2);padding-left:1rem;max-width:40em}
.steps-4{grid-template-columns:repeat(4,1fr)}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2rem;margin-top:3rem}
.feature h3{font-size:1.15rem}
.feature h3::before{content:"";display:block;width:28px;height:4px;border-radius:2px;background:var(--yellow);margin-bottom:1rem}
.feature p{color:var(--muted);margin-top:.5rem;font-size:.95rem}
.checks{list-style:none;display:grid;gap:.25rem}
.checks li{display:flex;gap:.85rem;align-items:flex-start;padding:.8rem 0;border-bottom:1px solid var(--line);font-size:1.05rem}
.checks li span{flex:none;width:28px;height:28px;border-radius:50%;background:var(--purple);color:#fff;display:grid;place-items:center}
.checks li span svg{width:16px;height:16px}
.narrow{max-width:780px}
.faq{margin-top:2.5rem;border-top:1px solid var(--line)}
.qa{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;padding:1.25rem 2.5rem 1.25rem 0;position:relative;font-family:var(--head);font-weight:500;font-size:1.05rem;line-height:1.4}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";position:absolute;right:.5rem;top:50%;width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
  transform:translateY(-70%) rotate(45deg);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.qa[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.qa summary:focus-visible{outline:2px solid var(--purple);outline-offset:4px;border-radius:6px}
.qa div{padding:0 2.5rem 1.4rem 0;color:var(--muted);line-height:1.65}
.qa[open] div{animation:qa .35s ease}
@keyframes qa{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.form-frame{background:var(--card);border-radius:28px;box-shadow:0 30px 60px -40px rgba(0,0,0,.25);padding:1rem;min-height:640px}
.form-frame iframe{min-height:620px}
@media (max-width:860px){
  .split,.steps-4,.feature-grid{grid-template-columns:1fr}
  .feature-grid{gap:1.5rem}
}
@media (prefers-reduced-motion:reduce){.qa[open] div{animation:none}}
section:not(.alt) .step{background:var(--bg-alt)}
.prose p.small-note{font-size:.85rem;line-height:1.55;color:var(--muted)}
.adviser{display:flex;gap:2rem;align-items:center;background:var(--bg-alt);border-radius:28px;padding:clamp(1.75rem,5vw,3rem)}
.adviser .avatar{width:140px;height:140px;margin:0;flex:none}
.adviser p:not(.eyebrow){color:var(--muted);margin-top:.75rem;max-width:36em}
.adviser .actions{margin-top:1.5rem}
.legal-title{font-size:clamp(2rem,5vw,3.25rem)}
.legal{color:var(--text);line-height:1.7;font-size:1rem}
.legal h3{font-size:1.25rem;margin:2.5rem 0 .75rem}
.legal p{margin:.75rem 0}
.legal ul{margin:.75rem 0 .75rem 1.25rem}
.legal li{margin:.3rem 0}
.legal a{word-break:break-word}
.table-wrap{overflow-x:auto;margin:1.5rem 0}
.legal table{border-collapse:collapse;width:100%;min-width:560px;font-size:.92rem}
.legal th,.legal td{text-align:left;vertical-align:top;padding:.85rem;border-bottom:1px solid var(--line)}
.legal th{font-family:var(--head);font-weight:600;background:var(--bg-alt)}
@media (max-width:860px){.adviser{flex-direction:column;text-align:center}.adviser .actions{justify-content:center}.adviser p:not(.eyebrow){margin-left:auto;margin-right:auto}}
.adviser h2{font-size:clamp(1.6rem,3.5vw,2.2rem)}

/* ===== Blog ===== */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem 1.25rem;margin-top:2.5rem}
.post-card{display:flex;flex-direction:column;color:var(--text);border-radius:var(--radius)}
.post-card .post-img{display:block;aspect-ratio:16/10;max-width:100%;border-radius:18px;overflow:hidden;background:var(--bg-alt)}
.post-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.post-card:hover img{transform:scale(1.03)}
.post-card:active{transform:scale(.99)}
.post-noimg{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(140deg,var(--purple),var(--purple-2));color:var(--yellow);font-family:var(--head);font-weight:700;font-size:3rem}
.post-meta{display:block;font-size:.8rem;color:var(--muted);margin-top:1rem;font-variant-numeric:tabular-nums}
.post-card h3{margin-top:.4rem;font-size:1.15rem;text-wrap:balance}
.post-card p{color:var(--muted);font-size:.92rem;margin-top:.4rem;line-height:1.5}
.feature-post{display:grid;grid-template-columns:1.2fr 1fr;gap:0 2.5rem;align-items:center}
.feature-post .post-img{grid-row:span 4}
.feature-post h3{font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.15;letter-spacing:-.02em}
.feature-post p{font-size:1rem}
.post-head{text-align:left}
.post-head .lede{margin-left:0}
.post-title{font-size:clamp(2.1rem,5.5vw,3.4rem);text-wrap:balance}
.post-byline{margin-top:1.5rem;color:var(--muted);font-size:.9rem}
.post-hero{margin:0 0 2.5rem;border-radius:22px;overflow:hidden}
.post-hero img{width:100%}
.post-body{font-size:1.1rem;line-height:1.75}
.post-body p{margin:1rem 0}
.post-body h2{font-size:clamp(1.5rem,3vw,1.9rem);margin:2.5rem 0 .75rem}
.post-body h3{font-size:1.3rem;margin:2rem 0 .5rem}
.post-body p>strong:only-child{display:block;font-family:var(--head);font-size:1.2rem;margin-top:2rem}
.post-body ul,.post-body ol{margin:1rem 0 1rem 1.4rem}
.post-body li{margin:.4rem 0}
.post-body img{border-radius:16px;margin:1.5rem 0}
.post-body a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:860px){.post-grid,.feature-post{grid-template-columns:1fr}.feature-post .post-img{grid-row:auto}}
.post-hero img{aspect-ratio:16/9;object-fit:cover;max-width:100%}
.byline{margin-top:1.25rem;font-size:.85rem;color:var(--muted)}.byline a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.h1-kicker{display:block;font-family:var(--head);font-weight:600;font-size:.85rem;letter-spacing:.02em;line-height:1.5;color:var(--accent)!important;margin-bottom:.75rem}

/* ===== Brand colour pass (24 Oct): more purple, yellow and logo ===== */
/* Home hero: purple field, big logo badge */
.hero{position:relative;overflow:hidden;color:#fff;text-align:left;
  background:radial-gradient(60% 80% at 85% 20%,rgba(135,76,245,.9),transparent 70%),
             radial-gradient(50% 60% at 10% 100%,rgba(254,222,89,.18),transparent 70%),
             linear-gradient(150deg,#5d17eb 0%,#4a10c9 100%);
  padding:clamp(4rem,9vw,7rem) 0 clamp(4rem,9vw,6.5rem)}
.hero-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.hero h1{color:#fff}
.hero h1 span{color:var(--yellow)}
@media (prefers-color-scheme:dark){.hero h1 span{color:var(--yellow)}}
.hero .h1-kicker{color:var(--yellow)!important}
.hero .lede{color:rgba(255,255,255,.86);margin:1.5rem 0 0}
.hero .btn-quiet{color:#fff}
.hero .award{color:rgba(255,255,255,.78)}
.hero-mark{display:flex;justify-content:center}
.hero-mark img{width:min(100%,400px);height:auto;border-radius:50%;box-shadow:0 0 0 14px rgba(255,255,255,.14),0 0 0 30px rgba(255,255,255,.06),0 40px 80px -20px rgba(20,0,80,.6);
  animation:mark-in .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes mark-in{from{opacity:0;transform:scale(.92) rotate(-6deg)}to{opacity:1;transform:none}}
.btn-yellow:hover{background:#ffe57a}
.btn-yellow{color:#22085c}

/* Section tints */
.band{background:linear-gradient(160deg,#5d17eb,#874cf5);color:#fff}
.band h2,.band .eyebrow{color:#fff}
.band .eyebrow{color:var(--yellow)}
.band .lede{color:rgba(255,255,255,.85)}
.band .calc{box-shadow:0 40px 80px -40px rgba(20,0,80,.6)}
.band .chip{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff}
.band .chip:hover{background:rgba(255,255,255,.24)}
.blush{background:var(--blush-bg)}
.blush .person{background:var(--card)}
.result{background:var(--tint)}
.result .big{color:var(--accent)}

/* Steps: yellow numbers */
.step::before{background:var(--yellow);color:#22085c}
.alt .step{background:var(--card)}

/* Service cards: brand tick and purple edge on hover */
.card{background:var(--card);border:1px solid var(--tint)}
.card h3::before{content:"";display:block;width:28px;height:4px;border-radius:2px;background:var(--yellow);margin-bottom:1rem}
.card:hover{border-color:var(--purple-2)}

/* Eyebrows as soft pills */
.eyebrow{display:inline-block;background:var(--tint);padding:.3rem .8rem;border-radius:999px}
.band .eyebrow{background:rgba(255,255,255,.14)}

/* Avatars: yellow ring */
.avatar{box-shadow:0 0 0 4px var(--yellow),0 14px 30px -14px rgba(93,23,235,.6)}

/* First time buyers guide: yellow panel with the badge */
.guide{background:var(--yellow);color:#22085c;justify-content:flex-start}
.guide h2{color:#22085c}
.guide p{color:rgba(34,8,92,.8)}
.guide-copy{flex:1;min-width:240px}
.guide-mark{width:96px;height:96px;flex:none;filter:drop-shadow(0 12px 20px rgba(34,8,92,.3))}

/* Inner page heroes: lavender wash */
.page-hero{background:linear-gradient(180deg,var(--tint) 0%,var(--bg) 100%)}
.cta-band{background:linear-gradient(150deg,#5d17eb,#874cf5);color:#fff}
.cta-band h2{color:#fff}
.cta-band p{color:rgba(255,255,255,.85)}
.cta-band .btn-primary{background:var(--yellow);color:#22085c}
.cta-band .btn-primary:hover{background:#ffe57a}
.contact-card .icon{background:var(--yellow);color:#22085c}
.checks li span{background:var(--yellow);color:#22085c}
.small-note{border-left-color:var(--yellow)}

/* Footer: deep purple */
footer{background:var(--deep);color:rgba(255,255,255,.72)}
.fcols{border-bottom-color:rgba(255,255,255,.14)}
.fcols h4{color:#fff}
.fcols a{color:rgba(255,255,255,.72)}
.fcols a:hover{color:var(--yellow)}
.footer-mark{width:64px;height:64px;margin-bottom:1rem}
footer .legal{color:rgba(255,255,255,.78);font-size:.85rem}
footer .warn{color:#fff}
footer .legal a{color:var(--yellow)}

@media (max-width:860px){
  .hero{text-align:center}
  .hero-grid{grid-template-columns:1fr}
  .hero-mark{order:-1}
  .hero-mark img{width:min(50vw,200px);box-shadow:0 0 0 10px rgba(255,255,255,.14),0 0 0 20px rgba(255,255,255,.06),0 30px 60px -20px rgba(20,0,80,.6)}
  .hero .lede{margin-left:auto;margin-right:auto}
  .hero .actions{justify-content:center}
  .guide{justify-content:center;text-align:center}
}
@media (prefers-reduced-motion:reduce){.hero-mark img{animation:none}}

/* ===== Cookie consent (replaces Termly) ===== */
.consent{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:100;width:min(680px,calc(100% - 32px));
  display:flex;gap:1rem;align-items:center;padding:1rem 1.1rem 1rem 1.4rem;border-radius:22px;
  background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
  box-shadow:0 0 0 1px rgba(0,0,0,.06),0 20px 50px -20px rgba(34,8,92,.45);font-size:.88rem;line-height:1.45;color:#1d1d1f;
  animation:consent-in .45s cubic-bezier(.2,.8,.2,1) both}
.consent[hidden]{display:none}
.consent p{flex:1}
.consent a{color:#5d17eb;text-decoration:underline;text-underline-offset:2px}
.consent-actions{display:flex;gap:.5rem;flex:none}
.consent .btn{min-width:92px}
.consent-reject{background:#efe7ff;color:#22085c}
.consent-reject:hover{background:#e4d8ff}
@keyframes consent-in{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
@media (prefers-color-scheme:dark){
  .consent{background:rgba(28,28,30,.86);color:#f5f5f7;box-shadow:0 0 0 1px rgba(255,255,255,.1),0 20px 50px -20px rgba(0,0,0,.8)}
  .consent a{color:#b896ff}
  .consent-reject{background:#2a1d4d;color:#f5f5f7}
}
@media (max-width:600px){.consent{flex-direction:column;align-items:stretch}.consent-actions .btn{flex:1}}
@media (prefers-reduced-transparency:reduce){.consent{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}}
@media (prefers-reduced-motion:reduce){.consent{animation:none}}

/* Chat button shown until the chat is allowed */
.chat-start{position:fixed;right:20px;bottom:20px;z-index:90;width:60px;height:60px;border-radius:50%;border:0;cursor:pointer;
  display:grid;place-items:center;color:#fff;background:linear-gradient(150deg,#5d17eb,#874cf5);
  box-shadow:0 14px 30px -10px rgba(34,8,92,.6);transition:transform .1s ease-out;-webkit-tap-highlight-color:transparent}
.chat-start:active{transform:scale(.94)}
.chat-start.loading{opacity:.6}
body:has(.consent:not([hidden])) .chat-start{bottom:110px}
@media (max-width:600px){body:has(.consent:not([hidden])) .chat-start{bottom:190px}}

/* Calculator placeholder until Mortgage Quote is allowed */
.consent-hold{text-align:center;padding:2.5rem 1rem;max-width:30em;margin:0 auto}
.consent-hold p{color:var(--muted);margin-bottom:1.25rem}
.legal h3[id]{scroll-margin-top:84px}

/* Google reviews pill in the hero */
.reviews-pill{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin-top:2rem;padding:.6rem 1.1rem;border-radius:999px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:.92rem;transition:background-color .2s ease,transform .1s ease-out}
.reviews-pill:hover{background:rgba(255,255,255,.2)}
.reviews-pill:active{transform:scale(.98)}
.reviews-pill .stars{color:var(--yellow);letter-spacing:.08em;font-size:1rem}
.reviews-pill strong{font-weight:600}
.reviews-pill .pill-more{color:var(--yellow);font-weight:500}
.hero .award{display:block;margin-top:1.25rem}
@media (max-width:860px){.reviews-pill{justify-content:center;border-radius:20px}.hero .award{margin-left:auto;margin-right:auto}}

/* Awards in the hero */
.awards{list-style:none;display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:1.75rem}
.awards li{display:flex;gap:.6rem;align-items:flex-start;flex:1 1 12rem;max-width:16rem;font-size:.82rem;line-height:1.35;color:rgba(255,255,255,.78)}
.awards svg{flex:none;color:var(--yellow);margin-top:.05rem}
.awards strong{display:block;color:#fff;font-weight:600;font-size:.88rem;margin-bottom:.15rem}
@media (max-width:860px){.awards{justify-content:center;text-align:left}}
