:root{
  --brand:#0B4F6C; --brand-d:#083A50; --accent:#01BAEF; --accent-d:#0098c4;
  --bg:#F2F6F8; --card:#FFFFFF; --ink:#132029; --muted:#5B6B76;
  --line:#DCE5EA; --line-d:#C4D2DA; --ok:#1B8A5A; --warn:#E8A317;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);
  background:var(--bg);line-height:1.6;font-size:16px}
a{color:var(--brand);text-decoration:none}
a:hover{color:var(--accent-d)}
img{max-width:100%;display:block}
h1,h2,h3,h4{line-height:1.25;margin:0 0 .5em;font-weight:700}
h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.15rem}
p{margin:0 0 1em}
.wrap{max-width:1180px;margin:0 auto;padding:0 18px}
.btn{display:inline-block;background:var(--brand);color:#fff;padding:11px 20px;font-weight:600;
  border:0;cursor:pointer;border-radius:0}
.btn:hover{background:var(--brand-d);color:#fff}
.btn-accent{background:var(--accent);color:#052733}
.btn-accent:hover{background:var(--accent-d);color:#052733}
.btn-ghost{background:transparent;color:var(--brand);border:2px solid var(--brand)}
.btn-ghost:hover{background:var(--brand);color:#fff}
.chip{display:inline-block;background:#fff;border:1px solid var(--line-d);color:var(--brand);
  padding:7px 14px;font-size:.86rem;font-weight:600;border-radius:0;margin:0 8px 8px 0}
.chip:hover{border-color:var(--accent);background:#eafaff;color:var(--brand-d)}

/* header */
.topbar{background:var(--brand-d);color:#cfe6ef;font-size:.8rem}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:34px;flex-wrap:wrap}
.topbar a{color:#cfe6ef}
header.site{background:var(--brand);color:#fff;position:sticky;top:0;z-index:40;box-shadow:0 2px 10px rgba(8,58,80,.18)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.22rem;color:#fff;letter-spacing:.2px}
.logo:hover{color:#fff}
.logo .mark{width:34px;height:34px;flex:0 0 34px}
nav.main ul{list-style:none;display:flex;gap:6px;margin:0;padding:0;flex-wrap:wrap}
nav.main a{color:#eaf6fb;padding:9px 12px;display:block;font-weight:600;font-size:.95rem}
nav.main a:hover{background:rgba(255,255,255,.12);color:#fff}
.hdr-cta{white-space:nowrap}

/* hero */
.hero{background:linear-gradient(135deg,var(--brand) 0%,#0d6a8c 55%,var(--accent) 130%);color:#fff;padding:46px 0 40px}
.hero h1{font-size:2.35rem;max-width:20ch}
.hero p.sub{font-size:1.08rem;max-width:62ch;color:#e6f6fc}
.search{display:flex;gap:8px;margin:22px 0 6px;background:#fff;padding:8px;max-width:720px}
.search input{flex:1;border:0;padding:12px 14px;font-size:1rem;outline:none;min-width:0}
.search input:focus{background:#f4fbfe}
.hero .chips{display:flex;flex-wrap:wrap;gap:0;margin-top:14px}
.hero .chip{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35);color:#fff}
.hero .chip:hover{background:#fff;color:var(--brand)}
.hero .lbl{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:#c8ecf9;margin:18px 0 2px}

/* sections */
section.block{padding:40px 0}
section.block.alt{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.sec-head p{margin:0;color:var(--muted);max-width:60ch}
.sec-head h2{margin:0 0 4px}

/* grids */
.grid{display:grid;gap:18px}
.grid.cards{grid-template-columns:repeat(4,1fr)}
.grid.cats{grid-template-columns:repeat(4,1fr)}
.grid.city{grid-template-columns:repeat(6,1fr)}
.grid>*{min-width:0}

/* agency card */
.card{background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column}
.card .ph{position:relative;aspect-ratio:3/2;background:#dfe9ee;overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover}
.card .badge{position:absolute;top:0;left:0;background:var(--brand);color:#fff;font-size:.72rem;
  font-weight:700;padding:5px 9px;letter-spacing:.04em;text-transform:uppercase}
.card .body{padding:14px 15px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.card h3{font-size:1.06rem;margin:0}
.card h3 a{color:var(--ink)}
.card h3 a:hover{color:var(--brand)}
.card .tags{display:flex;flex-wrap:wrap;gap:5px}
.card .tags a{font-size:.72rem;font-weight:600;background:#eef5f8;color:var(--brand);padding:3px 8px}
.card .tags a:hover{background:#dceef5}
.card .meta{font-size:.85rem;color:var(--muted);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.card .star{color:var(--warn);font-weight:700}
.card .cta{margin-top:auto;padding-top:6px}

/* category card */
.catcard{background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column}
.catcard .ph{aspect-ratio:3/2;overflow:hidden;background:#dfe9ee}
.catcard .ph img{width:100%;height:100%;object-fit:cover}
.catcard .body{padding:14px 15px 16px}
.catcard h3{margin:0 0 6px;font-size:1.02rem}
.catcard p{font-size:.88rem;color:var(--muted);margin:0 0 10px}
.catcard .n{font-size:.78rem;color:var(--accent-d);font-weight:700;text-transform:uppercase;letter-spacing:.05em}

/* city chips */
.city a{background:#fff;border:1px solid var(--line);padding:12px 10px;text-align:center;font-weight:600;
  font-size:.9rem;color:var(--brand)}
.city a:hover{border-color:var(--accent);background:#eafaff}
.city a span{display:block;font-size:.74rem;color:var(--muted);font-weight:500}

/* article / guide */
.article{background:#fff;border:1px solid var(--line);padding:30px 34px}
.article h1{margin-top:0}
.article .lede{font-size:1.1rem;color:#2b3d47;border-left:4px solid var(--accent);padding-left:16px}
.article h2{margin-top:1.6em}
.article ul{padding-left:20px}
.article ul li{margin-bottom:8px}
.byline{color:var(--muted);font-size:.86rem;margin-bottom:18px}
.cover-img{border:1px solid var(--line);margin-bottom:22px}
.toc{background:#f6fafc;border:1px solid var(--line);padding:16px 20px;margin:0 0 24px}
.toc ul{columns:2;margin:0;padding-left:18px}
.toc li{margin-bottom:5px;font-size:.92rem}

/* profile */
.profile-head{display:grid;grid-template-columns:2fr 1fr;gap:24px;align-items:start}
.profile-side{background:#fff;border:1px solid var(--line);padding:20px}
.profile-side h3{margin-top:0;font-size:1rem}
.kv{list-style:none;margin:0;padding:0;font-size:.9rem}
.kv li{padding:8px 0;border-bottom:1px solid var(--line);display:flex;gap:10px}
.kv li:last-child{border-bottom:0}
.kv b{flex:0 0 78px;color:var(--muted);font-weight:600}
.svc{list-style:none;margin:0;padding:0}
.svc li{padding:8px 0 8px 22px;position:relative;border-bottom:1px solid var(--line);font-size:.93rem}
.svc li:before{content:"▸";position:absolute;left:0;color:var(--accent-d);font-weight:700}
.faq details{border:1px solid var(--line);background:#fff;margin-bottom:8px}
.faq summary{padding:12px 16px;font-weight:600;cursor:pointer}
.faq details[open] summary{border-bottom:1px solid var(--line)}
.faq p{padding:12px 16px;margin:0}

/* crumbs */
.crumbs{font-size:.84rem;color:var(--muted);padding:14px 0}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--brand)}
.crumbs span{color:var(--line-d)}

/* page hero */
.phero{background:var(--brand);color:#fff;padding:30px 0}
.phero h1{margin:0 0 6px;font-size:1.9rem}
.phero p{margin:0;color:#d3edf6;max-width:75ch}
.filterbar{background:#fff;border-bottom:1px solid var(--line);padding:14px 0}
.filterbar .chips{margin:0}
.filterbar .chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}

/* list rows (guides) */
.rowlist{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rowlist>*{min-width:0}

/* footer */
footer.site{background:var(--brand-d);color:#bcd8e2;padding:40px 0 26px;margin-top:10px}
footer.site a{color:#dceff6}
footer.site a:hover{color:#fff}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:26px}
footer.site h4{color:#fff;font-size:.95rem;text-transform:uppercase;letter-spacing:.06em}
footer.site ul{list-style:none;padding:0;margin:0}
footer.site li{margin-bottom:8px;font-size:.9rem}
.fbot{border-top:1px solid rgba(255,255,255,.14);margin-top:26px;padding-top:16px;font-size:.83rem;
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.note{font-size:.86rem;color:var(--muted)}
.center{text-align:center}

@media(max-width:1000px){
  .grid.cards,.grid.cats{grid-template-columns:repeat(3,1fr)}
  .rowlist{grid-template-columns:repeat(2,1fr)}
  .fgrid{grid-template-columns:1fr 1fr}
  .profile-head{grid-template-columns:1fr}
}
@media(max-width:760px){
  .grid.cards,.grid.cats{grid-template-columns:repeat(2,1fr)}
  .grid.city{grid-template-columns:repeat(3,1fr)}
  .rowlist{grid-template-columns:1fr}
  .hero h1{font-size:1.7rem}
  nav.main{display:none}
  .article{padding:20px 18px}
  .toc ul{columns:1}
}
@media(max-width:460px){
  .grid.cards,.grid.cats,.grid.city{grid-template-columns:1fr}
}
