/* ============================================================
   Aristócrata · capa de identidad y piezas propias del demo
   Oro del emblema #D3B35E / #B8902F · negro #15110C · bordó #8E1B1F · papel crema
   ============================================================ */
:root{--oro:#B8902F;--oro-2:#D3B35E;--oro-50:#F8F0D9;--bordo:#8E1B1F;--crema:#FBF7EE}
.oro{color:var(--oro-2)}
.wipe{overflow:hidden}
.g>*,.card{min-width:0}

/* tipografía Cinzel: más ancha que una condensada, se ajustan tamaños */
.hub-cab h2{font-size:34px;letter-spacing:.5px;line-height:1.08}
.hub-cab h2 span{color:var(--bordo)}
.mod h3{font-size:18px;letter-spacing:.2px;line-height:1.2}
.mod__kpis b{font-size:19px}
.kpi__val{font-size:28px}
.hoy__k b{font-size:26px}
.hallazgo .num{font-size:28px}
.gate__t{font-size:24px;text-transform:none}
.top h1{font-family:var(--disp);letter-spacing:.3px}
.wow-kin{font-size:clamp(34px,4.6vw,76px)!important;line-height:1!important;letter-spacing:.02em!important}
@media (max-width:820px){.hub-cab h2{font-size:24px}.gate__t{font-size:19px}.kpi__val{font-size:23px}.hoy__k b{font-size:21px}}

/* portada: barridos oro y bordó */
.gate{background:radial-gradient(60% 50% at 50% 38%,#2A1E10 0%,#0D0A06 70%)}
.gate__bg i{background:linear-gradient(90deg,transparent,var(--oro-2) 40%,var(--oro-2) 60%,transparent)!important;opacity:.07}
.gate__bg i:nth-child(2){background:linear-gradient(90deg,transparent,var(--bordo) 40%,var(--bordo) 60%,transparent)!important;opacity:.12}
.gate__logo{filter:drop-shadow(0 14px 44px rgba(211,179,94,.28))}
.pin__btn{background:linear-gradient(135deg,#C9A44E,#8E6B1E);color:#15110C}
.side{background:linear-gradient(180deg,#15110C,#1E170F)}
.marca__txt strong{font-family:var(--disp);letter-spacing:.5px}
.nav__it.on{box-shadow:inset 3px 0 0 var(--oro-2)}

/* tarjeta "oro" */
.card--oro{background:linear-gradient(135deg,#1D160D 0%,#2B2012 100%);border-color:#3A2E1F;color:#fff}
.card--oro .card__cab h3{color:var(--oro-2)}.card--oro .card__cab p{color:#C9BFA9}
.card--oro .t th{color:#C9BFA9;border-color:#3A2E1F}.card--oro .t td{border-color:#3A2E1F;color:#F2EBDD}
.nota{font-size:11.5px;color:var(--tinta-45);margin-top:8px;line-height:1.5}
.card--rojo .nota,.card--oro .nota{color:rgba(255,255,255,.78)}

/* presencia por cadena (mapa de calor) */
.calor{width:100%;border-collapse:separate;border-spacing:4px;font-size:12px}
.calor th{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:rgba(255,255,255,.8);font-weight:700;text-align:center;padding:2px 4px}
.calor th:first-child{text-align:left}
.calor td{text-align:center;border-radius:8px;padding:8px 4px;font-weight:700;font-variant-numeric:tabular-nums;background:rgba(255,255,255,var(--a,.06));color:#fff}
.calor td:first-child{text-align:left;background:none;font-weight:700;white-space:nowrap}
.calor tr.yo td{outline:1px solid rgba(255,255,255,.35)}
.calor td.cero{background:rgba(0,0,0,.28);color:#F3B0A8}
.tabla-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* botellas de comparación de precio */
.bots{display:flex;gap:14px;align-items:flex-end;justify-content:space-around;min-height:210px;padding:6px 4px 0}
.bot{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.bot svg{width:100%;max-width:60px;height:auto;overflow:visible}
.bot .liq{transform-origin:50% 100%;transform:scaleY(0);transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.bot.on .liq{transform:scaleY(1)}
.bot b{font-family:var(--disp);font-size:15px}
.bot span{font-size:10.5px;color:var(--tinta-45);text-align:center;line-height:1.25}

/* bodega: cubas */
.cubas{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.cuba{position:relative;border:1px solid var(--linea);border-radius:12px;padding:8px 8px 9px;background:var(--papel);cursor:pointer;text-align:left;transition:transform .15s,box-shadow .15s,border-color .15s;font-family:inherit}
.cuba:hover{transform:translateY(-2px);box-shadow:var(--sombra-2)}
.cuba.on{border-color:var(--bordo);box-shadow:0 0 0 2px rgba(142,27,31,.18)}
.cuba svg{width:100%;height:auto;display:block}
.cuba b{display:block;font-size:12px;margin-top:4px}
.cuba small{display:block;font-size:10.5px;color:var(--tinta-45);line-height:1.3}
.cuba .lista{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:#2F6B3A;box-shadow:0 0 0 3px rgba(47,107,58,.2);animation:latido 1.8s ease-in-out infinite}
@keyframes latido{50%{transform:scale(1.35)}}
.barr-liq{transition:height 1s cubic-bezier(.2,.8,.2,1),y 1s cubic-bezier(.2,.8,.2,1)}
.filtros{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.filtros button{font-size:11.5px;font-weight:600;padding:6px 10px;border-radius:999px;border:1px solid var(--linea-fuerte);background:#fff;color:var(--tinta-70)}
.filtros button.on{background:var(--negro);border-color:var(--negro);color:#fff}

/* flujo en vivo con objeto que viaja por un path */
.viaje{position:relative;border-radius:14px;background:linear-gradient(135deg,#1D160D,#2B2012);padding:14px 14px 10px;color:#fff;overflow:hidden}
.viaje svg{width:100%;height:auto;display:block}
.viaje .via{fill:none;stroke:rgba(211,179,94,.35);stroke-width:3;stroke-dasharray:6 7;animation:corre 1.6s linear infinite}
@keyframes corre{to{stroke-dashoffset:-26}}
.viaje .nodo circle{fill:#15110C;stroke:var(--oro-2);stroke-width:2.5}
.viaje .nodo text{fill:#F2EBDD;font:600 12px Inter,sans-serif;text-anchor:middle}
.viaje .nodo text.s{fill:#B9AE97;font-weight:500;font-size:10.5px}
.viaje .gota{fill:var(--oro-2);filter:drop-shadow(0 0 6px rgba(211,179,94,.9))}
.viaje__pie{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:11.5px;color:#C9BFA9;margin-top:6px}
.viaje__pie b{color:#fff}

/* línea de tiempo DNCP */
.anios{display:grid;grid-template-columns:repeat(17,1fr);gap:4px;align-items:end;height:150px;padding-top:10px}
.anios div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px;min-width:0}
.anios i{display:block;width:100%;border-radius:5px 5px 0 0;background:var(--oro);height:0;transition:height .9s cubic-bezier(.2,.8,.2,1)}
.anios div.cero i{background:var(--bordo);height:3px!important}
.anios div.hoy i{background:var(--bordo)}
.anios b{font-size:10.5px;font-variant-numeric:tabular-nums}
.anios span{font-size:9.5px;color:var(--tinta-45);writing-mode:horizontal-tb}
@media (max-width:620px){.anios span{font-size:8px}.anios b{font-size:9px}}

/* insumos con días de stock */
.ins{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--linea)}
.ins:last-child{border-bottom:0}
.ins b{font-size:13px}.ins small{color:var(--tinta-45);font-size:11.5px;grid-column:1}
.ins .m{grid-row:1/3;grid-column:2;text-align:right;font-family:var(--disp);font-size:20px;font-weight:700;align-self:center}
.ins .m small{display:block;font-family:var(--sans);font-size:10.5px;font-weight:600}
.ins.alerta .m{color:var(--bordo)}

/* propuesta modular */
.mods{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.pm{position:relative;display:flex;flex-direction:column;gap:10px;background:var(--papel);border:1px solid var(--linea);border-radius:18px;padding:20px 18px 18px;box-shadow:var(--sombra-1);min-width:0}
.pm::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:18px 18px 0 0;background:var(--c,var(--oro))}
.pm__cab{display:flex;gap:10px;align-items:center}
.pm__cab .ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--oro-50);color:var(--bordo);flex:none}
.pm__cab .ic svg{width:20px;height:20px}
.pm h3{margin:0;font-family:var(--disp);font-size:16px;line-height:1.2}
.pm .tipo{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--tinta-45)}
.pm p{margin:0;font-size:12.5px;color:var(--tinta-70);line-height:1.5}
.pm .resuelve{font-size:12px;background:var(--rojo-50);border-left:3px solid var(--bordo);padding:8px 10px;border-radius:8px;color:var(--rojo-900)}
.pm .precio2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}
.pm .pb{text-align:center;background:var(--fondo);border-radius:12px;padding:10px 6px}
.pm .pb small{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--tinta-45)}
.pm .pb b{display:block;font-family:var(--disp);font-size:21px;margin:2px 0}
.pm .pb span{display:block;font-size:11px;color:var(--tinta-45)}
.pm .plazo{font-size:11.5px;color:var(--tinta-45);text-align:center}
.escala{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.escala div{text-align:center;padding:14px 8px;border-radius:14px;background:rgba(255,255,255,.07)}
.escala small{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:#C9BFA9;font-weight:700}
.escala b{display:block;font-family:var(--disp);font-size:24px;color:#fff;margin:4px 0}
.escala span{font-size:11.5px;color:#C9BFA9}
.cta{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;background:linear-gradient(135deg,#C9A44E,#8E6B1E);color:#15110C;font-weight:800;font-size:13.5px;box-shadow:0 10px 26px rgba(142,107,30,.35)}
@media (max-width:620px){.escala{grid-template-columns:1fr}}

/* casa aristócrata */
.regalos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.regalo{border:1px solid var(--linea);border-radius:12px;overflow:hidden;background:#fff}
.regalo img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:var(--fondo)}
.regalo div{padding:7px 9px 9px}
.regalo b{display:block;font-size:11.5px;line-height:1.3}
.regalo span{font-size:11.5px;color:var(--bordo);font-weight:700}
.fo{border-radius:8px;object-fit:cover;background:var(--fondo)}
.dom{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--linea);font-size:12.5px}
.dom:last-child{border-bottom:0}
.dom code{font-size:12px;font-weight:700}
.dom span{color:var(--tinta-45);font-size:11.5px;text-align:right}
@media (prefers-reduced-motion:reduce){.viaje .via,.cuba .lista{animation:none}.bot .liq{transition:none;transform:none}}
.mapa-py .pais-real{fill:#F3ECDD!important;stroke:#CDBF9F!important}
.mapa-real .ruta--exp{stroke-width:6;opacity:.75}
.feed__it .ic.rojo{background:var(--rojo-50);color:var(--bordo)}
.wow-datos b{font-size:23px!important}
.card--rojo .panel{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.18)!important;box-shadow:none}
.card--rojo{background:linear-gradient(135deg,#8E1B1F 0%,#4A0D10 100%)}
.ronlist{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ronimgs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ronimgs img{width:100%;border-radius:10px;border:1px solid var(--linea);display:block}
.pm .pb b{font-size:19px;white-space:nowrap}
.mods{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
