/* TownHub directory patterns on the existing AhiBizz search and profile components.
   The wrapper is mounted only around the normal app, never the coming-soon page.
   All data, native forms, maps, consent, navigation and booking handlers are retained. */
body.ahi-townhub .ahi-townhub-app {
  --ahi-th-dir-page: #f5f6f8;
  --ahi-th-dir-surface: #fff;
  --ahi-th-dir-raised: #f5f7fa;
  --ahi-th-dir-ivory: #faf7ef;
  --ahi-th-dir-text: #142540;
  --ahi-th-dir-muted: #647287;
  --ahi-th-dir-line: #e2e7ee;
  --ahi-th-dir-gold: #d7aa43;
  --ahi-th-dir-gold-text: #8a661b;
  --ahi-th-dir-shadow: 0 6px 24px #14254006;
}

/* Search: one deliberate filter area, then a distinct results / map workspace. */
body.ahi-townhub .ahi-townhub-app .ahi-dir-search {
  min-inline-size: 0;
  background: var(--ahi-th-dir-page);
  color: var(--ahi-th-dir-text);
  padding-block-end: 48px;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-page-banner {
  padding-block: 30px 24px;
  background: var(--ahi-th-dir-ivory);
  border-block-end: 1px solid var(--ahi-th-dir-line);
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-heading { margin-block-end: 20px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-heading h1 {
  font-size: clamp(26px, 3vw, 36px);
  letter-spacing: -.035em;
  font-weight: 750;
  color: var(--ahi-th-dir-text);
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-form {
  max-inline-size: none;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  padding: 8px;
  border: 1px solid var(--ahi-th-dir-line);
  border-radius: 20px;
  background: var(--ahi-th-dir-surface);
  box-shadow: 0 8px 24px #14254005;
  text-align: start;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-field {
  min-block-size: 52px;
  block-size: auto;
  gap: 12px;
  padding-inline: 14px;
  border: 0;
  border-block-end: 1px solid var(--ahi-th-dir-line);
  color: var(--ahi-th-dir-gold-text);
  background: transparent;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-field:focus-within {
  border-radius: 12px;
  outline: 2px solid var(--ahi-th-dir-gold);
  outline-offset: -2px;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-field :is(input, select) {
  block-size: 50px;
  padding: 6px 0;
  font-size: 14px;
  color: var(--ahi-th-dir-text);
  background: transparent;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-field input::placeholder { color: var(--ahi-th-dir-muted); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-category { border: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-form .ahi-dir-button {
  min-block-size: 48px;
  min-inline-size: 140px;
  inline-size: 100%;
  margin: 6px 0 0;
  border-radius: 13px;
  background: var(--ahi-th-dir-gold);
  color: #142540;
  font-size: 14px;
  font-weight: 750;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-content-search {
  margin-block: 16px 0;
  border: 1px solid var(--ahi-th-dir-line);
  border-radius: 16px;
  background: var(--ahi-th-dir-surface);
  color: var(--ahi-th-dir-text);
  padding: 0 16px;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-content-search > summary {
  min-block-size: 48px;
  padding-block: 12px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-content-search > form { padding-block: 8px 20px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-content-search :is(select, button) { min-block-size: 44px; border-radius: 11px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-content-search :is(select, fieldset) { border-color: var(--ahi-th-dir-line); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-content-search select { max-inline-size: 100%; background: var(--ahi-th-dir-raised); color: var(--ahi-th-dir-text); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-controls {
  gap: 12px 18px;
  margin-block: 18px 0;
  font-size: 13px;
  color: var(--ahi-th-dir-text);
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-controls label { min-block-size: 44px; flex-wrap: wrap; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-controls select {
  min-block-size: 44px;
  padding: 8px 12px;
  border-color: var(--ahi-th-dir-line);
  background: var(--ahi-th-dir-surface);
  color: var(--ahi-th-dir-text);
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-controls input[type=checkbox] { accent-color: #a87e24; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search > .ahi-dir-section { padding-block: 24px 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-block-end: 22px;
  padding-block-end: 20px;
  border-block-end: 1px solid var(--ahi-th-dir-line);
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search-toolbar > .ahi-dir-section-title { gap: 16px; flex: 1 1 180px; margin: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search-toolbar h2 { font-size: 19px; letter-spacing: -.02em; color: var(--ahi-th-dir-text); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search-toolbar .ahi-dir-text-link { font-size: 12px; min-block-size: 44px; display: inline-flex; align-items: center; color: var(--ahi-th-dir-muted); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-view {
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--ahi-th-dir-line);
  border-radius: 14px;
  background: var(--ahi-th-dir-surface);
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-view button {
  min-inline-size: 64px;
  min-block-size: 44px;
  padding: 8px 12px;
  border-radius: 10px;
  color: var(--ahi-th-dir-muted);
  font-size: 12px;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-view button[aria-pressed=true] {
  color: #fff;
  background: #203c5c;
  border-color: #203c5c;
  box-shadow: 0 2px 5px #14254012;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-body { min-inline-size: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-results { grid-template-columns: minmax(0, 1fr); gap: 20px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search :is(.ahi-dir-card-shell, .ahi-dir-card) {
  background: var(--ahi-th-dir-surface);
  color: var(--ahi-th-dir-text);
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-shell {
  position: relative;
  min-inline-size: 0;
  border: 1px solid var(--ahi-th-dir-line);
  border-radius: 20px;
  box-shadow: var(--ahi-th-dir-shadow);
  transition: border-color .18s, box-shadow .18s;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-shell:hover { border-color: #c3cddb; box-shadow: 0 10px 26px #1425400c; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-shell.is-map-selected { outline-color: var(--ahi-th-dir-gold); border-color: var(--ahi-th-dir-gold); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card { border: 0; border-radius: 0; box-shadow: none; transform: none; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-image { aspect-ratio: 1.75; background: var(--ahi-th-dir-raised); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-image-placeholder { background: var(--ahi-th-dir-raised); color: var(--ahi-th-dir-muted); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-category {
  left: auto;
  right: auto;
  inset-inline-start: 14px;
  inset-inline-end: auto;
  bottom: 14px;
  max-inline-size: calc(100% - 28px);
  padding: 6px 10px;
  border: 1px solid #ffffff28;
  border-radius: 8px;
  background: #142540ed;
  color: #fff;
  font-size: 10px;
  line-height: 1.5;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-content { padding: 20px; min-inline-size: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-content h3 { min-block-size: 0; font-size: 18px; line-height: 1.4; color: var(--ahi-th-dir-text); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-description {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  min-block-size: 0;
  margin-block-start: 10px !important;
  color: var(--ahi-th-dir-muted);
  font-size: 13px;
  line-height: 1.7;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-review-card-rating { margin-block: 8px 0; color: var(--ahi-th-dir-gold-text); font-size: 13px; font-weight: 700; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-public-indicators { font-size: 11px; color: var(--ahi-th-dir-muted); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-location {
  flex-wrap: wrap;
  gap: 7px;
  margin-block-start: 16px;
  padding-block-start: 13px;
  border-color: var(--ahi-th-dir-line);
  color: var(--ahi-th-dir-muted);
  font-size: 12px;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-location svg { inline-size: 16px; block-size: 16px; color: var(--ahi-th-dir-gold-text); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-location span { margin-left: 0; margin-inline-start: auto; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-save:has(> :not(:empty)) { padding: 0 20px 18px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-save button {
  min-block-size: 44px;
  background: var(--ahi-th-dir-raised);
  border-color: var(--ahi-th-dir-line);
  color: var(--ahi-th-dir-text);
  font-size: 12px;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-card-save button[aria-pressed=true] { background: var(--ahi-th-dir-ivory); border-color: var(--ahi-th-dir-gold); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-map-focus {
  min-block-size: 46px;
  padding: 11px 16px;
  border-color: var(--ahi-th-dir-line);
  background: var(--ahi-th-dir-raised);
  color: var(--ahi-th-dir-text);
  font-size: 12px;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-results.is-list > .ahi-dir-card-shell > .ahi-dir-card { grid-template-columns: 108px minmax(0, 1fr); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-list .ahi-dir-card-image { aspect-ratio: auto; min-block-size: 170px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-list .ahi-dir-image-placeholder { min-block-size: 170px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-list .ahi-dir-card-content { padding: 14px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-list .ahi-dir-card-content h3 { font-size: 15px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-list .ahi-dir-card-description { font-size: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-list .ahi-dir-card-category { inset-inline: 8px; bottom: 8px; max-inline-size: calc(100% - 16px); font-size: 9px; padding: 4px 6px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-map { min-inline-size: 0; margin-block: 0 22px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-map > .ahi-dir-button { min-block-size: 44px; border-radius: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-map-body:not(.is-expanded) { border-color: var(--ahi-th-dir-line); border-radius: 20px; background: var(--ahi-th-dir-surface); box-shadow: var(--ahi-th-dir-shadow); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-map-toolbar { gap: 8px; padding: 12px; border-color: var(--ahi-th-dir-line); background: var(--ahi-th-dir-surface); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-map-toolbar .ahi-dir-button { flex: 1 1 130px; min-inline-size: 0; padding: 8px 10px; font-size: 11px; border-radius: 10px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-map-toolbar > span { flex-basis: 100%; font-size: 12px; color: var(--ahi-th-dir-muted); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-map-actions { padding: 14px; gap: 12px; background: var(--ahi-th-dir-surface); font-size: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-map-actions > .ahi-dir-button { min-block-size: 44px; border-radius: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-map-body.is-expanded { background: var(--ahi-th-dir-surface); color: var(--ahi-th-dir-text); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-pagination { gap: 12px; margin-block: 28px 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-pagination button { min-block-size: 44px; border-color: var(--ahi-th-dir-line); border-radius: 12px; background: var(--ahi-th-dir-surface); color: var(--ahi-th-dir-text); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-pagination span { color: var(--ahi-th-dir-muted); font-variant-numeric: tabular-nums; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-notice { border-color: var(--ahi-th-dir-line); border-radius: 18px; background: var(--ahi-th-dir-surface); color: var(--ahi-th-dir-muted); }

/* Profiles: photographic identity, sticky section tabs, readable content and contact column. */
body.ahi-townhub .ahi-townhub-app .ahi-directory:has(> .ahi-profile-hero) { background: var(--ahi-th-dir-page); color: var(--ahi-th-dir-text); }
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero {
  min-block-size: 340px;
  padding-block: 26px 38px;
  background: #142540;
  align-items: end;
}
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero::after { background: linear-gradient(0deg, #102039f2, #14254060 80%), linear-gradient(90deg, #14254080, transparent); }
body.ahi-townhub .ahi-townhub-app .ahi-profile-header-content { min-inline-size: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero .ahi-dir-detail-back {
  display: inline-flex;
  align-items: center;
  min-block-size: 44px;
  margin-block-end: 42px;
  padding-inline: 13px;
  border: 1px solid #ffffff3b;
  border-radius: 10px;
  background: #14254040;
  color: #fff;
  font-size: 12px;
}
body.ahi-townhub .ahi-townhub-app .ahi-profile-business-identity { gap: 18px; align-items: center; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-business-avatar {
  inline-size: 78px;
  block-size: 78px;
  flex-basis: 78px;
  border: 4px solid #ffffffed;
  border-radius: 20px;
  box-shadow: 0 6px 22px #08182933;
}
body.ahi-townhub .ahi-townhub-app .ahi-profile-business-heading .ahi-dir-hero-kicker {
  display: inline-block;
  margin-block-end: 9px;
  color: #ecd097;
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: .075em;
}
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero .ahi-profile-business-heading h1 {
  max-inline-size: 100%;
  color: #fff;
  font-size: clamp(25px, 3.4vw, 42px);
  font-weight: 750;
  letter-spacing: -.035em;
  line-height: 1.2;
}
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero .ahi-profile-business-heading p { gap: 8px; margin-block-start: 10px; color: #e1e8f1; font-size: 13px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero .ahi-public-indicators { margin-block-start: 10px; color: #e1e8f1; font-size: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero .ahi-public-new { background: #ffffff1a; color: #fff; border: 1px solid #ffffff33; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero .ahi-review-card-rating { color: #ecd097; font-size: 13px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero.is-compact { min-block-size: 260px; padding-block: 24px 32px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero.is-compact .ahi-dir-detail-back { margin-block-end: 24px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero.is-gallery { min-block-size: 390px; }
body.ahi-townhub .ahi-townhub-app .ahi-detail-nav {
  top: var(--ahi-th-header-height, 76px);
  z-index: 24;
  background: var(--ahi-th-dir-surface);
  border-block-end: 1px solid var(--ahi-th-dir-line);
  box-shadow: 0 5px 14px #14254004;
}
body.ahi-townhub .ahi-townhub-app .ahi-detail-nav-links { gap: 4px; padding-block: 8px; }
body.ahi-townhub .ahi-townhub-app .ahi-detail-nav a {
  min-block-size: 46px;
  padding: 10px 16px;
  border-radius: 10px;
  color: var(--ahi-th-dir-muted);
  font-size: 12px;
  font-weight: 750;
}
body.ahi-townhub .ahi-townhub-app .ahi-detail-nav a:hover { background: var(--ahi-th-dir-ivory); color: var(--ahi-th-dir-text); }
body.ahi-townhub .ahi-townhub-app [id^=ahi-detail-] { scroll-margin-block-start: calc(var(--ahi-th-header-height, 76px) + 92px); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  padding-block: 24px 50px;
  align-items: start;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout > div { min-inline-size: 0; inline-size: 100%; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout :is(.ahi-dir-detail-block, .ahi-dir-contact-panel) {
  padding: 22px;
  margin-block: 0 22px;
  border: 1px solid var(--ahi-th-dir-line);
  border-radius: 20px;
  background: var(--ahi-th-dir-surface);
  color: var(--ahi-th-dir-text);
  box-shadow: var(--ahi-th-dir-shadow);
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout :is(.ahi-dir-detail-block, .ahi-dir-contact-panel) > h2 {
  padding-block-end: 16px;
  margin-block-end: 19px;
  border-block-end: 1px solid var(--ahi-th-dir-line);
  color: var(--ahi-th-dir-text);
  font-size: 19px;
  line-height: 1.4;
  letter-spacing: -.02em;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-description { color: var(--ahi-th-dir-muted); font-size: 14px; line-height: 1.9; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-contact-panel {
  position: static;
  order: 0;
  display: flex;
  gap: 15px;
  inline-size: 100%;
  margin-block: 0;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-contact-panel .ahi-dir-contact-actions { display: grid; gap: 10px; min-inline-size: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-contact-panel :is(.ahi-dir-button, .ahi-chat-owner-action) { min-block-size: 46px; inline-size: 100%; border-radius: 12px; font-size: 13px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-contact-panel .ahi-dir-contact-text { min-block-size: 38px; display: flex; align-items: center; color: var(--ahi-th-dir-text); font-size: 13px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-contact-panel .ahi-dir-detail-save { margin-block: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-contact-panel .ahi-dir-detail-save:empty { display: none; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-contact-panel .ahi-dir-detail-save button { background: var(--ahi-th-dir-raised); color: var(--ahi-th-dir-text); border-color: var(--ahi-th-dir-line); border-radius: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-contact-panel .ahi-dir-contact-location { gap: 12px; margin-block-start: 2px; padding-block-start: 20px; border-color: var(--ahi-th-dir-line); color: var(--ahi-th-dir-muted); font-size: 13px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-contact-location > div { display: grid; gap: 8px; min-inline-size: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-contact-location .ahi-dir-text-link { min-block-size: 36px; align-items: center; font-size: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-hours { padding-block-start: 20px; margin-block-start: 2px; border-color: var(--ahi-th-dir-line); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-hours h3 { margin-block-end: 14px; font-size: 16px; color: var(--ahi-th-dir-text); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-hours > div { gap: 16px; padding-block: 9px; border-block-end: 1px solid var(--ahi-th-dir-line); color: var(--ahi-th-dir-muted); font-size: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-hours > div:last-child { border-block-end: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-hours > div > span:last-child { text-align: end; font-variant-numeric: tabular-nums; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-photo-grid { gap: 10px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-photo-tile { border-radius: 14px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-menu-section h3 { color: var(--ahi-th-dir-text); font-size: 17px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-menu-item { padding-block: 19px; gap: 14px; border-color: var(--ahi-th-dir-line); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-menu-item img { inline-size: 64px; block-size: 64px; border-radius: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-menu-item > div { min-inline-size: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-menu-item h4 { color: var(--ahi-th-dir-text); font-size: 14px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-menu-item :is(p, small) { color: var(--ahi-th-dir-muted); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-menu-item > strong { margin-left: 0; margin-inline-start: auto; font-size: 13px; color: var(--ahi-th-dir-text); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-tags span { background: var(--ahi-th-dir-raised); color: var(--ahi-th-dir-muted); border-radius: 7px; padding: 5px 9px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-route-map { border-color: var(--ahi-th-dir-line); border-radius: 14px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-review-card { margin-block: 16px; padding: 18px; border-color: var(--ahi-th-dir-line); border-radius: 16px; background: var(--ahi-th-dir-raised); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-discovery-share { box-shadow: none; background: var(--ahi-th-dir-raised); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-discovery-opening { padding: 14px 18px; margin-block: 0 22px; border-radius: 14px; background: var(--ahi-th-dir-ivory); color: var(--ahi-th-dir-text); font-size: 13px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-discovery-owner > .ahi-dir-button { margin-block: 14px 10px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-discovery-detail .ahi-dir-card-grid { gap: 14px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-card-shell { border-color: var(--ahi-th-dir-line); background: var(--ahi-th-dir-surface); border-radius: 16px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-card { background: var(--ahi-th-dir-surface); color: var(--ahi-th-dir-text); transform: none; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-card-content h3 { color: var(--ahi-th-dir-text); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-card-location { border-color: var(--ahi-th-dir-line); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout #ahi-detail-booking { border-color: #d7aa4370; }

/* Scale from phones upward; map dialogs keep their own full-screen layout. */
@media (min-width: 641px) {
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-field { border-inline-end: 1px solid var(--ahi-th-dir-line); }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-field:nth-child(2) { border-inline-end: 0; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-category { border-block-end: 0; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-form .ahi-dir-button { inline-size: auto; margin: 7px 0 0 8px; margin-inline-start: 8px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-results.is-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-results.is-list > .ahi-dir-card-shell > .ahi-dir-card { grid-template-columns: minmax(180px, 32%) minmax(0, 1fr); }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-list .ahi-dir-card-image { min-block-size: 200px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-list .ahi-dir-card-content { padding: 24px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-list .ahi-dir-card-content h3 { font-size: 20px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-list .ahi-dir-card-description { font-size: 13px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-business-avatar { inline-size: 100px; block-size: 100px; flex-basis: 100px; border-radius: 24px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-business-identity { gap: 24px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout :is(.ahi-dir-detail-block, .ahi-dir-contact-panel) { padding: 28px; }
}
@media (min-width: 1001px) {
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-page-banner { padding-block: 34px 26px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-form { grid-template-columns: 1.2fr 1fr 1fr auto; padding: 9px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-field { min-block-size: 56px; border-block-end: 0; border-inline-end: 1px solid var(--ahi-th-dir-line); }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-field:nth-child(2) { border-inline-end: 1px solid var(--ahi-th-dir-line); }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-form .ahi-dir-button { margin: 2px 2px 2px 10px; margin-inline-start: 10px; margin-inline-end: 2px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-results.is-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-body.is-split { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr); align-items: start; gap: 26px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-body.is-split > .ahi-discovery-map { grid-column: 2; grid-row: 1; position: sticky; top: calc(var(--ahi-th-header-height, 76px) + 20px); margin: 0; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-body.is-split > :is(.ahi-dir-search-results, .ahi-dir-notice) { grid-column: 1; grid-row: 1; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-split .ahi-dir-search-results.is-list > .ahi-dir-card-shell > .ahi-dir-card { grid-template-columns: minmax(135px, 34%) minmax(0, 1fr); }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-split .is-list .ahi-dir-card-content { padding: 18px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-split .is-list .ahi-dir-card-content h3 { font-size: 17px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-split .ahi-discovery-map-body:not(.is-expanded) .ahi-discovery-map-canvas { block-size: min(58dvh, 580px); min-block-size: 340px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-hero { min-block-size: 390px; padding-block: 30px 42px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-hero.is-gallery { min-block-size: 420px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout { grid-template-columns: minmax(0, 1fr) minmax(290px, 340px); gap: 28px; padding-block-start: 32px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout > .ahi-dir-contact-panel { position: sticky; top: calc(var(--ahi-th-header-height, 76px) + 84px); }
}
@media (max-width: 640px) {
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search { padding-block-end: 28px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-toolbar { gap: 12px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-view { inline-size: 100%; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-view button { flex: 1 1 0; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-controls { gap: 10px 14px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-controls > .ahi-dir-button { flex: 1 1 170px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-controls > label:has(select) { flex: 1 1 140px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-body.is-split { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-body.is-split > .ahi-discovery-map { position: static; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-discovery-map-body:not(.is-expanded) .ahi-discovery-map-canvas { block-size: 320px; min-block-size: 260px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-hero { min-block-size: 300px; padding-block: 18px 28px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-hero .ahi-dir-detail-back { margin-block-end: 32px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-hero.is-compact { min-block-size: 240px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-hero.is-gallery { min-block-size: 330px; }
  body.ahi-townhub .ahi-townhub-app .ahi-detail-nav-links { gap: 2px; }
  body.ahi-townhub .ahi-townhub-app .ahi-detail-nav a { padding-inline: 12px; font-size: 12px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout { gap: 20px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-menu-item img { inline-size: 48px; block-size: 48px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-dir-menu-item > strong { font-size: 12px; white-space: normal; text-align: end; }
}
@media (max-width: 380px) {
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-results.is-list > .ahi-dir-card-shell > .ahi-dir-card { grid-template-columns: 88px minmax(0, 1fr); }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-list .ahi-dir-card-content { padding: 12px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-business-identity { gap: 12px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-business-avatar { inline-size: 64px; block-size: 64px; flex-basis: 64px; border-radius: 17px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout :is(.ahi-dir-detail-block, .ahi-dir-contact-panel) { padding: 18px; }
}

/* Theme preferences resolve to data-ahi-theme; system also has a no-JS fallback. */
html[data-ahi-theme=dark] body.ahi-townhub .ahi-townhub-app {
  --ahi-th-dir-page: #0d1726;
  --ahi-th-dir-surface: #152339;
  --ahi-th-dir-raised: #1c2e47;
  --ahi-th-dir-ivory: #28281f;
  --ahi-th-dir-text: #edf2fa;
  --ahi-th-dir-muted: #b3c0d2;
  --ahi-th-dir-line: #364a63;
  --ahi-th-dir-gold-text: #ecd097;
  --ahi-th-dir-shadow: 0 6px 24px #0000000d;
}
html[data-ahi-theme=dark] body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-view button[aria-pressed=true] { background: #315477; border-color: #7693b1; color: #fff; }
html[data-ahi-theme=dark] body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout :is(.ahi-dir-detail-block, .ahi-dir-contact-panel, .ahi-dir-card) { background: var(--ahi-th-dir-surface); color: var(--ahi-th-dir-text); border-color: var(--ahi-th-dir-line); }
html[data-ahi-theme=dark] body.ahi-townhub .ahi-townhub-app .ahi-dir-detail-layout .ahi-review-card { background: var(--ahi-th-dir-raised); }
html[data-ahi-theme=dark] body.ahi-townhub .ahi-townhub-app .ahi-detail-nav { background: var(--ahi-th-dir-surface); border-color: var(--ahi-th-dir-line); }
@media (prefers-color-scheme: dark) {
  html:not([data-ahi-theme=light]):not([data-ahi-theme=dark]) body.ahi-townhub .ahi-townhub-app {
    --ahi-th-dir-page: #0d1726;
    --ahi-th-dir-surface: #152339;
    --ahi-th-dir-raised: #1c2e47;
    --ahi-th-dir-ivory: #28281f;
    --ahi-th-dir-text: #edf2fa;
    --ahi-th-dir-muted: #b3c0d2;
    --ahi-th-dir-line: #364a63;
    --ahi-th-dir-gold-text: #ecd097;
    --ahi-th-dir-shadow: 0 6px 24px #0000000d;
  }
}

/* Logical spacing keeps the same hierarchy and target sizes in Arabic. */
html[dir=rtl] body.ahi-townhub .ahi-townhub-app .ahi-profile-hero::after { background: linear-gradient(0deg, #102039f2, #14254060 80%), linear-gradient(270deg, #14254080, transparent); }
html[dir=rtl] body.ahi-townhub .ahi-townhub-app .ahi-profile-hero .ahi-dir-hero-kicker { letter-spacing: 0; }
html[dir=rtl] body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-dir-search-form .ahi-dir-button { margin-left: 0; margin-right: 0; }
body.ahi-townhub .ahi-townhub-app :is(.ahi-dir-search, .ahi-dir-detail-layout) :is(button, input, select, textarea, summary, a):focus-visible { outline: 3px solid var(--ahi-th-dir-gold); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  body.ahi-townhub .ahi-townhub-app :is(.ahi-dir-search, .ahi-profile-hero, .ahi-dir-detail-layout) *,
  body.ahi-townhub .ahi-townhub-app .ahi-detail-nav * { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
html[data-ahi-motion=paused] body.ahi-townhub .ahi-townhub-app :is(.ahi-dir-search, .ahi-profile-hero, .ahi-dir-detail-layout) *,
html[data-ahi-motion=paused] body.ahi-townhub .ahi-townhub-app .ahi-detail-nav * { scroll-behavior: auto !important; animation: none !important; transition: none !important; }

/* R82: real filter/results/map columns and real profile main/sidebar nodes. */
body.ahi-townhub .ahi-townhub-app .ahi-dir-search[data-townhub-page=search] .ahi-dir-page-banner {
  padding-block: 28px;
  background: var(--ahi-th-dir-surface);
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search[data-townhub-page=search] .ahi-dir-heading { margin: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding-block: 28px 0;
}
body.ahi-townhub .ahi-townhub-app .ahi-search-filter-column {
  min-inline-size: 0;
  padding: 18px;
  border: 1px solid var(--ahi-th-dir-line);
  border-radius: 18px;
  background: var(--ahi-th-dir-surface);
  box-shadow: var(--ahi-th-dir-shadow);
}
body.ahi-townhub .ahi-townhub-app .ahi-search-filter-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-block-end: 12px;
  color: var(--ahi-th-dir-gold-text);
}
body.ahi-townhub .ahi-townhub-app .ahi-search-filter-heading h2 { color: var(--ahi-th-dir-text); font-size: 15px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-dir-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-dir-search-field {
  min-block-size: 52px;
  padding-inline: 0;
  border: 0;
  border-block-end: 1px solid var(--ahi-th-dir-line);
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-dir-search-category { border-block-end: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-dir-search-form .ahi-dir-button {
  inline-size: 100%;
  min-inline-size: 0;
  margin: 10px 0 0;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-content-search {
  display: block;
  grid-template-columns: none;
  margin-block-start: 18px;
  padding-inline: 12px;
  border-radius: 12px;
  background: var(--ahi-th-dir-raised);
  font-size: 12px;
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-content-search-group { padding: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-content-search :is(button, select) { font-size: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-discovery-controls {
  display: flex;
  align-items: stretch;
  flex-direction: column;
  gap: 10px;
  padding-block-start: 18px;
  border-block-start: 1px solid var(--ahi-th-dir-line);
}
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-discovery-controls > label { justify-content: space-between; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-discovery-controls > label.ahi-discovery-open { justify-content: flex-start; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-discovery-controls > .ahi-dir-button { inline-size: 100%; padding-inline: 10px; font-size: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-search-results-column,
body.ahi-townhub .ahi-townhub-app .ahi-search-results-panel,
body.ahi-townhub .ahi-townhub-app .ahi-search-map-column { min-inline-size: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-search-results-column .ahi-dir-search-toolbar { margin-block-end: 20px; }
body.ahi-townhub .ahi-townhub-app .ahi-search-results-column .ahi-dir-search-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
body.ahi-townhub .ahi-townhub-app .ahi-search-results-column .ahi-dir-search-body.is-split { grid-template-columns: minmax(0, 1fr); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-map-column > .ahi-discovery-map { margin: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-results-panel .ahi-dir-notice { margin-block: 0 18px; }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-results-panel .ahi-dir-search-results.is-grid { grid-template-columns: minmax(0, 1fr); }
body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-results-column .ahi-search-view button { padding-inline: 11px; }

/* Native profile identity and contact actions follow the primary listing page. */
body.ahi-townhub .ahi-townhub-app .ahi-profile-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-block-end: 38px;
  min-inline-size: 0;
  color: #d8e2ef;
  font-size: 11px;
  line-height: 1.6;
}
body.ahi-townhub .ahi-townhub-app .ahi-profile-breadcrumb a { display: inline-flex; align-items: center; min-block-size: 32px; color: #fff; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-breadcrumb [aria-current=page] { max-inline-size: min(50vw, 44ch); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-hero .ahi-profile-breadcrumb .ahi-dir-detail-back {
  min-block-size: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: inherit;
}
body.ahi-townhub .ahi-townhub-app .ahi-profile-heading-row { display: flex; align-items: center; justify-content: space-between; gap: 26px; min-inline-size: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-heading-row > .ahi-profile-business-identity { flex: 1 1 0; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-review-summary {
  flex: 0 0 auto;
  max-inline-size: 200px;
  padding: 14px 18px;
  border: 1px solid #ecd09745;
  border-radius: 14px;
  background: #14254065;
  color: #ecd097;
  text-align: center;
}
body.ahi-townhub .ahi-townhub-app .ahi-profile-review-summary .ahi-review-card-rating { margin: 0; font-size: 18px; font-weight: 750; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-rating-link { display: inline-flex; align-items: center; min-block-size: 36px; color: inherit; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-action-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-block-start: 26px;
  padding-block-start: 24px;
  border-block-start: 1px solid #ffffff24;
}
body.ahi-townhub .ahi-townhub-app .ahi-profile-action-bar .ahi-dir-button { min-block-size: 46px; border-radius: 10px; font-size: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-action-bar .ahi-dir-button-outline { background: #ffffff0b; border-color: #ffffff42; color: #fff !important; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-action-bar .ahi-dir-button-outline:hover { background: #ffffff17; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-map-link { display: inline-flex; align-items: center; min-block-size: 44px; gap: 8px; margin-inline-start: auto; padding: 8px 4px; color: #e8edf4; font-size: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-page .ahi-dir-detail-layout { grid-template-columns: minmax(0, 1fr); }
body.ahi-townhub .ahi-townhub-app .ahi-profile-main,
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar { min-inline-size: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar { display: grid; gap: 22px; align-content: start; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar > :is(.ahi-dir-contact-panel, .ahi-dir-detail-block) { position: static; inline-size: 100%; margin: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar .ahi-dir-contact-panel { gap: 16px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar .ahi-dir-contact-panel h2 { margin-block-end: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-hours .ahi-dir-hours { margin: 0; padding: 0; border: 0; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar .ahi-route-map { block-size: 280px; border-radius: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar .ahi-route-map-controls { gap: 6px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar .ahi-route-map-controls .ahi-dir-text-link { font-size: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar .ahi-route-form { gap: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar .ahi-route-form > .ahi-dir-button { inline-size: 100%; justify-self: stretch; padding-inline: 10px; font-size: 12px; }
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar .ahi-weather-periods { grid-template-columns: minmax(0, 1fr); }
body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar :is(.ahi-weather > p, .ahi-route-hint) { font-size: 12px; }

@media (min-width: 641px) {
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-results-panel .ahi-dir-search-results.is-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 980px) {
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-workspace { grid-template-columns: 240px minmax(0, 1fr); gap: 26px; }
  body.ahi-townhub .ahi-townhub-app .ahi-search-filter-column { position: sticky; top: calc(var(--ahi-th-header-height, 80px) + 20px); max-block-size: calc(100dvh - var(--ahi-th-header-height, 80px) - 44px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-page .ahi-dir-detail-layout { grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-sidebar { position: sticky; top: calc(var(--ahi-th-header-height, 80px) + 84px); }
}
@media (min-width: 1280px) {
  body.ahi-townhub .ahi-townhub-app .ahi-search-results-column .ahi-dir-search-body.is-split { grid-template-columns: minmax(0, 1fr) minmax(310px, .86fr); gap: 22px; }
  body.ahi-townhub .ahi-townhub-app .ahi-search-results-column .ahi-dir-search-body.is-split > .ahi-search-map-column { grid-column: 2; grid-row: 1; position: sticky; top: calc(var(--ahi-th-header-height, 80px) + 20px); }
  body.ahi-townhub .ahi-townhub-app .ahi-search-results-column .ahi-dir-search-body.is-split > .ahi-search-results-panel { grid-column: 1; grid-row: 1; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-split .ahi-search-results-panel .ahi-dir-card-shell > .ahi-dir-card { display: block; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-split .ahi-search-results-panel .ahi-dir-card-image { aspect-ratio: 1.75; min-block-size: 0; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .is-split .ahi-search-results-panel .ahi-dir-card-content { padding: 18px; }
}
@media (max-width: 640px) {
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-workspace { gap: 24px; padding-block-start: 20px; }
  body.ahi-townhub .ahi-townhub-app .ahi-search-filter-column { padding: 16px; }
  body.ahi-townhub .ahi-townhub-app .ahi-dir-search .ahi-search-filter-column .ahi-dir-search-field :is(input, select) { font-size: 16px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-breadcrumb { gap: 6px 10px; margin-block-end: 26px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-heading-row { display: block; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-review-summary { display: inline-block; margin-block-start: 18px; padding: 7px 12px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-review-summary .ahi-review-card-rating { font-size: 14px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-action-bar { gap: 9px; margin-block-start: 22px; padding-block-start: 20px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-action-bar .ahi-dir-button { flex: 1 1 120px; padding-inline: 12px; }
  body.ahi-townhub .ahi-townhub-app .ahi-profile-map-link { margin-inline-start: 0; }
}
html[dir=rtl] body.ahi-townhub .ahi-townhub-app .ahi-profile-breadcrumb { letter-spacing: 0; }
