/* =============================================================
   ThumbReady — styles.css
   1 Tokens · 2 Reset · 3 Utilidades · 4 Tipografía · 5 Componentes
   6 Editor · 7 Secciones · 8 Anuncios · 9 Responsive
   ============================================================= */

/* ============================= 1. Tokens ===================== */
:root{
  --ink:#14141c;
  --ink-soft:#4a4a5c;
  --ink-mute:#71718a;
  --line:#e5e5ee;
  --bg:#f6f6fa;
  --surface:#ffffff;
  --surface-2:#fbfbfe;
  --dark:#14141c;
  --dark-2:#1e1e2a;
  --dark-3:#2a2a3a;
  --accent:#6d28ff;
  --accent-ink:#ffffff;
  --accent-soft:#f0e9ff;
  --gold:#ffd400;
  --danger:#ff2d55;
  --ok:#00b368;

  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --r-sm:8px; --r:12px; --r-lg:18px;
  --shadow:0 1px 2px rgba(20,20,28,.06),0 8px 24px -12px rgba(20,20,28,.18);
  --shadow-lg:0 24px 60px -24px rgba(20,20,28,.35);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --gutter:clamp(16px,4vw,32px);

  /* tokens derivados (todos los colores del sitio salen de aqui) */
  --line-strong:#c9c9dc;
  --accent-hover:#5a1ee6;
  --accent-deep:#3b1a8c;
  --check-a:#e9e9f2;
  --check-b:#f3f3f8;
  --ad-a:#fafaff;
  --ad-b:#f2f2f9;
  --invert-bg:#14141c;
  --invert-ink:#ffffff;
  --invert-soft:#c5c5d6;
  --invert-mute:#8b8ba3;
  --ok-bg:#effaf3;
  --ok-line:#cbead8;
  --warn-bg:#fff4d6;
  --warn-line:#ffe08a;
  --warn-ink:#14141c;
  --header-bg:rgba(246,246,250,.88);
  --backdrop:rgba(20,20,28,.55);
  --cat-design-bg:#e6f6ee; --cat-design-ink:#0c6b45;
  --cat-niche-bg:#fff1dc;  --cat-niche-ink:#8a4b00;
  --cat-strategy-bg:#e7f0ff; --cat-strategy-ink:#134a9c;
}

/* ============================= 2. Reset ====================== */
*,*::before,*::after{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;tab-size:2}
body{
  font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--ink);
  background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip;
}
img,svg,video,canvas{display:block;max-width:100%}
img{height:auto}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
a{color:inherit;text-decoration:none}
p{text-wrap:pretty}
h1,h2,h3,h4{text-wrap:balance;line-height:1.12;letter-spacing:-.02em;font-weight:800}
::selection{background:var(--accent);color:var(--invert-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
input,select,textarea{font:inherit;color:inherit}

/* ============================= 3. Utilidades ================= */
.wrap{width:min(1240px,100% - var(--gutter)*2);margin-inline:auto}
.wrap--narrow{width:min(760px,100% - var(--gutter)*2)}
.skip-link{position:fixed;top:-100px;left:16px;padding:.6rem 1rem;background:var(--invert-bg);color:var(--invert-ink);z-index:999;border-radius:8px;font-weight:600}
.skip-link:focus{top:16px}
[hidden]{display:none !important}

/* ============================= 4. Tipografía ================= */
h1{font-size:clamp(1.38rem,4.2vw,2.6rem);letter-spacing:-.03em}
h2{font-size:clamp(1.35rem,3vw,2rem)}
h3{font-size:1.06rem}
.hero-sub{color:var(--ink-soft);font-size:clamp(.88rem,1.6vw,1.1rem);max-width:74ch;margin-top:.55rem;line-height:1.5}
.section-sub{color:var(--ink-soft);margin-top:.5rem;max-width:70ch}

/* ============================= 5. Componentes ================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  padding:.62rem 1rem;border-radius:var(--r);font-weight:700;font-size:.9rem;
  border:1.5px solid transparent;transition:transform .18s var(--ease-out),background .18s,border-color .18s,box-shadow .18s;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 8px 20px -10px rgba(109,40,255,.8)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--line-strong);background:var(--surface-2)}
.btn-impact{background:linear-gradient(100deg,#ff2d55,#ff8a00);color:#fff;box-shadow:0 8px 20px -10px rgba(255,90,0,.9)}
.btn-block{width:100%}
.btn-short{display:none}
.btn-lg{padding:.85rem 1.5rem;font-size:1rem}
.btn-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}
.btn-row--dl{flex-direction:column;gap:.5rem}
.btn:disabled{opacity:.5;cursor:not-allowed}

.icon-btn{
  width:34px;height:34px;display:grid;place-items:center;border-radius:9px;
  border:1.5px solid var(--line);background:var(--surface);font-size:.95rem;line-height:1;
}
.icon-btn:hover{border-color:var(--line-strong)}
.icon-btn--danger:hover{border-color:var(--danger);color:var(--danger)}

.field{display:block}
.field--inline{display:flex;align-items:center;gap:.5rem}
.field-label{font-size:.78rem;font-weight:700;color:var(--ink-mute);text-transform:uppercase;letter-spacing:.04em}
.select{
  appearance:none;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4.5L6 8.5l4-4' fill='none' stroke='%2371718a' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right .7rem center/12px;
  border:1.5px solid var(--line);border-radius:var(--r);padding:.55rem 2.1rem .55rem .7rem;
  font-size:.88rem;font-weight:600;width:100%;max-width:100%;
}
.slider{display:block;margin-top:.7rem;font-size:.8rem;font-weight:600;color:var(--ink-soft)}
.slider span{display:flex;justify-content:space-between;margin-bottom:.25rem}
.slider output{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700}
.slider input[type=range]{width:100%;accent-color:var(--accent)}

.progress{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:.45rem}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),#a06bff);width:0;transition:width .25s var(--ease-out)}
.engine-status{margin-top:.7rem;background:var(--accent-soft);border-radius:var(--r);padding:.7rem .8rem}
.engine-msg{font-size:.82rem;font-weight:600;color:var(--accent-deep)}

/* ============================= 6. Editor ===================== */
.site-header{position:sticky;top:0;z-index:40;background:var(--header-bg);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:58px}
.brand{display:flex;align-items:center;gap:.5rem;font-weight:800;letter-spacing:-.02em}
.brand-mark{color:var(--ink);display:block}
.brand-name strong{color:var(--accent)}
.header-nav{display:none;gap:1.2rem;font-size:.88rem;font-weight:600;color:var(--ink-soft)}
.header-nav a:hover{color:var(--ink)}

.hero{padding:clamp(10px,3vw,32px) 0 8px}
.tool-card{
  margin-top:clamp(.7rem,2vw,1.1rem);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--shadow);padding:clamp(12px,2vw,18px);
}
.noscript-msg{background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line);padding:.8rem;border-radius:var(--r);font-weight:600}

.tool-bar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;margin-bottom:.9rem}
.tool-bar-group{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;min-width:0}
.tool-bar-group--end{margin-left:auto}
.tool-bar .select{min-width:220px}

.editor-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.editor-grid>*{min-width:0}
.stage-col{order:1;min-width:0}
.panel--preview{order:2}
.panel--tools{order:3}

.panel{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:10px;min-width:0}
.panel-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute);margin-top:1rem;margin-bottom:.4rem}
.panel-title--first{margin-top:0}
.panel-note{font-size:.79rem;color:var(--ink-mute);line-height:1.5}

.stage{
  background:
    linear-gradient(45deg,var(--check-a) 25%,transparent 25%,transparent 75%,var(--check-a) 75%) 0 0/18px 18px,
    linear-gradient(45deg,var(--check-a) 25%,transparent 25%,transparent 75%,var(--check-a) 75%) 9px 9px/18px 18px,
    var(--check-b);
  border:1px solid var(--line);border-radius:var(--r);padding:10px;display:grid;place-items:center;
}
#canvas{
  max-width:100%;max-height:min(56vh,520px);width:auto;height:auto;
  border-radius:6px;box-shadow:var(--shadow);touch-action:none;cursor:default;
  background:var(--surface);
}
#canvas.is-grabbing{cursor:grabbing}

.inspector{margin-top:.7rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:.65rem .7rem}
.inspector-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}
.inspector-head strong{font-size:.85rem}
.inspector-actions{display:flex;gap:.35rem}
.inspector-body{display:grid;gap:.55rem}
.insp-row{display:grid;gap:.3rem}
.insp-row>label{font-size:.75rem;font-weight:700;color:var(--ink-mute)}
.insp-textarea{width:100%;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:.5rem;font-size:.9rem;font-weight:600;resize:vertical;min-height:62px}
.color-row{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}
.swatch{width:24px;height:24px;border-radius:7px;border:2px solid var(--surface);box-shadow:0 0 0 1.5px var(--line);cursor:pointer}
.swatch.is-on{box-shadow:0 0 0 2px var(--accent)}
input[type=color]{width:30px;height:26px;padding:0;border:1.5px solid var(--line);border-radius:7px;background:none;cursor:pointer}

.privacy-badge{margin-top:.7rem;font-size:.82rem;color:var(--ink-soft);background:var(--ok-bg);border:1px solid var(--ok-line);border-radius:var(--r);padding:.55rem .7rem}
.limits-note{margin-top:.4rem;font-size:.76rem;color:var(--ink-mute)}
#save-state{font-weight:700;color:var(--ok)}

/* Pestañas */
.tabs{display:flex;gap:.25rem;min-width:0;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line);margin:-10px -10px .6rem;padding:6px 10px 0}
.tabs::-webkit-scrollbar{display:none}
.tab{
  padding:.5rem .52rem;font-size:.8rem;font-weight:700;color:var(--ink-mute);
  border-bottom:2.5px solid transparent;border-radius:6px 6px 0 0;white-space:nowrap;
}
.tab.is-active{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-soft)}
.tab-panel{display:none}
.tab-panel.is-active{display:block}

/* Plantillas */
.chip-row{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:.6rem}
.chip{padding:.32rem .6rem;border-radius:99px;font-size:.76rem;font-weight:700;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-soft)}
.chip.is-on{background:var(--invert-bg);color:var(--invert-ink);border-color:var(--invert-bg)}
.template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:.6rem}
.tpl{border:1.5px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--surface);padding:0;text-align:left}
.tpl:hover{border-color:var(--accent)}
.tpl canvas{width:100%;height:auto;display:block;min-width:0}
.tpl span{display:block;padding:.3rem .4rem;font-size:.72rem;font-weight:700;color:var(--ink-soft)}

/* Dropzone */
.dropzone{
  display:grid;place-items:center;gap:.2rem;text-align:center;cursor:pointer;
  border:2px dashed var(--line-strong);border-radius:var(--r);padding:1.1rem .8rem;background:var(--surface);
  transition:border-color .18s,background .18s;color:var(--ink-soft);
}
.dropzone:hover,.dropzone.is-over{border-color:var(--accent);background:var(--accent-soft)}
.dropzone--sm{padding:.8rem}
.dropzone-title{font-weight:800;font-size:.9rem;color:var(--ink)}
.dropzone-hint{font-size:.75rem;color:var(--ink-mute)}

/* Fondos, formas, stickers */
.bg-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}
.bg-swatch{aspect-ratio:16/10;border-radius:var(--r-sm);border:1.5px solid var(--line);cursor:pointer}
.bg-swatch:hover{border-color:var(--accent)}
.shape-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}
.shape-btn{border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);padding:.5rem .3rem;font-size:.72rem;font-weight:700;color:var(--ink-soft);display:grid;gap:.2rem;place-items:center}
.shape-btn:hover{border-color:var(--accent);color:var(--accent)}
.sticker-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:.25rem}
.sticker{font-size:1.15rem;line-height:1;padding:.28rem 0;border-radius:7px;border:1.5px solid transparent}
.sticker:hover{background:var(--accent-soft);border-color:var(--accent)}
.quick-texts{display:grid;gap:.35rem;margin-top:.6rem}
.quick-text{border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);padding:.42rem .55rem;font-size:.8rem;font-weight:700;text-align:left;color:var(--ink-soft)}
.quick-text:hover{border-color:var(--accent);color:var(--accent)}

/* Recorte */
.cut-preview{margin-top:.6rem;border-radius:var(--r-sm);overflow:hidden;
  background:linear-gradient(45deg,var(--check-a) 25%,transparent 25%,transparent 75%,var(--check-a) 75%) 0 0/16px 16px,
             linear-gradient(45deg,var(--check-a) 25%,transparent 25%,transparent 75%,var(--check-a) 75%) 8px 8px/16px 16px,var(--check-b);
  border:1px solid var(--line);display:grid;place-items:center;padding:6px}
#cut-canvas{max-width:100%;height:auto;touch-action:none;cursor:crosshair}
#btn-cut-erase[aria-pressed="true"],
#btn-cut-restore[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}

/* Vista en miniatura real */
.yt-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px;display:grid;gap:8px}
.yt-card canvas{max-width:100%;height:auto;border-radius:6px;background:var(--line);margin-inline:auto}
.yt-meta{display:flex;gap:8px;align-items:flex-start}
.yt-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#6d28ff,#ff2d55);flex:0 0 auto}
.yt-text{display:grid;gap:2px;min-width:0}
.yt-title{font-size:.76rem;font-weight:700;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.yt-sub{font-size:.68rem;color:var(--ink-mute)}
.prev-row{display:flex;gap:8px;margin-top:8px;align-items:flex-start}
.prev-item{flex:1 1 0;min-width:0;display:grid;gap:3px}
.prev-item canvas{max-width:100%;height:auto;border-radius:5px;background:var(--line);border:1px solid var(--line)}
.prev-item figcaption{font-size:.66rem;color:var(--ink-mute);font-weight:600}

.layer-list{list-style:none;display:grid;gap:.25rem;max-height:190px;overflow:auto}
.layer-item{display:flex;align-items:center;gap:.4rem;padding:.32rem .45rem;border-radius:7px;border:1.5px solid var(--line);background:var(--surface);font-size:.76rem;font-weight:600;cursor:pointer;text-align:left;width:100%}
.layer-item.is-on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}
.layer-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.layer-empty{font-size:.76rem;color:var(--ink-mute);padding:.3rem}

/* ============================= 7. Secciones ================== */
.section{padding:clamp(34px,6vw,64px) 0}
.section--prose h3{margin-top:1.6rem;font-size:1.1rem}
.section--prose p{margin-top:.6rem;color:var(--ink-soft)}
.section--prose h2+p{margin-top:.8rem}
.section--cta{text-align:center;background:var(--invert-bg);color:var(--invert-ink);border-radius:var(--r-lg);margin-bottom:clamp(34px,6vw,64px)}
.section--cta p{color:var(--invert-soft);margin:.6rem 0 1.2rem}

.steps{list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;margin-top:1.4rem;counter-reset:s}
.step{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.1rem;box-shadow:var(--shadow)}
.step-n{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-weight:800;margin-bottom:.6rem}
.step h3{margin-bottom:.35rem}
.step p{font-size:.9rem;color:var(--ink-soft)}

.cards{display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem;margin-top:1.4rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.1rem}
.card-icon{font-size:1.5rem;display:block;margin-bottom:.4rem}
.card h3{margin-bottom:.3rem}
.card p{font-size:.88rem;color:var(--ink-soft)}

.faq{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-top:.6rem;overflow:hidden}
.faq summary{padding:.85rem 1rem;font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.3rem;color:var(--accent);font-weight:700;line-height:1}
.faq[open] summary::after{content:"–"}
.faq p{padding:0 1rem 1rem;color:var(--ink-soft);font-size:.92rem}

.site-footer{background:var(--invert-bg);color:var(--invert-soft);padding:2.2rem 0}
.footer-inner{display:grid;gap:.7rem}
.footer-brand{font-weight:700;color:var(--invert-ink)}
.footer-brand strong{color:var(--gold)}
.footer-nav{display:flex;gap:1rem;flex-wrap:wrap;font-size:.88rem;font-weight:600}
.footer-nav a:hover{color:var(--invert-ink)}
.footer-note{font-size:.76rem;color:var(--invert-mute);max-width:70ch}

/* ============================= 8. Anuncios =================== */
.ad-slot{
  position:relative;display:grid;place-items:center;
  border:1.5px dashed var(--line-strong);border-radius:var(--r);background:repeating-linear-gradient(45deg,var(--ad-a),var(--ad-a) 10px,var(--ad-b) 10px,var(--ad-b) 20px);
  color:var(--ink-mute);
}
.ad-label{font-size:.7rem;font-weight:800;letter-spacing:.22em}
.ad-slot--leaderboard{min-height:96px;margin:0 0 clamp(20px,4vw,34px)}
.ad-slot--incontent{min-height:262px;margin:0 0 clamp(20px,4vw,34px)}
.ad-slot--modal{min-height:250px;width:100%;margin:.8rem 0}
.ad-slot--toast{min-height:92px;width:100%}

.ad-modal,.dl-modal{border:0;padding:0;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);max-width:min(360px,92vw);width:100%;background:var(--surface);color:var(--ink)}
.ad-modal::backdrop,.dl-modal::backdrop{background:var(--backdrop);backdrop-filter:blur(2px)}
.ad-modal-inner,.dl-inner{padding:1.1rem;position:relative}
.ad-modal-close{position:absolute;top:.5rem;right:.6rem;width:32px;height:32px;border-radius:50%;font-size:1.3rem;line-height:1;background:var(--bg);color:var(--ink-soft)}
.ad-modal-close:hover{background:var(--line)}
.ad-modal-title{font-weight:800;font-size:.98rem;padding-right:2rem}
.dl-title{font-size:1.1rem;margin-bottom:.8rem;padding-right:2rem}
.dl-note{font-size:.78rem;color:var(--ink-mute);margin-top:.4rem}
.dl-fine{font-size:.74rem;color:var(--ink-mute);margin-top:.7rem;text-align:center}
.dl-result{margin-top:.8rem;border-top:1px solid var(--line);padding-top:.7rem}
.dl-result img{width:100%;height:auto;border-radius:var(--r-sm);border:1px solid var(--line);margin-top:.5rem;background:var(--check-b)}

.ad-toast{
  position:fixed;right:12px;bottom:12px;z-index:60;width:min(300px,calc(100vw - 24px));
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-lg);padding:.6rem;
}
.ad-toast-close{position:absolute;top:-9px;right:-9px;width:26px;height:26px;border-radius:50%;background:var(--invert-bg);color:var(--invert-ink);font-size:1rem;line-height:1;box-shadow:var(--shadow)}

/* ============================= 9. Responsive ================= */
@media (min-width:540px){
  .template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .btn-row--dl{flex-direction:row}
  .btn-row--dl .btn{flex:1 1 0}
}
@media (min-width:720px){
  .header-nav{display:flex}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .btn .btn-text{display:inline}
}
@media (max-width:719px){
  .btn .btn-text{display:none}
  .btn-short{display:inline}
  .btn{padding:.55rem .7rem;font-size:.84rem}
  .tool-bar{margin-bottom:.6rem;gap:.4rem}
  .tool-bar .select{min-width:0;font-size:.8rem;padding:.48rem 1.7rem .48rem .55rem}
  .tool-bar-group:first-child{flex:1 1 110px}
  .tool-bar-group--end{gap:.35rem}
  .tool-bar .field-label{display:none}
  .stage{padding:6px}
  #canvas{max-height:min(46vh,420px)}
  .panel--preview .yt-meta{display:none}
  .panel--preview{padding:8px}
  .yt-card{padding:6px}
  .prev-row{margin-top:6px}
  .privacy-badge{font-size:.78rem}
}
@media (min-width:960px){
  .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1100px){
  .editor-grid{grid-template-columns:314px minmax(0,1fr) 258px;align-items:start}
  .tabs{flex-wrap:wrap;overflow:visible;row-gap:0}
  .panel--tools{order:1;position:sticky;top:70px;max-height:calc(100vh - 92px);overflow:auto}
  .stage-col{order:2}
  .panel--preview{order:3;position:sticky;top:70px}
  #canvas{max-height:min(58vh,540px)}
  .sticker-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
}

/* Movimiento reducido: solo lo intrusivo */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .progress-bar{transition:none}
}

/* ============================= 10. Tema del visitante ========
   El sitio se ve en el tema que tenga el usuario. Solo se redefinen
   los tokens; ningun componente lleva colores propios.
   ============================================================= */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
  --ink:#f0f0f6;
  --ink-soft:#b6b6c9;
  --ink-mute:#8a8aa1;
  --line:#2b2b3a;
  --line-strong:#3d3d51;
  --bg:#0d0d13;
  --surface:#16161f;
  --surface-2:#1b1b25;
  --accent:#9b6bff;
  --accent-ink:#140d26;
  --accent-hover:#8a52ff;
  --accent-soft:#241a3f;
  --accent-deep:#cdb6ff;
  --danger:#ff5d7c;
  --ok:#2fd58a;
  --check-a:#20202c;
  --check-b:#191922;
  --ad-a:#14141d;
  --ad-b:#1a1a25;
  --invert-bg:#20202c;
  --invert-ink:#ffffff;
  --invert-soft:#c5c5d6;
  --invert-mute:#8f8fa6;
  --ok-bg:#10241a;
  --ok-line:#1f4633;
  --warn-bg:#382d0e;
  --warn-line:#6b5716;
  --warn-ink:#ffe9a8;
  --header-bg:rgba(13,13,19,.9);
  --backdrop:rgba(0,0,0,.66);
  --cat-design-bg:#122b20; --cat-design-ink:#6fe3ab;
  --cat-niche-bg:#33240d;  --cat-niche-ink:#ffc470;
  --cat-strategy-bg:#152540; --cat-strategy-ink:#8fbaff;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -12px rgba(0,0,0,.7);
  --shadow-lg:0 24px 60px -24px rgba(0,0,0,.85);
  }
}
:root[data-theme="dark"]{
  --ink:#f0f0f6;
  --ink-soft:#b6b6c9;
  --ink-mute:#8a8aa1;
  --line:#2b2b3a;
  --line-strong:#3d3d51;
  --bg:#0d0d13;
  --surface:#16161f;
  --surface-2:#1b1b25;
  --accent:#9b6bff;
  --accent-ink:#140d26;
  --accent-hover:#8a52ff;
  --accent-soft:#241a3f;
  --accent-deep:#cdb6ff;
  --danger:#ff5d7c;
  --ok:#2fd58a;
  --check-a:#20202c;
  --check-b:#191922;
  --ad-a:#14141d;
  --ad-b:#1a1a25;
  --invert-bg:#20202c;
  --invert-ink:#ffffff;
  --invert-soft:#c5c5d6;
  --invert-mute:#8f8fa6;
  --ok-bg:#10241a;
  --ok-line:#1f4633;
  --warn-bg:#382d0e;
  --warn-line:#6b5716;
  --warn-ink:#ffe9a8;
  --header-bg:rgba(13,13,19,.9);
  --backdrop:rgba(0,0,0,.66);
  --cat-design-bg:#122b20; --cat-design-ink:#6fe3ab;
  --cat-niche-bg:#33240d;  --cat-niche-ink:#ffc470;
  --cat-strategy-bg:#152540; --cat-strategy-ink:#8fbaff;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -12px rgba(0,0,0,.7);
  --shadow-lg:0 24px 60px -24px rgba(0,0,0,.85);
}

/* =============================================================
   10. Novedades: animación medida, nota de legibilidad,
       franja de plantillas, columna de anuncios y generador IA
   ============================================================= */

/* --- Selector de idioma --- */
.lang-switch{display:flex;gap:2px;border:1.5px solid var(--line);border-radius:99px;padding:2px;background:var(--surface)}
.lang-switch a{font-size:.72rem;font-weight:800;padding:.22rem .5rem;border-radius:99px;color:var(--ink-mute);letter-spacing:.04em}
.lang-switch a.is-on{background:var(--accent);color:var(--accent-ink)}
.lang-switch a:hover{color:var(--ink)}
.lang-switch a.is-on:hover{color:var(--accent-ink)}

/* --- Hero: aura viva detrás del titular --- */
.hero{position:relative;isolation:isolate;overflow:hidden}
.hero-aura{
  position:absolute;inset:-30% -10% auto -10%;height:520px;z-index:-1;pointer-events:none;
  background:
    radial-gradient(38% 46% at 18% 40%, color-mix(in srgb, var(--accent) 34%, transparent), transparent 70%),
    radial-gradient(34% 42% at 78% 28%, rgba(255,45,85,.28), transparent 70%),
    radial-gradient(30% 40% at 52% 72%, rgba(255,212,0,.22), transparent 70%);
  filter:blur(28px);
  animation:aura 22s ease-in-out infinite alternate;
}
@keyframes aura{
  0%{transform:translate3d(-3%,0,0) scale(1)}
  50%{transform:translate3d(3%,2%,0) scale(1.07)}
  100%{transform:translate3d(-2%,-2%,0) scale(1.03)}
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:.45rem;font-size:.76rem;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;color:var(--accent-deep);
  background:var(--accent-soft);border-radius:99px;padding:.32rem .7rem;margin-bottom:.7rem;
}
.h1-alt{color:var(--ink-soft);font-weight:800}
.live-dot{
  width:8px;height:8px;border-radius:50%;background:var(--ok);flex:0 0 auto;
  box-shadow:0 0 0 0 color-mix(in srgb, var(--ok) 70%, transparent);
  animation:pulse 2.4s ease-out infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--ok) 60%, transparent)}
  70%{box-shadow:0 0 0 7px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}
.btn-glow{position:relative}
.btn-glow::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent);
  animation:glow 3.2s ease-out infinite;
}
@keyframes glow{
  0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 50%, transparent)}
  60%{box-shadow:0 0 0 10px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}

/* --- Revelados al hacer scroll --- */
[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
[data-reveal].is-in{opacity:1;transform:none}

/* --- Interruptor de zona segura --- */
.switch{
  display:flex;align-items:flex-start;gap:.5rem;margin-top:.6rem;
  font-size:.82rem;font-weight:600;color:var(--ink-soft);cursor:pointer;
  border:1px solid var(--line);border-radius:var(--r);padding:.5rem .65rem;background:var(--surface);
}
.switch input{margin-top:.15rem;accent-color:var(--accent);width:16px;height:16px;flex:0 0 auto}
.switch small{color:var(--ink-mute);font-weight:500}

/* --- Nota de legibilidad --- */
.score{
  margin-top:.9rem;border:1px solid var(--line);border-radius:var(--r);
  background:var(--surface);padding:.7rem;
}
.score-head{display:flex;align-items:center;gap:.7rem}
.score-ring{flex:0 0 auto;overflow:visible}
.score-ring-bg{stroke:var(--line)}
.score-ring-fg{
  stroke:var(--ink-mute);
  transition:stroke-dashoffset .7s var(--ease-out),stroke .4s linear;
}
.score[data-level="great"] .score-ring-fg{stroke:var(--ok)}
.score[data-level="ok"] .score-ring-fg{stroke:#e0a400}
.score[data-level="poor"] .score-ring-fg{stroke:var(--danger)}
.score-meta{min-width:0}
.score-num{font-size:1.45rem;font-weight:900;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.score-num small{font-size:.72rem;font-weight:700;color:var(--ink-mute);margin-left:2px}
.score-label{font-size:.78rem;font-weight:700;color:var(--ink-soft);margin-top:.18rem}
.score-tips{list-style:none;display:grid;gap:.3rem;margin-top:.6rem}
.score-tip{font-size:.75rem;line-height:1.45;color:var(--ink-soft);padding-left:1.05rem;position:relative}
.score-tip::before{position:absolute;left:0;top:0;font-size:.8rem}
.score-tip--bad::before{content:"⚠️"}
.score-tip--warn::before{content:"💡"}
.score-tip--ok::before{content:"✅"}

/* --- Franja de plantillas en movimiento --- */
.strip-section{padding:clamp(24px,4vw,42px) 0 0}
.strip-title{font-size:clamp(1.1rem,2.2vw,1.5rem);margin-bottom:.9rem}
.strip{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.strip-track{display:flex;gap:12px;width:max-content;animation:slide 46s linear infinite}
.strip:hover .strip-track,.strip:focus-within .strip-track{animation-play-state:paused}
.strip-track canvas{
  width:212px;height:auto;border-radius:10px;border:1px solid var(--line);
  box-shadow:var(--shadow);flex:0 0 auto;background:var(--check-b);
  transition:transform .3s var(--ease-out);
}
.strip-track canvas:hover{transform:translateY(-4px) scale(1.02)}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* --- Rejilla de contenido con columna de anuncios --- */
.content-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.content-main{min-width:0}
.content-rail{display:none}
.ad-slot--rail{min-height:600px;width:300px}
.ad-slot--infaq{min-height:110px;margin:.8rem 0}
.ad-slot--prefooter{min-height:110px;margin:0 0 clamp(20px,4vw,34px)}

/* --- Aviso de cookies --- */
.cc{
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  background:var(--surface);border-top:1px solid var(--line);
  box-shadow:0 -14px 40px -20px rgba(0,0,0,.35);
  transform:translateY(110%);transition:transform .3s var(--ease-out);
  padding-bottom:env(safe-area-inset-bottom,0);
}
.cc.is-in{transform:none}
.cc-inner{
  width:min(1240px,100% - var(--gutter)*2);margin-inline:auto;
  padding:.9rem 0;display:grid;gap:.8rem;align-items:center;
}
.cc-title{font-weight:800;font-size:.92rem;margin-bottom:.25rem}
.cc-text p{font-size:.82rem;color:var(--ink-soft);line-height:1.5;max-width:82ch}
.cc-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.cc-actions .btn{flex:1 1 auto;min-width:140px}
.cc-more{display:inline}
.cc-link{font-size:.78rem;font-weight:700;color:var(--ink-mute);text-decoration:underline;white-space:nowrap}
.cc-link:hover{color:var(--accent)}
.linkish{
  font:inherit;color:var(--accent);text-decoration:underline;padding:0;
  font-weight:700;cursor:pointer;background:none;border:0;
}
.linkish:hover{color:var(--accent-hover)}
.footer-linkish{font:inherit;font-size:.88rem;font-weight:600;color:inherit;padding:0;text-align:left}
.footer-linkish:hover{color:var(--invert-ink)}

@media (min-width:900px){
  .cc-inner{grid-template-columns:minmax(0,1fr) auto;gap:1.4rem}
  .cc-actions .btn{flex:0 0 auto;min-width:0}
}
@media (max-width:719px){
  .cc-inner{padding:.75rem 0;gap:.6rem}
  .cc-more{display:none}
  .cc-title{font-size:.86rem}
  .cc-text p{font-size:.78rem}
  .cc-actions .btn{min-width:0;flex:1 1 46%}
  .cc-link{flex:1 1 100%;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  .cc{transition:none}
}

@media (min-width:1100px){
  .content-grid:has(.ad--live){grid-template-columns:minmax(0,1fr) 300px}
  .content-rail:has(.ad--live){display:block}
  .ad-slot--rail{position:sticky;top:76px}
}
@media (max-width:719px){
  .strip-track canvas{width:158px}
  .hero-eyebrow{font-size:.68rem}
  .ad-slot--rail{width:100%}
}

/* Movimiento reducido: se apaga todo lo que se mueve solo */
@media (prefers-reduced-motion:reduce){
  .hero-aura{animation:none}
  .live-dot{animation:none}
  .btn-glow::after{animation:none}
  .strip-track{animation:none}
  [data-reveal]{opacity:1;transform:none;transition:none}
  .score-ring-fg{transition:none}
}

/* =============================================================
   11. ThumbReady: cabecera con dos barras, blog, artículos,
       páginas de texto, anuncios reales y micro-animaciones
   ============================================================= */

/* --- Barra de progreso de lectura --- */
.read-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;pointer-events:none;background:transparent}
.read-bar span{display:block;height:100%;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--accent),var(--gold));transition:transform .08s linear}
html:not(.has-read) .read-bar{opacity:0}

/* --- Cabecera --- */
.header-end{display:flex;align-items:center;gap:.45rem}
.theme-toggle{width:34px;height:34px;border-radius:99px;border:1.5px solid var(--line);
  background:var(--surface);display:grid;place-items:center;flex:0 0 auto}
.theme-toggle:hover{border-color:var(--accent)}
.theme-ico{width:15px;height:15px;border-radius:50%;background:var(--gold);
  box-shadow:inset -4px -4px 0 0 var(--surface);transition:box-shadow .25s var(--ease-out),background .25s}
.theme-toggle.is-dark .theme-ico{background:var(--accent);box-shadow:inset 0 0 0 0 var(--surface)}

.nav-toggle{width:38px;height:34px;border-radius:10px;border:1.5px solid var(--line);
  background:var(--surface);display:grid;place-items:center;flex:0 0 auto}
.nav-bars,.nav-bars::before,.nav-bars::after{display:block;width:16px;height:2px;border-radius:2px;
  background:var(--ink);transition:transform .25s var(--ease-out),opacity .2s}
.nav-bars{position:relative}
.nav-bars::before,.nav-bars::after{content:"";position:absolute;left:0}
.nav-bars::before{top:-5px}
.nav-bars::after{top:5px}
body.nav-open .nav-bars{background:transparent}
body.nav-open .nav-bars::before{transform:translateY(5px) rotate(45deg)}
body.nav-open .nav-bars::after{transform:translateY(-5px) rotate(-45deg)}

.header-nav-lang{display:none}
.header-nav a.is-on{color:var(--accent)}

/* --- Segunda barra: categorías de guías --- */
.subnav-wrap{border-top:1px solid var(--line);background:var(--surface-2)}
.subnav{display:flex;gap:.2rem;align-items:center;overflow-x:auto;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;padding:.3rem 0}
.subnav::-webkit-scrollbar{display:none}
.subnav a{font-size:.79rem;font-weight:700;color:var(--ink-mute);white-space:nowrap;
  padding:.32rem .6rem;border-radius:99px;transition:color .18s,background .18s}
.subnav a:hover{color:var(--ink);background:var(--line)}
.subnav a.is-on{color:var(--accent-ink);background:var(--accent)}

/* --- Anuncios reales (vacíos = invisibles) --- */
.ad{margin:0}
.ad:empty{display:none}
.ad--live{display:block;margin:clamp(20px,4vw,32px) 0;text-align:center;min-height:0}
.ad--live .ad-tag{display:block;font-size:.62rem;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:var(--ink-mute);margin-bottom:.3rem}
.ad--live ins{display:block;min-height:90px}
.ad--rail.ad--live{position:sticky;top:100px;margin:0}
.ad--rail.ad--live ins{min-height:600px}
.post-grid>.ad--live{grid-column:1/-1}

/* --- Migas de pan --- */
.crumbs{margin:.9rem 0 .2rem}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem;font-size:.76rem;color:var(--ink-mute)}
.crumbs li+li::before{content:"/";margin-right:.3rem;opacity:.5}
.crumbs a{font-weight:600}
.crumbs a:hover{color:var(--accent)}

/* --- Cabecera de página interior --- */
.page-hero{position:relative;isolation:isolate;overflow:hidden;padding:clamp(14px,3vw,34px) 0 clamp(10px,2vw,20px)}
.page-hero h1{margin-top:.5rem}
.page-hero .hero-sub{margin-top:.7rem;max-width:68ch;color:var(--ink-soft);font-size:clamp(.95rem,2.2vw,1.08rem)}
.sec-h{font-size:clamp(1.15rem,3vw,1.6rem)}
.sec-sub{color:var(--ink-soft);margin-top:.4rem;max-width:70ch}
.sec-more{margin-top:1.2rem}
.section--tight{padding:clamp(20px,3vw,34px) 0}

/* --- Aparición suave --- */
.reveal{opacity:1;transform:none}
html.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}
html.js .reveal.is-in{opacity:1;transform:none}

/* --- Rejilla de tarjetas de guía --- */
.post-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem;margin-top:1.3rem}
.post-card{min-width:0;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out)}
.post-card-link{display:flex;flex-direction:column;height:100%;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-lg);padding:1.05rem;gap:.4rem}
.post-card:hover .post-card-link{border-color:var(--accent);box-shadow:var(--shadow)}
.post-card h3{font-size:1.02rem;line-height:1.25}
.post-card p{font-size:.85rem;color:var(--ink-soft);flex:1 1 auto}
.post-card-cat,.post-kicker a{display:inline-block;font-size:.66rem;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;padding:.2rem .5rem;border-radius:99px;background:var(--accent-soft);color:var(--accent-deep);align-self:flex-start}
[data-cat="design"]{background:var(--cat-design-bg);color:var(--cat-design-ink)}
[data-cat="niche"]{background:var(--cat-niche-bg);color:var(--cat-niche-ink)}
[data-cat="strategy"]{background:var(--cat-strategy-bg);color:var(--cat-strategy-ink)}
.post-card-meta{font-size:.72rem;font-weight:700;color:var(--ink-mute)}

/* --- Tarjetas de categoría --- */
.cat-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem;margin-top:1.2rem}
.cat-card{display:block;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:1.1rem;transition:transform .25s var(--ease-out),border-color .2s}
.cat-card:hover{border-color:var(--accent)}
.cat-card h3{font-size:1.05rem;margin-bottom:.35rem}
.cat-card p{font-size:.85rem;color:var(--ink-soft)}
.cat-card-n{display:inline-block;margin-top:.6rem;font-size:.72rem;font-weight:800;color:var(--accent)}

/* --- Artículo --- */
.post-main{padding-bottom:1px}
.wrap--post{width:min(820px,100% - var(--gutter)*2);margin-inline:auto}
.post-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;align-items:start}
.post{min-width:0;max-width:74ch;margin-inline:auto}
.post-head{margin-bottom:1.4rem}
.post-head h1{margin:.5rem 0 .5rem;font-size:clamp(1.5rem,4.6vw,2.5rem)}
.post-meta{font-size:.76rem;font-weight:700;color:var(--ink-mute);letter-spacing:.02em}
.post-lede{margin-top:.9rem;font-size:clamp(1rem,2.4vw,1.14rem);line-height:1.62;color:var(--ink-soft)}
.post-sec{margin-top:2.1rem}
.post-sec h2{font-size:clamp(1.15rem,3.2vw,1.5rem);margin-bottom:.7rem;scroll-margin-top:110px}
.post-sec p{margin-top:.85rem;color:var(--ink-soft);font-size:1rem;line-height:1.68}
.post-sec p strong{color:var(--ink)}
.post-sec a,.post-faq a,.post--doc a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.post-sec a:hover{color:var(--accent-hover)}
.post-faq{margin-top:2.4rem}
.post-faq h2{font-size:clamp(1.15rem,3.2vw,1.5rem);margin-bottom:.8rem}
.post-faq .faq{margin-top:.5rem}

/* --- Índice del artículo --- */
.toc{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:var(--r);padding:.9rem 1.1rem;margin-top:1.4rem}
.toc-h{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:.5rem}
.toc ol{margin:0;padding-left:1.1rem}
.toc li{margin:.28rem 0}
.toc a{font-size:.88rem;font-weight:600;color:var(--ink-soft)}
.toc a:hover{color:var(--accent)}
.toc a.is-on{color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* --- Caja de llamada dentro del texto --- */
.cta-box{display:grid;gap:.9rem;align-items:center;margin:2.2rem 0;padding:1.2rem;
  border-radius:var(--r-lg);background:var(--invert-bg);color:var(--invert-ink);
  background-image:radial-gradient(120% 140% at 100% 0%,rgba(109,40,255,.55),transparent 60%)}
.cta-box-title{font-weight:800;font-size:1.05rem}
.cta-box-sub{font-size:.86rem;color:var(--invert-soft);margin-top:.25rem}
.cta-box .btn{white-space:nowrap}

/* --- Relacionados --- */
.post-rel{margin-top:2.4rem;border-top:1px solid var(--line);padding-top:1.4rem}
.post-rel h2{font-size:1.15rem;margin-bottom:.8rem}
.rel-list{list-style:none;display:grid;gap:.5rem}
.rel-list a{display:flex;flex-direction:column;gap:.25rem;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r);padding:.8rem .9rem;font-weight:700;font-size:.94rem}
.rel-list a:hover{border-color:var(--accent);color:var(--accent)}
.rel-cat{font-size:.64rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}
.post-back{margin-top:1.2rem;font-size:.88rem;font-weight:700}
.post-back a:hover{color:var(--accent)}

/* --- Columna de anuncios del artículo --- */
.post-rail{display:none}

/* --- Páginas de texto --- */
.post--doc{max-width:74ch}
.post--doc .post-sec:first-child{margin-top:.6rem}
.contact-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1.3rem;text-align:center;margin-bottom:1.2rem}
.contact-label{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.contact-mail{margin:.4rem 0}
.contact-mail a{font-size:clamp(1.05rem,3.4vw,1.45rem);font-weight:800;color:var(--accent);word-break:break-all}
.contact-mail a:hover{color:var(--accent-hover)}
.contact-sub{font-size:.85rem;color:var(--ink-soft);max-width:52ch;margin-inline:auto}

/* --- Pie nuevo --- */
.footer-top{display:grid;grid-template-columns:minmax(0,1fr);gap:1.6rem}
.footer-about{max-width:36ch}
.footer-tag{font-size:.84rem;color:var(--invert-soft);margin-top:.4rem}
.footer-mail{margin-top:.5rem;font-size:.84rem;font-weight:700}
.footer-mail a{color:var(--gold);word-break:break-all}
.footer-col h2{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--invert-mute);margin-bottom:.5rem}
.footer-col ul{list-style:none;display:grid;gap:.35rem}
.footer-col a{font-size:.86rem;font-weight:600}
.footer-col a:hover{color:var(--invert-ink)}
.footer-note{margin-top:1.6rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.12)}
.footer-legal{margin-top:.7rem;font-size:.76rem;color:var(--invert-mute)}
.footer-legal .linkish{color:var(--invert-soft);font-size:.76rem}
.footer-legal .linkish:hover{color:var(--gold)}

/* --- Botón subir --- */
.to-top{position:fixed;right:14px;bottom:14px;z-index:55;width:40px;height:40px;border-radius:50%;
  background:var(--invert-bg);color:var(--invert-ink);box-shadow:var(--shadow-lg);
  font-size:1.05rem;line-height:1;opacity:0;transform:translateY(12px) scale(.9);
  pointer-events:none;transition:opacity .25s var(--ease-out),transform .25s var(--ease-out)}
.to-top.is-on{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:var(--accent)}

/* --- Comparador antes / después --- */
.ba{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);
  touch-action:none;cursor:ew-resize;background:var(--check-b)}
.ba img,.ba canvas{width:100%;display:block}
.ba-after{position:absolute;inset:0}
.ba-after img,.ba-after canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-handle{position:absolute;top:0;bottom:0;width:3px;background:var(--invert-ink);
  box-shadow:0 0 0 1px rgba(0,0,0,.25);transform:translateX(-50%);pointer-events:none}
.ba-handle::after{content:"";position:absolute;top:50%;left:50%;width:34px;height:34px;
  transform:translate(-50%,-50%);border-radius:50%;background:var(--invert-ink);
  box-shadow:var(--shadow-lg)}
.ba-tag{position:absolute;top:8px;font-size:.64rem;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;padding:.2rem .5rem;border-radius:99px;background:rgba(0,0,0,.6);color:#fff}
.ba-tag--a{left:8px}
.ba-tag--b{right:8px}
.ba-range{position:absolute;inset:auto 0 8px;width:92%;margin-inline:auto;opacity:0;pointer-events:none}

/* --- Menú desplegable en móvil --- */
@media (max-width:719px){
  .header-nav{position:fixed;inset:58px 0 auto 0;display:flex;flex-direction:column;gap:0;
    background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg);
    padding:.4rem var(--gutter) .8rem;transform:translateY(-115%);transition:transform .28s var(--ease-out);
    z-index:39;font-size:.98rem}
  body.nav-open .header-nav{transform:none}
  .header-nav a{padding:.72rem .2rem;border-bottom:1px solid var(--line)}
  .header-nav a:last-child{border-bottom:0}
  .header-nav-lang{display:block;font-weight:800;color:var(--accent)}
  .lang-switch{display:none}
}
@media (min-width:720px){
  .nav-toggle{display:none}
  .post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cta-box{grid-template-columns:minmax(0,1fr) auto}
  .footer-top{grid-template-columns:1.6fr repeat(4,minmax(0,1fr))}
  .rel-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1040px){
  .post-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (min-width:1100px){
  .post-layout:has(.ad--live){grid-template-columns:minmax(0,1fr) 300px}
  .post-layout:has(.ad--live) .post{margin-inline:0}
  .post-rail:has(.ad--live){display:block;width:300px}
}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .read-bar span{transition:none}
  .post-card,.cat-card{transition:none}
}

/* --- Franja de cifras --- */
.stats-band{border-block:1px solid var(--line);background:var(--surface-2)}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;text-align:center}
.stat-n{display:block;font-size:clamp(1.5rem,5vw,2.3rem);font-weight:800;letter-spacing:-.03em;
  color:var(--accent);font-variant-numeric:tabular-nums;line-height:1}
.stat-t{display:block;margin-top:.3rem;font-size:.79rem;font-weight:600;color:var(--ink-soft)}
@media (min-width:720px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* --- Texto introductorio de las páginas de categoría --- */
.cat-intro p{margin-top:.9rem;color:var(--ink-soft);font-size:1rem;line-height:1.68}
.cat-intro p:first-child{margin-top:0}
