/* AI Home Designer — CSS base. Los colores, radios, sombras y fuentes llegan como variables desde el diseño activo. */

/* ============ 1. Sitio completo ============ */
body.aihd-on{background:var(--aihd-bg)!important;color:var(--aihd-tx)!important;font-family:var(--aihd-fb)!important;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.aihd-on :is(h1,h2,h3,h4,h5,h6){font-family:var(--aihd-fh)!important;letter-spacing:-.015em}
body.aihd-on ::selection{background:var(--aihd-p);color:var(--aihd-on-p)}
body.aihd-on :focus-visible{outline:2px solid var(--aihd-a);outline-offset:2px}

/* Tema oscuro: neutraliza los fondos blancos del tema */
body.aihd-t-oscuro :is(#page,.site,.site-content,.content,.container,main,article,.content-area,.site-main,.widget,.sidebar,aside){background-color:transparent!important;color:var(--aihd-tx)}
body.aihd-t-oscuro :is(.the-content,.entry-content,.widget,.sidebar,aside) :is(p,li,dd,dt,figcaption,label):not(.aihd-home-wrap *){color:var(--aihd-tx)}

/* Formularios */
body.aihd-on :is(input[type=text],input[type=search],input[type=email],input[type=url],input[type=tel],textarea,select){background-color:var(--aihd-bg);color:var(--aihd-tx);border:1px solid var(--aihd-bd);border-radius:calc(var(--aihd-r)*.7)}
body.aihd-on :is(.the-content,.entry-content,.widget,.comment-respond,.wpcf7) :is(input[type=submit],button[type=submit]):not(.aihd-home-wrap *){background:var(--aihd-p);color:var(--aihd-on-p);border:0;border-radius:calc(var(--aihd-r)*.7);font-weight:700;cursor:pointer}

/* ============ 2. Contenido de entradas y páginas ============ */
.aihd-on :is(.the-content,.entry-content){color:var(--aihd-tx);font-size:1.075rem;line-height:1.75}
.aihd-on :is(.the-content,.entry-content) a:not(.aihd-home-wrap a):not([class*="btn"]):not([class*="button"]){color:var(--aihd-lk);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--aihd-p2);transition:text-decoration-color .2s}
.aihd-on :is(.the-content,.entry-content) a:not(.aihd-home-wrap a):not([class*="btn"]):not([class*="button"]):hover{text-decoration-color:currentColor}

.aihd-on :is(.the-content,.entry-content) :is(h2,h3,h4):not(.aihd-home-wrap *){color:var(--aihd-tx);text-align:left;line-height:1.25;background:none;border:0;padding:0;box-shadow:none}
.aihd-on :is(.the-content,.entry-content) h2:not(.aihd-home-wrap *){font-size:clamp(1.45rem,2.6vw,1.95rem);font-weight:800;margin:2.1em 0 .75em}
.aihd-on :is(.the-content,.entry-content) h3:not(.aihd-home-wrap *){font-size:clamp(1.2rem,2vw,1.4rem);font-weight:700;margin:1.8em 0 .6em}

/* Variantes H2 */
body.aihd-h2-caja :is(.the-content,.entry-content) h2:not(.aihd-home-wrap *){background:var(--aihd-sf);border-left:4px solid var(--aihd-p);padding:.65em .9em;border-radius:0 var(--aihd-r) var(--aihd-r) 0}
body.aihd-h2-linea :is(.the-content,.entry-content) h2:not(.aihd-home-wrap *){display:flex;align-items:center;gap:.7em}
body.aihd-h2-linea :is(.the-content,.entry-content) h2:not(.aihd-home-wrap *)::after{content:"";flex:1 1 40px;min-width:40px;height:2px;background:linear-gradient(90deg,var(--aihd-p),transparent)}
body.aihd-h2-subrayado :is(.the-content,.entry-content) h2:not(.aihd-home-wrap *){text-decoration:underline;text-decoration-color:var(--aihd-a);text-decoration-thickness:.16em;text-underline-offset:.16em;text-decoration-skip-ink:none}
body.aihd-h2-barra :is(.the-content,.entry-content) h2:not(.aihd-home-wrap *)::before{content:"";display:block;width:2.2em;height:.2em;border-radius:3px;background:var(--aihd-a);margin-bottom:.55em}

/* Variantes H3 */
body.aihd-h3-lateral :is(.the-content,.entry-content) h3:not(.aihd-home-wrap *){border-left:3px solid var(--aihd-a);padding-left:.7em}
body.aihd-h3-punto :is(.the-content,.entry-content) h3:not(.aihd-home-wrap *)::before{content:"";display:inline-block;width:.5em;height:.5em;border-radius:50%;background:var(--aihd-p);margin-right:.55em;vertical-align:.12em}
body.aihd-h3-simple :is(.the-content,.entry-content) h3:not(.aihd-home-wrap *){color:var(--aihd-lk)}

.aihd-on :is(.the-content,.entry-content) img:not(.aihd-home-wrap *){border-radius:var(--aihd-r);height:auto}
.aihd-on :is(.the-content,.entry-content) iframe:not(.aihd-home-wrap *){border-radius:var(--aihd-r);max-width:100%;border:0}
.aihd-on :is(.the-content,.entry-content) blockquote:not(.aihd-home-wrap *){border-left:4px solid var(--aihd-a);background:var(--aihd-sf);padding:1em 1.3em;border-radius:0 var(--aihd-r) var(--aihd-r) 0;margin:1.6em 0;font-style:normal;color:var(--aihd-tx)}
.aihd-on :is(.the-content,.entry-content) li:not(.aihd-home-wrap *)::marker{color:var(--aihd-p)}
.aihd-on :is(.the-content,.entry-content) hr:not(.aihd-home-wrap *){border:0;height:1px;background:var(--aihd-bd);margin:2.5em 0}

/* Botones del contenido (incluye plantillas de fichas con clases tipo "btn" / "boton") */
body.aihd-on .wp-block-button__link,
.aihd-on :is(.the-content,.entry-content) a:is([class*="btn"],[class*="boton"],[class*="button"]):not(.aihd-home-wrap a){display:inline-block;background:var(--aihd-p);color:var(--aihd-on-p)!important;border:0;border-radius:calc(var(--aihd-r) + 4px);padding:.72em 1.35em;font-weight:700;text-decoration:none!important;transition:filter .2s,transform .2s}
body.aihd-on .wp-block-button__link:hover,
.aihd-on :is(.the-content,.entry-content) a:is([class*="btn"],[class*="boton"],[class*="button"]):not(.aihd-home-wrap a):hover{filter:brightness(1.08);transform:translateY(-1px)}

/* Directorio: tarjetas/fichas de plantillas propias */
.aihd-mode-directorio :is(.the-content,.entry-content) :is(div,section,article):is([class*="card"],[class*="ficha"],[class*="tarjeta"]):not(.aihd-home-wrap *){background:var(--aihd-sf);border:1px solid var(--aihd-bd);border-radius:var(--aihd-r);box-shadow:var(--aihd-sh);color:var(--aihd-tx)}

/* ============ 3. Tablas ============ */
.aihd-on :is(.the-content,.entry-content) table:not(.aihd-home-wrap *){width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--aihd-bd);border-radius:var(--aihd-r);overflow:hidden;margin:1.4em 0;font-size:.96rem;background:var(--aihd-bg)}
.aihd-on :is(.the-content,.entry-content) :is(th,td):not(.aihd-home-wrap *){padding:.75em 1em;border:0;border-bottom:1px solid var(--aihd-bd);text-align:left;vertical-align:top;color:var(--aihd-tx);background:transparent}
.aihd-on :is(.the-content,.entry-content) :is(th,thead td):not(.aihd-home-wrap *){background:var(--aihd-p);color:var(--aihd-on-p);font-family:var(--aihd-fh);font-weight:700}
.aihd-on :is(.the-content,.entry-content) tr:last-child > :is(td,th):not(.aihd-home-wrap *){border-bottom:0}
.aihd-on :is(.the-content,.entry-content) tbody tr:hover > td:not(.aihd-home-wrap *){background:var(--aihd-p1)}
body.aihd-tb-rayas :is(.the-content,.entry-content) tbody tr:nth-child(even) > td:not(.aihd-home-wrap *){background:var(--aihd-sf)}
body.aihd-tb-minimal :is(.the-content,.entry-content) table:not(.aihd-home-wrap *){border:0;border-radius:0;background:transparent}
body.aihd-tb-minimal :is(.the-content,.entry-content) :is(th,thead td):not(.aihd-home-wrap *){background:transparent;color:var(--aihd-mt);border-bottom:2px solid var(--aihd-p)}
body.aihd-tb-tarjeta :is(.the-content,.entry-content) table:not(.aihd-home-wrap *){box-shadow:var(--aihd-sh)}
.aihd-on :is(.the-content,.entry-content) tr.aihd-today > td{background:var(--aihd-p2)!important;font-weight:700}
@media (max-width:700px){
	.aihd-on :is(.the-content,.entry-content) table:not(.aihd-home-wrap *){display:block;overflow-x:auto}
	body.aihd-tb-tarjeta :is(.the-content,.entry-content) table.aihd-lbl{display:block;border:0;box-shadow:none;background:transparent;overflow:visible}
	body.aihd-tb-tarjeta :is(.the-content,.entry-content) table.aihd-lbl :is(thead,tr.aihd-hrow){display:none}
	body.aihd-tb-tarjeta :is(.the-content,.entry-content) table.aihd-lbl :is(tbody,tr){display:block}
	body.aihd-tb-tarjeta :is(.the-content,.entry-content) table.aihd-lbl tr{border:1px solid var(--aihd-bd);border-radius:var(--aihd-r);margin-bottom:.8em;overflow:hidden;background:var(--aihd-sf)}
	body.aihd-tb-tarjeta :is(.the-content,.entry-content) table.aihd-lbl td{display:flex;justify-content:space-between;gap:1em}
	body.aihd-tb-tarjeta :is(.the-content,.entry-content) table.aihd-lbl td[data-label]::before{content:attr(data-label);font-weight:700;color:var(--aihd-mt)}
}

/* Horario, filtro, barra de lectura y botón subir */
.aihd-open{display:inline-flex;align-items:center;gap:.55em;margin:0 0 .7em;padding:.4em .95em;border-radius:999px;font:700 .9rem/1.2 var(--aihd-fh)}
.aihd-open::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.aihd-open.is-open{background:var(--aihd-ok-bg);color:var(--aihd-ok)}
.aihd-open.is-closed{background:var(--aihd-no-bg);color:var(--aihd-no)}
.aihd-fx .aihd-open.is-open::before{animation:aihd-pulse 2s infinite}
@keyframes aihd-pulse{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.aihd-filter-w{margin:1.2em 0 -.4em}
body.aihd-on input.aihd-filter{width:100%;max-width:420px;padding:.75em 1em .75em 2.6em;font:inherit;font-size:.97rem;background:var(--aihd-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat .9em center/16px;border:1px solid var(--aihd-bd);border-radius:calc(var(--aihd-r) + 4px)}
body.aihd-on input.aihd-filter:focus{border-color:var(--aihd-p);outline:0;box-shadow:0 0 0 3px var(--aihd-p2)}
.aihd-filter-empty{display:none;color:var(--aihd-mt);font-size:.92rem;margin:.6em 0}
.aihd-progress{position:fixed;top:0;left:0;width:100%;height:3px;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--aihd-p),var(--aihd-a));z-index:99999;pointer-events:none}
.aihd-top{position:fixed;right:18px;bottom:22px;z-index:9999;width:46px;height:46px;padding:0;border-radius:50%;border:0;background:var(--aihd-p);color:var(--aihd-on-p);display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 24px -8px rgba(0,0,0,.45);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .3s,transform .3s}
.aihd-top.show{opacity:1;transform:none;pointer-events:auto}
.aihd-top svg{width:20px;height:20px}

/* ============ 4. Página de portada dentro del tema ============ */
body.aihd-home :is(.asap-hero,.entry-header,.page-header,h1.entry-title,.post-title,.breadcrumbs,.breadcrumb,#breadcrumbs,.rank-math-breadcrumb,.comments-area,#comments,.post-navigation){display:none!important}
body.aihd-home :is(#sidebar,#secondary,.sidebar,aside.widget-area){display:none!important}
body.aihd-home :is(#primary,.content-area,.site-main,.content-page,.content-single,.content-loop){width:100%!important;max-width:100%!important;float:none!important;flex:1 1 100%!important;margin-left:auto;margin-right:auto}
body.aihd-home :is(.the-content,.entry-content){max-width:none!important;padding:0!important;margin:0!important}
body.aihd-home.aihd-full{overflow-x:hidden;overflow-x:clip}
.aihd-full .aihd-home-wrap{width:100vw;position:relative;left:50%;margin-left:-50vw}

/* Reset: evita que los estilos de contenido del tema se cuelen en la portada */
body .aihd-home-wrap :is(h1,h2,h3,p,ul,ol,li,figure){margin:0;padding:0;border:0;background:none;text-align:inherit;box-shadow:none}
body .aihd-home-wrap :is(p,li){color:inherit;font-size:inherit;line-height:inherit;font-family:inherit}
body .aihd-home-wrap :is(ul,ol){list-style:none}
body .aihd-home-wrap li::before,body .aihd-home-wrap li::after{content:none}
body .aihd-home-wrap a{text-decoration:none;color:inherit;box-shadow:none;border-bottom:0}
body .aihd-home-wrap img{max-width:100%;border-radius:0}

/* ============ 5. Portada: estructura ============ */
.aihd-home-wrap{font-family:var(--aihd-fb);color:var(--aihd-tx);font-size:16px;line-height:1.6}
.aihd-home-wrap *,.aihd-home-wrap *::before,.aihd-home-wrap *::after{box-sizing:border-box}
.aihd-sec{position:relative;padding:calc(var(--aihd-k)*clamp(56px,8vw,104px)) 0;background:var(--aihd-bg)}
.aihd-sec.aihd-alt{background:var(--aihd-sf)}
.aihd-in{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:0 clamp(18px,4vw,36px)}
.aihd-head{max-width:46rem;margin:0 0 calc(var(--aihd-k)*2.2rem)}
.aihd-home-wrap .aihd-title{font:800 clamp(1.7rem,3.4vw,2.6rem)/1.12 var(--aihd-fh);letter-spacing:-.02em;color:var(--aihd-tx);margin:0 0 .4em}
.aihd-home-wrap .aihd-sub{font-size:1.1rem;color:var(--aihd-mt);max-width:40rem}
.aihd-center-p{margin-top:calc(var(--aihd-k)*2rem)!important;text-align:center}

/* Botones y chips */
.aihd-actions{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 1.6em}
.aihd-home-wrap .aihd-btn{display:inline-flex;align-items:center;gap:.5em;padding:.95em 1.7em;border-radius:calc(var(--aihd-r) + 6px);background:var(--aihd-p);color:var(--aihd-on-p);font:700 1rem/1 var(--aihd-fh);transition:transform .2s ease,filter .2s ease,border-color .2s ease}
.aihd-home-wrap .aihd-btn:hover{transform:translateY(-2px);filter:brightness(1.07)}
.aihd-home-wrap .aihd-btn--ghost{background:transparent;color:var(--aihd-tx);border:1.5px solid var(--aihd-bd)}
.aihd-home-wrap .aihd-btn--ghost:hover{border-color:var(--aihd-p);color:var(--aihd-lk);filter:none}
.aihd-chips{display:flex;flex-wrap:wrap;gap:8px}
.aihd-home-wrap .aihd-chip{display:inline-flex;align-items:center;gap:.5em;padding:.5em 1em;border-radius:999px;background:var(--aihd-sf);border:1px solid var(--aihd-bd);color:var(--aihd-tx);font-size:.93rem;font-weight:600;transition:border-color .2s,color .2s}
.aihd-alt .aihd-chip{background:var(--aihd-bg)}
.aihd-home-wrap .aihd-chip:hover{border-color:var(--aihd-p);color:var(--aihd-lk)}
.aihd-chip small{font-size:.78em;color:var(--aihd-mt);font-weight:700}
.aihd-home-wrap .aihd-chip--lg{padding:.75em 1.25em;font-size:1rem}

/* ============ 6. Hero ============ */
.aihd-sec--hero{padding:calc(var(--aihd-k)*clamp(84px,12vw,160px)) 0;overflow:hidden;isolation:isolate}
.aihd-hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.aihd-hero-bg span{position:absolute;border-radius:50%;filter:blur(80px);opacity:0}
.aihd-home-wrap .aihd-h1{font:800 clamp(2.3rem,6vw,4.5rem)/1.03 var(--aihd-fh);letter-spacing:-.035em;color:var(--aihd-tx);margin:0 0 .4em;max-width:17ch}
.aihd-home-wrap .aihd-lead{font-size:clamp(1.05rem,1.6vw,1.3rem);color:var(--aihd-mt);max-width:36rem;margin:0 0 1.8em}
.aihd-center{text-align:center}
.aihd-center .aihd-h1{margin-left:auto;margin-right:auto;max-width:19ch}
.aihd-center .aihd-lead{margin-left:auto;margin-right:auto}
.aihd-center :is(.aihd-chips,.aihd-actions){justify-content:center}
.aihd-v--minimal .aihd-h1{font-size:clamp(2.6rem,7.5vw,5.6rem);max-width:14ch}

.aihd-bgh-gradiente{background:linear-gradient(150deg,var(--aihd-p) 0%,var(--aihd-pd) 100%)}
.aihd-bgh-gradiente .aihd-hero-bg span:first-child{width:540px;height:540px;right:-160px;top:-200px;background:var(--aihd-a);opacity:.35}
.aihd-home-wrap .aihd-bgh-gradiente :is(.aihd-h1,.aihd-lead){color:var(--aihd-on-p)}
.aihd-bgh-gradiente .aihd-lead{opacity:.88}
.aihd-home-wrap .aihd-bgh-gradiente .aihd-btn{background:var(--aihd-on-p);color:var(--aihd-p)}
.aihd-home-wrap .aihd-bgh-gradiente .aihd-chip{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:var(--aihd-on-p)}
.aihd-bgh-gradiente .aihd-chip small{color:inherit;opacity:.75}

.aihd-bgh-solido{background:var(--aihd-tx)}
.aihd-home-wrap .aihd-bgh-solido :is(.aihd-h1,.aihd-lead){color:var(--aihd-bg)}
.aihd-bgh-solido .aihd-lead{opacity:.78}
.aihd-home-wrap .aihd-bgh-solido .aihd-btn{background:var(--aihd-a);color:var(--aihd-on-a)}
.aihd-home-wrap .aihd-bgh-solido .aihd-chip{background:transparent;border-color:var(--aihd-mt);color:var(--aihd-bg)}
.aihd-bgh-solido .aihd-chip small{color:inherit;opacity:.7}
.aihd-bgh-solido .aihd-float{border-color:transparent}

.aihd-bgh-malla .aihd-hero-bg span:first-child{width:600px;height:600px;left:-180px;top:-240px;background:var(--aihd-p);opacity:.26}
.aihd-bgh-malla .aihd-hero-bg span:last-child{width:500px;height:500px;right:-140px;bottom:-240px;background:var(--aihd-a);opacity:.22}
.aihd-t-oscuro .aihd-bgh-malla .aihd-hero-bg span{opacity:.4}

.aihd-bgh-patron .aihd-hero-bg{background:radial-gradient(var(--aihd-bd) 1.3px,transparent 1.5px) 0 0/22px 22px;-webkit-mask-image:radial-gradient(ellipse at 50% 40%,#000 25%,transparent 72%);mask-image:radial-gradient(ellipse at 50% 40%,#000 25%,transparent 72%)}

/* Buscador */
.aihd-search{display:flex;gap:6px;max-width:620px;margin:0 0 1.4em;padding:6px;background:var(--aihd-bg);border:1px solid var(--aihd-bd);border-radius:calc(var(--aihd-r) + 8px);box-shadow:var(--aihd-sh);transition:border-color .2s,box-shadow .2s}
.aihd-center .aihd-search{margin-left:auto;margin-right:auto}
.aihd-search:focus-within{border-color:var(--aihd-p);box-shadow:0 0 0 4px var(--aihd-p2)}
.aihd-home-wrap .aihd-search input{flex:1;min-width:0;border:0!important;background:transparent!important;padding:.85em 1em!important;font:inherit;font-size:1.05rem;color:var(--aihd-tx)!important;outline:none;box-shadow:none!important;border-radius:0!important}
.aihd-home-wrap .aihd-search button{flex:none;border:0;border-radius:calc(var(--aihd-r) + 3px);background:var(--aihd-p);color:var(--aihd-on-p);font:700 1rem var(--aihd-fh);padding:0 1.5em;cursor:pointer;transition:filter .2s}
.aihd-home-wrap .aihd-search button:hover{filter:brightness(1.08)}

/* Hero dividido: pila de tarjetas reales */
.aihd-split{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,72px);align-items:center}
.aihd-stack{position:relative;min-height:430px}
.aihd-home-wrap .aihd-float{position:absolute;width:74%;display:block;background:var(--aihd-bg);border:1px solid var(--aihd-bd);border-radius:var(--aihd-r);overflow:hidden;box-shadow:0 30px 60px -25px rgba(0,0,0,.5);color:var(--aihd-tx);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.aihd-float:nth-child(1){top:0;right:0;transform:rotate(2.5deg);z-index:1}
.aihd-float:nth-child(2){top:30%;left:0;transform:rotate(-3deg);z-index:2}
.aihd-float:nth-child(3){bottom:0;right:5%;transform:rotate(1.5deg);z-index:3}
.aihd-float:hover{transform:rotate(0) translateY(-6px);z-index:5}
.aihd-float .aihd-media{aspect-ratio:16/8}
.aihd-float strong{display:block;padding:.85em 1em;font:700 .98rem/1.3 var(--aihd-fh)}

/* Entrada orquestada del hero (una sola vez) */
@keyframes aihd-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.aihd-fx .aihd-hero-c > *{animation:aihd-rise .8s cubic-bezier(.2,.7,.2,1) both}
.aihd-fx .aihd-hero-c > :nth-child(2){animation-delay:.08s}
.aihd-fx .aihd-hero-c > :nth-child(3){animation-delay:.16s}
.aihd-fx .aihd-hero-c > :nth-child(4){animation-delay:.24s}
.aihd-fx .aihd-stack{animation:aihd-rise 1s .25s cubic-bezier(.2,.7,.2,1) both}

/* ============ 7. Tarjetas, rejillas y listas ============ */
.aihd-grid{display:grid;gap:calc(var(--aihd-k)*24px);grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.aihd-grid--sm{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:calc(var(--aihd-k)*16px)}
.aihd-grid--3{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.aihd-card{position:relative;display:flex;flex-direction:column;background:var(--aihd-sf);border:1px solid var(--aihd-bd);border-radius:var(--aihd-r);overflow:hidden;box-shadow:var(--aihd-sh);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.aihd-alt .aihd-card{background:var(--aihd-bg)}
.aihd-media{aspect-ratio:16/10;overflow:hidden;background:var(--aihd-p1)}
.aihd-home-wrap .aihd-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.aihd-ph{display:grid;place-items:center;background:linear-gradient(135deg,var(--aihd-p),var(--aihd-pd));color:var(--aihd-on-p);font:800 2.6rem var(--aihd-fh);text-transform:uppercase}
.aihd-card-b{padding:calc(var(--aihd-k)*20px);display:flex;flex-direction:column;gap:.45em;flex:1}
.aihd-home-wrap .aihd-card h3{font:700 1.12rem/1.3 var(--aihd-fh);color:var(--aihd-tx)}
.aihd-home-wrap .aihd-card p{color:var(--aihd-mt);font-size:.95rem}
.aihd-home-wrap .aihd-meta{font-size:.82rem;font-weight:700;color:var(--aihd-lk)}
.aihd-stretch::after{content:"";position:absolute;inset:0;z-index:1}

.aihd-home-wrap .aihd-tcard{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.35em;min-height:118px;padding:calc(var(--aihd-k)*22px);background:var(--aihd-sf);border:1px solid var(--aihd-bd);border-radius:var(--aihd-r);color:var(--aihd-tx);transition:transform .3s,border-color .3s,box-shadow .3s}
.aihd-alt .aihd-tcard{background:var(--aihd-bg)}
.aihd-tcard strong{font:700 1.08rem/1.25 var(--aihd-fh)}
.aihd-tcard span{font-size:.9rem;color:var(--aihd-mt)}
.aihd-tcard small{margin-top:auto;font-size:.82rem;font-weight:700;color:var(--aihd-lk)}
.aihd-tcard::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--aihd-a);transform:scaleY(0);transform-origin:bottom;transition:transform .3s}
.aihd-tcard:hover::after{transform:scaleY(1)}

/* Hover según el diseño */
.aihd-hv-elevar :is(.aihd-card,.aihd-tcard):hover{transform:translateY(-6px);box-shadow:0 26px 50px -24px rgba(0,0,0,.45)}
.aihd-hv-elevar .aihd-card:hover .aihd-media img{transform:scale(1.04)}
.aihd-hv-borde :is(.aihd-card,.aihd-tcard):hover{border-color:var(--aihd-p);box-shadow:0 0 0 1px var(--aihd-p),var(--aihd-sh)}
.aihd-hv-brillo :is(.aihd-card,.aihd-tcard)::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.2) 50%,transparent 65%);transform:translateX(-100%);transition:transform .8s ease}
.aihd-hv-brillo :is(.aihd-card,.aihd-tcard):hover::before{transform:translateX(100%)}

/* Mosaico */
.aihd-mosaic{display:grid;gap:calc(var(--aihd-k)*14px);grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(140px,auto)}
.aihd-home-wrap .aihd-tile{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:.2em;padding:1.2em;border-radius:var(--aihd-r);background:var(--aihd-sf);border:1px solid var(--aihd-bd);color:var(--aihd-tx);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.aihd-alt .aihd-tile{background:var(--aihd-bg)}
.aihd-home-wrap .aihd-tile:nth-child(1){grid-column:span 2;grid-row:span 2;background:linear-gradient(150deg,var(--aihd-p),var(--aihd-pd));color:var(--aihd-on-p);border:0}
.aihd-home-wrap .aihd-tile:nth-child(4){grid-column:span 2}
.aihd-home-wrap .aihd-tile:nth-child(5){background:var(--aihd-a);color:var(--aihd-on-a);border:0}
.aihd-home-wrap .aihd-tile[style*="--img"]{background:linear-gradient(to top,rgba(0,0,0,.8),rgba(0,0,0,.08) 70%),var(--img) center/cover no-repeat;color:#fff;border:0}
.aihd-tile strong{font:800 clamp(1.05rem,1.8vw,1.45rem)/1.15 var(--aihd-fh)}
.aihd-tile:nth-child(1) strong{font-size:clamp(1.5rem,3vw,2.3rem)}
.aihd-tile small{font-size:.85rem;opacity:.85;font-weight:600}
.aihd-tile:hover{transform:scale(1.015)}

/* Listas */
.aihd-home-wrap .aihd-list{display:grid;gap:2px}
.aihd-home-wrap .aihd-list--2{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));column-gap:28px}
.aihd-home-wrap .aihd-row{position:relative;display:flex;align-items:center;gap:14px;padding:12px 10px;border-bottom:1px solid var(--aihd-bd);border-radius:calc(var(--aihd-r)*.6);transition:background .2s}
.aihd-row:hover{background:var(--aihd-p1)}
.aihd-home-wrap .aihd-row img{width:64px;height:64px;object-fit:cover;flex:none;border-radius:calc(var(--aihd-r)*.7)}
.aihd-row a{font:700 1rem/1.3 var(--aihd-fh);color:var(--aihd-tx)}
.aihd-row .aihd-meta{display:block;margin-top:.2em}

/* Revista */
.aihd-mag{display:grid;grid-template-columns:1.35fr 1fr;gap:calc(var(--aihd-k)*28px);align-items:start}
.aihd-mag-main .aihd-media{aspect-ratio:16/9}
.aihd-home-wrap .aihd-mag-main .aihd-card h3{font-size:1.5rem}

/* Destacado */
.aihd-feature{position:relative;display:grid;grid-template-columns:1.2fr 1fr;background:var(--aihd-sf);border:1px solid var(--aihd-bd);border-radius:var(--aihd-r);overflow:hidden;box-shadow:var(--aihd-sh)}
.aihd-alt .aihd-feature{background:var(--aihd-bg)}
.aihd-feature .aihd-media{aspect-ratio:auto;min-height:340px;height:100%}
.aihd-feature-b{padding:clamp(24px,4vw,48px);display:flex;flex-direction:column;justify-content:center;gap:.7em}
.aihd-home-wrap .aihd-feature h3{font:800 clamp(1.5rem,2.8vw,2.2rem)/1.15 var(--aihd-fh);color:var(--aihd-tx)}
.aihd-home-wrap .aihd-feature p{color:var(--aihd-mt)}
.aihd-more{font-weight:700;color:var(--aihd-lk)}
.aihd-v--grande .aihd-feature{grid-template-columns:1fr;min-height:460px}
.aihd-v--grande .aihd-feature .aihd-media{position:absolute;inset:0;min-height:0}
.aihd-v--grande .aihd-feature::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85),rgba(0,0,0,.08) 65%)}
.aihd-v--grande .aihd-feature-b{position:relative;z-index:2;justify-content:flex-end;max-width:760px}
.aihd-home-wrap .aihd-v--grande .aihd-feature :is(h3,p,.aihd-meta,.aihd-more){color:#fff}

/* Por categoría */
.aihd-bycats{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:calc(var(--aihd-k)*32px)}
.aihd-v--filas .aihd-bycats{grid-template-columns:1fr;gap:calc(var(--aihd-k)*44px)}
.aihd-bycat-h{display:flex;align-items:baseline;justify-content:space-between;gap:1em;padding-bottom:.7em;margin-bottom:.8em;border-bottom:2px solid var(--aihd-p)}
.aihd-home-wrap .aihd-bycat-h h3{font:800 1.25rem/1.2 var(--aihd-fh)}
.aihd-home-wrap .aihd-bycat-h a{font-size:.88rem;font-weight:700;color:var(--aihd-lk);white-space:nowrap}

/* Cifras */
.aihd-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:calc(var(--aihd-k)*18px)}
.aihd-stat{padding:calc(var(--aihd-k)*28px) 24px;background:var(--aihd-sf);border:1px solid var(--aihd-bd);border-radius:var(--aihd-r)}
.aihd-alt .aihd-stat{background:var(--aihd-bg)}
.aihd-num{display:block;font:800 clamp(2.2rem,4.5vw,3.3rem)/1 var(--aihd-fh);letter-spacing:-.03em;color:var(--aihd-lk);font-variant-numeric:tabular-nums}
.aihd-stat-l{display:block;margin-top:.5em;color:var(--aihd-mt);font-weight:600}
.aihd-v--linea .aihd-stat{background:none;border:0;border-left:2px solid var(--aihd-a);border-radius:0;padding:6px 0 6px 22px}

/* Texto SEO */
.aihd-seo{display:grid;gap:8px}
.aihd-home-wrap .aihd-prose{max-width:44rem;font-size:1.07rem;line-height:1.8;color:var(--aihd-tx)}
.aihd-home-wrap .aihd-prose p{margin:0 0 1.1em}
.aihd-v--dos_columnas .aihd-seo{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,5vw,64px);align-items:start}
.aihd-v--dos_columnas .aihd-seo .aihd-head{position:sticky;top:100px}

/* FAQ */
.aihd-faq{display:grid;gap:10px;max-width:52rem}
.aihd-v--dos_columnas .aihd-faq{max-width:none;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start}
.aihd-faq details{background:var(--aihd-sf);border:1px solid var(--aihd-bd);border-radius:var(--aihd-r);transition:border-color .2s}
.aihd-alt .aihd-faq details{background:var(--aihd-bg)}
.aihd-faq details[open]{border-color:var(--aihd-p)}
.aihd-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1em;padding:1.05em 1.25em;font:700 1.03rem/1.4 var(--aihd-fh);color:var(--aihd-tx)}
.aihd-faq summary::-webkit-details-marker{display:none}
.aihd-faq summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid var(--aihd-lk);border-bottom:2px solid var(--aihd-lk);transform:rotate(45deg) translateY(-3px);transition:transform .25s}
.aihd-faq details[open] summary::after{transform:rotate(-135deg)}
.aihd-faq details > div{padding:0 1.25em 1.1em;color:var(--aihd-mt)}

/* CTA */
.aihd-home-wrap .aihd-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.aihd-home-wrap .aihd-cta p{color:var(--aihd-mt);margin-top:.3em;max-width:38rem}
.aihd-sec--cta.aihd-v--banda{background:linear-gradient(150deg,var(--aihd-p),var(--aihd-pd))}
.aihd-home-wrap .aihd-v--banda .aihd-cta :is(.aihd-title,p){color:var(--aihd-on-p)}
.aihd-v--banda .aihd-cta p{opacity:.85}
.aihd-home-wrap .aihd-v--banda .aihd-btn{background:var(--aihd-on-p);color:var(--aihd-p)}
.aihd-home-wrap .aihd-v--tarjeta .aihd-cta{position:relative;overflow:hidden;padding:clamp(28px,5vw,56px);border-radius:calc(var(--aihd-r)*1.5);background:var(--aihd-bg);border:1px solid var(--aihd-bd);box-shadow:var(--aihd-sh)}
.aihd-v--tarjeta .aihd-cta::before{content:"";position:absolute;top:0;bottom:0;left:0;width:6px;background:var(--aihd-a)}

/* Cómo funciona (secuencia real: aquí sí van números) */
.aihd-home-wrap .aihd-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:calc(var(--aihd-k)*22px)}
.aihd-home-wrap .aihd-step{position:relative;padding:calc(var(--aihd-k)*26px);background:var(--aihd-sf);border:1px solid var(--aihd-bd);border-radius:var(--aihd-r)}
.aihd-alt .aihd-step{background:var(--aihd-bg)}
/* El número lo imprime PHP en un .aihd-step-n. Iba en un ::before con
   counter-increment hasta la 2.7, y salían todos como «1»: las secciones
   alejadas llevan content-visibility, que implica contención de estilo, y
   la contención reinicia los contadores. */
.aihd-home-wrap .aihd-step-n{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--aihd-p);color:var(--aihd-on-p);font:800 1.1rem/1 var(--aihd-fh);margin-bottom:1em}
.aihd-home-wrap .aihd-step h3{font:700 1.1rem/1.3 var(--aihd-fh);margin-bottom:.35em}
.aihd-home-wrap .aihd-step p{color:var(--aihd-mt)}
.aihd-home-wrap .aihd-v--linea .aihd-steps{grid-template-columns:1fr;max-width:46rem;gap:0}
.aihd-home-wrap .aihd-v--linea .aihd-step{background:none;border:0;border-left:2px solid var(--aihd-bd);border-radius:0;padding:0 0 2em 2.2em;margin-left:22px}
.aihd-home-wrap .aihd-v--linea .aihd-step-n{position:absolute;left:-23px;top:0;margin-bottom:0}
body.aihd-rtl .aihd-home-wrap .aihd-v--linea .aihd-step-n{left:auto;right:-23px}

/* Aparición al hacer scroll (solo con JS y animaciones activas) */
.aihd-js .aihd-reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.aihd-js .aihd-reveal.is-in{opacity:1;transform:none}

/* ============ 8. Responsive y accesibilidad ============ */
@media (max-width:900px){
	.aihd-split{grid-template-columns:1fr}
	.aihd-stack{min-height:0;display:grid;gap:12px}
	.aihd-home-wrap .aihd-float{position:relative;width:100%;transform:none!important;inset:auto}
	.aihd-float:nth-child(3){display:none}
	.aihd-mag,.aihd-feature,.aihd-v--dos_columnas .aihd-seo{grid-template-columns:1fr}
	.aihd-v--dos_columnas .aihd-seo .aihd-head{position:static}
	.aihd-feature .aihd-media{min-height:220px}
}
@media (max-width:780px){
	.aihd-mosaic{grid-template-columns:1fr 1fr}
	.aihd-home-wrap .aihd-tile:nth-child(1){grid-column:span 2;grid-row:span 1;min-height:180px}
	.aihd-home-wrap .aihd-tile:nth-child(4){grid-column:auto}
	.aihd-home-wrap .aihd-search button{padding:0 1em}
	.aihd-home-wrap .aihd-cta{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
	.aihd-home-wrap *,.aihd-home-wrap *::before,.aihd-home-wrap *::after,.aihd-open::before,.aihd-top{animation:none!important;transition:none!important}
	.aihd-js .aihd-reveal{opacity:1;transform:none}
}


/* ============ 9. Temas de bloques (FSE) ============ */
/* Los temas de bloques no usan #primary ni .site-main: sin estas reglas la
   portada quedaba encajonada en el ancho de contenido del theme.json. */
body.aihd-fse :is(.wp-site-blocks,.wp-block-group,.wp-block-post-content){background-color:transparent}
body.aihd-fse.aihd-home :is(.wp-block-post-title,.wp-block-post-date,.wp-block-post-author,.wp-block-comments,.wp-block-post-navigation-link){display:none!important}
body.aihd-fse.aihd-home .wp-block-post-content{max-width:none!important;padding:0!important;margin:0!important}
body.aihd-fse.aihd-home .wp-block-post-content > .aihd-home-wrap{max-width:none!important}
body.aihd-fse.aihd-home :is(.wp-block-post-content,.entry-content) > *{max-width:none}
body.aihd-fse .aihd-home-wrap :is(.wp-block-group,.entry-content){padding:0}
.aihd-fse .aihd-home-wrap{--wp--style--global--content-size:none;--wp--style--global--wide-size:none}

/* El reset del contenido del tema aplicado a los bloques del núcleo */
body.aihd-on.aihd-fse :is(.wp-block-post-content,.entry-content) a:not(.aihd-home-wrap a):not(.wp-block-button__link){color:var(--aihd-lk)}

/* ============ 10. Enlace de salto y foco ============ */
.aihd-skip{position:absolute;left:-9999px;top:0;z-index:100000;padding:.8em 1.3em;background:var(--aihd-p);color:var(--aihd-on-p);font:700 1rem var(--aihd-fh);border-radius:0 0 var(--aihd-r) 0}
.aihd-skip:focus{left:0}

/* ============ 11. Impresión ============ */
@media print{
	.aihd-sec{padding:14px 0;background:#fff!important;break-inside:avoid}
	.aihd-hero-bg,.aihd-top,.aihd-progress,.aihd-filter-w,.aihd-search{display:none!important}
	.aihd-home-wrap :is(.aihd-h1,.aihd-title,.aihd-card h3){color:#000!important}
	.aihd-home-wrap .aihd-card{box-shadow:none;border:1px solid #ccc;break-inside:avoid}
	.aihd-faq details{break-inside:avoid}
	.aihd-faq details > div{display:block!important}
	.aihd-home-wrap a[href^="http"]::after{content:" (" attr(href) ")";font-size:.75em;color:#555}
}

/* ============ 12. Contenedor: tarjetas que se adaptan a su hueco ============ */
@supports (container-type:inline-size){
	.aihd-grid,.aihd-bycats,.aihd-mag{container-type:inline-size}
	@container (max-width:420px){
		.aihd-feature{grid-template-columns:1fr}
	}
}

/* ============ 13. Clusters de blog de nicho ============ */
.aihd-clusters{display:grid;gap:calc(var(--aihd-k)*56px)}
.aihd-cluster-h{display:grid;gap:.35em;margin:0 0 calc(var(--aihd-k)*1.5rem);padding-bottom:.8em;border-bottom:2px solid var(--aihd-p)}
.aihd-home-wrap .aihd-cluster-h h2{font:800 clamp(1.35rem,2.6vw,1.95rem)/1.15 var(--aihd-fh);letter-spacing:-.02em}
.aihd-home-wrap .aihd-cluster-h h2 a{color:var(--aihd-tx)}
.aihd-home-wrap .aihd-cluster-h h2 a:hover{color:var(--aihd-lk)}
.aihd-home-wrap .aihd-cluster-d{color:var(--aihd-mt);max-width:48rem;font-size:.98rem}
.aihd-home-wrap .aihd-cluster-all{justify-self:start;font:700 .88rem var(--aihd-fh);color:var(--aihd-lk)}
.aihd-cluster--inv .aihd-cluster-h{border-bottom-color:var(--aihd-a)}
.aihd-cluster--inv .aihd-cluster-h h2::before{content:"";display:block;width:2.2em;height:.2em;border-radius:3px;background:var(--aihd-a);margin-bottom:.4em}

/* Rejillas de columnas fijas (clusters y shortcodes) */
.aihd-cols-1{grid-template-columns:1fr}
.aihd-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.aihd-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.aihd-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.aihd-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.aihd-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1000px){.aihd-cols-4,.aihd-cols-5,.aihd-cols-6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.aihd-cols-3,.aihd-cols-4,.aihd-cols-5,.aihd-cols-6{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.aihd-cols-2,.aihd-cols-3,.aihd-cols-4,.aihd-cols-5,.aihd-cols-6{grid-template-columns:1fr}}

/* ============ 14. Jerarquía del directorio ============ */
.aihd-jer{display:grid;gap:calc(var(--aihd-k)*26px)}
.aihd-jer--cols{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.aihd-jer-b{padding:calc(var(--aihd-k)*20px) calc(var(--aihd-k)*22px);background:var(--aihd-sf);border:1px solid var(--aihd-bd);border-radius:var(--aihd-r)}
.aihd-alt .aihd-jer-b{background:var(--aihd-bg)}
.aihd-home-wrap .aihd-jer-b h3{font:800 1.18rem/1.2 var(--aihd-fh);margin-bottom:.7em}
.aihd-home-wrap .aihd-jer-b h3 a{color:var(--aihd-tx)}
.aihd-home-wrap .aihd-jer-b h3 a:hover{color:var(--aihd-lk)}
.aihd-home-wrap .aihd-jer-b h3 small{font-size:.72em;font-weight:600;color:var(--aihd-mt)}

/* ============ 15. Cercanía ============ */
.aihd-geo-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 calc(var(--aihd-k)*1.6rem)}
.aihd-home-wrap .aihd-geo-ask{background:var(--aihd-sf);color:var(--aihd-tx);border:1.5px solid var(--aihd-bd);padding:.7em 1.25em;font-size:.95rem;cursor:pointer}
.aihd-home-wrap .aihd-geo-ask:hover{border-color:var(--aihd-p);color:var(--aihd-lk);transform:none;filter:none}
.aihd-home-wrap .aihd-geo-ask[disabled]{opacity:.6;cursor:progress}
.aihd-geo-msg{font-size:.9rem;color:var(--aihd-mt)}
.aihd-dist{display:inline-block;margin-top:.4em;padding:.15em .6em;border-radius:999px;background:var(--aihd-p1);color:var(--aihd-lk);font:700 .78rem/1.5 var(--aihd-fh);font-variant-numeric:tabular-nums}
.aihd-row .aihd-dist{margin-top:.15em}
.aihd-geo-ok > :first-child{outline:2px solid var(--aihd-a);outline-offset:3px;border-radius:var(--aihd-r)}

/* ============ 16. Shortcodes fuera de la portada ============ */
.aihd-sc{margin:2em 0}
.aihd-sc .aihd-sc-title{font-family:var(--aihd-fh);margin:0 0 .8em}
.aihd-sc :is(.aihd-grid,.aihd-chips,.aihd-mosaic,.aihd-list){margin:0}
.aihd-sc-empty{color:var(--aihd-mt);font-style:italic}
.aihd-sc-buscar{margin:0 0 1em}
.aihd-sc-input{width:100%;max-width:420px;padding:.7em 1em;font:inherit;background:var(--aihd-bg);color:var(--aihd-tx);border:1px solid var(--aihd-bd);border-radius:calc(var(--aihd-r) + 4px)}
.aihd-sc-input:focus{border-color:var(--aihd-p);outline:0;box-shadow:0 0 0 3px var(--aihd-p2)}
/* Fuera de .aihd-home-wrap los enlaces del tema heredan subrayado: lo quitamos */
.aihd-sc :is(a.aihd-chip,a.aihd-tcard,a.aihd-tile,.aihd-card a,.aihd-row a){text-decoration:none;box-shadow:none;border-bottom:0;color:inherit}
.aihd-sc :is(ul,ol){list-style:none;margin:0;padding:0}
.aihd-sc li::before{content:none}
.aihd-sc img{max-width:100%;height:auto}

/* ============ 17. Idiomas de derecha a izquierda ============ */
body.aihd-rtl .aihd-home-wrap{direction:rtl;text-align:right}
body.aihd-rtl .aihd-left{text-align:right}
body.aihd-rtl :is(.aihd-tcard::after,.aihd-v--tarjeta .aihd-cta::before){left:auto;right:0}
body.aihd-rtl .aihd-h2-caja :is(.the-content,.entry-content) h2{border-left:0;border-right:4px solid var(--aihd-p);border-radius:var(--aihd-r) 0 0 var(--aihd-r)}
body.aihd-rtl .aihd-v--linea .aihd-step{border-left:0;border-right:2px solid var(--aihd-bd);padding:0 2.2em 2em 0;margin:0 22px 0 0}
body.aihd-rtl .aihd-v--linea .aihd-step::before{left:auto;right:-23px}
body.aihd-rtl .aihd-top{right:auto;left:18px}

/* Tipografías CJK: interletrado y altura de línea distintos */
body:is(.aihd-lang-ja,.aihd-lang-zh,.aihd-lang-ko) .aihd-home-wrap{line-height:1.85}
body:is(.aihd-lang-ja,.aihd-lang-zh,.aihd-lang-ko) .aihd-home-wrap :is(.aihd-h1,.aihd-title){letter-spacing:0;line-height:1.35}
body:is(.aihd-lang-ja,.aihd-lang-zh,.aihd-lang-ko) .aihd-home-wrap .aihd-h1{max-width:22ch}

/* ============================================================
   18. Escala tipográfica modular (sustituye a los clamp() sueltos)
   Los tamaños vienen de --aihd-t-2 … --aihd-t7, calculados en PHP
   a partir de la razón elegida por el diseño.
   ============================================================ */
.aihd-home-wrap{font-size:var(--aihd-t0,1rem);line-height:var(--aihd-lh-texto,1.68)}
.aihd-home-wrap .aihd-h1{font-size:var(--aihd-t6);line-height:var(--aihd-lh-titular);letter-spacing:var(--aihd-ls-titular);max-width:16ch}
.aihd-v--minimal .aihd-h1{font-size:var(--aihd-t7);max-width:13ch}
.aihd-home-wrap .aihd-lead{font-size:var(--aihd-t1);line-height:var(--aihd-lh-medio);max-width:var(--aihd-medida)}
.aihd-home-wrap .aihd-title{font-size:var(--aihd-t3);line-height:var(--aihd-lh-medio);letter-spacing:var(--aihd-ls-medio)}
.aihd-home-wrap .aihd-sub{font-size:var(--aihd-t0);max-width:var(--aihd-medida)}
.aihd-home-wrap .aihd-card h3{font-size:var(--aihd-t1);line-height:var(--aihd-lh-medio);letter-spacing:var(--aihd-ls-medio)}
.aihd-home-wrap .aihd-mag-main .aihd-card h3{font-size:var(--aihd-t2)}
.aihd-home-wrap .aihd-feature h3{font-size:var(--aihd-t4);letter-spacing:var(--aihd-ls-medio)}
.aihd-home-wrap .aihd-cluster-h h2{font-size:var(--aihd-t3);letter-spacing:var(--aihd-ls-medio)}
.aihd-home-wrap .aihd-meta{font-size:var(--aihd-tm1);letter-spacing:var(--aihd-ls-micro);text-transform:uppercase}
.aihd-home-wrap .aihd-prose{font-size:var(--aihd-t0);line-height:var(--aihd-lh-texto);max-width:var(--aihd-medida-ancha)}
.aihd-num{font-size:var(--aihd-t5);line-height:1;letter-spacing:var(--aihd-ls-titular)}
.aihd-home-wrap .aihd-chip{font-size:var(--aihd-tm1)}
.aihd-home-wrap .aihd-chip--lg{font-size:var(--aihd-t0)}
.aihd-home-wrap .aihd-tcard strong{font-size:var(--aihd-t1)}
.aihd-tile strong{font-size:var(--aihd-t1)}
.aihd-home-wrap .aihd-tile:nth-child(1) strong{font-size:var(--aihd-t3)}
.aihd-home-wrap .aihd-btn{font-size:var(--aihd-t0)}
.aihd-faq summary{font-size:var(--aihd-t0)}
.aihd-home-wrap .aihd-step h3{font-size:var(--aihd-t1)}
/* Ritmo vertical: las secciones y los encabezados usan la misma unidad */
.aihd-sec{padding-block:calc(var(--aihd-ritmo-3) * var(--aihd-k,1))}
.aihd-sec--hero{padding-block:calc(var(--aihd-ritmo-4) * var(--aihd-k,1))}
.aihd-head{margin-bottom:calc(var(--aihd-ritmo) * var(--aihd-k,1))}
/* Equilibrado de líneas: evita la palabra huérfana en titulares y la línea
   corta final en párrafos. Es gratis y se nota en todas las pantallas. */
.aihd-home-wrap :is(.aihd-h1,.aihd-title,.aihd-card h3,.aihd-feature h3,.aihd-cluster-h h2,.aihd-tcard strong){text-wrap:balance}
.aihd-home-wrap :is(.aihd-lead,.aihd-sub,.aihd-prose p,.aihd-card p){text-wrap:pretty}
.aihd-home-wrap{font-optical-sizing:auto;font-synthesis-weight:none}
.aihd-num,.aihd-chip small,.aihd-dist{font-variant-numeric:tabular-nums}

/* ============================================================
   19. Imágenes: color dominante y duotono
   ============================================================ */
.aihd-media{background:var(--aihd-img,var(--aihd-p1))}
.aihd-home-wrap .aihd-media img{transition:transform .6s ease,filter .5s ease}
/* Respaldo primero: si el navegador no entiende el color relativo, la regla
   siguiente se descarta entera y queda el degradado de marca de siempre. */
.aihd-ph{position:relative;background:linear-gradient(140deg, var(--aihd-p), var(--aihd-pd))}
@supports (background:linear-gradient(hsl(from red h s l), #000)){
	.aihd-ph{background:linear-gradient(140deg,
		hsl(from var(--aihd-p) calc(h + var(--aihd-giro,0deg)) s l) 0%,
		hsl(from var(--aihd-pd) calc(h + var(--aihd-giro,0deg)) s l) 100%)}
}
.aihd-ph span{font:800 clamp(2rem,4vw,3.2rem)/1 var(--aihd-fh);color:var(--aihd-on-p);text-transform:uppercase;opacity:.85}
.aihd-duo-def{width:0;height:0;overflow:hidden}

/* ============================================================
   20. Inclinación y foco de luz en tarjetas
   ============================================================ */
.aihd-fx-tilt .aihd-home-wrap :is(.aihd-card,.aihd-tcard,.aihd-tile){transform-style:preserve-3d;will-change:transform}
.aihd-fx-tilt .aihd-home-wrap :is(.aihd-card,.aihd-tcard,.aihd-tile).aihd-tilt-on{
	transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateZ(0);
	transition:transform .12s linear}
/* El foco de luz va solo en .aihd-card y .aihd-tile: .aihd-tcard ya usa su
   ::after para la barra de acento lateral y se la comeríamos. */
.aihd-fx-tilt .aihd-home-wrap :is(.aihd-card,.aihd-tile)::after{
	content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;
	transition:opacity .3s ease;border-radius:inherit;
	background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%), rgb(255 255 255 / .16), transparent 62%)}
.aihd-fx-tilt .aihd-home-wrap :is(.aihd-card,.aihd-tile).aihd-tilt-on::after{opacity:1}
.aihd-t-oscuro.aihd-fx-tilt .aihd-home-wrap :is(.aihd-card,.aihd-tile)::after{
	background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%), rgb(255 255 255 / .09), transparent 62%)}
/* En las tarjetas de categoría el foco se pinta como fondo, no como capa. */
.aihd-fx-tilt .aihd-home-wrap .aihd-tcard.aihd-tilt-on{
	background-image:radial-gradient(200px circle at var(--mx,50%) var(--my,50%), rgb(255 255 255 / .12), transparent 60%)}
/* La tarjeta ya usaba ::after para el enlace extendido en algunos casos:
   ese va en .aihd-stretch, que conserva su propio z-index por encima. */
.aihd-stretch::after{z-index:4}

/* Variante de hover «foco»: halo del color de acento */
.aihd-hv-foco :is(.aihd-card,.aihd-tcard,.aihd-tile):hover{
	box-shadow:0 0 0 2px var(--aihd-a), 0 18px 40px -22px rgb(0 0 0 / .5);
	border-color:transparent}

/* ============================================================
   21. Revelado por palabras
   ============================================================ */
.aihd-w{display:inline-block;will-change:transform,opacity}
.aihd-fx-reveal .aihd-w{opacity:0;transform:translateY(.5em) rotate(1.5deg)}
.aihd-fx-reveal .aihd-w-in .aihd-w{
	opacity:1;transform:none;
	transition:opacity .6s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
	transition-delay:calc(var(--i,0) * 55ms)}
.aihd-mov-expresivo .aihd-fx-reveal .aihd-w{transform:translateY(.75em) rotate(3deg) scale(.97)}

/* ============================================================
   22. Parallax del hero
   ============================================================ */
.aihd-fx-parallax .aihd-sec--hero .aihd-hero-c{transform:translateY(var(--py,0));opacity:var(--pf,1)}
@supports (animation-timeline: view()){
	.aihd-fx-parallax .aihd-sec--hero .aihd-hero-c{
		transform:none;opacity:1;
		animation:aihd-par linear both;
		animation-timeline:view();
		animation-range:exit -20% exit 90%}
	.aihd-fx-parallax .aihd-sec--hero .aihd-stack{
		animation:aihd-par-lento linear both;
		animation-timeline:view();
		animation-range:exit -20% exit 100%}
	/* Aparición de secciones ligada al scroll: sin JS y sin saltos */
	.aihd-fx .aihd-reveal{
		animation:aihd-entrar linear both;
		animation-timeline:view();
		animation-range:entry 8% entry 46%}
	.aihd-js .aihd-reveal{opacity:1;transform:none;transition:none}
}
@keyframes aihd-par{to{transform:translateY(-14%);opacity:.25}}
@keyframes aihd-par-lento{to{transform:translateY(-6%)}}
@keyframes aihd-entrar{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* ============================================================
   23. Conmutador de tema
   ============================================================ */
.aihd-tema-btn{position:fixed;right:18px;bottom:78px;z-index:9999;width:46px;height:46px;padding:0;
	display:grid;place-items:center;border-radius:50%;cursor:pointer;
	background:var(--aihd-sf);color:var(--aihd-tx);border:1px solid var(--aihd-bd);
	box-shadow:0 10px 24px -10px rgb(0 0 0 / .35);transition:transform .25s ease,border-color .25s ease}
.aihd-tema-btn:hover{transform:translateY(-2px);border-color:var(--aihd-p)}
.aihd-tema-btn svg{grid-area:1/1;transition:opacity .25s ease,transform .35s ease}
.aihd-tema-btn .aihd-i-luna{opacity:0;transform:rotate(-40deg) scale(.6)}
:root[data-aihd-tema="oscuro"] .aihd-tema-btn .aihd-i-sol{opacity:0;transform:rotate(40deg) scale(.6)}
:root[data-aihd-tema="oscuro"] .aihd-tema-btn .aihd-i-luna{opacity:1;transform:none}
body.aihd-rtl .aihd-tema-btn{right:auto;left:18px}
/* Sin botón de subir, el conmutador ocupa su sitio */
body:not(:has(.aihd-top)) .aihd-tema-btn{bottom:22px}

/* Transición circular al cambiar de tema */
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
.aihd-vt-tema::view-transition-new(root){
	animation:aihd-circulo .45s cubic-bezier(.2,.7,.2,1);
	clip-path:circle(150% at var(--aihd-vt-x,50%) var(--aihd-vt-y,50%))}
.aihd-vt-tema::view-transition-old(root){z-index:1}
.aihd-vt-tema::view-transition-new(root){z-index:2}
@keyframes aihd-circulo{from{clip-path:circle(0 at var(--aihd-vt-x,50%) var(--aihd-vt-y,50%))}}

/* El contenido no debe parpadear al cambiar de variable */
.aihd-home-wrap,.aihd-home-wrap :is(.aihd-card,.aihd-tcard,.aihd-tile,.aihd-stat,.aihd-jer-b,.aihd-step,.aihd-faq details){
	transition:background-color .3s ease,border-color .3s ease,color .3s ease}

/* ============================================================
   24. Reducir movimiento: todo lo anterior se apaga
   ============================================================ */
@media (prefers-reduced-motion:reduce){
	.aihd-fx-reveal .aihd-w{opacity:1;transform:none;transition:none}
	.aihd-fx-tilt .aihd-home-wrap :is(.aihd-card,.aihd-tcard,.aihd-tile).aihd-tilt-on{transform:none}
	.aihd-fx-parallax .aihd-sec--hero .aihd-hero-c{transform:none;opacity:1;animation:none}
	.aihd-tema-btn svg{transition:none}
	.aihd-vt-tema::view-transition-new(root){animation:none;clip-path:none}
}

/* ============================================================
   25. MÓVIL 1 — Barra de acciones en la zona del pulgar
   En un teléfono de 6", el tercio superior es inalcanzable con
   una mano. Las acciones que importan van abajo.
   ============================================================ */
.aihd-barra{display:none}
@media (max-width:760px){
	.aihd-barra{
		position:fixed;left:0;right:0;bottom:0;z-index:9998;
		display:grid;grid-auto-flow:column;grid-auto-columns:1fr;
		background:color-mix(in srgb, var(--aihd-bg) 88%, transparent);
		-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
		border-top:1px solid var(--aihd-bd);
		padding-bottom:env(safe-area-inset-bottom,0);
		transition:transform .28s cubic-bezier(.2,.7,.2,1)}
	@supports not (backdrop-filter:blur(1px)){.aihd-barra{background:var(--aihd-bg)}}
	.aihd-barra.es-oculta{transform:translateY(110%)}
	.aihd-barra-i{
		display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
		/* 56px de alto: por encima del mínimo de 44px de las pautas táctiles */
		min-height:56px;padding:8px 4px;border:0;background:none;cursor:pointer;
		color:var(--aihd-mt);font:600 .69rem/1.1 var(--aihd-fh);text-decoration:none;
		-webkit-tap-highlight-color:transparent}
	.aihd-barra-i svg{width:22px;height:22px;flex:none}
	.aihd-barra-i:active{background:var(--aihd-p1)}
	.aihd-barra-i.es-principal{color:var(--aihd-lk)}
	.aihd-barra-i.es-principal svg{stroke-width:2.2}
	.aihd-barra-i span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
	/* Sitio para la barra al final de la página y encima de los flotantes */
	body.aihd-con-barra{padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}
	body.aihd-con-barra .aihd-top{bottom:calc(74px + env(safe-area-inset-bottom,0px))}
	body.aihd-con-barra .aihd-tema-btn{bottom:calc(130px + env(safe-area-inset-bottom,0px))}
	.aihd-barra-buscar{
		position:fixed;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom,0px));z-index:9997;
		padding:12px;background:var(--aihd-sf);border-top:1px solid var(--aihd-bd);
		transform:translateY(120%);transition:transform .28s cubic-bezier(.2,.7,.2,1)}
	.aihd-barra-buscar.es-abierto{transform:none}
	.aihd-barra-buscar .aihd-search{margin:0;max-width:none}
}
@media (prefers-reduced-motion:reduce){
	.aihd-barra,.aihd-barra-buscar{transition:none}
}

/* ============================================================
   26. MÓVIL 2 — Rejillas que se convierten en carrusel
   Seis tarjetas apiladas son seis pantallas de alto que nadie
   recorre. Con scroll-snap se deslizan con el pulgar.
   ============================================================ */
.aihd-car-nav{display:none}
@media (max-width:760px){
	.aihd-home-wrap .aihd-desliza,
	.aihd-sc .aihd-desliza{
		display:grid;
		grid-auto-flow:column;
		grid-auto-columns:78%;
		grid-template-columns:none;
		gap:14px;
		overflow-x:auto;
		overscroll-behavior-x:contain;
		scroll-snap-type:x mandatory;
		scroll-padding-inline:clamp(18px,4vw,36px);
		/* El carrusel sangra hasta el borde: se ve que hay más a la derecha */
		margin-inline:calc(clamp(18px,4vw,36px) * -1);
		padding-inline:clamp(18px,4vw,36px);
		padding-bottom:6px;
		scrollbar-width:none}
	.aihd-desliza::-webkit-scrollbar{display:none}
	.aihd-desliza > *{scroll-snap-align:start;min-width:0}
	.aihd-desliza.aihd-cols-2{grid-auto-columns:86%}
	.aihd-desliza.aihd-mosaic > *{grid-column:auto!important;grid-row:auto!important;min-height:150px}
	/* La inclinación estorba en un carrusel táctil */
	.aihd-desliza > *{transform:none!important}

	.aihd-car-nav{
		display:flex;justify-content:center;gap:7px;margin-top:14px;
		padding:0}
	.aihd-car-p{
		width:7px;height:7px;padding:0;border:0;border-radius:99px;cursor:pointer;
		background:var(--aihd-bd);transition:width .25s ease,background .25s ease;
		/* El punto es pequeño, pero su área táctil no */
		position:relative}
	.aihd-car-p::after{content:"";position:absolute;inset:-14px -5px}
	.aihd-car-p.es-activo{width:20px;background:var(--aihd-p)}
}
@media (prefers-reduced-motion:reduce){
	.aihd-desliza{scroll-behavior:auto}
	.aihd-car-p{transition:none}
}

/* ============================================================
   27. MÓVIL 3 — Ergonomía y rendimiento
   ============================================================ */
@media (max-width:760px){
	/* Altura de ventana estable: con 100vh el hero salta cuando la barra
	   del navegador se recoge. svh es la altura pequeña, que no cambia. */
	.aihd-sec--hero{min-height:auto;padding-block:clamp(56px,14svh,110px)}
	.aihd-v--minimal.aihd-sec--hero{min-height:78svh;display:grid;align-content:center}

	/* Áreas táctiles: nada por debajo de 44px, que es el mínimo de las
	   pautas de accesibilidad de Apple y del WCAG 2.2 (criterio 2.5.8). */
	.aihd-home-wrap :is(.aihd-btn,.aihd-chip,.aihd-search button,.aihd-faq summary){min-height:44px}
	.aihd-home-wrap .aihd-chip{padding-block:.7em}
	.aihd-home-wrap .aihd-row{padding-block:14px}
	.aihd-faq summary{padding-block:1.1em}
	.aihd-top,.aihd-tema-btn{width:48px;height:48px}

	/* iOS amplía automáticamente cualquier campo con menos de 16px al
	   enfocarlo, y luego no vuelve. Se evita fijando 16px exactos. */
	.aihd-home-wrap :is(input,select,textarea),
	body.aihd-on :is(input[type=text],input[type=search],input[type=email],input[type=tel],textarea,select){font-size:16px}

	/* El texto no se reescala solo al girar el teléfono */
	body.aihd-on{-webkit-text-size-adjust:100%;text-size-adjust:100%}

	/* El navegador se salta el pintado de las secciones fuera de pantalla.
	   La altura estimada evita que la barra de desplazamiento pegue saltos. */
	.aihd-home-wrap .aihd-sec:nth-child(n+4){
		content-visibility:auto;
		contain-intrinsic-size:auto 600px}

	/* En móvil no hay puntero: la inclinación y el foco de luz sobran, y el
	   parallax con la barra del navegador recogiéndose se ve mal. */
	.aihd-fx-tilt .aihd-home-wrap :is(.aihd-card,.aihd-tcard,.aihd-tile)::after{display:none}
	.aihd-fx-parallax .aihd-sec--hero .aihd-hero-c{transform:none;opacity:1;animation:none}

	/* Las tablas largas se desplazan con indicación de que hay más */
	.aihd-on :is(.the-content,.entry-content) table:not(.aihd-home-wrap *){
		-webkit-overflow-scrolling:touch;
		background-image:linear-gradient(to right, var(--aihd-bg) 30%, transparent),
			linear-gradient(to left, var(--aihd-bg) 30%, transparent);
		background-position:left center, right center;
		background-repeat:no-repeat;
		background-size:28px 100%, 28px 100%;
		background-attachment:local, local}

	/* El titular no debe partirse en cinco líneas de dos palabras */
	.aihd-home-wrap .aihd-h1{max-width:none;hyphens:auto}
	.aihd-home-wrap .aihd-lead{max-width:none}

	/* Separación entre acciones para no pulsar la equivocada */
	.aihd-actions{gap:10px}
	.aihd-home-wrap .aihd-btn{flex:1 1 auto;justify-content:center}
}

/* Pantallas muy estrechas: una columna limpia */
@media (max-width:380px){
	.aihd-home-wrap .aihd-desliza{grid-auto-columns:86%}
	.aihd-barra-i span{font-size:.64rem}
}

/* ============================================================
   28. EL CONTENIDO, CON EL MISMO SISTEMA QUE LA PORTADA

   El contenido va envuelto por el plugin en .aihd-doc, así que
   hay un único selector fiable en todos los temas. Todo lo de
   aquí usa los mismos tokens que la portada: la escala
   tipográfica, el ritmo vertical y las rampas de color.
   ============================================================ */
body.aihd-on.aihd-doc-on .aihd-doc{
	--aihd-doc-w:var(--aihd-medida-ancha,46em);
	font-family:var(--aihd-fb);
	font-size:var(--aihd-t0);
	line-height:var(--aihd-lh-texto);
	color:var(--aihd-tx);
	max-width:var(--aihd-doc-w);
	margin-inline:auto;
	padding-inline:clamp(18px,4vw,28px);
	text-wrap:pretty}
body.aihd-on.aihd-doc-on .aihd-doc--ancho{--aihd-doc-w:60em}
body.aihd-on.aihd-doc-on .aihd-doc--estrecho{--aihd-doc-w:38em}

/* --- Ritmo vertical: el espacio es lo que hacía que se viera «todo junto».
   Los encabezados llevan mucho aire arriba y poco abajo, para que se lean
   pegados a lo que titulan y separados de lo anterior. --- */
body.aihd-on.aihd-doc-on .aihd-doc > * + *{margin-top:var(--aihd-ritmo)}
body.aihd-on.aihd-doc-on .aihd-doc :is(h2,h3,h4,h5,h6){
	font-family:var(--aihd-fh);
	color:var(--aihd-tx);
	line-height:var(--aihd-lh-medio);
	letter-spacing:var(--aihd-ls-medio);
	text-wrap:balance;
	scroll-margin-top:calc(var(--aihd-cab-h,0px) + 20px)}
body.aihd-on.aihd-doc-on .aihd-doc > h2{font-size:var(--aihd-t3);font-weight:800;margin-top:var(--aihd-ritmo-3);margin-bottom:calc(var(--aihd-ritmo) * .45)}
body.aihd-on.aihd-doc-on .aihd-doc > h3{font-size:var(--aihd-t2);font-weight:700;margin-top:var(--aihd-ritmo-2);margin-bottom:calc(var(--aihd-ritmo) * .35)}
body.aihd-on.aihd-doc-on .aihd-doc > h4{font-size:var(--aihd-t1);font-weight:700;margin-top:calc(var(--aihd-ritmo) * 1.4);margin-bottom:calc(var(--aihd-ritmo) * .3)}
body.aihd-on.aihd-doc-on .aihd-doc > :is(h5,h6){font-size:var(--aihd-t0);font-weight:700;margin-top:var(--aihd-ritmo);margin-bottom:.3em}
body.aihd-on.aihd-doc-on .aihd-doc > h2:first-child,
body.aihd-on.aihd-doc-on .aihd-doc > h3:first-child{margin-top:0}

/* --- Párrafos: medida, interlineado y una entradilla para el primero --- */
body.aihd-on.aihd-doc-on .aihd-doc p{color:var(--aihd-tx);margin-block:0}
body.aihd-on.aihd-doc-on .aihd-doc > p:first-of-type{
	font-size:var(--aihd-t1);
	line-height:1.6;
	color:var(--aihd-tx)}

/* --- Enlaces: subrayados que se ven, con el color ya verificado --- */
body.aihd-on.aihd-doc-on .aihd-doc a:not(.aihd-btn):not([class*="button"]):not([class*="btn"]){
	color:var(--aihd-lk);
	text-decoration:underline;
	text-decoration-thickness:.09em;
	text-underline-offset:.19em;
	text-decoration-color:color-mix(in srgb, var(--aihd-lk) 42%, transparent);
	transition:text-decoration-color .18s ease,color .18s ease}
body.aihd-on.aihd-doc-on .aihd-doc a:not(.aihd-btn):hover{
	text-decoration-color:currentColor;
	color:var(--aihd-p-hover,var(--aihd-lk))}

/* --- Listas: con aire entre elementos y marcador de marca --- */
body.aihd-on.aihd-doc-on .aihd-doc :is(ul,ol){padding-left:1.5em;margin-block:0}
body.aihd-on.aihd-doc-on .aihd-doc :is(ul,ol) li + li{margin-top:.55em}
body.aihd-on.aihd-doc-on .aihd-doc li{color:var(--aihd-tx);padding-left:.2em}
body.aihd-on.aihd-doc-on .aihd-doc li::marker{color:var(--aihd-p);font-weight:700}
body.aihd-on.aihd-doc-on .aihd-doc li > :is(ul,ol){margin-top:.55em}

/* --- Cita: un bloque de verdad, no un párrafo con una barra --- */
body.aihd-on.aihd-doc-on .aihd-doc :is(blockquote,.wp-block-quote){
	margin-block:var(--aihd-ritmo-2);
	padding:1.3em 1.5em;
	background:var(--aihd-sf);
	border:1px solid var(--aihd-bd-sf);
	border-left:4px solid var(--aihd-a);
	border-radius:0 var(--aihd-r) var(--aihd-r) 0;
	font-size:var(--aihd-t1);
	line-height:1.55;
	font-style:normal;
	color:var(--aihd-tx)}
body.aihd-on.aihd-doc-on .aihd-doc blockquote :is(cite,.wp-block-quote__citation){
	display:block;margin-top:.8em;font-size:var(--aihd-tm1);font-style:normal;
	color:var(--aihd-mt);font-family:var(--aihd-fh);font-weight:600}
body.aihd-on.aihd-doc-on .aihd-doc .wp-block-pullquote{
	border:0;border-block:3px solid var(--aihd-p);background:none;padding:1.6em 0;text-align:center}

/* --- Imágenes y figuras --- */
body.aihd-on.aihd-doc-on .aihd-doc :is(img,video,iframe){
	max-width:100%;height:auto;border-radius:var(--aihd-r);display:block}
body.aihd-on.aihd-doc-on .aihd-doc :is(figure,.wp-block-image){margin-block:var(--aihd-ritmo-2);margin-inline:0}
body.aihd-on.aihd-doc-on .aihd-doc figcaption{
	margin-top:.7em;font-size:var(--aihd-tm1);line-height:1.5;
	color:var(--aihd-mt);text-align:center;
	padding-inline:1em;border-left:0}
body.aihd-on.aihd-doc-on .aihd-doc .alignwide,
body.aihd-on.aihd-doc-on .aihd-doc .wp-block-image.alignwide{
	width:min(100vw - 32px, calc(var(--aihd-doc-w) + 14vw));
	max-width:none;margin-inline:calc(50% - min(50vw - 16px, (var(--aihd-doc-w) + 14vw)/2))}
body.aihd-on.aihd-doc-on .aihd-doc :is(.alignleft,.alignright){max-width:44%}
@media (max-width:640px){
	body.aihd-on.aihd-doc-on .aihd-doc :is(.alignleft,.alignright,.alignwide){float:none;max-width:100%;width:auto;margin-inline:0}
}

/* --- Separador: el mismo gesto que en la portada --- */
body.aihd-on.aihd-doc-on .aihd-doc :is(hr,.wp-block-separator){
	border:0;height:0;margin-block:var(--aihd-ritmo-3);
	border-top:1px solid var(--aihd-bd-f);
	max-width:none;opacity:1}
body.aihd-on.aihd-doc-on .aihd-doc .wp-block-separator.is-style-dots{border:0;text-align:center;color:var(--aihd-p)}

/* --- Código --- */
body.aihd-on.aihd-doc-on .aihd-doc code{
	font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
	font-size:.88em;padding:.18em .45em;border-radius:5px;
	background:var(--aihd-sf-2);border:1px solid var(--aihd-bd-sf);color:var(--aihd-tx)}
body.aihd-on.aihd-doc-on .aihd-doc :is(pre,.wp-block-code){
	background:var(--aihd-sf-2);border:1px solid var(--aihd-bd-sf);
	border-radius:var(--aihd-r);padding:1.1em 1.3em;overflow-x:auto;
	margin-block:var(--aihd-ritmo);line-height:1.6}
body.aihd-on.aihd-doc-on .aihd-doc pre code{background:none;border:0;padding:0}

/* --- Tablas: bordes visibles y cabecera con la marca --- */
body.aihd-on.aihd-doc-on .aihd-doc :is(table,.wp-block-table table){
	width:100%;border-collapse:separate;border-spacing:0;
	border:1px solid var(--aihd-bd-f);border-radius:var(--aihd-r);overflow:hidden;
	margin-block:var(--aihd-ritmo);font-size:var(--aihd-tm1);background:var(--aihd-bg)}
body.aihd-on.aihd-doc-on .aihd-doc :is(th,td){
	padding:.85em 1.1em;border:0;border-bottom:1px solid var(--aihd-bd-sf);
	text-align:left;vertical-align:top;color:var(--aihd-tx)}
body.aihd-on.aihd-doc-on .aihd-doc :is(th,thead td){
	background:var(--aihd-p);color:var(--aihd-on-p);
	font-family:var(--aihd-fh);font-weight:700;border-bottom:0}
body.aihd-on.aihd-doc-on .aihd-doc tr:last-child > :is(td,th){border-bottom:0}
body.aihd-on.aihd-doc-on .aihd-doc tbody tr:hover > td{background:var(--aihd-p1)}

/* --- Botones dentro del contenido --- */
body.aihd-on.aihd-doc-on .aihd-doc :is(.wp-block-button__link,a[class*="btn"],a[class*="boton"],a[class*="button"]){
	display:inline-flex;align-items:center;gap:.5em;
	background:var(--aihd-p);color:var(--aihd-on-p)!important;
	border:0;border-radius:calc(var(--aihd-r) + 4px);
	padding:.8em 1.5em;min-height:44px;
	font:700 var(--aihd-t0)/1 var(--aihd-fh);
	text-decoration:none!important;
	transition:background .2s ease,transform .2s ease}
body.aihd-on.aihd-doc-on .aihd-doc :is(.wp-block-button__link,a[class*="btn"]):hover{
	background:var(--aihd-p-hover,var(--aihd-p));transform:translateY(-1px)}
body.aihd-on.aihd-doc-on .aihd-doc .is-style-outline .wp-block-button__link{
	background:transparent;color:var(--aihd-lk)!important;border:1.5px solid var(--aihd-bd-f)}

/* --- Bloques de Gutenberg que suelen quedar sueltos --- */
body.aihd-on.aihd-doc-on .aihd-doc .wp-block-group:not(.aihd-doc){padding:0;background:none}
body.aihd-on.aihd-doc-on .aihd-doc .wp-block-group.has-background{
	padding:clamp(18px,4vw,32px);border-radius:var(--aihd-r);border:1px solid var(--aihd-bd-sf)}
body.aihd-on.aihd-doc-on .aihd-doc .wp-block-columns{gap:clamp(18px,3vw,32px);margin-block:var(--aihd-ritmo-2)}
body.aihd-on.aihd-doc-on .aihd-doc .wp-block-media-text{
	gap:clamp(18px,3vw,32px);margin-block:var(--aihd-ritmo-2);border-radius:var(--aihd-r);overflow:hidden}
body.aihd-on.aihd-doc-on .aihd-doc .wp-block-embed{margin-block:var(--aihd-ritmo-2)}
body.aihd-on.aihd-doc-on .aihd-doc .wp-block-embed__wrapper{border-radius:var(--aihd-r);overflow:hidden}
body.aihd-on.aihd-doc-on .aihd-doc :is(.wp-block-gallery,.blocks-gallery-grid){gap:12px;margin-block:var(--aihd-ritmo-2)}
body.aihd-on.aihd-doc-on .aihd-doc .wp-block-details{
	background:var(--aihd-sf);border:1px solid var(--aihd-bd-sf);
	border-radius:var(--aihd-r);padding:1em 1.25em;margin-block:var(--aihd-ritmo)}
body.aihd-on.aihd-doc-on .aihd-doc .wp-block-details summary{
	cursor:pointer;font-family:var(--aihd-fh);font-weight:700;color:var(--aihd-tx);min-height:44px;display:flex;align-items:center}

/* --- Formularios dentro del contenido --- */
body.aihd-on.aihd-doc-on .aihd-doc :is(input,select,textarea){
	width:100%;max-width:100%;padding:.75em 1em;
	background:var(--aihd-bg);color:var(--aihd-tx);
	border:1px solid var(--aihd-bd-f);border-radius:calc(var(--aihd-r) * .7);
	font:inherit;min-height:44px}
body.aihd-on.aihd-doc-on .aihd-doc :is(input,select,textarea):focus{
	border-color:var(--aihd-p);outline:2px solid transparent;box-shadow:0 0 0 3px var(--aihd-p2)}
body.aihd-on.aihd-doc-on .aihd-doc label{display:block;margin-bottom:.35em;font-weight:600;color:var(--aihd-tx)}
body.aihd-on.aihd-doc-on .aihd-doc :is(input[type=submit],button[type=submit]){
	width:auto;background:var(--aihd-p);color:var(--aihd-on-p);border:0;cursor:pointer;
	font:700 var(--aihd-t0)/1 var(--aihd-fh);padding:.85em 1.6em}

/* --- Tarjetas y fichas con clases propias del tema --- */
body.aihd-on.aihd-doc-on .aihd-doc :is(div,section,article)[class*="card"],
body.aihd-on.aihd-doc-on .aihd-doc :is(div,section,article)[class*="ficha"],
body.aihd-on.aihd-doc-on .aihd-doc :is(div,section,article)[class*="tarjeta"]{
	background:var(--aihd-sf);border:1px solid var(--aihd-bd-sf);
	border-radius:var(--aihd-r);padding:clamp(16px,3vw,26px);
	box-shadow:var(--aihd-sh);color:var(--aihd-tx)}

/* ============================================================
   29. Cabecera del artículo y bloque de relacionados
   ============================================================ */
.aihd-art-h{position:relative;isolation:isolate;
	padding-block:calc(var(--aihd-ritmo-3) * var(--aihd-k,1)) calc(var(--aihd-ritmo-2) * var(--aihd-k,1));
	margin-bottom:var(--aihd-ritmo-2);
	border-bottom:1px solid var(--aihd-bd)}
.aihd-art-in{max-width:var(--aihd-medida-ancha,46em);margin-inline:auto;padding-inline:clamp(18px,4vw,28px);position:relative;z-index:1}
.aihd-art-t{
	font:800 var(--aihd-t4)/var(--aihd-lh-titular) var(--aihd-fh);
	letter-spacing:var(--aihd-ls-titular);color:var(--aihd-tx);
	margin:0 0 .35em;text-wrap:balance}
.aihd-art-e{font-size:var(--aihd-t1);line-height:1.55;color:var(--aihd-mt);margin:0 0 1em;max-width:38em}
.aihd-art-m{display:flex;flex-wrap:wrap;align-items:center;gap:.55em;
	font:600 var(--aihd-tm1)/1.4 var(--aihd-fh);color:var(--aihd-mt)}
.aihd-art-m a{color:var(--aihd-lk);text-decoration:none}
.aihd-art-m a:hover{text-decoration:underline}
.aihd-art-cat{
	background:var(--aihd-p);color:var(--aihd-on-p)!important;
	padding:.3em .8em;border-radius:999px;font-weight:700;
	text-transform:uppercase;letter-spacing:var(--aihd-ls-micro)}
.aihd-art-sep{opacity:.5}
.aihd-migas{margin:0 0 1em;font-size:var(--aihd-tm1)}
.aihd-migas ol{display:flex;flex-wrap:wrap;gap:.4em;list-style:none;margin:0;padding:0}
.aihd-migas li{color:var(--aihd-mt)}
.aihd-migas li + li::before{content:"/";margin-right:.45em;opacity:.55}
.aihd-migas a{color:var(--aihd-mt);text-decoration:none}
.aihd-migas a:hover{color:var(--aihd-lk)}

.aihd-rel{margin-top:var(--aihd-ritmo-4);padding-block:calc(var(--aihd-ritmo-3) * var(--aihd-k,1));
	background:var(--aihd-sf);border-top:1px solid var(--aihd-bd)}
.aihd-rel-in{max-width:1200px;margin-inline:auto;padding-inline:clamp(18px,4vw,36px)}
.aihd-rel-t{font:800 var(--aihd-t3)/var(--aihd-lh-medio) var(--aihd-fh);
	letter-spacing:var(--aihd-ls-medio);color:var(--aihd-tx);margin:0 0 var(--aihd-ritmo)}
.aihd-rel .aihd-card{background:var(--aihd-bg)}
.aihd-rel :is(ul,ol){list-style:none;margin:0;padding:0}
.aihd-rel a{text-decoration:none;color:inherit}

/* ============================================================
   30. Cabecera propia del sitio
   ============================================================ */
.aihd-cab{position:relative;z-index:900;background:var(--aihd-bg);border-bottom:1px solid var(--aihd-bd)}
.aihd-cab.es-fija{position:sticky;top:0}
body.admin-bar .aihd-cab.es-fija{top:32px}
@media (max-width:782px){body.admin-bar .aihd-cab.es-fija{top:46px}}
.aihd-cab.es-encogida{
	background:color-mix(in srgb, var(--aihd-bg) 86%, transparent);
	-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);
	box-shadow:0 6px 24px -18px rgb(0 0 0 / .6)}
@supports not (backdrop-filter:blur(1px)){.aihd-cab.es-encogida{background:var(--aihd-bg)}}
.aihd-cab-in{
	display:flex;align-items:center;gap:clamp(14px,3vw,34px);
	max-width:1200px;margin-inline:auto;padding:0 clamp(18px,4vw,36px);
	min-height:var(--aihd-cab-h,70px);
	transition:min-height .25s ease}
.aihd-cab.es-encogida .aihd-cab-in{min-height:58px}

.aihd-marca{display:flex;flex-direction:column;gap:1px;text-decoration:none;color:var(--aihd-tx);flex:none;max-width:46%}
.aihd-marca-n{font:800 var(--aihd-t1)/1.1 var(--aihd-fh);letter-spacing:var(--aihd-ls-medio);color:var(--aihd-tx)}
.aihd-marca-n strong{color:var(--aihd-lk);font-weight:800}
.aihd-marca-l{font-size:var(--aihd-tm2,.72rem);color:var(--aihd-mt);font-weight:600;letter-spacing:var(--aihd-ls-micro);text-transform:uppercase}
.aihd-marca--img .aihd-logo{max-height:44px;width:auto;border-radius:0}

.aihd-nav{margin-right:auto}
.aihd-nav-l{display:flex;align-items:center;gap:clamp(6px,1.4vw,22px);list-style:none;margin:0;padding:0}
.aihd-nav-l li{position:relative}
.aihd-nav-l a{
	display:block;padding:.6em .2em;text-decoration:none;
	font:600 var(--aihd-t0) var(--aihd-fh);color:var(--aihd-tx);
	white-space:nowrap}
.aihd-nav-l > li > a span{position:relative;display:inline-block}
.aihd-nav-l > li > a span::after{
	content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;
	background:var(--aihd-p);border-radius:2px;
	transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.aihd-nav-l > li:is(:hover,.current-menu-item,.current-menu-ancestor) > a span::after{transform:scaleX(1)}
.aihd-nav-l > li.current-menu-item > a{color:var(--aihd-lk)}
/* Submenús */
.aihd-nav-l .sub-menu{
	position:absolute;left:-14px;top:100%;min-width:210px;
	display:grid;gap:2px;padding:8px;margin:0;list-style:none;
	background:var(--aihd-bg);border:1px solid var(--aihd-bd);
	border-radius:var(--aihd-r);box-shadow:0 20px 44px -24px rgb(0 0 0 / .5);
	opacity:0;visibility:hidden;transform:translateY(6px);
	transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:10}
.aihd-nav-l li:is(:hover,:focus-within) > .sub-menu{opacity:1;visibility:visible;transform:none}
.aihd-nav-l .sub-menu a{padding:.55em .7em;border-radius:calc(var(--aihd-r) * .55);font-weight:500}
.aihd-nav-l .sub-menu a:hover{background:var(--aihd-p1);color:var(--aihd-lk)}

.aihd-cab-acc{display:flex;align-items:center;gap:8px;flex:none}
.aihd-cab-b{
	width:42px;height:42px;display:grid;place-items:center;flex:none;
	background:none;border:1px solid var(--aihd-bd);border-radius:calc(var(--aihd-r) * .8);
	color:var(--aihd-tx);cursor:pointer;transition:border-color .2s ease,color .2s ease}
.aihd-cab-b:hover{border-color:var(--aihd-p);color:var(--aihd-lk)}
.aihd-cab-menu{display:none}
.aihd-cab-cta{
	display:inline-flex;align-items:center;min-height:42px;padding:0 1.3em;
	background:var(--aihd-p);color:var(--aihd-on-p);border-radius:calc(var(--aihd-r) * .8);
	font:700 var(--aihd-tm1) var(--aihd-fh);text-decoration:none;white-space:nowrap;
	transition:background .2s ease}
.aihd-cab-cta:hover{background:var(--aihd-p-hover,var(--aihd-p))}
.aihd-hamb{display:grid;gap:4px;width:20px}
.aihd-hamb i{display:block;height:2px;background:currentColor;border-radius:2px;transition:transform .25s ease,opacity .2s ease}
[aria-expanded="true"] .aihd-hamb i:nth-child(1){transform:translateY(6px) rotate(45deg)}
[aria-expanded="true"] .aihd-hamb i:nth-child(2){opacity:0}
[aria-expanded="true"] .aihd-hamb i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.aihd-cab-panel{border-top:1px solid var(--aihd-bd);background:var(--aihd-sf);padding:14px clamp(18px,4vw,36px)}
.aihd-cab-panel .aihd-search{max-width:620px;margin-inline:auto}

/* Panel lateral de navegación en móvil */
.aihd-panel-nav{
	position:fixed;inset:0;z-index:9990;
	background:rgb(0 0 0 / .5);opacity:0;transition:opacity .28s ease}
.aihd-panel-nav.es-abierto{opacity:1}
.aihd-panel-c{
	position:absolute;right:0;top:0;bottom:0;width:min(84vw,360px);
	background:var(--aihd-bg);border-left:1px solid var(--aihd-bd);
	padding:26px 24px calc(26px + env(safe-area-inset-bottom,0px));
	overflow-y:auto;transform:translateX(100%);transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.aihd-panel-nav.es-abierto .aihd-panel-c{transform:none}
.aihd-panel-x{
	position:absolute;top:14px;right:16px;width:42px;height:42px;
	background:none;border:0;font-size:30px;line-height:1;color:var(--aihd-tx);cursor:pointer}
.aihd-nav--panel{margin:44px 0 0}
.aihd-nav--panel .aihd-nav-l{flex-direction:column;align-items:stretch;gap:2px}
.aihd-nav--panel .aihd-nav-l a{
	padding:.85em .6em;border-radius:calc(var(--aihd-r) * .6);
	font-size:var(--aihd-t1);min-height:48px;display:flex;align-items:center}
.aihd-nav--panel .aihd-nav-l a:hover{background:var(--aihd-p1)}
.aihd-nav--panel .aihd-nav-l > li > a span::after{display:none}
.aihd-nav--panel .sub-menu{
	position:static;opacity:1;visibility:visible;transform:none;
	border:0;box-shadow:none;background:none;padding:0 0 0 14px;
	border-left:2px solid var(--aihd-bd)}

@media (max-width:900px){
	.aihd-cab .aihd-nav{display:none}
	.aihd-cab-menu{display:grid}
	.aihd-cab-cta{display:none}
	.aihd-marca{max-width:62%;margin-right:auto}
}
@media (prefers-reduced-motion:reduce){
	.aihd-panel-c,.aihd-panel-nav,.aihd-cab-in,.aihd-nav-l a span::after{transition:none}
}

/* ============================================================
   31. Pie propio del sitio
   ============================================================ */
.aihd-pie{
	margin-top:var(--aihd-ritmo-4);
	background:var(--aihd-sf);
	border-top:1px solid var(--aihd-bd);
	color:var(--aihd-tx)}
.aihd-pie-in{max-width:1200px;margin-inline:auto;padding:calc(var(--aihd-ritmo-3) * var(--aihd-k,1)) clamp(18px,4vw,36px) var(--aihd-ritmo)}
.aihd-pie-cols{
	display:grid;gap:clamp(24px,4vw,48px);
	grid-template-columns:1.4fr repeat(auto-fit,minmax(150px,1fr))}
.aihd-pie-c h3{
	font:700 var(--aihd-tm1)/1.3 var(--aihd-fh);
	text-transform:uppercase;letter-spacing:var(--aihd-ls-micro);
	color:var(--aihd-mt);margin:0 0 1em}
.aihd-pie-d{color:var(--aihd-mt);font-size:var(--aihd-tm1);line-height:1.65;margin:.9em 0 0;max-width:32em}
.aihd-pie-l{list-style:none;margin:0;padding:0;display:grid;gap:.6em}
.aihd-pie-l a,.aihd-pie .aihd-nav-l a{
	color:var(--aihd-mt);text-decoration:none;font-size:var(--aihd-tm1);
	padding:0;font-weight:500;transition:color .18s ease}
.aihd-pie-l a:hover,.aihd-pie .aihd-nav-l a:hover{color:var(--aihd-lk)}
.aihd-pie .aihd-nav{margin:0}
.aihd-pie .aihd-nav-l{flex-direction:column;align-items:flex-start;gap:.6em}
.aihd-pie .aihd-nav-l > li > a span::after{display:none}
.aihd-pie .sub-menu{display:none}
.aihd-pie .aihd-marca{max-width:none}
.aihd-pie-bajo{
	display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;
	margin-top:var(--aihd-ritmo-2);padding-top:var(--aihd-ritmo);
	border-top:1px solid var(--aihd-bd);
	color:var(--aihd-mt);font-size:var(--aihd-tm1)}
@media (max-width:760px){
	.aihd-pie-cols{grid-template-columns:1fr 1fr}
	.aihd-pie-c--marca{grid-column:1/-1}
	body.aihd-con-barra .aihd-pie-in{padding-bottom:calc(var(--aihd-ritmo) + 60px)}
}
@media (max-width:420px){
	.aihd-pie-cols{grid-template-columns:1fr}
}

/* ============================================================
   32. Coherencia global: el tema no vuelve a colarse
   ============================================================ */
body.aihd-doc-on :is(.site-main,#primary,.content-area,main,.wp-block-post-content){
	background:transparent}
body.aihd-doc-on :is(#sidebar,#secondary,.sidebar,aside.widget-area){
	background:var(--aihd-sf);border:1px solid var(--aihd-bd);border-radius:var(--aihd-r);padding:clamp(16px,3vw,24px)}
body.aihd-doc-on :is(#sidebar,#secondary,.sidebar) :is(h2,h3,.widget-title){
	font:700 var(--aihd-t1)/1.3 var(--aihd-fh);color:var(--aihd-tx)}
body.aihd-doc-on :is(#sidebar,#secondary,.sidebar) a{color:var(--aihd-lk);text-decoration:none}
/* La paginación y los comentarios también son parte del sitio */
body.aihd-on :is(.nav-links,.page-links,.pagination) a,
body.aihd-on :is(.nav-links,.page-links,.pagination) span{
	display:inline-flex;align-items:center;justify-content:center;
	min-width:44px;min-height:44px;padding:0 .8em;margin:2px;
	border:1px solid var(--aihd-bd);border-radius:calc(var(--aihd-r) * .7);
	color:var(--aihd-tx);text-decoration:none;font-family:var(--aihd-fh);font-weight:600}
body.aihd-on :is(.nav-links,.pagination) a:hover{border-color:var(--aihd-p);color:var(--aihd-lk)}
body.aihd-on :is(.nav-links,.pagination) .current{background:var(--aihd-p);color:var(--aihd-on-p);border-color:var(--aihd-p)}

/* Botón de submenú del panel móvil (lo inserta el JS) */
.aihd-nav--panel li:has(> .sub-menu){display:grid;grid-template-columns:1fr auto;align-items:center}
.aihd-nav--panel li:has(> .sub-menu) > .sub-menu{grid-column:1/-1}
.aihd-sub-t{
	width:44px;height:44px;background:none;border:1px solid var(--aihd-bd);
	border-radius:calc(var(--aihd-r) * .6);color:var(--aihd-tx);
	font-size:20px;line-height:1;cursor:pointer}

/* ============================================================
   33. COMPOSICIÓN DEL TEXTO

   Alineación de los encabezados y justificación del texto, en
   toda la web a la vez: portada, contenido, cabecera de
   artículo, relacionados y lo que pinte el tema dentro del
   contenido. Lo gobierna AIHD_Composicion con cuatro clases en
   el body:

     .aihd-cmp-c   encabezados centrados
     .aihd-cmp-l   encabezados a la izquierda
     .aihd-cmp-b   encabezados en negrita
     .aihd-cmp-j   texto justificado siempre
     .aihd-cmp-jw  texto justificado solo en pantallas anchas

   Este bloque va al final del archivo a propósito: varias de
   sus reglas empatan en especificidad con las variantes
   decorativas de la sección 2, y al empatar gana la última.
   ============================================================ */

/* --- 33.1 Encabezados centrados ------------------------------
   El ámbito es deliberadamente el de los títulos de documento y
   de sección. Las tarjetas quedan fuera: un titular centrado
   sobre un extracto alineado a la izquierda, dentro de una caja
   de 300 px, no se lee como una decisión sino como un fallo. --- */
body.aihd-cmp-c .aihd-home-wrap :is(.aihd-h1,.aihd-title),
body.aihd-cmp-c .aihd-home-wrap .aihd-head :is(h1,h2,h3,h4),
body.aihd-cmp-c .aihd-home-wrap .aihd-hero-c :is(h1,h2),
body.aihd-cmp-c .aihd-home-wrap .aihd-cluster-h :is(h2,h3),
body.aihd-cmp-c .aihd-doc :is(h1,h2,h3,h4):not(.aihd-home-wrap *),
body.aihd-cmp-c :is(.the-content,.entry-content) > :is(h1,h2,h3,h4):not(.aihd-home-wrap *),
body.aihd-cmp-c :is(.the-content,.entry-content) > * > :is(h1,h2,h3,h4):not(.aihd-home-wrap *),
body.aihd-cmp-c :is(.aihd-art-t,.aihd-rel-t){
	text-align:center}

/* Los bloques que rodean al título van con él. Centrar el título y
   dejar el subtítulo pegado al margen izquierdo es peor que no
   centrar nada: se ve el escalón. */
body.aihd-cmp-c .aihd-home-wrap .aihd-head{margin-inline:auto;text-align:center}
body.aihd-cmp-c .aihd-home-wrap :is(.aihd-sub,.aihd-lead){margin-inline:auto}
body.aihd-cmp-c .aihd-home-wrap .aihd-h1{margin-inline:auto}
body.aihd-cmp-c .aihd-home-wrap .aihd-hero-c.aihd-left{text-align:center}
body.aihd-cmp-c .aihd-home-wrap .aihd-hero-c.aihd-left .aihd-actions{justify-content:center}
body.aihd-cmp-c .aihd-art-in{text-align:center}
body.aihd-cmp-c .aihd-art-e{margin-inline:auto}
body.aihd-cmp-c .aihd-art-m{justify-content:center}
body.aihd-cmp-c .aihd-migas ol{justify-content:center}

/* --- 33.2 Adornos recolocados --------------------------------
   Las variantes decorativas de h2 y h3 están construidas para
   texto a la izquierda: una caja con la barra en el borde
   izquierdo, una línea que sale hacia la derecha, una barra
   corta encima y un punto delante. Centrado el texto y no el
   adorno, el adorno se queda descolgado en una esquina. --- */

/* Caja: la barra lateral pasa a ser una barra superior, y el radio
   deja de ser asimétrico porque ya no hay un lado «abierto». */
body.aihd-cmp-c.aihd-h2-caja :is(.the-content,.entry-content,.aihd-doc) h2:not(.aihd-home-wrap *){
	border-left:0;border-top:4px solid var(--aihd-p);
	border-radius:0 0 var(--aihd-r) var(--aihd-r);
	padding:.75em .9em .65em}
body.aihd-rtl.aihd-cmp-c.aihd-h2-caja :is(.the-content,.entry-content,.aihd-doc) h2{
	border-right:0;border-top:4px solid var(--aihd-p);
	border-radius:0 0 var(--aihd-r) var(--aihd-r)}

/* Línea: era un flex con una línea detrás. Centrado, se le pone
   otra delante y se reparten el espacio sobrante a partes iguales. */
body.aihd-cmp-c.aihd-h2-linea :is(.the-content,.entry-content,.aihd-doc) h2:not(.aihd-home-wrap *){
	justify-content:center}
body.aihd-cmp-c.aihd-h2-linea :is(.the-content,.entry-content,.aihd-doc) h2:not(.aihd-home-wrap *)::before{
	content:"";flex:1 1 40px;min-width:24px;height:2px;
	background:linear-gradient(270deg,var(--aihd-p),transparent)}
body.aihd-cmp-c.aihd-h2-linea :is(.the-content,.entry-content,.aihd-doc) h2:not(.aihd-home-wrap *)::after{
	flex:1 1 40px;min-width:24px}

/* Barra corta encima: es un bloque de 2,2 em; sin margen automático
   se queda pegado al borde izquierdo con el título centrado encima. */
body.aihd-cmp-c.aihd-h2-barra :is(.the-content,.entry-content,.aihd-doc) h2:not(.aihd-home-wrap *)::before{
	margin-inline:auto}
body.aihd-cmp-c .aihd-cluster--inv .aihd-cluster-h h2::before{margin-inline:auto}

/* Lateral: un borde izquierdo con el texto centrado señala a la nada.
   Se sustituye por un subrayado corto centrado, que es el mismo gesto
   pero en el eje que corresponde. */
body.aihd-cmp-c.aihd-h3-lateral :is(.the-content,.entry-content,.aihd-doc) h3:not(.aihd-home-wrap *){
	border-left:0;padding-left:0;padding-bottom:.4em;position:relative}
body.aihd-cmp-c.aihd-h3-lateral :is(.the-content,.entry-content,.aihd-doc) h3:not(.aihd-home-wrap *)::after{
	content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
	width:2.4em;height:3px;border-radius:3px;background:var(--aihd-a)}
body.aihd-rtl.aihd-cmp-c.aihd-h3-lateral :is(.the-content,.entry-content,.aihd-doc) h3{
	border-right:0;padding-right:0}

/* Punto: es inline, así que se centra con el texto. Se le pone el
   simétrico para que el conjunto quede equilibrado. */
body.aihd-cmp-c.aihd-h3-punto :is(.the-content,.entry-content,.aihd-doc) h3:not(.aihd-home-wrap *)::after{
	content:"";display:inline-block;width:.5em;height:.5em;border-radius:50%;
	background:var(--aihd-p);margin-left:.55em;vertical-align:.12em}

/* --- 33.3 Encabezados en negrita ----------------------------- */
body.aihd-cmp-b .aihd-home-wrap :is(.aihd-h1,.aihd-title),
body.aihd-cmp-b .aihd-doc :is(h1,h2):not(.aihd-home-wrap *),
body.aihd-cmp-b :is(.the-content,.entry-content) :is(h1,h2):not(.aihd-home-wrap *),
body.aihd-cmp-b :is(.aihd-art-t,.aihd-rel-t){font-weight:800}
body.aihd-cmp-b .aihd-doc :is(h3,h4,h5,h6):not(.aihd-home-wrap *),
body.aihd-cmp-b :is(.the-content,.entry-content) :is(h3,h4):not(.aihd-home-wrap *){font-weight:700}

/* --- 33.4 Texto justificado ----------------------------------
   Solo el texto corrido.

   Las exclusiones van dentro de un :not() en lugar de en una regla
   de reset posterior, y la diferencia importa. Un reset tiene que
   decidir a qué valor vuelve —y no hay uno bueno: `start` rompe el
   pie de foto, que está centrado a propósito, e `inherit` rompe la
   celda de tabla, que hereda de la tabla—. Al excluirlo en el
   selector no se toca nada: el elemento conserva la alineación que
   ya tenía, venga de donde venga.

   Los dos modos van dentro de una media query, no uno dentro y
   otro con una anulación detrás, porque una anulación tendría que
   empatar en especificidad con un selector que lleva :not() y eso
   obliga a repetir el :not() igualmente. Así el límite inferior se
   lee de un vistazo: justificado por debajo de 421 px no se activa
   nunca.

   La partición de palabras se pide aquí pero el valor lo decide
   AIHD_Composicion::css() con la variable --aihd-hyph, según tenga
   o no diccionario el idioma del contenido. --- */

/* «Sí, en toda la web»: desde 421 px. Con cuatro o cinco palabras
   por línea el reparto no tiene margen y abre huecos aunque haya
   diccionario, así que en el móvil estrecho no se justifica. */
@media (min-width:421px){
	body.aihd-cmp-j :is(.aihd-doc,.the-content,.entry-content,.aihd-home-wrap) :is(p,li,blockquote,dd):not(
		.aihd-meta,.aihd-chip,.aihd-dist,.aihd-sub,.aihd-lead,.aihd-center-p,
		.aihd-card *,.aihd-row,.aihd-row *,.aihd-feature *,.aihd-tcard *,.aihd-float *,
		.aihd-num *,.aihd-barra *,figcaption,figcaption *,td *,th *,dt,
		.wp-block-button *,.wp-block-pullquote *,.aihd-btn *
	){
		text-align:justify;
		-webkit-hyphens:var(--aihd-hyph,manual);
		hyphens:var(--aihd-hyph,manual);
		hyphenate-limit-chars:7 3 3}
}

/* «Solo en pantallas anchas»: el mismo criterio a partir de 700 px,
   donde la medida ya da de sí lo suficiente para justificar sin
   necesidad de partir palabras. */
@media (min-width:700px){
	body.aihd-cmp-jw :is(.aihd-doc,.the-content,.entry-content,.aihd-home-wrap) :is(p,li,blockquote,dd):not(
		.aihd-meta,.aihd-chip,.aihd-dist,.aihd-sub,.aihd-lead,.aihd-center-p,
		.aihd-card *,.aihd-row,.aihd-row *,.aihd-feature *,.aihd-tcard *,.aihd-float *,
		.aihd-num *,.aihd-barra *,figcaption,figcaption *,td *,th *,dt,
		.wp-block-button *,.wp-block-pullquote *,.aihd-btn *
	){
		text-align:justify;
		-webkit-hyphens:var(--aihd-hyph,manual);
		hyphens:var(--aihd-hyph,manual);
		hyphenate-limit-chars:7 3 3}
}

/* Los encabezados nunca se parten con guion, vayan centrados o no:
   un titular con un guion de partición se lee como una errata. */
body:is(.aihd-cmp-j,.aihd-cmp-jw) :is(h1,h2,h3,h4,h5,h6){-webkit-hyphens:manual;hyphens:manual}

/* ============================================================
   34. TABLA DE CONTENIDOS

   La construye PHP, así que existe antes de que corra ningún
   script. El JavaScript solo marca por dónde va la lectura.
   ============================================================ */
body.aihd-on .aihd-toc{
	margin:0 0 var(--aihd-ritmo-2);
	padding:1.1em 1.3em;
	background:var(--aihd-sf);
	border:1px solid var(--aihd-bd-sf);
	border-left:3px solid var(--aihd-a);
	border-radius:0 var(--aihd-r) var(--aihd-r) 0}
body.aihd-rtl.aihd-on .aihd-toc{
	border-left:1px solid var(--aihd-bd-sf);border-right:3px solid var(--aihd-a);
	border-radius:var(--aihd-r) 0 0 var(--aihd-r)}
body.aihd-on .aihd-toc-t{
	font:700 var(--aihd-tm1)/1.3 var(--aihd-fh)!important;
	text-transform:uppercase;letter-spacing:var(--aihd-ls-micro);
	color:var(--aihd-mt);margin:0 0 .8em!important;text-align:start!important}
body.aihd-on .aihd-toc-l,
body.aihd-on .aihd-toc-sub{list-style:none;margin:0;padding:0}
body.aihd-on .aihd-toc-l > li + li{margin-top:.5em}
body.aihd-on .aihd-toc-sub{margin:.45em 0 0 1.1em;padding-inline-start:.8em;
	border-inline-start:1px solid var(--aihd-bd-sf)}
body.aihd-on .aihd-toc-sub li + li{margin-top:.35em}
body.aihd-on .aihd-toc a{
	color:var(--aihd-tx);text-decoration:none;
	font-size:var(--aihd-tm1);line-height:1.45;
	border-bottom:1px solid transparent;
	transition:color .18s ease,border-color .18s ease}
body.aihd-on .aihd-toc a:hover{color:var(--aihd-lk);border-bottom-color:currentColor}
body.aihd-on .aihd-toc a.es-actual{color:var(--aihd-lk);font-weight:700}
body.aihd-on .aihd-toc-sub a{font-size:var(--aihd-tm2,.82rem);color:var(--aihd-mt)}
/* Un h3 sin h2 por encima: su contenedor no tiene enlace propio. */
body.aihd-on .aihd-toc-suelto > .aihd-toc-sub{margin-left:0;border:0;padding-inline-start:0}

@media print{
	.aihd-toc{display:none}
}

/* ============================================================
   35. ARCHIVO, BÚSQUEDA Y 404
   ============================================================ */
body.aihd-on .aihd-arch-in{
	max-width:1200px;margin-inline:auto;
	padding:0 clamp(18px,4vw,36px) var(--aihd-ritmo-4)}
body.aihd-on .aihd-arch-h{margin-bottom:var(--aihd-ritmo-2)}
body.aihd-on .aihd-search--grande{
	display:flex;gap:8px;max-width:34em;margin:0 auto var(--aihd-ritmo-2)}
body.aihd-on .aihd-search--grande input[type=search]{
	flex:1;min-height:48px;padding:0 1em;font-size:16px;
	background:var(--aihd-sf);color:var(--aihd-tx);
	border:1px solid var(--aihd-bd);border-radius:var(--aihd-r)}
body.aihd-on .aihd-search--grande button{
	min-height:48px;padding:0 1.4em;border:0;cursor:pointer;
	background:var(--aihd-p);color:var(--aihd-on-p);
	font:700 var(--aihd-t0) var(--aihd-fh);border-radius:var(--aihd-r)}
body.aihd-on .aihd-vacio{
	text-align:center;color:var(--aihd-mt);
	font-size:var(--aihd-t1);margin:var(--aihd-ritmo-2) 0}
body.aihd-on .aihd-pag{
	display:flex;flex-wrap:wrap;justify-content:center;gap:4px;
	margin-top:var(--aihd-ritmo-2)}

/* Bloque de rescate: la salida cuando no hay resultados. Los destinos
   se comprueban contra el contenido publicado, así que una página de
   error no puede llevar a otro error. */
body.aihd-on .aihd-rescate{
	margin-top:var(--aihd-ritmo-3);padding-top:var(--aihd-ritmo-2);
	border-top:1px solid var(--aihd-bd)}
body.aihd-on .aihd-rescate-l{
	list-style:none;margin:var(--aihd-ritmo) 0 0;padding:0;
	display:grid;gap:10px;
	grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
body.aihd-on .aihd-rescate-l a{
	display:flex;align-items:center;min-height:56px;
	padding:.8em 1.1em;text-decoration:none;
	background:var(--aihd-sf);color:var(--aihd-tx);
	border:1px solid var(--aihd-bd-sf);border-radius:var(--aihd-r);
	font-family:var(--aihd-fh);font-weight:600;
	transition:border-color .2s ease,transform .2s ease}
body.aihd-on .aihd-rescate-l a:hover{
	border-color:var(--aihd-p);transform:translateY(-2px);color:var(--aihd-lk)}

/* ============================================================
   36. Marca con logotipo Y nombre
   ============================================================ */
.aihd-marca--mixta{flex-direction:row;align-items:center;gap:10px}
.aihd-marca--mixta .aihd-logo{max-height:40px;width:auto;flex:none}
.aihd-marca-t{display:flex;flex-direction:column;gap:1px;min-width:0}
@media (max-width:520px){
	.aihd-marca--mixta .aihd-marca-l{display:none}
}

/* ============================================================
   37. ANCHO DEL LIENZO

   Los 1200 px estaban repartidos por seis sitios del archivo, así
   que cambiarlos obligaba a cambiarlos seis veces y siempre se
   olvidaba alguno. Ahora salen todos de la misma variable.
   ============================================================ */
body.aihd-on{--aihd-lienzo:1200px}
body.aihd-lienzo-ancho{--aihd-lienzo:1440px}
body.aihd-lienzo-completo{--aihd-lienzo:min(1800px, 94vw)}

body.aihd-on :is(.aihd-in,.aihd-rel-in,.aihd-cab-in,.aihd-pie-in,.aihd-arch-in){
	max-width:var(--aihd-lienzo)}

/* Columna extra en pantallas muy anchas.

   Una rejilla de tres en un monitor de 27 pulgadas deja tarjetas de
   450 px con una foto estirada y tres palabras de extracto. El límite
   está en 1600 px porque por debajo de eso una cuarta columna aprieta
   los títulos a dos líneas. */
@media (min-width:1600px){
	body.aihd-col-extra.aihd-lienzo-ancho .aihd-cols-3,
	body.aihd-col-extra.aihd-lienzo-completo .aihd-cols-3{
		grid-template-columns:repeat(4,minmax(0,1fr))}
	body.aihd-col-extra.aihd-lienzo-ancho .aihd-cols-2,
	body.aihd-col-extra.aihd-lienzo-completo .aihd-cols-2{
		grid-template-columns:repeat(3,minmax(0,1fr))}
	body.aihd-col-extra .aihd-grid{
		grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
}

/* ============================================================
   38. COLUMNA DE HERRAMIENTAS DEL ARTÍCULO

   En móvil no hay sitio para una columna al lado, así que lo que
   en escritorio sería una barra lateral aquí es una tira plegable
   pegada bajo la cabecera. Mismo contenido, la forma que cabe.
   ============================================================ */
body.aihd-on .aihd-herr{
	position:sticky;
	top:calc(var(--aihd-cab-h,0px) + 8px);
	z-index:20;
	margin:0 0 var(--aihd-ritmo);
	background:var(--aihd-sf);
	border:1px solid var(--aihd-bd-sf);
	border-radius:var(--aihd-r)}

body.aihd-on .aihd-herr-t{
	display:flex;align-items:center;justify-content:space-between;gap:10px;
	width:100%;min-height:48px;padding:.6em 1em;
	background:none;border:0;cursor:pointer;
	font:700 var(--aihd-tm1) var(--aihd-fh);
	color:var(--aihd-tx);text-align:start}
body.aihd-on .aihd-herr-t svg{transition:transform .22s ease;flex:none}
body.aihd-on .aihd-herr.es-abierta .aihd-herr-t svg{transform:rotate(180deg)}

body.aihd-on .aihd-herr-c{display:none;padding:0 1em 1em}
body.aihd-on .aihd-herr.es-abierta .aihd-herr-c{display:block}
/* La caja de herramientas ya tiene su propio marco: el índice de dentro
   no necesita otro. */
body.aihd-on .aihd-herr .aihd-toc{
	margin:0;padding:0;background:none;border:0;border-radius:0}
body.aihd-on .aihd-herr .aihd-toc-t{margin-bottom:.6em!important}

body.aihd-on .aihd-herr-a{
	display:flex;flex-wrap:wrap;gap:8px;
	margin-top:1em;padding-top:1em;
	border-top:1px solid var(--aihd-bd-sf)}
body.aihd-on .aihd-h-b{
	display:inline-flex;align-items:center;gap:.5em;
	min-height:44px;padding:0 .9em;cursor:pointer;
	background:var(--aihd-bg);color:var(--aihd-tx);
	border:1px solid var(--aihd-bd);border-radius:calc(var(--aihd-r) * .8);
	font:600 var(--aihd-tm1) var(--aihd-fh);
	transition:border-color .18s ease,color .18s ease}
body.aihd-on .aihd-h-b:hover{border-color:var(--aihd-p);color:var(--aihd-lk)}
body.aihd-on .aihd-herr-av{
	margin:.7em 1em 1em;font-size:var(--aihd-tm1);color:var(--aihd-ok);font-weight:600}

/* Solo móvil (el ajuste por defecto). Por encima del corte no se pinta:
   se oculta con display:none y no con visibility, para que el sticky no
   siga reservando sitio. */
@media (min-width:1100px){
	body.aihd-herr-movil .aihd-herr{display:none}
}
@media (max-width:1099px){
	body.aihd-herr-escritorio .aihd-herr{display:none}
}

/* Escritorio: barra lateral de verdad, colgada junto al texto y sin
   plegar, porque ahí el sitio sobra y el desplegable solo añade un clic.

   Va con float y no con grid ni con position:absolute. Grid convertiría
   en celdas a todos los hijos del contenedor, y ese contenedor es el
   documento entero: se llevaría por delante el ritmo vertical, los
   márgenes negativos de las imágenes anchas y el `> * + *` del que
   depende el espaciado. Y `absolute` no puede quedarse pegado al hacer
   scroll, que es justo lo que se le pide. Un float sí admite
   `position:sticky`. */
@media (min-width:1100px){
	body:is(.aihd-herr-escritorio,.aihd-herr-ambos) .aihd-doc--con-herr{
		--aihd-herr-w:clamp(180px,16vw,230px);
		--aihd-herr-gap:clamp(24px,3vw,40px);
		padding-inline-start:calc(var(--aihd-herr-w) + var(--aihd-herr-gap))}
	body:is(.aihd-herr-escritorio,.aihd-herr-ambos) .aihd-herr{
		float:inline-start;
		width:var(--aihd-herr-w);
		margin-inline-start:calc(-1 * (var(--aihd-herr-w) + var(--aihd-herr-gap)));
		max-height:calc(100vh - var(--aihd-cab-h,0px) - 32px);
		overflow-y:auto}
	body:is(.aihd-herr-escritorio,.aihd-herr-ambos) .aihd-herr-t{
		cursor:default;pointer-events:none}
	body:is(.aihd-herr-escritorio,.aihd-herr-ambos) .aihd-herr-t svg{display:none}
	body:is(.aihd-herr-escritorio,.aihd-herr-ambos) .aihd-herr-c{display:block}
	body:is(.aihd-herr-escritorio,.aihd-herr-ambos) .aihd-herr-a{flex-direction:column;align-items:stretch}
}

@media print{
	.aihd-herr{display:none}
}

/* ============================================================
   39. MEGAMENÚ

   A partir de ocho elementos, un desplegable vertical se sale de
   la ventana por abajo y obliga a hacer scroll dentro del menú.
   ============================================================ */
@media (min-width:1100px){
	.aihd-cab .aihd-nav-l > li.es-mega{position:static}
	.aihd-cab .aihd-nav-l > li.es-mega > :is(.sub-menu,ul){
		left:50%;transform:translateX(-50%);
		width:min(var(--aihd-lienzo,1200px) - 48px, 92vw);
		columns:var(--aihd-mega-cols,2);
		column-gap:clamp(18px,3vw,40px);
		padding:1.2em 1.6em}
	.aihd-cab .aihd-nav-l > li.es-mega > :is(.sub-menu,ul) > li{
		break-inside:avoid;-webkit-column-break-inside:avoid}
}

/* ============================================================
   40. PUNTERO FINO

   Detalles que solo tienen sentido con ratón: en táctil no hay
   hover que revelar y la barra de desplazamiento no se ve.
   `pointer:fine` es la consulta correcta —`min-width` no lo es,
   porque hay tabletas de 1280 px sin ratón—.
   ============================================================ */
@media (hover:hover) and (pointer:fine){
	body.aihd-on{
		scrollbar-width:thin;
		scrollbar-color:color-mix(in srgb, var(--aihd-p) 55%, var(--aihd-bd)) transparent}
	body.aihd-on ::-webkit-scrollbar{width:11px;height:11px}
	body.aihd-on ::-webkit-scrollbar-track{background:transparent}
	body.aihd-on ::-webkit-scrollbar-thumb{
		background:color-mix(in srgb, var(--aihd-p) 45%, var(--aihd-bd));
		border:3px solid var(--aihd-bg);
		border-radius:99px}
	body.aihd-on ::-webkit-scrollbar-thumb:hover{
		background:color-mix(in srgb, var(--aihd-p) 75%, var(--aihd-bd))}

	/* Subrayado que se revela de izquierda a derecha. Va con
	   background-size y no con text-decoration porque el subrayado no
	   se puede animar: solo aparece o no. */
	body.aihd-on .aihd-home-wrap a:not(.aihd-btn):not(.aihd-stretch):not([class*="cab"]),
	body.aihd-on .aihd-pie-l a,
	body.aihd-on .aihd-nav-l > li > a > span{
		background-image:linear-gradient(currentColor,currentColor);
		background-repeat:no-repeat;
		background-position:0 100%;
		background-size:0 1px;
		transition:background-size .28s cubic-bezier(.2,.7,.3,1)}
	body.aihd-on .aihd-home-wrap a:not(.aihd-btn):hover,
	body.aihd-on .aihd-pie-l a:hover,
	body.aihd-on .aihd-nav-l > li > a:hover > span{background-size:100% 1px}
	body.aihd-on .aihd-nav-l > li > a > span{padding-bottom:2px}
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:reduce){
	body.aihd-on :is(.aihd-home-wrap a,.aihd-pie-l a,.aihd-nav-l > li > a > span){transition:none}
}

/* ============================================================
   41. REGLA FIJA DE ENCABEZADOS Y TEXTO

   Con fondo oscuro: encabezados en blanco y texto base en casi
   blanco. Con fondo claro: encabezados en negro y texto base en
   casi negro. Al pulsar el conmutador, lo que era blanco pasa a
   negro y al revés.

   EN TODAS LAS URL DEL SITIO. La primera versión de esta regla
   listaba contenedores —.aihd-home-wrap, .aihd-doc,
   .entry-content— y por eso solo funcionaba en la portada: en
   una entrada, los encabezados del tema viven en un contenedor
   que se llama de otra manera en cada tema (.post-content,
   .single-content, .elementor-widget-container, .td-post-content
   y así hasta el infinito), y ninguna lista los cubre todos.

   Ahora el ámbito es el documento entero. La regla no pregunta
   dónde está el encabezado, solo que sea un encabezado.

   POR QUÉ AQUÍ SÍ VA `!important`. Normalmente es tapar un
   problema de especificidad en lugar de resolverlo, y en la
   2.x ya costó un disgusto. La diferencia es que el color no se
   escribe literal, se escribe como `var(--aihd-h)`: el valor lo
   decide el token, y el token lo puede redefinir cualquier
   contenedor que tenga el fondo al revés. Así que `!important`
   gana a las reglas del tema sin quitarle al diseño la
   capacidad de invertirse donde hace falta. Sin el token, este
   `!important` pintaría de negro los títulos de un hero azul.
   ============================================================ */

/* --- 41.0 El fondo tiene que llegar hasta abajo --------------
   Sin esto, la regla de los colores no se puede cumplir por más
   que se escriba bien, y era la mitad del problema: en una
   entrada, el texto salía en casi blanco sobre el fondo blanco
   que pinta el tema.

   El plugin pone el fondo del diseño en `body`, pero casi todos
   los temas vuelven a pintarlo en sus propios contenedores
   —#page, .site-content, .site-main, article— y esa capa tapa la
   nuestra. Había una regla que los volvía transparentes, pero
   solo se activaba con la clase `aihd-doc-on`, que existe
   únicamente en entradas y páginas con el diseño del contenido
   activado. En los archivos, en las categorías y con ese ajuste
   desactivado, el fondo del tema seguía ahí.

   Se excluye lo nuestro, que sí tiene fondo propio a propósito:
   las tarjetas, la cabecera, el pie y los bloques de relacionados
   se verían como cajas sin caja. --- */
body.aihd-on :is(#page,#main,#content,#primary,.site,.site-content,.site-main,
	.content-area,.wp-site-blocks,.wp-block-post-content,.hentry,
	main,article,section):not(:where(
		.aihd-card,.aihd-tcard,.aihd-float,.aihd-row,
		.aihd-cab,.aihd-pie,.aihd-rel,.aihd-art-h,.aihd-herr,.aihd-toc,
		.aihd-sec,.aihd-home-wrap,.aihd-home-wrap *
	)){
	background-color:transparent!important;
	/* El color va sin `!important` para que los componentes de dentro que
	   tienen el suyo propio —metadatos, pies de foto, subtítulos— lo sigan
	   teniendo. Aquí solo se trata de que el contenedor no imponga el gris
	   del tema a todo lo que cuelga de él. */
	color:var(--aihd-tx)}

/* --- 41.1 Todos los encabezados, en todas las URL ------------ */
/* El `html` delante no es decorativo: sube la especificidad a (0,1,3) sin
   recurrir a ningún truco. Con `!important` a los dos lados, un tema que
   escriba `.entry .titulo{color:X!important}` —(0,2,1)— ganaría a un
   selector de una sola clase. Con html + body van tres elementos por
   delante y la regla se sostiene. */
html body.aihd-on :is(h1,h2,h3),
html body.aihd-on :is(.aihd-h1,.aihd-title,.aihd-art-t,.aihd-rel-t){
	color:var(--aihd-h)!important}

/* Un encabezado dentro de un botón o de una pastilla de color no es
   texto de documento: lleva el color que le toque a su fondo. */
body.aihd-on :is(.aihd-btn,.aihd-chip,.aihd-art-cat,.aihd-step-n,button) :is(h1,h2,h3){
	color:inherit!important}

/* --- 41.2 El texto base -------------------------------------
   El texto se hereda, así que basta con ponerlo en el body y
   reforzarlo donde los temas suelen escribirlo a mano. Va sin
   `!important` a propósito: aquí no hay un token que salve las
   excepciones una a una, y forzar el color de todos los
   párrafos del documento apagaría los subtítulos, los
   metadatos y los pies de foto, que son grises a propósito. --- */
body.aihd-on{color:var(--aihd-tx)}

body.aihd-on :is(.aihd-doc,.the-content,.entry-content,.post-content,.single-content,.page-content,.td-post-content,.elementor-widget-text-editor,article,main) :is(p,li,dd,blockquote):not(:where(
	.aihd-sub,.aihd-lead,.aihd-meta,.aihd-dist,figcaption,
	.aihd-card *,.aihd-row *,.aihd-feature *,.aihd-tcard *,.aihd-float *,
	.aihd-pie *,.aihd-cab *,.aihd-herr *,.aihd-toc *,
	.aihd-btn,.wp-block-button *
)){
	color:var(--aihd-tx)}

/* --- 41.3 Donde la regla se invierte ------------------------
   Un encabezado dentro de una banda de color no puede seguir la
   regla de la página: sobre un fondo de marca saturado, el
   negro no se lee aunque el resto del sitio sea claro. Se
   redefine el token en el contenedor y todo lo de dentro lo
   hereda, en lugar de repintar cada elemento.

   Es también lo que hace que el `!important` de 41.1 sea
   inofensivo: no impone un color, impone que se obedezca al
   token. --- */
body.aihd-on :is(.aihd-v--banda .aihd-cta,.aihd-ph,.aihd-skip),
body.aihd-on .aihd-home-wrap .aihd-tile:nth-child(1),
body.aihd-on .aihd-home-wrap .aihd-bgh-gradiente{
	--aihd-h:var(--aihd-on-p);
	--aihd-tx:var(--aihd-on-p)}

body.aihd-on .aihd-home-wrap .aihd-bgh-solido{
	--aihd-h:var(--aihd-bg);
	--aihd-tx:var(--aihd-bg)}

/* Las cabeceras de tabla llevan fondo de marca. */
body.aihd-on :is(th,thead td){
	--aihd-h:var(--aihd-on-p)}

/* Cualquier bloque del tema con fondo de color propio: si un tema pinta
   una sección con su color de marca, el encabezado de dentro no puede
   heredar la regla de la página. No hay forma de detectarlo en CSS, así
   que se ofrece la clase para ponerla a mano. */
body.aihd-on .aihd-invertir{
	--aihd-h:var(--aihd-on-p);
	--aihd-tx:var(--aihd-on-p)}

/* --- 41.4 Lo que conserva su color --------------------------
   Un enlace dentro de un encabezado sigue siendo un enlace: si se
   pinta igual que el resto del título, deja de parecer pulsable. La
   excepción son las tarjetas, donde el título ES el enlace y el área
   pulsable es la tarjeta entera. --- */
body.aihd-on :is(h1,h2,h3) a:not(.aihd-btn):not(.aihd-stretch){
	color:var(--aihd-lk)!important}
body.aihd-on :is(.aihd-card,.aihd-row,.aihd-tcard,.aihd-float) :is(h1,h2,h3) a{
	color:inherit!important}
