/* Estilos compartidos — Expertos en Eufemismos (páginas de módulo + dashboard) */
:root{
  --ink:#16233B;--ink-2:#1F3350;--parchment:#F4EEE1;--parchment-2:#EAE2CE;--card:#FBF8F0;
  --redact:#14171A;--amber:#C98A3B;--amber-dark:#8A5B1F;--sage:#6C7A5C;--sage-dark:#465038;
  --text:#26241E;--text-soft:#5B5747;--line:rgba(22,35,59,0.14);
  --serif:'Fraunces',Georgia,serif;--sans:'IBM Plex Sans',-apple-system,sans-serif;--mono:'IBM Plex Mono','Courier New',monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--parchment);color:var(--text);font-family:var(--sans);line-height:1.65;font-size:17px;}
.wrap{max-width:860px;margin:0 auto;padding:0 28px;}

/* Hero de módulo */
.hero{background:radial-gradient(ellipse at 20% -10%, rgba(255,255,255,0.05), transparent 55%), var(--ink);color:#EDE6D4;padding:54px 0 60px;position:relative;border-bottom:6px solid var(--amber);}
.hero::after{content:"";position:absolute;inset:14px;border:1px solid rgba(237,230,212,0.18);pointer-events:none;}
.stamp-row{display:flex;justify-content:space-between;align-items:flex-start;font-family:var(--mono);font-size:12.5px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(237,230,212,0.62);margin-bottom:34px;gap:12px;}
.stamp-row a{color:inherit;text-decoration:none;}
.stamp{border:1.5px solid var(--amber);color:var(--amber);padding:5px 12px;transform:rotate(-3deg);font-weight:500;letter-spacing:0.16em;white-space:nowrap;}
.eyebrow{font-family:var(--mono);font-size:13px;letter-spacing:0.2em;text-transform:uppercase;color:var(--amber);margin:0 0 16px;}
h1.title{font-family:var(--serif);font-weight:500;font-size:40px;line-height:1.14;margin:0 0 18px;max-width:14em;color:#F6F1E4;}
.hero-sub{font-size:17px;color:rgba(237,230,212,0.80);max-width:38em;margin:0;font-family:var(--serif);font-style:italic;}
.hero-meta{display:flex;gap:26px;margin-top:26px;font-family:var(--mono);font-size:12px;color:rgba(237,230,212,0.5);letter-spacing:0.04em;flex-wrap:wrap;}
.hero-meta b{color:var(--amber);font-weight:500;}

/* Progreso del nivel */
.progress{background:var(--ink-2);padding:12px 0;}
.progress-track{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;color:rgba(237,230,212,0.55);flex-wrap:wrap;}
.pdots{display:flex;gap:5px;flex:1;min-width:120px;}
.pdot{height:4px;flex:1;background:rgba(237,230,212,0.18);border-radius:2px;}
.pdot.done{background:var(--amber);}

section{padding:44px 0;}
section.alt{background:var(--parchment-2);}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--amber-dark);margin:0 0 10px;display:flex;align-items:center;gap:10px;}
.kicker::before{content:"";width:22px;height:1px;background:var(--amber-dark);}
h2{font-family:var(--serif);font-weight:500;font-size:27px;margin:0 0 18px;color:var(--ink);}
h3{font-family:var(--serif);font-weight:500;font-size:19px;margin:28px 0 10px;color:var(--ink);}
p{margin:0 0 15px;color:var(--text);}
p.lede{font-size:17.5px;color:var(--text-soft);font-family:var(--serif);font-style:italic;line-height:1.6;}
ul,ol{padding-left:22px;margin:0 0 16px;}
li{margin-bottom:8px;}
strong{color:var(--ink);font-weight:600;}
.divider{border:none;border-top:1px dashed var(--line);margin:6px 0;}

.pullquote{font-family:var(--serif);font-style:italic;font-size:21px;line-height:1.5;color:var(--ink);border-left:3px solid var(--amber);padding:4px 0 4px 20px;margin:28px 0;}
.pullquote cite{display:block;font-family:var(--mono);font-style:normal;font-size:11.5px;color:var(--text-soft);margin-top:8px;}

.tech-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}
.tech-card{background:var(--card);border:1px solid var(--line);padding:17px 19px;}
.tech-card .n{font-family:var(--mono);font-size:11px;color:var(--amber-dark);}
.tech-card h4{font-family:var(--serif);font-size:16.5px;font-weight:500;margin:6px 0 7px;color:var(--ink);}
.tech-card p{font-size:14px;color:var(--text-soft);margin:0 0 8px;}
.tech-card .ex{font-family:var(--mono);font-size:12.5px;color:var(--sage-dark);border-top:1px dashed var(--line);padding-top:8px;}

.case-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:22px 0 6px;}
.case{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--redact);padding:18px 20px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;}
.case-raw{font-family:var(--mono);font-size:14px;color:var(--text-soft);}
.case-raw .tag{display:block;font-size:10.5px;letter-spacing:0.12em;text-transform:uppercase;color:#9a9484;margin-bottom:5px;font-family:var(--sans);}
.redact-bar{background:var(--redact);color:var(--redact);padding:2px 6px;border-radius:2px;cursor:pointer;transition:color .2s,background .2s;user-select:none;}
.redact-bar.revealed{background:transparent;color:var(--text-soft);text-decoration:line-through;text-decoration-color:var(--redact);}
.arrow{color:var(--amber-dark);font-family:var(--mono);font-size:14px;}
.case-euph{font-family:var(--serif);font-size:16px;color:var(--ink);}
.case-euph .tag{display:block;font-size:10.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--sage-dark);margin-bottom:5px;font-family:var(--sans);font-style:normal;}
.case-hint{grid-column:1 / -1;font-size:12px;color:#9a9484;font-family:var(--mono);margin-top:2px;}

.flow{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:24px 0;}
.flow-step{background:var(--card);border:1px solid var(--line);padding:12px 16px;font-size:13.5px;flex:1;min-width:120px;}
.flow-step .n{font-family:var(--mono);font-size:10.5px;color:var(--amber-dark);display:block;margin-bottom:4px;}
.flow-arrow{color:var(--amber-dark);font-family:var(--mono);font-size:16px;}
.chain-caption{font-family:var(--mono);font-size:12px;color:#9a9484;margin:-8px 0 26px;}

.exercise{background:var(--card);border:1px solid var(--line);padding:22px 24px 6px;margin-top:20px;}
.exercise .kicker{color:var(--sage-dark);}
.ex-item{border-top:1px dashed var(--line);padding:14px 0;}
.ex-item:first-of-type{border-top:none;}
.ex-item .num{font-family:var(--mono);color:var(--sage-dark);font-size:12.5px;margin-right:7px;}

.checklist{display:flex;flex-direction:column;gap:10px;margin:22px 0;}
.check-item{background:var(--card);border:1px solid var(--line);padding:14px 18px;display:flex;gap:12px;align-items:flex-start;font-size:14.5px;}
.check-item .q{font-family:var(--mono);font-size:11px;color:var(--amber-dark);flex:0 0 auto;padding-top:2px;}

/* Laboratorios */
.lab{background:var(--ink);color:#EDE6D4;padding:40px 0 46px;}
.lab .kicker{color:var(--amber);}
.lab h2{color:#F6F1E4;}
.lab-sub{color:rgba(237,230,212,0.68);max-width:38em;}
.lab-panel{background:var(--ink-2);border:1px solid rgba(237,230,212,0.14);padding:24px;margin-top:22px;}
.lab-row{display:flex;gap:9px;margin-bottom:14px;flex-wrap:wrap;}
.chip{font-family:var(--mono);font-size:12px;padding:7px 13px;border:1px solid rgba(237,230,212,0.28);color:rgba(237,230,212,0.85);cursor:pointer;background:transparent;transition:all .15s;}
.chip:hover{border-color:var(--amber);color:var(--amber);}
.chip.active{background:var(--amber);border-color:var(--amber);color:var(--ink);}
.chip.correct{background:var(--sage);border-color:var(--sage);color:#0f150a;}
.chip.wrong{background:#8a3a2f;border-color:#8a3a2f;color:#f6ece9;}
.lab-output{margin-top:16px;background:rgba(0,0,0,0.22);border:1px solid rgba(237,230,212,0.1);padding:20px;min-height:80px;}
.lab-output .euph{font-family:var(--serif);font-size:19px;color:#F6F1E4;margin-bottom:8px;}
.lab-output .technique{font-family:var(--mono);font-size:12px;color:var(--amber);letter-spacing:0.05em;}
.lab-output .why{font-size:13.5px;color:rgba(237,230,212,0.68);margin-top:7px;}
.lab-output .raw-line{font-family:var(--mono);font-size:12.5px;color:rgba(237,230,212,0.5);margin-bottom:10px;text-decoration:line-through;text-decoration-color:rgba(237,230,212,0.3);}
.domain-label{font-family:var(--mono);font-size:10.5px;color:rgba(237,230,212,0.45);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:10px;}
.quiz-phrase{font-family:var(--serif);font-size:19px;color:#F6F1E4;margin-bottom:18px;}
.lab-nav{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-family:var(--mono);font-size:12px;color:rgba(237,230,212,0.5);}
.lab-nav button{font-family:var(--mono);font-size:12px;background:transparent;border:1px solid rgba(237,230,212,0.28);color:rgba(237,230,212,0.8);padding:8px 14px;cursor:pointer;}
.lab-nav button:hover{border-color:var(--amber);color:var(--amber);}

/* Dossier / ladder / spectrum / redline (masterclass) */
.dossier{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--ink);padding:22px 24px 20px;margin:16px 0;}
.dossier .era{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--amber-dark);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.dossier .era .field{color:#9a9484;}
.dossier h4{font-family:var(--serif);font-weight:500;font-size:20px;margin:10px 0 12px;color:var(--ink);}
.dossier .pair{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:12px 0 14px;padding:12px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);}
.dossier .pair .lbl{display:block;font-family:var(--sans);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:#9a9484;margin-bottom:5px;}
.dossier .pair .raw{font-family:var(--mono);font-size:13.5px;color:var(--text-soft);}
.dossier .pair .euph{font-family:var(--serif);font-size:16px;color:var(--ink);}
.dossier .pair .arrow{text-align:center;}
.dossier .analysis{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px;}
.dossier .analysis .cell .lbl{font-family:var(--mono);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--amber-dark);display:block;margin-bottom:3px;}
.dossier .analysis .cell p{font-size:13.5px;color:var(--text-soft);margin:0;}
.dossier .verdict{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:13.5px;color:var(--ink);}
.dossier .verdict b{font-family:var(--mono);font-size:10.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--sage-dark);display:block;margin-bottom:4px;font-weight:500;}
.ladder{background:var(--card);border:1px solid var(--line);padding:20px 22px 12px;margin:16px 0;}
.ladder .src{font-family:var(--mono);font-size:13.5px;color:var(--text-soft);border-left:3px solid var(--redact);padding:2px 0 2px 14px;margin-bottom:6px;}
.ladder .src .lbl{display:block;font-family:var(--sans);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:#9a9484;margin-bottom:5px;}
.ladder .rung{display:grid;grid-template-columns:88px 1fr;gap:14px;align-items:start;border-top:1px dashed var(--line);padding:13px 0;}
.ladder .rung .lvl{font-family:var(--mono);font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;padding-top:3px;}
.ladder .rung.suave .lvl{color:var(--sage-dark);}
.ladder .rung.medio .lvl{color:var(--amber-dark);}
.ladder .rung.fuerte .lvl{color:var(--redact);}
.ladder .rung .txt{font-family:var(--serif);font-size:16px;color:var(--ink);}
.ladder .rung .note{display:block;font-family:var(--sans);font-style:normal;font-size:12.5px;color:var(--text-soft);margin-top:5px;}
.ladder .rung.fuerte .txt{color:var(--text-soft);}
.flag{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:0.1em;text-transform:uppercase;background:var(--redact);color:#EDE6D4;padding:2px 7px;margin-left:6px;vertical-align:middle;}
.spectrum{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;margin:26px 0 6px;border:1px solid var(--line);}
.spectrum .seg{padding:14px 10px;text-align:center;}
.spectrum .seg .s-name{font-family:var(--mono);font-size:11px;letter-spacing:0.04em;color:#fff;text-transform:uppercase;}
.spectrum .seg .s-desc{font-size:11px;color:rgba(255,255,255,0.82);margin-top:5px;line-height:1.4;}
.spectrum .s1{background:#5c6b4d;}.spectrum .s2{background:#6C7A5C;}
.spectrum .s3{background:var(--amber);}.spectrum .s4{background:var(--amber-dark);}
.spectrum .s5{background:#5a4636;}.spectrum .s6{background:var(--redact);}
.spectrum .s3 .s-name,.spectrum .s3 .s-desc{color:var(--ink);}
.spectrum-legend{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;letter-spacing:0.1em;text-transform:uppercase;color:#9a9484;margin-bottom:26px;}
.redline{background:var(--card);border:1px solid var(--line);border-left:4px solid #7a2e22;padding:16px 20px;margin:12px 0;}
.redline .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:0.1em;text-transform:uppercase;color:#7a2e22;display:block;margin-bottom:6px;}
.redline p{font-size:14.5px;margin:0;color:var(--text);}

.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0 4px;}
.sum-card{background:var(--card);border:1px solid var(--line);padding:16px 18px;}
.sum-card .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--amber-dark);}
.sum-card p{font-size:14px;margin:7px 0 0;color:var(--text-soft);}

/* Navegación Anterior / Siguiente */
.prevnext{background:var(--ink);border-top:6px solid var(--amber);padding:34px 0;}
.prevnext .wrap{display:flex;justify-content:space-between;gap:14px;align-items:stretch;}
.pn{flex:1;display:flex;flex-direction:column;text-decoration:none;border:1px solid rgba(237,230,212,0.2);padding:16px 20px;color:#EDE6D4;transition:border-color .15s;max-width:48%;}
.pn:hover{border-color:var(--amber);}
.pn .dir{font-family:var(--mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(237,230,212,0.5);margin-bottom:6px;}
.pn .ttl{font-family:var(--serif);font-size:16px;color:#F6F1E4;}
.pn.next{text-align:right;margin-left:auto;}
.pn.disabled{opacity:0.3;pointer-events:none;}
.pn .sub{display:block;font-family:var(--mono);font-size:11px;margin-top:6px;color:rgba(237,230,212,0.6);}
.pn.upsell{background:var(--amber);border-color:var(--amber);}
.pn.upsell:hover{border-color:#EDE6D4;}
.pn.upsell .dir{color:rgba(22,35,59,0.65);}
.pn.upsell .ttl{color:var(--ink);font-weight:600;}
.pn.upsell .sub{color:rgba(22,35,59,0.7);}
.pn-home{display:block;text-align:center;margin-top:16px;font-family:var(--mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--amber);text-decoration:none;}
.pn-home:hover{color:#EDE6D4;}

.btn{display:inline-block;font-family:var(--mono);font-size:13px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink);background:var(--amber);padding:14px 30px;text-decoration:none;border:none;cursor:pointer;}
.btn:hover{background:var(--amber-dark);color:#EDE6D4;}
.btn.ghost{background:transparent;border:1px solid rgba(237,230,212,0.35);color:#EDE6D4;}

footer{padding:26px 0;text-align:center;font-family:var(--mono);font-size:11.5px;color:#9a9484;}

/* Dashboard "Mi Curso" */
.dash-hero{background:radial-gradient(ellipse at 20% -10%, rgba(255,255,255,0.05), transparent 55%), var(--ink);color:#EDE6D4;padding:48px 0;border-bottom:6px solid var(--amber);position:relative;}
.dash-hero::after{content:"";position:absolute;inset:14px;border:1px solid rgba(237,230,212,0.18);pointer-events:none;}
.mod-list{display:flex;flex-direction:column;gap:10px;margin:20px 0;}
.mod-link{display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);padding:16px 20px;text-decoration:none;transition:border-color .15s,transform .1s;}
.mod-link:hover{border-color:var(--amber);transform:translateX(3px);}
.mod-link .num{font-family:var(--mono);font-size:15px;color:var(--amber-dark);flex:0 0 auto;width:34px;}
.mod-link .body{flex:1;}
.mod-link .t{display:block;font-family:var(--serif);font-size:17px;color:var(--ink);}
.mod-link .d{display:block;font-size:13px;color:var(--text-soft);margin-top:3px;}
.mod-link .go{font-family:var(--mono);color:var(--amber-dark);font-size:18px;}
.mod-link.locked{opacity:0.55;}
.mod-link.locked .go{color:#b9b3a3;}
.grouphdr{font-family:var(--mono);font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--amber-dark);margin:30px 0 6px;display:flex;align-items:center;gap:10px;}
.grouphdr::before{content:"";width:22px;height:1px;background:var(--amber-dark);}
.upsell-card{background:radial-gradient(ellipse at 15% -20%, rgba(201,138,59,0.12), transparent 60%), var(--ink);color:#EDE6D4;border:2px solid var(--amber);padding:30px 32px;margin:32px 0 8px;text-align:center;}
.upsell-card .uc-lvl{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--amber);}
.upsell-card h3{font-family:var(--serif);font-weight:500;font-size:25px;color:#F6F1E4;margin:8px 0 10px;}
.upsell-card p{color:rgba(237,230,212,0.75);font-size:14.5px;max-width:36em;margin:0 auto 20px;}

@media (max-width:640px){
  h1.title{font-size:29px;}
  .case{grid-template-columns:1fr;text-align:left;}
  .arrow{display:none;}
  .tech-grid,.summary-grid{grid-template-columns:1fr;}
  .dossier .pair,.dossier .analysis{grid-template-columns:1fr;}
  .dossier .pair .arrow{display:none;}
  .flow{flex-direction:column;align-items:stretch;}
  .flow-arrow{display:none;}
  .spectrum{grid-template-columns:repeat(2,1fr);}
  .prevnext .wrap{flex-direction:column;}
  .pn,.pn.next{max-width:100%;text-align:left;}
  .ladder .rung{grid-template-columns:1fr;}
}
