:root {
  --bg:#F7F4EE; --surface:#FFFFFF; --surface2:#EDE8DC; --surface3:#E4DDCE;
  --navy:#0E2244; --navy-mid:#1A3A72; --navy-light:rgba(14,34,68,.07);
  --gold:#E8B000; --gold-dark:#B87800; --gold-dim:rgba(232,176,0,.14); --gold-text:#9A6800;
  --text:#0E2244; --text-mid:#3A5080; --text-light:#7A90B4;
  --border:rgba(14,34,68,.1); --border-gold:rgba(232,176,0,.3);
  --score-high:#2A7A10; --score-mid:#B87800; --score-low:#B82020;
  --font-display:'Bebas Neue',sans-serif;
  --font-serif:'Outfit',sans-serif;
  --font-body:'Outfit',sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--navy);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}

/* ── HEADER ── */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .3s,backdrop-filter .3s}
.site-header.scrolled{background:rgba(14,34,68,.97);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08)}
.header-inner{max-width:1200px;margin:0 auto;padding:0 2rem;height:62px;display:flex;align-items:center;justify-content:space-between}
.header-logo{height:36px;cursor:pointer;filter:brightness(0) invert(1);opacity:.88;transition:opacity .2s}
.header-logo:hover{opacity:1}
nav{display:flex;gap:0}
nav a{color:rgba(255,255,255,.45);font-family:var(--font-body);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:0 1.25rem;height:62px;display:flex;align-items:center;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;text-decoration:none}
nav a:hover{color:rgba(255,255,255,.85)}
nav a.active{color:var(--gold);border-bottom-color:var(--gold)}

/* ── HERO ── */
.hero{height:100vh;min-height:600px;background:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 55% at 50% 42%,rgba(232,176,0,.07) 0%,transparent 65%);pointer-events:none}
.hero-logo{height:155px;width:auto;filter:brightness(0) invert(1);opacity:.95;animation:heroFade .8s ease 1.3s both;margin-bottom:-10px}
.hero-main-title{font-family:var(--font-display);font-size:clamp(62px,9vw,96px);letter-spacing:.16em;color:rgba(255,255,255,.92);margin-top:.1rem;animation:heroFade .8s ease 1.45s both}
.hero-gold-line{width:52px;height:2px;background:var(--gold);margin:.6rem auto 0;transform:scaleX(0);transform-origin:left;animation:heroGoldLine .7s cubic-bezier(.25,.46,.45,.94) 1.7s both}
@keyframes heroGoldLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hero-slogan{font-family:var(--font-body);font-size:11px;font-weight:300;color:rgba(255,255,255,.45);letter-spacing:.32em;text-transform:uppercase;margin-top:1.4rem;animation:heroFade .8s ease 2.0s both}
.hero-cta{margin-top:3rem;padding:.85rem 2.5rem;background:transparent;border:1px solid rgba(232,176,0,.5);color:var(--gold);font-family:var(--font-body);font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;position:relative;overflow:hidden;transition:color .3s ease,border-color .3s ease;animation:heroFade .8s ease 2.2s both;border-radius:50px}
.hero-cta::before{content:'';position:absolute;inset:0;background:var(--gold);transform:translateX(-101%);transition:transform .35s cubic-bezier(.25,.46,.45,.94)}
.hero-cta:hover::before{transform:translateX(0)}
.hero-cta:hover{color:var(--navy);border-color:var(--gold)}
.hero-cta span{position:relative;z-index:1}
.mobile-break{display:none}
.hero-scroll{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;opacity:.3;transition:opacity .2s;animation:heroFade 1s ease 2.4s both}
.hero-scroll:hover{opacity:.65}
.hero-scroll span{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.hero-scroll-line{width:1px;height:36px;background:linear-gradient(to bottom,rgba(255,255,255,.5),transparent);animation:scrollPulse 2.2s ease-in-out infinite}
@keyframes heroFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes scrollPulse{0%,100%{opacity:.2}55%{opacity:.9}}
.hero-azulejo{position:absolute;inset:0;pointer-events:none;opacity:0;background-repeat:repeat;background-size:48px 48px;animation:azulejoDrift 90s linear infinite;transition:opacity 2s ease;background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48'><path d='M24,0 L48,24 L24,48 L0,24 Z' fill='none' stroke='%23E8B000' stroke-width='.65'/><path d='M24,15 L33,24 L24,33 L15,24 Z' fill='none' stroke='%23E8B000' stroke-width='.4'/><path d='M-5,0 L0,-5 L5,0 L0,5 Z M43,0 L48,-5 L53,0 L48,5 Z M-5,48 L0,43 L5,48 L0,53 Z M43,48 L48,43 L53,48 L48,53 Z' fill='none' stroke='%23E8B000' stroke-width='.4'/></svg>")}
@keyframes azulejoDrift{from{background-position:0 0}to{background-position:48px 48px}}
.hero-azulejo.visible{opacity:.065}
/* Film grain */
.hero::after{content:'';position:absolute;inset:0;z-index:20;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px;animation:grainShift .12s steps(1) infinite}
@keyframes grainShift{0%{background-position:0 0}20%{background-position:30px -60px}40%{background-position:60px -30px}60%{background-position:40px -50px}80%{background-position:20px 80px}100%{background-position:10px 60px}}
/* Letterbox bars */
.hero-bar-top,.hero-bar-bottom{position:absolute;left:0;right:0;z-index:50;background:#000;transition:height 1.1s cubic-bezier(.76,0,.24,1)}
.hero-bar-top{top:0;height:18vh}
.hero-bar-bottom{bottom:0;height:18vh}
.hero-bar-top.open,.hero-bar-bottom.open{height:0}

/* ── SECTIONS ── */
#main-content{background:var(--bg)}
.section{display:none}.section.visible{display:block}
.section-inner{max-width:1200px;margin:0 auto;padding:4.5rem 2rem 5rem}

/* ── SEARCH ── */
.search-bar-wrap{position:relative;margin-bottom:1rem}
.search-bar-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--text-light);pointer-events:none}
.search-input{width:100%;padding:.75rem 1rem .75rem 2.75rem;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:13px;border-radius:999px;outline:none;transition:border-color .2s}
.search-input::placeholder{color:var(--text-light)}
.search-input:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px rgba(232,176,0,.2);border-radius:999px}

/* ── FILTER BAR ── */
.filter-bar{display:flex;gap:.5rem;margin-bottom:2rem;flex-wrap:wrap}
.filter-dd{position:relative;flex-shrink:0}
.filter-dd-btn{display:flex;align-items:center;gap:.35rem;padding:.4rem 1rem;border:1px solid var(--border);background:var(--surface);color:var(--text-mid);font-family:var(--font-body);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border-radius:20px;transition:all .15s;white-space:nowrap}
.filter-dd-btn:hover{border-color:var(--navy);color:var(--navy)}
.filter-dd-btn.active{background:var(--gold-dim);border-color:var(--gold);color:var(--gold-dark);font-weight:600}
.filter-dd-btn .icon-sort{width:13px;height:13px;flex-shrink:0;pointer-events:none}
.filter-dd-btn .chevron{width:11px;height:11px;flex-shrink:0;transition:transform .2s;pointer-events:none}
.filter-dd.open .filter-dd-btn .chevron{transform:rotate(180deg)}
.filter-dd-panel{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:3px;box-shadow:0 6px 24px rgba(14,34,68,.12);z-index:50;padding:.85rem}
.filter-dd.open .filter-dd-panel{display:block}
.dd-chips{display:flex;flex-direction:column;gap:.05rem}
.ftag{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;font-size:12px;padding:.45rem .4rem;border:none;background:transparent;color:var(--text-mid);cursor:pointer;font-family:var(--font-body);transition:all .15s;border-radius:3px}
.ftag:hover{background:var(--navy-light);color:var(--navy)}
.ftag.on{color:var(--navy);font-weight:500}
.ftag-cb{width:14px;height:14px;border:1.5px solid var(--border);border-radius:2px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:9px;transition:all .15s}
.ftag.on .ftag-cb{background:var(--navy);border-color:var(--navy);color:#fff}
.ftag.on .ftag-cb::after{content:'✓'}
.filter-dd-clear{display:block;width:100%;text-align:left;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light);cursor:pointer;padding:.5rem .4rem .1rem;border:none;border-top:1px solid var(--border);background:none;font-family:var(--font-body);margin-top:.5rem;transition:color .15s}
.filter-dd-clear:hover{color:var(--gold-dark)}
.filter-clear-all{display:flex;align-items:center;gap:.4rem;font-size:11px;font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text-light);background:none;border:1px solid var(--border);border-radius:3px;padding:.45rem .85rem;cursor:pointer;transition:all .15s;white-space:nowrap;align-self:center}
.filter-clear-all:hover{color:var(--gold-dark);border-color:var(--gold)}
.view-toggle{display:flex;align-items:center;gap:2px;margin-left:auto;border:1px solid var(--border);border-radius:6px;overflow:hidden;align-self:center}
.view-btn{background:none;border:none;padding:.45rem .6rem;cursor:pointer;color:var(--text-light);transition:all .15s;display:flex;align-items:center}
.view-btn:hover{color:var(--navy)}
.view-btn.active{background:var(--navy);color:#fff}

/* ── SORT CHIPS (dentro de dropdown) ── */
.stag{font-size:11px;padding:4px 14px;border:1px solid var(--border);background:transparent;color:var(--text-mid);cursor:pointer;font-family:var(--font-body);transition:all .15s;border-radius:20px}
.stag:hover{border-color:var(--gold-dark);color:var(--gold-dark)}
.stag.on{color:var(--gold-dark);border-color:var(--gold);font-weight:600;background:var(--gold-dim)}

/* ── GRID ── */
.restaurant-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:var(--bg)}
.restaurant-card{background:var(--surface2);cursor:pointer;position:relative;overflow:hidden;aspect-ratio:3/4;border-radius:8px}
.card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.25,.46,.45,.94);will-change:transform}
.restaurant-card:hover .card-photo{transform:scale(1.05)}
.card-no-photo{position:absolute;inset:0;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%)}
.card-no-photo-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-display);font-size:38px;letter-spacing:.06em;color:rgba(255,255,255,.06);white-space:nowrap;text-align:center;pointer-events:none;width:90%;text-align:center}
.card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,16,40,.94) 0%,rgba(8,16,40,.48) 40%,rgba(8,16,40,.08) 75%,transparent 100%);transition:background .35s}
.restaurant-card:hover .card-overlay{background:linear-gradient(to top,rgba(8,16,40,.97) 0%,rgba(8,16,40,.62) 50%,rgba(8,16,40,.12) 80%,transparent 100%)}
.card-content{position:absolute;inset:0;padding:1rem;display:flex;flex-direction:column;justify-content:flex-end;height:100%}
.card-city{font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.42);margin-bottom:4px}
.card-bottom{display:flex;flex-direction:column}
.card-name{font-family:var(--font-display);font-size:26px;letter-spacing:.05em;line-height:1.1;color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-bottom-row{display:flex;align-items:flex-end;justify-content:space-between;margin-top:8px}
.card-scores-mini{display:flex;gap:8px}
.card-precio{font-family:var(--font-display);font-size:22px;color:var(--gold);letter-spacing:.06em;line-height:1;flex-shrink:0}
.score-mini{display:flex;flex-direction:column;align-items:center}
.score-mini-num{font-family:var(--font-display);font-size:20px;line-height:1}
.score-mini-lbl{font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.40);margin-top:1px}
.card-cocinas-mini{margin-top:.55rem;display:flex;gap:4px;flex-wrap:wrap}
.cocina-pill{font-size:9px;padding:2px 8px;border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.42);border-radius:20px}
.loading{text-align:center;padding:5rem;color:var(--text-light);grid-column:1/-1;background:var(--bg)}
.loading-dots{display:flex;gap:6px;justify-content:center;margin-bottom:1rem}
.loading-dots span{width:6px;height:6px;background:var(--gold);border-radius:50%;animation:bounce .7s infinite alternate}
.loading-dots span:nth-child(2){animation-delay:.15s}
.loading-dots span:nth-child(3){animation-delay:.3s}
@keyframes bounce{from{transform:translateY(0)}to{transform:translateY(-7px)}}

/* ── SOBRE LA GUÍA ── */
/* Hero */
.sobre-hero{min-height:100vh;background:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;padding:6rem 2rem;overflow:hidden}
.sobre-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 55% at 50% 42%,rgba(232,176,0,.08) 0%,transparent 65%);pointer-events:none;z-index:1}
.sobre-hero::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.055;z-index:0;background-repeat:repeat;background-size:48px 48px;background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48'><path d='M24,0 L48,24 L24,48 L0,24 Z' fill='none' stroke='%23E8B000' stroke-width='.65'/><path d='M24,15 L33,24 L24,33 L15,24 Z' fill='none' stroke='%23E8B000' stroke-width='.4'/><path d='M-5,0 L0,-5 L5,0 L0,5 Z M43,0 L48,-5 L53,0 L48,5 Z M-5,48 L0,43 L5,48 L0,53 Z M43,48 L48,43 L53,48 L48,53 Z' fill='none' stroke='%23E8B000' stroke-width='.4'/></svg>");animation:azulejoDrift 90s linear infinite}
.sobre-hero-inner{max-width:740px;position:relative;z-index:1}
.sobre-eyebrow{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:2.5rem;opacity:0;transform:translateY(10px);transition:opacity .55s ease,transform .55s ease}
.sobre-hero.in-view .sobre-eyebrow{opacity:1;transform:none}
.sobre-hero-title{font-family:var(--font-display);font-size:clamp(64px,10vw,130px);letter-spacing:.06em;color:#fff;line-height:.95;margin-bottom:0;opacity:0;transform:translateY(22px);transition:opacity .65s ease .1s,transform .65s ease .1s}
.sobre-hero.in-view .sobre-hero-title{opacity:1;transform:none}
.sobre-hero-line{width:52px;height:2px;background:var(--gold);margin:2rem auto;transform:scaleX(0);transform-origin:left;transition:transform .75s cubic-bezier(.25,.46,.45,.94) .35s}
.sobre-hero.in-view .sobre-hero-line{transform:scaleX(1)}
.sobre-hero-text{font-family:var(--font-serif);font-size:18px;color:rgba(255,255,255,.48);line-height:1.9;max-width:520px;margin:0 auto;opacity:0;transform:translateY(14px);transition:opacity .65s ease .5s,transform .65s ease .5s}
.sobre-hero-highlight{color:var(--gold);}
.sobre-hero.in-view .sobre-hero-text{opacity:1;transform:none}
.sobre-hero-scroll{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:.35}
.sobre-hero-scroll span{font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:#fff}
.sobre-hero-scroll-line{width:1px;height:36px;background:linear-gradient(to bottom,rgba(255,255,255,.6),transparent);animation:sobreScrollPulse 2s ease-in-out infinite}
@keyframes sobreScrollPulse{0%,100%{opacity:.4}50%{opacity:1}}
/* Criterion grid */
.criterion-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;padding:3rem 2rem 4rem;max-width:1060px;margin:0 auto}
.criterion-card{border-radius:16px;overflow:hidden;background:var(--surface);border:1px solid var(--border);display:flex;flex-direction:column;opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease}
.criterion-card.in-view{opacity:1;transform:none}
.criterion-card:nth-child(2){transition-delay:.1s}
.criterion-card:nth-child(3){transition-delay:.15s}
.criterion-card:nth-child(4){transition-delay:.22s}
.criterion-card-photo{position:relative;height:200px;overflow:hidden;flex-shrink:0}
.criterion-card-photo img{width:100%;height:130%;margin-top:-10%;object-fit:cover;display:block;transition:transform .6s ease}
.criterion-card:hover .criterion-card-photo img{transform:scale(1.04)}
.criterion-card-photo-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(14,34,68,.15) 0%,rgba(14,34,68,.72) 100%)}
.criterion-card-header{position:absolute;bottom:1.1rem;left:1.25rem;right:1.25rem}
.criterion-card-eyebrow{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.3rem}
.criterion-card-name{font-family:var(--font-display);font-size:clamp(28px,3vw,38px);letter-spacing:.06em;color:#fff;line-height:1}
.criterion-card-body{padding:1.25rem;display:flex;flex-direction:column;gap:0;flex:1;background:var(--navy)}
.criterion-card-desc{font-size:13px;color:var(--text-mid);line-height:1.75;background:var(--surface);border:1px solid var(--border);border-bottom:none;border-radius:10px 10px 0 0;padding:.9rem 1.1rem}
/* Stats strip */
.sobre-stats-strip{background:rgba(255,255,255,.03);border-top:1px solid rgba(232,176,0,.15);border-bottom:1px solid rgba(232,176,0,.15);padding:2rem 2rem;display:flex;justify-content:center;align-items:center;gap:0}
.sobre-stat{text-align:center;padding:0 2.5rem;position:relative}
.sobre-stat+.sobre-stat::before{content:'·';position:absolute;left:0;top:50%;transform:translate(-50%,-50%);color:var(--navy);opacity:.2;font-size:20px}
.sobre-stat-num{font-family:var(--font-display);font-size:28px;color:var(--navy);line-height:1;display:block}
.sobre-stat-lbl{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);opacity:.45;display:block;margin-top:.65rem}
/* Flap display */
.flap-display{display:inline-flex;gap:3px;align-items:center;justify-content:center}
.flap-tile{width:clamp(24px,2.8vw,32px);height:clamp(36px,4.2vw,46px);background:var(--surface);border-radius:5px;display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;box-shadow:0 2px 8px rgba(14,34,68,.14);border:1px solid var(--border)}
.flap-tile::after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(14,34,68,.1);pointer-events:none;z-index:2}
.flap-tile-char{font-family:var(--font-display);font-size:clamp(22px,2.5vw,30px);color:var(--navy);line-height:1;display:block;position:relative;z-index:1}
.flap-tile.is-flipping .flap-tile-char{animation:tileFlip .1s ease-in-out}
@keyframes tileFlip{0%{opacity:1;transform:rotateX(0)}45%{opacity:0;transform:rotateX(80deg)}55%{opacity:0;transform:rotateX(-80deg)}100%{opacity:1;transform:rotateX(0)}}
/* Criterion demo widget */
.criterion-demo-widget{background:var(--surface);border:1px solid var(--border);border-top:1px solid rgba(14,34,68,.08);border-radius:0 0 10px 10px;padding:1rem 1.1rem .9rem;opacity:0;transform:translateY(8px);transition:opacity .45s ease .28s,transform .45s ease .28s}
.criterion-card.in-view .criterion-demo-widget{opacity:1;transform:none}
.criterion-demo-label{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);margin-bottom:.85rem;opacity:.45}
.criterion-demo-btns{display:flex;gap:.45rem;margin-bottom:1.1rem}
.cdb{flex:1;padding:.45rem 0;border-radius:6px;border:1.5px solid rgba(14,34,68,.15);background:transparent;color:rgba(14,34,68,.35);font-family:var(--font-display);font-size:19px;cursor:pointer;transition:color .2s,border-color .2s,background .2s;line-height:1}
.cdb:hover{background:rgba(14,34,68,.05)}
.cdb.active{background:rgba(14,34,68,.04)}
.criterion-demo-score-row{display:flex;align-items:center;gap:.9rem;margin-bottom:.75rem}
.criterion-demo-big{font-family:var(--font-display);font-size:52px;line-height:1;flex-shrink:0;transition:color .25s}
.criterion-demo-track-wrap{flex:1;position:relative;height:3px;background:var(--border);border-radius:2px}
.criterion-demo-fill{position:absolute;left:0;top:0;height:3px;border-radius:2px;transition:width .3s ease,background .25s}
.criterion-demo-dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;border:1.5px solid var(--surface);transition:left .3s ease,background .25s}
.criterion-demo-text{font-size:13px;color:var(--text-mid);line-height:1.7;min-height:3em;transition:opacity .15s}
/* Criterios header */
.criterios-header{background:var(--bg);padding:3.5rem 2rem 0;max-width:1060px;margin:0 auto}
.criterios-eyebrow{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--text-light);margin-bottom:.6rem}
.criterios-title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);letter-spacing:.06em;color:var(--navy);line-height:1;margin-bottom:.85rem}
.criterios-gold-line{width:40px;height:2px;background:var(--gold);margin-bottom:0}

/* FAQ */
.faq-section{background:var(--bg);padding:3.5rem 2rem 5rem}
.faq-inner{max-width:680px;margin:0 auto}
.faq-eyebrow{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--text-light);margin-bottom:.6rem}
.faq-title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);letter-spacing:.06em;color:var(--navy);line-height:1;margin-bottom:.85rem}
.faq-gold-line{width:40px;height:2px;background:var(--gold);margin-bottom:2.5rem}
.faq-list{display:flex;flex-direction:column}
.faq-item{padding:1.75rem 0;border-top:1px solid var(--border)}
.faq-item:last-child{border-bottom:1px solid var(--border)}
.faq-q{font-family:var(--font-display);font-size:1.25rem;letter-spacing:.05em;color:var(--navy);line-height:1.2;margin-bottom:.6rem}
.faq-a{font-size:14px;color:var(--text-mid);line-height:1.8}
.faq-a a{color:var(--gold-text);text-decoration:none}
.faq-a a:hover{text-decoration:underline}

/* Closing scene */
.sobre-closing{background:var(--navy);padding:9rem 2rem;text-align:center;position:relative;overflow:hidden}
.sobre-closing::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 50%,rgba(232,176,0,.07) 0%,transparent 70%);pointer-events:none}
.sobre-closing-inner{max-width:560px;margin:0 auto;position:relative;z-index:1}
.sobre-closing-deco{display:flex;align-items:center;gap:.85rem;justify-content:center;margin-bottom:3rem}
.sobre-closing-deco-line{width:40px;height:1px;background:rgba(232,176,0,.35)}
.sobre-closing-deco-dot{width:5px;height:5px;border-radius:50%;background:var(--gold);flex-shrink:0}
.sobre-closing-text{font-family:var(--font-display);font-size:clamp(32px,6vw,58px);letter-spacing:.06em;color:#fff;line-height:1.15;margin-bottom:2.5rem}
.sobre-closing-label{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.22)}

/* ── MODAL ── */
.modal-overlay{display:none;position:fixed;inset:0;z-index:1100;justify-content:flex-end;align-items:stretch}
.modal-overlay.open{display:flex;background:rgba(8,16,40,.55)}
.modal-panel{width:min(620px,100vw);height:100vh;overflow-y:auto;background:var(--bg);display:flex;flex-direction:column;border-radius:14px 0 0 14px;box-shadow:-20px 0 60px rgba(8,16,40,.35);animation:slideIn .38s cubic-bezier(.25,.46,.45,.94) forwards;position:relative}
.modal-panel.closing{animation:slideOut .3s cubic-bezier(.55,.06,.68,.19) forwards}
@keyframes slideIn{from{transform:translateX(100%)}to{transform:translateX(0)}}
@keyframes slideOut{from{transform:translateX(0)}to{transform:translateX(100%)}}

/* Hero foto — 280px con crossfade + overlay + info */
.modal-hero-area{position:relative;height:300px;flex-shrink:0;overflow:hidden;background:var(--navy)}
.modal-hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .9s ease}
.modal-hero-no-photo{position:absolute;inset:0;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%)}
.modal-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,16,40,.95) 0%,rgba(8,16,40,.6) 40%,rgba(8,16,40,.1) 80%,transparent 100%);pointer-events:none;z-index:1}
.modal-hero-info{position:absolute;bottom:0;left:0;right:0;padding:1.5rem;z-index:2}
/* Action bar */
.modal-action-bar{display:flex;justify-content:space-around;align-items:center;padding:.75rem .5rem;position:relative;overflow:visible}
.modal-action-btn{display:flex;flex-direction:column;align-items:center;gap:.35rem;background:transparent;border:none;cursor:pointer;padding:.5rem .75rem;border-radius:10px;transition:background .2s;min-width:60px}
.modal-action-btn:hover{background:rgba(14,34,68,.06)}
.modal-action-icon{display:flex;align-items:center;justify-content:center;transition:transform .15s}
.modal-action-icon i{font-size:22px;color:rgba(14,34,68,.75);transition:color .2s}
.modal-action-label{font-family:var(--font-body);font-size:10px;color:rgba(14,34,68,.65);letter-spacing:.06em;white-space:nowrap;transition:color .2s}
.modal-action-btn:hover .modal-action-icon{transform:scale(1.1)}
.modal-action-btn:hover .modal-action-icon i{color:var(--navy)}
.modal-action-btn:hover .modal-action-label{color:var(--navy)}
/* Active states */
.modal-action-btn.is-active .modal-action-icon i{color:var(--gold)}
.modal-action-btn.is-active .modal-action-label{color:var(--gold-dark)}
/* Fila de calificación — animación desglose igual que visitas */
.modal-rate-row{max-height:0;overflow:hidden;transition:max-height .35s ease}
.modal-rate-row.visible{max-height:120px}
.modal-rate-row-inner{display:flex;justify-content:center;gap:.5rem;padding:.6rem 1rem;background:var(--surface);border-radius:12px;border:1px solid var(--border)}
.modal-rate-btn{display:flex;flex-direction:column;align-items:center;gap:.3rem;background:transparent;border:none;cursor:pointer;padding:.5rem .85rem;border-radius:12px;transition:background .15s;min-width:72px}
.modal-rate-btn:hover{background:rgba(14,34,68,.06)}
.modal-rate-btn i{font-size:24px;color:rgba(14,34,68,.45);transition:color .2s,transform .18s}
.modal-rate-btn span{font-family:var(--font-body);font-size:10px;color:rgba(14,34,68,.4);letter-spacing:.04em;white-space:nowrap;transition:color .2s}
.modal-rate-btn:hover i,.modal-rate-btn.selected i{color:var(--gold);transform:scale(1.18)}
.modal-rate-btn:hover span,.modal-rate-btn.selected span{color:var(--gold-dark,#b88a00)}
.modal-rate-btn[data-val="1"]:hover i,.modal-rate-btn[data-val="1"].selected i{color:#d94f4f;transform:scale(1.18)}
.modal-rate-btn[data-val="1"]:hover span,.modal-rate-btn[data-val="1"].selected span{color:#d94f4f}
/* Hero */
.modal-hero-city{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}
.modal-hero-name{font-family:var(--font-display);font-size:42px;letter-spacing:.03em;line-height:1;color:#fff;margin-bottom:.65rem}
.modal-hero-meta{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.modal-hero-precio{font-family:var(--font-display);font-size:18px;color:var(--gold);letter-spacing:.06em}
.modal-hero-tag{font-size:10px;padding:2px 10px;border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.55);border-radius:20px}
/* Botón cerrar */
.modal-close{position:fixed;top:1rem;right:1rem;background:rgba(14,34,68,.7);border:1px solid rgba(255,255,255,.15);width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;font-size:14px;border-radius:50%;z-index:1110;transition:all .15s;box-shadow:0 2px 8px rgba(14,34,68,.3)}
.modal-close:hover{background:var(--navy);border-color:rgba(255,255,255,.3)}
/* Panel body */
.modal-panel-body{padding:1rem;padding-bottom:calc(5rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}
.modal-reserva-btn{display:block;width:100%;padding:.9rem 1.25rem;background:transparent;color:var(--gold-dark);font-family:var(--font-display);font-size:18px;letter-spacing:.12em;text-align:center;text-decoration:none;border-radius:10px;border:1.5px solid var(--gold);transition:background .15s,color .15s}
.modal-reserva-btn:hover{background:var(--gold);color:#0E2244}
.modal-separator{height:1px;background:var(--gold);opacity:.3}

/* ── MODAL WIDGETS ── */
.modal-widget{background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:1.25rem;overflow:hidden}
#modal-visits-widget{background:transparent;border:none;overflow:visible;padding:.25rem 0}
.modal-widget-label{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-light);margin-bottom:1rem}
/* Widget 1: descripción */
.mw-desc{font-family:var(--font-serif);font-size:16px;color:var(--text-mid);line-height:1.8}
/* Widget 2: scores + radar */
.mw-scores-layout{display:flex;align-items:center;gap:.75rem}
.mw-scores-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.25rem;flex:1}
.mw-score-item{display:flex;flex-direction:column}
.mw-score-row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}
.mw-score-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-dark);font-weight:600;white-space:nowrap}
.mw-score-num{font-family:var(--font-display);font-size:30px;line-height:1;flex-shrink:0}
.mw-score-track{position:relative;height:3px;background:var(--border);border-radius:2px;margin-top:8px}
.mw-score-fill{position:absolute;left:0;top:0;height:3px;border-radius:2px}
.mw-score-dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;border:1.5px solid var(--surface)}
.radar-wrap{width:160px;height:160px;flex-shrink:0}
/* Widget 3: visitas */
.visit-item{background:#fff;border-radius:14px;border:1px solid var(--border);box-shadow:0 3px 10px rgba(14,34,68,.07);margin-bottom:6px;position:relative;transition:transform .3s ease,box-shadow .3s ease,margin-bottom .35s ease}
.visit-item:last-child{margin-bottom:0}
.visit-item.open{z-index:100!important;transform:translateY(-3px);box-shadow:0 8px 28px rgba(14,34,68,.14);margin-bottom:12px}
.visit-header{display:flex;justify-content:space-between;align-items:flex-end;padding:1rem;cursor:pointer;gap:1rem}
.visit-header-left{display:flex;flex-direction:column;gap:3px;min-width:0}
.visit-fecha{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.visit-tipo-label{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:#E8B400;margin:0 0 .6rem;display:block}
.visit-tipo-separator{height:1px;background:var(--gold);opacity:.3;margin:1rem 0}
.visit-platillo{font-family:var(--font-display);font-size:21px;letter-spacing:.04em;line-height:1.1;color:var(--navy)}
.visit-header:hover .visit-platillo{color:var(--navy-mid)}
.visit-header-right{display:flex;align-items:flex-end;gap:.75rem;flex-shrink:0}
.visit-mini-scores{display:flex;gap:8px;align-items:center;margin-left:.25rem}
.visit-mini-score{display:flex;flex-direction:column;align-items:center;gap:1px}
.visit-mini-score-lbl{font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light)}
.visit-mini-score-val{font-family:var(--font-display);font-size:15px;line-height:1}
.visit-toggle{font-size:18px;color:var(--text-light);transition:transform .2s;line-height:1}
.visit-item.open .visit-toggle{transform:rotate(45deg)}
.visit-body{overflow:hidden}
.visit-body-inner{max-height:0;overflow:hidden;padding:0 1rem;transition:max-height .5s ease}
.visit-item.open .visit-body-inner{max-height:4000px;padding-bottom:.9rem}
.visit-foto-full{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:8px;margin-bottom:1rem;cursor:zoom-in}
.visit-fotos-strip{display:flex;gap:6px;margin-bottom:1rem}
.visit-fotos-strip .visit-foto-thumb{flex:1;min-width:0;aspect-ratio:4/3;object-fit:cover;border-radius:8px;cursor:zoom-in;display:block;transition:opacity .15s}
.visit-fotos-strip .visit-foto-thumb:hover{opacity:.82}
#photo-lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.93);z-index:2000;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;cursor:zoom-out;padding:2rem}
#photo-lightbox.open{display:flex}
/* ── GALLERY WIDGET ── */
.modal-gallery-widget{background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:1.25rem;overflow:hidden}
.modal-gallery-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:110px 110px;gap:4px;border-radius:8px;overflow:hidden}
.modal-gallery-grid.one-photo{grid-template-columns:1fr;grid-template-rows:180px}
.modal-gallery-grid.two-photos{grid-template-columns:1fr 1fr;grid-template-rows:140px}
.modal-gallery-item{position:relative;overflow:hidden;cursor:zoom-in;background:var(--navy)}
.modal-gallery-grid:not(.one-photo):not(.two-photos) .modal-gallery-item:first-child{grid-row:1/3}
.modal-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.25,.46,.45,.94)}
.modal-gallery-item:hover img{transform:scale(1.04)}
.modal-gallery-more{position:absolute;inset:0;background:rgba(14,34,68,.72);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:26px;letter-spacing:.06em;color:#fff}
#photo-lightbox-img{max-width:88vw;max-height:72vh;object-fit:contain;border-radius:6px;cursor:default}
#photo-lightbox-caption{text-align:center;pointer-events:none}
#photo-lightbox-dish{font-family:var(--font-display);font-size:22px;letter-spacing:.06em;color:#fff;display:block}
#photo-lightbox-date{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);display:block;margin-top:5px}
.visit-nota{font-family:var(--font-serif);font-size:17px;color:var(--text-mid);line-height:1.85;margin-top:.5rem;margin-bottom:1rem}
/* Criterion blocks — mini-widgets dentro del visit body */
.criterion-notes{display:flex;flex-direction:column;gap:6px;margin-top:.75rem}
.criterion-block{background:var(--bg);border-radius:8px;padding:.85rem 1rem}
.criterion-block-header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:6px}
.criterion-block-name{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-dark);font-weight:600}
.criterion-block-score{font-family:var(--font-display);font-size:26px;line-height:1;flex-shrink:0}
.criterion-block-track{position:relative;height:3px;background:var(--border);border-radius:2px;margin-bottom:.75rem}
.criterion-block-fill{position:absolute;left:0;top:0;height:3px;border-radius:2px}
.criterion-block-dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;border:1.5px solid var(--bg)}
.criterion-block-text{font-family:var(--font-serif);font-size:15px;color:var(--text-mid);line-height:1.75}
/* Widget 4: mapa */
.mw-map-addr{font-family:var(--font-serif);font-size:14px;color:var(--text-mid);margin-bottom:.75rem}
.mw-map-frame{width:calc(100% + 2.5rem);margin-left:-1.25rem;margin-right:-1.25rem;margin-bottom:-1.25rem;height:180px;border:none;display:block;filter:grayscale(.3) contrast(.9)}

/* ── LIGHTBOX ── */

/* ── VISITAS RECIENTES ── */
.visitas-recientes-section{padding:4rem 0 3rem;border-bottom:1px solid var(--border);background:var(--bg)}
.vr-inner{max-width:1200px;margin:0 auto;padding:0 2rem}
.vr-accent{width:40px;height:3px;background:var(--gold);margin-bottom:.85rem}
.vr-title{font-family:var(--font-display);font-size:38px;letter-spacing:.08em;color:var(--text);margin-bottom:2.25rem}
.vr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.vr-cta-card{background:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:2rem;gap:1.5rem;transition:background .2s;text-align:center}
.vr-cta-card:hover{background:var(--navy-mid)}
.vr-cta-card-line{width:32px;height:2px;background:var(--gold)}
.vr-cta-card-text{font-family:var(--font-display);font-size:28px;letter-spacing:.08em;color:#fff;line-height:1.15}
.vr-cta-card-arrow{font-size:28px;color:var(--gold);line-height:1;margin-top:.25rem}
.vr-card{background:var(--surface);border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;cursor:pointer;transition:box-shadow .25s}
.vr-card:hover{box-shadow:0 6px 28px rgba(14,34,68,.1)}
.vr-card-photo{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.vr-card-no-photo{width:100%;aspect-ratio:3/2;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%);display:flex;align-items:center;justify-content:center}
.vr-card-no-photo-label{font-family:var(--font-display);font-size:32px;letter-spacing:.06em;color:rgba(255,255,255,.07);text-align:center;padding:1rem}
.vr-card-body{padding:1.25rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.vr-card-fecha{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-light)}
.vr-card-platillo{font-family:var(--font-display);font-size:24px;letter-spacing:.04em;color:var(--text);line-height:1.1;margin-top:.1rem}
.vr-card-restaurante{font-family:var(--font-serif);font-size:15px;color:var(--text-mid);font-style:italic}
.vr-card-btn{margin-top:auto;padding-top:1.25rem}
.vr-card-btn button{background:var(--navy);color:#fff;border:none;font-family:var(--font-body);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:.75rem 0;cursor:pointer;width:100%;transition:background .2s}
.vr-card-btn button:hover{background:var(--navy-mid)}
.vr-card-scores{display:flex;gap:.75rem;margin-top:.5rem}
.vr-card-scores .score-mini-lbl{color:var(--text-light)}

/* ── FOCUS (a11y) ── */
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.restaurant-card:focus-visible{outline-offset:0;outline:2px solid rgba(232,176,0,.6)}

/* ── CARD HOVER ACCENT ── */
.restaurant-card{box-shadow:inset 0 0 0 0 rgba(232,176,0,.45);transition:box-shadow .25s}
.restaurant-card:hover{box-shadow:inset 0 0 0 2px rgba(232,176,0,.45)}

/* ── SKELETON LOADING ── */
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.card-skeleton{background:var(--navy);aspect-ratio:3/4;position:relative;overflow:hidden;border-radius:8px}
.card-skeleton::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.06) 50%,rgba(255,255,255,0) 100%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite}

/* ── EMPTY STATE ── */
.empty-state{grid-column:1/-1;background:var(--bg);padding:5rem 2rem;text-align:center}
.empty-state p{font-family:var(--font-serif);font-size:17px;color:var(--text-light);font-style:italic}
.ml-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:5rem 2rem;text-align:center;color:var(--text-light)}

/* Vista lista */
.restaurant-grid.view-list{display:flex;flex-direction:column;gap:6px;background:transparent}
.restaurant-list-item{display:flex;align-items:center;gap:1rem;background:#fff;border-radius:12px;border:1px solid var(--border);overflow:hidden;cursor:pointer;transition:box-shadow .15s,transform .15s;padding-right:1.25rem}
.restaurant-list-item:hover{box-shadow:0 4px 16px rgba(14,34,68,.1);transform:translateY(-1px)}
.rli-thumb{width:80px;height:72px;object-fit:cover;flex-shrink:0}
.rli-info{flex:1;min-width:0;padding:.75rem 0}
.rli-name{font-family:var(--font-display);font-size:20px;letter-spacing:.05em;color:var(--navy);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rli-meta{font-size:11px;font-family:var(--font-body);color:var(--text-light);letter-spacing:.06em;text-transform:uppercase;margin-top:3px}
.rli-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.rli-scores{display:flex;gap:10px}
.rli-score{display:flex;flex-direction:column;align-items:center;gap:1px}
.rli-score-num{font-family:var(--font-display);font-size:18px;line-height:1}
.rli-score-lbl{font-size:7px;font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text-light)}
.rli-precio{font-family:var(--font-display);font-size:15px;color:var(--gold-dark);letter-spacing:.05em}

/* Paginación */
.pagination{display:flex;align-items:center;justify-content:center;gap:6px;padding:2.5rem 1rem 3rem}
.pg-btn{font-family:var(--font-display);font-size:17px;letter-spacing:.06em;min-width:40px;height:40px;padding:0 10px;border-radius:8px;border:1.5px solid var(--border);background:transparent;color:var(--text-light);cursor:pointer;transition:all .15s}
.pg-btn:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}
.pg-btn.pg-active{background:var(--navy);color:#fff;border-color:var(--navy)}
.pg-btn:disabled{opacity:.3;cursor:default}
.pg-prev,.pg-next{font-size:15px}
.pg-ellipsis{font-family:var(--font-body);color:var(--text-light);padding:0 4px;line-height:40px}

/* ── MODAL RESPONSIVE ── */
@media(max-width:768px){
  .modal-panel{width:100%;border-radius:0}
  .modal-panel-body{padding:.75rem;padding-bottom:calc(5rem + env(safe-area-inset-bottom))}
  .mw-scores-layout{flex-direction:column;align-items:stretch}
  .radar-wrap{width:160px;height:160px;align-self:center}
}

/* ── REDUCED MOTION (a11y) ── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .restaurant-grid{grid-template-columns:repeat(2,1fr)}
  .vr-grid{grid-template-columns:repeat(2,1fr)}
  .criterion-grid{grid-template-columns:1fr;padding:2rem 1.25rem 3rem}
  .sobre-hero-title{font-size:clamp(52px,13vw,80px)}
  .sobre-stats-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:0}
  .sobre-stat+.sobre-stat::before{display:none}
  .sobre-stat{padding:1rem 0;flex:1 0 50%;min-width:0}
  .sobre-stat:last-child{order:-1;flex:0 0 100%;padding:1.25rem 0 1.5rem;border-bottom:1px solid rgba(232,176,0,.12);margin-bottom:.5rem}
}
@media(max-width:600px){
  .card-name{font-size:18px}
  .header-inner{position:relative;display:flex;align-items:center;justify-content:space-between;padding:0 1rem}
  .header-logo{height:28px;flex-shrink:0}
  nav{position:absolute;left:0;right:0;display:flex;justify-content:center;pointer-events:none}
  nav a{pointer-events:all;font-size:10px;padding:0 .6rem;letter-spacing:.1em;text-align:center;line-height:1.2}
  .header-auth{flex-shrink:0}
  .auth-user-btn{padding:0;width:28px;justify-content:center}
  .section-inner{padding:5rem 1rem 3rem}
  .sobre-banner{padding:3.5rem 1.25rem}
  .sobre-banner-quote{font-size:22px}
  .restaurant-grid{grid-template-columns:repeat(2,1fr)}
  .vr-grid{grid-template-columns:1fr}
  .vr-inner{padding:0 1.25rem}
  .vr-title{font-size:28px}
  .vr-cta-card{min-height:140px}
  .modal-visits-section,.modal-map-section{padding-left:1.25rem;padding-right:1.25rem}
  .hero-logo{height:95px;margin-bottom:12px}
  .mobile-break{display:block}
  .hero-main-title{text-align:center}
  .hero-cta{margin-top:3.5rem}
}
@media(max-width:380px){
  .restaurant-grid{grid-template-columns:1fr}
  .vr-grid{grid-template-columns:1fr}
}

/* ── CERCA DE MÍ ── */
.cerca-hero{background:var(--navy);padding:7.5rem 2rem 2.5rem;position:relative;overflow:hidden;text-align:center}
.cerca-hero::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpolygon points='24,2 46,24 24,46 2,24' fill='none' stroke='%23E8B000' stroke-width='0.8'/%3E%3C/svg%3E");background-size:48px 48px;opacity:.055;animation:azulejoDrift 90s linear infinite;z-index:0}
.cerca-eyebrow{font-family:var(--font-body);font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin:0 0 .75rem;position:relative;z-index:1}
.cerca-title{font-family:var(--font-display);font-size:clamp(36px,5vw,58px);color:#fff;letter-spacing:.12em;line-height:1;margin:0 0 .75rem;position:relative;z-index:1}
.cerca-gold-line{width:52px;height:2px;background:var(--gold);margin:.75rem auto 0;position:relative;z-index:1}
.cerca-subtitle{font-family:var(--font-body);font-size:13px;color:rgba(247,244,238,.55);line-height:1.7;margin:.75rem auto 0;max-width:420px;position:relative;z-index:1}
/* Body */
.cerca-body{background:var(--bg);padding:0 2rem 4rem}
#section-cerca .admin-section-header{padding:1.75rem 1.5rem .75rem}
#section-cerca .section-inner{padding-bottom:0}
/* Search */
.cerca-search-wrap{position:relative;max-width:1200px;margin:0 auto .75rem}
.cerca-search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--text-light);pointer-events:none}
.cerca-search{width:100%;padding:.72rem 3rem .72rem 2.75rem;border:1px solid var(--border);border-radius:999px;font-family:var(--font-body);font-size:14px;color:var(--navy);background:#fff;outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none}
.cerca-search:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,176,0,.2)}
.cerca-search::placeholder{color:var(--text-light)}
.cerca-search-clear{position:absolute;right:.65rem;top:50%;transform:translateY(-50%);width:28px;height:28px;background:rgba(14,34,68,.08);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--navy);transition:background .15s;padding:0}
.cerca-search-clear:hover{background:rgba(14,34,68,.18)}
.cerca-search-clear svg{width:13px;height:13px}
/* Map wrapper */
.cerca-map-wrap{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--border);box-shadow:0 4px 20px rgba(14,34,68,.08);max-width:1200px;margin:0 auto}
.cerca-map-wrap.is-fullscreen{position:fixed;inset:0;z-index:600;border-radius:0;border:none;box-shadow:none;max-width:none}
.cerca-map-wrap.is-fullscreen #cerca-map{height:100vh}
#cerca-map{height:560px;position:relative;z-index:0}
/* Fullscreen button */
.cerca-fs-btn{position:absolute;top:.65rem;right:.65rem;z-index:500;width:34px;height:34px;background:rgba(14,34,68,.82);border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(4px);transition:background .15s;padding:0}
.cerca-fs-btn:hover{background:var(--navy)}
.cerca-fs-btn svg{width:16px;height:16px}
/* Leaflet controls — posición normal */
#cerca-map .leaflet-top.leaflet-left{top:10px}
#cerca-map .leaflet-top.leaflet-right{top:10px}
/* ── Popup Airbnb-style ── */
.cerca-popup .leaflet-popup-content-wrapper{background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px rgba(14,34,68,.18);padding:0;overflow:hidden}
.cerca-popup .leaflet-popup-content{margin:0;line-height:1}
.cerca-popup .leaflet-popup-tip-container{margin-top:-1px}
.cerca-popup .leaflet-popup-tip{background:#fff;box-shadow:0 2px 6px rgba(14,34,68,.1)}
.cerca-popup .leaflet-popup-close-button{display:none}
.cp-wrap{padding:.85rem 1rem .9rem;min-width:180px;max-width:240px}
.cp-ciudad{font-family:var(--font-body);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:.2rem}
.cp-nombre{font-family:var(--font-display);font-size:20px;letter-spacing:.05em;color:var(--navy);line-height:1.05;margin-bottom:.25rem}
.cp-meta{font-family:var(--font-body);font-size:11px;color:var(--text-light);margin-bottom:.65rem}
.cp-btn{display:block;width:100%;padding:.45rem .75rem;background:var(--navy);color:#fff;font-family:var(--font-display);font-size:13px;letter-spacing:.08em;border:none;border-radius:7px;cursor:pointer;text-align:center;transition:background .15s}
.cp-btn:hover{background:var(--navy-mid)}
/* Pins */
.cerca-pin{width:40px;height:40px;border-radius:50%;background:var(--navy);border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;box-shadow:0 3px 12px rgba(0,0,0,.4);overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}
.cerca-pin:hover,.cerca-pin.active{transform:scale(1.18);box-shadow:0 6px 22px rgba(0,0,0,.55);border-color:#ffd34d}
.cerca-pin img{width:26px;height:26px;filter:brightness(0) invert(1);object-fit:contain;flex-shrink:0;pointer-events:none}
/* Locate button */
.cerca-locate-btn{width:40px;height:40px;background:var(--navy);border:1.5px solid var(--gold);border-radius:50%;color:var(--gold);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.35);transition:background .15s,color .15s;padding:0;margin-bottom:8px;outline:none}
.cerca-locate-btn:hover{background:var(--gold);color:var(--navy)}
.cerca-locate-btn.active{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.cerca-locate-btn.denied{background:#c0392b;color:#fff;border-color:#c0392b}
.cerca-locate-btn svg{width:18px;height:18px}
.cerca-locate-btn.loading svg{animation:locateSpin .8s linear infinite}
@keyframes locateSpin{to{transform:rotate(360deg)}}
/* User location dot */
.user-dot{width:16px;height:16px;position:relative}
.user-dot-inner{width:14px;height:14px;background:#E8B000;border:2px solid #fff;border-radius:50%;position:absolute;top:1px;left:1px;z-index:1}
.user-dot-pulse{width:16px;height:16px;background:rgba(232,176,0,.35);border-radius:50%;position:absolute;top:0;left:0;animation:userPulse 2s ease-out infinite}
@keyframes userPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(3);opacity:0}}
@media(max-width:900px){
  #cerca-map{height:420px}
  .cerca-body{padding:1rem 1rem 3rem}
  .cerca-card-nombre{font-size:18px}
}
@media(max-width:600px){
  .cerca-hero{padding:4.5rem 1rem 2rem}
  .cerca-card-inner{gap:.75rem;padding:.75rem 1rem .75rem 1.1rem}
}

.gm-footer {
  background: var(--navy);
  border-top: 1px solid rgba(232,176,0,.18);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .6rem;
  padding: 2rem 1.5rem 2.5rem;
  text-align: center;
}
.gm-footer-ig {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  text-decoration: none;
  color: var(--gold);
  transition: opacity .2s;
}
.gm-footer-ig:hover { opacity: .72; }
.gm-footer-ig-icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}
.gm-footer-ig-handle {
  font-family: var(--font-body);
  font-size: .88rem;
  font-weight: 500;
  letter-spacing: .06em;
  color: var(--gold);
}
.gm-footer-copy {
  font-family: var(--font-body);
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.28);
  margin: 0;
}
.gm-footer-privacy {
  font-family: var(--font-body);
  font-size: .65rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.18);
  text-decoration: none;
  transition: color .2s;
}
.gm-footer-privacy:hover { color: rgba(255,255,255,.45); }

/* ── MOOD ROWS (v2) ── */

/* ── Hero de sección ── */
.mood-hero{background:var(--navy);padding:5rem 2rem 4rem;position:relative;overflow:hidden;text-align:left}
.mood-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 30% 60%,rgba(232,176,0,.07) 0%,transparent 65%);pointer-events:none;z-index:0}
.mood-hero::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.045;z-index:0;background-repeat:repeat;background-size:48px 48px;background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48'><path d='M24,0 L48,24 L24,48 L0,24 Z' fill='none' stroke='%23E8B000' stroke-width='.65'/><path d='M24,15 L33,24 L24,33 L15,24 Z' fill='none' stroke='%23E8B000' stroke-width='.4'/><path d='M-5,0 L0,-5 L5,0 L0,5 Z M43,0 L48,-5 L53,0 L48,5 Z M-5,48 L0,43 L5,48 L0,53 Z M43,48 L48,43 L53,48 L48,53 Z' fill='none' stroke='%23E8B000' stroke-width='.4'/></svg>");animation:azulejoDrift 90s linear infinite}
.mood-hero-inner{max-width:1200px;margin:0 auto;position:relative;z-index:1}
.mood-hero-eyebrow{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:1.25rem;opacity:.85}
.mood-hero-title{font-family:var(--font-display);font-size:clamp(58px,8vw,96px);letter-spacing:.08em;color:#fff;line-height:.95;margin-bottom:0}
.mood-hero-line{width:52px;height:2px;background:var(--gold);margin:1.6rem 0 1.4rem}
.mood-hero-sub{font-family:var(--font-body);font-size:11px;font-weight:300;color:rgba(255,255,255,.35);letter-spacing:.28em;text-transform:uppercase;margin-bottom:2.5rem}
.mood-hero-adv{display:inline-flex;align-items:center;gap:.5rem;font-size:10px;font-family:var(--font-body);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.35);background:none;border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:.5rem 1.1rem;cursor:pointer;transition:all .2s}
.mood-hero-adv:hover{color:var(--gold);border-color:rgba(232,176,0,.4)}

/* Back bar */
.view-back-bar{margin-bottom:1.75rem}
.view-back-btn{display:inline-flex;align-items:center;gap:.45rem;font-size:10px;font-family:var(--font-body);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-light);background:none;border:none;padding:0;cursor:pointer;transition:color .15s}
.view-back-btn:hover{color:var(--navy)}

/* Mood rows container — vive en .visitas-recientes-section en homepage */
.visitas-recientes-section .mood-rows,.mood-rows{display:flex;flex-direction:column;gap:0;padding-bottom:5rem;background:var(--bg)}

/* Cada fila */
.mood-row{padding-top:1.75rem}
.mood-row+.mood-row{padding-top:1.5rem}
.mood-row-header{padding:0 2rem;display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem;gap:1rem}
.mood-row-title-wrap{display:flex;flex-direction:column;gap:0}
.mood-row-accent{width:36px;height:2px;background:var(--gold);margin-bottom:.5rem}
.mood-row-title{font-family:var(--font-display);font-size:clamp(28px,4vw,42px);letter-spacing:.07em;color:var(--navy);line-height:1;margin-bottom:.2rem}
.mood-row-subtitle{font-family:var(--font-body);font-size:18px;font-weight:400;color:var(--text-light);letter-spacing:.01em}
.mood-row-ver{font-size:10px;font-family:var(--font-body);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-light);background:none;border:none;cursor:pointer;padding:0;transition:color .15s;flex-shrink:0;white-space:nowrap}
.mood-row-ver:hover{color:var(--gold-dark)}

/* Track con fade lateral derecho — se muestra en hover/scroll activo */
.mood-row-track{position:relative}
.mood-row-track::after{content:'';position:absolute;top:0;right:0;bottom:1rem;width:100px;background:linear-gradient(to right,transparent,var(--bg));pointer-events:none;z-index:2;opacity:0;transition:opacity .3s}
.mood-row-track:hover::after,.mood-row-track.is-scrolling::after{opacity:1}
.mood-row-track--static .mood-row-scroll{overflow-x:auto}
.mood-row-track--static::after{display:none}

/* Horizontal scroll */
.mood-row-scroll{display:flex;gap:8px;overflow-x:auto;padding:0 2rem .5rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.mood-row-scroll::-webkit-scrollbar{display:none}

/* Mood card */
.mood-card{flex-shrink:0;width:248px;position:relative;overflow:hidden;aspect-ratio:3/4;cursor:pointer;background:var(--navy);border-radius:8px;box-shadow:inset 0 0 0 0 rgba(232,176,0,.5);transition:box-shadow .3s,transform .3s cubic-bezier(.25,.46,.45,.94)}
.mood-card:hover{box-shadow:inset 0 0 0 2px rgba(232,176,0,.5);transform:translateY(-3px)}
.mood-card .card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.25,.46,.45,.94);will-change:transform}
.mood-card:hover .card-photo{transform:scale(1.06)}
.mood-card .card-no-photo{position:absolute;inset:0;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%)}
/* Gradiente más dramático — más oscuro en la base */
.mood-card .card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(4,10,28,.97) 0%,rgba(8,16,40,.65) 38%,rgba(8,16,40,.1) 68%,transparent 100%);transition:background .4s}
.mood-card:hover .card-overlay{background:linear-gradient(to top,rgba(4,10,28,1) 0%,rgba(8,16,40,.75) 45%,rgba(8,16,40,.15) 72%,transparent 100%)}
.mood-card .card-content{position:absolute;inset:0;padding:1rem 1.1rem;display:flex;flex-direction:column;justify-content:flex-end;height:100%}
.mood-card .card-city{font-size:7px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:4px}
.mood-card .card-name{font-family:var(--font-display);font-size:22px;letter-spacing:.05em;line-height:1.1;color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mood-card .card-bottom-row{display:flex;align-items:flex-end;justify-content:space-between;margin-top:8px}
.mood-card .card-scores-mini{display:flex;gap:7px}
.mood-card .score-mini-num{font-family:var(--font-display);font-size:18px;line-height:1}
.mood-card .score-mini-lbl{font-size:6px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-top:1px}
.mood-card .card-precio{font-family:var(--font-display);font-size:20px;color:var(--gold);letter-spacing:.06em;line-height:1;flex-shrink:0}

/* ── Selección Miguelín — listón dorado con logo ── */
.seleccion-ribbon{position:absolute;top:0;right:18px;width:48px;height:90px;background:var(--gold);clip-path:polygon(0 0,100% 0,100% 100%,50% 83%,0 100%);z-index:5;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.mood-card.mood-card--seleccion{width:320px}
@media(max-width:900px){.mood-card.mood-card--seleccion{width:280px}.seleccion-ribbon{width:36px;height:68px;right:14px}}
@media(max-width:600px){.mood-card.mood-card--seleccion{width:240px}.seleccion-ribbon{width:28px;height:52px;right:10px}}

/* Skeleton mood */
.mood-row-title-skeleton{height:32px;width:220px;background:linear-gradient(90deg,var(--surface2) 0%,var(--surface3) 50%,var(--surface2) 100%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:3px;border-left:3px solid rgba(232,176,0,.3)}
.mood-card-skeleton{flex-shrink:0;width:248px;aspect-ratio:3/4;background:var(--navy);position:relative;overflow:hidden;border-radius:8px}
.mood-card-skeleton::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.06) 50%,rgba(255,255,255,0) 100%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite}

@media(max-width:900px){
  .mood-hero{padding:4.5rem 1.5rem 3rem}
  .mood-card{width:200px}
  .mood-row-track::after{width:60px}
}
@media(max-width:600px){
  .mood-hero{padding:4rem 1.25rem 2.5rem}
  .mood-hero-title{font-size:clamp(48px,13vw,72px)}
  .mood-card{width:165px}
  .mood-row-scroll{gap:6px;padding:0 1.25rem 1rem}
  .mood-row-header{padding:0 1.25rem}
  .mood-row-title{font-size:clamp(22px,6vw,30px)}
  .mood-row-track::after{width:50px}
}

/* ── AUTH ── */
.header-auth{position:relative;flex-shrink:0;display:flex;align-items:center}
.auth-user-btn{background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 1.25rem;height:62px;color:rgba(255,255,255,.45);transition:color .2s;flex-shrink:0}
.auth-user-btn:hover{color:rgba(255,255,255,.85)}
.auth-user-btn.is-logged-in{color:var(--gold)}
.auth-user-btn.is-logged-in:hover{color:var(--gold);opacity:.8}
.auth-user-icon i{font-size:20px}
.auth-user-initial{display:none}

/* Dropdown */
.auth-dropdown{position:absolute;top:100%;right:.75rem;min-width:180px;background:var(--navy);border:1px solid rgba(232,176,0,.45);border-radius:0 0 10px 10px;border-top:none;box-shadow:0 8px 24px rgba(0,0,0,.45);z-index:500;overflow:hidden}
.auth-dd-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.75rem 1.25rem;background:transparent;border:none;color:rgba(255,255,255,.8);font-family:var(--font-body);font-size:13px;letter-spacing:.04em;cursor:pointer;transition:color .15s,background .15s;text-align:left}
.auth-dd-item i{font-size:16px;flex-shrink:0}
.auth-dd-item:hover{color:var(--gold);background:rgba(232,176,0,.08)}
.auth-dd-sep{height:1px;background:rgba(255,255,255,.08);margin:0}
.auth-dd-item--logout{border-top:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.5)}
.auth-dd-item--logout:hover{color:#ff6b6b;background:rgba(255,107,107,.06)}

/* Auth Modal */
.auth-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem}
.auth-card{background:var(--navy);border:1px solid rgba(232,176,0,.35);border-radius:16px;width:100%;max-width:420px;padding:2.5rem 2rem 2rem;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.auth-close{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:rgba(255,255,255,.45);font-size:18px;cursor:pointer;line-height:1;padding:.25rem .5rem;border-radius:6px;transition:color .2s}
.auth-close:hover{color:#fff}
.auth-title{font-family:var(--font-display);color:#fff;font-size:32px;letter-spacing:.08em;margin:0 0 .4rem;line-height:1}
.auth-subtitle{font-family:var(--font-body);color:rgba(255,255,255,.45);font-size:13px;margin:0 0 1.75rem;line-height:1.5}
.auth-section-label{font-family:var(--font-body);color:var(--gold);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .9rem}
.auth-user-email{font-family:var(--font-body);color:rgba(255,255,255,.4);font-size:13px;margin:0 0 1.5rem;background:rgba(255,255,255,.05);padding:.6rem .9rem;border-radius:8px}
.auth-field{margin-bottom:.9rem}
.auth-input{width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:.75rem 1rem;color:#fff;font-family:var(--font-body);font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}
.auth-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,176,0,.18)}
.auth-input::placeholder{color:rgba(255,255,255,.3)}
.auth-error{font-family:var(--font-body);font-size:12px;color:#ff6b6b;margin:.2rem 0 .75rem;min-height:1em}
.auth-success{font-family:var(--font-body);font-size:13px;color:var(--gold);margin:.2rem 0 .75rem;line-height:1.5}
.auth-btn-primary{width:100%;padding:.85rem;background:transparent;border:1px solid rgba(232,176,0,.5);color:var(--gold);font-family:var(--font-display);font-size:18px;letter-spacing:.1em;border-radius:50px;cursor:pointer;position:relative;overflow:hidden;transition:color .3s ease,border-color .3s ease;margin-top:.25rem}
.auth-btn-primary::before{content:'';position:absolute;inset:0;background:var(--gold);transform:translateX(-101%);transition:transform .35s cubic-bezier(.25,.46,.45,.94)}
.auth-btn-primary:hover::before{transform:translateX(0)}
.auth-btn-primary:hover{color:var(--navy);border-color:var(--gold)}
.auth-btn-primary span{position:relative;z-index:1}
.auth-remember{display:flex;align-items:center;gap:.5rem;margin:.6rem 0 .1rem;cursor:pointer}
.auth-remember input[type=checkbox]{width:15px;height:15px;accent-color:#fff;cursor:pointer;flex-shrink:0}
.auth-remember span{font-family:var(--font-body);font-size:12.5px;color:rgba(255,255,255,.45);user-select:none}
/* Bell */
.auth-bell-wrap{position:relative;flex-shrink:0;display:flex;align-items:center}
.auth-bell-btn{background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 .75rem;height:62px;color:rgba(255,255,255,.45);transition:color .2s;position:relative}
.auth-bell-btn:hover{color:rgba(255,255,255,.85)}
.auth-bell-btn.has-new{color:var(--gold);animation:bellRing .5s ease .2s both}
.auth-bell-btn i{font-size:20px}
.auth-bell-dot{position:absolute;top:14px;right:8px;width:8px;height:8px;background:var(--gold);border-radius:50%;border:2px solid var(--navy);animation:pulseDot 2s ease-in-out infinite}
@keyframes bellRing{0%,100%{transform:rotate(0)}20%{transform:rotate(-15deg)}40%{transform:rotate(15deg)}60%{transform:rotate(-10deg)}80%{transform:rotate(10deg)}}
@keyframes pulseDot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.7}}
.auth-bell-dropdown{position:absolute;top:calc(100% + 4px);right:0;width:280px;background:var(--navy);border:1px solid rgba(232,176,0,.35);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.5);z-index:500;overflow:hidden}
.auth-bell-title{font-family:var(--font-display);font-size:13px;letter-spacing:.14em;color:var(--gold);padding:.75rem 1rem .5rem;border-bottom:1px solid rgba(255,255,255,.07);margin:0}
.auth-bell-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;cursor:pointer;transition:background .15s;border-bottom:1px solid rgba(255,255,255,.05)}
.auth-bell-item:last-child{border-bottom:none}
.auth-bell-item:hover{background:rgba(232,176,0,.08)}
.auth-bell-item-img{width:44px;height:44px;border-radius:8px;object-fit:cover;flex-shrink:0;background:rgba(255,255,255,.08)}
.auth-bell-item-info{flex:1;min-width:0}
.auth-bell-item-name{font-family:var(--font-display);font-size:15px;color:#fff;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.auth-bell-item-meta{font-family:var(--font-body);font-size:11px;color:rgba(255,255,255,.4);margin-top:2px}
.auth-bell-item.is-new .auth-bell-item-name{color:var(--gold)}
.auth-bell-item-badge{font-family:var(--font-body);font-size:9px;font-weight:600;letter-spacing:.08em;background:var(--gold);color:var(--navy);padding:2px 6px;border-radius:4px;flex-shrink:0}

/* Config options */
.auth-config-option{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:10px;color:rgba(255,255,255,.8);font-family:var(--font-body);font-size:14px;cursor:pointer;transition:background .2s,color .2s;margin-bottom:.25rem}
.auth-config-option:hover{background:rgba(232,176,0,.08);color:var(--gold);border-color:rgba(232,176,0,.3)}
.auth-config-option--danger:hover{background:rgba(255,107,107,.06);color:#ff6b6b;border-color:rgba(255,107,107,.3)}
.auth-config-option span{display:flex;align-items:center;gap:.6rem}
.auth-config-option i{font-size:16px;transition:transform .25s}
.auth-config-section{padding:.75rem 0 .25rem}
.auth-notif-row{display:flex;align-items:center;justify-content:space-between;padding:.25rem 0 .5rem}
.auth-notif-row span{font-family:var(--font-body);font-size:13px;color:rgba(255,255,255,.7)}
.auth-config-hint{font-family:var(--font-body);font-size:12px;color:rgba(255,255,255,.35);margin:.25rem 0 .75rem;line-height:1.5}
/* Toggle switch */
.auth-toggle{position:relative;display:inline-flex;width:44px;height:24px;cursor:pointer}
.auth-toggle input{opacity:0;width:0;height:0}
.auth-toggle-track{position:absolute;inset:0;background:rgba(255,255,255,.15);border-radius:12px;transition:background .2s}
.auth-toggle-track::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s}
.auth-toggle input:checked+.auth-toggle-track{background:var(--gold)}
.auth-toggle input:checked+.auth-toggle-track::after{transform:translateX(20px)}
/* Danger button */
.auth-btn-danger{width:100%;padding:.85rem;background:transparent;border:1px solid rgba(255,107,107,.4);color:#ff6b6b;font-family:var(--font-display);font-size:18px;letter-spacing:.1em;border-radius:50px;cursor:pointer;position:relative;overflow:hidden;transition:color .3s,border-color .3s;margin-top:.25rem}
.auth-btn-danger::before{content:'';position:absolute;inset:0;background:#ff6b6b;transform:translateX(-101%);transition:transform .35s cubic-bezier(.25,.46,.45,.94)}
.auth-btn-danger:hover::before{transform:translateX(0)}
.auth-btn-danger:hover{color:#fff;border-color:#ff6b6b}
.auth-btn-danger span{position:relative;z-index:1}
.auth-links{margin-top:1.25rem;display:flex;flex-direction:column;gap:.5rem;align-items:center}
.auth-link{font-family:var(--font-body);font-size:12.5px;color:rgba(255,255,255,.45);cursor:pointer;text-decoration:none;transition:color .15s;letter-spacing:.03em}
.auth-link:hover{color:var(--gold)}
.auth-link strong{color:rgba(255,255,255,.75);font-weight:500}
@media(max-width:480px){
  .auth-card{padding:2rem 1.25rem 1.5rem}
  .auth-title{font-size:26px}
  .auth-input{font-size:16px}
}

/* ══════════════════════════════════════════════════════════
   ADMIN — Tools Dashboard
══════════════════════════════════════════════════════════ */
.admin-section-header{text-align:center;padding:3rem 1.5rem 1.5rem}
.admin-section-eyebrow{font-family:var(--font-body);font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem}
.admin-section-title{font-family:var(--font-display);font-size:clamp(36px,6vw,60px);letter-spacing:.12em;color:var(--navy);margin:0 0 .75rem}
.admin-section-rule{width:52px;height:2px;background:var(--gold);margin:0 auto}
.admin-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;max-width:600px;margin:2rem auto 3rem;padding:0 1.5rem}
.admin-tool-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem;cursor:pointer;text-align:center;transition:box-shadow .2s,transform .2s;position:relative}
.admin-tool-card:hover{box-shadow:0 4px 20px rgba(14,34,68,.12);transform:translateY(-2px)}
.admin-tool-card--soon{opacity:.6;cursor:default;pointer-events:none}
.admin-tool-card i{font-size:36px;color:var(--gold);margin-bottom:.75rem;display:block}
.admin-tool-name{font-family:var(--font-display);font-size:24px;color:var(--navy);letter-spacing:.08em}
.admin-tool-desc{font-size:12px;color:var(--text-light);margin-top:.35rem}
.admin-tool-badge{position:absolute;top:.75rem;right:.75rem;background:var(--border);color:var(--text-light);font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .5rem;border-radius:999px}

/* ══════════════════════════════════════════════════════════
   BORRADORES — Layout & Header
══════════════════════════════════════════════════════════ */
#section-borradores{min-height:100vh;padding-top:4.5rem}
.borradores-header{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.5rem;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:50}
.borradores-back{background:transparent;border:none;cursor:pointer;color:var(--text-light);font-size:12px;display:flex;align-items:center;gap:.35rem;padding:0;font-family:var(--font-body);letter-spacing:.04em;flex-shrink:0}
.borradores-back:hover{color:var(--navy)}
.borradores-back::after{content:'';display:inline-block;width:1px;height:16px;background:var(--border);margin-left:1rem;vertical-align:middle}
.borradores-title{font-family:var(--font-display);font-size:24px;letter-spacing:.08em;color:var(--navy);position:absolute;left:50%;transform:translateX(-50%)}
.btn-nueva-visita{width:100%;background:rgba(232,176,0,.12);border:1.5px solid rgba(232,176,0,.45);border-radius:14px;padding:.9rem 1.1rem;cursor:pointer;display:flex;align-items:center;gap:.85rem;transition:background .15s;margin-top:1rem;margin-bottom:1.25rem}
.btn-nueva-visita:hover{background:rgba(232,176,0,.2)}
.btn-nv-icon{width:36px;height:36px;background:rgba(232,176,0,.2);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--gold-dark,#b88a00);flex-shrink:0}
.btn-nv-label{font-family:var(--font-display);font-size:17px;letter-spacing:.12em;color:var(--gold-dark,#b88a00);flex:1;text-align:left}
.btn-nv-arrow{font-size:16px;color:rgba(184,138,0,.5);flex-shrink:0}

/* ── Dashboard body (centrado) ── */
.borradores-dashboard-body{max-width:680px;margin:0 auto;padding:0 1.25rem 3rem}
.borradores-section-label{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-light);padding:1.5rem 0 .6rem;border-top:1px solid var(--border);margin-top:.5rem}
.borradores-section-label:first-child{border-top:none;margin-top:0}

/* ── Borrador cards ── */
.borrador-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:10px;padding:.85rem 1rem .85rem .9rem;margin-bottom:.5rem;cursor:pointer;transition:box-shadow .15s,border-left-color .15s;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.borrador-card:hover{box-shadow:0 2px 14px rgba(14,34,68,.09)}
.borrador-card--capturando{border-left-color:var(--gold)}
.borrador-card--listo{border-left-color:#16a34a}
.borrador-card--publicado{border-left-color:var(--navy)}
.borrador-card-left{min-width:0}
.borrador-card-name{font-family:var(--font-display);font-size:19px;color:var(--navy);letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.borrador-card-meta{display:flex;align-items:center;gap:.5rem;margin-top:.2rem}
.borrador-card-date{font-size:10px;color:var(--gold-dark,#b88a00);text-transform:uppercase;letter-spacing:.1em}
.borrador-card-sep{font-size:10px;color:var(--border);line-height:1}
.borrador-card-platillos{font-size:10px;color:var(--text-light);letter-spacing:.03em}
.borrador-estado{font-size:8px;text-transform:uppercase;letter-spacing:.12em;padding:.2rem .55rem;border-radius:999px;white-space:nowrap;flex-shrink:0}
.borrador-estado--capturando{background:rgba(232,176,0,.12);color:#a07800}
.borrador-estado--listo{background:rgba(34,197,94,.1);color:#16a34a}
.borrador-estado--publicado{background:rgba(14,34,68,.1);color:var(--navy)}
.borrador-empty{padding:2.5rem 1rem;font-size:12px;color:var(--text-light);text-align:center;border:1px dashed var(--border);border-radius:10px;margin-bottom:.5rem;letter-spacing:.03em}

/* ── Form slide panel ── */
.borradores-form-wrap{position:fixed;inset:0;z-index:500;display:none;pointer-events:none}
.borradores-form-wrap.open{display:block;pointer-events:auto}
.borradores-form-overlay{position:absolute;inset:0;background:rgba(8,16,40,.55)}
.borradores-form-panel{position:absolute;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--bg);overflow-y:auto;transform:translateX(100%);transition:transform .28s cubic-bezier(.25,.46,.45,.94);box-shadow:-4px 0 24px rgba(0,0,0,.15)}
.borradores-form-panel.is-open{transform:translateX(0)}
.borradores-form-panel.closing{transform:translateX(100%)}

/* ── Form fields ── */
.borrador-form{padding:1rem 1.5rem;display:flex;flex-direction:column;gap:.75rem;padding-bottom:.5rem}
.borrador-form-footer{padding:1rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:8px}
/* Widgets del formulario */
.bf-widget{background:#fff;border:1px solid var(--border);border-radius:14px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}
.bf-widget--platillos{border-style:dashed;padding:1rem}
.bf-widget-divider{height:1px;background:var(--border);margin:0}
/* Header del form — navy con patrón */
.borradores-form-header{
  background:var(--navy);
  border-bottom:2px dashed rgba(232,176,0,.35) !important;
  position:relative;
  overflow:hidden;
}
.borradores-form-header::before{
  content:'';
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpath d='M24 0 L48 24 L24 48 L0 24Z' fill='none' stroke='rgba(232,176,0,0.07)' stroke-width='1'/%3E%3C/svg%3E");
  background-size:48px 48px;
  pointer-events:none;
}
.borradores-form-header .borradores-title{color:#fff;position:relative;z-index:1;left:auto;transform:none;flex:1}
.borradores-form-header .bf-form-estado{position:relative;z-index:1}
.borradores-form-header .autosave-indicator{color:rgba(255,255,255,.5);position:relative;z-index:1}
.borradores-close-btn{background:transparent;border:none;cursor:pointer;color:var(--text-light);font-size:18px;display:flex;align-items:center;padding:4px;border-radius:6px;transition:color .15s;position:relative;z-index:1}
.borradores-close-btn:hover{color:var(--navy)}
.borradores-form-header .borradores-close-btn{color:rgba(255,255,255,.55)}
.borradores-form-header .borradores-close-btn:hover{color:#fff}
.bf-form-estado{font-size:8px;letter-spacing:.12em;flex-shrink:0}
/* Fecha + botón Hoy */
.bf-fecha-row{display:flex;gap:.5rem;align-items:center}
.bf-fecha-row .bf-input{flex:1}
.bf-hoy-btn{flex-shrink:0;padding:.45rem .85rem;border-radius:8px;border:1.5px solid var(--border);background:transparent;font-family:var(--font-body);font-size:12px;color:var(--text-light);cursor:pointer;transition:all .15s;white-space:nowrap}
.bf-hoy-btn:hover{border-color:var(--gold);color:var(--gold-dark)}
/* Footer */
.bff-row{display:flex;gap:.5rem}
.bff-btn--save,.bff-btn--exit{position:relative;overflow:hidden;border-radius:10px;padding:.85rem 1rem;font-family:var(--font-display);font-size:17px;letter-spacing:.12em;cursor:pointer;transition:color .3s ease,border-color .3s ease;display:flex;align-items:center;justify-content:center;gap:6px}
.bff-btn--save span,.bff-btn--exit span{position:relative;z-index:1}
.bff-btn--save::before,.bff-btn--exit::before{content:'';position:absolute;inset:0;transform:translateX(-101%);transition:transform .35s cubic-bezier(.25,.46,.45,.94)}
.bff-btn--save:hover::before,.bff-btn--exit:hover::before{transform:translateX(0)}
/* Guardar — outline gold */
.bff-btn--save{flex:1;background:transparent;border:1.5px solid var(--gold);color:var(--gold-dark,#b88a00)}
.bff-btn--save::before{background:var(--gold)}
.bff-btn--save:hover{color:var(--navy);border-color:var(--gold)}
/* Salir — outline navy tenue */
.bff-btn--exit{flex:1;background:transparent;border:1.5px solid rgba(14,34,68,.25);color:var(--text-light);font-size:14px}
.bff-btn--exit::before{background:rgba(14,34,68,.08)}
.bff-btn--exit:hover{color:var(--navy);border-color:rgba(14,34,68,.4)}
/* Eliminar */
.bff-btn--delete{background:none;border:none;font-family:var(--font-body);font-size:11px;color:#B82020;text-decoration:underline;cursor:pointer;padding:4px;text-align:center;opacity:.7;transition:opacity .15s;width:100%}
.bff-btn--delete:hover{opacity:1}
.bf-group{display:flex;flex-direction:column;gap:.4rem}
.bf-label{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-light);display:block}
.bf-input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.65rem .9rem;font-family:var(--font-body);font-size:14px;color:var(--navy);outline:none;box-sizing:border-box}
.bf-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,176,0,.15)}
.bf-textarea{resize:vertical;min-height:80px}
.bf-precio-group{display:flex;gap:.5rem}
.bf-precio-btn{flex:1;padding:.5rem;background:var(--surface);border:1.5px solid var(--border);border-radius:8px;font-family:var(--font-display);font-size:14px;color:var(--text-light);cursor:pointer;transition:all .15s}
.bf-precio-btn.active{border-color:var(--gold);color:var(--gold-dark,#b88a00);background:rgba(232,176,0,.06)}
.bf-estado-badge{display:inline-block}

/* ── Platillo cards inside form ── */
.bf-platillo-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.85rem 1.1rem;margin-bottom:.75rem;transition:box-shadow .15s}
.bf-platillo-card:hover{box-shadow:0 2px 10px rgba(14,34,68,.08)}
.bfpc-body{max-height:0;overflow:hidden;transition:max-height .35s ease}
.bfpc-body.open{max-height:700px}
.bfpc-body-inner{padding-top:.85rem;display:flex;flex-direction:column;gap:.75rem}
.bf-platillo-header{display:flex;align-items:center;gap:.5rem}
.bf-platillo-header .bf-input{flex:1;margin-bottom:0}
.bf-platillo-num{font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:var(--text-light)}
.bf-platillo-remove{background:transparent;border:none;color:var(--text-light);cursor:pointer;font-size:18px;padding:0;line-height:1}
.bf-platillo-remove:hover{color:#ef4444}
.bf-platillo-remove-link{background:none;border:none;font-family:var(--font-body);font-size:11px;color:rgba(184,32,32,.5);cursor:pointer;padding:6px 0 2px;text-decoration:underline;transition:color .15s;display:block;margin-top:.25rem}
.bf-platillo-remove-link:hover{color:#B82020}
/* Toggle btn (collapse/expand) */
.bfpc-toggle-btn{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--border);background:transparent;color:var(--text-light);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;transition:all .15s}
.bfpc-toggle-btn:hover{border-color:var(--gold);color:var(--gold-dark)}
/* Vista colapsada */
.bfpc-collapsed{display:flex;align-items:center;gap:10px}
.bfpc-left{flex:1;min-width:0}
.bfpc-name{font-family:var(--font-display);font-size:19px;letter-spacing:.06em;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1}
.bfpc-hint{font-size:12px;color:var(--text-light);font-style:italic}
.bfpc-scores-inline{display:flex;align-items:center;gap:8px;flex-shrink:0}
.bfpc-score-col{text-align:center;min-width:22px}
.bfpc-score-lbl{display:block;font-size:7px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-light);font-weight:600;margin-bottom:1px}
.bfpc-score-num{display:block;font-family:var(--font-display);font-size:17px;color:var(--gold-dark,#b88a00);line-height:1}
.bfpc-score-num.empty{color:var(--border);font-size:13px}
.bf-platillo-scores{display:flex;flex-direction:column;gap:.75rem}
.bf-score-row{display:flex;flex-direction:column;gap:5px}
.bf-score-row-label{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-dark,#b88a00);font-weight:600}
.bf-score-btns{display:flex;gap:5px}
.bf-score-btn{flex:1;height:38px;border-radius:10px;border:1.5px solid var(--border);background:var(--bg);font-family:var(--font-display);font-size:18px;color:var(--text-light);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.bf-score-btn:active{transform:scale(.93)}
.bf-score-desc{font-size:11px;font-family:var(--font-body);min-height:1.2em;opacity:.85;transition:opacity .15s;padding-left:1px}
.bf-fotos-section{display:flex;flex-direction:column;gap:5px}
.bf-platillo-fotos{display:flex;gap:.75rem}
.bf-fotos-extra-wrap{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.25rem}
.bf-hint-text{font-size:11px;color:var(--text-light);margin:0 0 .5rem;line-height:1.4;opacity:.8}
.bf-foto-slot{width:80px;height:80px;border-radius:8px;border:1.5px dashed var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative;flex-shrink:0;background:var(--surface)}
.bf-foto-slot img{width:100%;height:100%;object-fit:cover}
.bf-foto-slot i{font-size:22px;color:var(--text-light)}
.bf-foto-slot:hover i{color:var(--gold)}
.bf-foto-remove{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.55);color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}
.btn-add-platillo{width:100%;padding:.75rem;border:1.5px dashed var(--border);border-radius:10px;background:transparent;color:var(--text-light);font-family:var(--font-body);font-size:13px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:.5rem}
.btn-add-platillo:hover{border-color:var(--gold);color:var(--gold-dark,#b88a00)}

/* ── Autocomplete ── */
.bf-ac-wrap{position:relative}
.bf-ac-list{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:0 0 8px 8px;box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:100;max-height:200px;overflow-y:auto;display:none}
.bf-ac-item{padding:.6rem .9rem;cursor:pointer;font-size:13px;color:var(--navy)}
.bf-ac-item:hover{background:var(--bg)}
.bf-ac-name{font-weight:500}
.bf-ac-meta{font-size:11px;color:var(--text-light);margin-top:1px}

/* ── Autosave indicator ── */
.autosave-indicator{font-size:11px;color:var(--text-light);opacity:0;transition:opacity .3s;font-family:var(--font-body)}
.autosave-indicator.visible{opacity:1}

/* ── Delete button ── */
.bf-delete-btn{background:transparent;border:1px solid rgba(239,68,68,.35);color:#ef4444;border-radius:8px;padding:.6rem 1rem;font-family:var(--font-body);font-size:13px;cursor:pointer;transition:all .15s;width:100%}
.bf-delete-btn:hover{background:rgba(239,68,68,.06);border-color:#ef4444}

/* ── Mobile ── */
@media(max-width:600px){
  .admin-dashboard{grid-template-columns:1fr;max-width:100%}
  .borradores-form-panel{width:100vw}
  .bf-score-btn{height:34px;font-size:16px}
}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── ESTADÍSTICAS ── */
#section-estadisticas{min-height:100vh;padding-top:4.5rem}
.stats-body{max-width:880px;margin:0 auto;padding:1.75rem 1.5rem 5rem}
.stats-loading{text-align:center;padding:4rem;color:var(--text-light);font-size:13px;font-family:var(--font-body)}
.stats-loading-icon{display:inline-block;animation:spin 1s linear infinite;margin-right:.4rem}

/* KPI strip */
.stats-kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem}
.stats-kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.5rem 1rem;text-align:center}
.stats-kpi-num{font-family:var(--font-display);font-size:clamp(40px,5vw,56px);color:var(--navy);letter-spacing:.04em;line-height:1}
.stats-kpi-label{font-family:var(--font-body);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--text-light);margin-top:.65rem}

/* Two-col grid */
.stats-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}

/* Widgets */
.stats-widget{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.5rem}
.stats-widget-full{margin-bottom:1rem}
.stats-widget-label{font-family:var(--font-body);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-dark);margin-bottom:1.1rem;display:block}

/* Criterios */
.stats-global-num{font-family:var(--font-display);font-size:clamp(46px,6vw,60px);color:var(--navy);letter-spacing:.04em;line-height:1}
.stats-global-sub{font-family:var(--font-body);font-size:11px;color:var(--text-light);margin:.15rem 0 1.4rem}
.stats-crit-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.85rem}
.stats-crit-row:last-child{margin-bottom:0}
.stats-crit-name{font-family:var(--font-body);font-size:10px;color:var(--navy);width:92px;flex-shrink:0}
.stats-crit-bar-wrap{flex:1;height:5px;background:rgba(14,34,68,.1);border-radius:3px;overflow:hidden}
.stats-crit-bar{height:100%;border-radius:3px;width:0;transition:width .9s cubic-bezier(.4,0,.2,1)}
.stats-crit-val{font-family:var(--font-display);font-size:18px;letter-spacing:.04em;width:32px;text-align:right;flex-shrink:0}

/* Tipo */
.stats-tipo-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.9rem}
.stats-tipo-row:last-child{margin-bottom:0}
.stats-tipo-name{font-family:var(--font-body);font-size:10px;color:var(--navy);width:72px;flex-shrink:0}
.stats-tipo-bar-wrap{flex:1;height:5px;background:rgba(14,34,68,.1);border-radius:3px;overflow:hidden}
.stats-tipo-bar{height:100%;border-radius:3px;background:rgba(14,34,68,.45);width:0;transition:width .9s cubic-bezier(.4,0,.2,1)}
.stats-tipo-count{font-family:var(--font-display);font-size:18px;color:var(--text-light);letter-spacing:.04em;width:24px;text-align:right;flex-shrink:0}

/* Ciudad */
.stats-ciudad-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.8rem}
.stats-ciudad-row:last-child{margin-bottom:0}
.stats-ciudad-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.stats-ciudad-header .stats-widget-label{margin-bottom:0}
.stats-ciudad-filter{display:flex;gap:.35rem;flex-wrap:wrap}
.scc-btn{font-family:var(--font-body);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light);background:none;border:1px solid var(--border);border-radius:999px;padding:.28rem .7rem;cursor:pointer;transition:all .15s}
.scc-btn:hover{border-color:var(--navy);color:var(--navy)}
.scc-btn.scc-active{background:var(--navy);color:#fff;border-color:var(--navy)}
.stats-ciudad-name{font-family:var(--font-body);font-size:11px;color:var(--navy);width:160px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stats-ciudad-bar-wrap{flex:1;height:6px;background:rgba(14,34,68,.1);border-radius:3px;overflow:hidden}
.stats-ciudad-bar{height:100%;border-radius:3px;background:rgba(14,34,68,.4);width:0;transition:width .9s cubic-bezier(.4,0,.2,1)}
.stats-ciudad-vis{font-family:var(--font-body);font-size:10px;color:var(--text-light);width:28px;text-align:right;flex-shrink:0}
.stats-ciudad-score{font-family:var(--font-display);font-size:16px;letter-spacing:.04em;width:34px;text-align:right;flex-shrink:0}

/* Timeline */
.stats-chart-wrap{position:relative;height:200px}

/* Ratings widget */
.stats-ratings-list{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem}
.stats-rating-row{display:flex;align-items:center;gap:.75rem;padding:.45rem 0;border-bottom:1px solid var(--border)}
.stats-rating-row:last-child{border-bottom:none}
.stats-rating-rank{font-family:var(--font-display);font-size:18px;color:var(--gold);width:20px;text-align:center;flex-shrink:0}
.stats-rating-name{font-family:var(--font-body);font-size:13px;color:var(--navy);font-weight:500;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stats-rating-bars{width:120px;flex-shrink:0}
.stats-rating-bar-wrap{height:6px;background:var(--border);border-radius:3px;overflow:hidden}
.stats-rating-bar{height:100%;width:0;border-radius:3px;transition:width .6s ease}
.stats-rating-bar--love{background:#e55}
.stats-rating-counts{display:flex;gap:.6rem;flex-shrink:0}
.src-love,.src-like,.src-dis{display:flex;align-items:center;gap:.2rem;font-family:var(--font-body);font-size:12px}
.src-love{color:#e55}.src-like{color:#2A7A10}.src-dis{color:var(--text-light)}
.src-love i,.src-like i,.src-dis i{font-size:12px}

/* Responsive */
@media(max-width:660px){
  .stats-kpi-strip{grid-template-columns:repeat(2,1fr)}
  .stats-grid-2{grid-template-columns:1fr}
  .stats-ciudad-name{width:110px}
}

/* ── MODAL — RATING SUMMARY (opinión pública) ── */
.modal-hero-wrap{position:relative}
.modal-rating-summary{position:absolute;bottom:1rem;right:1rem;z-index:4;display:flex;align-items:center;gap:.5rem;padding:.4rem .9rem;background:rgba(14,34,68,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:999px}
.mrs-item{display:flex;align-items:center;gap:.25rem;font-family:var(--font-body);font-size:12px;color:rgba(255,255,255,.8)}
.mrs-item i{font-size:13px}
.mrs-item.mrs-loves i{color:#ff7b7b}
.mrs-sep{color:rgba(255,255,255,.25);font-size:10px}

/* ── SEARCH — BACKDROP + DROPDOWN EN LUGAR ── */

/* Backdrop oscuro (igual que el modal) */
.search-backdrop{position:fixed;inset:0;z-index:200;background:rgba(14,34,68,.6);display:none;animation:searchBdIn .2s ease}
.search-backdrop.open{display:block}
@keyframes searchBdIn{from{opacity:0}to{opacity:1}}

/* Outer wrapper (barra + cancel + dropdown) */
.search-bar-outer{position:relative;margin-bottom:1rem;display:flex;align-items:center;gap:.75rem}
.search-bar-outer .search-bar-wrap{flex:1;margin-bottom:0}
.search-bar-outer.search-active{z-index:250}
.search-bar-outer.search-active .search-input{padding-right:2.5rem}

/* Botón ✕ dentro del input */
.search-input-clear-btn{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:rgba(14,34,68,.1);border:none;border-radius:50%;width:20px;height:20px;display:none;align-items:center;justify-content:center;cursor:pointer;color:var(--navy);font-size:10px;padding:0}
.search-input-clear-btn:hover{background:rgba(14,34,68,.18)}


/* Dropdown */
.search-dropdown{position:absolute;top:calc(100% + .4rem);left:0;right:0;background:var(--bg);border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 40px rgba(14,34,68,.2);max-height:72vh;overflow-y:auto;padding:1.25rem 1.5rem 2rem;animation:searchDdIn .15s ease}
@keyframes searchDdIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

/* Sections */
.search-section{margin-bottom:1.5rem}
.search-section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.75rem}
.search-section-title{font-family:var(--font-display);font-size:22px;letter-spacing:.08em;color:var(--navy);margin-bottom:.75rem}
.search-section-header .search-section-title{margin-bottom:0}
.search-clear-all{font-family:var(--font-body);font-size:11px;color:var(--gold-dark);background:none;border:none;cursor:pointer;padding:0}

/* Recent items */
.search-recent-item{display:flex;align-items:center;gap:.85rem;padding:.65rem 0;border-bottom:1px solid var(--border);cursor:pointer;transition:opacity .15s}
.search-recent-item:hover{opacity:.7}
.search-recent-icon{color:var(--text-light);flex-shrink:0;font-size:15px}
.search-recent-text{flex:1;font-family:var(--font-body);font-size:14px;color:var(--navy)}
.search-recent-remove{background:none;border:none;color:var(--text-light);cursor:pointer;padding:.2rem .4rem;font-size:12px;opacity:.6;transition:opacity .15s;flex-shrink:0}
.search-recent-remove:hover{opacity:1}

/* Cocinas grid */
.search-cocinas-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
@media(min-width:520px){.search-cocinas-grid{grid-template-columns:repeat(3,1fr)}}
.search-cocina-tile{border-radius:14px;padding:1rem;min-height:80px;display:flex;align-items:flex-end;cursor:pointer;transition:transform .15s,filter .15s;position:relative;overflow:hidden}
.search-cocina-tile:hover{transform:scale(.97);filter:brightness(1.08)}
.search-cocina-tile-name{font-family:var(--font-display);font-size:20px;letter-spacing:.06em;line-height:1.1;position:relative;z-index:1}

/* Results */
.search-result-item{display:flex;align-items:center;gap:.9rem;padding:.75rem 0;border-bottom:1px solid var(--border);cursor:pointer;transition:opacity .15s}
.search-result-item:hover{opacity:.7}
.search-result-photo{width:52px;height:52px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--surface)}
.search-result-photo-empty{width:52px;height:52px;border-radius:8px;background:var(--border);flex-shrink:0}
.search-result-info{flex:1;min-width:0}
.search-result-nombre{font-family:var(--font-display);font-size:20px;letter-spacing:.04em;color:var(--navy);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-result-meta{font-family:var(--font-body);font-size:10px;color:var(--text-light);margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-result-score{font-family:var(--font-display);font-size:22px;letter-spacing:.04em;flex-shrink:0}
.search-empty{text-align:center;padding:3rem 1rem;font-family:var(--font-body);font-size:13px;color:var(--text-light)}
