/* ============================================================================
   "Estilo Astral Jazmín" (2026-09-30) — ver el encabezado de estiloAstralJazmin.js (pedido de Nico, qué dibuja y cómo
   es exclusivo por datos).
   Todo scopeado a `.crsl-slide.aj` (la clase la pone el JS SOLO con el tema activo y la cuenta habilitada): no toca nada más.

   REGLA DE ORO (igual que el resto de los temas): lo que se ve tiene que salir igual exportado con html2canvas 1.4.1.
     · cero box-shadow / filter / mask / clip-path / blend / gradientes repetidos;
     · los colores de cada SVG vienen YA resueltos desde el JS (variables --aj-*, nunca var() adentro de un SVG);
     · el subrayado dorado de la palabra clave es un <span> INLINE por palabra con un SVG de fondo (inline-block hace que
       html2canvas corra el texto — bug visto en estiloNicoAldeTips); el espacio entre palabras va adentro del span para
       que el trazo siga de corrido;
     · el grano de papel es un SVG con feTurbulence como imagen tileada (una imagen sí tilea bien; el gradiente no);
     · los halos son radial-gradient SIN tilear (eso sí sale).
   ============================================================================ */

/* ---------- lienzo a sangre ---------- */
.crsl-slide.aj{background:var(--aj-bg);}
.crsl-slide.aj .crsl-card{inset:0; border:0; border-radius:0; box-shadow:none; background:var(--aj-bg);}
.crsl-slide.aj.aj-oscuro .crsl-card{background:radial-gradient(980px 760px at 88% 4%, rgba(178,74,107,.42), rgba(0,0,0,0) 72%), radial-gradient(820px 700px at -6% 104%, rgba(201,164,76,.12), rgba(0,0,0,0) 70%), var(--aj-bg);}
.crsl-slide.aj.aj-rosa .crsl-card{background:radial-gradient(900px 700px at 90% 0%, rgba(255,255,255,.55), rgba(255,255,255,0) 70%), var(--aj-bg);}
.crsl-slide.aj.aj-crema .crsl-card{background:radial-gradient(900px 760px at 92% 2%, rgba(250,220,233,.55), rgba(250,220,233,0) 70%), var(--aj-bg);}
.crsl-slide.aj .crsl-card::before, .crsl-slide.aj .crsl-card::after{display:none;}
.crsl-card > .aj-fondo{position:absolute; left:0; top:0; right:0; bottom:0; z-index:0; pointer-events:none; overflow:hidden;}
.aj-fondo .aj-capa{position:absolute; left:0; top:0; right:0; bottom:0;}
.aj-fondo .aj-capa > svg{display:block; width:100%; height:100%;}
.crsl-slide.aj .aj-grano{background:var(--aj-grano) 0 0/300px 300px repeat; opacity:.07;}
.crsl-slide.aj.aj-oscuro .aj-grano{opacity:.06;}
.crsl-card > .crslx-decor.aj-bajo{z-index:0;}
.crslx-decor.aj-p{line-height:1;}

/* lo de siempre que el estilo reemplaza (cabecera y pie propios) */
.crsl-slide.aj .crsl-progress-track, .crsl-slide.aj .crsl-counter, .crsl-slide.aj .crsl-handle, .crsl-slide.aj .crsl-meme-num{display:none !important;}
.crsl-slide.aj .crsl-underline, .crsl-slide.aj .crsl-step-underline{display:none;}
.crsl-slide.aj .crsl-footer-handle{display:none;}
.crsl-slide.aj.aj-r-cierre .crsl-footer-handle{display:block; left:auto; right:84px; bottom:70px; text-align:right; font-family:'Nunito',sans-serif !important; font-weight:700 !important; font-size:23px; letter-spacing:.06em; color:var(--aj-suave) !important;}

/* ---------- cabecera: 01/08 + progreso en constelación ---------- */
.aj-cab{position:absolute; left:84px; right:84px; top:62px; height:60px; display:flex; align-items:center; justify-content:space-between; z-index:4; pointer-events:none;}
.aj-num{display:flex; align-items:baseline; gap:10px; line-height:1; white-space:nowrap;}
.aj-num b{font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600; font-size:50px; color:var(--aj-tinta);}
.aj-num span{font-family:'Nunito',sans-serif; font-weight:700; font-size:19px; letter-spacing:.14em; color:var(--aj-suave);}
.aj-prog{flex:none; margin-left:auto;}
.aj-prog svg, .aj-fases svg{display:block;}

/* ---------- piezas ---------- */
.aj-firma{display:flex; align-items:center; gap:14px; height:100%; white-space:nowrap;}
.aj-firma span{font-family:'Pinyon Script',cursive; font-weight:400; font-size:54px; line-height:1.3; letter-spacing:0;}
.crslx-decor .aj-firma svg{width:52px; height:42px; flex:none; margin-top:-6px;}
.aj-desliza{display:flex; align-items:center; justify-content:flex-end; gap:16px; height:100%; white-space:nowrap; font-family:'Nunito',sans-serif; font-weight:800; font-size:19px; letter-spacing:.3em; text-transform:uppercase;}
.crslx-decor .aj-desliza svg, .crsl-slide.aj .crsl-cta-pill svg{width:54px; height:14px; flex:none; display:block;}
.aj-kicker{display:flex; align-items:center; height:100%; white-space:nowrap; overflow:hidden; font-family:'Nunito',sans-serif; font-weight:800; font-size:19px; letter-spacing:.3em; text-transform:uppercase;}
.aj-carta{position:relative;}
.crslx-decor .aj-carta > svg{position:absolute; left:0; top:0; width:100%; height:100%;}
.aj-carta-gl{position:absolute; left:0; top:0; right:0; bottom:0;}
.aj-carta-gl b{position:absolute; display:block; width:2em; height:2em; margin:-1em 0 0 -1em; line-height:2em; text-align:center; font-weight:400; font-style:normal; font-family:'Noto Sans Symbols','Segoe UI Symbol','DejaVu Sans',serif;}
.aj-carta-gl b.aj-gn{font-family:'Nunito',sans-serif; font-weight:700; opacity:.75;}
.aj-carta-gl b.aj-gn-eje{letter-spacing:.08em; opacity:.9;}
.aj-sello{position:relative; width:100%; height:100%;}
.crslx-decor .aj-sello > svg{position:absolute; left:0; top:0; width:100%; height:100%;}
.aj-sello-anillo{position:absolute; left:0; top:0; right:0; bottom:0;}
.aj-sello-anillo b{position:absolute; left:50%; top:50%; display:block; line-height:1; white-space:pre; font-family:'Nunito',sans-serif; font-weight:800; font-style:normal; letter-spacing:0;}
.aj-sello-centro{position:absolute; left:0; right:0; top:50%; transform:translateY(-50%); text-align:center; line-height:1;}
.aj-sello-centro b{display:block; font-family:'Noto Sans Symbols','Segoe UI Symbol',serif; font-weight:400; line-height:1; margin-bottom:4px;}
.aj-sello-centro span{display:block; font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600; line-height:1; white-space:nowrap;}

/* ---------- tipografía ---------- */
.crsl-slide.aj .crsl-headline, .crsl-slide.aj .crsl-step-title, .crsl-slide.aj .crsl-quote, .crsl-slide.aj .crsl-ff-title, .crsl-slide.aj .crsl-photo-title, .crsl-slide.aj .crsl-meme-title, .crsl-slide.aj .crsl-feature-title{
  font-family:'Cormorant Garamond',serif; font-weight:600; font-style:normal; letter-spacing:-.005em; text-transform:none; -webkit-text-stroke:0; paint-order:normal; text-shadow:none; color:var(--aj-tinta);}
.crsl-slide.aj .crsl-box, .crsl-slide.aj .crsl-check-list, .crsl-slide.aj .crsl-step-sub, .crsl-slide.aj .crsl-feature-desc, .crsl-slide.aj .crsl-body-txt, .crsl-slide.aj .crsl-ad-item, .crsl-slide.aj .crsl-meme-caption, .crsl-slide.aj .crsl-ff-sub, .crsl-slide.aj .crsl-photo-caption, .crsl-slide.aj .crsl-flow-label{font-family:'Nunito',sans-serif; font-style:normal;}

/* palabra clave: itálica en el acento + subrayado dorado a mano (un span inline por palabra) */
.crsl-slide.aj .aj-hl{display:inline; font-style:italic; color:var(--aj-acento); background:var(--aj-sub) 0 100%/100% .2em no-repeat; padding:0 0 .07em; border-radius:0;}
.crsl-slide.aj .crsl-box .aj-hl, .crsl-slide.aj .crsl-step-sub .aj-hl, .crsl-slide.aj .crsl-body-txt .aj-hl, .crsl-slide.aj .crsl-check-list .aj-hl, .crsl-slide.aj .crsl-ad-item .aj-hl{font-style:normal; font-weight:800; background-size:100% .26em;}
.crsl-slide.aj .crsl-hlbox{background:none; color:var(--aj-acento); font-style:italic; padding:0; box-shadow:none;}

/* ---------- portada ---------- */
.crsl-slide.aj .crsl-portada-body{align-items:flex-start; text-align:left; justify-content:flex-end; padding:0 0 184px;}
.crsl-slide.aj .crsl-headline{font-size:112px; line-height:1; padding:0 84px; max-width:1000px; box-sizing:border-box;}
.crsl-slide.aj .crsl-headline.aj-l2{font-size:94px;}
.crsl-slide.aj .crsl-headline.aj-l3{font-size:78px;}
.crsl-slide.aj .crsl-headline .o{color:inherit;}
.crsl-slide.aj .crsl-headline .y{display:inline; color:var(--aj-acento); font-style:italic; background:none;}
.crsl-slide.aj .crsl-headline .y::after{display:none;}
.crsl-slide.aj .crsl-headline .y:empty{display:none;}
.crsl-slide.aj .crsl-body-txt{font-weight:500; font-size:32px; line-height:1.45; color:var(--aj-suave); padding:34px 84px 0; max-width:880px; box-sizing:border-box;}
.crsl-slide.aj .crsl-cta-pill{right:84px; bottom:72px; background:none; border:0; border-radius:0; box-shadow:none; transform:none; padding:0; display:flex; align-items:center; gap:16px;
  font-family:'Nunito',sans-serif; font-weight:800; font-style:normal; font-size:19px; letter-spacing:.3em; text-transform:uppercase; color:var(--aj-suave);}

/* ---------- láminas del medio: contenido a la izquierda, entre la cabecera y la firma ---------- */
.crsl-slide.aj:not(.aj-t-portada) .crsl-card{justify-content:center; padding:186px 0 150px;}
.crsl-slide.aj .crsl-badge, .crsl-slide.aj .crsl-badge.o{background:none; border:0; box-shadow:none; transform:none; padding:0; margin:0 0 26px 84px; border-radius:0; gap:14px;
  font-family:'Nunito',sans-serif; font-weight:800; font-size:20px; letter-spacing:.28em; text-transform:uppercase; color:var(--aj-oro);}
.crsl-slide.aj .crsl-badge svg{display:none;}
.crsl-slide.aj .crsl-badge::before{content:""; display:block; width:18px; height:18px; flex:none; background:var(--aj-sol) 0 0/100% 100% no-repeat;}
.crsl-slide.aj .crsl-center-wrap{flex:0 1 auto; align-items:flex-start; text-align:left; justify-content:flex-start; padding:0 84px !important;}
.crsl-slide.aj .crsl-step-title, .crsl-slide.aj .crsl-step-title.o{font-size:88px; line-height:1.02; margin-bottom:26px; color:var(--aj-tinta);}
.crsl-slide.aj .crsl-step-title.aj-l2{font-size:72px; line-height:1.05;}
.crsl-slide.aj .crsl-step-title.aj-l3{font-size:60px; line-height:1.08;}
.crsl-slide.aj .crsl-step-sub{font-weight:500; font-size:32px; line-height:1.45; color:var(--aj-suave); margin-bottom:34px;}
.crsl-slide.aj .crsl-step-icon-big, .crsl-slide.aj .crsl-step-icon-big.o{width:96px; height:96px; border-radius:50%; margin:0 0 30px; transform:none; background:transparent; border:1.5px solid var(--aj-oro); box-shadow:none;}
.crsl-slide.aj .crsl-step-icon-big svg{width:44px; height:44px;}
.crsl-slide.aj .crsl-step-icon-big svg *, .crsl-slide.aj .crsl-feature-icon svg *, .crsl-slide.aj .crsl-flow-icon svg *{stroke:var(--aj-oro) !important;}
.crsl-slide.aj .crsl-gif-frame, .crsl-slide.aj .crsl-chat, .crsl-slide.aj .crsl-flow-row, .crsl-slide.aj .crsl-quote-mark{align-self:flex-start;}
.crsl-slide.aj .crsl-captura-wrap, .crsl-slide.aj .crsl-dato-frame, .crsl-slide.aj .crsl-sticker-wrap, .crsl-slide.aj .crsl-ad, .crsl-slide.aj .crsl-box, .crsl-slide.aj .crsl-feature-list, .crsl-slide.aj .crsl-check-list{align-self:stretch;}

/* OJO (visto exportando con Chrome real, lib/exportarChrome.js): un shorthand con var() (border:1px solid var(--x)) pisado después
   por un longhand en la MISMA regla se serializa mal en cssText y el servidor no recibe los bordes → ganaban los de index.html
   (borde gris grueso abajo/derecha). Por eso acá los bordes van en longhands. */
/* cajas: tarjeta con filete dorado a la izquierda (editorial, sin sombra) */
.crsl-slide.aj .crsl-box, .crsl-slide.aj .crsl-box.o{width:100%; box-sizing:border-box; background:var(--aj-caja); color:var(--aj-tinta); border-style:solid; border-width:1px 1px 1px 4px; border-top-color:var(--aj-linea); border-right-color:var(--aj-linea); border-bottom-color:var(--aj-linea); border-left-color:var(--aj-oro-linea); border-radius:4px 22px 22px 4px; box-shadow:none; padding:34px 42px; margin-top:4px;
  font-weight:600; font-size:31px; line-height:1.5; text-align:left;}
.crsl-slide.aj .crsl-feature-list{gap:18px;}
.crsl-slide.aj .crsl-feature-box, .crsl-slide.aj .crsl-feature-box.o{background:var(--aj-caja); border-style:solid; border-width:1px; border-top-color:var(--aj-linea); border-right-color:var(--aj-linea); border-bottom-color:var(--aj-linea); border-left-color:var(--aj-linea); border-radius:22px; box-shadow:none; padding:24px 30px; gap:26px;}
.crsl-slide.aj .crsl-feature-icon{width:76px; height:76px; border-radius:50%; background:transparent; border:1.5px solid var(--aj-oro); box-shadow:none;}
.crsl-slide.aj .crsl-feature-title{font-weight:700; font-size:36px; line-height:1.05; color:var(--aj-tinta); margin-bottom:6px;}
.crsl-slide.aj .crsl-feature-desc{font-size:24px; font-weight:500; line-height:1.4; color:var(--aj-suave);}
.crsl-slide.aj .crsl-check-list{font-weight:600; font-size:32px; line-height:1.35; color:var(--aj-tinta);}
.crsl-slide.aj .crsl-check-row{background:none; border-style:solid; border-width:0 0 1px 0; border-bottom-color:var(--aj-linea); border-radius:0; padding:22px 0; margin:0; gap:24px; align-items:center;}
.crsl-slide.aj .crsl-check-row:first-child{border-top-width:1px; border-top-color:var(--aj-linea);}
.crsl-slide.aj .crsl-check-icon{width:46px; height:46px; border-radius:0; background:var(--aj-check) center/100% 100% no-repeat; border:0; box-shadow:none; margin-top:0;}
.crsl-slide.aj .crsl-check-icon svg{display:none;}
.crsl-slide.aj .crsl-flow-icon{background:transparent; border:1.5px solid var(--aj-oro); box-shadow:none; border-radius:50%;}
.crsl-slide.aj .crsl-flow-icon.hi{background:var(--aj-caja); border-color:var(--aj-acento);}
.crsl-slide.aj .crsl-flow-label{color:var(--aj-suave); font-weight:700;}
.crsl-slide.aj .crsl-save-hint{font-family:'Nunito',sans-serif; font-weight:800; font-size:19px; letter-spacing:.26em; text-transform:uppercase; color:var(--aj-oro); text-align:left; margin-top:30px;}
.crsl-slide.aj .crsl-dato-frame, .crsl-slide.aj .crsl-sticker-wrap, .crsl-slide.aj .crsl-captura-wrap{background:var(--aj-caja); border:1px solid var(--aj-linea); border-radius:22px; box-shadow:none;}
.crsl-slide.aj .crsl-gif-frame, .crsl-slide.aj .crsl-meme-frame{border:1.5px solid var(--aj-oro-linea); border-radius:20px; box-shadow:none;}
.crsl-slide.aj .crsl-meme-caption{color:var(--aj-suave);}

/* antes / después: "antes" en punteado, "después" en tarjeta con filete dorado */
.crsl-slide.aj .crsl-ad{gap:22px;}
.crsl-slide.aj .crsl-ad-col{border-radius:22px; padding:32px 30px; box-shadow:none;}
.crsl-slide.aj .crsl-ad-col.antes{background:transparent; border:1.5px dashed var(--aj-linea); color:var(--aj-suave);}
.crsl-slide.aj .crsl-ad-col.despues{background:var(--aj-caja); border:1.5px solid var(--aj-oro-linea); color:var(--aj-tinta);}
.crsl-slide.aj .crsl-ad-tit{font-family:'Cormorant Garamond',serif; font-weight:600; font-style:italic; font-size:42px; line-height:1.05; letter-spacing:0; text-transform:none; color:inherit; margin-bottom:12px;}
.crsl-slide.aj .crsl-ad-item{font-weight:600; font-size:27px; line-height:1.4;}
.crsl-slide.aj .crsl-ad-col.antes .crsl-ad-item span{color:var(--aj-suave); opacity:.8;}
.crsl-slide.aj .crsl-ad-col.despues .crsl-ad-item span{color:var(--aj-oro);}
.crsl-slide.aj.aj-t-antes_despues .crsl-step-title{font-size:80px !important;}
.crsl-slide.aj.aj-t-antes_despues .crsl-step-title.aj-l2{font-size:66px !important;}
.crsl-slide.aj.aj-t-antes_despues .crsl-step-title.aj-l3{font-size:56px !important;}
.crsl-slide.aj.aj-t-antes_despues .crsl-center-wrap{padding:0 84px !important;}

/* frase: fases de la Luna arriba, cita en itálica */
.crsl-slide.aj .crsl-quote-mark{font-size:0; line-height:0; margin:0 0 44px; color:transparent;}
.crsl-slide.aj .crsl-quote{font-style:italic; font-weight:500; font-size:78px; line-height:1.1; letter-spacing:-.005em; text-transform:none; color:var(--aj-tinta);}
.crsl-slide.aj .crsl-quote.aj-l2{font-size:64px;}
.crsl-slide.aj .crsl-quote.aj-l3{font-size:52px;}
.crsl-slide.aj .crsl-quote .aj-hl{font-style:normal;}
.crsl-slide.aj.aj-t-frase .crsl-step-sub{margin:34px 0 0; max-width:820px;}
.crsl-slide.aj .crsl-quote-firma{font-family:'Nunito',sans-serif; font-weight:800; font-size:19px; letter-spacing:.28em; text-transform:uppercase; color:var(--aj-oro); margin-top:34px;}

/* cierre: el sello va arriba a la derecha y el título le deja lugar */
.crsl-slide.aj.aj-r-cierre .crsl-step-title{padding-right:200px; box-sizing:border-box;}
.crsl-slide.aj.aj-t-cta_final .crsl-step-title{font-size:84px !important; line-height:1.03 !important;}
.crsl-slide.aj.aj-t-cta_final .crsl-step-title.aj-l2{font-size:70px !important;}
.crsl-slide.aj.aj-t-cta_final .crsl-step-title.aj-l3{font-size:58px !important;}
.crsl-slide.aj.aj-t-cta_final .crsl-step-sub{font-family:'Nunito',sans-serif !important; font-weight:500 !important; font-size:31px !important; color:var(--aj-suave) !important;}
.crsl-slide.aj.aj-t-cta_final .crsl-center-wrap{padding-top:0 !important;}

/* fotos: el estilo pone el título en serif sobre el velo oscuro de siempre */
.crsl-slide.aj .crsl-ff-title, .crsl-slide.aj .crsl-photo-title{color:#FBF5EE; font-size:76px; line-height:1.04;}
.crsl-slide.aj .crsl-ff-title.aj-l2, .crsl-slide.aj .crsl-photo-title.aj-l2{font-size:62px;}
.crsl-slide.aj .crsl-ff-title.aj-l3, .crsl-slide.aj .crsl-photo-title.aj-l3{font-size:52px;}
.crsl-slide.aj .crsl-ff-txt, .crsl-slide.aj .crsl-photo-content{left:84px; right:84px; bottom:150px; padding:0; text-align:left;}
.crsl-slide.aj .crsl-ff-sub, .crsl-slide.aj .crsl-photo-caption{font-weight:500; font-size:30px; color:#E9DCE2; text-shadow:none;}
.crsl-slide.aj.aj-oscuro .aj-hl{color:var(--aj-acento);}

/* ---------- fila del panel de edición: fondo de la lámina ---------- */
.aj-fila{margin:2px 0 14px; padding:10px 12px; border:1px dashed var(--border); border-radius:10px;}
.aj-fila .aj-chips{display:flex; gap:6px; flex-wrap:wrap;}
.aj-fila .aj-chips button{padding:6px 10px; font-size:12px;}
.aj-fila .aj-chips button.on{border-color:var(--yellow); color:var(--yellow); font-weight:700;}
.aj-fila label.aj-chk{display:flex; align-items:center; gap:8px; margin-top:8px; font-size:12px; color:var(--muted); cursor:pointer;}
