/* ════════════════════════════════════════════
   UNA MESA · App del comensal — design system
   Cream/coral + neutral dark mode
   ════════════════════════════════════════════ */
:root,[data-theme="crema"]{
  --bg:#FAF6F0; --bg-2:#FFFFFF; --bg-3:#F4ECE0; --panel:#FFFDFB;
  --line:rgba(26,22,18,.12); --line-2:rgba(26,22,18,.06);
  --text:#1A1411; --muted:#6E635A; --dim:#A99D8F;
  --accent:#D8552E; --accent-2:#E5764F; --accent-soft:rgba(216,85,46,.10); --accent-line:rgba(216,85,46,.30);
  --on-accent:#FFF6EF; --glow:rgba(216,85,46,.16); --glow-2:rgba(216,85,46,.06);
  --ok:#1E9E6A; --ok-soft:rgba(30,158,106,.13); --warn:#C8810E; --warn-soft:rgba(200,129,14,.14);
  --bad:#CC4436; --bad-soft:rgba(204,68,54,.12);
  --gold:#C9A84C;
  --card-grad:linear-gradient(160deg,#FFFFFF,#FBF5EC);
  --shadow-sm:0 2px 10px rgba(80,50,20,.06);
  --shadow:0 14px 36px rgba(80,50,20,.10);
  --shadow-lg:0 26px 64px rgba(80,50,20,.16);
}
[data-theme="noche"]{
  --bg:#0A0A0A; --bg-2:#151515; --bg-3:#1F1F1F; --panel:#121212;
  --line:rgba(255,255,255,.12); --line-2:rgba(255,255,255,.06);
  --text:#F4EFE6; --muted:#A7A29A; --dim:#6B6760;
  --accent:#E5764F; --accent-2:#F08A63; --accent-soft:rgba(229,118,79,.16); --accent-line:rgba(229,118,79,.34);
  --on-accent:#1A0E08; --glow:rgba(229,118,79,.22); --glow-2:rgba(229,118,79,.08);
  --ok:#2ECC8F; --ok-soft:rgba(46,204,143,.16); --warn:#EFAE47; --warn-soft:rgba(239,174,71,.16);
  --bad:#FF6A5A; --bad-soft:rgba(255,106,90,.16);
  --gold:#D8B85E;
  --card-grad:linear-gradient(160deg,#161616,#1E1E1E);
  --shadow-sm:0 2px 10px rgba(0,0,0,.4);
  --shadow:0 14px 36px rgba(0,0,0,.5);
  --shadow-lg:0 26px 64px rgba(0,0,0,.6);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Manrope',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--bg); color:var(--text); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
/* smooth, glitch-free theme switch: one uniform crossfade applied only during the toggle */
html.theme-transition, html.theme-transition *, html.theme-transition *::before, html.theme-transition *::after{
  transition: background-color .34s ease, border-color .34s ease, color .34s ease, fill .34s ease, box-shadow .34s ease !important;
}
::selection{background:var(--accent-soft); color:var(--accent)}
a{color:inherit; text-decoration:none}
button{font-family:inherit; cursor:pointer}
img{max-width:100%; display:block}
.display{font-family:'Manrope',sans-serif; font-weight:800; letter-spacing:-.03em; line-height:1.02}
.serif{font-family:'DM Serif Display',Georgia,serif; font-weight:400}
input,select,textarea{font-family:inherit}

/* scrollbar */
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px;border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:var(--dim)}

/* ── layout ── */
.app{min-height:100vh;display:flex;flex-direction:column}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px;width:100%}
.view{flex:1;animation:viewin .4s cubic-bezier(.22,.61,.36,1)}
@keyframes viewin{from{transform:translateY(10px)}to{transform:none}}
/* page-wide entrance animations — global JS reveal, live-query safety (re-render & hidden-tab safe) */
.anim{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1)}
.anim.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){ .anim{opacity:1!important;transform:none!important;transition:none!important} }
.hl{color:var(--accent)}
.muted{color:var(--muted)}

/* ── buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:15px;
  padding:12px 22px;border-radius:100px;border:1px solid transparent;transition:transform .16s ease,background .16s,border-color .16s,box-shadow .16s;white-space:nowrap}
.btn:active{transform:scale(.97)}
.btn-acc{background:var(--accent);color:var(--on-accent)}
.btn-acc:hover{transform:translateY(-2px);box-shadow:0 10px 26px var(--glow)}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--line)}
.btn-ghost:hover{background:var(--bg-3);border-color:var(--accent-line);transform:translateY(-2px)}
.btn-soft{background:var(--accent-soft);color:var(--accent)}
.btn-soft:hover{background:var(--accent);color:var(--on-accent)}
.btn-sm{padding:9px 16px;font-size:13.5px}
.btn-lg{padding:15px 28px;font-size:16px}
.btn-block{width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

/* ── chips / tags ── */
.chip{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--text);
  background:var(--bg-2);border:1px solid var(--line);border-radius:100px;padding:8px 15px;cursor:pointer;transition:all .15s;white-space:nowrap}
.chip:hover{border-color:var(--accent-line)}
.chip.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.chip svg{width:15px;height:15px}
.tagpill{font-size:11.5px;font-weight:600;color:var(--muted);background:var(--bg-3);border-radius:100px;padding:4px 10px;white-space:nowrap}

/* ── header ── */
.hdr{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--bg) 86%,transparent);
  backdrop-filter:blur(16px);border-bottom:1px solid var(--line-2)}
.hdr-in{display:flex;align-items:center;gap:18px;height:68px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;letter-spacing:-.02em;cursor:pointer;flex:none}
.brand .mk{width:32px;height:32px;border-radius:9px;flex:none;position:relative;background:var(--accent);display:grid;place-items:center;box-shadow:0 4px 14px var(--glow)}
.brand .mk::before{content:"";position:absolute;left:8px;right:8px;top:9px;height:3px;border-radius:2px;background:var(--on-accent)}
.brand .mk::after{content:"";position:absolute;left:8px;right:8px;bottom:8px;top:15px;border:2.5px solid var(--on-accent);border-top:none;border-radius:0 0 7px 7px}
.brand b{font-weight:800}.brand b span{color:var(--accent)}
/* nav search — collapsed by default, slides in on scroll (when hero search leaves) */
.hdr-search{flex:0 1 380px;max-width:0;display:flex;align-items:center;gap:9px;background:var(--bg-2);border:1px solid transparent;
  border-radius:100px;padding:9px 0;cursor:text;opacity:0;transform:translateY(-8px);pointer-events:none;overflow:hidden;
  transition:max-width .4s cubic-bezier(.22,.61,.36,1),opacity .3s ease,transform .35s cubic-bezier(.22,.61,.36,1),padding .4s ease,border-color .3s ease}
.hdr-search.show{max-width:380px;padding:9px 16px;opacity:1;transform:none;pointer-events:auto;border-color:var(--line)}
.hdr-search.show:hover,.hdr-search.show:focus-within{border-color:var(--accent-line)}
.hdr-search svg{width:17px;height:17px;color:var(--muted);flex:none}
.hdr-search input{flex:1;border:none;background:none;color:var(--text);font-size:14.5px;outline:none}
.hdr-search input::placeholder{color:var(--dim)}
.hdr-nav{display:flex;align-items:center;gap:8px;margin-left:auto;flex:none}
.hdr-link{font-size:14.5px;font-weight:600;color:var(--muted);padding:8px 12px;border-radius:9px;transition:color .15s}
.hdr-link:hover{color:var(--text)}
.icon-btn{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:transparent;border:1px solid var(--line);color:var(--text);transition:all .15s}
.icon-btn:hover{border-color:var(--accent-line);color:var(--accent)}
.icon-btn svg{width:18px;height:18px}
.avatar-btn{display:flex;align-items:center;gap:9px;padding:6px 14px 6px 6px;border-radius:100px;background:var(--bg-2);border:1px solid var(--line);transition:all .15s}
.avatar-btn:hover{border-color:var(--accent-line)}
.avatar-btn .av{width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-weight:800;font-size:13px;flex:none}
.avatar-btn .nm{font-size:13.5px;font-weight:700}

/* ── mobile menu button ── */
.hdr-burger{display:none}

/* ── footer ── */
.foot{border-top:1px solid var(--line-2);padding:30px 0;margin-top:60px}
.foot-in{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13.5px;color:var(--dim)}
.foot-in a{color:var(--muted)}.foot-in a:hover{color:var(--text)}
.foot-links{display:flex;gap:18px;flex-wrap:wrap}

/* ── placeholder art (restaurant photo stand-in) ── */
.photo{position:relative;overflow:hidden;background:var(--bg-3);isolation:isolate}
.photo .ph-art{position:absolute;inset:0;display:grid;place-items:center}
.photo .ph-art svg{width:34%;height:34%;opacity:.5;color:#fff;mix-blend-mode:overlay}
.photo .ph-grain{position:absolute;inset:0;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.18) 1px,transparent 1px);background-size:14px 14px}
.photo image-slot{position:absolute;inset:0;width:100%;height:100%}

/* ── generic card ── */
.card{background:var(--card-grad);border:1px solid var(--line);border-radius:18px;transition:transform .22s ease,border-color .22s,box-shadow .22s}
.eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}

/* ════ HOME ════ */
.home-hero{position:relative;overflow:hidden;padding:64px 0 54px}
.home-hero .blob{position:absolute;border-radius:50%;filter:blur(80px);z-index:0;pointer-events:none}
.home-hero .b1{width:520px;height:520px;top:-180px;right:-120px;background:radial-gradient(circle,var(--glow),transparent 65%)}
.home-hero .b2{width:420px;height:420px;bottom:-200px;left:-140px;background:radial-gradient(circle,var(--glow-2),transparent 65%)}
.home-hero-in{position:relative;z-index:2;max-width:760px}
/* decorative blurred "set table" art behind hero */
.hero-art{position:absolute;top:50%;right:-40px;transform:translateY(-50%);width:min(620px,58%);z-index:1;
  pointer-events:none;filter:blur(2px);opacity:.16;
  -webkit-mask-image:radial-gradient(ellipse 75% 75% at 70% 50%,#000 30%,transparent 78%);
  mask-image:radial-gradient(ellipse 75% 75% at 70% 50%,#000 30%,transparent 78%)}
.hero-art svg{width:100%;height:auto;display:block}
.hero-art .ha-stroke{stroke:var(--accent);stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.hero-art .ha-fill{stroke:var(--accent);stroke-width:1.6;fill:color-mix(in srgb,var(--accent) 22%,transparent)}
.hero-art .ha-steam{stroke:var(--accent);stroke-width:2;fill:none;stroke-linecap:round;opacity:.7}
[data-theme="noche"] .hero-art{opacity:.2}
@media(max-width:720px){.hero-art{opacity:.1;right:-120px}}
.home-hero h1{font-size:clamp(38px,5.4vw,62px);line-height:1.0;letter-spacing:-.035em;margin:14px 0 16px}
.home-hero p.lede{font-size:clamp(16px,1.7vw,19px);color:var(--muted);max-width:560px;margin-bottom:28px}
.bigsearch{display:flex;align-items:center;gap:10px;background:var(--bg-2);border:1px solid var(--line);border-radius:16px;
  padding:8px 8px 8px 18px;box-shadow:var(--shadow);max-width:620px}
.bigsearch svg.lupa{width:20px;height:20px;color:var(--muted);flex:none}
.bigsearch input{flex:1;border:none;background:none;outline:none;font-size:16px;color:var(--text);padding:10px 0}
.bigsearch input::placeholder{color:var(--dim)}
.bigsearch .btn{flex:none}
.home-chips{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.loc-bar{display:flex;align-items:center;gap:9px;margin-top:18px;font-size:14px;color:var(--muted);
  background:var(--bg-2);border:1px solid var(--line);border-radius:100px;padding:9px 16px;max-width:560px}
.loc-bar svg{width:16px;height:16px;color:var(--accent);flex:none}
.loc-bar.ok b{color:var(--text);font-weight:700}
.loc-bar .loc-change{margin-left:auto;background:none;border:none;color:var(--accent);font-weight:700;font-size:13px;cursor:pointer}
.loc-bar.ask input{flex:1;border:none;background:none;outline:none;font-size:14px;color:var(--text)}
.loc-bar.ask input::placeholder{color:var(--dim)}
.pref-chips{display:flex;flex-wrap:wrap;gap:8px}
.pref-chips .chip{font-size:13px;padding:7px 13px}
.home-meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:30px}
.home-meta .m{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);font-weight:500}
.home-meta .d{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}

.section{padding:46px 0}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}
.sec-head h2{font-size:clamp(24px,3vw,32px);letter-spacing:-.025em;line-height:1.1}
.sec-head .lnk{font-size:14px;font-weight:700;color:var(--accent);display:inline-flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap}
.sec-head .lnk svg{width:15px;height:15px}

/* explore categories */
.cats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.cat-wrap{display:flex;flex-direction:column;gap:8px;cursor:pointer}
.cat-wrap:hover .cat{transform:translateY(-3px);border-color:var(--accent-line);box-shadow:var(--shadow-sm)}
.cat-wrap:hover .cn{color:var(--accent)}
.cat{position:relative;display:flex;align-items:center;justify-content:center;
  min-height:96px;border-radius:16px;background:var(--bg-2);overflow:hidden;
  border:1px solid var(--line);transition:all .18s;text-align:center}
.cat > image-slot{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.cat-body{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:10px}
/* scrim appears only when a photo has been dropped (slot gets a child img/canvas) */
.cat::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .2s;
  background:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,.15) 60%,rgba(0,0,0,.2))}
.cat:has(image-slot img)::after,.cat:has(image-slot canvas)::after{opacity:1}
.cat:has(image-slot img) .ci,.cat:has(image-slot canvas) .ci{background:rgba(255,255,255,.16);color:#fff;backdrop-filter:blur(3px)}
.cat .ci{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.cat .ci svg{width:23px;height:23px}
.cn{font-size:13.5px;font-weight:700;text-align:center;color:var(--text);transition:color .15s}

/* restaurant card */
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rgrid.g4{grid-template-columns:repeat(4,1fr)}
.rcard{background:var(--card-grad);border:1px solid var(--line);border-radius:18px;overflow:hidden;cursor:pointer;
  transition:transform .22s ease,border-color .22s,box-shadow .22s;display:flex;flex-direction:column}
.rcard:hover{transform:translateY(-4px);border-color:var(--accent-line);box-shadow:var(--shadow)}
.rcard .rc-photo{height:172px;position:relative}
.rc-photo .photo{position:absolute;inset:0;height:100%;width:100%}
.rcard .rc-fav{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(6px);border:1px solid var(--line-2);color:var(--text);z-index:3;transition:all .15s}
.rcard .rc-fav:hover{transform:scale(1.1)}
.rcard .rc-fav svg{width:17px;height:17px}
.rcard .rc-fav.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.rcard .rc-match{position:absolute;top:12px;left:12px;z-index:3;font-size:11.5px;font-weight:800;color:var(--on-accent);
  background:var(--accent);padding:5px 10px;border-radius:100px;display:inline-flex;align-items:center;gap:5px;box-shadow:var(--shadow-sm)}
.rcard .rc-match svg{width:12px;height:12px}
.rc-body{padding:16px 17px 17px;display:flex;flex-direction:column;gap:7px;flex:1}
.rc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.rc-name{font-size:17px;font-weight:800;letter-spacing:-.01em;line-height:1.2}
.rc-rating{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:700;flex:none}
.rc-rating svg{width:14px;height:14px;color:var(--gold)}
.rc-rating .cnt{color:var(--dim);font-weight:500;font-size:12px}
.rc-meta{font-size:13.5px;color:var(--muted)}
.rc-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.rc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:12px}
.rc-times{display:flex;gap:6px;flex-wrap:wrap}
.tslot{font-size:12.5px;font-weight:700;padding:5px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg-2);color:var(--text);transition:all .14s;cursor:pointer}
.tslot:hover{border-color:var(--accent);color:var(--accent)}
.tslot.few{border-color:var(--warn-soft);color:var(--warn)}
.tslot.full{opacity:.4;text-decoration:line-through;cursor:not-allowed}
.tslot.full:hover{border-color:var(--line);color:inherit}

/* AI strip on home/results */
.aibanner{background:linear-gradient(135deg,var(--accent-soft),transparent 70%);border:1px solid var(--accent-line);
  border-radius:20px;padding:24px 26px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.aibanner .ai-ico{width:50px;height:50px;border-radius:14px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;flex:none}
.aibanner .ai-ico svg{width:26px;height:26px}
.aibanner .ai-tx{flex:1;min-width:240px}
.aibanner .ai-tx h3{font-size:19px;font-weight:800;letter-spacing:-.01em;margin-bottom:3px}
.aibanner .ai-tx p{font-size:14px;color:var(--muted)}
.aibanner .ai-form{display:flex;align-items:center;gap:9px;background:var(--bg-2);border:1px solid var(--line);
  border-radius:100px;padding:7px 7px 7px 16px;flex:1;min-width:260px}
.aibanner .ai-form svg{width:18px;height:18px;color:var(--accent);flex:none}
.aibanner .ai-form input{flex:1;border:none;background:none;outline:none;font-size:14.5px;color:var(--text)}
.aibanner .ai-form input::placeholder{color:var(--dim)}

/* ════ CONSERJE IA (chat) ════ */
.cc-wrap{max-width:860px;padding-top:30px}
.cc-head{margin-bottom:22px}
.cc-head h1{font-size:clamp(28px,4vw,42px);letter-spacing:-.03em;line-height:1.04;margin:12px 0 10px}
.cc-head p{font-size:16px;max-width:560px}
.cc-panel{background:var(--card-grad);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;overflow:hidden}
.cc-scroll{padding:24px;display:flex;flex-direction:column;gap:18px;max-height:60vh;min-height:320px;overflow-y:auto;scroll-behavior:smooth}
.cc-msg{display:flex;gap:11px;align-items:flex-start;opacity:1;animation:ccIn .42s cubic-bezier(.22,.61,.36,1)}
.cc-msg.me{flex-direction:row-reverse}
@keyframes ccIn{from{transform:translateY(12px)}to{transform:none}}
.cc-ava{width:34px;height:34px;border-radius:10px;flex:none;background:var(--accent);color:var(--on-accent);
  display:grid;place-items:center;box-shadow:0 4px 14px var(--glow)}
.cc-ava svg{width:18px;height:18px}
.cc-ai-col{display:flex;flex-direction:column;gap:14px;min-width:0;flex:1}
.cc-bub{max-width:80%;padding:13px 16px;border-radius:16px;font-size:14.5px;line-height:1.55}
.cc-msg.ai .cc-bub{background:var(--bg-3);border:1px solid var(--line-2);border-bottom-left-radius:5px;color:var(--text)}
.cc-msg.me .cc-bub{background:var(--accent);color:var(--on-accent);border-bottom-right-radius:5px;font-weight:600;margin-left:auto}
.cc-bub.thinking{display:inline-flex;gap:5px;align-items:center;padding:15px 16px}
.tdot{width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.5;animation:tbounce 1.1s infinite ease-in-out}
.tdot:nth-child(2){animation-delay:.16s}.tdot:nth-child(3){animation-delay:.32s}
@keyframes tbounce{0%,80%,100%{transform:translateY(0);opacity:.4}40%{transform:translateY(-6px);opacity:1}}
@media (prefers-reduced-motion: reduce){ .cc-msg,.cc-card-wrap{animation:none} }
.cc-results{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cc-card-wrap{display:flex;flex-direction:column}
.cc-card-wrap .rcard{flex:1}
.cc-book{width:100%;margin-top:8px;justify-content:center;gap:8px}
.cc-book svg{width:16px;height:16px}
.cc-card-wrap{opacity:1;animation:ccCard .5s cubic-bezier(.22,.61,.36,1)}
@keyframes ccCard{from{transform:translateY(16px) scale(.98)}to{transform:none}}
.cc-examples{display:flex;gap:8px;flex-wrap:wrap;padding:0 24px 4px}
.cc-examples .chip{font-size:13px}
.cc-input{display:flex;align-items:center;gap:10px;padding:16px 24px 22px;border-top:1px solid var(--line-2);margin-top:6px}
.cc-input>svg{width:20px;height:20px;color:var(--accent);flex:none}
.cc-input input{flex:1;border:none;background:none;outline:none;font-size:15.5px;color:var(--text)}
.cc-input input::placeholder{color:var(--dim)}
.cc-input input:disabled{opacity:.6}
@media(max-width:560px){ .cc-results{grid-template-columns:1fr} .cc-bub{max-width:88%} }

/* ════ RESULTS ════ */
.results-top{padding:24px 0 8px}
.results-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.results-bar h1{font-size:clamp(22px,3vw,30px);letter-spacing:-.02em}
.results-bar .count{color:var(--muted);font-size:14.5px;font-weight:600}
.results-layout{display:grid;grid-template-columns:240px 1fr 360px;gap:22px;align-items:start}
.filters{position:sticky;top:84px;display:flex;flex-direction:column;gap:22px}
.fgroup h4{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:12px}
.fopts{display:flex;flex-direction:column;gap:9px}
.fopt{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--text);cursor:pointer}
.fopt .box{width:18px;height:18px;border-radius:6px;border:1.5px solid var(--line);display:grid;place-items:center;transition:all .15s;flex:none}
.fopt .box svg{width:12px;height:12px;color:var(--on-accent);opacity:0}
.fopt.on .box{background:var(--accent);border-color:var(--accent)}
.fopt.on .box svg{opacity:1}
.fchips{display:flex;flex-wrap:wrap;gap:8px}
.results-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.sortbar{display:flex;align-items:center;gap:10px;margin-left:auto}
.sortbar select{background:var(--bg-2);border:1px solid var(--line);border-radius:9px;padding:8px 12px;font-size:13.5px;font-weight:600;color:var(--text);outline:none;cursor:pointer}

/* map */
.mappanel{position:sticky;top:84px;height:calc(100vh - 108px);min-height:480px;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--bg-3)}
.map{position:absolute;inset:0}
.map-bg{position:absolute;inset:0;background:
  linear-gradient(var(--line-2) 1px,transparent 1px),
  linear-gradient(90deg,var(--line-2) 1px,transparent 1px);
  background-size:48px 48px}
.map-water{position:absolute;border-radius:40% 60% 55% 45%;background:color-mix(in srgb,var(--accent) 7%,var(--bg-3));opacity:.9}
.map-road{position:absolute;background:var(--line);opacity:.6}
.pin{position:absolute;transform:translate(-50%,-100%);z-index:2;cursor:pointer;transition:transform .15s}
.pin:hover,.pin.on{z-index:5}
.pin .dot{width:30px;height:30px;border-radius:50% 50% 50% 2px;transform:rotate(45deg);background:var(--accent);
  border:2px solid var(--bg-2);box-shadow:var(--shadow-sm);display:grid;place-items:center}
.pin .dot b{transform:rotate(-45deg);color:var(--on-accent);font-size:11px;font-weight:800}
.pin.on .dot,.pin:hover .dot{background:var(--text);transform:rotate(45deg) scale(1.12)}
.pin .tip{position:absolute;bottom:120%;left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);
  font-size:12px;font-weight:700;padding:6px 11px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s}
.pin:hover .tip,.pin.on .tip{opacity:1}
.map-note{position:absolute;bottom:12px;left:12px;font-size:11px;color:var(--dim);background:color-mix(in srgb,var(--bg) 80%,transparent);padding:5px 10px;border-radius:7px}

/* ════ DETAIL ════ */
.detail-hero{position:relative}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:380px;border-radius:20px;overflow:hidden}
.gallery .g-main{grid-row:1/3}
.gallery .photo{height:100%}
.detail-back{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:700;color:var(--muted);margin:18px 0;cursor:pointer}
.detail-back:hover{color:var(--text)}
.detail-back svg{width:16px;height:16px}
.detail-layout{display:grid;grid-template-columns:1fr 380px;gap:36px;align-items:start;margin-top:26px}
.detail-main{min-width:0}
.detail-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.detail-title h1{font-size:clamp(28px,4vw,42px);letter-spacing:-.03em;line-height:1.05}
.detail-sub{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:15px}
.detail-sub .rt{display:inline-flex;align-items:center;gap:5px;font-weight:800;color:var(--text)}
.detail-sub .rt svg{width:16px;height:16px;color:var(--gold)}
.dot-sep{width:3px;height:3px;border-radius:50%;background:var(--dim)}
.detail-tags{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
.detail-block{padding:26px 0;border-top:1px solid var(--line-2)}
.detail-block h3{font-size:20px;font-weight:800;letter-spacing:-.01em;margin-bottom:14px}
.detail-block p.about{color:var(--muted);font-size:15.5px;line-height:1.65;max-width:640px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.info-item{display:flex;gap:11px;align-items:flex-start;font-size:14.5px}
.info-item svg{width:18px;height:18px;color:var(--accent);flex:none;margin-top:2px}
.info-item .k{color:var(--dim);font-size:12.5px;font-weight:600}
.info-item .v{color:var(--text);font-weight:600}
/* menu */
.menu-sec{margin-bottom:22px}
.menu-sec h4{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.menu-item{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px dashed var(--line-2)}
.menu-item .mi-l .mn{font-weight:700;font-size:15px}
.menu-item .mi-l .md{font-size:13px;color:var(--muted);margin-top:2px}
.menu-item .mp{font-weight:800;color:var(--accent);white-space:nowrap}
/* reviews */
.rev-summary{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:20px}
.rev-big{font-size:52px;font-weight:800;letter-spacing:-.03em;line-height:1}
.rev-stars svg{width:18px;height:18px;color:var(--gold)}
.rev-card{padding:18px 0;border-top:1px solid var(--line-2)}
.rev-head{display:flex;align-items:center;gap:11px;margin-bottom:9px}
.rev-av{width:38px;height:38px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:800;font-size:14px;flex:none}
.rev-name{font-weight:700;font-size:14.5px}
.rev-date{font-size:12.5px;color:var(--dim)}
.rev-stars-sm{margin-left:auto;display:flex;gap:1px}
.rev-stars-sm svg{width:13px;height:13px;color:var(--gold)}
.rev-text{font-size:14.5px;color:var(--muted);line-height:1.6}

/* booking widget (sticky on detail) */
.book-widget{position:sticky;top:84px;background:var(--card-grad);border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow)}
.book-widget .bw-price{font-size:14px;color:var(--muted);margin-bottom:16px}
.book-widget .bw-price b{color:var(--text);font-weight:800;font-size:19px}
.bw-row{display:flex;gap:10px;margin-bottom:12px}
.bw-field{flex:1;background:var(--bg-2);border:1px solid var(--line);border-radius:11px;padding:10px 13px;cursor:pointer;transition:border-color .15s}
.bw-field:hover{border-color:var(--accent-line)}
.bw-field .bf-k{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.bw-field .bf-v{font-size:14.5px;font-weight:700;margin-top:2px;display:flex;align-items:center;justify-content:space-between;gap:6px}
.bw-field .bf-v svg{width:14px;height:14px;color:var(--muted)}
.bw-times{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}
.bw-dep{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted);background:var(--ok-soft);border:1px solid color-mix(in srgb,var(--ok) 26%,transparent);border-radius:11px;padding:11px 13px;margin-bottom:14px}
.bw-dep svg{width:17px;height:17px;color:var(--ok);flex:none}

/* info tooltip junto al subtítulo del depósito */
.dep-sub{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap}
.info-tip{position:relative;display:inline-flex;align-items:center;cursor:help;color:var(--accent);outline:none}
.info-tip svg{width:16px;height:16px}
.info-pop{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(4px);
  width:260px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);
  padding:13px 15px;font-size:13px;line-height:1.5;color:var(--muted);font-weight:500;
  opacity:0;visibility:hidden;transition:opacity .18s ease,transform .18s ease;z-index:30;text-align:left}
.info-pop b{color:var(--text);font-weight:700}
.info-pop b:first-child{display:block;margin-bottom:3px}
.info-pop::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:6px solid transparent;border-top-color:var(--bg-2)}
.info-tip:hover .info-pop,.info-tip:focus .info-pop,.info-tip:focus-within .info-pop{opacity:1;visibility:visible;transform:translateX(-50%)}
@media(max-width:520px){.info-pop{left:0;transform:none;width:230px}.info-tip:hover .info-pop,.info-tip:focus .info-pop{transform:none}.info-pop::after{left:18px}}

/* ════ reservation auth gate (conversion flow) ════ */
.rb-head{text-align:center;margin-bottom:20px}
.rb-badge{width:54px;height:54px;border-radius:16px;margin:0 auto 14px;display:grid;place-items:center;position:relative;
  background:linear-gradient(150deg,var(--gold),#b8923a);color:#2a2008;box-shadow:0 8px 22px color-mix(in srgb,var(--gold) 36%,transparent)}
.rb-badge svg{width:27px;height:27px}
.rb-badge.big{width:64px;height:64px;border-radius:18px}
.rb-badge.big svg{width:32px;height:32px}
.rb-badge .rb-25{position:absolute;right:-8px;bottom:-8px;background:var(--accent);color:var(--on-accent);
  font-size:12px;font-weight:800;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--bg-2)}
.rb-head h2{font-size:23px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.rb-list{list-style:none;display:flex;flex-direction:column;gap:11px;margin:0 0 22px;
  background:var(--bg-3);border:1px solid var(--line-2);border-radius:14px;padding:16px 16px}
.rb-row{display:flex;align-items:flex-start;gap:11px;font-size:14.5px;color:var(--text);line-height:1.4}
.rb-ck{width:21px;height:21px;border-radius:50%;flex:none;display:grid;place-items:center;margin-top:1px;
  background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}
.rb-ck svg{width:13px;height:13px}
.rb-tx{flex:1;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.rb-spoon{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;flex:none;
  background:color-mix(in srgb,var(--gold) 18%,transparent);color:var(--gold)}
.rb-spoon svg{width:13px;height:13px}
.rb-foot{text-align:center;font-size:13.5px;color:var(--muted);margin-top:16px}
.rb-link{background:none;border:none;color:var(--accent);font-weight:700;font-size:13.5px;cursor:pointer;padding:0}
.rb-link:hover{text-decoration:underline}
.rb-back{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--muted);
  font-weight:700;font-size:13.5px;cursor:pointer;padding:0;margin-bottom:14px}
.rb-back svg{width:15px;height:15px}
.rb-back:hover{color:var(--text)}
.rb-email-chip{display:flex;align-items:center;gap:9px;justify-content:center;font-size:14px;font-weight:600;color:var(--text);
  background:var(--bg-3);border:1px solid var(--line);border-radius:11px;padding:11px;margin-bottom:18px}
.rb-email-chip svg{width:16px;height:16px;color:var(--accent)}

/* reserva en espera · temporizador 6:00 */
.hold-timer{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text);
  background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:12px;
  padding:11px 14px;margin-bottom:16px;animation:holdIn .4s cubic-bezier(.22,.61,.36,1)}
@keyframes holdIn{from{transform:translateY(-6px)}to{transform:none}}
.hold-timer svg{width:18px;height:18px;color:var(--accent);flex:none}
.hold-timer .hold-count{font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent);
  background:var(--bg-2);border:1px solid var(--accent-line);border-radius:7px;padding:1px 7px;margin:0 1px;display:inline-block}
.hold-timer.low{border-color:color-mix(in srgb,var(--warn) 50%,transparent);background:var(--warn-soft)}
.hold-timer.low svg,.hold-timer.low .hold-count{color:var(--warn)}
.hold-timer.low .hold-count{border-color:color-mix(in srgb,var(--warn) 45%,transparent);animation:holdPulse 1s ease-in-out infinite}
@keyframes holdPulse{0%,100%{opacity:1}50%{opacity:.55}}
.hold-timer.expired{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 45%,transparent);flex-wrap:wrap}
.hold-timer.expired svg{color:var(--bad)}
.hold-retry{margin-left:auto;background:var(--bad);color:#fff;border:none;border-radius:8px;
  padding:7px 14px;font-weight:700;font-size:13px;cursor:pointer}

/* ════ BOOKING FLOW ════ */
.booking{max-width:680px;margin:0 auto;padding:30px 0 60px}
.steps-head{display:flex;align-items:center;gap:8px;margin-bottom:30px}
.step-pip{flex:1;height:5px;border-radius:4px;background:var(--line);overflow:hidden}
.step-pip i{display:block;height:100%;width:0;background:var(--accent);transition:width .35s ease}
.step-pip.done i,.step-pip.on i{width:100%}
.bk-card{background:var(--card-grad);border:1px solid var(--line);border-radius:22px;padding:32px;box-shadow:var(--shadow)}
.bk-rest{display:flex;align-items:center;gap:14px;padding-bottom:20px;margin-bottom:22px;border-bottom:1px solid var(--line-2)}
.bk-rest .photo{width:64px;height:64px;border-radius:13px;flex:none}
.bk-rest .bn{font-size:18px;font-weight:800}
.bk-rest .bm{font-size:13.5px;color:var(--muted)}
.bk-h{font-size:23px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.bk-sub{color:var(--muted);font-size:14.5px;margin-bottom:22px}
.daygrid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.daycell{aspect-ratio:1;border-radius:11px;border:1px solid var(--line);background:var(--bg-2);display:flex;flex-direction:column;
  align-items:center;justify-content:center;cursor:pointer;transition:all .14s;gap:1px}
.daycell .dn{font-size:15px;font-weight:700}
.daycell .dw{font-size:10px;color:var(--dim);text-transform:uppercase;letter-spacing:.05em}
.daycell:hover{border-color:var(--accent-line)}
.daycell.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.daycell.on .dw{color:var(--on-accent)}
.daycell.dis{opacity:.32;cursor:not-allowed}
.dow-row{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-bottom:8px}
.dow-row span{text-align:center;font-size:11px;font-weight:700;color:var(--dim);text-transform:uppercase}
.timegrid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.timecell{padding:13px 0;text-align:center;border-radius:11px;border:1px solid var(--line);background:var(--bg-2);color:var(--text);font-weight:700;font-size:15px;cursor:pointer;transition:all .14s;position:relative}
.timecell:hover{border-color:var(--accent-line)}
.timecell.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.timecell .tag{display:block;font-size:10px;font-weight:700;margin-top:2px;color:var(--warn)}
.timecell.on .tag{color:var(--on-accent)}
.timecell.full{opacity:.35;cursor:not-allowed;text-decoration:line-through}
.partyrow{display:flex;align-items:center;justify-content:center;gap:20px;padding:20px 0}
.party-btn{width:52px;height:52px;border-radius:50%;border:1.5px solid var(--line);background:var(--bg-2);font-size:24px;font-weight:700;color:var(--text);display:grid;place-items:center;transition:all .14s}
.party-btn:hover{border-color:var(--accent);color:var(--accent)}
.party-n{font-size:54px;font-weight:800;letter-spacing:-.03em;min-width:90px;text-align:center}
.party-lbl{text-align:center;color:var(--muted);font-size:14px}
.dep-box{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:22px;margin:8px 0 20px}
.dep-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;font-size:14.5px}
.dep-row.total{border-top:1px solid var(--line-2);margin-top:6px;padding-top:14px;font-weight:800;font-size:17px}
.dep-row .amt{font-weight:800;color:var(--accent)}
.pay-methods{display:flex;gap:10px;margin:16px 0}
.pay-m{flex:1;padding:13px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg-2);color:var(--text);display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:14px;cursor:pointer;transition:all .14s}
.pay-m svg{width:18px;height:18px;color:var(--muted)}
.pay-m.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.pay-m.on svg{color:var(--accent)}
.confirm-ico{width:80px;height:80px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;margin:0 auto 22px}
.confirm-ico svg{width:40px;height:40px}
.confirm-card{text-align:center}
.confirm-card h2{font-size:30px;font-weight:800;letter-spacing:-.02em;margin-bottom:10px}
.confirm-detail{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:20px;margin:24px 0;text-align:left}
.cd-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;font-size:14.5px}
.cd-row .k{color:var(--muted)}
.cd-row .v{font-weight:700}
.bk-actions{display:flex;gap:12px;margin-top:26px}

/* ════ PROFILE ════ */
.prof-hero{display:flex;align-items:center;gap:20px;padding:30px 0;flex-wrap:wrap}
.prof-av{width:78px;height:78px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-size:30px;font-weight:800;flex:none}
.prof-name{font-size:26px;font-weight:800;letter-spacing:-.02em}
.prof-mail{color:var(--muted);font-size:14.5px}
.loyalty{margin-left:auto;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--on-accent);border-radius:18px;padding:18px 24px;min-width:220px;box-shadow:var(--shadow)}
.loyalty .ll{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.85}
.loyalty .lv{font-size:34px;font-weight:800;letter-spacing:-.02em;margin:2px 0}
.loyalty .lbar{height:7px;border-radius:4px;background:rgba(255,255,255,.3);overflow:hidden;margin-top:8px}
.loyalty .lbar i{display:block;height:100%;background:#fff;border-radius:4px}
.loyalty .lnext{font-size:12px;opacity:.9;margin-top:7px}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line-2);margin:18px 0 26px}
.tab{padding:12px 18px;font-size:14.5px;font-weight:700;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;transition:all .15s;margin-bottom:-1px}
.tab.on{color:var(--accent);border-bottom-color:var(--accent)}
.booking-row{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--bg-2);margin-bottom:12px}
.booking-row .photo{width:72px;height:72px;border-radius:13px;flex:none}
.booking-row .br-main{flex:1;min-width:0}
.booking-row .br-name{font-size:16.5px;font-weight:800}
.booking-row .br-meta{font-size:13.5px;color:var(--muted);margin-top:3px}
.booking-row .br-status{font-size:11.5px;font-weight:800;padding:5px 11px;border-radius:100px}
.st-up{background:var(--ok-soft);color:var(--ok)}
.st-past{background:var(--bg-3);color:var(--muted)}
.empty{text-align:center;padding:60px 20px;color:var(--muted)}
.empty svg{width:48px;height:48px;color:var(--dim);margin:0 auto 16px}

/* ════ PERFIL · EXTRAS ════ */
/* 1 · Pasaporte */
.passport-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  background:linear-gradient(150deg,var(--accent-soft),transparent 70%);border:1px solid var(--accent-line);
  border-radius:18px;padding:24px 26px;margin-bottom:8px}
.pp-rank-lbl{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.pp-rank{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-top:4px}
.pp-tag{font-size:14px;color:var(--muted);margin-top:2px}
.pp-ring{width:96px;height:96px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:conic-gradient(var(--accent) calc(var(--pct)*1%),var(--bg-3) 0)}
.pp-ring-in{width:74px;height:74px;border-radius:50%;background:var(--bg-2);display:grid;place-items:center;text-align:center;line-height:1.1}
.pp-ring-in b{font-size:18px;font-weight:800}
.pp-ring-in span{font-size:11px;color:var(--muted);display:block}
.pp-sec-h{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin:24px 0 12px}
.passport-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.pp-cuisine{position:relative;display:flex;align-items:center;gap:11px;padding:14px 15px;border-radius:14px;
  border:1px solid var(--line);background:var(--bg-2);color:var(--text);text-align:left;cursor:default;transition:all .16s}
.pp-cuisine.done{border-color:var(--accent-line);background:var(--card-grad)}
.pp-cuisine:not(.done){opacity:.62;cursor:pointer}
.pp-cuisine:not(.done):hover{opacity:1;border-color:var(--accent-line)}
.pp-ci{width:38px;height:38px;border-radius:11px;flex:none;display:grid;place-items:center;background:var(--bg-3);color:var(--muted)}
.pp-cuisine.done .pp-ci{background:var(--accent-soft);color:var(--accent)}
.pp-ci svg{width:20px;height:20px}
.pp-cn{font-size:14px;font-weight:700;flex:1}
.pp-badge{width:22px;height:22px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--accent);color:var(--on-accent)}
.pp-badge svg{width:13px;height:13px}
.pp-lock{color:var(--dim);display:grid;place-items:center}
.pp-lock svg{width:16px;height:16px}
.pp-areas{display:flex;flex-wrap:wrap;gap:8px}
.pp-area{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted);
  background:var(--bg-3);border:1px solid var(--line-2);border-radius:100px;padding:7px 13px}
.pp-area svg{width:13px;height:13px;color:var(--dim)}
.pp-area.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}
.pp-area.on svg{color:var(--accent)}

/* 2 · Paladar IA */
.palate-card{border:1px solid var(--line);border-radius:18px;background:var(--card-grad);padding:24px}
.palate-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}
.palate-ico{width:46px;height:46px;border-radius:13px;flex:none;display:grid;place-items:center;
  background:var(--accent);color:var(--on-accent);box-shadow:0 6px 18px var(--glow)}
.palate-ico svg{width:24px;height:24px}
.palate-head h3{font-size:19px;font-weight:800;letter-spacing:-.01em}
.palate-head p{font-size:13.5px;color:var(--muted);margin-top:3px;max-width:440px}
.palate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.palate-cell{background:var(--bg-2);border:1px solid var(--line-2);border-radius:13px;padding:14px}
.pc-k{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
.pc-v{font-size:17px;font-weight:800;color:var(--text)}
.pc-tags{display:flex;flex-wrap:wrap;gap:6px}
.pc-tag{font-size:12.5px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:100px;padding:4px 11px}
.palate-edit{margin-top:16px}
.spice-row{display:flex;gap:8px;flex-wrap:wrap}
.spice-b{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:74px;padding:10px 8px;border-radius:12px;
  border:1px solid var(--line);background:var(--bg-2);font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;transition:all .15s}
.spice-b.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.spice-flames{font-size:14px;line-height:1}
.palate-foot{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);margin-top:18px;
  padding-top:16px;border-top:1px solid var(--line-2)}
.palate-foot svg{width:15px;height:15px;color:var(--accent);flex:none}

/* 3 · Mercado de Cucharas */
.spoon-balance{display:flex;align-items:center;gap:16px;padding:20px 22px;border-radius:18px;
  background:linear-gradient(135deg,var(--gold),#a8842f);color:#231a06;box-shadow:var(--shadow);margin-bottom:8px}
.sb-ico{width:48px;height:48px;border-radius:14px;flex:none;display:grid;place-items:center;background:rgba(255,255,255,.22)}
.sb-ico svg{width:26px;height:26px;color:#231a06}
.sb-n{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1}
.sb-n span{font-size:14px;font-weight:700}
.sb-sub{font-size:13px;opacity:.85;margin-top:3px;font-weight:600}
.sb-badge{margin-left:auto;font-size:11px;font-weight:800;letter-spacing:.04em;background:rgba(35,26,6,.18);
  padding:6px 12px;border-radius:100px;align-self:flex-start;white-space:nowrap}
.rewards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.reward-card{border:1px solid var(--line);border-radius:16px;background:var(--bg-2);padding:18px;display:flex;flex-direction:column}
.reward-card.locked{opacity:.62}
.reward-card.owned{border-color:var(--ok);background:var(--card-grad)}
.rw-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.rw-ico{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.rw-ico svg{width:21px;height:21px}
.rw-cost{display:inline-flex;align-items:center;gap:5px;font-size:14px;font-weight:800;color:var(--gold)}
.rw-cost svg{width:15px;height:15px}
.rw-name{font-size:15.5px;font-weight:800;letter-spacing:-.01em;margin-bottom:4px}
.rw-desc{font-size:13px;color:var(--muted);line-height:1.45;margin-bottom:14px;flex:1}
.rw-code{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--ok);
  background:var(--ok-soft);border-radius:10px;padding:9px 12px;justify-content:center}
.rw-code svg{width:15px;height:15px}

/* ════ MODAL ════ */
.modal-back{position:fixed;inset:0;z-index:200;background:rgba(20,12,8,.5);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;animation:fade .2s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal{background:var(--bg-2);border:1px solid var(--line);border-radius:22px;width:100%;max-width:420px;padding:30px;box-shadow:var(--shadow-lg);animation:pop .25s cubic-bezier(.22,.61,.36,1)}
@keyframes pop{from{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:none}}
.modal-x{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--bg-3);border:none;color:var(--muted)}
.modal h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.modal .msub{color:var(--muted);font-size:14.5px;margin-bottom:22px}
.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;font-weight:700;color:var(--muted);margin-bottom:6px}
.field input{width:100%;background:var(--bg-3);border:1px solid var(--line);border-radius:11px;padding:12px 14px;font-size:14.5px;color:var(--text);outline:none;transition:border-color .15s}
.field input:focus{border-color:var(--accent)}
.modal .seg{display:flex;background:var(--bg-3);border-radius:11px;padding:4px;margin-bottom:20px}
.modal .seg button{flex:1;padding:9px;border:none;background:none;border-radius:8px;font-weight:700;font-size:14px;color:var(--muted);transition:all .15s}
.modal .seg button.on{background:var(--bg-2);color:var(--text);box-shadow:var(--shadow-sm)}
.modal .sso{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.sso-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;border-radius:11px;border:1px solid var(--line);background:var(--bg-2);color:var(--text);font-weight:700;font-size:14px;transition:all .15s}
.sso-btn:hover{border-color:var(--accent-line)}
.sso-btn svg{width:18px;height:18px;color:var(--text)}ll .15s}
.sso-btn:hover{border-color:var(--accent-line)}
.sso-btn svg{width:18px;height:18px}
.divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--dim);font-size:12.5px}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line-2)}

/* toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);z-index:300;
  background:var(--text);color:var(--bg);font-weight:700;font-size:14px;padding:13px 22px;border-radius:100px;
  box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:9px;opacity:0;transition:all .3s cubic-bezier(.22,.61,.36,1);pointer-events:none}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}
.toast svg{width:17px;height:17px;color:var(--accent-2)}

/* drawer for mobile filters */
.fab-filter{display:none}

/* ── responsive ── */
@media(max-width:1080px){
  .results-layout{grid-template-columns:1fr 320px}
  .filters{display:none}
  .cats{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .detail-layout{grid-template-columns:1fr}
  .book-widget{position:static}
  .results-layout{grid-template-columns:1fr}
  .mappanel{display:none}
  .results-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
  .hdr-search{display:none!important}
  .hdr-link{display:none}
  .rgrid,.rgrid.g4{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:1fr 1fr;height:300px}
  .gallery .g-main{grid-column:1/3;grid-row:auto}
  .info-grid{grid-template-columns:1fr}
  .timegrid{grid-template-columns:repeat(3,1fr)}
  .loyalty{margin-left:0;width:100%}
}
@media(max-width:520px){
  .wrap{padding:0 16px}
  .rgrid,.rgrid.g4,.results-grid{grid-template-columns:1fr}
  .cats{grid-template-columns:repeat(2,1fr)}
  .bigsearch{flex-wrap:wrap}.bigsearch input{min-width:140px}
  .bk-card{padding:22px 18px}
  .daygrid,.dow-row{gap:4px}
}
