/* =========================================================
   /css/privado.css — Estilo común zona /novios
   - Cards grandes (index)
   - Botones + layout base
   - Modal PIN (para mesas/gestion)
========================================================= */

:root{
  /* Fondo general (oro rosa suave) */
  --bgA:#f6f0ef;
  --bgB:#efe7e6;
  --bgC:#e9f0ec;

  /* Cards */
  --card: rgba(255,255,255,.68);
  --border: rgba(40,20,25,.10);

  /* Texto */
  --text:#1d1b1b;
  --muted: rgba(29,27,27,.62);

  /* Sombras / radios */
  --shadow: 0 18px 45px rgba(0,0,0,.10);
  --shadow2: 0 10px 25px rgba(0,0,0,.08);
  --radius: 18px;
  --radius2: 14px;

  /* Acento oro rosa */
  --accent:#D8A3A9;
  --accent2:#F1C7C8;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }

body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 700px at 12% 12%, rgba(216,163,169,.28), transparent 60%),
    radial-gradient(1100px 650px at 88% 16%, rgba(241,199,200,.22), transparent 60%),
    radial-gradient(1200px 700px at 60% 90%, rgba(200,225,210,.20), transparent 60%),
    linear-gradient(120deg, var(--bgA), var(--bgB));
}

a{ color:inherit; }

.wrap{ max-width:1100px; margin:0 auto; padding:18px; }

.tiny{ font-size:12.5px; line-height:1.45; }
.nv-muted{ color:var(--muted); }

.nv-row{ display:flex; gap:10px; align-items:center; }
.nv-row-between{ justify-content:space-between; }

.reco-item{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  backdrop-filter: blur(10px);
}

/* -------------------------
   Botones
------------------------- */
.btn{
  border: 1px solid rgba(30,18,20,.14);
  background: rgba(255,255,255,.70);
  color: var(--text);
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 850;
  cursor: pointer;
  text-decoration: none;
  display:inline-flex;
  align-items:center;
  gap:8px;
  box-shadow: 0 8px 18px rgba(0,0,0,.06);
}

.btn:hover{ filter: brightness(0.992); }

.btn.primary{
  background: linear-gradient(135deg, var(--accent2), var(--accent));
  border: 1px solid rgba(0,0,0,0.08);
  color: #1c1b1b;
}

.btn.ghost{
  background: rgba(255,255,255,.62);
}

select, input{
  width:100%;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(30,18,20,.14);
  background: rgba(255,255,255,.82);
  outline: none;
}

select:focus, input:focus{
  box-shadow: 0 0 0 4px rgba(216,163,169,.18);
}

/* -------------------------
   Hero (index)
------------------------- */
.hero{
  padding: 18px;
  margin-bottom: 14px;
}

.hero-title{
  font-weight: 950;
  font-size: 22px;
  letter-spacing: -.2px;
}

.hero-sub{ margin-top: 6px; }

/* -------------------------
   Cards grandes (index)
------------------------- */
.modules{
  display:grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

@media (min-width: 900px){
  .modules{ grid-template-columns: 1fr 1fr; }
}

.mod-card{
  position: relative;
  overflow: hidden;
  padding: 18px;
  text-decoration:none;
  min-height: 230px;
  box-shadow: var(--shadow2);
}

/* ✅ ESTE ES EL PUNTO CLAVE:
   - ponemos la imagen como fondo
   - y un gradiente suave SOLO debajo del texto (izquierda)
   - sin blanquear todo
*/
.mod-card::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    /* velo de lectura a la izquierda */
    linear-gradient(90deg,
      rgba(255,255,255,.78) 0%,
      rgba(255,255,255,.58) 42%,
      rgba(255,255,255,.22) 70%,
      rgba(255,255,255,.06) 100%
    ),
    var(--art, none);
  background-repeat: no-repeat, no-repeat;
  background-size: cover, cover;              /* ✅ tu PNG 1200x800 se ajusta completo */
  background-position: center, center;        /* ✅ centrado (no desplazado) */
  opacity: 1;                                  /* ✅ ya no usamos opacity global */
  pointer-events:none;
}

/* un toque de brillo fino */
.mod-card::after{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(900px 420px at 30% 10%, rgba(255,255,255,.35), transparent 60%);
  pointer-events:none;
}

.mod-card > *{ position:relative; }

.mod-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}

.mod-kicker{
  display:inline-flex;
  gap:8px;
  align-items:center;
  font-weight: 900;
  font-size: 13px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(30,18,20,.10);
}

.mod-title{
  font-weight: 950;
  font-size: 20px;
  margin-top: 10px;
  line-height: 1.1;
  text-shadow: 0 1px 0 rgba(255,255,255,.55); /* ✅ legibilidad sin “apagar” imagen */
}

.mod-desc{
  margin-top: 10px;
  color: rgba(29,27,27,.72);
  max-width: 52ch;
}

.mod-actions{
  margin-top: 14px;
  display:flex;
  gap:10px;
  flex-wrap: wrap;
}

.mod-foot{
  position:absolute;
  right: 14px;
  bottom: 14px;
  font-size: 12px;
  color: rgba(29,27,27,.60);
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(30,18,20,.10);
  padding: 6px 10px;
  border-radius: 999px;
}

/* -------------------------
   Modal PIN (mesas/gestion)
------------------------- */
.modal{
  position:fixed;
  inset:0;
  display:none;
  place-items:center;
  padding:18px;
  background: rgba(0,0,0,.35);
  z-index: 9999;
}

.modal.is-on{ display:grid; }

.modal-card{
  width: min(520px, 100%);
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 20px;
  box-shadow: 0 30px 80px rgba(0,0,0,.18);
  padding: 18px;
}

.modal-card h2{
  margin: 0;
  font-size: 18px;
  font-weight: 950;
}
/* ===========================
   PREMIUM THEME (oro-rosa)
   Añadir al FINAL de privado.css
   =========================== */

:root{
  --nv-rose-50:  #fff5f8;
  --nv-rose-100: #ffe7ef;
  --nv-rose-200: #f6c7d7;
  --nv-rose-300: #e8b8c6;

  --nv-gold-100: #f7edd8;
  --nv-gold-200: #edd7ab;

  --nv-ink: rgba(44,22,30,.92);
  --nv-muted: rgba(44,22,30,.62);

  --nv-card: rgba(255,255,255,.78);
  --nv-border: rgba(184,110,136,.22);

  --nv-shadow: 0 18px 55px rgba(0,0,0,.08);
  --nv-shadow-hi: 0 26px 80px rgba(0,0,0,.12);

  --nv-radius: 22px;
  --nv-radius-sm: 14px;
}

/* Fondo premium sutil en zona privada (sin afectar a la web pública) */
body{
  background:
    radial-gradient(1100px 520px at 10% -10%, rgba(255,245,248,.95), rgba(255,245,248,0) 70%),
    radial-gradient(900px 420px at 100% 0%, rgba(237,215,171,.45), rgba(237,215,171,0) 60%),
    linear-gradient(180deg, rgba(255,255,255,1), rgba(255,245,248,.55));
  color: var(--nv-ink);
}

/* Tipografía / lectura más “premium” */
.nvh-title, .g-panel-title, .g-hero-title{
  letter-spacing: .2px;
}

/* Cards base */
.card, .reco-item, .g-card{
  border-radius: var(--nv-radius);
  border: 1px solid var(--nv-border);
  background: var(--nv-card);
  box-shadow: var(--nv-shadow);
}

/* “Sheen” (brillo) sutil */
.card::before,
.reco-item::before,
.g-card::before{
  content:"";
  position:absolute;
  inset:-1px;
  pointer-events:none;
  border-radius: inherit;
  background:
    radial-gradient(800px 260px at 20% 0%, rgba(255,255,255,.75), rgba(255,255,255,0) 60%);
  opacity:.55;
}

/* Ajuste para elementos que ya son position:relative en tu CSS;
   si no lo son, evitamos romper */
.card, .reco-item, .g-card{ position: relative; overflow: hidden; }

/* Botones ghost con borde premium (sin romper el primary que ya tengas) */
.btn.ghost{
  border: 1px solid rgba(184,110,136,.28) !important;
  background: rgba(255,255,255,.55) !important;
  color: rgba(88,38,55,.96) !important;
}

.tiny.nv-muted, .nv-muted, .tiny{
  color: var(--nv-muted);
}
