/* ============================================================
   INTERIOR PAGES
   Loaded on everything except the homepage.
   ============================================================ */

/* ============ BREADCRUMBS ============ */
.crumb{margin-bottom:22px}
.crumb ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:13.5px}
.crumb li{display:inline-flex;align-items:center;gap:7px;color:var(--slate)}
.crumb a{color:var(--slate);transition:.2s}
.crumb a:hover{color:var(--blue)}
.crumb svg{width:13px;height:13px;opacity:.45}
.crumb [aria-current]{color:var(--blue-ink);font-weight:600}

/* ============ INTERIOR HERO ============ */
.page-hero{position:relative;overflow:hidden;padding:44px 0 56px;
  background:radial-gradient(760px 420px at 85% -20%,rgba(2,171,228,.13),transparent 60%),
             linear-gradient(180deg,#f4f9fc 0%,#eaf5fb 100%)}
.page-hero::after{content:"";position:absolute;right:-140px;bottom:-160px;width:440px;height:440px;
  background:radial-gradient(circle,rgba(246,130,5,.10),transparent 70%);border-radius:50%}
.page-hero .wrap{position:relative;z-index:2}
.page-hero h1{font-size:clamp(30px,4.1vw,48px);font-weight:800;color:var(--ink);max-width:20ch}
.page-hero .lead{margin-top:18px;font-size:17.5px;color:var(--slate);max-width:68ch}
.page-hero.narrow h1{max-width:none}
.hero-meta{display:flex;flex-wrap:wrap;gap:20px;margin-top:24px;font-size:13.5px;color:var(--slate)}
.hero-meta span{display:inline-flex;align-items:center;gap:8px}
.hero-meta svg{width:15px;height:15px;color:var(--blue)}

/* ============ BODY LAYOUT ============ */
.entry-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;padding:64px 0 84px}
.entry-layout.full{grid-template-columns:minmax(0,1fr)}
@media(max-width:1040px){.entry-layout{grid-template-columns:minmax(0,1fr);gap:48px}}

/* ============ PROSE
   Styles the classic-HTML post bodies. Deliberately generous:
   these pages are long-form and read better with air.
   ============================================================ */
.prose{font-size:16.8px;line-height:1.78;color:#33454f;max-width:74ch}
.prose>*+*{margin-top:1.25em}

.prose h2{font-size:clamp(23px,2.5vw,30px);font-weight:800;color:var(--ink);margin-top:2em;padding-top:.15em;position:relative}
.prose h2::before{content:"";display:block;width:42px;height:3px;background:var(--orange);border-radius:3px;margin-bottom:16px}
.prose h3{font-size:clamp(19px,2vw,22.5px);font-weight:700;color:var(--blue-ink);margin-top:1.7em}
.prose h4{font-size:17.5px;font-weight:700;color:var(--blue-ink);margin-top:1.5em}
.prose h2+p,.prose h3+p,.prose h4+p{margin-top:.7em}

.prose a{color:var(--blue);font-weight:500;text-decoration:underline;text-decoration-color:rgba(2,171,228,.32);text-underline-offset:3px;transition:.2s}
.prose a:hover{color:var(--blue-dark);text-decoration-color:var(--blue-dark)}
.prose strong{color:var(--blue-ink);font-weight:650}

.prose ul,.prose ol{padding-left:0;list-style:none}
.prose li{position:relative;padding-left:30px;margin-top:.6em}
.prose ul>li::before{content:"";position:absolute;left:4px;top:.62em;width:8px;height:8px;border-radius:50%;
  background:var(--blue);box-shadow:0 0 0 4px rgba(2,171,228,.14)}
.prose ol{counter-reset:li}
.prose ol>li{counter-increment:li}
.prose ol>li::before{content:counter(li);position:absolute;left:0;top:.08em;width:22px;height:22px;border-radius:50%;
  background:rgba(2,171,228,.12);color:var(--blue);font-family:'Sora',sans-serif;font-size:12px;font-weight:700;
  display:grid;place-items:center}
.prose li>ul,.prose li>ol{margin-top:.5em}

.prose blockquote{margin-left:0;padding:22px 26px;background:var(--bg-soft);border-left:3px solid var(--blue);
  border-radius:0 var(--r) var(--r) 0;color:var(--blue-ink);font-size:17px}
.prose blockquote p{margin:0}

.prose img{border-radius:var(--r);box-shadow:var(--shadow-sm);margin-left:auto;margin-right:auto}
.prose figure{margin:2em 0}
.prose figcaption{margin-top:10px;font-size:13.5px;color:var(--slate);text-align:center}

/* Tables — 22 posts carry fee and timeline tables. */
.prose .table-scroll{overflow-x:auto;margin:2em 0;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm)}
.prose table{border-collapse:collapse;width:100%;min-width:520px;font-size:15px}
.prose th,.prose td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line)}
.prose thead th{background:var(--blue-ink);color:#fff;font-family:'Sora',sans-serif;font-weight:600;font-size:14px;
  letter-spacing:.01em;border-bottom:none}
.prose tbody tr:nth-child(even){background:var(--bg-soft)}
.prose tbody tr:last-child td{border-bottom:none}
.prose td strong{color:var(--blue-ink)}

.prose hr{border:none;height:1px;background:var(--line);margin:2.6em 0}
.prose code{background:var(--bg-soft);padding:2px 7px;border-radius:6px;font-size:.9em;color:var(--blue-ink)}

/* Strip inline colour/size from the 8 legacy posts that carry it. */
.prose [style*="color"],.prose [style*="font-size"],.prose [style*="font-family"]{
  color:inherit !important;font-size:inherit !important;font-family:inherit !important}

/* ============ SIDEBAR ============ */
.entry-side{display:grid;gap:20px;align-content:start;position:sticky;top:98px}
@media(max-width:1040px){.entry-side{position:static;grid-template-columns:1fr 1fr}}
@media(max-width:720px){.entry-side{grid-template-columns:1fr}}
.side-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--shadow-sm)}
.side-card h2{font-family:'Sora',sans-serif;font-size:18px;font-weight:700;color:var(--blue-ink);margin-bottom:12px}

.side-quote{background:linear-gradient(160deg,var(--blue-ink),#08425a);border:none;color:#c4e3ef}
.side-quote h2{color:#fff}
.side-quote p{font-size:14.5px;line-height:1.7;margin-bottom:20px}
.side-quote .btn{width:100%;justify-content:center}
.side-call{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:14px;padding-top:16px;
  border-top:1px solid rgba(255,255,255,.12);font-family:'Sora',sans-serif;font-weight:700;font-size:16px;color:#fff;transition:.2s}
.side-call svg{width:17px;height:17px;color:var(--orange)}
.side-call:hover{color:var(--orange)}

.side-nav ul{list-style:none;display:grid;gap:2px;margin:0 -10px}
.side-nav a{display:block;padding:10px 12px;border-radius:10px;font-size:14.5px;color:var(--slate);transition:.18s}
.side-nav a:hover{background:var(--bg-soft);color:var(--blue);transform:translateX(3px)}
.side-nav-all{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-family:'Sora',sans-serif;
  font-weight:600;font-size:14px;color:var(--blue)}
.side-nav-all svg{width:15px;height:15px;transition:transform .2s}
.side-nav-all:hover svg{transform:translateX(4px)}

/* ============ CARDS + GRIDS ============ */
.grid{display:grid;gap:26px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1040px){.grid-4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);transition:transform .28s,box-shadow .28s,border-color .28s}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:rgba(2,171,228,.4)}
.card-link{display:flex;flex-direction:column;height:100%}
.card-media{aspect-ratio:16/10;overflow:hidden;background:var(--bg-soft)}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .card-media img{transform:scale(1.05)}
.card-body{padding:24px;display:flex;flex-direction:column;flex:1}
.card-tag{align-self:flex-start;background:rgba(2,171,228,.1);color:var(--blue-dark);font-family:'Sora',sans-serif;
  font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:50px;margin-bottom:14px}
.card-title{font-size:18px;font-weight:700;color:var(--ink);line-height:1.35;transition:.2s}
.card:hover .card-title{color:var(--blue)}
.card-excerpt{margin-top:11px;font-size:14.5px;color:var(--slate);line-height:1.65;flex:1}
.card-more{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-family:'Sora',sans-serif;
  font-weight:600;font-size:14px;color:var(--blue)}
.card-more svg{width:15px;height:15px;transition:transform .22s}
.card:hover .card-more svg{transform:translateX(4px)}

/* ============ RELATED ============ */
.related{background:var(--bg-soft);border-top:1px solid var(--line)}
.related-all{text-align:center;margin-top:44px}

/* ============ CATEGORY HUB ============ */
.hub-count{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  box-shadow:var(--shadow-sm);padding:7px 15px;border-radius:50px;font-size:13.5px;font-weight:600;
  color:var(--blue-ink);margin-bottom:20px}
.hub-count b{color:var(--blue)}
.archive-body{padding:64px 0 84px}

/* ============ PAGINATION ============ */
.pagination{display:flex;justify-content:center;margin-top:56px}
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pagination .page-numbers{display:grid;place-items:center;min-width:44px;height:44px;padding:0 14px;
  border:1px solid var(--line);border-radius:12px;background:#fff;font-family:'Sora',sans-serif;font-weight:600;
  font-size:14.5px;color:var(--blue-ink);transition:.2s}
.pagination a.page-numbers:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}
.pagination .page-numbers.current{background:var(--blue);border-color:var(--blue);color:#fff;
  box-shadow:0 8px 20px rgba(2,171,228,.32)}
.pagination .dots{border:none;background:none}

/* ============ SEARCH FORM ============ */
.searchform{display:flex;gap:10px;max-width:520px}
.searchform input[type=search]{flex:1;padding:14px 18px;border:1px solid var(--line);border-radius:50px;
  font-family:'Inter',sans-serif;font-size:15px;color:var(--ink);background:#fff;transition:.2s}
.searchform input[type=search]:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(2,171,228,.13)}
.searchform button{flex:none}

/* ============ 404 ============ */
.notfound{text-align:center;padding:96px 0 104px}
.notfound .code{font-family:'Sora',sans-serif;font-size:clamp(76px,13vw,150px);font-weight:800;line-height:1;
  background:linear-gradient(135deg,var(--blue),var(--orange));-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent}
.notfound h1{margin-top:14px;font-size:clamp(26px,3.4vw,38px);font-weight:800}
.notfound p{margin:16px auto 30px;max-width:56ch;color:var(--slate);font-size:17px}
.notfound .searchform{margin:0 auto 34px}
.notfound .nf-links{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* ============ GENERIC PAGE ============ */
.page-body{padding:64px 0 84px}
.page-body .prose{margin:0 auto}

/* ============ CTA BAND (interior) ============ */
.cta-band{background:linear-gradient(135deg,var(--blue-ink),#08425a);color:#cfe9f3;text-align:center}
.cta-band h2{font-size:clamp(26px,3.2vw,38px);font-weight:800;color:#fff;max-width:22ch;margin:0 auto}
.cta-band p{margin:16px auto 28px;max-width:58ch;font-size:16.5px}
.cta-band .cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ============ FAQ ACCORDION ============ */
.faqs{margin-top:3.4em}
.faqs h2{font-size:clamp(23px,2.5vw,30px);font-weight:800;color:var(--ink)}
.faqs h2::before{content:"";display:block;width:42px;height:3px;background:var(--orange);border-radius:3px;margin-bottom:16px}
.faq{border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow-sm);
  margin-top:14px;overflow:hidden;transition:border-color .25s,box-shadow .25s}
.faq[open]{border-color:rgba(2,171,228,.45);box-shadow:var(--shadow-md)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:pointer;
  list-style:none;padding:19px 22px;font-family:'Sora',sans-serif;font-weight:600;font-size:16px;
  color:var(--blue-ink);transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--blue)}
.faq summary svg{width:17px;height:17px;flex:none;color:var(--blue);transition:transform .3s}
.faq[open] summary svg{transform:rotate(180deg)}
.faq[open] summary{color:var(--blue)}
.faq-a{padding:0 22px 20px;color:#33454f;font-size:15.5px;line-height:1.75}
.faq-a p+p{margin-top:.8em}

/* ============ SIDEBAR CF7 FORM ============ */
.cz-form{display:grid;gap:11px}
.cz-form input,.cz-form textarea,.cz-form select{width:100%;padding:12px 15px;border:1px solid rgba(255,255,255,.18);
  border-radius:12px;background:rgba(255,255,255,.08);color:#fff;font-family:'Inter',sans-serif;font-size:14.5px;transition:.2s}
.cz-form ::placeholder{color:#9cc4d4}
.cz-form input:focus,.cz-form textarea:focus{outline:none;border-color:var(--blue);background:rgba(255,255,255,.13);
  box-shadow:0 0 0 3px rgba(2,171,228,.22)}
.cz-form textarea{resize:vertical;min-height:74px}
.cz-form input[type=submit]{background:var(--orange);border:none;color:#fff;font-family:'Sora',sans-serif;
  font-weight:600;font-size:15px;padding:13px 20px;border-radius:50px;cursor:pointer;
  box-shadow:0 10px 24px rgba(246,130,5,.32);transition:.25s}
.cz-form input[type=submit]:hover{background:var(--orange-dark);transform:translateY(-2px)}
.side-quote .wpcf7 p{margin:0}
.side-quote .wpcf7-not-valid-tip{color:#ffb4a2;font-size:12.5px;margin-top:5px}
.side-quote .wpcf7-response-output{border:1px solid rgba(255,255,255,.25);border-radius:10px;
  padding:10px 14px;font-size:13px;margin:12px 0 0}
.side-quote .wpcf7-spinner{display:none}

/* ============ INLINE CONVERSION CTAs ============ */
.icta{margin:2.6em 0}
.icta .icta-h{font-family:'Sora',sans-serif;font-weight:800;letter-spacing:.02em;line-height:1.2}
.icta .icta-t{margin-top:8px}
.icta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.icta-btn,.icta-phone{display:inline-flex;align-items:center;gap:8px;font-family:'Sora',sans-serif;
  font-weight:700;font-size:14.5px;padding:11px 24px;border-radius:50px;transition:.22s;text-decoration:none !important}
.icta-phone svg{width:15px;height:15px}

/* Boxed banner — deep blue with an orange ornament border. */
.icta-box{background:var(--blue-ink);border-radius:6px;padding:14px;text-align:center;color:#fff}
.icta-box .icta-in{border:2px solid var(--orange);outline:1px solid rgba(246,130,5,.45);outline-offset:5px;
  border-radius:3px;padding:30px 26px;position:relative}
.icta-box .icta-in::before,.icta-box .icta-in::after{content:"";position:absolute;top:-2px;bottom:-2px;width:36px;
  border-top:2px solid var(--orange);border-bottom:2px solid var(--orange)}
.icta-box .icta-in::before{left:24%}
.icta-box .icta-in::after{right:24%}
.icta-box .icta-h{font-size:clamp(22px,2.8vw,30px);text-transform:uppercase;color:#fff}
.icta-box .icta-t{color:#cfe9f3;font-size:16.5px}
.icta-box .icta-btn{background:#fff;color:var(--blue-ink)}
.icta-box .icta-btn:hover{background:var(--orange);color:#fff;transform:translateY(-2px)}
.icta-box .icta-phone{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3)}
.icta-box .icta-phone:hover{background:#fff;color:var(--blue-ink)}
.icta-box .icta-phone svg{color:var(--orange)}

/* Gradient band */
.icta-band{background:linear-gradient(120deg,var(--blue),var(--blue-dark));border-radius:var(--r-lg);
  padding:32px 30px;text-align:center;color:#fff;box-shadow:0 16px 40px rgba(2,171,228,.28)}
.icta-band .icta-h{font-size:clamp(20px,2.4vw,26px);color:#fff}
.icta-band .icta-t{color:#e3f5fd;font-size:15.5px}
.icta-band .icta-btn{background:var(--orange);color:#fff;box-shadow:0 8px 20px rgba(6,58,78,.25)}
.icta-band .icta-btn:hover{background:var(--orange-dark);transform:translateY(-2px)}
.icta-band .icta-phone{background:rgba(255,255,255,.14);color:#fff}
.icta-band .icta-phone:hover{background:#fff;color:var(--blue-dark)}

/* Slim bar */
.icta-slim{background:var(--bg-soft);border:1px solid var(--line);border-left:4px solid var(--orange);
  border-radius:var(--r);padding:18px 22px}
.icta-slim .icta-in{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.icta-slim .icta-h{font-size:17px;color:var(--blue-ink);text-transform:none}
.icta-slim .icta-btns{margin:0}
.icta-slim .icta-btn{background:var(--blue);color:#fff;padding:10px 20px}
.icta-slim .icta-btn:hover{background:var(--blue-dark)}
@media(max-width:640px){
  .icta-box .icta-in::before{left:12%}.icta-box .icta-in::after{right:12%}
  .icta-slim .icta-in{justify-content:center;text-align:center}
}

/* ============ CONTACT PAGE ============ */
.contact-body{padding:64px 0 84px}
.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:32px;align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-info{display:grid;gap:20px}
.contact-list{list-style:none;display:grid;gap:20px}
.contact-list li{display:flex;gap:14px;align-items:flex-start}
.ci-ic{width:44px;height:44px;border-radius:12px;background:rgba(2,171,228,.1);display:grid;place-items:center;flex:none;color:var(--blue)}
.ci-ic svg{width:20px;height:20px}
.contact-list small{display:block;font-size:12.5px;color:var(--slate);margin-bottom:2px}
.contact-list a,.contact-list div>span{font-family:'Sora',sans-serif;font-weight:600;font-size:15.5px;color:var(--blue-ink);transition:.2s}
.contact-list a:hover{color:var(--blue)}
.contact-steps{padding-left:20px;display:grid;gap:10px;color:var(--slate);font-size:14.5px}
/* form fields inherit the dark sidebar styles only inside .side-quote; restyle here for light card */
.contact-form-col .cz-form input,.contact-form-col .cz-form textarea,.contact-form-col .cz-form select{
  background:var(--bg-soft);border:1px solid var(--line);color:var(--ink)}
.contact-form-col .cz-form ::placeholder{color:#8fa3ad}
.contact-form-col .wpcf7-not-valid-tip{color:#d63638;font-size:12.5px;margin-top:5px}
.contact-form-col .wpcf7 p{margin:0}

/* ============ TABLE OF CONTENTS ============ */
.toc{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r);padding:0;margin-bottom:2.2em;overflow:hidden}
.toc summary{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;list-style:none;
  padding:16px 22px;font-family:'Sora',sans-serif;font-weight:700;font-size:15px;color:var(--blue-ink)}
.toc summary::-webkit-details-marker{display:none}
.toc summary svg{width:16px;height:16px;color:var(--blue);transition:transform .3s}
.toc[open] summary svg{transform:rotate(180deg)}
.toc ol{list-style:none;counter-reset:toc;padding:0 22px 18px;column-count:2;column-gap:34px}
@media(max-width:680px){.toc ol{column-count:1}}
.toc li{counter-increment:toc;padding:0;margin:0 0 4px;break-inside:avoid}
.toc li::before{content:none}
.toc a{display:flex;gap:10px;align-items:baseline;padding:6px 8px;border-radius:8px;font-size:14px;font-weight:500;
  color:var(--slate);text-decoration:none;transition:.18s}
.toc a::before{content:counter(toc,decimal-leading-zero);font-family:'Sora',sans-serif;font-size:11.5px;font-weight:700;color:var(--blue);flex:none}
.toc a:hover{background:#fff;color:var(--blue)}
.prose h2{scroll-margin-top:110px}

/* ============ BLOG FEATURE CARD ============ */
.feature-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);margin-bottom:40px;transition:box-shadow .28s,border-color .28s}
.feature-card:hover{box-shadow:var(--shadow-md);border-color:rgba(2,171,228,.4)}
.feature-link{display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch}
@media(max-width:860px){.feature-link{grid-template-columns:1fr}}
.feature-media{min-height:320px;overflow:hidden;background:var(--bg-soft)}
.feature-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.feature-card:hover .feature-media img{transform:scale(1.04)}
.feature-body{padding:38px 40px;display:flex;flex-direction:column;justify-content:center}
.feature-body h2{font-size:clamp(21px,2.3vw,28px);font-weight:800;color:var(--ink);line-height:1.25;transition:.2s}
.feature-card:hover .feature-body h2{color:var(--blue)}
.feature-body p{margin-top:14px;font-size:15.5px;color:var(--slate);line-height:1.7}
.feature-meta{display:flex;gap:20px;margin-top:18px;font-size:13px;color:var(--slate)}
.feature-meta span{display:inline-flex;align-items:center;gap:7px}
.feature-meta svg{width:14px;height:14px;color:var(--blue)}
.feature-body .card-more{margin-top:20px}

/* TOC numbering: isolate from the .prose list counters it sits inside. */
.prose .toc ol{counter-reset:toc}
.prose .toc li{counter-increment:toc;padding-left:0;margin-top:0}
.prose .toc li::before{content:none !important}
.prose .toc a{align-items:center;gap:12px;line-height:1.45}
.prose .toc a::before{content:counter(toc,decimal-leading-zero);min-width:20px;text-align:right;
  font-variant-numeric:tabular-nums;opacity:.75}

/* Closing CTA after the FAQ block. */
.icta-end{margin-top:2.2em}
.icta-end .icta{margin-bottom:0}
/* Nested h3 entries in the fallback TOC. */
.prose .toc li.toc-l3 a{padding-left:22px;font-size:13.6px}
.prose .toc li.toc-l3 a::before{opacity:.5}

/* ============ SPACING CORRECTIONS ============
   Blocks injected into .prose (FAQ, TOC, closing CTA) carry their own
   top margin. Their headings must not add the generic .prose h2 margin
   on top of it, or the gap doubles. */
.faqs{margin-top:2.6em}
.faqs>h2,.prose .faqs>h2{margin-top:0;padding-top:0}
.icta-end{margin-top:2.4em}
.prose .toc{margin-top:0}
.prose>.toc+*{margin-top:1.5em}
/* First heading of a body should not push away from the hero. */
.prose>h2:first-child,.prose>h3:first-child{margin-top:0}

/* WCAG AA link colour inside long-form content (5.93:1 on white). */
.prose a{color:var(--blue-link);text-decoration-color:rgba(2,108,143,.35)}
.prose a:hover{color:var(--blue-ink);text-decoration-color:var(--blue-ink)}
.toc a:hover{color:var(--blue-link)}
.side-nav a:hover,.card-more,.side-nav-all{color:var(--blue-link)}

/* ============ SERVICE HERO WITH FEATURED IMAGE ============ */
.hero-split{display:grid;grid-template-columns:1.08fr .92fr;gap:52px;align-items:center}
.page-hero:not(.has-media) .hero-split{grid-template-columns:1fr}
@media(max-width:960px){.hero-split{grid-template-columns:1fr;gap:36px}}
.page-hero.has-media{padding:40px 0 52px}
.page-hero.has-media h1{max-width:none}
a.eyebrow{transition:.2s}
a.eyebrow:hover{color:var(--blue-ink)}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero-actions .btn-outline{background:rgba(255,255,255,.7);backdrop-filter:blur(4px)}

.hero-media{position:relative}
.hero-media-frame{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);
  aspect-ratio:4/3;background:linear-gradient(140deg,#e3f2f9,#d3eaf5)}
.hero-media-frame::after{content:"";position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(2,171,228,.10),transparent 45%,rgba(6,58,78,.16))}
.hero-media-frame img{width:100%;height:100%;object-fit:cover;display:block}
/* decorative accent behind the frame */
.hero-media::before{content:"";position:absolute;right:-16px;top:-16px;width:120px;height:120px;
  border-radius:22px;background:linear-gradient(135deg,var(--orange),var(--orange-dark));opacity:.14;z-index:-1}

.hero-badge-card{position:absolute;left:-18px;bottom:-20px;z-index:3;display:flex;gap:26px;
  background:#fff;border-radius:16px;padding:16px 22px;box-shadow:var(--shadow-md);border:1px solid var(--line)}
.hero-badge-card.compact{gap:13px;align-items:center}
.hero-badge-card .hb-ic{width:38px;height:38px;border-radius:11px;background:rgba(2,171,228,.12);
  display:grid;place-items:center;color:var(--blue);flex:none}
.hero-badge-card .hb-ic svg{width:18px;height:18px}
.hero-badge-card>div{display:flex;flex-direction:column;gap:2px}
.hb-label{font-size:11.5px;color:var(--slate);letter-spacing:.02em}
.hb-value{font-family:'Sora',sans-serif;font-weight:700;font-size:15.5px;color:var(--blue-ink);line-height:1.25}
@media(max-width:960px){
  .hero-media{max-width:560px}
  .hero-media-frame{aspect-ratio:16/9}
  .hero-badge-card{left:12px;bottom:-16px}
}
@media(max-width:520px){
  .hero-badge-card{position:static;margin-top:16px;left:auto;bottom:auto;justify-content:center}
  .hero-media::before{display:none}
}

/* ============ CONTACT MAP ============ */
.contact-map{padding:0 0 84px}
.map-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.map-head{display:flex;align-items:center;gap:16px;padding:22px 26px;flex-wrap:wrap}
.map-head h2{font-family:'Sora',sans-serif;font-size:19px;font-weight:700;color:var(--blue-ink)}
.map-head p{font-size:14px;color:var(--slate);margin-top:2px;max-width:56ch}
.map-head>div{flex:1;min-width:240px}
.map-frame{position:relative;height:400px;border-top:1px solid var(--line)}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.92)}
@media(max-width:640px){.map-frame{height:300px}.map-head{padding:18px 20px}}

/* Footer address line */
.foot-address span{font-size:13.5px;line-height:1.6}
.foot-address svg{margin-top:3px}
.foot-contact li{align-items:flex-start}

/* ============ AUTHOR BOX ============ */
.author-box{display:flex;gap:18px;align-items:flex-start;background:var(--bg-soft);
  border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:var(--r-lg);
  padding:26px 28px;margin:0 0 20px;max-width:74ch}
.ab-avatar{width:46px;height:46px;border-radius:50%;background:var(--blue-ink);display:grid;
  place-items:center;color:#fff;flex:none}
.ab-avatar svg{width:20px;height:20px;color:#7fd4f0}
.ab-label{display:block;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--slate);font-family:'Sora',sans-serif;font-weight:700;margin-bottom:4px}
.author-box h2{font-family:'Sora',sans-serif;font-size:17.5px;font-weight:700;color:var(--blue-ink);margin-bottom:8px}
.author-box p{font-size:14.2px;line-height:1.7;color:var(--slate);margin:0}
@media(max-width:600px){.author-box{padding:22px 20px;gap:14px}}
