/* Directory register (unclaimed restaurant pages). Loads after brand.css and
   shop.css; only .dir-* here plus the few overrides the wireframe v3 needs.
   No CSS layers, nesting, :has() or container queries (Safari 15.0 baseline). */
.ab-guest .shop-main { padding-top: 0; }
.ab-guest .dir--with-bar { padding-bottom: 120px; }
.ab-guest .dir-head { display: flex; align-items: center; justify-content: space-between; min-height: 44px; margin: 0 -16px 8px; padding: 0 16px; border-bottom: 1px solid var(--ab-rule); }
.ab-guest .dir-head__brand { font-size: 26px; font-weight: 800; letter-spacing: -.05em; color: var(--ab-ink); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.ab-guest .dir-head__back { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; font-weight: 600; color: var(--ab-muted); text-decoration: none; }
.ab-guest a.dir-head__back { color: var(--ab-link); }
.ab-guest .dir-trust { padding: 8px 0 4px; font-size: 13px; line-height: 1.5; color: var(--ab-muted); }
.ab-guest .dir-trust a { display: inline-block; min-height: 24px; font-weight: 600; color: var(--ab-link); }
.ab-guest .dir-hours { margin-top: 12px; font-size: 14px; color: var(--ab-muted); }
.ab-guest .dir-hours + .dir-hours { margin-top: 4px; }
.ab-guest .dir-hours span { color: var(--ab-ink); }
.ab-guest .dir-hours__title { color: var(--ab-muted); }
.ab-guest .dir-hours__list { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 2px; }
.ab-guest .dir-hours__list li { display: grid; grid-template-columns: minmax(96px, auto) 1fr; gap: 12px; font-size: 15px; font-variant-numeric: tabular-nums; }
.ab-guest .dir-hours__days { color: var(--ab-muted); }
.ab-guest .dir-hours__times { color: var(--ab-ink); }
.ab-guest .dir-hours__raw { margin-top: 4px; color: var(--ab-ink); }
.ab-guest .dir-notice { margin-top: 12px; padding: 12px 16px; border-radius: 3px; background: var(--ab-surface-muted); font-size: 14px; }
.ab-guest .dir-map { margin-top: 16px; padding: 16px; border: 1px solid var(--ab-rule); border-radius: 8px; background: var(--ab-surface); }
.ab-guest .dir-map p { font-size: 16px; }
.ab-guest .dir-map__row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.ab-guest .dir-map .shop__secondary { font-size: 14px; }
.ab-guest .dir-map__frame { margin-top: 12px; }
.ab-guest .dir-map__frame iframe { display: block; width: 100%; height: 300px; border: 0; border-radius: 4px; }
.ab-guest .dir-map__note { margin-top: 8px; font-size: 13px; color: var(--ab-muted); }
.ab-guest .dir-stand { margin: 24px 0 0; font-size: 13px; color: var(--ab-muted); }
.ab-guest .dir-stand a { color: var(--ab-link); }
.ab-guest .dir-next { display: grid; gap: 10px; margin-top: 28px; padding-top: 16px; border-top: 1px solid var(--ab-rule); }
.ab-guest .dir-next a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; font-weight: 600; color: var(--ab-link); }
.ab-guest .dir-next p { font-size: 14px; color: var(--ab-muted); }
.ab-guest .dir-claim { margin-top: 32px; padding: 20px; background: var(--ab-surface); border: 1px solid var(--ab-control); border-radius: 4px; }
.ab-guest .dir-claim__eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .065em; text-transform: uppercase; color: var(--ab-muted); }
.ab-guest .dir-claim h2 { margin: 6px 0 10px; font-size: 24px; line-height: 1.15; letter-spacing: -.035em; font-weight: 700; }
.ab-guest .dir-claim p { font-size: 16px; line-height: 1.5; }
.ab-guest .dir-claim__shadow { margin-top: 10px; padding: 10px 12px; background: var(--ab-accent-soft); border-radius: 3px; font-size: 16px; overflow-wrap: anywhere; }
.ab-guest .dir-claim__shadow code { font-family: inherit; font-weight: 700; }
.ab-guest .dir-claim form { margin: 0; }
.ab-guest .dir-claim .shop__cta { display: flex; width: 100%; margin-top: 16px; font: inherit; font-weight: 700; }
.ab-guest .dir-claim__notice { margin-top: 12px; padding: 10px 12px; background: var(--ab-surface-muted); border-radius: 3px; font-size: 14px; }
.ab-guest .dir-claim__notice a { color: var(--ab-link); font-weight: 700; }
.ab-guest .dir-claim small { display: block; margin-top: 10px; font-size: 13px; color: var(--ab-muted); }
.ab-guest .dir-footer { display: block; margin-top: 40px; padding-top: 16px; border-top: 1px solid var(--ab-rule); font-size: 13px; line-height: 1.9; color: var(--ab-muted); }
.ab-guest .dir-footer a { color: var(--ab-muted); }
.ab-guest .dir-footer__theme { min-height: 32px; padding: 0 8px; vertical-align: middle; }
.ab-guest .dir-form { display: grid; gap: 20px; margin-top: 24px; }
.ab-guest .dir-form .shop-dialog__errors ul { margin: 0; padding-left: 20px; }
.ab-guest .dir-form__hint { font-size: 14px; color: var(--ab-muted); }
.ab-guest .dir-form__hint a { color: var(--ab-link); }
.ab-guest .dir-form .shop__cta--large { margin-top: 0; }
.ab-guest .dir-bar { transition: opacity 150ms ease; }
.ab-guest .dir-bar[hidden] { display: none; }
.ab-guest .shop__cta--secondary { background: transparent; color: var(--ab-ink); }
.ab-guest .shop__bar--static .shop__bar-note { color: var(--ab-ink); }
.ab-guest .dir a:visited { color: #6B4E3A; }
html[data-theme="dark"] .ab-guest .dir a:visited { color: #D9B89A; }
.ab-guest .dir a.dir-head__brand:visited, .ab-guest .dir .shop__cta:visited, .ab-guest .dir .shop__secondary:visited { color: inherit; }
.ab-guest .dir .shop__cta:visited { color: var(--ab-accent-ink); }
.ab-guest .dir .dir-next a:visited, .ab-guest .dir .dir-trust a:visited { color: var(--ab-link); }
@media (prefers-reduced-motion: reduce) { .ab-guest .dir-bar { transition: none; } }

/* City index and subpages (07d; Design 5A/6A/13A/16A). */
.ab-guest .dir-index__header { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.ab-guest .dir-lead { margin: 12px 0 0; font-size: 16px; line-height: 1.5; color: var(--ab-muted); }
.ab-guest .dir-search { margin-top: 12px; }
.ab-guest .dir-search input { display: block; width: 100%; min-height: 48px; padding: 12px; border: 1px solid var(--ab-control); border-radius: 4px; font: inherit; font-size: 16px; background: var(--ab-surface); color: var(--ab-ink); -webkit-appearance: none; appearance: none; }
.ab-guest .dir-search input:focus { outline: 2px solid var(--ab-ink); outline-offset: 1px; }
.ab-guest .dir-filters { display: flex; gap: 8px; margin: 0 -16px; padding: 12px 16px; overflow-x: auto; position: sticky; top: 0; z-index: 5; background: var(--ab-paper); scrollbar-width: none; }
.ab-guest .dir-filters::-webkit-scrollbar { display: none; }
.ab-guest .dir-filters a { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--ab-control); border-radius: 4px; font-size: 14px; font-weight: 600; color: var(--ab-ink); text-decoration: none; }
.ab-guest .dir-filters a[aria-current] { background: var(--ab-ink); color: var(--ab-paper); border-color: var(--ab-ink); }
.ab-guest .dir-filters a small { font-size: 13px; font-weight: 400; opacity: .7; }
.ab-guest .dir .dir-filters a:visited { color: var(--ab-ink); }
.ab-guest .dir .dir-filters a[aria-current]:visited { color: var(--ab-paper); }
.ab-guest .dir-group { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 24px; padding-bottom: 8px; border-bottom: 2px solid var(--ab-ink); }
.ab-guest .dir-group h2 { font-size: 24px; font-weight: 700; letter-spacing: -.035em; line-height: 1.2; }
.ab-guest .dir-group a, .ab-guest .dir-group span { flex: none; font-size: 13px; color: var(--ab-muted); }
.ab-guest .dir-group a { display: inline-flex; align-items: center; min-height: 32px; font-weight: 600; color: var(--ab-link); }
.ab-guest .dir-list { list-style: none; margin: 0; padding: 0; }
.ab-guest .dir-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 16px 0; border-bottom: 1px dashed var(--ab-control); }
.ab-guest .dir-row--photo { grid-template-columns: 64px minmax(0, 1fr) auto; }
.ab-guest .dir-row__thumb { display: block; width: 64px; height: 64px; border-radius: 8px; object-fit: cover; background: var(--ab-surface-muted); }
.ab-guest .dir-row__name { font-size: 19px; font-weight: 700; letter-spacing: -.025em; line-height: 1.25; }
.ab-guest .dir-row__name a { color: var(--ab-ink); text-decoration: none; }
.ab-guest .dir-row__meta { margin-top: 4px; font-size: 14px; color: var(--ab-muted); }
.ab-guest .dir-row__meta b { color: var(--ab-positive); }
.ab-guest .dir-row .shop__cta { min-height: 44px; padding: 8px 14px; font-size: 14px; }
.ab-guest .dir-empty { margin-top: 16px; font-size: 16px; }
.ab-guest .dir-empty a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; color: var(--ab-link); }
.ab-guest .dir-seo { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--ab-rule); }
.ab-guest .dir-seo h2 { margin-bottom: 8px; font-size: 20px; font-weight: 700; letter-spacing: -.03em; }
.ab-guest .dir-seo p, .ab-guest .dir-seo li { font-size: 16px; line-height: 1.55; }
.ab-guest .dir-seo ul { margin: 8px 0 12px; padding-left: 20px; }
.ab-guest .dir-seo a { color: var(--ab-link); }
/* The city map: a full-width card. Before the click a grid placeholder with the
   buttons; after it the embed in the same frame. */
.ab-guest .dir-map--city { margin-top: 16px; padding: 0; overflow: hidden; border-radius: 8px; }
.ab-guest .dir-map__stage { display: grid; gap: 14px; justify-items: start; align-content: end; min-height: 200px; padding: 16px; background-color: var(--ab-surface-muted); background-image: linear-gradient(var(--ab-rule) 1px, transparent 1px), linear-gradient(90deg, var(--ab-rule) 1px, transparent 1px); background-size: 28px 28px; background-position: center; }
.ab-guest .dir-map__label { font-size: 14px; font-weight: 600; color: var(--ab-ink); }
.ab-guest .dir-map--city .dir-map__row { margin-top: 0; }
.ab-guest .dir-map--city .dir-map__row .shop__cta { font-size: 14px; min-height: 44px; }
.ab-guest .dir-map--city .dir-map__frame { margin: 0; }
.ab-guest .dir-map--city .dir-map__frame iframe { height: 320px; border-radius: 0; }
.ab-guest .dir-map--city .dir-map__note { margin: 0; padding: 8px 16px 12px; }
.ab-guest .dir-map__note a { color: var(--ab-link); }
@media (min-width: 800px) {
  .ab-guest .dir-filters { margin: 0; padding-left: 0; padding-right: 0; flex-wrap: wrap; }
  .ab-guest .dir-map__stage { min-height: 240px; }
  .ab-guest .dir-map--city .dir-map__frame iframe { height: 420px; }
}

/* Editorial text and highlight chips (07e-1). */
.ab-guest .dir-row__desc { margin-top: 6px; font-size: 14px; line-height: 1.45; color: var(--ab-ink); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ab-guest .dir-row__tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.ab-guest .dir-row__tags span { display: inline-block; padding: 2px 7px; border: 1px solid var(--ab-control); border-radius: 3px; font-size: 11px; line-height: 1.5; color: var(--ab-muted); }
.ab-guest .dir-desc { margin-top: 12px; font-size: 16px; line-height: 1.5; }
.ab-guest .dir-desc__tags { margin-top: 8px; }
