
  @keyframes fadeUp    { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
  @keyframes ticker    { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
  @keyframes menuSlide { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{-webkit-font-smoothing:antialiased;background:#F7FAFD;color:#042151;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;line-height:1.7;letter-spacing:-0.005em}
  ::selection{background:#D4F4F7;color:#0F2147}
  ::-webkit-scrollbar{width:5px}
  ::-webkit-scrollbar-track{background:#EBF0F8}
  ::-webkit-scrollbar-thumb{background:#0ABFC9;border-radius:3px}
  input,select,textarea{font-family:inherit}
  a{text-decoration:none}
  .fu{animation:fadeUp 0.6s ease both}
  .d1{animation-delay:.05s}.d2{animation-delay:.18s}.d3{animation-delay:.30s}.d4{animation-delay:.44s}
  .btn-t{background:#0ABFC9;color:#fff;border:none;cursor:pointer;font-family:inherit;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:8px;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px}
  .btn-t:hover{background:#0AA0AA;transform:translateY(-2px);box-shadow:0 8px 24px rgba(10,191,201,0.30)}
  .btn-g{background:transparent;color:#0F2147;border:2px solid #DDE3EF;cursor:pointer;font-family:inherit;font-weight:600;border-radius:8px;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-size:13px}
  .btn-g:hover{border-color:#0ABFC9;color:#0ABFC9}
  .slabel{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#0ABFC9;font-weight:700;margin-bottom:12px;display:block}
  .hdivider{height:1px;background:linear-gradient(90deg,transparent,rgba(10,191,201,0.2),transparent)}
  .tick-wrap{overflow:hidden;white-space:nowrap}
  .tick-inner{display:inline-flex;animation:ticker 34s linear infinite}
  .ci{background:#FFFFFF;border:1.5px solid #DDE3EF;border-radius:8px;padding:13px 14px;color:#0F2147;font-size:14px;width:100%;outline:none;transition:border .2s;font-family:inherit}
  .ci:focus{border-color:#0ABFC9;box-shadow:0 0 0 3px rgba(10,191,201,0.12)}
  .ci::placeholder{color:#8899AB}
  select.ci{cursor:pointer}
  .area-pill{background:#FFFFFF;border:1.5px solid #DDE3EF;border-radius:20px;padding:8px 16px;font-size:13px;color:#4B5E78;transition:all .2s;cursor:default}
  .area-pill:hover{border-color:#0ABFC9;color:#0ABFC9;background:#D4F4F7}
  .chip{background:#F0F5FC;border:1.5px solid #DDE3EF;border-radius:20px;padding:6px 14px;font-size:12px;color:#4B5E78;font-weight:600}
  .spec-tag{background:#D4F4F7;border:1.5px solid rgba(10,191,201,0.3);border-radius:20px;padding:4px 12px;font-size:11px;color:#0ABFC9;font-weight:700;letter-spacing:.04em;text-transform:uppercase;display:inline-block}
  .svc-card{background:#FFFFFF;border:1.5px solid #DDE3EF;border-radius:16px;padding:28px;transition:all .25s;cursor:pointer}
  .svc-card:hover{border-color:#0ABFC9;transform:translateY(-4px);box-shadow:0 16px 40px rgba(15,33,71,0.10)}
  .info-card{background:#FFFFFF;border:1.5px solid #DDE3EF;border-radius:16px;padding:28px;transition:all .25s}
  .info-card:hover{border-color:#0ABFC9;transform:translateY(-3px);box-shadow:0 12px 32px rgba(15,33,71,0.09)}
  .faq-item{background:#FFFFFF;border:1.5px solid #DDE3EF;border-radius:12px;overflow:hidden;transition:border .2s}
  .faq-item.open{border-color:#0ABFC9}
  .faq-q{width:100%;background:none;border:none;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-family:inherit;color:#0F2147;font-size:15px;font-weight:600;text-align:left;gap:16px}
  .nav-desktop{display:flex;align-items:center;gap:24px}
  .nav-link{background:none;border:none;font-family:inherit;cursor:pointer;font-size:14.5px;letter-spacing:0;color:#4A5C73;transition:color .2s;padding:0}
  .nav-link:hover{color:#0F2147}
  .hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer;background:none;border:none;padding:10px;margin:-10px -10px -10px 0;min-width:44px;min-height:44px;z-index:200}
  .ham-line{width:24px;height:2px;background:#0F2147;border-radius:2px;transition:all .3s}
  .ham-open .ham-line:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .ham-open .ham-line:nth-child(2){opacity:0}
  .ham-open .ham-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .mobile-menu{display:none;position:fixed;top:64px;left:0;right:0;background:#FFFFFF;border-bottom:1px solid #DDE3EF;padding:20px 24px 28px;flex-direction:column;gap:0;z-index:99;animation:menuSlide .2s ease;box-shadow:0 8px 32px rgba(15,33,71,0.1);max-height:calc(100vh - 64px);overflow-y:auto;-webkit-overflow-scrolling:touch}
  .mobile-menu.is-open{display:flex}
  .mob-link{padding:14px 0;border-bottom:1px solid #EBF0F8;font-size:15px;color:#0F2147;cursor:pointer;background:none;border-left:none;border-right:none;border-top:none;font-family:inherit;text-align:left;width:100%;transition:color .2s;display:block;text-decoration:none}
  .mob-link:hover,.mob-link:focus{color:#0ABFC9}
  .mob-cta-bar{display:none}
  .hero-reviews-mob{display:none}
  h1,h2,h3,h4{letter-spacing:-0.025em;line-height:1.15}
  strong,b{font-weight:700}
  .btn-t{letter-spacing:.06em;border-radius:10px;box-shadow:0 2px 10px rgba(10,191,201,0.22)}
  .btn-t:hover{box-shadow:0 10px 28px rgba(10,191,201,0.34)}
  .btn-g{border-radius:10px;border-width:1.5px}
  .btn-g:hover{background:rgba(10,191,201,0.06)}
  .ci{border-radius:10px}
  .svc-card,.info-card{border-radius:18px;box-shadow:0 1px 3px rgba(15,33,71,0.05)}
  .faq-item{border-radius:14px}
  .chip,.area-pill,.spec-tag{letter-spacing:.01em}
  .slabel{letter-spacing:.18em}
  a,button{-webkit-tap-highlight-color:transparent}
  a:focus-visible,button:focus-visible,.ci:focus-visible{outline:3px solid rgba(10,191,201,0.45);outline-offset:2px}
  img{max-width:100%}
  @media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
  @media(max-width:768px){
    .nav-desktop{display:none!important}
    .hamburger{display:flex!important}
    .hero-flex{flex-direction:column!important}
    .hero-right{width:100%!important;max-width:none!important;flex:none!important}
    .two-col{grid-template-columns:1fr!important}
    .contact-grid{grid-template-columns:1fr!important}
    .hide-mob{display:none!important}
    .cta-row{flex-direction:column!important}
    .cta-row>*{width:100%!important;text-align:center!important;justify-content:center!important}
    .footer-links{display:flex!important;flex-direction:column!important;gap:14px}
    .adviser-grid{grid-template-columns:1fr!important}
    .section-inner{padding-left:18px!important;padding-right:18px!important}
    .adviser-specs{flex-wrap:wrap!important;gap:6px!important}
    body{padding-bottom:70px}
    .hero-reviews-mob{display:flex!important}
    .faq-q,.mob-link{min-height:44px}
    .mob-cta-bar{display:flex!important;position:fixed;bottom:0;left:0;right:0;z-index:500;border-top:2px solid #0ABFC9;background:#fff;padding-bottom:env(safe-area-inset-bottom,0px)}
  }
  @media(max-width:480px){
    .three-col{grid-template-columns:1fr!important}
    .result-grid{grid-template-columns:1fr!important}
  }

/* =====================================================================
   YLME design system
   One radius scale, one spacing scale, one type scale — desktop and mobile.
   --r-sm 8  · pills, tags, small controls
   --r-md 10 · buttons, inputs, links-as-buttons
   --r-lg 14 · cards
   --r-xl 18 · feature panels
   ===================================================================== */
:root{
  --navy:#042151; --navy2:#0B2E63; --teal:#0197B8; --teal2:#01A2C2; --teal-dk:#017A96;
  --wash:#E4F3F8; --mist:#EEF7FE; --page:#F7FAFD; --line:#E4EBF3; --body:#4A5C73; --soft:#7C8CA0;
  /* the brand lime already exists as a JS constant for the star fill; exposing it
     as a token so stylesheet rules can use it without hard-coding the hex */
  --lime:#C0D90E;
  --r-sm:8px; --r-md:10px; --r-lg:14px; --r-xl:18px;
  --sp-sec:clamp(44px,6vw,84px); --sp-tight:clamp(28px,4vw,52px);
  --gut:clamp(18px,5vw,24px);
}
body{background:var(--page);color:var(--navy);letter-spacing:-0.005em;line-height:1.65}
::selection{background:var(--wash);color:var(--navy)}
::-webkit-scrollbar-thumb{background:var(--teal)}
::-webkit-scrollbar-track{background:var(--mist)}

/* ---------- buttons: one shape ---------- */
.btn-t{background:var(--teal);border-radius:var(--r-md);text-transform:none;letter-spacing:0;font-weight:700;
  font-size:14px;padding:13px 22px;box-shadow:0 1px 2px rgba(4,33,81,.06),0 6px 18px rgba(1,151,184,.20)}
.btn-t:hover{background:var(--teal-dk);transform:translateY(-2px);box-shadow:0 10px 26px rgba(1,151,184,.30)}
.btn-g{background:#fff;color:var(--navy);border:1.5px solid var(--line);border-radius:var(--r-md);
  font-weight:700;font-size:14px;padding:13px 22px;box-shadow:0 1px 2px rgba(4,33,81,.04)}
.btn-g:hover{border-color:var(--teal);color:var(--teal);background:#fff}
.btn-onnavy{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:rgba(255,255,255,.10);
  color:#fff;border:1.5px solid rgba(255,255,255,.34);border-radius:var(--r-md);font-family:inherit;font-weight:700;
  cursor:pointer;text-decoration:none;transition:all .2s}
.btn-onnavy:hover{background:rgba(255,255,255,.18);border-color:#fff}

/* ---------- pills and tags: same corner language as buttons ---------- */
.chip{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-sm);color:var(--body);font-weight:600;
  padding:7px 13px;font-size:12.5px}
.area-pill{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-sm);color:var(--body);
  padding:8px 14px;font-size:13px;transition:all .2s}
.area-pill:hover{border-color:var(--teal);color:var(--teal);background:var(--wash)}
.area-pill.is-all{border-color:var(--teal);color:var(--teal);background:var(--wash);font-weight:700}
.spec-tag{background:var(--wash);border:1px solid rgba(1,151,184,.22);color:var(--teal);border-radius:var(--r-sm);
  text-transform:none;letter-spacing:0;font-size:11.5px;font-weight:700;padding:5px 10px;display:inline-block}
.cat-tag{display:inline-block;background:var(--wash);color:var(--teal);font-size:11px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:var(--r-sm);align-self:flex-start}
.cat-btn{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:9px 16px;font-size:13.5px;
  font-weight:600;color:var(--body);cursor:pointer;font-family:inherit;transition:all .2s}
.cat-btn:hover{border-color:var(--teal);color:var(--teal)}
.cat-btn.is-on{background:var(--teal);border-color:var(--teal);color:#fff}
.ans-chip{display:inline-flex;align-items:center;gap:7px;background:var(--wash);border:1px solid rgba(1,151,184,.24);
  color:var(--teal);border-radius:var(--r-sm);padding:7px 12px;font-size:12.5px;font-weight:700;cursor:pointer;
  font-family:inherit;transition:all .2s}
.ans-chip:hover{background:var(--teal);color:#fff;border-color:var(--teal)}
.ans-chip:hover svg{stroke:#fff}
.ci{border:1.5px solid var(--line);border-radius:var(--r-md);color:var(--navy)}
.ci:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(1,151,184,.14)}
.slabel{color:var(--teal);letter-spacing:.15em;font-size:11.5px;font-weight:700;text-transform:uppercase;
  display:block;margin-bottom:10px}

/* ---------- cards ---------- */
.svc-card,.info-card{border:1px solid var(--line);border-radius:var(--r-xl);
  box-shadow:0 1px 2px rgba(4,33,81,.04),0 2px 8px rgba(4,33,81,.04)}
.svc-card:hover,.info-card:hover{border-color:var(--teal);box-shadow:0 12px 34px rgba(4,33,81,.10)}
.faq-item{border:1px solid var(--line);border-radius:var(--r-lg);background:#fff}
.faq-item.open{border-color:var(--teal)}
.faq-q{color:var(--navy);font-weight:700;font-size:15px}
.nav-link{text-transform:none;letter-spacing:0;font-size:14.5px;font-weight:600;color:var(--body)}
.nav-link:hover{color:var(--teal)}
.mob-link{color:var(--navy);font-size:15.5px;border-bottom:1px solid #EEF3F9}
/* Sub-rows inside Services / Areas. The icon is an inline SVG rendered as a
   block, which pushed the label onto a second line and made the row look
   cramped; a flex row puts them on one line and centres them properly. */
.mob-sublink{
  display:flex!important;align-items:center;gap:12px;
  padding:13px 0 13px 4px!important;font-size:14.5px!important;font-weight:600;
  min-height:48px;
}
.mob-sublink .mob-ic{
  width:32px;height:32px;flex-shrink:0;border-radius:var(--r-sm);
  background:var(--mist);display:inline-flex;align-items:center;justify-content:center;
}
.mob-call{display:flex!important;align-items:center;justify-content:center;gap:9px}
.ham-line{background:var(--navy)}

/* ---------- section rhythm ---------- */
.sec{padding:var(--sp-sec) var(--gut)}
.sec-tight{padding-top:var(--sp-tight);padding-bottom:var(--sp-tight)}
.sec-page{background:var(--page)}
.sec-mist{background:var(--mist)}
.sec-white{background:#fff}
.sec-head{text-align:center;max-width:640px;margin:0 auto clamp(26px,3.4vw,40px)}
.sec-h2{font-size:clamp(23px,3.1vw,36px);font-weight:800;color:var(--navy);letter-spacing:-.03em;
  line-height:1.15;margin-bottom:12px}
.sec-lede{font-size:clamp(14.5px,1.6vw,16.5px);color:var(--body);line-height:1.7}
.sec-next{display:flex;justify-content:center;margin-top:clamp(24px,3vw,34px)}

/* ---------- hero ---------- */
.hero-wrap{position:relative;overflow:hidden;padding:clamp(92px,11vw,150px) var(--gut) clamp(44px,6vw,88px);
  background:linear-gradient(160deg,#EEF7FE 0%,#F6FBFF 52%,#FFF 100%)}
.hero-inner{position:relative;z-index:2;display:flex;gap:clamp(26px,4vw,60px);align-items:center}
.hero-copy{flex:1 1 520px;min-width:0}
.hero-card-col{flex:0 1 400px;width:100%}
.hero-geo{position:absolute;top:72px;right:0;width:42%;height:calc(100% - 72px);z-index:1;pointer-events:none;
  clip-path:polygon(26% 0,100% 0,100% 100%,0 100%)}
/* The headline has to fit the copy column, not the viewport. Between 860px and
   1200px the two-column hero squeezes .hero-copy far faster than the viewport
   shrinks, so a vw-based size overflows and drops "Independent" onto its own
   line. Sizing from the container keeps "Independent mortgage advice" on one
   line everywhere it can physically fit. The vw clamp stays first as the
   fallback for engines without container queries. */
.hero-head{container-type:inline-size}
.hero-h1{font-size:clamp(29px,5vw,55px);font-weight:800;color:var(--navy);letter-spacing:-.04em;
  font-size:clamp(29px,6.9cqw,55px);
  line-height:1.02;margin-bottom:22px}
/* each half is its own block, so the two-line reading is a layout decision the
   stylesheet owns rather than a hard <br>, and each half balances its own wrap
   instead of dropping a single orphan word onto a line of its own */
.hero-h1-a,.hero-h1-b{display:block;text-wrap:balance}
/* The second line is short, so it carries the emphasis on its own: brand teal
   with a lime rule painted as a background — no layout involvement, no baseline
   shift, and nothing that animates.
   --teal-dk rather than --teal: at 3.28:1 the lighter teal clears AA only
   because the headline is large text, so it would fail the moment the type
   shrank. The darker brand teal measures 4.7:1 and passes at any size. */
.hero-h1-em{font-style:normal;color:var(--teal-dk);
  background-image:linear-gradient(var(--lime),var(--lime));
  background-repeat:no-repeat;background-size:100% .085em;background-position:0 .95em;
  -webkit-box-decoration-break:clone;box-decoration-break:clone}
.hero-sub{font-size:clamp(14.5px,1.7vw,17.5px);color:var(--body);line-height:1.65;max-width:520px;margin-bottom:18px}
.hero-rating{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:22px}
.hero-rating-score{font-weight:800;color:var(--navy);font-size:15px}
.hero-rating-link{color:var(--body);font-size:14px;text-decoration:none;border-bottom:1px solid var(--line);
  display:inline-flex;align-items:center;min-height:32px}
.hero-rating-link:hover{color:var(--teal);border-color:var(--teal)}
.hero-cta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.hero-btn{padding:14px 24px;font-size:14.5px;text-decoration:none}
.cover-row{list-style:none;display:flex;flex-wrap:wrap;gap:6px 8px;font-size:12.5px;color:var(--soft);margin:0}
.cover-row li{position:relative;padding-right:10px}
.cover-row li::after{content:"·";position:absolute;right:2px;color:#C3CEDC}
.cover-row li:last-child::after{content:none}
.cover-all{color:var(--teal);font-weight:700}

/* ---------- starting-point card ---------- */
.start-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(18px,2.4vw,26px);
  box-shadow:0 4px 12px rgba(4,33,81,.06),0 24px 60px rgba(4,33,81,.12)}
.start-title{font-size:18px;font-weight:800;color:var(--navy);letter-spacing:-.02em;margin-bottom:3px}
.start-lede{font-size:13.5px;color:var(--soft);margin-bottom:14px}
.start-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}
.start-tile{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-md);padding:14px 9px;cursor:pointer;
  font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:8px;transition:all .18s;min-height:92px;
  justify-content:center}
.start-tile span{font-size:12.5px;font-weight:700;color:var(--navy);text-align:center;line-height:1.3}
.start-tile:hover{border-color:var(--teal)}
.start-tile.is-on{border-color:var(--teal);background:var(--wash)}
.start-go{width:100%;padding:14px 0;font-size:14.5px;justify-content:center}
.start-points{list-style:none;display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:14px;justify-content:center}
.start-points li{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--body);font-weight:600}

/* ---------- trust bar ---------- */
.trust-shell{padding:0 var(--gut);margin-top:-34px;position:relative;z-index:5}
.trust-bar{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:0 2px 6px rgba(4,33,81,.05),0 12px 32px rgba(4,33,81,.08);
  display:grid;grid-template-columns:repeat(4,1fr)}
.trust-item{display:flex;align-items:center;gap:12px;padding:18px 20px;border-left:1px solid var(--line);min-width:0}
.trust-item:first-child{border-left:none}
.trust-ic{width:38px;height:38px;border-radius:var(--r-md);background:var(--wash);display:inline-flex;
  align-items:center;justify-content:center;flex-shrink:0}
.trust-txt{display:flex;flex-direction:column;min-width:0}
.trust-txt strong{font-size:14.5px;font-weight:700;color:var(--navy);line-height:1.25}
.trust-txt em{font-style:normal;font-size:12px;color:var(--soft);line-height:1.35;margin-top:2px}

/* ---------- service cards ---------- */
.svc-band{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:stretch}
.svc-ic{width:46px;height:46px;border-radius:var(--r-md);background:var(--wash);display:inline-flex;
  align-items:center;justify-content:center;flex-shrink:0}
.svc-card-v2{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:24px;display:flex;
  flex-direction:column;text-decoration:none;box-shadow:0 1px 2px rgba(4,33,81,.04);transition:all .22s}
.svc-card-v2:hover{border-color:var(--teal);transform:translateY(-4px);box-shadow:0 16px 40px rgba(4,33,81,.11)}
.svc-title{font-size:16.5px;font-weight:800;color:var(--navy);letter-spacing:-.015em;margin:16px 0 8px;line-height:1.25}
.svc-copy{font-size:13.5px;color:var(--body);line-height:1.65;flex:1}
.svc-foot{display:inline-flex;align-items:center;gap:7px;color:var(--teal);font-weight:700;font-size:13.5px;margin-top:16px}
.svc-arrow{width:34px;height:34px;border-radius:var(--r-md);border:1.5px solid var(--line);display:inline-flex;
  align-items:center;justify-content:center;transition:all .22s;flex-shrink:0}
.svc-wide:hover .svc-arrow{border-color:var(--teal);background:var(--wash)}
.svc-more{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.svc-wide{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-xl);padding:20px 22px;text-decoration:none;box-shadow:0 1px 2px rgba(4,33,81,.04);transition:all .22s}
.svc-wide:hover{border-color:var(--teal);transform:translateY(-3px);box-shadow:0 14px 34px rgba(4,33,81,.10)}
.svc-wide-txt{display:flex;flex-direction:column;min-width:0;flex:1}
.svc-wide-txt strong{font-size:15.5px;font-weight:800;color:var(--navy);margin-bottom:4px}
.svc-wide-txt span{font-size:13.5px;color:var(--body);line-height:1.6}

/* ---------- why / stats ---------- */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stat-cell{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 20px;
  display:flex;flex-direction:column;box-shadow:0 1px 2px rgba(4,33,81,.04)}
.stat-ic{width:38px;height:38px;border-radius:var(--r-md);background:var(--wash);display:inline-flex;
  align-items:center;justify-content:center;margin-bottom:14px}
.stat-big{font-size:clamp(24px,2.6vw,30px);font-weight:800;color:var(--navy);letter-spacing:-.03em;line-height:1}
.stat-lab{font-size:14px;font-weight:700;color:var(--navy);margin-top:6px}
.stat-sub{font-size:12.5px;color:var(--soft);line-height:1.5;margin-top:4px}

/* ---------- advisers ---------- */
.adviser-grid-v2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.adv-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;
  box-shadow:0 1px 2px rgba(4,33,81,.04);display:flex;flex-direction:column}
.adv-photo{aspect-ratio:4/3;overflow:hidden;background:var(--wash)}
.adv-photo img{width:100%;height:100%;object-fit:cover;object-position:center 14%;display:block}
.adv-body{padding:22px;display:flex;flex-direction:column;flex:1}
.adv-name{font-size:17.5px;font-weight:800;color:var(--navy);letter-spacing:-.02em}
.adv-role{font-size:12px;font-weight:700;color:var(--teal);letter-spacing:.04em;text-transform:uppercase;margin:4px 0 12px}
.adv-bio{font-size:13.5px;color:var(--body);line-height:1.65;margin-bottom:14px;flex:1}
.adv-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.adv-cta{padding:12px 0;font-size:13.5px;justify-content:center;text-decoration:none}

/* ---------- calculator promo ---------- */
.calc-promo{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-xl);padding:clamp(20px,3vw,30px);box-shadow:0 2px 6px rgba(4,33,81,.05),0 12px 32px rgba(4,33,81,.07)}
.calc-ic{width:52px;height:52px;border-radius:var(--r-lg);background:var(--wash);display:inline-flex;
  align-items:center;justify-content:center;flex-shrink:0}
.calc-txt{flex:1;min-width:220px}
.calc-txt h2{font-size:clamp(18px,2.1vw,23px);font-weight:800;color:var(--navy);letter-spacing:-.025em;margin-bottom:6px}
.calc-txt p{font-size:14px;color:var(--body);line-height:1.6}
.calc-cta{flex-shrink:0;text-decoration:none}

/* ---------- reviews ---------- */
.rev-summary{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:center;font-size:14px;color:var(--soft)}
.rev-summary strong{color:var(--navy);font-weight:800}
.rev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}
.rev-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;
  box-shadow:0 1px 2px rgba(4,33,81,.04);display:flex;flex-direction:column}
.rev-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.rev-card blockquote{font-size:13.5px;color:var(--body);line-height:1.7;margin-bottom:14px;flex:1}
.rev-card figcaption{font-size:12.5px;color:var(--soft);display:flex;align-items:center;gap:6px}
.rev-card figcaption strong{color:var(--navy);font-weight:700}

/* ---------- areas ---------- */
.area-wrap{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:22px}
.area-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.area-link{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:9px 15px;font-size:13px;
  color:var(--navy);font-weight:600;text-decoration:none;transition:all .2s}
.area-link:hover{border-color:var(--teal);color:var(--teal)}
.area-link.is-lead{border-color:var(--teal);color:var(--teal);font-weight:700}

/* ---------- guides ---------- */
.guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px}
.guide-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:24px;display:flex;
  flex-direction:column;text-decoration:none;box-shadow:0 1px 2px rgba(4,33,81,.04);transition:all .22s}
.guide-card:hover{border-color:var(--teal);transform:translateY(-4px);box-shadow:0 16px 40px rgba(4,33,81,.11)}
.guide-title{font-size:16px;font-weight:800;color:var(--navy);letter-spacing:-.015em;line-height:1.35;margin:12px 0 10px}
.guide-copy{font-size:13.5px;color:var(--body);line-height:1.65;flex:1}
.guide-foot{display:inline-flex;align-items:center;gap:7px;color:var(--teal);font-weight:700;font-size:13.5px;margin-top:14px}

/* ---------- final CTA + contact ---------- */
.final-cta{padding:clamp(44px,6vw,86px) var(--gut);background:linear-gradient(150deg,var(--navy) 0%,var(--navy2) 100%)}
.final-h2{font-size:clamp(24px,3.3vw,38px);font-weight:800;color:#fff;letter-spacing:-.03em;line-height:1.14;margin-bottom:12px}
.final-lede{font-size:clamp(14.5px,1.7vw,16.5px);color:rgba(255,255,255,.76);line-height:1.65;margin-bottom:24px}
.final-btn{padding:16px 30px;font-size:15.5px;text-decoration:none}
.final-alt{margin:28px 0 14px;font-size:13px;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.12em;font-weight:700}
.final-contact{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:left}
.fc-card{display:flex;align-items:center;gap:13px;padding:15px 17px;border-radius:var(--r-md);
  background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.16);text-decoration:none;transition:all .2s}
.fc-card:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.42);transform:translateY(-2px)}
.fc-ic{width:40px;height:40px;border-radius:var(--r-md);background:rgba(255,255,255,.12);display:inline-flex;
  align-items:center;justify-content:center;flex-shrink:0}
.fc-txt{display:flex;flex-direction:column;min-width:0}
.fc-txt strong{color:#fff;font-size:14.5px;font-weight:700}
.fc-txt em{font-style:normal;color:rgba(255,255,255,.62);font-size:12.5px;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- moving banner ----------
   Was a full-bleed navy slab of shouty uppercase white text with a hard cut at
   each edge. Now a quiet rail of chips on a light ground, with the edges
   masked so items fade in and out instead of being chopped off. */
.tickerbar{
  background:var(--page);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:14px 0;
  overflow:hidden;
}
.tick-wrap{
  overflow:hidden;
  white-space:nowrap;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 90px,#000 calc(100% - 90px),transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 90px,#000 calc(100% - 90px),transparent 100%);
}
.tick-inner{display:inline-flex;gap:10px;animation:ticker 64s linear infinite;will-change:transform}
.tick-item{
  display:inline-flex;align-items:center;gap:9px;flex-shrink:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  padding:8px 15px;
  font-size:13px;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
  color:var(--navy);
  line-height:1.2;
}
.tick-mark{
  width:6px;height:6px;border-radius:50%;flex-shrink:0;
  background:var(--teal);
  box-shadow:0 0 0 3px rgba(1,151,184,.14);
}
.tick-wrap:hover .tick-inner{animation-play-state:paused}
/* the global prefers-reduced-motion rule stops the animation; without it the
   rail would sit frozen mid-scroll, so start it from the beginning instead */
@media(prefers-reduced-motion:reduce){
  .tick-inner{transform:none!important}
  .tick-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* ---------- wizard ---------- */
.wiz-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wiz-back{display:inline-flex;align-items:center;gap:7px;background:none;border:none;color:var(--body);font-size:13.5px;
  font-weight:600;cursor:pointer;font-family:inherit;padding:10px 6px;margin-left:-6px;border-radius:var(--r-sm);min-height:38px}
.wiz-back:hover{color:var(--teal)}
.wiz-back:hover svg{stroke:var(--teal)}

/* ---------- article ---------- */
.tbl-wrap{overflow-x:auto;margin:6px 0 18px;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff}
.post-tbl{width:100%;border-collapse:collapse;font-size:14.5px;min-width:440px}
.post-tbl th{background:var(--mist);color:var(--navy);font-weight:700;text-align:left;padding:13px 16px;
  border-bottom:1px solid var(--line);white-space:nowrap}
.post-tbl td{padding:12px 16px;color:var(--body);border-bottom:1px solid #EEF3F9;vertical-align:top}
.post-tbl tr:last-child td{border-bottom:none}
.post-note{display:flex;gap:13px;align-items:flex-start;background:var(--mist);border:1px solid var(--line);
  border-left:3px solid var(--teal);border-radius:var(--r-lg);padding:17px 19px;margin:6px 0 8px}
.author-box{display:flex;gap:18px;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-xl);padding:24px;box-shadow:0 1px 2px rgba(4,33,81,.04)}

/* =====================================================================
   Responsive
   ===================================================================== */
@media(max-width:1080px){
  .svc-band{grid-template-columns:repeat(2,1fr)}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .trust-bar{grid-template-columns:repeat(2,1fr)}
  .trust-item:nth-child(3){border-left:none}
  .trust-item:nth-child(n+3){border-top:1px solid var(--line)}
}
@media(max-width:860px){
  /* headline and proof, then the form, then the secondary actions */
  .hero-inner{flex-direction:column;align-items:stretch}
  .hero-copy{display:contents}
  .hero-head{order:1}
  .hero-card-col{order:2;flex:none;max-width:460px;margin:0 auto;width:100%}
  .hero-tail{order:3;max-width:460px;margin:0 auto;width:100%}
  .hero-geo,.hero-lines{display:none}
  .hero-inner{gap:18px}
  .hero-head{margin-bottom:0}
  .hero-head .hero-rating{margin-bottom:0}
  .hero-tail{margin-top:2px}
  .start-points{gap:6px 14px;margin-top:12px}
  .svc-more{grid-template-columns:1fr}
  .calc-promo{flex-direction:column;align-items:flex-start}
  .calc-cta{width:100%;justify-content:center}
  .final-contact{grid-template-columns:1fr}
}
@media(max-width:640px){
  /* mobile density: shorter sections, tighter type, no orphan cards */
  :root{--sp-sec:38px;--sp-tight:26px}
  .hero-wrap{padding-top:88px;padding-bottom:34px}
  /* Container-driven here too. A flat 29px overflowed a 390px phone's column and
     split both halves, giving a four-line headline that pushed the CTA down the
     page; 25px keeps the intended two lines on the common phone widths and still
     scales up to 34px on larger handsets. */
  .hero-h1{font-size:clamp(25px,6.9cqw,34px);line-height:1.1}
  .hero-sub{font-size:14.5px;line-height:1.6;margin-bottom:16px}
  /* the starting-point card already carries the primary action on mobile */
  .hero-btn-primary{display:none}
  .hero-cta{flex-direction:column;gap:9px;margin-bottom:16px}
  .hero-btn{width:100%;justify-content:center;padding:14px 18px}
  .cover-row{font-size:12px;gap:5px 7px}
  .trust-shell{margin-top:-22px}
  .trust-bar{grid-template-columns:1fr 1fr}
  .trust-item{padding:14px 12px;gap:10px;border-left:none;border-top:1px solid var(--line)}
  .trust-item:nth-child(1),.trust-item:nth-child(2){border-top:none}
  .trust-item:nth-child(even){border-left:1px solid var(--line)}
  .trust-ic{width:32px;height:32px}
  .trust-txt strong{font-size:13px}
  .trust-txt em{font-size:11px}
  .sec-head{margin-bottom:22px}
  .svc-band{grid-template-columns:1fr;gap:11px}
  .svc-card-v2{padding:18px;flex-direction:row;align-items:flex-start;gap:14px;flex-wrap:wrap}
  .svc-card-v2 .svc-ic{width:42px;height:42px}
  .svc-title{margin:0;font-size:16px;flex:1 1 auto;align-self:center}
  .svc-copy{flex:1 1 100%;font-size:13.5px;margin-top:-2px}
  .svc-foot{margin-top:8px;flex:1 1 100%}
  .svc-card-v2{gap:12px 14px}
  .svc-wide{padding:18px;gap:12px 14px;flex-wrap:wrap;align-items:flex-start}
  .svc-wide .svc-ic{width:42px;height:42px}
  .svc-wide-txt{flex:1 1 auto;align-self:center}
  .svc-wide-txt strong{margin-bottom:0;font-size:16px}
  .svc-wide-txt span{flex:1 1 100%;font-size:13.5px;margin-top:8px;display:block}
  .svc-wide .svc-arrow{order:3}
  .stats-grid{grid-template-columns:1fr 1fr;gap:10px}
  .stat-cell{padding:16px 14px}
  .stat-ic{width:32px;height:32px;margin-bottom:10px}
  .stat-lab{font-size:13px}
  .stat-sub{font-size:11.5px}
  .adv-photo{aspect-ratio:5/4}
  .adv-body{padding:18px}
  .rev-extra{display:none}          /* three reviews is enough on a phone */
  .rev-grid{gap:11px}
  .rev-card{padding:18px}
  .area-links .area-link:nth-child(n+9){display:none}
  .guide-grid{gap:12px}
  .guide-card{padding:20px}
  .final-cta{padding-top:40px;padding-bottom:44px}
  .final-btn{width:100%;justify-content:center;padding:16px 20px}
  .final-alt{margin:22px 0 12px;font-size:12px}
  .fc-card{padding:13px 15px}
  .tick-item{font-size:12px;padding:7px 13px;gap:8px}
  .tick-inner{gap:8px}
  .tickerbar{padding:12px 0}
  .tick-wrap{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 40px,#000 calc(100% - 40px),transparent 100%);
             mask-image:linear-gradient(90deg,transparent 0,#000 40px,#000 calc(100% - 40px),transparent 100%)}
  .tickerbar{padding:11px 0}
  .wiz-grid{grid-template-columns:1fr}
  .post-tbl{font-size:13.5px}
  .footer-links{gap:22px!important}
}
@media(max-width:400px){
  .start-grid{grid-template-columns:1fr 1fr;gap:8px}
  .start-tile{min-height:84px;padding:12px 6px}
  .start-tile span{font-size:11.5px}
  .trust-bar{grid-template-columns:1fr}
  .trust-item:nth-child(even){border-left:none}
  .trust-item:nth-child(2){border-top:1px solid var(--line)}
}

/* ---------- mobile sticky action bar ---------- */
.mob-cta-bar{display:none}
@media(max-width:860px){
  .mob-cta-bar{display:block!important;border-top:none!important;position:fixed;left:0;right:0;bottom:0;z-index:500;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));
    background:linear-gradient(to top,rgba(247,250,253,.98) 62%,rgba(247,250,253,0));
    pointer-events:none}
  .mcb-inner{display:flex;gap:8px;align-items:stretch;max-width:520px;margin:0 auto;pointer-events:auto}
  .mcb-ic{width:48px;flex:0 0 48px;display:inline-flex;align-items:center;justify-content:center;
    background:#fff;border:1.5px solid var(--line);border-radius:var(--r-md);text-decoration:none;
    box-shadow:0 2px 10px rgba(4,33,81,.10);transition:all .2s}
  .mcb-ic:active{transform:scale(.96)}
  .mcb-go{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--teal);
    color:#fff;font-weight:700;font-size:14.5px;border-radius:var(--r-md);text-decoration:none;padding:14px 12px;
    box-shadow:0 4px 16px rgba(1,151,184,.34);transition:all .2s}
  .mcb-go:active{transform:scale(.98)}
  body{padding-bottom:82px}
}

/* ---------- typography system ----------
   Archivo (self-hosted) for headings, Arial for everything readable.
   Two families only; hierarchy carried by size, weight and tracking. */
:root{--head:'Archivo','Arial Narrow',Arial,sans-serif;
  --body-font:Arial,'Helvetica Neue',Helvetica,sans-serif}
body,input,select,textarea,button{font-family:var(--body-font)}
h1,h2,h3,h4,h5,.hero-h1,.sec-h2,.start-title,.svc-title,.stat-big,.guide-title,
.adv-name,.final-h2,.calc-txt h2,.svc-wide-txt strong,.trust-txt strong{font-family:var(--head)}
h1,.hero-h1{font-weight:800;letter-spacing:-.035em;line-height:1.06}
h2,.sec-h2,.final-h2{font-weight:800;letter-spacing:-.03em;line-height:1.14}
h3,.svc-title,.guide-title,.adv-name,.start-title{font-weight:700;letter-spacing:-.02em;line-height:1.25}
h4{font-weight:700;letter-spacing:-.015em}
.stat-big{font-weight:800;letter-spacing:-.035em}
.slabel{font-family:var(--body-font);font-weight:700}
p,li,blockquote,figcaption,label,td,th{font-family:var(--body-font)}
/* body copy sizing that holds up on a phone */
p{font-size:15.5px;line-height:1.7}
@media(min-width:861px){p{font-size:16px;line-height:1.72}}

/* =====================================================================
   Location landing pages
   ===================================================================== */
.loc-hero{position:relative;overflow:hidden;padding:clamp(88px,10vw,132px) var(--gut) clamp(36px,5vw,64px);
  background:linear-gradient(160deg,#EEF7FE 0%,#F6FBFF 55%,#FFF 100%)}
.loc-hero-inner{position:relative;z-index:2;display:flex;gap:clamp(24px,4vw,56px);align-items:center}
.loc-hero-copy{flex:1 1 540px;min-width:0}
.loc-card-points{list-style:none;display:grid;gap:9px;margin:0 0 16px}
.loc-card-points li{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;color:var(--body);line-height:1.5}
.loc-card-points li svg{margin-top:2px}
.start-note{font-size:12.5px;color:var(--soft);text-align:center;margin-top:11px;line-height:1.55}
.loc-warn-lede{font-size:13.5px;color:var(--body);line-height:1.65;background:#FFF7E6;border:1px solid #F2DFAE;
  border-left:3px solid #E0A828;border-radius:var(--r-sm);padding:12px 14px;margin-bottom:14px}
.loc-para{font-size:16px;color:var(--body);line-height:1.8;margin-bottom:16px}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.loc-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:24px;
  box-shadow:0 1px 2px rgba(4,33,81,.04)}
.loc-card-h{font-size:16.5px;color:var(--navy);margin-bottom:9px}
.loc-card-p{font-size:14px;color:var(--body);line-height:1.7}
.who-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.who-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:22px;display:flex;
  flex-direction:column;text-decoration:none;box-shadow:0 1px 2px rgba(4,33,81,.04);transition:all .22s}
.who-card:hover{border-color:var(--teal);transform:translateY(-3px);box-shadow:0 14px 34px rgba(4,33,81,.10)}
.who-h{font-size:16px;color:var(--navy);margin:14px 0 7px}
.who-p{font-size:13.5px;color:var(--body);line-height:1.65;flex:1}
.remote-band{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-xl);padding:clamp(20px,3vw,28px);box-shadow:0 2px 6px rgba(4,33,81,.05)}
.proc-list{list-style:none;display:grid;gap:12px;margin:0;counter-reset:step}
.proc-item{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);padding:20px 22px;box-shadow:0 1px 2px rgba(4,33,81,.04)}
.proc-num{font-family:var(--head);font-weight:800;font-size:15px;color:var(--teal);background:var(--wash);
  width:38px;height:38px;border-radius:var(--r-md);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.proc-h{font-size:16px;color:var(--navy);margin-bottom:5px}
.proc-p{font-size:14px;color:var(--body);line-height:1.7}
.art-h2{font-size:clamp(20px,2.4vw,27px);color:var(--navy);margin-bottom:14px}
.art-list{list-style:none;display:grid;gap:11px;margin:4px 0 16px}
.art-list li{display:flex;gap:11px;align-items:flex-start;font-size:15.5px;color:var(--body);line-height:1.75}
.art-li-ic{flex-shrink:0;margin-top:3px}
.art-list strong{color:var(--navy)}

/* =====================================================================
   Debt consolidation calculator
   ===================================================================== */
.calc-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);
  padding:clamp(20px,3vw,32px);box-shadow:0 2px 6px rgba(4,33,81,.05),0 14px 40px rgba(4,33,81,.08)}
.calc-h{font-size:clamp(20px,2.5vw,27px);color:var(--navy);margin-bottom:9px}
.calc-lede{font-size:14.5px;color:var(--body);line-height:1.7;margin-bottom:20px}
.calc-rows{display:grid;gap:10px}
.calc-head-row{display:grid;grid-template-columns:1.15fr 1fr 1fr 40px;gap:10px;font-size:11.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--soft);padding:0 2px}
.calc-row{display:grid;grid-template-columns:1.15fr 1fr 1fr 40px;gap:10px;align-items:end}
.calc-field{display:flex;flex-direction:column;min-width:0}
.calc-lab{display:none;font-size:12px;font-weight:700;color:var(--body);margin-bottom:5px}
.calc-field .ci{width:100%;padding:12px 13px;font-size:15px}
.calc-money{position:relative;display:block}
.calc-money em{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--soft);
  font-size:14.5px;pointer-events:none}
.calc-money em.suffix{left:auto;right:12px}
.calc-money input{padding-left:26px!important}
.calc-terms .calc-money input{padding-left:13px!important;padding-right:56px!important}
.calc-del{width:40px;height:44px;border:1.5px solid var(--line);background:#fff;border-radius:var(--r-md);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s}
.calc-del:hover:not(:disabled){border-color:#B4344A;background:#FFF5F6}
.calc-del:disabled{cursor:not-allowed;opacity:.5}
.calc-add{margin-top:12px;background:var(--wash);border:1.5px dashed rgba(1,151,184,.4);color:var(--teal);
  border-radius:var(--r-md);padding:11px 18px;font-family:inherit;font-size:13.5px;font-weight:700;cursor:pointer;
  transition:all .2s;min-height:44px}
.calc-add:hover{background:#fff;border-style:solid;border-color:var(--teal)}
.calc-terms{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;padding-top:20px;
  border-top:1px solid var(--line)}
.calc-terms .calc-lab{display:block}
.calc-totals{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.calc-totals div{background:var(--mist);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;
  display:flex;flex-direction:column;gap:4px}
.calc-totals span{font-size:12.5px;color:var(--soft)}
.calc-totals strong{font-family:var(--head);font-size:21px;color:var(--navy);letter-spacing:-.02em}
.calc-go{width:100%;justify-content:center;margin-top:18px;padding:15px 0;font-size:15px}
.calc-go:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.calc-hint{font-size:12.5px;color:var(--soft);text-align:center;margin-top:10px}
.calc-result{margin-top:26px;padding-top:24px;border-top:2px solid var(--line)}
.calc-res-h{font-size:19px;color:var(--navy);margin-bottom:16px}
.calc-compare{display:grid;grid-template-columns:1fr 44px 1fr;gap:12px;align-items:stretch}
.cc-box{background:var(--mist);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;
  display:flex;flex-direction:column;gap:5px}
.cc-box.cc-alt{background:var(--wash);border-color:rgba(1,151,184,.28)}
.cc-lab{font-size:12.5px;color:var(--body);line-height:1.45}
.cc-val{font-family:var(--head);font-size:clamp(24px,3.2vw,31px);font-weight:800;color:var(--navy);letter-spacing:-.03em}
.cc-sub{font-size:12px;color:var(--soft)}
.cc-arrow{display:flex;align-items:center;justify-content:center}
.cc-diff{margin-top:12px;background:linear-gradient(135deg,var(--navy),var(--navy2));border-radius:var(--r-lg);
  padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.cc-diff span{font-size:13.5px;color:rgba(255,255,255,.82)}
.cc-diff strong{font-family:var(--head);font-size:clamp(23px,3vw,30px);color:#fff;letter-spacing:-.03em}
.cc-diff.is-neg{background:linear-gradient(135deg,#7A2B3A,#9B3A4C)}
.calc-cost{margin-top:16px;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.calc-cost h4{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--body);
  background:var(--mist);padding:11px 16px;border-bottom:1px solid var(--line);font-family:var(--body-font)}
.cost-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.cost-grid div{padding:16px;display:flex;flex-direction:column;gap:4px;border-left:1px solid var(--line)}
.cost-grid div:first-child{border-left:none}
.cost-grid span{font-size:12.5px;color:var(--soft);line-height:1.4}
.cost-grid strong{font-family:var(--head);font-size:20px;color:var(--navy);letter-spacing:-.02em}
.calc-warn{display:flex;gap:13px;align-items:flex-start;background:#FFF7E6;border:1px solid #F2DFAE;
  border-left:3px solid #E0A828;border-radius:var(--r-lg);padding:16px 18px;margin-top:16px}
.calc-warn p{font-size:13.5px;color:#6B4E12;line-height:1.7;margin:0}
.calc-warn strong{color:#5A3F0A}
.calc-small{font-size:12px;color:var(--soft);line-height:1.7;margin-top:14px}

/* summary handed to the enquiry form */
.summary-box{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:22px;margin-bottom:18px;
  box-shadow:0 1px 2px rgba(4,33,81,.04)}
.summary-top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.summary-top h3{font-size:16.5px;color:var(--navy)}
.summary-copy{padding:9px 15px;font-size:13px;min-height:40px}
.summary-hint{font-size:13.5px;color:var(--body);line-height:1.6;margin-bottom:12px}
.summary-text{width:100%;border:1.5px solid var(--line);border-radius:var(--r-md);padding:13px;font-size:12.5px;
  line-height:1.6;color:var(--body);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  background:var(--mist);resize:vertical}

/* =====================================================================
   Responsive — new pages
   ===================================================================== */
@media(max-width:1080px){
  .who-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .loc-hero-inner{flex-direction:column;align-items:stretch}
  .loc-hero-copy{flex:none}
  .loc-grid{grid-template-columns:1fr}
  .remote-band{flex-direction:column;align-items:flex-start}
  .remote-band .calc-cta{width:100%;justify-content:center}
}
@media(max-width:640px){
  .who-grid{grid-template-columns:1fr;gap:11px}
  .who-card{flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:12px 14px;padding:18px}
  .who-h{margin:0;align-self:center;flex:1 1 auto;font-size:15.5px}
  .who-p{flex:1 1 100%;font-size:13.5px}
  .who-card .svc-foot{flex:1 1 100%;margin-top:8px}
  .loc-card{padding:18px}
  .proc-item{padding:16px 18px;gap:13px}
  .proc-num{width:34px;height:34px;font-size:14px}
  .loc-para{font-size:15.5px;line-height:1.75}

  /* calculator: one column, labels visible, thumb-sized controls */
  .calc-head-row{display:none}
  .calc-row{grid-template-columns:1fr 1fr;gap:10px;padding:14px;border:1px solid var(--line);
    border-radius:var(--r-lg);background:var(--mist);position:relative}
  .calc-row .calc-field:first-child{grid-column:1 / -1}
  .calc-lab{display:block}
  .calc-field .ci{padding:13px;font-size:16px}      /* 16px stops iOS zooming on focus */
  .calc-del{position:absolute;top:10px;right:10px;width:36px;height:36px}
  .calc-terms{grid-template-columns:1fr;gap:12px}
  .calc-totals{grid-template-columns:1fr}
  .calc-compare{grid-template-columns:1fr;gap:10px}
  .cc-arrow{transform:rotate(90deg);height:26px}
  .cost-grid{grid-template-columns:1fr}
  .cost-grid div{border-left:none;border-top:1px solid var(--line)}
  .cost-grid div:first-child{border-top:none}
  .summary-top{flex-direction:column;align-items:stretch}
  .summary-copy{width:100%;justify-content:center}
}

/* ---- footer link rows: comfortable to hit on a phone, unchanged on desktop ---- */
.foot-link{display:block;font-size:13px;line-height:1.35;padding:5px 0;margin-bottom:2px}
.foot-contact{display:inline-block;padding:4px 0}
@media(max-width:900px){
  .foot-link{padding:10px 0;font-size:14px;min-height:22px}
  .foot-contact{padding:9px 0;font-size:14px}
  .fc-txt em{font-size:13px}
}

/* ---- small print links: keep the type small, give the target real height ---- */
.legal-link{display:inline-block;font-size:11.5px;padding:7px 2px;line-height:1.2}
.inline-link{display:inline-block;padding:4px 0}
.crumb-link{display:inline-block;padding:3px 0;min-height:24px;line-height:18px}
@media(max-width:900px){
  .legal-link{padding:9px 2px;font-size:12px}
}

/* ---------- Areas mega menu ----------
   20 towns in one column ran off the bottom of the screen. Grouped by region
   across columns instead, capped to the viewport with its own scroll as a
   last resort on very short windows. */
.nav-pop-mega{
  position:fixed!important; top:68px!important;
  left:0!important; right:0!important; margin:0 auto!important; transform:none!important;
  width:min(560px,calc(100vw - 32px));
  max-height:calc(100vh - 96px); overflow-y:auto;
}
/* centred on the viewport, so the little pointer would aim at nothing */
.nav-pop-mega .nav-pop-arrow{display:none}
/* Multi-column flow rather than a rigid grid: groups of 1 and 7 links pack
   together instead of leaving half the panel empty. */
.nav-mega-grid{columns:2;column-gap:32px}
.nav-mega-col{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;
  display:inline-block;width:100%;margin-bottom:10px}
.nav-mega-head{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;
  color:var(--teal);padding:10px 8px 6px;border-bottom:1px solid var(--line);margin-bottom:4px}
.nav-mega-link{display:block;padding:8px 8px;border-radius:var(--r-sm);font-size:13.5px;
  line-height:1.3;color:var(--navy);font-weight:600;text-decoration:none;transition:background .15s,color .15s}
.nav-mega-link:hover,.nav-mega-link:focus{background:var(--mist);color:var(--teal)}


/* ---------- footer columns ----------
   Areas We Cover holds 20 links. In a single stack it set the height of the
   whole footer, so it flows over two columns and the footer stays compact. */
.foot-col-links{display:flex;flex-direction:column}
.foot-col-wide .foot-col-links{
  display:block;
  columns:2;
  column-gap:30px;
}
.foot-col-wide{min-width:250px}
@media(max-width:768px){
  .foot-col-wide{min-width:0;width:100%}
  .foot-col-wide .foot-col-links{column-gap:18px}
}

/* ---------- article trust / signposting blocks ---------- */
.debt-help{display:flex;gap:14px;align-items:flex-start;background:var(--mist);
  border:1px solid var(--line);border-left:4px solid var(--teal);
  border-radius:var(--r-md);padding:16px 18px;margin:0 0 26px}
.debt-help-ic{flex-shrink:0;margin-top:2px}
.debt-help strong{display:block;color:var(--navy);font-size:15px;margin-bottom:5px}
.debt-help p{font-size:14px;color:var(--body);line-height:1.65;margin:0}
.debt-help a{color:var(--teal);font-weight:600}

.cluster-link{font-size:15px;line-height:1.7;color:var(--body);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  padding:15px 18px;margin:0 0 30px}
.cluster-link a{color:var(--teal);font-weight:700}

.scope-note{background:var(--page);border:1px solid var(--line);
  border-radius:var(--r-md);padding:15px 18px;margin:30px 0 0}
.scope-note p{font-size:13.5px;color:var(--body);line-height:1.7;margin:0}
.scope-note strong{color:var(--navy)}
.scope-note a{color:var(--teal);font-weight:600}
@media(max-width:600px){
  .debt-help{padding:14px 15px;gap:11px}
  .cluster-link,.scope-note{padding:13px 15px}
}

/* ---------- descriptive guide links ---------- */
.guide-links{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 24px;text-align:left;margin:0;padding:0}
.guide-links li{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px}
.guide-links a{display:block;color:var(--navy);font-weight:700;font-size:15px;
  line-height:1.35;text-decoration:none;margin-bottom:4px}
.guide-links a:hover,.guide-links a:focus{color:var(--teal)}
.guide-links span{display:block;font-size:13.5px;color:var(--body);line-height:1.6}
@media(max-width:760px){.guide-links{grid-template-columns:1fr}}

/* ---------- deferred enquiry handoff ---------- */
.handoff{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:22px;text-align:center;margin-top:18px}
.handoff-go{padding:15px 26px;font-size:14px;text-decoration:none;width:100%;max-width:380px}
.handoff-note{font-size:13px;color:var(--body);line-height:1.65;margin:14px auto 0;max-width:520px}
.handoff-note a{color:var(--teal);font-weight:600}

/* byline links are standalone targets, not words inside a sentence */
.byline-link{display:inline-block;padding:5px 0;min-height:24px;line-height:1.4}

/* ---------- enquiry confirmation ---------- */
.recv-tick{width:60px;height:60px;border-radius:50%;background:var(--teal);
  display:inline-flex;align-items:center;justify-content:center;margin-bottom:20px}
.recv-h1{font-family:var(--head);font-size:clamp(27px,4vw,40px);font-weight:800;
  color:var(--navy);letter-spacing:-.03em;line-height:1.12;margin-bottom:14px}
.recv-lede{font-size:17px;color:var(--body);line-height:1.7;max-width:52ch;margin:0 auto 30px}
.recv-next{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:24px 26px;text-align:left;margin:0 auto 22px;max-width:560px}
.recv-next h2{font-family:var(--head);font-size:17px;color:var(--navy);margin-bottom:12px}
.recv-next ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px}
.recv-next li{font-size:15px;color:var(--body);line-height:1.65}
.recv-next strong{color:var(--navy)}
.recv-fee{font-size:14px;color:var(--body);line-height:1.7;max-width:56ch;margin:0 auto 26px}
.recv-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:22px}
.recv-call,.recv-read{padding:14px 24px;text-decoration:none;font-size:14px}
.recv-small{font-size:13.5px;color:var(--soft);line-height:1.7}
.recv-small a{color:var(--teal);font-weight:600}
@media(max-width:600px){.recv-cta>*{width:100%}}

/* ---------- calculator validation ---------- */
.calc-errors{background:#FDF1F3;border:1px solid #F0C2CB;border-left:4px solid #A32943;
  border-radius:var(--r-md);padding:14px 17px;margin:14px 0 0;outline:none}
.calc-errors:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.calc-errors strong{display:block;color:#8C2038;font-size:14.5px;margin-bottom:6px}
.calc-errors ul{margin:0;padding-left:19px}
.calc-errors li{font-size:13.5px;color:#7A2A3B;line-height:1.6}
.field-err{display:block;font-size:12.5px;color:#A32943;margin-top:5px;line-height:1.45}
.calc-field input[aria-invalid="true"],.calc-row input[aria-invalid="true"]{
  border-color:#D08A98;background:#FFF8F9}
