/* Directory-only layout: other ranking pages and the alert CTA are unchanged. */
.restaurant-directory .page-lede { margin-bottom: 20px; }
.restaurant-directory fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.restaurant-directory .filter-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.restaurant-directory #r-search,
.restaurant-directory #r-sort { grid-column: 1 / -1; }
.restaurant-directory .filter-row input,
.restaurant-directory .filter-row select { min-width: 0; min-height: 44px; }
.restaurant-directory .filter-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; margin-top: 8px; }
.restaurant-directory .filter-check { min-height: 44px; }
.restaurant-directory .filter-reset { min-height: 44px; padding: 8px 12px; border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-card); color: var(--c-teal-deep); font: inherit; font-weight: 600; cursor: pointer; }
.restaurant-directory .filter-reset:focus-visible,
.restaurant-directory summary:focus-visible { outline: 2px solid var(--c-teal-deep); outline-offset: 3px; }
.restaurant-directory .filter-note { font-size: 13px; line-height: 1.5; color: var(--c-ink-soft); margin: 8px 0; }
.restaurant-directory .venue-row-head { flex-wrap: wrap; }
.restaurant-directory .venue-reserve { min-height: 44px; }
.restaurant-directory .directory-empty { text-align: center; }
.restaurant-directory .directory-archives { padding: 12px 18px; }
.restaurant-directory .directory-archives summary { display: list-item; min-height: 44px; align-content: center; cursor: pointer; font-weight: 600; }
.restaurant-directory [hidden] { display: none !important; }
@media (min-width: 800px) {
  .restaurant-directory .filter-row { grid-template-columns: 2fr 1fr 1.3fr; }
  .restaurant-directory #r-search { grid-column: auto; }
}

/* Editorial cards: missing photography never becomes a made-up venue image. */
.restaurant-directory .brand-select[data-for="r-sort"] { grid-column: 1 / -1; }
.restaurant-directory .brand-select[data-for="r-area"], .restaurant-directory #r-area { grid-column: 1 / -1; }
.restaurant-directory .venue-list { display: grid; grid-template-columns: 1fr; gap: 20px; }
.restaurant-directory .venue-row { border: 0; box-shadow: 0 0 0 1px rgb(0 0 0 / .05), var(--shadow-sm); }
.restaurant-directory .venue-cover { min-height: 104px; padding: 16px 22px; display: flex; align-items: center; justify-content: space-between; gap: 16px; text-decoration: none; }
.restaurant-directory .venue-cover:hover { text-decoration: none; }
.restaurant-directory .venue-cover svg { flex: 0 0 80px; transform: rotate(-7deg); }
.restaurant-directory .venue-cover-label { font-family: var(--font-display); font-weight: 700; font-size: 20px; line-height: 1.3; }
.restaurant-directory .venue-cover-label span { display: block; font-family: var(--font); font-weight: 500; font-size: 12px; margin-top: 6px; }
.restaurant-directory .venue-card-body { padding: 20px 20px 12px; flex: 1; }
.restaurant-directory .venue-row-head { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.restaurant-directory .venue-row-head h3 { margin: 0; font-size: inherit; line-height: 1.2; }
.restaurant-directory .venue-row-name { font-size: 20px; text-decoration: none; }
.restaurant-directory .venue-row-name:hover { text-decoration: underline; }
.restaurant-directory .venue-row-desc { margin: 0; }
.restaurant-directory .venue-pill.unknown { color: #615a4b; border: 0; background: #f4efe4; }
.restaurant-directory .venue-pill.open { color: #07553c; background: #dcf4e9; }
.restaurant-directory .venue-row-tags { margin-top: 12px; }
.restaurant-directory .venue-hours { margin: 0 20px; border-top: 1px solid var(--c-line); }
.restaurant-directory .venue-hours summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; font-size: 13px; font-weight: 600; color: var(--c-teal-deep); cursor: pointer; list-style: none; }
.restaurant-directory .venue-hours summary::-webkit-details-marker { display: none; }
.restaurant-directory .venue-hours summary span { font-size: 20px; }
.restaurant-directory .venue-hours[open] summary span { transform: rotate(45deg); }
.restaurant-directory .venue-week { margin: 10px 0; font-size: 12px; }
.restaurant-directory .venue-week > div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 6px 0; border-bottom: 1px solid var(--c-bg); }
.restaurant-directory .venue-week dt { text-transform: capitalize; font-weight: 600; }
.restaurant-directory .venue-week dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.restaurant-directory .venue-hours-note { font-size: 12px; color: var(--c-ink-soft); margin: 0 0 10px; line-height: 1.5; }
.restaurant-directory .venue-hours-links { display: flex; flex-wrap: wrap; gap: 0 16px; margin-bottom: 10px; }
.restaurant-directory .venue-hours-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; font-weight: 600; color: var(--c-teal-deep); }
.restaurant-directory .venue-card-actions { padding: 0 20px 18px; display: flex; gap: 8px; }
.restaurant-directory .venue-card-primary { margin-left: auto; background: var(--c-navy); border-color: var(--c-navy); color: white; }
.restaurant-directory .venue-card-primary:hover { background: var(--c-teal-deep); }
.restaurant-directory .directory-hours-help summary { min-height: 44px; align-content: center; font-size: 12px; color: var(--c-teal-deep); cursor: pointer; }
.restaurant-directory #r-hours-feed { margin-top: 0; }
@media (min-width: 700px) { .restaurant-directory .venue-list { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }

/* Photo-led discovery, scoped to this page. No new fonts or layout dependency. */
.restaurant-directory { --dining-small: .8125rem; --dining-ui: .875rem; --dining-body: 1rem; --dining-title: 1.375rem; }
.restaurant-directory .dining-eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--c-teal-deep); margin: 0 0 12px; }
.restaurant-directory .page-h1 { text-wrap: balance; }
.restaurant-directory .page-lede { max-width: 62ch; font-size: 1.125rem; line-height: 1.55; margin-bottom: 30px; text-wrap: pretty; }
.restaurant-directory .dining-section-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin-bottom: 16px; }
.restaurant-directory .dining-section-head h2 { margin: 0; font-family: var(--font-display); font-size: var(--dining-title); line-height: 1.2; letter-spacing: -.02em; }
.restaurant-directory .dining-section-head > a { min-height: 44px; display: inline-flex; align-items: center; font-size: var(--dining-ui); font-weight: 600; color: var(--c-teal-deep); }
.restaurant-directory .dining-stories { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.restaurant-directory .dining-story { border-radius: 18px; background: #f2e5da; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 0 0 1px rgb(0 0 0 / .04); }
.restaurant-directory .dining-story[data-story="waterfront"] { background: #dfece8; }
.restaurant-directory .dining-story[data-story="breakfast"] { background: #ece7dc; }
.restaurant-directory .dining-story-link { display: flex; flex: 1; flex-direction: column; padding: 20px; color: var(--c-ink); text-decoration: none; }
.restaurant-directory .dining-story-link:hover { text-decoration: none; }
.restaurant-directory .story-kicker { font-size: .75rem; font-weight: 600; color: var(--c-ink-soft); }
.restaurant-directory .dining-story h3 { font: 700 var(--dining-title)/1.15 var(--font-display); letter-spacing: -.03em; margin: 10px 0; text-wrap: balance; }
.restaurant-directory .dining-story p { font-size: var(--dining-ui); line-height: 1.5; margin: 0 0 20px; text-wrap: pretty; }
.restaurant-directory .story-action { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; min-height: 44px; font-weight: 700; font-size: var(--dining-ui); }
.restaurant-directory .dining-story-link:hover .story-action { text-decoration: underline; text-underline-offset: 3px; }
.restaurant-directory .dining-start { margin-bottom: 36px; }
.restaurant-directory .filter-card { border: 0; box-shadow: none; border-radius: 0; background: transparent; padding: 0; margin-bottom: 24px; }
.restaurant-directory .dining-occasions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.restaurant-directory .dining-occasions a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 15px; border-radius: 24px; box-shadow: inset 0 0 0 1px var(--c-line); color: var(--c-ink); font-size: var(--dining-ui); font-weight: 600; text-decoration: none; background: var(--c-card); }
.restaurant-directory .dining-occasions a[aria-current="true"] { background: var(--c-navy); color: white; box-shadow: none; }
.restaurant-directory .dining-occasions a:hover:not([aria-current]) { background: #dfece8; }
.restaurant-directory .filter-row { gap: 10px; }
.restaurant-directory #r-search { background: var(--c-card); }
.restaurant-directory .brand-select-trigger { background: var(--c-card); }
.restaurant-directory .filter-meta { border-top: 1px solid var(--c-line); padding-top: 16px; font-variant-numeric: tabular-nums; }
.restaurant-directory .venue-list { gap: 20px; }
.restaurant-directory .venue-row { border-radius: 18px; height: 100%; }
.restaurant-directory .venue-location { font-size: var(--dining-small); color: var(--c-teal-deep); font-weight: 600; margin: 0 0 8px; }
.restaurant-directory .venue-row-name { font-size: var(--dining-title); line-height: 1.2; letter-spacing: -.02em; text-wrap: balance; }
.restaurant-directory .venue-row-meta { font-size: var(--dining-small); margin-bottom: 14px; }
.restaurant-directory .venue-best-for { font-size: var(--dining-ui); line-height: 1.5; font-weight: 500; margin: 0 0 10px; }
.restaurant-directory .venue-best-for > span { font-weight: 700; color: var(--c-teal-deep); }
.restaurant-directory .venue-row-desc { font-size: var(--dining-ui); line-height: 1.6; text-wrap: pretty; }
.restaurant-directory .venue-status { margin: 16px 0 2px; }
.restaurant-directory .venue-pill { white-space: normal; line-height: 1.4; }
.restaurant-directory .venue-photo-slot { aspect-ratio: 16 / 10; position: relative; background: #e2e9e5; overflow: hidden; }
.restaurant-directory .story-photo-slot { aspect-ratio: 4 / 3; position: relative; background: #e2e9e5; overflow: hidden; }
.restaurant-directory [data-photo-slug] img { width: 100%; height: 100%; display: block; object-fit: cover; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; }
.restaurant-directory .photo-credit { position: absolute; bottom: 0; inset-inline: 0; padding: 6px 10px; background: rgb(0 0 0 / .76); color: white; font-size: .75rem; line-height: 1.4; }
.restaurant-directory .photo-credit a { color: white; text-decoration: underline; text-underline-offset: 2px; }
.restaurant-directory .photo-credit a:focus-visible { outline: 2px solid white; outline-offset: 2px; }
.restaurant-directory .photo-placeholder { display: grid; place-items: center; height: 100%; min-height: 100%; color: var(--c-teal-deep); font-size: var(--dining-ui); background: #e2e9e5; }
.restaurant-directory [data-photo-slug] img[hidden], .restaurant-directory .photo-placeholder[hidden] { display: none; }
.restaurant-directory [data-photo-slug] .source-photo-craft { object-position: center top; transform: scale(1.6); transform-origin: top center; }
.restaurant-directory .source-photo-credit { min-height: 44px; display: flex; align-items: center; flex-wrap: wrap; gap: 0 4px; padding: 0 10px; }
.restaurant-directory .source-photo-credit a { display: inline-flex; align-items: center; min-height: 44px; }
.restaurant-directory .dining-owner { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 32px; background: #e0ece6; border-radius: 18px; padding: 28px; margin: 32px 0; }
.restaurant-directory .dining-owner > div { flex: 1 1 300px; }
.restaurant-directory .dining-owner h2 { font: 700 var(--dining-title)/1.2 var(--font-display); margin: 0 0 10px; }
.restaurant-directory .dining-owner p:not(.dining-eyebrow) { font-size: var(--dining-ui); line-height: 1.6; margin: 0; max-width: 58ch; }
.restaurant-directory .dining-owner .discovery-action { background: var(--c-navy); color: white; padding: 12px 16px; }
.restaurant-directory .dining-story-link:focus-visible,
.restaurant-directory .dining-occasions a:focus-visible { outline: 3px solid var(--c-teal-deep); outline-offset: -3px; }
@media (min-width: 800px) {
  .restaurant-directory .filter-row { grid-template-columns: minmax(0,2fr) repeat(4,minmax(0,1.2fr)); }
  .restaurant-directory .brand-select[data-for="r-sort"] { grid-column: auto; }
  .restaurant-directory .brand-select[data-for="r-area"], .restaurant-directory #r-area { grid-column: auto; }
}
@media (max-width: 699px) {
  .restaurant-directory .dining-stories { display: flex; overflow-x: auto; scroll-snap-type: x proximity; gap: 12px; padding: 2px 2px 14px; }
  .restaurant-directory .dining-story { flex: 0 0 84%; scroll-snap-align: start; }
  .restaurant-directory .dining-section-head > a { font-size: var(--dining-small); }
  .restaurant-directory .page-lede { font-size: var(--dining-body); margin-bottom: 20px; }
  .restaurant-directory .dining-start { margin-bottom: 24px; }
  .restaurant-directory .dining-owner { padding: 22px; }
}
