/*
Theme Name: PSIP · Personal Shopper Ingresos Pasivos
Theme URI: https://personalshopperingresospasivos.com
Description: Tema hijo de Hello Elementor para Personal Shopper Ingresos Pasivos. Tokens de marca (tinta, oro, hueso), tipografías Public Sans / Spectral / IBM Plex Mono, cabecera y pie propios, blog, y el tipo de contenido «Análisis» con sus seis métricas.
Author: José Urdaneta
Template: hello-elementor
Version: 1.0.0
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: psip
*/

/* =====================================================================
   1 · Tokens
   ===================================================================== */
:root{
  --tinta:#0D0D0F; --tinta-2:#16161A; --tinta-3:#232329; --tinta-borde:#2A2A31;
  --oro:#E3A324; --oro-claro:#F0B23C; --oro-tenue:#8A6A26; --bronce:#7A5A0E;
  --hueso:#F4F2EE; --alerta:#B3402F; --verde:#2C6046;
  --fondo:#F6F4F0; --panel:#FFFFFF; --panel-2:#EFECE6;
  --texto:#16161A; --texto-2:#5A6169; --texto-3:#6F757C; --borde:#DFDBD3;
  --acento:var(--bronce);
  --ui:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --lectura:"Spectral",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --radio:3px; --ancho:1160px; --gutter:20px; --medida:64ch;
}

/* =====================================================================
   2 · Base
   ===================================================================== */
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body.psip{margin:0; background:var(--fondo); color:var(--texto); font-family:var(--lectura);
  font-size:1.0625rem; line-height:1.65; -webkit-font-smoothing:antialiased}
.psip img,.psip svg{max-width:100%; height:auto}
.psip a{color:var(--acento); text-decoration:none}
.psip a:hover{text-decoration:underline; text-underline-offset:3px}
.psip :focus-visible{outline:2px solid var(--oro); outline-offset:3px; border-radius:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important; transition:none!important; scroll-behavior:auto!important}}

.psip h1,.psip h2,.psip h3,.psip h4{font-family:var(--ui); margin:0; letter-spacing:-.025em; line-height:1.08; text-wrap:balance; color:inherit}
.psip h1{font-weight:800; font-size:clamp(2.2rem,5.4vw,3.6rem)}
.psip h2{font-weight:800; font-size:clamp(1.6rem,3.4vw,2.3rem)}
.psip h3{font-weight:700; font-size:1.18rem; letter-spacing:-.015em; line-height:1.25}
.psip h4{font-weight:700; font-size:1rem}
.psip p{margin:0}
.rotulo{font-family:var(--mono); font-size:.7rem; letter-spacing:.17em; text-transform:uppercase; color:var(--texto-3)}
a.rotulo:hover{color:var(--acento); text-decoration:none}
.rotulo-oro{color:var(--oro)}
.ui{font-family:var(--ui)}
.mono{font-family:var(--mono)}
.nota{font-size:.85rem; color:var(--texto-3)}
.centrado{text-align:center}
.sep{height:1px; background:var(--borde); border:0; margin:0}
.screen-reader-text,.psip .skip-link{position:absolute; left:-9999px}
.psip .skip-link:focus{left:12px; top:12px; z-index:99; background:var(--oro); color:#1A1305; padding:.6rem 1rem; border-radius:var(--radio)}

/* =====================================================================
   3 · Estructura
   ===================================================================== */
.envoltorio{width:100%; max-width:var(--ancho); margin-inline:auto; padding-inline:var(--gutter)}
.envoltorio.estrecho{max-width:780px}
.seccion{padding-block:clamp(2.6rem,5vw,4rem)}
.seccion-compacta{padding-block:clamp(2rem,4vw,3rem)}
.pila{display:flex; flex-direction:column; gap:1.1rem}
.cabecera{display:grid; gap:.6rem; margin-bottom:clamp(1.4rem,2.5vw,2rem); max-width:var(--medida)}
.cabecera.centrada{margin-inline:auto; text-align:center}
.cabecera .entrada,.entrada{font-size:1.05rem; color:var(--texto-2)}
.oscuro{background:var(--tinta); color:var(--hueso)}
.oscuro h1,.oscuro h2,.oscuro h3,.oscuro h4{color:var(--hueso)}
.oscuro .rotulo{color:var(--oro)}
.oscuro p{color:#C3C7CC}
.oscuro .nota{color:#8B9097}
.oscuro a{color:var(--oro)}
.oscuro .entrada{color:#C3C7CC}
.suave{background:var(--panel-2)}
.cabecera-pagina .entrada{max-width:62ch}
.cabecera-pagina h1{font-size:clamp(1.9rem,4.6vw,2.9rem); max-width:22ch}
.meta-entrada{font-family:var(--ui); font-size:.9rem; color:#A0A5AB}
.pie-seccion{margin-top:1.6rem; display:flex; flex-wrap:wrap; align-items:center; gap:1rem}
.enlace-flecha{font-family:var(--ui); font-weight:600; font-size:.92rem; display:inline-flex; align-items:center; gap:.4rem}
.enlace-flecha::after{content:"→"}

/* =====================================================================
   4 · Botones y formularios
   ===================================================================== */
.psip .boton,.psip .wp-block-button__link,.psip .elementor .e-button-base{font-family:var(--ui); font-weight:700; font-size:.94rem; padding:.82rem 1.3rem;
  border-radius:var(--radio); border:1px solid transparent; display:inline-flex; align-items:center;
  gap:.55rem; cursor:pointer; line-height:1; white-space:nowrap; transition:background .15s,border-color .15s,color .15s}
.psip .boton:hover,.psip .elementor .e-button-base:hover{text-decoration:none}
.boton-oro,.psip .wp-block-button__link,.psip .elementor .e-button-base{background:var(--oro); color:#1A1305}
.boton-oro:hover,.psip .elementor .e-button-base:hover{background:var(--oro-claro); color:#1A1305}
.oscuro .boton-oro,.oscuro .boton-oro:hover,.psip .elementor .oscuro .e-button-base,.psip .elementor .oscuro .e-button-base:hover{color:#1A1305}
.boton-linea{border-color:var(--borde); color:var(--texto); background:transparent}
.boton-linea:hover{border-color:var(--texto); color:var(--texto)}
.oscuro .boton-linea{border-color:#3A3A43; color:var(--hueso)}
.oscuro .boton-linea:hover{border-color:var(--oro); color:var(--oro)}
.acciones{display:flex; flex-wrap:wrap; gap:.7rem}
.psip input[type=email],.psip input[type=text],.psip input[type=search],.psip input[type=url],.psip textarea,.psip select{
  font:inherit; font-size:.98rem; padding:.7rem .8rem; border:1px solid var(--borde); border-radius:var(--radio);
  background:var(--panel); color:var(--texto); width:100%}
.oscuro input[type=email],.oscuro input[type=text],.oscuro input[type=search]{background:var(--tinta-2); border-color:#3A3A43; color:var(--hueso)}
form.caja{display:flex; flex-direction:column; gap:.9rem}
.campo{display:flex; flex-direction:column; gap:.35rem}
.campo label{font-family:var(--ui); font-size:.85rem; font-weight:600}
.check{display:grid; grid-template-columns:auto 1fr; gap:.6rem; align-items:start; font-size:.88rem; color:var(--texto-2)}
.check input{margin-top:.3rem}
.fila{display:flex; gap:.6rem}
.buscar{display:flex; gap:.6rem; max-width:520px}
@media (max-width:480px){.fila,.buscar{flex-direction:column}}

/* =====================================================================
   5 · Cabecera del sitio
   ===================================================================== */
.barra{position:sticky; top:0; z-index:50; background:rgba(13,13,15,.94);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-bottom:1px solid var(--tinta-borde)}
.admin-bar .barra{top:32px}
@media (max-width:782px){.admin-bar .barra{top:46px}}
.barra-in{display:flex; align-items:center; gap:1rem; min-height:64px}
.marca,.psip a.marca,.psip a.marca:hover{display:flex; align-items:center; gap:.75rem; color:#fff; text-decoration:none}
.marca:hover{text-decoration:none}
.marca .espiral,.marca .marca-img{width:48px; height:auto; flex:none}
.marca b{font-family:var(--ui); font-weight:800; font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; line-height:1.3; white-space:nowrap}
.nav{margin-left:auto; display:flex; align-items:center; gap:.15rem}
.nav ul{list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:.15rem}
.nav a{font-family:var(--ui); font-size:.84rem; font-weight:500; color:#B9BDC2; padding:.5rem .65rem; border-radius:var(--radio); display:block; white-space:nowrap}
.nav a:hover{color:var(--hueso); background:#1F1F25; text-decoration:none}
.nav .current-menu-item>a,.nav .current_page_item>a,.nav .current-menu-ancestor>a{color:var(--oro)}
.nav .cta{background:var(--oro); color:var(--tinta); font-weight:700; padding:.55rem .9rem; margin-left:.5rem}
.nav .cta:hover{background:var(--oro-claro); color:var(--tinta)}
.hamburguesa{display:none; margin-left:auto; background:none; border:1px solid #3A3A43; color:var(--hueso);
  border-radius:var(--radio); width:42px; height:42px; align-items:center; justify-content:center; cursor:pointer; padding:0}
.hamburguesa svg{width:20px; height:20px}
.hamburguesa:focus-visible{outline:2px solid var(--oro); outline-offset:2px}
.hamburguesa[aria-expanded="true"]{border-color:var(--oro); color:var(--oro)}
@media (max-width:1024px){
  .hamburguesa{display:inline-flex}
  .nav{display:none; position:absolute; left:0; right:0; top:100%; background:var(--tinta);
    border-bottom:1px solid var(--tinta-borde); flex-direction:column; align-items:stretch;
    padding:.6rem var(--gutter) 1rem; gap:.1rem}
  .nav.abierto{display:flex}
  .nav ul{flex-direction:column; align-items:stretch; gap:0}
  .nav a{padding:.75rem .5rem; font-size:.95rem; border-bottom:1px solid #1F1F25}
  .nav .cta{margin:.6rem 0 0; text-align:center; justify-content:center; display:flex}
}

/* =====================================================================
   6 · Portada (Elementor v4: los contenedores llevan estas clases)
   ===================================================================== */
.hero{position:relative; overflow:hidden; border-bottom:1px solid var(--tinta-borde);
  background:radial-gradient(900px 500px at 80% 110%, rgba(227,163,36,.10), transparent 60%), var(--tinta)}
.hero-espiral{position:absolute; right:-8%; bottom:-30%; width:min(820px,95%); opacity:.13; pointer-events:none}
.hero-espiral svg{width:100%; height:auto}
.hero-in{position:relative; display:grid; gap:clamp(2rem,5vw,4rem); grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:center; padding-block:clamp(3.2rem,8vw,6rem)}
@media (max-width:940px){.hero-in{grid-template-columns:1fr}}
.hero h1{max-width:17ch; margin-top:.9rem}
.hero .entradilla{font-size:1.12rem; max-width:48ch; margin-top:1.3rem}
.hero .acciones{margin-top:1.9rem}
.garantias{display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; margin-top:1.8rem; padding-top:1.2rem; border-top:1px solid var(--tinta-borde)}
.garantias span{font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; color:#8B9097; display:inline-flex; align-items:center; gap:.45rem}
.garantias span::before{content:""; width:6px; height:6px; background:var(--oro); border-radius:50%}
.cifras{background:var(--tinta-2); border-bottom:1px solid var(--tinta-borde)}
.cifras-in{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--tinta-borde)}
@media (max-width:760px){.cifras-in{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cifra{background:var(--tinta-2); padding:1.2rem var(--gutter); display:grid; gap:.2rem}
.cifra b{font-family:var(--mono); font-weight:500; font-size:1.6rem; color:var(--oro); letter-spacing:-.02em; line-height:1}
.cifra span{font-family:var(--ui); font-size:.82rem; color:#A0A5AB}
.pasos{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; counter-reset:paso}
@media (max-width:820px){.pasos{grid-template-columns:1fr}}
.paso{counter-increment:paso; background:var(--tinta-2); border:1px solid var(--tinta-borde); border-radius:var(--radio);
  padding:1.4rem; display:grid; gap:.6rem; align-content:start}
.paso::before{content:counter(paso,decimal-leading-zero); font-family:var(--mono); font-size:.75rem; color:var(--oro); letter-spacing:.14em}
.paso h3{font-size:1.1rem}
.paso p{font-size:.95rem}
.ahora-no{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:1.1rem; margin-top:1.1rem}
@media (max-width:820px){.ahora-no{grid-template-columns:1fr}}

/* =====================================================================
   7 · Componentes
   ===================================================================== */
.rail{background:var(--tinta-2); border:1px solid var(--tinta-borde); border-radius:var(--radio); padding:1.15rem; color:var(--hueso);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.5)}
.rail-cab{display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .9rem; padding-bottom:.9rem; margin-bottom:.9rem; border-bottom:1px solid var(--tinta-borde)}
.rail-cab strong{font-family:var(--ui); font-weight:800; font-size:1.05rem; color:var(--hueso); letter-spacing:-.02em}
.rail-cab .rotulo{margin-left:auto; color:var(--oro)}
.rail .chip{border-color:#34343C; color:#A0A5AB; background:transparent}
.rail .chip-comision{color:var(--oro); border-color:#5A4718; background:#1E1A11}
.rail .chip-solicitada{color:#7FC0A0; border-color:#2B4D3C; background:#13201A}
.metricas{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--tinta-borde); border:1px solid var(--tinta-borde)}
@media (max-width:430px){.metricas{grid-template-columns:repeat(2,minmax(0,1fr))}}
.celda{background:var(--tinta-2); padding:.85rem .85rem .9rem; display:grid; align-content:start; gap:.28rem; min-width:0}
.celda .sigla{font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; color:#8B9097}
.celda .valor{font-family:var(--mono); font-size:1.05rem; font-weight:500; color:var(--hueso); font-variant-numeric:tabular-nums; line-height:1.25; letter-spacing:-.02em; overflow-wrap:anywhere}
.celda .estado{font-family:var(--mono); font-size:.62rem; color:#8B9097}
.celda.destacada{background:#1E1A11}
.celda.destacada .valor{color:var(--oro)}
.celda.pendiente .valor{color:#787D84}
.rail-pie{margin-top:.9rem; padding-top:.8rem; border-top:1px solid var(--tinta-borde); font-family:var(--mono); font-size:.66rem; color:#787D84; display:flex; flex-wrap:wrap; gap:.4rem 1rem}
.rail + .nota{margin-top:.9rem}

.chip{display:inline-flex; align-items:center; gap:.4rem; font-family:var(--ui); font-size:.7rem; font-weight:600; letter-spacing:.02em;
  padding:.26rem .6rem; border-radius:100px; border:1px solid var(--borde); color:var(--texto-2); white-space:nowrap; background:var(--panel)}
.chip::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor; flex:none}
.chip-comision{color:var(--bronce); border-color:#CDB379; background:#FAF3E2}
.chip-solicitada{color:var(--verde); border-color:#A9C8B6; background:#EEF6F1}
.chip-alerta{color:var(--alerta); border-color:#E0B4AC; background:#FBF1EF}
.oscuro .chip{border-color:#34343C; color:#A0A5AB; background:transparent}
.oscuro .chip-comision{color:var(--oro); border-color:#5A4718; background:#1E1A11}

.rejilla{display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.rejilla.dos{grid-template-columns:repeat(2,minmax(0,1fr))}
.rejilla.tres{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1000px){.rejilla.tres{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.rejilla.dos,.rejilla.tres{grid-template-columns:1fr}}
.tarjeta{background:var(--panel); border:1px solid var(--borde); border-radius:var(--radio); padding:1.35rem;
  display:flex; flex-direction:column; gap:.8rem; transition:border-color .15s, transform .15s; min-width:0}
.tarjeta:hover{border-color:#C9C2B4; transform:translateY(-2px)}
.tarjeta-analisis.publicada{border-color:#CDB379; box-shadow:inset 3px 0 0 var(--oro)}
.tarjeta-analisis.preparacion .resumen{color:var(--texto-3)}
.tarjeta-analisis.preparacion .mini .valor{color:var(--texto-2)}
.tarjeta h3 a{color:inherit}
.tarjeta h3 a:hover{color:var(--acento); text-decoration:none}
.tarjeta .meta{display:flex; flex-wrap:wrap; gap:.45rem; align-items:center}
.tarjeta .resumen{font-size:.96rem; color:var(--texto-2); flex:1}
.tarjeta .indice{font-family:var(--mono); font-size:.72rem; color:var(--acento); letter-spacing:.1em}
.tarjeta-img{margin:-1.35rem -1.35rem .2rem; display:block; border-bottom:1px solid var(--borde); overflow:hidden; border-radius:var(--radio) var(--radio) 0 0}
.tarjeta-img img{width:100%; aspect-ratio:16/10; object-fit:cover; display:block}
.metrica-card{gap:.6rem}
.metrica-card .cab{display:flex; align-items:baseline; justify-content:space-between; gap:1rem}
.metrica-card .sigla-grande{font-family:var(--mono); font-size:1.4rem; font-weight:500; color:var(--texto); letter-spacing:-.02em; line-height:1}
.mini{display:flex; flex-wrap:wrap; gap:.2rem 1.4rem; padding-top:.8rem; border-top:1px solid var(--borde)}
.mini div{display:flex; flex-direction:column}
.mini .sigla{font-family:var(--mono); font-size:.62rem; letter-spacing:.12em; color:var(--texto-3)}
.mini .valor{font-family:var(--mono); font-size:.92rem; color:var(--texto); font-variant-numeric:tabular-nums}

.panel{background:var(--panel); border:1px solid var(--borde); border-radius:var(--radio); padding:clamp(1.3rem,2.8vw,2rem); display:flex; flex-direction:column; gap:1rem}
.panel.marcado{border-left:3px solid var(--acento)}
.panel .resumen{color:var(--texto-2); font-size:.97rem}
.oscuro .panel{background:var(--tinta-2); border-color:var(--tinta-borde)}
.oscuro .panel.marcado{border-left-color:var(--oro)}
.lista-guion{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.6rem}
.lista-guion li{position:relative; padding-left:1.15rem; font-size:.97rem; color:var(--texto-2)}
.lista-guion li::before{content:"—"; position:absolute; left:0; color:var(--acento)}
.oscuro .lista-guion li{color:#C3C7CC}
.oscuro .lista-guion li::before{color:var(--oro)}
.lista-num{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.85rem; counter-reset:n}
.lista-num li{counter-increment:n; display:grid; grid-template-columns:2.1rem 1fr; column-gap:.7rem; row-gap:.1rem; align-items:start}
.lista-num li::before{content:counter(n,decimal-leading-zero); font-family:var(--mono); font-size:.72rem; color:var(--acento); padding-top:.28rem; letter-spacing:.06em; grid-column:1; grid-row:1 / span 2}
.lista-num li>*{grid-column:2}
.lista-num b{font-family:var(--ui); font-weight:700; font-size:.98rem; display:block; margin-bottom:.1rem}
.lista-num span{font-size:.95rem; color:var(--texto-2)}

.aviso{border-left:3px solid var(--acento); background:var(--panel-2); padding:1.1rem 1.3rem; font-size:.96rem; color:var(--texto-2); border-radius:0 var(--radio) var(--radio) 0}
.aviso strong{color:var(--texto); font-family:var(--ui)}
.aviso.rojo{border-left-color:var(--alerta)}
.oscuro .aviso{background:var(--tinta-2); color:#C3C7CC}
.oscuro .aviso strong{color:var(--hueso)}
.oscuro .aviso.oro{border-left-color:var(--oro)}

.persona{display:grid; grid-template-columns:96px 1fr; gap:1.2rem; align-items:start}
@media (max-width:480px){.persona{grid-template-columns:1fr}}
.retrato{width:96px; height:96px; border-radius:50%; background:linear-gradient(135deg,var(--panel-2),#DAD4C8); border:1px solid var(--borde);
  display:grid; place-items:center; font-family:var(--ui); font-weight:800; color:var(--texto-3); font-size:1.4rem; object-fit:cover}
.persona h3{margin-top:.2rem}
.persona .rol{font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--acento)}

.tabla-caja{overflow-x:auto; border:1px solid var(--borde); border-radius:var(--radio); background:var(--panel)}
.psip table{width:100%; border-collapse:collapse; font-family:var(--ui); font-size:.9rem; min-width:420px}
.psip caption{caption-side:top; text-align:left; padding:.8rem 1rem; font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--texto-3); background:var(--panel-2); border-bottom:1px solid var(--borde)}
.psip th,.psip td{text-align:left; padding:.7rem 1rem; border-bottom:1px solid var(--borde); vertical-align:top}
.psip th{font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--texto-3); font-weight:500; background:var(--panel-2)}
.psip tbody tr:last-child td{border-bottom:0}
.psip td.num{font-family:var(--mono); font-variant-numeric:tabular-nums; white-space:nowrap}

.filtros{display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:1.4rem}
.filtro{font-family:var(--ui); font-size:.82rem; font-weight:600; padding:.42rem .8rem; border-radius:100px; border:1px solid var(--borde);
  background:var(--panel); color:var(--texto-2); cursor:pointer}
.filtro:hover{text-decoration:none; border-color:var(--texto)}
.filtro[aria-current="true"]{background:var(--texto); color:var(--fondo); border-color:var(--texto)}

.boletin{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2rem; align-items:center}
@media (max-width:820px){.boletin{grid-template-columns:1fr}}
.boletin h3{margin-top:.4rem}
.boletin .resumen{margin-top:.5rem}

.paginacion{margin-top:2rem}
.paginacion ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.4rem}
.paginacion a,.paginacion span{font-family:var(--ui); font-size:.88rem; font-weight:600; padding:.5rem .8rem; border:1px solid var(--borde); border-radius:var(--radio); background:var(--panel); color:var(--texto-2); display:block}
.paginacion a:hover{text-decoration:none; border-color:var(--texto); color:var(--texto)}
.paginacion .current{background:var(--texto); color:var(--fondo); border-color:var(--texto)}

/* =====================================================================
   8 · Artículo y ficha
   ===================================================================== */
.articulo{display:grid; grid-template-columns:minmax(0,1fr); gap:2rem; max-width:1020px; margin-inline:auto}
@media (min-width:980px){
  .articulo{grid-template-columns:minmax(0,1fr) 220px; gap:3rem; align-items:start}
  .indice{position:sticky; top:96px}
}
.articulo .prosa{max-width:none}
.articulo .pila{min-width:0}
.indice{border-left:1px solid var(--borde); padding-left:1rem; display:flex; flex-direction:column; gap:.45rem}
.indice a{font-family:var(--ui); font-size:.84rem; color:var(--texto-2)}
.indice a:hover{color:var(--acento); text-decoration:none}
.prosa{max-width:var(--medida); display:flex; flex-direction:column; gap:1.1rem}
.prosa>*{margin:0}
.prosa h2{font-size:clamp(1.35rem,2.6vw,1.7rem); margin-top:1.2rem}
.prosa h3{margin-top:.6rem}
.prosa ul,.prosa ol{padding-left:1.3rem; display:flex; flex-direction:column; gap:.4rem; color:var(--texto-2)}
.prosa blockquote{border-left:3px solid var(--acento); margin:0; padding:.4rem 0 .4rem 1.2rem; font-style:italic; color:var(--texto-2)}
.prosa figure{margin:0}
.prosa img{border-radius:var(--radio)}
.prosa table{min-width:0}
.prosa .wp-block-table{overflow-x:auto; border:1px solid var(--borde); border-radius:var(--radio); background:var(--panel)}
.prosa strong{color:var(--texto)}
.prosa hr{height:1px; background:var(--borde); border:0}
.portada img{width:100%; border-radius:var(--radio); border:1px solid var(--borde)}
.autor{display:grid; grid-template-columns:72px 1fr; gap:1rem; align-items:start}
.autor .retrato{width:72px; height:72px}
.etiquetas a{font-family:var(--ui); font-size:.78rem; font-weight:600; padding:.3rem .65rem; border:1px solid var(--borde); border-radius:100px; color:var(--texto-2)}

/* =====================================================================
   9 · Pie
   ===================================================================== */
.pie{background:var(--tinta); color:#9298A0; padding-block:3rem 2rem; border-top:1px solid var(--tinta-borde)}
.pie-arriba{display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:2rem}
@media (max-width:980px){.pie-arriba{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.pie-arriba{grid-template-columns:1fr}}
.pie .marca b{color:var(--hueso)}
.pie .declaracion{font-family:var(--mono); font-size:.68rem; color:#8B9097; line-height:1.7; margin-top:1rem; max-width:44ch}
.pie h4{font-family:var(--ui); font-size:.68rem; letter-spacing:.17em; text-transform:uppercase; color:var(--oro); margin:0 0 .8rem; font-weight:700}
.pie ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.4rem}
.pie a{color:#B9BDC2; font-family:var(--ui); font-size:.88rem}
.pie a:hover{color:var(--oro); text-decoration:none}
.pie-legal{margin-top:2.4rem; padding-top:1.2rem; border-top:1px solid var(--tinta-borde); font-size:.8rem; color:#787D84; display:flex; flex-wrap:wrap; gap:.5rem 1.6rem; font-family:var(--ui)}

/* =====================================================================
   10 · Elementor: ajustes de convivencia
   ===================================================================== */
.psip .elementor .e-heading-base,.psip .elementor .e-paragraph-base{margin:0}
.psip .elementor .e-paragraph-base{color:inherit}
.psip .elementor-widget-html{width:100%}
.psip .elementor-widget-shortcode{width:100%}
.psip .elementor .e-flexbox-base.envoltorio,.psip .elementor .e-flexbox-base.seccion{width:100%}
.psip .comment-list{list-style:none; padding:0}
.psip .elementor .e-flexbox-base.rejilla,.psip .elementor .e-flexbox-base.hero-in,.psip .elementor .e-flexbox-base.pasos,.psip .elementor .e-flexbox-base.ahora-no,
.psip .elementor .e-flexbox-base.cifras-in,.psip .elementor .e-flexbox-base.boletin,.psip .elementor .e-flexbox-base.persona,.psip .elementor .e-flexbox-base.cabecera{display:grid}
.psip .elementor .e-flexbox-base.acciones,.psip .elementor .e-flexbox-base.garantias,.psip .elementor .e-flexbox-base.pie-seccion{display:flex; flex-direction:row}
.psip .elementor .e-flexbox-base.envoltorio{max-width:var(--ancho); margin-inline:auto; padding-inline:var(--gutter)}
.psip .elementor .e-flexbox-base.envoltorio.estrecho{max-width:780px}
.psip .elementor .e-flexbox-base.envoltorio.medio{max-width:900px}
.psip .elementor .e-flexbox-base.pila{gap:1.1rem}
/* Contenedores atómicos de Elementor: por defecto son fila con 10px de relleno; en PSIP son columna sin relleno. */
.psip .elementor .e-flexbox-base{flex-direction:column; padding:0; gap:0; width:100%; max-width:100%; min-width:0}
.psip .elementor .e-flexbox-base>*{min-width:0}
.psip .elementor .e-flexbox-base.acciones,.psip .elementor .e-flexbox-base.garantias,.psip .elementor .e-flexbox-base.pie-seccion{flex-direction:row; flex-wrap:wrap; align-items:center}
.psip .elementor .e-flexbox-base.acciones>.e-button-base{width:auto}
.psip .elementor .e-flexbox-base.pila{gap:1.1rem}
.psip .elementor .e-flexbox-base.panel{gap:1rem}
.psip .elementor .e-flexbox-base.hero-in{padding-block:clamp(3rem,6vw,4.6rem)}
.psip .elementor .e-flexbox-base.cabecera{gap:.7rem}
.psip .elementor .e-flexbox-base.seccion{padding-block:clamp(2.6rem,5vw,4rem)}
.psip .elementor .e-flexbox-base.seccion-compacta{padding-block:clamp(2rem,4vw,3rem)}
.psip .elementor .e-flexbox-base.envoltorio{padding-inline:var(--gutter)}
.psip .elementor .e-heading-base,.psip .elementor .e-paragraph-base{color:inherit; font:inherit; margin:0; width:auto}
.psip .elementor h1.e-heading-base,.psip .elementor h2.e-heading-base,.psip .elementor h3.e-heading-base{font-family:var(--ui); letter-spacing:-.025em; line-height:1.08}
.psip .elementor h1.e-heading-base{font-weight:800; font-size:clamp(2.2rem,5.4vw,3.6rem)}
.psip .elementor h2.e-heading-base{font-weight:800; font-size:clamp(1.6rem,3.4vw,2.3rem)}
.psip .elementor p.e-paragraph-base.rotulo{font:.7rem/1.6 var(--mono); letter-spacing:.17em; text-transform:uppercase}
.psip .elementor p.e-paragraph-base.entradilla{font-size:1.12rem; max-width:48ch; margin-top:1.3rem}
.psip .elementor p.e-paragraph-base.entrada{font-size:1.05rem}
.psip .elementor p.e-paragraph-base.nota{font-size:.85rem; color:var(--texto-3)}
.psip .elementor .oscuro p.e-paragraph-base.nota{color:#8B9097}
.psip .elementor .hero .e-flexbox-base.acciones{margin-top:1.9rem}
.psip .elementor .e-flexbox-base.pie-seccion{margin-top:1.6rem}
.psip .elementor .e-flexbox-base.ahora-no{margin-top:1.1rem}
.psip .elementor .e-flexbox-base.ahora-no>.e-flexbox-base.panel{justify-content:center}
.psip .elementor-widget-html,.psip .elementor-widget-shortcode{width:100%; max-width:100%}
.psip .elementor-widget-html>.elementor-widget-container,.psip .elementor-widget-shortcode>.elementor-widget-container{width:100%}
.psip .hero-espiral{position:absolute}
.psip .elementor .e-flexbox-base.hero{display:block}
.psip .elementor .e-button-base.boton-linea{background:transparent; border-color:var(--borde); color:var(--texto)}
.psip .elementor .e-button-base.boton-linea:hover{border-color:var(--texto); color:var(--texto)}
.psip .elementor .oscuro .e-button-base.boton-linea{border-color:#3A3A43; color:var(--hueso)}
.psip .elementor .oscuro .e-button-base.boton-linea:hover{border-color:var(--oro); color:var(--oro)}

/* =====================================================================
   11 · Popup del cuestionario
   ===================================================================== */
.tf-modal{border:0; padding:0; background:transparent; width:min(960px,calc(100vw - 2rem)); height:min(88vh,860px); max-width:none; max-height:none; overflow:visible}
.tf-modal::backdrop{background:rgba(13,13,15,.82); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px)}
.tf-caja{position:relative; width:100%; height:100%; background:#fff; border-radius:6px; overflow:hidden; box-shadow:0 40px 80px -30px rgba(0,0,0,.8)}
.tf-caja iframe{width:100%; height:100%; border:0; display:block; background:#fff}
.tf-cerrar{position:absolute; top:.6rem; right:.6rem; z-index:2; width:40px; height:40px; border-radius:50%; border:1px solid var(--borde); background:#fff; color:var(--texto); cursor:pointer; display:grid; place-items:center; padding:0}
.tf-cerrar:hover{background:var(--panel-2)}
.tf-cerrar svg{width:18px; height:18px}
html.tf-abierto{overflow:hidden}
@media (max-width:600px){.tf-modal{width:100vw; height:100vh; height:100dvh}.tf-caja{border-radius:0}}

/* Páginas con fondo blanco (meta _psip_fondo = blanco) */
.psip.psip-fondo-blanco{background:#fff}
.psip.psip-fondo-blanco .suave{background:#fff}
.psip.psip-fondo-blanco .cabecera-pagina{border-bottom:1px solid var(--borde)}

/* Retratos con foto */
img.retrato{object-fit:cover; object-position:50% 18%; background:var(--panel-2)}
.persona img.retrato{width:96px; height:96px}

/* Buscar en cabecera */
.nav .buscar-icono{display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; padding:0; color:#B9BDC2}
.nav .buscar-icono svg{width:18px; height:18px}
@media (max-width:1024px){.nav .buscar-icono{width:auto; justify-content:flex-start; gap:.5rem; padding:.75rem .5rem}.nav .buscar-icono::after{content:"Buscar"; font-size:.95rem}}

/* Blog: programadas atenuadas */
.tarjeta-entrada.programada{opacity:.75}
.tarjeta-entrada.programada:hover{opacity:1}

/* Nosotros: retratos grandes */
.persona-grande{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:2rem; align-items:center}
@media (max-width:820px){.persona-grande{grid-template-columns:1fr}}
.persona-grande img{width:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 15%; border-radius:var(--radio); border:1px solid var(--borde)}
.persona-grande .rol{font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--acento)}
.persona-grande h2{margin-top:.3rem}
.persona-grande .resumen{margin-top:.8rem; color:var(--texto-2)}
.persona-grande .lista-guion{margin-top:1rem}
.persona-grande.invertida img{order:2}
@media (max-width:820px){.persona-grande.invertida img{order:0}}

/* Popup: paso previo */
.tf-intro{position:absolute; inset:0; z-index:1; background:#fff; display:grid; place-items:center; padding:2rem; text-align:center}
.tf-intro .espiral{width:72px; margin-inline:auto; margin-bottom:1rem}
.tf-intro h3{font-size:1.5rem; max-width:22ch; margin-inline:auto}
.tf-intro p{color:var(--texto-2); max-width:44ch; margin:.8rem auto 0}
.tf-intro .datos{display:flex; flex-wrap:wrap; justify-content:center; gap:.4rem 1.4rem; margin-top:1.2rem}
.tf-intro .datos span{font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; color:var(--texto-3); display:inline-flex; align-items:center; gap:.45rem}
.tf-intro .datos span::before{content:""; width:6px; height:6px; background:var(--oro); border-radius:50%}
.tf-intro .boton{margin-top:1.6rem}
.tf-modal.tf-cargado .tf-intro{display:none}

/* Hero: titular a 3.3rem y "guste o no" en oro con un brillo que recorre el texto */
.psip .hero .hero-titulo{font-family:var(--ui); font-weight:800; font-size:2.625rem; line-height:1.08; letter-spacing:-.025em; max-width:100%; margin-top:.9rem; color:var(--hueso); overflow-wrap:anywhere}
@media (max-width:640px){.psip .hero .hero-titulo{font-size:2.3rem}}
.guste{display:inline; white-space:normal; color:var(--oro);
  background:linear-gradient(100deg, var(--oro) 0%, var(--oro) 40%, #FFE9A8 50%, var(--oro) 60%, var(--oro) 100%);
  background-size:250% 100%; background-position:100% 0;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;
  animation:guste-brillo 4.5s ease-in-out infinite}
@keyframes guste-brillo{0%,55%{background-position:100% 0} 80%,100%{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.guste{animation:none; background:none; -webkit-text-fill-color:var(--oro); color:var(--oro)}}

/* Paneles construidos con contenedores de Elementor: recuperar el relleno que anula la regla general */
.psip .elementor .e-flexbox-base.panel{padding:clamp(1.3rem,2.8vw,2rem)}
