/* Dedicated Guide presentation; the original form, data and map logic are retained. */
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/inter-tight-bold.ttf") format("truetype")}
#main:has(#filters) .page-head{max-width:none;padding:var(--space-6) 0 18px}
#main:has(#filters) .page-head h1.guide-heading{font:500 clamp(48px,4vw,56px)/1.02 var(--font-display);letter-spacing:-.035em;margin:10px 0 10px;max-width:100%;overflow-wrap:normal}
#main:has(#filters) .page-head .intro{font-size:14px;line-height:1.5;max-width:620px;margin:0;color:var(--muted)}
#filters.guide-utility{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0;background:transparent;border:0;border-radius:0;padding:0;margin:0}
#filters.guide-utility .search-wrap{grid-column:1/-1;display:block;margin:0 0 14px;width:320px;max-width:100%}
#filters.guide-utility .search-wrap>label{display:block;font-size:0}
#filters.guide-utility .search-wrap input{width:100%;min-width:0;height:40px;min-height:40px;font-size:14px;background:var(--stone);border:var(--rule);border-radius:var(--radius-control);padding:var(--space-2) 12px}
#filters.guide-utility .filter-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:var(--rule);border-bottom:var(--rule);background:var(--stone);margin:0}
#filters.guide-utility .filter-grid>label{display:block;min-width:0;margin:0;padding:10px var(--space-4);font:500 11px/1.5 var(--font-body);letter-spacing:.1em;text-transform:uppercase}
#filters.guide-utility .filter-grid>label+label{border-left:var(--rule)}
#filters.guide-utility select{display:block;width:100%;min-width:0;min-height:32px;background:transparent;border:0;border-radius:0;padding:4px 20px 4px 0;font:400 14px/1.5 var(--font-body);letter-spacing:0;text-transform:none}
#filters.guide-utility .quick-tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px var(--space-4);margin:0;padding:6px 12px;min-width:0}
.guide-quick-label{display:none}
#filters.guide-utility .quick-tag{font-size:12px;line-height:1.3;padding:6px 0;min-height:32px;border:0;border-radius:0;background:transparent;color:var(--ink)}
#filters.guide-utility .quick-tag[aria-pressed=true]{background:transparent!important;color:var(--ink);font-weight:600}
#filters.guide-utility [type=reset]{justify-self:end;align-self:end;border:0;background:transparent;padding:6px 12px;margin:0;min-height:44px;font-size:12px;text-decoration:underline;text-underline-offset:4px}
#filters.guide-utility [hidden]{display:none}
#main:has(#filters) .results-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0;padding:var(--space-2) 12px;border-top:var(--rule);font-size:12px}
#main:has(#filters) .results-top .small{font-size:11px;line-height:1.4;margin:2px 0 0}
#main:has(#filters) .view-switch{gap:0;border:0;border-radius:0;overflow:hidden}
#main:has(#filters) .view-switch button{border:0;background:transparent;padding:6px 12px;min-height:32px;font-size:12px}
#main:has(#filters) .view-switch button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
/* Zero-gap columns and shared one-pixel rules form the editorial index. */
#restaurant-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:transparent;border-top:var(--rule);border-left:var(--rule);padding:0;margin:0 0 72px}
#restaurant-grid .restaurant-card{display:flex;flex-direction:column;gap:0;min-width:0;background:transparent;border:0;border-right:var(--rule);border-bottom:var(--rule);border-radius:0;padding:18px;box-shadow:none;transform:none;transition:none;opacity:1}
#restaurant-grid .restaurant-card[hidden],#restaurant-grid[hidden]{display:none}
#restaurant-grid .guide-card-identity{display:block;align-self:stretch;margin:0 0 12px;min-width:0;text-decoration:none}
#restaurant-grid .guide-card-image{display:block;position:relative;width:72%;max-width:208px;aspect-ratio:1;margin:0 auto 16px;border:1px solid var(--line);border-radius:50%;overflow:hidden;isolation:isolate}
#restaurant-grid .guide-card-photo{display:block;width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:1;object-fit:cover;object-position:var(--guide-focal-position,50% 50%);border-radius:0;margin:0;transform:scale(1);transform-origin:center center}
@media(min-width:721px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 #restaurant-grid .guide-card-photo{transition:transform 420ms cubic-bezier(.22,.61,.36,1)}
 #restaurant-grid .guide-card-image-link:hover .guide-card-photo{transform:scale(1.035)}
}
#restaurant-grid .guide-photo-fallback{background:var(--stone)}
#restaurant-grid .card-name{font:400 clamp(25px,2.2vw,32px)/1.08 var(--font-serif-detail);letter-spacing:-.035em;margin:6px 0 0;max-width:100%;width:auto;transform:none;overflow-wrap:anywhere}
#restaurant-grid .card-meta{font:400 11px/1.5 var(--font-body);letter-spacing:.065em;text-transform:uppercase;color:var(--muted);margin:0}
#restaurant-grid .order,#restaurant-grid .card-take{font:400 14px/1.5 var(--font-body);margin:0 0 12px;color:var(--ink)}
#restaurant-grid .order-label{display:block;font:500 11px/1.5 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 3px}
#restaurant-grid .card-vibe{margin:0;padding-top:10px;border-top:var(--rule);font:400 13px/1.5 var(--font-body);color:var(--muted)}
#restaurant-grid .card-vibe .order-label{display:inline;margin-right:10px}
.guide-name-arrow{display:inline-block;vertical-align:.03em;width:.6em;height:.6em;margin-left:.3em;opacity:0;transition:opacity 200ms ease}
#restaurant-grid a:focus-visible .guide-name-arrow{opacity:1}
@media(hover:hover) and (pointer:fine){#restaurant-grid a:hover .guide-name-arrow{opacity:1}}
#restaurant-grid a:focus-visible{outline:2px solid var(--ink);outline-offset:6px;border-radius:2px}
@media(max-width:1050px) and (min-width:721px){#restaurant-grid .restaurant-card{padding:var(--space-4) 14px}#filters.guide-utility .filter-grid>label{padding:10px 12px}}
@media(max-width:720px){
 #main:has(#filters) .page-head{padding:20px 0 var(--space-4)}
 #main:has(#filters) .page-head h1.guide-heading{font-size:clamp(26px,7vw,44px);margin:10px 0}
 #main.compact-guide #filters.guide-utility{display:block;background:transparent;padding:0;border:0;border-radius:0;margin:0 0 var(--space-4)}
 #main.compact-guide #filters.guide-utility .search-wrap{position:static;margin:0 0 12px;width:100%;max-width:none}
 #main:has(#filters) .view-switch button{padding:var(--space-2) 14px;min-height:44px}
 #filters.guide-utility .filter-grid,#main.compact-guide #mobile-filter-panel .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
 #filters.guide-utility .filter-grid>label{padding:12px 10px}
 #filters.guide-utility .filter-grid>label:nth-child(odd){border-left:0}
 #filters.guide-utility .filter-grid>label:nth-child(n+3){border-top:var(--rule)}
 #main.compact-guide #filters.guide-utility .quick-tags{margin:0;padding:var(--space-4) 0;gap:var(--space-2)}
 #filters.guide-utility .quick-tag{min-height:44px}
 #filters.guide-utility [type=reset]{padding:var(--space-2) 0;margin:0;min-height:44px}
 #main.compact-guide .results-top{padding:14px 0;margin:0}
 #restaurant-grid{grid-template-columns:minmax(0,1fr);background:transparent;gap:0;margin-bottom:var(--space-12);border-left:0}
 #restaurant-grid .restaurant-card{padding:20px 0;border-right:0;border-bottom:var(--rule)}
 #restaurant-grid .card-name{font-size:30px}
 .guide-name-arrow{opacity:1}
}
@media(prefers-reduced-motion:reduce){.guide-name-arrow{transition:none}}

/* Compact search shares the intro area on wide screens; all controls stay in their original form. */
#main:has(#filters){position:relative}
#filters.guide-utility .quick-tag::before{content:"";display:inline-block;width:8px;height:8px;border:1px solid currentColor;border-radius:50%;margin-right:7px}
#filters.guide-utility .quick-tag[aria-pressed=true]::before{background:currentColor}
#filters.guide-utility .quick-tag:hover{border:0;text-decoration:underline;text-underline-offset:3px}
@media(min-width:1101px){
 #main:has(#filters) .page-head{width:calc(100% - 360px)}
 #filters.guide-utility .search-wrap{position:absolute;top:54px;right:0;margin:0}
}
@media(max-width:720px){
 #main.compact-guide #filters.guide-utility .search-wrap input{height:44px;min-height:44px;font-size:16px;padding:10px 12px}
 #restaurant-grid .guide-card-image{width:56%;max-width:176px}
 #main.compact-guide #filters.guide-utility .quick-tags{padding:var(--space-2) 0}
 #main.compact-guide #filters.guide-utility .quick-tag{padding:var(--space-2) 0;border:0;min-height:44px}
}

/* Compact one-line title in the approved hero serif family. */
#main:has(#filters) .page-head h1.guide-heading{text-align:left;font-synthesis:none;font-style:normal;white-space:nowrap}
/* The existing equal-height grid stretches each flex card; remaining space goes above Good For. */
@media(min-width:721px){
 #restaurant-grid{align-items:stretch}
 #restaurant-grid .card-vibe{margin-top:auto}
}

#restaurant-grid .guide-card-main{display:flex;flex-direction:column;min-width:0;flex:1}
/* Share the final track as well, so wrapped Good For values keep their top rules aligned. */
@supports(grid-template-rows:subgrid){
 @media(min-width:721px){
  #restaurant-grid .restaurant-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;grid-row:span 2}
  #restaurant-grid .card-vibe{grid-column:1;grid-row:2;margin-top:0}
 }
}

/* Native-size touch targets within the existing mobile filter panel. */
@media(max-width:720px){
 #filters.guide-utility select{min-height:44px;font-size:16px}
}

#restaurant-grid .guide-card-image-link{display:contents}
#restaurant-grid .guide-card-image-link:focus-visible{outline:none}
#restaurant-grid .guide-card-image-link:focus-visible .guide-card-image{outline:2px solid var(--ink);outline-offset:6px}

/* Match the existing Blog pressed-paper hero finish. */
#main:has(#filters) .page-head h1.guide-heading{color:color-mix(in srgb,var(--paper) 88%,var(--ink));text-shadow:1px 2px 2px color-mix(in srgb,var(--stone) 90%,white),-1px -1px 1px color-mix(in srgb,var(--ink) 24%,transparent);}
@media(forced-colors:active){#main:has(#filters) .page-head h1.guide-heading{color:CanvasText;text-shadow:none}}

/* Guide-only centered opening and integrated discovery row. Card rules stay intact. */
#main:has(#filters) .page-head{width:100%;max-width:none;text-align:center;padding:clamp(32px,4vw,56px) 0 clamp(28px,3.3vw,48px)}
#main:has(#filters) .page-head .eyebrow{font:500 12px/1.5 var(--font-body);letter-spacing:.13em}
#main:has(#filters) .page-head h1.guide-heading{font:500 clamp(44px,calc(28px + 4.3vw),88px)/1.08 var(--font-display);letter-spacing:-.035em;text-align:center;white-space:normal;text-wrap:balance;margin:16px 0 20px}
#main:has(#filters) .page-head .intro{max-width:520px;margin:0 auto;font-style:normal}
.guide-search-label{display:block;font:500 12px/1.5 var(--font-body);letter-spacing:.13em;text-transform:uppercase}
#filters.guide-utility .search-wrap>label{position:relative}
.guide-search-icon{position:absolute;left:0;bottom:12px;width:16px;height:16px;pointer-events:none}
#filters.guide-utility .search-wrap input{padding-left:24px}
@media(min-width:721px){
 #main:not(:has(.is-condensed)) #filters.guide-utility{grid-template-columns:minmax(0,1.9fr) minmax(0,1.35fr) minmax(0,1.75fr) minmax(0,1.55fr) minmax(140px,1fr) minmax(0,1.3fr);align-items:stretch}
 #main:not(:has(.is-condensed)) #filters.guide-utility .search-wrap{position:static;grid-column:1;grid-row:1;width:auto;max-width:none;margin:0;padding:12px 16px;background:var(--stone);border-block:var(--rule)}
 #main:not(:has(.is-condensed)) #filters.guide-utility .search-wrap input{height:36px;min-height:36px;padding:4px 0 4px 24px;border:0;border-radius:0;background:transparent;font-size:14px}
 #main:not(:has(.is-condensed)) #filters.guide-utility .search-wrap .guide-search-icon{bottom:10px}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid{display:contents}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label{grid-row:1;padding:12px 16px;border-block:var(--rule);border-left:var(--rule);background:var(--stone)}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label:nth-child(1){grid-column:2}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label:nth-child(2){grid-column:3}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label:nth-child(3){grid-column:4}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label:nth-child(4){grid-column:5}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label:last-child{grid-row:1;grid-column:6}
 #main:not(:has(.is-condensed)) #filters.guide-utility select{min-height:36px}
 #main:not(:has(.is-condensed)) #filters.guide-utility .quick-tags{grid-row:2;grid-column:1/-1;padding:12px 0;gap:8px;align-content:center}
 #main:not(:has(.is-condensed)) #filters.guide-utility .quick-tag{border:var(--rule);border-radius:999px;padding:7px 12px;min-height:34px;font:500 11px/1.3 var(--font-body);letter-spacing:.04em;text-transform:uppercase}
 #main:not(:has(.is-condensed)) #filters.guide-utility .quick-tag[aria-pressed=true]{background:var(--ink)!important;color:var(--paper)}
 #main:not(:has(.is-condensed)) #filters.guide-utility [type=reset]{grid-row:3;grid-column:1/-1;padding:4px 0;min-height:32px}
 #main .is-condensed .guide-search-label{display:none}
 #main .is-condensed .guide-search-icon{left:8px;bottom:10px}
 #main .is-condensed #filters.guide-utility .search-wrap input{padding-left:30px}
}
.guide-selected-wrap{display:contents}
.guide-selected-text{display:none}
@media(min-width:721px){
 #filters.guide-utility .guide-selected-wrap.is-wrapped{display:grid;position:relative}
 #filters.guide-utility .is-wrapped select,#filters.guide-utility .is-wrapped .guide-selected-text{grid-area:1/1}
 #filters.guide-utility .is-wrapped select{color:var(--ink);-webkit-text-fill-color:transparent;height:100%;min-height:36px}
 #filters.guide-utility .is-wrapped select option{color:var(--ink);-webkit-text-fill-color:var(--ink)}
 #filters.guide-utility .is-wrapped .guide-selected-text{display:block;align-self:center;color:var(--ink);letter-spacing:0;text-transform:none;white-space:normal;overflow-wrap:break-word;pointer-events:none}
}
/* Keep primary controls together above the quick strip when six columns become tight. */
@media(min-width:721px) and (max-width:1199px){
 #main:not(:has(.is-condensed)) #filters.guide-utility{grid-template-columns:repeat(3,minmax(0,1fr))}
 #main:not(:has(.is-condensed)) #filters.guide-utility .search-wrap{grid-column:1/-1;grid-row:1}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label{grid-row:2;border-top:0}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label:nth-child(1){grid-column:1;border-left:0}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label:nth-child(2){grid-column:2}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label:nth-child(3){grid-column:3}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label:nth-child(4){grid-column:1;grid-row:3;border-left:0}
 #main:not(:has(.is-condensed)) #filters.guide-utility .filter-grid>label:last-child{grid-column:2/-1;grid-row:3}
 #main:not(:has(.is-condensed)) #filters.guide-utility .quick-tags{grid-row:4}
 #main:not(:has(.is-condensed)) #filters.guide-utility [type=reset]{grid-row:5}
}
@media(max-width:720px){
 #main.compact-guide #filters.guide-utility .search-wrap .guide-search-label{margin-bottom:8px}
 #main.compact-guide #filters.guide-utility .search-wrap input{padding-left:36px}
 #main.compact-guide #filters.guide-utility .guide-search-icon{left:12px;bottom:14px}
}
@media(forced-colors:active){#main:has(#filters) .page-head h1.guide-heading{color:CanvasText;text-shadow:none}}

/* Mobile editorial rhythm: preserve title scale, controls, and card internals. */
@media(max-width:720px){
 #main:has(#filters) .page-head{padding-top:28px;padding-bottom:20px}
 #main:has(#filters) .page-head h1.guide-heading{margin-bottom:16px}
}

/* Match blog-subtitle typography; retain Guide wording, alignment and spacing. */
#main:has(#filters) .page-head .intro{font:500 11px/1.8 var(--font-body);letter-spacing:.18em;text-transform:uppercase}
@media(max-width:720px){#main:has(#filters) .page-head .intro{font-size:10px;letter-spacing:.13em}}
