/* Estilos compartidos por las páginas legales de OPSLance (privacidad, términos). */

:root {
  --vino: #471215;
  --vino-deep: #2E0B0D;
  --vino-soft: #6B2228;
  --crema: #EBE1CD;
  --crema-soft: #F7F2E8;
  --texto: #1B1816;
  --texto-2: #463F3B;
  --texto-3: #797069;
  --linea: #E0D2C9;
  --fondo: #FDF9F5;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background: var(--fondo);
  color: var(--texto);
  font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

.head-font { font-family: 'League Spartan', 'Helvetica Neue', Arial, sans-serif; }

/* ---------- Barra superior ---------- */
.barra {
  position: sticky; top: 0; z-index: 50;
  background: rgba(46, 11, 13, .94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(235, 225, 205, .14);
}
.barra-inner {
  max-width: 68rem; margin: 0 auto;
  padding: .9rem clamp(1rem, 4vw, 2rem);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.marca { display: flex; align-items: center; gap: .6rem; text-decoration: none; }
.marca img { height: 1.7rem; width: auto; }
.marca span {
  font-family: 'League Spartan', sans-serif;
  letter-spacing: .13em; color: var(--crema);
  font-size: 1.05rem; font-weight: 700; white-space: nowrap;
}
.marca span i { font-style: normal; opacity: .6; font-weight: 400; }
.volver {
  color: rgba(235, 225, 205, .78); text-decoration: none;
  font-size: .82rem; font-weight: 600; white-space: nowrap;
  border: 1px solid rgba(235, 225, 205, .22);
  padding: .45rem 1rem; border-radius: 999px;
  transition: background .2s, color .2s;
}
.volver:hover { background: var(--crema); color: var(--vino-deep); }

/* ---------- Encabezado ---------- */
.hero {
  background: var(--vino-deep);
  color: var(--crema-soft);
  padding: clamp(3rem, 8vw, 5rem) clamp(1rem, 4vw, 2rem) clamp(2.4rem, 5vw, 3.2rem);
  position: relative; overflow: hidden;
}
.hero::after {
  content: ''; position: absolute;
  width: 28rem; height: 28rem; border-radius: 50%;
  background: var(--vino-soft); filter: blur(110px); opacity: .5;
  top: -10rem; right: -8rem; pointer-events: none;
}
.hero-inner { max-width: 68rem; margin: 0 auto; position: relative; }
.hero .kicker {
  font-family: 'League Spartan', sans-serif;
  font-size: .74rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--crema); opacity: .75; margin-bottom: .9rem;
}
.hero h1 {
  font-family: 'League Spartan', sans-serif;
  font-size: clamp(2rem, 6vw, 3rem); font-weight: 900;
  line-height: 1.05; letter-spacing: -.02em; color: #fff;
  text-wrap: balance;
}
.hero .fecha {
  margin-top: 1.2rem; font-size: .88rem;
  color: rgba(235, 225, 205, .7);
}

/* ---------- Contenido ---------- */
main { max-width: 46rem; margin: 0 auto; padding: clamp(2.5rem, 6vw, 4rem) clamp(1rem, 4vw, 2rem) 4rem; }

.intro {
  font-size: 1.05rem; color: var(--texto-2);
  border-left: 3px solid var(--vino); padding-left: 1.2rem;
  margin-bottom: 3rem;
}

section.bloque { margin-bottom: 2.8rem; scroll-margin-top: 5rem; }

section.bloque h2 {
  font-family: 'League Spartan', sans-serif;
  font-size: clamp(1.2rem, 3.2vw, 1.45rem); font-weight: 700;
  color: var(--vino); letter-spacing: -.01em;
  margin-bottom: .9rem; text-wrap: balance;
  display: flex; gap: .7rem; align-items: baseline;
}
section.bloque h2 .num {
  font-size: .78rem; font-weight: 600; color: var(--texto-3);
  font-variant-numeric: tabular-nums; flex-shrink: 0;
}
section.bloque h3 {
  font-family: 'League Spartan', sans-serif;
  font-size: 1rem; font-weight: 700; color: var(--texto);
  margin: 1.4rem 0 .4rem;
}
section.bloque p { color: var(--texto-2); margin-bottom: .9rem; }
section.bloque p:last-child { margin-bottom: 0; }

ul { margin: .6rem 0 1rem 0; padding-left: 1.3rem; color: var(--texto-2); }
li { margin-bottom: .45rem; }
li strong { color: var(--texto); }

.tabla-wrap { overflow-x: auto; margin: 1rem 0 1.2rem; }
table { border-collapse: collapse; width: 100%; font-size: .9rem; min-width: 30rem; }
th, td { text-align: left; padding: .7rem .8rem; border-bottom: 1px solid var(--linea); vertical-align: top; }
th {
  font-family: 'League Spartan', sans-serif;
  font-size: .72rem; letter-spacing: .09em; text-transform: uppercase;
  color: var(--texto-3); border-bottom: 2px solid var(--linea);
}
td { color: var(--texto-2); }
td strong { color: var(--texto); font-weight: 600; }

.destacado {
  background: #fff; border: 1px solid var(--linea);
  border-left: 4px solid var(--vino);
  border-radius: 4px; padding: 1.2rem 1.4rem; margin: 1.4rem 0;
}
.destacado p { margin-bottom: .5rem; }
.destacado p:last-child { margin-bottom: 0; }

a.enlace { color: var(--vino); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
a.enlace:hover { color: var(--vino-soft); }
a:focus-visible, button:focus-visible { outline: 2px solid var(--vino); outline-offset: 3px; }

/* ---------- Placeholders pendientes ---------- */
.pendiente {
  background: #FFF3C4; color: #6B4A00;
  border: 1px dashed #B98900; border-radius: 3px;
  padding: .05em .4em; font-weight: 700; font-size: .92em;
  white-space: normal;
}
.aviso-borrador {
  background: #FFF3C4; border: 2px dashed #B98900; color: #6B4A00;
  border-radius: 6px; padding: 1.1rem 1.3rem; margin-bottom: 2.5rem;
  font-size: .92rem;
}
.aviso-borrador strong { display: block; margin-bottom: .3rem; font-size: 1rem; }

/* ---------- Pie ---------- */
footer {
  background: var(--vino-deep); color: rgba(235, 225, 205, .72);
  padding: 2.5rem clamp(1rem, 4vw, 2rem);
  font-size: .82rem;
}
.pie-inner {
  max-width: 68rem; margin: 0 auto;
  display: flex; flex-wrap: wrap; gap: 1rem 2rem;
  justify-content: space-between; align-items: center;
}
.pie-enlaces { display: flex; flex-wrap: wrap; gap: 1.2rem; }
footer a { color: rgba(235, 225, 205, .72); text-decoration: none; }
footer a:hover { color: var(--crema); }
