/* Isadora — documentos legales, contacto y 404.
   Tokens y clases comunes vienen de site.css; aquí solo lo propio de estas páginas. */

/* ---------- cabecera del documento ---------- */
.doc-hero{position:relative;overflow:hidden;padding:clamp(56px,8vw,112px) 0 clamp(32px,5vw,56px);border-bottom:1px solid var(--line)}
.doc-hero::before{content:"";position:absolute;top:-40%;left:-10%;width:60%;height:180%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(242,181,68,.10),transparent 70%)}
.doc-hero .wrap{position:relative}
.doc-hero h1{font-size:clamp(2.3rem,5.4vw,4.4rem);max-width:18ch}
.doc-meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin:1.2rem 0 0;padding:0;list-style:none;font:500 .8rem/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.doc-meta li{display:flex;align-items:center;gap:8px}
.doc-meta li+li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.7}
.doc-hero .lead{margin-top:1.2rem}

/* ---------- documento: índice + columna de lectura ---------- */
.doc{display:grid;grid-template-columns:minmax(0,70ch);justify-content:center;gap:clamp(32px,6vw,96px);padding-block:clamp(40px,6vw,80px) clamp(64px,9vw,120px)}

.doc-body{font-size:1.03rem;line-height:1.72;min-width:0}
.doc-body section{padding-top:clamp(28px,4vw,44px);margin-top:clamp(28px,4vw,44px);border-top:1px solid var(--line)}
.doc-body section:first-of-type{border-top:0;margin-top:0;padding-top:0}
.doc-body h2{display:flex;align-items:baseline;gap:.6em;font-size:clamp(1.55rem,2.6vw,2.1rem);scroll-margin-top:96px;margin-bottom:.7em}
.doc-body h2:target,.doc-body h3:target{color:var(--accent)}
.doc-n{flex:none;font:500 .82rem/1 var(--f-mono);letter-spacing:.08em;color:var(--accent);border:1px solid rgba(242,181,68,.4);border-radius:var(--r);padding:.35em .5em;transform:translateY(-.25em)}
.doc-body h3{font:600 1.05rem/1.35 var(--f-body);letter-spacing:0;margin:1.6em 0 .5em;color:var(--ink);scroll-margin-top:96px}
.doc-body p,.doc-body li{color:var(--ink)}
.doc-body strong{font-weight:700}
.doc-body ul,.doc-body ol{margin:0 0 1.1em;padding-left:1.3em}
.doc-body li{margin-bottom:.45em;padding-left:.2em}
.doc-body ul li::marker{color:var(--accent)}
.doc-body ol li::marker{color:var(--accent);font:500 .9em var(--f-mono)}
.doc-body a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent)}
.doc-body a:hover{color:var(--accent)}
.doc-body code{font:500 .9em var(--f-mono);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.08em .35em;overflow-wrap:anywhere}
.doc-note{color:var(--muted);font-size:.95rem}

/* resumen en claro al principio del documento */
.doc-brief{margin:0 0 clamp(32px,5vw,48px);padding:0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.doc-brief>div{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.doc-brief>div:first-child{border-top:0}
.doc-brief dt{font:500 .76rem/1.6 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.doc-brief dd{margin:0}

/* la casilla del checkout, reproducida tal cual */
.doc-consent{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;margin:1.2em 0 1.4em;padding:18px 20px;border-left:2px solid var(--accent);background:var(--bg-2);border-radius:0 var(--r) var(--r) 0}
.doc-consent::before{content:"";width:20px;height:20px;margin-top:.25em;border:1.5px solid var(--accent);border-radius:3px;
  background:linear-gradient(45deg,transparent 44%,var(--accent) 44% 56%,transparent 56%) no-repeat 3px 8px/6px 6px,linear-gradient(-45deg,transparent 44%,var(--accent) 44% 56%,transparent 56%) no-repeat 6px 3px/10px 10px}
.doc-consent p{margin:0;font-style:italic}

/* datos de la empresa, en prosa con rótulos */
.doc-card-free{margin:0 0 1em;padding:0;list-style:none}
.doc-card-free li{display:grid;grid-template-columns:minmax(0,9.5rem) minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px dotted var(--line-2);margin:0}
.doc-card-free li>span:first-child{font:500 .76rem/1.8 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* tablas: solo cuando el contenido es tabular */
.doc-table{overflow-x:auto;margin:1.2em 0 1.6em;border:1px solid var(--line);border-radius:var(--r)}
.doc-table:focus-visible{outline-offset:2px}
.doc-table table{width:100%;min-width:560px;border-collapse:collapse;font-size:.93rem;line-height:1.5}
.doc-table caption{caption-side:top;text-align:left;padding:12px 14px;font:500 .76rem/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.doc-table th,.doc-table td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid var(--line)}
.doc-table thead th{font:500 .74rem/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:var(--bg-2)}
.doc-table tbody tr:last-child>*{border-bottom:0}
.doc-table tbody th{font-weight:600}

/* ---------- contacto ---------- */
.contact{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(32px,6vw,88px);padding-block:clamp(40px,6vw,80px)}
.contact-form{scroll-margin-top:96px}
.contact-form h2,.taquilla h2,.before h2{font-size:clamp(1.6rem,2.8vw,2.3rem)}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 20px;margin-top:24px}
.form-grid .full{grid-column:1/-1}
.form-grid textarea{min-height:180px;resize:vertical}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.form-foot p{margin:0;color:var(--muted);font-size:.88rem;max-width:44ch}
.c-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.notice.ok{border-color:var(--ok)}
.notice.ok::before{content:"✓ ";color:var(--ok);font-weight:700}

.taquilla{border-left:1px solid var(--line);padding-left:clamp(20px,3vw,40px)}
.taquilla dl{margin:24px 0 0}
.taquilla dt{font:500 .76rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:22px}
.taquilla dt:first-child{margin-top:0}
.taquilla dd{margin:6px 0 0;font-size:1.05rem}
.taquilla dd a{overflow-wrap:anywhere}
.taquilla .chat-hint{display:flex;gap:12px;align-items:flex-start;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.chat-dot{flex:none;width:12px;height:12px;margin-top:.45em;border-radius:50%;background:var(--accent);animation:glow 3s ease-in-out infinite}
.taquilla small{display:block;margin-top:28px;color:var(--muted);font-size:.84rem;line-height:1.55}

.before{padding-block:clamp(48px,7vw,96px);border-top:1px solid var(--line)}
.before ol{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.before li{padding:4px clamp(16px,3vw,36px) 8px;border-left:1px solid var(--line)}
.before li:first-child{border-left:0;padding-left:0}
.before .act{display:block;font-size:clamp(2.6rem,4.6vw,3.8rem);margin-bottom:10px}
.before h3{margin-bottom:.35em}
.before p{color:var(--muted);margin:0}

/* ---------- 404: sala a oscuras ---------- */
.nofunc{position:relative;overflow:hidden;min-height:min(78vh,760px);display:grid;place-items:center;text-align:center;padding-block:clamp(72px,10vw,140px)}
.nofunc::before{content:"";position:absolute;left:50%;top:-10%;width:min(70vw,720px);height:120%;transform:translateX(-50%);pointer-events:none;
  background:conic-gradient(from 180deg at 50% 0%,transparent 160deg,rgba(242,181,68,.13) 175deg,rgba(242,181,68,.18) 180deg,rgba(242,181,68,.13) 185deg,transparent 200deg);
  animation:flicker 6s ease-in-out infinite}
.nofunc::after{content:"";position:absolute;left:50%;bottom:8%;width:min(60vw,560px);height:70px;transform:translateX(-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(242,181,68,.16),transparent)}
.nofunc .wrap{position:relative;z-index:1}
.nofunc .tag{margin-bottom:22px}
.nofunc h1{max-width:14ch;margin-inline:auto}
.nofunc .lead{margin:0 auto 32px}
.nofunc-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
@keyframes flicker{0%,100%{opacity:.85}45%{opacity:1}50%{opacity:.7}55%{opacity:1}}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .doc{grid-template-columns:minmax(0,1fr);gap:32px}
  .contact{grid-template-columns:minmax(0,1fr)}
  .taquilla{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:32px}
}
@media (max-width:720px){
  .before ol{grid-template-columns:minmax(0,1fr);gap:24px}
  .before li,.before li:first-child{border-left:0;padding:0 0 24px;border-bottom:1px solid var(--line)}
  .before li:last-child{border-bottom:0;padding-bottom:0}
}
@media (max-width:560px){
  .doc-brief>div,.doc-card-free li{grid-template-columns:minmax(0,1fr);gap:4px}
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .doc-body{font-size:1rem}
  .doc-body h2{flex-direction:column;gap:.4em}
  .doc-n{transform:none}
}
