/* ============================================================
   Local Directory — design tokens
   Display: Big Shoulders Display (condensed, sign/numeral energy)
   Body/UI: Source Sans 3
   Mono (listing numbers only): Space Mono
   ============================================================ */

:root {
  --night: #142C33;
  --night-soft: #1D3A42;
  --cream: #F6F0DF;
  --cream-deep: #EFE7CF;
  --marigold: #E7A33E;
  --bluebonnet: #3E5C78;
  --clay: #BD4F2E;
  --ink: #1C2321;
  --ink-soft: #4B544F;
  --line: #D8CDAE;
  --white: #FFFDF8;

  --font-display: "Big Shoulders Display", sans-serif;
  --font-body: "Source Sans 3", sans-serif;
  --font-mono: "Space Mono", monospace;

  --radius: 3px;
  --max-width: 1180px;
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.5;
}

a { color: inherit; text-decoration: none; }

button {
  font-family: var(--font-body);
  cursor: pointer;
}

:focus-visible {
  outline: 3px solid var(--marigold);
  outline-offset: 2px;
}

.wrap {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 24px;
}

/* ---------- Top bar ---------- */

.topbar {
  background: var(--night);
  color: var(--cream);
  border-bottom: 4px solid var(--marigold);
}

.topbar .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  padding-bottom: 14px;
  gap: 16px;
}

.brand {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 28px;
  letter-spacing: 0.5px;
  color: var(--cream);
}

.brand .brand-city {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--marigold);
  letter-spacing: 1px;
  border: 1px solid var(--marigold);
  padding: 3px 7px;
  border-radius: var(--radius);
}

.topnav {
  display: flex;
  gap: 22px;
  font-size: 15px;
}

.topnav a {
  color: var(--cream);
  opacity: 0.85;
  border-bottom: 2px solid transparent;
  padding-bottom: 3px;
}
.topnav a:hover, .topnav a.active {
  opacity: 1;
  border-bottom-color: var(--marigold);
}

/* ---------- Hero / masthead ---------- */

.masthead {
  background: var(--night);
  color: var(--cream);
  padding: 56px 0 72px;
  position: relative;
  overflow: hidden;
}

.masthead .wrap {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 40px;
  align-items: center;
}

.masthead-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(42px, 6vw, 76px);
  line-height: 0.98;
  margin: 0 0 18px;
  letter-spacing: 0.5px;
}

.masthead-title .accent { color: var(--marigold); }

.masthead-sub {
  font-size: 18px;
  color: var(--cream);
  opacity: 0.85;
  max-width: 46ch;
  margin: 0 0 28px;
}

.search-box {
  display: flex;
  background: var(--cream);
  border-radius: var(--radius);
  overflow: hidden;
  border: 2px solid var(--night-soft);
  max-width: 520px;
}

.search-box input {
  flex: 1;
  border: none;
  padding: 14px 16px;
  font-size: 16px;
  font-family: var(--font-body);
  background: transparent;
  color: var(--ink);
}
.search-box input:focus { outline: none; }

.search-box button {
  background: var(--marigold);
  border: none;
  color: var(--night);
  font-weight: 700;
  padding: 0 22px;
  font-size: 15px;
}
.search-box button:hover { background: #f0b357; }

.masthead-stats {
  display: flex;
  gap: 28px;
  margin-top: 28px;
}
.masthead-stats div {
  font-family: var(--font-mono);
}
.masthead-stats .num {
  font-size: 26px;
  color: var(--marigold);
  display: block;
}
.masthead-stats .label {
  font-size: 12px;
  color: var(--cream);
  opacity: 0.7;
}

/* ticket-stub illustration block */
.masthead-art {
  justify-self: end;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  max-width: 360px;
}
.art-tile {
  background: var(--night-soft);
  border: 1px solid rgba(246,240,223,0.15);
  border-radius: var(--radius);
  padding: 14px;
  opacity: 0;
  animation: dealIn 0.5s ease forwards;
}
.art-tile:nth-child(1) { animation-delay: 0.05s; }
.art-tile:nth-child(2) { animation-delay: 0.15s; }
.art-tile:nth-child(3) { animation-delay: 0.25s; }
.art-tile:nth-child(4) { animation-delay: 0.35s; }
@keyframes dealIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.art-tile svg { width: 26px; height: 26px; stroke: var(--marigold); fill: none; stroke-width: 1.6; }
.art-tile .t-name { font-size: 13px; margin-top: 8px; color: var(--cream); }

/* ---------- Category grid ---------- */

.section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 0 0 20px;
}
.section-heading h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 30px;
  margin: 0;
  color: var(--night);
}
.section-heading .sub {
  font-size: 14px;
  color: var(--ink-soft);
}

.cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin: 28px 0 56px;
}

.cat-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color 0.15s, transform 0.15s;
}
.cat-card:hover {
  border-color: var(--clay);
  transform: translateY(-2px);
}
.cat-card svg {
  width: 28px;
  height: 28px;
  stroke: var(--clay);
  fill: none;
  stroke-width: 1.6;
}
.cat-card .cat-name {
  font-weight: 700;
  font-size: 16px;
  color: var(--night);
}
.cat-card .cat-count {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--ink-soft);
}

/* ---------- Business cards / listing ---------- */

.listing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 48px;
}

.biz-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
}

.biz-num {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--ink-soft);
  letter-spacing: 1px;
}

.biz-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 21px;
  color: var(--night);
  line-height: 1.1;
}

.biz-cat-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--bluebonnet);
  background: #EAF0F5;
  padding: 3px 8px;
  border-radius: var(--radius);
  width: fit-content;
}

.biz-rating {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: var(--ink);
}
.biz-rating .stars { color: var(--marigold); letter-spacing: 1px; }
.biz-rating .count { color: var(--ink-soft); font-size: 13px; }

.biz-addr {
  font-size: 13.5px;
  color: var(--ink-soft);
}

.biz-actions {
  display: flex;
  gap: 10px;
  margin-top: 8px;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius);
  padding: 9px 14px;
  font-size: 13.5px;
  font-weight: 600;
  border: 1px solid transparent;
  cursor: pointer;
}
.btn-primary { background: var(--night); color: var(--cream); }
.btn-primary:hover { background: var(--night-soft); }
.btn-outline { background: transparent; color: var(--night); border-color: var(--night); }
.btn-outline:hover { background: var(--night); color: var(--cream); }
.btn-small { padding: 6px 10px; font-size: 12.5px; }

/* ---------- Toolbar (filters/sort on category page) ---------- */

.toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 24px 0;
  flex-wrap: wrap;
}

.toolbar select, .toolbar .toolbar-search {
  font-family: var(--font-body);
  font-size: 14px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  color: var(--ink);
}

.breadcrumb {
  font-size: 13px;
  color: var(--ink-soft);
  margin: 20px 0 4px;
}
.breadcrumb a { color: var(--bluebonnet); }
.breadcrumb a:hover { text-decoration: underline; }

/* ---------- Business detail ---------- */

.detail-wrap {
  max-width: 820px;
  margin: 0 auto;
  padding: 32px 24px 80px;
}

.detail-header {
  border-bottom: 3px solid var(--night);
  padding-bottom: 18px;
  margin-bottom: 22px;
}

.detail-header .biz-cat-tag { margin-bottom: 10px; }

.detail-header h1 {
  font-family: var(--font-display);
  font-size: clamp(30px, 5vw, 48px);
  margin: 0 0 8px;
  color: var(--night);
  line-height: 1.02;
}

.detail-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 32px;
}

.detail-block {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px 20px;
  margin-bottom: 16px;
}
.detail-block h3 {
  font-family: var(--font-display);
  font-size: 16px;
  margin: 0 0 10px;
  color: var(--night);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.hours-row {
  display: flex;
  justify-content: space-between;
  font-size: 13.5px;
  padding: 4px 0;
  border-bottom: 1px dashed var(--line);
}
.hours-row:last-child { border-bottom: none; }
.hours-row .day { color: var(--ink-soft); }

.claim-box {
  background: var(--cream-deep);
  border: 1px dashed var(--clay);
  border-radius: var(--radius);
  padding: 18px 20px;
}
.claim-box h3 { color: var(--clay); }
.claim-box p { font-size: 13.5px; color: var(--ink-soft); margin: 0 0 12px; }
.claim-box input {
  width: 100%;
  padding: 10px 12px;
  margin-bottom: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  font-family: var(--font-body);
  font-size: 14px;
}
.claim-status {
  font-size: 13px;
  margin-top: 10px;
  color: var(--night-soft);
  display: none;
}
.claim-status.show { display: block; }

/* ---------- Footer ---------- */

footer {
  background: var(--night);
  color: var(--cream);
  padding: 36px 0;
  margin-top: 40px;
}
footer .wrap {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 20px;
}
footer .foot-note {
  font-size: 13px;
  color: var(--cream);
  opacity: 0.65;
  max-width: 48ch;
}
footer .foot-brand {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
}

/* ---------- Empty state ---------- */

.empty-state {
  text-align: center;
  padding: 60px 20px;
  color: var(--ink-soft);
}
.empty-state h3 {
  font-family: var(--font-display);
  color: var(--night);
  font-size: 22px;
}

/* ---------- Responsive ---------- */

@media (max-width: 920px) {
  .masthead .wrap { grid-template-columns: 1fr; }
  .masthead-art { justify-self: start; max-width: 100%; }
  .cat-grid { grid-template-columns: repeat(2, 1fr); }
  .listing-grid { grid-template-columns: repeat(2, 1fr); }
  .detail-grid { grid-template-columns: 1fr; }
  .topnav { display: none; }
}

@media (max-width: 560px) {
  .cat-grid { grid-template-columns: 1fr 1fr; }
  .listing-grid { grid-template-columns: 1fr; }
  .masthead-title { font-size: 44px; }
  .masthead-stats { gap: 18px; flex-wrap: wrap; }
}

/* ---------- Lokaldex logo ---------- */
.topbar { background: #FFFFFF; color: var(--ink); border-bottom: 4px solid var(--marigold); }
.se-logo { display:flex; align-items:center; gap:12px; text-decoration:none; }
.se-logo .wm { font-family:'Archivo Black', sans-serif; font-size:1.45rem; letter-spacing:-.03em; line-height:1; }
.se-logo .wm .sol { color:#0F172A; }
.se-logo .wm .ever { background:linear-gradient(135deg,#1D4ED8 0%,#2563EB 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.se-logo .prod { font-family:var(--font-display); font-weight:700; font-size:20px; color:var(--night); padding-left:12px; border-left:2px solid var(--line); }
.topbar .brand-city { font-family:var(--font-mono); font-size:12px; color:var(--night); border:1px solid var(--night); padding:3px 7px; border-radius:var(--radius); letter-spacing:1px; }
.topnav a { color: var(--night); opacity:.8; }
.topnav a:hover, .topnav a.active { opacity:1; border-bottom-color: var(--marigold); }
.foot-logo .wm .sol { color:#FFFFFF; }
.foot-logo .wm .ever { background:linear-gradient(135deg,#60A5FA 0%,#93C5FD 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.foot-logo .prod { color: var(--cream); border-left-color: rgba(246,240,223,.3); }
@media (max-width:560px){ .se-logo .prod{ font-size:16px; } .se-logo .wm{ font-size:1.15rem; } .topbar .brand-city{ display:none; } }

/* ---------- Worldwide roll-out: roadmap + states ---------- */
.roadmap { justify-self:end; display:flex; flex-direction:column; gap:10px; width:100%; max-width:340px; }
.road-step { border:1px solid rgba(246,240,223,.18); border-left:4px solid rgba(246,240,223,.25); padding:14px 16px; display:flex; justify-content:space-between; align-items:baseline; border-radius:var(--radius); opacity:0; animation:dealIn .5s ease forwards; }
.road-step:nth-child(2){ animation-delay:.12s } .road-step:nth-child(3){ animation-delay:.24s }
.road-step.live { border-left-color:var(--marigold); background:var(--night-soft); }
.road-step.next { border-left-color:#7FA3C4; }
.rs-name { font-family:var(--font-display); font-weight:700; font-size:22px; color:var(--cream); }
.road-step.later .rs-name { opacity:.6; }
.rs-meta { font-family:var(--font-mono); font-size:12px; color:var(--marigold); }
.road-step.next .rs-meta { color:#A9C3DA; } .road-step.later .rs-meta { color:rgba(246,240,223,.5); }
.state-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin:0 0 56px; }
.state-tile { border:1px solid var(--line); border-radius:var(--radius); padding:12px; display:flex; flex-direction:column; gap:2px; background:var(--white); }
.state-tile .st-code { font-family:var(--font-display); font-weight:800; font-size:26px; line-height:1; color:var(--night); }
.state-tile .st-name { font-size:13.5px; font-weight:600; color:var(--ink); }
.state-tile .st-meta { font-family:var(--font-mono); font-size:11px; color:var(--ink-soft); }
.state-tile.live { border-color:var(--night); box-shadow:inset 0 -4px 0 var(--marigold); }
.state-tile.live:hover { background:var(--night); } .state-tile.live:hover * { color:var(--cream); }
.state-tile.soon { background:transparent; border-style:dashed; }
.state-tile.soon .st-code, .state-tile.soon .st-name { color:var(--ink-soft); opacity:.6; }
.section-heading .link { color:var(--bluebonnet); font-weight:600; }
.section-heading .link:hover { text-decoration:underline; }
.biz-loc { font-family:var(--font-mono); font-size:11px; color:var(--bluebonnet); }
.city-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:4px 0 8px; }
.city-label { font-size:13px; color:var(--ink-soft); }
.city-chip { background:var(--night); color:var(--cream); padding:5px 10px; border-radius:var(--radius); font-size:13px; font-weight:600; }
.city-chip em { font-style:normal; color:var(--marigold); font-family:var(--font-mono); margin-left:4px; }
@media (max-width:920px){ .state-grid{ grid-template-columns:repeat(4,1fr);} .roadmap{ justify-self:start; max-width:100%; } }
@media (max-width:560px){ .state-grid{ grid-template-columns:repeat(2,1fr);} }
.topbar .brand-city{ margin-right:auto; }

/* ---------- Detail page v2 ---------- */
.detail-wrap.wide { max-width: var(--max-width); }
.detail-header .biz-actions { margin-top:16px; flex-wrap:wrap; }
.detail-wrap.wide .detail-grid { grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap:40px; }
.biz-article { max-width: 68ch; font-size:17px; line-height:1.65; }
.biz-article h2 { font-family:var(--font-display); font-weight:700; font-size:28px; color:var(--night); margin:32px 0 10px; line-height:1.1; }
.biz-article h2:first-child { margin-top:0; }
.biz-article h3 { font-size:17px; font-weight:700; color:var(--night); margin:20px 0 6px; }
.biz-article p { margin:0 0 14px; }
.biz-article ul { padding-left:20px; margin:0 0 14px; } .biz-article li { margin-bottom:6px; }
.map-block { padding:0; overflow:hidden; } .map-block iframe { width:100%; height:240px; border:0; display:block; }
.fact-row { display:flex; justify-content:space-between; gap:14px; font-size:13.5px; padding:7px 0; border-bottom:1px dashed var(--line); }
.fact-row:last-child { border-bottom:none; }
.fact-row .fk { color:var(--ink-soft); flex-shrink:0; }
.fact-row .fv { text-align:right; } .fact-row .fv a { color:var(--bluebonnet); }
.fact-row.pending .fv { color:var(--ink-soft); font-style:italic; font-size:12.5px; }
aside .claim-box { margin-top:16px; }

/* ---------- Logo in directory palette ---------- */
.se-logo .wm .sol { color: var(--night); }
.se-logo .wm .ever { background: linear-gradient(135deg, var(--marigold) 0%, var(--clay) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.foot-logo .wm .sol { color: var(--cream); }
.foot-logo .wm .ever { background: linear-gradient(135deg, #F2C06B 0%, var(--marigold) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.se-logo .wm .ever, .foot-logo .wm .ever { background: none; -webkit-background-clip: border-box; background-clip: border-box; -webkit-text-fill-color: var(--marigold); color: var(--marigold); }
.se-logo{ margin-right:auto; }

/* ================= Header v3 (search-first, Yelp-style structure) ================= */
.topbar { background: var(--night); color: var(--cream); border-bottom: 1px solid rgba(246,240,223,.12); position: sticky; top: 0; z-index: 1000; }
.topbar .wrap { display:flex; align-items:center; gap:28px; padding-top:14px; padding-bottom:14px; max-width:1320px; }
.se-logo { margin-right:0; flex-shrink:0; }
.topbar .se-logo .wm .sol { color: var(--cream); }
.topbar .se-logo .prod { color: var(--cream); border-left-color: rgba(246,240,223,.3); }

.ww-search { flex:1; display:flex; align-items:stretch; background:#fff; border-radius:8px; overflow:hidden; min-width:0; max-width:760px; height:52px; box-shadow:0 1px 0 rgba(0,0,0,.2); }
.ww-field { flex:1; display:flex; align-items:center; gap:10px; padding:0 16px; min-width:0; position:relative; }
.ww-field + .ww-field::before { content:""; position:absolute; left:0; top:12px; bottom:12px; width:1px; background:#D9D3C2; }
.ww-label { font-size:13px; font-weight:700; color:var(--night); flex-shrink:0; }
.ww-field input { border:0; outline:0; width:100%; font:inherit; font-size:16px; color:var(--ink); background:transparent; padding:0; }
.ww-field input::placeholder { color:#8A8F88; }
.ww-field:focus-within { box-shadow: inset 0 -3px 0 var(--marigold); }
.ww-search button { flex-shrink:0; width:64px; border:0; background:var(--marigold); color:var(--night); display:flex; align-items:center; justify-content:center; cursor:pointer; }
.ww-search button:hover { background:#F0B357; }
.ww-search button svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; }
.ww-search button span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

.topnav { display:flex; align-items:center; gap:22px; margin-left:auto; font-size:15px; font-weight:600; }
.topnav > a, .dd-btn { color:var(--cream); opacity:1; border:0; padding:0; background:none; font:inherit; white-space:nowrap; }
.topnav > a:hover, .dd-btn:hover { color:var(--marigold); }
.dd { position:relative; }
.dd-btn { display:flex; align-items:center; gap:4px; cursor:pointer; }
.dd-btn svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.2; transition:transform .15s; }
.dd-btn[aria-expanded="true"] svg { transform:rotate(180deg); }
.dd-menu { display:none; position:absolute; top:calc(100% + 12px); left:-12px; background:#fff; border-radius:8px; min-width:210px; padding:8px; box-shadow:0 10px 30px rgba(10,25,30,.25); }
.dd-btn[aria-expanded="true"] + .dd-menu { display:block; }
.dd-menu a { display:block; color:var(--ink); padding:9px 12px; border-radius:6px; font-weight:600; font-size:14px; }
.dd-menu a:hover { background:var(--cream); }
.pill { border-radius:999px; padding:9px 20px; font-weight:700; line-height:1; }
.topnav > a.pill-outline { border:2px solid rgba(246,240,223,.55); padding:8px 18px; }
.topnav > a.pill-outline:hover { border-color:var(--marigold); }
.topnav > a.pill-solid { background:var(--marigold); color:var(--night); }
.topnav > a.pill-solid:hover { background:#F0B357; color:var(--night); }

/* category bar */
.catbar { background:#fff; border-bottom:1px solid var(--line); }
.catbar .wrap { display:flex; gap:6px; overflow-x:auto; padding-top:8px; padding-bottom:8px; max-width:1320px; scrollbar-width:none; }
.catbar a { display:flex; align-items:center; gap:7px; padding:8px 12px; border-radius:6px; font-size:14px; font-weight:600; color:var(--night); white-space:nowrap; }
.catbar a:hover { background:var(--cream); }
.catbar svg { width:18px; height:18px; fill:none; stroke:var(--clay); stroke-width:1.8; }

/* hero sits under the dark header */
.masthead { padding-top:48px; }

@media (max-width:1100px){
  .topnav > a:not(.pill) { display:none; }
}
@media (max-width:920px){
  .topbar .wrap { flex-wrap:wrap; gap:12px; }
  .ww-search { order:3; flex-basis:100%; max-width:none; height:48px; }
  .topnav { display:flex; gap:10px; }
  .dd, .topnav > a.pill-outline { display:none; }
  .ww-label { display:none; }
}
@media (max-width:560px){
  .topbar .se-logo .prod { display:none; }
  .ww-field { padding:0 12px; }
  .ww-field input { font-size:15px; }
}

/* ================= Results view ================= */
.results-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:6px 0 14px; }
.filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.chip { font:inherit; font-size:14px; font-weight:600; color:var(--night); background:#fff; border:1px solid #CFC6AA; border-radius:999px; padding:7px 14px; cursor:pointer; }
select.chip { padding-right:30px; appearance:none; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23142C33' stroke-width='2.4'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 14px; }
.chip:hover { border-color:var(--night); }
.chip[aria-pressed="true"] { background:var(--night); color:var(--cream); border-color:var(--night); }
.results-layout { display:grid; grid-template-columns:minmax(0,1fr) 420px; gap:28px; align-items:start; margin-bottom:56px; }
.map-col { position:sticky; top:150px; }
.r-map { height:calc(100vh - 180px); min-height:420px; border-radius:8px; border:1px solid var(--line); background:#E8E2D0; }
.result { display:grid; grid-template-columns:34px minmax(0,1fr); gap:12px; background:#fff; border:1px solid var(--line); border-radius:8px; padding:18px; margin-bottom:12px; }
.result:hover { border-color:var(--night); }
.r-num { width:28px; height:28px; border-radius:50%; background:var(--night); color:var(--cream); font-family:var(--font-mono); font-size:12px; display:flex; align-items:center; justify-content:center; }
.r-name { font-family:var(--font-display); font-weight:700; font-size:24px; color:var(--night); line-height:1.1; }
.r-name:hover { text-decoration:underline; }
.r-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:6px 0; }
.r-meta .price { font-weight:700; color:var(--ink-soft); font-size:13px; }
.r-snippet { font-size:14.5px; color:var(--ink-soft); margin:8px 0 10px; max-width:68ch; }
.r-actions { display:flex; flex-wrap:wrap; gap:8px; }
.btn-small { padding:6px 12px; font-size:13px; }
.pin { background:none; border:0; }
.pin span { display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:var(--night); border:2px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,.35); }
.pin span { font:700 11px/1 var(--font-body); color:#fff; }
.pin.hot span { background:var(--clay); transform:rotate(-45deg) scale(1.25); }
.leaflet-container { font-family:var(--font-body); }

/* status pills */
.status { display:inline-block; width:fit-content; font-size:13px; font-weight:700; margin:2px 0; }
.status.is-open { color:#1F7A4D; }
.status.is-closed { color:var(--clay); }

/* ================= Business page v3 ================= */
.highlights { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.hl { font-size:13px; font-weight:600; background:#fff; border:1px solid var(--line); border-radius:999px; padding:5px 12px; color:var(--night); }
.hl.is-open { background:#E3F2EA; border-color:#BFE0CD; color:#1F7A4D; }
.hl.is-closed { background:#F8E6DF; border-color:#EBC6B8; color:var(--clay); }
button.btn { font-family:var(--font-body); background:transparent; }
.btn[aria-pressed="true"] { background:var(--night); color:var(--cream); }
.loc-hours { margin-bottom:32px; padding-bottom:28px; border-bottom:1px solid var(--line); }
.loc-hours h2, .related h2 { font-family:var(--font-display); font-weight:700; font-size:28px; color:var(--night); margin:0 0 14px; }
.lh-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:24px; }
.lh-grid iframe { width:100%; height:200px; border:0; border-radius:6px; display:block; }
.lh-addr { font-size:14px; margin:8px 0 0; }
.hours-row.today { font-weight:700; color:var(--night); }
.hours-row.today .day::after { content:" (today)"; font-weight:400; color:var(--ink-soft); }
.muted { color:var(--ink-soft); }
.sticky-contact { padding:6px 20px; }
.contact-line { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--line); font-weight:600; color:var(--bluebonnet); }
.contact-line:last-child { border-bottom:0; }
.contact-line small { display:block; font-weight:400; color:var(--ink-soft); font-size:13px; }
.contact-line .cl-ico { font-size:12px; font-weight:700; color:var(--night); border:1px solid var(--night); border-radius:999px; padding:3px 10px; }
.contact-line.static { color:var(--ink); }

/* ================= Owners ================= */
.owners-band { background:var(--night); color:var(--cream); padding:48px 0; margin-top:16px; }
.owners-band .wrap { display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
.owners-band h2 { font-family:var(--font-display); font-size:34px; margin:0 0 6px; }
.owners-band p { margin:0; opacity:.85; max-width:56ch; }
.owners-actions { display:flex; gap:12px; flex-wrap:wrap; }
.btn-gold { background:var(--marigold); color:var(--night); padding:12px 22px; font-size:15px; }
.btn-ghost { border:2px solid rgba(246,240,223,.6); color:var(--cream); padding:10px 20px; font-size:15px; }
.wrap.narrow { max-width:820px; padding-bottom:64px; }
.lead { font-size:19px; color:var(--ink-soft); max-width:60ch; }
.owner-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:28px 0; }
.owner-steps div { background:#fff; border:1px solid var(--line); border-radius:8px; padding:18px; }
.owner-steps h3 { font-family:var(--font-display); font-size:20px; margin:0 0 6px; color:var(--night); }
.owner-steps p { margin:0; font-size:14.5px; color:var(--ink-soft); }
main .ww-search { border:1px solid var(--line); }
.small-note { font-size:14px; color:var(--ink-soft); }
.roadmap.light .road-step { background:#fff; border-color:var(--line); }
.roadmap.light .rs-name { color:var(--night); }
.roadmap.light { max-width:420px; justify-self:start; margin-bottom:48px; }

/* footer cols */
.foot-cols { display:flex; gap:48px; font-size:14px; }
.foot-cols div { display:flex; flex-direction:column; gap:6px; }
.foot-cols strong { font-family:var(--font-display); font-size:16px; margin-bottom:4px; }
.foot-cols a { color:var(--cream); opacity:.75; } .foot-cols a:hover { opacity:1; color:var(--marigold); }
.foot-base { font-size:12.5px; opacity:.55; margin-top:24px; padding-top:16px; border-top:1px solid rgba(246,240,223,.12); display:block; }
.city-chip:hover { background:var(--clay); }

@media (max-width:1000px){ .results-layout { grid-template-columns:1fr; } .map-col { position:static; order:-1; } .r-map { height:280px; min-height:0; } }
@media (max-width:700px){ .lh-grid, .owner-steps { grid-template-columns:1fr; } .foot-cols { gap:28px; } }
:root { --max-width: 1280px; }
.topbar .wrap, .catbar .wrap { max-width: var(--max-width); }
.topnav > a.pill-solid { padding:10px 20px; }
.topnav > a.pill-outline { padding:8px 18px; }
.page-h1 { font-family:var(--font-display); font-weight:700; font-size:clamp(32px,4vw,44px); margin:0; color:var(--night); line-height:1.05; }
.pin span { transform:rotate(-45deg); }
.pin span b { transform:rotate(45deg); font:700 11px/1 var(--font-body); color:#fff; }
button.btn-primary, .btn-primary { background:var(--night); color:var(--cream); }
button.btn-primary:hover { background:var(--night-soft); }
button.btn-primary:disabled { opacity:.6; }
.listing-grid.two { grid-template-columns:repeat(2,1fr); }
@media (max-width:560px){ .listing-grid.two{ grid-template-columns:1fr; } }
.related { margin-top:40px; border-top:3px solid var(--night); padding-top:20px; }
footer { margin-top:0; }
main { padding-bottom:48px; }
main:has(> .owners-band:last-child) { padding-bottom:0; }
.owners-band { margin-bottom:0; }
.topbar .wrap { gap:24px; }
.ww-search { max-width:none; }
.topnav { gap:18px; }

/* ---------- PHP-only additions ---------- */
.biz-card { text-decoration:none; }
.filters form { display:contents; }

.hl.unclaimed { background:transparent; border-style:dashed; color:var(--ink-soft); }
.claim-link { align-self:center; font-size:13px; font-weight:700; color:var(--clay); text-decoration:underline; text-underline-offset:3px; }
.claim-link:hover { color:var(--night); }

.claim-rule { font-size:12.5px !important; background:#fff; border-left:3px solid var(--marigold); padding:8px 10px; border-radius:4px; }
.claim-status.is-error { color:var(--clay); font-weight:600; }

/* ================= Category groups ================= */
.cat-groups { columns: 4 240px; column-gap: 28px; margin: 8px 0 56px; }
.cat-group { break-inside: avoid; background:#fff; border:1px solid var(--line); border-radius:8px; padding:16px 16px 10px; margin-bottom:20px; }
.cat-group h2, .cat-group h3 { font-family:var(--font-display); font-weight:700; font-size:20px; color:var(--night); margin:0 0 8px; }
.cat-group a { display:flex; align-items:center; gap:10px; padding:7px 4px; border-radius:6px; font-size:15px; font-weight:600; color:var(--ink); }
.cat-group a:hover { background:var(--cream); color:var(--night); }
.cat-group a svg { width:20px; height:20px; fill:none; stroke:var(--clay); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.cat-group a em { margin-left:auto; font-style:normal; font-family:var(--font-mono); font-size:12px; color:var(--ink-soft); }
.catbar a.cb-more { margin-left:auto; color:var(--bluebonnet); }
.catbar a.cb-more svg { stroke:var(--bluebonnet); }
.catbar svg, .cat-card svg, .art-tile svg { stroke-linecap:round; stroke-linejoin:round; }

/* ================= Reviews ================= */
.reviews { margin:8px 0 32px; padding-top:28px; border-top:3px solid var(--night); }
.rv-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; }
.rv-head h2 { font-family:var(--font-display); font-weight:700; font-size:30px; color:var(--night); margin:0; }
.rv-summary { display:grid; grid-template-columns:150px minmax(0,1fr) 170px; gap:24px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:8px; padding:18px 20px; margin-bottom:18px; }
.rv-score { display:flex; flex-direction:column; gap:2px; font-size:13px; }
.rv-avg { font-family:var(--font-display); font-weight:800; font-size:52px; line-height:1; color:var(--night); }
.stars.big { font-size:20px; }
.rv-bars { display:flex; flex-direction:column; gap:5px; }
.rv-bar { display:grid; grid-template-columns:48px 1fr 28px; align-items:center; gap:8px; font-size:13px; color:var(--ink-soft); }
.rv-bar .track { height:9px; background:var(--cream-deep); border-radius:5px; overflow:hidden; }
.rv-bar .track span { display:block; height:100%; background:var(--marigold); border-radius:5px; }
.rv-bar .n { text-align:right; font-family:var(--font-mono); font-size:12px; }
.rv-google { display:flex; flex-direction:column; gap:2px; font-size:13px; border-left:1px solid var(--line); padding-left:18px; }
.rv-google strong { font-size:22px; color:var(--night); }
.rv-google a { color:var(--bluebonnet); font-weight:600; }
.rv-sort { margin:0 0 8px; font-size:14px; color:var(--ink-soft); }
.rv-sort select { font:inherit; padding:5px 8px; border:1px solid var(--line); border-radius:6px; background:#fff; }
.review { padding:18px 0; border-bottom:1px solid var(--line); }
.rv-author { display:flex; align-items:center; gap:10px; }
.rv-author strong { display:block; color:var(--night); }
.avatar { width:40px; height:40px; border-radius:50%; background:var(--bluebonnet); color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; font-size:14px; }
.verified { font-size:12px; display:block; }
.verified::before { content:"✓ "; color:#1F7A4D; }
.rv-meta { display:flex; gap:10px; align-items:center; margin:8px 0 4px; font-size:13px; }
.review p { margin:6px 0 0; max-width:68ch; line-height:1.6; }
.owner-reply { margin:12px 0 0 18px; padding:10px 14px; border-left:3px solid var(--marigold); background:#fff; border-radius:4px; font-size:14.5px; }
.write-review { margin-top:24px; background:#fff; border:1px solid var(--line); border-radius:8px; padding:20px; }
.write-review h3 { font-family:var(--font-display); font-size:24px; margin:0 0 12px; color:var(--night); }
.star-input { border:0; padding:0; margin:0 0 6px; display:inline-flex; flex-direction:row-reverse; gap:2px; }
.star-input legend { float:left; width:100%; font-weight:700; font-size:14px; margin-bottom:4px; color:var(--night); }
.star-input input { position:absolute; opacity:0; width:1px; height:1px; }
.star-input label { font-size:34px; line-height:1; color:#D9D3C2; cursor:pointer; padding:0 2px; }
.star-input label:hover, .star-input label:hover ~ label, .star-input input:checked ~ label { color:var(--marigold); }
.star-input input:focus-visible + label { outline:3px solid var(--marigold); outline-offset:2px; border-radius:4px; }
.star-input.has-err label { color:#E8C2B4; }
.fld { display:flex; flex-direction:column; gap:5px; font-size:14px; font-weight:700; color:var(--night); margin:10px 0; flex:1; }
.fld input, .fld textarea { font:inherit; font-weight:400; font-size:15px; padding:10px 12px; border:1px solid #CFC6AA; border-radius:6px; background:#FFFDF8; color:var(--ink); }
.fld textarea { resize:vertical; min-height:120px; }
.fld input:focus, .fld textarea:focus { outline:3px solid rgba(231,163,62,.5); border-color:var(--marigold); }
.fld-row { display:flex; gap:12px; flex-wrap:wrap; }
.fld-row .fld { min-width:180px; }
.field-err { color:var(--clay); font-size:13px; font-weight:600; margin:2px 0 6px; }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.notice { padding:10px 14px; border-radius:6px; background:#FFF6E3; border:1px solid #F0D7A5; margin-bottom:12px; font-size:14.5px; }
.notice.ok { background:#E3F2EA; border-color:#BFE0CD; }
.notice.err { background:#F8E6DF; border-color:#EBC6B8; color:var(--clay); }
a.hl:hover { border-color:var(--night); }
@media (max-width:760px){ .rv-summary { grid-template-columns:1fr; } .rv-google { border-left:0; padding-left:0; border-top:1px solid var(--line); padding-top:12px; } }
.topnav > a.nav-link { color:var(--cream); white-space:nowrap; }
.topnav > a.nav-link:hover { color:var(--marigold); }
.cat-group a.soon span { color:var(--ink-soft); font-weight:400; }
.cat-group a.soon svg { stroke:#B8B09A; }
.biz-form fieldset { border:1px solid var(--line); border-radius:8px; background:#fff; padding:6px 18px 12px; margin:0 0 16px; }
.biz-form legend { font-family:var(--font-display); font-weight:700; font-size:20px; color:var(--night); padding:0 6px; }
.fld select { font:inherit; font-weight:400; font-size:15px; padding:10px 12px; border:1px solid #CFC6AA; border-radius:6px; background:#FFFDF8; }
@media (max-width:1180px){ .topnav > a.nav-link { display:none; } }
.stars { color: var(--marigold); letter-spacing: 1px; }
.fld-label { font-weight:700; font-size:14px; color:var(--night); margin:0 0 2px; }
.star-input { display:flex; justify-content:flex-end; width:fit-content; }
[id] { scroll-margin-top: 150px; }

.claim-box.claimed { border-style:solid; border-color:var(--line); background:#fff; }
.claim-box.claimed h3 { color:var(--night); }

/* ---------- Locations, pager, data credit ---------- */
.loc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; margin:0 0 20px; }
.loc-tile { background:#fff; border:1px solid var(--line); border-radius:8px; padding:14px 16px; display:flex; flex-direction:column; gap:2px; }
.loc-tile strong { font-family:var(--font-display); font-size:20px; color:var(--night); }
.loc-tile em { font-style:normal; font-family:var(--font-mono); font-size:12px; color:var(--ink-soft); }
.loc-tile:hover { border-color:var(--night); box-shadow:inset 0 -4px 0 var(--marigold); }
.pager { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:18px 0 8px; }
.pager a, .pager span { padding:7px 12px; border:1px solid var(--line); border-radius:6px; background:#fff; font-weight:600; font-size:14px; color:var(--night); }
.pager .cur { background:var(--night); color:var(--cream); border-color:var(--night); }
.pager .gap { border:0; background:none; }
.pager a:hover { border-color:var(--night); }
.biz-rating.new { font-size:13px; color:var(--ink-soft); }
.biz-map { width:100%; height:220px; border-radius:6px; border:1px solid var(--line); }
.data-credit { font-size:12px; color:var(--ink-soft); margin:-4px 0 16px; line-height:1.5; }
.data-credit a, .foot-base a { color:inherit; text-decoration:underline; }
footer .wrap.foot-base { display:block; }

/* ---------- HTML site map ---------- */
.sm-region { margin: 34px 0; padding-top: 22px; border-top: 1px solid var(--line); }
.sm-region h2 { font-family: var(--font-display); font-size: 28px; margin: 0 0 8px; }
.sm-region h2 a, .sm-region h3 a { color: var(--night); }
.sm-region h3 { font-size: 17px; margin: 18px 0 8px; }
.sm-list { list-style: none; padding: 0; margin: 0; columns: 4 200px; column-gap: 24px; }
.sm-list li { break-inside: avoid; padding: 3px 0; font-size: 15px; }
.sm-list a { color: var(--bluebonnet); }
.sm-list .muted { font-size: 12px; font-family: var(--font-mono); }
.foot-logo a.prod { text-decoration: none; }

/* ---------- Report links + contact/report form ---------- */
.rv-report { display:inline-block; margin-top:8px; font-size:12.5px; color:var(--ink-soft); text-decoration:none; }
.rv-report:hover { color:var(--clay); text-decoration:underline; }
.report-line { display:flex; align-items:center; gap:7px; font-size:14px; margin:4px 0 18px; }
.report-line svg { width:15px; height:15px; fill:none; stroke:var(--clay); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.report-line a { color:var(--ink-soft); }
.report-line a:hover { color:var(--clay); }
.report-page { padding-bottom:60px; }
.report-form .radio-row { display:flex; gap:10px; align-items:center; padding:7px 2px; font-size:15px; cursor:pointer; border-bottom:1px solid #F1ECDD; }
.report-form .radio-row:last-of-type { border-bottom:0; }
.report-form .radio-row input { accent-color:var(--night); width:17px; height:17px; }
.report-form .fld .muted { font-weight:400; font-size:13px; }
.report-quote { margin:14px 0 20px; padding:14px 18px; background:#fff; border:1px solid var(--line); border-left:4px solid var(--marigold); border-radius:6px; font-size:15px; }
.report-quote .stars { color:var(--marigold); }
.report-quote cite { display:block; margin-top:6px; font-style:normal; color:var(--ink-soft); font-size:13px; }

/* ---------- Accounts: join / sign in ---------- */
.auth-wrap { display:flex; justify-content:center; padding:48px 20px 80px; }
.auth-card { width:100%; max-width:480px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:30px 32px; box-shadow:0 10px 30px rgba(20,44,51,.06); }
.auth-card .page-h1 { font-size:40px; margin-bottom:6px; }
.auth-card .lead { font-size:16.5px; margin:0 0 18px; }
.auth-card .biz-form fieldset { border:0; padding:0; }
.btn-block { display:block; width:100%; text-align:center; padding:12px; font-size:16px; margin-top:12px; }
.auth-alt { margin:18px 0 0; font-size:14.5px; color:var(--ink-soft); text-align:center; }
.check-row { display:flex; gap:9px; align-items:flex-start; font-size:14.5px; margin:12px 0 4px; }
.check-row input { margin-top:3px; accent-color:var(--night); }
.user-pill { display:inline-flex; align-items:center; gap:8px; padding:6px 16px 6px 6px; }
.u-av { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--night); color:var(--marigold); font-weight:800; font-size:13px; }
.u-av.big { width:46px; height:46px; font-size:20px; flex:none; }
.btn-danger { background:var(--clay); color:#fff; border-color:var(--clay); }
.link-btn { background:none; border:0; padding:0; color:var(--ink-soft); font:inherit; font-size:13.5px; text-decoration:underline; cursor:pointer; }
.link-btn:hover { color:var(--clay); }

/* ---------- User + owner dashboard ---------- */
.dash { display:grid; grid-template-columns:250px 1fr; gap:36px; padding-top:32px; padding-bottom:80px; align-items:start; }
.dash-side { position:sticky; top:20px; background:var(--night); color:var(--cream); border-radius:12px; padding:18px 14px; border-bottom:4px solid var(--marigold); }
.dash-me { display:flex; gap:12px; align-items:center; padding:4px 6px 16px; border-bottom:1px solid rgba(246,240,223,.14); margin-bottom:10px; }
.dash-me .u-av { background:var(--marigold); color:var(--night); }
.dash-me strong { display:block; font-size:16px; }
.dash-me div span { display:block; font-size:12.5px; opacity:.7; word-break:break-all; }
.dash-side nav { display:flex; flex-direction:column; gap:2px; }
.dash-side nav a { display:flex; justify-content:space-between; align-items:center; color:var(--cream); text-decoration:none; padding:9px 10px; border-radius:7px; font-weight:600; opacity:.85; }
.dash-side nav a:hover { opacity:1; background:rgba(255,255,255,.07); }
.dash-side nav a.on { opacity:1; background:rgba(231,163,62,.18); color:#FFD08A; box-shadow:inset 3px 0 0 var(--marigold); }
.dash-side nav b { background:rgba(246,240,223,.16); font-size:12px; border-radius:9px; padding:1px 8px; }
.dash-out { margin-top:12px; width:100%; background:none; border:1px solid rgba(246,240,223,.25); color:var(--cream); border-radius:7px; padding:8px; font:inherit; cursor:pointer; opacity:.8; }
.dash-out:hover { opacity:1; }
.dash-main .page-h1 { margin-bottom:16px; }
.dash-verify { display:flex; gap:14px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.dash-cards { display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; margin:6px 0 26px; }
.dash-card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:16px 18px; color:var(--ink-soft); text-decoration:none; font-size:14.5px; }
.dash-card:hover { border-color:var(--night); }
.dash-card span { display:block; font-family:var(--font-display); font-weight:800; font-size:40px; line-height:1; color:var(--night); margin-bottom:4px; }
.dash-h2 { font-family:var(--font-display); font-size:28px; color:var(--night); margin:26px 0 10px; }
.dash-biz { display:flex; justify-content:space-between; align-items:center; gap:14px; background:#fff; border:1px solid var(--line); border-radius:10px; padding:14px 18px; margin:0 0 10px; flex-wrap:wrap; }
.dash-biz strong { color:var(--night); font-size:16.5px; }
.dash-biz .muted { display:block; font-size:13.5px; color:var(--ink-soft); }
.dash-note { display:block; margin-top:6px; font-size:14px; background:#F7F4EA; padding:6px 10px; border-radius:5px; }
.st { font-size:12.5px; font-weight:700; padding:3px 10px; border-radius:20px; background:#EEF0F2; color:#555F69; white-space:nowrap; }
.st-published, .st-resolved { background:#E2F1E7; color:#1F5A37; }
.st-pending, .st-open, .st-unverified { background:#FFF0D4; color:#7A5208; }
.st-hidden, .st-rejected { background:#FBE4DC; color:#8A2E16; }
.dash-cta { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; background:var(--night); color:var(--cream); border-radius:12px; padding:22px 26px; margin:16px 0; }
.dash-cta h2 { font-family:var(--font-display); font-size:28px; margin:0 0 4px; color:var(--cream); }
.dash-cta p { margin:0; opacity:.85; max-width:52ch; }
.dash-cta.soft { background:#fff; color:var(--ink); border:1px solid var(--line); }
.dash-cta.soft h2 { color:var(--night); }
.dash-cta-btns { display:flex; gap:10px; flex-wrap:wrap; }
.dash-cta .btn:not(.btn-primary) { background:transparent; color:var(--cream); border-color:rgba(246,240,223,.4); }
.dash-cta .btn-primary { background:var(--marigold); color:var(--night); border-color:var(--marigold); }
.dash-review { background:#fff; border:1px solid var(--line); border-radius:10px; padding:16px 18px; margin:0 0 12px; }
.dash-review .dr-head { display:flex; gap:10px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin-bottom:4px; }
.dash-review p { margin:8px 0; line-height:1.55; }
.biz-form fieldset.danger { border-color:#EBC6B8; }

/* ---------- Owner: manage listing ---------- */
.manage { padding-bottom:80px; }
.manage-head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin:6px 0 14px; }
.manage-stats { display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; margin:10px 0 22px; }
.manage-stats div { background:#fff; border:1px solid var(--line); border-radius:10px; padding:14px 18px; color:var(--ink-soft); font-size:14.5px; }
.manage-stats span { display:block; font-family:var(--font-display); font-weight:800; font-size:36px; color:var(--night); line-height:1; }
.manage .biz-form { max-width:900px; }
.manage .hours-row { display:grid; grid-template-columns:120px 170px 1fr; gap:12px; align-items:center; padding:7px 0; border-bottom:1px solid #F1ECDD; font-size:15px; }
.manage .hours-row:last-child { border-bottom:0; }
.manage .hours-row .hd { font-weight:700; color:var(--night); }
.manage .hours-row select, .hours-row input[type=time] { font:inherit; padding:7px 9px; border:1px solid #CFC6AA; border-radius:6px; background:#FFFDF8; }
.manage .hours-row .times { visibility:hidden; display:flex; gap:8px; align-items:center; color:var(--ink-soft); }
.manage .hours-row.is-open .times { visibility:visible; }
.manage-reviews { max-width:900px; margin-top:30px; }
.reply-form { display:flex; flex-direction:column; gap:6px; }
.reply-form .fld { margin:4px 0; }
.reply-form textarea { min-height:70px; }
.reply-form .btn { align-self:flex-start; }

@media (max-width: 860px) {
  .dash { grid-template-columns:1fr; gap:18px; }
  .dash-side { position:static; }
  .dash-side nav { flex-direction:row; overflow-x:auto; }
  .dash-side nav a { white-space:nowrap; }
  .dash-cards, .manage-stats { grid-template-columns:1fr; }
  .manage .hours-row { grid-template-columns:1fr 1fr; }
  .manage .hours-row .times { grid-column:1 / -1; }
}
.biz-form .fld .muted { font-weight:400; font-size:13px; color:var(--ink-soft); }
.manage-head .btn { background:#fff; border:1px solid var(--line); }
.manage-rule { background:#fff; border:1px solid var(--line); border-left:4px solid var(--marigold); padding:10px 14px; border-radius:6px; }

/* Listing without an article yet: honest "not enough data" note */
.thin-note { background:#fff; border:1px dashed var(--line); border-left:4px solid var(--marigold); border-radius:8px; padding:16px 20px; }
.thin-note h2 { margin-top:0; }
.thin-note ul { margin:10px 0 0; padding-left:20px; }
.thin-note li { margin:4px 0; }
.thin-note a { color:var(--bluebonnet); text-decoration:underline; font-weight:600; }

/* ---------- Home: worldwide ---------- */
.roadmap.world .rm-title { font-family:var(--font-mono); font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:rgba(246,240,223,.6); margin-bottom:2px; }
.roadmap.world a.road-step { text-decoration:none; }
.roadmap.world a.road-step:hover { border-color:rgba(246,240,223,.45); }
.road-step.later .rs-name { opacity:.6; }
.rm-more { color:var(--marigold); font-weight:700; font-size:14px; text-decoration:none; margin-top:4px; }
.rm-more:hover { text-decoration:underline; }
.country-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:10px; margin:0 0 56px; }
.country-card { display:flex; flex-direction:column; gap:3px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:14px; text-decoration:none; color:var(--ink); }
.country-card .cc { font-family:var(--font-display); font-weight:800; font-size:26px; line-height:1; color:var(--night); }
.country-card strong { font-size:15px; }
.country-card em { font-style:normal; font-family:var(--font-mono); font-size:11.5px; color:var(--ink-soft); }
.country-card.live { border-color:var(--night); box-shadow:inset 0 -4px 0 var(--marigold); }
.country-card.live:hover { background:var(--night); } .country-card.live:hover * { color:var(--cream); }
.country-card.later, .country-card.next { background:transparent; border-style:dashed; }
.country-card.later .cc, .country-card.later strong { opacity:.55; }
.masthead-stats { flex-wrap:wrap; }

/* ---------- Mobile header ---------- */
@media (max-width: 920px) {
  .topnav > a.pill-outline { display:inline-flex; padding:7px 14px; font-size:14px; border-width:1.5px; }
  .topnav > a.pill-solid, .topnav > a.user-pill { font-size:14px; padding:8px 14px; }
}
@media (max-width: 600px) {
  .topbar .wrap { padding-top:10px; padding-bottom:12px; gap:10px; }
  .se-logo .wm { font-size:1.2rem; }
  .topnav { gap:6px; }
  .topnav > a.pill-outline, .topnav > a.pill-solid { padding:7px 12px; font-size:13.5px; }
  /* search: "what" on its own row, "where" + button below, nothing cut off */
  .ww-search { display:grid; grid-template-columns:1fr 54px; height:auto; border-radius:10px; overflow:hidden; }
  .ww-search .ww-field { height:48px; padding:0 14px; border:0; }
  .ww-search .ww-field:first-of-type { grid-column:1 / -1; border-bottom:1px solid #E6DFCB; }
  .ww-search .ww-field + .ww-field::before { display:none; }
  .ww-search button { height:48px; width:54px; padding:0; }
  .ww-search button span { display:none; }
  .ww-field input { font-size:16px; } /* 16px stops iPhone zooming in */
  /* category bar: scrolls sideways, fade shows there's more */
  .catbar .wrap { padding-left:12px; padding-right:12px; gap:2px; -webkit-mask-image:linear-gradient(90deg, #000 85%, transparent); mask-image:linear-gradient(90deg, #000 85%, transparent); }
  .catbar a { padding:7px 10px; font-size:13.5px; }
  .catbar svg { width:16px; height:16px; }
  .masthead { padding-top:32px; }
  .masthead-title { font-size:46px; line-height:.98; }
  .masthead-sub { font-size:17px; }
  .masthead-stats { display:grid; grid-template-columns:1fr 1fr; gap:16px 22px; }
  .masthead-stats .num { font-size:26px; }
  .country-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 600px) {
  .topbar { position:static; } /* don't keep the big header stuck on small screens */
  .roadmap.world { gap:6px; }
  .roadmap.world .road-step { padding:9px 12px; }
  .roadmap.world .rs-name { font-size:18px; }
}

/* ---------- Listing page + general mobile pass ---------- */
@media (max-width: 860px) {
  .detail-wrap.wide .detail-grid { grid-template-columns: 1fr; gap: 24px; }
  .sticky-contact { position: static !important; top: auto; }
  .lh-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .wrap { padding-left: 16px; padding-right: 16px; }
  .detail-header h1, .detail-header .page-h1 { font-size: 34px; line-height: 1.05; word-break: break-word; }
  .biz-actions { gap: 8px; }
  .biz-actions .btn { flex: 1 1 calc(50% - 8px); justify-content: center; text-align: center; padding: 11px 10px; }
  .biz-actions .btn-primary:first-child { flex-basis: 100%; }
  .highlights { flex-wrap: wrap; gap: 6px; }
  .contact-line { word-break: break-word; }
  .contact-line > span:first-child, .contact-line > a:first-child { min-width: 0; }
  .fact-row { flex-direction: column; gap: 2px; }
  .fact-row .fv { text-align: left; word-break: break-word; }
  .biz-article { font-size: 16.5px; }
  .biz-article h2 { font-size: 26px; }
  .loc-hours h2, .related h2 { font-size: 26px; }
  .page-h1 { font-size: 34px; }
  .section-heading { flex-wrap: wrap; gap: 4px 12px; }
  .section-heading h2 { font-size: 28px; }
  .rv-summary { gap: 14px; }
  .review { padding: 14px 0; }
  .claim-box { padding: 18px; }
  .breadcrumb { font-size: 13px; line-height: 1.5; }
  .listing-grid, .listing-grid.two { grid-template-columns: 1fr; }
  .result { grid-template-columns: 28px minmax(0, 1fr); padding: 14px; }
  .r-name { font-size: 21px; }
  .r-actions .btn { flex: 1 1 auto; text-align: center; }
  .loc-grid { grid-template-columns: 1fr 1fr; }
  .cat-groups { grid-template-columns: 1fr; }
  .owners-band .wrap { flex-direction: column; align-items: flex-start; gap: 16px; }
  .owners-actions { display: flex; flex-wrap: wrap; gap: 10px; }
  .foot-cols { flex-wrap: wrap; }
  .fld-row { flex-direction: column; gap: 0; }
  .biz-form fieldset { padding: 6px 14px 12px; }
  .manage .hours-row { grid-template-columns: 1fr; gap: 6px; }
  .manage .hours-row .times { visibility: visible; }
  .manage .hours-row:not(.is-open) .times { display: none; }
  .auth-card { padding: 22px 18px; }
}
