/* ===========================================================
   GUÍA TOTAL MÓVIL — Identidad morado + dorado · Mobile-first
   Diseño premium, energético, plano (SIN sombras).
   =========================================================== */

/* Tipografía propia (alojada en el sitio, sin CDN externo):
   fuente variable que cubre los pesos 400–800 en un solo archivo. */
@font-face{
  font-family:'Plus Jakarta Sans';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url(../fonts/plus-jakarta-sans.woff2) format('woff2');
}

:root{
  /* Marca (extraída del logo) */
  --morado:#40178b; --morado-700:#3A0A78; --morado-900:#220A4E;
  --violeta:#7C3AED; --violeta-300:#A974F5;
  --dorado:#feb605; --dorado-600:#E0A000; --dorado-200:#FFE08A;
  --wa:#25d366; --wa-700:#128c4a;
  /* Neutros con matiz violeta (cálidos, no fríos) */
  --tinta:#1d1530; --gris:#6c6582; --gris-claro:#a39bb6;
  --linea:#ece8f5; --linea-2:#ddd6ee;
  --fondo:#f6f4fc; --blanco:#fff;
  /* Forma (radios) */
  --r:16px; --r-sm:11px; --r-lg:24px; --r-pill:999px;
  /* Degradados de marca */
  --grad-morado:linear-gradient(135deg,var(--morado) 0%,var(--violeta) 100%);
  --grad-oscuro:linear-gradient(150deg,var(--morado-900) 0%,var(--morado) 55%,var(--violeta) 115%);
  --grad-dorado:linear-gradient(135deg,#FFCB2D 0%,var(--dorado) 55%,var(--dorado-600) 100%);
  --max:1180px;
}
*,*::before,*::after{box-sizing:border-box;margin:0}
[hidden]{display:none!important}
/* scrollbar-gutter reserva el espacio de la barra de scroll SIEMPRE:
   así el contenido no "salta" al pasar de una página larga a una corta.
   -webkit-tap-highlight-color: quita el recuadro/destello gris al tocar en móvil
   (Android/iOS). Es heredable, así cubre TODOS los botones, menús y tarjetas. */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scrollbar-gutter:stable;scroll-padding-top:96px;
  -webkit-tap-highlight-color:transparent}
@supports not (scrollbar-gutter:stable){html{overflow-y:scroll}}
/* overflow-x:clip evita CUALQUIER barra de scroll horizontal accidental SIN romper los
   elementos "sticky" (clip no crea contenedor de scroll, a diferencia de 'hidden', que en
   algunos navegadores rompe la cabecera fija). Los contenedores que SÍ deben deslizarse
   (carruseles) tienen su propio overflow y siguen funcionando. */
body{font-family:'Plus Jakarta Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--tinta);background:var(--fondo);line-height:1.55;-webkit-font-smoothing:antialiased;
  overflow-x:clip}
a{color:inherit;text-decoration:none}
/* Tap rápido (sin retardo de 300 ms ni zoom por doble toque) en lo interactivo */
button,.btn,.abtn,.mini-btn,.fav-btn,.nav-toggle,.admin-burger,summary,.cat-card,.ciudad-card,.chip,[role="button"]{touch-action:manipulation}
:focus-visible{outline:3px solid var(--violeta-300);outline-offset:2px;border-radius:6px}
img{max-width:100%;display:block}
h1,h2,h3,h4{line-height:1.12;font-weight:800;letter-spacing:-.02em}
.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 18px}
.section{padding-top:18px;padding-bottom:18px}
.centro{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Iconos */
.ico{display:inline-block;vertical-align:middle;flex:none}
.btn .ico{margin-top:-2px}

/* Etiqueta "eyebrow" dorada sobre los títulos */
.eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:.74rem;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;color:var(--morado);
  background:var(--dorado-200);padding:5px 12px;border-radius:var(--r-pill);margin-bottom:12px}
.eyebrow.on-dark{color:var(--morado-900);background:var(--dorado)}

/* ---------- Botones (planos, sin sombra) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  padding:.78rem 1.35rem;border-radius:var(--r-pill);font-weight:700;font-size:.95rem;
  border:1.5px solid transparent;cursor:pointer;transition:transform .12s,background .18s,color .18s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,255,255,0) 50%),var(--grad-morado);color:#fff}
.btn-primary:hover{background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 50%),linear-gradient(135deg,var(--morado-700) 0%,var(--morado) 100%)}
.btn-accent{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,0) 52%),var(--grad-dorado);color:var(--morado-900)}
.btn-accent::after{content:"";position:absolute;top:0;left:-85%;width:40%;height:100%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.65),transparent);transform:skewX(-18deg);pointer-events:none}
.btn-accent:hover{background:linear-gradient(180deg,rgba(255,255,255,.36),rgba(255,255,255,0) 52%),linear-gradient(135deg,var(--dorado) 0%,var(--dorado-600) 100%)}
.btn-accent:hover::after{animation:brillo .9s ease}
.btn-wa{background:var(--wa);color:#053d20}
.btn-wa:hover{background:var(--wa-700);color:#fff}
.btn-ghost{background:#fff;border-color:var(--linea-2);color:var(--tinta)}
.btn-ghost:hover{border-color:var(--morado);color:var(--morado)}
.btn-del{background:#fff;border-color:#f3cdd3;color:#b4455d}
.btn-del:hover{background:#b4455d;border-color:#b4455d;color:#fff}
.btn-outline-light{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.35);color:#fff;backdrop-filter:blur(6px)}
.btn-outline-light:hover{background:#fff;color:var(--morado)}
.btn-lg{padding:1rem 2rem;font-size:1.05rem}
.btn-sm{padding:.45rem .85rem;font-size:.84rem}
@keyframes brillo{0%{left:-85%}100%{left:135%}}

/* ---------- Barra superior (información) ---------- */
.topbar{display:none;background:var(--grad-oscuro);color:#fff}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:7px 18px;font-size:.82rem}
.topbar-tag{display:inline-flex;align-items:center;gap:.4rem;color:#e7defb;font-weight:600}
.topbar-tag .ico{color:var(--dorado)}
.topbar-nav{display:flex;align-items:center;gap:1.4rem}
.topbar-nav a{color:#e7defb;font-weight:600}
.topbar-nav a:hover{color:#fff}
.topbar-social{display:flex;align-items:center;gap:.5rem}
.topbar-social a{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;flex:none;
  border-radius:50%;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);color:#fff;
  transition:background .15s,color .15s,border-color .15s,transform .12s}
.topbar-social a .ico{width:17px;height:17px}
.topbar-social a:hover{background:var(--dorado);border-color:var(--dorado);color:var(--morado-900);transform:translateY(-1px)}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--linea)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:88px;min-width:0}
.logo{display:flex;align-items:center;flex:0 0 auto;width:176px;aspect-ratio:19/9;min-width:0}
.logo img{width:100%;height:100%;display:block;object-fit:contain;flex:0 0 auto;opacity:1;filter:none}
@media(max-width:767px){
  .header-inner{height:72px}
  .logo{width:127px}
  html{scroll-padding-top:80px}
  /* Al abrir el menú móvil, oscurecemos el contenido para que el menú (blanco) resalte y no se
     confunda. El velo va por debajo de la cabecera (z-index 60) y su menú, y encima del contenido.
     Tocar el velo cierra el menú (lo maneja app.js). */
  body.nav-open::before{content:"";position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.6)}
}
.logo-word{display:flex;align-items:center;gap:.45rem;font-weight:800;font-size:1.2rem;letter-spacing:-.03em}
.nav-toggle{display:inline-grid;place-items:center;width:42px;height:42px;color:var(--morado);background:transparent;border:0;
  border-radius:0;padding:0;cursor:pointer}
/* El menú móvil se abre justo debajo de la cabecera (72px de alto en móvil). En escritorio
   pasa a position:static y este 'top' deja de aplicar, así que 72 es el único valor que cuenta. */
.main-nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;flex-direction:column;
  padding:8px 18px 16px;border-bottom:1px solid var(--linea);box-shadow:0 18px 36px rgba(29,21,48,.14)}
.main-nav a{display:flex;align-items:center;gap:.6rem;padding:.9rem .25rem;font-weight:800;color:var(--tinta);border-bottom:1px solid var(--linea)}
.main-nav a .ico{color:var(--morado)}
.main-nav a.is-active{color:var(--morado)}
.main-nav a.btn{border:0;margin-top:12px;justify-content:center;color:var(--morado-900)}
.main-nav a.btn .ico{color:inherit}
body.nav-open .main-nav{display:flex}
/* Icono de búsqueda al final del menú (solo el icono, en PC y móvil) */
.main-nav a.nav-search{border-bottom:0;justify-content:center}
.main-nav a.nav-search .ico{color:var(--morado)}
.header-sep,.header-actions{display:none}
@media(max-width:767px){
  .main-nav a.nav-search{margin-top:10px;background:var(--fondo);border-radius:var(--r-pill);padding:.75rem}
}
@media(min-width:1024px){
  .main-nav a.nav-search{padding:.5rem .55rem;margin-left:.15rem}
  .main-nav{background:transparent;box-shadow:none;border-bottom:0}
}
@media(min-width:768px) and (max-width:1023px){
  .header-inner{height:88px}
  .main-nav{top:88px}
  .logo{width:152px}
}
@media(min-width:1024px){
  .nav-toggle{display:none}
  .main-nav{display:flex;position:static;flex-direction:row;align-items:center;gap:2px;padding:0;border:0;background:transparent;box-shadow:none}
  .main-nav a{border:0;padding:.52rem .68rem;border-radius:var(--r-pill);font-weight:700}
  .main-nav a:not(.btn):hover{background:#f1ecfb;color:var(--morado)}
  .main-nav a.is-active{background:#f1ecfb;color:var(--morado)}
  .main-nav a.btn{margin:0 0 0 .45rem}
}
@media(min-width:1120px){
  .header-inner{gap:1.35rem}
  .header-sep{display:block;width:1px;height:52px;background:transparent;flex:none}
  .header-sep--logo{margin-left:.15rem}
  .main-nav{flex:1;justify-content:center;gap:4px;background:transparent;box-shadow:none;border-bottom:0}
  .main-nav a{padding:.55rem .85rem;font-weight:700}
  .main-nav a.is-active{background:#f1ecfb;color:var(--morado)}
  .main-nav a:not(.btn):hover{background:#f1ecfb;color:var(--morado)}
  .main-nav a.nav-search-menu{display:none}
  .header-actions{display:flex;align-items:center;gap:12px;flex:none}
  .header-actions::before{content:"";display:block;width:1px;height:52px;background:transparent;margin:0 .15rem 0 .25rem}
  .header-search{width:40px;height:40px;border:0;background:transparent;color:var(--morado);
    display:grid;place-items:center;border-radius:50%;cursor:pointer;transition:background .15s}
  .header-search:hover{background:#f1ecfb}
}

/* Menú de perfil del usuario en la cabecera: dropdown con avatar en web, lista en móvil */
.main-nav a.btn{order:2}
.user-menu{position:relative;order:1}
.nav-login{order:1}
.user-menu-btn{display:none}
.user-menu-head{display:flex;align-items:center;gap:10px;padding:.85rem .2rem;border-bottom:1px solid var(--linea)}
.user-menu-head .avatar{border:1.5px solid var(--linea-2)}
.user-menu-head-txt{min-width:0}
.user-menu-head-txt strong{display:block;font-size:.95rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-menu-head-txt span{display:block;color:var(--gris);font-size:.78rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(min-width:768px){
  .user-menu{margin-left:.4rem}
  .nav-login{margin-left:.4rem}
  .main-nav a.nav-login{border:1px solid var(--linea-2)}
  .main-nav a.nav-login:hover{border-color:var(--violeta-300)}
  .user-menu-btn{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--linea-2);
    border-radius:var(--r-pill);padding:3px 10px 3px 3px;cursor:pointer;font-family:inherit;color:var(--tinta)}
  .user-menu-btn:hover{border-color:var(--violeta-300)}
  .user-menu-name{font-weight:700;font-size:.9rem;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .user-menu-btn>.ico{color:var(--gris);transition:transform .15s}
  .user-menu.is-open .user-menu-btn>.ico{transform:rotate(180deg)}
  .user-menu-panel{position:absolute;right:0;top:calc(100% + 10px);width:244px;background:#fff;border:1px solid var(--linea);
    border-radius:var(--r);padding:8px;display:none;z-index:80}
  .user-menu.is-open .user-menu-panel{display:block}
  .user-menu-head{padding:8px 8px 12px;margin-bottom:6px}
  .main-nav .user-menu-panel a{border:0;padding:.6rem;border-radius:var(--r-sm)}
  .main-nav .user-menu-salir{margin-top:6px;border-top:1px solid var(--linea);border-radius:0;padding-top:.7rem}
}

/* Buscador general del header */
.global-search[hidden]{display:none}
.global-search{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-start;justify-content:center;
  padding:calc(72px + 4vh) 18px 18px}
.global-search-backdrop{position:absolute;inset:0;border:0;background:rgba(29,21,48,.46);cursor:pointer}
.global-search-panel{position:relative;width:min(680px,100%);background:#fff;border:1px solid var(--linea);
  border-radius:var(--r-lg);padding:14px;display:flex;flex-direction:column;gap:12px}
.global-search-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--morado);font-weight:800}
.global-search-head span{display:inline-flex;align-items:center;gap:.45rem}
.global-search-close{width:34px;height:34px;border:1px solid var(--linea);border-radius:50%;display:grid;place-items:center;
  background:#fff;color:var(--gris);cursor:pointer}
.global-search-close:hover{border-color:var(--violeta-300);color:var(--morado)}
.global-search-field{display:flex;align-items:center;gap:10px;background:var(--fondo);border:1.5px solid var(--linea);
  border-radius:var(--r);padding:8px 10px 8px 14px}
.global-search-field:focus-within{background:#fff;border-color:var(--violeta)}
.global-search-field>.ico{color:var(--morado);flex:none}
.global-search-field input{flex:1;min-width:0;border:0;background:none;outline:none;font-family:inherit;
  font-size:1rem;font-weight:600;color:var(--tinta);padding:.75rem 0}
.global-search-field .btn{padding:.68rem 1rem}
.global-search-quick{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.global-search-quick a{display:inline-flex;align-items:center;border:1px solid var(--linea);border-radius:var(--r-pill);
  padding:.42rem .8rem;font-size:.82rem;font-weight:700;color:var(--morado);background:#fff}
.global-search-quick a:hover{background:#f1ecfb;border-color:var(--violeta-300)}
body.search-open{overflow:hidden}
@media(max-width:560px){
  .global-search{padding:86px 12px 12px}
  .global-search-field{align-items:stretch;flex-wrap:wrap}
  .global-search-field input{flex-basis:calc(100% - 34px)}
  .global-search-field .btn{width:100%}
}

/* ---------- Flash ---------- */
.flash{margin:16px 0;padding:.95rem 1.15rem;border-radius:var(--r-sm);font-weight:600;display:flex;gap:.6rem;align-items:flex-start}
.flash-ok{background:#eafaf0;color:#0a6b39;border:1px solid #bdebcd}
.flash-error{background:#fdeeee;color:#9a1c1c;border:1px solid #f7c9c9}
.flash-error ul{margin:.3rem 0 0 1.1rem;font-weight:500}

/* ---------- HERO ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 42%),var(--grad-oscuro);color:#fff;padding:60px 0 72px;text-align:center}
.hero::before{content:"";position:absolute;width:520px;height:520px;right:-160px;top:-220px;
  background:radial-gradient(circle,rgba(245,180,0,.55),transparent 65%);filter:blur(10px)}
.hero::after{content:"";position:absolute;left:-140px;bottom:-200px;width:460px;height:460px;
  background:radial-gradient(circle,rgba(124,58,237,.55),transparent 65%)}
.hero-pattern{position:absolute;left:0;right:0;top:0;height:calc(100% + 256px);z-index:1;pointer-events:none;opacity:.24;
  background:url(../img/lista-productos-hero.svg?v=20260619-hero-light) repeat;background-size:400px 256px;
  animation:heroPatternUp 42s linear infinite;will-change:transform;transform:translate3d(0,0,0);
  contain:paint;backface-visibility:hidden}
@keyframes heroPatternUp{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-256px,0)}}
body.tab-hidden .hero-pattern{animation-play-state:paused}
@media(max-width:767px),(hover:none) and (pointer:coarse){
  .hero-pattern{height:calc(100% + 192px);opacity:.22;background-size:300px 192px;
    animation:heroPatternUpMobile 58s linear infinite;background-position:center top}
}
@keyframes heroPatternUpMobile{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-192px,0)}}
@media(prefers-reduced-motion:reduce){.hero-pattern{animation:none}}
.hero-inner{position:relative;z-index:2}
.hero-title{font-size:2.15rem;font-weight:800}
.hero-title .hero-pin{display:inline-block;height:1.35em;width:auto;vertical-align:-.32em;margin-left:.18em}
.hero-sub{margin:1rem auto 1.8rem;max-width:560px;color:#e4ddf7;font-size:1.05rem;font-weight:500}
.hero-sub b{color:#fff}

/* Buscador */
.search-box{display:flex;flex-direction:column;gap:9px;background:#fff;padding:11px;border-radius:var(--r-lg);
  max-width:760px;margin:0 auto;text-align:left}
.search-field{display:flex;align-items:center;gap:9px;background:var(--fondo);border:1.5px solid var(--linea);
  border-radius:var(--r);padding:0 14px}
.search-field:focus-within{border-color:var(--violeta);background:#fff}
.search-field .ico{color:var(--morado)}
.search-field input,.search-field select{flex:1;width:100%;border:0;background:none;padding:.92rem 0;font-size:1rem;
  font-family:inherit;color:var(--tinta);outline:none;font-weight:500}
.search-field label{font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gris-claro)}
.search-btn{width:100%}
/* Móvil: una sola fila deslizable (no 5 filas apiladas). Desktop vuelve a wrap centrado. */
.hero-chips{margin-top:1.3rem;display:flex;flex-wrap:nowrap;gap:8px;align-items:center;justify-content:flex-start;
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px;scroll-snap-type:x proximity}
.hero-chips::-webkit-scrollbar{display:none}
.hero-chips .lbl{flex:none;color:#cdbff2;font-size:.82rem;font-weight:600}
.hero-chips a{flex:none;scroll-snap-align:start;display:inline-flex;align-items:center;gap:.4rem;background:#fff;color:var(--morado);border:1px solid transparent;
  padding:.5rem .95rem;border-radius:var(--r-pill);font-weight:700;font-size:.85rem;white-space:nowrap;transition:background .15s,color .15s,transform .15s}
.hero-chips a .ico{color:var(--dorado)}
.hero-chips a:hover{background:var(--grad-dorado);color:var(--morado-900);transform:translateY(-1px)}
.hero-chips a:hover .ico{color:var(--morado-900)}

/* Barra de búsqueda en páginas internas */
.search-bar-wrap{background:var(--grad-oscuro);padding:18px 0}
.search-bar-wrap .container{display:flex;flex-direction:column;gap:10px}
.search-box--compact{margin:0;width:100%;border-radius:var(--r)}

/* ---------- Encabezados de sección ---------- */
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:22px}
.section-head h2{font-size:1.55rem;display:flex;align-items:center;gap:.55rem}
.section-head h2 .ico{flex:none;color:var(--violeta)}
.section-head .sub{color:var(--gris);font-size:.95rem;margin-top:.2rem}
.link-mas{display:inline-flex;align-items:center;gap:.35rem;color:var(--morado);font-weight:700;font-size:.92rem;flex:none}
.link-mas:hover{color:var(--violeta)}
.page-title{font-size:1.9rem;margin-bottom:.35rem}
.page-sub{color:var(--gris);margin-bottom:1.3rem}
.breadcrumb{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--gris);margin-bottom:1.1rem;flex-wrap:wrap}
.breadcrumb a{color:var(--morado);font-weight:600}
.breadcrumb .ico{color:var(--gris-claro)}

/* ---------- Grid de categorías ---------- */
.categorias-page{padding-top:24px}
.categorias-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:2px 0 18px;
  padding:18px 20px;border:1px solid rgba(61,20,122,.10);border-radius:22px;background:
  linear-gradient(135deg,rgba(255,255,255,.96),rgba(249,246,255,.92) 58%,rgba(255,248,222,.82))}
.categorias-head__main{min-width:0}
.categorias-head h1{display:flex;align-items:center;gap:.6rem;margin:0;font-size:1.55rem;letter-spacing:-.03em}
.categorias-head h1 .ico{color:var(--morado);flex:none}
.categorias-head p{margin:.35rem 0 0;color:var(--gris);max-width:650px}
@media(max-width:700px){
  .categorias-head{align-items:flex-start;flex-direction:column;padding:16px;gap:12px}
  .categorias-head h1{font-size:1.35rem}
}
.cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.cat-card{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:20px 14px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:10px;transition:transform .15s,border-color .2s;position:relative;overflow:hidden}
.cat-card:hover{transform:translateY(-4px);border-color:var(--violeta-300)}
.cat-ico-wrap{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;color:#fff;
  background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.42),transparent 58%),var(--grad-morado);transition:.2s}
.cat-card:hover .cat-ico-wrap{background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.55),transparent 58%),var(--grad-dorado);color:var(--morado-900);transform:rotate(-6deg) scale(1.05)}
.cat-nombre{font-weight:700;font-size:.98rem;line-height:1.2}
.cat-total{font-size:.76rem;color:var(--gris);font-weight:600}
/* Variedad de color por categoría (ciclo de 6; el hover dorado se mantiene) */
.cat-grid .cat-card:nth-child(6n+2) .cat-ico-wrap{background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.42),transparent 58%),linear-gradient(135deg,#7C3AED,#C026D3)}
.cat-grid .cat-card:nth-child(6n+3) .cat-ico-wrap{background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.42),transparent 58%),linear-gradient(135deg,#2563EB,#06B6D4)}
.cat-grid .cat-card:nth-child(6n+4) .cat-ico-wrap{background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.42),transparent 58%),linear-gradient(135deg,#059669,#34D399)}
.cat-grid .cat-card:nth-child(6n+5) .cat-ico-wrap{background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.42),transparent 58%),linear-gradient(135deg,#EA580C,#feb605)}
.cat-grid .cat-card:nth-child(6n) .cat-ico-wrap{background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.42),transparent 58%),linear-gradient(135deg,#DB2777,#F43F5E)}

/* ---------- Tarjetas de empresa ---------- */
.card-grid{display:grid;grid-template-columns:1fr;gap:16px}
.card{--cat-accent:var(--morado);--cat-soft:#f6f1ff;--cat-line:var(--linea);
  position:relative;background:#fff;
  border:0;border-radius:18px;overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .16s,background .16s}
.card::before,.card::after{display:none}
.card:hover{transform:translateY(-2px)}
/* Destacado: mantiene el tono premium sin convertir toda la card en amarillo fuerte */
.card.is-destacado{background:#fff}
.card-link{display:flex;flex-direction:column;padding:0;flex:1;position:relative;z-index:1}
.card-cover{position:relative;height:158px;overflow:visible;background:
  radial-gradient(circle at 78% 8%,rgba(255,255,255,.46),transparent 42%),
  linear-gradient(135deg,var(--cat-accent),var(--cat-soft));display:flex;align-items:center;justify-content:center}
.card-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,9,32,.18),rgba(14,9,32,.28));pointer-events:none}
.card-cover-img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.04)}
.card-cover-logo,.card-cover-brand{position:relative;z-index:4;display:grid;place-items:center;background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.card-cover-logo{position:absolute;left:18px;bottom:-34px;width:72px;height:72px;border-radius:18px;overflow:hidden}
.card-cover-logo::before{content:"";position:absolute;inset:0;background-image:var(--logo);background-size:cover;background-position:center;
  filter:blur(10px) saturate(1.2);transform:scale(1.28);opacity:.46}
.card-cover-logo::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.34);pointer-events:none}
.card-cover-logo--solo{bottom:-36px}
.card-cover-brand-bg{position:absolute;inset:0;background-image:var(--logo);background-size:cover;background-position:center;
  filter:blur(18px) saturate(1.18);transform:scale(1.16);opacity:.28}
.card-cover-logo img,.card-cover-brand img{width:100%;height:100%;object-fit:contain;position:relative;z-index:1;padding:0}
.card-cover-inicial{position:relative;z-index:2;width:76px;height:76px;border-radius:22px;display:grid;place-items:center;
  color:#fff;font-size:2.25rem;font-weight:900;background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.42),transparent 58%),linear-gradient(135deg,var(--cat-accent),var(--morado))}
.card-cover-pills{position:absolute;z-index:3;left:14px;right:14px;top:14px;display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap}
.card-cover-pills .card-destacado{margin-left:auto}
.card-cover-badge{display:inline-grid;place-items:center;width:29px;height:29px;border-radius:999px;background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--morado)}
.card-body{padding:17px 16px 14px;display:flex;flex-direction:column;flex:1}
.card--con-logo .card-body{padding-top:44px}
.card--con-logo .card-title{padding-left:0}
.card-head{display:flex;gap:12px;align-items:center;margin-bottom:3px}
.card-logo{flex:0 0 58px;height:58px;border-radius:16px;overflow:hidden;background:#fff;border:0;
  display:grid;place-items:center;position:relative}
/* Logos rectangulares: se ven COMPLETOS y el sobrante se rellena con el mismo logo difuminado */
.card-logo::before,.ficha-logo::before{content:"";position:absolute;inset:0;background-image:var(--logo);
  background-size:cover;background-position:center;filter:blur(10px) saturate(1.18);transform:scale(1.35);opacity:.38}
.card-logo img{width:100%;height:100%;object-fit:contain;position:relative;z-index:1}
.card-logo-ico{width:100%;height:100%;display:grid;place-items:center;color:#fff;font-weight:900;font-size:1.55rem;
  background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.42),transparent 58%),linear-gradient(135deg,var(--cat-accent),var(--morado))}
.ficha-logo .card-logo-ico{font-size:2.6rem}
.card-head-txt{min-width:0;flex:1}
.card-title{font-size:1.06rem;font-weight:800;display:flex;align-items:center;gap:.35rem;line-height:1.25;transition:color .15s}
.card:hover .card-title{color:var(--cat-accent)}
.card-pills{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px}
.card-cat{display:inline-flex;align-items:center;gap:.35rem;font-size:.77rem;color:var(--cat-accent);font-weight:800;
  background:var(--cat-soft);border:0;padding:4px 10px;border-radius:var(--r-pill)}
.card-cat .ico{color:currentColor}
.card-cover-pills .card-cat{background:rgba(255,255,255,.93);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
/* ── Etiquetas (productos/servicios) ─────────────────────────── */
.ficha-etiquetas{display:flex;flex-wrap:wrap;gap:6px;margin:.2rem 0 1rem}
.etq-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600;
  color:var(--morado);background:#f1ecfb;border:1px solid var(--linea-2);
  padding:4px 11px;border-radius:var(--r-pill);text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.etq-chip .ico{color:var(--violeta)}
a.etq-chip:hover{background:var(--morado);color:#fff;border-color:var(--morado)}
a.etq-chip:hover .ico{color:var(--dorado-200)}
.etq-chip--prev{cursor:default}
.card-etqs{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.card-etq{font-size:.72rem;color:var(--gris);background:var(--fondo);
  border:1px solid var(--linea);padding:2px 8px;border-radius:var(--r-pill)}
.etq-preview{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.etq-preview:empty{display:none}
/* ── Selector de íconos (panel categorías) ───────────────────── */
.icono-pick{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.icono-opt{cursor:pointer;line-height:0}
.icono-opt input{position:absolute;opacity:0;width:0;height:0}
.icono-opt span{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
  border:1.5px solid var(--linea-2);border-radius:11px;color:var(--gris);background:var(--blanco);transition:border-color .15s,color .15s,background .15s,box-shadow .15s}
.icono-opt:hover span{border-color:var(--violeta);color:var(--morado)}
.icono-opt input:checked + span{border-color:var(--morado);color:var(--morado);background:#f1ecfb;box-shadow:0 0 0 3px rgba(64,23,139,.14)}
.icono-opt input:focus-visible + span{outline:2px solid var(--violeta);outline-offset:2px}
/* ── Lista de categorías (panel) ─────────────────────────────── */
.cat-admin-list{display:flex;flex-direction:column;gap:8px;margin-top:18px;max-width:780px}
.cat-admin-row{border:1px solid var(--linea-2);border-radius:14px;background:var(--blanco);overflow:hidden}
.cat-admin-row[open]{box-shadow:0 4px 16px rgba(34,10,78,.08)}
.cat-admin-row summary{display:flex;align-items:center;gap:.6rem;padding:12px 14px;cursor:pointer;list-style:none}
.cat-admin-row summary::-webkit-details-marker{display:none}
.cat-admin-ico{display:inline-flex;color:var(--morado)}
.cat-admin-nom{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-admin-meta{font-size:.78rem;color:var(--gris-claro);font-weight:600;white-space:nowrap}
.cat-admin-oculta{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:700;color:#9a6b00;background:#fff4d6;padding:2px 8px;border-radius:var(--r-pill)}
.cat-admin-editlbl{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:700;color:var(--violeta)}
.cat-admin-body{padding:0 14px 14px}
.cat-admin-body .form{margin-top:12px}
.cat-admin-del{margin-top:10px}
/* Crear categoría: tarjeta compacta y limpia */
.cat-create-card{max-width:820px;background:#fff;border:1px solid var(--linea-2);border-radius:18px;padding:18px;margin-bottom:18px;
  box-shadow:0 10px 28px rgba(64,23,139,.06)}
.cat-create-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.cat-create-head-ico{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;flex:none;background:#f1ecfb;color:var(--morado)}
.cat-create-head strong{display:block;font-size:1.14rem;color:var(--tinta)}
.cat-create-head p{margin:2px 0 0;color:var(--gris);font-size:.88rem;line-height:1.4}
.cat-create-body{display:grid;grid-template-columns:1fr;gap:13px}
.cat-create-name,.cat-create-upload{display:flex;flex-direction:column;gap:7px;font-size:.86rem;font-weight:800;color:var(--tinta)}
.cat-create-name input{font-family:inherit;font-size:.98rem;padding:.76rem .9rem;border:1.5px solid var(--linea);border-radius:13px;background:var(--fondo);color:var(--tinta);width:100%;box-sizing:border-box}
.cat-create-name input:focus{outline:none;border-color:var(--violeta);background:#fff}
.cat-create-icon{display:flex;flex-direction:column;gap:7px}
.cat-create-lbl{display:flex;align-items:center;gap:.35rem;font-size:.74rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:var(--gris-claro)}
.cat-create-lbl .ico{color:var(--violeta)}
.cat-create-icon-row{display:flex;align-items:center;gap:12px;background:#faf8ff;border:1px solid var(--linea);border-radius:15px;padding:10px}
.cat-create-preview,.ico-actual-view{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;flex:none;border-radius:14px;border:1.5px solid var(--violeta-300);background:#fff;color:var(--morado)}
.ico-actual-view img{width:26px;height:26px;object-fit:contain}
.cat-create-icon-copy{min-width:0;flex:1}
.cat-create-icon-copy strong{display:block;font-size:.9rem;color:var(--tinta)}
.cat-create-icon-copy small{display:block;margin-top:2px;font-size:.76rem;font-weight:600;color:var(--gris);line-height:1.35}
.cat-create-pick{flex:none;padding:.56rem .85rem}
.cat-create-upload{background:#faf8ff;border:1px dashed var(--violeta-300);border-radius:15px;padding:12px}
.cat-create-upload>span{display:flex;align-items:center;gap:.45rem}
.cat-create-upload>span .ico{color:var(--morado)}
.cat-create-upload small{font-size:.76rem;font-weight:600;color:var(--gris);margin-top:-3px}
.cat-create-upload input{font-family:inherit;font-size:.86rem;width:100%;padding:.62rem .75rem;border:1px solid var(--linea);border-radius:12px;background:#fff;color:var(--tinta)}
.cat-create-actions{display:flex;justify-content:flex-end;margin-top:16px}
.cat-create-actions .btn{min-width:190px;justify-content:center}
.ico-wrap{display:flex;flex-direction:column;gap:6px}
.ico-actual{display:flex;align-items:center;gap:10px}
.ico-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:rgba(20,10,45,.62);backdrop-filter:blur(3px)}
.ico-modal[hidden]{display:none}
.ico-modal-caja{width:min(720px,100%);max-height:min(680px,92vh);display:flex;flex-direction:column;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.32);overflow:hidden}
.ico-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid var(--linea)}
.ico-modal-head strong{display:flex;align-items:center;gap:.45rem;color:var(--tinta)}
.ico-modal-head .ico{color:var(--morado)}
.ico-modal-cerrar{width:34px;height:34px;border-radius:11px;border:0;background:var(--fondo);color:var(--gris);display:grid;place-items:center;cursor:pointer}
.ico-modal-cerrar:hover{background:#fdeeee;color:#c0392b}
.ico-modal-buscar{display:flex;align-items:center;gap:8px;margin:14px 16px 10px;padding:0 12px;border:1.5px solid var(--linea);border-radius:13px;background:var(--fondo)}
.ico-modal-buscar .ico{color:var(--morado);flex:none}
.ico-modal-buscar input{flex:1;min-width:0;border:0;background:transparent;padding:.72rem 0;font-family:inherit;font-weight:600;color:var(--tinta);outline:none}
.ico-modal-buscar:focus-within{border-color:var(--violeta);background:#fff}
.ico-modal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:8px;padding:0 16px 16px;overflow:auto}
.ico-modal-item{height:44px;border:1px solid var(--linea);border-radius:12px;background:#fff;color:var(--gris);display:grid;place-items:center;cursor:pointer}
.ico-modal-item:hover{border-color:var(--violeta);background:#f1ecfb;color:var(--morado)}
@media(min-width:760px){
  .cat-create-body{grid-template-columns:1.2fr 1fr}
  .cat-create-name{grid-column:1/-1}
}
@media(max-width:560px){
  .cat-create-icon-row{align-items:flex-start;flex-wrap:wrap}
  .cat-create-pick,.cat-create-actions .btn{width:100%;justify-content:center}
}
.card-loc{display:flex;align-items:center;gap:.3rem;font-size:.82rem;color:var(--morado);font-weight:700;margin-top:8px}
.card-loc .ico{color:currentColor;opacity:1}
.card-desc{font-size:.86rem;color:#655d78;margin-top:9px;line-height:1.52;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-stars{display:inline-flex;align-items:center;gap:1px;color:var(--dorado)}
.card-stars>span{display:inline-flex;line-height:0}
.card-stars .empty{color:var(--linea-2)}
.card-actions{display:flex;gap:9px;padding:0 16px 16px;margin-top:auto;position:relative;z-index:1}
.mini-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.42rem;font-size:.82rem;font-weight:800;
  padding:.64rem;border-radius:13px;background:#f1ecfb;border:0;color:var(--morado);
  transition:background .15s,color .15s,transform .12s}
.mini-btn .ico{color:var(--morado)}
.mini-btn:hover{background:var(--morado);color:#fff;transform:translateY(-1px)}
.mini-btn:hover .ico{color:#fff}
.mini-btn-wa{background:#dcfce7;color:var(--wa-700)}
.mini-btn-wa .ico{color:var(--wa-700)}
.mini-btn-wa:hover{background:var(--wa);color:#fff}
.mini-btn-wa:hover .ico{color:#fff}
.badge-verif{display:inline-flex;color:var(--cat-accent);filter:drop-shadow(0 1px 0 rgba(255,255,255,.8))}
.badge-verif--lg{display:inline-flex;align-items:center;gap:.3rem;color:var(--violeta);background:#f1ecfb;
  font-size:.74rem;font-weight:800;padding:4px 10px;border-radius:var(--r-pill)}
.badge-verif--icon{justify-content:center;width:34px;height:34px;padding:0;border-radius:50%;vertical-align:middle}
.panel-vistas{display:inline-flex;align-items:center;gap:.3rem;color:var(--gris);background:var(--fondo);
  font-size:.74rem;font-weight:700;padding:4px 10px;border-radius:var(--r-pill)}
.panel-vistas .ico{color:var(--violeta)}
.card-destacado{display:inline-flex;align-items:center;gap:.25rem;
  background:linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,0) 62%),var(--grad-dorado);color:var(--morado-900);font-size:.68rem;font-weight:800;letter-spacing:.03em;
  padding:3px 9px;border-radius:var(--r-pill)}

/* ---------- Banda de PUBLICIDAD (vender espacios) ---------- */
.ad-band{background:linear-gradient(120deg,rgba(255,255,255,.3),rgba(255,255,255,0) 44%),var(--grad-dorado);border-radius:var(--r-lg);padding:32px 28px;margin:22px 0;display:flex;flex-direction:column;
  gap:16px;align-items:center;text-align:center;position:relative;overflow:hidden}
.ad-band .ico-big{width:64px;height:64px;border-radius:18px;background:var(--morado-900);color:var(--dorado);display:grid;place-items:center;flex:none}
.ad-band h2{color:var(--morado-900);font-size:1.5rem}
.ad-band p{color:#5a3d00;font-weight:600;max-width:560px}

/* ---------- Banda CTA oscura ---------- */
.cta-band{position:relative;overflow:hidden;background:var(--grad-oscuro);color:#fff;text-align:center;padding:52px 0}
.cta-band::before{content:"";position:absolute;right:-120px;top:-120px;width:340px;height:340px;background:radial-gradient(circle,rgba(245,180,0,.4),transparent 65%)}
.cta-band .inner{position:relative;z-index:2}
.cta-band h2{font-size:1.7rem}
.cta-band p{margin:.5rem auto 1.4rem;color:#e4ddf7;max-width:520px}

/* ---------- Conversor de moneda (home) ---------- */
.conversor{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:24px;margin:18px 0 4px}
.conversor-head{display:flex;align-items:center;gap:13px;margin-bottom:16px;flex-wrap:wrap}
.conversor-ico{flex:none;width:50px;height:50px;border-radius:15px;display:grid;place-items:center;color:#fff;
  background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.42),transparent 58%),var(--grad-morado)}
.conversor-head-tit{flex:1;min-width:150px}
.conversor-head h2{font-size:1.3rem}
.conversor-head p{color:var(--gris);font-size:.9rem;font-weight:500}
/* Dólar paralelo: dato referencial del día, en el subtítulo (arriba, sin caja aparte) */
.conversor-sub{color:var(--gris);font-size:.9rem;font-weight:500}
.conv-par[hidden],[data-conv-sub-def][hidden]{display:none}
.conv-par b{color:#a8853a;font-weight:800}
.conversor-ctrl{display:flex;flex-direction:column;gap:12px}
.conversor-ctrl label{display:flex;flex-direction:column;gap:.35rem;font-weight:700;font-size:.82rem;color:var(--tinta)}
.conversor-ctrl input,.conversor-ctrl select{font-family:inherit;font-size:1rem;font-weight:600;color:var(--tinta);
  padding:.66rem .85rem;border:1.5px solid var(--linea);border-radius:var(--r-sm);background:var(--fondo);width:100%}
.conversor-ctrl input:focus,.conversor-ctrl select:focus{outline:none;border-color:var(--violeta);background:#fff}
.conversor-res{display:flex;flex-direction:column;gap:.35rem}
.conversor-res .lbl{font-weight:700;font-size:.82rem}
.conversor-res b{display:flex;align-items:center;min-height:47px;padding:.2rem .95rem;border-radius:var(--r-sm);
  background:linear-gradient(180deg,rgba(255,255,255,.35),rgba(255,255,255,0) 55%),var(--grad-dorado);color:var(--morado-900);font-size:1.35rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-swap{flex:none;align-self:flex-end;width:46px;height:47px;border-radius:var(--r-sm);display:grid;place-items:center;
  background:#f1ecfb;border:1.5px solid var(--violeta-300);color:var(--morado);cursor:pointer;transition:background .15s,color .15s}
.conv-swap:hover{background:var(--morado);color:#fff}
/* Tasa de tu casa de cambio: dos campos (tipo de cambio + Recibes) con el mismo estilo del
   conversor. Resultado siempre visible. Móvil: apilados; desktop: lado a lado. */
.conv-casa{margin-top:12px;background:var(--fondo);border:1px solid var(--linea);border-radius:var(--r-sm);padding:13px 15px}
.conv-casa-intro{display:flex;align-items:flex-start;gap:.45rem;font-size:.82rem;color:var(--gris);margin-bottom:10px;line-height:1.4}
.conv-casa-intro .ico{color:var(--violeta);flex:none;margin-top:2px}
.conv-casa-intro b{color:var(--tinta);font-weight:800}
.conv-casa-grid{display:flex;flex-direction:column;gap:8px}
.conv-casa-tc{display:flex;align-items:center;gap:.35rem;font-weight:700;font-size:.98rem;color:var(--tinta);
  background:#fff;border:1.5px solid var(--linea);border-radius:9px;padding:.62rem .8rem}
.conv-casa-tc:focus-within{border-color:var(--violeta)}
.conv-casa-tc b{color:var(--morado);font-weight:800;flex:none}
.conv-casa-tc input{flex:1;min-width:0;border:0;background:none;font-family:inherit;font-size:1rem;font-weight:800;color:var(--tinta);text-align:center;padding:0}
.conv-casa-tc input:focus{outline:none}
.conv-casa-tc input::placeholder{color:var(--gris-claro);font-weight:600}
.conv-casa-recibe{display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-height:46px;padding:.4rem .9rem;border-radius:9px;
  background:linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,0) 55%),#ebe5fb;border:1px solid var(--violeta-300)}
.conv-casa-recibe span{flex:none;font-weight:800;font-size:.72rem;color:var(--violeta);text-transform:uppercase;letter-spacing:.03em}
.conv-casa-recibe b{font-size:1.22rem;font-weight:800;color:var(--morado-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(min-width:600px){
  .conv-casa-grid{flex-direction:row;align-items:center}
  .conv-casa-tc{flex:1.2}
  .conv-casa-recibe{flex:1}
}
.conversor-nota{margin-top:12px;color:var(--gris-claro);font-size:.78rem;font-weight:500}

/* ---------- Preguntas frecuentes ---------- */
.faq-wrap{max-width:740px;margin:0 auto}
.faq-item{background:#fff;border:1px solid var(--linea);border-radius:var(--r-sm);margin-bottom:10px;overflow:hidden}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;list-style:none;cursor:pointer;
  padding:1rem 1.15rem;font-weight:700;color:var(--tinta)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--morado)}
.faq-ico{flex:none;color:var(--violeta);transition:transform .2s}
.faq-item[open]{border-color:var(--violeta-300)}
.faq-item[open] .faq-ico{transform:rotate(180deg)}
.faq-item[open] summary{color:var(--morado)}
.faq-item p{padding:0 1.15rem 1.1rem;color:#403a52;font-size:.95rem;line-height:1.65}
.faq-cta{text-align:center;margin-top:26px;display:flex;flex-direction:column;align-items:center;gap:10px}
.faq-cta p{font-weight:700}

/* ---------- Filtros / resultados ---------- */
.filtro-cat{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-bottom:18px}
.filtro-cat .lbl{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:700;color:var(--gris)}
.filtro-cat .lbl .ico{color:var(--violeta)}
.filtro-cat select{appearance:none;-webkit-appearance:none;font-family:inherit;font-size:.92rem;font-weight:600;color:var(--tinta);
  min-width:210px;padding:.62rem 2.4rem .62rem 1rem;border:1.5px solid var(--linea-2);border-radius:var(--r-pill);background-color:#fff;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C3AED' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .85rem center;background-size:15px}
.filtro-cat select:hover{border-color:var(--violeta-300)}
.filtro-cat select:focus{outline:none;border-color:var(--violeta)}
.resultados-info{color:var(--gris);margin:6px 0 16px;font-weight:500}
.resultados-info b{color:var(--tinta)}
.vacio{color:var(--gris)}.vacio a{color:var(--morado);font-weight:700}
.vacio-box{text-align:center;background:#fff;border:1px solid var(--linea);border-radius:var(--r-lg);padding:46px 22px}
.vacio-ico{width:74px;height:74px;border-radius:50%;background:#f1ecfb;color:var(--violeta);display:grid;place-items:center;margin:0 auto 1rem}
.vacio-box h3{margin-bottom:.4rem;font-size:1.25rem}
.vacio-box p{color:var(--gris);margin-bottom:1.2rem}

/* ---------- Ficha de empresa ---------- */
.cat-hero{background:#fff;border-bottom:1px solid var(--linea);padding:26px 0}
.cat-hero .page-title{display:flex;align-items:center;gap:.7rem}
.cat-hero .cat-ico-wrap{width:48px;height:48px;border-radius:14px}
.cat-hero .search-box--compact{margin-top:16px;border:1px solid var(--linea)}
/* ── Ficha del negocio: cabecera con el logo difuminado de fondo (efecto gaussiano).
   El degradado toma el COLOR DOMINANTE del logo (variables --hero-*); si no hay, morado de marca. ── */
.ficha-hero{position:relative;border-radius:var(--r-lg);overflow:hidden;isolation:isolate;
  background:linear-gradient(150deg,rgb(var(--hero-osc,34,10,78)) 0%,rgb(var(--hero-med,64,23,139)) 55%,rgb(var(--hero-rgb,124,58,237)) 135%)}
.ficha-hero-fondo{position:absolute;inset:-48px;background-position:center;background-size:cover;background-repeat:no-repeat;
  filter:blur(38px) saturate(1.45) brightness(1.02);transform:scale(1.2);z-index:0}
.ficha-hero-velo{position:absolute;inset:0;z-index:1;
  background:linear-gradient(165deg,rgba(var(--hero-osc,34,10,78),.82) 0%,rgba(var(--hero-med,64,23,139),.42) 48%,rgba(var(--hero-rgb,124,58,237),.16) 100%)}
.ficha-hero .ficha-top{position:relative;z-index:2;background:transparent;border:0}
.ficha-hero .ficha-logo{border:0;background:#fff;box-shadow:0 8px 26px rgba(10,2,30,.4)}
.ficha-hero--sin-logo .ficha-info{width:100%;min-width:0}
.ficha-hero .ficha-nombre{color:#fff}
.ficha-hero .ficha-meta{color:#fff}
/* Chips de la cabecera con DOS estilos para no confundirse:
   - Categoría / ubicación / calificación: chips CLAROS (blancos) = información principal.
   - Etiquetas: chips OSCUROS translúcidos = tags de productos (más abajo). */
.ficha-hero .pill,.ficha-hero .ficha-cat,.ficha-hero .ficha-tipo{background:rgba(255,255,255,.94);border:0;color:var(--tinta);
  padding:5px 12px;border-radius:var(--r-pill);font-size:.83rem;font-weight:700}
.ficha-hero .pill .ico{color:var(--morado)}
.ficha-hero .ficha-cat{color:var(--morado)}
.ficha-hero .ficha-cat .ico{color:var(--violeta)}
.ficha-hero .ficha-cat:hover{background:var(--morado);color:#fff}
.ficha-hero .ficha-cat:hover .ico{color:var(--dorado-200)}
.ficha-hero .ficha-tipo{background:var(--grad-dorado);color:var(--morado-900);font-weight:900}
.ficha-hero .ficha-tipo .ico{color:var(--morado-900)}
.ficha-hero .ficha-rating,.ficha-hero .ficha-rating b{color:var(--tinta)}
/* Badge de verificado en la cabecera: insignia sólida, limpia y sin fondo extra */
.ficha-hero .badge-verif--lg{background:transparent;color:var(--violeta);width:auto;height:auto}
.ficha-hero .etq-chip{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);color:#fff;font-weight:600;backdrop-filter:blur(4px)}
.ficha-hero a.etq-chip:hover{background:rgba(255,255,255,.26);border-color:rgba(255,255,255,.4);color:#fff}
/* Botones sólidos y coloridos: nunca se pierden con el fondo */
.ficha-hero .ficha-acciones .btn{border:0;font-weight:800}
.ficha-hero .btn-primary{background:var(--grad-dorado);color:var(--morado-900)}
.ficha-hero .btn-primary:hover{filter:brightness(1.07);color:var(--morado-900)}
.ficha-hero .btn-ghost{background:#fff;color:var(--tinta);border:0}
.ficha-hero .btn-ghost:hover{background:#f1ecfb;color:var(--morado)}
.ficha-hero .btn-fav-on{background:var(--dorado);color:var(--morado-900)}
@media (max-width:640px){
  .ficha-hero{border-radius:18px}
  .ficha-hero-fondo{filter:blur(34px) saturate(1.35) brightness(.95)}
}
.ficha-top{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;background:#fff;border:1px solid var(--linea);
  border-radius:var(--r-lg);padding:22px}
.ficha-logo{flex:0 0 92px;height:92px;border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--linea);display:grid;place-items:center;position:relative}
.ficha-logo img{width:100%;height:100%;object-fit:contain;position:relative;z-index:1}
.ficha-info{flex:1;min-width:240px}
.ficha-nombre{font-size:1.65rem;display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.ficha-meta{display:flex;flex-wrap:wrap;gap:.5rem .9rem;color:var(--gris);font-size:.9rem;margin:.6rem 0 1rem;align-items:center}
.ficha-meta .pill,.ficha-tipo{display:inline-flex;align-items:center;gap:.35rem}
.ficha-cat{color:var(--morado);font-weight:700;background:#f1ecfb;padding:4px 11px;border-radius:var(--r-pill)}
.ficha-cat .ico{color:var(--violeta)}
.ficha-tipo{font-weight:800;background:#fff6db;color:#6b4b00;padding:4px 11px;border-radius:var(--r-pill)}
.ficha-tipo .ico{color:var(--dorado-600)}
.ficha-acciones{display:flex;flex-wrap:wrap;gap:10px}
.ficha-grid{display:grid;grid-template-columns:1fr;gap:20px;margin-top:18px}
.ficha-grid>*{min-width:0}
.bloque{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:20px;margin-bottom:16px}
.bloque h2{font-size:1.2rem;margin-bottom:.8rem;display:flex;align-items:center;gap:.5rem}
.bloque-head-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:.8rem}
.bloque-head-row h2{margin-bottom:0}
.bloque-head-row .mini-btn{flex:none;white-space:nowrap}
/* El dibujo del ícono de WhatsApp es más chico que los demás dentro de su lienzo SVG:
   se compensa con escala para que se vea del MISMO tamaño que el resto (ej. Llamar). */
.ico-whatsapp{transform:scale(1.22);transform-origin:center}
.bloque h2 .ico{color:var(--morado)}
.ficha-desc{color:#403a52;line-height:1.7}
/* Carrusel de fotos (ficha) */
.carrusel-wrap{position:relative}
.carrusel{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.carrusel::-webkit-scrollbar{display:none}
.carrusel-item{flex:0 0 auto;scroll-snap-align:start;display:block}
.carrusel-item img{height:215px;width:auto;max-width:78vw;object-fit:cover;border-radius:var(--r-sm);display:block}
.carrusel-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;background:rgba(255,255,255,.94);border:1px solid var(--linea-2);color:var(--morado);cursor:pointer}
.carrusel-btn:hover{background:var(--morado);color:#fff;border-color:var(--morado)}
.carrusel-prev{left:-8px}.carrusel-prev .ico{transform:rotate(180deg)}
.carrusel-next{right:-8px}

/* Chat usuario ↔ admin */
.chat-box{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:18px;max-width:720px}

/* Hilo de mensajes: lienzo de conversación con leve fondo (look de app de chat) */
.chat-hilo{display:flex;flex-direction:column;gap:12px;max-height:440px;overflow-y:auto;
  padding:16px;margin-bottom:14px;background:var(--fondo);border:1px solid var(--linea);
  border-radius:var(--r-sm);scrollbar-width:thin;overscroll-behavior:contain}
.burbuja{max-width:80%;padding:.68rem .92rem;border-radius:16px;font-size:.92rem;line-height:1.5;word-break:break-word}
.burbuja p{margin:0}
.burbuja small{display:block;margin-top:5px;font-size:.68rem;font-weight:600;opacity:.72}
/* Mías (lo que yo escribo): morado de marca, texto blanco */
.burbuja--mia{align-self:flex-end;background:var(--grad-morado);color:#fff;border-bottom-right-radius:5px}
.burbuja--mia small{opacity:.85}
/* Suyas (lo que me responden): tarjeta blanca con borde */
.burbuja--suya{align-self:flex-start;background:#fff;border:1px solid var(--linea-2);color:var(--tinta);border-bottom-left-radius:5px}
.chat-vacio{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.55rem;
  color:var(--gris);font-weight:500;padding:30px 16px;min-height:120px}
.chat-vacio .ico{color:var(--violeta-300)}

/* Compositor: escribir / responder */
.chat-form{display:flex;align-items:flex-end;gap:10px}
.chat-form textarea{flex:1;min-width:0;font-family:inherit;font-size:.95rem;line-height:1.45;
  padding:.72rem .9rem;border:1.5px solid var(--linea-2);border-radius:13px;background:#fff;
  color:var(--tinta);resize:vertical;min-height:48px;max-height:170px}
.chat-form textarea:focus{outline:none;border-color:var(--violeta)}
.chat-form .btn{flex:none;min-height:48px}

/* Vías alternativas (WhatsApp / formulario) — solo panel del usuario */
.chat-vias{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--linea)}
.chat-vias .lbl{display:inline-flex;align-items:center;gap:.45rem;font-size:.78rem;font-weight:800;color:var(--gris);
  text-transform:uppercase;letter-spacing:.04em}
.chat-vias .lbl .ico{color:var(--violeta)}
.chat-vias-btns{display:flex;flex-wrap:wrap;gap:10px}
.chat-vias .btn{padding:.55rem 1.1rem;font-size:.85rem}

/* Chats en el panel admin (lista de conversaciones + panel activo) */
.chat-cols{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:8px}
.chat-cols>*{min-width:0}
.chat-lista{display:flex;flex-direction:column;gap:8px}
.chat-conv{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--linea-2);border-radius:var(--r-sm);padding:10px 13px;color:var(--tinta)}
.chat-conv:hover{border-color:var(--violeta-300)}
.chat-conv.on{border-color:var(--morado);background:#f7f3fe}
.chat-conv-av{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.95rem;color:#fff;
  background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.4),transparent 58%),var(--grad-morado)}
.chat-conv-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.25}
.chat-conv-info strong{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-conv-info small{color:var(--gris);font-size:.74rem;font-weight:600;display:inline-flex;align-items:center}
.chat-conv .admin-badge{flex:none;margin-left:auto}
.chat-estado{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gris-claro);margin-right:.4rem;flex:none}
.chat-estado.on{background:#16a34a}

.chat-panel{background:#fff;border:1px solid var(--linea-2);border-radius:var(--r);padding:14px 16px}
.chat-panel-head{display:flex;align-items:center;gap:12px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--linea)}
.chat-panel-head span{color:var(--gris);font-size:.82rem;font-weight:600}
.chat-panel-tit{display:flex;flex-direction:column;gap:1px;line-height:1.3;min-width:0}
.chat-panel-tit strong{font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-panel-acc{display:flex;gap:8px;margin-left:auto;flex:none}
.chat-panel-acc .abtn{min-width:36px;min-height:36px;justify-content:center;padding:.4rem}

@media(min-width:860px){.chat-cols{grid-template-columns:300px 1fr}}
@media(max-width:859px){
  .chat-lista{max-height:268px;overflow-y:auto;padding-right:3px;scrollbar-width:thin}
  .burbuja{max-width:88%}
}

/* Asistente flotante (esquina inferior derecha) */
.asistente{position:fixed;right:16px;bottom:16px;z-index:240}
.asist-btn{position:relative;width:58px;height:58px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;color:#fff;
  background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.35),transparent 58%),var(--grad-morado);transition:transform .15s}
.asist-btn:hover{transform:scale(1.06)}
.asist-badge{position:absolute;top:-2px;right:-2px;min-width:19px;height:19px;border-radius:999px;display:grid;place-items:center;
  background:#e23b3b;color:#fff;font-size:.7rem;font-weight:800}
.asist-panel{position:absolute;bottom:70px;right:0;width:340px;max-width:calc(100vw - 32px);background:#fff;
  border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.asist-panel[hidden]{display:none}
.asist-head{display:flex;align-items:center;gap:10px;padding:13px 14px;background:var(--grad-oscuro);color:#fff}
.asist-head-ico{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.15);color:var(--dorado)}
.asist-head-txt{flex:1;min-width:0;line-height:1.2}
.asist-head-txt strong{font-size:.95rem}
.asist-head-txt small{display:block;color:#cdbff2;font-size:.72rem;font-weight:600}
.asist-cerrar{flex:none;width:30px;height:30px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;
  background:rgba(255,255,255,.12);color:#fff}
.asist-cerrar:hover{background:rgba(255,255,255,.28)}
.asist-hilo{display:flex;flex-direction:column;gap:8px;padding:14px;max-height:300px;overflow-y:auto;background:var(--fondo);scrollbar-width:thin}
.asist-hilo .burbuja--suya{background:#fff}
.asist-hilo .burbuja .btn{margin-top:8px;padding:.45rem .9rem;font-size:.82rem;display:inline-flex}
.asist-chips{display:flex;flex-direction:column;gap:7px;padding:12px 14px;background:#fff;border-top:1px solid var(--linea)}
.asist-chips button{text-align:center;background:#fff;border:1.5px solid var(--violeta-300);color:var(--morado);border-radius:var(--r-pill);
  padding:.5rem .9rem;font-family:inherit;font-size:.84rem;font-weight:700;cursor:pointer;transition:background .15s,color .15s}
.asist-chips button:hover{background:var(--morado);border-color:var(--morado);color:#fff}

/* Lightbox de la galería (visor de fotos propio) */
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(18,8,40,.94);display:grid;place-items:center}
.lightbox img{max-width:min(92vw,1100px);max-height:84vh;border-radius:12px;display:block}
.lightbox button{position:absolute;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;cursor:pointer;transition:background .15s}
.lightbox button:hover{background:var(--dorado);border-color:var(--dorado);color:var(--morado-900)}
.lightbox .lb-cerrar{top:16px;right:16px}
.lightbox .lb-ant{left:12px;top:50%;transform:translateY(-50%)}
.lightbox .lb-sig{right:12px;top:50%;transform:translateY(-50%)}
.lightbox .lb-num{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:#e4ddf7;font-weight:700;font-size:.9rem;
  background:rgba(255,255,255,.1);border-radius:999px;padding:.35rem 1rem}

/* Ventana modal (ver mensaje del formulario de contacto) */
.modal[hidden]{display:none}
.modal [hidden]{display:none}
.modal{position:fixed;inset:0;z-index:320;display:flex;align-items:center;justify-content:center;padding:18px}
.modal-fondo{position:absolute;inset:0;background:rgba(18,8,40,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.modal-caja{position:relative;z-index:1;width:100%;max-width:480px;max-height:88vh;overflow-y:auto;background:#fff;
  border:1px solid var(--linea);border-radius:var(--r);padding:22px 22px 20px;scrollbar-width:thin}
.modal-x{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:var(--fondo);border:1px solid var(--linea);color:var(--gris);cursor:pointer}
.modal-x:hover{background:#fdeeee;border-color:#f7c9c9;color:#9a1c1c}
.modal-cab{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-right:34px}
.modal-av{flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:1.15rem;
  color:#fff;background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.4),transparent 58%),var(--grad-morado)}
.modal-cab-txt{min-width:0}
.modal-cab-txt strong{display:block;font-size:1.08rem;line-height:1.2}
.modal-fecha{display:inline-flex;align-items:center;gap:.3rem;color:var(--gris);font-size:.8rem;font-weight:600;margin-top:2px}
.modal-fecha .ico{color:var(--gris-claro)}
.modal-datos{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}
.modal-dato{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:.9rem;color:var(--morado);
  background:var(--fondo);border:1px solid var(--linea);border-radius:var(--r-sm);padding:.55rem .75rem;word-break:break-word}
.modal-dato:hover{border-color:var(--violeta-300)}
.modal-dato .ico{color:var(--violeta);flex:none}
.modal-mensaje{white-space:pre-wrap;word-break:break-word;line-height:1.6;color:var(--tinta);background:var(--fondo);
  border:1px solid var(--linea);border-radius:var(--r-sm);padding:14px;margin-bottom:16px;font-size:.95rem}
.modal-pie{display:flex;flex-wrap:wrap;gap:10px}
.modal-pie .btn{font-size:.85rem;padding:.55rem 1rem}
body.modal-abierto{overflow:hidden}
/* Tabla de mensajes: fila clickeable + vista previa del texto */
.msg-fila[data-ver]{cursor:pointer}
.msg-fila[data-ver]:hover{background:#faf8ff}
.msg-fila .msg-prev{display:block;max-width:42ch;color:var(--gris);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.abtn-ver{color:var(--morado)}
.abtn-ver:hover{background:#f1ecfb;border-color:var(--violeta-300);color:var(--morado)}

/* Video del negocio (YouTube / TikTok) */
.video-frame{width:100%;aspect-ratio:16/9;border:0;border-radius:var(--r-sm);display:block;background:#000}
.video-frame--tiktok{aspect-ratio:9/16;max-width:340px;margin:0 auto;background:#fff}
.mapa{width:100%;height:300px;border:0;border-radius:var(--r);display:block}
.info-card{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:18px;margin-bottom:14px}
.info-card h3{font-size:1.08rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}
.info-card h3 .ico{color:var(--morado)}
.info-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.9rem}
.info-list li{display:flex;gap:.7rem;font-size:.92rem;word-break:break-word;align-items:flex-start}
.info-list .ico{color:var(--morado);margin-top:2px;flex:none}
.info-list a{color:var(--morado);font-weight:600}
.info-redes{margin-top:1rem;display:flex;gap:.6rem}
.info-redes a{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--fondo);
  border:1px solid var(--linea);border-radius:var(--r-sm);padding:.6rem;font-weight:700;font-size:.85rem;color:var(--morado)}
.info-redes a:hover{background:var(--morado);color:#fff}
.info-redes a:hover .ico{color:#fff}
.horarios{white-space:pre-line;color:#403a52;font-size:.93rem;line-height:1.8}
.ficha-vistas{display:inline-flex;align-items:center;gap:.4rem;color:var(--gris-claro);font-size:.83rem;font-weight:600}
.share-fila{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
/* Pestañas de Configuración (panel): barra segmentada, bien visible */
.cfg-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 22px;padding:7px;background:#fff;
  border:1px solid var(--linea-2);border-radius:16px;width:fit-content;max-width:100%}
.cfg-tabs a{display:inline-flex;align-items:center;gap:.6rem;padding:12px 19px;border-radius:11px;
  font-weight:800;font-size:.93rem;color:var(--gris);transition:background .15s,color .15s}
.cfg-tabs a .ico{color:var(--gris-claro);width:17px;height:17px;flex:none}
.cfg-tabs a:hover{background:#f7f3fe;color:var(--morado)}
.cfg-tabs a:hover .ico{color:var(--violeta)}
.cfg-tabs a.on{background:var(--grad-morado);color:#fff}
.cfg-tabs a.on .ico{color:var(--dorado)}
@media(max-width:640px){
  .cfg-tabs{width:100%;padding:6px}
  .cfg-tabs a{flex:1 1 calc(50% - 6px);justify-content:center;padding:11px 10px;font-size:.85rem}
}

/* Selector de modo del horario: dos botones bien claros */
.hor-modo{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 12px}
.hor-modo-opt{cursor:pointer}
.hor-modo-opt input{position:absolute;opacity:0;width:0;height:0}
.hor-modo-opt span{display:inline-flex;align-items:center;gap:.45rem;padding:9px 16px;border-radius:var(--r-pill);
  border:1.5px solid var(--linea-2);background:#fff;font-weight:700;font-size:.9rem;color:var(--gris);
  transition:border-color .15s,color .15s,background .15s}
.hor-modo-opt span .ico{color:var(--gris-claro)}
.hor-modo-opt:hover span{border-color:var(--violeta-300);color:var(--morado)}
.hor-modo-opt input:checked+span{background:#f1ecfb;border-color:var(--morado);color:var(--morado)}
.hor-modo-opt input:checked+span .ico{color:var(--morado)}
.hor-modo-opt input:focus-visible+span{outline:2px solid var(--violeta);outline-offset:2px}
/* Chip "Abierto ahora / Cerrado" en la cabecera */
.ficha-estado{display:inline-flex;align-items:center;gap:.42rem;font-size:.8rem;font-weight:800;padding:4px 12px;border-radius:var(--r-pill)}
.ficha-estado.esta-abierto{background:#e7f8ee;color:#0b7a3b}
.ficha-estado.esta-cerrado{background:#fdeaea;color:#b4232a}
.estado-punto{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.ficha-estado.esta-abierto .estado-punto{animation:latido 1.8s ease-in-out infinite}
@keyframes latido{0%,100%{opacity:1}50%{opacity:.3}}
/* Cabecera de la ficha por niveles, separados con líneas divisorias */
/* Una sola divisoria cortada, entre la info y los botones */
.ficha-hero .ficha-acciones{margin-top:.95rem;padding-top:.95rem;border-top:1px dashed rgba(255,255,255,.34)}
/* Mini-estado junto al título "Horario de atención" + fila de HOY resaltada */
.info-card h3 .hor-estado{margin-left:auto;display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:800;padding:2px 9px;border-radius:var(--r-pill)}
.hor-estado.esta-abierto{color:#0b7a3b;background:#e5f7ec}
.hor-estado.esta-cerrado{color:#b4232a;background:#fdeaea}
.hor-show li.es-hoy .d,.hor-show li.es-hoy .r{color:var(--morado);font-weight:700}
.hor-show li.es-hoy .d b{font-weight:800}
/* Barra fija de contacto en móvil (Llamar / WhatsApp siempre a la vista) */
.ficha-barra-movil{display:none}
/* Carrusel horizontal de "Negocios similares" en móvil */
@media(max-width:767px){
  .card-grid--similares{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    padding-bottom:8px;scrollbar-width:none}
  .card-grid--similares::-webkit-scrollbar{display:none}
  .card-grid--similares>.card{flex:0 0 82%;max-width:300px;min-width:0;scroll-snap-align:start}
  .ficha-barra-movil{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:60;
    padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.97);
    -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--linea-2);box-shadow:0 -6px 20px rgba(18,8,40,.12)}
  .ficha-barra-movil .btn{flex:1;min-height:46px;font-weight:800;padding:.6rem;gap:.4em}
  body:has(.ficha-barra-movil) .site-footer{padding-bottom:74px}
  body:has(.ficha-barra-movil) .asistente{bottom:76px}
}
/* Reordenar bloques de la ficha en móvil/tablet: Info → Contacto → Horario → Video → Mapa → Compartir */
@media(max-width:991px){
  .ficha-main,.ficha-aside{display:contents}
  /* Al volverse celdas del grid, los bloques necesitan min-width:0 para no ensancharse
     con contenido ancho (galería, mapa) y provocar scroll horizontal. */
  .ficha-main>*,.ficha-aside>*{min-width:0;max-width:100%}
  .ord-info{order:1}
  .ord-galeria{order:2}
  .ord-contacto{order:3}
  .ord-horario{order:4}
  .ord-video{order:5}
  .ord-mapa{order:6}
  .ord-compartir{order:7}
  .ficha-grid .ficha-resenas{order:8}
  .ord-banner{order:9}
}
/* Sin colas de margen dentro de las columnas (elimina aire sobrante al final) */
.ficha-main>.bloque:last-child{margin-bottom:0}
.ficha-aside>:last-child{margin-bottom:0}

/* ---------- 404 ---------- */
.error-404{padding:60px 0}
.error-404 .big{font-size:6rem;font-weight:800;background:var(--grad-morado);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
.error-404 h2{margin:.4rem 0}
.error-404 p{color:var(--gris)}
.error-actions{display:flex;gap:12px;justify-content:center;margin-top:1.5rem;flex-wrap:wrap}

/* ---------- Formulario Anúnciate ---------- */
.anunciate-hero{position:relative;overflow:hidden;background:var(--grad-oscuro);color:#fff;padding:46px 0;text-align:center}
.anunciate-hero::before{content:"";position:absolute;right:-100px;top:-120px;width:320px;height:320px;background:radial-gradient(circle,rgba(245,180,0,.45),transparent 65%)}
.anunciate-hero .inner{position:relative;z-index:2}
.anunciate-hero h1{font-size:1.95rem}.anunciate-hero h1 span{color:var(--dorado)}
.anunciate-hero p{color:#e4ddf7;margin-top:.6rem;max-width:520px;margin-inline:auto}
.form-wrap{max-width:740px;margin:-30px auto 0;position:relative;z-index:5}
.form{background:#fff;border:1px solid var(--linea);border-radius:var(--r-lg);padding:26px;display:flex;flex-direction:column;gap:16px}
.form-seccion{display:flex;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:800;color:var(--morado);margin-top:10px;padding-bottom:8px;border-bottom:1px solid var(--linea)}
.form-seccion .ico{color:var(--violeta)}
.form label{display:flex;flex-direction:column;gap:.4rem;font-weight:700;font-size:.88rem;color:var(--tinta)}
.form input,.form select,.form textarea{font-family:inherit;font-size:1rem;padding:.78rem .9rem;border:1.5px solid var(--linea);
  border-radius:var(--r-sm);background:var(--fondo);color:var(--tinta);width:100%;font-weight:500}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--violeta);background:#fff}
/* Selects con flecha propia, bien separada del texto (formularios y conversor) */
.form select,.conversor-ctrl select{appearance:none;-webkit-appearance:none;padding-right:2.4rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C3AED' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .85rem center;background-size:15px}
.hor-sel select{background-image:none;padding-right:1.9rem} /* el editor de horarios ya trae su propia flecha */
.tel-group{display:flex;align-items:stretch;width:100%}
.tel-group .tel-pre{display:flex;align-items:center;padding:0 .8rem;background:#f1ecfb;color:var(--morado);font-weight:700;font-size:.95rem;border:1.5px solid var(--linea);border-right:0;border-radius:var(--r-sm) 0 0 var(--r-sm)}
.form .tel-group input{border-radius:0 var(--r-sm) var(--r-sm) 0;min-width:0}
.lbl-opc{font-weight:500;color:var(--gris-claro);font-size:.78rem}

/* Selector de ubicación en mapa (formulario de negocio) */
.mapa-pick{display:flex;flex-direction:column;gap:9px}
.mapa-pick-titulo{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:.88rem;color:var(--tinta);flex-wrap:wrap}
.mapa-pick-titulo .ico{color:var(--morado)}
.mapa-buscar{position:relative;display:flex;align-items:center;gap:8px;background:var(--fondo);border:1.5px solid var(--linea);
  border-radius:var(--r-sm);padding:0 8px 0 12px}
.mapa-buscar:focus-within{border-color:var(--violeta);background:#fff}
.mapa-buscar>.ico{color:var(--morado);flex:none}
.form .mapa-buscar input{flex:1;border:0;background:none;padding:.72rem 0;min-width:0}
.mapa-gps{flex:none;display:inline-flex;align-items:center;gap:.35rem;background:#f1ecfb;border:1px solid var(--violeta-300);
  color:var(--morado);border-radius:var(--r-pill);padding:.4rem .8rem;font-weight:700;font-size:.78rem;cursor:pointer;font-family:inherit}
.mapa-gps:hover{background:var(--morado);color:#fff}
.mapa-sug{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;background:#fff;border:1.5px solid var(--linea-2);
  border-radius:var(--r-sm);overflow:hidden;display:flex;flex-direction:column}
.mapa-sug button{text-align:left;background:#fff;border:0;border-bottom:1px solid var(--linea);padding:.6rem .85rem;
  font-family:inherit;font-size:.86rem;font-weight:600;color:var(--tinta);cursor:pointer}
.mapa-sug button:last-child{border-bottom:0}
.mapa-sug button:hover{background:#f1ecfb;color:var(--morado)}
.mapa-sug-vacio{display:block;padding:.6rem .85rem;font-size:.83rem;color:var(--gris);font-weight:500}
.mapa-pick-estado{font-size:.78rem;font-weight:600;color:var(--wa-700)}
.mapa-pick-lienzo{height:280px;border-radius:var(--r-sm);border:1.5px solid var(--linea);background:var(--fondo);z-index:1}

/* Llamado a la galería de fotos (formulario de edición) */
.foto-cta{display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:var(--fondo);
  border:1.5px dashed var(--violeta-300);border-radius:var(--r-sm);padding:14px 16px}
.foto-cta-ico{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#fff;
  background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.42),transparent 58%),var(--grad-morado)}
.foto-cta-txt{flex:1;min-width:0}
.foto-cta-txt p{color:var(--gris);font-size:.85rem;font-weight:500;margin-top:2px}
.foto-cta .btn{flex:none}
@media(min-width:640px){.foto-cta{flex-direction:row;align-items:center}}

/* Contraseña generada al restablecer (Admin → Usuarios): grande y fácil de copiar */
.reset-pass{margin-top:8px}
.reset-pass code{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:1.35rem;font-weight:800;letter-spacing:.12em;color:var(--morado);background:#fff;
  border:1.5px dashed var(--dorado);border-radius:10px;padding:.35rem .9rem;user-select:all}

/* Documentación del admin (manual completo en una sola página) */
.doc{max-width:840px}
.doc-lead{font-size:1rem;color:#403a52;line-height:1.65;margin-bottom:18px}
.doc-toc{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.doc-toc-grupo{flex-basis:100%;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--gris-claro);margin:8px 0 0}
.doc-toc-grupo:first-child{margin-top:0}
/* Índice de la documentación por pestañas (grupos del menú) */
.doc-nav{margin-bottom:22px}
.doc-nav-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:7px;background:#fff;border:1px solid var(--linea-2);
  border-radius:16px;width:fit-content;max-width:100%;margin-bottom:12px}
.doc-nav-tabs button{border:0;background:transparent;cursor:pointer;font-family:inherit;
  padding:10px 17px;border-radius:11px;font-weight:800;font-size:.9rem;color:var(--gris);transition:background .15s,color .15s}
.doc-nav-tabs button:hover{background:#f7f3fe;color:var(--morado)}
.doc-nav-tabs button.on{background:var(--grad-morado);color:#fff}
.doc-nav-panel{margin-bottom:0}
@media(max-width:640px){
  .doc-nav-tabs{width:100%}
  .doc-nav-tabs button{flex:1 1 calc(33.3% - 6px);padding:10px 8px;font-size:.82rem}
}
.doc-toc a{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--linea-2);
  border-radius:var(--r-pill);padding:.45rem .9rem;font-weight:700;font-size:.84rem;color:var(--morado)}
.doc-toc a .ico{color:var(--violeta)}
.doc-toc a:hover{border-color:var(--violeta-300);background:#f7f3fe}
.doc-sec{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:16px 22px;margin-bottom:10px;scroll-margin-top:80px}
.doc-sec h2{font-size:1.08rem;display:flex;align-items:center;gap:.55rem;margin-bottom:0;cursor:pointer;position:relative;padding-right:30px;user-select:none}
.doc-sec h2::after{content:"";position:absolute;right:4px;top:50%;width:9px;height:9px;
  border-right:2.2px solid var(--gris-claro);border-bottom:2.2px solid var(--gris-claro);
  transform:translateY(-70%) rotate(45deg);transition:transform .18s}
.doc-sec h2:hover{color:var(--morado)}
.doc-sec>*:not(h2){display:none}
.doc-sec.abierta{padding:20px 22px}
.doc-sec.abierta h2{margin-bottom:.4rem;font-size:1.2rem}
.doc-sec.abierta h2::after{transform:translateY(-30%) rotate(225deg)}
.doc-sec.abierta>*:not(h2){display:revert}
.doc-sec h2 .ico{color:var(--morado);flex:none}
.doc-sec h3{font-size:1rem;color:var(--morado);margin:16px 0 6px}
.doc-sec p{color:#403a52;line-height:1.65;margin:.4rem 0}
.doc-sec a{color:var(--morado);font-weight:700}
.doc-sec .doc-sub{font-weight:800;color:var(--tinta);margin:14px 0 2px}
.doc-mut{color:var(--gris);font-weight:500}
.doc-sec code{background:#f1ecfb;border-radius:6px;padding:.05rem .45rem;font-family:ui-monospace,monospace;font-size:.9em;color:var(--morado);word-break:break-word}
.doc-steps{list-style:none;counter-reset:paso;display:flex;flex-direction:column;gap:11px;margin:10px 0;padding:0}
.doc-steps>li{counter-increment:paso;position:relative;padding:3px 0 3px 42px;color:#403a52;line-height:1.55;min-height:30px}
.doc-steps>li::before{content:counter(paso);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;
  display:grid;place-items:center;background:var(--grad-morado);color:#fff;font-weight:800;font-size:.85rem}
.doc-steps>li strong{color:var(--tinta)}
.doc-campos{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.doc-campos>li{position:relative;padding-left:18px;color:#403a52;line-height:1.55}
.doc-campos>li::before{content:"";position:absolute;left:2px;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--dorado)}
.doc-campos b{color:var(--tinta)}
.doc-callout{display:flex;gap:.6rem;align-items:flex-start;border-radius:var(--r-sm);padding:.75rem .9rem;font-size:.9rem;line-height:1.5;margin:12px 0 2px}
.doc-callout .ico{flex:none;margin-top:1px}
.doc-callout--tip{background:#f1ecfb;border:1px solid var(--violeta-300);color:#4a3a6b}
.doc-callout--tip .ico{color:var(--violeta)}
.doc-callout--warn{background:#fdeeee;border:1px solid #f7c9c9;color:#9a1c1c}
.doc-callout--warn .ico{color:#c0392b}
.doc-callout a{color:inherit;font-weight:800;text-decoration:underline}
.admin-user{text-decoration:none}
.admin-user:hover{color:var(--dorado)}
.form-row{display:flex;flex-direction:column;gap:16px}
.form-nota{font-size:.8rem;color:var(--gris);text-align:center;font-weight:500}
.form .check{flex-direction:row;align-items:center;gap:.5rem;font-weight:600;background:var(--fondo);border:1px solid var(--linea);border-radius:var(--r-sm);padding:.7rem .85rem}
.form .check input{width:auto;flex:none}
.form .check .ico{color:var(--dorado-600)}

/* ---------- Footer ---------- */
.site-footer{position:relative;isolation:isolate;overflow:hidden;background:var(--morado-900);color:#c8bee4;margin-top:0;padding:46px 0 0}
.site-footer::before,.site-footer::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  -webkit-mask:url(../img/bg1.png) right bottom/auto 170% no-repeat;
  mask:url(../img/bg1.png) right bottom/auto 170% no-repeat}
.site-footer::before{background:rgba(255,255,255,.95)}
.site-footer::after{background:rgba(254,182,5,.42);transform:translate(-10px,-8px)}
.site-footer>.container{position:relative;z-index:1}
.footer-grid{display:grid;grid-template-columns:1fr;gap:28px;padding-bottom:32px}
.logo-word--footer{color:#fff;font-size:1.25rem;margin-bottom:.7rem}
.logo-word--footer .t{color:var(--dorado)}
.footer-desc{font-size:.9rem;color:#9b8fc4;max-width:330px}
.footer-social{display:flex;gap:10px;margin-top:1rem}
.footer-social a{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.08);display:grid;place-items:center;color:#fff}
.footer-social a:hover{background:var(--dorado);color:var(--morado-900)}
.site-footer h4{color:#fff;font-size:.95rem;margin-bottom:.9rem}
.site-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem;font-size:.9rem}
.site-footer ul a{display:inline-flex;align-items:center;gap:.45rem}
.site-footer ul a .ico{color:var(--violeta-300)}
.site-footer a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:20px 0;font-size:.83rem;color:#9b8fc4;text-align:center}
.footer-bottom a{color:var(--dorado);font-weight:800}
.footer-bottom a:hover{color:#fff}

/* Recuperación de estilos recientes del panel */
.page-hero{position:relative;overflow:hidden;background:var(--grad-oscuro);color:#fff;padding:46px 0;text-align:center}
.page-hero::before{content:"";position:absolute;right:-100px;top:-120px;width:320px;height:320px;background:radial-gradient(circle,rgba(245,180,0,.45),transparent 65%)}
.page-hero .inner{position:relative;z-index:2}.page-hero h1{font-size:1.95rem}.page-hero h1 span{color:var(--dorado)}.page-hero p{color:#e4ddf7;margin-top:.6rem;max-width:560px;margin-inline:auto}
.avatar--ini{display:inline-flex;align-items:center;justify-content:center;font-weight:900;text-transform:uppercase}
.cat-icoimg{display:inline-block;object-fit:contain;vertical-align:middle}
.adm-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.adm-filtro-buscar{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--linea-2);border-radius:var(--r-sm);padding:0 12px;flex:1 1 240px;min-width:200px}
.adm-filtro-buscar .ico{color:var(--morado);flex:none}.adm-filtro-buscar input{flex:1;min-width:0;border:0;background:none;padding:.68rem 0;font-family:inherit;font-size:.92rem;color:var(--tinta);outline:none;font-weight:500}.adm-filtro-buscar:focus-within{border-color:var(--violeta)}
.adm-filtros>select{background:#fff;border:1.5px solid var(--linea-2);border-radius:var(--r-sm);padding:.62rem .8rem;font-family:inherit;font-size:.88rem;font-weight:600;color:var(--tinta);cursor:pointer;max-width:200px}.adm-filtros>select:focus{outline:none;border-color:var(--violeta)}
.adm-filtro-n{font-size:.8rem;font-weight:800;color:var(--morado);background:#f1ecfb;border-radius:var(--r-pill);padding:4px 11px}.adm-filtro-n:empty{display:none}
.adm-neg{display:flex;align-items:center;gap:10px;min-width:0}.adm-logo{width:42px;height:42px;border-radius:11px;overflow:hidden;flex:none;border:1px solid var(--linea);background:var(--grad-morado);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.05rem}.adm-logo img{width:100%;height:100%;object-fit:cover;display:block;background:#fff}.adm-neg-txt{min-width:0}
.admin-seo-panel{background:#fff;border:1px solid var(--linea);border-radius:18px;padding:16px;margin:16px 0 18px}
.admin-seo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.admin-seo-head h2{font-size:1.1rem;margin:2px 0 4px}.admin-seo-head p{margin:0;color:var(--gris);font-size:.88rem;line-height:1.45}
.admin-seo-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.admin-seo-stats span,.seo-chip{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:5px 10px;font-size:.74rem;font-weight:900;line-height:1.2}.admin-seo-stats .is-warn,.seo-chip--warn{background:#fff6db;color:#805900}.admin-seo-stats .is-ok,.seo-chip--ok{background:#eaf8ef;color:#167143}
.admin-seo-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.admin-seo-list a{display:block;border:1px solid var(--linea-2);border-radius:14px;padding:10px 12px;color:var(--tinta);background:#faf8ff}.admin-seo-list strong{display:block;font-size:.9rem}.admin-seo-list span{display:block;color:var(--gris);font-size:.76rem;margin:2px 0 6px}.admin-seo-list small{display:flex;flex-wrap:wrap;gap:4px}.admin-seo-list b{font-size:.67rem;border-radius:999px;background:#fff6db;color:#805900;padding:3px 7px}
.adm-seo-tags{display:flex;flex-wrap:wrap;gap:5px;max-width:260px}
@media (max-width:700px){
  .admin-seo-panel{padding:14px}
  .admin-seo-head{display:block}
  .admin-seo-head .btn{margin-top:12px;width:100%;justify-content:center}
  .admin-seo-head h2{font-size:1.18rem;max-width:100%}
  .admin-seo-stats span{font-size:.72rem}
}
.cat-admin-mover{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:10px}.cat-admin-mover label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:700;color:var(--tinta)}.cat-admin-mover select{background:#fff;border:1.5px solid var(--linea-2);border-radius:var(--r-sm);padding:.55rem .8rem;font-family:inherit;font-size:.9rem;min-width:230px}
.ubic-collapsible-forms{max-width:760px;background:#fff;border:1px solid var(--linea-2);border-radius:16px;margin-bottom:16px;overflow:hidden}.ubic-collapsible-head{display:flex;align-items:center;gap:.55rem;padding:14px 16px;cursor:pointer;list-style:none;font-weight:800;color:var(--tinta)}.ubic-collapsible-head::-webkit-details-marker{display:none}.ubic-collapsible-head .ico{color:var(--morado)}.ubic-collapsible-forms[open] .ubic-chev{transform:rotate(180deg)}
.msg-nuevo{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:#fff0c2;color:#8a6200;font-size:.68rem;font-weight:900;margin-left:5px}.fila-nueva{background:#fffdf3}
.faq-edit-list{display:flex;flex-direction:column;gap:10px}.man-sw{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.man-toggle{display:inline-flex!important;align-items:center!important;gap:8px;flex-direction:row!important;cursor:pointer;font-weight:800!important}.man-toggle input{position:absolute;opacity:0;width:0;height:0}.man-toggle-pista{position:relative;width:46px;height:26px;border-radius:999px;background:var(--linea-2);display:inline-flex;align-items:center;padding:3px;transition:background .18s}.man-toggle-pista i{width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .18s}.man-toggle input:checked+.man-toggle-pista{background:var(--morado)}.man-toggle input:checked+.man-toggle-pista i{transform:translateX(20px)}
.form-seccion{align-items:flex-start}
.form-seccion>span{display:flex;flex-direction:column;gap:2px}
.form-seccion small{display:block;font-size:.78rem;font-weight:600;color:var(--gris);line-height:1.35}
.form-bloque{display:flex;flex-direction:column;gap:12px}.ico-x{display:block}.no-acc{ }
.ubi-preview{border:1px solid var(--linea);border-radius:14px;overflow:hidden;background:#fff;margin-top:10px}.ubi-preview iframe{width:100%;height:220px;border:0;display:block}
.sec-acc{background:#fff;border:1px solid var(--linea-2);border-radius:16px;margin-bottom:12px;overflow:visible;box-shadow:0 8px 22px rgba(64,23,139,.045);scroll-margin-top:86px}
.sec-acc>summary{display:flex;align-items:flex-start;gap:.65rem;padding:15px 18px;cursor:pointer;list-style:none;font-weight:800;color:var(--tinta)}
.sec-acc>summary::-webkit-details-marker{display:none}
.sec-acc>summary>.ico{color:var(--morado);margin-top:2px;flex:none}
.sec-acc>summary>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.sec-acc>summary small{font-size:.78rem;font-weight:600;line-height:1.35;color:var(--gris)}
.sec-acc-chev{margin-left:auto;margin-top:3px;color:var(--gris-claro)!important;transition:transform .18s;flex:none}
.sec-acc[open] .sec-acc-chev{transform:rotate(180deg)}
.sec-acc-cuerpo{padding:4px 18px 18px;border-top:1px solid var(--linea);display:flex;flex-direction:column;gap:14px}
.negocio-admin-shell{width:100%;max-width:none;margin:0}
.negocio-admin-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}.negocio-admin-main{min-width:0}.negocio-hero-copy{min-width:0}
.negocio-admin-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px;background:linear-gradient(135deg,#fff 0%,#fbf8ff 58%,#fff7dd 100%);border-radius:22px;padding:20px 22px;box-shadow:0 14px 36px rgba(64,23,139,.07)}
.negocio-back{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:12px;font-size:.82rem;font-weight:800;color:var(--morado)}
.negocio-back .ico{transform:rotate(180deg);color:var(--violeta)}
.negocio-eyebrow{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:6px;font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--gris)}
.negocio-admin-hero h1{display:flex;align-items:center;gap:.55rem;font-size:1.55rem;line-height:1.15;color:var(--tinta);margin:0}
.negocio-admin-hero p{margin:.45rem 0 0;color:#51476a;max-width:680px;line-height:1.5;font-size:.94rem}
.negocio-hero-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px}
.negocio-hero-meta>span:not(.negocio-status){display:inline-flex;align-items:center;gap:.35rem;padding:6px 10px;border-radius:var(--r-pill);background:rgba(255,255,255,.72);border:1px solid rgba(124,58,237,.16);font-size:.78rem;font-weight:800;color:#51476a}
.negocio-hero-actions{display:flex;align-items:center;gap:8px;flex:none;padding-top:4px}
.negocio-admin-layout--simple{display:block;max-width:980px}
.negocio-form-wrap{max-width:none;margin:0;z-index:auto}
.negocio-form-wrap .form{background:transparent;border:0;border-radius:0;padding:0;gap:12px}
.negocio-status{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:5px 10px;border-radius:var(--r-pill);font-size:.74rem;font-weight:900;letter-spacing:.02em;white-space:nowrap}
.negocio-status--activo{background:#eaf8ef;color:#167143}.negocio-status--pendiente{background:#fff4cc;color:#8a6200}.negocio-status--inactivo{background:#eeeaf6;color:#655a7b}
.negocio-form-note{display:flex;align-items:flex-start;gap:10px;padding:13px 15px;background:#fffdf3;border-radius:15px;color:#5f4d1c;box-shadow:0 8px 22px rgba(64,23,139,.045);font-size:.88rem;line-height:1.45}
.tipo-ficha-box{display:grid;grid-template-columns:1fr;gap:10px;border:1px solid var(--linea-2);background:linear-gradient(135deg,#fff,#faf8ff);border-radius:16px;padding:13px}
.tipo-ficha-box label{margin:0}
.tipo-ficha-hint{display:flex;align-items:flex-start;gap:8px;text-align:left!important;background:#f7f3fe;border-radius:13px;padding:10px 12px;font-size:.83rem;line-height:1.45}
.tipo-ficha-hint .ico{color:var(--morado);flex:none;margin-top:1px}
.negocio-form-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:4px;padding:14px 0 4px}
.media-upload{display:grid;grid-template-columns:1fr;gap:12px;border:1px solid var(--linea-2);border-radius:16px;background:#fff;padding:14px}
.media-upload-copy strong{display:flex;align-items:center;gap:.45rem;color:var(--tinta)}
.media-upload-copy strong .ico{color:var(--morado)}
.media-upload-copy p{margin:4px 0 0;color:var(--gris);font-size:.86rem;line-height:1.45}
.media-preview{margin:0;position:relative;overflow:hidden;border-radius:14px;background:linear-gradient(135deg,#f7f3fe,#fff);min-height:132px}
.media-preview img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}
.media-preview--logo{width:100%;max-width:160px;aspect-ratio:1/1;justify-self:start}
.media-preview--logo img{padding:0}
.media-preview figcaption,.portada-preview figcaption{position:absolute;left:9px;bottom:9px;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--morado);font-weight:800;font-size:.74rem}
.media-preview-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;color:#7a6b96;font-weight:900;background:linear-gradient(135deg,#faf8ff,#f1ecfb)}
.media-preview-empty .ico{color:var(--violeta)}
.media-preview.is-selected figcaption,.portada-preview.is-selected figcaption{background:#eaf8ef;color:#167143}
.media-drop{display:flex!important;align-items:center;justify-content:center;flex-direction:column;gap:7px;border:1.5px dashed var(--violeta-300);border-radius:15px;background:#faf8ff;padding:16px;text-align:center;cursor:pointer;color:var(--morado);font-weight:900}
.media-drop input{margin-top:6px;max-width:100%;font-weight:600;color:var(--tinta)}
.media-drop small{font-size:.76rem;color:var(--gris);font-weight:600}
.portada-panel{display:grid;grid-template-columns:1fr;gap:12px;border:1px solid var(--linea-2);border-radius:16px;background:#fff;padding:14px}
.portada-copy strong{display:flex;align-items:center;gap:.45rem;color:var(--tinta)}
.portada-copy strong .ico{color:var(--morado)}
.portada-copy p{margin:4px 0 0;color:var(--gris);font-size:.86rem;line-height:1.45}
.portada-preview{margin:0;border-radius:14px;overflow:hidden;background:var(--fondo);position:relative;aspect-ratio:16/7}
.portada-preview img{width:100%;height:100%;object-fit:cover;display:block}
.portada-preview.is-empty{background:linear-gradient(135deg,#faf8ff,#f1ecfb)}
.portada-drop{display:flex!important;align-items:center;justify-content:center;flex-direction:column;gap:7px;border:1.5px dashed var(--violeta-300);border-radius:15px;background:#faf8ff;padding:16px;text-align:center;cursor:pointer;color:var(--morado);font-weight:900}
.portada-drop input{margin-top:6px;max-width:100%;font-weight:600;color:var(--tinta)}
.portada-drop small{font-size:.76rem;color:var(--gris);font-weight:600}
.portada-quitar{margin-top:-2px}
@media(min-width:720px){
  .media-upload{grid-template-columns:1.2fr 170px;align-items:center}
  .media-upload-copy{grid-column:1}
  .media-preview{grid-column:2;grid-row:1 / span 2}
  .media-drop{grid-column:1}
  .portada-panel{grid-template-columns:1.2fr 1fr;align-items:center}
  .portada-copy{grid-column:1}
  .portada-preview{grid-column:2;grid-row:1 / span 2}
  .portada-drop{grid-column:1}
  .portada-quitar{grid-column:1 / -1}
}
.gal-panel{border:1px solid var(--linea-2);border-radius:16px;background:#fff;padding:14px}
.gal-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.gal-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#f1ecfb;color:var(--morado);font-size:.75rem;margin-left:5px}
.gal-drop{display:flex!important;align-items:center;justify-content:center;flex-direction:column;gap:8px;border:1.5px dashed var(--violeta-300);border-radius:15px;background:#faf8ff;padding:18px;text-align:center;cursor:pointer}
.gal-drop-ico{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#f1ecfb;color:var(--morado)}
.gal-drop-main{font-weight:900;color:var(--tinta)}
.gal-drop-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:var(--r-pill);background:var(--grad-dorado);color:var(--morado-900);font-weight:900}
.gal-drop-sub{font-size:.78rem;color:var(--gris)}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;margin-top:14px}
.gal-grid:empty{display:none}
.gal-thumb{position:relative;margin:0;aspect-ratio:1/1;border-radius:12px;overflow:hidden;border:1px solid var(--linea);background:#f4f1fb}
.gal-thumb img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}
.gal-thumb-x{position:absolute;right:5px;top:5px;width:28px;height:28px;border-radius:9px;border:0;cursor:pointer;display:grid;place-items:center;background:rgba(255,255,255,.94);color:var(--gris)}
.gal-thumb-x:hover{background:#c0392b;color:#fff}
.gal-lightbox{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(20,10,45,.86);backdrop-filter:blur(3px)}
.gal-lightbox[hidden]{display:none}.gal-lightbox img{max-width:min(100%,1100px);max-height:90vh;border-radius:12px}.gal-lightbox-x{position:absolute;top:16px;right:18px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:26px;cursor:pointer}
.usuarios-hero{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px;padding:18px;background:linear-gradient(135deg,#fff,#fbf8ff);border-radius:18px;box-shadow:0 10px 28px rgba(64,23,139,.06)}
.usuarios-page{max-width:1120px}
.usuarios-hero-main{display:flex;gap:13px;align-items:flex-start}.usuarios-hero-ico{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:#f1ecfb;color:var(--morado);flex:none}
.usuarios-eyebrow{display:block;font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--gris)}.usuarios-hero h1{font-size:1.55rem;margin:0}.usuarios-hero h1 span{color:var(--morado)}
.usuarios-hero p{margin:.3rem 0 0;color:var(--gris);font-size:.92rem}.usuarios-acceso{display:inline-flex;align-items:center;gap:.4rem;padding:7px 11px;border-radius:999px;background:#fff7dd;color:#7a5600;font-size:.78rem;font-weight:900}
.usuarios-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.usuarios-kpi{display:flex;align-items:center;gap:13px;padding:15px 16px;background:#fff;border:1px solid var(--linea);border-radius:var(--r)}.usuarios-kpi-ico{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#f1ecfb;color:var(--morado);flex:none}.usuarios-kpi strong{display:block;font-size:1.25rem}.usuarios-kpi span span,.usuarios-kpi div span{font-size:.8rem;color:var(--gris);font-weight:700}
.usuarios-kpi--admin .usuarios-kpi-ico{background:#fff7d8;color:#a06b00}.usuarios-kpi--hist .usuarios-kpi-ico{background:var(--fondo);color:var(--gris)}
.usuarios-panel{background:#fff;border:1px solid var(--linea);border-radius:18px;overflow:hidden}.usuarios-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--linea)}.usuarios-toolbar h2{font-size:1.08rem;margin:0}.usuarios-toolbar p{margin:3px 0 0;color:var(--gris);font-size:.84rem}
.usuarios-buscar{display:flex;align-items:center;gap:8px;min-width:min(340px,100%);padding:0 12px;border:1.5px solid var(--linea);border-radius:13px;background:var(--fondo)}.usuarios-buscar input{border:0;background:transparent;padding:.72rem 0;outline:none;font-family:inherit;font-weight:600;min-width:0;width:100%}
.usuarios-tabla-wrap{overflow:auto}.usuarios-tabla{width:100%;border-collapse:collapse}.usuarios-tabla th,.usuarios-tabla td{padding:13px 15px;border-bottom:1px solid var(--linea);text-align:left;vertical-align:middle}.usuarios-tabla th{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--gris)}
.usuario-identidad{display:flex;align-items:center;gap:10px}.usuario-avatar{width:42px;height:42px;border-radius:14px;background:#f1ecfb;color:var(--morado);display:grid;place-items:center;font-weight:900;flex:none}.usuario-avatar--admin{background:var(--grad-morado);color:#fff}.usuario-tu,.usuario-rol{display:inline-flex;align-items:center;gap:.3rem;margin-left:6px;padding:3px 8px;border-radius:999px;background:#fff7dd;color:#7a5600;font-size:.7rem;font-weight:900}.usuario-contacto{display:flex;flex-direction:column;gap:5px}.usuario-contacto a{display:inline-flex;align-items:center;gap:.35rem;color:var(--morado);font-weight:700}.usuario-fecha{display:inline-flex;align-items:center;gap:.35rem;color:var(--gris);font-weight:700}.usuarios-vacio{display:grid;place-items:center;gap:6px;padding:24px;color:var(--gris)}
.usuario-actual{background:#fffdf3}
.usuario-rol--admin{background:#f1ecfb;color:var(--morado)}
.usuario-sin-dato{color:var(--gris-claro);font-weight:700;font-size:.85rem}
.contacto-form-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.contacto-form-head>span{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#f1ecfb;color:var(--morado);flex:none}.contacto-form-head h2{font-size:1.2rem}.contacto-form-head p{color:var(--gris);font-size:.88rem;margin-top:2px}.contacto-form-wrap>.form{border-radius:var(--r);padding:22px}
@media(max-width:700px){.negocio-admin-hero,.usuarios-hero,.usuarios-toolbar{flex-direction:column}.usuarios-kpis{grid-template-columns:1fr}.usuarios-buscar{width:100%;min-width:0}.negocio-hero-actions{width:100%;display:grid;grid-template-columns:1fr}.negocio-form-actions{position:sticky;bottom:0;z-index:20;margin:8px -16px -16px;padding:12px 16px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);box-shadow:0 -10px 24px rgba(64,23,139,.08)}.negocio-form-actions .btn{flex:1 1 145px;justify-content:center}}

/* ---------- Cuentas / Autenticación ---------- */
.auth-wrap{max-width:440px;margin:0 auto;text-align:center}
.auth-wrap .eyebrow{margin-inline:auto}
.auth-title{font-size:1.8rem;margin-bottom:.3rem}
.auth-sub{color:var(--gris);margin-bottom:1.4rem}
.auth-wrap .form,.auth-wrap .flash{text-align:left}
.auth-alt{margin-top:1.1rem;color:var(--gris);font-weight:500}
.auth-wa{display:flex;flex-direction:column;align-items:center;gap:10px;background:#fff;border:1px solid var(--linea);
  border-radius:var(--r-sm);padding:16px;margin-top:14px}
.auth-wa p{color:var(--gris);font-weight:600;font-size:.92rem}
.auth-alt a{color:var(--morado);font-weight:700}

/* ---------- Panel del anunciante ---------- */
.panel-hero{position:relative;overflow:hidden;background:var(--grad-oscuro);color:#fff;padding:34px 0}
.panel-hero::before{content:"";position:absolute;right:-110px;top:-110px;width:300px;height:300px;background:radial-gradient(circle,rgba(245,180,0,.4),transparent 65%)}
.panel-hero .inner{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.panel-hero h1{font-size:1.7rem}
.panel-hero p{color:#e4ddf7;margin-top:.3rem}
.panel-list{display:flex;flex-direction:column;gap:14px}
.panel-item{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:16px;flex-wrap:wrap}
.panel-item-logo{flex:0 0 56px;height:56px;border-radius:13px;overflow:hidden;background:#fff;border:1px solid var(--linea);display:grid;place-items:center}
.panel-item-logo img{width:100%;height:100%;object-fit:contain;padding:4px}
.panel-item-info{flex:1;min-width:200px}
.panel-item-info h3{font-size:1.08rem}
.panel-item-info h3 a:hover{color:var(--morado)}
.panel-item-info p{font-size:.85rem;color:var(--gris);margin:.25rem 0 .5rem;display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}
.panel-item-acciones{display:flex;gap:8px;flex-wrap:wrap}
.estado{display:inline-flex;align-items:center;font-size:.7rem;font-weight:800;padding:3px 10px;border-radius:var(--r-pill);text-transform:uppercase;letter-spacing:.03em;margin-right:6px}
.estado-activo{background:#eafaf0;color:#0a6b39}
.estado-pendiente{background:#fff5e6;color:#9a6b00}
.estado-inactivo{background:#f3f0fa;color:var(--gris)}

/* ---------- Reseñas y estrellas ---------- */
.ficha-rating{color:var(--gris)}
.ficha-rating b{color:var(--tinta)}
.card-rating{display:flex;align-items:center;gap:.35rem;margin-top:7px;font-size:.82rem;color:var(--gris)}
.card-rating b{color:var(--tinta)}
.rating-resumen{display:flex;align-items:center;gap:1.1rem;background:var(--fondo);border-radius:var(--r);padding:16px 20px;margin-bottom:18px}
.rating-num{font-size:2.6rem;font-weight:800;color:var(--morado);line-height:1}
.rating-detalle{display:flex;flex-direction:column;gap:.25rem}
.rating-detalle small{color:var(--gris);font-weight:600}
.resena-form{background:var(--fondo);border:1px solid var(--linea);border-radius:var(--r);padding:18px;margin-bottom:22px}
.resena-form-titulo{font-weight:800;margin-bottom:.5rem}
.resena-form textarea{width:100%;font-family:inherit;font-size:.95rem;padding:.7rem .85rem;border:1.5px solid var(--linea);border-radius:var(--r-sm);background:#fff;color:var(--tinta);margin:.6rem 0 .8rem}
.resena-form textarea:focus{outline:none;border-color:var(--violeta)}
.estrellas-input{display:inline-flex;flex-direction:row-reverse;gap:4px}
.estrellas-input input{position:absolute;width:1px;height:1px;opacity:0}
.estrellas-input label{cursor:pointer;color:var(--linea-2);line-height:0;transition:color .12s}
.estrellas-input label:hover,.estrellas-input label:hover ~ label,.estrellas-input input:checked ~ label{color:var(--dorado)}
.estrellas-input input:focus-visible + label{outline:3px solid var(--violeta-300);outline-offset:2px;border-radius:4px}
.resena-login{color:var(--gris);font-weight:500}
.resena-login a{color:var(--morado);font-weight:700}
.resena-list{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.resena{border-top:1px solid var(--linea);padding:14px 0}
.resena-cab{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.resena-autor{display:flex;align-items:center;gap:.5rem;font-weight:700}
.avatar{flex:none;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--grad-morado);color:#fff;font-weight:800;line-height:1}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.resena-texto{color:#403a52;margin-top:.5rem;line-height:1.6}
.resena-fecha{display:block;color:var(--gris-claro);font-size:.78rem;margin-top:.45rem}

/* ====== Panel del usuario: dashboard con menú lateral (web) / pestañas (móvil) ====== */
.cuenta-shell{display:grid;grid-template-columns:1fr;gap:18px;padding-top:22px;padding-bottom:34px}
.cuenta-side{min-width:0}
.cuenta-side-card{background:#fff;border:1px solid var(--linea);border-radius:var(--r);overflow:hidden}
.cuenta-side-user{display:flex;align-items:center;gap:12px;padding:16px;background:var(--grad-oscuro);color:#fff}
.cuenta-side-user .avatar{border:2px solid rgba(255,255,255,.55)}
.cuenta-side-user-txt{min-width:0}
.cuenta-side-user-txt strong{display:block;font-size:1rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cuenta-side-user-txt span{display:block;color:#d9cffa;font-size:.8rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cuenta-nav{display:flex;flex-direction:column;gap:3px;padding:8px}
.cuenta-side-links{display:flex;flex-direction:column;gap:3px;padding:8px;border-top:1px solid var(--linea)}
.cuenta-nav-item{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;background:none;border:0;cursor:pointer;
  font-family:inherit;font-weight:700;font-size:.92rem;color:var(--tinta);padding:.62rem .7rem;border-radius:var(--r-sm)}
.cuenta-nav-item .ico{color:var(--gris-claro);flex:none}
.cuenta-nav-item:hover{background:var(--fondo)}
.cuenta-nav-item.is-active{background:#f1ecfb;color:var(--morado)}
.cuenta-nav-item.is-active .ico{color:var(--morado)}
.cuenta-nav-item span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cuenta-nav-num{flex:none;background:var(--fondo);color:var(--gris);font-size:.72rem;font-weight:800;padding:1px 8px;border-radius:999px}
.cuenta-nav-item.is-active .cuenta-nav-num{background:#fff;color:var(--morado)}
.cuenta-nav-dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--dorado)}
.cuenta-side-cta{margin-top:12px;width:100%;justify-content:center}
.cuenta-main{min-width:0}
.cuenta-tab-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:18px;flex-wrap:wrap}
.cuenta-tab-head h2{display:flex;align-items:center;gap:.55rem;font-size:1.4rem}
.cuenta-tab-head h2 .ico{color:var(--violeta);flex:none}
.cuenta-tab-head .sub{color:var(--gris);font-size:.92rem;margin-top:.25rem}
.cuenta-tab-head .eyebrow{margin-bottom:8px}
html.js .cuenta-tab{display:none}
html.js .cuenta-tab.is-active{display:block}
.cuenta-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}
.cuenta-stat{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:15px 16px}
.cuenta-stat .ico{color:var(--violeta)}
.cuenta-stat b{display:block;font-size:1.7rem;font-weight:800;line-height:1.05;margin-top:8px;color:var(--morado)}
.cuenta-stat small{color:var(--gris);font-size:.82rem;font-weight:700}
.cuenta-acc{display:flex;gap:10px;flex-wrap:wrap}
.cuenta-form-wrap{max-width:520px}

/* Foto de perfil en "Mi cuenta" */
.cuenta-foto{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:16px 18px;margin-bottom:18px;text-align:left}
.cuenta-foto-acc{min-width:0}
.cuenta-foto-tit{font-weight:800;font-size:1rem}
.cuenta-foto-sub{color:var(--gris);font-size:.82rem;margin:.15rem 0 .65rem}
.cuenta-foto-btns{display:flex;gap:8px;flex-wrap:wrap}
.cuenta-foto-btns form{margin:0}
.cuenta-foto-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.cuenta-foto .btn{padding:.5rem 1rem;font-size:.85rem;cursor:pointer}

@media(min-width:980px){
  .cuenta-shell{grid-template-columns:264px 1fr;gap:24px;align-items:start}
  .cuenta-side{position:sticky;top:16px}
  .cuenta-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:979px){
  /* En móvil el menú es una LISTA vertical (sin scroll horizontal); el contenido va debajo. */
  .cuenta-side{margin-bottom:6px}
  .cuenta-side-links{flex-direction:row;flex-wrap:wrap}
}

/* ===========================================================
   Responsive
   =========================================================== */
@media(min-width:600px){
  .cat-grid{grid-template-columns:repeat(3,1fr)}
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .form-row{flex-direction:row}.form-row>label{flex:1}
  .ad-band{flex-direction:row;text-align:left;justify-content:center}
  .search-box{flex-direction:row;align-items:stretch}
  .search-q{flex:1.7}.search-en{flex:1.1}
  .search-btn{width:auto;padding-inline:2rem}
  .hero-title{font-size:2.7rem}
  .hero-chips{flex-wrap:wrap;justify-content:center;overflow:visible;gap:9px;margin-top:1.5rem}
  .hero-chips a{padding:.62rem 1.15rem;font-size:.9rem}
}
@media(min-width:768px){
  /* /buscar: buscador a la izquierda, "cerca de mí" a la derecha, en una fila */
  .search-bar-wrap .container{flex-direction:row;align-items:center;gap:14px}
  .search-bar-wrap .search-box--compact{flex:1;min-width:0;max-width:none}
  .search-bar-wrap .js-cerca{flex:none;white-space:nowrap}
  .conversor-ctrl{flex-direction:row;align-items:flex-end}
  .conversor-ctrl>label,.conversor-ctrl .conversor-res{flex:1;min-width:0}
  .topbar{display:block}
  .section{padding-top:22px;padding-bottom:22px}
  /* Ficha: main arriba-izq, aside a la derecha, reseñas debajo de main (col izquierda).
     En móvil (sin esta regla) el orden natural deja las reseñas al final, tras el contacto. */
  .ficha-grid{grid-template-columns:1.7fr 1fr;align-items:stretch}
  .ficha-main{grid-column:1;grid-row:1;display:flex;flex-direction:column}
  .ficha-aside{grid-column:2;grid-row:1}
  /* Las reseñas ocupan TODO el ancho debajo de las dos columnas */
  .ficha-grid .ficha-resenas{grid-column:1 / -1}
  /* Si el último bloque es el mapa, se estira para emparejar la altura de la columna
     lateral: se acabaron los huecos vacíos cuando el negocio tiene poco contenido. */
  .ficha-main .bloque:last-child:has(.mapa){flex:1;display:flex;flex-direction:column;margin-bottom:0}
  .ficha-main .bloque:last-child:has(.mapa) .mapa{flex:1;min-height:300px}
  .ficha-resenas{grid-column:1;grid-row:2;margin-bottom:0}
  .footer-grid{grid-template-columns:2.2fr 1fr 1fr 1.2fr}
}
@media(min-width:1024px){
  .cat-grid{grid-template-columns:repeat(4,1fr)}
  .card-grid{grid-template-columns:repeat(3,1fr)}
  .hero{padding:78px 0 90px}
  .hero-title{font-size:3.1rem}
}

/* ---------- Accesibilidad: respetar "menos movimiento" ---------- */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .btn:hover,.cat-card:hover,.card:hover{transform:none}
}

/* ===========================================================
   MÓDULOS: contenido, estadísticas, pasos, testimonios,
   ciudades, banners, planes, contacto, galería, admin
   =========================================================== */
.prose{max-width:760px;color:#3a3450;line-height:1.75}
.prose h2{font-size:1.3rem;margin:1.6rem 0 .5rem;color:var(--tinta)}
.prose p{margin-bottom:.9rem}
.prose ul{margin:.4rem 0 1rem 1.2rem;display:flex;flex-direction:column;gap:.4rem}
.prose-nota{color:var(--gris-claro);font-size:.85rem;margin-top:1.5rem}

.nos-shell{padding-top:34px;padding-bottom:36px}
.nos-layout{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}
.nos-card{background:#fff;border:1px solid var(--linea);border-radius:20px;padding:24px}
.nos-card--principal{background:linear-gradient(135deg,#fff 0%,#fff 62%,#fbf8ff 100%)}
.nos-block+.nos-block{margin-top:22px;padding-top:22px;border-top:1px solid var(--linea)}
.nos-block h2{font-size:1.32rem;margin-bottom:9px;color:var(--tinta)}
.nos-block p{color:#403a52;line-height:1.78}
.nos-card--side{background:#fff;border-color:var(--linea-2)}
.nos-card--side h3{font-size:1.2rem;margin-bottom:14px}
.nos-kicker{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:12px;font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--morado)}
.nos-kicker .ico{color:var(--dorado-600)}
.nos-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.nos-checks li{display:flex;align-items:flex-start;gap:10px;color:#34284d;line-height:1.5;padding:11px 12px;border:1px solid var(--linea);border-radius:14px;background:#fbfaff}
.nos-checks .ico{color:var(--morado);margin-top:2px;flex:none}
.centro-head{justify-content:center;text-align:center}
.centro-head .eyebrow{margin-inline:auto}

/* Estadísticas (página Nosotros) */
.stats-band{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;padding:30px 18px;max-width:var(--max);margin:0 auto}
.stat{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.stat-ico{color:var(--violeta);margin-bottom:2px}
.stat-n{font-size:2rem;font-weight:800;color:var(--morado);line-height:1}
.stat-l{font-size:.85rem;color:var(--gris);font-weight:600}

/* Testimonios */
.testi-strip{background:#fff;border-block:1px solid var(--linea)}
.testimonios{display:grid;grid-template-columns:1fr;gap:18px}
.testi{position:relative;background:var(--fondo);border:1px solid var(--linea);border-radius:var(--r);padding:22px}
.testi-q{position:absolute;top:14px;right:14px;color:var(--dorado-200)}
.testi .card-stars{margin-bottom:.6rem}
.testi-txt{color:#3a3450;line-height:1.6;font-style:italic;margin-bottom:1rem}
.testi-aut{display:flex;align-items:center;gap:.6rem}
.testi-av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--grad-morado);color:#fff;font-weight:800;flex:none}
.testi-aut strong{display:block;font-size:.95rem}
.testi-aut small{color:var(--gris)}
.testi-aut a{color:var(--morado);font-weight:600}

/* Ciudades */
.ciudades-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ciudad-card{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:18px 12px;transition:transform .15s,border-color .2s}
.ciudad-card .ico{color:var(--morado)}
.ciudad-card:hover{transform:translateY(-3px);border-color:var(--violeta-300)}
.ciudad-n{font-weight:700}
.ciudad-t{font-size:.78rem;color:var(--gris)}

/* Banners */
/* ---------- Espacios publicitarios ---------- */
.banner{position:relative;display:block;border-radius:var(--r);overflow:hidden;border:1px solid var(--linea);background:#fff}
.banner img{width:100%;height:auto;display:block}
.banner .banner-txt{display:grid;place-items:center;min-height:90px;padding:18px;font-weight:700;color:var(--morado);text-align:center}
/* Banner ancho (horizontal): centrado con el ancho del sitio */
.banner-zone--ancho{max-width:var(--max);margin:14px auto;padding:0 18px;display:flex;flex-direction:column;gap:12px}
/* Banner lateral (columna dentro de un aside). En móvil se centra a su ancho natural (no se estira). */
.banner-zone--lateral{display:flex;flex-direction:column;gap:14px}
.banner-zone--lateral .banner{width:100%;max-width:336px;margin-inline:auto}
/* Banner in-feed: encaja como una tarjeta más del grid de resultados */
.banner--feed{display:flex;flex-direction:column}
.banner--feed img{aspect-ratio:5/4;object-fit:cover}
.banner--feed .banner-txt{flex:1}

/* Rails laterales verticales (izquierda + derecha), en los costados del contenido del inicio.
   Empiezan DEBAJO del hero (van dentro de .home-cuerpo, que arranca tras el hero) y acompañan
   el scroll con position:sticky. Respetan su tamaño (160 px, no se agrandan). Solo en pantallas
   anchas; en monitores normales y móvil no hay espacio en los costados, así que se ocultan. */
.home-cuerpo{position:relative}
.home-rail{display:none}
/* Carriles laterales tipo "rascacielos" (260 × 1200 px), uno a cada lado del contenido del
   inicio. El carril abarca TODA la altura del cuerpo del inicio —incluido el banner inferior—
   así que, al bajar, el anuncio acompaña y llega hasta el tope del pie de página (no se corta
   antes). Solo aparecen en pantallas muy anchas (≥1740px); en monitores normales y en el
   teléfono no hay espacio a los costados, así que se ocultan (no afectan al móvil). */
@media(min-width:1500px){
  /* Columna de 160px (el ancho que se veía bien). La imagen se muestra a su TAMAÑO REAL:
     nunca se agranda; solo se reduce si es más ancha de 160px. width:auto en un ítem flex
     hace que la caja se ajuste al ancho real de la imagen (sin estirar = sin zoom). */
  .home-rail{display:block;position:absolute;top:0;bottom:0;width:160px}
  .home-rail--izq{left:calc((100% - var(--max)) / 2 - 160px)}
  .home-rail--der{right:calc((100% - var(--max)) / 2 - 160px)}
  .home-rail .banner-zone{margin:0;position:sticky;top:96px;display:flex;flex-direction:column;gap:14px}
  .home-rail--izq .banner-zone{align-items:flex-end}
  .home-rail--der .banner-zone{align-items:flex-start}
  .home-rail .banner{width:auto;max-width:160px;margin:0;border-radius:6px}
  .home-rail .banner img{width:auto;max-width:160px;height:auto}
}

/* Layout de resultados con columna lateral de anuncios (Buscar / categorías) */
.listado-layout{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}
.listado-main{min-width:0}
.listado-aside{min-width:0}
@media(min-width:992px){
  .listado-layout--con-aside{grid-template-columns:1fr 300px}
  .listado-layout--con-aside .listado-aside{position:sticky;top:84px}
}

/* Panel admin → Publicidad: catálogo de espacios */
.ad-hint{background:#f1ecfb;border:1px solid var(--violeta-300);border-radius:var(--r-sm);padding:.6rem .85rem;
  font-size:.85rem;color:#4a3a6b;margin:2px 0 12px;line-height:1.5}
.ad-spaces{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:760px){.ad-spaces{grid-template-columns:1fr 1fr}}
.ad-space{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:10px}
.ad-space-head{display:flex;align-items:flex-start;gap:12px}
.ad-space-prev{flex:none;width:54px;background:var(--fondo);border:1px dashed var(--linea-2);border-radius:8px;
  display:grid;place-items:center;color:var(--violeta);max-height:72px}
.ad-space-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;line-height:1.3}
.ad-space-meta strong{font-size:.95rem}
.ad-space-meta small{font-size:.78rem;color:var(--gris)}
.ad-space-count{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:800;
  font-size:.82rem;background:var(--fondo);color:var(--gris-claro);border:1px solid var(--linea)}
.ad-space-count.on{background:var(--grad-morado);color:#fff;border-color:transparent}
.ad-space-list{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--linea);padding-top:10px}
.ad-item{display:flex;align-items:center;gap:10px}
.ad-item img{width:56px;height:38px;object-fit:cover;border-radius:6px;border:1px solid var(--linea);flex:none;background:#fff}
.ad-item-noimg{width:56px;height:38px;border-radius:6px;border:1px dashed var(--linea-2);display:grid;place-items:center;color:var(--gris-claro);flex:none}
.ad-item-info{flex:1;min-width:0;line-height:1.25}
.ad-item-info strong{display:block;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-item-info small{font-size:.74rem;color:var(--gris)}
.ad-space-vacio{font-size:.82rem;color:var(--gris-claro);font-style:italic;display:flex;align-items:center;gap:.3rem}
.ad-space-vacio .ico{color:var(--gris-claro)}
.ad-fill{background:none;border:0;color:var(--morado);font-weight:700;font-family:inherit;font-size:.82rem;cursor:pointer;font-style:normal;text-decoration:underline}
.ad-fill:hover{color:var(--violeta)}
/* etiquetas de orientación + medida */
.ad-space-tags{display:flex;flex-wrap:wrap;gap:5px;margin:1px 0 2px}
.ad-tag{font-size:.68rem;font-weight:800;padding:2px 8px;border-radius:999px;letter-spacing:.02em}
.ad-tag--vertical{background:#ede9fe;color:#6d28d9}
.ad-tag--horizontal{background:#e0f2fe;color:#0369a1}
.ad-tag--rectángulo,.ad-tag--rectangulo{background:#dcfce7;color:#15803d}
.ad-tag--tarjeta{background:#fef3c7;color:#a16207}
.ad-tag--medida{background:var(--fondo);color:var(--gris);border:1px solid var(--linea)}
.ad-on{color:#16a34a;font-weight:700}
.ad-off{color:var(--gris-claro);font-weight:700}
.ad-item-acc{display:flex;gap:6px;flex:none}
.abtn-edit{color:var(--morado)}
.abtn-edit:hover{background:#f1ecfb;border-color:var(--violeta-300)}
.ad-form-btns{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

/* Planes públicos */
.planes-page{padding-top:30px}
.planes-head{max-width:760px;margin-bottom:22px}
.planes-head h1{font-size:clamp(1.8rem,3vw,2.45rem);margin:7px 0 8px;color:var(--tinta)}
.planes-head p{color:var(--gris);line-height:1.65;max-width:660px}
.planes-grid{display:grid;grid-template-columns:1fr;gap:18px;align-items:stretch}
.plan-card{position:relative;background:#fff;border:1px solid var(--linea);border-radius:22px;padding:25px;display:flex;flex-direction:column;min-height:100%}
.plan-top{background:linear-gradient(145deg,#fff 0%,#fffaf0 58%,#f7efff 100%);border-color:#ead8a3}
.plan-badge{align-self:flex-start;display:inline-flex;align-items:center;gap:.35rem;background:var(--grad-dorado);color:var(--morado-900);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:5px 12px;margin-bottom:13px}
.plan-badge .ico{color:var(--morado-900)}
.plan-nombre{font-size:1.35rem;margin:0;color:var(--tinta)}
.plan-desc{color:var(--gris);font-size:.92rem;line-height:1.58;margin:.45rem 0 0}
.plan-precio{display:flex;align-items:baseline;gap:.22rem;margin:1rem 0 .85rem}
.plan-moneda{font-size:1rem;font-weight:900;color:var(--morado)}
.plan-monto{font-size:2.15rem;font-weight:900;color:var(--morado);line-height:1}
.plan-precio small{color:var(--gris);font-weight:700}
.plan-features{list-style:none;padding:0;display:flex;flex-direction:column;gap:.62rem;margin:.3rem 0 1.35rem}
.plan-features li{display:flex;align-items:flex-start;gap:.55rem;color:#3c3450;font-size:.92rem;line-height:1.45}
.plan-features .ico{color:var(--wa-700);flex:none;margin-top:2px}
.plan-card .btn{margin-top:auto;justify-content:center}
@media(min-width:760px){.planes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1080px){.planes-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Panel admin → Ubicaciones */
.ubic-forms{display:grid;gap:14px;margin-bottom:18px}
.ubic-forms .admin-form{margin-bottom:0}
@media(min-width:820px){.ubic-forms{grid-template-columns:1fr 1.5fr;align-items:start}}
/* Ciudades (panel): buscador + acordeón por departamento */
.ubic-buscar{display:flex;align-items:center;gap:9px;background:#fff;border:1.5px solid var(--linea-2);border-radius:var(--r-sm);
  padding:0 14px;margin-bottom:14px;max-width:520px}
.ubic-buscar .ico{color:var(--morado);flex:none}
.ubic-buscar input{flex:1;min-width:0;border:0;background:none;padding:.78rem 0;font-family:inherit;font-size:.95rem;color:var(--tinta);outline:none;font-weight:500}
.ubic-buscar:focus-within{border-color:var(--violeta)}
.ubic-lista{max-width:860px}
.ubic-depto{background:#fff;border:1px solid var(--linea);border-radius:14px;margin-bottom:8px;overflow:hidden}
.ubic-depto[open]{border-color:var(--linea-2)}
.ubic-depto summary{display:flex;align-items:center;gap:.55rem;padding:13px 16px;cursor:pointer;list-style:none}
.ubic-depto summary::-webkit-details-marker{display:none}
.ubic-depto summary .ico{color:var(--morado);flex:none}
.ubic-depto-nom{font-size:.97rem}
.ubic-depto-n{margin-left:auto;font-size:.74rem;font-weight:800;color:var(--gris);background:var(--fondo);border-radius:var(--r-pill);padding:3px 10px;white-space:nowrap}
.ubic-chev{color:var(--gris-claro);transition:transform .18s;flex:none}
.ubic-depto[open] .ubic-chev{transform:rotate(180deg)}
.ubic-depto summary:hover{background:#faf8ff}
.ubic-cuerpo{padding:4px 16px 14px;border-top:1px solid var(--linea)}
.ubic-cuerpo .ubic-ciudades{padding-top:10px}
.ubic-depto-del{display:inline-flex;margin:10px 0 0}
/* Interruptores ON/OFF (secciones del inicio) */
.switch-row{display:flex;align-items:center;gap:1rem;padding:.8rem .2rem;border-bottom:1px solid var(--linea);cursor:pointer;margin:0}
.switch-row:last-of-type{border-bottom:0}
.switch-lbl{flex:1;font-weight:700;font-size:.92rem;color:var(--tinta)}
.switch-desc{display:block;font-weight:500;font-size:.78rem;color:var(--gris);margin-top:2px;line-height:1.4}
.switch-row input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.switch-tgl{position:relative;flex:none;width:46px;height:26px;border-radius:999px;background:var(--linea-2);transition:background .2s}
.switch-tgl::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}
.switch-row input:checked + .switch-tgl{background:var(--morado)}
.switch-row input:checked + .switch-tgl::after{transform:translateX(20px)}
.switch-row input:focus-visible + .switch-tgl{outline:3px solid var(--violeta-300);outline-offset:2px}
.ubic-ciudades{display:flex;flex-wrap:wrap;gap:7px}
.ubic-chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--fondo);border:1px solid var(--linea);
  border-radius:var(--r-pill);padding:.3rem .35rem .3rem .75rem;font-size:.82rem;font-weight:600;color:var(--tinta)}
.ubic-chip b{font-size:.68rem;font-weight:800;color:var(--violeta);background:#ede9fe;border-radius:999px;padding:1px 6px}
.ubic-chip form{display:inline-flex;margin:0}
.ubic-chip button{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;border:0;cursor:pointer;background:transparent;color:var(--gris-claro)}
.ubic-chip button:hover{background:#c0392b;color:#fff}
.ubic-vacio{font-size:.82rem;color:var(--gris-claro);font-style:italic}
.banner>span{display:block;padding:28px;text-align:center;font-weight:700;color:var(--morado);background:var(--fondo)}

/* Contacto */
.contacto-grid{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}
.contacto-form-wrap{max-width:none;margin:0;position:static;z-index:auto}
.contacto-form-wrap .form-row{gap:16px}
.contacto-form-wrap>.form{border-radius:18px;padding:22px;gap:14px}
.contacto-form-wrap .contacto-form-head{margin:0 0 4px;padding-bottom:16px;border-bottom:1px solid var(--linea)}
.contacto-form-wrap .form input,.contacto-form-wrap .form textarea{padding:.72rem .85rem}
.contacto-form-wrap .form textarea{min-height:154px;resize:vertical}
.contacto-info{display:flex;flex-direction:column;gap:16px}
.contacto-info--compacta{position:sticky;top:92px}
.contacto-info .info-card{margin-bottom:0}
.contacto-card{padding:20px}
.contacto-card p{color:var(--gris);font-size:.92rem;line-height:1.55;margin:0}
.contacto-card--principal{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff,#fbf8ff)}
.contacto-card-top{display:flex;align-items:flex-start;gap:13px;margin-bottom:16px}
.contacto-card-top h3{margin:0 0 5px}
.contacto-card-ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#f1ecfb;color:var(--morado);flex:none}
.contacto-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.contacto-actions--stack{grid-template-columns:1fr}
.contacto-actions .btn{padding:.72rem .8rem;font-size:.88rem}
.contacto-mini-list{display:flex;flex-direction:column;gap:9px;margin-top:16px;padding-top:15px;border-top:1px solid var(--linea)}
.contacto-mini-list a{display:grid;grid-template-columns:20px 1fr;column-gap:9px;row-gap:2px;align-items:center;padding:10px 11px;border:1px solid var(--linea-2);border-radius:14px;background:#fff;color:var(--tinta)}
.contacto-mini-list a>.ico{grid-row:1/3;color:var(--morado)}
.contacto-mini-list span{font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--gris-claro)}
.contacto-mini-list strong{font-size:.9rem;color:var(--morado);word-break:break-word}
.info-list li span{display:flex;flex-direction:column;gap:2px;min-width:0}
.info-list li strong{font-size:.75rem;color:var(--gris-claro);text-transform:uppercase;letter-spacing:.04em}
.contacto-social-mini{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px;padding:15px 2px 0;border-top:1px solid var(--linea);color:var(--gris);font-size:.84rem}
.contacto-social-mini>span{display:inline-flex;align-items:center;gap:.35rem;font-weight:900;color:var(--tinta);margin-right:2px}
.contacto-social-mini a{display:inline-flex;align-items:center;gap:.35rem;padding:7px 10px;border-radius:999px;background:#fff;border:1px solid var(--linea-2);color:var(--morado);font-weight:800}
.page-hero + .section{padding-top:34px}
@media(max-width:460px){
  .contacto-actions{grid-template-columns:1fr}
}
@media(max-width:599px){
  .contacto-info--compacta{position:static}
}

/* Galería del negocio (admin del dueño) */
.galeria-admin{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:22px}
.ga-item{position:relative;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--linea);aspect-ratio:4/3}
.ga-item img{width:100%;height:100%;object-fit:cover}
.ga-del{position:absolute;top:8px;right:8px;background:rgba(154,28,28,.92);color:#fff;border:0;border-radius:8px;padding:6px;cursor:pointer;display:grid;place-items:center}

/* Barra de dueño en la ficha */
.owner-bar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;background:#f1ecfb;border:1px solid var(--linea-2);border-radius:var(--r-sm);padding:.7rem 1rem;margin-bottom:1.2rem;font-weight:600;font-size:.9rem;color:var(--morado)}
.owner-bar>.ico{color:var(--violeta)}
.owner-bar a{display:inline-flex;align-items:center;gap:.3rem;background:#fff;border:1px solid var(--linea-2);border-radius:var(--r-pill);padding:.35rem .8rem;color:var(--morado);font-weight:700}
.owner-bar a:hover{background:var(--morado);color:#fff}
.owner-bar a:hover .ico{color:#fff}

/* Panel de administración */
.admin-h1{font-size:1.5rem;display:flex;align-items:center;gap:.5rem;margin-bottom:18px}
.admin-head-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:18px}
.admin-head-row .admin-h1{margin-bottom:0}
.admin-h1 .ico{color:var(--morado)}
.admin-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:1rem}
.stat-card{background:#fff;border:1px solid var(--linea);border-radius:var(--r-sm);padding:10px 13px;
  display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:11px;align-items:center}
.stat-card .stat-ico{grid-row:1/3;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#f1ecfb;color:var(--morado);margin:0}
.stat-num{font-size:1.3rem;font-weight:800;color:var(--tinta);line-height:1.15}
.stat-lbl{font-size:.76rem;color:var(--gris);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-tip{color:var(--gris);background:#fff;border:1px dashed var(--linea-2);border-radius:var(--r);padding:14px 18px}
.empty--mini{display:flex;align-items:center;gap:.45rem;color:var(--gris);background:var(--fondo);border:1px dashed var(--linea-2);border-radius:var(--r-sm);padding:12px 14px;font-size:.88rem;font-weight:600}
.empty--mini .ico{color:var(--morado)}
.admin-quick{display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:#fff;border:1px solid var(--linea);
  border-radius:var(--r);padding:14px 18px;margin-bottom:1.2rem}
.admin-quick-lbl{display:inline-flex;align-items:center;gap:.4rem;font-weight:800;font-size:.9rem;color:var(--morado)}
.admin-quick .btn{padding:.5rem 1rem;font-size:.85rem}
.admin-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--linea);border-radius:var(--r)}
.admin-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:580px}
.admin-table--auto{min-width:0}
.admin-table th,.admin-table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--linea);vertical-align:middle}
.admin-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gris);background:var(--fondo)}
.admin-table tr:last-child td{border-bottom:0}
.admin-table a{color:var(--morado)}
.admin-table tr.fila-nueva{background:#fffdf5}
.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid var(--linea);background:#fff}
.pag-info{font-size:.78rem;font-weight:800;color:var(--gris);white-space:nowrap}
.pag-btns{display:flex;align-items:center;gap:6px}
.pag-btn{min-width:32px;height:32px;padding:0 10px;border:1px solid var(--linea-2);border-radius:10px;background:#fff;color:var(--morado);font-family:inherit;font-size:.82rem;font-weight:900;cursor:pointer}
.pag-btn:hover:not(:disabled){background:#f1ecfb;border-color:var(--violeta-300)}
.pag-btn.on{background:var(--morado);border-color:var(--morado);color:#fff}
.pag-btn:disabled{opacity:.38;cursor:not-allowed}
@media(max-width:520px){
  .table-pagination{flex-direction:column;align-items:flex-start}
  .pag-btns{width:100%;overflow-x:auto;padding-bottom:2px}
  .pag-btn{flex:none}
}
.admin-acc{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.admin-acc form{margin:0}
.abtn{display:inline-flex;align-items:center;gap:.3rem;background:var(--fondo);border:1px solid var(--linea);border-radius:8px;padding:.4rem .55rem;font-size:.76rem;font-weight:700;color:var(--tinta);cursor:pointer}
.abtn:hover{border-color:var(--morado);color:var(--morado)}
.abtn-on{background:#eafaf0;border-color:#bdebcd;color:#0a6b39}
.abtn-del{background:#fdeeee;border-color:#f7c9c9;color:#9a1c1c}
.abtn-del:hover{background:#9a1c1c;color:#fff;border-color:#9a1c1c}
.admin-acc select{font-family:inherit;font-size:.78rem;padding:.35rem .45rem;border:1px solid var(--linea);border-radius:8px;background:#fff}
.admin-form{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:18px;margin-bottom:18px;display:flex;flex-direction:column;gap:12px}
.admin-form .form-row{display:flex;flex-direction:column;gap:12px}
.admin-form label{display:flex;flex-direction:column;gap:.3rem;font-weight:700;font-size:.85rem}
.admin-form input,.admin-form select,.admin-form textarea{font-family:inherit;font-size:.95rem;padding:.6rem .7rem;border:1.5px solid var(--linea);border-radius:var(--r-sm);background:var(--fondo);color:var(--tinta);width:100%;min-width:0;box-sizing:border-box}
.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{outline:none;border-color:var(--violeta);background:#fff}
.admin-form .check{flex-direction:row;align-items:center;gap:.5rem;font-weight:600}
.admin-form .check input{width:auto}
.admin-form-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding-bottom:11px;margin-bottom:2px;border-bottom:1px solid var(--linea)}
.admin-form-head .ico{color:var(--morado)}
.admin-form-head strong{font-size:1.1rem}
.admin-form-sub{color:var(--gris);font-weight:600;font-size:.88rem}
.admin-checks{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.admin-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.admin-inline-delete{margin:-10px 0 18px 8px}
.admin-form--planes,.admin-form--asistente{max-width:920px}
.feat-editor{display:flex;flex-direction:column;gap:8px}
.feat-titulo{display:flex;align-items:center;gap:.35rem;font-weight:700;font-size:.85rem;color:var(--tinta)}
.feat-titulo .ico{color:var(--wa-700)}
.feat-list{display:flex;flex-direction:column;gap:8px}
.feat-row{display:flex;align-items:center;gap:8px;background:var(--fondo);border:1.5px solid var(--linea);border-radius:var(--r-sm);padding:.3rem .45rem .3rem .65rem}
.feat-row .feat-ico{color:var(--wa-700);flex:none}
.feat-row input{flex:1;border:0;background:none;font-family:inherit;font-size:.95rem;color:var(--tinta);padding:.4rem 0;outline:none;min-width:0}
.feat-del{flex:none;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#fff;border:1px solid var(--linea);color:var(--gris-claro);cursor:pointer}
.feat-del:hover{background:#fdeeee;border-color:#f7c9c9;color:#9a1c1c}
.feat-add{align-self:flex-start;display:inline-flex;align-items:center;gap:.4rem;background:#f1ecfb;border:1px dashed var(--violeta-300);color:var(--morado);border-radius:var(--r-pill);padding:.45rem .9rem;font-weight:700;font-size:.85rem;cursor:pointer;font-family:inherit}
.feat-add:hover{background:var(--morado);color:#fff;border-color:var(--morado)}
.feat-add:hover .ico{color:#fff}
/* Editor visual de preguntas frecuentes (Admin → Contenido) */
.faq-edit-row,.chat-edit-row{position:relative;background:var(--fondo);border:1.5px solid var(--linea);border-radius:var(--r-sm);
  padding:12px 46px 12px 14px;display:flex;flex-direction:column;gap:8px}
.faq-edit-row label,.chat-edit-row label{display:flex;flex-direction:column;gap:.3rem;font-weight:700;font-size:.78rem;color:var(--gris)}
.faq-edit-row input,.faq-edit-row textarea,.chat-edit-row input,.chat-edit-row textarea{font-family:inherit;font-size:.92rem;font-weight:500;color:var(--tinta);
  background:#fff;border:1.5px solid var(--linea);border-radius:9px;padding:.5rem .7rem;resize:vertical;width:100%;box-sizing:border-box}
.faq-edit-row input,.chat-edit-row input{font-weight:700}
.faq-edit-row input:focus,.faq-edit-row textarea:focus,.chat-edit-row input:focus,.chat-edit-row textarea:focus{outline:none;border-color:var(--violeta)}
.faq-edit-row .feat-del,.chat-edit-row .feat-del{position:absolute;top:10px;right:10px}
.chat-edit-row .form-row{gap:8px}
.chat-edit-row .form-row label{margin:0}

/* Editor de horarios por grupos (formulario de negocio) */
.hor-editor{display:flex;flex-direction:column}
.hor-title{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:.88rem;color:var(--tinta);margin-bottom:4px}
.hor-title .ico{color:var(--morado)}
.hor-help{color:var(--gris);font-size:.85rem;font-weight:500;margin:0 0 4px}
.hor-legacy{display:flex;align-items:flex-start;gap:.4rem;background:#fff7e6;border:1px solid var(--dorado-200);border-radius:var(--r-sm);padding:.55rem .7rem;font-size:.82rem;font-weight:500;color:#7a5c00;margin:2px 0}
.hor-legacy .ico{color:var(--dorado-600);flex:none;margin-top:1px}
.hor-legacy span{font-weight:700}
.hor-grupos{display:flex;flex-direction:column;margin-top:4px}
.hor-grupo{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:.75rem 0;border-top:1px solid var(--linea)}
.hor-grupo:first-child{border-top:0}
.hor-grupo-dia{font-weight:700;color:var(--tinta);flex:none}
.hor-grupo-ctrl{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%}
.hor-horas{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.hor-grupo.hor-cerrado .hor-horas{display:none}
.hor-sep{color:var(--gris-claro)}
.hor-sel{position:relative;display:inline-flex;align-items:center}
.hor-sel select{appearance:none;-webkit-appearance:none;font-family:inherit;font-size:.92rem;font-weight:600;color:var(--tinta);background:#fff;border:1.5px solid var(--linea-2);border-radius:10px;padding:.55rem 1.9rem .55rem .7rem;width:auto;cursor:pointer}
.hor-sel select:focus{outline:none;border-color:var(--violeta)}
.hor-sel>.ico{position:absolute;right:.45rem;color:var(--gris-claro);pointer-events:none}
.hor-sel-estado select{min-width:108px;font-weight:700;color:var(--morado)}
@media(min-width:560px){
  .hor-grupo{flex-direction:row;align-items:center;gap:12px}
  .hor-grupo-dia{min-width:130px}
  .hor-grupo-ctrl{width:auto;flex:1;min-width:0}
}

/* Horario en la ficha del negocio */
.hor-show{list-style:none;display:flex;flex-direction:column;margin:0;padding:0}
.hor-show li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:.55rem 0;border-top:1px solid var(--linea);font-size:.93rem}
.hor-show li:first-child{border-top:0}
.hor-show .d{font-weight:700;color:var(--tinta)}
.hor-show .r{color:var(--gris);font-variant-numeric:tabular-nums;text-align:right}
.hor-show .r i{font-style:normal;color:var(--gris-claro);margin:0 .3rem}
.hor-show li.est-h24 .r{color:var(--wa-700);font-weight:700}
.hor-show li.est-cerrado .r{color:#b4455d;font-weight:600}

@media(min-width:600px){
  .stats-band{grid-template-columns:repeat(4,1fr)}
  .testimonios{grid-template-columns:repeat(3,1fr)}
  .ciudades-grid{grid-template-columns:repeat(4,1fr)}
  .galeria-admin{grid-template-columns:repeat(3,1fr)}
  .admin-stats{grid-template-columns:repeat(4,1fr)}
  .admin-form .form-row{flex-direction:row}
  .admin-form .form-row>label{flex:1;min-width:0}
  .contacto-grid{grid-template-columns:1.6fr 1fr}
}
@media(min-width:860px){
  .nos-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr)}
}

/* ===========================================================
   FASE 4: panel admin separado, favoritos, compartir, etc.
   =========================================================== */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;pointer-events:none}
.panel-hero-acc{display:flex;gap:10px;flex-wrap:wrap}
.hero-cerca{margin-top:12px}
.hero-cerca button{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:var(--r-pill);padding:.55rem 1.1rem;font-weight:600;font-size:.9rem;cursor:pointer;font-family:inherit;transition:background .15s,color .15s}
.hero-cerca button:hover{background:#fff;color:var(--morado)}
.hero-cerca .ico{color:var(--dorado)}
.hero-cerca button:hover .ico{color:var(--morado)}
.geo-status{display:block;margin-top:.45rem;font-size:.82rem;font-weight:700;color:var(--gris)}
.geo-status.is-error{color:#b42318}
.hero-cerca .geo-status{color:#f7efff}
.hero-cerca .geo-status.is-error{color:#ffe0e0}

/* Favoritos */
.card{overflow:hidden}
.card-fav{position:absolute;top:10px;right:10px;z-index:3;margin:0}
.fav-btn{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.94);border:1px solid var(--linea);color:var(--gris-claro);cursor:pointer}
.fav-btn:hover,.fav-btn.on{color:#e3344f;border-color:#f3b4bd;background:#fff}
.btn-fav-on{color:#e3344f;border-color:#f3b4bd}
.btn-fav-on .ico{color:#e3344f}

/* Compartir */
.share-row{display:flex;gap:10px}
.share-btn{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--linea);background:var(--fondo);color:var(--morado);cursor:pointer;transition:transform .12s,background .15s,color .15s,border-color .15s}
.share-btn:hover{transform:translateY(-2px)}
.share-wa:hover{background:var(--wa);color:#fff;border-color:var(--wa)}
.share-fb:hover{background:#1877f2;color:#fff;border-color:#1877f2}
.share-copy.copiado{background:var(--wa);color:#fff;border-color:var(--wa)}

/* Banner de cookies */
.cookie-banner{position:fixed;left:12px;right:12px;bottom:12px;z-index:200;background:var(--morado-900);color:#e4ddf7;border-radius:18px;padding:12px 14px;display:flex;gap:12px;align-items:center;justify-content:center;text-align:left;max-width:780px;margin:0 auto;font-size:.84rem;line-height:1.35}

/* Ventana de instalación de la app (PWA) */
.pwa-prompt{position:fixed;left:12px;right:12px;bottom:12px;z-index:250;max-width:520px;margin:0 auto;
  display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--linea-2);border-radius:var(--r);padding:12px 14px}
.pwa-prompt[hidden]{display:none}
.pwa-prompt-ico{flex:none;width:42px;height:42px;border-radius:11px;overflow:hidden;display:grid;place-items:center}
.pwa-prompt-ico img{width:100%;height:100%;display:block}
.pwa-prompt-txt{flex:1;min-width:0;line-height:1.25}
.pwa-prompt-txt strong{display:block;font-size:.95rem;color:var(--tinta)}
.pwa-prompt-txt span{display:block;font-size:.8rem;color:var(--gris);margin-top:1px}
.pwa-prompt-acc{flex:none;display:flex;align-items:center;gap:6px}
.pwa-prompt-acc .btn{padding:.5rem .9rem;font-size:.85rem}
.pwa-prompt-x{flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--linea);background:var(--fondo);color:var(--gris);cursor:pointer;display:grid;place-items:center}
.pwa-prompt-x:hover{background:#fdeeee;border-color:#f7c9c9;color:#9a1c1c}
.cookie-banner[hidden]{display:none}
.cookie-banner .ico{color:var(--dorado);vertical-align:middle;margin-right:.2rem}
.cookie-banner a{color:var(--dorado);font-weight:700;text-decoration:underline}
.cookie-banner .btn{flex:none;padding:.56rem 1rem;font-size:.84rem}
@media (max-width:560px){
  .cookie-banner{left:10px;right:10px;bottom:10px;display:grid;grid-template-columns:1fr auto;align-items:center;padding:11px 12px;border-radius:16px;font-size:.78rem;gap:9px}
  .cookie-banner .btn{min-height:38px;padding:.48rem .8rem}
}

/* Paginación */
.paginacion{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:28px}
.pag{display:inline-grid;place-items:center;min-width:40px;height:40px;padding:0 10px;border-radius:10px;border:1px solid var(--linea);background:#fff;font-weight:700;color:var(--tinta)}
.pag:hover{border-color:var(--morado);color:var(--morado)}
.pag.on{background:var(--grad-morado);color:#fff;border-color:transparent}

/* ---------- Panel admin v2 (layout propio) ---------- */
.admin-body{background:var(--fondo)}
.admin-top{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:12px;background:var(--morado-900);color:#fff;padding:0 16px;height:60px}
.admin-burger{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:9px;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;flex:none}
.admin-burger:hover{background:rgba(255,255,255,.24)}
.admin-brand{display:flex;align-items:center;gap:.5rem;font-weight:800;color:#fff;font-size:1.05rem}
.admin-brand img{height:32px;width:auto;background:#fff;border-radius:8px;padding:3px 6px}
.admin-brand strong{color:var(--dorado)}
.admin-top-right{margin-left:auto;display:flex;align-items:center;gap:4px}
.admin-top-link{display:inline-flex;align-items:center;gap:.35rem;color:#cbb8ef;padding:.45rem .6rem;border-radius:8px;font-weight:600;font-size:.86rem}
.admin-top-link:hover{background:rgba(255,255,255,.1);color:#fff}
.admin-top-link span{display:none}
.admin-user{display:none;color:#fff;font-weight:600;font-size:.86rem;align-items:center;gap:.35rem}
.admin-layout{display:grid;grid-template-columns:1fr;min-height:calc(100vh - 60px)}
.admin-layout > *{min-width:0}
.admin-aside{display:none;background:#fff;border-bottom:1px solid var(--linea);padding:8px;min-width:0;
  position:fixed;top:60px;left:0;right:0;max-height:calc(100vh - 60px);overflow-y:auto;z-index:58}
body.admin-open .admin-aside{display:block}
.admin-aside nav{display:flex;flex-direction:column;gap:2px}
.admin-aside nav a{display:flex;align-items:center;gap:.6rem;white-space:nowrap;padding:.72rem .85rem;border-radius:var(--r-sm);font-weight:600;color:var(--tinta);font-size:.92rem}
.admin-aside nav a .ico{color:var(--morado)}
.admin-aside nav a.on{background:var(--grad-morado);color:#fff}
.admin-aside nav a.on .ico{color:#fff}
.admin-aside-grupo{display:block;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--gris-claro);padding:12px 10px 4px;margin:0}
.admin-aside-grupo:first-child{padding-top:4px}
.admin-badge{background:var(--dorado);color:var(--morado-900);border-radius:999px;font-size:.65rem;padding:1px 6px;font-weight:800}
.admin-content{padding:22px 16px 50px;min-width:0}
.admin-charts{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:1.4rem}
.chart-card{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:18px}
.chart-card h3{font-size:1rem;display:flex;align-items:center;gap:.5rem;margin-bottom:14px}
.chart-card h3 .ico{color:var(--morado)}
.chart{display:flex;flex-direction:column;gap:9px}
.chart-row{display:flex;align-items:center;gap:10px;font-size:.85rem}
.chart-lbl{flex:0 0 40%;color:var(--gris);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chart-track{flex:1;height:12px;background:var(--fondo);border-radius:999px;overflow:hidden}
.chart-bar{display:block;height:100%;border-radius:999px;min-width:4px;
  background:linear-gradient(90deg,var(--morado),var(--violeta) 70%,var(--violeta-300));
  transform-origin:left;transform:scaleX(0);transition:transform .9s cubic-bezier(.25,.9,.3,1)}
.chart-ready .chart-bar{transform:scaleX(1)}
.chart-row:hover .chart-bar{background:linear-gradient(90deg,#E0A000,var(--dorado))}
.chart-val{flex:0 0 auto;font-weight:800;color:var(--tinta);min-width:30px;text-align:right}

/* Dona por categoría */
.donut-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.donut{flex:none;width:158px;height:158px;border-radius:50%;display:grid;place-items:center;position:relative;
  transform:scale(.85);opacity:0;transition:transform .6s cubic-bezier(.25,.9,.3,1),opacity .6s}
.chart-ready .donut{transform:scale(1);opacity:1}
.donut::before{content:"";position:absolute;inset:26px;background:#fff;border-radius:50%}
.donut-centro{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;line-height:1.1}
.donut-centro b{font-size:1.55rem;font-weight:800;color:var(--tinta)}
.donut-centro small{color:var(--gris);font-size:.7rem;font-weight:600;max-width:86px;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.donut-leyenda{list-style:none;flex:1;min-width:170px;display:flex;flex-direction:column;gap:4px;margin:0;padding:0}
.donut-leyenda li{display:flex;align-items:center;gap:8px;font-size:.84rem;font-weight:600;color:var(--tinta);
  padding:4px 8px;border-radius:8px;cursor:default;transition:background .12s}
.donut-leyenda li:hover{background:var(--fondo)}
.donut-leyenda .dot{flex:none;width:11px;height:11px;border-radius:4px}
.donut-leyenda .nom{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.donut-leyenda b{font-weight:800}

/* Columnas por ciudad */
.colchart{display:flex;align-items:flex-end;gap:10px;height:185px;padding-top:6px}
.colchart-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;height:100%}
.colchart-col b{font-size:.82rem;font-weight:800;color:var(--morado)}
.colchart-bar{width:100%;max-width:46px;height:0;border-radius:9px 9px 4px 4px;
  background:linear-gradient(180deg,var(--violeta),var(--morado));transition:height .9s cubic-bezier(.25,.9,.3,1)}
.chart-ready .colchart-bar{height:var(--h)}
.colchart-col:hover .colchart-bar{background:linear-gradient(180deg,var(--dorado),#E0A000)}
.colchart-col:hover b{color:var(--dorado-600)}
.colchart-col small{font-size:.68rem;font-weight:700;color:var(--gris);max-width:100%;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Login admin (separado) */
.admin-login{min-height:100vh;display:grid;place-items:center;background:var(--grad-oscuro);padding:20px}
.admin-login-card{background:#fff;border-radius:var(--r-lg);padding:34px 28px;max-width:400px;width:100%;text-align:center}
.admin-login-logo{height:60px;width:auto;max-width:220px;margin:0 auto .7rem;object-fit:contain}
.admin-login-card h1{font-size:1.4rem}
.admin-login-card p{color:var(--gris);margin-bottom:1rem}
.admin-login-card .form{text-align:left;margin-top:1rem}
.admin-login-back{display:inline-block;margin-top:1.1rem;color:var(--gris);font-weight:600}

@media(min-width:600px){
  .admin-top-link span{display:inline}
}
@media(min-width:992px){
  .admin-burger{display:none}
  .admin-layout{grid-template-columns:240px 1fr}
  .admin-aside{display:block;position:sticky;top:60px;left:auto;right:auto;max-height:none;height:calc(100vh - 60px);overflow-y:auto;border-bottom:0;border-right:1px solid var(--linea);z-index:auto}
  .admin-aside nav{flex-direction:column;overflow:visible;gap:2px}
  .admin-aside-grupo{display:block;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--gris-claro);padding:13px 14px 5px;margin:0}
  .admin-aside-grupo:first-child{padding-top:4px}
  .admin-user{display:inline-flex}
  .admin-charts{grid-template-columns:1fr 1fr}
  .admin-content{padding:28px 28px 60px}
}

/* ---------- Desplegable de ubicación (custom) ---------- */
.loc-select{position:relative}
.loc-trigger{display:flex;align-items:center;gap:9px;width:100%;background:var(--fondo);border:1.5px solid var(--linea);
  border-radius:var(--r);padding:.92rem 14px;font-family:inherit;font-size:1rem;font-weight:500;color:var(--tinta);cursor:pointer;text-align:left}
.loc-trigger > .ico:first-child{color:var(--morado);flex:none}
.loc-trigger:focus-visible,.loc-dep-btn:focus-visible,.loc-opt:focus-visible{outline:3px solid rgba(117,64,198,.25);outline-offset:2px}
.loc-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loc-chev{color:var(--gris-claro);flex:none;transition:transform .18s}
.loc-select.open .loc-trigger{border-color:var(--violeta);background:#fff}
.loc-select.open .loc-chev{transform:rotate(180deg)}
.loc-panel{position:fixed;z-index:80;background:#fff;border:1.5px solid var(--linea-2);border-radius:var(--r);
  overflow-y:auto;overscroll-behavior:contain;padding:6px}
.loc-dep{border-top:1px solid var(--linea)}
.loc-dep-btn{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:none;border:0;cursor:pointer;
  font-family:inherit;font-size:.92rem;font-weight:700;color:var(--tinta);padding:.6rem .75rem}
.loc-dep-btn span{flex:1}
.loc-dep-btn .ico{color:var(--violeta);flex:none}
.loc-dep-btn .loc-dep-chev{color:var(--gris-claro);transition:transform .18s}
.loc-dep-btn:hover{background:#f7f3fe;color:var(--morado)}
.loc-dep.open>.loc-dep-btn .loc-dep-chev{transform:rotate(180deg)}
.loc-sub{padding:2px 0 6px 22px;border-left:2px solid var(--linea);margin-left:14px}
.loc-opt{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:none;border:0;
  padding:.62rem 12px;border-radius:9px;font-family:inherit;font-size:.95rem;color:var(--tinta);cursor:pointer;line-height:1.2}
.loc-opt:hover,.loc-opt[aria-selected="true"]{background:#f1ecfb;color:var(--morado)}
.loc-opt[aria-selected="true"]{font-weight:700}
.loc-opt .ico{color:var(--violeta);flex:none}
.loc-opt-todo{font-weight:700;color:var(--morado)}
.loc-opt-dep{font-size:.82rem;color:var(--gris);padding-top:.35rem;padding-bottom:.35rem}
.loc-opt-dep:hover{color:var(--morado)}

/* ===========================================================
   FICHA DE EMPRESA — compactación para teléfono (solo ≤767px).
   Va al final para ganar la cascada sobre las reglas base.
   =========================================================== */
@media(max-width:767px){
  /* Encabezado (tarjeta) ordenado: [logo | nombre] y debajo, TODO a lo ancho y alineado
     a la izquierda (chips, etiquetas y botones), sin escalones. */
  .ficha-top{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;padding:16px;gap:12px 14px}
  .ficha-logo{grid-column:1;grid-row:1;flex:0 0 64px;height:64px;border-radius:14px}
  .ficha-info{display:contents}
  .ficha-hero--sin-logo .ficha-top{display:block}
  .ficha-hero--sin-logo .ficha-info{display:block;width:100%}
  .ficha-nombre{grid-column:2;min-width:0;font-size:1.28rem;gap:.4rem;line-height:1.22}
  .ficha-meta{grid-column:1 / -1;min-width:0;margin:0;gap:.4rem .45rem;font-size:.83rem}
  .ficha-hero .ficha-acciones{margin-top:.75rem;padding-top:.75rem}
  .ficha-hero .pill,.ficha-hero .ficha-cat,.ficha-hero .ficha-tipo{padding:4px 10px;font-size:.77rem}
  .ficha-hero .pill .ico,.ficha-hero .ficha-cat .ico,.ficha-hero .ficha-tipo .ico{width:13px;height:13px}
  .badge-verif--lg{padding:3px 8px;font-size:.7rem}
  .badge-verif--icon{width:27px;height:27px}
  .badge-verif--icon .ico{width:16px;height:16px}
  .ficha-cat{padding:3px 9px}
  /* Botón "Abrir en Google Maps": una sola línea, compacto */
  .bloque-head-row{gap:8px}
  .bloque-head-row .mini-btn{font-size:.76rem;padding:5px 10px}
  /* Botones de acción: ocupan todo el ancho de la tarjeta, no solo la columna del texto */
  .ficha-acciones{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:0;width:100%}
  .ficha-acciones>*{min-width:0;width:100%}
  .ficha-acciones form{display:block!important}
  .ficha-acciones .btn{width:100%;padding:.7rem .55rem;font-size:.84rem;gap:.36em;white-space:nowrap;min-width:0;line-height:1.15;min-height:44px}
  .ficha-acciones .btn .ico{width:15px;height:15px;margin-top:-1px}
  .ficha-acciones>*:last-child:nth-child(odd){grid-column:1 / -1}
  /* Menos espacio vertical entre y dentro de las secciones */
  .ficha-grid{gap:14px;margin-top:16px}
  .bloque{padding:15px;margin-bottom:14px}
  .bloque h2{font-size:1.08rem;margin-bottom:.6rem}
  /* Galería / mapa / video proporcionados */
  .carrusel{gap:8px}
  .carrusel-item img{height:160px;max-width:72vw}
  .carrusel-btn{width:32px;height:32px}
  .carrusel-prev{left:2px}
  .carrusel-next{right:2px}
  .mapa{height:220px}
  .video-frame--tiktok{max-width:260px}
  /* Datos de contacto / horario / reseñas compactos */
  .info-card{padding:15px;margin-bottom:12px}
  .info-card h3{font-size:1.02rem;margin-bottom:.7rem}
  .info-list{gap:.7rem}
  .info-redes{margin-top:.7rem}
  .hor-show li{padding:.45rem 0;font-size:.88rem}
  .rating-resumen{padding:13px 16px;gap:.9rem;margin-bottom:14px}
  .rating-num{font-size:2.2rem}
  .resena-form{padding:14px;margin-bottom:16px}
  .resena{padding:12px 0}
  .estrellas-input label svg{width:24px;height:24px}
}

/* ===========================================================
   PANEL ADMIN — TELÉFONO: cero scroll horizontal + tablas legibles
   (El admin gestiona el sitio casi siempre desde el celular.)
   =========================================================== */
/* El contenido del panel nunca empuja la página a lo ancho (gráficas, anchos, etc.). */
.admin-content{overflow-x:clip}
/* Las tarjetas de estadística pueden encoger: el texto largo NO desborda (causa típica del scroll). */
.stat-card{min-width:0}
.stat-num,.stat-lbl{min-width:0;max-width:100%}

@media(max-width:720px){
  /* Cada fila de tabla se convierte en una tarjeta apilada con su etiqueta arriba.
     Resultado: se lee de corrido en el teléfono, sin deslizar de lado. */
  .admin-table-wrap{overflow:visible;border:0;background:none;border-radius:0}
  .admin-table:not(.admin-table--auto){min-width:0}
  .admin-table:not(.admin-table--auto),
  .admin-table:not(.admin-table--auto) tbody,
  .admin-table:not(.admin-table--auto) tr,
  .admin-table:not(.admin-table--auto) td{display:block;width:auto}
  .admin-table:not(.admin-table--auto) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .admin-table:not(.admin-table--auto) tr{background:#fff;border:1px solid var(--linea);border-radius:var(--r-sm);
    padding:6px 4px 8px;margin-bottom:10px}
  .admin-table:not(.admin-table--auto) td{border:0;padding:.38rem .85rem;font-size:.92rem}
  .admin-table:not(.admin-table--auto) td::before{content:attr(data-col);display:block;font-weight:800;font-size:.64rem;
    text-transform:uppercase;letter-spacing:.05em;color:var(--gris);margin-bottom:2px}
  .admin-table:not(.admin-table--auto) td:not([data-col])::before,
  .admin-table:not(.admin-table--auto) td[data-col=""]::before{display:none}
  /* Celda de acciones: botones en fila, separada con una línea sutil */
  .admin-table:not(.admin-table--auto) td.admin-acc{display:flex;flex-wrap:wrap;gap:6px;align-items:center;
    margin-top:4px;padding-top:8px;border-top:1px dashed var(--linea)}
  .admin-table:not(.admin-table--auto) td.admin-acc form{margin:0}
  .admin-table:not(.admin-table--auto) .msg-prev{max-width:100%;white-space:normal}
  .admin-table:not(.admin-table--auto) td select{width:100%;max-width:240px}
  /* Dashboard: dona/leyenda entran sin apretar */
  .donut{width:132px;height:132px}
  .donut::before{inset:22px}
  .donut-leyenda{min-width:0}
  .admin-quick{padding:12px 14px}
}

/* iOS hace "zoom" al tocar un campo si la letra mide menos de 16px. Forzando 16px en móvil
   se evita ese salto molesto al escribir (importante: el sitio se usa sobre todo en celular). */
@media(max-width:767px){
  input[type=text],input[type=tel],input[type=email],input[type=password],input[type=number],
  input[type=search],input[type=url],input:not([type]),select,textarea{font-size:16px}
}
/* En pantallas táctiles, una atenuación breve al tocar da sensación de respuesta
   (reemplaza al recuadro gris que quitamos con -webkit-tap-highlight-color). */
@media(hover:none){
  a:active,button:active,.btn:active,.card:active,.cat-card:active,.ciudad-card:active,
  .cuenta-nav-item:active,.main-nav a:active,.abtn:active,.mini-btn:active{opacity:.72;transition:opacity .05s}
}

/* ===========================================================
   DIRECTORIO (/directorio): filtros superiores + grilla
   =========================================================== */
.dir-head{margin-bottom:16px}
.dir-head .eyebrow{margin-bottom:8px}
.dir-head .page-title{margin-bottom:.2rem}
.dir-head .page-sub{margin-bottom:0}
.dir-layout{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}
.dir-main{min-width:0}
/* Barra lateral SIEMPRE visible (sin <details> ni display:none): aunque el CSS llegue a medias
   o en caché, el contenido NUNCA queda vacío. En móvil va arriba de la grilla; en escritorio,
   columna fija a la izquierda. */
.dir-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.dir-box{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:16px}
.dir-box-tit{display:flex;align-items:center;gap:.45rem;font-size:1rem;margin-bottom:12px}
.dir-box-tit .ico{color:var(--morado);flex:none}
/* Encabezado de Categorías como botón (acordeón en móvil) */
.dir-cats-toggle{width:100%;background:none;border:0;cursor:pointer;font-family:inherit;text-align:left;padding:0;color:var(--tinta)}
.dir-cats-toggle span{flex:1;min-width:0}
.dir-cats-chev{margin-left:auto;color:var(--gris-claro);transition:transform .2s;display:none}
.dir-cats-box:not(.cats-collapsed) .dir-cats-chev{transform:rotate(180deg)}
.dir-cats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.dir-cats a{display:flex;align-items:center;gap:.55rem;padding:.55rem .6rem;border-radius:var(--r-sm);font-weight:600;font-size:.92rem;color:var(--tinta)}
.dir-cats a .ico{color:var(--gris-claro);flex:none}
.dir-cats a span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dir-cats a b{flex:none;font-size:.72rem;font-weight:800;color:var(--gris);background:var(--fondo);border-radius:999px;padding:1px 8px}
.dir-cats a:hover{background:var(--fondo)}
.dir-cats a.on{background:#f1ecfb;color:var(--morado)}
.dir-cats a.on .ico{color:var(--morado)}
.dir-cats a.on b{background:#fff;color:var(--morado)}
.dir-filtros{display:flex;flex-direction:column;gap:10px}
.dir-field{display:flex;align-items:center;gap:8px;background:var(--fondo);border:1.5px solid var(--linea);border-radius:var(--r-sm);padding:0 12px}
.dir-field:focus-within{border-color:var(--violeta);background:#fff}
.dir-field>.ico{color:var(--morado);flex:none}
.dir-field input{flex:1;min-width:0;border:0;background:none;padding:.72rem 0;font-family:inherit;font-size:1rem;color:var(--tinta);outline:none;font-weight:500}
.dir-lbl{display:flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--gris-claro);margin-top:2px}
.dir-lbl .ico{color:var(--violeta)}
.dir-aplicar,.dir-cerca{width:100%;justify-content:center}
.dir-limpiar{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;font-weight:700;font-size:.85rem;color:var(--gris);padding:.3rem;margin-top:2px}
.dir-limpiar:hover{color:var(--morado)}
.dir-limpiar .ico{color:inherit}
.dir-lateral{display:flex;justify-content:center}
.dir-top-panel{position:relative;z-index:12;overflow:visible;background:linear-gradient(135deg,#fff8df 0%,#f8f3ff 52%,#fff 100%);border:1px solid #e8dfef;border-radius:20px;margin:0 0 16px;padding:14px 16px 16px}
.dir-filter-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.dir-filter-head h2{display:flex;align-items:center;gap:.6rem;margin:0;color:var(--tinta);font-size:1.05rem;letter-spacing:-.02em}
.dir-filter-head h2 .ico{box-sizing:content-box;padding:6px;border-radius:12px;background:var(--dorado);color:var(--morado-900)}
.dir-filter-head span{color:var(--gris);font-size:.86rem;font-weight:650;background:rgba(255,255,255,.72);border:0;border-radius:999px;padding:.32rem .72rem}
.dir-filtros--top{display:grid;grid-template-columns:1fr;align-items:stretch;gap:9px}
.dir-top-panel .dir-filtros--top{padding:0}
.dir-filtros--top .search-en{min-width:0}
.dir-top-panel .dir-field,
.dir-top-panel .loc-trigger,
.dir-dd-trigger{background:#fff;border:1px solid #ece6f4}
.dir-top-panel .dir-field{border:1px solid #ece6f4}
.dir-top-panel .loc-trigger{border:1px solid #ece6f4}
.dir-top-panel .dir-field:focus-within,
.dir-top-panel .loc-select.open .loc-trigger,
.dir-dd.open .dir-dd-trigger{border-color:#dccff0;background:#fff}
.dir-filtros--top .loc-trigger{height:100%;border-radius:var(--r-sm);padding:.72rem 12px}
.dir-dd{position:relative;min-width:0}
.dir-dd-trigger{display:flex;align-items:center;gap:8px;width:100%;height:100%;min-height:48px;border:0;border-radius:var(--r-sm);padding:.72rem 10px;font-family:inherit;font-size:.95rem;font-weight:750;color:var(--tinta);cursor:pointer;text-align:left}
.dir-dd-trigger>.ico:first-child{color:var(--morado);flex:none}
.dir-dd-trigger [data-dir-dd-label]{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dir-dd-chev{color:var(--violeta);transition:transform .16s}
.dir-dd.open .dir-dd-chev{transform:rotate(180deg)}
.dir-dd-panel{position:absolute;left:0;right:0;top:calc(100% + 7px);z-index:95;background:#fff;border:0;border-radius:14px;padding:6px;max-height:310px;overflow-y:auto}
.dir-dd-panel--small{max-height:230px}
.dir-dd-opt{display:flex;align-items:center;gap:.52rem;width:100%;border:0;background:transparent;color:var(--tinta);font-family:inherit;font-size:.91rem;font-weight:650;text-align:left;border-radius:10px;padding:.62rem .7rem;cursor:pointer}
.dir-dd-opt .ico{color:var(--violeta);flex:none}
.dir-dd-opt span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dir-dd-opt b{flex:none;font-size:.72rem;color:var(--morado);background:#f1ecfb;border-radius:999px;padding:1px 8px}
.dir-dd-opt:hover,
.dir-dd-opt:focus,
.dir-dd-opt[aria-selected="true"]{background:#f5f1ff;color:var(--morado);outline:0}
.dir-dd-opt[aria-selected="true"]{font-weight:850}
.dir-filtros--top .dir-aplicar,
.dir-filtros--top .dir-cerca{width:auto;white-space:nowrap;padding-left:.95rem;padding-right:.95rem}
.dir-top-panel .dir-aplicar{background:linear-gradient(135deg,#ffcf35 0%,var(--dorado) 55%,var(--dorado-600) 100%);color:var(--morado-900)}
.dir-top-panel .dir-cerca{background:#fff;border-color:transparent;color:var(--morado)}
.dir-filtros--top .dir-limpiar{margin:0;align-self:center;white-space:nowrap;padding:.55rem .2rem}
.dir-top-panel .dir-limpiar{color:var(--morado)}
.dir-cats-strip{margin-top:12px;border-top:1px solid var(--linea);padding-top:12px}
.dir-cats-strip-head{display:flex;align-items:center;gap:.45rem;margin-bottom:9px;color:var(--morado);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.dir-cats-strip-head .ico{flex:none}
.dir-cats--chips{display:flex;flex-direction:row;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.dir-cats--chips::-webkit-scrollbar{display:none}
.dir-cats--chips a{gap:.45rem;border:1px solid var(--linea-2);background:#faf8ff;border-radius:999px;padding:.48rem .72rem;font-size:.83rem;line-height:1}
.dir-cats--chips a span{flex:0 1 auto;max-width:170px}
.dir-cats--chips a b{background:#fff}
.dir-cats--chips a:hover{background:#f5f0ff;border-color:#dfd3f7}
.dir-cats--chips a.on{background:#efe7ff;border-color:#d9c7ff}
.dir-layout--full{grid-template-columns:1fr!important}
.dir-main--full .card-grid{grid-template-columns:1fr}
/* Barra superior de la grilla: contador + ordenar */
.dir-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.dir-toolbar .resultados-info{margin:0}
.dir-sort{display:flex;align-items:center;gap:.5rem}
.dir-sort label{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem;font-weight:700;color:var(--gris);white-space:nowrap}
.dir-sort label .ico{color:var(--violeta)}
.dir-sort select{appearance:none;-webkit-appearance:none;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--tinta);
  border:1.5px solid var(--linea-2);border-radius:var(--r-pill);padding:.5rem 2.2rem .5rem 1rem;background-color:#fff;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C3AED' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;background-size:14px}
.dir-sort select:hover{border-color:var(--violeta-300)}
.dir-sort select:focus{outline:none;border-color:var(--violeta)}
@media(min-width:992px){
  .dir-layout{grid-template-columns:282px 1fr;gap:24px}
  .dir-side{position:sticky;top:84px}
  .dir-main .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dir-layout--full{grid-template-columns:1fr!important}
  .dir-main--full .card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:1200px){
  .dir-main .card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dir-main--full .card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:680px) and (max-width:991px){
  .dir-main--full .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:760px){
  .dir-filtros--top{grid-template-columns:minmax(260px,1.2fr) minmax(210px,.9fr);gap:10px}
  .dir-filtros--top .dir-aplicar,
  .dir-filtros--top .dir-cerca{width:100%}
}
@media(min-width:1024px){
  .dir-filtros--top{grid-template-columns:minmax(0,1.55fr) minmax(230px,.7fr) auto auto;gap:10px}
  .dir-field--buscar{grid-column:auto}
  .dir-filtros--top .search-en{grid-column:auto}
  .dir-filtros--top .dir-aplicar{grid-column:auto}
  .dir-filtros--top .dir-limpiar{grid-column:auto}
  .dir-filtros--top .dir-aplicar,
  .dir-filtros--top .dir-cerca{width:auto}
}
/* Móvil: la barra va arriba de la grilla; categorías como chips que se ajustan en filas,
   y ocultamos el banner lateral (formato de escritorio) para no alargar el panel. */
@media(max-width:991px){
  .dir-top-panel{border-radius:18px;padding:12px}
  .dir-top-panel .dir-filtros--top{padding:0}
  .dir-filter-head{align-items:flex-start;margin-bottom:10px}
  .dir-filter-head span{display:none}
  .dir-filtros--top .dir-aplicar,
  .dir-filtros--top .dir-cerca{width:100%}
  .dir-filtros--top .dir-limpiar{justify-content:center}
  .dir-cats-strip{margin-top:10px;padding-top:10px}
  .dir-cats--chips a{white-space:nowrap}
  /* Categorías: sección minimizable. Cerrada = solo el título; abierta = lista vertical completa. */
  .dir-cats-chev{display:inline-flex}
  .dir-cats-box.cats-collapsed .dir-cats{display:none}
  .dir-cats-box.cats-collapsed .dir-cats-toggle{margin-bottom:0}
  .dir-lateral{display:none}
}
@media(max-width:759px){
  .dir-filtros--top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dir-field--buscar,
  .dir-filtros--top .search-en,
  .dir-filtros--top .dir-limpiar{grid-column:1 / -1}
  .dir-dd-trigger{font-size:.9rem;padding-left:9px;padding-right:9px}
  .dir-filtros--top .dir-aplicar,
  .dir-filtros--top .dir-cerca{padding-left:.65rem;padding-right:.65rem}
}
@media(max-width:359px){
  .dir-filtros--top{grid-template-columns:1fr}
}
