/* ==========================================================================
   PAGE-SPECIFIC LAYOUT
   ========================================================================== */

/* ---------- Hero (homepage) ---------- */
.hero { padding-block: var(--space-16) var(--space-12); background: var(--color-primary-50); border-bottom: 1px solid var(--color-border); }
.hero__inner { max-width: 720px; }
.hero h1 { margin-bottom: var(--space-4); }
.hero p.lede { font-size: var(--fs-body-lg); color: var(--color-ink-soft); margin-bottom: var(--space-8); max-width: 560px; }
.hero-search { display: flex; align-items: stretch; gap: 1px; background: var(--color-border); border-radius: var(--radius-md); overflow: visible; box-shadow: var(--shadow-md); max-width: 640px; position: relative; }
.hero-search__field { background: var(--color-surface); flex: 1; display: flex; align-items: center; gap: 10px; padding: 14px 16px; position: relative; }
.hero-search__field svg { width: 18px; height: 18px; stroke: var(--color-muted); flex-shrink: 0; }
.hero-search__field input { border: 0; background: transparent; width: 100%; font-size: var(--fs-small); outline: none; }
.hero-search .btn { border-radius: 0; }
.hero-search { border-radius: var(--radius-pill); }
.hero-search > .hero-search__field:first-of-type { border-radius: var(--radius-pill) 0 0 var(--radius-pill); }
.hero-search > .btn { border-radius: 0 var(--radius-pill) var(--radius-pill) 0; }
@media (max-width: 640px) {
  .hero-search > .hero-search__field:first-of-type, .hero-search > .hero-search__field:last-of-type { border-radius: var(--radius-md); }
  .hero-search > .btn { border-radius: var(--radius-sm); }
}

@media (max-width: 640px) { .hero-search { flex-direction: column; box-shadow: none; border-radius: var(--radius-md); } .hero-search .btn { border-radius: var(--radius-sm); margin: 6px; } }

.hero-stats { display: flex; gap: var(--space-8); margin-top: var(--space-10); }
.hero-stats div strong { display: block; font-family: var(--font-display); font-size: 1.4rem; }
.hero-stats div span { font-size: var(--fs-caption); color: var(--color-muted); }

/* CTA band */
.cta-band { background: var(--color-primary-700); border-radius: var(--radius-lg); padding: var(--space-10) var(--space-8); display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); color: #fff; }
.cta-band h2 { color: #fff; }
.cta-band p { color: rgba(255,255,255,0.8); margin-top: 6px; }
@media (max-width: 768px) { .cta-band { flex-direction: column; text-align: center; } }

/* ---------- Search results ---------- */
.results-shell { display: grid; grid-template-columns: 260px 1fr; gap: var(--space-8); align-items: start; }
.filters-panel { position: sticky; top: calc(var(--header-h) + var(--space-5)); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-5); background: var(--color-surface); }
.filters-panel__group { padding-bottom: var(--space-5); margin-bottom: var(--space-5); border-bottom: 1px solid var(--color-border-soft); }
.filters-panel__group:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.filters-panel__title { font-weight: 700; font-size: var(--fs-small); margin-bottom: var(--space-3); }
.mobile-filter-bar { display: none; }
@media (max-width: 900px) {
  .results-shell { grid-template-columns: 1fr; }
  .filters-panel { display: none; }
  .mobile-filter-bar { display: flex; gap: 10px; margin-bottom: var(--space-5); }
  .mobile-filter-bar .btn { flex: 1; }
}
.filter-drawer-overlay { display: none; position: fixed; inset: 0; background: var(--color-overlay); z-index: var(--z-modal); align-items: flex-end; justify-content: center; }
.filter-drawer { background: var(--color-surface); width: 100%; max-height: 85vh; overflow-y: auto; border-radius: var(--radius-lg) var(--radius-lg) 0 0; padding: var(--space-5); }

/* ---------- Category / location hero ---------- */
.landing-hero { padding-block: var(--space-10) var(--space-8); border-bottom: 1px solid var(--color-border); }
.landing-hero__meta { display: flex; gap: var(--space-6); margin-top: var(--space-4); flex-wrap: wrap; }
.landing-hero__meta div strong { display: block; font-family: var(--font-mono); font-size: 1.1rem; }
.landing-hero__meta div span { font-size: var(--fs-caption); color: var(--color-muted); }

/* ---------- Listing detail ---------- */
.listing-top-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--space-10); align-items: stretch; margin-bottom: var(--space-6); }
.listing-hero { display: grid; grid-template-columns: 1.6fr 1fr; grid-template-rows: repeat(2, 1fr); gap: 6px; border-radius: var(--radius-lg); overflow: hidden; height: 380px; }
.listing-hero.listing-hero--single { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.listing-hero.listing-hero--single > .dxp-detail-image-frame { grid-row: 1; grid-column: 1; }
.listing-hero img { width: 100%; height: 100%; object-fit: cover; }
.listing-hero a:first-child { grid-row: 1 / 3; }
.listing-hero .more-photos { position: relative; }
.listing-hero .more-photos::after { content: attr(data-count) " photos"; position: absolute; inset: 0; background: rgba(22,33,31,0.55); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: var(--fs-small); }
@media (max-width: 1024px) { .listing-top-grid { grid-template-columns: 1fr; gap: var(--space-5); } }
@media (max-width: 768px) { .listing-hero { grid-template-columns: 1fr; grid-template-rows: 1fr; height: 240px; } .listing-hero a:not(:first-child) { display: none; } }

.listing-layout { display: grid; grid-template-columns: 1fr 340px; gap: var(--space-10); align-items: start; }
.listing-main > section { padding-block: var(--space-8); border-bottom: 1px solid var(--color-border); }
.listing-main > section:first-child { padding-top: var(--space-6); }
.listing-sidebar { position: -webkit-sticky; position: sticky; top: calc(var(--header-h) + var(--space-5)); align-self: start; height: max-content; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-5); background: var(--color-surface); margin-right: var(--space-4); }
.listing-ad-slot { min-width: 0; min-height: 280px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); overflow: hidden; display: flex; flex-direction: column; justify-content: center; align-self: start; }
.listing-ad-slot__label { padding: 9px 12px; border-bottom: 1px solid var(--color-border-soft); font-family: var(--font-mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--color-muted); }
.listing-ad-slot__code { padding: 12px; text-align: center; overflow: hidden; }
.listing-ad-slot__image { padding: 10px; display:flex; justify-content:center; align-items:center; }
.listing-ad-slot__image img { display:block; width:auto; max-width:336px; height:auto; max-height:280px; aspect-ratio:6 / 5; object-fit:contain; border-radius: var(--radius-sm); }
.listing-ad-slot__empty { min-height: 280px; display:grid; place-items:center; padding:var(--space-5); color:var(--color-muted); font-family:var(--font-mono); font-size:var(--fs-caption); text-transform:uppercase; letter-spacing:.08em; background:var(--color-bg-sunken); }
.listing-sidebar__card { padding: var(--space-5); position: static; }
.listing-contact-details { margin-top: var(--space-5); display:flex; flex-direction:column; gap:16px; }
.listing-contact-row { display:flex; gap:12px; align-items:flex-start; }
.listing-contact-icon { width:20px; height:20px; flex:0 0 20px; color:var(--color-primary-700); margin-top:2px; }
.listing-contact-row p,.listing-contact-row a { margin:4px 0 0; font-size:var(--fs-small); line-height:1.55; }
.listing-contact-row > div { min-width:0; }
.listing-contact-row > div > span { display:block; }
.listing-contact-row > div > a.listing-contact-link { display:block; }
.listing-claim-card { margin-top:var(--space-8); padding:var(--space-5); border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-surface); display:flex; align-items:center; justify-content:space-between; gap:var(--space-5); }
.listing-claim-card__action { display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:flex-end; }
@media (max-width:640px) { .listing-claim-card { flex-direction:column; align-items:flex-start; } .listing-claim-card__action { justify-content:flex-start; } }
.listing-contact-link { color:var(--color-primary-700); font-weight:600; text-decoration:none; overflow-wrap:anywhere; }
.listing-socials { display:flex; gap:10px; padding-top:2px; }
.listing-social { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--color-border); border-radius:var(--radius-sm); color:var(--color-ink); }
.listing-social:hover { border-color:var(--color-primary-600); color:var(--color-primary-700); }
.listing-social svg { width:19px; height:19px; }
.listing-sidebar__map { margin-top: var(--space-5); }
.listing-sidebar__hours { margin-top: var(--space-5); padding-top: var(--space-5); border-top:1px solid var(--color-border); }
.listing-sidebar__hours h3 { font-size:var(--fs-h4); margin:0 0 var(--space-3); }
@media (max-width: 1024px) { .listing-layout { grid-template-columns: 1fr; } .listing-sidebar { position: static; margin-right: 0; } }

.amenity-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.amenity-list li { display: flex; align-items: center; gap: 8px; font-size: var(--fs-small); }
.amenity-list svg { width: 17px; height: 17px; stroke: var(--color-success-600, var(--color-success-500)); flex-shrink: 0; }

.hours-table { width: 100%; font-size: var(--fs-small); }
.hours-table td { padding: 7px 0; border-bottom: 1px solid var(--color-border-soft); }
.hours-table td:first-child { color: var(--color-muted); width: 120px; }
.hours-table tr.is-today td { font-weight: 700; color: var(--color-ink); }

.map-placeholder { aspect-ratio: 16/9; border-radius: var(--radius-md); background: var(--color-bg-sunken) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cpath d='M0 0h60v60H0z' fill='none'/%3E%3Cpath d='M0 30h60M30 0v60' stroke='%23E2E2DA' stroke-width='1'/%3E%3C/svg%3E"); display: grid; place-items: center; border: 1px solid var(--color-border); position: relative; }
.map-placeholder .pin { width: 40px; height: 40px; border-radius: 50% 50% 50% 0; background: var(--color-primary-700); transform: rotate(-45deg); display: grid; place-items: center; }
.map-placeholder .pin svg { transform: rotate(45deg); width: 16px; height: 16px; stroke: #fff; }
.map-placeholder .note { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); font-size: var(--fs-caption); color: var(--color-muted); background: #fff; padding: 3px 10px; border-radius: var(--radius-pill); border: 1px solid var(--color-border); }

.rating-summary { display: flex; gap: var(--space-8); align-items: center; flex-wrap: wrap; }
.rating-summary__score { text-align: center; }
.rating-summary__score .num { font-family: var(--font-display); font-size: 3rem; font-weight: 800; line-height: 1; }
.rating-bar-row { display: grid; grid-template-columns: 20px 1fr 30px; gap: 8px; align-items: center; font-size: var(--fs-caption); color: var(--color-muted); margin-bottom: 6px; }
.rating-bar { height: 6px; background: var(--color-border-soft); border-radius: 3px; overflow: hidden; }
.rating-bar span { display: block; height: 100%; background: var(--color-accent-500); }

.review-card { display: flex; gap: 12px; padding-block: var(--space-5); border-bottom: 1px solid var(--color-border-soft); }
.review-card__avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--color-primary-100); color: var(--color-primary-700); display: grid; place-items: center; font-weight: 700; flex-shrink: 0; }

.claim-banner { display: flex; align-items: center; gap: var(--space-4); background: var(--color-accent-100); border: 1px solid #ECD09E; border-radius: var(--radius-md); padding: var(--space-4) var(--space-5); }
.claim-banner__icon { width: 42px; height: 42px; border-radius: 50%; background: #fff; display: grid; place-items: center; flex-shrink: 0; }
.claim-banner__icon svg { width: 21px; height: 21px; stroke: var(--color-accent-700); }

/* ---------- Auth pages ---------- */
.auth-shell { display: flex; min-height: calc(100vh - var(--header-h)); }
.auth-shell__form { flex: 1; display: flex; align-items: center; justify-content: center; padding: var(--space-10) var(--container-pad); }
.auth-card { width: 100%; max-width: 400px; }
.auth-shell__side { flex: 1; background: var(--color-primary-700); background-image: linear-gradient(160deg, var(--color-primary-700), var(--color-primary-900)); color: #fff; padding: var(--space-16); display: flex; flex-direction: column; justify-content: center; }
.auth-shell__side blockquote { font-family: var(--font-display); font-size: 1.4rem; font-weight: 600; line-height: 1.4; }
.auth-shell__side cite { display: block; margin-top: var(--space-4); font-style: normal; font-size: var(--fs-small); opacity: 0.8; }
@media (max-width: 900px) { .auth-shell__side { display: none; } }

/* ---------- Pricing ---------- */
.plans-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-6); align-items: stretch; }
@media (max-width: 900px) { .plans-grid { grid-template-columns: 1fr; max-width: 420px; margin-inline: auto; } }
.billing-toggle { display: inline-flex; padding: 4px; background: var(--color-bg-sunken); border-radius: var(--radius-pill); gap: 4px; }
.billing-toggle button { padding: 8px 18px; border-radius: var(--radius-pill); font-size: var(--fs-small); font-weight: 600; color: var(--color-muted); }
.billing-toggle button[aria-pressed="true"] { background: var(--color-surface); color: var(--color-ink); box-shadow: var(--shadow-sm); }

/* ---------- Checkout ---------- */
.checkout-shell { display: grid; grid-template-columns: 1fr 380px; gap: var(--space-10); align-items: start; }
.order-summary { border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-5); background: var(--color-surface); position: sticky; top: calc(var(--header-h) + var(--space-5)); }
.order-summary__row { display: flex; justify-content: space-between; font-size: var(--fs-small); padding: 8px 0; }
.order-summary__row.total { font-weight: 700; font-size: 1.05rem; border-top: 1px solid var(--color-border); margin-top: 8px; padding-top: 14px; }
@media (max-width: 900px) { .checkout-shell { grid-template-columns: 1fr; } .order-summary { position: static; } }

.pay-method { display: flex; align-items: center; gap: 12px; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-4); cursor: pointer; }
.pay-method:has(input:checked) { border-color: var(--color-primary-600); background: var(--color-primary-50); }
.pay-method input { accent-color: var(--color-primary-700); width: 18px; height: 18px; }

/* ---------- Dashboard overview widgets ---------- */
.activity-item { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--color-border-soft); font-size: var(--fs-small); }
.activity-item__icon { width: 34px; height: 34px; border-radius: 50%; background: var(--color-primary-50); display: grid; place-items: center; flex-shrink: 0; }
.activity-item__icon svg { width: 16px; height: 16px; stroke: var(--color-primary-700); }

/* ---------- Result page top bar ---------- */
.results-topbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-5); flex-wrap: wrap; gap: 10px; }

/* ---------- Style guide ---------- */
.swatch { border-radius: var(--radius-sm); height: 64px; border: 1px solid var(--color-border-soft); margin-bottom: 8px; }
.sg-block { padding-block: var(--space-8); border-bottom: 1px solid var(--color-border); }

.dxp-category-pills{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.dxp-category-pills .pill-filter{white-space:nowrap;}
.dxp-category-pills .pill-filter .text-muted{font-size:0.9em;}
@media (max-width:760px){.dxp-category-pills{gap:8px;}.dxp-category-pills .pill-filter{padding:7px 12px;}}

.dxp-listing-map{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-sunken);}
.dxp-listing-map iframe{display:block;width:100%;height:220px;border:0;}

.dxp-detail-image-frame{position:relative;display:block;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-sunken);}
.dxp-detail-image-frame img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.dxp-detail-image-frame .dxp-placeholder{position:absolute;inset:0;display:grid;place-items:center;}
.dxp-detail-image-frame:not(.is-broken) .dxp-placeholder,.dxp-detail-gallery-image:not(.is-broken) .dxp-placeholder{display:none;}
.dxp-detail-gallery-image{position:relative;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-sm);aspect-ratio:1;background:var(--color-bg-sunken);}
.dxp-detail-gallery-image img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.dxp-detail-gallery-image .dxp-placeholder{position:absolute;inset:0;display:grid;place-items:center;}

/* Category directory: optional admin-assigned feature image, kept secondary to the Package 2 category-card layout. */
.dxp-category-directory-group .dxp-category-feature{display:none;}
@media (max-width: 760px){
  .dxp-category-directory-group .section-head{align-items:flex-start;gap:12px;}
  .dxp-category-directory-group .section-head .link{white-space:nowrap;}
}

.dxp-existing-media,.dxp-existing-gallery { margin:0 0 12px; padding:10px; border:1px solid var(--color-border); border-radius:var(--radius-sm); background:var(--color-bg-sunken); }
.dxp-existing-media img { display:block; width:120px; height:80px; object-fit:cover; border-radius:6px; margin-top:7px; }
.dxp-existing-gallery { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.dxp-existing-gallery .field-hint { width:100%; }
.dxp-existing-gallery img { width:64px; height:64px; object-fit:cover; border-radius:6px; }
.comment-form-rating label,.comment-form-comment label { display:block; font-weight:600; margin-bottom:6px; }
.comment-form-rating select { width:100%; max-width:360px; padding:10px 12px; border:1px solid var(--color-border); border-radius:var(--radius-sm); background:var(--color-surface); }
.comment-form-comment textarea { width:100%; box-sizing:border-box; border:1px solid var(--color-border); border-radius:var(--radius-sm); padding:12px; }


/* ==========================================================================
   v1.6.88 — Frontend polish (spacing, cards, tables, forms, empty states).
   Brand colours, fonts, logo and visual language are unchanged; this layer only
   refines existing components. Kept last in the cascade on purpose.
   ========================================================================== */

/* Listing cards: calmer, more consistent */
a.card.listing-card { transition: border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-med) var(--ease-standard), transform var(--dur-med) var(--ease-standard); }
a.card.listing-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.listing-card__media img { transition: transform var(--dur-med) var(--ease-standard), opacity var(--dur-med) var(--ease-standard); }
a.card.listing-card:hover .listing-card__media img { transform: scale(1.03); }
.listing-card__body { padding: var(--space-4) var(--space-4) var(--space-5); }
.listing-card__title { line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.listing-card__meta { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }

/* Dashboard surfaces */
.stat-card { box-shadow: var(--shadow-sm); }
.dash-sidebar { box-shadow: var(--shadow-sm); }
.dash-nav a, .dash-nav .dash-link { transition: background var(--dur-fast) var(--ease-standard), color var(--dur-fast); }
.dash-shell .state-block { max-width: none; background: var(--color-surface); border: 1px dashed var(--color-border); border-radius: var(--radius-md); padding: var(--space-12) var(--space-6); }
.dash-shell .dtable-wrap .dtable td:first-child { white-space: normal; min-width: 180px; }

/* Tables: stacked rows under 768px (driven by data-label from main.js; same rows, forms and nonces) */
@media (max-width: 768px) {
  .dtable-wrap.is-stacked, .dash-shell .dtable-wrap.is-stacked { overflow: visible; border: 0; background: transparent; box-shadow: none; border-radius: 0; }
  .dtable.dtable--stack, .dtable.dtable--stack tbody, .dtable.dtable--stack tr { display: block; width: 100%; }
  .dtable.dtable--stack thead { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }
  .dtable.dtable--stack tbody tr { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: var(--space-1) var(--space-4); margin-bottom: var(--space-3); }
  .dtable.dtable--stack tbody tr:hover td { background: transparent; }
  .dtable.dtable--stack td,
  .dtable-wrap .dtable.dtable--stack td:first-child,
  .dtable-wrap .dtable.dtable--stack td:last-child,
  .dash-shell .dtable-wrap .dtable.dtable--stack td { display: grid; grid-template-columns: minmax(84px, 0.7fr) minmax(0, 1.3fr); align-items: center; gap: 12px; width: 100%; min-width: 0; padding: 10px 0; border-bottom: 1px solid var(--color-border-soft); white-space: normal; overflow-wrap: anywhere; text-align: left; }
  .dtable.dtable--stack td::before { content: attr(data-label); font-family: var(--font-mono); font-size: var(--fs-caption); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--color-muted); }
  .dtable.dtable--stack td:not([data-label])::before { content: none; }
  .dtable.dtable--stack td:not([data-label]), .dtable-wrap .dtable.dtable--stack td.dtable-empty { display: block; }
  /* First cell is the row title: full width, no label */
  .dtable-wrap .dtable.dtable--stack td:first-child, .dash-shell .dtable-wrap .dtable.dtable--stack td:first-child { display: block; font-weight: 600; padding-top: 12px; }
  .dtable.dtable--stack td:first-child::before { content: none; }
  .dtable.dtable--stack td:last-child { border-bottom: 0; }
  .dtable-wrap .dtable.dtable--stack td.dtable-empty { text-align: center; padding: var(--space-8) var(--space-4); border-bottom: 0; }
  .dtable.dtable--stack td .table-actions { justify-content: flex-start; }
  .dtable.dtable--stack td > * { justify-self: start; max-width: 100%; }
}

/* Forms & wizard: comfortable on small screens (16px inputs avoid iOS zoom-on-focus) */
@media (max-width: 640px) {
  .input, .textarea, .select { font-size: 16px; padding: 12px 14px; }
  .btn { min-height: 44px; }
  .dxp-wizard-nav { gap: var(--space-3); }
  .dxp-wizard-nav > .btn { flex: 1 1 0; }
  .dxp-wizard-nav > span:empty { display: none; }
  .dxp-wizard-nav .hstack { flex: 1; }
  .dxp-wizard-nav .hstack .btn { flex: 1; }
  #dxp-map { min-height: 280px !important; }
}
#dxp-map { width: 100%; max-width: 100%; border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; }
.field-hint { line-height: 1.45; }
.alert { border-radius: var(--radius-sm); }

/* v1.6.89 — breathing room between the listing page (content + sticky sidebar) and the footer */
.listing-layout { margin-bottom: var(--space-16); }
@media (max-width: 1024px) { .listing-layout { margin-bottom: var(--space-12); } }

/* v1.6.90 — "Businesses Here": four cards per row (fewer only where the column is too narrow) */
.businesses-here-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
@media (min-width: 1025px) and (max-width: 1144px) { .businesses-here-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 768px) { .businesses-here-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .businesses-here-grid { grid-template-columns: 1fr; } }
.businesses-here-grid .listing-card__body { padding: var(--space-3) var(--space-3) var(--space-4); }
.businesses-here-grid .listing-card__meta { -webkit-line-clamp: 2; }

/* v1.6.91 — hero "Where?" is now a dropdown of database sectors; styled like the other hero input */
.hero-search__field select { border: 0; background: transparent; width: 100%; min-width: 0; font-size: var(--fs-small); height: calc(var(--fs-small) * 1.55 + 2px); padding: 0; color: var(--color-ink); outline: none; cursor: pointer; }

/* v1.6.100 — "Complete your listing" modal */
.dxp-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: var(--space-4); }
.dxp-modal[hidden] { display: none; }
.dxp-modal__backdrop { position: absolute; inset: 0; background: rgba(15, 30, 30, .55); }
.dxp-modal__panel { position: relative; width: 100%; max-width: 640px; max-height: calc(100vh - 2 * var(--space-4)); overflow-y: auto; padding: var(--space-6); box-shadow: 0 24px 60px rgba(0, 0, 0, .25); }
@media (max-width: 640px) { .dxp-modal__panel { padding: var(--space-5); } .dxp-modal__panel .grid-2 { grid-template-columns: 1fr; } }
body.dxp-modal-open { overflow: hidden; }

/* v1.6.101 — Popular categories: one consistent icon-led card */
.category-card.category-card--icon { position: relative; gap: var(--space-4); padding: var(--space-5); height: 100%; text-decoration: none; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background-color .18s ease; }
.category-card--icon .category-card__icon { width: 56px; height: 56px; border-radius: var(--radius-md); background: var(--color-primary-50, #eef6f5); transition: background-color .18s ease; }
.category-card--icon .category-card__icon svg { width: 28px; height: 28px; stroke: var(--color-primary-700); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; fill: none; transition: stroke .18s ease; }
.category-card--icon .category-card__arrow { position: absolute; top: var(--space-5); right: var(--space-5); width: 20px; height: 20px; fill: none; stroke: var(--color-muted); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; opacity: .55; transition: transform .18s ease, stroke .18s ease, opacity .18s ease; }
.category-card--icon .category-card__body { margin-top: auto; }
.category-card--icon .category-card__name { font-weight: 600; font-size: 1.0625rem; line-height: 1.3; color: var(--color-ink); }
.category-card--icon .category-card__count { display: block; margin-top: 4px; font-family: inherit; font-size: var(--fs-small); }
.category-card.category-card--icon:hover { transform: translateY(-3px); border-color: var(--color-primary-600); background: var(--color-surface); box-shadow: 0 10px 24px rgba(11, 61, 62, .10); }
.category-card--icon:hover .category-card__icon { background: var(--color-primary-700); }
.category-card--icon:hover .category-card__icon svg { stroke: #fff; }
.category-card--icon:hover .category-card__arrow { transform: translateX(3px); stroke: var(--color-primary-700); opacity: 1; }
.category-card--icon:focus-visible { outline: 2px solid var(--color-primary-600); outline-offset: 2px; }
@media (max-width: 640px) {
  .category-card.category-card--icon { padding: var(--space-4); gap: var(--space-3); }
  .category-card--icon .category-card__icon { width: 46px; height: 46px; }
  .category-card--icon .category-card__icon svg { width: 24px; height: 24px; }
  .category-card--icon .category-card__arrow { top: var(--space-4); right: var(--space-4); }
  .category-card--icon .category-card__name { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .category-card.category-card--icon, .category-card--icon * { transition: none; } .category-card.category-card--icon:hover { transform: none; } }

/* v1.6.101 — Pagination (WordPress paginate_links list): one centred row of buttons */
.pagination { margin-top: var(--space-10); }
.pagination ul.page-numbers { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; list-style: none; margin: 0; padding: 0; }
.pagination ul.page-numbers > li { margin: 0; padding: 0; list-style: none; }
.pagination .page-numbers:not(ul) { min-width: 40px; height: 40px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); color: var(--color-ink-soft); font-size: var(--fs-small); font-weight: 600; line-height: 1; text-decoration: none; transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
.pagination a.page-numbers:hover { border-color: var(--color-primary-600); background: var(--color-primary-50, #eef6f5); color: var(--color-primary-700); }
.pagination .page-numbers.current { background: var(--color-primary-700); border-color: var(--color-primary-700); color: #fff; }
.pagination .page-numbers.dots { border-color: transparent; background: transparent; min-width: 24px; padding: 0; color: var(--color-muted); }
.pagination .page-numbers.prev, .pagination .page-numbers.next { padding: 0 16px; }
.pagination a.page-numbers:focus-visible { outline: 2px solid var(--color-primary-600); outline-offset: 2px; }
@media (max-width: 480px) { .pagination ul.page-numbers { gap: 6px; } .pagination .page-numbers:not(ul) { min-width: 36px; height: 36px; padding: 0 10px; } }
/* v1.6.101 — categories: two compact columns on phones instead of one long stack */
@media (max-width: 640px) {
  #categories .grid.grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
  #categories .category-card--icon { padding: var(--space-3) var(--space-3) var(--space-4); }
  #categories .category-card--icon .category-card__arrow { top: var(--space-3); right: var(--space-3); width: 18px; height: 18px; }
  #categories .category-card--icon .category-card__name { font-size: .9375rem; }
  #categories .category-card--icon .category-card__count { font-size: var(--fs-caption); }
}

/* v1.6.102 — listing page "Details": one card of icon rows */
.dxp-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; }
.dxp-detail-row { display: flex; gap: 14px; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--color-border-soft); min-width: 0; }
.dxp-detail-row:nth-child(odd) { border-right: 1px solid var(--color-border-soft); }
.dxp-details > .dxp-detail-row:last-child { border-bottom: 0; }
.dxp-details > .dxp-detail-row:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
.dxp-details > .dxp-detail-row:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; }
.dxp-details--single { grid-template-columns: 1fr; }
.dxp-detail-icon { flex: none; width: 40px; height: 40px; border-radius: 10px; background: var(--color-primary-50); display: grid; place-items: center; }
.dxp-detail-icon svg { width: 20px; height: 20px; fill: none; stroke: var(--color-primary-700); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.dxp-detail-text { min-width: 0; }
.dxp-detail-label { font-size: var(--fs-caption); color: var(--color-muted); margin-bottom: 2px; }
.dxp-detail-value { font-weight: 600; color: var(--color-ink); font-size: var(--fs-small); overflow-wrap: anywhere; }
.dxp-detail-chip { display: inline-block; font-weight: 600; font-size: var(--fs-caption); color: var(--color-primary-700); background: var(--color-primary-50); border: 1px solid var(--color-primary-100); padding: 3px 10px; border-radius: 999px; }
@media (max-width: 640px) {
  .dxp-details { grid-template-columns: 1fr; }
  .dxp-detail-row:nth-child(odd) { border-right: 0; }
  .dxp-details > .dxp-detail-row:nth-last-child(2):nth-child(odd) { border-bottom: 1px solid var(--color-border-soft); }
  .dxp-detail-row { padding: 14px 16px; }
}

/* v1.6.102 — small confirmation toast (Share → "Link copied") */
.dxp-toast { position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 16px); z-index: 1100; max-width: calc(100vw - 32px); padding: 10px 18px; border-radius: 999px; background: var(--color-primary-900); color: #fff; font-size: var(--fs-small); font-weight: 600; box-shadow: 0 10px 28px rgba(0, 0, 0, .25); opacity: 0; pointer-events: none; transition: opacity .2s ease, transform .2s ease; }
.dxp-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
@media (prefers-reduced-motion: reduce) { .dxp-toast { transition: none; } }

/* v1.6.107: Businesses Here category pills */
.businesses-here-pills{margin-bottom:var(--space-4);}
.businesses-here-pills .pill-filter{cursor:pointer;font-family:inherit;}
.businesses-here-pills .pill-filter[aria-pressed="true"] .text-muted{color:inherit;opacity:.8;}
.businesses-here-grid .bh-item{display:contents;}
.businesses-here-grid .bh-item.is-hidden{display:none;}

/* v1.6.108: compact location cards on the home page */
.sector-card.category-card{position:relative;display:flex;flex-direction:row;align-items:center;height:auto;gap:var(--space-4);padding:var(--space-4);text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background-color .18s ease;}
.sector-card .category-card__icon{width:44px;height:44px;flex:0 0 44px;transition:background-color .18s ease;}
.sector-card .category-card__icon svg{stroke-width:2;}
.sector-card__body{min-width:0;}
.sector-card__name{font-weight:600;font-size:1.0625rem;line-height:1.3;color:var(--color-ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.sector-card__tag{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary-700);background:var(--color-primary-50,#eef6f5);padding:2px 7px;border-radius:999px;}
.sector-card__count{display:block;margin-top:2px;font-size:var(--fs-small);color:var(--color-muted);}
.sector-card__arrow{margin-left:auto;flex:0 0 20px;width:20px;height:20px;fill:none;stroke:var(--color-primary-700);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.6;transition:transform .18s ease,opacity .18s ease;}
.sector-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(11,61,62,.10);}
.sector-card:hover .category-card__icon{background:var(--color-primary-700);}
.sector-card:hover .category-card__icon svg{stroke:#fff;}
.sector-card:hover .sector-card__arrow{transform:translateX(3px);opacity:1;}
.sector-card:focus-visible{outline:2px solid var(--color-primary-600);outline-offset:2px;}
.sector-card--top{border-color:var(--color-primary-200,#b9d3d1);}
@media (max-width:760px){.sector-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.sector-card{padding:var(--space-3);gap:var(--space-3);}.sector-card .category-card__icon{width:38px;height:38px;flex-basis:38px;}.sector-card__arrow{display:none;}}
@media (max-width:420px){.sector-grid{grid-template-columns:1fr;}.sector-card__arrow{display:block;}}

/* v1.6.111: tinted category-icon placeholder for listings without a photo */
.dxp-placeholder--icon{background:var(--color-primary-50,#eef6f5);border:0;color:var(--color-primary-700);}
.dxp-placeholder--icon svg{width:36%;max-width:60px;min-width:28px;height:auto;aspect-ratio:1;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.75;}

/* v1.6.111: compact result rows (category, location, search, recently added) */
.listing-rows{display:flex;flex-direction:column;gap:var(--space-3);}
.listing-row{display:flex;gap:var(--space-4);padding:var(--space-3);text-decoration:none;color:inherit;align-items:stretch;transition:border-color .18s ease,box-shadow .18s ease;}
.listing-row:hover{border-color:var(--color-primary-600);box-shadow:0 6px 18px rgba(11,61,62,.08);}
.listing-row__media{position:relative;flex:0 0 170px;width:170px;height:136px;border-radius:var(--radius-sm);overflow:hidden;}
.listing-row__media .dxp-image-frame{border:0;border-radius:inherit;height:100%;}
.listing-row__media .listing-card__badges{top:8px;left:8px;flex-wrap:wrap;max-width:calc(100% - 16px);}
.listing-row__body{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px;}
.listing-row__title{margin:0;font-size:1.1875rem;line-height:1.25;letter-spacing:-.01em;color:var(--color-ink);}
.listing-row:hover .listing-row__title{color:var(--color-primary-700);}
.listing-row__meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:var(--fs-small);color:var(--color-muted);}
.listing-row__dot{opacity:.6;}
.listing-row__rating{display:inline-flex;align-items:center;gap:4px;color:var(--color-ink-soft,var(--color-muted));}
.listing-row__rating svg{width:15px;height:15px;fill:#d9a21b;stroke:none;}
.listing-row__new{font-size:12px;font-weight:600;color:var(--color-primary-700);background:var(--color-primary-50,#eef6f5);padding:1px 8px;border-radius:999px;}
.listing-row__status{font-weight:600;}
.listing-row__status--open{color:#1f7a4d;}
.listing-row__status--closed{color:#a3412b;}
.listing-row__chip{font-size:12px;color:var(--color-ink);border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;padding:1px 9px;}
.listing-row__blurb{margin:3px 0 0;font-size:var(--fs-small);line-height:1.45;color:var(--color-ink-soft,var(--color-muted));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
@media (max-width:640px){.listing-row{gap:var(--space-3);}.listing-row__media{flex-basis:104px;width:104px;height:104px;}.listing-row__title{font-size:1.0625rem;}.listing-row__blurb{-webkit-line-clamp:1;}.listing-row__media .badge{font-size:10px;padding:2px 6px;}}

/* v1.6.111: home hero — photo carousel background (only when 3+ categories have a feature image) */
.hero-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-5);max-width:720px;}
.hero-chip{font-size:var(--fs-small);padding:7px 14px;border-radius:999px;text-decoration:none;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border);transition:border-color .18s ease,background-color .18s ease;}
.hero-chip:hover{border-color:var(--color-primary-600);background:var(--color-primary-50);}
.hero--photo{position:relative;isolation:isolate;min-height:480px;padding-block:var(--space-20,80px) var(--space-16);color:#fff;background:var(--color-primary-900,#0B3D3E);border-bottom:0;overflow:hidden;}
.hero--photo>.container{position:relative;z-index:2;}
.hero--photo h1,.hero--photo p.lede{color:#fff;}
.hero--photo p.lede{opacity:.92;}
.hero--photo .eyebrow{color:#bfe0dd;}
.hero--photo .hero-stats div span{color:rgba(255,255,255,.78);}
.hero--photo .hero-chip{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.38);color:#fff;backdrop-filter:blur(4px);}
.hero--photo .hero-chip:hover{background:rgba(255,255,255,.26);border-color:#fff;}
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-bg__slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease;}
.hero-bg__slide.is-active{opacity:1;}
.hero-bg__slide img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-bg__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,52,55,.92) 0%,rgba(8,52,55,.74) 45%,rgba(8,52,55,.32) 100%);}
.hero-cap{position:absolute;right:max(var(--space-6),calc((100vw - 1200px)/2));bottom:var(--space-6);z-index:3;display:flex;align-items:center;gap:var(--space-4);color:#fff;}
.hero-cap__link{color:#fff;text-decoration:none;font-size:var(--fs-small);background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.28);padding:8px 14px;border-radius:999px;backdrop-filter:blur(4px);}
.hero-cap__link:hover{background:rgba(0,0,0,.62);}
.hero-cap__dots{display:flex;gap:6px;align-items:center;}
.hero-cap__dot{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.45);cursor:pointer;transition:width .2s ease,background-color .2s ease;}
.hero-cap__dot.is-active{width:22px;background:#fff;}
.hero-cap__pause{width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.45);color:#fff;cursor:pointer;display:grid;place-items:center;padding:0;}
.hero-cap__pause svg{width:12px;height:12px;stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.hero-cap__ic--play{display:none;fill:#fff;stroke:none;}
.hero-cap__pause[aria-pressed="true"] .hero-cap__ic--pause{display:none;}
.hero-cap__pause[aria-pressed="true"] .hero-cap__ic--play{display:block;}
@media (max-width:760px){.hero--photo{min-height:0;padding-block:var(--space-12) var(--space-16);}.hero-bg__shade{background:linear-gradient(180deg,rgba(8,52,55,.88),rgba(8,52,55,.7));}.hero-cap{left:var(--space-4);right:var(--space-4);justify-content:space-between;bottom:var(--space-4);}.hero-cap__pause{display:none;}.hero--photo .hero-stats{display:none;}}
@media (prefers-reduced-motion:reduce){.hero-bg__slide{transition:none;}}

/* v1.6.112: badges sit beside the listing name in result rows so the photo stays clear */
.listing-row__head{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;}
.listing-row__head .badge{font-size:11px;padding:2px 8px;white-space:nowrap;}
.dxp-image-frame:has(img):not(.is-broken) .dxp-placeholder--icon{display:none;}

/* v1.6.113: results layout with sticky map column */
.results-layout{display:block;}
.results-layout.has-map{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--space-6);align-items:start;}
.results-main{min-width:0;}
.results-side{position:sticky;top:96px;}
.results-map-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);}
.results-map__head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:2px 4px 10px;font-size:var(--fs-small);}
.results-map__head span{color:var(--color-muted);font-size:var(--fs-caption);}
.results-map{height:420px;border-radius:var(--radius-sm);overflow:hidden;background:#eef1ea;}
.dxp-pin{background:none;border:0;}
.dxp-pin span{display:block;width:26px;height:26px;margin:0 auto;background:var(--color-primary-700,#0E5257);border:2px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 6px rgba(0,0,0,.35);}
.dxp-pin-pop a{display:block;font-weight:600;color:var(--color-primary-700);text-decoration:none;}
.dxp-pin-pop a:hover{text-decoration:underline;}
.dxp-pin-pop span{display:block;color:var(--color-muted);font-size:12px;margin-top:2px;}
@media (max-width:1023px){.results-layout.has-map{display:block;}.results-side{display:none;}}

/* v1.6.113: result-row star rating (five stars, filled to the average) */
.listing-row__stars{position:relative;display:inline-block;width:80px;height:16px;flex:0 0 80px;}
.listing-row__stars-base,.listing-row__stars-fill{position:absolute;left:0;top:0;height:16px;display:flex;white-space:nowrap;overflow:hidden;}
.listing-row__stars-base{width:100%;}
.listing-row__stars svg{width:16px;height:16px;flex:0 0 16px;stroke:none;}
.listing-row__stars-base svg{fill:#d9dcd6;}
.listing-row__stars-fill svg{fill:#d9a21b;}
.listing-row__rating svg{width:16px;height:16px;}

/* v1.6.113: All categories page — icon cards in two columns on phones, photo carousel hero */
@media (max-width:640px){.category-icon-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);}.category-icon-grid .category-card--icon{padding:var(--space-3) var(--space-3) var(--space-4);}.category-icon-grid .category-card--icon .category-card__arrow{top:var(--space-3);right:var(--space-3);width:18px;height:18px;}.category-icon-grid .category-card--icon .category-card__name{font-size:.9375rem;}.category-icon-grid .category-card--icon .category-card__count{font-size:var(--fs-caption);}}
.landing-hero--photo{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:var(--color-primary-900,#0B3D3E);border-bottom:0;padding-bottom:var(--space-12);}
.landing-hero--photo>.container{position:relative;z-index:2;}
.landing-hero--photo h1,.landing-hero--photo p,.landing-hero--photo .text-muted{color:#fff;}
.landing-hero--photo p{opacity:.92;}
.landing-hero--photo .eyebrow{color:#bfe0dd;}
.landing-hero--photo .breadcrumbs,.landing-hero--photo .breadcrumbs a,.landing-hero--photo .breadcrumbs .current,.landing-hero--photo .breadcrumbs .sep{color:rgba(255,255,255,.82);}
.landing-hero--photo .landing-hero__meta strong{color:#fff;}
.landing-hero--photo .landing-hero__meta span{color:rgba(255,255,255,.78);}
@media (max-width:760px){.landing-hero--photo .hero-cap{display:none;}}

/* v1.6.114: listing page priorities.
   Desktop: unchanged two-column layout. With no usable photo there is no hero block and the ad sits under the contact card.
   Tablet/mobile (<=1024px): name + category + sector first, then contact, then photo, then the ad, then the rest;
   owner "claim this listing" prompt last. Order only; no content is moved or duplicated. */
.listing-sidebar > .listing-ad-slot { margin-top: var(--space-5); }
@media (max-width: 1024px) {
  .listing-page { display: flex; flex-direction: column; }
  .listing-page .listing-top-grid, .listing-page .listing-layout, .listing-page .listing-main { display: contents; }
  .listing-page .listing-main > section.listing-title-block { order: 1; padding: var(--space-2) 0 var(--space-5); border: 0; }
  .listing-page .listing-sidebar { order: 2; align-self: stretch; margin-bottom: var(--space-5); }
  .listing-page .listing-hero { order: 3; width: 100%; margin-bottom: var(--space-5); }
  .listing-page .listing-ad-slot { order: 4; align-self: stretch; min-height: 0; margin-bottom: var(--space-5); }
  .listing-sidebar > .listing-ad-slot { margin-bottom: 0; }
  .listing-page .listing-main > section { order: 5; }
  .listing-page .listing-main > section.listing-claim-card { order: 9; }
  .listing-page .listing-ad-slot__empty { min-height: 120px; }
}

/* v1.6.115: contributor pages */
.contrib-wrap { padding-block: var(--space-6) var(--space-16); max-width: 900px; }
.contrib-head { margin-bottom: var(--space-4); }
.contrib-nav { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; border-bottom: 1px solid var(--color-border); margin-bottom: var(--space-6); }
.contrib-nav__tabs { display: flex; gap: var(--space-2); overflow-x: auto; }
.contrib-nav__tab { padding: 10px 14px; font-weight: 600; color: var(--color-muted); border-bottom: 2px solid transparent; white-space: nowrap; text-decoration: none; }
.contrib-nav__tab.is-active { color: var(--color-primary-700); border-bottom-color: var(--color-primary-700); }
.contrib-stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--space-3); }
.contrib-stat { padding: var(--space-4); text-align: left; }
.contrib-stat__n { font-size: 28px; font-weight: 700; line-height: 1.1; }
.contrib-section { padding: var(--space-5); }
.contrib-section > h3 { font-size: var(--fs-h4); margin: 0 0 var(--space-4); }
.contrib-geo { padding: var(--space-4); border: 1px dashed var(--color-border); border-radius: var(--radius-md); display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.contrib-hours { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
.contrib-hours__row { display: grid; grid-template-columns: 90px 1fr auto 1fr; gap: 10px; align-items: center; }
@media (max-width: 720px) { .contrib-stats { grid-template-columns: repeat(2, 1fr); } .contrib-hours__row { grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: 6px; } .contrib-hours__row > label { grid-column: 1 / -1; } .contrib-hours__row .input { min-width: 0; padding-inline: 8px; } .contrib-nav__tab { padding: 10px 10px; } }

/* v1.6.119: typed text in the hero search box inherited the white hero text colour on phones (invisible). Always use dark ink. */
.hero-search__field input{color:var(--color-ink,#16211F);-webkit-text-fill-color:var(--color-ink,#16211F);caret-color:var(--color-ink,#16211F);}
.hero-search__field input::placeholder{color:var(--color-muted,#6b7a78);-webkit-text-fill-color:var(--color-muted,#6b7a78);opacity:1;}
.hero-search__field input:-webkit-autofill{-webkit-text-fill-color:var(--color-ink,#16211F);-webkit-box-shadow:0 0 0 1000px var(--color-surface,#fff) inset;}

/* v1.6.121: opening-hours table. Day column shrinks to its content, each time range stays on one line, and on narrow phones the day names shorten (Mon, Tue ...). */
.hours-table td:first-child{width:1%;white-space:nowrap;padding-right:var(--space-4,16px);}
.hours-table td:last-child{white-space:nowrap;}
.hours-table .day-short{display:none;}
@media (max-width:400px){.hours-table .day-full{display:none;}.hours-table .day-short{display:inline;}}

/* v1.6.122: Privacy Policy / Terms of Service reading layout. */
.legal-page{max-width:760px;margin-inline:auto;color:var(--color-ink-soft,#3C4644);line-height:1.7;}
.legal-page h1{margin-bottom:var(--space-2,8px);}
.legal-page .legal-updated{color:var(--color-muted,#6E756E);font-size:var(--fs-small);margin-bottom:var(--space-8,32px);}
.legal-page h2{font-size:var(--fs-h3,1.35rem);margin:var(--space-10,40px) 0 var(--space-3,12px);color:var(--color-ink,#16211F);line-height:1.3;}
.legal-page h3{font-size:var(--fs-body-lg,1.1rem);margin:var(--space-6,24px) 0 var(--space-2,8px);color:var(--color-ink,#16211F);}
.legal-page p{margin:0 0 var(--space-4,16px);}
.legal-page ul{margin:0 0 var(--space-4,16px);padding-left:1.25em;list-style:disc;}
.legal-page li{margin-bottom:6px;}
.legal-page a{color:var(--color-primary,#0E5257);text-decoration:underline;overflow-wrap:anywhere;}
.legal-page .legal-tagline{margin-top:var(--space-10,40px);padding-top:var(--space-6,24px);border-top:1px solid var(--color-border,#e4e8e6);text-align:center;color:var(--color-ink,#16211F);}

/* About page extras (same reading layout as the legal pages). */
.legal-page .legal-kicker{font-family:var(--font-mono,ui-monospace,monospace);text-transform:uppercase;letter-spacing:.08em;font-size:var(--fs-caption,.8rem);color:var(--color-primary,#0E5257);margin:0 0 var(--space-2,8px);}
.legal-page .legal-lede{font-size:var(--fs-body-lg,1.15rem);color:var(--color-ink,#16211F);margin-bottom:var(--space-6,24px);}
.legal-page .legal-callout{background:var(--color-primary-50,#e8f2f1);border:1px solid var(--color-border,#d5e3e1);border-radius:var(--radius-md,12px);padding:var(--space-5,20px) var(--space-6,24px);margin:var(--space-6,24px) 0;}
.legal-page .legal-callout p:last-child{margin-bottom:0;}

/* v1.6.123: About page intro lines. */
.legal-page .legal-lede{font-size:var(--fs-body-lg,1.1rem);color:var(--color-ink,#16211F);margin-bottom:var(--space-4,16px);}
.legal-page .legal-lede--title{font-size:var(--fs-h3,1.35rem);margin-top:var(--space-4,16px);}

/* v1.6.124: Featured / Verified badges on cards with a photo were hidden behind the image (the image frame's img has z-index:1). Keep badges on top. */
.listing-card__badges{z-index:3;}

/* v1.6.125: colourful social icons */
.listing-socials{gap:12px;}
.listing-social{width:42px;height:42px;padding:0;border:0;border-radius:11px;overflow:hidden;background:none;display:block;transition:transform .15s ease,box-shadow .15s ease;}
.listing-social svg{display:block;width:100%;height:100%;}
.listing-social:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.2);border:0;}
.listing-social:focus-visible{outline:2px solid var(--color-primary-600,#0E5257);outline-offset:3px;}

/* v1.6.125: photo lightbox */
a.dxp-detail-image-frame,a.dxp-detail-gallery-image{cursor:zoom-in;}
.dxp-photo-count{position:absolute;right:12px;bottom:12px;z-index:2;background:rgba(0,0,0,.68);color:#fff;font-size:12px;line-height:1;padding:7px 11px;border-radius:999px;pointer-events:none;}
body.dxp-lb-open{overflow:hidden;}
.dxp-lb{position:fixed;inset:0;z-index:100000;display:flex;flex-direction:column;background:rgba(8,14,13,.97);color:#fff;touch-action:pan-y;}
.dxp-lb[hidden]{display:none;}
.dxp-lb__top{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-size:14px;}
.dxp-lb__stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 56px;}
.dxp-lb__img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;user-select:none;-webkit-user-drag:none;}
.dxp-lb__btn{appearance:none;border:0;background:rgba(255,255,255,.14);color:#fff;width:44px;height:44px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center;}
.dxp-lb__btn:hover{background:rgba(255,255,255,.26);}
.dxp-lb__btn:focus-visible{outline:2px solid #fff;outline-offset:2px;}
.dxp-lb__prev,.dxp-lb__next{position:absolute;top:50%;transform:translateY(-50%);}
.dxp-lb__prev{left:8px;}.dxp-lb__next{right:8px;}
.dxp-lb__strip{display:flex;gap:8px;overflow-x:auto;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));justify-content:center;}
.dxp-lb__thumb{flex:0 0 auto;width:68px;height:52px;padding:0;border:2px solid transparent;border-radius:6px;overflow:hidden;background:#222;cursor:pointer;opacity:.6;}
.dxp-lb__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.dxp-lb__thumb[aria-current="true"]{border-color:#fff;opacity:1;}
@media (max-width:640px){.dxp-lb__stage{padding:0 8px;}.dxp-lb__prev,.dxp-lb__next{width:38px;height:38px;background:rgba(0,0,0,.45);}.dxp-lb__thumb{width:56px;height:44px;}.dxp-lb__strip{justify-content:flex-start;}}

/* v1.6.126: Get Directions button under the map */
.listing-directions{margin-top:var(--space-3,12px);gap:8px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;}
.listing-directions svg{width:18px;height:18px;flex:0 0 auto;}

/* v1.6.128: collapsible chip groups (Categories in <sector>). Without JavaScript everything stays visible. */
.dxp-collapsible__body{position:relative;overflow:hidden;transition:max-height .35s ease;}
.dxp-collapsible.is-collapsed .dxp-collapsible__body{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 16px),transparent);}
.dxp-collapsible__toggle{appearance:none;display:inline-flex;align-items:center;gap:8px;margin-top:var(--space-3,12px);padding:8px 16px 8px 14px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface,#fff);color:var(--color-primary-700,#0E5257);font:inherit;font-size:var(--fs-small);font-weight:600;cursor:pointer;transition:border-color .15s ease,background-color .15s ease;}
.dxp-collapsible__toggle:hover{border-color:var(--color-primary-600,#17767e);background:var(--color-primary-50,#eef6f5);}
.dxp-collapsible__toggle:focus-visible{outline:2px solid var(--color-primary-600,#17767e);outline-offset:2px;}
.dxp-collapsible__toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s ease;}
.dxp-collapsible.is-expanded .dxp-collapsible__toggle svg{transform:rotate(180deg);}
.dxp-collapsible__toggle[hidden]{display:none;}
@media (prefers-reduced-motion:reduce){.dxp-collapsible__body,.dxp-collapsible__toggle svg{transition:none;}}

/* v1.6.129: Get Directions in theme green; ad creative always contained in its card */
.btn.listing-directions{background:var(--color-primary-700);color:#fff;border-color:var(--color-primary-700);font-weight:600;}
.btn.listing-directions:hover{background:var(--color-primary-600);border-color:var(--color-primary-600);color:#fff;}
.btn.listing-directions:focus-visible{box-shadow:var(--shadow-focus);}
.btn.listing-directions svg{stroke:currentColor;}
.listing-ad-slot{max-width:100%;}
.listing-ad-slot__image{padding:10px;}
.listing-ad-slot__image a{display:block;max-width:100%;}
.listing-ad-slot__image img{width:auto;max-width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;margin:0 auto;}
.listing-ad-slot__code{max-width:100%;}
.listing-ad-slot__code img,.listing-ad-slot__code video,.listing-ad-slot__code svg,.listing-ad-slot__code canvas{max-width:100%;height:auto;}
.listing-ad-slot__code iframe,.listing-ad-slot__code ins,.listing-ad-slot__code embed,.listing-ad-slot__code object{max-width:100%;}
.listing-ad-slot__code > *{max-width:100%;}

/* v1.6.132: hero grid has exactly three slots (1 large + 2 stacked). Extra photos stay in the DOM for the lightbox and the Photos grid but no longer spill into stray rows. */
@media (min-width: 769px){
  .listing-hero:not(.listing-hero--single) > :nth-child(n+4){display:none;}
  .listing-hero:not(.listing-hero--single) > :nth-child(2):last-child{grid-row:1 / 3;}
}

/* v1.6.133: review form name/email fields match the rating and review fields */
.comment-form-author label,.comment-form-email label { display:block; font-weight:600; margin-bottom:6px; }
.comment-form-author input,.comment-form-email input { width:100%; max-width:360px; box-sizing:border-box; padding:10px 12px; border:1px solid var(--color-border); border-radius:var(--radius-sm); background:var(--color-surface); font:inherit; color:var(--color-ink); }
#reviews .comment-form{position:relative;}
#reviews #respond{margin-top:var(--space-6,32px);}
#reviews #respond .comment-reply-title{font-size:var(--fs-h4);margin:0 0 6px;}
#reviews .comment-form{display:flex;flex-direction:column;gap:var(--space-4,16px);}
#reviews .comment-form > p{margin:0;}
#reviews .comment-form .comment-form-rating{order:1;}
#reviews .comment-form .comment-form-author{order:2;}
#reviews .comment-form .comment-form-email{order:3;}
#reviews .comment-form .comment-form-comment{order:4;}
#reviews .comment-form .form-submit{order:5;}
#reviews .comment-form .dxp-hp{order:6;}
#reviews .comment-form .form-submit .btn{cursor:pointer;}

/* v1.6.134: contributor app install banner (shown to signed-in contributors only) */
.dxp-capp-banner{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:900;max-width:520px;margin:0 auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg,16px);box-shadow:0 10px 30px rgba(22,33,31,.18);padding:14px 16px;display:flex;flex-direction:column;gap:12px;}
.dxp-capp-banner__text{margin:0;font-size:var(--fs-small,14px);line-height:1.5;color:var(--color-ink);}
.dxp-capp-banner__actions{display:flex;gap:8px;justify-content:flex-end;}
.dxp-capp-banner__actions .btn{padding:8px 16px;}
