/* ==========================================================================
   Lavalle 115 (versión 2) — tema Rombo
   Aplica a la página del cliente el sistema de diseño del sitio de Rombo:
   fondo oscuro arquitectónico, acento verde azulado, tipografías Fraunces + Inter,
   esquinas rectas, el rombo como marca, y el menú y el footer del sitio.
   No cambia el contenido ni la lógica: solo variables y estilos. Se carga después
   del <style> del cliente. Si se edita, subir el número de versión del enlace en
   index.html (css/tema-rombo.css?v=N) por la caché de 30 días del servidor.
   ========================================================================== */

@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('../fonts/fraunces-latin-variable.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 300 800; font-display: swap; src: url('../fonts/inter-latin-variable.woff2') format('woff2'); }

/* ---- tokens del sitio + variables del cliente remapeadas ----------------- */
html:root:root {
  --rb-bg: #0c0d0f; --rb-bg-alt: #131417; --rb-surface: #191b1f; --rb-surface-2: #202226; --rb-surface-3: #2a2d32;
  --rb-border: #2c2f34; --rb-border-soft: rgba(255, 255, 255, 0.08);
  --rb-text: #f4f1ea; --rb-dim: #aca79d; --rb-faint: #726d64;
  --rb-accent: #3C9F95; --rb-accent-bright: #55C2B6; --rb-accent-dim: #2A756D;
  --rb-display: 'Fraunces', 'Cardo', Georgia, serif;
  --rb-body: 'Inter', 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --rb-ease: cubic-bezier(.22, .61, .36, 1);

  --ink: var(--rb-text);          /* texto principal (era oscuro sobre claro) */
  --ink-2: var(--rb-dim);
  --muted: #8c877e;
  --line: var(--rb-border);
  --line-2: #3a3d43;
  --cal: var(--rb-bg);            /* fondo de páginas y paneles */
  --paper: var(--rb-surface);     /* tarjetas */
  --hormigon: #5a5e64;
  --stage: var(--rb-bg);
  --verde: var(--rb-accent);      /* acción principal y "disponible" */
  --verde-2: var(--rb-accent-bright);
  --verde-3: rgba(85, 194, 182, 0.14);
  --rombo: var(--rb-text);        /* títulos */
  --luz: #e2a73a;                 /* ámbar: SOLO el estado "Reservado" */
  --luz-2: rgba(226, 167, 58, 0.16);
  --luz-ink: #f0c26a;
  --vend: #6b6f76;
  --vend-2: rgba(255, 255, 255, 0.07);
  --font: var(--rb-body);
  --bar-h: 104px;                 /* menú del sitio (60) + barra del recorrido (44) */
  color-scheme: dark;
}
@media (max-width: 900px) { html:root:root { --bar-h: 56px; } }

html, body { background: var(--rb-bg); }
body { font-family: var(--rb-body); color: var(--rb-text); }
::selection { background: var(--rb-accent); color: #fff; }
:focus-visible { outline: 2px solid var(--rb-accent-bright); outline-offset: 2px; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--rb-bg); }
::-webkit-scrollbar-thumb { background: var(--rb-surface-3); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--rb-accent-dim); }

/* títulos con la serif del sitio */
.side h1, .page-h h1, .u-name, .card h2, .flabel b, .tip h3, .pop h3, .cmp-col h3, .modal-h h2, .muestra h2, .cal-lists h2, .coach-msg b, .etip b, .ubadge, .cell text,
.urow .lt, .wordmark b, .elev button, .tray-items button, .specs dd.big { font-family: var(--rb-display); font-stretch: 100%; }

/* ---------------------------------------------------------------- menú del sitio + barra del recorrido */
.bar { display: block; padding: 0; gap: 0; background: transparent; color: var(--rb-text); }
.rb-top { height: 60px; background: rgba(12, 13, 15, 0.9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid var(--rb-border-soft); }
.rb-sub { height: 44px; background: var(--rb-bg-alt); border-bottom: 1px solid var(--rb-border-soft); }
.rb-top-in, .rb-sub-in { max-width: 1240px; margin: 0 auto; padding: 0 1.5rem; height: 100%; display: flex; align-items: center; gap: 1.5rem; }
.rb-top-in { justify-content: space-between; }
.rb-brand { display: inline-flex; align-items: center; flex: none; }
.rb-brand img { height: 34px; width: auto; }
.rb-menu { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; }
.rb-menu a { position: relative; display: block; color: var(--rb-dim); text-decoration: none; text-transform: uppercase; font-size: .74rem; font-weight: 600; letter-spacing: .1em; padding: .5rem 0; margin: 0 .85rem; transition: color .25s var(--rb-ease); }
.rb-menu a::after { content: ''; position: absolute; left: 0; bottom: -2px; width: 0; height: 1px; background: var(--rb-accent); transition: width .3s var(--rb-ease); }
.rb-menu a:hover { color: var(--rb-text); }
.rb-menu a:hover::after, .rb-menu a[aria-current="page"]::after { width: 100%; }
.rb-menu a[aria-current="page"] { color: var(--rb-accent); }
@media (max-width: 1100px) { .rb-menu a { margin: 0 .7rem; } }

.wordmark b { font-weight: 600; font-size: 1.15rem; letter-spacing: -.01em; }
.wordmark img { opacity: .6; }
.nav { margin-left: 2rem; margin-right: auto; gap: 0; }
.nav a { padding: 6px 0; margin: 0 .9rem; border-radius: 0; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--rb-dim); }
.nav a:hover { background: none; color: var(--rb-text); }
.nav a[aria-current="page"] { color: var(--rb-accent-bright); }
.nav a[aria-current="page"]::after { left: 0; right: 0; bottom: -4px; height: 1px; border-radius: 0; background: var(--rb-accent-bright); }
.bar-wa { margin-left: auto; height: 34px; padding: 0 1.1rem; border-radius: 0; background: var(--rb-accent); font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; transition: background .3s var(--rb-ease), transform .3s var(--rb-ease), box-shadow .3s var(--rb-ease); }
.bar-wa:hover { background: var(--rb-accent-bright); transform: translateY(-1px); box-shadow: 0 10px 22px rgba(60, 159, 149, 0.3); }
.rb-burger { display: none; }

/* ---------------------------------------------------------------- botones, estados */
.btn { border-radius: 0; font: 600 .78rem/1 var(--rb-body); letter-spacing: .04em; text-transform: uppercase;
  transition: background .3s var(--rb-ease), color .3s var(--rb-ease), border-color .3s var(--rb-ease), transform .3s var(--rb-ease), box-shadow .3s var(--rb-ease); }
.btn-primary, .btn-dark { background: var(--rb-accent); border-color: var(--rb-accent); color: #fff; }
.btn-primary:hover, .btn-dark:hover { background: var(--rb-accent-bright); border-color: var(--rb-accent-bright); color: #fff; transform: translateY(-2px); box-shadow: 0 12px 26px rgba(60, 159, 149, 0.3); }
.btn-ghost { background: transparent; border-color: rgba(255, 255, 255, 0.35); color: var(--rb-text); }
.btn-ghost:hover { background: var(--rb-text); border-color: var(--rb-text); color: var(--rb-bg); }
.btn-ghost[aria-pressed="true"] { background: rgba(85, 194, 182, 0.14); border-color: var(--rb-accent); color: var(--rb-accent-bright); }
.btn-s { border-radius: 0; }
.st { border-radius: 0; height: 22px; font-size: .68rem; letter-spacing: .07em; text-transform: uppercase; font-weight: 700; }
.st-disponible { background: rgba(85, 194, 182, 0.14); color: var(--rb-accent-bright); }
.fine { color: var(--rb-faint); }
.x { border-radius: 0; color: var(--rb-text); }
.x:hover { background: var(--rb-surface-2); }

/* ---------------------------------------------------------------- portada: fachada y plantas */
#fac-fit { box-shadow: 0 40px 90px rgba(0, 0, 0, 0.6); }
.flabel b { font-weight: 600; font-size: 1.3rem; letter-spacing: -.01em; }
.flabel.on::before { background: var(--rb-accent-bright); }
.daynight { border-radius: 0; background: rgba(12, 13, 15, 0.6); border: 1px solid var(--rb-border-soft); padding: 2px; }
.daynight button { border-radius: 0; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
.daynight button[aria-pressed="true"] { background: var(--rb-accent); color: #fff; }
.hint-pill { border-radius: 0; background: rgba(12, 13, 15, 0.72); border: 1px solid var(--rb-border-soft); font-weight: 500; }
.stage[data-mode="planta"] .hint-pill { background: rgba(12, 13, 15, 0.78); }
.coach-msg { border-radius: 0; background: rgba(12, 13, 15, 0.72); border: 1px solid var(--rb-border-soft); }
.coach-msg::after { border-top-color: rgba(12, 13, 15, 0.72); }
.coach-msg.abajo::after { border-bottom-color: rgba(12, 13, 15, 0.72); }
.coach-msg b { font-weight: 600; font-stretch: 100%; }
.coach-tap i { border-color: var(--rb-accent-bright); background: rgba(85, 194, 182, 0.2); }
.to-fac { border-radius: 0; background: rgba(12, 13, 15, 0.78); border: 1px solid var(--rb-border-soft); color: var(--rb-text); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; box-shadow: none; }
.to-fac:hover { background: var(--rb-accent); border-color: var(--rb-accent); color: #fff; }
.elev { border-radius: 0; background: rgba(12, 13, 15, 0.7); border: 1px solid var(--rb-border-soft); }
.elev button { border-radius: 0; border: 1px solid var(--rb-border); background: var(--rb-bg-alt); color: var(--rb-dim); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.elev button:hover { background: var(--rb-surface-2); color: var(--rb-text); }
.elev button[aria-pressed="true"] { background: var(--rb-accent); border-color: var(--rb-accent); color: #fff; box-shadow: none; }
.north { color: #1b2428; }
.u-area.on { fill: rgba(85, 194, 182, 0.3); stroke: var(--rb-accent); }
.ubadge { border-radius: 0; background: var(--rb-bg-alt); color: var(--rb-text); border: 1px solid rgba(255, 255, 255, 0.12); font-weight: 600; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4); }
.ubadge::after { background: var(--rb-accent); border-color: var(--rb-bg-alt); }
.ubadge.st-reservado::after { background: var(--luz); }
.ubadge.st-vendido { background: rgba(12, 13, 15, 0.78); color: rgba(244, 241, 234, 0.5); }
.ubadge.st-vendido::after { background: var(--vend); border-color: var(--rb-bg-alt); }
.ubadge.on { border-color: var(--rb-accent-bright); }
.street { border-radius: 0; background: rgba(12, 13, 15, 0.86); }
.tip { border-radius: 0; background: var(--rb-surface); color: var(--rb-text); border: 1px solid var(--rb-border); box-shadow: 0 22px 50px rgba(0, 0, 0, 0.55); }
.tip h3 { font-weight: 600; letter-spacing: -.01em; color: var(--rb-text); }
.tip .go { color: var(--rb-accent-bright); text-transform: uppercase; letter-spacing: .08em; font-size: .7rem; }
.pop { border-radius: 0; background: var(--rb-surface); color: var(--rb-text); border: 1px solid var(--rb-border); box-shadow: 0 22px 60px rgba(0, 0, 0, 0.6); }
.pop h3 { font-weight: 600; letter-spacing: -.01em; color: var(--rb-text); }
.pop p { color: var(--rb-dim); }

/* ---------------------------------------------------------------- panel lateral */
.side { background: var(--rb-bg); border-left: 1px solid var(--rb-border); }
.side h1 { font-weight: 600; font-size: clamp(2.8rem, 3.6vw, 3.6rem); line-height: 1.02; letter-spacing: -.02em; color: var(--rb-text); }
.lead { color: var(--rb-dim); font-size: 1.05rem; line-height: 1.7; max-width: 38ch; }
.addr { color: var(--muted); }
.sec-h h2 { display: inline-flex; align-items: center; gap: .6rem; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .22em; color: var(--rb-accent); }
.sec-h h2::before { content: ''; width: 8px; height: 8px; background: var(--rb-accent); transform: rotate(45deg); flex: none; }
.facts li::before { width: 7px; height: 7px; background: var(--rb-accent); transform: rotate(45deg) translateY(-3px); }
.side-foot { border-top: 1px solid var(--rb-border-soft); }
.by { color: var(--muted); }
.back { border-radius: 0; color: var(--rb-accent-bright); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; }
.back:hover { background: rgba(85, 194, 182, 0.08); }

/* disponibilidad dibujada como el frente del edificio */
.e-frame { fill: var(--rb-surface); stroke: var(--rb-border); }
.e-wave { stroke: #4b4f55; }
.e-ground { stroke: var(--rb-faint); }
.e-street { fill: var(--muted); }
.e-row.on text.e-lbl, .e-row:hover text.e-lbl { fill: var(--rb-text); }
.e-row.on .e-band { fill: rgba(85, 194, 182, 0.08); }
.cell.st-disponible .c-bg { fill: var(--rb-accent); }
.cell.st-vendido .c-bg { fill: #25282c; stroke: #34373c; stroke-width: 1; }
.cell.st-reservado text { fill: #1a1305; }
.cell.st-vendido text { fill: #7e8288; }
.cell .c-ring { stroke: var(--rb-accent-bright); }
.legend .l-disponible { background: var(--rb-accent); }
.legend i { border-radius: 0; }
.legend .l-vendido { background: #25282c; box-shadow: inset 0 0 0 1px #3a3d43; }
.etip { border-radius: 0; background: var(--rb-surface-3); border: 1px solid var(--rb-border); box-shadow: 0 14px 30px rgba(0, 0, 0, 0.5); }

/* departamentos de un piso */
.urow { border-radius: 0; background: var(--rb-surface); border-color: var(--rb-border); transition: border-color .3s var(--rb-ease), transform .3s var(--rb-ease); }
.urow:hover, .urow.on { border-color: var(--rb-accent-dim); box-shadow: none; transform: translateY(-2px); }
.urow .lt { border-radius: 0; background: rgba(85, 194, 182, 0.14); color: var(--rb-accent-bright); font-weight: 600; }
.urow.st-vendido { background: transparent; }
.urow.st-vendido .lt { background: transparent; color: var(--muted); }
.floor-h p { color: var(--rb-dim); }

/* ---------------------------------------------------------------- página de un departamento */
.ustage { background: var(--rb-bg); }
.utabs { border-radius: 0; background: rgba(12, 13, 15, 0.78); border: 1px solid var(--rb-border-soft); padding: 2px; }
.utabs button { border-radius: 0; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
.utabs button[aria-selected="true"] { background: var(--rb-accent); color: #fff; }
.mk .frame { fill: rgba(244, 241, 234, 0.88); stroke: var(--rb-accent-dim); }
.mk:hover .frame, .mk.hot .frame { fill: var(--rb-accent-bright); }
.pnlm-container { background: var(--rb-bg) !important; }
.pnlm-load-box { background: rgba(12, 13, 15, 0.86) !important; border: 1px solid var(--rb-border-soft) !important; border-radius: 0 !important; }
.pnlm-lbar { border-color: var(--rb-accent) !important; }
.pnlm-lbar-fill { background: var(--rb-accent) !important; }
.tool { border-radius: 0; background: rgba(12, 13, 15, 0.78); border-color: var(--rb-border-soft); }
.tool:hover { background: var(--rb-accent); border-color: var(--rb-accent); }
.tool[aria-pressed="true"] { background: var(--rb-accent-bright); border-color: var(--rb-accent-bright); color: #0c0d0f; }
.rooms { border-radius: 0; background: rgba(12, 13, 15, 0.78); border: 1px solid var(--rb-border-soft); }
.room { border-radius: 0; font-weight: 600; }
.room img { border-radius: 0; }
.room[aria-current="true"] { background: var(--rb-accent); color: #fff; }
.mini { border-radius: 0; background: rgba(244, 241, 234, 0.97); border: 1px solid var(--rb-border); box-shadow: 0 14px 40px rgba(0, 0, 0, 0.5); }
.mini-h { color: #5a5650; }
.mini-h b { color: #1b1a18; }
.pt .dot[fill="#1b2428"] { fill: var(--rb-accent-dim); }
.pt .dot[fill="#e7a94f"] { fill: var(--rb-accent-bright); }
.mini-svg path[fill="rgba(231,169,79,0.45)"], #mini-svg path[fill="rgba(231,169,79,0.45)"] { fill: rgba(85, 194, 182, 0.42); stroke: var(--rb-accent-dim); }
.hint { border-radius: 0; background: rgba(12, 13, 15, 0.78); border: 1px solid var(--rb-border-soft); }
.pane-note { color: #3b3f3c; }
.rlabel { border-radius: 0; color: #1b2428; }
.hs { background: rgba(12, 13, 15, 0.86); }
.hs:hover, .hs:focus-visible { background: var(--rb-accent); }
.edge-l { border-radius: 0; }
.scale { color: #1b2428; }
.scale i { border-color: #1b2428; }
.plano-north { color: #1b2428; }
.u-kind { color: var(--muted); }
.u-name { font-weight: 600; font-size: clamp(3.2rem, 4.2vw, 4.2rem); letter-spacing: -.02em; color: var(--rb-text); }
.u-meta { color: var(--rb-dim); }
.u-sold { border-radius: 0; background: var(--rb-surface); border-color: var(--rb-border); }
.uchip { border-radius: 0; background: var(--rb-surface); border-color: var(--rb-border); transition: border-color .3s var(--rb-ease); }
.uchip:hover { border-color: var(--rb-accent-dim); }
.uchip[aria-current="true"] { background: var(--rb-accent); border-color: var(--rb-accent); color: #fff; }
.uchip[aria-current="true"] small { color: rgba(255, 255, 255, 0.82); }
.specs dd.big { font-weight: 600; font-size: 1.25rem; color: var(--rb-accent-bright); }
.u-acts-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.u-acts-row .btn { min-width: 0; padding: 0 6px; gap: 6px; font-size: .66rem; letter-spacing: .02em; }
.thumb { border-radius: 0; background: var(--rb-surface); }
.thumb[aria-current="true"] { box-shadow: 0 0 0 2px var(--rb-accent); }
.ubar { background: rgba(12, 13, 15, 0.97); border-top-color: var(--rb-border-soft); }

/* ---------------------------------------------------------------- buscador, calidades, galería */
.page-h h1 { font-weight: 600; letter-spacing: -.02em; color: var(--rb-text); }
.page-h p { color: var(--rb-dim); }
.chip { border-radius: 0; background: var(--rb-surface); border-color: var(--rb-border); font-size: .74rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--rb-dim); transition: all .25s var(--rb-ease); }
.chip:hover { border-color: var(--rb-accent-dim); color: var(--rb-text); }
.chip[aria-pressed="true"] { background: var(--rb-accent); border-color: var(--rb-accent); color: #fff; }
.switch { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--rb-dim); }
.sort select { border-radius: 0; background: var(--rb-surface); border-color: var(--rb-border); }
.card { border-radius: 0; background: var(--rb-surface); border-color: var(--rb-border); transition: border-color .3s var(--rb-ease), transform .3s var(--rb-ease); }
.card:hover { border-color: var(--rb-accent-dim); box-shadow: none; transform: translateY(-4px); }
.card-img .st, .cmp-col .card-img .st { background: rgba(12, 13, 15, 0.88); }
.card-img .st-vendido { color: #b4b8bd; }
.card h2 { font-weight: 600; font-size: 1.7rem; letter-spacing: -.01em; color: var(--rb-accent-bright); }
.card.st-vendido h2 { color: var(--muted); }
.card .see { color: var(--rb-accent-bright); text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; }
.cmp { border-radius: 0; background: var(--rb-surface); border-color: var(--rb-border); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.cmp:hover { border-color: var(--rb-accent-dim); }
.cmp input { accent-color: var(--rb-accent); }
.cmp:has(input:checked) { border-color: var(--rb-accent); }
.tray { border-radius: 0; background: var(--rb-surface-2); border: 1px solid var(--rb-border); box-shadow: 0 18px 44px rgba(0, 0, 0, 0.55); }
.tray-items button { border-radius: 0; font-weight: 600; }
.modal-card { border-radius: 0; background: var(--rb-bg-alt); border: 1px solid var(--rb-border); }
.modal-h h2 { font-weight: 600; letter-spacing: -.01em; color: var(--rb-text); }
.cmp-col { border-radius: 0; background: var(--rb-surface); border-color: var(--rb-border); }
.cmp-col h3 { font-weight: 600; color: var(--rb-accent-bright); }
.cmp-col dd.best::after { border-radius: 0; background: var(--verde-3); color: var(--rb-accent-bright); }
.mosaic figure { border-radius: 0; }
.mosaic figcaption { border-radius: 0; background: rgba(12, 13, 15, 0.82); color: var(--rb-text); }
.cal-lists h2 { font-weight: 600; font-size: 1.35rem; letter-spacing: -.01em; color: var(--rb-text); }
.cal-lists li::before { border-radius: 0; background: var(--rb-accent); }
.muestra { border-radius: 0; background: var(--rb-surface); border: 1px solid var(--rb-border); border-left: 3px solid var(--rb-accent); }
.muestra h2 { font-weight: 600; letter-spacing: -.01em; color: var(--rb-text); }
.gal figure { border-radius: 0; }

/* ---------------------------------------------------------------- pie del sitio */
.foot { display: block; margin: 0; padding: 5rem 0 2rem; background: var(--rb-bg-alt); border-top: 1px solid var(--rb-border-soft); color: var(--rb-dim); }
body[data-view="home"] .foot, body[data-view="unit"] .foot { display: none; }
.rb-footer-in { max-width: 1240px; margin: 0 auto; padding: 0 1.5rem; }
.rb-fgrid { display: grid; grid-template-columns: 1.5fr 1fr 1.4fr 1fr; gap: 2.5rem; }
.foot h6 { margin: 0 0 1.3rem; text-transform: uppercase; letter-spacing: .14em; font: 700 .75rem/1.4 var(--rb-body); color: var(--rb-faint); }
.foot a { color: var(--rb-dim); text-decoration: none; transition: color .25s var(--rb-ease); }
.foot a:hover { color: var(--rb-accent-bright); text-decoration: none; }
.foot ul { list-style: none; margin: 0; padding: 0; display: block; font-size: inherit; }
.foot li { margin-bottom: .7rem; font-size: .92rem; overflow-wrap: anywhere; }
.rb-flogo { height: 40px; width: auto; margin-bottom: 1.2rem; }
.rb-fclaim { max-width: 320px; margin: 0 0 .6rem; font-size: .95rem; line-height: 1.7; color: var(--rb-dim); }
.rb-fby { font-size: .85rem; color: var(--muted); }
.foot .fine { margin-top: 2.5rem; font-size: .78rem; color: var(--rb-faint); }
.rb-fbottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; margin-top: 1.4rem; padding-top: 1.6rem; border-top: 1px solid var(--rb-border-soft); font-size: .8rem; color: var(--rb-faint); }
.rb-fcredit { margin-top: 1rem; text-align: center; font-size: .78rem; color: var(--rb-faint); }

/* ---------------------------------------------------------------- visor de imágenes, QR, avisos, llegada */
.lb { grid-template-rows: minmax(0, 1fr) auto; }
.lb-stage { grid-template-rows: minmax(0, 1fr); grid-template-columns: minmax(0, 1fr); }
.lb-stage img { max-height: 100%; }
.lb-btn:hover { background: var(--rb-accent); border-color: var(--rb-accent); }
.qr-card img { background: #fff; padding: 10px; }
.toast { border-radius: 0; background: var(--rb-surface-3); border: 1px solid var(--rb-border); border-left: 3px solid var(--rb-accent); }
.intro-skip { border-radius: 0; font: 600 .72rem/1 var(--rb-body); letter-spacing: .12em; text-transform: uppercase; padding: .9rem 1.4rem; }

/* ---------------------------------------------------------------- celular y tablet */
@media (max-width: 900px) {
  .rb-top, .rb-sub, .rb-top-in, .rb-sub-in { display: contents; }
  .bar { display: flex; align-items: center; gap: 12px; justify-content: flex-start; padding: env(safe-area-inset-top, 0px) 12px 0;
    background: rgba(12, 13, 15, 0.94); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid var(--rb-border-soft); }
  .rb-brand img { height: 28px; }
  .wordmark b { font-size: 1.05rem; }
  .bar-wa { margin-left: auto; width: 40px; height: 40px; padding: 0; border-radius: 0; }
  .rb-burger { display: flex; flex-direction: column; justify-content: center; gap: 5px; flex: none; width: 42px; height: 40px; padding: 0 10px; background: transparent; border: 1px solid var(--rb-border-soft); cursor: pointer; }
  .rb-burger span { display: block; height: 2px; background: var(--rb-text); transition: transform .25s var(--rb-ease), opacity .2s; }
  .rb-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .rb-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .rb-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .rb-menu-wrap { position: static; }
  .rb-menu { display: none; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; background: var(--rb-bg);
    border-bottom: 1px solid var(--rb-border-soft); padding: .4rem 1.25rem 1rem; max-height: calc(100svh - var(--top) - 60px); overflow-y: auto; }
  .rb-menu.open { display: flex; }
  .rb-menu a { margin: 0; padding: .9rem 0; border-bottom: 1px solid var(--rb-border-soft); }
  .rb-menu li:last-child a { border-bottom: 0; }
  .rb-menu a::after { display: none; }

  .tabbar { background: rgba(12, 13, 15, 0.96); border-top: 1px solid var(--rb-border-soft); }
  .tabbar a { color: var(--rb-faint); text-transform: uppercase; letter-spacing: .06em; font-size: .6rem; font-weight: 600; }
  .tabbar a[aria-current="page"] { color: var(--rb-accent-bright); }
  .tabbar a[aria-current="page"] .i { color: var(--rb-accent-bright); }

  .side { border-left: 0; }
  .side h1 { font-size: clamp(2.8rem, 12vw, 3.6rem); }
  .flabel { border-radius: 0; background: rgba(12, 13, 15, 0.7); border: 1px solid var(--rb-border-soft); }
  .flabel b { font-size: 1.05rem; }
  .daynight button { height: 32px; }
  .elev { grid-auto-flow: column; padding: 2px; }
  .elev button[aria-pressed="true"] { box-shadow: none; }
  .ubadge { border-radius: 0; }
  .page { padding-bottom: 40px; }
  .foot { padding: 3.5rem 0 calc(60px + env(safe-area-inset-bottom, 0px) + 2rem); }
  .rb-fgrid { grid-template-columns: 1fr 1fr; }
  .modal-card { border-radius: 0; }
  .u-name { font-size: clamp(3rem, 14vw, 4rem); }
  .hs { box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.8), 0 4px 10px rgba(0, 0, 0, 0.35); }
}
@media (max-width: 560px) {
  .rb-fgrid { grid-template-columns: 1fr; gap: 2rem; }
  .rb-fbottom { flex-direction: column; align-items: center; text-align: center; }
}
