/* ==========================================================================
   IHE Theme — Hoja de estilos principal
   Basada en el diseño oficial IHE Web 2026 v3
   Cubre todas las páginas: Inicio, Asociación, Documentos, Congreso,
   Actualidad, Detalle Noticia, Contacto, Afiliación
   ========================================================================== */

   @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

   /* --------------------------------------------------------------------------
      1. DESIGN TOKENS
      -------------------------------------------------------------------------- */
   :root {
     --background:         #FFFFFF;
     --background-alt:     #F8F9FA;
     --background-dark:    #F1F3F5;
     --border:             #E5E7EB;
     --border-strong:      #D1D5DB;
     --foreground:         #1A1A1A;
     --foreground-light:   #9CA3AF;
     --foreground-muted:   #6B7280;
     --primary:            #243c74;
     --primary-dark:       #1a2d57;
     --primary-light:      #3a5694;
     --secondary:          #5bc0de;
     --secondary-dark:     #31b0d5;
     --secondary-light:    #8fd4e9;
     --gray-50:            #F9FAFB;
     --gray-100:           #F3F4F6;
     --gray-200:           #E5E7EB;
     --gray-300:           #D1D5DB;
     --gray-400:           #9CA3AF;
     --gray-500:           #6B7280;
     --gray-600:           #4B5563;
     --gray-700:           #374151;
     --gray-800:           #1F2937;
     --gray-900:           #111827;
     --radius-sm:          4px;
     --radius-md:          8px;
     --radius-lg:          12px;
     --radius-xl:          16px;
     --shadow-sm:          0 1px 2px rgba(0,0,0,0.05);
     --shadow-md:          0 4px 6px rgba(0,0,0,0.1);
     --shadow-lg:          0 10px 15px rgba(0,0,0,0.1);
     --error:              #EF4444;
     --success:            #10B981;
     --warning:            #F59E0B;
     --info:               #5bc0de;
   }
   
   /* --------------------------------------------------------------------------
      2. RESET Y BASE
      -------------------------------------------------------------------------- */
   *,
   *::before,
   *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
   }
   
   html {
     font-size: 16px;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
   }
   
   body {
     font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
     color: var(--foreground);
     background-color: var(--background);
     line-height: 1.5;
   }
   
  html:has(body.blog),
  body.blog {
    overflow-x: hidden;
  }

   img {
     max-width: 100%;
     height: auto;
     display: block;
   }
   
   a {
     color: var(--primary);
     text-decoration: none;
   }
   
   /* Contenedor de página — ancho completo */
   .page-wrapper,
   .site-container,
   main {
     max-width: 100%;
     margin: 0 auto;
     width: 100%;
   }
   main > .entry-content > *,
   main > .wp-block-post-content > *,
   .blog main>.wp-block-group>*,  .archive main>.wp-block-group>* {
     padding-left: 48px;
     padding-right: 48px;
   }
   main > .entry-content > *:not(.alignfull) {
     max-width: 1440px;
   }
   /* Contenido con restricción — max-width centrado */
   .content-container,
   .container {
     max-width: 1344px;
     margin-left: auto;
     margin-right: auto;
     width: 100%;
   }
   
   /* Cover alignfull — inner-container restringido al ancho del content */
   .wp-block-cover.alignfull > .wp-block-cover__inner-container {
     max-width: 1344px;
     margin-left: auto;
     margin-right: auto;
   }
   
   /* --------------------------------------------------------------------------
      3. CABECERA
      -------------------------------------------------------------------------- */
   
   /* El template-part genera un wrapper <header> alrededor del .header.
      El sticky debe estar en el wrapper exterior para que funcione. */
   header.wp-block-template-part {
     position: sticky;
     top: 0;
     z-index: 100;
   }
   
   .site-header,
   .header {
     height: 80px;
     border-bottom: 1px solid var(--border);
     background: var(--background);
   }
   
   .site-header > .container,
   .header > .content-container {
     display: flex;
     align-items: center;
     justify-content: space-between;
     height: 100%;
   }
   
   /* Logo */
   .header-logo {
     display: flex;
     align-items: center;
     height: 80px;
     overflow: hidden;
   }
   
   .header-logo img {
     height: 75px;
     width: auto;
   }
   
   /* Navegación */
   .header-nav {
     display: flex;
     align-items: center;
     gap: 32px;
   }
   
   .header-nav a,
   .nav-item {
     font-size: 15px;
     font-weight: 500;
     color: var(--foreground);
     text-decoration: none;
     transition: color 0.2s ease;
   }
   
   .header-nav a:hover,
   .nav-item:hover {
     color: var(--primary);
   }
   
   .header-nav a.active,
   .nav-item.active {
     color: var(--primary);
   }
   
   /* CTA de cabecera */
   .header-cta {
     display: flex;
     align-items: center;
     gap: 16px;
   }
   
   .header-cta .search-icon {
     width: 20px;
     height: 20px;
     color: var(--foreground);
     cursor: pointer;
   }
   
   .header-cta .btn:hover a {
     background: var(--primary-dark);
   }
   
   /* Reset padding del wrapper .wp-block-button dentro de header-cta
      WP añade padding por defecto a .wp-element-button que infla el botón */
   .header-cta .wp-block-buttons {
     gap: 0;
   }
   
   .header-cta .wp-block-button {
     margin: 0;
   }
   
   .header-cta .wp-block-button__link,
   .header-cta .wp-element-button {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     background: var(--primary);
     color: white;
     border: none;
     border-radius: var(--radius-md);
     padding: 10px 20px;
     font-size: 15px;
     font-weight: 600;
     font-family: inherit;
     cursor: pointer;
     text-decoration: none;
     transition: background 0.2s ease;
     min-width: 112px;
   }
   
   .header-cta .wp-block-button__link:hover,
   .header-cta .wp-element-button:hover {
     background: var(--primary-dark);
     color: white;
   }
   .header-cta .wp-block-button__link img {
     width: 14px;
   }
   
   /* ---------- SEARCH HEADER ---------- */
   .search-header-grp {
     position: relative;
     display: flex;
     align-items: center;
   }
   
   .search-header-grp > figure {
     cursor: pointer;
     margin: 0;
     line-height: 0;
     opacity: 0.7;
     transition: opacity 0.2s ease;
   }
   
   .search-header-grp > figure:hover {
     opacity: 1;
   }
   
   .search-header-grp > figure img {
     display: block;
     transition: 0.2s ease;
   }
   .search-header-grp > figure:hover img {
     transform: scale(1.1);
   }
   
   .search-header-input {
     display: none;
     position: absolute;
     top: calc(100% + 20px);
     right: -130px;
     width: 360px;
     z-index: 200;
     background: white;
     border: 1px solid var(--border);
     border-radius: var(--radius-md);
     box-shadow: var(--shadow-lg);
     padding: 8px;
     animation: searchSlideDown 0.2s ease;
   }
   
   .search-header-input.is-active {
     display: block;
   }
   
   .search-header-input .wp-block-search__inside-wrapper {
     display: flex;
     align-items: center;
     gap: 0;
     border: 1px solid var(--border);
     border-radius: var(--radius-sm);
     background: var(--gray-50);
     overflow: hidden;
   }
   
   .search-header-input .wp-block-search__input {
     flex: 1;
     border: none;
     outline: none;
     padding: 10px 14px;
     font-size: 15px;
     font-family: inherit;
     background: transparent;
     color: var(--foreground);
   }
   
   .search-header-input .wp-block-search__input::placeholder {
     color: var(--foreground-light);
   }
   
   .search-header-input .wp-block-search__button {
     display: flex;
     align-items: center;
     justify-content: center;
     background: var(--primary);
     border: none;
     padding: 10px 14px;
     cursor: pointer;
     color: white;
     transition: background 0.2s ease;
   }
   
   .search-header-input .wp-block-search__button:hover {
     background: var(--primary-dark);
   }
   
   .search-header-input .wp-block-search__button svg {
     width: 18px;
     height: 18px;
     fill: white;
   }
   
   @keyframes searchSlideDown {
     from {
       opacity: 0;
       transform: translateY(-8px);
     }
     to {
       opacity: 1;
       transform: translateY(0);
     }
   }
   
   /* Detalle noticia — header más alto */
   .detalle-noticia .header,
   body.detalle-noticia .header,
   .page-detalle-noticia .header {
     height: 106px;
   }
   
   /* Mobile header elements: ocultos en desktop */
   .header-mobile-right { display: none; }
   
   /* --------------------------------------------------------------------------
      4. SECCIONES HERO
      -------------------------------------------------------------------------- */
   
   /* Hero portada v1*/
   
   .hero-home.hero-home-v1 {
     background-color: #1a2d57;
   }
   .hero-home.hero-home-v1.wp-block-cover .wp-block-cover__image-background {
     max-width: 964px;
     top: 0;
     left: calc(50% - 244px);
   }
   .hero-home.hero-home-v1.wp-block-cover .has-background-dim:not([class*=-background-color])::after {
     content: '';
     position: absolute;
     top: 0;
     right: 0;
     width: 200px;
     height: 100%;
     background: linear-gradient(to right, transparent, var(--primary-dark));
     pointer-events: none;
     z-index: 1;
   }
   .hero-home.hero-home-v1.wp-block-cover .has-background-dim:not([class*=-background-color]) {
     background: linear-gradient(to right, rgba(26, 45, 87, 1) 0%, rgba(26, 45, 87, 0.94) 38%, rgba(26, 45, 87, 0.63) 52%, rgba(26, 45, 87, 0.27) 72%, rgba(26, 45, 87, 0.09) 100%)!important;
     top: 0;
     left: 50%;
     transform: translateX(-50%);
     width: 1440px;
     height: 620px;
     opacity: 1;
     margin: 0;
   }
   
   /* hero portada v2 */
   .hero-home.hero-home-v2 {
     background-color: #243c74;
   }
   .hero-home.hero-home-v2.wp-block-cover .wp-block-cover__image-background {
     object-position: right 70%;
   }
   .hero-home.hero-home-v2.wp-block-cover .has-background-dim:not([class*=-background-color]){
     background: linear-gradient(to right, #243c74 0%, rgba(36, 60, 116, 0.94) 38%, rgba(36, 60, 116, 0.62) 52%, rgba(36, 60, 116, 0.27) 72%, rgba(36, 60, 116, 0.09) 100%)!important;
     opacity: 1;
     margin: auto;
   }
   
   .hero-home-content {
     width: 580px;
     color: white;
   }
   
   /* Quick links: columnas nativas de Gutenberg como tarjetas */
   .wp-block-column.quick-link-card {
     cursor: default;
   }
   
   /* Section header link cuando se usa en wp:paragraph */
   p.section-header-link,
   p.section-header-link a {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-size: 15px;
     font-weight: 500;
     color: var(--primary);
     text-decoration: none;
     transition: opacity 0.2s ease;
     margin: 0;
   }
   
   p.section-header-link:hover,
   p.section-header-link a:hover {
     opacity: 0.8;
   }
   
   /* Icon container en quick links y captación */
   .quick-link-icon,
   .recruitment-icon {
     width: 48px;
     height: 48px;
     border-radius: 10px;
     background: var(--primary);
     display: flex;
     align-items: center;
     justify-content: center;
     flex-shrink: 0;
   }
   
   .recruitment-icon {
     width: 80px;
     height: 80px;
     border-radius: 40px;
     margin-bottom: 24px;
   }
   
   .hero-home-illustration {
     width: 500px;
   }
   
   /* Hero de páginas interiores */
   .hero-page {
     background: var(--primary);
     height: 200px;
     position: relative;
     display: flex;
     align-items: center;
     justify-content: center;
     overflow: hidden;
   }
   
   .hero-page--tall {
     height: 220px;
   }
   
   .hero-page::before,
   .hero-page::after {
     content: '';
     position: absolute;
     border-radius: 50%;
     background: rgba(255, 255, 255, 0.08);
     opacity: 0.5;
   }
   
   .hero-page::before {
     width: 300px;
     height: 300px;
     top: -100px;
     left: -50px;
   }
   
   .hero-page::after {
     width: 200px;
     height: 200px;
     bottom: -50px;
     right: 10%;
   }
   
   .hero-page-content {
     text-align: center;
     color: white;
     position: relative;
     z-index: 1;
   }
   
   .rank-math-breadcrumb .separator {
     margin: 0 6px;
   }
   
   .hero-breadcrumb {
     font-size: 14px;
     color: rgba(255, 255, 255, 0.8);
     margin-bottom: 8px;
   }
   
   .hero-breadcrumb a {
     color: inherit;
     text-decoration: none;
   }
   
   .hero-breadcrumb a:hover {
     text-decoration: underline;
   }
   
   .hero-title {
     font-size: 36px;
     font-weight: 700;
   }
   
   /* --------------------------------------------------------------------------
      5. TARJETAS DE NOTICIAS (Portada)
      -------------------------------------------------------------------------- */
   .news-section {
     padding: 64px 48px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .news-grid {
     display: grid;
     grid-template-columns: repeat(4, minmax(0, 1fr));
     gap: 24px;
   }
   
   .grp-img-def {
     min-height: 180px;
     background-image: url(/wp-content/uploads/2026/03/imagen-predeterminada-ihe.png);
     background-size: cover;
     background-position: center;
   }
   
   .grp-img-def-2 {
     min-height: 100px;
     min-width: 120px;
     background-image: url(/wp-content/uploads/2026/03/imagen-predeterminada-ihe.png);
     background-size: cover;
     background-position: center;
   }
   
   .news-card {
     border-radius: var(--radius-lg);
     border: 1px solid var(--border);
     background: white;
     overflow: hidden;
     transition: box-shadow 0.2s ease;
     height: 100%;
   }
   
   .news-card:hover {
     box-shadow: var(--shadow-md);
   }
   
   .news-card-image {
     height: 180px;
     background: var(--gray-200);
     object-fit: cover;
   }
   
   .news-card-content {
     padding: 20px;
     display: flex;
     flex-direction: column;
     gap: 12px;
   }
   
   .news-card-date {
     font-size: 12px;
     color: var(--foreground-light);
     white-space: nowrap;
   }
   
   .news-card-title {
     font-size: 18px;
     font-weight: 600;
     color: var(--foreground);
     line-height: 1.4;
   }
   
   .news-card-excerpt {
     font-size: 14px;
     line-height: 1.5;
     color: var(--foreground-muted);
   }
   
   /* --------------------------------------------------------------------------
      6. CABECERAS DE SECCIÓN (reutilizables)
      -------------------------------------------------------------------------- */
   .section-header {
     display: flex;
     align-items: center;
     justify-content: space-between;
     margin-bottom: 32px;
   }
   
   .section-header-left {
     display: flex;
     align-items: center;
     gap: 16px;
   }
   
   .section-header-accent {
     width: 4px;
     height: 56px;
     border-radius: 2px;
     background: var(--secondary);
     flex-shrink: 0;
   }
   
   .section-header-text h2 {
     font-size: 32px;
     font-weight: 700;
     color: var(--foreground);
   }
   
   .section-header-text p {
     font-size: 16px;
     color: var(--foreground-muted);
     margin-top: 4px;
   }
   
   .section-header-link {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-size: 15px;
     font-weight: 500;
     color: var(--primary);
     text-decoration: none;
     transition: opacity 0.2s ease;
   }
   
   .section-header-link:hover {
     opacity: 0.8;
   }
   
   /* --------------------------------------------------------------------------
      7. ACCESOS RÁPIDOS
      -------------------------------------------------------------------------- */
   .quick-links {
     padding: 64px 48px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .quick-links-grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 24px;
   }
   
   .quick-link-card {
     border-radius: var(--radius-lg);
     border: 1px solid var(--border);
     padding: 24px;
     display: flex;
     flex-direction: column;
     gap: 12px;
     transition: box-shadow 0.2s ease;
   }
   
   .quick-link-card:hover {
     box-shadow: var(--shadow-md);
   }
   
   .quick-link-icon {
     width: 48px;
     height: 48px;
     border-radius: 10px;
     background: var(--primary);
     display: flex;
     align-items: center;
     justify-content: center;
     color: white;
   }
   
   .quick-link-card h3 {
     font-size: 18px;
     font-weight: 600;
   }
   
   .quick-link-card p {
     font-size: 14px;
     color: var(--foreground-muted);
   }
   
   /* --------------------------------------------------------------------------
      8. SECCIÓN AFILIACIÓN/CAPTACIÓN
      -------------------------------------------------------------------------- */
   
   .recruitment-cards {
     display: flex;
     gap: 32px;
     justify-content: center;
     align-items: stretch;
   }
   
   .recruitment-card {
     width: 540px;
     border-radius: var(--radius-xl);
     padding: 40px;
     background: white;
     box-shadow: var(--shadow-md);
     display: flex;
     flex-direction: column;
     height: 100%;
     max-width: 100%;
   }
   
   .recruitment-card .wp-block-buttons {
     margin-top: auto;
   }
   
   /* --------------------------------------------------------------------------
      9. TARJETAS DE DOCUMENTOS
      -------------------------------------------------------------------------- */
   .document-card {
     border-radius: var(--radius-lg);
     border: 1px solid var(--border);
     padding: 24px;
     display: flex;
     flex-direction: column;
     gap: 16px;
     background: white;
     transition: box-shadow 0.2s ease;
     height: 100%;
   }
   
   .document-card:hover {
     box-shadow: var(--shadow-md);
   }
   
   .document-card-header {
     display: flex;
     align-items: center;
     justify-content: space-between;
     width: 100%;
   }
   .document-card-header img {
     width: 18px;
   }
   
   .document-card-badge--congress { background: #EDE9FE; color: #8B5CF6; }
   .document-card-badge--tribuna  { background: #FEF3C7; color: #F59E0B; }
   .document-card-badge--nota     { background: #D1FAE5; color: #10B981; }
   .document-card-badge--prensa   { background: #DBEAFE; color: #3B82F6; }
   
   .document-card-title {
     font-size: 18px;
     font-weight: 600;
     flex: 1;
   }
   
   .document-card-subtitle {
     font-size: 14px;
     color: var(--foreground-muted);
   }
   
   .document-card-footer {
     display: flex;
     align-items: center;
     justify-content: space-between;
     padding-top: 8px;
     border-top: 1px solid var(--border);
     margin-top: auto;
   }
   
   .document-card-date {
     font-size: 12px;
     color: var(--foreground-light);
   }
   
   .document-card-download {
     font-size: 12px;
     font-weight: 500;
     color: var(--primary);
     text-decoration: none;
     display: inline-flex;
     align-items: center;
     gap: 4px;
   }
   
   .document-card-download:hover {
     text-decoration: underline;
   }
   
   .document-card-download img {
     filter: invert(18%) sepia(67%) saturate(1375%) hue-rotate(199deg) brightness(88%) contrast(91%);
   }
   
   .document-card-cat-icon {
     width: 32px;
     height: 32px;
     object-fit: contain;
     flex-shrink: 0;
     opacity: 0.55;
   }
   
   /* --------------------------------------------------------------------------
      10. PIE DE PÁGINA
      -------------------------------------------------------------------------- */
   .site-footer,
   .footer {
     background: var(--primary);
     max-width: 100%;
     margin: 0 auto;
   }
   
   .footer-main {
     max-width: 1440px;
     margin-left: auto;
     margin-right: auto;
     padding: 64px 48px;
     display: flex;
     justify-content: space-between;
     align-items: flex-start;
   }
   
   .footer-brand {
     width: 300px;
     display: flex;
     flex-direction: column;
     gap: 16px;
     align-items: flex-start;
   }
   
   .footer-brand img {
     width: 100px;
     height: auto;
   }
   
   .footer-description {
     color: rgba(255, 255, 255, 0.8);
     font-size: 14px;
     line-height: 1.6;
   }
   
   .footer-links {
     display: flex;
     gap: 80px;
   }
   
   .footer-links-column {
     width: 140px;
   }
   
   .footer-links-column h4 {
     color: white;
     font-size: 14px;
     font-weight: 600;
     margin-bottom: 12px;
   }
   
   .footer-links-column ul {
     list-style: none;
     margin: 0;
     padding: 0;
   }
   
   .footer-links-column li {
     margin-bottom: 10px;
   }
   
   .footer-links-column a {
     color: rgba(255, 255, 255, 0.8);
     font-size: 14px;
     text-decoration: none;
   }
   
   .footer-links-column a:hover {
     color: white;
   }
   
   .footer-social {
     display: flex;
     gap: 16px;
     color: rgba(255, 255, 255, 0.8);
   }
   
   .footer-social a {
     color: inherit;
   }
   
   .footer-social a:hover {
     color: white;
   }
   
   /* Oculto en desktop, visible en mobile */
   .footer-copyright-mobile {
     display: none;
   }
   
   /* --------------------------------------------------------------------------
      11. PÁGINA ASOCIACIÓN
      -------------------------------------------------------------------------- */
   
   /* Hero Asociación */
   .hero-asociacion {
     background: var(--primary);
     position: relative;
     overflow: hidden;
     background-repeat: no-repeat;
     background-position: 57% -20px;
     background-size: auto 420px!important;
   }
   .hero-asociacion:after {
     content: "";
     position: absolute;
     inset: 0;
     background-color: #243c74;
     opacity: 0.85;
    }
   
   .hero-asociacion::before, .hero-documentos::before {
     content: '';
     position: absolute;
     width: 180px;
     height: 180px;
     background: rgba(255,255,255,0.031);
     border-radius: 50%;
     left: -50px;
     top: 60px;
     z-index: 1;
     pointer-events: none;
     box-shadow:
       750px -90px 0 -40px rgba(91,192,222,0.08),
       500px 120px 0 -65px rgba(255,255,255,0.063),
       350px 0px 0 -85px rgba(255,255,255,0.125),
       1100px 80px 0 -86px rgba(91,192,222,0.25);
   }
   
   .hero-asociacion .content-container {
     position: relative;
     z-index: 2;
     display: flex;
     flex-direction: column;
     justify-content: center;
     gap: 12px;
     flex: 1;
     padding-top: 15px;
     padding-bottom: 40px;
     min-height: 340px;
   }
   
   .hero-asociacion .hero-title-row p {
     margin: 0;
     line-height: 1.1;
   }
   
   /* Section badge */
   .badge-section {
     background: var(--secondary-light);
     color: var(--primary);
     border-radius: 20px;
     padding: 8px 16px;
     font-size: 12px;
     font-weight: 600;
     letter-spacing: 1px;
     width: fit-content;
     display: inline-block;
   }
   
   /* About section */
   .asociacion-about {
     padding: 80px 0;
   }
   
   .asociacion-about-row {
     display: flex;
     gap: 64px;
     align-items: center;
   }
   
   .asociacion-about-text {
     flex: 1;
     display: flex;
     flex-direction: column;
     gap: 16px;
   }
   
   .asociacion-about-img {
     width: 500px;
     flex-shrink: 0;
     margin: 0;
     border-radius: var(--radius-xl);
     overflow: hidden;
   }
   
   .asociacion-about-img img {
     width: 100%;
     height: 400px;
     border-radius: var(--radius-xl);
     object-fit: cover;
   }
   
   img.asociacion-about-img {
     height: 400px;
     object-fit: cover;
   }
   
   /* Stats section */
   .asociacion-stats {
     background: var(--primary);
     padding: 64px 0;
   }
   
   .stats-row {
     display: flex;
     gap: 24px;
     justify-content: center;
   }
   
   .stat-card-v2 {
     flex: 1;
     padding: 32px 24px;
     border-radius: var(--radius-xl);
     background: white;
     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
     text-align: center;
     display: flex !important;
     flex-direction: column;
     align-items: center;
     gap: 8px;
   }
   
   .stat-card-v2__value {
     font-size: 56px;
     font-weight: 800;
     margin: 0;
     letter-spacing: -1.5px;
   }
   
   .stat-card-v2__label {
     font-size: 14px;
     font-weight: 500;
     color: var(--foreground-muted);
     margin: 0;
     letter-spacing: 0.5px;
   }
   
   /* Mission section */
   .asociacion-mission {
     background: var(--background-alt);
     padding: 80px 0;
   }
   
   .section-header-centered {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 16px;
     text-align: center;
     margin-bottom: 48px;
   }
   
   .mission-cards-row {
     display: flex;
     gap: 32px;
     justify-content: center;
     width: 100%;
   }
   
   .mission-card {
     flex: 1;
     border-radius: var(--radius-xl);
     background: white;
     padding: 32px;
     border: 1px solid var(--border);
     display: flex !important;
     flex-direction: column;
     gap: 20px;
   }
   .mission-card ul {
    padding-left: 20px;
    margin-top: 0;
   }
   .mission-card li {
    font-size: 15px;
    color: var(--foreground-muted);
    line-height: 1.6;
    margin: 0;
   }
   
   .mission-card__icon {
     width: 64px;
     height: 64px;
     border-radius: 32px;
     display: flex;
     align-items: center;
     justify-content: center;
   }
   
   .mission-card__icon .wp-block-image {
     margin: 0;
     line-height: 0;
   }
   
   .mission-card__icon .wp-block-image img {
     width: 28px;
     height: 28px;
   }
   
   .mission-card__title {
     font-size: 22px;
     font-weight: 700;
     margin: 0;
   }
   
   .mission-card__text {
     font-size: 15px;
     color: var(--foreground-muted);
     line-height: 1.6;
     margin: 0;
   }
   
   /* Where section */
   .asociacion-where {
     padding: 80px 0;
   }
   
   .asociacion-where-row {
     display: flex;
     gap: 64px;
   }
   
   .asociacion-where-img {
     width: 500px;
     flex-shrink: 0;
     margin: 0;
     border-radius: var(--radius-xl);
     overflow: hidden;
   }
   
   .asociacion-where-img img {
     width: 100%;
     height: 380px;
     border-radius: var(--radius-xl);
     object-fit: cover;
   }
   
   img.asociacion-where-img {
     height: 380px;
     object-fit: cover;
   }
   
   .asociacion-where-text {
     flex: 1;
     display: flex;
     flex-direction: column;
     gap: 24px;
   }
   
   .check-list {
     list-style: none;
     padding: 0;
     margin: 0;
     display: flex;
     flex-direction: column;
     gap: 12px;
   }
   
   .check-list li {
     display: flex;
     align-items: center;
     gap: 12px;
     font-size: 15px;
   }
   
   .check-list li::before {
     content: '';
     width: 20px;
     height: 20px;
     min-width: 20px;
     background: url('/wp-content/themes/ihe-theme/assets/images/circle-check.svg') no-repeat center;
     background-size: contain;
     filter: invert(79%) sepia(44%) saturate(668%) hue-rotate(155deg) brightness(95%) contrast(95%);
   }
   
   .check-list li img {
     width: 20px;
     height: 20px;
     flex-shrink: 0;
   }
   
   /* Team section */
   .asociacion-team {
     background: var(--background-alt);
     padding: 60px 0;
   }
   
   .team-section-header {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 16px;
     text-align: center;
     margin-bottom: 36px;
   }
   
   /* Bloque Miembros IHE — Grid */
   .wp-block-ihe-miembros-grid {
     width: 100%;
   }
   
   .miembros-grid {
     display: flex;
     flex-wrap: wrap;
     gap: 10px;
     justify-content: center;
     max-width: calc(var(--miembros-cols, 4) * (200px + 10px) - 10px);
     margin: 0 auto;
   }
   
   .miembro-card {
     width: 200px;
     min-height: 320px;
     padding: 12px 12px 22px;
     border-radius: var(--radius-xl);
     background: white;
     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
     text-align: center;
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 10px;
   }
   
   .miembro-card__foto {
     width: 176px;
     height: 200px;
     border-radius: var(--radius-lg);
     object-fit: cover;
     object-position: top;
     flex-shrink: 0;
   }
   
   .miembro-card__foto--placeholder {
     background: var(--gray-200);
   }
   
   .miembro-card__info {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 2px;
   }
   
   .miembro-card__nombre {
     font-size: 18px;
     font-weight: 600;
     margin: 0;
     text-align: center;
     line-height: 1.3;
   }
   
   .miembro-card__cargo {
     font-size: 16px;
     font-weight: 500;
     margin: 0;
   }
   
   .miembro-card__cargo--primary {
     color: var(--primary);
   }
   
   .miembro-card__cargo--secondary {
     color: var(--secondary);
   }
   
   /* CTA section */
   .asociacion-cta {
     background: var(--background-alt);
     padding: 80px 0;
   }
   
   .asociacion-cta {
     padding: 80px 48px;
     text-align: center;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .asociacion-cta h2 {
     font-size: 32px;
     font-weight: 700;
     margin-bottom: 16px;
   }
   
   .asociacion-cta p {
     font-size: 16px;
     color: var(--foreground-muted);
     margin-bottom: 24px;
   }
   
   .btn-cta-icon .wp-block-button__link::after {
     content: '';
     display: inline-block;
     width: 18px;
     height: 18px;
     background: url('/wp-content/themes/ihe-theme/assets/images/user-plus.svg') no-repeat center;
     background-size: contain;
     filter: brightness(0) invert(1);
     vertical-align: middle;
     margin-left: 8px;
   }

   .historico-pen-card {
    box-shadow: 0 12px 28px rgba(3, 31, 65, 0.06);
    max-width: 1216px;
   }
.historico-pen-row {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 41px;
  border-bottom: 1px solid #f3f3f3;
  padding: 10px 0;
  margin-top: 0;
}
.historico-pen-year {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  color: #031f41;
  width: 100%;
}
.historico-pen-topic {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.25;
  color: #1a1c1c;
  margin-top: 0;
  width: 100%;
}
   
   /* --------------------------------------------------------------------------
      12. PÁGINA DOCUMENTOS
      -------------------------------------------------------------------------- */
   
   /* Hero documentos */
   .hero-documentos {
     background: var(--primary);
     height: 280px;
     position: relative;
     overflow: hidden;
   }
   
   .hero-documentos .hero-content {
     height: 280px;
     display: flex;
     flex-direction: column;
     justify-content: center;
     gap: 12px;
     padding: 40px 0;
     position: relative;
     z-index: 1;
   }
   
   .hero-documentos .hero-breadcrumb {
     display: flex;
     align-items: center;
     gap: 8px;
     color: rgba(255, 255, 255, 0.6);
     font-size: 13px;
   }
   
   .hero-documentos .hero-breadcrumb a, .hero-breadcrumb p {
     color: rgba(255, 255, 255, 0.6);
     text-decoration: none;
   }
   
   .hero-documentos .hero-breadcrumb .current {
     color: #ffffff;
     font-weight: 500;
   }
   
   .hero-documentos .hero-title {
     display: flex;
     align-items: flex-end;
     gap: 10px;
   }
   
   .hero-documentos .hero-subtitle {
     color: rgba(255, 255, 255, 0.8);
     font-size: 18px;
     line-height: 1.6;
     max-width: 700px;
   }
   
   .hero-deco {
     position: absolute;
     border-radius: 50%;
     pointer-events: none;
   }
   
   /* Filtros documentos */
   .documentos-filters-section {
     background: white;
     padding: 32px 0;
   }
   
   .filters-top-row {
     display: flex;
     align-items: center;
     gap: 16px;
     width: 100%;
   }
   
   .filters-search-box {
     display: flex;
     align-items: center;
     gap: 10px;
     flex: 1;
     height: 44px;
     border: 1px solid var(--border);
     padding: 0 14px;
     background: var(--background);
   }
   
   .filters-search-box input {
     border: none;
     outline: none;
     font-size: 14px;
     font-family: inherit;
     flex: 1;
     background: transparent;
   }
   
   .filters-search-box input::placeholder {
     color: var(--foreground-light);
   }
   
   .filters-sort-dropdown {
     display: flex;
     align-items: center;
     gap: 8px;
     height: 44px;
     border: 1px solid var(--border);
     padding: 0 14px;
     font-size: 14px;
     font-weight: 500;
     color: var(--foreground);
     white-space: nowrap;
     cursor: pointer;
     background: white;
   }
   
   .filters-view-toggle {
     display: flex;
     height: 44px;
     display: none;
   }
   
   .view-btn {
     width: 44px;
     height: 44px;
     display: flex;
     align-items: center;
     justify-content: center;
     border: none;
     cursor: pointer;
     padding: 0;
     transition: 0.1s ease;
   }
   
   .view-btn:hover {
     background: var(--primary);
   }
   
   .view-btn--active {
     background: var(--primary);
   }
   
   .view-btn--active img, .view-btn:hover img {
     filter: brightness(0) invert(1);
   }
   
   .view-btn--inactive {
     background: white;
     border: 1px solid var(--border);
   }
   
   .filters-pills-row {
     display: flex;
     align-items: center;
     gap: 10px;
     margin-top: 20px;
     flex-wrap: wrap;
   }
   
   .filter-label-text {
     font-size: 13px;
     font-weight: 500;
     color: var(--foreground-muted);
   }
   
   .filter-pill {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 6px;
     height: 34px;
     padding: 0 16px;
     font-size: 13px;
     font-weight: 500;
     font-family: inherit;
     cursor: pointer;
     border: none;
     transition: 0.1s ease;
   }
   
   .filter-pill--active, .filter-pill:hover {
     background: var(--primary);
     color: white;
   }
   
   .filter-pill--inactive {
     background: white;
     color: var(--foreground);
     border: 1px solid var(--border);
   }
   
   .filter-pill img {
     transition: 0.1s ease;
   }
   .filter-pill--inactive img {
     filter: var(--icon-primary-filter, invert(14%) sepia(71%) saturate(780%) hue-rotate(196deg) brightness(90%) contrast(110%));
     transition: 0.1s ease;
   }
   
   /* Lista de documentos */
   .documentos-list-section {
     background: white;
     padding: 40px 0;
   }
   
   .docs-list-container {
     display: flex;
     flex-direction: column;
     gap: 16px;
   }
   
   .docs-results-info {
     display: flex;
     justify-content: space-between;
     align-items: center;
     width: 100%;
   }
   
   .docs-results-info span {
     font-size: 13px;
     color: var(--foreground-muted);
   }
   
   .docs-results-sort-mobile {
     display: none;
   }
   
   .docs-list-header {
     display: flex;
     align-items: center;
     height: 44px;
     padding: 0 16px;
     border-bottom: 2px solid var(--border-strong);
     width: 100%;
     box-sizing: border-box;
   }
   
   .docs-col-icon  { width: 40px; flex-shrink: 0; }
   
   .docs-col-title {
     flex: 1;
     font-size: 11px;
     font-weight: 600;
     color: var(--foreground-muted);
     letter-spacing: 1px;
     text-transform: uppercase;
   }
   
   .docs-col-cat,
   .docs-col-date {
     flex-shrink: 0;
     font-size: 11px;
     font-weight: 600;
     color: var(--foreground-muted);
     letter-spacing: 1px;
     text-transform: uppercase;
   }
   
   .docs-col-cat   { width: 140px; }
   .docs-col-date  { width: 120px; }
   
   .docs-col-action {
     width: 120px;
     flex-shrink: 0;
     font-size: 11px;
     font-weight: 600;
     color: var(--foreground-muted);
     letter-spacing: 1px;
     text-transform: uppercase;
     text-align: right;
   }
   
   .docs-list {
     border: 1px solid var(--border);
     width: 100%;
   }
   
   .doc-row {
     display: flex;
     align-items: center;
     min-height: 52px;
     padding: 0 16px;
     border-bottom: 1px solid var(--border);
     box-sizing: border-box;
   }

   .doc-row:hover {
    background-color: aliceblue;
    cursor: pointer;
   }

   
   .doc-row:last-child { border-bottom: none; }
   
   .doc-row--alt { background: var(--background-alt); }
   
   .doc-row-icon {
     width: 40px;
     height: 40px;
     flex-shrink: 0;
     display: flex;
     align-items: center;
     justify-content: center;
   }
   
   .doc-row-icon img {
     width: 20px;
     height: 20px;
     filter: invert(14%) sepia(71%) saturate(780%) hue-rotate(196deg) brightness(90%) contrast(110%);
   }
   
   .doc-row-title {
     flex: 1;
     font-size: 14px;
     font-weight: 500;
     color: var(--foreground);
     overflow: hidden;
     text-overflow: ellipsis;
     padding-right: 16px;
     padding-top: 5px;
     padding-bottom: 5px;
   }
   
   .doc-row-cat {
     width: 140px;
     flex-shrink: 0;
     font-size: 13px;
     font-weight: 500;
     color: var(--foreground-muted);
     padding: 5px 5px 5px 0;
   }
   
   .doc-row-date {
     width: 120px;
     flex-shrink: 0;
     font-size: 13px;
     color: var(--foreground-muted);
   }
   
   .doc-row-action {
     width: 120px;
     flex-shrink: 0;
     display: flex;
     align-items: center;
     justify-content: flex-end;
     gap: 6px;
   }
   
   .doc-row-action a {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-size: 13px;
     font-weight: 500;
     color: var(--primary);
     text-decoration: none;
   }
   
   .doc-row-action a:hover { text-decoration: underline; }
   
   .doc-row-action img {
     width: 16px;
     height: 16px;
     filter: invert(14%) sepia(71%) saturate(780%) hue-rotate(196deg) brightness(90%) contrast(110%);
   }
   
   /* Paginación documentos */
   .docs-pagination {
     display: flex;
     justify-content: center;
     align-items: center;
     gap: 8px;
   }
   
   .docs-pagination button {
     width: 40px;
     height: 40px;
     display: flex;
     align-items: center;
     justify-content: center;
     border: 1px solid var(--border);
     background: white;
     cursor: pointer;
     font-family: inherit;
   }

   .docs-pagination button:not(.page-active):hover {
    background-color: aliceblue;
   }
   
   .docs-pagination button.page-active {
     background: var(--primary);
     color: white;
     border-color: var(--primary);
     font-size: 14px;
     font-weight: 600;
   }
   
   .docs-pagination button:not(.page-active) {
     font-size: 14px;
     font-weight: 500;
     color: var(--gray-700);
   }
   
   .docs-pagination button img {
     width: 18px;
     height: 18px;
   }
   
   /* Grid de documentos (vista cuadrícula en archivo) */
   .docs-grid {
     display: grid;
     grid-template-columns: repeat(3, minmax(0, 1fr));
     gap: 24px;
   }
   
   .docs-grid .document-card {
     height: 100%;
   }
   
   .docs-no-results {
     text-align: center;
     color: var(--foreground-muted);
     padding: 48px 0;
     font-size: 15px;
   }
   
   .filter-pill--active img, .filter-pill:hover img {
     filter: brightness(0) invert(1);
   }
   
   /* Estilos legacy (compatibilidad) */
   .documentos-page {
     padding: 64px 48px;
   }
   
   .documentos-filters {
     display: flex;
     gap: 12px;
     margin-bottom: 32px;
     flex-wrap: wrap;
   }
   
   .documentos-filter-btn {
     padding: 10px 16px;
     border-radius: var(--radius-md);
     font-size: 14px;
     font-weight: 500;
     font-family: inherit;
     background: var(--gray-100);
     border: 1px solid var(--border);
     color: var(--foreground);
     cursor: pointer;
     transition: all 0.2s ease;
   }
   
   .documentos-filter-btn:hover {
     background: var(--gray-200);
   }
   
   .documentos-filter-btn.active {
     background: var(--primary);
     color: white;
     border-color: var(--primary);
   }
   
   .documentos-grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 20px;
   }
   
   .documentos-pagination {
     display: flex;
     gap: 8px;
     justify-content: center;
     align-items: center;
     margin-top: 48px;
   }
   
   .documentos-pagination button {
     width: 40px;
     height: 40px;
     border-radius: var(--radius-md);
     border: 1px solid var(--border);
     background: white;
     font-size: 14px;
     font-weight: 500;
     cursor: pointer;
     transition: all 0.2s ease;
   }
   
   .documentos-pagination button:hover {
     background: var(--gray-50);
   }
   
   .documentos-pagination button.active {
     background: var(--primary);
     color: white;
     border-color: var(--primary);
   }
   
   /* --------------------------------------------------------------------------
      13. PÁGINA CONGRESO
      -------------------------------------------------------------------------- */
   .congreso-welcome {
     padding: 64px 48px;
     display: flex;
     gap: 64px;
     align-items: center;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .congreso-welcome-image {
     border-radius: var(--radius-xl);
     overflow: hidden;
   }
   
   .congreso-sede {
     padding: 64px 48px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .congreso-program {
     padding: 64px 48px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .congreso-pricing {
     padding: 64px 48px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .congreso-social-events {
     padding: 64px 48px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .congreso-hotels {
     padding: 64px 48px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .congreso-transport {
     padding: 64px 48px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .congreso-previous {
     padding: 64px 48px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .congreso-info-grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 24px;
   }
   
   .congreso-day-cards {
     display: flex;
     gap: 24px;
     flex-wrap: wrap;
   }
   
   .congreso-pricing-grid {
     display: flex;
     gap: 24px;
     flex-wrap: wrap;
     justify-content: center;
   }
   
   .pricing-card {
     width: 340px;
     border-radius: var(--radius-xl);
     border: 1px solid var(--border);
     padding: 32px;
     background: white;
   }
   
   .congreso-hotels-grid {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 24px;
   }
   
   .transport-card {
     border-radius: var(--radius-lg);
     border: 1px solid var(--border);
     padding: 24px;
     background: white;
   }
   
   /* --------------------------------------------------------------------------
      14. PÁGINA ACTUALIDAD
      -------------------------------------------------------------------------- */
   .actualidad-page {
     padding: 64px 48px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .actualidad-filters {
     display: flex;
     gap: 8px;
     margin-bottom: 32px;
     flex-wrap: wrap;
   }
   
   .actualidad-filter-tab {
     padding: 10px 20px;
     border-radius: 20px;
     font-size: 14px;
     font-weight: 500;
     font-family: inherit;
     background: var(--gray-100);
     border: none;
     color: var(--foreground);
     cursor: pointer;
     transition: all 0.2s ease;
   }
   
   .actualidad-filter-tab:hover {
     background: var(--gray-200);
   }
   
   .actualidad-filter-tab.active {
     background: var(--primary);
     color: white;
   }
   
   .actualidad-grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 24px;
   }
   
   .actualidad-card {
     height: 244px;
     padding: 20px;
     border-radius: var(--radius-lg);
     border: 1px solid var(--border);
     background: white;
     display: flex;
     flex-direction: column;
     gap: 12px;
     transition: box-shadow 0.2s ease;
   }
   
   .actualidad-card:hover {
     box-shadow: var(--shadow-md);
   }
   
   .actualidad-pagination {
     display: flex;
     gap: 8px;
     justify-content: center;
     margin-top: 48px;
   }
   
   .blog-cat-list {
     overflow: auto;
     padding-bottom: 8px;
     scrollbar-color: var(--primary) transparent;
     scrollbar-width: thin;
   }
   
   /* Estilizado del scrollbar para Webkit (Chrome, Edge, Safari) */
   .blog-cat-list::-webkit-scrollbar {
     height: 6px;
   }
   .blog-cat-list::-webkit-scrollbar-thumb {
     background: var(--primary);
     border-radius: 3px;
   }
   .blog-cat-list::-webkit-scrollbar-track {
     background: transparent;
   }
   
   .blog-cat-list a {
     padding: 8px 20px;
     border-radius: 20px;
     font-size: 14px;
     font-weight: 500;
     background: #F3F4F6;
     color: #6B7280;
     border: none;
     width: max-content;
     display: flex;
   }

   .blog-cat-list .link-todas:not(.link-todas--active) a:hover,
   .blog-cat-list .cat-item:not(.current-cat) a:hover {
    background-color: aliceblue;
   }
   
   .blog-cat-list .link-todas--active a, .blog-cat-list .current-cat a {
     background: #243c74;
     color: white;
   }
   
   .blog-cat-list .wp-block-categories-list {
     display: flex;
     flex-wrap: nowrap;
     list-style: none;
     gap: 8px;
   }
   
   /* --------------------------------------------------------------------------
      15. Single Actualidad
      -------------------------------------------------------------------------- */
   .single-post main {
    padding-left: 20px;
    padding-right: 20px;
   }
   .single .taxonomy-category { 
     gap: 8px;
     display: flex;
     flex-wrap: wrap;
   }
   .single .taxonomy-category .wp-block-post-terms__separator {
     display: none;
   }
   
   .single .taxonomy-category a {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     padding: 6px 14px;
     border-radius: 4px;
     background: #243c74;
     color: white;
     font-size: 12px;
     font-weight: 600;
   }
   
   .single .wp-block-post-date {
     font-size: 14px;
     color: #9CA3AF;
   }
   
   .wp-block-query-pagination-numbers {
     gap: 8px;
     display: flex;
     font-size: 14px;
     font-weight: 500;
   }
   
   .wp-block-query-pagination-numbers a {
     color: #1A1A1A;
   }
   
   .wp-block-query-pagination-previous, .wp-block-query-pagination-next {
     padding: 10px 16px;
     border-radius: 8px;
     font-size: 14px;
     font-weight: 500;
     font-family: inherit;
     background: #243c74;
     color: white;
     border: none;
   }
   .wp-block-query-pagination .page-numbers.current {
    color: #2563eb;
    font-weight: 700;
   }
   
   /* --------------------------------------------------------------------------
      15. DETALLE DE NOTICIA
      -------------------------------------------------------------------------- */
   .detalle-noticia-breadcrumb {
     height: 66px;
     padding: 20px 48px;
     background: var(--background-alt);
     border-bottom: 1px solid var(--border);
   }
   
   .detalle-noticia-article {
     padding: 64px 280px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .detalle-noticia-meta {
     display: flex;
     align-items: center;
     gap: 16px;
     margin-bottom: 24px;
   }
   
   .detalle-noticia-title {
     font-size: 36px;
     font-weight: 700;
     line-height: 1.3;
     margin-bottom: 24px;
   }
   
   .detalle-noticia-body {
     font-size: 16px;
     line-height: 1.7;
     color: var(--foreground);
   }
   
   .detalle-noticia-body p {
     margin-bottom: 16px;
   }
   
   /* --------------------------------------------------------------------------
      16. PÁGINA CONTACTO
      -------------------------------------------------------------------------- */
   .contacto-page {
     padding: 64px 48px;
     display: flex;
     gap: 48px;
     max-width: 100%;
     margin: 0 auto;
   }
   
   .contacto-info {
     width: 420px;
     flex-shrink: 0;
   }
   
   .contacto-form-container {
     flex: 1;
     border-radius: var(--radius-xl);
     background: var(--gray-50);
     padding: 40px;
     display: flex;
     flex-direction: column;
     gap: 24px;
   }
   
   .contacto-form-container input,
   .contacto-form-container textarea,
   .contacto-form-container select {
     width: 100%;
     border-radius: var(--radius-md);
     border: 1px solid var(--border);
     padding: 12px 16px;
     font-size: 14px;
     font-family: inherit;
   }
   
   .contacto-form-container textarea {
     min-height: 120px;
     resize: vertical;
   }
   
   .contacto-form-container input:focus,
   .contacto-form-container textarea:focus {
     outline: none;
     border-color: var(--primary);
   }

   .contacto-contact-info figure, .contacto-contact-info svg {
    width: 20px;
    height: 20px;
   }
   .contacto-contact-info svg, .contacto-contact-info a {
    transition: 0.2s;
   }
   .contacto-contact-info:hover svg, .contacto-contact-info:hover a {
    stroke: #5bc0de;
    color: #5bc0de;
   }
   
   /* Hero Contacto */
   .hero-contacto {
     background: var(--primary);
     position: relative;
     overflow: hidden;
   }
   
   .hero-contacto::before {
     content: '';
     position: absolute;
     width: 280px;
     height: 280px;
     background: rgba(255,255,255,0.024);
     border-radius: 50%;
     left: -70px;
     top: -70px;
     z-index: 1;
     pointer-events: none;
     box-shadow:
       1070px 100px 0 -40px rgba(255,255,255,0.031),
       820px 35px 0 -85px rgba(91,192,222,0.08),
       570px 245px 0 -112.5px rgba(255,255,255,0.063),
       420px 140px 0 -134px rgba(255,255,255,0.125),
       1170px 220px 0 -136px rgba(91,192,222,0.25);
   }
   
   .hero-contacto .content-container {
     position: relative;
     z-index: 2;
     display: flex;
     flex-direction: column;
     justify-content: center;
     gap: 12px;
     flex: 1;
     padding-top: 15px;
     padding-bottom: 40px;
   }
   
   .hero-contacto .hero-title-row p {
     margin: 0;
     line-height: 1.1;
   }
   
   /* Contacto info card sections */
   .contacto-info-card {
     padding: 20px 0;
     border-bottom: 1px solid var(--border);
     display: flex;
     flex-direction: column;
     gap: 10px;
   }
   
   .contacto-info-card:last-of-type {
     border-bottom: none;
   }
   
   /* CF7 within contacto-form-container */
   .contacto-form-container .wpcf7 form {
     display: flex;
     flex-direction: column;
     gap: 24px;
   }
   
   .contacto-form-container .wpcf7-form-control-wrap {
     display: block;
   }
   
   .contacto-form-container label {
     display: block;
     font-size: 14px;
     font-weight: 500;
     margin-bottom: 8px;
     color: var(--foreground);
   }
   
   .contacto-form-container .contacto-select-wrap {
     position: relative;
   }
   
   .contacto-form-container .contacto-select-wrap select {
     appearance: none;
     -webkit-appearance: none;
     padding-right: 40px;
     background: white;
   }
   
   .contacto-form-container .contacto-select-wrap::after {
     content: '';
     position: absolute;
     right: 16px;
     top: 50%;
     width: 16px;
     height: 16px;
     background: url('/wp-content/themes/ihe-theme/assets/images/chevron-down.svg') no-repeat center;
     background-size: contain;
     transform: translateY(-50%);
     pointer-events: none;
     opacity: 0.5;
   }
   
   .contacto-form-container .contacto-consent {
     display: flex;
     align-items: flex-start;
     gap: 12px;
   }
   
   .contacto-form-container .contacto-consent .wpcf7-form-control-wrap {
     display: contents;
   }
   
   .contacto-form-container .contacto-consent .wpcf7-acceptance,
   .contacto-form-container .contacto-consent .wpcf7-list-item {
     margin: 0;
   }
   
   .contacto-form-container .contacto-consent .wpcf7-acceptance label {
     display: flex;
     align-items: flex-start;
     gap: 12px;
     font-size: 13px;
     color: var(--foreground-muted);
     line-height: 1.5;
     margin-bottom: 0;
   }
   
   .contacto-form-container .contacto-consent .wpcf7-acceptance input[type="checkbox"] {
     -webkit-appearance: none;
     appearance: none;
     width: 20px;
     height: 20px;
     min-width: 20px;
     border: 2px solid var(--border-strong);
     border-radius: var(--radius-sm);
     cursor: pointer;
     transition: background-color 0.2s, border-color 0.2s;
     margin: 2px 0 0 0;
     position: relative;
     padding: 0;
   }
   
   .contacto-form-container .contacto-consent .wpcf7-acceptance input[type="checkbox"]:checked {
     background: var(--primary);
     border-color: var(--primary);
   }
   
   .contacto-form-container .contacto-consent .wpcf7-acceptance input[type="checkbox"]:checked::after {
     content: '\2713';
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     color: white;
     font-size: 12px;
     font-weight: 700;
   }
   
   .contacto-form-container .contacto-consent a {
     color: var(--primary);
     font-weight: 600;
     text-decoration: none;
   }
   
   .contacto-form-container .contacto-consent a:hover {
     text-decoration: underline;
   }
   
   .contacto-form-container .wpcf7 .wpcf7-submit {
     width: 220px;
     padding: 14px 32px;
     font-size: 16px;
     font-weight: 600;
     border-radius: var(--radius-md);
     background: var(--primary);
     color: white;
     border: none;
     cursor: pointer;
     font-family: inherit;
     transition: background-color 0.2s, box-shadow 0.2s;
   }
   
   .contacto-form-container .wpcf7 .wpcf7-submit:hover {
     background: var(--primary-dark);
     box-shadow: var(--shadow-md);
   }
   
   .contacto-form-container .wpcf7-not-valid-tip {
     font-size: 12px;
     color: var(--error);
     margin-top: 4px;
   }
   
  .contacto-form-container .wpcf7-response-output {
    margin: 16px 0 0;
    padding: 12px 20px;
    border-radius: var(--radius-md);
    font-size: 14px;
  }

  /* Gravity Forms within contacto-form-container */
  .contacto-form-container .gform_wrapper.gform-theme {
    border: none !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .contacto-form-container .gform_wrapper .gform_body {
    padding: 0 !important;
  }

  .contacto-form-container .gform_wrapper .gform_fields {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
    padding: 0 !important;
  }

  .contacto-form-container .gform_wrapper .gfield {
    margin: 0 !important;
    padding: 0 !important;
  }

  .contacto-form-container .gform_wrapper .gfield_label,
  .contacto-form-container .gform_wrapper legend.gfield_label {
    display: block !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    color: var(--foreground) !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    line-height: 1.5 !important;
  }

  .contacto-form-container .gform_wrapper .gfield_required_text {
    display: none !important;
  }

  .contacto-form-container .gform_wrapper .gfield_label .gfield_required {
    font-weight: 400 !important;
  }

  .contacto-form-container .gform_wrapper .gfield_contains_required > .gfield_label::after {
    content: ' *' !important;
    color: var(--foreground) !important;
  }

  .contacto-form-container .gform_wrapper input[type="text"],
  .contacto-form-container .gform_wrapper input[type="email"],
  .contacto-form-container .gform_wrapper input[type="tel"],
  .contacto-form-container .gform_wrapper select.gfield_select,
  .contacto-form-container .gform_wrapper select.large {
    height: 44px !important;
    width: 100% !important;
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--border) !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    font-family: inherit !important;
    box-sizing: border-box !important;
    background-color: white !important;
    background-image: none !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    color: var(--foreground) !important;
    outline: none !important;
    box-shadow: none !important;
  }

  .contacto-form-container .gform_wrapper input[type="text"]:focus,
  .contacto-form-container .gform_wrapper input[type="email"]:focus,
  .contacto-form-container .gform_wrapper input[type="tel"]:focus,
  .contacto-form-container .gform_wrapper select.gfield_select:focus,
  .contacto-form-container .gform_wrapper select.large:focus {
    outline: none !important;
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(36, 60, 116, 0.1) !important;
  }

  .contacto-form-container .gform_wrapper input::placeholder {
    color: var(--foreground-light) !important;
  }

  .contacto-form-container .gform_wrapper textarea {
    width: 100% !important;
    min-height: 120px !important;
    resize: vertical !important;
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--border) !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    font-family: inherit !important;
    box-sizing: border-box !important;
    background-color: white !important;
    background-image: none !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    color: var(--foreground) !important;
    outline: none !important;
    box-shadow: none !important;
  }

  .contacto-form-container .gform_wrapper textarea:focus {
    outline: none !important;
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(36, 60, 116, 0.1) !important;
  }

  .contacto-form-container .gform_wrapper textarea::placeholder {
    color: var(--foreground-light) !important;
  }

  .contacto-form-container .gform_wrapper .ginput_container_select {
    position: relative !important;
  }

  .contacto-form-container .gform_wrapper .ginput_container_select::after {
    content: '' !important;
    position: absolute !important;
    right: 16px !important;
    top: 50% !important;
    width: 16px !important;
    height: 16px !important;
    background: url('/wp-content/themes/ihe-theme/assets/images/chevron-down.svg') no-repeat center !important;
    background-size: contain !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
    opacity: 0.5 !important;
  }

  .contacto-form-container .gform_wrapper select.gfield_select,
  .contacto-form-container .gform_wrapper select.large {
    -webkit-appearance: none !important;
    appearance: none !important;
    padding: 0 40px 0 16px !important;
    cursor: pointer !important;
    line-height: 44px !important;
    background-color: white !important;
  }

  /* Consent */
  .contacto-form-container .gform_wrapper .gfield--type-consent {
    border: none !important;
    padding: 0 !important;
  }

  .contacto-form-container .gform_wrapper .gfield--type-consent > .gfield_label,
  .contacto-form-container .gform_wrapper .gfield--type-consent > legend.gfield_label {
    display: none !important;
  }

  .contacto-form-container .gform_wrapper .gfield--type-consent .gfield_required_text {
    display: none !important;
  }

  .contacto-form-container .gform_wrapper .ginput_container_consent {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 0 !important;
    background: transparent !important;
  }

  .contacto-form-container .gform_wrapper .ginput_container_consent input[type="checkbox"] {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    border: 2px solid var(--border-strong) !important;
    border-radius: var(--radius-sm) !important;
    cursor: pointer !important;
    transition: background-color 0.2s, border-color 0.2s !important;
    margin: 2px 0 0 0 !important;
    padding: 0 !important;
    position: relative !important;
    background: white !important;
    flex-shrink: 0 !important;
    box-shadow: none !important;
    outline: none !important;
  }

  .contacto-form-container .gform_wrapper .ginput_container_consent input[type="checkbox"]::before {
    display: none !important;
  }

  .contacto-form-container .gform_wrapper .ginput_container_consent input[type="checkbox"]:checked {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
  }

  .contacto-form-container .gform_wrapper .ginput_container_consent input[type="checkbox"]:checked::after {
    content: '\2713' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    color: white !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    display: block !important;
  }

  .contacto-form-container .gform_wrapper .gfield_consent_label {
    font-size: 13px !important;
    color: var(--foreground-muted) !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;
    margin: 0 !important;
  }

  .contacto-form-container .gform_wrapper .gfield_consent_label .gfield_required_text {
    display: none !important;
  }

  .contacto-form-container .gform_wrapper .gfield_consent_label a {
    color: var(--primary) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
  }

  .contacto-form-container .gform_wrapper .gfield_consent_label a:hover {
    text-decoration: underline !important;
  }

  /* Footer & submit button */
  .contacto-form-container .gform_wrapper .gform_footer,
  .contacto-form-container .gform_wrapper .gform-footer,
  .contacto-form-container .gform_wrapper .gform_footer.top_label {
    margin-top: 24px !important;
    padding: 0 !important;
    border: none !important;
  }

  .contacto-form-container .gform_wrapper .gform_button,
  .contacto-form-container .gform_wrapper input[type="submit"].gform_button,
  .contacto-form-container .gform_wrapper .gform_footer input[type="submit"],
  .contacto-form-container .gform-theme .gform_footer .gform_button {
    width: 220px !important;
    padding: 14px 32px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    border-radius: var(--radius-md) !important;
    background-color: var(--primary) !important;
    background-image: none !important;
    color: white !important;
    border: none !important;
    cursor: pointer !important;
    font-family: inherit !important;
    transition: background-color 0.2s, box-shadow 0.2s !important;
    box-shadow: none !important;
    line-height: 1.5 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    height: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .contacto-form-container .gform_wrapper .gform_button:hover,
  .contacto-form-container .gform_wrapper input[type="submit"].gform_button:hover,
  .contacto-form-container .gform_wrapper .gform_footer input[type="submit"]:hover,
  .contacto-form-container .gform-theme .gform_footer .gform_button:hover {
    background-color: var(--primary-dark) !important;
    box-shadow: var(--shadow-md) !important;
  }

  /* Validation */
  .contacto-form-container .gform_wrapper .gfield_validation_message,
  .contacto-form-container .gform_wrapper .validation_message {
    font-size: 12px !important;
    color: var(--error) !important;
    margin-top: 4px !important;
  }

  .contacto-form-container .gform_wrapper .gform_validation_errors {
    margin: 0 0 16px !important;
    padding: 12px 20px !important;
    border-radius: var(--radius-md) !important;
    font-size: 14px !important;
    border: 1px solid var(--error) !important;
    background: #FEF2F2 !important;
    color: var(--error) !important;
  }

  .contacto-form-container .gform_wrapper .gfield_error input,
  .contacto-form-container .gform_wrapper .gfield_error textarea,
  .contacto-form-container .gform_wrapper .gfield_error select {
    border-color: var(--error) !important;
  }

  .contacto-form-container .gform_wrapper > style {
    display: none;
  }

  /* --------------------------------------------------------------------------
     17. PÁGINA AFILIACIÓN
     -------------------------------------------------------------------------- */
   .afiliacion-page {
     padding: 48px 0;
     max-width: 100%;
     margin: 0 auto;
     background-color: var(--background);
   }
   
   .afiliacion-form {
     border-radius: var(--radius-xl);
     border: 1px solid var(--border);
     padding: 40px;
     background: var(--gray-50);
     box-shadow: var(--shadow-sm);
   }
   
   .afiliacion-form-section {
     background: transparent;
     border-radius: var(--radius-lg);
     padding: 32px;
     margin-bottom: 24px;
   }
   
   .afiliacion-form-section:last-child {
     margin-bottom: 0;
     padding: 24px 0 0 0;
   }
   
   .afiliacion-section-title {
     font-size: 20px;
     font-weight: 700;
     color: var(--primary);
     margin: 0 0 24px 0;
     padding-bottom: 16px;
     border-bottom: 2px solid var(--secondary);
   }
   
   .afiliacion-form-row {
     display: grid;
     gap: 16px;
     margin-bottom: 24px;
   }
   
   .afiliacion-form-row--2 { grid-template-columns: repeat(2, 1fr); }
   .afiliacion-form-row--3 { grid-template-columns: repeat(3, 1fr); }
   
   .afiliacion-label {
     display: block;
     font-size: 14px;
     font-weight: 600;
     margin-bottom: 8px;
     color: var(--foreground);
   }
   
   .afiliacion-required {
     display: inline-block;
     font-size: 10px;
     font-weight: 600;
     color: #B91C1C;
     background: #FEE2E2;
     padding: 2px 8px;
     border-radius: 10px;
     margin-left: 6px;
     vertical-align: middle;
     text-transform: uppercase;
     letter-spacing: 0.5px;
   }
   
   .afiliacion-input {
     height: 44px;
     width: 100%;
     border-radius: var(--radius-md);
     border: 1px solid var(--border);
     padding: 12px 16px;
     font-size: 14px;
     font-family: inherit;
     box-sizing: border-box;
     background: white;
     transition: border-color 0.2s, box-shadow 0.2s;
   }
   
   .afiliacion-input:focus {
     outline: none;
     border-color: var(--primary);
     box-shadow: 0 0 0 3px rgba(36, 60, 116, 0.1);
   }
   
   .afiliacion-input::placeholder {
     color: var(--foreground-light);
   }
   
   .afiliacion-helper {
     font-size: 12px;
     color: var(--foreground-muted);
     margin-top: 6px;
     display: block;
   }
   
   /* Radio personalizado */
   .afiliacion-radio-group { display: flex; flex-direction: column; gap: 4px; }
   
   .afiliacion-radio-title {
     font-size: 14px;
     font-weight: 600;
     margin: 0 0 8px 0;
     color: var(--foreground);
   }
   
   .afiliacion-radio-label {
     display: flex;
     align-items: center;
     gap: 10px;
     font-size: 14px;
     cursor: pointer;
     padding: 8px 12px;
     border-radius: var(--radius-md);
     transition: background-color 0.15s;
   }
   
   .afiliacion-radio-label:hover {
     background: rgba(36, 60, 116, 0.04);
   }
   
   .afiliacion-radio-label input[type="radio"] {
     -webkit-appearance: none;
     appearance: none;
     width: 20px;
     height: 20px;
     min-width: 20px;
     border: 2px solid var(--border-strong);
     border-radius: 50%;
     cursor: pointer;
     transition: border-color 0.2s;
     position: relative;
     margin: 0;
   }
   
   .afiliacion-radio-label input[type="radio"]:checked {
     border-color: var(--primary);
   }
   
   .afiliacion-radio-label input[type="radio"]:checked::after {
     content: '';
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     width: 10px;
     height: 10px;
     background: var(--primary);
     border-radius: 50%;
   }
   
   /* Checkbox consentimiento */
   .afiliacion-consent {
     display: flex;
     align-items: flex-start;
     gap: 12px;
     padding: 16px 20px;
     background: var(--gray-50);
     border-radius: var(--radius-md);
     margin-bottom: 24px;
   }
   
   .afiliacion-consent input[type="checkbox"] {
     -webkit-appearance: none;
     appearance: none;
     width: 22px;
     height: 22px;
     min-width: 22px;
     border: 2px solid var(--border-strong);
     border-radius: var(--radius-sm);
     cursor: pointer;
     transition: background-color 0.2s, border-color 0.2s;
     margin: 0;
     position: relative;
   }
   
   .afiliacion-consent input[type="checkbox"]:checked {
     background: var(--primary);
     border-color: var(--primary);
   }
   
   .afiliacion-consent input[type="checkbox"]:checked::after {
     content: '\2713';
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     color: white;
     font-size: 14px;
     font-weight: 700;
   }
   
   .afiliacion-consent label {
     font-size: 14px;
     color: var(--foreground);
     line-height: 1.5;
   }
   
   .afiliacion-consent a {
     color: var(--primary);
     font-weight: 600;
   }
   
   .afiliacion-consent a:hover {
     text-decoration: underline;
   }
   
   /* Botón de envío */
   .afiliacion-submit {
     min-width: 200px;
     padding: 14px 40px;
     font-size: 16px;
     font-weight: 600;
     border-radius: var(--radius-md);
     background: var(--primary);
     color: white;
     border: none;
     cursor: pointer;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 8px;
     transition: background-color 0.2s, box-shadow 0.2s, transform 0.1s;
   }
   
   .afiliacion-submit:hover {
     background: var(--primary-dark);
     box-shadow: var(--shadow-md);
   }
   
   .afiliacion-submit:active {
     transform: translateY(1px);
   }
   
   /* Select wrapper */
   .afiliacion-select-wrap { position: relative; }
   
   .afiliacion-select-wrap .afiliacion-input {
     appearance: none;
     -webkit-appearance: none;
     padding-right: 40px;
     cursor: pointer;
   }
   
   .afiliacion-select-wrap img {
     position: absolute;
     right: 16px;
     top: 50%;
     transform: translateY(-50%);
     pointer-events: none;
     opacity: 0.5;
   }
   
   /* Hero Afíliate */
   .hero-asociate {
     background: var(--primary);
     position: relative;
     overflow: hidden;
   }
   
   .hero-asociate::before {
     content: '';
     position: absolute;
     width: 280px;
     height: 280px;
     background: rgba(255,255,255,0.024);
     border-radius: 50%;
     left: -70px;
     top: -70px;
     z-index: 1;
     pointer-events: none;
     box-shadow:
       1070px 100px 0 -40px rgba(255,255,255,0.031),
       820px 35px 0 -85px rgba(91,192,222,0.08),
       570px 245px 0 -112.5px rgba(255,255,255,0.063),
       420px 140px 0 -134px rgba(255,255,255,0.125),
       1170px 220px 0 -136px rgba(91,192,222,0.25);
   }
   
   .hero-asociate .content-container {
     position: relative;
     z-index: 2;
     display: flex;
     flex-direction: column;
     justify-content: center;
     gap: 12px;
     flex: 1;
     padding-top: 15px;
     padding-bottom: 40px;
   }
   
   .hero-asociate .hero-title-row p {
     margin: 0;
     line-height: 1.1;
   }
   
   /* CF7 form compatibility within afiliacion-form */
   .afiliacion-form .wpcf7-form-control-wrap {
     display: block;
   }
   
   .afiliacion-form .wpcf7-radio,
   .afiliacion-form .wpcf7-radio .wpcf7-list-item {
     margin: 0;
   }
   
   .afiliacion-form .wpcf7-radio {
     display: flex;
     flex-direction: column;
     gap: 4px;
   }
   
   .afiliacion-form .wpcf7-radio label {
     display: flex;
     align-items: center;
     gap: 10px;
     font-size: 14px;
     cursor: pointer;
     padding: 8px 12px;
     border-radius: var(--radius-md);
     transition: background-color 0.15s;
   }
   
   .afiliacion-form .wpcf7-radio label:hover {
     background: rgba(36, 60, 116, 0.04);
   }
   
   .afiliacion-form .wpcf7-radio input[type="radio"] {
     -webkit-appearance: none;
     appearance: none;
     width: 20px;
     height: 20px;
     min-width: 20px;
     border: 2px solid var(--border-strong);
     border-radius: 50%;
     cursor: pointer;
     transition: border-color 0.2s;
     position: relative;
     margin: 0;
   }
   
   .afiliacion-form .wpcf7-radio input[type="radio"]:checked {
     border-color: var(--primary);
   }
   
   .afiliacion-form .wpcf7-radio input[type="radio"]:checked::after {
     content: '';
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     width: 10px;
     height: 10px;
     background: var(--primary);
     border-radius: 50%;
   }
   
   .afiliacion-form .afiliacion-consent .wpcf7-form-control-wrap {
     display: contents;
   }
   
   .afiliacion-form .afiliacion-consent .wpcf7-acceptance,
   .afiliacion-form .afiliacion-consent .wpcf7-list-item {
     margin: 0;
   }
   
   .afiliacion-form .afiliacion-consent .wpcf7-acceptance label {
     display: flex;
     align-items: flex-start;
     gap: 12px;
     font-size: 14px;
     color: var(--foreground);
     line-height: 1.5;
   }
   
   .afiliacion-form .afiliacion-consent .wpcf7-acceptance input[type="checkbox"] {
     -webkit-appearance: none;
     appearance: none;
     width: 22px;
     height: 22px;
     min-width: 22px;
     border: 2px solid var(--border-strong);
     border-radius: var(--radius-sm);
     cursor: pointer;
     transition: background-color 0.2s, border-color 0.2s;
     margin: 0;
     position: relative;
   }
   
   .afiliacion-form .afiliacion-consent .wpcf7-acceptance input[type="checkbox"]:checked {
     background: var(--primary);
     border-color: var(--primary);
   }
   
   .afiliacion-form .afiliacion-consent .wpcf7-acceptance input[type="checkbox"]:checked::after {
     content: '\2713';
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     color: white;
     font-size: 14px;
     font-weight: 700;
   }
   
   .afiliacion-form .afiliacion-consent .wpcf7-acceptance a {
     color: var(--primary);
     font-weight: 600;
     text-decoration: none;
   }
   
   .afiliacion-form .afiliacion-consent .wpcf7-acceptance a:hover {
     text-decoration: underline;
   }
   
   .afiliacion-form .wpcf7 .wpcf7-submit {
     min-width: 200px;
     padding: 14px 40px;
     font-size: 16px;
     font-weight: 600;
     border-radius: var(--radius-md);
     background: var(--primary);
     color: white;
     border: none;
     cursor: pointer;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 8px;
     transition: background-color 0.2s, box-shadow 0.2s, transform 0.1s;
     font-family: inherit;
   }
   
   .afiliacion-form .wpcf7 .wpcf7-submit:hover {
     background: var(--primary-dark);
     box-shadow: var(--shadow-md);
   }
   
   .afiliacion-form .wpcf7 .wpcf7-submit:active {
     transform: translateY(1px);
   }
   
   .afiliacion-form .wpcf7-not-valid-tip {
     font-size: 12px;
     color: var(--error);
     margin-top: 4px;
   }
   
   .afiliacion-form .wpcf7-response-output {
     margin: 24px 0 0;
     padding: 12px 20px;
     border-radius: var(--radius-md);
     font-size: 14px;
   }
   
   .afiliacion-form .afiliacion-select-wrap {
     position: relative;
   }
   
   .afiliacion-form .afiliacion-select-wrap::after {
     content: '';
     position: absolute;
     right: 16px;
     top: 50%;
     width: 16px;
     height: 16px;
     background: url('/wp-content/themes/ihe-theme/assets/images/chevron-down.svg') no-repeat center;
     background-size: contain;
     transform: translateY(-50%);
     pointer-events: none;
     opacity: 0.5;
   }
   
  /* --------------------------------------------------------------------------
     Gravity Forms compatibility within afiliacion-form
     Overrides GF orbital/foundation theme to match CF7 afiliacion styles.
     Uses !important where needed to beat GF's high-specificity selectors.
     -------------------------------------------------------------------------- */

  .afiliacion-form .gform_wrapper.gform-theme {
    --gf-form-field-page-gutter: 0;
    --gf-form-field-row-gutter: 24px;
    --gf-form-field-column-gutter: 16px;
    border: none !important;
    padding: 32px 32px 0 32px !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .afiliacion-form .gform_wrapper .gform_body {
    padding: 0;
  }

  .afiliacion-form .gform_wrapper .gform_fields {
    gap: 24px 16px !important;
    padding: 0 !important;
  }

  .afiliacion-form .gform_wrapper .gfield {
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Sections */
  .afiliacion-form .gform_wrapper .gsection {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .afiliacion-form .gform_wrapper .gsection:not(:first-child) {
    margin-top: 16px !important;
    padding-top: 8px !important;
  }

  .afiliacion-form .gform_wrapper .gsection_title {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: var(--primary) !important;
    margin: 0 0 8px 0 !important;
    padding: 0 0 16px 0 !important;
    border-bottom: 2px solid var(--secondary) !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
  }

  /* Labels */
  .afiliacion-form .gform_wrapper .gfield_label,
  .afiliacion-form .gform_wrapper legend.gfield_label,
  .afiliacion-form .gform_wrapper .gform-field-label.gfield_label_before_complex {
    display: block !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    color: var(--foreground) !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    line-height: 1.5 !important;
  }

  /* Required badge */
  .afiliacion-form .gform_wrapper .gfield_required {
    font-weight: 400;
  }

  .afiliacion-form .gform_wrapper .gfield_required_text {
    display: inline-block !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    color: #B91C1C !important;
    background: #FEE2E2 !important;
    padding: 2px 8px !important;
    border-radius: 10px !important;
    margin-left: 6px !important;
    vertical-align: middle !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
  }

  /* Inputs */
  .afiliacion-form .gform_wrapper input[type="text"],
  .afiliacion-form .gform_wrapper input[type="email"],
  .afiliacion-form .gform_wrapper input[type="tel"],
  .afiliacion-form .gform_wrapper input[type="date"],
  .afiliacion-form .gform_wrapper input[type="number"],
  .afiliacion-form .gform_wrapper select.gfield_select,
  .afiliacion-form .gform_wrapper select.large {
    height: 44px !important;
    width: 100% !important;
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--border) !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    font-family: inherit !important;
    box-sizing: border-box !important;
    background-color: white !important;
    background-image: none !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    color: var(--foreground) !important;
    outline: none !important;
    box-shadow: none !important;
  }

  .afiliacion-form .gform_wrapper input[type="text"]:focus,
  .afiliacion-form .gform_wrapper input[type="email"]:focus,
  .afiliacion-form .gform_wrapper input[type="tel"]:focus,
  .afiliacion-form .gform_wrapper input[type="date"]:focus,
  .afiliacion-form .gform_wrapper input[type="number"]:focus,
  .afiliacion-form .gform_wrapper select.gfield_select:focus,
  .afiliacion-form .gform_wrapper select.large:focus {
    outline: none !important;
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(36, 60, 116, 0.1) !important;
  }

  .afiliacion-form .gform_wrapper input::placeholder {
    color: var(--foreground-light) !important;
  }

  /* Sub-labels (helper text) */
  .afiliacion-form .gform_wrapper .gform-field-label--type-sub {
    font-size: 12px !important;
    color: var(--foreground-muted) !important;
    margin-top: 6px !important;
    display: block !important;
    font-weight: 400 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    padding: 0 !important;
  }

  /* Name field: 3 columns */
  .afiliacion-form .gform_wrapper .ginput_container--name.gform-grid-row,
  .afiliacion-form .gform_wrapper .ginput_container_name.gform-grid-row {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 16px !important;
  }

  .afiliacion-form .gform_wrapper .ginput_container--name .gform-grid-col,
  .afiliacion-form .gform_wrapper .ginput_container_name .gform-grid-col {
    width: 100% !important;
    flex: none !important;
    max-width: none !important;
    padding: 0 !important;
  }

  /* Address field */
  .afiliacion-form .gform_wrapper .ginput_container_address.gform-grid-row {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 16px !important;
  }

  .afiliacion-form .gform_wrapper .ginput_container_address .ginput_full {
    grid-column: 1 / -1 !important;
  }

  .afiliacion-form .gform_wrapper .ginput_container_address .gform-grid-col {
    width: 100% !important;
    flex: none !important;
    max-width: none !important;
    padding: 0 !important;
    float: none !important;
  }

  .afiliacion-form .gform_wrapper .ginput_container_address .ginput_left,
  .afiliacion-form .gform_wrapper .ginput_container_address .ginput_right {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
  }

  .afiliacion-form .gform_wrapper .ginput_container_address .gf_clear,
  .afiliacion-form .gform_wrapper .ginput_container_address .gf_clear_complex {
    display: none !important;
  }

  /* Radio buttons */
  .afiliacion-form .gform_wrapper .gfield_radio {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
  }

  .afiliacion-form .gform_wrapper .gfield_radio .gchoice {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 14px !important;
    cursor: pointer !important;
    padding: 8px 12px !important;
    border-radius: var(--radius-md) !important;
    transition: background-color 0.15s !important;
    flex-wrap: wrap !important;
    margin: 0 !important;
  }

  .afiliacion-form .gform_wrapper .gfield_radio .gchoice:hover {
    background: rgba(36, 60, 116, 0.04) !important;
  }

  .afiliacion-form .gform_wrapper .gfield_radio input[type="radio"],
  .afiliacion-form .gform_wrapper .gfield_radio input[type="radio"].gfield-choice-input {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    border: 2px solid var(--border-strong) !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    transition: border-color 0.2s !important;
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
    background: white !important;
    box-shadow: none !important;
    outline: none !important;
  }

  .afiliacion-form .gform_wrapper .gfield_radio input[type="radio"]:checked {
    border-color: var(--primary) !important;
    background: white !important;
  }

  .afiliacion-form .gform_wrapper .gfield_radio input[type="radio"]:checked::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 10px !important;
    height: 10px !important;
    background: var(--primary) !important;
    border-radius: 50% !important;
    display: block !important;
  }

  .afiliacion-form .gform_wrapper .gfield_radio input[type="radio"]::before {
    display: none !important;
  }

  .afiliacion-form .gform_wrapper .gform-field-label--type-inline {
    font-size: 14px !important;
    cursor: pointer !important;
    font-weight: 400 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .afiliacion-form .gform_wrapper .gfield--type-radio .gfield_label,
  .afiliacion-form .gform_wrapper .gfield--type-radio legend.gfield_label {
    font-size: 14px !important;
    font-weight: 600 !important;
    margin: 0 0 8px 0 !important;
    color: var(--foreground) !important;
  }

  /* "Otro" text input in radio groups */
  .afiliacion-form .gform_wrapper .gchoice_other_control {
    height: 44px !important;
    width: 100% !important;
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--border) !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    font-family: inherit !important;
    background: white !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    margin-top: 8px !important;
    flex-basis: 100% !important;
    box-shadow: none !important;
  }

  .afiliacion-form .gform_wrapper .gchoice_other_control:focus {
    outline: none !important;
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(36, 60, 116, 0.1) !important;
  }

  .afiliacion-form .gform_wrapper .gfield_radio .gchoice br {
    display: none !important;
  }

  /* Select dropdown */
  .afiliacion-form .gform_wrapper .ginput_container_select {
    position: relative !important;
  }

  .afiliacion-form .gform_wrapper .ginput_container_select::after {
    content: '' !important;
    position: absolute !important;
    right: 16px !important;
    top: 50% !important;
    width: 16px !important;
    height: 16px !important;
    background: url('/wp-content/themes/ihe-theme/assets/images/chevron-down.svg') no-repeat center !important;
    background-size: contain !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
    opacity: 0.5 !important;
  }

  .afiliacion-form .gform_wrapper select.gfield_select,
  .afiliacion-form .gform_wrapper select.large {
    -webkit-appearance: none !important;
    appearance: none !important;
    padding: 0 40px 0 16px !important;
    cursor: pointer !important;
    line-height: 44px !important;
  }

  /* Consent checkbox */
  .afiliacion-form .gform_wrapper .gfield--type-consent {
    border: none !important;
    padding: 0 !important;
  }

  .afiliacion-form .gform_wrapper .gfield--type-consent > .gfield_label,
  .afiliacion-form .gform_wrapper .gfield--type-consent > legend.gfield_label {
    display: none !important;
  }

  .afiliacion-form .gform_wrapper .ginput_container_consent {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 16px 0 !important;
    background: var(--gray-50) !important;
    border-radius: var(--radius-md) !important;
  }

  .afiliacion-form .gform_wrapper .ginput_container_consent input[type="checkbox"] {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    border: 2px solid var(--border-strong) !important;
    border-radius: var(--radius-sm) !important;
    cursor: pointer !important;
    transition: background-color 0.2s, border-color 0.2s !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    background: white !important;
    flex-shrink: 0 !important;
    box-shadow: none !important;
    outline: none !important;
  }

  .afiliacion-form .gform_wrapper .ginput_container_consent input[type="checkbox"]::before {
    display: none !important;
  }

  .afiliacion-form .gform_wrapper .ginput_container_consent input[type="checkbox"]:checked {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
  }

  .afiliacion-form .gform_wrapper .ginput_container_consent input[type="checkbox"]:checked::after {
    content: '\2713' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    color: white !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    display: block !important;
  }

  .afiliacion-form .gform_wrapper .gfield_consent_label {
    font-size: 14px !important;
    color: var(--foreground) !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;
  }

  .afiliacion-form .gform_wrapper .gfield_consent_label a {
    color: var(--primary) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
  }

  .afiliacion-form .gform_wrapper .gfield_consent_label a:hover {
    text-decoration: underline !important;
  }

  /* Footer & submit button */
  .afiliacion-form .gform_wrapper .gform_footer,
  .afiliacion-form .gform_wrapper .gform-footer,
  .afiliacion-form .gform_wrapper .gform_footer.top_label {
    margin-top: 24px !important;
    padding: 24px 0 0 0 !important;
    border: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
  }

  .afiliacion-form .gform_wrapper .gform_button,
  .afiliacion-form .gform_wrapper input[type="submit"].gform_button,
  .afiliacion-form .gform_wrapper .gform_footer input[type="submit"],
  .afiliacion-form .gform-theme .gform_footer .gform_button {
    min-width: 200px !important;
    padding: 14px 40px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    border-radius: var(--radius-md) !important;
    background-color: var(--primary) !important;
    background-image: none !important;
    color: white !important;
    border: none !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    transition: background-color 0.2s, box-shadow 0.2s, transform 0.1s !important;
    font-family: inherit !important;
    box-shadow: none !important;
    line-height: 1.5 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    height: auto !important;
    width: auto !important;
  }

  .afiliacion-form .gform_wrapper .gform_button:hover,
  .afiliacion-form .gform_wrapper input[type="submit"].gform_button:hover,
  .afiliacion-form .gform_wrapper .gform_footer input[type="submit"]:hover,
  .afiliacion-form .gform-theme .gform_footer .gform_button:hover {
    background-color: var(--primary-dark) !important;
    box-shadow: var(--shadow-md) !important;
  }

  .afiliacion-form .gform_wrapper .gform_button:active,
  .afiliacion-form .gform_wrapper input[type="submit"].gform_button:active {
    transform: translateY(1px) !important;
  }

  /* Validation */
  .afiliacion-form .gform_wrapper .gfield_validation_message,
  .afiliacion-form .gform_wrapper .validation_message {
    font-size: 12px !important;
    color: var(--error) !important;
    margin-top: 4px !important;
  }

  .afiliacion-form .gform_wrapper .gform_validation_errors {
    margin: 0 0 24px !important;
    padding: 12px 20px !important;
    border-radius: var(--radius-md) !important;
    font-size: 14px !important;
    border: 1px solid var(--error) !important;
    background: #FEF2F2 !important;
    color: var(--error) !important;
  }

  .afiliacion-form .gform_wrapper .gfield_error input,
  .afiliacion-form .gform_wrapper .gfield_error select {
    border-color: var(--error) !important;
  }

  .afiliacion-form .gform_wrapper .gf-turnstile-container {
    width: 100%;
  }

  /* Hide GF inline <style> visual artifacts */
  .afiliacion-form .gform_wrapper > style {
    display: none;
  }

  /* --------------------------------------------------------------------------
     18. BADGES
     -------------------------------------------------------------------------- */
   .badge {
     display: inline-flex;
     align-items: center;
     padding: 4px 10px;
     border-radius: var(--radius-sm);
     font-size: 11px;
     font-weight: 600;
     letter-spacing: 1px;
     text-transform: uppercase;
   }
   
   .badge--md { padding: 6px 14px; font-size: 12px; border-radius: 20px; }
   .badge--lg { padding: 8px 16px; font-size: 13px; border-radius: 20px; }
   
   .badge--purple          { background: #EDE9FE; color: #8B5CF6; }
   .badge--blue            { background: #DBEAFE; color: #3B82F6; }
   .badge--green           { background: #D1FAE5; color: #10B981; }
   .badge--yellow          { background: #FEF3C7; color: #F59E0B; }
   .badge--secondary-light { background: #8fd4e9; color: var(--primary-dark); }
   
   /* --------------------------------------------------------------------------
      19. BOTONES
      -------------------------------------------------------------------------- */
   .btn {
     border-radius: var(--radius-md);
   }
   .btn-img a {
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 8px;
     transition: all 0.2s ease;
     border-radius: var(--radius-md);
   }
   
   .btn-img a img {
     width: 16px;
     height: 16px;
   }
   .btn-img.img-18 a img {
     width: 18px;
     height: 18px;
   }

   .btn-w a {
    color: #243c74;
    background-color: #fff;
   }

   .btn-w a:hover {
    background-color: #F0F5FF;
   }

   .btn-b a {
    color: #fff;
    background-color: #5bc0de;
   }

   .btn-b a:hover {
    background-color: #4A9BB1;
   }

   .btn--primary .wp-block-button__link { background: var(--primary); color: white; }
   .btn--primary:hover a { background: var(--primary-dark); color: white; }
   
   .btn--secondary { background: var(--secondary); color: white; }
   .btn--secondary:hover { background: var(--secondary-dark); color: white; }
   
   .btn--outline {
     background: transparent;
     border: 2px solid var(--primary);
     color: var(--primary);
   }
   .btn--outline:hover {
     background: var(--primary);
     color: white;
   }
   
   .btn--white { background: white; color: var(--primary); }
   .btn--white:hover { background: var(--gray-50); color: var(--primary); }
   
   .btn--lg { padding: 16px 32px; }

   .is-style-outline.is-style-outline--3 a {
    color: #243c74;
    transition: 0.2s;
   }

   .is-style-outline.is-style-outline--3 a:hover {
    background-color: #243c74;
    color: #fff;
   }
   
   /* --------------------------------------------------------------------------
      20. UTILIDADES
      -------------------------------------------------------------------------- */
   
   /* Iconos */
   .icon-sm  { width: 14px; height: 14px; }
   .icon-md  { width: 16px; height: 16px; }
   .icon-lg  { width: 18px; height: 18px; }
   .icon-xl  { width: 20px; height: 20px; }
   .icon-xxl { width: 24px; height: 24px; }
   .icon-xxxl{ width: 28px; height: 28px; }
   
   /* Filtros de color para SVGs */
   .icon-white          { filter: brightness(0) invert(1); }
   .icon-color-primary  { filter: invert(18%) sepia(67%) saturate(1375%) hue-rotate(199deg) brightness(88%) contrast(91%); }
   .icon-color-muted    { filter: invert(46%) sepia(8%) saturate(1082%) hue-rotate(182deg) brightness(94%) contrast(90%); }
   .icon-color-congress { filter: invert(37%) sepia(71%) saturate(4927%) hue-rotate(243deg) brightness(101%) contrast(93%); }
   .icon-color-tribuna  { filter: invert(57%) sepia(99%) saturate(710%) hue-rotate(11deg) brightness(103%) contrast(96%); }
   .icon-color-prensa   { filter: invert(43%) sepia(98%) saturate(2074%) hue-rotate(212deg) brightness(99%) contrast(96%); }
   .icon-color-nota     { filter: invert(57%) sepia(39%) saturate(1067%) hue-rotate(114deg) brightness(96%) contrast(92%); }
   
   /* Flex */
   .flex        { display: flex; }
   .flex-center { display: flex; align-items: center; justify-content: center; }
   .gap-8  { gap: 8px; }
   .gap-16 { gap: 16px; }
   .gap-24 { gap: 24px; }
   .gap-32 { gap: 32px; }
   
   /* Texto */
   .text-center   { text-align: center; }
   .text-muted    { color: var(--foreground-muted); }
   .text-primary  { color: var(--primary); }
   
   /* Espaciado */
   .mt-16 { margin-top: 16px; }
   .mt-24 { margin-top: 24px; }
   .mt-32 { margin-top: 32px; }
   .mb-16 { margin-bottom: 16px; }
   .mb-24 { margin-bottom: 24px; }
   .mb-32 { margin-bottom: 32px; }
   
   /* Accesibilidad */
   .screen-reader-text {
     border: 0;
     clip: rect(1px, 1px, 1px, 1px);
     clip-path: inset(50%);
     height: 1px;
     margin: -1px;
     overflow: hidden;
     padding: 0;
     position: absolute;
     width: 1px;
     word-wrap: normal !important;
   }
   
   /* --------------------------------------------------------------------------
      21. ANIMACIONES HERO
      -------------------------------------------------------------------------- */
   @keyframes floatCircle {
     0%   { transform: translateY(0) translateX(0) rotate(0deg); }
     25%  { transform: translateY(-24px) translateX(12px) rotate(4deg); }
     50%  { transform: translateY(-12px) translateX(-14px) rotate(-4deg); }
     75%  { transform: translateY(20px) translateX(10px) rotate(3deg); }
     100% { transform: translateY(0) translateX(0) rotate(0deg); }
   }
   
   @keyframes dotPulse {
     0%, 100% { opacity: 0.25; transform: scale(1); }
     50%       { opacity: 0.8;  transform: scale(1.18); }
   }
   
   .float-circle       { animation: floatCircle 13s ease-in-out infinite; }
   .float-circle--slow { animation: floatCircle 15s ease-in-out infinite; }
   .float-circle--d1 { animation-delay: 0s; }
   .float-circle--d2 { animation-delay: -2.2s; }
   .float-circle--d3 { animation-delay: -4.5s; }
   .float-circle--d4 { animation-delay: -6.8s; }
   .float-circle--d5 { animation-delay: -1.8s; }
   .float-circle--d6 { animation-delay: -3.5s; }
   .float-circle--d7 { animation-delay: -5.3s; }
   
   .dot-pulse     { animation: dotPulse 3.5s ease-in-out infinite; }
   .dot-pulse--d1 { animation-delay: 0s; }
   .dot-pulse--d2 { animation-delay: -1.2s; }
   .dot-pulse--d3 { animation-delay: -2s; }
   .dot-pulse--d4 { animation-delay: -3s; }
   
   @media (prefers-reduced-motion: reduce) {
     .float-circle,
     .float-circle--slow,
     .dot-pulse {
       animation: none !important;
       transform: none !important;
     }
   }
   
   /* --------------------------------------------------------------------------
      22. ADAPTACIONES PARA WORDPRESS
      WordPress genera <ul><li><a> en wp_nav_menu. Estos estilos hacen que
      el resultado coincida visualmente con el diseño que usa <a> directos.
      -------------------------------------------------------------------------- */
   
   /* Lista del menú principal — comportamiento horizontal */
   .header-nav .header-nav-list {
     list-style: none;
     margin: 0;
     padding: 0;
     display: flex;
     align-items: center;
     gap: 32px;
   }
   
   .header-nav .header-nav-list li {
     position: relative;
     margin: 0;
     padding: 0;
   }
   
   /* Enlace de primer nivel */
   .header-nav .header-nav-list li > a {
     font-size: 15px;
     font-weight: 500;
     color: var(--foreground);
     text-decoration: none;
     transition: color 0.2s ease;
     display: inline-flex;
     align-items: center;
     gap: 4px;
   }
   
   .header-nav .header-nav-list li > a:hover,
   .header-nav .header-nav-list li.current-menu-item > a,
   .header-nav .header-nav-list li.active > a {
     color: var(--primary);
   }
   
   /* Submenú (Blog hijo de Actualidad) */
   .header-nav .header-nav-list .sub-menu {
     display: none;
     position: absolute;
     top: calc(100% + 8px);
     left: 0;
     background: white;
     border: 1px solid var(--border);
     border-radius: var(--radius-md);
     box-shadow: var(--shadow-lg);
     min-width: 180px;
     list-style: none;
     margin: 0;
     padding: 8px 0;
     z-index: 200;
   }
   
   .header-nav .header-nav-list li:hover > .sub-menu {
     display: block;
   }
   
   .header-nav .header-nav-list .sub-menu li a {
     display: block;
     padding: 8px 16px;
     font-size: 14px;
     font-weight: 500;
     color: var(--foreground);
     text-decoration: none;
     white-space: nowrap;
     transition: background 0.15s;
   }
   
   .header-nav .header-nav-list .sub-menu li a:hover {
     background: var(--gray-50);
     color: var(--primary);
   }
   
   .menu-blog>a {
     display: inline-flex;
     align-items: center;
     gap: 6px;
   }
   header .menu-blog>a:after {
     content: url('/wp-content/uploads/2026/03/external-link-g.svg');
     width: 14px;
     height: 14px;
     margin-bottom: 4px;
     margin-left: 2px;
   }
   /* --------------------------------------------------------------------------
      23. BRIDGE FSE — NAVEGACIÓN DE BLOQUES
      WordPress block navigation genera .wp-block-navigation__container en lugar
      de .header-nav-list. Estas reglas replican el comportamiento esperado.
      -------------------------------------------------------------------------- */
   
   /* Lista horizontal del menú de cabecera (block nav) */
   .header-nav .wp-block-navigation__container {
     list-style: none;
     margin: 0;
     padding: 0;
     display: flex;
     align-items: center;
     gap: 32px;
   }
   
   .header-nav .wp-block-navigation__container > .wp-block-navigation-item {
     position: relative;
     margin: 0;
     padding: 0;
     width: 100%;
   }
   
   .header-nav .wp-block-navigation__container > .wp-block-navigation-item > a,
   .header-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
     font-size: 15px;
     font-weight: 500;
     color: var(--foreground);
     text-decoration: none;
     transition: color 0.2s ease;
     display: inline-flex;
     align-items: center;
     gap: 4px;
   }
   
   .header-nav .wp-block-navigation__container > .wp-block-navigation-item:hover > a,
   .header-nav .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
   .header-nav .wp-block-navigation__container > .wp-block-navigation-item.current-menu-item > a,
   .header-nav .wp-block-navigation__container > .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
   .post-type-archive-documentos .header-nav .wp-block-navigation__container > .wp-block-navigation-item.nav-doc > a
   {
     color: var(--primary);
   }
   
   header .wp-block-navigation__responsive-container-close
    {
       right: 17px;
       top: -45px;
       z-index: 2;
       background-color: #ffffff;
   }
   
   /* Submenú (block nav) */
   .header-nav .wp-block-navigation__container .wp-block-navigation__submenu-container {
     position: absolute;
     top: calc(100% + 8px);
     left: 0;
     background: white;
     border: 1px solid var(--border);
     border-radius: var(--radius-md);
     box-shadow: var(--shadow-lg);
     min-width: 180px;
     list-style: none;
     margin: 0;
     padding: 8px 0;
     z-index: 200;
   }
   
   .header-nav .wp-block-navigation__container .wp-block-navigation__submenu-container .wp-block-navigation-item a,
   .header-nav .wp-block-navigation__container .wp-block-navigation__submenu-container .wp-block-navigation-item .wp-block-navigation-item__content {
     display: block;
     padding: 8px 16px;
     font-size: 14px;
     font-weight: 500;
     color: var(--foreground);
     text-decoration: none;
     white-space: nowrap;
     transition: background 0.15s;
   }
   
   .header-nav .wp-block-navigation__container .wp-block-navigation__submenu-container .wp-block-navigation-item a:hover,
   .header-nav .wp-block-navigation__container .wp-block-navigation__submenu-container .wp-block-navigation-item .wp-block-navigation-item__content:hover {
     background: var(--gray-50);
     color: var(--primary);
   }
   
   /* Eliminar estilos propios del bloque que interfieren con el diseño */
   .header-nav.wp-block-navigation {
     color: var(--foreground);
   }
   
   /* Override WP core navigation breakpoint: 600px → 768px
      WP core shows the full nav at min-width:600px and hides the hamburger.
      We re-hide the nav and re-show the hamburger in the 600-767px range. */
   @media (min-width: 600px) and (max-width: 1100px) {
     .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
       display: none !important;
     }
     .wp-block-navigation__responsive-container-open:not(.always-shown) {
       display: flex !important;
     }
   }
   
   /* Botón Afíliate en header-cta usando .wp-block-button__link */
   .header-cta .wp-block-button__link {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-size: 15px;
     font-weight: 600;
     font-family: inherit;
     text-decoration: none;
     transition: background 0.2s ease;
   }
   
   .header-cta .wp-block-button__link:hover {
     background: var(--primary-dark) !important;
     color: white !important;
   }
   
   /* Footer — enlaces dentro de .footer-links-column (block nav vertical) */
   .footer-links-column .wp-block-navigation__container {
     list-style: none;
     margin: 0;
     padding: 0;
     display: flex;
     flex-direction: column;
   }
   
   .footer-links-column .wp-block-navigation__container .wp-block-navigation-item a,
   .footer-links-column .wp-block-navigation__container .wp-block-navigation-item .wp-block-navigation-item__content {
     color: rgba(255, 255, 255, 0.8);
     font-size: 14px;
     text-decoration: none;
     transition: color 0.2s ease;
   }
   
   .footer-links-column .wp-block-navigation__container .wp-block-navigation-item a:hover,
   .footer-links-column .wp-block-navigation__container .wp-block-navigation-item .wp-block-navigation-item__content:hover {
     color: white;
   }
   
   /* --------------------------------------------------------------------------
      24. BRIDGE FSE — QUERY BLOCKS (grids dinámicos)
      wp:query envuelve las tarjetas en <ul> + <li>. Estos estilos aplican
      los mismos grids de main.css a la estructura generada por el bloque.
      -------------------------------------------------------------------------- */
   
   /* Noticias — 4 columnas */
   .wp-block-post-template.news-grid {
     display: grid;
     grid-template-columns: repeat(4, minmax(0, 1fr));
     gap: 24px;
     list-style: none;
     padding: 0;
     margin: 0;
   }
   
   .wp-block-post-template.news-grid > .wp-block-post {
     list-style: none;
     display: flex;
     flex-direction: column;
     min-width: 0;
   }
   
   .wp-block-post-template.news-grid > .wp-block-post > .news-card {
     flex: 1;
     height: 100%;
     overflow: hidden;
   }
   
   /* Documentos portada — 3 columnas */
   .wp-block-post-template.document-grid {
     display: grid;
     grid-template-columns: repeat(3, minmax(0, 1fr));
     gap: 24px;
     list-style: none;
     padding: 0;
     margin: 0;
   }
   
   .wp-block-post-template.document-grid > .wp-block-post {
     list-style: none;
     display: flex;
     flex-direction: column;
     min-width: 0;
   }
   
   .wp-block-post-template.document-grid > .wp-block-post > .document-card {
     flex: 1;
     overflow: hidden;
   }
   
   /* Término de categoría en tarjeta de noticia */
   .news-card-category {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     flex-wrap: wrap;
   }
   .news-card-category a {
     padding: 4px 10px;
     border-radius: 4px;
     font-size: 11px;
     font-weight: 600;
     color: white;
     background: var(--primary);
     white-space: nowrap;
     text-decoration: none;
   }
   .news-card-category .wp-block-post-terms__separator {
     display: none;
   }
   /* Colores por categoría — especificidad mayor que .news-card-category a */
   .news-card-category a.news-card-category--administracion-publica, .news-card-category a.news-card-category--opinion    { background: var(--secondary); }
   .news-card-category a.news-card-category--administracion-tributaria, .news-card-category a.news-card-category--destacados { background: #2563eb; }
   .news-card-category a.news-card-category--congreso                  { background: var(--gray-600); }
   
   /* Término de categoría en tarjeta de documento */
   .document-card-badge.wp-block-post-terms {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     flex-wrap: wrap;
   }
   
   .document-card-badge.wp-block-post-terms a {
     padding: 4px 10px;
     border-radius: 4px;
     font-size: 12px;
     font-weight: 500;
     background: #E8EDF5;
     color: #243c74;
     pointer-events: none;
   }
   
   /* Imagen destacada en tarjeta de noticia */
   .news-card-image.wp-block-post-featured-image img {
     width: 100%;
     height: 180px;
     object-fit: cover;
     display: block;
   }
   
   .news-card-image.wp-block-post-featured-image {
     margin: 0;
   }
   
   /* Fecha en tarjeta */
   .news-card-date.wp-block-post-date,
   .document-card-date.wp-block-post-date {
     display: block;
   }
   
   /* Título en tarjetas como enlace */
   .news-card-title.wp-block-post-title a {
     color: var(--foreground);
     text-decoration: none;
   }
   
   .news-card-title.wp-block-post-title a:hover {
     color: var(--primary);
   }
   
   .document-card-title.wp-block-post-title {
     flex: 1;
   }
   
   .document-card-title.wp-block-post-title a {
     color: var(--foreground);
     text-decoration: none;
   }
   
   .document-card-title.wp-block-post-title a:hover {
     color: var(--primary);
   }
   
   /* Excerpt: ocultar el "leer más" si excerptLength lo genera */
   .news-card-excerpt.wp-block-post-excerpt .wp-block-post-excerpt__more-text {
     display: none;
   }
   
   /* Featured image border-radius en news-card */
   .news-card .news-card-image.wp-block-post-featured-image img {
     border-radius: var(--radius-lg) var(--radius-lg) 0 0;
   }
   
   /* Sección de la asociación — imagen */
   .asociacion-home-image img {
     width: 100%;
     height: 320px;
     object-fit: cover;
     border-radius: var(--radius-lg);
     display: block;
   }
   
   .wp-block-post-excerpt__excerpt {
     display: -webkit-box;
     -webkit-line-clamp: 4;
     -webkit-box-orient: vertical;
     overflow: hidden;
   }
   
   .post-type-archive-documentos main>* {
     padding-left: 40px;
     padding-right: 40px;
   }
   
   /* --------------------------------------------------------------------------
      25. RESPONSIVE — MOBILE (< 768px)
      -------------------------------------------------------------------------- */
   @media (max-width: 1330px) {
     .header > .content-container {
       padding-left: 20px;
       padding-right: 20px;
     }
    }
   @media (min-width: 1100px) and (max-width: 1250px) {
     .header-nav .wp-block-navigation__container {
       gap: 16px;
     }
   }
   
   @media (max-width: 1100px) {
     .wp-block-query .featured-news-tpl {
         grid-template-columns: 50% 1fr;
     }
   }
   @media (max-width: 767px) {
   
     /* ---------- GLOBAL ---------- */
   
     main > .entry-content > *, main > .wp-block-post-content > *,
     .blog main>.wp-block-group>*,  .archive main>.wp-block-group>* {
       padding-left: 20px;
       padding-right: 20px;
     }
     /* ---------- HEADER ---------- */
     .site-header,
     .header {
       height: 64px;
     }
   
     .detalle-noticia .header,
     body.detalle-noticia .header {
       height: 64px;
     }
   
     .header > .content-container {
       display: flex;
       align-items: center;
       justify-content: space-between;
       height: 100%;
       padding-left: 20px;
       padding-right: 20px;
     }
     
     .header-cta .wp-block-button__link {
       font-size: 13px;
       padding: 8px 14px !important;
       min-width: auto;
     }
   
     .header-logo {
       height: 64px;
     }
   
     .header-logo img {
       height: 49px;
     }
   
     .header-nav {
       order: 2;
     }
   
     .has-modal-open .header-cta {
       position: fixed;
       flex-direction: column-reverse;
       width: 100%;
       bottom: 0;
       background-color: #243c74;
       left: 0;
       right: 0;
       z-index: 100;
       padding: 20px 24px;
       box-sizing: border-box;
       border-top: 1px solid rgba(255, 255, 255, 0.08);
     }
   
     .has-modal-open .header-cta .wp-block-button__link {
       background: var(--secondary)!important;
       color: #fff!important;
       width: 100%;
       padding: 14px 24px!important;
       font-size: 16px!important;
       justify-content: center;
     }
   
     .has-modal-open .header-cta .wp-block-social-links {
       display: flex;
       gap: 20px;
     }
   
     .has-modal-open .header-cta .wp-block-button,
     .has-modal-open .header-cta .wp-block-buttons {
       width: 100%;
     }
   
     .header-cta {
       margin-left: auto!important;
     }
   
     .header-cta .search-header-grp {
       display: none;
     }
   
     .header-mobile-right {
       display: flex;
       align-items: center;
       gap: 10px;
     }
   
     .header-mobile-social {
       display: flex;
       align-items: center;
       gap: 10px;
     }
   
     .header-mobile-social img {
       width: 14px;
       height: 14px;
     }
   
     .header-mobile-cta {
       display: inline-flex;
       align-items: center;
       gap: 4px;
       background: var(--primary);
       color: #fff;
       font-size: 13px;
       font-weight: 600;
       font-family: inherit;
       padding: 8px 14px;
       border-radius: 6px;
       text-decoration: none;
       white-space: nowrap;
     }
   
     .header-mobile-cta img {
       width: 14px;
       height: 14px;
     }
   
     .header-mobile-menu {
       display: flex;
       align-items: center;
       justify-content: center;
       width: 40px;
       height: 40px;
       background: transparent;
       border: none;
       border-radius: 8px;
       cursor: pointer;
       padding: 0;
       color: var(--foreground);
     }
   
     header .wp-block-navigation__responsive-container a {
       color: #fffc!important;
     }
   
     header .wp-block-navigation__responsive-container .current-menu-item   a,
     .post-type-archive-documentos .header-nav .wp-block-navigation__container > .wp-block-navigation-item.nav-doc > a {
       font-weight: 700;
       color: var(--secondary-light)!important;
     }
   
     header .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open {
       padding-top: 64px;
       background-color: transparent !important;
       padding-left: 0;
       padding-right: 0;
       padding-bottom: 0;
        z-index: 9;
     }
   
     header .is-menu-open .wp-block-navigation__responsive-close {
       height: calc(100vh - 190px);
       background-color: #243c74;
     }
   
     header .is-menu-open .menu-blog>a:after {
       content: url(/wp-content/uploads/2026/03/external-link-w.svg);
       margin-bottom: 8px;
     }
   
     header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
       padding: 16px 20px;
     }
   
     header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
       gap: 0;
       width: 100%;
     }
   
     header.header-nav .wp-block-navigation__container > .wp-block-navigation-item > a, .header-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {    display: flex;
       align-items: center;
       gap: 8px;
       color: rgba(255, 255, 255, 0.8);
       text-decoration: none;
       font-size: 18px;
       font-weight: 500;
       padding: 16px 0;
       border-bottom: 1px solid rgba(255, 255, 255, 0.08);
       transition: color 0.15s;
       width: 100%;
     }
   
     /* ---------- HERO SECTIONS ---------- */
   
     .hero-asociacion .content-container {
       padding-top: 12px;
       gap: 12px;
       min-height: auto;
     }
   
     .hero-contacto {
       min-height: 200px !important;
     }
   
     .hero-contacto::before {
       display: none;
     }
   
     .hero-contacto .hero-title-row {
       flex-direction: column !important;
       align-items: flex-start !important;
       gap: 4px !important;
     }
   
     .hero-contacto .hero-title-row p {
       font-size: 20px !important;
     }
   
     section[style*="height: 280px"] {
       height: 160px !important;
     }
   
     .content-container .hero-breadcrumb,
     .hero-breadcrumb {
       font-size: 11px;
     }
   
     section h1 span[style*="font-size: 42px"] {
       font-size: 20px !important;
       letter-spacing: 1px !important;
     }
   
     section p[style*="font-size: 18px"] {
       font-size: 13px !important;
     }
   
     .hero-actualidad {
       height: 160px !important;
       min-height: 160px !important;
     }
   
     .hero-actualidad h1[style],
     section h1[style*="font-size: 42px; font-weight: 700; color: #243c74"] {
       font-size: 20px !important;
     }
   
     .home-our-act-grp, .home .recruitment-section {
       padding-top: 48px!important;
       padding-bottom: 48px!important;
     }
     .news-card-category a {
       padding: 2px 6px;
       font-size: 9px;
     }
     /* ---------- FOOTER ---------- */
     .footer-main {
       flex-direction: column;
       align-items: center;
       padding: 32px 20px;
       gap: 0;
       text-align: center;
     }
   
     .footer-brand {
       width: 100%;
       align-items: center;
       gap: 24px;
     }
   
     .footer-brand img {
       height: 56px;
       width: auto;
     }
   
     .footer-social {
       gap: 20px;
     }
   
     .footer-social img {
       width: 22px;
       height: 22px;
     }
   
     .footer-brand .footer-description {
       display: none;
     }
   
     .footer-links {
       justify-content: space-between;
       width: 85%;
       gap: 0;
     }
   
     .footer-copyright-mobile {
       display: block;
       font-size: 11px;
       color: rgba(255, 255, 255, 0.6);
       line-height: 1.5;
       padding-top: 16px;
       border-top: 1px solid rgba(255, 255, 255, 0.2);
       width: 100%;
       text-align: center;
       margin-top: 0;
     }
   
     /* ---------- ACTUALIDAD / NEWS ---------- */
     .news-section {
       padding: 48px 0;
     }
   
     .actualidad-page {
       padding: 24px 0;
     }
   
     .actualidad-filters {
       gap: 6px;
       flex-wrap: wrap;
     }
   
     .wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid {
             grid-template-columns: 1fr;
     }
     .actualidad-filter-tab {
       padding: 8px 14px;
       font-size: 13px;
     }
   
     .actualidad-grid {
       grid-template-columns: 1fr;
       gap: 16px;
     }
   
     .actualidad-card {
       height: auto;
       min-height: 0;
       padding: 16px;
     }
   
     .actualidad-pagination {
       margin-top: 24px;
       gap: 6px;
     }
   
     .news-grid,
     .wp-block-post-template.news-grid {
       grid-template-columns: 1fr;
       gap: 16px;
     }
   
     .wp-block-post-template.document-grid {
       grid-template-columns: 1fr;
       gap: 16px;
     }
   
     div[style*="grid-template-columns: repeat(4, 1fr)"] {
       display: flex !important;
       flex-direction: column !important;
       gap: 16px !important;
     }
   
     /* ---------- DOCUMENTOS ---------- */
     .post-type-archive-documentos main>* {
       padding-left: 20px;
       padding-right: 20px;
     }
     .hero-documentos {
       height: 160px !important;
     }
   
     .hero-documentos .hero-content {
       height: 160px !important;
       padding: 20px 0 !important;
       gap: 8px !important;
     }
   
     .hero-documentos .hero-breadcrumb {
       font-size: 11px;
     }
   
     .hero-documentos .hero-title span {
       font-size: 20px !important;
     }
   
     .hero-documentos .hero-subtitle {
       font-size: 13px !important;
       line-height: 1.5 !important;
       max-width: 100% !important;
     }
   
     .hero-documentos .hero-deco {
       display: none;
     }
   
     .documentos-filters-section {
       padding: 24px 0;
     }
   
     .filters-top-row {
       flex-direction: column;
       gap: 8px;
     }
   
     .filters-sort-dropdown {
       display: none;
     }
   
     .filters-view-toggle {
       display: none;
     }
   
     .filters-search-box {
       width: 100%;
       flex: none;
       height: 44px;
     }
   
     .filter-label-text {
       display: none;
     }
   
     .filters-pills-row {
       margin-top: 16px;
       gap: 8px;
       flex-wrap: wrap;
     }
   
     .filter-pill {
       height: 34px;
       font-size: 13px;
       padding: 0 14px;
     }
   
     .docs-results-info {
       margin-top: 8px;
     }
   
     .docs-results-info span {
       font-size: 12px;
     }
   
     .docs-results-sort-mobile {
       display: flex;
       align-items: center;
       gap: 6px;
       height: 36px;
       padding: 0 12px;
       border: 1px solid var(--border);
       font-size: 13px;
       font-weight: 500;
       color: var(--foreground);
       background: var(--background);
       cursor: pointer;
     }
   
     .documentos-list-section {
       padding: 0 0 24px 0;
     }
   
     .docs-list-header {
       display: none;
     }
   
     .docs-list {
       border: none;
     }
   
     .doc-row {
       display: flex;
       flex-direction: row;
       flex-wrap: wrap;
       height: auto;
       min-height: 0;
       padding: 16px 0;
       gap: 8px;
       align-items: center;
       border-bottom: 1px solid var(--border);
     }
   
     .doc-row:last-child {
       border-bottom: 1px solid var(--border);
     }
   
     .doc-row-icon {
       width: 14px;
       height: 14px;
       flex-shrink: 0;
       order: 1;
     }
   
     .doc-row-icon img {
       width: 14px;
       height: 14px;
     }
   
     .doc-row-cat {
       order: 2;
       width: auto;
       flex-shrink: 0;
       background: #E8EDF5;
       border-radius: 4px;
       padding: 4px 10px;
       font-size: 11px;
       font-weight: 600;
       color: var(--primary);
     }
   
     .doc-row-date {
       order: 3;
       display: block;
       width: auto;
       margin-left: auto;
       flex-shrink: 0;
       font-size: 11px;
       color: var(--foreground-light);
     }
   
     .doc-row-title {
       order: 4;
       width: 100%;
       flex-basis: 100%;
       white-space: normal;
       overflow: visible;
       text-overflow: clip;
       font-size: 14px;
       font-weight: 600;
       line-height: 1.4;
       padding-right: 0;
     }
   
     .doc-row-action {
       order: 5;
       width: auto;
       flex-basis: auto;
       justify-content: flex-start;
     }
   
     .doc-row-action a {
       font-size: 12px;
       gap: 4px;
     }
   
     .doc-row-action img {
       width: 14px;
       height: 14px;
     }
   
     .docs-pagination {
       gap: 8px;
       padding-top: 24px;
     }
   
     .docs-grid {
       grid-template-columns: 1fr;
       gap: 16px;
     }
   
     /* ---------- CONGRESO ---------- */
     .congreso-welcome {
       flex-direction: column;
       padding: 24px 20px;
       gap: 24px;
     }
   
     .congreso-welcome-image {
       width: 100%;
     }
   
     .congreso-welcome-image img {
       width: 100%;
       height: auto;
     }
   
     .congreso-sede,
     .congreso-program,
     .congreso-social-events,
     .congreso-hotels,
     .congreso-transport,
     .congreso-previous,
     .congreso-pricing {
       padding: 24px 20px;
     }
   
     .congreso-info-grid {
       grid-template-columns: 1fr 1fr;
       gap: 12px;
     }
   
     .congreso-hotels-grid {
       grid-template-columns: 1fr;
       gap: 16px;
     }
   
     .congreso-day-cards {
       gap: 16px;
     }
   
     .congreso-pricing-grid {
       flex-direction: column;
       align-items: stretch;
       gap: 16px;
     }
   
     .pricing-card {
       width: 100%;
     }
   
     /* ---------- SECTION HEADERS ---------- */
     .section-header {
       flex-direction: column;
       align-items: flex-start;
       gap: 12px;
       margin-bottom: 20px;
     }
   
     .section-header-text h2,
     .section-header-text h2[style] {
       font-size: 24px !important;
       flex-wrap: wrap;
     }
   
     .section-header-text h2 span[style] {
       font-size: 24px !important;
       letter-spacing: 1px !important;
     }
   
     .section-header-text p {
       font-size: 14px;
     }
   
     /* ---------- AFILIACIÓN ---------- */
     .hero-asociate,
     .hero-asociate>div:first-child,
     .hero-contacto>div:first-child,
     .hero-contacto {
       min-height: 160px !important;
     }
   
     .hero-asociate h1,
     .hero-contacto h1 {
       font-size: 20px!important;
     }
   
     .hero-asociate::before {
       display: none;
     }
   
     .hero-asociate .hero-title-row {
       flex-direction: column !important;
       align-items: flex-start !important;
       gap: 4px !important;
     }
   
     .hero-asociate .hero-title-row p {
       font-size: 20px !important;
     }
   
     .afiliacion-page {
       padding: 28px 0;
     }
   
     .afiliacion-form {
       padding: 24px 16px;
       border-radius: 12px;
     }
   
     .afiliacion-form-section {
       padding: 0 0 20px 0;
       margin-bottom: 0;
     }
   
     .afiliacion-form-section:not(:first-child) {
       padding-top: 20px;
     }
   
     .afiliacion-form-row--2,
     .afiliacion-form-row--3 {
       grid-template-columns: 1fr;
     }
   
     .afiliacion-submit,
     .afiliacion-form .wpcf7 .wpcf7-submit {
       width: 100%;
       padding: 14px 32px;
       font-size: 15px;
     }
   
    .afiliacion-consent {
      padding: 14px 16px;
    }

    .afiliacion-form .gform_wrapper.gform-theme {
      padding: 0 !important;
    }

    .afiliacion-form .gform_wrapper .ginput_container--name.gform-grid-row,
    .afiliacion-form .gform_wrapper .ginput_container_name.gform-grid-row {
      grid-template-columns: 1fr !important;
    }

    .afiliacion-form .gform_wrapper .ginput_container_address.gform-grid-row {
      grid-template-columns: 1fr !important;
    }

    .afiliacion-form .gform_wrapper .gform_button,
    .afiliacion-form .gform_wrapper input[type="submit"].gform_button,
    .afiliacion-form .gform_wrapper .gform_footer input[type="submit"] {
      width: 100% !important;
      padding: 14px 32px !important;
      font-size: 15px !important;
    }

    .afiliacion-form .gform_wrapper .ginput_container_consent {
      padding: 14px 16px !important;
    }
  
    /* ---------- CONTACTO ---------- */
     .contacto-page {
       padding: 32px 20px!important;
       min-height: auto;
       flex-direction: column;
     }
   
     .contacto-page > .content-container {
       flex-direction: column;
       gap: 24px;
     }
   
     .contacto-info {
       width: 100%;
       gap: 24px;
     }
   
     .contacto-info h2 {
       font-size: 22px;
     }
   
     .icon-grp-recruitment {
       width: 56px;
       height: 56px;
       min-height: 56px!important;
     }
   
     .contacto-form-container {
       padding: 24px 16px;
       border-radius: 12px;
       gap: 20px;
       width: 100%;
     }
   
     .contacto-form-container h3 {
       font-size: 18px;
     }
   
    .contacto-form-container button.btn,
    .contacto-form-container .wpcf7 .wpcf7-submit,
    .contacto-form-container .gform_wrapper .gform_button,
    .contacto-form-container .gform_wrapper input[type="submit"].gform_button,
    .contacto-form-container .gform_wrapper .gform_footer input[type="submit"] {
      width: 100% !important;
    }
   
     .contacto-info > a.btn,
     .contacto-info .wp-block-button__link {
       width: 100%;
       text-align: center;
     }
   
     /* ---------- DETALLE NOTICIA ---------- */
     .detalle-noticia-breadcrumb {
       height: auto;
       padding: 12px 20px;
     }
   
     .detalle-noticia article,
     article.detalle-noticia-article {
       padding: 24px 0 !important;
     }
   
     .detalle-noticia-title,
     article h1[style*="font-size: 36px"] {
       font-size: 22px !important;
       line-height: 1.35 !important;
     }
   
     .detalle-noticia-meta {
       flex-wrap: wrap;
       gap: 8px;
     }
   
     article .btn {
       width: 100%;
       justify-content: center;
     }
   
     /* ---------- ASOCIACIÓN ---------- */
     .hero-asociacion {
       min-height: 260px !important;
     }
   
     .hero-asociacion::before {
       display: none;
     }
   
     .hero-asociacion .hero-title-row {
       flex-direction: column !important;
       align-items: flex-start !important;
       gap: 4px !important;
     }
   
     .hero-asociacion .hero-title-row h1 {
       font-size: 20px !important;
     }
   
     .asociacion-about h2,
     .asociacion-stats h2,
     .asociacion-mission h2,
     .asociacion-where h2,
     .asociacion-team h2,
     .asociacion-cta h2 {
       text-align: left !important;
     }
   
     .asociacion-about {
       padding: 48px 0;
     }
   
     .asociacion-about-row {
       flex-direction: column;
       gap: 24px;
     }
   
     .asociacion-about-img {
       width: 100%;
     }
   
     .asociacion-about-img img,
     img.asociacion-about-img {
       height: 250px;
     }
   
     .asociacion-stats {
       padding: 48px 0;
     }
   
     .stats-row {
       flex-direction: column;
       gap: 12px;
     }
   
     .stat-card-v2__value {
       font-size: 36px;
     }
   
     .asociacion-mission {
       padding: 48px 0;
     }
   
     .mission-cards-row {
       flex-direction: column;
       gap: 16px;
     }

     .mission-cards-row.is-layout-grid {
      grid-template-columns: 1fr;
     }
   
     .asociacion-where {
       padding: 48px 0;
     }
   
     .asociacion-where-row {
       flex-direction: column;
       gap: 24px;
     }
   
     .asociacion-where-img {
       width: 100%;
     }
   
     .asociacion-where-img img,
     img.asociacion-where-img {
       height: 250px;
     }
     .asociacion-stats .stats-row {
       display: grid!important;
       grid-template-columns: repeat(2, 1fr)!important;
       gap: 16px!important;
     }
     .asociacion-stats .stat-card-v2 {
       height: 100%;
     }
     .team-section-header p.has-text-color {
       text-align: left;
     }
     .mission-card__title {
       font-size: 18px;
     }
     .asociacion-team {
       padding: 48px 0;
     }
   
     .asociacion-cta {
       padding: 48px 0;
     }
   
     .asociacion-cta h2 {
       font-size: 24px !important;
     }
   
     /* Miembros grid mobile */
     .miembros-grid {
       max-width: calc(2 * (160px + 8px) - 8px);
       gap: 8px;
     }
   
     .miembro-card {
       width: 160px;
       min-height: 270px;
       padding: 16px 10px;
     }
   
     .miembro-card__foto {
       width: 140px;
       height: 165px;
     }
   
     .miembro-card__nombre {
       font-size: 15px;
     }
   
     .miembro-card__cargo {
       font-size: 13px;
     }
   
     .asociacion-cta .wp-block-buttons {
       width: 100%;
     }
   
     .asociacion-cta .wp-block-button {
       width: 100%;
     }
   
     .asociacion-cta .wp-block-button__link {
       width: 100%;
       justify-content: center;
     }
   
     /* ---------- HOME ---------- */
     .hero-home.hero-home-v1 {
       min-height: 420px !important;
       padding-top: 64px !important;
       padding-bottom: 32px !important;
     }
     .hero-home.hero-home-v1 .wp-block-button.btn-img {
       width: 100%;
     }
     .hero-home.hero-home-v1 .wp-block-button.btn-img .wp-block-buttons .wp-block-button__link {
      font-size: 16px!important;
     }
     .hero-home.hero-home-v1.wp-block-cover .wp-block-cover__image-background {
       left: 0;
     }
     .hero-home {
       height: 360px !important;
     }
   
     .hero-home > div:first-child {
       width: 100% !important;
       left: 0 !important;
       right: 0 !important;
     }
   
     .hero-home > div:nth-child(2) {
       background: linear-gradient(to bottom, rgba(26,45,87,0.85) 0%, rgba(36,60,116,0.70) 60%, rgba(36,60,116,0.50) 100%) !important;
     }
   
     .hero-home > .content-container {
       padding: 32px 20px !important;
       flex-direction: column !important;
       justify-content: center !important;
       align-items: flex-start !important;
       gap: 0 !important;
     }
   
     .hero-home > .content-container > div {
       width: 100% !important;
       height: auto !important;
     }
   
     .hero-home > .content-container > div > div[style*="width"] {
       width: 100% !important;
       height: auto !important;
     }
   
     .hero-home > .content-container > div[style*="background: white"] {
       display: none;
     }
   
     .hero-home h1,
     .hero-home h1[style] {
       font-size: 28px !important;
       width: 100% !important;
       line-height: 1.3 !important;
     }
   
     .hero-home > .content-container p {
       font-size: 15px !important;
       width: 100% !important;
       color: rgba(255,255,255,0.8) !important;
     }
   
     .hero-home a.btn {
       width: 100%;
       justify-content: center;
     }
   
     .hero-home-content {
       width: 100%;
     }
   
     .hero-home-illustration {
       display: none;
     }
   
     header .wp-block-social-links {
       display: none;
     }
   
     .quick-links {
       padding: 32px 20px;
     }
   
     .quick-links-grid {
       grid-template-columns: 1fr 1fr;
       gap: 16px;
     }
   
     /* News cards: layout horizontal en mobile */
     .news-card {
       display: flex;
       flex-direction: row;
       height: auto;
       overflow: hidden;
       min-height: 110px;
     }
   
     .news-card-image {
       width: 110px;
       min-width: 110px;
       height: 100% !important;
       flex-shrink: 0;
       min-height: 110px;
     }
   
     .news-card-content {
       padding: 10px 12px !important;
       flex: 1;
       min-width: 0;
       justify-content: center;
       gap: 6px !important;
     }
   
     .news-card-title {
       font-size: 11px !important;
       font-weight: 600 !important;
       line-height: 1.4 !important;
       display: -webkit-box;
       -webkit-line-clamp: 3;
       -webkit-box-orient: vertical;
       overflow: hidden;
       margin-top: 0;
     }
   
     .news-card-excerpt {
       display: none;
     }
   
     .news-card-content > div[style*="display: flex"][style*="gap: 12px"] {
       flex-direction: column !important;
       align-items: flex-start !important;
       gap: 4px !important;
     }
   
     .news-card-image.wp-block-post-featured-image img {
       height: 100%!important;
       max-height: 110px;
     }
   
     .grp-img-def {
       min-height: 110px !important;
       width: 110px;
     }
   
     .news-card-date {
       font-size: 9px !important;
     }
   
     section[style*="background: #F8F9FA"] {
       padding: 48px 0 !important;
     }
   
     .document-card {
       padding: 16px !important;
     }
   
     .document-card-title {
       font-size: 14px !important;
       line-height: 1.4 !important;
     }
   
     div[style*="grid-template-columns: repeat(3, 1fr)"] {
       grid-template-columns: 1fr !important;
       gap: 16px !important;
     }
   
     .asociacion-about .content-container {
       gap: 24px;
       max-width: 100%;
     }
   
     .asociacion-about .content-container > div[style*="height: 360px"] {
       height: 200px !important;
     }
   
     .asociacion-about .btn {
       width: 100%;
       display: flex;
       justify-content: center;
     }
   
     /* Recruitment section mobile */
   
     .recruitment-section > div[style*="position: absolute"] {
       display: none;
     }
   
     .recruitment-section > .content-container {
       height: auto;
       align-items: stretch;
     }
   
     .recruitment-cards {
       flex-direction: column;
       gap: 24px;
       padding: 0;
     }
   
     .recruitment-card {
       background: white !important;
       border-radius: 16px !important;
       width: 100%;
       padding: 24px;
     }
   
     .recruitment-card > div:first-child {
       width: 56px !important;
       height: 56px !important;
       border-radius: 28px !important;
       margin-bottom: 16px !important;
     }
   
     .recruitment-card > div:first-child img {
       width: 24px !important;
       height: 24px !important;
     }
   
     .recruitment-card h3[style] {
       font-size: 18px !important;
       margin: 0 !important;
     }
   
     .recruitment-card p[style] {
       font-size: 14px !important;
       color: #111827 !important;
     }
   
     .recruitment-card .btn,
     .recruitment-card .wp-block-button {
       width: 100%;
       justify-content: center;
       align-self: auto;
     }
   
     .grp-home-our-team .wp-block-button {
       width: 100%;
     }
     .footer-links-column li {
       text-align: right;
     }
     /* Actualidad-img hero mobile */
     .archive-actualidad {
       min-height: 160px!important;
     }
     
     section[style*="background: white"][style*="height: 280px"] {
       background: var(--primary) !important;
     }
   
     section[style*="background: white"][style*="height: 280px"] > div[style*="position: absolute"] {
       display: none;
     }
   
     section[style*="background: white"][style*="height: 280px"] h1 {
       color: white !important;
       font-size: 20px !important;
     }
   
     section[style*="background: white"][style*="height: 280px"] p[style*="font-size: 18px"] {
       color: rgba(255,255,255,0.8) !important;
       font-size: 13px !important;
     }
   
     section[style*="padding: 64px 0"] {
       padding: 32px 0 !important;
     }
   
     /* contacto page */
     .contacto-info h3, .contacto-form-container h3 {
       font-size: 18px!important;
     }
     .contacto-info .wp-block-button {
       width: 100%;
     }
   }
   
   /* --------------------------------------------------------------------------
      26. RESPONSIVE — TABLET (768px – 1024px)
      -------------------------------------------------------------------------- */
   @media (min-width: 768px) and (max-width: 1024px) {
   
     main > .entry-content > *, main > .wp-block-post-content > *,
     .blog main>.wp-block-group>*,  .archive main>.wp-block-group>* {
       padding-left: 32px;
       padding-right: 32px;
     }
     .news-grid,
     .wp-block-post-template.news-grid,
     .actualidad-grid {
       grid-template-columns: repeat(2, 1fr);
     }
   
     .wp-block-post-template.document-grid {
       grid-template-columns: repeat(2, 1fr);
     }
   
     .docs-grid {
       grid-template-columns: repeat(2, 1fr);
     }
   
     .quick-links-grid,
     .congreso-info-grid {
       grid-template-columns: repeat(2, 1fr);
     }
   
     .congreso-hotels-grid {
       grid-template-columns: repeat(2, 1fr);
     }
   
     .congreso-welcome {
       gap: 32px;
     }
   
     .recruitment-card {
       width: 100%;
     }
   
     .recruitment-cards {
       flex-direction: column;
     }
   
     .footer-main {
       padding: 48px 32px;
       gap: 48px;
     }
   
     .footer-links {
       gap: 40px;
     }
   
   }
   
   /* --------------------------------------------------------------------------
      27. MOBILE NAVIGATION OVERLAY
      -------------------------------------------------------------------------- */
   .mobile-nav-overlay {
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     bottom: 0;
     background: var(--primary);
     z-index: 1000;
     display: flex;
     flex-direction: column;
     transform: translateX(100%);
     transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
     overflow-y: auto;
   }
   
   .mobile-nav-overlay.is-open {
     transform: translateX(0);
   }
   
   .mobile-nav-header {
     display: flex;
     align-items: center;
     justify-content: space-between;
     height: 64px;
     padding: 0 20px;
     background: white;
     border-bottom: 1px solid var(--gray-300);
     flex-shrink: 0;
   }
   
   .mobile-nav-logo img {
     height: 44px;
     width: auto;
   }
   
   .mobile-nav-close {
     width: 40px;
     height: 40px;
     background: transparent;
     border: none;
     cursor: pointer;
     color: var(--primary);
     display: flex;
     align-items: center;
     justify-content: center;
     border-radius: 8px;
     padding: 0;
     flex-shrink: 0;
   }
   
   .mobile-nav-links {
     display: flex;
     flex-direction: column;
     padding: 16px 20px;
     flex: 1;
   }
   
   .mobile-nav-links a {
     display: flex;
     align-items: center;
     gap: 8px;
     color: rgba(255, 255, 255, 0.8);
     text-decoration: none;
     font-size: 18px;
     font-weight: 500;
     padding: 16px 0;
     border-bottom: 1px solid rgba(255, 255, 255, 0.08);
     transition: color 0.15s;
   }
   
   .mobile-nav-links a:last-child {
     border-bottom: none;
   }
   
   .mobile-nav-links a:hover {
     color: white;
   }
   
   .mobile-nav-links a.active {
     font-weight: 700;
     color: var(--secondary-light);
   }
   
   .mobile-nav-footer {
     padding: 24px 20px;
     border-top: 1px solid rgba(255, 255, 255, 0.12);
     flex-shrink: 0;
   }
   
   .mobile-nav-footer .mobile-nav-cta {
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 8px;
     width: 100%;
     padding: 14px 24px;
     background: var(--secondary);
     color: var(--primary);
     font-size: 16px;
     font-weight: 600;
     font-family: inherit;
     border-radius: 8px;
     text-decoration: none;
     border: none;
     cursor: pointer;
   }
   
   .mobile-nav-footer .mobile-nav-cta img {
     width: 16px;
     height: 16px;
   }
   
   body.mobile-nav-open {
     overflow: hidden;
   }
   
   /* ==========================================================================
      HOME VERSION CONGRESO (home-v2)
      Secciones específicas para la variante de home con tarjeta de congreso
      ========================================================================== */
   
   /* --- 1. HERO HOME (cover con imagen de fondo + tarjeta congreso) --- */
   .hero-home-cover {
     min-height: 620px;
   }
   
   .hero-home-cover .wp-block-cover__inner-container {
     max-width: 1440px;
     margin: 0 auto;
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: 60px;
     height: 100%;
     min-height: 620px;
   }
   
   .hero-text-wrapper {
     display: flex !important;
     flex-direction: column;
     justify-content: center;
     max-width: 580px;
   }
   
   .hero-text-wrapper h1 {
     font-size: 52px;
     font-weight: 700;
     line-height: 1.2;
     color: white;
   }
   
   .hero-text-wrapper > p {
     color: rgba(255,255,255,0.8);
     font-size: 20px;
     line-height: 1.6;
   }
   
   .congress-card {
     width: 480px;
     min-width: 480px;
     background: white !important;
     border-radius: 16px;
     box-shadow: 0 10px 40px rgba(0,0,0,0.13);
     padding: 32px !important;
     display: flex !important;
     flex-direction: column;
   }
   
   .congress-card .badge--congress-event {
     display: inline-block;
     font-size: 13px;
     font-weight: 600;
     color: var(--primary);
     background: var(--secondary);
     padding: 6px 14px;
     border-radius: 20px;
     width: fit-content;
   }
   
   .congress-card-subtitle {
     font-size: 14px;
     font-weight: 600;
     color: var(--primary);
     letter-spacing: 1px;
   }
   
   .congress-card h2 {
     font-size: 26px;
     font-weight: 700;
     color: var(--foreground);
     line-height: 1.3;
     margin-top: 8px;
   }
   
   .congress-card-detail {
     display: flex !important;
     align-items: center;
     gap: 10px;
   }
   
   .congress-card-detail--location {
     margin-top: 12px;
   }
   
   .congress-card-detail figure {
     margin: 0;
     line-height: 0;
     flex-shrink: 0;
   }
   
   .congress-card-detail figure img {
     width: 18px;
     height: 18px;
   }
   
   .congress-card-detail p {
     font-size: 15px;
     font-weight: 500;
     color: var(--foreground-muted);
   }
   
   .congress-card > p {
     font-size: 15px;
     color: var(--foreground-muted);
     line-height: 1.6;
   }
   
   .congress-card .wp-block-buttons {
     gap: 0;
   }
   
   .congress-card .wp-block-button__link {
     padding: 14px 24px;
     border-radius: 8px;
     font-size: 15px;
     font-weight: 600;
     width: fit-content;
   }
   
   .hero-cta-desktop {
     display: flex;
     gap: 16px;
   }
   
   .hero-cta-desktop .wp-block-button__link {
     background: white;
     color: var(--primary);
     font-size: 16px;
     font-weight: 600;
     padding: 14px 28px;
     border-radius: 8px;
   }
   
   .hero-cta-desktop .wp-block-button__link:hover {
     background: var(--gray-50);
   }
   
   /* --- 2. MOBILE CONGRESS CARD --- */
   .mobile-congress-card {
     display: none;
     padding: 20px;
     background: #FFFFFF;
   }
   
   .mobile-congress-card-inner {
     background: #FFFFFF;
     border-radius: 16px;
     padding: 24px;
     box-shadow: 0 4px 20px rgba(0,0,0,0.08);
     border: 1px solid #E5E7EB;
     display: flex !important;
     flex-direction: column;
     gap: 16px;
   }
   
   .mobile-congress-card-inner h3 {
     font-size: 20px;
     font-weight: 700;
     color: #1A1A1A;
     line-height: 1.3;
   }
   
   .mobile-congress-card-inner .wp-block-button__link {
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 8px;
     background: var(--primary);
     color: white;
     font-size: 14px;
     font-weight: 600;
     padding: 12px 20px;
     border-radius: 8px;
     width: 100%;
   }
   
   /* --- 3. FEATURED NEWS SECTION --- */
   .featured-news-grid {
     display: flex;
     gap: 24px;
   }
   
   .featured-news-main {
     width: 660px;
     flex-shrink: 0;
     border-radius: 16px;
     border: 1px solid var(--border);
     background: white;
     overflow: hidden;
     display: flex !important;
     flex-direction: column;
   }
   
   .featured-news-main-img {
     height: 280px;
     background: var(--gray-200);
     overflow: hidden;
   }
   
   .featured-news-main-img figure,
   .featured-news-main-img figure img {
     margin: 0;
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   .featured-news-main-content {
     padding: 28px;
     display: flex !important;
     flex-direction: column;
     gap: 16px;
   }
   
   .featured-news-main-content .news-meta {
     display: flex !important;
     gap: 12px;
     align-items: center;
   }
   
   .featured-news-main-content h3 {
     font-size: 24px;
     font-weight: 700;
     line-height: 1.3;
     color: var(--foreground);
   }
   
   .featured-news-main-content > p {
     font-size: 15px;
     color: var(--foreground-muted);
     line-height: 1.6;
   }
   
   .featured-news-main-content a {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-size: 15px;
     font-weight: 500;
     color: var(--primary);
     text-decoration: none;
   }
   
   .featured-news-side {
     flex: 1;
     display: flex !important;
     flex-direction: column;
     gap: 20px;
   }
   
   .featured-news-side-card {
     display: flex !important;
     gap: 16px;
     padding: 16px;
     border-radius: 12px;
     border: 1px solid var(--border);
     background: white;
   }
   
   .featured-news-side-card-img {
     width: 120px;
     height: 100px;
     border-radius: 8px;
     background: var(--gray-200);
     flex-shrink: 0;
     overflow: hidden;
   }
   
   .featured-news-side-card-img figure,
   .featured-news-side-card-img figure img {
     margin: 0;
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   .featured-news-side-card-content {
     display: flex !important;
     flex-direction: column;
     gap: 8px;
     flex: 1;
   }
   
   .featured-news-side-card-content h4 {
     font-size: 15px;
     font-weight: 600;
     line-height: 1.4;
     color: var(--foreground);
   }
   
   .news-card-category--fiscalidad { background: var(--primary); }
   .news-card-category--opinion { background: var(--secondary); }
   .news-card-category--comunicado { background: var(--primary); }
   .news-card-category--congreso { background: var(--primary); }
   .news-card-category--actualidad { background: var(--secondary); }
   
   .news-card-date {
     font-size: 12px;
     color: var(--foreground-light);
     white-space: nowrap;
   }
   
   .news-view-all-mobile {
     display: none;
     justify-content: center;
     padding: 12px 0;
     align-items: center;
   }
   
   /* --- 3b. QUERY LOOP — Un solo loop, CSS grid separa principal de laterales --- */
   
   .featured-news-query {
     width: 100%;
   }
   
   .featured-news-tpl {
     list-style: none;
     padding: 0;
     margin: 0;
     display: grid;
     grid-template-columns: 660px 1fr;
     grid-template-rows: repeat(4, auto);
     gap: 20px;
     column-gap: 24px;
   }
   
   /* --- Primer post = noticia principal (columna izquierda, ocupa todas las filas) --- */
   .featured-news-tpl > li:first-child {
     grid-column: 1;
     grid-row: 1 / -1;
     border-radius: 16px;
     border: 1px solid var(--border);
     background: white;
     overflow: hidden;
     display: flex;
     flex-direction: column;
   }
   
   .featured-news-tpl > li:first-child .wp-block-post-featured-image {
     height: 280px;
     margin: 0;
     overflow: hidden;
     flex-shrink: 0;
   }
   
   .featured-news-tpl > li:first-child .wp-block-post-featured-image img {
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   .featured-news-tpl > li:first-child .featured-news-content {
     padding: 28px;
     display: flex !important;
     flex-direction: column;
     gap: 16px;
     flex: 1;
   }
   
   .featured-news-tpl > li:first-child .featured-news-title {
     font-size: 24px;
     font-weight: 700;
     line-height: 1.3;
     color: var(--foreground);
     margin: 0;
   }
   
   .featured-news-tpl > li:first-child .featured-news-excerpt {
     margin: 0;
   }
   
   .featured-news-tpl > li:first-child .wp-block-post-excerpt__excerpt {
     font-size: 15px;
     color: var(--foreground-muted);
     line-height: 1.6;
     margin: 0;
   }
   
   .featured-news-tpl > li:first-child .featured-news-readmore {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-size: 15px;
     font-weight: 500;
     color: var(--primary);
     text-decoration: none;
   }

   .featured-news-tpl > li:hover {
    transition: 0.2s;
   }

   .featured-news-tpl > li:hover {
    box-shadow: var(--shadow-md);
   }
   
   /* --- Posts 2-5 = tarjetas laterales (columna derecha, formato horizontal) --- */
   .featured-news-tpl > li:not(:first-child) {
     grid-column: 2;
     display: flex;
     flex-direction: row;
     gap: 16px;
     padding: 16px;
     border-radius: 12px;
     border: 1px solid var(--border);
     background: white;
     margin-top: 0;
   }
   
   .featured-news-tpl > li:not(:first-child) .wp-block-post-featured-image {
     width: 120px;
     min-width: 120px;
     height: 100px;
     border-radius: 8px;
     overflow: hidden;
     margin: 0;
     flex-shrink: 0;
   }
   
   .featured-news-tpl > li:not(:first-child) .wp-block-post-featured-image img {
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   .featured-news-tpl > li:not(:first-child) .featured-news-content {
     display: flex !important;
     flex-direction: column;
     gap: 8px;
     flex: 1;
     min-width: 0;
   }
   
   .featured-news-tpl > li:not(:first-child) .featured-news-title {
     font-size: 15px;
     font-weight: 600;
     line-height: 1.4;
     color: var(--foreground);
     margin: 0;
   }
   
   .featured-news-tpl > li:not(:first-child) .featured-news-excerpt,
   .featured-news-tpl > li:not(:first-child) .featured-news-readmore {
     display: none;
   }
   
   .featured-news-tpl > li:not(:first-child) .featured-news-date {
     font-size: 12px;
     color: var(--foreground-light);
   }
   
   /* --- Estilos comunes al query loop (categoría, fecha, título, enlaces) --- */
   .featured-news-tpl .featured-news-cat {
     padding: 4px 10px;
     border-radius: 4px;
     font-size: 11px;
     font-weight: 600;
     color: white;
     background: var(--primary);
     white-space: nowrap;
     width: fit-content;
     margin: 0;
   }
   
   .featured-news-tpl .featured-news-cat a {
     color: white;
     text-decoration: none;
   }
   
   .featured-news-tpl .news-meta {
     display: flex;
     gap: 12px;
     align-items: center;
   }
   
   .featured-news-tpl .featured-news-date {
     font-size: 12px;
     color: var(--foreground-light);
   }
   
   .featured-news-tpl .featured-news-title a {
     color: inherit;
     text-decoration: none;
   }
   
   .featured-news-tpl .featured-news-title a:hover {
     color: var(--primary);
   }
   
   /* --- 4. FEATURED ALTERNATIVA SECTION --- */
   .featured-alternativa-grid {
     display: flex;
     gap: 24px;
   }
   
   .featured-alternativa-card {
     flex: 1;
     border-radius: 16px;
     background: white;
     overflow: hidden;
     height: 560px;
     display: flex !important;
     flex-direction: column;
   }
   
   .featured-alternativa-card-img {
     height: 280px;
     overflow: hidden;
   }
   
   .featured-alternativa-card-img figure,
   .featured-alternativa-card-img figure img {
     margin: 0;
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   .featured-alternativa-card-content {
     padding: 32px;
     display: flex !important;
     flex-direction: column;
     gap: 20px;
     flex: 1;
   }
   
   .featured-alternativa-card-content h3 {
     font-size: 24px;
     font-weight: 700;
     line-height: 1.3;
     color: var(--foreground);
   }
   
   .featured-alternativa-card-content > p {
     font-size: 15px;
     color: var(--foreground-muted);
     line-height: 1.6;
   }
   
   .featured-alternativa-card-content .wp-block-buttons {
     margin-top: auto;
     justify-content: flex-end;
   }
   
   .featured-alternativa-card-content .wp-block-button__link {
     padding: 14px 28px;
     font-size: 16px;
     width: fit-content;
   }
   
   /* --- 5. DOCS SECTION MIX --- */
   .docs-grid-home {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 24px;
   }
   
   .docs-view-all-mobile {
     display: none;
     justify-content: center;
     padding: 12px 0;
     align-items: center;
   }
   
   /* --- 6. HERO CENTRADA --- */
   .hero-centrada {
     background: var(--primary);
     min-height: 710px;
     position: relative;
     overflow: hidden;
     display: flex;
     flex-direction: column;
   }
   
   .hero-centrada-overlay {
     position: absolute;
     inset: 0;
     background: linear-gradient(to top, #1a2d57 0%, transparent 100%);
     z-index: 1;
     pointer-events: none;
   }
   
   .hero-centrada-deco {
     position: absolute;
     border-radius: 50%;
     z-index: 0;
     pointer-events: none;
   }
   
   .hero-centrada-content {
     position: relative;
     z-index: 2;
     flex: 1;
     display: flex !important;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     gap: 32px;
     padding: 80px 48px 40px;
     text-align: center;
   }
   
   .hero-centrada-badge {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: rgba(255,255,255,0.08);
     border-radius: 20px;
     padding: 8px 20px;
   }
   
   .hero-centrada-badge figure {
     margin: 0;
     line-height: 0;
   }
   
   .hero-centrada-badge figure img {
     width: 16px;
     height: 16px;
     filter: invert(57%) sepia(99%) saturate(710%) hue-rotate(155deg) brightness(103%) contrast(96%);
   }
   
   .hero-centrada-badge p {
     font-size: 13px;
     font-weight: 500;
     color: rgba(255,255,255,0.8);
   }
   
   .hero-centrada-content > h1 {
     font-size: 56px;
     font-weight: 700;
     color: white;
     text-align: center;
     line-height: 1.15;
     max-width: 800px;
   }
   
   .hero-centrada-content > p {
     font-size: 18px;
     color: rgba(255,255,255,0.73);
     text-align: center;
     line-height: 1.7;
     max-width: 680px;
   }
   
   .centrada-ctas-desktop {
     display: flex;
     gap: 16px;
     align-items: center;
   }
   
   .centrada-ctas-desktop .wp-block-button:first-child .wp-block-button__link {
     background: white;
     color: var(--primary);
     font-size: 16px;
     font-weight: 600;
     padding: 14px 32px;
     border-radius: 8px;
   }
   
   .centrada-ctas-desktop .wp-block-button:last-child .wp-block-button__link {
     background: rgba(255,255,255,0.08);
     color: white;
     font-size: 16px;
     font-weight: 500;
     padding: 14px 32px;
     border-radius: 8px;
     border: 1px solid rgba(255,255,255,0.19);
   }
   
   .centrada-ctas-mobile {
     display: none;
     gap: 12px;
     align-items: center;
   }
   
   .hero-centrada-stats {
     position: relative;
     z-index: 2;
     height: 110px;
     display: flex;
     align-items: center;
     justify-content: space-around;
     padding: 24px 80px;
     background: rgba(255, 255, 255, 0.03);
     border-top: 1px solid rgba(255, 255, 255, 0.06);
   }
   
   .hero-centrada-stats > .wp-block-group {
     display: flex;
     align-items: center;
     justify-content: space-around;
     width: 100%;
     max-width: 1440px;
     margin: 0 auto;
   }
   
   .hero-centrada-stat {
     display: flex !important;
     flex-direction: column;
     align-items: center;
     gap: 4px;
   }
   
   .hero-centrada-stat .stat-value {
     font-size: 32px;
     font-weight: 700;
     color: white;
   }
   
   .hero-centrada-stat .stat-value--secondary {
     color: var(--secondary);
   }
   
   .hero-centrada-stat .stat-label {
     font-size: 13px;
     color: rgba(255,255,255,0.53);
   }
   
   .hero-centrada-divider {
     width: 1px;
     height: 48px;
     background: rgba(255, 255, 255, 0.13);
   }
   
   /* --- 7. ASSOCIATION SECTION MIX --- */
   .association-section-mix > .wp-block-group {
     display: flex;
     gap: 80px;
     align-items: center;
     max-width: 1440px;
     margin: 0 auto;
     padding: 0 48px;
   }
   
   .association-text-wrapper {
     width: 550px;
     flex-shrink: 0;
   }
   
   .association-text-wrapper .section-header-left {
     margin-bottom: 16px;
   }
   
   .association-text-wrapper > p:first-of-type {
     font-size: 18px;
     font-weight: 600;
     line-height: 1.5;
     margin-bottom: 16px;
   }
   
   .association-text-wrapper > p:last-of-type {
     font-size: 16px;
     color: #6B7280;
     line-height: 1.7;
     margin-bottom: 24px;
   }
   
   .association-text-wrapper .wp-block-button__link {
     font-size: 14px;
     font-weight: 500;
     padding: 10px 20px;
     border-radius: 6px;
   }
   
   .association-img-wrapper {
     flex: 1;
     min-width: 0;
     height: 320px;
     border-radius: 12px;
     overflow: hidden;
   }
   
   .association-img-wrapper figure,
   .association-img-wrapper figure img {
     margin: 0;
     width: 100%;
     height: 100%;
     object-fit: cover;
   }
   
   /* --- 8. RECRUITMENT SECTION (override for bg image variant) --- */
   .recruitment-section-bg {
     padding: 0;
     height: 680px;
     position: relative;
     overflow: hidden;
   }
   
   .recruitment-section-bg > .wp-block-group {
     position: relative;
     z-index: 2;
     height: 100%;
     display: flex;
     align-items: center;
     max-width: 1440px;
     margin: 0 auto;
     padding: 0 48px;
   }
   
   .recruitment-section-bg .recruitment-cards {
     gap: 116px;
   }
   
   .recruitment-card-icon {
     width: 80px;
     height: 80px;
     border-radius: 40px;
     display: flex !important;
     align-items: center;
     justify-content: center;
     margin-bottom: 24px;
   }
   
   .recruitment-card-icon--primary {
     background: #3a5694;
   }
   
   .recruitment-card-icon--secondary {
     background: #5bc0de;
   }
   
   .recruitment-card-icon figure {
     margin: 0;
     line-height: 0;
   }
   
   .recruitment-card-icon figure img {
     width: 36px;
     height: 36px;
     filter: brightness(0) invert(1);
   }
   
   .recruitment-card h3 {
     font-size: 24px;
     font-weight: 700;
     color: #243c74;
     line-height: 1.3;
     margin-bottom: 16px;
   }
   
   .recruitment-card > p {
     font-size: 15px;
     color: #6B7280;
     line-height: 1.7;
     flex: 1;
   }
   
   .recruitment-card .wp-block-buttons {
     margin-top: 24px;
     justify-content: flex-end;
   }
   
   /* --- MOBILE: HOME VERSION CONGRESO --- */
   @media (max-width: 767px) {
   
     /* Hero cover */
     .hero-home-cover {
       min-height: 420px !important;
     }
   
     .hero-home-cover .wp-block-cover__inner-container {
       flex-direction: column !important;
       justify-content: flex-end !important;
       align-items: flex-start !important;
       gap: 16px !important;
       padding: 32px 20px !important;
       min-height: 420px !important;
     }
   
     .hero-text-wrapper {
       max-width: 100% !important;
       gap: 16px !important;
     }
   
     .hero-text-wrapper h1 {
       font-size: 20px !important;
       line-height: 1.3 !important;
     }
   
     .hero-text-wrapper > p {
       font-size: 15px !important;
       color: rgba(255,255,255,0.8) !important;
     }
   
     .congress-card {
       max-width: 100%;
       margin-left: auto;
       margin-right: auto;
       min-width: inherit;
     }
   
     .hero-cta-desktop {
       display: none !important;
     }
   
     .hero-cta-mobile {
       display: inline-flex !important;
     }
   
     .hero-cta-mobile .wp-block-button__link {
       background: white;
       color: var(--primary);
       font-size: 15px;
       font-weight: 600;
       padding: 12px 24px;
       border-radius: 8px;
     }
   
     /* Mobile congress card */
     .mobile-congress-card {
       display: block !important;
     }
   
     /* Featured News */
     .home-version-congreso.news-section-wrap {
       padding: 48px 20px;
     }
   
     .featured-news-tpl > li:first-child .featured-news-title {
       font-size: 10px;
       line-height: 1.35;
     }
   
     .featured-news-tpl > li .featured-news-excerpt, .featured-news-tpl > li .featured-news-readmore {
       display: none;
     }
   
     .featured-news-tpl > li .featured-news-excerpt, .featured-news-tpl > li .featured-news-readmore,
     .featured-news-tpl > li:first-child .featured-news-readmore {
       display: none;
     }
   
   
     .featured-news-tpl .news-meta,
     .news-card-content>.wp-block-group:first-child {
       display: grid;
       gap: 4px;
     }
   
     .home-version-congreso .section-header-link {
       display: none !important;
     }
   
     .news-view-all-mobile {
       display: flex !important;
     }
   
     .featured-news-main {
       display: none !important;
     }
   
     .featured-news-grid {
       flex-direction: column !important;
       gap: 0 !important;
     }
   
     .featured-news-side {
       width: 100% !important;
       gap: 16px !important;
     }
   
     .featured-news-side-card {
       height: 110px !important;
       padding: 0 !important;
       border-radius: 12px !important;
       overflow: hidden !important;
     }
   
     .featured-news-side-card-img {
       width: 110px !important;
       min-width: 110px !important;
       height: 110px !important;
       border-radius: 0 !important;
     }
   
     .featured-news-side-card-content {
       padding: 10px 12px !important;
       gap: 4px !important;
     }
   
     .featured-news-side-card-content .news-card-category {
       font-size: 9px !important;
       padding: 4px 10px !important;
     }
   
     .featured-news-side-card-content .news-card-date {
       font-size: 9px !important;
     }
   
     .featured-news-side-card-content h4 {
       font-size: 10px !important;
       line-height: 1.35 !important;
     }
   
     /* Query Loop mobile — un solo loop */
     .featured-news-tpl {
       display: flex !important;
       flex-direction: column !important;
       gap: 16px !important;
     }
   
     .featured-news-tpl > li:first-child {
       display: flex !important;
       height: 110px !important;
       padding: 0 !important;
       border-radius: 12px !important;
       overflow: hidden !important;
       flex-direction: row !important;
       gap: 16px !important;
     }
   
     .featured-news-tpl > li:not(:first-child) {
       height: 110px !important;
       padding: 0 !important;
       border-radius: 12px !important;
       overflow: hidden !important;
     }
   
     .featured-news-tpl > li:not(:first-child) .wp-block-post-featured-image,
     .featured-news-tpl > li:first-child .wp-block-post-featured-image img {
       width: 110px !important;
       min-width: 110px !important;
       height: 110px !important;
       border-radius: 0 !important;
     }
   
     .featured-news-tpl > li .featured-news-content,
     .featured-news-tpl > li:first-child .featured-news-content {
       padding: 10px 12px;
       gap: 6px!important;
     }
   
     .featured-news-tpl > li:not(:first-child) .featured-news-cat {
       font-size: 9px !important;
       padding: 4px 10px !important;
     }
   
     .featured-news-tpl > li:not(:first-child) .featured-news-date {
       font-size: 9px !important;
     }
   
     .featured-news-tpl > li:not(:first-child) .featured-news-title {
       font-size: 10px;
       line-height: 1.35;
     }
   
     /* Featured Alternativa */
     .home-version-congreso.featured-section-wrap {
       padding: 48px 0 !important;
     }
   
     .featured-alternativa-grid {
       flex-direction: column !important;
       gap: 24px !important;
     }
   
     .featured-alternativa-card {
       height: auto !important;
       border-radius: 12px !important;
     }
   
     .featured-alternativa-card-img {
       height: 180px !important;
     }
   
     .featured-alternativa-card-content {
       padding: 20px !important;
       gap: 12px !important;
     }
   
     .featured-alternativa-card-content h3 {
       font-size: 16px !important;
     }
   
     .featured-alternativa-card-content > p {
       font-size: 13px !important;
     }
   
     .featured-alternativa-card-content .wp-block-buttons {
       margin-top: 0 !important;
     }
   
     .featured-alternativa-card-content .wp-block-button__link {
       width: 100% !important;
       justify-content: center !important;
       padding: 10px 20px !important;
       font-size: 13px !important;
     }
   
     /* Documents Section */
     .home-version-congreso.docs-section-wrap {
       padding: 48px 0 !important;
     }
   
     .docs-view-all-mobile {
       display: flex !important;
     }
   
     .docs-grid-home {
       grid-template-columns: 1fr !important;
       gap: 16px !important;
     }
   
     .docs-grid-home > .wp-block-group:nth-child(n+4) {
       display: none !important;
     }
   
     /* Hero Centrada */
     .hero-centrada {
       min-height: auto !important;
       padding: 48px 20px !important;
     }
   
     .hero-centrada-deco {
       display: none !important;
     }
   
     .hero-centrada-overlay {
       display: none !important;
     }
   
     .hero-centrada-content {
       padding: 0 !important;
       gap: 24px !important;
     }
   
     .hero-centrada-badge {
       padding: 8px 16px !important;
     }
   
     .hero-centrada-badge p {
       font-size: 12px !important;
     }
   
     .hero-centrada-content > h1 {
       font-size: 20px !important;
       max-width: 100% !important;
     }
   
     .hero-centrada-content > p {
       font-size: 14px !important;
       max-width: 100% !important;
       line-height: 1.5 !important;
     }
   
     .centrada-ctas-desktop {
       display: none !important;
     }
   
     .centrada-ctas-mobile {
       display: flex !important;
       gap: 12px !important;
     }
   
     .centrada-ctas-mobile .wp-block-button:first-child .wp-block-button__link {
       background: white;
       color: var(--primary);
       font-size: 14px;
       font-weight: 600;
       padding: 12px 20px;
       border-radius: 8px;
     }
   
     .centrada-ctas-mobile .wp-block-button:last-child .wp-block-button__link {
       color: white;
       font-size: 14px;
       font-weight: 600;
       padding: 12px 20px;
       border-radius: 8px;
       border: 1px solid rgba(255,255,255,0.19);
       background: transparent;
     }
   
     .hero-centrada-stats {
       height: auto !important;
       padding: 20px 0 !important;
       background: rgba(255,255,255,0.03) !important;
       border: 1px solid rgba(255,255,255,0.06) !important;
       border-radius: 12px !important;
     }
   
     .hero-centrada-stat .stat-value {
       font-size: 22px !important;
     }
   
     .hero-centrada-stat .stat-label {
       font-size: 10px !important;
     }
   
     .hero-centrada-divider {
       height: 32px !important;
     }
   
     /* Association Section */
     .association-section-mix > .wp-block-group {
       flex-direction: column !important;
       gap: 24px !important;
       padding: 0 20px !important;
     }
   
     .association-text-wrapper {
       width: 100% !important;
     }
   
     .association-text-wrapper .section-header-text h2 span {
       font-size: 22px !important;
     }
   
     .association-text-wrapper > p:first-of-type {
       font-size: 16px !important;
     }
   
     .association-text-wrapper > p:last-of-type {
       font-size: 14px !important;
     }
   
     .association-text-wrapper .wp-block-button__link {
       width: 100% !important;
       display: flex !important;
       justify-content: center !important;
     }
   
     .association-img-wrapper {
       width: 100% !important;
       height: 200px !important;
       border-radius: 12px !important;
     }
   
     /* Recruitment */
     .recruitment-section-bg {
       height: auto !important;
       padding: 48px 0 !important;
     }
   
     .recruitment-section-bg > .wp-block-group {
       height: auto !important;
       padding: 0 20px !important;
     }
   
     .recruitment-section-bg .recruitment-cards {
       flex-direction: column !important;
       gap: 24px !important;
     }
   
     .recruitment-card {
       width: 100% !important;
       padding: 24px !important;
     }
   
     .recruitment-card-icon {
       width: 56px !important;
       height: 56px !important;
       border-radius: 28px !important;
       margin-bottom: 16px !important;
     }
   
     .recruitment-card-icon figure img {
       width: 24px !important;
       height: 24px !important;
     }
   
     .recruitment-card h3 {
       font-size: 18px !important;
     }
   
     .recruitment-card > p {
       font-size: 14px !important;
     }
   
     .recruitment-card .wp-block-buttons {
       margin-top: 16px !important;
     }
   
     .recruitment-card .wp-block-button__link {
       width: 100% !important;
       justify-content: center !important;
     }
   }
   
/* ── Social Links: iconos SVG personalizados (stroke) ── */
.wp-social-link svg {
  width: 18px !important;
  height: 18px !important;
}

.wp-social-link-youtube svg {
  width: 20px !important;
  height: 20px !important;
}

.wp-social-link-linkedin svg,
.wp-social-link-youtube svg,
.wp-social-link-instagram svg {
  fill: none !important;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

   /* ── Old post: ocultar primera imagen del contenido ── */
   
   body.old-post .entry-content img:first-of-type {
     display: none;
   }

/* ── Post URL button (shortcode) ── */

.post-url-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--primary);
  color: white;
  border: none;
  border-radius: var(--radius-md);
  padding: 10px 20px;
  font-size: 15px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s ease;
  min-width: 112px;
}

.post-url-button svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.post-url-button:hover {
  background: var(--primary-dark);
  color: white;
}

/* fix resposive hero congreso */
@media (max-width: 767px) {
    .wp-block-cover.hero-home.hero-home-v1 {
        min-height: 750px !important;
	}
	.hide-mobile{
		display:none!important;
	}
}
