:root{
  --navy:#0B1F3A; --blue:#2563EB; --blue-dark:#1D4ED8;
  --ink:#3A4556; --muted:#5B6B80; --light:#F4F6FA; --field:#F8FAFD;
  --line:#E4E9F2; --line-soft:#EDF1F7; --blue-soft:#EEF3FF; --blue-border:#D4E0FA;
  --moon:#A9BAD6; --sky:#7FA6EF; --ice:#BFD3F5;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;font-family:'Manrope',sans-serif;color:var(--ink);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
::selection{background:var(--blue);color:#fff}
img{max-width:100%;display:block}
button{font-family:'Manrope',sans-serif}
h1,h2,h3{font-family:'Sora',sans-serif;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
/* buttons */
.btn{cursor:pointer;border:none;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;text-decoration:none}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-dark)}
.btn-ghost-dark{background:none;border:1.5px solid var(--navy);color:var(--navy)}
.btn-ghost-dark:hover{background:var(--navy);color:#fff}
.btn-ghost-light{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.25)}
.btn-ghost-light:hover{background:rgba(255,255,255,.14)}
/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-header .bar{height:68px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px}
.brand .mark{width:34px;height:34px;background:var(--navy);color:#fff;font-size:15px}
.brand .name{font-family:'Sora',sans-serif;font-weight:700;font-size:18px;color:var(--navy)}
.nav{display:flex;align-items:center;gap:4px}
.nav a{font-size:14.5px;font-weight:600;color:var(--ink);padding:8px 12px;transition:background .15s,color .15s}
.nav a:hover,.nav a.active{background:var(--light);color:var(--navy)}
.menu-toggle{display:none;background:none;border:1.5px solid var(--line);width:42px;height:40px;cursor:pointer;flex-direction:column;gap:4px;align-items:center;justify-content:center}
.menu-toggle span{width:18px;height:2px;background:var(--navy)}
/* logos / shapes (sharp corners only) */
.logo-sq{display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;font-weight:800;flex-shrink:0}
.dot{width:6px;height:6px;background:var(--blue);display:inline-block;flex-shrink:0}
/* tokens */
.eyebrow{font-size:13px;font-weight:800;color:var(--blue);letter-spacing:.08em;text-transform:uppercase}
.eyebrow-sky{font-size:13px;font-weight:800;color:var(--sky);letter-spacing:.08em;text-transform:uppercase}
.h2{font-weight:700;font-size:34px;line-height:1.2;color:var(--navy);margin:10px 0 0}
.lede{font-size:16.5px;color:var(--muted);max-width:660px;margin:14px 0 0}
.badge{font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--blue);background:var(--blue-soft);border:1px solid var(--blue-border);padding:4px 10px}
.crumbs{font-size:13px;color:var(--sky);font-weight:600}
.crumbs a:hover{color:#fff;text-decoration:underline}
/* cards */
.card{background:#fff;border:1px solid var(--line)}
.card-hover{transition:border-color .15s,box-shadow .15s}
.card-hover:hover{border-color:var(--blue);box-shadow:0 8px 24px rgba(11,31,58,.08)}
/* forms */
.field{font-family:'Manrope',sans-serif;font-size:15px;font-weight:600;color:var(--navy);border:1.5px solid var(--line);padding:12px 14px;background:var(--field);width:100%}
select.field{cursor:pointer}
input.field,textarea.field{font-weight:500}
.field:focus{outline:none;border-color:var(--blue)}
.lbl{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:var(--navy);letter-spacing:.05em;text-transform:uppercase}
/* hero */
.hero-dark{background:var(--navy);color:#fff}
.hero-mesh{background-image:radial-gradient(900px 420px at 85% -10%,rgba(37,99,235,.35),transparent 60%),radial-gradient(700px 380px at 0% 110%,rgba(37,99,235,.18),transparent 60%)}
.pill-tag{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:var(--ice);font-size:13px;font-weight:600;padding:7px 16px;letter-spacing:.02em}
/* grids */
.grid{display:grid}
.g-cats{grid-template-columns:repeat(4,1fr);gap:16px}
.g-cities{grid-template-columns:repeat(5,1fr);gap:12px}
.g-feat{grid-template-columns:repeat(2,1fr);gap:18px}
.g-2{grid-template-columns:1fr 1fr;gap:18px}
.g-3{grid-template-columns:repeat(3,1fr);gap:18px}
.guide-steps{grid-template-columns:1fr 1fr;gap:14px}
.hero-search{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:14px;align-items:end}
.dir-layout{display:grid;grid-template-columns:280px 1fr;gap:28px;align-items:start}
.split-340{display:grid;grid-template-columns:1fr 340px;gap:56px}
.side-320{display:grid;grid-template-columns:1fr 320px;gap:28px;align-items:start}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
/* table */
.tbl{border:1px solid var(--line);overflow-x:auto;background:#fff}
.tbl .row{display:grid;min-width:900px}
.tbl .head{background:var(--navy);color:#fff}
.tbl .head span{padding:14px 18px;font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.tbl .body{border-top:1px solid var(--line-soft);background:#fff}
.tbl .body:hover{background:var(--field)}
.tbl .body span{padding:16px 18px;display:flex;align-items:center}
/* agency list row */
.ag-row{background:#fff;border:1px solid var(--line);padding:24px;display:flex;gap:18px;align-items:flex-start;transition:border-color .15s,box-shadow .15s}
.ag-row:hover{border-color:var(--blue);box-shadow:0 8px 24px rgba(11,31,58,.08)}
/* footer */
.site-footer{background:var(--navy);color:var(--moon);padding:64px 0 32px}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.site-footer a{color:var(--moon);font-size:14px}
.site-footer a:hover{color:#fff}
.site-footer .legal{margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:13px}
/* prose */
.prose{font-size:16px;line-height:1.75;color:var(--ink)}
.prose h2{font-size:24px;color:var(--navy);margin:36px 0 12px}
.prose h3{font-size:18px;color:var(--navy);margin:26px 0 8px}
.prose p{margin:0 0 16px}
.prose ul{margin:0 0 16px;padding-left:20px}
.prose li{margin:0 0 8px}
.prose a{color:var(--blue);font-weight:600}
.prose a:hover{text-decoration:underline}
/* faq */
.faq-item{padding:18px 0;border-top:1px solid var(--line-soft);display:flex;flex-direction:column;gap:6px}
.faq-item .q{font-family:'Sora',sans-serif;font-weight:700;font-size:15.5px;color:var(--navy)}
.faq-item .a{font-size:14.5px;line-height:1.65;color:var(--muted)}
/* utilities */
.section{padding:88px 0}
.section-sm{padding:48px 0}
@media(max-width:980px){
  .g-cats{grid-template-columns:repeat(2,1fr)}
  .g-cities{grid-template-columns:repeat(3,1fr)}
  .g-3{grid-template-columns:1fr}
  .split-340{grid-template-columns:1fr;gap:32px}
  .side-320{grid-template-columns:1fr}
  .dir-layout{grid-template-columns:1fr}
  .facts{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .wrap{padding:0 20px}
  .nav{position:absolute;top:68px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:8px 20px 16px;display:none;gap:0}
  .nav.open{display:flex}
  .nav a{padding:12px 8px;border-top:1px solid var(--line-soft)}
  .menu-toggle{display:flex}
  .g-cats,.g-cities,.g-feat,.g-2,.facts,.hero-search,.guide-steps{grid-template-columns:1fr!important}
  .section{padding:56px 0}
  h1{font-size:32px!important}
  .h2{font-size:26px!important}
  aside[data-sticky]{position:static!important}
}
