/* Neo-brutalist coffee theme. Font: Space Grotesk (SIL OFL, Google Fonts). */
:root{--bg:#f4efe6;--ink:#1c120c;--muted:#4a3b30;--crema:#ffc94a;--pop:#ff7ab6;--mint:#7fd8c3;--card:#fff;--b:3px solid var(--ink);--sh:5px 5px 0 var(--ink);--r:14px}
*{box-sizing:border-box}
body{margin:0;font:17px/1.6 "Space Grotesk",system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--ink);text-decoration-thickness:2px;text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 6px var(--pop)}
.wrap{max-width:1040px;margin:0 auto;padding:0 18px}
header.site{background:var(--card);border-bottom:var(--b);position:sticky;top:0;z-index:5}
header.site .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;flex-wrap:wrap}
.logo{font-weight:700;text-decoration:none;font-size:1.25rem;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.logo::before{content:"";width:22px;height:22px;border-radius:50%;background:var(--crema);border:var(--b)}
.logo small{font-weight:500;font-size:.68rem;background:var(--pop);border:2px solid var(--ink);border-radius:99px;padding:1px 8px}
nav{display:flex;gap:6px}
nav a{text-decoration:none;font-weight:600;padding:6px 14px;border:2px solid transparent;border-radius:99px}
nav a:hover{border-color:var(--ink);background:var(--crema)}
.hero{padding:56px 0 36px;text-align:center}
.hero h1{font-size:clamp(2.3rem,8vw,4.6rem);line-height:1.02;letter-spacing:-.035em;margin:0 0 18px;font-weight:700}
.hero p{font-size:1.15rem;color:var(--muted);max-width:640px;margin:0 auto 14px}
.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;font-weight:700;padding:14px 24px;border:var(--b);border-radius:99px;transition:transform .12s,box-shadow .12s,background .12s}
.btn:hover{background:var(--pop);color:var(--ink);transform:translate(-3px,-3px);box-shadow:var(--sh)}
.hero a:not(.btn){font-weight:700}
main h2{font-size:clamp(1.6rem,4.5vw,2.4rem);letter-spacing:-.025em;line-height:1.1}
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.city{background:var(--card);border:var(--b);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .12s,box-shadow .12s}
a.city:hover{transform:translate(-4px,-4px);box-shadow:8px 8px 0 var(--ink)}
.city .ph{height:120px;border-bottom:var(--b)}
.grid>.city:nth-child(1) .ph{background:var(--crema)}.grid>.city:nth-child(2) .ph{background:var(--pop)}.grid>.city:nth-child(3) .ph{background:var(--mint)}.grid>.city:nth-child(4) .ph{background:#ffa66b}.grid>.city:nth-child(5) .ph{background:#c9b6ff}
.ph,.photo-ph{display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:.8rem;font-weight:600;text-align:center;padding:8px}
.city div.b{padding:12px 14px}.city h3{margin:0 0 6px;font-size:1.25rem}
.badge{font-size:.75rem;font-weight:700;padding:3px 10px;border-radius:99px;border:2px solid var(--ink);background:var(--mint)}.badge.soon{background:#fff}
.signup{background:var(--crema);border:var(--b);border-radius:var(--r);box-shadow:8px 8px 0 var(--ink);padding:28px;margin:48px 0}
.signup h2{margin-top:0}
.signup form{display:flex;gap:10px;flex-wrap:wrap}
.signup input{flex:1 1 220px;padding:14px 16px;border:var(--b);border-radius:99px;font:inherit;background:#fff}
.signup button{padding:14px 24px;border:var(--b);border-radius:99px;background:var(--ink);color:#fff;font:inherit;font-weight:700;cursor:pointer;transition:transform .12s,box-shadow .12s,background .12s}
.signup button:hover{background:var(--pop);color:var(--ink);transform:translate(-3px,-3px);box-shadow:var(--sh)}
.todo{font-size:.8rem;font-weight:600;margin-top:10px;background:#fff;border:2px dashed var(--ink);border-radius:8px;padding:6px 10px;display:inline-block}
.area h2{display:inline-block;background:var(--mint);border:var(--b);border-radius:12px;padding:6px 16px;font-size:clamp(1.05rem,3.5vw,1.4rem);margin:44px 0 6px;line-height:1.3}
.area:nth-of-type(2n) h2{background:var(--pop)}
.place{background:var(--card);border:var(--b);border-radius:var(--r);box-shadow:var(--sh);padding:16px 18px;margin:18px 0}
.place h3{margin:0 0 6px;font-size:1.2rem;letter-spacing:-.01em}.place p{margin:6px 0}
.place .order{color:var(--muted)}.addr{font-size:.88rem;color:var(--muted)}
.place a{display:inline-block;font-weight:700;border:2px solid var(--ink);border-radius:99px;padding:4px 14px;text-decoration:none;background:var(--crema)}
.place a:hover{background:var(--pop)}
.flag{display:inline-block;color:var(--ink);background:#ffd1d1;border:2px solid #9b1c1c;border-radius:8px;padding:2px 8px;font-size:.85rem;font-weight:700}
.sponsored{border:3px dashed var(--ink);border-radius:var(--r);padding:18px;margin:36px 0;background:repeating-linear-gradient(-45deg,#fff,#fff 14px,#fbf3e2 14px,#fbf3e2 28px)}
.sponsored .lbl{display:inline-block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;background:var(--ink);color:#fff;border-radius:99px;padding:3px 12px}
.note{font-size:.92rem;text-align:left;background:#fff;border:var(--b);border-radius:var(--r);padding:14px 16px;max-width:760px;margin:18px auto 0}
.photo-ph{height:200px;border:var(--b);border-radius:var(--r);margin:12px 0;background:var(--crema)}
main ul{padding-left:1.2em}main li{margin:6px 0}
footer{background:var(--ink);color:#f4efe6;margin-top:64px;padding:32px 0;font-size:.9rem}
footer a{color:var(--crema)}
@media (max-width:480px){.hero{padding:36px 0 24px}.signup{padding:20px;box-shadow:5px 5px 0 var(--ink)}nav a{padding:6px 10px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media (min-width:820px){.area{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;align-items:start}.area h2{grid-column:1/-1;justify-self:start}}
@media (max-width:480px){.grid{grid-template-columns:1fr 1fr;gap:12px}.city .ph{height:84px}}
