:root {
    --wine: #7b1e3a;
    --wine-dark: #3e1023;
    --coral: #f06449;
    --orange: #f49b36;
    --yellow: #f7c948;
    --green: #1f8a5b;
    --mint: #cbe9d7;
    --teal: #167d87;
    --cream: #fff9ee;
    --paper: #fffdf8;
    --ink: #24151a;
    --muted: #725f65;
    --line: rgba(62, 16, 35, .13);
    --shadow: 0 24px 60px rgba(73, 27, 42, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--cream);
    font-family: "DM Sans", sans-serif;
    line-height: 1.5;
    overflow-x: hidden;
}
button, select { font: inherit; }
a { color: inherit; }
img { max-width: 100%; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; background: #fff; padding: .75rem 1rem; border-radius: .5rem; }
.skip-link:focus { top: 1rem; }
.page-glow { position: fixed; border-radius: 50%; filter: blur(2px); pointer-events: none; z-index: -1; opacity: .65; }
.page-glow-one { width: 420px; height: 420px; background: #ffd88d; right: -170px; top: 110px; }
.page-glow-two { width: 340px; height: 340px; background: #bfe9d0; left: -200px; top: 700px; }

.site-header {
    width: min(1180px, calc(100% - 32px));
    height: 78px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    z-index: 20;
}
.brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; font: 700 1.55rem/1 "Playfair Display", serif; color: var(--wine-dark); }
.brand > span:last-child span, .brand.light > span { color: var(--coral); }
.brand-mark { width: 35px; height: 35px; display: grid; grid-template-columns: repeat(3, 1fr); align-items: end; gap: 3px; padding: 8px; border-radius: 12px; background: var(--wine); transform: rotate(-4deg); box-shadow: 0 5px 12px rgba(123,30,58,.22); }
.brand-mark span { display: block; border-radius: 5px 5px 2px 2px; background: var(--yellow); }
.brand-mark span:nth-child(1) { height: 12px; background: var(--coral); }
.brand-mark span:nth-child(2) { height: 19px; }
.brand-mark span:nth-child(3) { height: 15px; background: #6fd09d; }
.desktop-nav { display: flex; align-items: center; gap: 2rem; }
.desktop-nav a { text-decoration: none; color: #5e4650; font-size: .92rem; font-weight: 600; }
.desktop-nav a:hover { color: var(--wine); }
.header-actions { display: flex; align-items: center; gap: .6rem; }
.install-button { border: 1px solid var(--line); background: rgba(255,255,255,.7); color: var(--wine); padding: .62rem .85rem; border-radius: 999px; display: inline-flex; align-items: center; gap: .45rem; cursor: pointer; font-weight: 700; }
.install-button[hidden] { display: none; }
.install-button svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.install-popup { position: fixed; inset: 0; z-index: 99998; display: flex; align-items: flex-end; justify-content: center; background: rgba(26,15,10,.45); padding: 0; animation: install-fade .2s ease; }
.install-popup[hidden] { display: none; }
@keyframes install-fade { from { opacity: 0; } to { opacity: 1; } }
.install-card { width: 100%; max-width: 420px; background: #fff; border-radius: 20px 20px 0 0; padding: 1.6rem 1.4rem 1.8rem; text-align: center; position: relative; box-shadow: 0 -8px 30px rgba(62,16,35,.22); animation: install-up .25s ease; }
@keyframes install-up { from { transform: translateY(24px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@media (min-width: 640px) { .install-popup { align-items: center; } .install-card { border-radius: 20px; max-width: 360px; } }
.install-popup-close { position: absolute; top: 10px; right: 12px; border: 0; background: none; font-size: 1.5rem; line-height: 1; color: var(--ink-soft, rgba(42,24,16,.5)); cursor: pointer; padding: .3rem; }
.install-popup-icon { width: 54px; height: 54px; margin: 0 auto .9rem; border-radius: 16px; background: var(--wine); color: #fff; display: flex; align-items: center; justify-content: center; }
.install-popup-icon svg { width: 26px; stroke: currentColor; stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.install-card h3 { margin: 0 0 .5rem; font: 700 1.15rem/1.3 "Playfair Display", serif; color: var(--wine-dark); }
.install-card p { margin: 0 0 1.2rem; font-size: .88rem; color: var(--ink-soft, rgba(42,24,16,.68)); line-height: 1.5; }
.install-popup-cta { width: 100%; padding: .9rem; border: 0; border-radius: 12px; background: var(--wine); color: #fff; font-weight: 800; font-size: .95rem; cursor: pointer; margin-bottom: .6rem; }
.install-popup-dismiss { width: 100%; padding: .6rem; border: 0; background: none; color: var(--ink-soft, rgba(42,24,16,.6)); font-weight: 700; font-size: .85rem; cursor: pointer; }
.menu-button { display: none; width: 42px; height: 42px; border: 0; background: var(--wine); border-radius: 50%; padding: 11px; }
.menu-button span { display: block; height: 2px; background: white; margin: 4px 0; border-radius: 2px; }
.mobile-nav { position: absolute; left: 0; right: 0; top: 68px; padding: 1rem; border-radius: 18px; background: var(--paper); box-shadow: var(--shadow); border: 1px solid var(--line); }
.mobile-nav a { display: block; padding: .85rem; text-decoration: none; font-weight: 700; border-bottom: 1px solid var(--line); }
.mobile-nav a:last-child { border: 0; }

main { overflow: hidden; }
.search-hero { width: min(1180px, calc(100% - 32px)); min-height: 650px; margin: 12px auto 0; position: relative; overflow: hidden; border-radius: 30px; background: #1b0e12; box-shadow: 0 28px 75px rgba(46, 16, 24, .22); }
.food-photo-grid { position: absolute; inset: 0; display: grid; grid-template-columns: 1.45fr .8fr; grid-template-rows: 1fr 1fr; gap: 5px; }
.food-photo-grid img { width: 100%; height: 100%; object-fit: cover; min-height: 0; }
.food-photo-grid .food-photo-main { grid-row: 1 / 3; }
.search-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(25, 10, 16, .97) 0%, rgba(41, 15, 24, .91) 40%, rgba(32, 13, 18, .34) 72%, rgba(20, 8, 12, .08) 100%); }
.search-hero-content { position: relative; z-index: 2; width: min(720px, 68%); padding: 38px 0 34px 50px; color: white; }
.eyebrow, .section-kicker { color: var(--wine); text-transform: uppercase; letter-spacing: .14em; font-weight: 800; font-size: .72rem; }
.eyebrow { display: inline-flex; align-items: center; gap: .55rem; color: #f7d7a0; }
.eyebrow span { width: 8px; height: 8px; border-radius: 50%; background: #68c992; box-shadow: 0 0 0 5px rgba(104,201,146,.15); }
.search-hero h1 { margin: .7rem 0 .45rem; max-width: 650px; color: #fff; font: 700 clamp(2.7rem, 4.5vw, 4.15rem)/.92 "Playfair Display", serif; letter-spacing: -.045em; }
.search-hero-content > p { max-width: 540px; margin: 0; color: rgba(255,255,255,.77); font-size: 1rem; }
.search-shell { width: 100%; margin: 1rem 0 .75rem; }
.finder { display:block; min-height:315px; background:white; color:var(--ink); padding:.85rem 1rem 1rem; border-radius:18px; box-shadow:0 18px 48px rgba(0,0,0,.28); }
.finder.is-loading { pointer-events:none; }
.finder.is-loading .finder-field { opacity:.58; }
.finder.is-loading .find-button { background:#b14b3b; }
.search-progress { list-style:none; display:flex; align-items:center; margin:0 0 .8rem; padding:0 0 .7rem; border-bottom:1px solid var(--line); }
.search-progress li { flex:1; display:flex; align-items:center; gap:.38rem; color:#9b8b90; font-size:.68rem; }
.search-progress li:not(:last-child)::after { content:""; flex:1; height:1px; margin:0 .45rem; background:#ded5d8; }
.search-progress li span { width:23px; height:23px; display:grid; place-items:center; flex:0 0 23px; border-radius:50%; background:#eee8e9; color:#7f6e74; font-size:.67rem; font-weight:800; }
.search-progress li b { font-weight:800; }
.search-progress li.active { color:var(--wine); }
.search-progress li.active span { color:white; background:var(--wine); box-shadow:0 0 0 4px rgba(123,30,58,.1); }
.search-progress li.complete span { color:#143c29; background:#6fd09d; }
.search-step[hidden] { display:none; }
.step-heading { margin-bottom:.7rem; }
.step-heading > span { color:var(--coral); font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.step-heading h2 { margin:.12rem 0 0; color:var(--wine-dark); font:700 1.55rem/1.05 "Playfair Display",serif; letter-spacing:-.025em; }
.food-search-field { height:58px; display:flex; align-items:center; gap:.65rem; padding:0 .85rem; border:1.5px solid #d8cccf; border-radius:13px; background:#fff; transition:border-color .18s,box-shadow .18s; }
.food-search-field:focus-within { border-color:var(--coral); box-shadow:0 0 0 4px rgba(240,100,73,.1); }
.food-search-field svg { width:21px; flex:0 0 21px; fill:none; stroke:var(--coral); stroke-width:2; }
.food-search-field input { width:100%; min-width:0; border:0; outline:0; color:var(--ink); background:transparent; font-size:.95rem; font-weight:700; }
.food-suggestions { display:flex; gap:.4rem; overflow-x:auto; scrollbar-width:none; margin:.65rem 0; }
.food-suggestions[hidden] { display:none; }
.food-suggestions::-webkit-scrollbar { display:none; }
.nearest-food-btn { display:flex; align-items:center; justify-content:center; gap:.4rem; width:100%; margin:.65rem 0 0; padding:.7rem 1rem; border:0; border-radius:11px; background:#1d6b45; color:#fff; font:inherit; font-weight:800; font-size:.88rem; cursor:pointer; }
.nearest-food-btn:hover { background:#155434; }
.nearest-food-btn[hidden] { display:none; }
.nearest-food-btn svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.2; flex:0 0 16px; }
.nearest-food-btn:disabled { opacity:.7; cursor:default; }
.nearest-food-msg { margin:.5rem 0 0; font-size:.82rem; color:var(--ink-soft,#6e5a5f); text-align:center; }
.nearest-food-msg[hidden] { display:none; }
.nearest-food-msg.is-error { color:#9b2222; }
.food-suggestion { flex:0 0 auto; border:1px solid #ded3d6; border-radius:999px; padding:.38rem .62rem; background:#faf7f4; color:#6f555e; cursor:pointer; font-size:.68rem; font-weight:800; }
.food-suggestion:hover { border-color:var(--coral); color:var(--wine); }
.location-fields { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; }
.finder-field { min-width:0; padding:.62rem .75rem; border:1px solid #dfd5d8; border-radius:12px; background:#fbf8f6; }
.finder-field > span:first-child { display: block; margin-left: 1.55rem; color: var(--muted); font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.finder-field.is-muted { opacity: .55; }
.select-wrap { display: flex; align-items: center; gap: .38rem; }
.select-wrap svg { width: 17px; flex: 0 0 17px; fill: none; stroke: var(--coral); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.select-wrap select { width: 100%; min-width: 0; border: 0; outline: 0; appearance: none; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237b1e3a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right center; color: var(--ink); font-weight: 700; padding: .28rem 1.1rem .28rem 0; }
.price-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.48rem; }
.price-option { display:block; position:relative; cursor:pointer; }
.price-option input { position:absolute; opacity:0; pointer-events:none; }
.price-option > span { min-height:58px; display:flex; flex-direction:column; justify-content:center; padding:.55rem .7rem .55rem 2.15rem; border:1px solid #ded3d6; border-radius:11px; background:#fbf8f6; position:relative; }
.price-option > span::before { content:""; position:absolute; left:.7rem; top:50%; width:15px; height:15px; border:1.5px solid #b3a2a8; border-radius:50%; transform:translateY(-50%); }
.price-option input:checked + span { border-color:var(--coral); background:#fff4f0; box-shadow:0 0 0 2px rgba(240,100,73,.1); }
.price-option input:checked + span::before { border:5px solid var(--coral); }
.price-option input:focus-visible + span { outline:3px solid rgba(22,125,135,.35); }
.price-option strong { color:var(--wine-dark); font-size:.78rem; }
.price-option small { margin-top:.05rem; color:#8b777e; font-size:.6rem; }
.step-actions { display:flex; justify-content:space-between; align-items:center; gap:.7rem; margin-top:.8rem; }
.step-actions.one-action { justify-content:flex-end; }
.step-next,.step-back { min-height:46px; border:0; border-radius:11px; padding:.65rem 1rem; cursor:pointer; font-weight:800; }
.step-next { background:var(--wine); color:white; }
.step-next:hover { background:#921f43; }
.step-back { background:#f1ebed; color:#70545e; }
.find-button { border:0; background:var(--coral); color:white; border-radius:11px; padding:0 1.15rem; min-height:48px; display:inline-flex; gap:.55rem; align-items:center; justify-content:center; cursor:pointer; font-weight:800; box-shadow:0 9px 20px rgba(240,100,73,.25); white-space:nowrap; }
.find-button:hover { background: #dc533b; transform: translateY(-1px); }
.find-button svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 2; }
.quick-proof { display: flex; align-items: center; gap: .7rem; font-size: .8rem; font-weight: 700; color: rgba(255,255,255,.72); }
.quick-proof span { display: inline-flex; align-items: center; gap: .4rem; }
.quick-proof strong { display: grid; place-items: center; width: 23px; height: 23px; color: #17291f; background: #68c992; border-radius: 50%; font-size: .7rem; }
.quick-proof span:last-child strong { color: white; background: var(--coral); }
.quick-proof i { width: 24px; height: 1px; background: rgba(255,255,255,.3); }

.directory-section { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 64px 0 110px; }
.results-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.section-kicker { margin: 0 0 .55rem; }
.results-heading h2, .how-heading h2, .state-section h2, .empty-state h2 { margin: 0; font: 700 clamp(2rem,4vw,3.7rem)/1 "Playfair Display", serif; letter-spacing: -.035em; color: var(--wine-dark); }
.result-count { margin: 0; color: var(--muted); }.result-count strong { color: var(--wine); font-size: 1.35rem; }
.price-scroller { display: flex; gap: .55rem; overflow-x: auto; scrollbar-width: none; margin: 2rem 0 2.2rem; padding-bottom: .2rem; }
.price-scroller::-webkit-scrollbar { display: none; }
.price-chip { flex: 0 0 auto; padding: .68rem 1rem; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.72); text-decoration: none; color: #644b54; font-size: .82rem; font-weight: 700; }
.price-chip:hover, .price-chip.active { color: white; border-color: var(--wine); background: var(--wine); box-shadow: 0 8px 18px rgba(123,30,58,.18); }
.vendor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.35rem; }
.vendor-card { position: relative; background: var(--paper); border: 1px solid rgba(65,25,35,.09); border-radius: 25px; overflow: hidden; box-shadow: 0 15px 40px rgba(67,26,40,.08); transition: transform .25s ease, box-shadow .25s ease; }
.vendor-card:hover { transform: translateY(-6px); box-shadow: 0 26px 55px rgba(67,26,40,.15); }
.card-hit-area { position: absolute; inset: 0; z-index: 3; }
.card-hit-area:focus-visible { outline: 4px solid var(--teal); outline-offset: -4px; border-radius: 25px; }
.vendor-visual { height: 205px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 4px; overflow: hidden; position: relative; background: #f7be57; }
.vendor-visual.single-photo { grid-template-columns: 1fr; }
.vendor-visual img { width: 100%; height: 100%; object-fit: cover; min-width: 0; }
.menu-badge { position: absolute; left: .8rem; top: .8rem; padding: .38rem .62rem; border-radius: 999px; background: rgba(36,21,26,.78); color: white; backdrop-filter: blur(8px); font-size: .7rem; font-weight: 800; }
.food-placeholder { grid-column: 1/-1; position: relative; display: grid; place-items: center; overflow: hidden; background: #f6bf50; color: var(--wine-dark); font: 700 2rem/1.05 "Playfair Display",serif; text-align: center; }
.food-placeholder::before { content:""; position:absolute; width:160px; height:160px; border:25px solid rgba(255,255,255,.65); border-radius:50%; }
.food-placeholder span { position:relative; z-index:1; }
.food-placeholder i { position:absolute; width:70px; height:28px; border-radius:50%; background:var(--coral); }.food-placeholder i:nth-child(2){left:-15px;top:18px;transform:rotate(35deg)}.food-placeholder i:nth-child(3){right:-15px;bottom:20px;transform:rotate(-20deg);background:var(--green)}.food-placeholder i:nth-child(4){right:30px;top:-18px;background:var(--teal)}
.tone-2 .food-placeholder { background: #c9e8d5; }.tone-3 .food-placeholder { background: #f7a58e; }.tone-4 .food-placeholder { background: #9bdde1; }
.vendor-body { padding: 1.2rem; }
.vendor-title-row { display: grid; grid-template-columns: 50px 1fr; gap: .8rem; align-items: center; }
.vendor-logo { width: 50px; height: 50px; border-radius: 15px; background: #fff; border: 1px solid var(--line); box-shadow: 0 5px 14px rgba(55,23,32,.08); overflow: hidden; display: grid; place-items: center; }
.vendor-logo img { width: 100%; height: 100%; object-fit: cover; }
.vendor-logo span { font: 700 1.4rem "Playfair Display",serif; color: var(--wine); }
.vendor-card h3 { margin: 0 0 .2rem; font: 700 1.2rem/1.15 "Playfair Display",serif; }
.vendor-location { margin: 0; display: flex; align-items: center; gap: .3rem; color: var(--muted); font-size: .77rem; }
.vendor-location svg { width: 14px; flex: 0 0 14px; fill: none; stroke: var(--coral); stroke-width: 2; }
.vendor-meta { display: flex; justify-content: space-between; gap: .65rem; color: #634d55; font-size: .75rem; font-weight: 700; margin: 1rem 0 .85rem; }
.bulk-label { color: var(--teal); }
.direct-label { display: inline-flex; align-items: center; gap: .32rem; white-space: nowrap; }.direct-label i { width: 7px; height: 7px; background: var(--green); border-radius:50%; }
.menu-link { display: flex; align-items: center; justify-content: space-between; color: var(--wine); border-top: 1px solid var(--line); padding-top: .85rem; font-size: .85rem; font-weight: 800; }
.menu-link svg, .nearby-list svg { width: 18px; fill:none; stroke:currentColor; stroke-width:2; }

.menu-dialog { width:min(1100px, calc(100vw - 32px)); height:min(900px, calc(100dvh - 32px)); max-width:none; max-height:none; padding:0; border:0; border-radius:20px; overflow:hidden; background:#fff; box-shadow:0 28px 90px rgba(20,8,12,.35); }
.menu-dialog::backdrop { background:rgba(24,9,15,.72); backdrop-filter:blur(5px); }
.menu-dialog[open] { display:flex; flex-direction:column; }
.menu-dialog-toolbar { flex:0 0 auto; min-height:62px; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.65rem 1rem .65rem 1.3rem; color:var(--wine-dark); background:var(--paper); border-bottom:1px solid var(--line); }
.menu-dialog-toolbar strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:700 1.15rem "Playfair Display",serif; }
.menu-dialog-close { flex:0 0 auto; display:inline-flex; align-items:center; gap:.45rem; min-height:42px; padding:.45rem .8rem; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--wine); font-weight:800; cursor:pointer; }
.menu-dialog-close:hover { background:#f9edf0; }
.menu-dialog-close:focus-visible { outline:3px solid var(--teal); outline-offset:2px; }
.menu-dialog-close span { font-size:1.45rem; line-height:1; }
.menu-dialog iframe { flex:1 1 auto; display:block; width:100%; min-height:0; border:0; background:#fff; }

.empty-state { min-height: 330px; display: grid; grid-template-columns: 300px 1fr; align-items: center; gap: 3rem; padding: 1.1rem 4rem 1.1rem 1.1rem; border-radius: 24px; background: #f3eadf; overflow: hidden; position: relative; border: 1px solid rgba(62,16,35,.08); }
.filter-empty { background: #edf3ed; }
.empty-state > div:last-child { position: relative; z-index: 2; }
.empty-state p:not(.section-kicker) { max-width: 620px; color: #684f58; }
.empty-photo { height: 300px; border-radius: 18px; overflow: hidden; box-shadow: 0 16px 35px rgba(52,27,31,.16); }
.empty-photo img { width: 100%; height: 100%; object-fit: cover; }
.empty-actions { display:flex; align-items:center; gap:1.25rem; margin-top:1.35rem; flex-wrap:wrap; }
.primary-link { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.75rem 1.1rem; background:var(--wine); color:#fff; text-decoration:none; border-radius:13px; font-weight:800; }
.text-link { color:var(--wine); font-weight:800; text-decoration:none; }
.nearby-block { margin-top: 3rem; }.nearby-block h3 { margin:.2rem 0 1.2rem; font:700 1.7rem "Playfair Display",serif; }
.nearby-list { display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; }.nearby-list a { display:grid; grid-template-columns:42px 1fr 20px; align-items:center; gap:.7rem; text-decoration:none; background:white; padding:.85rem; border:1px solid var(--line); border-radius:16px; }.nearby-initial{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#f8d168;color:var(--wine);font:700 1.1rem "Playfair Display",serif}.nearby-list strong,.nearby-list small{display:block}.nearby-list small{color:var(--muted)}
.nearby-note { margin:-.7rem 0 1rem; color:var(--muted); font-size:.85rem; }
.nearby-list a:hover { border-color:var(--coral); box-shadow:0 12px 28px rgba(67,26,40,.09); transform:translateY(-2px); }
.nearby-list .nearby-location { margin:.18rem 0 .1rem; color:var(--wine); font-weight:800; }

.how-section { background: var(--wine-dark); color: white; padding: 110px max(16px, calc((100vw - 1180px)/2)); position: relative; }
.how-section::before { content:""; position:absolute; width:280px; height:280px; border-radius:50%; background:var(--coral); filter:blur(100px); opacity:.16; right:8%; top:10%; }
.how-heading { max-width: 680px; }.how-heading .section-kicker { color: var(--yellow); }.how-heading h2 { color: white; }.how-heading > p:last-child { color: #d8c8ce; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); margin-top:3.5rem; gap:1rem; }
.steps article { position:relative; min-height:260px; padding:1.55rem; border:1px solid rgba(255,255,255,.12); border-radius:22px; background:rgba(255,255,255,.055); }
.steps article > span { position:absolute; right:1.2rem; top:.8rem; color:rgba(255,255,255,.15); font:700 3rem "Playfair Display",serif; }
.step-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:18px; color:var(--wine-dark); font-size:1.6rem; font-weight:800; transform:rotate(-4deg); }.step-icon.coral{background:var(--coral)}.step-icon.yellow{background:var(--yellow);transform:rotate(4deg)}.step-icon.green{background:#72d7a0}
.steps h3 { margin:1.5rem 0 .45rem; font:700 1.35rem "Playfair Display",serif; }.steps p{margin:0;color:#cdbdc3;}
.state-section { width:min(1180px,calc(100% - 32px)); margin:0 auto; padding:100px 0; display:grid; grid-template-columns:.7fr 1.3fr; gap:4rem; }
.state-links { display:grid; grid-template-columns:repeat(2,1fr); gap:.75rem; }.state-links a{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.1rem;background:white;border:1px solid var(--line);border-radius:14px;text-decoration:none;font-weight:800}.state-links a:hover{border-color:var(--coral);transform:translateX(3px)}.state-links small{color:var(--muted);font-weight:600}
.directory-footer { padding:60px max(16px,calc((100vw - 1180px)/2)) 30px; background:#24151a;color:#eadde1;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:start}.brand.light{color:white}.footer-brand p{max-width:480px;color:#af9da3}.footer-links{display:grid;grid-template-columns:repeat(2,auto);gap:.8rem 2rem}.footer-links a{color:#e9dce0;text-decoration:none;font-weight:600}.copyright{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:1.4rem;margin:1rem 0 0;color:#89747b;font-size:.8rem}

@media (max-width: 900px) {
    .desktop-nav { display:none; }
    .menu-button { display:block; }
    .search-hero-content { width: 78%; padding-left: 36px; }
    .search-hero::after { background: linear-gradient(90deg, rgba(25,10,16,.97) 0%, rgba(41,15,24,.9) 58%, rgba(20,8,12,.28) 100%); }
    .vendor-grid { grid-template-columns:repeat(2,1fr); }
    .state-section { grid-template-columns:1fr; gap:2rem; }
    .nearby-list { grid-template-columns:1fr; }
    .directory-footer { grid-template-columns:1fr; }
    .footer-links { justify-content:start; }
}
@media (max-width: 640px) {
    .menu-dialog { width:100vw; height:100dvh; margin:0; border-radius:0; }
    .menu-dialog-toolbar { min-height:58px; padding:.5rem .7rem .5rem 1rem; }
    .site-header { height:68px; }
    .brand { font-size:1.35rem; }
    .brand-mark { width:32px; height:32px; }
    .install-button { width:40px; height:40px; padding:0; justify-content:center; }
    .install-button span { display:none; }
    .install-button svg { width:20px; }
    .search-hero { width: calc(100% - 20px); min-height: 640px; margin-top: 4px; border-radius: 22px; }
    .food-photo-grid { display:block; }
    .food-photo-grid img { display:none; }
    .food-photo-grid .food-photo-main { display:block; width:100%; height:100%; object-position:58% center; }
    .search-hero::after { background: linear-gradient(180deg, rgba(23,9,14,.8) 0%, rgba(29,10,17,.76) 55%, rgba(25,9,15,.32) 100%); }
    .search-hero-content { width:100%; padding:28px 14px 24px; }
    .eyebrow { font-size:.64rem; letter-spacing:.11em; }
    .search-hero h1 { font-size:clamp(2.65rem,13vw,3.3rem); margin:.7rem 0 .5rem; }
    .search-hero-content > p { max-width:330px; font-size:.9rem; }
    .search-shell { margin:1.1rem 0 .85rem; }
    .finder { min-height:330px; padding:.65rem; border-radius:16px; }
    .location-fields { grid-template-columns:1fr; }
    .finder-field { padding:.55rem .65rem; }
    .finder-field > span:first-child { margin-left:1.45rem; }
    .step-heading h2 { font-size:1.4rem; }
    .price-option > span { min-height:62px; padding-left:1.95rem; }
    .price-option > span::before { left:.55rem; }
    .step-actions .find-button { min-height:48px; margin-top:0; }
    .quick-proof { width:max-content; max-width:100%; padding:.45rem .6rem; border-radius:999px; background:rgba(24,9,14,.72); font-size:.72rem; gap:.45rem; }
    .quick-proof i { width:12px; }
    .directory-section { padding:44px 0 78px; }
    .results-heading { align-items:start; }
    .result-count { font-size:.75rem; text-align:right; min-width:62px; }
    .result-count strong { display:block; }
    .price-scroller { margin:1.45rem -16px 1.6rem; padding:0 16px; }
    .vendor-grid { grid-template-columns:1fr; }
    .vendor-visual { height:190px; }
    .vendor-body { padding:1rem; }
    .empty-state { grid-template-columns:1fr; padding:.8rem .8rem 1.7rem; text-align:left; gap:1.5rem; }
    .empty-photo { width:100%; height:210px; }
    .empty-state > div:last-child { padding:0 .5rem; }
    .empty-actions { align-items:flex-start; gap:.8rem; }
    .how-section { padding-top:78px; padding-bottom:78px; }
    .steps { grid-template-columns:1fr; margin-top:2.2rem; }
    .steps article { min-height:220px; }
    .state-section { padding:70px 0; }
    .state-links { grid-template-columns:1fr; }
    .directory-footer { padding-top:48px; }
    .footer-links { grid-template-columns:1fr 1fr; gap:.8rem; }
}
@media (prefers-reduced-motion: reduce) { html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important} }
