:root{
  --navy:#0b2545;
  --navy-2:#13315c;
  --flame:#ff7a1a;
  --flame-dark:#d35400;
  --bg:#fafafa;
  --card:#ffffff;
  --ink:#13315c;
  --muted:#6b7a90;
  --line:#e6ebf2;
  --success:#2e7d32;
  --radius:10px;
  --shadow:0 1px 2px rgba(11,37,69,.04),0 8px 24px rgba(11,37,69,.06);
  --max:1180px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--navy);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--max);margin:0 auto;padding:0 20px}
.section{padding:32px 0}
.small{font-size:12.5px;color:var(--muted)}
.muted{color:var(--muted)}
.lede{font-size:18px;color:var(--muted);max-width:68ch}
h1,h2,h3{color:var(--navy);letter-spacing:-.01em;margin-top:0}
h1{font-size:clamp(28px,4vw,40px);line-height:1.15}
h2{font-size:22px;margin-top:1.5em}
h3{font-size:17px}

/* Header */
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 20px}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--navy);font-size:18px}
.logo:hover{text-decoration:none}
.flame{display:inline-block;width:22px;height:26px;background:radial-gradient(ellipse at center bottom,var(--flame) 0%,var(--flame-dark) 60%,transparent 70%);border-radius:50% 50% 50% 50% / 55% 55% 45% 45%;transform:translateY(-1px)}
nav a{margin-left:16px;color:var(--ink);font-weight:500;font-size:14.5px}
.btn-outline{padding:7px 12px;border:1.5px solid var(--navy);border-radius:999px;font-weight:600;font-size:14px}
.btn-outline:hover{background:var(--navy);color:#fff;text-decoration:none}
.btn-primary{display:inline-block;padding:10px 18px;background:var(--flame);color:#fff\!important;font-weight:600;border-radius:999px;border:none;cursor:pointer;font-size:15px;transition:background .15s}
.btn-primary:hover{background:var(--flame-dark);text-decoration:none}

/* Hero */
.hero{background:linear-gradient(180deg,#fff,#f2f6fc);padding:56px 0 36px;border-bottom:1px solid var(--line)}
.search-form{display:flex;gap:0;margin-top:22px;max-width:560px;box-shadow:var(--shadow);border-radius:999px;overflow:hidden;background:#fff;border:1px solid var(--line)}
.search-form input{flex:1;padding:16px 22px;font-size:16px;border:none;outline:none;font-family:inherit;color:var(--ink)}
.search-form button{background:var(--flame);color:#fff;border:none;padding:0 26px;font-weight:600;cursor:pointer;font-family:inherit;font-size:15px}
.search-form button:hover{background:var(--flame-dark)}
.search-results{margin-top:10px;max-height:320px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.search-results a{display:block;padding:10px 14px;border-bottom:1px solid var(--line);color:var(--ink)}
.search-results a:hover{background:#f2f6fc;text-decoration:none}
.search-results .small{color:var(--muted)}

/* Filter chips */
.filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;align-items:center}
.filter-chips-label{font-size:13px;color:var(--muted);font-weight:600;margin-right:4px}
.filter-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1.5px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;font-size:13.5px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .12s}
.filter-chip:hover{border-color:var(--flame);color:var(--navy)}
.filter-chip.on{background:var(--flame);border-color:var(--flame);color:#fff}
.filter-chip.on .chip-count{background:rgba(255,255,255,.25);color:#fff}
.filter-chip .chip-count{display:inline-block;background:#f2f6fc;color:var(--navy-2);padding:1px 7px;border-radius:999px;font-size:11.5px;font-weight:600}
.hero-sub-links{margin-top:12px}
.hero-sub-links a{color:var(--navy);font-weight:600}

/* Map filter — extended */
.map-filter{display:flex;flex-wrap:wrap;gap:14px 18px;margin:14px 0 18px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.map-filter label{font-size:13.5px;display:inline-flex;align-items:center;gap:6px;color:var(--ink);cursor:pointer}
.map-filter label .count{color:var(--muted);font-size:12px}
.map-filter-group{display:flex;flex-wrap:wrap;gap:14px 18px;align-items:center;width:100%}
.map-filter-group .group-title{font-size:12px;font-weight:700;color:var(--navy-2);text-transform:uppercase;letter-spacing:.05em;margin-right:4px}
.map-filter hr{width:100%;border:none;border-top:1px solid var(--line);margin:4px 0}

/* Service-page sections */
.service-hero{background:linear-gradient(180deg,#fff,#f2f6fc);padding:48px 0 28px;border-bottom:1px solid var(--line)}
.service-hero h1{margin-bottom:8px}
.service-hero .lede{margin:0 0 14px}
.service-section{padding:28px 0}
.service-section h2{display:flex;align-items:center;gap:10px}
.service-section h2 .badge{font-size:12.5px}

/* Category / city grids */
.cat-grid,.city-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-top:16px}
.cat-card,.city-card{display:flex;flex-direction:column;gap:4px;background:var(--card);padding:14px 16px;border-radius:var(--radius);border:1px solid var(--line);color:var(--ink);transition:transform .1s,box-shadow .1s}
.cat-card:hover,.city-card:hover{transform:translateY(-1px);box-shadow:var(--shadow);text-decoration:none;border-color:var(--flame)}
.cat-card strong,.city-card{font-weight:600}
.cat-card span,.city-card .count{font-size:13px;color:var(--muted)}
.city-card{display:flex;flex-direction:row;justify-content:space-between;align-items:center}
.city-card .count{background:#f2f6fc;padding:2px 10px;border-radius:999px;font-weight:600;color:var(--navy-2)}

/* Map promo */
.map-promo{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;padding:32px;border-radius:var(--radius);flex-wrap:wrap;gap:16px;margin-bottom:32px}
.map-promo h2{color:#fff;margin-top:0}

/* Location list */
.loc-list{display:grid;gap:10px;margin-top:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.loc-card{display:flex;flex-direction:column;gap:4px;background:var(--card);border:1px solid var(--line);padding:14px 16px;border-radius:var(--radius);color:var(--ink);transition:transform .1s,border-color .1s}
.loc-card:hover{transform:translateY(-1px);border-color:var(--flame);text-decoration:none}
.loc-card strong{font-size:15.5px}
.loc-card .addr{color:var(--muted);font-size:13px}
.loc-card .phone{color:var(--navy-2);font-size:13px;font-variant-numeric:tabular-nums}
.badge{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:#f2f6fc;color:var(--navy-2);text-transform:uppercase;letter-spacing:.03em;margin-right:6px}
.badge.verified{background:#e7f5ea;color:var(--success)}

/* Location page */
.breadcrumbs{padding:14px 20px 0;color:var(--muted);font-size:13.5px}
.breadcrumbs a{color:var(--muted)}
.loc-page .loc-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px}
.loc-page .address{color:var(--muted);margin-top:4px}
.loc-page .actions{display:flex;gap:8px;flex-wrap:wrap}
.loc-grid{display:grid;gap:22px;grid-template-columns:1fr 1fr 1fr;margin-top:28px}
.loc-grid > section{background:var(--card);padding:16px 18px;border-radius:var(--radius);border:1px solid var(--line)}
.loc-grid h2{font-size:16px;margin:0 0 8px}
.loc-grid table{width:100%;border-collapse:collapse;font-size:14.5px}
.loc-grid th{text-align:left;color:var(--muted);font-weight:500;padding:4px 0;width:40%}
.loc-grid td{padding:4px 0;font-variant-numeric:tabular-nums}
.loc-grid dl{margin:0;font-size:14px}
.loc-grid dt{color:var(--muted);font-size:12.5px;margin-top:6px}
.loc-grid dd{margin:0 0 4px;font-weight:500}
.claim-callout{background:#fff4ea;border:1px solid #ffdcba;padding:18px 22px;border-radius:var(--radius);margin-top:28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.claim-callout h3{margin:0;color:var(--flame-dark)}

/* Forms */
.claim-form{display:grid;gap:14px;max-width:520px;margin-top:18px}
.claim-form label{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:500;color:var(--navy-2)}
.claim-form input,.claim-form textarea{padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:15px;background:#fff;color:var(--ink)}
.claim-form input:focus,.claim-form textarea:focus{outline:2px solid var(--flame);outline-offset:-1px;border-color:var(--flame)}

/* Map page */
#map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.map-filter{display:flex;flex-wrap:wrap;gap:10px 16px;margin:14px 0 18px;font-size:14px}
.map-filter label{display:flex;align-items:center;gap:6px;cursor:pointer}
.map-filter .count{color:var(--muted)}

.narrow{max-width:780px}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding:28px 0;margin-top:48px;color:var(--muted);font-size:13.5px;text-align:center;background:#fff}
.site-footer a{color:var(--muted);margin:0 4px}

/* Responsive */
@media (max-width:820px){
  .nav-inner{flex-wrap:wrap;gap:10px}
  nav a{margin-left:0;margin-right:12px}
  .loc-grid{grid-template-columns:1fr}
  .loc-page .loc-header{flex-direction:column}
  .map-promo{flex-direction:column;align-items:flex-start}
}