/* ===========================================================
   Actuar por Bolívar — maquetado fiel a Figma (node 21:3673)
   =========================================================== */

:root{
  --indigo-900:#292277;
  --indigo-overlay:#1c1a66;
  --green-bright:#a9e989;
  --green-cta:#40962f;
  --green-cta-hover:#357a27;
  --green-stripe:#00a759;
  --ink:#1c1a3e;
  --font:'Montserrat', sans-serif;
  --container-max:1408px;
  --container-pad:36px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  width:100vw;
  overflow-x:hidden;
  font-family:var(--font);
  color:var(--ink);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
section[id],
header[id],
footer[id]{scroll-margin-top:96px;}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,p{margin:0;}
button{font-family:inherit;}

.container{
  width:100%;
  max-width:calc(var(--container-max) + var(--container-pad) * 2);
  margin:0 auto;
  padding:0 var(--container-pad);
}

.top-stripe{height:4px;width:100%;background:var(--green-stripe);}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:16px 24px;
  font-family:var(--font);
  font-weight:800;
  font-size:12px;
  letter-spacing:1.56px;
  text-transform:uppercase;
  white-space:nowrap;
  border:none;
  cursor:pointer;
  transition:background-color .25s ease, opacity .25s ease;
}
.btn--solid{background:var(--green-cta);color:#fff;}
.btn--solid:hover{background:var(--green-cta-hover);}
.btn--outline{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45);}
.btn--outline:hover{background:rgba(255,255,255,.1);}
.btn--donar{
  position:fixed;
  top:37px;
  right:48px;
  background:var(--green-cta);
  color:#fff;
  z-index:101;
  transition:top .3s ease, background-color .25s ease;
}
body.is-scrolled .btn--donar{top:20px;}

/* ---------- Scroll reveal ---------- */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s cubic-bezier(.22,.9,.32,1), transform .7s cubic-bezier(.22,.9,.32,1);
}
.reveal.is-visible{opacity:1;transform:translateY(0);}

.services__grid > .reveal:nth-child(1){transition-delay:.05s;}
.services__grid > .reveal:nth-child(2){transition-delay:.12s;}
.services__grid > .reveal:nth-child(3){transition-delay:.19s;}
.services__grid > .reveal:nth-child(4){transition-delay:.26s;}
.services__grid > .reveal:nth-child(5){transition-delay:.33s;}

.courses__grid > .reveal:nth-child(1){transition-delay:.05s;}
.courses__grid > .reveal:nth-child(2){transition-delay:.14s;}
.courses__grid > .reveal:nth-child(3){transition-delay:.23s;}

.gallery__grid > .reveal:nth-child(1){transition-delay:.04s;}
.gallery__grid > .reveal:nth-child(2){transition-delay:.1s;}
.gallery__grid > .reveal:nth-child(3){transition-delay:.16s;}
.gallery__grid > .reveal:nth-child(4){transition-delay:.22s;}
.gallery__grid > .reveal:nth-child(5){transition-delay:.28s;}
.gallery__grid > .reveal:nth-child(6){transition-delay:.34s;}

.journal__grid > .reveal:nth-child(1){transition-delay:.05s;}
.journal__grid > .reveal:nth-child(2){transition-delay:.14s;}
.journal__grid > .reveal:nth-child(3){transition-delay:.23s;}

.allies__grid > .reveal:nth-child(1){transition-delay:.03s;}
.allies__grid > .reveal:nth-child(2){transition-delay:.08s;}
.allies__grid > .reveal:nth-child(3){transition-delay:.13s;}
.allies__grid > .reveal:nth-child(4){transition-delay:.18s;}
.allies__grid > .reveal:nth-child(5){transition-delay:.23s;}
.allies__grid > .reveal:nth-child(6){transition-delay:.28s;}
.allies__grid > .reveal:nth-child(7){transition-delay:.33s;}
.allies__grid > .reveal:nth-child(8){transition-delay:.38s;}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  .nav-links a{transition:color .15s ease;transform:none;}
  .nav-links.is-open a{opacity:1;}
}

/* ===========================================================
   HERO
   =========================================================== */
.hero{
  position:relative;
  width:100%;
  min-height:989px;
  overflow:hidden;
  background:var(--indigo-900);
}
.hero__bg{position:absolute;inset:0;overflow:hidden;}
.hero__bg img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;
  transform:scale(1);
  transition:opacity 1.1s ease;
  animation:hero-slide-zoom 9s ease-in-out infinite alternate;
  animation-play-state:paused;
}
.hero__bg img.is-active{opacity:1;animation-play-state:running;}
@keyframes hero-slide-zoom{0%{transform:scale(1);}100%{transform:scale(1.08);}}

/* --- Dots del slider --- */
.hero__dots{
  position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:5;
  display:flex;gap:10px;
}
.hero__dot{
  width:9px;height:9px;padding:0;border-radius:50%;
  border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.25);
  cursor:pointer;transition:background-color .3s ease,transform .3s ease,border-color .3s ease;
}
.hero__dot:hover{background:rgba(255,255,255,.55);}
.hero__dot.is-active{background:var(--green-bright);border-color:var(--green-bright);transform:scale(1.3);}

/* --- Flechas del slider --- */
.hero__arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:48px;height:48px;padding:0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.18);color:#fff;
  cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease;
}
.hero__arrow svg{width:22px;height:22px;}
.hero__arrow--prev{left:24px;}
.hero__arrow--next{right:24px;}
.hero__arrow:hover,.hero__arrow:focus-visible{background:var(--green-bright);border-color:var(--green-bright);}
@media (max-width:1499px){
  .hero__arrow{width:32px;height:32px;}
  .hero__arrow svg{width:16px;height:16px;}
  .hero__arrow--prev{left:2px;}
  .hero__arrow--next{right:2px;}
}
@media (max-width:767px){
  .hero__arrow{top:auto;bottom:12px;transform:none;}
  .hero__arrow--prev{left:12px;}
  .hero__arrow--next{right:12px;}
}

@media (prefers-reduced-motion:reduce){
  .hero__bg img{transition:none;animation:none;}
}
.hero__overlay{
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(28,26,102,.97) 0%,
    rgba(28,26,102,.86) 40%,
    rgba(28,26,102,.18) 78%);
}
.hero__bottom-fade{
  position:absolute;left:0;bottom:0;width:100%;height:192px;
  background:linear-gradient(to top, var(--indigo-900) 0%, rgba(41,34,119,0) 100%);
  pointer-events:none;
}
.hero .deco--blob14{position:absolute;width:364px;left:-170px;top:466px;border-radius:0;pointer-events:none;--float-x:6px;--float-y:-14px;--float-r:-2deg;--float-dur:8.2s;--float-delay:.7s;}

/* --- Nav --- */
.nav-row{
  position:fixed;top:0;left:0;width:100%;
  padding:30px 0 20px;
  z-index:100;
  transition:background-color .3s ease, box-shadow .3s ease;
}
.nav-row__inner{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:24px;
}
body.is-scrolled .nav-row{
  background:var(--indigo-900);
  padding-top:16px;padding-bottom:16px;
  box-shadow:0 4px 20px rgba(0,0,0,.18);
}
.nav-logo{width:147px;}
.nav-logo img{width:100%;}
.nav-links{grid-column:2;justify-self:center;display:flex;align-items:center;gap:50px;}
.nav-links a{
  font-weight:700;font-size:17px;letter-spacing:.23px;
  color:rgba(255,255,255,.75);
  text-shadow:0 1px 4px rgba(0,0,0,.45);
  padding:4px 0;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.nav-links a:hover{color:#fff;border-color:rgba(255,255,255,.5);}
.nav-toggle{display:none;}
.nav-links__donar{display:none;}

/* --- Contenido hero --- */
.hero__content{position:absolute;top:319px;left:0;right:0;}
.hero__title{
  max-width:768px;
  font-size:clamp(2.75rem, 1.2rem + 4vw, 5.8rem);
  font-weight:600;
  line-height:.91;
  letter-spacing:-.055em;
  color:#fff;
}
.hero__title .is-accent{color:var(--green-bright);}
.hero__title .is-regular{font-weight:400;}
.hero__lead{
  max-width:576px;
  padding-top:28px;
  font-size:18px;
  line-height:29.25px;
  color:rgba(255,255,255,.85);
}
.hero__ctas{display:flex;gap:12px;padding-top:36px;flex-wrap:wrap;}

.hero__stat{
  position:absolute;
  left:50.05%;
  top:69.6%;
  width:256px;
  max-width:40%;
  padding-left:20px;
  border-left:1px solid rgba(255,255,255,.3);
}
.hero__stat-number{
  font-size:48px;font-weight:700;color:var(--green-bright);line-height:1;
}
.hero__stat-text{
  padding-top:4px;
  font-size:14px;line-height:22.75px;color:#fff;
  max-width:235px;
}

/* ===========================================================
   RESPONSIVE — Hero
   =========================================================== */
@media (max-width:1200px){
  .hero__stat{top:64%;}
}

@media (max-width:1024px){
  .hero .deco--blob14{display:none;}
}

@media (max-width:1024px){
  .hero{min-height:820px;}
  .nav-row{padding:24px 0 0;}
  .nav-row__inner{grid-template-columns:auto 1fr auto;}
  .nav-logo{width:120px;position:relative;z-index:40;}
  .nav-toggle{grid-column:3;justify-self:end;}
  .nav-links{
    position:fixed;inset:0;
    grid-column:auto;justify-self:auto;width:100%;
    flex-direction:column;justify-content:center;align-items:stretch;gap:0;
    padding:0 clamp(28px,8vw,56px);
    background:
      linear-gradient(158deg, #29276b 0%, var(--indigo-900) 45%, #1c1a52 100%);
    overflow:hidden;
    transform:translateX(100%);
    transition:transform .5s cubic-bezier(.22,.9,.32,1);
    z-index:30;
    counter-reset:navitem;
  }
  .nav-links::after{
    content:"";position:absolute;right:-60px;bottom:-40px;width:280px;height:251px;
    background:url("../imagenes/actuar/decor/vector14-blob.svg") center/contain no-repeat;
    opacity:.14;pointer-events:none;
  }
  .nav-links.is-open{transform:translateX(0);}

  .nav-links a{
    position:relative;z-index:1;
    opacity:0;transform:translateY(18px);
    transition:opacity .5s ease, transform .5s ease, color .25s ease, padding-left .25s ease;
  }
  .nav-links.is-open a{opacity:1;transform:translateY(0);}
  .nav-links a:nth-child(1){transition-delay:.06s;}
  .nav-links a:nth-child(2){transition-delay:.11s;}
  .nav-links a:nth-child(3){transition-delay:.16s;}
  .nav-links a:nth-child(4){transition-delay:.21s;}
  .nav-links a:nth-child(5){transition-delay:.26s;}
  .nav-links a:nth-child(6){transition-delay:.31s;}
  .nav-links a:nth-child(7){transition-delay:.38s;}

  .nav-links a:not(.nav-links__donar){
    display:flex;align-items:baseline;gap:16px;
    padding:16px 0;
    border-bottom:1px solid rgba(255,255,255,.14);
    font-size:23px;font-weight:700;letter-spacing:-.01em;color:#fff;
    counter-increment:navitem;
  }
  .nav-links a:not(.nav-links__donar)::before{
    content:counter(navitem,decimal-leading-zero);
    font-size:12px;font-weight:800;letter-spacing:.1em;
    color:var(--green-bright);font-variant-numeric:tabular-nums;
  }
  .nav-links a:not(.nav-links__donar):last-of-type{border-bottom:none;}
  .nav-links a:not(.nav-links__donar):hover,
  .nav-links a:not(.nav-links__donar):focus-visible{color:var(--green-bright);padding-left:8px;}

  .nav-toggle{
    display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:40px;height:40px;background:none;border:none;cursor:pointer;z-index:40;
  }
  .nav-toggle span{display:block;width:24px;height:2px;background:#fff;transition:transform .25s ease, opacity .25s ease;}
  .nav-toggle.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.is-active span:nth-child(2){opacity:0;}
  .nav-toggle.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  body.nav-open{overflow:hidden;}
  .btn--donar{display:none;}
  .nav-links__donar{
    display:inline-flex;justify-content:center;align-self:flex-start;
    margin-top:28px;padding:15px 32px;
  }
  .hero__content{position:relative;top:auto;left:auto;right:auto;padding-top:110px;}
  .hero__stat{position:relative;top:auto;left:auto;width:auto;max-width:none;margin:32px var(--container-pad) 0;border-left:none;border-top:1px solid rgba(255,255,255,.3);padding:20px 0 0;}
}

@media (max-width:640px){
  :root{--container-pad:20px;}
  .hero{
    min-height:100vh;
    min-height:100svh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:96px 0 32px;
  }
  .hero__content{padding-top:0;}
  .hero__title{
    max-width:100%;letter-spacing:-.02em;line-height:.98;
    font-size:clamp(2.2rem, 7vw + .8rem, 2.75rem);
  }
  .hero__lead{max-width:100%;padding-top:16px;font-size:15px;line-height:1.55;}
  .hero__ctas{padding-top:20px;flex-direction:column;align-items:stretch;gap:10px;}
  .hero__ctas .btn{width:100%;padding:13px 20px;font-size:11px;}
  .hero__stat{margin:22px 20px 0;padding-top:14px;}
  .hero__stat-number{font-size:38px;}
  .hero__stat-text{font-size:13px;line-height:1.5;}
  .hero__bottom-fade{display:none;}
}

/* ===========================================================
   ABOUT / HISTORIA
   =========================================================== */
.about{padding:20px 0;background:#fff;overflow:hidden;}
.about__grid{
  display:grid;
  grid-template-columns:502fr 754fr;
  gap:80px;
  align-items:start;
}
.about__media{position:relative;}
.about__media-accent{
  position:absolute;left:-33px;top:-30px;width:179px;height:332px;
  background:var(--green-bright);border-radius:21px;z-index:0;
}
.about__photo{
  position:relative;z-index:1;
  width:100%;aspect-ratio:502/628;object-fit:cover;border-radius:30px;
}
.about__badge{
  position:absolute;z-index:2;right:-24px;bottom:-28px;width:240px;
  background:var(--green-cta);border-radius:20px;padding:20px;color:#fff;
}
.about__badge-year{font-size:30px;line-height:1.2;margin-bottom:4px;}
.about__badge-text{font-size:12px;line-height:1.625;}

.about__content{color:var(--indigo-900);padding-top:32px;}
.about__brand{
  font-size:min(6.6vw, 128px);font-weight:600;line-height:.625;
  color:var(--indigo-900);letter-spacing:-.01em;
}
.about__brand-sub{
  font-size:min(2.1vw, 40px);font-weight:400;color:var(--indigo-900);
  margin-top:14px;
}
.about__lead{
  max-width:672px;padding-top:28px;font-size:18px;line-height:29.25px;
  color:rgba(21,25,66,.7);
}
.about__pillars{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:rgba(21,25,66,.15);
  margin-top:40px;
}
.about__pillar{background:#f4f7fc;padding:20px;}
.about__pillar h3{font-size:24px;font-weight:400;color:var(--indigo-900);}
.about__pillar p{padding-top:8px;font-size:14px;line-height:22.75px;color:rgba(21,25,66,.65);}
.about__cta-row{display:flex;justify-content:flex-end;margin-top:40px;}

@media (max-width:900px){
  .about__grid{grid-template-columns:1fr;gap:56px;}
  .about__media{max-width:420px;}
  .about__content{padding-top:0;}
}

@media (max-width:640px){
  .about{padding:72px 0;}
  .about__media-accent{display:none;}
  .about__media{max-width:none;}
  .about__badge{position:static;width:auto;margin:20px 0 0;border-radius:16px;}
  .about__photo{border-radius:20px;}
  .about__brand{font-size:clamp(2.75rem,16vw,5rem);}
  .about__brand-sub{font-size:clamp(1.25rem,6vw,1.75rem);margin-top:8px;}
  .about__pillars{grid-template-columns:1fr;margin-top:32px;}
  .about__cta-row .btn{width:100%;}
}

/* ===========================================================
   SERVICES
   =========================================================== */
.services{position:relative;background:#e9eef9;padding:32px 0;}
.services__deco{position:absolute;top:0;bottom:0;left:50%;width:100%;max-width:1920px;transform:translateX(-50%);pointer-events:none;z-index:0;}

/* Flotación ambiental de los elementos decorativos (círculos/blobs) */
@keyframes deco-float{
  0%,100%{transform:translate(0,0) rotate(0deg);}
  50%{transform:translate(var(--float-x,0), var(--float-y,-14px)) rotate(var(--float-r,0deg));}
}
.deco{
  position:absolute;display:block;border-radius:50%;
  animation:deco-float var(--float-dur,7s) ease-in-out infinite;
  animation-delay:var(--float-delay,0s);
}
@media (prefers-reduced-motion:reduce){
  .deco{animation:none;}
  .card,.card__img,.card__link span,
  .course,.course__media img,
  .gallery__item img,
  .journal__featured,.journal__featured-media img,.journal__link span,
  .post,.post__media img,
  .allies__card,.allies__card img{
    transition:none;
  }
  .card:hover,.card:focus-within,
  .course:hover,.course:focus-within,
  .journal__featured:hover,.journal__featured:focus-within,
  .post:hover,.post:focus-within,
  .allies__card:hover,.allies__card:focus-within{
    transform:none;
  }
}

.deco--bubble1{width:240px;height:240px;right:24px;top:-52px;object-fit:cover;box-shadow:0 24px 60px rgba(41,34,119,.22);--float-x:-8px;--float-y:-18px;--float-dur:9s;}
.deco--bubble2{width:110px;height:110px;right:320px;top:-36px;object-fit:cover;box-shadow:0 14px 30px rgba(41,34,119,.18);--float-x:6px;--float-y:12px;--float-dur:6.5s;--float-delay:.4s;}
.deco--dot2{width:130px;height:130px;right:310px;top:-46px;background:var(--green-bright);--float-y:-11px;--float-dur:7s;--float-delay:1s;}
.deco--dot4{width:170px;height:170px;right:28px;top:-75px;background:#e3e173;--float-x:-6px;--float-y:13px;--float-dur:8s;--float-delay:.2s;}
.deco--blob8{width:170px;right:24px;top:463.93px;border-radius:0;--float-x:7px;--float-y:11px;--float-r:-3deg;--float-dur:7.5s;--float-delay:1.2s;}
.deco--blob9{width:217px;left:35px;top:1293px;border-radius:0;--float-y:-13px;--float-r:2deg;--float-dur:8.5s;--float-delay:.8s;}
.deco--blob5{width:220px;left:12px;top:-54px;border-radius:0;--float-x:5px;--float-y:-12px;--float-r:2deg;--float-dur:9.5s;--float-delay:.6s;}

.services__head{
  position:relative;z-index:1;
  display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;
}
.services__title{
  font-size:clamp(2rem, 1.2rem + 3vw, 3.75rem);
  font-weight:800;line-height:1.02;color:var(--indigo-900);
}
.services__title .is-accent-green{color:var(--green-cta);}
.services__lead{
  max-width:320px;font-size:14px;line-height:22.75px;
  color:rgba(21,25,66,.65);padding-bottom:8px;
}
@media (min-width:1000px){
  .services__head{justify-content:flex-start;flex-wrap:nowrap;gap:clamp(32px,5vw,96px);}
}
.services__grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:320px;gap:16px;
  margin-top:48px;
}
.card{
  position:relative;border-radius:16px;overflow:hidden;background:var(--indigo-900);
  box-shadow:0 0 0 0 rgba(21,25,66,0);
  transition:transform .35s cubic-bezier(.22,.9,.32,1), box-shadow .35s ease;
}
.card:hover,.card:focus-within{
  transform:translateY(-8px);
  box-shadow:0 22px 40px -12px rgba(21,25,66,.35);
}
.card--tall{grid-column:1;grid-row:1 / span 2;}
.card__img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7;
  transition:transform .5s cubic-bezier(.22,.9,.32,1);
}
.card:hover .card__img,.card:focus-within .card__img{transform:scale(1.06);}
.card__link span{display:inline-block;transition:transform .25s ease;}
.card:hover .card__link span,.card:focus-within .card__link span{transform:translateX(4px);}
.card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, #292277 0%, rgba(41,34,119,.55) 50%, rgba(41,34,119,0) 100%);
}
.card__badge{
  position:absolute;top:20px;left:20px;z-index:2;
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 12px;border-radius:999px;
  background:rgba(255,255,255,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  color:var(--green-bright);font-size:9.6px;font-weight:800;letter-spacing:1.536px;text-transform:uppercase;
}
.card__badge .icon{width:12px;height:12px;flex-shrink:0;}
.card__body{position:absolute;left:0;bottom:0;z-index:2;padding:28px;width:100%;color:#fff;}
.card__body h3{font-size:30px;line-height:1.02;font-weight:700;color:#fff;letter-spacing:-.02em;}
.card--tall .card__body h3{font-size:48px;}
.card__body p{padding-top:12px;max-width:448px;font-size:14px;line-height:22.75px;color:rgba(255,255,255,.8);}
.card__link{
  display:inline-flex;align-items:center;gap:8px;margin-top:20px;
  font-size:12px;font-weight:800;letter-spacing:1.68px;text-transform:uppercase;color:var(--green-bright);
}

@media (max-width:1899px){
  .services__deco{display:none;}
}

@media (max-width:900px){
  .services{padding:80px 0;}
  .services__grid{grid-template-columns:1fr;grid-auto-rows:auto;margin-top:32px;}
  .card--tall{grid-row:auto;}
  .card{height:380px;}
  .card__body p{max-width:100%;}
}

@media (max-width:640px){
  .services__head{flex-direction:column;align-items:flex-start;gap:16px;}
  .services__lead{max-width:100%;}
  .card{height:340px;}
  .card__body{padding:22px;}
  .card--tall .card__body h3{font-size:32px;}
  .card__body h3{font-size:24px;}
}

/* ===========================================================
   COURSES
   =========================================================== */
.courses{position:relative;overflow:hidden;background:#266a25;padding:32px 0 40px;}
.courses__deco{position:absolute;top:0;bottom:0;left:50%;width:100%;max-width:1920px;transform:translateX(-50%);pointer-events:none;z-index:0;}
.deco--blob12{width:190px;right:24px;top:24px;border-radius:0;--float-x:-6px;--float-y:14px;--float-r:-2deg;--float-dur:8.8s;--float-delay:.3s;}
.deco--blob13{width:180px;left:40px;top:440px;border-radius:0;--float-y:-10px;--float-r:2deg;--float-dur:7.2s;--float-delay:1.4s;}
@media (max-width:1899px){.courses__deco{display:none;}}
.courses__head{
  position:relative;z-index:1;
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.courses__title{
  font-size:clamp(2rem, 1.2rem + 3vw, 3.75rem);
  font-weight:800;line-height:1.02;letter-spacing:-.03em;color:#fff;
}
.courses__title .is-accent{font-weight:600;color:var(--green-bright);}
.btn--ghost-outline{
  display:inline-flex;padding:12px 20px;border:1px solid rgba(255,255,255,.35);
  color:#fff;font-weight:700;font-size:12px;letter-spacing:1.56px;text-transform:uppercase;
  white-space:nowrap;transition:background-color .25s ease,border-color .25s ease;
}
.btn--ghost-outline:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6);}

.courses__grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;
}
.course{
  background:rgba(255,255,255,.04);
  border-radius:16px;
  box-shadow:0 0 0 1px rgba(255,255,255,.12);
  overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .35s cubic-bezier(.22,.9,.32,1), box-shadow .35s ease;
}
.course:hover,.course:focus-within{
  transform:translateY(-8px);
  box-shadow:0 0 0 1px rgba(255,255,255,.18), 0 22px 40px -14px rgba(0,0,0,.45);
}
.course__media{position:relative;height:268px;overflow:hidden;}
.course__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,.9,.32,1);}
.course:hover .course__media img,.course:focus-within .course__media img{transform:scale(1.06);}
.course__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, rgba(21,25,66,.7) 0%, rgba(21,25,66,0) 100%);
}
.course__duration{
  position:absolute;top:16px;left:16px;z-index:1;
  background:var(--green-cta);color:#fff;
  padding:6px 12px;border-radius:999px;
  font-size:9.6px;font-weight:800;letter-spacing:1.344px;text-transform:uppercase;
}
.course__body{padding:24px;display:flex;flex-direction:column;flex:1;}
.course__meta{
  color:var(--green-bright);font-size:10.56px;font-weight:700;letter-spacing:1.584px;text-transform:uppercase;
}
.course__body h3{padding-top:12px;font-size:24px;line-height:1.05;font-weight:700;color:#fff;flex:1;}
.course__btn{
  margin-top:24px;padding:12px;border-radius:999px;background:rgba(255,255,255,.1);
  color:#fff;text-align:center;font-size:12px;font-weight:800;letter-spacing:1.68px;text-transform:uppercase;
  transition:background-color .25s ease;
}
.course__btn:hover{background:rgba(255,255,255,.18);}

@media (max-width:900px){
  .courses__grid{grid-template-columns:1fr;gap:20px;}
}

/* ===========================================================
   GALLERY
   =========================================================== */
.gallery{padding:32px 0;background:#fff;}
.gallery__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
.gallery__title{
  font-size:clamp(2rem, 1.2rem + 3vw, 3.75rem);
  font-weight:800;line-height:1.02;letter-spacing:-.03em;color:var(--indigo-900);
}
.gallery__title .is-accent-green{color:var(--green-cta);}
.gallery__lead{max-width:320px;font-size:14px;line-height:22.75px;color:rgba(21,25,66,.65);padding-bottom:4px;}

.gallery__grid{
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:208px;gap:16px;margin-top:48px;
}
.gallery__item{
  position:relative;margin:0;border-radius:16px;overflow:hidden;background:var(--indigo-900);
  transition:box-shadow .35s ease;
}
.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,.9,.32,1);}
.gallery__item:hover img,.gallery__item:focus-within img{transform:scale(1.08);}
.gallery__item:hover,.gallery__item:focus-within{box-shadow:0 20px 36px -14px rgba(21,25,66,.4);}
.gallery__item::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, rgba(41,34,119,.6) 0%, rgba(41,34,119,.07) 50%, rgba(41,34,119,0) 100%);
}
.gallery__more{display:flex;justify-content:flex-end;margin-top:24px;}
.gallery__item--celebracion{grid-column:1 / span 2;grid-row:1 / span 2;}
.gallery__item--emprendedoras-sm{grid-column:3;grid-row:1;}
.gallery__item--ninez{grid-column:4;grid-row:1;}
.gallery__item--manos{grid-column:3;grid-row:2 / span 2;}
.gallery__item--formacion{grid-column:4;grid-row:2;}
.gallery__item--barrios{grid-column:1 / span 2;grid-row:3;}

@media (max-width:900px){
  .gallery{padding:80px 0;}
  .gallery__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px;}
  .gallery__item--celebracion{grid-column:1/span 2;grid-row:1;}
  .gallery__item--emprendedoras-sm{grid-column:1;grid-row:2;}
  .gallery__item--ninez{grid-column:2;grid-row:2;}
  .gallery__item--manos{grid-column:1/span 2;grid-row:3;height:auto;}
  .gallery__item--formacion{grid-column:1;grid-row:4;}
  .gallery__item--barrios{grid-column:2;grid-row:4;}
}

@media (max-width:640px){
  .gallery__head{flex-direction:column;align-items:flex-start;gap:16px;}
  .gallery__grid{grid-template-columns:1fr;grid-auto-rows:240px;}
  .gallery__item--celebracion,
  .gallery__item--emprendedoras-sm,
  .gallery__item--ninez,
  .gallery__item--manos,
  .gallery__item--formacion,
  .gallery__item--barrios{grid-column:1;grid-row:auto;}
  .gallery__more .btn{width:100%;}
}

/* ===========================================================
   JOURNAL / BLOG
   =========================================================== */
.journal{padding:30px 0 30px;background:#f4f7fc;}
.journal__head{max-width:663px;margin:0 auto;text-align:center;}
.journal__title{
  font-size:clamp(2rem, 1rem + 3.6vw, 3.75rem);
  font-weight:800;line-height:1.02;letter-spacing:-.03em;color:var(--indigo-900);
}
.journal__title .is-accent-green{color:var(--green-cta);}
.journal__lead{
  max-width:576px;margin:20px auto 0;font-size:16px;line-height:26px;color:rgba(21,25,66,.65);
}
.journal__meta{
  font-size:10.56px;font-weight:800;letter-spacing:1.6896px;text-transform:uppercase;color:#266a25;
}
.journal__link{
  display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:20px;
  font-size:12px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:#266a25;
}
.journal__link span{display:inline-block;transition:transform .25s ease;}

.journal__featured{
  display:grid;grid-template-columns:1fr 1fr;
  margin-top:48px;border-radius:16px;overflow:hidden;background:#fff;
  box-shadow:0 0 0 1px rgba(21,25,66,.08), 0 1px 3px rgba(0,0,0,.1);
  transition:transform .35s cubic-bezier(.22,.9,.32,1), box-shadow .35s ease;
}
.journal__featured:hover,.journal__featured:focus-within{
  transform:translateY(-6px);
  box-shadow:0 0 0 1px rgba(21,25,66,.08), 0 24px 40px -16px rgba(21,25,66,.28);
}
.journal__featured:hover .journal__link span,.journal__featured:focus-within .journal__link span{transform:translateX(4px);}
.journal__featured-media{position:relative;min-height:384px;overflow:hidden;}
.journal__featured-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,.9,.32,1);}
.journal__featured:hover .journal__featured-media img,.journal__featured:focus-within .journal__featured-media img{transform:scale(1.05);}
.journal__tag{
  position:absolute;top:20px;left:20px;background:var(--green-cta);color:#fff;
  padding:6px 12px;border-radius:999px;font-size:9.92px;font-weight:800;letter-spacing:1.5872px;text-transform:uppercase;
}
.journal__featured-body{display:flex;flex-direction:column;justify-content:center;padding:44px;}
.journal__featured-body h3{
  padding-top:16px;font-size:36px;line-height:1.02;letter-spacing:-.02em;font-weight:700;color:var(--indigo-900);
}
.journal__excerpt{padding-top:16px;font-size:16px;line-height:26px;color:rgba(21,25,66,.65);max-width:580px;}
.journal__featured-body .journal__link{margin-top:0;padding-top:28px;}

.journal__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px;}
.post{
  display:flex;flex-direction:column;background:#fff;border-radius:16px;overflow:hidden;
  box-shadow:0 0 0 1px rgba(21,25,66,.08), 0 1px 3px rgba(0,0,0,.1);
  transition:transform .35s cubic-bezier(.22,.9,.32,1), box-shadow .35s ease;
}
.post:hover,.post:focus-within{
  transform:translateY(-8px);
  box-shadow:0 0 0 1px rgba(21,25,66,.08), 0 22px 38px -16px rgba(21,25,66,.3);
}
.post:hover .journal__link span,.post:focus-within .journal__link span{transform:translateX(4px);}
.post__media{height:268px;overflow:hidden;}
.post__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,.9,.32,1);}
.post:hover .post__media img,.post:focus-within .post__media img{transform:scale(1.06);}
.post__body{display:flex;flex-direction:column;flex:1;padding:24px;}
.post__body h3{
  padding-top:12px;font-size:24px;line-height:1.05;letter-spacing:-.01em;font-weight:700;color:var(--indigo-900);
}
.post__excerpt{padding-top:12px;font-size:14px;line-height:22.75px;color:rgba(21,25,66,.6);}

@media (max-width:900px){
  .journal{padding:72px 0 88px;}
  .journal__featured{grid-template-columns:1fr;}
  .journal__featured-media{min-height:280px;}
  .journal__featured-body{padding:32px;}
  .journal__grid{grid-template-columns:1fr;gap:20px;}
}

@media (max-width:640px){
  .journal__featured-body h3{font-size:28px;}
}

/* ===========================================================
   ALIADOS
   =========================================================== */
.allies{padding:32px 0 40px;background:#fff;}
.allies__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
.allies__eyebrow{display:block;font-weight:700;font-size:36px;color:var(--indigo-900);margin-bottom:16px;}
.allies__title{font-size:36px;font-weight:400;line-height:1.02;letter-spacing:-.04em;color:var(--indigo-900);}
.allies__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:40px;}
.allies__card{
  aspect-ratio:241/102;border:1px solid rgba(89,89,89,.5);
  display:flex;align-items:center;justify-content:center;padding:16px;
  transition:transform .3s cubic-bezier(.22,.9,.32,1), border-color .3s ease, box-shadow .3s ease;
}
.allies__card:hover,.allies__card:focus-within{
  transform:translateY(-6px);
  border-color:var(--green-cta);
  box-shadow:0 16px 28px -16px rgba(21,25,66,.35);
}
.allies__card img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .3s ease;}
.allies__card:hover img,.allies__card:focus-within img{transform:scale(1.05);}

@media (max-width:900px){
  .allies{padding:72px 0 88px;}
  .allies__grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .allies__head{flex-direction:column;align-items:flex-start;gap:20px;}
  .allies__head .btn{width:100%;text-align:center;}
}

/* ===========================================================
   FOOTER
   =========================================================== */
.site-footer{position:relative;overflow:hidden;background:var(--green-cta);color:#fff;}
.site-footer__bg{position:absolute;inset:0;}
.site-footer__bg img{width:100%;height:100%;object-fit:cover;}
.site-footer__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(169deg, rgba(41,34,119,.95) 0%, rgba(41,34,119,.9) 50%, rgba(64,150,47,.9) 100%);
}
.site-footer__inner{position:relative;padding:80px var(--container-pad);}
.site-footer__grid{
  display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:40px;
}
.site-footer__logo{width:150px;}
.site-footer__contact{display:flex;flex-direction:column;gap:16px;margin-top:24px;}
.site-footer__contact a{display:flex;align-items:center;gap:12px;font-size:14px;color:rgba(255,255,255,.85);}
.site-footer__icon{
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.15);
}
.site-footer__icon svg{width:14px;height:14px;}
.site-footer__col h3{font-size:18px;font-weight:800;letter-spacing:-.025em;color:var(--green-bright);}
.site-footer__col ul{margin-top:16px;display:flex;flex-direction:column;gap:10px;}
.site-footer__col a{font-size:14px;color:rgba(255,255,255,.8);}
.site-footer__col a:hover{color:#fff;}

.site-footer__bottom{
  position:relative;border-top:1px solid rgba(255,255,255,.15);padding:20px var(--container-pad);
}
.site-footer__bottom p{text-align:center;font-size:12px;color:rgba(255,255,255,.6);}

@media (max-width:900px){
  .site-footer__grid{grid-template-columns:1fr 1fr;row-gap:40px;}
  .site-footer__brand{grid-column:1/-1;}
}
@media (max-width:640px){
  .site-footer__inner{padding:56px 20px;}
  .site-footer__grid{grid-template-columns:1fr;gap:32px;}
  .site-footer__brand{grid-column:auto;}
}


/* ===========================================================
   CRÉDITO FOOTER
   =========================================================== */
.site-footer__bottom .footer-credit{
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin-top:8px;font-size:11px;color:rgba(255,255,255,.5);
}
.footer-credit__link{display:inline-flex;opacity:.7;transition:opacity .2s ease;}
.footer-credit__link:hover{opacity:1;}

/* ===========================================================
   GRACIAS
   =========================================================== */
.gracias{
  position:relative;
  min-height:80vh;
  display:flex;align-items:center;
  padding:80px 0 40px;
  background:linear-gradient(158deg, #29276b 0%, var(--indigo-900) 45%, #1c1a52 100%);
  color:#fff;
}
.gracias__inner{max-width:760px;}
.gracias__title{
  padding-top:0;
  font-size:clamp(2.25rem, 1rem + 3.5vw, 4.5rem);
  font-weight:600;line-height:.95;letter-spacing:-.05em;
}
.gracias__title .is-accent-green{color:var(--green-bright);}
.gracias__lead{padding:24px 0 36px;font-size:18px;line-height:1.6;color:rgba(255,255,255,.85);}

/* ===========================================================
   BANNER COOKIES
   =========================================================== */
.geh-cookies{position:fixed;left:24px;right:24px;bottom:24px;z-index:200;display:flex;justify-content:center;}
.geh-cookies[hidden]{display:none;}
.geh-cookies__card{
  display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;
  max-width:960px;width:100%;padding:24px 28px;
  background:#fff;color:var(--ink);
  border-top:4px solid var(--green-stripe);
  box-shadow:0 12px 40px rgba(28,26,102,.25);
}
.geh-cookies__icon{font-size:28px;line-height:1;}
.geh-cookies__content{flex:1 1 380px;}
.geh-cookies__titulo{font-size:16px;font-weight:800;color:var(--indigo-900);}
.geh-cookies__cuerpo,.geh-cookies__legal{padding-top:6px;font-size:13px;line-height:1.55;color:rgba(28,26,62,.8);}
.geh-cookies__legal a{color:var(--green-cta);text-decoration:underline;}
.geh-cookies__opts{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
.geh-cookies__opts[hidden]{display:none;}
.geh-cookies__opt{display:flex;align-items:center;gap:10px;font-size:13px;cursor:pointer;}
.geh-cookies__opt--disabled{cursor:default;opacity:.7;}
.geh-cookies__chk{position:absolute;opacity:0;pointer-events:none;}
.geh-cookies__check{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border:1px solid rgba(28,26,62,.35);
  font-size:12px;color:#fff;
}
.geh-cookies__check--on{background:var(--green-cta);border-color:var(--green-cta);}
.geh-cookies__actions{display:flex;flex-wrap:wrap;gap:10px;align-self:center;}
.geh-cookies__btn{
  padding:12px 18px;border:1px solid var(--indigo-900);background:transparent;
  font-family:var(--font);font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--indigo-900);cursor:pointer;transition:background-color .2s ease, color .2s ease;
}
.geh-cookies__btn:hover{background:var(--indigo-900);color:#fff;}
.geh-cookies__btn[hidden]{display:none;}
.geh-cookies__btn--aceptar,.geh-cookies__btn--guardar{background:var(--green-cta);border-color:var(--green-cta);color:#fff;}
.geh-cookies__btn--aceptar:hover,.geh-cookies__btn--guardar:hover{background:var(--green-cta-hover);border-color:var(--green-cta-hover);}
@media (max-width:640px){
  .geh-cookies{left:12px;right:12px;bottom:12px;}
  .geh-cookies__card{padding:20px;}
  .geh-cookies__actions{width:100%;}
  .geh-cookies__btn{flex:1 1 auto;}
}

/* ===========================================================
   HERO INTERNO (imágenes de campaña) + PAGE HERO (textos debajo)
   =========================================================== */
.hero--interna{min-height:560px;}
.hero--interna .hero__overlay{
  background:linear-gradient(180deg, rgba(28,26,102,.82) 0%, rgba(28,26,102,.25) 38%, rgba(28,26,102,.1) 70%, rgba(28,26,102,.35) 100%);
}
.hero--interna .hero__dots{bottom:28px;}

.page-hero{position:relative;padding:72px 0 40px;background:#fff;color:var(--ink);}
.page-hero__inner{position:relative;max-width:calc(var(--container-max) + var(--container-pad) * 2);}
.page-hero__eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--green-cta);}
.page-hero__title{
  max-width:960px;padding-top:14px;
  font-size:clamp(2.1rem, 1rem + 3vw, 4rem);
  font-weight:600;line-height:.98;letter-spacing:-.05em;color:var(--indigo-900);
}
.page-hero__title .is-accent{color:var(--green-cta);}
.page-hero__lead{max-width:680px;padding-top:20px;font-size:18px;line-height:1.6;color:rgba(21,25,66,.72);}
.page-hero__meta{padding-top:16px;font-size:13px;font-weight:600;letter-spacing:.04em;color:rgba(21,25,66,.6);}
@media (max-width:1024px){.hero--interna{min-height:420px;}.page-hero{padding:56px 0 32px;}}
@media (max-width:640px){.hero--interna{min-height:300px;}.page-hero{padding:40px 0 24px;}.page-hero__lead{font-size:16px;}}

.page-hero__back{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:8px;
  font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green-cta);
}
.page-hero__back:hover{color:var(--indigo-900);}
.page-hero--article .page-hero__title{max-width:1000px;font-size:clamp(2rem, 1rem + 2.6vw, 3.75rem);line-height:1.02;}

/* ===========================================================
   BLOG (listado y ampliado)
   =========================================================== */
.journal--page{padding-top:10px;}
.journal--related .journal__head .btn{margin-top:24px;}
.blog-empty{text-align:center;font-size:16px;color:rgba(21,25,66,.65);padding:40px 0;}

.article__inner{max-width:880px;}
.article__cover{margin:16px 0 0;border-radius:16px;overflow:hidden;box-shadow:0 24px 48px -24px rgba(21,25,66,.45);background:var(--indigo-900);}
.article__cover img{width:100%;max-height:520px;object-fit:cover;}
.article__lead{padding-top:48px;font-size:20px;line-height:1.6;font-weight:600;color:var(--indigo-900);}
.article__body{padding-top:24px;font-size:17px;line-height:1.8;color:rgba(28,26,62,.88);}
.article__body > * + *{margin-top:1.1em;}
.article__body h2,.article__body h3{color:var(--indigo-900);letter-spacing:-.02em;line-height:1.2;margin-top:1.8em;}
.article__body h2{font-size:28px;font-weight:700;}
.article__body h3{font-size:22px;font-weight:700;}
.article__body a{color:var(--green-cta);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere;}
.article__body ul,.article__body ol{padding-left:1.4em;list-style:revert;}
.article__body li + li{margin-top:.4em;}
.article__body img{max-width:100%;height:auto;border-radius:12px;margin:1.6em auto;}
.article__body blockquote{margin:1.6em 0;padding:8px 0 8px 24px;border-left:4px solid var(--green-stripe);font-size:19px;font-weight:600;color:var(--indigo-900);}
@media (max-width:640px){
  .article__cover{border-radius:12px;}
  .article__lead{padding-top:32px;font-size:18px;}
  .article__body{font-size:16px;}
}

/* ===========================================================
   CONTÁCTENOS
   =========================================================== */
.contact{padding:32px 0 40px;background:#f4f7fc;}
.contact__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start;}
.contact-info__title{font-size:clamp(1.9rem, 1rem + 1.8vw, 2.75rem);font-weight:700;line-height:1.05;letter-spacing:-.04em;color:var(--indigo-900);}
.contact-info__title .is-accent-green{color:var(--green-cta);}
.contact-info__lead{padding-top:16px;font-size:15px;line-height:1.7;color:rgba(21,25,66,.7);}
.contact-info__list{display:flex;flex-direction:column;gap:20px;margin-top:36px;}
.contact-info__item{display:flex;gap:16px;align-items:flex-start;}
.contact-info__icon{
  flex:0 0 44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;background:var(--indigo-900);color:var(--green-bright);
}
.contact-info__icon svg{width:18px;height:18px;}
.contact-info__label{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--green-cta);}
.contact-info__value{padding-top:4px;font-size:16px;font-weight:600;color:var(--indigo-900);line-height:1.5;}
.contact-info__value a:hover{color:var(--green-cta);}

.contact-form-card{padding:48px;background:#fff;border-radius:20px;box-shadow:0 24px 60px -30px rgba(21,25,66,.35);border-top:4px solid var(--green-stripe);}
.contact-form-card__title{font-size:26px;font-weight:700;letter-spacing:-.03em;color:var(--indigo-900);}
.contact-form-card__hint{padding-top:6px;font-size:13px;color:rgba(21,25,66,.6);}
.contact-form{display:flex;flex-direction:column;gap:20px;margin-top:28px;}
.contact-form__row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.contact-form__field{display:flex;flex-direction:column;gap:8px;}
.contact-form__field label{font-size:13px;font-weight:700;color:var(--indigo-900);}
.contact-form__field input,.contact-form__field textarea,.contact-form__field select{
  width:100%;padding:14px 16px;border:1px solid rgba(41,34,119,.18);border-radius:10px;background:#fbfcfe;
  font-family:var(--font);font-size:15px;color:var(--ink);transition:border-color .2s ease, box-shadow .2s ease;
}
.contact-form__field textarea{resize:vertical;min-height:130px;}
.contact-form__field select{
  appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2.5 5 7 9.5 11.5 5' fill='none' stroke='%23292277' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;background-size:14px;padding-right:44px;
}
.contact-form__field select:invalid{color:rgba(21,25,66,.5);}
.contact-form__field input:focus,.contact-form__field textarea:focus,.contact-form__field select:focus{outline:none;border-color:var(--green-cta);box-shadow:0 0 0 3px rgba(64,150,47,.15);background:#fff;}
.contact-form__field.is-invalid input,.contact-form__field.is-invalid textarea,.contact-form__field.is-invalid select{border-color:#d64545;}
.contact-form__field .iti{width:100%;}
.contact-form__check{display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.55;color:rgba(28,26,62,.8);cursor:pointer;}
.contact-form__check input{flex:0 0 18px;height:18px;margin-top:2px;accent-color:var(--green-cta);}
.contact-form__check.is-invalid span{color:#d64545;}
.contact-form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.contact-form__msg{padding:12px 16px;border-radius:10px;font-size:14px;background:rgba(64,150,47,.1);color:var(--green-cta-hover);}
.contact-form__msg.is-error{background:rgba(214,69,69,.1);color:#b23232;}
.contact-form__msg[hidden]{display:none;}
.contact-form__submit{align-self:flex-start;}
.contact-form__submit:disabled{opacity:.6;cursor:wait;}
@media (max-width:1024px){.contact__grid{grid-template-columns:1fr;}}
@media (max-width:640px){
  .contact{padding:64px 0 88px;}
  .contact-form-card{padding:28px 20px;}
  .contact-form__row{grid-template-columns:1fr;}
  .contact-form__submit{width:100%;}
}

/* ===========================================================
   ALIADOS — carrusel doble
   =========================================================== */
.allies__carousel{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin-top:40px;min-width:0;}
.allies__swiper{width:100%;min-width:0;padding:8px 0 12px;}
.allies__swiper .swiper-wrapper{transition-timing-function:linear;}
.allies__swiper .swiper-slide{height:auto;}
.allies__swiper .allies__card{width:100%;height:100%;background:#fff;}
@media (max-width:640px){.allies__carousel{gap:12px;}}

/* ===========================================================
   GALERÍA (página)
   =========================================================== */
.galeria-page{padding:24px 0 40px;background:#f4f7fc;}
.galeria-page__grid{columns:3 320px;column-gap:20px;}
.galeria-page__item{break-inside:avoid;margin:0 0 20px;}
.galeria-page__btn{
  display:block;width:100%;padding:0;border:0;background:var(--indigo-900);cursor:zoom-in;
  border-radius:16px;overflow:hidden;position:relative;
}
.galeria-page__btn img{width:100%;height:auto;transition:transform .5s cubic-bezier(.22,.9,.32,1), opacity .3s ease;}
.galeria-page__btn:hover img,.galeria-page__btn:focus-visible img{transform:scale(1.05);opacity:.9;}
.galeria-page__btn:focus-visible{outline:3px solid var(--green-cta);outline-offset:3px;}
.galeria-page__item figcaption{padding:10px 4px 0;font-size:13px;font-weight:600;color:rgba(21,25,66,.7);}

.lightbox{
  position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;gap:16px;
  padding:48px 24px;background:rgba(18,16,60,.94);
}
.lightbox[hidden]{display:none;}
.lightbox__figure{margin:0;max-width:min(1200px,100%);display:flex;flex-direction:column;align-items:center;}
.lightbox__img{max-width:100%;max-height:78vh;object-fit:contain;border-radius:8px;}
.lightbox__caption{padding-top:14px;font-size:14px;font-weight:600;color:#fff;text-align:center;}
.lightbox__close{position:absolute;top:18px;right:24px;width:44px;height:44px;border:0;background:none;color:#fff;font-size:40px;line-height:1;cursor:pointer;}
.lightbox__nav{
  flex:0 0 48px;height:48px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:transparent;
  color:#fff;font-size:30px;line-height:1;cursor:pointer;transition:background-color .2s ease;
}
.lightbox__nav:hover{background:rgba(255,255,255,.12);}
@media (max-width:640px){
  .galeria-page{padding:48px 0 80px;}
  .lightbox{padding:64px 8px 24px;flex-wrap:wrap;}
  .lightbox__figure{order:-1;flex:1 1 100%;}
}

/* ===========================================================
   CURSOS (home, listado y detalle)
   =========================================================== */
.course__media{display:block;}
.course__body h3 a{color:inherit;}
.course__body h3 a:hover{color:var(--green-bright);}
.course[hidden]{display:none;}
.courses__empty{position:relative;z-index:1;margin-top:40px;font-size:17px;color:rgba(255,255,255,.85);}

.cursos-page{padding:24px 0 40px;}
.cursos-page--otros{padding:32px 0 40px;}
.cursos-filtro{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px;}
.cursos-filtro__btn{
  padding:10px 20px;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:transparent;
  font-family:var(--font);font-size:12px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:#fff;cursor:pointer;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease;
}
.cursos-filtro__btn:hover{border-color:#fff;}
.cursos-filtro__btn.is-active{background:var(--green-bright);border-color:var(--green-bright);color:var(--indigo-900);}

.curso-detalle{padding:24px 0 40px;background:#fff;}
.curso-detalle__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:start;}
.curso-detalle__cover{margin:0;border-radius:16px;overflow:hidden;background:var(--indigo-900);box-shadow:0 24px 48px -24px rgba(21,25,66,.45);}
.curso-detalle__cover img{width:100%;max-height:460px;object-fit:cover;}
.curso-detalle__lead{padding-top:32px;font-size:20px;line-height:1.6;font-weight:600;color:var(--indigo-900);}
.curso-detalle__datos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:32px 0 0;background:rgba(41,34,119,.1);border:1px solid rgba(41,34,119,.1);border-radius:14px;overflow:hidden;}
.curso-detalle__dato{padding:16px 20px;background:#f8fafd;}
.curso-detalle__dato:last-child:nth-child(odd){grid-column:1 / -1;}
.curso-detalle__dato dt{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--green-cta);}
.curso-detalle__dato dd{margin:6px 0 0;font-size:15px;font-weight:600;line-height:1.45;color:var(--indigo-900);}
.curso-detalle__desc{padding-top:32px;}
.curso-detalle__form{position:sticky;top:110px;}
@media (max-width:1024px){
  .curso-detalle__grid{grid-template-columns:1fr;gap:40px;}
  .curso-detalle__form{position:static;}
}
@media (max-width:640px){
  .cursos-page{padding:48px 0 80px;}
  .curso-detalle{padding:16px 0 80px;}
  .curso-detalle__datos{grid-template-columns:1fr;}
  .curso-detalle__lead{font-size:18px;}
}

/* ===========================================================
   BLOG AMPLIADO (rediseño)
   =========================================================== */
.hero--articulo{min-height:520px;}
.hero--articulo .hero__bg img{animation:none;transform:none;}
.hero--articulo .hero__overlay{background:linear-gradient(180deg, rgba(28,26,102,.8) 0%, rgba(28,26,102,.2) 40%, rgba(28,26,102,.55) 100%);}

.article-head{position:relative;z-index:2;margin-top:-140px;}
.article-head__inner{
  max-width:980px;padding:48px 56px 44px;background:#fff;border-radius:24px 24px 0 0;
  box-shadow:0 -24px 48px -32px rgba(21,25,66,.35);
}
.article-head__back{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green-cta);}
.article-head__back:hover{color:var(--indigo-900);}
.article-head__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;}
.article-head__chip{padding:6px 12px;border-radius:999px;background:#eef2fa;font-size:12px;font-weight:700;color:var(--indigo-900);}
.article-head__chip:first-child{background:var(--green-cta);color:#fff;}
.article-head__title{
  padding-top:18px;font-size:clamp(1.9rem, 1rem + 2.2vw, 3.25rem);font-weight:700;line-height:1.08;letter-spacing:-.035em;
  color:var(--indigo-900);text-wrap:balance;
}
.article-head__lead{padding-top:18px;font-size:19px;line-height:1.6;color:rgba(21,25,66,.72);}

.article-layout{padding:8px 0 40px;background:#fff;}
.article-layout__grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:64px;align-items:start;max-width:1180px;}
.article-layout__main{max-width:720px;padding:0 56px;}
.article-layout .article__body{padding-top:8px;font-size:17px;line-height:1.85;overflow-wrap:anywhere;}
.article-layout .article__body p:first-child::first-letter{
  float:left;margin:6px 10px 0 0;font-size:58px;line-height:.9;font-weight:700;color:var(--green-cta);
}

.article-gallery{margin-top:48px;padding-top:40px;border-top:1px solid rgba(41,34,119,.12);}
.article-gallery__title{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--indigo-900);}
.article-gallery__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px;}
.article-gallery__item{position:relative;aspect-ratio:1;padding:0;border:0;border-radius:12px;overflow:hidden;background:var(--indigo-900);cursor:zoom-in;}
.article-gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.22,.9,.32,1), opacity .3s ease;}
.article-gallery__item:hover img,.article-gallery__item:focus-visible img{transform:scale(1.06);opacity:.88;}
.article-gallery__item:focus-visible{outline:3px solid var(--green-cta);outline-offset:2px;}
.article-gallery__item:first-child{grid-column:span 2;grid-row:span 2;}

.article-aside{position:sticky;top:112px;display:flex;flex-direction:column;gap:28px;}
.article-aside__block{padding:24px;border-radius:18px;background:#f4f7fc;}
.article-aside__title{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--green-cta);}
.article-aside__share{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.article-aside__share a{
  padding:10px 14px;border-radius:999px;background:#fff;border:1px solid rgba(41,34,119,.15);
  font-size:13px;font-weight:700;color:var(--indigo-900);transition:background-color .2s ease, color .2s ease;
}
.article-aside__share a:hover{background:var(--indigo-900);color:#fff;}
.article-aside__posts{display:flex;flex-direction:column;gap:14px;margin-top:16px;}
.article-aside__post{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;}
.article-aside__post img{width:64px;height:64px;border-radius:10px;object-fit:cover;}
.article-aside__post span{font-size:14px;font-weight:700;line-height:1.3;color:var(--indigo-900);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.article-aside__post:hover span{color:var(--green-cta);}
.article-aside__all{display:inline-flex;gap:6px;margin-top:16px;font-size:13px;font-weight:800;color:var(--green-cta);}

@media (max-width:1100px){
  .article-layout__grid{grid-template-columns:1fr;gap:40px;}
  .article-layout__main{max-width:760px;}
  .article-aside{position:static;max-width:760px;padding:0 56px;}
}
@media (max-width:640px){
  .hero--articulo{min-height:320px;}
  .article-head{margin-top:-60px;}
  .article-head__inner{padding:28px 20px 24px;border-radius:18px 18px 0 0;}
  .article-head__lead{font-size:17px;}
  .article-layout__main,.article-aside{padding:0;}
  .article-layout .article__body{font-size:16px;}
  .article-gallery__grid{grid-template-columns:repeat(2,1fr);}
}

/* ===========================================================
   CONTÁCTENOS (rediseño)
   =========================================================== */
.contact__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:stretch;}
.contact-panel{
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  padding:48px 44px;border-radius:20px;color:#fff;
  background:
    linear-gradient(158deg, rgba(41,34,119,.93) 0%, rgba(28,26,102,.9) 55%, rgba(28,26,82,.95) 100%),
    url("../imagenes/actuar/about-madre-hija.jpg") center/cover no-repeat;
}
.contact-panel::after{
  content:"";position:absolute;right:-70px;bottom:-60px;width:260px;height:240px;
  background:url("../imagenes/actuar/decor/vector14-blob.svg") center/contain no-repeat;opacity:.14;pointer-events:none;
}
.contact-panel__title{font-size:26px;font-weight:700;letter-spacing:-.03em;}
.contact-panel__list{position:relative;z-index:1;display:flex;flex-direction:column;gap:26px;margin-top:32px;}
.contact-panel__item{display:flex;gap:16px;align-items:flex-start;}
.contact-panel__icon{
  flex:0 0 46px;height:46px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;background:rgba(169,233,137,.14);color:var(--green-bright);
}
.contact-panel__icon svg{width:18px;height:18px;}
.contact-panel__label{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--green-bright);}
.contact-panel__value{padding-top:4px;font-size:16px;font-weight:600;line-height:1.5;color:#fff;}
.contact-panel__value a:hover{color:var(--green-bright);}
.contact-panel__actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:12px;margin-top:auto;padding-top:40px;}

.contact-sedes{padding:32px 0 40px;background:#fff;}
.contact-sedes__head{max-width:640px;}
.contact-sedes__title{font-size:clamp(1.9rem, 1rem + 1.8vw, 2.75rem);font-weight:700;letter-spacing:-.04em;line-height:1.05;color:var(--indigo-900);}
.contact-sedes__title .is-accent-green{color:var(--green-cta);}
.contact-sedes__lead{padding-top:14px;font-size:16px;line-height:1.7;color:rgba(21,25,66,.7);}
.contact-sedes__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:40px;}
.contact-sede{border-radius:20px;overflow:hidden;background:#f4f7fc;border:1px solid rgba(41,34,119,.08);}
.contact-sede__map{aspect-ratio:16/9;background:#e3e8f2;}
.contact-sede__map iframe{width:100%;height:100%;border:0;display:block;}
.contact-sede__body{padding:24px 28px 28px;}
.contact-sede__body h3{font-size:20px;font-weight:700;color:var(--indigo-900);}
.contact-sede__body p{padding-top:6px;font-size:15px;line-height:1.55;color:rgba(21,25,66,.75);}
.contact-sede__link{display:inline-flex;gap:6px;margin-top:14px;font-size:13px;font-weight:800;letter-spacing:.04em;color:var(--green-cta);}
.contact-sede__link:hover{color:var(--indigo-900);}
@media (max-width:1024px){.contact-panel__actions{margin-top:0;}}
@media (max-width:900px){.contact-sedes__grid{grid-template-columns:1fr;}}
@media (max-width:640px){
  .contact-panel{padding:32px 24px;}
  .contact-panel__actions .btn{flex:1 1 auto;}
  .contact-sedes{padding:64px 0 80px;}
}
@media (max-width:1024px){.contact__grid{grid-template-columns:1fr;}}

/* Blog ampliado a todo el ancho del contenedor */
.article-head__inner{max-width:none;}
.article-layout__grid{max-width:none;grid-template-columns:minmax(0,1fr) 360px;gap:72px;}
.article-layout__main{max-width:none;padding:0 0 0 56px;}
.article-gallery__grid{grid-template-columns:repeat(4,1fr);}
@media (max-width:1100px){
  .article-layout__grid{grid-template-columns:1fr;}
  .article-layout__main{padding:0 56px;}
  .article-aside{max-width:none;}
  .article-gallery__grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:640px){
  .article-layout__main{padding:0;}
  .article-gallery__grid{grid-template-columns:repeat(2,1fr);}
}

/* Page hero centrado en todas las internas */
.page-hero{padding:80px 0 10px;}
.page-hero__inner{display:flex;flex-direction:column;align-items:center;text-align:center;}
.page-hero__title{max-width:900px;margin:0 auto;padding-top:0;text-wrap:balance;}
.page-hero__lead{max-width:720px;margin:0 auto;text-wrap:pretty;}
.page-hero__back{align-self:center;}
@media (max-width:1024px){.page-hero{padding:60px 0 40px;}}
@media (max-width:640px){.page-hero{padding:44px 0 28px;}}
.page-hero--servicio .page-hero__back{align-self:flex-start;}
