@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..900;1,9..144,300..900&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
  --marfil:#fbf5f9; --papel:#fffafd; --tinta:#2b1436; --humo:#7a6483; --linea:#efdde8;
  --oro:#c9a227; --oro-claro:#f6e7b8; --oro-oscuro:#8f6f12;
  --rosa:#e0448f; --rosa-claro:#fbe1ee; --morado:#4a1d6e; --morado-claro:#8a4fc7; --lila:#efe4fa;
  --rojo:#e0448f; --alerta:#c8102e; --vino:#4a1d6e; --verde:#1f7a4d; --wa:#25D366; --ambar:#c88a00;
  --serif:'Fraunces',Georgia,serif; --sans:'Manrope',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--marfil);color:var(--tinta);font-family:var(--sans);font-size:16px;line-height:1.55}
img{max-width:100%;display:block}
a{color:inherit}
button,input,select,textarea{font-family:inherit;font-size:inherit}
:focus-visible{outline:3px solid var(--oro);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* tipografía */
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.05;margin:0;letter-spacing:-.01em}
h1{font-size:clamp(2.4rem,7vw,4.6rem)}
h2{font-size:clamp(1.7rem,4.5vw,2.6rem)}
h3{font-size:1.25rem}
.lead{font-size:1.1rem;color:var(--humo);max-width:34em}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.narrow{max-width:520px;margin:0 auto;padding:0 20px}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;padding:14px 22px;font-weight:700;cursor:pointer;text-decoration:none;transition:transform .08s}
.btn:active{transform:scale(.97)}
.btn-rojo{background:var(--rojo);color:#fff}
.btn-oro{background:var(--oro);color:var(--tinta)}
.btn-tinta{background:var(--morado);color:#fff}
.btn-wa{background:var(--wa);color:#fff}
.btn-ghost{background:transparent;color:var(--tinta);border:2px solid var(--linea)}
.btn-full{width:100%}
.btn-sm{padding:9px 14px;font-size:.9rem;border-radius:11px}

/* formularios */
label{display:block;font-size:.8rem;font-weight:700;color:var(--humo);margin:16px 0 6px}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=url],select,textarea{width:100%;padding:13px 15px;border:2px solid var(--linea);border-radius:12px;background:#fff;outline:0}
input:focus,select:focus,textarea:focus{border-color:var(--morado-claro)}
textarea{resize:vertical;min-height:90px}
.hint{font-size:.8rem;color:var(--humo);margin-top:6px}
.sw-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--linea);gap:12px}
.sw-row strong{display:block;font-size:.95rem}.sw-row small{color:var(--humo);font-size:.8rem}
.sw{appearance:none;width:50px;height:30px;border-radius:99px;background:#ddd6cb;position:relative;cursor:pointer;flex:none;margin:0;transition:background .2s}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:transform .2s}
.sw:checked{background:var(--rosa)}.sw:checked::after{transform:translateX(20px)}
.chips{display:flex;gap:8px}
.chips label{margin:0;flex:1}
.chips input{display:none}
.chips span{display:block;text-align:center;padding:11px 0;border:2px solid var(--linea);border-radius:12px;font-weight:800;color:var(--humo);cursor:pointer;background:#fff}
.chips input:checked+span{background:var(--morado);border-color:var(--morado);color:#fff}

/* tarjetas */
.card{background:var(--papel);border:1px solid var(--linea);border-radius:18px;padding:16px}
.flash{padding:12px 16px;border-radius:12px;margin:14px 0;font-weight:600;background:#e7f5ec;color:var(--verde)}
.flash.err{background:#fdeaea;color:var(--alerta)}
.tag{display:inline-block;font-size:.7rem;font-weight:800;padding:3px 9px;border-radius:99px;background:#efe9df;color:var(--humo)}
.tag.oro{background:var(--oro-claro);color:var(--oro-oscuro)}
.tag.verde{background:#e2f2e8;color:var(--verde)}
.tag.rojo{background:#fde3e3;color:var(--alerta)}
.tag.ambar{background:#fbeccb;color:#8a5f00}
.ver{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:800;color:#1a56db;background:#e8f0ff;padding:3px 9px;border-radius:99px;vertical-align:middle}

/* ═══ SITIO PÚBLICO ═══ */
.nav{display:flex;align-items:center;justify-content:space-between;padding:18px 0}
.nav .logo{font-family:var(--serif);font-weight:700;font-size:1.2rem;text-decoration:none;letter-spacing:-.01em}
.nav .logo em{color:var(--rosa);font-style:italic}
.nav nav{display:flex;gap:6px;align-items:center}

.hero{background:linear-gradient(160deg,var(--morado) 0%,#7a2f8f 55%,var(--rosa) 100%);color:#fff;padding:56px 0 0;overflow:hidden;position:relative}
.hero h1{max-width:12ch}
.hero h1 em{font-style:italic;color:#ffd6ea;font-weight:400}
.hero .lead{color:#f3e4f5;margin-top:18px}
.hero .cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.cinta{margin-top:46px;background:var(--rosa-claro);padding:14px 0;overflow:hidden;white-space:nowrap}
.cinta .track{display:inline-flex;gap:14px;animation:cinta 40s linear infinite;padding-left:14px}
@keyframes cinta{to{transform:translateX(-50%)}}
.cinta a{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.9);color:var(--tinta);padding:6px 14px 6px 6px;border-radius:99px;text-decoration:none;font-weight:700;font-size:.9rem}
.cinta img,.cinta .ini{width:36px;height:36px;border-radius:50%;object-fit:cover;background:var(--morado);color:#fff;display:grid;place-items:center;font-family:var(--serif)}

.sec{padding:64px 0}
.sec-head{margin-bottom:28px;max-width:60ch}
.sec-head p{color:var(--humo);margin:10px 0 0}

.pasos{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));counter-reset:paso}
.paso{background:var(--papel);border:1px solid var(--linea);border-radius:20px;padding:22px}
.paso::before{counter-increment:paso;content:counter(paso);font-family:var(--serif);font-size:2.6rem;font-weight:300;color:var(--rosa);display:block;line-height:1}
.paso h3{margin:10px 0 6px}.paso p{margin:0;color:var(--humo);font-size:.95rem}

.reyna{background:var(--tinta);color:#fff;border-radius:28px;overflow:hidden;display:grid;grid-template-columns:1fr;position:relative}
.reyna .foto{aspect-ratio:1;background:linear-gradient(135deg,var(--morado),var(--rosa)) center/cover}
.reyna .txt{padding:28px}
.reyna .corona{font-family:var(--serif);font-style:italic;color:var(--oro);font-size:1.05rem}
.reyna h2{margin:6px 0 10px;color:#fff}
.reyna p{color:#d8cfcf;margin:0 0 20px}
@media(min-width:720px){.reyna{grid-template-columns:1fr 1.15fr}.reyna .txt{padding:44px;align-self:center}}

.mesa{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.perfil-card{background:var(--papel);border-radius:20px;overflow:hidden;text-decoration:none;border:1px solid var(--linea);display:block}
.perfil-card .cov{height:84px;background:linear-gradient(135deg,var(--morado),var(--rosa)) center/cover}
.perfil-card .av{width:64px;height:64px;border-radius:50%;border:4px solid var(--papel);margin:-34px 0 0 16px;background:#fff center/cover;font-family:var(--serif);display:grid;place-items:center;font-size:1.4rem;color:var(--morado)}
.perfil-card .body{padding:8px 16px 16px}
.perfil-card strong{display:block;font-size:1rem;line-height:1.2}
.perfil-card small{color:var(--humo);font-size:.8rem}
.mesa .perfil-card{border:2px solid var(--oro)}
.mesa .perfil-card .cov{background-image:linear-gradient(135deg,var(--morado),var(--oro))}

.filtros{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.filtros a{padding:8px 14px;border-radius:99px;border:2px solid var(--linea);text-decoration:none;font-weight:700;font-size:.85rem;background:#fff}
.filtros a.on{background:var(--morado);color:#fff;border-color:var(--morado)}
.buscar{display:flex;gap:8px;margin-bottom:16px}
.buscar input{flex:1}

.planes{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.plan{background:var(--papel);border:1px solid var(--linea);border-radius:22px;padding:24px}
.plan.dorado{border:2px solid var(--oro);background:#fffaec}
.plan.premium{border:2px solid var(--morado-claro);background:var(--lila)}
.plan .precio{font-family:var(--serif);font-size:2.4rem;font-weight:600;margin:6px 0}
.plan .precio small{font-family:var(--sans);font-size:.9rem;color:var(--humo);font-weight:500}
.plan ul{padding-left:18px;margin:12px 0 18px;color:var(--humo)}
.plan li{margin:4px 0}

footer{padding:40px 0;color:var(--humo);font-size:.9rem;border-top:1px solid var(--linea);margin-top:40px}

/* ═══ PERFIL PÚBLICO ═══ */
.pp-cover{height:200px;background:linear-gradient(135deg,var(--morado),var(--rosa)) center/cover;border-radius:0 0 28px 28px}
.pp-avatar-wrap{position:relative;width:104px;margin:0 auto}
.pp-avatar{width:104px;height:104px;border-radius:50%;background:#fff center/cover;border:4px solid var(--marfil);margin:-52px auto 0;font-family:var(--serif);display:grid;place-items:center;font-size:2.4rem;color:var(--morado);box-shadow:0 4px 14px rgba(0,0,0,.12)}
.corona-badge{position:absolute;top:-58px;right:-4px;font-size:1.6rem;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));transform:rotate(18deg)}
.av-wrap{position:relative;display:inline-flex}
.corona-badge-sm{position:absolute;top:-10px;right:-8px;font-size:1rem;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25));transform:rotate(18deg)}
.pp-head{text-align:center;padding:12px 20px 0}
.pp-head h1{font-size:1.9rem}
.pp-head .bio{color:var(--humo);margin:8px auto 0;max-width:38em}
.pp-redes{display:flex;justify-content:center;gap:10px;margin:14px 0 4px}
.pp-redes a{width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--linea);display:grid;place-items:center;text-decoration:none;color:var(--tinta)}
.pp-redes a.red-ig{color:#fff;background:radial-gradient(circle at 30% 110%,#fdf497,#fd5949 45%,#d6249f 60%,#285AEB 90%)}
.pp-redes a.red-fb{color:#fff;background:#1877F2}
.pp-redes a.red-tt{color:#fff;background:#000}
.pp-redes a.red-x{color:#fff;background:#000}
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.gal-item{position:relative;aspect-ratio:1;border-radius:12px;background:#efe9df center/cover;overflow:hidden}
.gal-empty{display:grid;place-items:center;font-size:1.8rem;color:var(--humo);border:2px dashed var(--linea);cursor:pointer}
.gal-del{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-weight:800;cursor:pointer;line-height:1}
.pp-gal{display:flex;gap:10px;overflow-x:auto;padding:4px 20px 12px;margin:6px 0 4px;scrollbar-width:none}
.pp-gal::-webkit-scrollbar{display:none}
.pp-gal a{flex:none;width:120px;height:120px;border-radius:14px;background:#efe9df center/cover;border:1px solid var(--linea)}
.pp-map{border-radius:16px;overflow:hidden;border:1px solid var(--linea);margin:16px 0}
.pp-map iframe{width:100%;height:180px;border:0;display:block}
.prod{background:var(--papel);border:1px solid var(--linea);border-radius:20px;padding:14px;margin-bottom:12px}
.prod .row{display:flex;gap:12px;align-items:center}
.prod .ph{width:84px;height:84px;border-radius:14px;background:#efe9df center/cover;flex:none;display:grid;place-items:center;font-size:2rem}
.prod .nm{font-weight:800;margin:0;line-height:1.2}
.prod .pr{font-family:var(--serif);font-size:1.5rem;font-weight:600;color:var(--rojo);margin:2px 0 0}
.prod .ds{font-size:.85rem;color:var(--humo);margin:4px 0 0}
.prod .tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.prod .btns{display:flex;gap:8px;margin-top:12px}.prod .btns .btn{flex:1;padding:12px}
.wa-float{position:fixed;right:18px;bottom:18px;width:58px;height:58px;border-radius:50%;background:var(--wa);color:#fff;display:grid;place-items:center;font-size:1.7rem;text-decoration:none;box-shadow:0 8px 20px rgba(37,211,102,.4);z-index:40}
.sheet{position:fixed;inset:0;background:rgba(23,19,20,.6);z-index:100;display:none;align-items:flex-end}
.sheet.open{display:flex}
.sheet .box{background:#fff;width:100%;max-width:520px;margin:0 auto;border-radius:26px 26px 0 0;padding:20px 20px 32px}
.opt{display:block;width:100%;text-align:left;border:0;border-radius:16px;padding:14px 16px;color:#fff;font-weight:800;margin-bottom:8px;cursor:pointer}
.opt small{display:block;font-weight:500;opacity:.9;font-size:.85rem}
.opt.d{background:var(--rojo)}.opt.a{background:var(--verde)}.opt.f{background:var(--ambar)}

/* ═══ APP (panel) ═══ */
.app{max-width:560px;margin:0 auto;padding:0 18px 110px}
.app-top{display:flex;align-items:center;justify-content:space-between;padding:16px 0 4px}
.app-top .brand{font-family:var(--serif);font-weight:700}
.app-top .brand em{color:var(--rosa);font-style:italic}
.tabs{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--linea);display:flex;padding:8px 6px 20px;z-index:50}
.tabs a{flex:1;text-align:center;text-decoration:none;color:#b3a9a9;font-size:.68rem;font-weight:800}
.tabs a span{display:block;font-size:1.3rem}
.tabs a.on{color:var(--rosa)}
.kpi{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.kpi div{background:var(--papel);border:1px solid var(--linea);border-radius:16px;padding:14px}
.kpi b{display:block;font-family:var(--serif);font-size:1.7rem;font-weight:600}
.kpi small{font-size:.72rem;color:var(--humo);font-weight:700}
.negro-box{background:var(--morado);color:#fff;border-radius:18px;padding:18px;margin:12px 0}
.aviso{background:#fff0f6;border:2px dashed var(--rosa);border-radius:18px;padding:16px;margin:12px 0}
.cli{display:flex;align-items:center;gap:12px;background:var(--papel);border:1px solid var(--linea);border-radius:16px;padding:12px;margin-bottom:8px;text-decoration:none;color:inherit}
.ini{width:42px;height:42px;border-radius:50%;background:var(--morado);color:#fff;display:grid;place-items:center;font-weight:800;flex:none}
.sem{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:800}
.sem::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.sem.bueno{color:var(--verde)}.sem.regular{color:var(--ambar)}.sem.riesgo{color:var(--alerta)}.sem.nuevo{color:var(--humo)}
.drop{border:2px dashed #d9d0c3;border-radius:20px;padding:30px 20px;text-align:center;background:var(--papel);cursor:pointer}
.drop img{max-height:220px;margin:0 auto;border-radius:14px}
.lock{opacity:.55}
table{width:100%;border-collapse:collapse;font-size:.88rem}
td,th{padding:10px 6px;border-bottom:1px solid var(--linea);text-align:left;vertical-align:middle}
th{font-size:.72rem;color:var(--humo)}

/* escaparate: lo primero después del hero */
.escaparate{padding:40px 0 8px}
.escaparate .strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 20px 18px;margin:0 -20px;scrollbar-width:none}
.escaparate .strip::-webkit-scrollbar{display:none}
.esc{flex:0 0 78%;max-width:340px;scroll-snap-align:start;border-radius:24px;overflow:hidden;position:relative;aspect-ratio:4/5;text-decoration:none;color:#fff;background:linear-gradient(160deg,var(--morado),var(--rosa)) center/cover;display:flex;flex-direction:column;justify-content:flex-end}
.esc::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(43,20,54,.88) 0%,rgba(43,20,54,.15) 55%,transparent 100%)}
.esc .in{position:relative;z-index:1;padding:18px}
.esc .av{width:54px;height:54px;border-radius:50%;background:#fff center/cover;border:3px solid #fff;font-family:var(--serif);color:var(--morado);display:grid;place-items:center;font-size:1.3rem;margin-bottom:10px}
.esc strong{display:block;font-family:var(--serif);font-size:1.35rem;font-weight:600;line-height:1.1}
.esc small{display:block;color:#f3d9ea;font-size:.85rem;margin-top:3px}
.esc .ver{margin-left:4px}
@media(min-width:720px){.esc{flex-basis:300px}}
