/* Identidad compartida REDFE: tipografía complementaria, textos negros y superficies legibles. */
@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
:root {
  --font-sans:"Figtree",sans-serif;
  --font-display:"Plus Jakarta Sans",sans-serif;
  --font-body:var(--font-sans);
  --color-text:#000;
  --color-text-muted:#000;
  --color-primary:#000;
  --color-primary-deep:#000;
  --color-primary-dark:#000;
  --color-accent:#000;
  --color-danger:#000;
  --color-success:#000;
  --color-surface:#fff;
  --color-surface-soft:#f7f7f7;
  --color-surface-tint:#fff;
  --hero-purple-deep:#000; --hero-purple-muted:#000; --hero-purple-light:#fff; --hero-purple-border:#ddd;
  --redfe-key-accent:#765282;
}
html, html body { color-scheme:light !important; color:#000; font-family:"Figtree",sans-serif; }
html body:not(#redfe-identity-override) :is(div,section,article,aside,header,nav,footer,main,form,fieldset,details,h1,h2,h3,h4,h5,h6,p,a,button,input,select,textarea,label,legend,th,td,caption,li,dt,dd,summary,small,strong,em,b,span,output,blockquote,cite,time,code,pre,text,tspan):not([class*="fa-"]):not(.fas):not(.far):not(.fab):not(.fa) {
  color:#000 !important; -webkit-text-fill-color:#000;
}
html body:not(.seguros-page) :is(h1,h2,h3,h4,h5,h6,.titulo-portada,.titulo-seccion,.footerpie__logo strong) { font-family:"Plus Jakarta Sans",sans-serif !important; }
html body:not(#redfe-identity-override) :is(i,[class*="fa-"],.fas,.far,.fab,.fa) { color:#000 !important; -webkit-text-fill-color:#000; }
html body:not(#redfe-identity-override) ::placeholder { color:#000 !important; opacity:1; -webkit-text-fill-color:#000; }
html body:not(#redfe-identity-override) :is(button,input[type="submit"],input[type="button"],a[class*="btn"],a[class*="button"],.home-services__cta,.mobile-menu-whatsapp,.financial-open-link) {
  color:#000 !important; background:#fff !important; border-color:#000 !important; text-shadow:none !important;
}
html body:not(#redfe-identity-override) :is(button,input[type="submit"],input[type="button"],a[class*="btn"],a[class*="button"]):hover { background:#f4f4f4 !important; }
html body:not(#redfe-identity-override) :is(input,select,textarea) { color:#000 !important; background:#fff !important; caret-color:#000; }
html body:not(#redfe-identity-override) :is(a,button,input,select,textarea,summary):focus-visible { outline:2px solid #000; outline-offset:3px; }
/* Conservar fotografías y tamaños; aclarar el fondo para leer texto negro. */
html body:not(#redfe-identity-override) :is(.home-hero,.portada-cooperativa,.financial-hero,.calculator-hero,.member-documents__hero,.staff-access-hero,.social-funds-hero) { background:#fff !important; }
html body:not(#redfe-identity-override) .home-hero__media::after,
html body:not(#redfe-identity-override) .portada-cooperativa::after { background:linear-gradient(90deg,rgba(255,255,255,.35),rgba(255,255,255,.74) 26%,rgba(255,255,255,.85) 50%,rgba(255,255,255,.74) 74%,rgba(255,255,255,.35)) !important; }
html body:not(#redfe-identity-override) :is(.financial-hero,.calculator-hero,.member-documents__hero,.staff-access-hero)::before,
html body:not(#redfe-identity-override) :is(.financial-hero,.calculator-hero,.member-documents__hero,.staff-access-hero)::after { background:none !important; }
html body:not(#redfe-identity-override) :is(.home-hero h1,.home-hero__text,.titulo-portada) { text-shadow:none; }
html body:not(#redfe-identity-override) :is(.site-header-shell,.top-bar,.site-header-shell header,.submenu,.menu-movil,.welfare-contact,.credit-simulator,.seccion-haztesocio,.redfe-blog__heading,.redfe-single__heading,.privacy-page>.ahorro-bloque) { background:#fff !important; }
html body:not(#redfe-identity-override) :is(.footerpie__details,.footerpie__hours,.footerpie__contact) { border-color:#ddd; }
html body:not(#redfe-identity-override) :is(.member-documents__badge,.document-visual__paper i,.document-visual__check,.calculator-mode input:checked+span,.credit-frequency-options input:checked+span,.identity-preview__badge,.identity-side__title>span,.loan-form-progress li.is-active span,.pdf-success-icon) { background:#fff !important; }
/* Un único acento morado en la acción principal de contacto. */
html body:not(#redfe-identity-override) .header-whatsapp { background:#fff !important; border:1px solid #000 !important; border-bottom:3px solid var(--redfe-key-accent) !important; }
html body:not(#redfe-identity-override) .header-whatsapp:hover { background:#f5f1f7 !important; }
.home-header-reference .nav-links [data-public-nav] { font-weight:300; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.home-header-reference .nav-links [data-public-nav][aria-current="page"] { text-decoration:underline; text-underline-offset:7px; }
/* Reutilizar la sección de Inicio: título, adorno y accesos directos. */
.home-header-reference .home-needs .home-services__invitation { width:min(1180px,calc(100% - 48px)); max-width:1180px; margin:0 auto; padding:clamp(36px,5vw,64px) 0; }
.home-needs .home-needs__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:36px; }
.home-needs .home-needs__item { display:flex; flex-direction:column; min-width:0; padding:0 24px 0 0; text-align:left; }
.home-needs .home-needs__item+.home-needs__item { border-left:1px solid #ddd; padding-left:28px; }
.home-needs .home-needs__item h3 { --site-h3-size:21px; margin:0 0 12px; text-transform:none; font-weight:650; letter-spacing:0; }
.home-needs .home-needs__item p { margin:0 0 22px; line-height:1.65; text-align:left; }
.home-header-reference .home-needs .home-services__cta { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-width:0; min-height:44px; margin:auto 0 0; padding:12px 0; border:0; border-bottom:1px solid #000; text-transform:none; font-size:14px; box-shadow:none; }
html body:not(#redfe-identity-override) :is(.product-modal__summary span,.product-modal__eyebrow,.welfare-program__icon,.welfare-fund,.welfare-testimonials,.welfare-testimonial,.home-community__intro,.home-trust__requirements,.calculator-hero__inner) { background:#fff !important; border-color:#ddd; }
html body:not(#redfe-identity-override) .section-zigzag { filter:grayscale(1) brightness(0); }
/* Panel, incluidos datos y diálogos: lectura negra sobre superficies claras. */
html body.seguros-page, html body.seguros-page[data-theme="dark"] {
  --color-text:#000; --color-text-muted:#000; --color-surface:#fff; --color-surface-soft:#f7f7f7;
  --color-primary:#000; --color-primary-deep:#000; --color-accent:#000; --color-border-primary:#ddd;
  --panel-workspace-bg:#fff; --notice-title:#000; --notice-body:#000;
  background:#fff !important; color-scheme:light !important;
}
html body.seguros-page:not(#redfe-identity-override) :is(div,section,article,aside,header,nav,dialog,details,summary,thead,tbody,tr,th,td,form,fieldset,label,output) { background-color:#fff !important; background-image:none !important; }
html body.seguros-page:not(#redfe-identity-override) :is(.is-active,[aria-current="page"],[aria-selected="true"]) { font-weight:700; border-bottom-color:#000 !important; }
html body.seguros-page:not(#redfe-identity-override) :is(.nitro-auth-lock,.nitro-query-heading-icon,.nitro-icon-box,.redfe-notice__icon,.nitro-setting-icon) { background:#fff !important; }

@media(max-width:1100px) {
  html body:not(#redfe-identity-override) .nav-links { background:#fff !important; }
  html body:not(#redfe-identity-override) .mobile-menu-whatsapp { border-bottom:3px solid var(--redfe-key-accent) !important; }
}
@media(max-width:760px) {
  .home-needs .home-needs__grid,.savings-options__grid { grid-template-columns:1fr; gap:0; }
  .home-needs .home-needs__item { padding:24px 0; }
  .home-needs .home-needs__item+.home-needs__item { padding:24px 0; border-left:0; border-top:1px solid #ddd; }
  .home-needs .home-needs__grid { margin-top:18px; }
  .home-header-reference .home-needs .home-services__invitation { width:calc(100% - 40px); }
  .savings-option { padding:24px 0; }
  .savings-options__help { align-items:flex-start; flex-direction:column; }
}

html body:not(#redfe-identity-override) :is(.testimonial-list,.testimonials-impact,.welfare-contact>a,.member-documents__badge,.product-modal__section,.product-modal__header,.home-community,.home-trust,.home-pillars,.home-pillar,.home-community__intro,.credit-simulator__controls-card,.credit-simulator__note,.credit-simulator__highlights) { background:#fff !important; }

html body:not(#redfe-identity-override) :is(text,tspan) { fill:#000 !important; }
/* Estados y cabeceras de lectura: el contraste no depende de texto blanco. */
html body:not(#redfe-identity-override) :is(.tabs-conocenos a,.menu-movil a,.imagen-menor__caption,thead,th,.panel-home__card>i:first-child,.credit-btn--calculate i,.seguros-login__icono) { background:#fff !important; }
html body:not(#redfe-identity-override) :is(.tabs-conocenos a,.menu-movil a)[aria-current="page"] { box-shadow:inset 0 -3px #000; }
html body:not(#redfe-identity-override) :is(button,input[type="submit"],input[type="button"]) { border-width:1px !important; border-style:solid !important; }
html body:not(#redfe-identity-override) :is(.calculator-mode,.credit-frequency-options) input:checked+span { box-shadow:inset 0 -3px #000; font-weight:700; }
html body.seguros-page:not(#redfe-identity-override) i { background-color:#fff !important; }
.redfe-sidebar__actions { grid-template-columns:repeat(4,40px); }
html body:not(#redfe-identity-override) .section-kicker::before,
html body:not(#redfe-identity-override) .timeline-evolution-dots button.is-active { background:#000 !important; }
html body:not(#redfe-identity-override) .firmas-thanks { --firmas-accent:#000; }
html body:not(#redfe-identity-override) :is(button:disabled,input:disabled,select:disabled,textarea:disabled,.nitro-file-field.is-disabled) { opacity:1 !important; }
html body:not(#redfe-identity-override) :is(button:disabled,input:disabled,select:disabled,textarea:disabled) { border-style:dashed !important; cursor:not-allowed; }
/* Navegación completa: enlaces agrupados, sin trasladar la lista al pie. */
.nav-entry { display:flex; align-items:center; gap:4px; }
html body:not(#redfe-identity-override) .nav-entry .nav-parent { border:0 !important; padding:4px !important; width:auto; min-height:28px; min-width:24px; border-radius:0; box-shadow:none; background:transparent !important; font:inherit; }
.nav-entry .nav-parent i { font-size:12px; }
.nav-links .submenu { max-height:min(70dvh,460px); overflow-y:auto; }
html body:not(#redfe-identity-override) .nav-links .submenu a { border-color:#ddd; }
@media(min-width:1101px) {
 .home-header-reference .header1 { grid-template-columns:auto minmax(0,1fr) auto; gap:clamp(18px,2vw,32px); }
 .home-header-reference .header1 nav>ul { gap:clamp(10px,1.2vw,18px); }
 .nav-links>ul>li:last-child .submenu { right:0; left:auto; transform:translateY(12px); }
 .nav-links>ul>li:last-child:is(.is-open,:hover,:focus-within) .submenu { transform:translateY(0); }
}
@media(min-width:1101px) and (max-width:1300px) { .nav-links>ul { font-size:13px; gap:10px; } .home-header-reference .header1 { gap:18px; padding-inline:32px; } .home-header-reference .logo { font-size:17px; letter-spacing:.1em; } }
@media(max-width:1100px) {
 .nav-entry { justify-content:space-between; width:100%; }
 .nav-entry>a { flex:1; }
 .home-header-reference .header1 .nav-links { overflow-x:hidden; overflow-y:auto; }
 .home-header-reference .header1 .nav-links .submenu { position:static; display:none; max-height:none; overflow:visible; transform:none; opacity:1; visibility:visible; min-width:0; width:100%; }
 .home-header-reference .header1 .nav-links .has-submenu.is-open>.submenu { display:grid; }
 .home-header-reference .header1 .nav-links:not(.active) .submenu { display:none; }
}
/* Pie compacto: solo identificación, sucursales y atención. */
html body:not(#redfe-identity-override) :is(.footerpie,.footerpie__main,.footerpie__legal) { background:#000 !important; }
html body:not(#redfe-identity-override) .footerpie#contacto>.footerpie__main,
html body:not(#redfe-identity-override) .footerpie#contacto>.footerpie__main :is(div,span,strong,h2,p,a,i),
html body:not(#redfe-identity-override) .footerpie#contacto>.footerpie__legal :is(p,a,span) { color:#fff !important; -webkit-text-fill-color:#fff !important; }
.footerpie__main { grid-template-columns:.85fr 1.25fr 1.15fr 1.15fr; padding:28px clamp(24px,5vw,72px) 24px; }
.footerpie__main>div { padding:0 clamp(16px,2vw,28px); }
.footerpie__main>div+div { border-left:1px solid #ffffff35; }
.footerpie__main>.footerpie__location { margin:0; padding-block:0; border-top:0; }
html body:not(#redfe-identity-override) .footerpie__main h2 { --site-h2-size:18px; font-size:18px !important; font-weight:600; line-height:1.25; margin:0 0 10px; text-transform:none; letter-spacing:0; }
.footerpie__main .footerpie__logo { font-size:12px; gap:6px; }
.footerpie__logo strong { font-size:40px; }
.footerpie__logo::after { display:none; }
.footerpie__main :is(a,p) { font-size:13px; line-height:1.5; }
.footerpie__main .footerpie__whatsapp { margin-top:10px; }
.footerpie__attention>a { display:block; margin-top:6px; }
.footerpie__legal { justify-content:center; border-top:1px solid #ffffff30; padding:12px 24px; }
.footerpie__legal p { font-size:12px; }
.footerpie::before,.footerpie::after { inset:0 0 auto; filter:invert(1); }
html body:not(#redfe-identity-override) .footer-map-dialog { background:#fff !important; color:#000 !important; }
@media(max-width:1100px) { .footerpie__main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 0; } .footerpie__main>div:nth-child(odd) { padding-left:0; border-left:0; } .footerpie__main>div:nth-child(even) { padding-right:0; } }
@media(max-width:600px) { .footerpie__main { gap:20px 0; padding:24px 20px; } .footerpie__main>div:nth-child(n) { padding:0 12px; border-top:0; } .footerpie__main>.footerpie__brand { grid-column:1/-1; padding:0; } .footerpie__main>.footerpie__location:nth-child(2) { padding-left:0; padding-right:12px; border-left:0; } .footerpie__main>.footerpie__location:nth-child(3) { padding-left:12px; padding-right:0; border-left:1px solid #ffffff35; } .footerpie__main>.footerpie__attention { grid-column:1/-1; padding:16px 0 0; border-left:0; border-top:1px solid #ffffff35; } .footerpie__main :is(a,p) { font-size:12px; } html body:not(#redfe-identity-override) .footerpie__main h2 { font-size:17px !important; } .footerpie__legal { align-items:flex-start; padding:12px 20px 56px; } .footerpie__legal p { font-size:12px; } }
/* Tarjetas de ahorro: recuperar la presentación anterior y sus cuatro detalles. */
.productos-simple { padding:clamp(48px,6vw,78px) 1rem; background:#fff; text-align:center; }
.cajas-ahorro-redfe { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(16px,2vw,24px); max-width:1220px; margin:36px auto 0; }
.icono-producto { font-size:max(12px, 2.2rem); margin-bottom:1rem; }
html body:not(#redfe-identity-override) .caja-redfe a { background:#fff; border:1px solid #000; }
@media(max-width:1000px) { .cajas-ahorro-redfe { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:580px) { .cajas-ahorro-redfe { grid-template-columns:1fr; } }
/* La figura de acceso sigue siendo visible con el botón blanco. */
.seguros-login__person::before,.seguros-login__person::after,.seguros-login__leg { background:#000; }
.seguros-login__door { border-color:#000; }

/* Encabezado con menú en mayúsculas y Figtree ligera. */
.home-header-reference .logo,
.home-header-reference .logo a span { font-family:"Figtree",sans-serif; font-weight:500; letter-spacing:.16em; }
.home-header-reference .logo a span:last-child { font-weight:600; letter-spacing:.2em; }
html body:not(#redfe-identity-override) .nav-entry>a,
html body:not(#redfe-identity-override) .nav-entry .nav-parent,
html body:not(#redfe-identity-override) .nav-entry .nav-parent>span,
html body:not(#redfe-identity-override) .nav-links .submenu a { font-family:"Figtree",sans-serif !important; font-weight:300; text-transform:uppercase; }
.home-header-reference .header1 .nav-entry>a,
html body:not(#redfe-identity-override) .nav-entry .nav-parent { font-size:15px; letter-spacing:.06em; }
.home-header-reference .header1 .nav-links .submenu a { font-size:13.5px; font-weight:300; }
html body:not(#redfe-identity-override) .nav-entry>a[aria-current="page"] { font-weight:300; }
@media(max-width:1100px) { html body:not(#redfe-identity-override) .nav-entry>a,html body:not(#redfe-identity-override) .nav-entry .nav-parent { font-size:max(12px, .9rem); font-weight:300; letter-spacing:.06em; } }

/* Redes en la marca del pie: pequeñas, sin añadir otra fila de navegación. */
.footerpie__brand .footerpie__social { margin:14px 0 0; padding:0; border:0; gap:10px; }
.footerpie__brand .footerpie__social a { width:30px; height:30px; font-size:14px; border-color:#ffffff60; }
html body:not(#redfe-identity-override) .footerpie#contacto .footerpie__social a:hover,
html body:not(#redfe-identity-override) .footerpie#contacto .footerpie__social a:focus-visible { background:#000; outline:1px solid #fff; outline-offset:3px; }
/* Restaurar la fotografía y su revelado original, sin placas blancas. */
html body:not(#redfe-identity-override) #experiencias .home-pillar>span { color:#fff !important; -webkit-text-fill-color:#fff !important; background:transparent; font-family:"Plus Jakarta Sans",sans-serif; }
/* Dos copias iguales de las alianzas forman un recorrido continuo. */
.home-alliance-carousel__track { --alliance-half-gap:clamp(17px,3vw,42px); gap:calc(var(--alliance-half-gap)*2); animation:redfe-alliance-drift 34s linear infinite; will-change:transform; }
.home-alliance-carousel__track:is(:hover,:focus-within) { animation-play-state:paused; }
@keyframes redfe-alliance-drift { to { transform:translateX(calc(-50% - var(--alliance-half-gap))); } }
@media(prefers-reduced-motion:reduce) { .home-alliance-carousel__track { animation:none; transform:none; will-change:auto; } }

/* Ritmo vertical público: cada bloque aporta una sola separación exterior. */
:root {
  --redfe-section-space: 40px;
  --redfe-section-gap: 24px;
}
@media (max-width: 760px) {
  :root {
    --redfe-section-space: 28px;
    --redfe-section-gap: 20px;
  }
}

/* Selección explícita: no alcanza cabeceras, campos, tarjetas ni diálogos. */
html body:not(.seguros-page) :is(
  .home-page > .home-services,
  .home-page > .home-trust,
  .home-page > .home-alliance-carousel,
  .nosotros-page > .nosotros-intro,
  .nosotros-page > .valores-cooperativa,
  .member-page .member-invite,
  .member-page .member-documents,
  .member-page .member-community-gallery,
  .member-page .member-commitments,
  .member-page .seccion-ahorro,
  .member-page .seccion-menor,
  .member-page .nota-legal,
  .products-page .productos-simple,
  .credit-page .credit-products,
  .credit-page .credit-story-carousel,
  .credit-page .credit-simulator,
  .social-funds-refresh .welfare-programs,
  .social-funds-refresh .welfare-testimonials,
  .social-funds-refresh .welfare-contact,
  .testimonials-page .testimonials-gallery,
  .testimonials-page .testimonials-intro,
  .financial-page .financial-content,
  .loan-calculator-page .calculator-workspace,
  .loan-request-page .loan-request-workspace
) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: var(--redfe-section-space) !important;
  padding-bottom: var(--redfe-section-space) !important;
  min-height: 0;
}

/* Los bloques públicos conservan su altura real al desplazarse, sin reservas de 640px. */
html body:not(.seguros-page) main > section {
  content-visibility:visible !important;
  contain-intrinsic-size:none !important;
}

/* Inicio: invitation y community son contenedores, no una segunda sección. */
html body .home-page .home-services {
  padding-inline: 0;
}
html body .home-page .home-needs .home-services__invitation {
  padding-block: 0 !important;
}
html body .home-page .home-community,
html body .home-page .home-community__main {
  margin-block: 0 !important;
  padding-block: 0 !important;
}
html body .home-page .home-community__intro,
html body .home-page .home-community > .home-impact__stats,
html body .home-page .home-community > .home-pillars-section {
  margin-block: 0 !important;
  padding-block: var(--redfe-section-space) !important;
}
/* Cifras y experiencias comparten una transición, sin dos espacios consecutivos. */
html body .home-page .home-community > .home-pillars-section {
  padding-top: 0 !important;
}
html body .home-page .home-trust__grid {
  row-gap: var(--redfe-section-gap);
}

/* Nosotros: la tarjeta de misión conserva su relleno; se eliminan márgenes apilados. */
html body .nosotros-page > .nosotros-mission-vision {
  margin-block: 0 !important;
}
html body .nosotros-page > .seccion-cooperativas {
  margin-block: 0 !important;
  padding-block: 0 !important;
}
html body .nosotros-page .seccion-cooperativas > .columna-memoria,
html body .nosotros-page .seccion-cooperativas .columna-cooperativas,
html body .nosotros-page .seccion-haztesocio .contenedor-haztesocio {
  padding-top: var(--redfe-section-space) !important;
  padding-bottom: var(--redfe-section-space) !important;
}
html body .nosotros-page .cooperativa-cierre .seccion-haztesocio {
  margin-block: 0 !important;
  padding-block: 0 !important;
}

/* El espacio vertical pertenece a cada sección, no al contenedor de Ser Socio. */
html body .member-page > .contenido-limitado {
  padding-block: 0 !important;
}

/* Testimonios: la lista envuelve filas; cada fila mantiene su única separación. */
html body .testimonials-page .testimonial-list {
  margin-block: 0 !important;
  padding-block: 0 !important;
}
html body .testimonials-page .testimonial-list > .testimonial-card,
html body .testimonials-page .testimonial-list > .testimonials-impact {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: var(--redfe-section-space) !important;
  padding-bottom: var(--redfe-section-space) !important;
}

/* Privacidad: el título y el documento no duplican el relleno del contenedor. */
html body.privacy-modern .privacy-page {
  padding-top: var(--redfe-section-space);
  padding-bottom: var(--redfe-section-space);
}
html body.privacy-modern .privacy-page > .ahorro-bloque {
  margin-bottom: 0;
}
html body.privacy-modern .privacy-page > .aviso-privacidad {
  padding-top: var(--redfe-section-space);
  padding-bottom: 0;
  margin-block: 0;
}

/* Historia: secciones explícitas; los controles y sus modales conservan su espacio. */
html body.timeline-page {
  --timeline-section-space: var(--redfe-section-space);
  --timeline-section-y: var(--redfe-section-space);
}
html body.timeline-page :is(
  .introduccion-redfe,
  .timeline-slider-section,
  .savings-model-section,
  .birth-redfe-section,
  .grid-section,
  .etapas-section
) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: var(--redfe-section-space) !important;
  padding-bottom: var(--redfe-section-space) !important;
}
html body.timeline-page .timeline-cta {
  margin-block: 0 !important;
  padding-block: 0 !important;
}
html body.timeline-page .timeline-cta .contenedor-haztesocio {
  padding-block: var(--redfe-section-space) !important;
}

/* Blog público: ritmo uniforme sin alterar el contenido editorial de los artículos. */
html body :is(.redfe-blog, .redfe-single) {
  min-height: 0;
  padding-top: var(--redfe-section-space);
  padding-bottom: var(--redfe-section-space);
}
html body .redfe-blog > .redfe-blog__heading {
  margin-top: var(--redfe-section-gap);
  margin-bottom: var(--redfe-section-space);
}
html body .redfe-blog > .redfe-blog-search {
  padding-block: var(--redfe-section-space);
}

/* Hazte socio: lectura editorial y una sola acción en morado. */
html body:not(#redfe-identity-override) .home-trust .home-trust__content {
  max-width: 1180px;
  padding: 0;
  border: 0;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  align-items: center;
  gap: clamp(32px, 5vw, 72px);
}
html body:not(#redfe-identity-override) .home-trust .home-trust__copy { max-width: 620px; }
html body:not(#redfe-identity-override) .home-trust .home-trust__eyebrow,
html body:not(#redfe-identity-override) .home-trust .home-trust__requirements-label {
  display: block;
  margin: 0 0 13px;
  font-size: max(12px, .7rem);
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1.3;
  text-transform: uppercase;
}
html body:not(#redfe-identity-override) .home-trust #confianza-title {
  --site-h2-size: clamp(2.25rem, 3.65vw, 3.4rem);
  max-width: 18ch;
  margin: 0;
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1.03 !important;
}
html body:not(#redfe-identity-override) .home-trust #confianza-title strong { font-weight: 500; font-style: italic; }
html body:not(#redfe-identity-override) .home-trust .home-trust__copy > p {
  max-width: 50ch;
  margin: 17px 0 0;
  font-size: max(12px, .94rem);
  font-weight: 400;
  line-height: 1.6;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__proof {
  display: flex;
  gap: 28px;
  margin-top: 22px;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__proof > div + div {
  padding-left: 28px;
  border-left: 1px solid #dedede;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__proof strong {
  display: block;
  font-family: "Plus Jakarta Sans",sans-serif;
  font-size: max(12px, 2rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.02em;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__proof span {
  display: block;
  margin: 6px 0 0;
  font-size: max(12px, .73rem);
  font-weight: 400;
  letter-spacing: .01em;
  line-height: 1.35;
  text-transform: none;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__action { margin-top: 24px; }
html body:not(#redfe-identity-override) .home-trust .home-trust__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
  min-width: 230px;
  min-height: 52px;
  margin: 0;
  padding: 15px 22px;
  border: 1px solid #674475;
  border-radius: 0;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: #674475 !important;
  box-shadow: none;
  text-decoration: none;
  transform: none;
  transition: background-color .2s ease, border-color .2s ease;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__cta > span,
html body:not(#redfe-identity-override) .home-trust .home-trust__cta > i {
  margin: 0;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-size: max(12px, .8rem);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: .025em;
  text-transform: none;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__cta > i {  font-weight: 900; }
html body:not(#redfe-identity-override) .home-trust .home-trust__cta:is(:hover, :focus-visible) {
  border-color: #52345e;
  background: #52345e !important;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__requirements {
  min-width: 0;
  padding: clamp(22px, 2.5vw, 32px);
  border: 0;
  background: #f6f6f5 !important;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__requirements-label { margin-bottom: 10px; }
html body:not(#redfe-identity-override) .home-trust .home-trust__requirements-head,
html body:not(#redfe-identity-override) .home-trust .home-trust__requirements-head:is(:hover, :focus, :active) {
  padding: 0 0 17px;
  border: 0 !important;
  border-bottom: 1px solid #cacac8 !important;
  background: transparent !important;
  box-shadow: none;
  transform: none;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__requirements-head strong {
  font-family: "Plus Jakarta Sans",sans-serif;
  font-size: max(12px, 1.75rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -.02em;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__requirements ol { gap: 0; margin: 0; }
html body:not(#redfe-identity-override) .home-trust .home-trust__requirements li {
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 12px;
  min-height: 47px;
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid #dededc;
}
html body:not(#redfe-identity-override) .home-trust .home-trust__requirements li:last-child { border-bottom: 0; padding-bottom: 0; }
html body:not(#redfe-identity-override) .home-trust .home-trust__requirements li i { width: 24px; border-radius: 0; background: transparent; font-size: max(12px, .9rem); }
html body:not(#redfe-identity-override) .home-trust .home-trust__requirements li span { margin: 0; font-size: max(12px, .86rem); font-weight: 400; line-height: 1.4; letter-spacing: 0; text-transform: none; }
@media (max-width: 900px) {
  html body:not(#redfe-identity-override) .home-trust .home-trust__grid { grid-template-columns: 1fr; gap: 26px; }
  html body:not(#redfe-identity-override) .home-trust .home-trust__copy { max-width: none; }
  html body:not(#redfe-identity-override) .home-trust #confianza-title { max-width: 22ch; }
}
@media (max-width: 800px) {
  html body:not(#redfe-identity-override) .home-trust .home-trust__requirements { padding: 20px; }
  html body:not(#redfe-identity-override) .home-trust .home-trust__requirements-head,
  html body:not(#redfe-identity-override) .home-trust .home-trust__requirements-head:is(:hover, :focus, :active) { min-height: 38px; padding: 0; border: 0 !important; }
  html body:not(#redfe-identity-override) .home-trust .home-trust__requirements-head strong { font-size: max(12px, 1.5rem); }
  html body:not(#redfe-identity-override) .home-trust .home-trust__requirements-head .home-trust__requirements-toggle { width: 30px; height: 30px; flex-basis: 30px; font-size: max(12px, 1.5rem); }
  html body:not(#redfe-identity-override) .home-trust .home-trust__requirements.is-open ol { margin-top: 12px; max-height: 430px; opacity: 1; border-top: 1px solid #cacac8; }
  html body:not(#redfe-identity-override) .home-trust .home-trust__proof { gap: 24px; margin-top: 20px; }
  html body:not(#redfe-identity-override) .home-trust .home-trust__proof > div + div { padding-left: 24px; }
}
@media (max-width: 420px) {
  html body:not(#redfe-identity-override) .home-trust #confianza-title { --site-h2-size: 2.2rem; }
  html body:not(#redfe-identity-override) .home-trust .home-trust__proof strong { font-size: max(12px, 1.85rem); }
  html body:not(#redfe-identity-override) .home-trust .home-trust__proof span { font-size: max(12px, .7rem); }
  html body:not(#redfe-identity-override) .home-trust .home-trust__cta { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html body:not(#redfe-identity-override) .home-trust .home-trust__cta { transition: none; }
}

/* Mobile navigation: one calm list, clear controls and a compact contact action. */
.mobile-menu-label { display:none; }
.footerpie__legal { justify-content:space-between; flex-wrap:wrap; gap:8px 24px; }
.footerpie__legal .footerpie__legal-links { gap:12px; }
.footerpie__legal-links a { text-decoration:none; }
html body:not(#redfe-identity-override) .footerpie#contacto .footerpie__legal a:focus-visible { outline-color:#fff; }
@media(max-width:1100px) {
  html:has(body.menu-is-open), body.menu-is-open { overflow:hidden; }
  .home-header-reference .header1 .nav-links {
    inset:0 0 0 auto;
    width:min(390px,92vw);
    height:100vh;
    height:100dvh;
    min-height:0;
    padding:calc(20px + env(safe-area-inset-top)) 24px calc(28px + env(safe-area-inset-bottom));
    gap:0;
    border-left:1px solid #e9e6ea;
    box-shadow:-12px 0 40px #00000012;
    overscroll-behavior:contain;
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-width:thin;
  }
  .home-header-reference .header1 .nav-links.active { width:min(390px,92vw); }
  .home-header-reference .header1 .nav-links:not(.active) { width:0; padding-inline:0; }
  .home-header-reference .nav-links .mobile-menu-label {
    display:flex;
    align-items:center;
    flex:0 0 auto;
    min-height:44px;
    margin:0 52px 18px 0;
    font-family:"Figtree",sans-serif;
    font-size:12px;
    font-weight:500;
    letter-spacing:.17em;
    text-transform:uppercase;
  }
  html body.home-header-reference:not(#redfe-identity-override) .menu-close,
  html body.home-header-reference:not(#redfe-identity-override) .menu-toggle {
    width:44px;
    height:44px;
    min-height:44px;
    padding:0;
    border:0 !important;
    border-radius:0;
    background:transparent !important;
    box-shadow:none;
  }
  .home-header-reference .menu-close { top:calc(20px + env(safe-area-inset-top)); right:16px; }
  .home-header-reference .header1 .nav-links>ul { display:flex; flex-direction:column; align-items:stretch; flex:none; gap:0; width:100%; border-top:1px solid #e5e2e6; }
  .home-header-reference .header1 .nav-links>ul>li { width:100%; margin:0; padding:0; border-bottom:1px solid #e5e2e6; }
  .home-header-reference .header1 .nav-entry { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:58px; gap:0; }
  .home-header-reference .header1 .nav-entry>a {
    display:flex;
    align-items:center;
    flex:1;
    width:auto;
    min-width:0;
    min-height:58px;
    padding:16px 0;
    border:0;
    border-radius:0;
    background:transparent;
    text-decoration:none;
    font-size:14px;
    font-weight:300;
    letter-spacing:.075em;
    line-height:1.4;
  }
  html body.home-header-reference:not(#redfe-identity-override) .nav-entry .nav-parent {
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 44px;
    width:44px;
    min-width:44px;
    min-height:44px;
    padding:12px 0 !important;
    margin:0 -10px 0 0;
    border:0 !important;
    border-radius:0;
    background:transparent !important;
    box-shadow:none;
    font-size:14px;
    font-weight:300;
    letter-spacing:.075em;
    line-height:1.4;
  }
  html body.home-header-reference:not(#redfe-identity-override) .nav-entry>.nav-parent:only-child {
    justify-content:space-between;
    flex:1;
    width:100%;
    min-height:58px;
    padding-right:6px !important;
    margin:0;
  }
  .home-header-reference .header1 .nav-entry .nav-parent .fa-chevron-down { margin:0; font-size:12px; transition:transform .2s ease; }
  .home-header-reference .header1 .has-submenu.is-open>.nav-entry .fa-chevron-down { transform:rotate(180deg); }
  .home-header-reference .header1 .nav-entry>a[aria-current="page"] { text-decoration:none; font-weight:500; }
  .home-header-reference .header1 .nav-entry>a::after,
  .home-header-reference .header1 .nav-entry>.nav-parent::after { display:none; }
  .home-header-reference .header1 .nav-links .submenu,
  .home-header-reference .header1 .nav-links .has-submenu.is-open>.submenu {
    position:static;
    width:100%;
    min-width:0;
    max-height:none;
    margin:0;
    padding:0 0 12px 16px;
    gap:0;
    border:0;
    border-left:1px solid #e5e2e6;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    transform:none;
    opacity:1;
    overflow:visible;
  }
  .home-header-reference .header1 .nav-links .submenu li { margin:0; padding:0; border:0; }
  .home-header-reference .header1 .nav-links .submenu a {
    display:flex;
    align-items:center;
    width:100%;
    min-height:44px;
    padding:10px 0;
    border:0;
    border-radius:0;
    background:transparent;
    font-size:12px;
    font-weight:300;
    letter-spacing:.04em;
    line-height:1.5;
  }
  html body.home-header-reference:not(#redfe-identity-override) .header1 .nav-links .mobile-menu-whatsapp {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    flex:none;
    width:100%;
    min-height:46px;
    margin:22px 0 0;
    padding:10px 0;
    border:0 !important;
    border-radius:0;
    background:transparent !important;
    box-shadow:none;
    font-size:13px;
    font-weight:400;
    letter-spacing:0;
  }
  .home-header-reference .header1 .mobile-menu-whatsapp i { font-size:18px; }
  html body.home-header-reference:not(#redfe-identity-override) .header1 .nav-links :is(a,button):focus-visible { outline:2px solid var(--redfe-key-accent); outline-offset:-2px; }
  .home-header-reference .menu-overlay { background:#11111140; backdrop-filter:blur(2px); }
}
@media(max-width:600px) {
  .footerpie__legal { align-items:flex-start; gap:6px; }
  .footerpie__legal .footerpie__legal-links { gap:10px; line-height:1.7; }
}
@media(prefers-reduced-motion:reduce) {
  .home-header-reference .nav-links,
  .home-header-reference .menu-overlay,
  .home-header-reference .nav-parent .fa-chevron-down { transition:none; }
}

/* Un matiz morado en las portadas, con fotografías y texto oscuro legible. */
:root {
  --redfe-key-accent:#765282;
  --redfe-accent-ink:#674475;
  --redfe-accent-soft:#f4f0f6;
}
html body:not(#redfe-identity-override) :is(.home-hero,.portada-cooperativa) {
  background:#f4f0f6 !important;
}
html body:not(#redfe-identity-override) .home-hero__media::after,
html body:not(#redfe-identity-override) .portada-cooperativa::after {
  background:linear-gradient(105deg,rgba(118,82,130,.22),rgba(255,255,255,.78) 32%,rgba(250,247,252,.82) 60%,rgba(118,82,130,.18)) !important;
}
html body:not(#redfe-identity-override) .home-hero .home-hero__brand,
html body:not(#redfe-identity-override) .portada-cooperativa .section-kicker {
  color:var(--redfe-accent-ink) !important;
  -webkit-text-fill-color:var(--redfe-accent-ink) !important;
}
html body:not(#redfe-identity-override) .portada-cooperativa .section-kicker::before {
  background:var(--redfe-key-accent) !important;
}
html body:not(#redfe-identity-override) :is(.financial-hero,.calculator-hero,.social-funds-hero,.redfe-blog__heading,.redfe-single__heading) {
  background:linear-gradient(115deg,#f0eaf3 0%,#fbfafc 56%,#fff 100%) !important;
}
html body:not(#redfe-identity-override) .calculator-hero__inner { background:transparent !important; }
html body:not(#redfe-identity-override) :is(.financial-hero .financial-eyebrow,.calculator-hero .section-kicker,.social-funds-hero .section-kicker) {
  color:var(--redfe-accent-ink) !important;
  -webkit-text-fill-color:var(--redfe-accent-ink) !important;
}
/* El movimiento queda en la fotografía; el texto conserva una posición estable. */
[data-parallax-root] { overflow:hidden; }
html body [data-parallax-image] {
  transform:translate3d(0,var(--parallax-y,0px),0) scale(1.14) !important;
  transform-origin:center;
  transition:none !important;
}
html body [data-parallax-image][data-parallax-active] { will-change:transform; }
@media(prefers-reduced-motion:reduce) {
  html body [data-parallax-image] { transform:none !important; will-change:auto; }
}

/* Aparición discreta: las secciones se leen desde que entran en pantalla. */
html body:not(.seguros-page) .reveal-on-scroll {
  filter:none;
  transform:translateY(12px);
  transition:opacity .45s ease,transform .6s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--reveal-delay,0ms);
}
html body:not(.seguros-page) .reveal-on-scroll.is-visible { transform:none; }
@media(prefers-reduced-motion:reduce) {
  html body:not(.seguros-page) .reveal-on-scroll { opacity:1; transform:none; transition:none; }
}
/* Evitar espacios dobles en galerías y en el cuerpo editorial del blog. */
html body :is(.home-page .home-pillars-section,.member-page .member-community-gallery)>.section-zigzag { margin-bottom:var(--redfe-section-gap); }
html body .member-page .member-community-gallery>.home-pillars { margin-top:0; }
html body .member-page .member-documents__hero { padding-top:0; }
html body .redfe-single__paper { margin-top:0; padding-top:var(--redfe-section-space); padding-bottom:0; }
html body .redfe-single__tools { margin-bottom:var(--redfe-section-gap); }
html body .redfe-blog-empty { padding-block:var(--redfe-section-space); }
html body .redfe-blog__pagination { margin-top:var(--redfe-section-space); }
@media(max-width:1100px) {
  body.menu-is-open .floating-contact { opacity:0; visibility:hidden; pointer-events:none; }
}

/* Recuperar las acciones del panel frente a los overrides de identidad.
   Se excluye el acceso: seguros-ingreso.css mantiene su propio tratamiento. */
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  .nitro-apply,
  .seguros-btn:not(.seguros-btn--secondary),
  .usuarios-btn--primary,
  .usuarios-clave-form > button[type="submit"],
  .buscar-form input[type="submit"],
  .buscar-form .reporte-imprimir,
  .egresos-acciones-form > input[type="submit"],
  .oxxo-paid__search button[type="submit"],
  .oxxo-paid__generate,
  .redfe-notice__confirm,
  .nitro-export-options > button[data-export-scope],
  .nitro-detail-retry,
  #nitro-daily-now,
  #nitro-package-dialog button[value="confirm"],
  #nitro-quick-export,
  #firmas-create,
  #firmas-copy-new
) {
  --panel-action-bg: #111;
  --panel-action-hover: #292929;
  --panel-action-border: #111;
  --panel-action-ink: #fff;
}

/* Las acciones destructivas conservan su función y su jerarquía propia. */
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) .usuarios-btn--danger {
  --panel-action-bg: #a52a3a;
  --panel-action-hover: #8c2130;
  --panel-action-border: #a52a3a;
  --panel-action-ink: #fff;
}

/* El ID real en :is aporta especificidad suficiente para las reglas globales
   con !important, también cuando el control se crea mediante JavaScript. */
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  button:not(.panel-sidebar-backdrop),
  input[type="submit"],
  input[type="button"],
  a.seguros-btn,
  a.usuarios-btn,
  a.reporte-imprimir,
  a.oxxo-paid__generate,
  #firmas-create
) {
  color: var(--panel-action-ink, #000) !important;
  -webkit-text-fill-color: var(--panel-action-ink, #000) !important;
  background: var(--panel-action-bg, #fff) !important;
  border-color: var(--panel-action-border, #ccc) !important;
  text-shadow: none !important;
}
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  button:not(.panel-sidebar-backdrop), input[type="submit"], input[type="button"],
  a.seguros-btn, a.usuarios-btn, a.reporte-imprimir, a.oxxo-paid__generate, #firmas-create
):is(:hover, :focus-visible):not(:disabled):not([aria-disabled="true"]) {
  background: var(--panel-action-hover, #f4f4f4) !important;
}

/* El texto y las fuentes de iconos no pueden recibir negro o placas blancas
   cuando viven dentro de una acción oscura. */
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  button, a.seguros-btn, a.usuarios-btn, a.reporte-imprimir, a.oxxo-paid__generate, #firmas-create
) :is(span, strong, em, b, small, i, [class*="fa-"], svg, text, tspan) {
  color: var(--panel-action-ink, #000) !important;
  -webkit-text-fill-color: var(--panel-action-ink, #000) !important;
  background-color: transparent !important;
}
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  button, a.seguros-btn, a.usuarios-btn, a.reporte-imprimir, a.oxxo-paid__generate, #firmas-create
) :is(svg:not([fill="none"]), svg [fill]:not([fill="none"]), text, tspan) {
  fill: currentColor !important;
}
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  button, a.seguros-btn, a.usuarios-btn, a.reporte-imprimir, a.oxxo-paid__generate, #firmas-create
) :is(svg[fill="none"], svg [fill="none"]) {
  fill: none !important;
}
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  button, a.seguros-btn, a.usuarios-btn, a.reporte-imprimir, a.oxxo-paid__generate, #firmas-create
) :is(svg[stroke]:not([stroke="none"]), svg [stroke]:not([stroke="none"])) {
  stroke: currentColor !important;
}

/* Los controles auxiliares siguen siendo pequeños y discretos: no reciben el
   fondo primario ni el padding de un botón de formulario. */
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  .seguros-toast__close,
  .seguros-dialog__close,
  .redfe-notice__close,
  .usuarios-password-toggle,
  .acciones-menu__trigger,
  .poliza-detalles__trigger,
  .nitro-detail-eye,
  .nitro-history-icon,
  .nitro-app-actions-menu,
  .redfe-sidebar__action,
  .redfe-sidebar__close,
  #nitro-rfc-manage,
  #nitro-password-eye,
  #nitro-sat-disconnect,
  #inicio-refresh
) {
  background: transparent !important;
  border-color: transparent !important;
  padding: 0 !important;
  box-shadow: none !important;
}
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  .seguros-toast__close, .seguros-dialog__close, .redfe-notice__close,
  .usuarios-password-toggle, .acciones-menu__trigger, .poliza-detalles__trigger,
  .nitro-detail-eye, .nitro-history-icon, .nitro-app-actions-menu,
  .redfe-sidebar__action, .redfe-sidebar__close, #nitro-rfc-manage,
  #nitro-password-eye, #nitro-sat-disconnect, #inicio-refresh
):is(:hover, :focus-visible):not(:disabled) {
  background: #f1f1f1 !important;
}

/* Acciones de fila y menús contextuales conservan la presentación de enlaces. */
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  .firmas-row-actions button,
  .accion-enlace,
  .acciones-popover__opcion,
  .nitro-xml-context button,
  #nitro-rfc-rows .nitro-rfc-actions button
) {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

/* Disabled sigue siendo reconocible y conserva el bloqueo del DOM. El progreso
   de una operación, en cambio, mantiene el contraste del botón que la inició. */
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  button, input[type="submit"], input[type="button"], #firmas-create
):is(:disabled, [aria-disabled="true"]):not([aria-busy="true"]) {
  opacity: .48 !important;
  cursor: not-allowed !important;
}
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  button, input[type="submit"], input[type="button"], #firmas-create
)[aria-busy="true"] {
  opacity: 1 !important;
  cursor: progress !important;
}
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
  button, input[type="submit"], input[type="button"], a.seguros-btn,
  a.usuarios-btn, a.reporte-imprimir, a.oxxo-paid__generate, #firmas-create
):focus-visible {
  outline: 2px solid #111 !important;
  outline-offset: 3px;
}

@media (max-width: 720px) {
  html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
    button:not(.panel-sidebar-backdrop), input[type="submit"], input[type="button"],
    a.seguros-btn, a.usuarios-btn, a.reporte-imprimir, a.oxxo-paid__generate, #firmas-create
  ) {
    min-height: 44px !important;
  }
  html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(
    .seguros-toast__close, .seguros-dialog__close, .redfe-notice__close,
    .usuarios-password-toggle, .acciones-menu__trigger, .poliza-detalles__trigger,
    .nitro-detail-eye, .nitro-history-icon, .nitro-app-actions-menu,
    .redfe-sidebar__action, .redfe-sidebar__close, #nitro-rfc-manage,
    #nitro-password-eye, #nitro-sat-disconnect, #inicio-refresh
  ) {
    min-width: 44px !important;
    min-height: 44px !important;
  }
}

/* El logotipo oscuro oficial de ProBeas conserva sus colores originales. */
.home-header-reference .home-alliance-carousel__track a img[alt="ProBeas"] { filter:none !important; }

/* Mantener legible la selección oscura del menú administrativo. */
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) aside.redfe-sidebar :is(.redfe-sidebar__mark,.redfe-sidebar__item.is-active,.redfe-sidebar__action.is-active) {
  background:#111 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff;
}
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) aside.redfe-sidebar :is(.redfe-sidebar__mark,.redfe-sidebar__item.is-active,.redfe-sidebar__action.is-active) * {
  background-color:transparent !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff;
}

/* Tipografia unica del sitio: Jakarta en titulos, Figtree en contenido. */
html { font-size:16px; }
html body :is(h1,h2,h3,h4,h5,h6,.titulo-portada,.titulo-seccion,.footerpie__logo strong) { font-family:"Plus Jakarta Sans",sans-serif !important; font-weight:700; }
html body :is(p,a,button,input,select,textarea,label,legend,th,td,caption,li,dt,dd,summary,small,strong,em,b,span,output,blockquote,cite,time,code,pre,div,section,article,aside,header,nav,footer,main,form,fieldset,details):not([class*="fa-"]):not(.fas):not(.far):not(.fab):not(.fa) { font-family:"Figtree",sans-serif; }
html body:not(#redfe-identity-override) :is(h1,h2,h3,h4,h5,h6,.titulo-portada,.titulo-seccion,.footerpie__logo strong) { font-family:"Plus Jakarta Sans",sans-serif !important; font-weight:700; }

html body:not(#redfe-identity-override) :is(h1,h2,h3,h4,h5,h6,.titulo-portada,.titulo-seccion,.footerpie__logo strong) :not([class*="fa-"]):not(.fas):not(.far):not(.fab):not(.fa) { font-family:inherit !important; }

/* Identidad final: dos familias, sin velos sobre las fotografias. */
:root { --redfe-key-accent:#4f0040; --redfe-accent-ink:#4f0040; --font-sans:"Figtree",sans-serif; --font-display:"Plus Jakarta Sans",sans-serif; }
html body:not(#redfe-identity-override) :is(div,section,article,aside,header,nav,footer,main,p,a,button,input,select,textarea,label,legend,th,td,li,dt,dd,summary,small,strong,em,b,span,output,blockquote,cite,time,code,pre):not([class*="fa-"]):not(.fas):not(.far):not(.fab):not(.fa) { font-family:"Figtree",sans-serif !important; }
html body:not(#redfe-identity-override) :is(h1,h2,h3,h4,h5,h6,.titulo-portada,.titulo-seccion,.footerpie__logo strong),
html body:not(#redfe-identity-override) :is(h1,h2,h3,h4,h5,h6,.titulo-portada,.titulo-seccion) :not([class*="fa-"]):not(.fas):not(.far):not(.fab):not(.fa) { font-family:"Plus Jakarta Sans",sans-serif !important; font-weight:700; }
html body:not(#redfe-identity-override) .home-hero { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); height:auto; min-height:520px; padding:0; background:#f7f5f7 !important; overflow:hidden; }
html body:not(#redfe-identity-override) .home-hero__media { position:relative; inset:auto; grid-column:2; grid-row:1; width:100%; height:100%; min-height:520px; z-index:auto; opacity:1; }
html body:not(#redfe-identity-override) .home-hero__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:none !important; opacity:1 !important; mix-blend-mode:normal; }
html body:not(#redfe-identity-override) :is(.home-hero,.home-hero__media,.portada-cooperativa)::before,
html body:not(#redfe-identity-override) :is(.home-hero,.home-hero__media,.portada-cooperativa)::after { content:none !important; background:none !important; }
html body:not(#redfe-identity-override) .home-hero .home-hero__content { position:relative; inset:auto; grid-column:1; grid-row:1; width:100%; max-width:660px; margin:0 0 0 auto; padding:64px clamp(28px,4vw,72px); text-align:left; transform:none; background:transparent; }
html body:not(#redfe-identity-override) .home-hero .home-hero__content::before { content:""; display:block; width:48px; height:4px; margin-bottom:24px; background:#4f0040; }
html body:not(#redfe-identity-override) .home-hero h1 { --site-h1-size:clamp(36px,3.7vw,62px); max-width:540px; font-weight:800 !important; letter-spacing:-.045em; text-transform:none; white-space:normal; text-shadow:none; }
html body:not(#redfe-identity-override) .home-hero .home-hero__brand { color:#4f0040 !important; -webkit-text-fill-color:#4f0040 !important; }
html body:not(#redfe-identity-override) .home-hero .home-hero__text { max-width:430px; margin:24px 0 0; font-size:18px; line-height:1.65; white-space:normal; text-shadow:none; }
html body:not(#redfe-identity-override) .home-hero .home-hero__actions { justify-content:flex-start; margin-top:28px; }
html body:not(#redfe-identity-override) .home-hero a.home-btn { display:inline-flex; justify-content:center; align-items:center; min-height:50px; padding:14px 24px; background:#4f0040 !important; border:1px solid #4f0040 !important; color:#fff !important; -webkit-text-fill-color:#fff !important; font-size:15px; font-weight:600; text-transform:none; letter-spacing:0; text-decoration:none; }
html body:not(#redfe-identity-override) .home-hero a.home-btn:hover { background:#38002d !important; border-color:#38002d !important; }
html body:not(#redfe-identity-override) .home-hero a.home-btn:focus-visible { outline:2px solid #4f0040; outline-offset:4px; }
@media(max-width:760px) {
 html body:not(#redfe-identity-override) .home-hero { grid-template-columns:minmax(0,1fr); min-height:0; }
 html body:not(#redfe-identity-override) .home-hero .home-hero__content { grid-column:1; grid-row:1; max-width:none; margin:0; padding:40px 24px; }
 html body:not(#redfe-identity-override) .home-hero__media { grid-column:1; grid-row:2; min-height:0; height:clamp(260px,65vw,440px); }
 html body:not(#redfe-identity-override) .home-hero h1 { --site-h1-size:clamp(36px,9vw,48px); }
 html body:not(#redfe-identity-override) .home-hero .home-hero__text { font-size:17px; margin-top:18px; }
}

/* Acento de marca y movimiento breve del titulo principal. */
html body:not(#redfe-identity-override) .home-hero h1 .home-hero__brand { display:inline-block; position:relative; color:#4f0040 !important; -webkit-text-fill-color:#4f0040 !important; padding-bottom:.12em; }
html body:not(#redfe-identity-override) .home-hero h1 .home-hero__brand::after { content:""; position:absolute; bottom:0; left:0; width:100%; height:3px; background:#4f0040; transform-origin:left; animation:redfe-brand-line .7s ease-out .2s both; }
@keyframes redfe-brand-line { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media(prefers-reduced-motion:reduce) { html body:not(#redfe-identity-override) .home-hero h1 .home-hero__brand::after { animation:none; } }

/* Logotipo vectorial oficial en la cabecera. */
html body .site-header-shell .header1 .logo { flex-shrink:0; line-height:1; }
html body .site-header-shell .header1 .logo a { display:inline-flex; align-items:center; width:auto; padding:0; line-height:1; }
html body .site-header-shell .header1 .logo img.header-logo { display:block; width:86px; height:auto; max-width:none; max-height:none; object-fit:contain; filter:none !important; opacity:1 !important; transform:none; }
@media(max-width:1100px) { html body .site-header-shell .header1 .logo img.header-logo { width:68px; } }
@media(max-width:600px) { html body .site-header-shell .header1 .logo img.header-logo { width:60px; } }

/* Conservar la composicion original: fotografia completa y contenido centrado. */
html body:not(#redfe-identity-override) .home-hero { display:flex; position:relative; align-items:center; justify-content:center; height:clamp(440px,62vw,620px); min-height:0; padding:0; isolation:isolate; }
html body:not(#redfe-identity-override) .home-hero__media { position:absolute; inset:0; width:100%; height:100%; min-height:0; z-index:-1; }
html body:not(#redfe-identity-override) .home-hero .home-hero__content { position:relative; grid-column:auto; grid-row:auto; width:min(920px,calc(100% - 48px)); max-width:920px; margin:0 auto; padding:40px 0; text-align:center; }
html body:not(#redfe-identity-override) .home-hero .home-hero__content::before { margin:0 auto 24px; }
html body:not(#redfe-identity-override) .home-hero h1 { --site-h1-size:clamp(36px,3.7vw,56px); max-width:none; margin:0 auto; }
html body:not(#redfe-identity-override) .home-hero .home-hero__text { max-width:660px; margin:20px auto 0; }
html body:not(#redfe-identity-override) .home-hero .home-hero__actions { justify-content:center; }
@media(max-width:760px) {
 html body:not(#redfe-identity-override) .home-hero { height:clamp(460px,80svh,620px); min-height:0; }
 html body:not(#redfe-identity-override) .home-hero__media { position:absolute; inset:0; height:100%; }
 html body:not(#redfe-identity-override) .home-hero .home-hero__content { width:calc(100% - 40px); margin:0 auto; padding:40px 0; }
 html body:not(#redfe-identity-override) .home-hero h1 { --site-h1-size:clamp(32px,8vw,44px); }
}

/* Nombre institucional junto al simbolo. */
html body .site-header-shell .header1 .logo a { gap:12px; text-decoration:none; }
html body .site-header-shell .header1 .logo .header-wordmark { display:flex; flex-direction:column; align-items:flex-start; gap:5px; line-height:1.1; letter-spacing:0; }
html body .site-header-shell .header1 .logo .header-wordmark>span { font-size:14px; font-weight:500; letter-spacing:.03em; }
html body .site-header-shell .header1 .logo .header-wordmark>strong { font-family:"Plus Jakarta Sans",sans-serif !important; font-size:26px; font-weight:800; letter-spacing:-.04em; }
/* Presencia del texto, manteniendo la imagen y la composicion centrada. */
html body:not(#redfe-identity-override) .home-hero .home-hero__content::before { content:none; }
html body:not(#redfe-identity-override) .home-hero .home-hero__content { z-index:1; }
html body:not(#redfe-identity-override) .home-hero h1 { --site-h1-size:clamp(42px,5vw,76px); color:#fff !important; -webkit-text-fill-color:#fff !important; line-height:1.15 !important; text-shadow:0 2px 20px #0009; }
html body:not(#redfe-identity-override) .home-hero h1 .home-hero__brand { padding:.02em .16em .09em; border-radius:4px; background:#4f0040; color:#fff !important; -webkit-text-fill-color:#fff !important; text-shadow:none; }
html body:not(#redfe-identity-override) .home-hero h1 .home-hero__brand::after { content:none; }
html body:not(#redfe-identity-override) .home-hero .home-hero__text { color:#fff !important; -webkit-text-fill-color:#fff !important; font-size:20px; font-weight:600; line-height:1.55; text-shadow:0 1px 5px #000,0 2px 18px #000; }
html body:not(#redfe-identity-override) .home-hero .hero-growth { display:grid; place-items:center; width:56px; height:56px; margin:0 auto 20px; border:1px solid #ffffff80; border-radius:50%; background:#4f0040; box-shadow:0 6px 24px #0003; animation:redfe-growth-arrive .8s ease-out both; }
html body:not(#redfe-identity-override) .home-hero .hero-growth svg { width:30px; height:30px; color:#fff !important; stroke:#fff; animation:redfe-growth-sway 5s ease-in-out 1s infinite; transform-origin:50% 85%; }
html body:not(#redfe-identity-override) .home-hero .home-hero__actions a { gap:10px; box-shadow:0 6px 24px #0003; }
html body:not(#redfe-identity-override) .home-hero .home-hero__actions svg { width:20px; height:20px; stroke:#fff; transition:transform .2s ease; }
html body:not(#redfe-identity-override) .home-hero .home-hero__actions a:hover svg { transform:translate(2px,-2px); }
@keyframes redfe-growth-arrive { from { opacity:0; transform:translateY(12px) scale(.9); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes redfe-growth-sway { 0%,100% { transform:rotate(-6deg); } 50% { transform:rotate(6deg); } }
@media(max-width:600px) {
 html body .site-header-shell .header1 .logo .header-wordmark>span { font-size:12px; }
 html body .site-header-shell .header1 .logo .header-wordmark>strong { font-size:22px; }
 html body:not(#redfe-identity-override) .home-hero h1 { --site-h1-size:clamp(36px,8.5vw,48px); }
 html body:not(#redfe-identity-override) .home-hero .home-hero__text { font-size:17px; }
}
@media(prefers-reduced-motion:reduce) {
 html body:not(#redfe-identity-override) .home-hero .hero-growth,
 html body:not(#redfe-identity-override) .home-hero .hero-growth svg { animation:none; }
 html body:not(#redfe-identity-override) .home-hero .home-hero__actions svg { transition:none; }
}

/* Cabecera compacta y equilibrada. */
html body .site-header-shell .header1 .logo img.header-logo { width:64px; }
html body .site-header-shell .header1 .logo a { gap:10px; }
html body .site-header-shell .header1 .logo .header-wordmark { gap:6px; }
html body .site-header-shell .header1 .logo .header-wordmark>strong { font-size:18px; font-weight:700; letter-spacing:-.025em; white-space:nowrap; }
html body .site-header-shell .header1 .logo .header-wordmark>strong>span { font-family:inherit !important; font-size:inherit; font-weight:800; letter-spacing:inherit; }
html body .site-header-shell .header1 .logo .header-wordmark>small { font-size:12px; font-weight:400; line-height:1.2; letter-spacing:.025em; }
html body .site-header-shell :is(i,svg) { color:#000 !important; -webkit-text-fill-color:#000 !important; }
html body .site-header-shell svg { stroke:currentColor; }
html body .site-header-shell .header-utility { display:inline-flex; align-items:center; min-height:30px; padding:0 10px; font-size:12px; text-decoration:none; border-right:1px solid #ddd; }
html body .site-header-shell .header-utility:hover { text-decoration:underline; }
@media(min-width:1101px) {
 html body.home-header-reference .site-header-shell .header1 { display:grid; grid-template-columns:minmax(240px,1fr) auto minmax(240px,1fr); align-items:center; gap:24px; padding:12px clamp(24px,3vw,56px); }
 html body .site-header-shell .header1 .logo { justify-self:start; }
 html body .site-header-shell .header1>.nav-links { justify-self:center; margin:0; }
 html body .site-header-shell .header1 .nav-links>ul { display:flex; align-items:center; justify-content:center; gap:20px; margin:0; padding:0; }
 html body .site-header-shell .header1>.header-whatsapp { justify-self:end; margin:0; }
}
@media(max-width:1100px) {
 html body .site-header-shell .header1 .logo img.header-logo { width:56px; }
 html body .site-header-shell .header1 .logo .header-wordmark>strong { font-size:17px; }
}
@media(max-width:600px) {
 html body .site-header-shell .header1 .logo img.header-logo { width:48px; }
 html body .site-header-shell .header1 .logo .header-wordmark>strong { font-size:15px; }
 html body .site-header-shell .header1 .logo .header-wordmark>small { font-size:12px; }
 html body .site-header-shell .header1 .logo a { gap:8px; }
}

/* Un unico acceso por icono, separado de la navegacion principal. */
html body .site-header-shell .top-bar .header-access { position:relative; display:inline-block; flex:none; margin-left:8px; z-index:1300; }
html body .site-header-shell .header-access>summary { display:grid; place-items:center; width:36px; height:36px; padding:6px; list-style:none; cursor:pointer; border:0; border-radius:4px; background:transparent; }
html body .site-header-shell .header-access>summary::-webkit-details-marker { display:none; }
html body .site-header-shell .header-access>summary svg { display:block; width:22px; height:22px; stroke:#000; }
html body .site-header-shell .header-access>summary:is(:hover,:focus-visible) { background:#f0f0f0; }
html body .site-header-shell .header-access>summary:focus-visible { outline:2px solid #4f0040; outline-offset:2px; }
html body .site-header-shell .header-access .header-access__panel { position:absolute; top:calc(100% + 6px); right:0; display:grid; width:244px; max-width:calc(100vw - 32px); padding:8px; background:#fff; border:1px solid #ddd; border-radius:6px; box-shadow:0 10px 28px #0002; }
html body .site-header-shell .header-access:not([open])>.header-access__panel { display:none; }
html body .site-header-shell .header-access .header-access__panel a { display:block; width:100%; padding:12px; margin:0; font-size:14px; font-weight:400; line-height:1.4; text-decoration:none; text-align:left; white-space:normal; }
html body .site-header-shell .header-access .header-access__panel a:is(:hover,:focus-visible) { background:#f3f3f3; }
html body .site-header-shell .top-bar { overflow:visible; }

html body .site-header-shell .top-bar .header-access { order:10; }

/* Iconos Lucide: header, sidebar y login. */
html body .site-header-shell svg.redfe-icon { display:inline-block; width:18px; height:18px; flex:none; vertical-align:middle; color:#000 !important; stroke:currentColor; stroke-width:1.8; }
html body .site-header-shell .nav-parent svg.redfe-icon { width:14px; height:14px; transition:transform .2s ease; }
html body .site-header-shell .has-submenu.is-open>.nav-entry .nav-parent svg.redfe-icon { transform:rotate(180deg); }
html body .site-header-shell :is(.menu-toggle,.menu-close) svg.redfe-icon { width:24px; height:24px; }
html body .redfe-sidebar svg.redfe-icon { display:block; width:20px; height:20px; flex:none; color:inherit !important; stroke:currentColor; stroke-width:1.8; }
html body.seguros-page:not(#redfe-identity-override) aside.redfe-sidebar :is(.redfe-sidebar__mark,.redfe-sidebar__item.is-active,.redfe-sidebar__action.is-active) svg.redfe-icon { color:var(--sidebar-active-text,#fff) !important; stroke:currentColor; }
html body .panel-nav-toggle svg.redfe-icon { width:20px; height:20px; flex:none; }
html body .seguros-login__control>svg.redfe-icon { width:20px; height:20px; flex:none; color:#000; stroke:currentColor; }
html body .seguros-login__eye svg.redfe-icon { width:18px; height:18px; }
html body .seguros-login__eye[aria-pressed="false"] .login-eye-closed,
html body .seguros-login__eye[aria-pressed="true"] .login-eye-open { display:none; }
html body .seguros-toast__icon svg.redfe-icon,html body .seguros-toast__close svg.redfe-icon { width:20px; height:20px; }

html body .seguros-login__control>svg.redfe-icon { margin-inline:12px 8px; }

/* Slider del hero: fotografia completa, fundido y controles discretos. */
html body:not(#redfe-identity-override) .home-hero .home-hero__media img { opacity:0 !important; transition:opacity 1s ease !important; transform:none !important; }
html body:not(#redfe-identity-override) .home-hero .home-hero__media img.active { opacity:1 !important; }
@media(prefers-reduced-motion:reduce) { html body:not(#redfe-identity-override) .home-hero .home-hero__media img { transition:none !important; } }

/* Navegacion agrupada a la derecha, junto a la accion de contacto. */
@media(min-width:1101px) {
 html body.home-header-reference .site-header-shell .header1 { grid-template-columns:minmax(240px,1fr) auto auto; gap:24px; }
 html body.home-header-reference .site-header-shell .header1>.nav-links { justify-self:end; margin:0; }
 html body.home-header-reference .site-header-shell .header1 .nav-links>ul { justify-content:flex-end; }
}

/* Inicio en blanco y negro, sin sombras; morado solo como detalle de marca. */
html body:not(.seguros-page):not(#redfe-identity-override) :is(.home-page,.site-header-shell),
html body:not(.seguros-page):not(#redfe-identity-override) :is(.home-page,.site-header-shell) *,
html body:not(.seguros-page):not(#redfe-identity-override) :is(.home-page,.site-header-shell) ::before,
html body:not(.seguros-page):not(#redfe-identity-override) :is(.home-page,.site-header-shell) ::after { box-shadow:none !important; text-shadow:none !important; }
html body:not(#redfe-identity-override) .home-hero h1 .home-hero__brand { padding:0 0 .12em; background:transparent; border-radius:0; }
html body:not(#redfe-identity-override) .home-hero h1 .home-hero__brand::after { content:""; left:calc(50% - 16px); bottom:0; width:32px; height:3px; background:#4f0040; animation:none; }
html body:not(#redfe-identity-override) .home-hero .hero-growth { background:#fff; border:1px solid #fff; }
html body:not(#redfe-identity-override) .home-hero .hero-growth svg { color:#111 !important; stroke:#111; }
html body:not(#redfe-identity-override) .home-hero a.home-btn { background:#111 !important; border-color:#111 !important; color:#fff !important; -webkit-text-fill-color:#fff !important; transition:background-color .25s ease,color .25s ease; }
html body:not(#redfe-identity-override) .home-hero a.home-btn:hover { background:#fff !important; border-color:#fff !important; color:#111 !important; -webkit-text-fill-color:#111 !important; }
html body:not(#redfe-identity-override) .home-hero .home-hero__actions a:hover svg { stroke:#111; }
html body:not(#redfe-identity-override) .home-hero a.home-btn:focus-visible { outline-color:#fff; }
html body:not(#redfe-identity-override) .home-hero h1 { animation:redfe-hero-text-in .7s ease-out both; }
html body:not(#redfe-identity-override) .home-hero .home-hero__text { animation:redfe-hero-text-in .7s .12s ease-out both; }
/* Respuesta al mouse y al teclado en las tres opciones principales. */
html body .home-needs .home-needs__item { transition:transform .3s ease; }
html body .home-needs .home-needs__item h3 { transition:transform .3s ease; }
html body .home-needs .home-needs__item>a { position:relative; display:flex; align-items:center; justify-content:space-between; gap:16px; }
html body .home-needs .home-needs__item>a::after { content:""; position:absolute; left:0; bottom:-1px; width:100%; height:2px; background:#111; transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
html body .home-needs .home-needs__arrow { display:block; width:20px; height:20px; flex:none; stroke:#111; opacity:.5; transition:transform .3s ease,opacity .3s ease; }
html body .home-needs .home-needs__item:focus-within h3 { transform:translateX(5px); }
html body .home-needs .home-needs__item:focus-within>a::after { transform:scaleX(1); }
html body .home-needs .home-needs__item:focus-within .home-needs__arrow { opacity:1; transform:translate(3px,-3px); }
@media(hover:hover) and (pointer:fine) {
 html body .home-needs .home-needs__item:hover { transform:translateY(-5px); }
 html body .home-needs .home-needs__item:hover h3 { transform:translateX(5px); }
 html body .home-needs .home-needs__item:hover>a::after { transform:scaleX(1); }
 html body .home-needs .home-needs__item:hover .home-needs__arrow { opacity:1; transform:translate(3px,-3px); }
}
@keyframes redfe-hero-text-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) {
 html body:not(#redfe-identity-override) .home-hero :is(h1,.home-hero__text) { animation:none; }
 html body .home-needs :is(.home-needs__item,h3,.home-needs__arrow) { transition:none; }
 html body .home-needs .home-needs__item:is(:hover,:focus-within),html body .home-needs .home-needs__item:is(:hover,:focus-within) h3,html body .home-needs .home-needs__item:is(:hover,:focus-within) .home-needs__arrow { transform:none; }
}

html body:not(#redfe-identity-override) .home-page .home-trust .home-trust__cta { background:#4f0040 !important; border-color:#4f0040; }
html body:not(#redfe-identity-override) .home-page .home-trust .home-trust__cta:is(:hover,:focus-visible) { background:#35002b !important; border-color:#35002b; }
@media(prefers-reduced-motion:reduce) { html body .home-needs .home-needs__item>a::after { transition:none; } }
/* Iconos SVG locales: independientes de fuentes y de la carga de JavaScript. */
html body .public-icon-host::before,
html body .public-icon-host::after { content:none !important; }
html body svg.public-icon {
  display:inline-block; width:1em; height:1em; min-width:1em; flex:none;
  vertical-align:middle; color:inherit !important; fill:none; stroke:currentColor; stroke-width:1.8;
}
html body .public-icon-host { font-style:normal; line-height:1; }
html body .public-icon-host>svg.public-icon { width:1.2em; height:1.2em; }
html body .home-trust .home-trust__requirements li .public-icon-host { display:grid; place-items:center; }
html body .home-trust .home-trust__requirements li svg.public-icon { width:20px; height:20px; }
html body .footerpie#contacto .footerpie__social svg.public-icon { width:16px; height:16px; color:#fff !important; }
html body .floating-contact svg.public-icon { width:18px; height:18px; }
html body:not(#redfe-identity-override) .member-page :is(.member-documents__grid article i,.document-visual__check i,.document-visual__paper i,.member-documents__cta div>i) {
  color:#fff !important; -webkit-text-fill-color:#fff !important; background:#111 !important;
}

/* Menú secundario: iconos negros y el mismo espacio en todos los enlaces. */
html body .conocenos-container :is(.btn-conocenos,.tabs-conocenos a,#btnMovilConocenos,.menu-movil a) {
  display:flex; align-items:center; justify-content:center; gap:10px; min-height:52px;
}
html body .conocenos-container svg.public-icon { width:18px; height:18px; }
html body:not(#redfe-identity-override) .conocenos-container :is(.btn-conocenos,.tabs-conocenos a,#btnMovilConocenos,.menu-movil a):is(:hover,:focus-visible) {
  color:#000 !important; background:#f5f5f5 !important;
}
html body .conocenos-container :is(a,button)>span { color:inherit !important; }

/* Ser socio: la fotografía se mueve; el contenido permanece legible y estable. */
html body:not(#redfe-identity-override) .member-page .portada-cooperativa { background:#111 !important; }
html body:not(#redfe-identity-override) .member-page .portada-cooperativa>img {
  opacity:1 !important; filter:none !important; transform:translate3d(0,var(--parallax-y,0px),0) scale(1.26) !important;
}
html body:not(#redfe-identity-override) .member-page .portada-cooperativa::after {
  content:"" !important; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.46) 55%,rgba(0,0,0,.3)) !important;
  pointer-events:none;
}
html body:not(#redfe-identity-override) .member-page .portada-cooperativa .internal-hero__content,
html body:not(#redfe-identity-override) .member-page .portada-cooperativa .internal-hero__content :is(h1,p,span) {
  color:#fff !important; -webkit-text-fill-color:#fff !important; text-shadow:none;
}
html body:not(#redfe-identity-override) .member-page .portada-cooperativa .section-kicker::before { background:#fff !important; }

/* Comunidad: fotografías completas, negro para leer y un acento morado. */
html body:not(#redfe-identity-override) .member-community-gallery .home-pillars {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; width:100%; min-width:0;
  margin:0; background:transparent !important;
}
html body:not(#redfe-identity-override) .member-community-gallery .home-pillar {
  position:relative; isolation:isolate; display:flex; align-items:flex-end; min-width:0;
  height:clamp(300px,32vw,420px); overflow:hidden; background:#111 !important;
  border:0; border-radius:0; box-shadow:none; text-decoration:none;
}
html body .member-community-gallery .home-pillar img {
  position:absolute; inset:0; width:100%; height:100%; margin:0; display:block;
  object-fit:cover; object-position:center; opacity:1; filter:none;
  transform:scale(1); transition:transform .65s cubic-bezier(.22,1,.36,1);
}
html body .member-community-gallery .home-pillar::after {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:1;
  background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.7));
}
html body:not(#redfe-identity-override) .member-community-gallery .home-pillar>span {
  position:relative; z-index:2; display:block; width:100%; margin:0; padding:16px 18px;
  border-left:3px solid #4f0040; color:#fff !important; -webkit-text-fill-color:#fff !important;
  background:rgba(0,0,0,.8); font-family:"Plus Jakarta Sans",sans-serif;
  font-size:clamp(16px,1.5vw,20px); font-weight:600; line-height:1.4;
  text-align:left; text-transform:none; letter-spacing:0; opacity:1; transform:none;
  transition:background-color .25s ease;
}
html body .member-community-gallery .home-pillar:is(:hover,:focus-visible) img { transform:scale(1.055); }
html body:not(#redfe-identity-override) .member-community-gallery .home-pillar:is(:hover,:focus-visible)>span { background:#4f0040; }
html body .member-community-gallery .home-pillar:focus-visible { outline:2px solid #4f0040; outline-offset:3px; }
html body:not(#redfe-identity-override) .member-page .imagen-menor::before { background:#4f0040 !important; }
html body .member-page .imagen-menor::after { background:#111; }
html body:not(#redfe-identity-override) .member-page .imagen-menor__caption {
  background:#111 !important; border-left:3px solid #4f0040; box-shadow:none;
}
html body:not(#redfe-identity-override) .member-page .imagen-menor__caption :is(span,i) { color:#fff !important; -webkit-text-fill-color:#fff !important; }
@media(max-width:1000px) {
  html body:not(#redfe-identity-override) .member-community-gallery .home-pillars { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:768px) {
  html body .conocenos-container #btnMovilConocenos { justify-content:space-between; }
  html body .conocenos-container .menu-movil a { justify-content:flex-start; }
}
@media(max-width:600px) {
  html body:not(#redfe-identity-override) .member-community-gallery .home-pillars {
    display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:0;
    overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; padding-bottom:8px;
  }
  html body:not(#redfe-identity-override) .member-community-gallery .home-pillar {
    flex:0 0 88%; height:360px; scroll-snap-align:start;
  }
}
@media(prefers-reduced-motion:reduce) {
  html body:not(#redfe-identity-override) .member-page .portada-cooperativa>img { transform:none !important; }
  html body .member-community-gallery .home-pillar img,
  html body .member-community-gallery .home-pillar>span { transition:none; }
  html body .member-community-gallery .home-pillar:is(:hover,:focus-visible) img { transform:none; }
}
html body:not(#redfe-identity-override) .member-page :is(.member-invite,.member-commitments) { background:#fff !important; }
html body:not(#redfe-identity-override) .member-page .member-invite__requirements { background:#f7f7f7; border-color:#ddd; }
html body .member-page :is(.member-invite__requirements,.member-commitments__card) li { display:grid; grid-template-columns:20px minmax(0,1fr); gap:8px; align-items:start; padding-left:0; }
html body .member-page :is(.member-invite__requirements,.member-commitments__card) li::before { content:none; }
html body .member-page :is(.member-invite__requirements,.member-commitments__card) li .public-icon-host { margin-top:3px; }
html body .member-page :is(.member-invite__requirements,.member-commitments__card) li svg { width:18px; height:18px; }
html body .member-community-gallery>h2 { text-align:center; margin:0; }
/* Tema del panel: cada superficie usa la misma paleta, incluida la sidebar. */
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) {
  --color-text:#eee; --color-text-muted:#bbb; --color-surface:#1c1c1c;
  --color-surface-soft:#252525; --color-surface-tint:#252525; --color-border-primary:#444;
  --panel-workspace-bg:#1c1c1c; --notice-title:#eee; --notice-body:#ddd;
  --panel-action-bg:#252525; --panel-action-hover:#353535; --panel-action-border:#555; --panel-action-ink:#eee;
  background:#111 !important; color:#eee !important; color-scheme:dark !important;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) :is(div,section,article,aside,header,nav,dialog,details,summary,thead,tbody,tr,th,td,form,fieldset,label,output) {
  background-color:var(--color-surface) !important; background-image:none !important; border-color:#444;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) :is(div,section,article,aside,header,nav,footer,main,form,fieldset,details,h1,h2,h3,h4,h5,h6,p,a,button,input,select,textarea,label,legend,th,td,li,dt,dd,summary,small,strong,em,b,span,output,time,i,svg) {
  color:#eee !important; -webkit-text-fill-color:#eee !important;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) :is(input,select,textarea) {
  color:#eee !important; background:#252525 !important; border-color:#555 !important; caret-color:#eee;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) ::placeholder { color:#bbb !important; -webkit-text-fill-color:#bbb !important; }
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) :is(button,a.reporte-imprimir,a.seguros-btn,a.usuarios-btn,a.oxxo-paid__generate,#firmas-create) {
  background:var(--panel-action-bg,#252525) !important; color:var(--panel-action-ink,#eee) !important;
  -webkit-text-fill-color:var(--panel-action-ink,#eee) !important; border-color:var(--panel-action-border,#555) !important;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) :is(button,a.reporte-imprimir,a.seguros-btn,a.usuarios-btn,a.oxxo-paid__generate,#firmas-create):hover {
  background:var(--panel-action-hover,#353535) !important;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) :is(button,a.reporte-imprimir,a.seguros-btn,a.usuarios-btn,a.oxxo-paid__generate,#firmas-create) :is(span,i,svg,strong) {
  background-color:transparent !important; color:var(--panel-action-ink,#eee) !important;
  -webkit-text-fill-color:var(--panel-action-ink,#eee) !important;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) :is(a,button,input,select,textarea,summary):focus-visible { outline-color:#eee; }
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) aside.redfe-sidebar {
  background:#171717 !important; border-color:#353535;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) aside.redfe-sidebar :is(div,nav,a,button,form,span,strong,p) {
  background:transparent !important; color:#eee !important; -webkit-text-fill-color:#eee !important;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) aside.redfe-sidebar :is(.redfe-sidebar__mark,.redfe-sidebar__item.is-active,.redfe-sidebar__action.is-active,.redfe-sidebar__indicator) {
  background:#eee !important; color:#111 !important; -webkit-text-fill-color:#111 !important;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) aside.redfe-sidebar :is(.redfe-sidebar__mark,.redfe-sidebar__item.is-active,.redfe-sidebar__action.is-active) :is(span,svg) {
  background:transparent !important; color:#111 !important; -webkit-text-fill-color:#111 !important; stroke:currentColor;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) aside.redfe-sidebar :is(.redfe-sidebar__item,.redfe-sidebar__action):hover { background:#282828 !important; }
html body .redfe-sidebar [data-sidebar-theme] { display:grid !important; }
html body .redfe-sidebar [data-sidebar-theme] .sidebar-theme-moon,
html body .redfe-sidebar [data-sidebar-theme][aria-checked="true"] .sidebar-theme-sun { display:none; }
html body .redfe-sidebar [data-sidebar-theme][aria-checked="true"] .sidebar-theme-moon { display:block; }
/* Encabezados de Pólizas: etiqueta e icono pequeños, sin placas de fondo. */
html body.seguros-page:not(#redfe-identity-override) #polizas-listado thead .tabla-orden,
html body.seguros-page:not(#redfe-identity-override) #polizas-listado thead .tabla-orden:is(:hover,:focus,:active,:focus-visible) {
  display:inline-flex; align-items:center; justify-content:flex-start; gap:6px; width:auto; min-height:24px;
  margin:0; padding:0; border:0; border-radius:0; color:var(--color-text,#000) !important;
  -webkit-text-fill-color:var(--color-text,#000) !important; background:transparent !important; box-shadow:none;
}
html body.seguros-page:not(#redfe-identity-override) #polizas-listado thead .tabla-orden :is(span,svg,i) {
  position:static; display:inline-block; width:auto; height:auto; margin:0; padding:0; border:0;
  background:transparent !important; color:inherit !important; -webkit-text-fill-color:inherit !important; opacity:1;
}
html body.seguros-page:not(#redfe-identity-override) #polizas-listado thead .tabla-orden svg.redfe-icon {
  width:14px; height:14px; flex:none; fill:none; stroke:currentColor; stroke-width:1.6; opacity:.55;
}
html body.seguros-page:not(#redfe-identity-override) #polizas-listado thead .tabla-orden.is-sorted svg { opacity:1; }
html body.seguros-page:not(#redfe-identity-override) #polizas-listado thead .tabla-orden:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
@media print {
  html body.seguros-page[data-theme="dark"] { --color-text:#000; --color-surface:#fff; color-scheme:light !important; }
  html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override),
  html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) :is(div,section,article,thead,tbody,tr,th,td,p,span,strong,header,h1,h2,h3) { background:#fff !important; color:#000 !important; -webkit-text-fill-color:#000 !important; }
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) i { background:transparent !important; }
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) .panel-data-table :is(th,td) { border-bottom-color:#444 !important; }

/* Los iconos monocromos usan el contraste del control que los contiene. */
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) :is(svg.redfe-icon,svg.lucide,svg[stroke="currentColor"]) {
  color:inherit !important; stroke:currentColor !important;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) aside.redfe-sidebar :is(.redfe-sidebar__mark,.redfe-sidebar__item.is-active,.redfe-sidebar__action.is-active) svg.redfe-icon {
  color:var(--sidebar-active-text,#111) !important; stroke:currentColor !important;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) aside.redfe-sidebar :is(.redfe-sidebar__item.is-active,.redfe-sidebar__action.is-active):is(:hover,:focus-visible) {
  background:var(--sidebar-active,#eee) !important; color:var(--sidebar-active-text,#111) !important;
  -webkit-text-fill-color:var(--sidebar-active-text,#111) !important;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) :is(.redfe-icon-host,.nitro-icon-field>i) { background:transparent !important; }
/* El estado de reposo también necesita color real, además del relleno del texto. */
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) aside.redfe-sidebar :is(.redfe-sidebar__item,.redfe-sidebar__action):not(.is-active),
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) aside.redfe-sidebar :is(.redfe-sidebar__item,.redfe-sidebar__action):not(.is-active) :is(span,i,svg.redfe-icon) {
  color:var(--sidebar-text,#eee) !important; -webkit-text-fill-color:var(--sidebar-text,#eee) !important;
}
/* Las formas internas del SVG también deben seguir el color de la selección. */
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override) aside.redfe-sidebar :is(.redfe-sidebar__mark,.redfe-sidebar__item.is-active,.redfe-sidebar__action.is-active) svg.redfe-icon * {
  color:var(--sidebar-active-text,#111) !important; stroke:currentColor !important;
}
/* Menús de cada registro: tres puntos sin caja ni borde permanente. */
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(.acciones-menu__trigger,.nitro-app-actions-menu) {
  --panel-action-bg:transparent; --panel-action-hover:#f1f1f1; --panel-action-border:transparent;
  --row-menu-hover:#f1f1f1;
  align-items:center; justify-content:center; margin:0; padding:0 !important;
  border:0 !important; border-radius:8px; background:transparent !important; box-shadow:none !important;
}
html body.seguros-page[data-theme="dark"]:not(#redfe-identity-override):not(.seguros-login-page) :is(.acciones-menu__trigger,.nitro-app-actions-menu) {
  --panel-action-bg:transparent; --panel-action-hover:#282828; --panel-action-border:transparent;
  --row-menu-hover:#282828;
}
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(.acciones-menu__trigger,.nitro-app-actions-menu):is(:hover,[aria-expanded="true"]):not(:disabled) {
  --panel-action-bg:var(--row-menu-hover); background:var(--row-menu-hover) !important; border:0 !important;
}
html body.seguros-page:not(#redfe-identity-override):not(.seguros-login-page) :is(.acciones-menu__trigger,.nitro-app-actions-menu):focus-visible {
  outline:2px solid currentColor !important; outline-offset:2px;
}
