.hero{
      position:relative;
      overflow-x:clip;
      overflow-y:visible;
      padding:6.5rem 0 5rem;
      width:100%;
      max-width:100%;
      background:linear-gradient(135deg,var(--dark),var(--dark-blue),var(--primary));
      color:var(--white)
    }
    .hero::before{
      content:"";position:absolute;inset:0;
      background:
        radial-gradient(circle at top right,rgba(111,163,240,.38),transparent 34%),
        linear-gradient(rgba(10,15,30,.5),rgba(10,15,30,.55));
      opacity:.82;
      pointer-events:none
    }

    /* Hero con imagen de fondo (experimental)
       ACTIVAR:  class="hero hero--image-bg" en index.html
       REVERTIR: quitar hero--image-bg → vuelve el gradiente azul
       Cambiar imagen: editar --hero-bg-image
       En móvil/tablet usa solo gradiente (sin imagen). */
    .hero--image-bg{
      background-color:var(--dark);
      background-image:
        linear-gradient(135deg,rgba(10,15,30,.9),rgba(10,22,40,.84) 48%,rgba(27,79,168,.78)),
        url('/assets/img/Back-home.webp');
      background-position:center center;
      background-size:cover;
      background-repeat:no-repeat;
    }
    .hero--image-bg::before{
      background:
        radial-gradient(circle at 72% 28%,rgba(111,163,240,.2),transparent 44%),
        linear-gradient(180deg,rgba(10,15,30,.2),rgba(10,15,30,.58));
      opacity:1;
    }
    @media (max-width:767px){
      .hero--image-bg{
        background:linear-gradient(135deg,var(--dark),var(--dark-blue),var(--primary));
      }
      .hero--image-bg::before{
        background:
          radial-gradient(circle at top right,rgba(111,163,240,.38),transparent 34%),
          linear-gradient(rgba(10,15,30,.5),rgba(10,15,30,.55));
        opacity:.82;
      }
    }

    .hero-grid{
      position:relative;
      z-index:1;
      display:grid;
      grid-template-columns:minmax(0,1.08fr) minmax(280px,440px);
      gap:2.35rem 2.75rem;
      align-items:center;
      width:100%;
      max-width:min(1080px,100%);
      margin-inline:auto;
      min-width:0;
    }

    /* Hero home — distribución 3 columnas */
    .hero--triptych{
      padding:5.5rem 0 4.5rem;
      width:100%;
      max-width:100%;
      overflow-x:clip;
    }

    .hero-triptych{
      position:relative;
      z-index:1;
      width:100%;
      max-width:min(1240px,100%);
      margin-inline:auto;
      min-width:0;
    }

    .hero-triptych__grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:1.75rem;
      align-items:stretch;
    }

    .hero-triptych__col{
      min-width:0;
    }

    .hero-triptych__col--left{
      display:flex;
      flex-direction:column;
    }

    .hero-triptych__split-card{
      display:flex;
      flex-direction:column;
      height:100%;
      background:rgba(255,255,255,.97);
      color:var(--dark);
      border-radius:24px;
      overflow:hidden;
      box-shadow:0 22px 60px rgba(0,0,0,.2);
      border:1px solid rgba(255,255,255,.65);
    }

    .hero-triptych__visual{
      flex:1 1 50%;
      min-height:0;
      width:100%;
      display:flex;
      align-items:center;
      justify-content:center;
      overflow:hidden;
      border-bottom:1px solid var(--border);
      background:var(--white);
      padding:.75rem .75rem 0;
    }

    .hero-triptych__visual img{
      display:block;
      width:100%;
      height:100%;
      object-fit:contain;
      object-position:center;
    }

    .hero-triptych__split-card .hero-triptych__lead{
      flex:1 1 50%;
      min-height:0;
      margin:0;
      padding:1.15rem 1.25rem 1.35rem;
      display:flex;
      align-items:center;
      font-size:1rem;
      line-height:1.7;
      color:var(--dark);
      font-weight:600;
      max-width:none;
    }

    .hero-triptych__lead{
      margin-top:1.15rem;
      font-size:.98rem;
      line-height:1.75;
      color:rgba(255,255,255,.88);
      max-width:none;
    }

    .hero-triptych__actions{
      justify-content:center;
      margin-top:1.75rem;
      gap:.85rem 1rem;
    }

    .hero-triptych__brand-card{
      background:rgba(255,255,255,.97);
      color:var(--dark);
      border-radius:24px;
      padding:1.35rem 1.25rem 1.5rem;
      box-shadow:0 22px 60px rgba(0,0,0,.2);
      border:1px solid rgba(255,255,255,.65);
      height:100%;
    }

    .hero-triptych__logo{
      display:block;
      width:100%;
      max-width:100%;
      height:auto;
      margin-bottom:1rem;
    }

    .hero-triptych__quote{
      margin:0 0 1.1rem;
      font-size:.84rem;
      line-height:1.65;
      color:var(--muted);
      font-weight:500;
    }

    .hero-triptych__subtitle{
      font-size:1.05rem;
      font-weight:800;
      margin:0 0 .75rem;
      color:var(--dark);
    }

    .hero-triptych__list{
      list-style:none;
      display:grid;
      gap:.55rem;
      font-size:.9rem;
      line-height:1.5;
      color:var(--dark);
      font-weight:600;
    }

    .hero-triptych__list li{
      position:relative;
      padding-left:1rem;
    }

    .hero-triptych__list li::before{
      content:"";
      position:absolute;
      left:0;
      top:.55em;
      width:.35rem;
      height:.35rem;
      border-radius:50%;
      background:var(--primary);
    }

    .hero-triptych__founder{
      margin:0;
      text-align:center;
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:1rem;
    }

    .hero-triptych__portrait-wrap{
      width:min(100%,280px);
      aspect-ratio:1;
      border-radius:50%;
      overflow:hidden;
      border:4px solid rgba(255,255,255,.22);
      box-shadow:0 22px 56px rgba(0,0,0,.28);
    }

    .hero-triptych__portrait{
      display:block;
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center 58%;
    }

    .hero-triptych__founder figcaption{
      display:grid;
      gap:.35rem;
    }

    .hero-triptych__founder strong{
      font-size:1.15rem;
      font-family:var(--font-display);
      color:var(--white);
    }

    .hero-triptych__founder span{
      font-size:.92rem;
      color:rgba(255,255,255,.78);
      font-weight:600;
    }

    .eyebrow{
      display:inline-flex;
      flex-wrap:wrap;
      max-width:100%;
      background:rgba(255,255,255,.12);
      border:1px solid rgba(255,255,255,.12);
      border-radius:999px;
      padding:.5rem 1rem;
      font-size:.85rem;
      margin-bottom:1.5rem;
      line-height:1.45;
    }
    .hero h1{
      font-family:var(--font-display);
      font-size:clamp(2.05rem,3.35vw,3.85rem);
      line-height:1.12;
      margin-bottom:1.3rem;
      max-width:32rem;
      overflow-wrap:normal;
      word-break:normal;
      hyphens:none;
    }
    .hero h1 .hero-h1-line{
      display:block;
    }
    .hero h1 .hero-h1-end{
      white-space:nowrap;
    }

    .hero--triptych .hero-triptych__title{
      font-family:var(--font-display);
      font-size:clamp(2rem,4.1vw,3.65rem);
      line-height:1.14;
      text-align:center;
      max-width:100%;
      padding-inline:.25rem;
      margin:0 auto 2.5rem;
      font-weight:700;
    }

    .hero p{font-size:1.05rem;line-height:1.8;color:rgba(255,255,255,.86);max-width:36rem}
    .hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem;position:relative;z-index:6}

    .hero-grid > div:first-child{
      align-self:center;
      min-width:0;
    }

    .hero-visual{
      position:relative;
      width:100%;
      max-width:440px;
      justify-self:end;
      min-width:0;
      min-height:clamp(500px,62vh,660px);
      aspect-ratio:4/5;
      transform:translateY(var(--parallax-y, 0));
    }
    .hero-image-card{
      position:absolute;
      inset:0;
      border-radius:38px;
      overflow:hidden;
      min-height:0;
      background:
        linear-gradient(rgba(10,15,30,.08),rgba(10,15,30,.35)),
        url('/assets/img/Antonio_Montecinos_CV.webp') center/cover no-repeat;
      border:1px solid rgba(255,255,255,.18);
      box-shadow:0 28px 80px rgba(0,0,0,.32);
    }
    .hero-floating-card{
      position:absolute;
      left:1.35rem;
      right:1.35rem;
      bottom:1.35rem;
      z-index:2;
      background:rgba(255,255,255,.1);
      border:1px solid rgba(255,255,255,.14);
      backdrop-filter:blur(18px);
      -webkit-backdrop-filter:blur(18px);
      border-radius:24px;
      padding:1.35rem;
      margin-top:0;
      width:auto;
      max-width:none;
      justify-self:unset;
      box-shadow:0 20px 60px rgba(0,0,0,.22);
    }
    .hero:has(.btn-dropdown.is-open){
      padding-bottom:7.5rem;
    }
    .hero-floating-card h3{margin-bottom:.8rem}
    .hero-floating-card ul{list-style:none;display:grid;gap:.65rem;color:rgba(255,255,255,.84);line-height:1.5}

    .stats-band{margin-top:-2rem;position:relative;z-index:4}
    .stats-panel{
      background:var(--white);
      border:1px solid var(--border);
      border-radius:30px;
      padding:1.3rem;
      box-shadow:var(--shadow);
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:1rem;
    }
    .stat-item{padding:1.35rem;text-align:center;border-radius:22px;background:var(--bg)}
    .stat-item strong{display:block;font-size:2rem;color:var(--primary);font-family:var(--font-display);margin-bottom:.35rem}
    .stat-item span{color:var(--muted);font-size:.92rem}

    

    .split-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:3rem;align-items:center}

    #dr-antonio .mini-grid{
      grid-template-columns:repeat(3,minmax(0,1fr));
      margin-top:1.75rem;
      width:100%;
    }
    .image-frame{
      min-height:470px;
      border-radius:34px;
      overflow:hidden;
      background:linear-gradient(rgba(10,15,30,.05),rgba(10,15,30,.18));
      box-shadow:var(--shadow);
      border:1px solid var(--border);
    }
    .image-frame--consultoria{
      background:linear-gradient(rgba(10,15,30,.10),rgba(10,15,30,.25));
    }
    .image-frame--logo{
      background:#fff;
      min-height:380px;
    }

    

    .service-card{
      min-height:360px;
      border-radius:30px;
      overflow:hidden;
      position:relative;
      isolation:isolate;
      display:flex;
      align-items:flex-end;
      padding:1.7rem;
      color:var(--white);
      box-shadow:var(--shadow);
      border:none;
    }
    .service-card.is-bg-loaded::after{
      content:"";
      position:absolute;
      inset:0;
      border-radius:inherit;
      background-image:var(--lazy-bg-url);
      background-size:cover;
      background-position:center;
      background-repeat:no-repeat;
      z-index:0;
      pointer-events:none;
    }
    .service-card::before{
      content:"";
      position:absolute;
      inset:0;
      border-radius:inherit;
      background:linear-gradient(to top,rgba(10,15,30,.94) 0%,rgba(10,15,30,.62) 42%,rgba(10,15,30,.28) 100%);
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);
      z-index:1;
      pointer-events:none;
    }
    .service-card > div{position:relative;z-index:2}
    .service-card h3{font-size:1.3rem;margin-bottom:.5rem}
    .service-card p{color:rgba(255,255,255,.78);line-height:1.6;margin-bottom:1rem}
    .service-card a{font-weight:800;color:var(--white)}

    .featured-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:1.5rem;align-items:stretch}
    .book-cover{
      min-height:390px;
      border-radius:32px;
      background-color:var(--bg-2);
      box-shadow:var(--shadow);
      border:1px solid var(--border);
    }
    .feature-card{background:var(--white);border:1px solid var(--border);border-radius:32px;padding:2rem;box-shadow:var(--shadow)}
    .feature-card .price{font-size:1.7rem;color:var(--primary);font-family:var(--font-display);font-weight:700;margin:1rem 0}

    @media(max-width:980px){

  .hero-grid,
  .hero-triptych__grid,
  .split-grid,
  .featured-grid{
    grid-template-columns:1fr;
    max-width:100%;
  }

  .hero-triptych__grid{
    gap:2rem;
  }

  .hero-triptych__col--center{
    order:1;
  }

  .hero-triptych__col--left{
    order:2;
  }

  .hero-triptych__col--right{
    order:3;
  }

  .hero-triptych__portrait-wrap{
    width:min(72vw,300px);
    margin-inline:auto;
  }

  .hero h1{
    max-width:100%;
  }

  .hero p{
    max-width:100%;
  }

  .stats-panel{
    grid-template-columns:repeat(2,1fr);
  }

  .mini-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .nav-link,
  .header-social{
    display:none;
  }

  .hero-floating-card{
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    width:100%;
    max-width:100%;
    justify-self:stretch;
    margin-top:-3rem;
  }

  .hero-visual{
    min-height:0;
    max-width:100%;
    justify-self:stretch;
    aspect-ratio:4/3;
    display:grid;
    gap:1rem;
  }

  .hero-image-card{
    position:relative;
    inset:auto;
    min-height:380px;
    aspect-ratio:4/3;
    border-radius:34px;
  }

  .hero-grid > *{
    min-width:0;
  }

  .split-grid > *,
  .hero-triptych__grid > *,
  .featured-grid > *{
    min-width:0;
  }

  .hero-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .image-frame{
    min-height:420px;
  }

  .book-cover{
    min-height:420px;
  }
}

@media(max-width:640px){

  .hero{
    padding:5.3rem 0 4rem;
    width:100%;
  }

  .hero--triptych{
    padding:5rem 0 3.5rem;
  }

  .hero--triptych .hero-triptych__title{
    font-size:clamp(1.65rem,6.8vw,2.1rem);
    margin-bottom:1.75rem;
  }

  .hero-triptych__brand-card{
    padding:1.15rem 1rem 1.25rem;
  }

  .hero-triptych__quote{
    font-size:.8rem;
  }

  .hero-triptych__actions{
    flex-direction:column;
    align-items:stretch;
  }

  .hero h1{
    font-size:clamp(1.95rem,7.5vw,2.35rem);
    line-height:1.14;
  }

  .hero-actions{
    flex-direction:column;
  }

  .btn{
    width:100%;
  }

  .sidebar-panel{
    width:100%;
  }

  .stats-band{
    margin-top:-1rem;
  }

  .stats-panel{
    grid-template-columns:1fr;
    padding:1rem;
  }

  .mini-grid{
    grid-template-columns:1fr;
  }

  .hero-floating-card{
    width:100%;
    max-width:100%;
    justify-self:stretch;
    margin-top:-1.5rem;
  }
}

/* Iconos mini-card (respaldo si components.css está en caché) */
.mini-card-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  width:1.35rem;
  height:1.35rem;
  margin-top:.12rem;
  color:var(--primary);
}

.mini-card-icon svg{
  display:block;
  width:100%;
  height:100%;
  max-width:1.35rem;
  max-height:1.35rem;
}

/* Próximos eventos — carrusel */
.events-section__title{
  color:var(--primary);
  max-width:none;
  text-align:center;
  margin-inline:auto;
}

.events-carousel{
  position:relative;
}

.events-carousel--all-visible .events-carousel__nav,
.events-carousel--all-visible .events-carousel__dots{
  display:none !important;
}

.events-carousel--all-visible .events-carousel__viewport{
  overflow:visible;
  padding:0;
  scroll-snap-type:none;
}

.events-carousel--all-visible .events-carousel__track{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
}

.events-carousel--all-visible .event-card{
  flex:none;
  width:auto;
  scroll-snap-align:unset;
}

.events-carousel__controls{
  display:flex;
  align-items:center;
  gap:1rem;
}

.events-carousel__viewport{
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:.25rem .1rem 1rem;
}

.events-carousel__viewport::-webkit-scrollbar{display:none}

.events-carousel__track{
  display:flex;
  gap:1.25rem;
}

.event-card{
  flex:0 0 clamp(320px,36vw,420px);
  width:clamp(320px,36vw,420px);
  scroll-snap-align:start;
  display:flex;
  flex-direction:column;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:20px;
  overflow:hidden;
}

.event-card__media{
  position:relative;
  height:375px;
  background:var(--bg-2);
}

.event-card__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
}

.event-card__overlay{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:.65rem;
  padding:1.1rem;
  background:linear-gradient(180deg,rgba(10,15,30,.08),rgba(10,15,30,.82));
  color:var(--white);
}

.event-card__eyebrow{
  display:inline-flex;
  align-self:flex-start;
  padding:.35rem .7rem;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.event-card__overlay h3,
.event-card__body h3{
  font-family:var(--font-display);
  font-size:1.05rem;
  line-height:1.35;
}

.event-card__body{
  display:flex;
  align-items:center;
  height:375px;
  padding:1.1rem 1rem;
  min-height:0;
  background:linear-gradient(135deg,var(--primary-pale),#fff 58%);
}

.event-card__body h3{
  color:var(--dark);
}

.event-card__footer{
  padding:.8rem 1.15rem;
  border-top:1px solid var(--border);
  background:var(--white);
  color:var(--primary);
  font-size:.88rem;
  font-weight:700;
  line-height:1.4;
}

.events-carousel__nav{
  display:flex;
  justify-content:flex-end;
  gap:.65rem;
  margin-bottom:1.25rem;
}

.events-carousel__btn{
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--white);
  color:var(--primary);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:.2s;
  box-shadow:0 8px 24px rgba(10,15,30,.08);
}

.events-carousel__btn:hover:not(:disabled){
  transform:translateY(-2px);
  background:var(--primary);
  color:var(--white);
}

.events-carousel__btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}

.events-carousel__btn svg{
  width:18px;
  height:18px;
}

.events-carousel__dots{
  display:flex;
  justify-content:center;
  gap:.55rem;
  margin-top:1rem;
}

.events-carousel__dot{
  width:9px;
  height:9px;
  border-radius:999px;
  border:none;
  padding:0;
  background:rgba(27,79,168,.22);
  cursor:pointer;
  transition:.2s;
}

.events-carousel__dot.is-active{
  width:24px;
  background:var(--primary);
}

@media (max-width:980px){
  .events-carousel--all-visible .events-carousel__track{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .event-card{
    flex-basis:clamp(300px,52vw,380px);
    width:clamp(300px,52vw,380px);
  }

  .events-carousel--all-visible .event-card{
    flex-basis:auto;
    width:auto;
  }

  .event-card__media,
  .event-card__body{
    height:340px;
  }
}

@media (max-width:640px){
  .events-carousel--all-visible .events-carousel__track{
    grid-template-columns:1fr;
  }

  .event-card{
    flex-basis:min(88vw,420px);
    width:min(88vw,420px);
  }

  .event-card__media,
  .event-card__body{
    height:320px;
  }
}
