
.lg{
  --wine:#82244e;
  --wine-deep:#5e1636;
  --wine-ink:#3a1224;
  --wine-tint:#f4e8ee;
  --green:#2c895c;
  --ink:#241a1e;
  --muted:#8c7a81;
  --line:#e7dade;
  --line-strong:#d8c6ce;
  --radius:12px;

  font-family:'Raleway', system-ui, -apple-system, Segoe UI, sans-serif;
  color:var(--ink);
  line-height:1.55;
}

.lg *{ box-sizing:border-box; }

/* Contenedor: más aire arriba, compacto abajo */
.lg .page{
  max-width:1050px;
  padding-top:clamp(56px,5.5vw,100px);
  padding-bottom:clamp(40px,4vw,64px);
}

/* ---------- Encabezado editorial (lede) ---------- */
.lg-lede{
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:clamp(20px,3vw,48px);
  align-items:end;
  padding-bottom:clamp(18px,2vw,26px);
  border-bottom:1px solid var(--line);
  margin-top: 25px;
}
.lg-eyebrow{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:.66rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--wine); margin:0 0 12px;
}
.lg-title{
  font-family:'Apex', 'Raleway', sans-serif; font-weight:400;
  font-size:clamp(1.85rem,3vw,2.9rem); line-height:1.02; letter-spacing:-.005em;
  margin:0; color:var(--ink); text-wrap:balance;
}
.lg-title b{ color:var(--wine); font-weight:400; }
.lg-standfirst{
  margin:0; color:var(--muted); font-size:.89rem; max-width:42ch; line-height:1.6;
}
.lg-standfirst strong{ color:var(--ink); font-weight:600; }

/* ---------- Grilla de sociedades ---------- */
.lg-grid{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(14px,1.6vw,20px);
  margin-top:clamp(20px,2.2vw,30px);
}
.lg-card{
  position:relative; overflow:hidden;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:clamp(18px,2vw,26px);
  display:flex; flex-direction:column; gap:12px;
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.lg-card:hover{
  border-color:var(--line-strong); transform:translateY(-2px);
  box-shadow:0 1px 2px rgba(58,18,36,.05), 0 14px 32px -20px rgba(58,18,36,.4);
}
.lg-ghost{
  position:absolute; right:-2px; top:-10px;
  font-family:'Apex','Raleway',sans-serif; font-weight:700;
  font-size:5.5rem; line-height:1; letter-spacing:-.02em;
  color:var(--wine); opacity:.06; pointer-events:none; user-select:none;
}
.lg-soc{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted);
}
.lg-card h3{
  font-family:'Raleway',sans-serif; font-weight:700;
  font-size:clamp(1.15rem,1.5vw,1.4rem); line-height:1.12; letter-spacing:-.01em;
  margin:0; color:var(--ink);
}
.lg-card h3 span{ display:block; color:var(--wine); }
.lg-meta{ display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.lg-chip{
  font-size:.68rem; font-weight:600; letter-spacing:.02em;
  color:var(--wine-ink); background:var(--wine-tint);
  border:1px solid var(--line); padding:4px 9px; border-radius:999px;
}
.lg-rule{ height:1px; background:var(--line); }
.lg-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; }
.lg-foot small{ color:var(--muted); font-size:.74rem; }

/* ---------- Botones ---------- */
.lg-btn{
  font-family:'Raleway',sans-serif; font-weight:700; font-size:.84rem; letter-spacing:.01em;
  cursor:pointer; border-radius:9px; padding:10px 18px; border:1px solid transparent;
  display:inline-flex; align-items:center; gap:8px; text-decoration:none;
  transition:background .18s, border-color .18s, color .18s, transform .12s;
}
.lg-btn svg{ width:15px; height:15px; }
.lg-btn:active{ transform:translateY(1px); }
.lg-btn:focus-visible{ outline:2px solid var(--wine); outline-offset:2px; }
.lg-btn--primary{ background:var(--wine); color:#fff; }
.lg-btn--primary:hover{ background:var(--wine-deep); color:#fff; }
.lg-btn--full{ width:100%; justify-content:center; padding:12px; }
.lg-btn:disabled{ opacity:.45; cursor:not-allowed; }
.lg-btn--primary:disabled:hover{ background:var(--wine); }

/* ---------- Reja de acceso ---------- */
.lg-gate{
  max-width:440px; margin:0 auto; text-align:center;
  padding:clamp(20px,3vw,44px) clamp(18px,3vw,32px);
}
.lg-lock{
  width:50px; height:50px; border-radius:14px; display:grid; place-items:center;
  margin:0 auto 18px; background:var(--wine-tint); border:1px solid var(--line); color:var(--wine);
}
.lg-lock svg{ width:23px; height:23px; }
.lg-gate h2{
  font-family:'Apex','Raleway',sans-serif; font-weight:400;
  font-size:clamp(1.5rem,2.4vw,1.95rem); margin:0 0 8px; color:var(--ink); letter-spacing:-.005em;
}
.lg-gate p{ margin:0 0 22px; color:var(--muted); font-size:.9rem; }
.lg-field{ display:flex; flex-direction:column; gap:7px; text-align:left; margin-bottom:14px; }
.lg-field label{
  font-family:'Raleway',sans-serif; font-size:.66rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
}
.lg-field input{
  font-family:inherit; font-size:.95rem; color:var(--ink);
  padding:12px 14px; border-radius:10px; background:#fff; border:1px solid var(--line-strong);
  transition:border-color .18s, box-shadow .18s;
}
.lg-field input:focus{ outline:none; border-color:var(--wine); box-shadow:0 0 0 4px var(--wine-tint); }
.lg-err{ color:#c0392b; font-size:.82rem; margin:11px 0 0; min-height:1.1em; }

/* ---------- Dropzone de subida ---------- */
.lg-drop{
  border:1.5px dashed var(--line-strong); border-radius:11px; padding:13px;
  display:flex; flex-direction:column; gap:4px; align-items:center; text-align:center;
  background:var(--wine-tint); cursor:pointer; transition:border-color .18s, color .18s;
}
.lg-drop:hover{ border-color:var(--wine); color:var(--wine); }
.lg-drop svg{ width:20px; height:20px; color:var(--wine); }
.lg-drop b{ font-family:'Raleway',sans-serif; font-weight:700; font-size:.86rem; }
.lg-drop small{ color:var(--muted); font-size:.74rem; }
.lg-files{ display:flex; flex-wrap:wrap; gap:6px; }
.lg-file{
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(44,137,92,.13); color:var(--green);
  border:1px solid rgba(44,137,92,.35); padding:4px 10px; border-radius:999px;
  font-size:.75rem; font-weight:600;
}

/* ---------- Banner de resultado ---------- */
.lg-banner{
  display:flex; align-items:center; gap:10px; margin:0 0 20px;
  padding:12px 16px; border-radius:11px; font-weight:600; font-size:.88rem;
  border:1px solid transparent;
}
.lg-banner svg{ width:18px; height:18px; flex:none; }
.lg-banner--ok{ background:rgba(44,137,92,.12); color:var(--green); border-color:rgba(44,137,92,.3); }
.lg-banner--err{ background:var(--wine-tint); color:var(--wine); border-color:var(--line-strong); }

/* ---------- Responsive ---------- */
@media (max-width:760px){
  .lg .page{ padding-top:clamp(34px,8vw,52px); }
  .lg-lede{ grid-template-columns:1fr; gap:14px; align-items:start; }
  .lg-grid{ grid-template-columns:1fr; }
  .lg-title{ font-size:clamp(1.7rem,8vw,2.2rem); }
}
