/* ==========================================================
   TOITOITOI · Páginas legales (términos, privacidad, cookies)
   Se carga DESPUÉS de home_style.css y reutiliza su footer.
   Ajusta la paleta aquí para que coincida con home_style.css.
   ========================================================== */
:root {
  --tf-dark: #000000;        /* fondo oscuro (cabecera / bloque final) */
  --tf-dark-2: #1a1a1a;
  --tf-accent: #ff3b5c;      /* color de acento: enlaces, líneas, iconos */
  --tf-accent-soft: #ffe8ec;
  --tf-text: #2b2f3a;
  --tf-muted: #6b7185;
  --tf-bg: #f5f5f5;
  --tf-card: #ffffff;
  --tf-border: #e6e6e6;
}

body.tf-legal { background: var(--tf-bg); color: var(--tf-text); scroll-behavior: smooth; }
html { scroll-behavior: smooth; }

/* ---------- Cabecera ---------- */
.tf-legal-hero {
  position: relative; color: #fff; overflow: hidden;
  background: radial-gradient(1200px 400px at 80% -10%, rgba(255,59,92,.35), transparent 60%),
              linear-gradient(135deg, var(--tf-dark) 0%, var(--tf-dark-2) 100%);
  padding-bottom: 4.5rem;
}
.tf-legal-hero .tf-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.15); pointer-events: none; }
.tf-legal-nav { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; padding-top: 1.5rem; padding-bottom: 1.5rem; }
.tf-legal-brand img { height: 44px; width: auto; display: block; }
.tf-legal-back { color: #fff; text-decoration: none; font-size: .95rem; padding: .5rem 1rem; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; transition: .2s; }
.tf-legal-back:hover { background: #fff; color: var(--tf-dark); }
.tf-legal-title { position: relative; z-index: 2; padding-top: 2.5rem; }
.tf-legal-icon { font-size: 2rem; width: 72px; height: 72px; line-height: 72px; border-radius: 50%; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); margin-bottom: 1.2rem; }
.tf-legal-title h1 { font-weight: 700; font-size: clamp(1.9rem, 4vw, 3rem); margin-bottom: .6rem; }
.tf-legal-title p { color: rgba(255,255,255,.8); max-width: 640px; margin: 0 auto; font-size: 1.1rem; }
.tf-legal-title .legal-updated { margin-top: 1.2rem; font-size: .9rem; color: rgba(255,255,255,.65); }

/* ---------- Contenido ---------- */
.tf-legal-main { margin-top: -2.5rem; position: relative; z-index: 3; }
.legal-layout { display: grid; gap: 2rem; align-items: start; }
.legal-layout.has-toc { grid-template-columns: 270px minmax(0, 1fr); }
.legal-layout.no-toc { grid-template-columns: minmax(0, 860px); justify-content: center; }
.legal-content { background: var(--tf-card); border-radius: 18px; padding: clamp(1.5rem, 4vw, 3.2rem); box-shadow: 0 10px 40px rgba(0,0,0,.08); line-height: 1.75; font-size: 1.02rem; }
.legal-section { padding: 1.4rem 0; border-top: 1px solid var(--tf-border); scroll-margin-top: 1.5rem; }
.legal-section:first-of-type { border-top: 0; padding-top: 0; }
.legal-content > p:first-child { margin-top: 0; }
.legal-content h2 { font-size: 1.3rem; font-weight: 700; color: var(--tf-dark); margin: 0 0 1rem; padding-left: .9rem; border-left: 4px solid var(--tf-accent); line-height: 1.35; }
.legal-content h3 { font-size: 1.1rem; font-weight: 600; color: var(--tf-dark-2); margin: 1.6rem 0 .7rem; }
.legal-content p { margin-bottom: 1rem; text-align: justify; }
.legal-content ul { padding-left: 1.2rem; margin-bottom: 1.2rem; }
.legal-content li { margin-bottom: .5rem; padding-left: .2rem; }
.legal-content li::marker { color: var(--tf-accent); }
.legal-content a { color: var(--tf-accent); text-decoration: underline; text-underline-offset: 3px; word-break: break-word; }
.legal-content a:hover { color: var(--tf-dark); }
.legal-content strong { color: var(--tf-dark); }
.legal-content .clausula { color: var(--tf-accent); margin-right: .25rem; }

/* ---------- Índice lateral ---------- */
.legal-toc { position: sticky; top: 1.5rem; align-self: start; }
.legal-toc-box { background: var(--tf-card); border-radius: 16px; padding: 1.3rem; box-shadow: 0 10px 30px rgba(0,0,0,.07); max-height: calc(100vh - 3rem); overflow-y: auto; }
.legal-toc-box h5 { font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--tf-muted); margin-bottom: .8rem; }
.legal-toc nav { display: flex; flex-direction: column; gap: .15rem; }
.legal-toc a { color: var(--tf-text); text-decoration: none; font-size: .88rem; line-height: 1.35; padding: .45rem .7rem; border-radius: 8px; transition: .15s; }
.legal-toc a:hover { background: var(--tf-accent-soft); color: var(--tf-accent); }

/* ---------- Otros documentos ---------- */
.tf-legal-others { background: linear-gradient(135deg, var(--tf-dark) 0%, var(--tf-dark-2) 100%); }
.legal-card { display: flex; gap: 1rem; align-items: center; height: 100%; padding: 1.4rem 1.5rem; border-radius: 16px; text-decoration: none; color: #fff; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.15); transition: .2s; }
.legal-card:hover { background: rgba(255,255,255,.14); transform: translateY(-3px); color: #fff; }
.legal-card i { font-size: 1.6rem; color: var(--tf-accent); flex: 0 0 auto; }
.legal-card h4 { font-size: 1.1rem; margin: 0 0 .2rem; }
.legal-card p { margin: 0; font-size: .9rem; color: rgba(255,255,255,.7); }

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
  .legal-layout.has-toc { grid-template-columns: minmax(0, 1fr); }
  .legal-toc { position: static; }
  .legal-toc-box { max-height: none; }
  .legal-toc nav { flex-direction: row; flex-wrap: wrap; gap: .3rem; }
  .legal-toc a { background: var(--tf-accent-soft); }
  .legal-content p { text-align: left; }
}
@media print {
  .tf-legal-nav, .legal-toc, .tf-legal-others, footer { display: none !important; }
  .tf-legal-hero { background: none; color: #000; padding-bottom: 1rem; }
  .tf-legal-title p, .legal-updated { color: #333 !important; }
  .legal-content { box-shadow: none; padding: 0; }
}
