/* Paid features (staging). Same few colors as the rest of the site; works in light and dark via theme.css variables. */
.premium-note{border:2px dashed var(--c-border);border-radius:var(--radius,1rem);padding:.75rem 1rem;margin:.75rem 0;background:var(--c-bg)}
.premium-note p{margin:.25rem 0}
.premium-tag{display:inline-block;font-weight:700;font-size:1rem;padding:0 .55rem;border:2px solid var(--c-accent-text);color:var(--c-accent-text);border-radius:999px;margin-right:.25rem}
.premium-filters{border:0;border-top:2px solid var(--c-line);padding:.75rem 0 0;margin:.25rem 0 0;min-width:0;grid-column:1/-1}
.premium-filters legend{font-weight:700;font-size:1.125rem;padding:0 .25rem 0 0}
.premium-grid{display:grid;gap:.8rem;grid-template-columns:1fr}
.premium-grid .open-at{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}
.premium-grid .open-at .group-label{grid-column:1/-1;font-weight:700;font-size:1.125rem}
.premium-grid .open-at .hint{font-weight:400}
.premium-grid .checks-col{display:grid;gap:.25rem;align-content:start}
.filter-grid label.check{display:flex;align-items:center;gap:.6rem;font-weight:400;min-height:var(--tap-min,44px)}
.filter-grid label.check input{width:1.4rem;height:1.4rem;flex:none}
.pill.mine{border-color:var(--c-accent-text);color:var(--c-accent-text)}
.btn-spin{justify-self:start;margin-top:.5rem}
.btn.is-on{border-color:var(--c-accent-text);color:var(--c-accent-text)}
.action-grid.two{grid-template-columns:1fr 1fr}
.premium-detail{margin:1rem 0 1.25rem;padding-top:.75rem;border-top:2px solid var(--c-line)}
.premium-detail h3{font-size:1.5rem;margin:0 0 .5rem}
.premium-detail h4{font-size:1.375rem;margin:1rem 0 .25rem}
.premium-detail .avg{font-size:1.25rem;font-weight:700;margin:.25rem 0 .75rem}
.rate-form fieldset{border:0;padding:0;margin:0 0 .5rem;min-width:0}
.rate-form legend{font-weight:700;font-size:1.125rem;margin-bottom:.35rem}
.star-radios{display:flex;flex-wrap:wrap;gap:.4rem}
.star-label{display:inline-flex;align-items:center;gap:.4rem;min-height:var(--tap-min,44px);padding:0 .7rem;border:2px solid var(--c-border);border-radius:999px;cursor:pointer;font-size:1.125rem;background:var(--c-bg)}
.star-label input{width:1.2rem;height:1.2rem;margin:0}
.star-label:has(input:checked){border-color:var(--c-accent-text);font-weight:700}
.star-label:has(input:focus-visible){outline:3px solid var(--c-focus);outline-offset:2px}
.rate-form label.field{display:block;font-weight:700;font-size:1.125rem;margin:.5rem 0 .25rem}
.rate-form textarea{width:100%;font:inherit;font-size:1.125rem;padding:.6rem .75rem;border:2px solid var(--c-border);border-radius:.75rem;background:var(--c-bg);color:var(--c-text);resize:vertical}
.rate-form .row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}
.rate-form .msg-line{font-weight:700;min-height:1.5em;margin:.25rem 0}
.reviews{list-style:none;padding:0;margin:.75rem 0 0;display:grid;gap:.75rem}
.review{border:2px solid var(--c-line);border-radius:.75rem;padding:.6rem .9rem;background:var(--c-surface)}
.review-head{margin:0;font-size:1.125rem}
.review-head .stars{color:var(--c-accent-text);letter-spacing:.05em}
.review-text{margin:.35rem 0;font-size:1.125rem;overflow-wrap:anywhere;white-space:pre-line}
.report-line{margin:.25rem 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.spin-view .lede{font-size:1.25rem}
.wheel-box{max-width:min(92vw,26rem);margin:.5rem auto 1rem}
.wheel{display:block;width:100%;height:auto}
.wheel .seg{stroke:var(--c-bg);stroke-width:1.5}
.wheel .seg-a{fill:var(--c-surface-alt)}
.wheel .seg-b{fill:var(--c-accent)}
.wheel .seg-win{fill:var(--c-heading)}
.wheel .seg-label{font-size:8.5px;font-weight:700;fill:var(--c-text)}
.wheel .seg-label.on-b{fill:var(--c-on-accent)}
.wheel .hub{fill:var(--c-bg);stroke:var(--c-border);stroke-width:2}
.wheel .pointer{fill:var(--c-text)}
.wheel-rot{transform-origin:0 0}
.spin-view .row{display:flex;justify-content:center}
.spin-result{text-align:center;min-height:6rem}
.spin-result .spin-name{font-size:1.625rem;margin:.5rem 0 .25rem}
@media (prefers-reduced-motion:reduce){.wheel-rot{transition:none!important}}
@media (min-width:700px){.premium-grid{grid-template-columns:repeat(3,1fr)}.premium-grid .open-at{grid-column:span 2}}
@media (forced-colors:active){.premium-note,.review,.star-label{border:2px solid CanvasText}.wheel .seg{stroke:CanvasText}}
/* Subscriber package: menus, specials, coupons, menu photos, Near me, the review page. */
.sub-note{overflow-wrap:anywhere}
#facebookRow,#menuRow{display:block}
.menu-details{display:block;margin:.35rem 0 0}
.menu-details>summary{cursor:pointer;font-weight:700;min-height:var(--tap-min,44px);display:flex;align-items:center;gap:.4rem;color:var(--c-accent-text);text-decoration:underline;text-underline-offset:.15em}
.menu-details>summary:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}
.menu-body{margin:.25rem 0 .75rem;min-width:0}
.menu-sec{font-size:1.25rem;margin:1rem 0 .25rem;overflow-wrap:anywhere}
.menu-items{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.menu-items li{border-bottom:1px solid var(--c-line);padding:0 0 .45rem;min-width:0}
.menu-line{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 .75rem}
.menu-name{font-weight:700;overflow-wrap:anywhere;min-width:0}
.menu-price{white-space:nowrap}
.menu-desc{display:block;color:var(--c-text-muted);overflow-wrap:anywhere}
.menu-page{margin:.75rem 0;min-width:0}
.menu-page img{display:block;max-width:100%;height:auto;border:1px solid var(--c-line);border-radius:.5rem;background:#fff}
.menu-page figcaption{margin-top:.25rem}
.pill.today{border-color:var(--c-accent-text);color:var(--c-accent-text);font-weight:700}
.specials li{overflow-wrap:anywhere}
.photos-box{margin-top:1rem}
.photo-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr))}
.photo-form{margin:.75rem 0 0}
.photo-form label.field{display:block;font-weight:700;font-size:1.125rem;margin:.25rem 0}
.photo-form input[type=file]{max-width:100%;font:inherit;min-height:var(--tap-min,44px)}
.photo-form input[type=file]:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}
.photo-form .msg-line{font-weight:700;min-height:1.5em;margin:.25rem 0}
.coupons-box{margin:1rem 0 0;padding:.75rem 1rem;border:2px solid var(--c-line);border-radius:var(--radius,1rem)}
.coupons-box h2{font-size:1.375rem;margin:0 0 .25rem}
#nearMe{margin-left:0}   /* QA: lines up with Pick for me and Spin the wheel above it, at every width */
/* The site owner's review page (/account/review/) */
.review-q{list-style:none;padding:0;margin:.75rem 0;display:grid;gap:1rem}
.review-q>li{border:2px solid var(--c-line);border-radius:.75rem;padding:.75rem;min-width:0;overflow-wrap:anywhere}
.review-q img{display:block;max-width:100%;height:auto;border-radius:.5rem}
.review-q .row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0 0}
.review-q .flags{font-weight:700}
#rqMsg{font-weight:700;font-size:1.125rem;min-height:1.5em;margin:.25rem 0}

/* Restaurant logos (go-live package, Nov 1 2026). FREE for everyone, not a subscriber style; it sits here because
   premium.css is the staging site's own stylesheet. On a card cover without a photo the logo replaces the letter,
   at 96 x 96 px. The logo tiles carry their own rounded white or charcoal background, so they read on both themes. */
.cover.type.has-logo{align-items:center}
.cover-logo{display:block;flex:none;width:96px;height:96px;object-fit:contain}
.logo-credits ul{margin:.5rem 0 0;padding-left:1.25rem;font-size:1.0625rem}
/* home-tiles-20261101: the Subscribers only box lists its features as the same tiles as the home choices (.tiles/.tile
   from app.css). Here only: no full-width first tile, the inner list doesn't take the left column's grid rows, a detail line. */
.locked .sub-tiles{margin:.25rem 0 1rem}
.sub-tiles li:first-child{grid-column:auto}
#homeTop .locked .sub-tiles{grid-row:auto}
.tile .d{font-size:1.125rem;color:var(--c-text-muted);line-height:1.25}
.sub-tiles .tile .s{white-space:nowrap}   /* the lock and "Subscribers" stay on one line, as on the Not there tile */
@media (min-width:1000px){.sub-tiles .tile{padding-left:.25rem;padding-right:.25rem}}
/* home-tiles-20261101: thumbs up / down on cards and the place page (subscribers; locked for everyone else) */
.thumbs{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.btn.thumb{min-width:var(--tap-min,44px);min-height:var(--tap-min,44px);padding:.25rem .75rem;gap:.35rem}
.btn.thumb svg.ic-thumb{width:1.375rem;height:1.375rem}
.btn.thumb svg.ic-lock{width:1em;height:1em}
.btn.thumb[aria-pressed=true]{border-color:var(--c-accent-text);color:var(--c-accent-text);border-width:3px}
.thumb-note:empty{display:none}
#detailView .thumbs{margin:.25rem 0 .75rem}
/* EatMDN rating (ratings-20261102, merged in ratings-r2-20261102): overall + service + comment on the place page; locked for everyone but subscribers */
.eatmdn-rate{margin:1rem 0}
.er-group{border:0;padding:0;margin:.75rem 0}
.er-group legend{font-weight:700;padding:0;margin-bottom:.4rem}
.star-label.er-none{font-size:1rem}
.btn.er-locked{min-height:var(--tap-min,44px);gap:.4rem;flex-wrap:wrap}
.btn.er-locked svg.ic-star{width:1.25rem;height:1.25rem}
.er-sub{display:inline-flex;align-items:center;gap:.25rem}
.er-sub svg.ic-lock{width:1em;height:1em}
/* Dietary needs (dietary-20261102): filter group and place-page section. One column at 390px, two from 600px. */
.diet-filters{margin-top:1rem;min-width:0}
.diet-filters .diet-sub{border:0;padding:0;margin:.6rem 0 0;min-width:0}
.diet-filters .diet-sub legend{font-weight:700;padding:0}
.diet-grid{display:grid;gap:.25rem .9rem;grid-template-columns:1fr}
.diet-grid label.check{min-height:var(--tap-min,44px);display:flex;align-items:center;gap:.5rem;overflow-wrap:anywhere}
.diet-box{margin:1rem 0 1.25rem;padding-top:.75rem;border-top:2px solid var(--c-line)}
.diet-list{list-style:none;padding:0;margin:0;display:grid;gap:.9rem}
.diet-claim p{margin:.2rem 0;overflow-wrap:anywhere}
.diet-warn{border-left:4px solid var(--c-line);padding-left:.6rem}
.hint.stars-held{font-size:.95em}
@media (min-width:600px){.diet-grid{grid-template-columns:1fr 1fr}}
/* Equal cards: every card cover is the same height, logo or letter, so no card stands out */
.card .cover.type,.deck-card .cover.type{min-height:calc(96px + 1.2rem + 2px)}   /* logo 96 px + padding + the 2 px bottom border */
/* Rep and Report a bug (rep-20261102): Like on comments, the place page's bug link */
.like-line{margin:.25rem 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:0 .5rem}
.like-btn{min-height:var(--tap-min);border:2px solid var(--c-border)}
.like-btn[aria-pressed=true]{background:var(--c-surface-alt);border-color:var(--c-text)}
.bug-line{margin:1rem 0 0;font-size:1.125rem}
.bug-line a{font-weight:700;color:var(--c-accent-text)}
.owner-line{margin:.5rem 0 0;font-size:1.125rem}
.owner-line a{font-weight:700;color:var(--c-accent-text)}
/* Home screen tip (home-screen-tip.js), above the footer on phones and tablets */
.hs-tip{margin:1.5rem auto;padding:1rem 1.25rem;background:var(--c-surface);border:2px solid var(--c-border);border-left:6px solid var(--c-accent-text);border-radius:var(--radius,1rem)}
.hs-tip-text{margin:0 0 .75rem;font-size:1.125rem}
.hs-tip-row{margin:0;display:flex;flex-wrap:wrap;gap:.5rem}
/* rep-20261102: the front page "Subscriber features" box (<details>, the native arrow) */
.premium-box{margin:1rem 0;border:2px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface)}
.premium-box>summary{cursor:pointer;padding:.9rem 1.1rem;min-height:var(--tap-min);font-weight:700;font-size:1.25rem;color:var(--c-heading)}
.premium-box>summary:focus-visible{outline:4px solid var(--c-focus);outline-offset:3px;border-radius:var(--radius)}
.premium-box[open]>summary{border-bottom:1px solid var(--c-line)}
.pb-list{list-style:none;margin:0;padding:.5rem 1.1rem;display:grid;gap:.35rem}
.pb-item{display:block;line-height:1.45}
.pb-item .pb-lock{width:1.05em;height:1.05em;vertical-align:-.15em;margin-right:.3em}
.pb-name{font-weight:700;color:var(--c-text)}
.pb-name a{color:var(--c-accent-text)}
.pb-what{color:var(--c-text-muted)}
.pb-sub-line{margin:.25rem 1.1rem 1rem}
.premium-box.pb-sub .pb-lock{display:none}
/* update-20261102b: subscriber one-tap filters (real buttons, aria-pressed, 44 px targets) */
.quick-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 1rem}
.quick-filters[hidden]{display:none}
.qf-label{flex-basis:100%;margin:0;font-weight:700;color:var(--c-heading)}
.qf-btn{min-height:44px;min-width:44px;padding:.45rem 1rem;border:2px solid var(--c-border);border-radius:999px;background:var(--c-bg);color:var(--c-text);font:inherit;font-weight:700;cursor:pointer}
.qf-btn[aria-pressed="true"]{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-on-accent)}
.qf-btn[aria-pressed="true"]::before{content:"✓ ";content:"✓ " / ""}   /* the tick is decoration: the button name stays the same, aria-pressed says on */
.qf-btn:focus-visible{outline:4px solid var(--c-focus);outline-offset:3px}
.qf-btn[hidden]{display:none}
/* menus-20261102 (group C): Save menu (third button), the locked Menu drawer line, the pricing notice, Start a group order */
.action-grid.two.three{grid-template-columns:1fr 1fr 1fr}
@media (max-width:30rem){.action-grid.two.three{grid-template-columns:1fr 1fr}}
.menu-save-locked{margin:.5rem 0}
.btn-locked{gap:.4rem}
.btn-locked .ic-lock{width:1.1rem;height:1.1rem}
.menu-terms{font-size:.95rem;line-height:1.45;color:var(--c-text);background:var(--c-surface-alt);border-left:4px solid var(--c-border);border-radius:.5rem;padding:.6rem .8rem;margin:.5rem 0 .75rem;overflow-wrap:anywhere}
.menu-actions{margin:.25rem 0 .75rem}
/* claims-20261102 row 20 (group A): the Sponsored label on each Featured picks item */
.feat .pill.sponsored { margin-left: .4em; }
/* menus-20261102: a subscriber's feature links in the Subscribers box are 44 px tap targets (live: 25 px) */
.pb-sub .pb-item .pb-name a{display:inline-flex;align-items:center;min-height:44px}
