.legal {
background: var(--color-bg);
}
.legal-cabecera {
position: relative;
overflow: hidden;
padding-top: clamp(110px, 13vw, 170px);
padding-bottom: clamp(48px, 7vw, 80px);
background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
color: var(--color-text-on-dark);
}
.legal-cabecera::before,
.legal-cabecera::after {
content: '';
position: absolute;
border-radius: 50%;
background: rgba(255, 255, 255, 0.06);
pointer-events: none;
}
.legal-cabecera::before {
width: 420px;
height: 420px;
top: -180px;
right: -120px;
}
.legal-cabecera::after {
width: 260px;
height: 260px;
bottom: -160px;
left: -60px;
}
.legal-cabecera .container {
position: relative;
z-index: 1;
}
.legal-etiqueta {
display: inline-block;
margin-bottom: 14px;
padding: 6px 16px;
border: 1px solid rgba(255, 255, 255, 0.35);
border-radius: 999px;
font-family: 'Montserrat', sans-serif;
font-weight: 600;
font-size: clamp(0.7rem, 0.5vw + 0.55rem, 0.78rem);
letter-spacing: 0.08em;
text-transform: uppercase;
}
.legal-titulo {
max-width: 20ch;
margin: 0;
color: var(--color-text-on-dark);
font-size: clamp(1.7rem, 3.4vw + 0.8rem, 3rem);
line-height: 1.15;
}
.legal-fecha {
display: inline-flex;
align-items: center;
gap: 8px;
margin: 18px 0 0;
font-size: clamp(0.8rem, 0.5vw + 0.62rem, 0.9rem);
color: rgba(255, 255, 255, 0.85);
}
.legal-fecha svg {
width: 17px;
height: 17px;
flex-shrink: 0;
}
.legal-cuerpo {
display: grid;
grid-template-columns: minmax(0, 1fr) clamp(240px, 22vw, 300px);
gap: clamp(32px, 5vw, 72px);
align-items: start;
padding-block: clamp(40px, 6vw, 72px);
}
.legal-indice {
order: 2;
position: sticky;
top: 96px;
}
.legal-indice-caja {
padding: clamp(16px, 1.8vw, 22px);
border: 1px solid var(--color-border);
border-radius: 14px;
background: var(--color-bg-alt);
}
.legal-indice summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
font-family: 'Montserrat', sans-serif;
font-weight: 700;
font-size: 0.9rem;
color: var(--color-text-heading);
cursor: pointer;
list-style: none;
}
.legal-indice summary::-webkit-details-marker { display: none; }
.legal-indice summary svg {
width: 18px;
height: 18px;
flex-shrink: 0;
transition: transform 0.2s;
}
.legal-indice-caja[open] summary svg { transform: rotate(180deg); }
.legal-indice ol {
margin: 16px 0 0;
padding: 0;
list-style: none;
max-height: calc(100vh - 220px);
overflow-y: auto;
}
.legal-indice li + li { margin-top: 2px; }
.legal-indice a {
display: block;
padding: 7px 10px;
border-left: 2px solid transparent;
border-radius: 0 6px 6px 0;
font-size: 0.83rem;
line-height: 1.45;
color: var(--color-text);
transition: color 0.2s, background 0.2s, border-color 0.2s;
}
.legal-indice a:hover {
border-left-color: var(--color-primary);
background: var(--color-bg);
color: var(--color-primary);
}
.legal-texto {
order: 1;
max-width: 70ch;
font-size: clamp(0.92rem, 0.55vw + 0.78rem, 1rem);
line-height: 1.75;
}
.legal-texto > * + * { margin-top: 1.15em; }
.legal-texto h2 {
margin-top: 2.4em;
margin-bottom: 0.7em;
padding-top: 0.9em;
border-top: 1px solid var(--color-border);
font-size: clamp(1.15rem, 1.1vw + 0.85rem, 1.45rem);
color: var(--color-text-heading);
scroll-margin-top: 100px;
}
.legal-texto h2:first-child {
margin-top: 0;
padding-top: 0;
border-top: none;
}
.legal-texto h3 {
margin-top: 1.8em;
font-size: clamp(1rem, 0.7vw + 0.82rem, 1.12rem);
color: var(--color-text-heading);
scroll-margin-top: 100px;
}
.legal-texto ul,
.legal-texto ol {
padding-left: 1.3em;
list-style: revert;
}
.legal-texto li + li { margin-top: 0.5em; }
.legal-texto a {
color: var(--color-primary);
text-decoration: underline;
text-underline-offset: 2px;
}
.legal-texto a:hover { color: var(--color-primary-dark); }
.legal-texto strong { color: var(--color-text-heading); }
.legal-texto mark,
.legal-texto .legal-pendiente {
background: var(--color-accent-light);
padding: 1px 6px;
border-radius: 4px;
color: var(--color-secondary-dark);
font-weight: 600;
}
.legal-ayuda {
margin-top: clamp(40px, 5vw, 64px);
padding: clamp(24px, 3vw, 36px);
border-radius: 16px;
background: var(--color-primary-light);
}
.legal-ayuda h2 {
margin: 0 0 8px;
padding: 0;
border: none;
font-size: clamp(1.05rem, 0.9vw + 0.82rem, 1.25rem);
}
.legal-ayuda p {
margin: 0;
font-size: clamp(0.85rem, 0.5vw + 0.68rem, 0.93rem);
}
.legal-ayuda-botones {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 20px;
}
.legal-texto a.legal-btn {
display: inline-flex;
align-items: center;
padding: 11px 22px;
border: 1px solid var(--color-primary);
border-radius: 999px;
font-family: 'Montserrat', sans-serif;
font-weight: 600;
font-size: clamp(0.78rem, 0.5vw + 0.6rem, 0.86rem);
color: var(--color-primary);
text-decoration: none;
transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.legal-texto a.legal-btn:hover {
background: var(--color-bg);
text-decoration: none;
}
.legal-texto a.legal-btn--principal {
background: var(--color-primary);
color: var(--color-text-on-dark);
}
.legal-texto a.legal-btn--principal:hover {
background: var(--color-primary-dark);
border-color: var(--color-primary-dark);
color: var(--color-text-on-dark);
}
@media (max-width: 1024px) {
.legal-cuerpo {
grid-template-columns: 1fr;
gap: 28px;
}
.legal-indice {
order: 0;
position: static;
top: auto;
}
.legal-indice-caja[open] summary { margin-bottom: 4px; }
.legal-indice ol { max-height: 50vh; }
.legal-texto { max-width: none; }
}
@media print {
.legal-cabecera {
padding: 0 0 18px;
background: none;
color: #000;
}
.legal-cabecera::before,
.legal-cabecera::after { display: none; }
.legal-titulo { color: #000; }
.legal-etiqueta { display: none; }
.legal-fecha { color: #000; }
.legal-indice,
.legal-ayuda { display: none; }
.legal-cuerpo { display: block; padding: 0; }
.legal-texto { max-width: none; font-size: 11pt; }
.legal-texto h2 { page-break-after: avoid; }
}