/* =============================================
   legal.css
   Estilos para las páginas legales (privacidad.html, terminos.html).
   Se carga solo en esas páginas vía {% block extra_head %}.
   Reutiliza los tokens (:root), el nav y el footer de landing-course.css;
   aquí solo van los estilos específicos del contenido legal.
   ============================================= */

html{ scroll-behavior: smooth; }

/* ---- hero ---- */
.legal-hero{ padding: 48px 1rem; text-align: center; }
.legal-hero .container{ max-width: 820px; margin: 0 auto; padding: 0; }
.legal-hero h1{ font-size: 38px; line-height: 1.3; margin: 0 0 12px; }
.legal-hero p{ color: var(--clr-text-gray); margin: 0; }

/* ---- layout ---- */
.legal-layout{
    max-width: 1080px; margin: 0 auto; padding: 40px 1rem 80px;
    display: grid; grid-template-columns: 250px 1fr; gap: 56px; align-items: start;
}
.legal-toc{ position: sticky; top: 24px; }
.legal-toc__title{
    font-size: 13px; text-transform: uppercase; letter-spacing: .08em;
    color: var(--clr-text-gray-light); font-weight: 600; margin: 0 0 12px;
}
.legal-toc ol{ list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.legal-toc li{ counter-increment: toc; }
.legal-toc a{
    display: block; padding: 7px 10px; border-radius: 5px; font-size: 14px;
    color: var(--clr-text-gray); line-height: 1.4; border-left: 2px solid transparent;
}
.legal-toc a::before{ content: counter(toc) ". "; color: var(--clr-primary); font-weight: 600; }
.legal-toc a:hover{ background: var(--clr-bg-gray); color: var(--clr-text-dark); text-decoration: none; }

/* ---- content ---- */
.legal-content{ max-width: 760px; min-width: 0; }
.legal-content p{ color: var(--clr-text-gray); }
.legal-content section{ scroll-margin-top: 24px; padding-top: 8px; }
.legal-content section + section{ margin-top: 8px; }
.legal-content h2{
    font-size: 22px; line-height: 1.4; margin: 40px 0 14px; padding-top: 24px;
    border-top: 1px solid var(--clr-border); display: flex; align-items: baseline; gap: 12px;
}
.legal-content h2 .num{ color: var(--clr-primary); font-size: 16px; font-weight: 700; flex-shrink: 0; }
.legal-content h3{ font-size: 17px; margin: 26px 0 8px; color: var(--clr-text-dark); }
.legal-content ul{ padding-left: 22px; }
.legal-content li{ color: var(--clr-text-gray); margin-bottom: 6px; }
.legal-content strong{ color: var(--clr-text-dark); font-weight: 600; }

/* contact / DMCA table */
.legal-table{ width: 100%; border-collapse: collapse; margin: 16px 0; border: 1px solid var(--clr-border); border-radius: var(--radius); overflow: hidden; }
.legal-table th, .legal-table td{ text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--clr-border); font-size: 15px; vertical-align: top; }
.legal-table tr:last-child th, .legal-table tr:last-child td{ border-bottom: none; }
.legal-table th{ background: var(--clr-bg-gray); font-weight: 600; color: var(--clr-text-dark); width: 38%; }
.legal-table td{ color: var(--clr-text-gray); }

/* callouts */
.callout{ border-radius: var(--radius); padding: 16px 20px; margin: 22px 0; font-size: 15px; line-height: 1.7; }
.callout p{ margin: 0; }
.callout p + p{ margin-top: 8px; }
.callout--info{ background: var(--clr-bg-gray); border-left: 4px solid var(--clr-text-gray-light); }
.callout--warn{ background: var(--clr-cta-hover-light); border-left: 4px solid var(--clr-primary); }
.callout--warn strong{ color: var(--clr-primary); }

/* refund highlight (solo en términos) */
.refund-rule{ background: var(--clr-bg-gray); border-radius: var(--radius); padding: 20px 24px; margin: 20px 0; }
.refund-rule ol{ margin: 0; padding-left: 20px; }
.refund-rule li{ margin-bottom: 8px; }
.refund-rule li strong{ color: var(--clr-primary); }

.legal-disclaimer{ margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--clr-border); font-size: 13px; color: var(--clr-text-gray-light); font-style: italic; }

/* ---- responsive ---- */
@media (max-width: 900px){
    .legal-layout{ grid-template-columns: 1fr; gap: 0; }
    .legal-toc{ position: static; margin-bottom: 32px; padding: 16px; border: 1px solid var(--clr-border); border-radius: var(--radius); }
}
@media (max-width: 560px){
    .legal-hero h1{ font-size: 30px; }
}
