/* ══════════════════════════════════════
   UTILITIES + ANIMATIONS
══════════════════════════════════════ */
.fade-up{opacity:0;transform:translateY(36px);transition:opacity .7s ease,transform .7s ease;}
.fade-up.visible{opacity:1;transform:translateY(0);}
.fade-left{opacity:0;transform:translateX(-36px);transition:opacity .7s ease,transform .7s ease;}
.fade-left.visible{opacity:1;transform:translateX(0);}
.fade-right{opacity:0;transform:translateX(36px);transition:opacity .7s ease,transform .7s ease;}
.fade-right.visible{opacity:1;transform:translateX(0);}

.sec-num{
  font-family:var(--ft);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--red);display:flex;align-items:center;gap:10px;margin-bottom:.8rem;
}
.sec-num::before{content:'';width:30px;height:2px;background:var(--red);}
.sec-num.gold{color:var(--gold);}
.sec-num.gold::before{background:var(--gold);}
.sec-num.white{color:rgba(255,255,255,.5);}
.sec-num.white::before{background:rgba(255,255,255,.3);}

.display-title{
  font-family:var(--ft);
  font-size:clamp(2.6rem,5vw,4.5rem);
  font-weight:700;text-transform:uppercase;
  line-height:.95;letter-spacing:-.01em;
  color:var(--txt);margin-bottom:1rem;
}
.display-title em{font-style:normal;color:var(--red);}
.display-title.light{color:var(--white);}
.display-title.light em{color:var(--gold);}

.body-text{font-size:.93rem;line-height:1.85;color:var(--muted);max-width:480px;}
.body-text strong{color:var(--txt);}
.body-text.light{color:rgba(255,255,255,.58);}
.body-text.light strong{color:var(--white);}

/* ══════════════════════════════════════
   POR QUÉ ECOS — Mosaic + icon cards
══════════════════════════════════════ */
.porque-ecos{
  display:grid;grid-template-columns:1fr 1.1fr;
  min-height:640px;background:var(--cream);
}
.porque-photos{display:grid;grid-template-rows:1fr 1fr;gap:4px;}
.porque-photo-a,.porque-photo-b{position:relative;overflow:hidden;}
.porque-photo-a img,.porque-photo-b img{
  width:100%;height:100%;object-fit:cover;transition:transform .6s ease;
}
.porque-photo-a:hover img,.porque-photo-b:hover img{transform:scale(1.04);}
.pq-stat{
  position:absolute;bottom:1.5rem;left:1.5rem;
  background:rgba(5,22,94,.9);backdrop-filter:blur(10px);
  border:1px solid rgba(250,192,24,.3);border-radius:8px;
  padding:.8rem 1.2rem;
}
.pq-stat-n{font-family:var(--ft);font-size:2rem;font-weight:700;color:var(--gold);line-height:1;}
.pq-stat-l{font-size:.54rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:.2rem;}
.pq-badge{
  position:absolute;top:1.4rem;right:1.4rem;
  background:var(--gold);border-radius:6px;
  padding:.55rem 1rem;display:flex;align-items:center;gap:.5rem;
}
.pq-badge-ico{font-size:1.1rem;}
.pq-badge strong{display:block;font-family:var(--ft);font-size:.75rem;font-weight:700;color:var(--dark);line-height:1;}
.pq-badge span{font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(5,22,94,.55);}

.porque-content{
  padding:4.5rem 4rem 4.5rem 3.5rem;
  display:flex;flex-direction:column;justify-content:center;
  position:relative;
}
.porque-cards{
  display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:2rem;
}
.porque-card{
  background:var(--white);border:1px solid var(--border);border-radius:12px;
  padding:1.4rem 1.2rem;
  transition:border-color .25s,box-shadow .25s,transform .25s;
}
.porque-card:hover{
  border-color:var(--gold);
  box-shadow:0 10px 32px rgba(5,22,94,.1);
  transform:translateY(-4px);
}
.porque-card-ico{
  width:48px;height:48px;border-radius:12px;margin-bottom:1rem;
  background:linear-gradient(135deg,rgba(250,192,24,.15),rgba(250,192,24,.04));
  border:1px solid rgba(250,192,24,.28);
  display:flex;align-items:center;justify-content:center;font-size:1.35rem;
}
.porque-card-t{
  font-family:var(--ft);font-size:.82rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;color:var(--navy);margin-bottom:.35rem;
}
.porque-card-d{font-size:.78rem;color:var(--muted);line-height:1.65;}

/* ══════════════════════════════════════
   PORQUE ECOS v2 — foto única + timeline vertical
══════════════════════════════════════ */
.porque-photo-single{
  position:relative;overflow:hidden;
}
.porque-photo-single img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .6s ease;
}
.porque-photo-single:hover img{transform:scale(1.04);}

.porque-timeline{
  list-style:none;
  margin-top:2.2rem;
  position:relative;
  padding-left:1.6rem;
  border-left:2px solid var(--border);
}
.porque-tl-item{
  position:relative;
  padding-bottom:1.8rem;
}
.porque-tl-item:last-child{padding-bottom:0;}
.porque-tl-dot{
  position:absolute;
  left:-1.6rem;top:.2rem;
  width:14px;height:14px;
  border-radius:50%;
  background:var(--gold);
  border:3px solid var(--cream);
  box-shadow:0 0 0 2px var(--gold);
}
.porque-tl-t{
  font-family:var(--ft);font-size:.86rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.03em;
  color:var(--navy);margin-bottom:.3rem;
}
.porque-tl-d{font-size:.85rem;color:var(--muted);line-height:1.65;max-width:420px;}

/* ══════════════════════════════════════
   SPLIT SECTION — reutilizado (split antes de contacto)
══════════════════════════════════════ */
.split-sec{display:grid;grid-template-columns:1fr 1fr;min-height:580px;}
.split-sec.reverse{direction:rtl;}
.split-sec.reverse>*{direction:ltr;}
.split-content{
  display:flex;flex-direction:column;justify-content:center;
  padding:5rem var(--gap);background:var(--cream);position:relative;
}
.split-deco-num{
  position:absolute;top:-1rem;right:2rem;
  font-family:var(--ft);font-size:12rem;font-weight:700;
  color:rgba(5,22,94,.05);line-height:1;pointer-events:none;user-select:none;
}
.split-photo{position:relative;overflow:hidden;min-height:500px;}
.split-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.split-photo:hover img{transform:scale(1.04);}
.split-photo-label{
  position:absolute;bottom:1.8rem;left:1.8rem;
  background:var(--gold);color:var(--dark);
  font-family:var(--ft);font-size:.62rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;padding:.3rem .8rem;border-radius:2px;
}
.split-photo-badge{
  position:absolute;top:1.5rem;right:1.5rem;
  background:rgba(5,22,94,.9);backdrop-filter:blur(8px);
  border:1px solid rgba(250,192,24,.3);border-radius:6px;
  padding:.8rem 1.2rem;text-align:center;min-width:100px;
}
.spb-n{font-family:var(--ft);font-size:1.8rem;font-weight:700;color:var(--gold);line-height:1;}
.spb-l{font-size:.58rem;color:rgba(255,255,255,.45);letter-spacing:.08em;text-transform:uppercase;margin-top:.2rem;}

.feat-list{display:flex;flex-direction:column;gap:.9rem;margin-top:2rem;}
.feat-item{display:flex;gap:1rem;align-items:flex-start;}
.feat-dot{width:8px;height:8px;border-radius:50%;background:var(--red);flex-shrink:0;margin-top:.55rem;}
.feat-dot.gold{background:var(--gold);}
.feat-t{font-family:var(--ft);font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--navy);margin-bottom:.2rem;}
.feat-d{font-size:.82rem;color:var(--muted);line-height:1.65;}

/* ══════════════════════════════════════
   VIDEO ECOS — Cinemático con click-to-play
══════════════════════════════════════ */
.ecos-video{
  background:linear-gradient(180deg,var(--cream) 0%,#FAF6EE 60%,#F2EADC 100%);
  padding:5.5rem var(--gap);
  position:relative;overflow:hidden;
}
.ecos-video::before{
  content:'';position:absolute;top:-200px;left:-200px;
  width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(250,192,24,.18) 0%,transparent 70%);
  pointer-events:none;
}
.ecos-video::after{
  content:'';position:absolute;bottom:-150px;right:-150px;
  width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle,rgba(5,22,94,.07) 0%,transparent 70%);
  pointer-events:none;
}
.ev-inner{max-width:1100px;margin:0 auto;position:relative;z-index:1;}

.ev-head{text-align:center;margin-bottom:2.6rem;max-width:640px;margin-left:auto;margin-right:auto;}
.ev-eye{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ft);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:#9C7A0F;
  padding:.32rem 1rem;border:1px solid rgba(250,192,24,.55);border-radius:100px;
  margin-bottom:1.2rem;background:rgba(250,192,24,.14);
}
.ev-eye::before{content:'';width:5px;height:5px;border-radius:50%;background:#9C7A0F;}
.ev-h{
  font-family:var(--ft);font-size:clamp(2rem,4.5vw,3.6rem);font-weight:700;
  text-transform:uppercase;color:var(--navy);line-height:1.02;
  margin-bottom:.7rem;letter-spacing:-.005em;
}
.ev-h em{font-style:normal;color:var(--red);}
.ev-sub{font-size:.95rem;color:var(--muted);line-height:1.7;}

/* Player wrapper */
.ev-player-wrap{
  position:relative;border-radius:18px;overflow:hidden;
  aspect-ratio:16/9;width:100%;
  box-shadow:0 24px 60px rgba(5,22,94,.18),0 0 0 1px rgba(5,22,94,.08);
  background:#000;
}
.ev-thumb{
  position:relative;width:100%;height:100%;
  cursor:pointer;display:block;border:none;padding:0;
  background:#000;
}
.ev-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease,opacity .3s;}
.ev-thumb::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(5,22,94,.18) 0%,rgba(0,0,0,.05) 55%,rgba(0,0,0,.18) 100%);
  transition:opacity .3s;
}
.ev-thumb:hover img{transform:scale(1.04);}
.ev-thumb:hover::after{opacity:.4;}

/* Play button */
.ev-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:92px;height:92px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold) 0%,#FF9D00 100%);
  border:3px solid rgba(255,255,255,.55);
  display:flex;align-items:center;justify-content:center;
  color:var(--dark);cursor:pointer;
  box-shadow:0 22px 60px rgba(250,192,24,.5),inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .25s ease,box-shadow .25s;
  z-index:2;padding:0;
}
.ev-play svg{width:38px;height:38px;margin-left:5px;}
.ev-play:hover{transform:translate(-50%,-50%) scale(1.1);box-shadow:0 28px 80px rgba(250,192,24,.65),inset 0 1px 0 rgba(255,255,255,.4);}
.ev-play::before{
  content:'';position:absolute;inset:-14px;border-radius:50%;
  border:2px solid rgba(255,255,255,.28);
  animation:ev-pulse 2.4s ease-in-out infinite;pointer-events:none;
}
@keyframes ev-pulse{
  0%,100%{transform:scale(1);opacity:.7;}
  50%{transform:scale(1.18);opacity:0;}
}

/* Meta info on thumbnail */
.ev-thumb-meta{
  position:absolute;bottom:1.4rem;left:1.6rem;right:1.6rem;z-index:1;
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--ft);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.85);
}
.ev-meta-pre{display:inline-flex;align-items:center;gap:8px;}
.ev-meta-pre::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--red);animation:blink 2s infinite;}
.ev-meta-time{
  background:rgba(0,0,0,.55);backdrop-filter:blur(8px);
  padding:.3rem .7rem;border-radius:3px;font-size:.68rem;
  border:1px solid rgba(255,255,255,.18);
}

/* Stats strip below video */
.ev-stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  margin-top:2.5rem;padding-top:2rem;
  border-top:1px solid rgba(5,22,94,.12);
}
.ev-stat{text-align:center;padding:0 1rem;border-right:1px solid rgba(5,22,94,.08);}
.ev-stat:last-child{border-right:none;}
.ev-stat-n{font-family:var(--ft);font-size:1.85rem;font-weight:700;color:var(--red);line-height:1;}
.ev-stat-l{font-family:var(--ft);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.35rem;}

/* Cuando se carga el iframe — estilo */
.ev-player-wrap iframe{
  width:100%;height:100%;border:0;display:block;border-radius:inherit;
}

/* ══════════════════════════════════════
   CARTAGENA — Foto de fondo full-bleed
══════════════════════════════════════ */
.ctg-fullbleed{position:relative;min-height:85vh;display:flex;align-items:flex-end;overflow:hidden;}
.ctg-bg{position:absolute;inset:0;}
.ctg-bg img{width:100%;height:100%;object-fit:cover;object-position:center 35%;}
.ctg-gradient{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(5,22,94,.96) 0%,rgba(5,22,94,.6) 40%,rgba(5,22,94,.1) 80%,transparent 100%);
}
.ctg-content{
  position:relative;z-index:2;padding:4rem var(--gap) 4.5rem;width:100%;
  display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:end;
}
.ctg-quote-big{
  font-family:var(--ft);font-size:clamp(2rem,4.5vw,3.5rem);
  font-weight:700;text-transform:uppercase;color:var(--white);line-height:1.05;letter-spacing:-.01em;
}
.ctg-quote-big span{color:var(--gold);}
.ctg-author{font-family:var(--ft);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:.8rem;}
.ctg-features{display:flex;flex-direction:column;gap:.8rem;}
.ctg-feat{
  display:flex;gap:.9rem;align-items:flex-start;padding:.9rem 1rem;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:4px;
  transition:background .2s,border-color .2s;
}
.ctg-feat:hover{background:rgba(250,192,24,.08);border-color:rgba(250,192,24,.2);}
.ctg-feat-ico{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  background:rgba(250,192,24,.15);border:1px solid rgba(250,192,24,.3);
  display:flex;align-items:center;justify-content:center;font-size:.9rem;
}
.ctg-feat-t{font-family:var(--ft);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--white);margin-bottom:.15rem;}
.ctg-feat-d{font-size:.78rem;color:rgba(255,255,255,.5);line-height:1.5;}

/* ══════════════════════════════════════
   EXPERIENCIAS — Photo cards grandes
══════════════════════════════════════ */
.experiencias{background:var(--dark);padding:5rem var(--gap);}
.exp-header{display:grid;grid-template-columns:1fr 1fr;align-items:end;margin-bottom:3rem;gap:2rem;}
.exp-header-note{font-size:.88rem;color:rgba(255,255,255,.4);line-height:1.7;text-align:right;}
.exp-cards{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto;gap:12px;}
.exp-card{position:relative;border-radius:8px;overflow:hidden;display:flex;align-items:flex-end;cursor:default;}
.exp-card.tall{grid-row:span 2;min-height:580px;}
.exp-card.normal{min-height:260px;}
.exp-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.exp-card:hover img{transform:scale(1.05);}
.exp-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(5,22,94,.9) 0%,rgba(5,22,94,.15) 55%,transparent 100%);}
.exp-card-body{position:relative;z-index:1;padding:1.4rem 1.2rem;width:100%;}
.exp-card-tag{display:inline-block;font-family:var(--ft);font-size:.58rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:.2rem .6rem;border-radius:2px;margin-bottom:.5rem;}
.tag-gold{background:var(--gold);color:var(--dark);}
.tag-red{background:var(--red);color:var(--white);}
.tag-blue{background:rgba(255,255,255,.15);color:rgba(255,255,255,.85);}
.exp-card-t{font-family:var(--ft);font-size:1.1rem;font-weight:700;text-transform:uppercase;color:var(--white);line-height:1.15;margin-bottom:.3rem;}
.exp-card.tall .exp-card-t{font-size:1.6rem;}
.exp-card-d{font-size:.78rem;color:rgba(255,255,255,.58);line-height:1.55;}
.exp-includes{
  margin-top:2.5rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:rgba(255,255,255,.08);border-radius:6px;overflow:hidden;
}
.inc-item{padding:1.1rem 1rem;background:rgba(255,255,255,.03);display:flex;align-items:center;gap:.7rem;font-size:.78rem;color:rgba(255,255,255,.6);transition:background .2s;}
.inc-item:hover{background:rgba(250,192,24,.08);}
.inc-ico{font-size:1rem;flex-shrink:0;}

/* ══════════════════════════════════════
   TERRAZA V2 — Mosaico cinemático + brand badge
══════════════════════════════════════ */
.terraza{
  background:linear-gradient(180deg,var(--navy2) 0%,var(--navy) 100%);
  padding:6rem var(--gap);position:relative;overflow:hidden;
}
.terraza::before{
  content:'';position:absolute;top:-200px;right:-200px;
  width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(250,192,24,.08) 0%,transparent 70%);
  pointer-events:none;
}
.terraza::after{
  content:'';position:absolute;bottom:-150px;left:-150px;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(215,35,39,.06) 0%,transparent 70%);
  pointer-events:none;
}
.terraza-inner{max-width:var(--max);margin:0 auto;position:relative;z-index:1;display:block;}

/* Header centrado */
.terraza-head{text-align:center;margin-bottom:3rem;max-width:780px;margin-left:auto;margin-right:auto;}
.terraza-eye{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ft);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
  padding:.32rem 1rem;border:1px solid rgba(250,192,24,.4);border-radius:100px;
  margin-bottom:1.2rem;background:rgba(250,192,24,.06);
}
.terraza-eye::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold);}
.terraza-h{
  font-family:var(--ft);font-size:clamp(2.4rem,5vw,4.4rem);font-weight:700;
  text-transform:uppercase;color:var(--white);line-height:.98;letter-spacing:-.01em;
  margin-bottom:.6rem;
}
.terraza-h em{font-style:normal;color:var(--gold);}
.terraza-h-sub{font-size:1rem;color:rgba(255,255,255,.55);font-style:italic;line-height:1.6;}

/* Mosaico: 1 grande + 2 pequeñas + brand badge flotante */
.terraza-mosaic{
  display:grid;grid-template-columns:1.6fr 1fr;
  grid-template-rows:1fr 1fr;gap:.7rem;
  height:540px;max-width:1140px;margin:0 auto 3.5rem;
  position:relative;
}
.tm-1,.tm-2,.tm-3{position:relative;border-radius:14px;overflow:hidden;}
.tm-1{grid-column:1;grid-row:1 / 3;}
.tm-2{grid-column:2;grid-row:1;}
.tm-3{grid-column:2;grid-row:2;}
.tm-1 img,.tm-2 img,.tm-3 img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease;}
.tm-1:hover img,.tm-2:hover img,.tm-3:hover img{transform:scale(1.05);}
.tm-1::after,.tm-2::after,.tm-3::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(5,22,94,.6) 0%,rgba(5,22,94,.05) 50%,transparent 100%);
}
.tm-cap{
  position:absolute;bottom:1rem;left:1.2rem;z-index:1;
  font-family:var(--ft);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--white);padding:.3rem .75rem;
  background:rgba(5,22,94,.6);backdrop-filter:blur(8px);
  border-radius:3px;border:1px solid rgba(250,192,24,.3);
}

/* Brand badge Mami Oli's flotante */
.tm-brand{
  position:absolute;top:50%;left:62%;transform:translate(-50%,-50%);z-index:2;
  background:linear-gradient(135deg,var(--gold) 0%,#FF9D00 100%);
  color:var(--dark);padding:1.2rem 1.7rem;border-radius:14px;
  box-shadow:0 22px 60px rgba(250,192,24,.42),inset 0 1px 0 rgba(255,255,255,.4);
  font-family:var(--ft);text-align:center;
  border:2px solid rgba(255,255,255,.5);
}
.tm-brand::before{
  content:'';position:absolute;inset:-2px;border-radius:14px;
  background:linear-gradient(135deg,rgba(255,255,255,.3),transparent 50%);
  pointer-events:none;
}
.tm-brand-x{
  font-family:var(--ft);font-size:.6rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;opacity:.7;margin-bottom:.15rem;
}
.tm-brand-name{font-size:1.55rem;font-weight:700;letter-spacing:.01em;line-height:1;}
.tm-brand-sub{font-size:.65rem;font-weight:400;letter-spacing:.06em;opacity:.7;margin-top:.25rem;}

/* Content grid debajo */
.terraza-content{
  display:grid;grid-template-columns:.95fr 1.05fr;gap:3rem;align-items:start;
}

.terraza-quote{
  font-family:var(--ft);font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:700;
  text-transform:uppercase;color:var(--white);line-height:1.08;letter-spacing:-.005em;
  margin-bottom:1.2rem;
}
.terraza-quote span{color:var(--gold);}
.terraza-desc{font-size:.92rem;color:rgba(255,255,255,.62);line-height:1.85;margin-bottom:1.4rem;}
.terraza-desc strong{color:var(--gold);font-weight:600;}

.terraza-author{
  display:flex;align-items:center;gap:.85rem;margin-top:1.5rem;
  padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.08);
}
.terraza-author-img{
  width:48px;height:48px;border-radius:50%;flex-shrink:0;overflow:hidden;
  border:2px solid rgba(250,192,24,.4);
}
.terraza-author-img img{width:100%;height:100%;object-fit:cover;}
.terraza-author-info{display:flex;flex-direction:column;}
.terraza-author-name{font-family:var(--ft);font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--white);}
.terraza-author-role{font-size:.7rem;color:rgba(255,255,255,.4);font-style:italic;margin-top:.1rem;}

/* 6 highlights cards */
.terraza-highlights{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;}
.th-card{
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:12px;padding:1.2rem 1.05rem;
  display:flex;align-items:flex-start;gap:.85rem;
  transition:border-color .25s,background .25s,transform .25s;
}
.th-card:hover{
  border-color:rgba(250,192,24,.32);
  background:rgba(255,255,255,.07);
  transform:translateY(-3px);
}
.th-ico{
  width:40px;height:40px;border-radius:10px;flex-shrink:0;
  background:rgba(250,192,24,.12);border:1px solid rgba(250,192,24,.3);
  display:flex;align-items:center;justify-content:center;font-size:1.1rem;
}
.th-text{font-size:.8rem;color:rgba(255,255,255,.65);line-height:1.55;}
.th-text strong{display:block;font-family:var(--ft);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--white);margin-bottom:.2rem;}

/* Stats ribbon */
.terraza-stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.08);
}
.ts-col{text-align:center;padding:0 1rem;border-right:1px solid rgba(255,255,255,.06);}
.ts-col:last-child{border-right:none;}
.ts-n{font-family:var(--ft);font-size:1.9rem;font-weight:700;color:var(--gold);line-height:1;}
.ts-l{font-family:var(--ft);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:.35rem;}

/* ══════════════════════════════════════
   PROGRAMAS — Photo-header cards V3
══════════════════════════════════════ */
.programas{background:var(--cream);padding:5rem var(--gap);}
.prog-header{text-align:center;margin-bottom:3.5rem;}
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:var(--max);margin:0 auto 4rem;}

.prog-photo-card{
  background:var(--white);border-radius:12px;overflow:hidden;
  box-shadow:0 4px 20px rgba(5,22,94,.07);
  transition:transform .35s ease,box-shadow .35s ease;
}
.prog-photo-card:hover{transform:translateY(-8px);box-shadow:0 24px 64px rgba(5,22,94,.2);}
.prog-photo-img{position:relative;height:260px;overflow:hidden;}
.prog-photo-img img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease;}
.prog-photo-card:hover .prog-photo-img img{transform:scale(1.07);}
.prog-photo-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(5,22,94,.78) 0%,rgba(5,22,94,.18) 55%,transparent 100%);
}
.prog-photo-badge{
  position:absolute;top:1.1rem;left:1.1rem;z-index:1;
  width:62px;height:62px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-family:var(--ft);font-weight:700;line-height:1;
}
.pbb-navy{background:var(--navy);}
.pbb-red{background:var(--red);}
.pbb-gold{background:var(--gold);}
.prog-badge-n{font-size:1.85rem;color:var(--white);}
.pbb-gold .prog-badge-n{color:var(--dark);}
.prog-badge-u{font-size:.45rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.65);margin-top:1px;}
.pbb-gold .prog-badge-u{color:rgba(5,22,94,.55);}
.prog-photo-tag{
  position:absolute;bottom:1rem;right:1rem;z-index:1;
  font-family:var(--ft);font-size:.56rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  background:rgba(255,255,255,.12);backdrop-filter:blur(8px);
  color:var(--white);padding:.25rem .7rem;border-radius:2px;border:1px solid rgba(255,255,255,.2);
}
.prog-photo-body{padding:1.8rem 1.6rem;}
.prog-photo-name{font-family:var(--ft);font-size:1.05rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--txt);margin-bottom:.5rem;}
.prog-photo-desc{font-size:.83rem;color:var(--muted);line-height:1.7;margin-bottom:1.2rem;}
.prog-photo-feats{display:flex;flex-direction:column;gap:.4rem;}
.prog-photo-feat{display:flex;gap:.55rem;align-items:flex-start;font-size:.79rem;color:var(--muted);line-height:1.5;}
.prog-photo-feat::before{content:'✓';font-weight:700;flex-shrink:0;}
.pf-navy::before{color:var(--navy);}
.pf-red::before{color:var(--red);}
.pf-gold::before{color:var(--gold2);}

.prog-book-btn{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  margin-top:1.4rem;padding:.8rem 1.2rem;
  border-radius:999px;
  font-family:var(--ft);font-size:.78rem;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;
  text-decoration:none;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.prog-book-arr{transition:transform .2s ease;}
.prog-book-btn:hover{transform:translateY(-2px);}
.prog-book-btn:hover .prog-book-arr{transform:translateX(3px);}

.pbk-navy,.pbk-navy:visited,.pbk-navy:active{background:var(--navy);color:var(--white);}
.pbk-navy:hover{background:var(--blue-mid);color:var(--white);box-shadow:0 10px 24px rgba(5,22,94,.3);}

.pbk-red,.pbk-red:visited,.pbk-red:active{background:var(--red);color:var(--white);}
.pbk-red:hover{background:var(--red-dark);color:var(--white);box-shadow:0 10px 24px rgba(215,35,39,.3);}

.pbk-gold,.pbk-gold:visited,.pbk-gold:active{background:var(--gold);color:var(--dark);}
.pbk-gold:hover{background:var(--gold2);color:var(--dark);box-shadow:0 10px 24px rgba(250,192,24,.4);}

/* ─── Características incluidas — V4 editorial ─── */
/* ══════════════════════════════════════
   PROGRAMAS — Sección 4 editorial
   Debajo de Cartagena
══════════════════════════════════════ */

.programas{
  position:relative;
  background:
    linear-gradient(180deg,#fffdf8 0%,#f8f3ea 100%);
  padding:clamp(5rem,8vh,6.5rem) var(--gap);
  overflow:hidden;
}

.programas::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 0%, rgba(250,192,24,.12), transparent 32%),
    radial-gradient(circle at 20% 70%, rgba(5,22,94,.05), transparent 34%);
  pointer-events:none;
  z-index:0;
}

.programas > *{
  position:relative;
  z-index:2;
}

/* Header */
.prog-header{
  max-width:980px;
  margin:0 auto 3.8rem;
  text-align:center;
}

.prog-header .sec-num{
  justify-content:center;
  color:var(--red);
}

.prog-header .sec-num::before{
  background:var(--red);
}

.programas .display-title{
  color:var(--navy);
  font-size:clamp(3rem,5vw,5.1rem);
  line-height:.95;
  letter-spacing:-.025em;
  margin-bottom:1rem;
}

.programas .display-title em,
.programas .display-title strong,
.programas .display-title span{
  color:var(--red);
  font-style:normal;
}

.prog-header .body-text,
.prog-header p{
  max-width:620px;
  margin:0 auto;
  color:rgba(5,22,94,.68);
  font-size:.95rem;
  line-height:1.8;
}

/* Grid */
.prog-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.6rem;
  max-width:1180px;
  margin:0 auto 3.8rem;
}

/* Card base */
.prog-photo-card{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(5,22,94,.08);
  border-radius:20px;
  overflow:hidden;
  box-shadow:
    0 18px 45px rgba(5,22,94,.08),
    0 1px 0 rgba(255,255,255,.75) inset;
  transition:
    transform .35s ease,
    box-shadow .35s ease,
    border-color .35s ease;
}

.prog-photo-card:hover{
  transform:translateY(-8px);
  box-shadow:
    0 28px 70px rgba(5,22,94,.15),
    0 1px 0 rgba(255,255,255,.85) inset;
  border-color:rgba(5,22,94,.14);
}

/* Foto */
.prog-photo-img{
  position:relative;
  height:250px;
  overflow:hidden;
  border-radius:20px 20px 0 0;
}

.prog-photo-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s ease;
  display:block;
}

.prog-photo-card:hover .prog-photo-img img{
  transform:scale(1.05);
}

.prog-photo-img::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(
      to top,
      rgba(5,22,94,.78) 0%,
      rgba(5,22,94,.35) 42%,
      rgba(5,22,94,.04) 100%
    );
  pointer-events:none;
}

/* Badge circular semanas */
.prog-photo-badge{
  position:absolute;
  top:1rem;
  left:1rem;
  width:68px;
  height:68px;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 26px rgba(0,0,0,.24);
  border:3px solid rgba(255,255,255,.16);
  z-index:2;
}

.pbadge-navy{ background:var(--navy); color:#fff; }
.pbadge-red{ background:var(--red); color:#fff; }
.pbadge-gold{ background:var(--gold); color:var(--navy); }

.prog-badge-n{
  font-family:var(--ft);
  font-size:1.9rem;
  font-weight:700;
  line-height:1;
}

.prog-badge-u{
  font-family:var(--ft);
  font-size:.48rem;
  font-weight:800;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-top:.12rem;
}

/* Tag esquina foto */
.prog-photo-tag{
  position:absolute;
  right:1rem;
  bottom:1rem;
  padding:.32rem .65rem;
  border-radius:6px;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-family:var(--ft);
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.18);
  z-index:2;
}

/* Cuerpo */
.prog-photo-body{
  padding:1.75rem 1.65rem 1.55rem;
}

.prog-photo-name{
  font-family:var(--ft);
  color:var(--navy);
  font-size:1.15rem;
  line-height:1.15;
  text-transform:uppercase;
  margin-bottom:.8rem;
}

.prog-photo-desc{
  color:rgba(5,22,94,.68);
  font-size:.84rem;
  line-height:1.8;
  margin-bottom:1rem;
}

/* Features */
.prog-photo-feats{
  display:flex;
  flex-direction:column;
  gap:.5rem;
  margin:1rem 0 1.4rem;
}

.prog-photo-feat{
  position:relative;
  padding-left:1.15rem;
  color:rgba(5,22,94,.72);
  font-size:.8rem;
  line-height:1.65;
}

.prog-photo-feat::before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  font-size:.9rem;
  font-weight:700;
}

.pf-navy::before{ color:var(--navy); }
.pf-red::before{ color:var(--red); }
.pf-gold::before{ color:var(--gold2); }

/* CTA botón */
.prog-book-btn{
  width:100%;
  min-height:44px;
  border:none;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  text-decoration:none;
  font-family:var(--ft);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  transition:transform .25s ease, filter .25s ease, box-shadow .25s ease;
  margin-top:1.45rem;
  cursor:pointer;
}

.prog-book-btn:hover{
  transform:translateY(-2px);
  filter:brightness(1.03);
}

/* Bloque EAQUALS */
.eaquals-row{
  max-width:1180px;
  margin:0 auto;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(5,22,94,.1);
  border-radius:20px;
  box-shadow:0 18px 45px rgba(5,22,94,.08);
  backdrop-filter:blur(10px);
  overflow:hidden;
}

.eaquals-row-inner{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1.4rem;
  align-items:start;
  padding:1.6rem 1.7rem;
}

.eaquals-badge{
  width:84px;
  min-width:84px;
  border-radius:14px;
  background:var(--navy);
  color:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:1rem .7rem;
  text-align:center;
}

.eaquals-badge strong{
  font-family:var(--ft);
  font-size:.9rem;
  line-height:1.1;
  text-transform:uppercase;
  color:var(--gold);
}

.eaquals-badge span{
  font-size:.58rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.7;
  margin-top:.3rem;
}

.eaquals-content h3{
  font-family:var(--ft);
  font-size:1rem;
  text-transform:uppercase;
  color:var(--navy);
  margin-bottom:.45rem;
}

.eaquals-content p{
  color:rgba(5,22,94,.68);
  font-size:.84rem;
  line-height:1.8;
  margin-bottom:1rem;
}

.eaquals-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}

.eaquals-tags span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:.35rem .75rem;
  border-radius:999px;
  background:#f4f6fb;
  border:1px solid rgba(5,22,94,.08);
  color:rgba(5,22,94,.75);
  font-size:.72rem;
  line-height:1.2;
}

/* Responsive */
@media(max-width:1100px){
  .prog-grid{
    grid-template-columns:1fr;
    max-width:560px;
  }

  .programas .display-title{
    font-size:clamp(2.5rem,8vw,4rem);
  }
}

@media(max-width:760px){
  .programas{
    padding:4rem var(--gap);
  }

  .prog-header{
    margin-bottom:2.8rem;
  }

  .prog-photo-img{
    height:220px;
  }

  .eaquals-row-inner{
    grid-template-columns:1fr;
  }

  .eaquals-badge{
    width:100%;
    min-width:0;
    flex-direction:row;
    gap:.7rem;
    justify-content:flex-start;
    padding:1rem 1.1rem;
  }
}

@media(max-width:560px){
  .prog-photo-body{
    padding:1.35rem 1.2rem 1.2rem;
  }

  .prog-photo-name{
    font-size:1rem;
  }

  .prog-photo-desc{
    font-size:.82rem;
  }

  .eaquals-tags span{
    width:100%;
    justify-content:flex-start;
  }
}

/* Featured — créditos en navy oscuro */
.prog-panel.featured{
  background:linear-gradient(160deg,var(--navy2) 0%,var(--navy) 100%);
  border-color:rgba(250,192,24,.32);position:relative;
}
.prog-panel.featured::before{
  content:'PREMIUM';position:absolute;top:1rem;right:1rem;z-index:2;
  font-family:var(--ft);font-size:.55rem;font-weight:700;
  letter-spacing:.18em;color:var(--gold);
  padding:.2rem .55rem;border:1px solid rgba(250,192,24,.45);border-radius:3px;
  background:rgba(5,22,94,.5);backdrop-filter:blur(6px);
}
.prog-panel.featured .prog-panel-head::after{
  background:linear-gradient(135deg,rgba(5,22,94,.94) 0%,rgba(10,15,46,.7) 100%);
}
.prog-panel.featured .prog-panel-sub{color:rgba(255,255,255,.52);}
.prog-panel.featured .prog-panel-li{color:rgba(255,255,255,.72);}
.prog-panel.featured .prog-panel-li::before{background:var(--gold);}

.eaquals-row{
  display:flex;align-items:center;gap:2rem;
  background:var(--white);border:1px solid var(--border);
  border-radius:8px;padding:1.5rem 2rem;
  max-width:var(--max);margin:0 auto;flex-wrap:wrap;
}
.eq-badge{background:var(--navy);color:var(--white);border-radius:6px;padding:.8rem 1.2rem;text-align:center;flex-shrink:0;min-width:90px;}
.eq-badge-star{font-size:1.3rem;}
.eq-badge-name{font-family:var(--ft);font-size:.75rem;font-weight:700;color:var(--gold);letter-spacing:.05em;}
.eq-badge-sub{font-size:.55rem;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.08em;}
.eq-content{flex:1;min-width:200px;}
.eq-title{font-family:var(--ft);font-size:.85rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--navy);margin-bottom:.3rem;}
.eq-text{font-size:.82rem;color:var(--muted);line-height:1.6;}
.eq-text strong{color:var(--navy);}
.eq-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem;}
.eq-chip{font-size:.68rem;padding:.2rem .6rem;border-radius:2px;background:rgba(6,23,126,.08);color:var(--navy);}

/* ══════════════════════════════════════
   APOYO — Image-top cards V3
══════════════════════════════════════ */
.apoyo{background:var(--dark);padding:5rem var(--gap);}
.apoyo-intro{max-width:var(--max);margin:0 auto 3rem;}
.apoyo-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;max-width:var(--max);margin:0 auto;}

.apoyo-photo-card{
  border-radius:12px;overflow:hidden;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);
  transition:border-color .25s,transform .3s;
}
.apoyo-photo-card:hover{border-color:rgba(250,192,24,.28);transform:translateY(-4px);}
.apoyo-photo-img{height:210px;overflow:hidden;position:relative;}
.apoyo-photo-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.apoyo-photo-card:hover .apoyo-photo-img img{transform:scale(1.06);}
.apoyo-photo-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(5,22,94,.2) 0%,rgba(5,22,94,.65) 100%);
}
.apoyo-ico-wrap{
  position:absolute;bottom:1rem;left:1.2rem;z-index:1;
  width:44px;height:44px;border-radius:50%;
  background:rgba(250,192,24,.15);border:2px solid rgba(250,192,24,.5);
  display:flex;align-items:center;justify-content:center;font-size:1.1rem;
  backdrop-filter:blur(6px);
}
.apoyo-photo-body{padding:1.4rem 1.5rem;}
.apoyo-photo-t{font-family:var(--ft);font-size:.9rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--white);margin-bottom:.9rem;}
.apoyo-photo-list{display:flex;flex-direction:column;gap:.45rem;}
.apoyo-photo-li{display:flex;gap:.6rem;align-items:flex-start;font-size:.8rem;color:rgba(255,255,255,.55);line-height:1.55;}
.apoyo-photo-li::before{content:'→';color:var(--gold);font-weight:700;flex-shrink:0;font-size:.74rem;margin-top:.05rem;}

/* ══════════════════════════════════════
   FACULTY LEADS — Editorial inmersivo V3
══════════════════════════════════════ */
.faculty{
  position:relative;background:var(--navy2);
  padding:6rem var(--gap);overflow:hidden;
}
.faculty-bg{position:absolute;inset:0;}
.faculty-bg img{width:100%;height:100%;object-fit:cover;opacity:.22;filter:saturate(.6);}
.faculty-overlay{
  position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(5,22,94,.95) 0%,rgba(10,15,46,.88) 55%,rgba(5,22,94,.96) 100%);
}
.faculty::after{
  content:'';position:absolute;top:-150px;right:-150px;
  width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(250,192,24,.07) 0%,transparent 70%);
  pointer-events:none;
}
.faculty-inner{position:relative;z-index:1;max-width:var(--max);margin:0 auto;}

.faculty-head{
  display:grid;grid-template-columns:1.1fr 1fr;gap:4rem;align-items:end;
  margin-bottom:3.5rem;
}
.faculty-eye{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ft);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold);margin-bottom:1.2rem;
  padding:.3rem .9rem;border:1px solid rgba(250,192,24,.35);border-radius:100px;
}
.faculty-eye::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold);}
.faculty-title{
  font-family:var(--ft);font-size:clamp(2.4rem,5vw,4.4rem);font-weight:700;
  text-transform:uppercase;color:var(--white);line-height:.98;letter-spacing:-.01em;
}
.faculty-title em{font-style:normal;color:var(--gold);}
.faculty-intro{font-size:.95rem;color:rgba(255,255,255,.62);line-height:1.85;}
.faculty-intro strong{color:var(--white);font-weight:600;}

.faculty-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;
  margin-bottom:3rem;
}
.fac-card{
  position:relative;overflow:hidden;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.09);
  border-radius:14px;padding:2rem 1.5rem 1.8rem;
  transition:transform .35s,border-color .3s,background .3s;
}
.fac-card::before{
  content:'';position:absolute;top:0;left:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--gold),#FFB300);transition:width .4s ease;
}
.fac-card:hover{
  transform:translateY(-6px);
  border-color:rgba(250,192,24,.32);
  background:rgba(255,255,255,.06);
}
.fac-card:hover::before{width:100%;}
.fac-num{
  font-family:var(--ft);font-size:3.4rem;font-weight:700;
  color:rgba(250,192,24,.16);line-height:1;margin-bottom:.4rem;
}
.fac-ico{
  width:46px;height:46px;border-radius:11px;
  background:rgba(250,192,24,.1);border:1px solid rgba(250,192,24,.28);
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;
  margin-bottom:1.1rem;
}
.fac-t{
  font-family:var(--ft);font-size:.88rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;color:var(--white);
  line-height:1.2;margin-bottom:.55rem;
}
.fac-d{font-size:.79rem;color:rgba(255,255,255,.5);line-height:1.65;}

/* Comparison row — 3 col */
.faculty-compare{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.09);
  border-radius:14px;overflow:hidden;
  margin-bottom:3rem;
}
.fc-head,.fc-row{
  display:grid;grid-template-columns:1.4fr 1fr 1fr;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.fc-row:last-child{border-bottom:none;}
.fc-head{background:rgba(255,255,255,.04);}
.fc-cell{
  padding:1.05rem 1.4rem;font-size:.83rem;color:rgba(255,255,255,.7);
  display:flex;align-items:center;gap:.5rem;border-right:1px solid rgba(255,255,255,.05);
}
.fc-cell:last-child{border-right:none;}
.fc-head .fc-cell{
  font-family:var(--ft);font-size:.65rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45);
}
.fc-head .fc-cell.gold{color:var(--gold);}
.fc-cell.criterion{font-family:var(--ft);font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.85);}
.fc-cell.dim{color:rgba(255,255,255,.4);}
.fc-cell.dim::before{content:'—';color:rgba(255,255,255,.25);font-weight:400;margin-right:.4rem;}
.fc-cell.has-check{color:var(--white);background:rgba(250,192,24,.04);}
.fc-cell.has-check::before{content:'✓';color:var(--gold);font-weight:700;flex-shrink:0;}

/* Quote bar */
.faculty-quote{
  display:grid;grid-template-columns:auto 1fr auto;gap:2.2rem;align-items:center;
  padding:2.2rem 2.6rem;
  background:linear-gradient(135deg,rgba(250,192,24,.1) 0%,rgba(250,192,24,.02) 100%);
  border:1px solid rgba(250,192,24,.28);border-radius:14px;
}
.fq-mark{font-family:var(--ft);font-size:5.5rem;line-height:.8;color:var(--gold);font-weight:700;}
.fq-text{font-style:italic;font-size:1.02rem;color:rgba(255,255,255,.85);line-height:1.6;}
.fq-author{font-family:var(--ft);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);text-align:right;line-height:1.4;white-space:nowrap;}
.fq-author span{display:block;font-size:.6rem;color:rgba(255,255,255,.4);font-weight:400;letter-spacing:.08em;margin-top:.2rem;}

/* ══════════════════════════════════════
   TESTIMONIOS — Photo-background cards V3
══════════════════════════════════════ */
.testimonios{background:var(--cream);padding:5rem var(--gap);position:relative;overflow:hidden;}
.testimonios::before{
  content:'';position:absolute;top:-200px;left:-200px;
  width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(5,22,94,.04) 0%,transparent 70%);pointer-events:none;
}
.testi-header{text-align:center;margin-bottom:3.5rem;position:relative;z-index:1;}
.testi-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ft);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--navy);margin-bottom:1.2rem;
  padding:.25rem .9rem;border:1px solid rgba(5,22,94,.18);border-radius:100px;
  background:rgba(5,22,94,.04);
}
.testi-h{font-family:var(--ft);font-size:clamp(2rem,4vw,3.2rem);font-weight:700;text-transform:uppercase;color:var(--navy);line-height:1.05;}
.testi-h span{display:block;color:var(--gold2);}
.testi-sub{font-size:.84rem;color:var(--muted);margin-top:.4rem;}

/* ── Fichas de testimonio (zigzag) ── */
.testi-stories{
  position:relative;z-index:1;
  max-width:var(--max);margin:0 auto 2.6rem;
  display:flex;flex-direction:column;gap:1.6rem;
}
.testi-story{
  display:grid;grid-template-columns:1fr 1fr;
  gap:0;align-items:stretch;
  background:#fff;border:1px solid rgba(5,22,94,.08);
  border-radius:20px;overflow:hidden;
  box-shadow:0 18px 44px rgba(5,22,94,.07);
}
.testi-story-reverse{grid-template-columns:1fr 1fr;}
.testi-story-reverse .testi-story-body{order:1;}
.testi-story-reverse .testi-story-media{order:2;}

.testi-story-media{position:relative;min-height:320px;}
.testi-story-video{
  position:absolute;inset:0;width:100%;height:100%;
  border:none;padding:0;cursor:pointer;background:var(--navy);
  display:block;overflow:hidden;
}
.testi-story-mp4{
  display:none;position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
}
.testi-story-video.is-playing .testi-story-mp4{display:block;}
.testi-story-video.is-playing .testi-story-fallback-img,
.testi-story-video.is-playing .testi-story-play,
.testi-story-video.is-playing .testi-story-time{display:none;}
.testi-story-fallback-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .55s ease;
}
.testi-story-video:hover .testi-story-fallback-img{transform:scale(1.05);}
.testi-story-video::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(5,22,94,.35) 0%,transparent 55%);
  pointer-events:none;
}
.testi-story-play{
  position:absolute;top:50%;left:50%;z-index:2;
  transform:translate(-50%,-50%);
  width:64px;height:64px;border-radius:50%;
  background:rgba(255,255,255,.94);color:var(--navy);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 28px rgba(0,0,0,.3);
  transition:transform .25s ease;
}
.testi-story-play svg{width:24px;height:24px;margin-left:2px;}
.testi-story-video:hover .testi-story-play{transform:translate(-50%,-50%) scale(1.08);}
.testi-story-time{
  position:absolute;bottom:.9rem;left:.9rem;z-index:2;
  background:rgba(0,0,0,.5);color:#fff;
  font-size:.7rem;font-weight:600;
  padding:.2rem .5rem;border-radius:5px;
}

.testi-story-body{
  padding:clamp(1.6rem,3vw,2.6rem);
  display:flex;flex-direction:column;justify-content:center;
}
.testi-story-person{
  display:flex;align-items:center;gap:.4rem;
  font-family:var(--ft);font-weight:700;font-size:.92rem;
  color:var(--navy);margin-bottom:.9rem;
}
.testi-story-country{color:var(--muted);font-weight:600;}
.testi-story-dot{color:var(--muted);}
.testi-story-flag{font-size:1rem;}
.testi-story-quote{
  margin:0 0 1rem;
  font-family:var(--ft);font-weight:700;
  font-size:clamp(1.15rem,2vw,1.4rem);
  line-height:1.35;color:var(--navy);
  position:relative;padding-left:1.1rem;
  border-left:3px solid var(--gold);
}
.testi-story-desc{
  font-size:.86rem;line-height:1.7;color:var(--muted);
  margin-bottom:1.3rem;
}
.testi-story-tags{display:flex;flex-wrap:wrap;gap:.55rem;}
.testi-tag{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:.74rem;font-weight:600;
  padding:.32rem .7rem;border-radius:999px;
}
.testi-tag svg{width:13px;height:13px;flex-shrink:0;}
.testi-tag-navy{background:rgba(5,22,94,.08);color:var(--navy);}
.testi-tag-gold{background:rgba(250,192,24,.14);color:#8a6500;}
.testi-tag-red{background:rgba(215,35,39,.08);color:var(--red);}

/* ── CTA ── */
.testi-cta{
  position:relative;z-index:1;
  max-width:var(--max);margin:0 auto 3rem;
  display:flex;align-items:center;justify-content:space-between;
  gap:1.2rem;flex-wrap:wrap;
  background:#fff;border:1px solid rgba(5,22,94,.08);
  border-radius:16px;padding:1.2rem 1.6rem;
  box-shadow:0 14px 34px rgba(5,22,94,.06);
}
.testi-cta-left{display:flex;align-items:center;gap:.8rem;font-size:.88rem;color:var(--navy);font-weight:600;}
.testi-cta-ico{
  flex-shrink:0;width:38px;height:38px;border-radius:50%;
  background:rgba(5,22,94,.06);color:var(--navy);
  display:flex;align-items:center;justify-content:center;
}
.testi-cta-ico svg{width:18px;height:18px;}
.testi-cta-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--ft);font-size:.78rem;font-weight:700;
  letter-spacing:.03em;text-transform:uppercase;
  padding:.85rem 1.5rem;border-radius:999px;
  background:var(--navy);color:#fff;
  transition:background .2s,transform .2s;
}
.testi-cta-btn:visited,.testi-cta-btn:active{background:var(--navy);color:#fff;}
.testi-cta-btn:hover{background:var(--blue-mid);color:#fff;transform:translateY(-2px);}
.testi-cta-arr{transition:transform .2s;}
.testi-cta-btn:hover .testi-cta-arr{transform:translateX(3px);}

@media (max-width:860px){
  .testi-story,.testi-story-reverse{grid-template-columns:1fr;}
  .testi-story-reverse .testi-story-body{order:2;}
  .testi-story-reverse .testi-story-media{order:1;}
  .testi-story-media{min-height:260px;}
  .testi-cta{flex-direction:column;align-items:flex-start;}
  .testi-cta-btn{width:100%;justify-content:center;}
}

.testi-bottom{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(5,22,94,.08);padding-top:2rem;
  max-width:var(--max);margin:0 auto;position:relative;z-index:1;
}
.tb-col{text-align:center;padding:0 1rem;border-right:1px solid rgba(5,22,94,.06);}
.tb-col:last-child{border-right:none;}
.tb-n{font-family:var(--ft);font-size:2.5rem;font-weight:700;color:var(--gold2);}
.tb-l{font-family:var(--ft);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.2rem;}


/* ══════════════════════════════════════
   CONTACTO V3 — Hero + métodos + glass form
══════════════════════════════════════ */
.contacto{background:var(--cream);padding:0 0 5rem;position:relative;overflow:hidden;}

/* Hero */
.cv3-hero{
  position:relative;min-height:340px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  overflow:hidden;
}
.cv3-hero-bg{position:absolute;inset:0;}
.cv3-hero-bg img{width:100%;height:100%;object-fit:cover;}
.cv3-hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(5,22,94,.92) 0%,rgba(10,15,46,.85) 60%,rgba(5,22,94,.94) 100%);
}
.cv3-hero::after{
  content:'';position:absolute;bottom:-120px;left:50%;transform:translateX(-50%);
  width:680px;height:240px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(250,192,24,.12) 0%,transparent 70%);
  pointer-events:none;
}
.cv3-hero-body{position:relative;z-index:1;padding:5rem var(--gap) 6rem;max-width:780px;}
.cv3-hero-eye{
  display:inline-flex;gap:8px;align-items:center;
  font-family:var(--ft);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
  padding:.32rem 1rem;border:1px solid rgba(250,192,24,.4);border-radius:100px;margin-bottom:1.4rem;
}
.cv3-hero-eye::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold);}
.cv3-hero-h{
  font-family:var(--ft);font-size:clamp(2.2rem,5vw,4rem);font-weight:700;
  text-transform:uppercase;color:var(--white);line-height:1.02;margin-bottom:.9rem;letter-spacing:-.01em;
}
.cv3-hero-h em{font-style:normal;color:var(--gold);}
.cv3-hero-sub{font-size:.95rem;color:rgba(255,255,255,.6);line-height:1.75;}

/* 3 contact method cards — flotantes sobre el hero */
.cv3-methods{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;
  max-width:var(--max);margin:-4rem auto 0;padding:0 var(--gap);
  position:relative;z-index:2;
}
.cv3-method{
  background:var(--white);border-radius:14px;
  box-shadow:0 18px 60px rgba(5,22,94,.14);
  padding:2.2rem 1.8rem 2rem;text-align:center;
  border-top:3px solid transparent;
  transition:transform .3s,box-shadow .3s,border-color .3s;
  text-decoration:none;display:block;
}
.cv3-method:hover{transform:translateY(-8px);box-shadow:0 32px 80px rgba(5,22,94,.2);}
.cv3-m-1:hover{border-color:#25D366;}
.cv3-m-2:hover{border-color:var(--gold);}
.cv3-m-3:hover{border-color:var(--red);}
.cv3-m-ico{
  width:64px;height:64px;border-radius:50%;margin:0 auto 1.1rem;
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;
}
.cv3-m-1 .cv3-m-ico{background:rgba(37,211,102,.12);color:#25D366;border:1px solid rgba(37,211,102,.25);}
.cv3-m-2 .cv3-m-ico{background:rgba(250,192,24,.15);color:var(--gold2);border:1px solid rgba(250,192,24,.3);}
.cv3-m-3 .cv3-m-ico{background:rgba(215,35,39,.1);color:var(--red);border:1px solid rgba(215,35,39,.25);}
.cv3-m-lbl{font-family:var(--ft);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;}
.cv3-m-h{font-family:var(--ft);font-size:1rem;font-weight:700;text-transform:uppercase;color:var(--navy);letter-spacing:.04em;margin-bottom:.55rem;}
.cv3-m-d{font-size:.81rem;color:var(--muted);line-height:1.65;margin-bottom:1.2rem;}
.cv3-m-cta{
  display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--ft);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--navy);transition:gap .2s,color .2s;
}
.cv3-method:hover .cv3-m-cta{gap:.7rem;color:var(--red);}
.cv3-m-cta::after{content:'→';}

/* ─── FORM V6 — UX/UI Editorial con floating labels ─── */
.cv6-wrap{max-width:920px;margin:4rem auto 0;padding:0 var(--gap);}

/* Header fuera de la card */
.cv6-head{text-align:center;max-width:640px;margin:0 auto 2.5rem;}
.cv6-pill{
  display:inline-flex;gap:8px;align-items:center;
  font-family:var(--ft);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold2);
  padding:.32rem 1rem;background:rgba(250,192,24,.1);border:1px solid rgba(250,192,24,.32);border-radius:100px;
  margin-bottom:1.2rem;
}
.cv6-pill::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold);}
.cv6-h{
  font-family:var(--ft);font-size:clamp(2rem,4vw,3rem);font-weight:700;
  text-transform:uppercase;color:var(--navy);line-height:1.02;letter-spacing:-.005em;
  margin-bottom:.7rem;
}
.cv6-h em{font-style:normal;color:var(--gold2);}
.cv6-sub{font-size:.92rem;color:var(--muted);line-height:1.7;}
.cv6-sub strong{color:var(--navy);}

/* Card con accent bar editorial */
.cv6-card{
  position:relative;background:var(--white);border-radius:16px;overflow:hidden;
  box-shadow:
    0 1px 0 rgba(5,22,94,.04),
    0 12px 28px rgba(5,22,94,.06),
    0 36px 80px rgba(5,22,94,.13);
  padding:2.6rem 3rem 2.4rem 3.2rem;
}
.cv6-card::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--navy) 0%,var(--gold) 60%,var(--gold2) 100%);
}

/* Sección con header tipo separador editorial */
.cv6-sec{margin-bottom:2.2rem;}
.cv6-sec:last-of-type{margin-bottom:0;}
.cv6-sec-h{
  display:flex;align-items:center;gap:.9rem;margin-bottom:1.6rem;
}
.cv6-sec-num{
  width:24px;height:24px;border-radius:50%;flex-shrink:0;
  background:var(--gold);color:var(--dark);
  font-family:var(--ft);font-size:.62rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;letter-spacing:.02em;
}
.cv6-sec-t{
  font-family:var(--ft);font-size:.78rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--navy);
}
.cv6-sec-h::after{
  content:'';flex:1;height:1px;
  background:linear-gradient(90deg,rgba(5,22,94,.12),transparent);
}

/* ── Campos con label estático arriba ── */
.cv6-fields { display:flex; flex-direction:column; gap:1.1rem; }
.cv6-row    { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.cv6-field  { display:flex; flex-direction:column; gap:.32rem; }

/* Label estático arriba del campo */
.cv6-lbl {
  font-family: var(--fb);
  font-size: .78rem;
  font-weight: 600;
  color: var(--navy);
  letter-spacing: .01em;
}
.cv6-lbl-req { color: var(--red); font-weight: 700; margin-left: 1px; }

/* Inputs con borde completo */
.cv6-inp, .cv6-sel, .cv6-ta {
  width: 100%;
  border: 1.5px solid #D8D4CC;
  border-radius: 7px;
  background: var(--white);
  padding: .62rem .85rem;
  font-family: var(--fb);
  font-size: .88rem;
  color: var(--txt);
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.cv6-inp::placeholder, .cv6-ta::placeholder {
  color: #B0ACA4;
  font-size: .85rem;
}
.cv6-inp:hover, .cv6-sel:hover, .cv6-ta:hover { border-color: #B8B4AC; }
.cv6-inp:focus, .cv6-sel:focus, .cv6-ta:focus {
  border-color: var(--gold2);
  box-shadow: 0 0 0 3px rgba(250,192,24,.15);
}

/* Select */
.cv6-field-sel { display:flex; flex-direction:column; gap:.32rem; }
.cv6-field-sel .cv6-lbl { font-size:.78rem; font-weight:600; color:var(--navy); }
.cv6-sel {
  appearance: none; -webkit-appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2305165E' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .85rem center;
  background-size: 10px;
  padding-right: 2.2rem;
  color: #B0ACA4;
}
.cv6-sel:valid, .cv6-sel option:not(:first-child) { color: var(--txt); }

/* Textarea */
.cv6-ta { resize: vertical; min-height: 90px; line-height: 1.6; }

/* Submit row */
.cv6-foot {
  display: flex; align-items: center;
  justify-content: space-between;
  margin-top: 1.6rem;
  gap: 1.2rem; flex-wrap: wrap;
}
.cv6-trust { display:flex; flex-direction:column; gap:.3rem; }
.cv6-trust-item {
  display: flex; align-items: center; gap: .45rem;
  font-size: .74rem; color: var(--muted);
}
.cv6-trust-item::before {
  content: ''; width: 16px; height: 16px; border-radius: 50%; flex-shrink: 0;
  background: rgba(250,192,24,.18);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%23FAC018' d='M3.8 7.4L1.4 5l-.8.8 3.2 3.2L10 2.8l-.8-.8z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 9px;
}

/* Botón enviar — navy sólido */
.cv6-submit {
  background: var(--navy);
  color: var(--white);
  font-family: var(--ft); font-size: .78rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  padding: .95rem 2rem; border: none; border-radius: 100px;
  display: inline-flex; align-items: center; gap: .6rem;
  cursor: pointer;
  transition: transform .2s, box-shadow .2s, background .2s;
  box-shadow: 0 6px 20px rgba(5,22,94,.3);
  white-space: nowrap;
}
.cv6-submit:hover {
  background: var(--navy2);
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(5,22,94,.4);
}
.cv6-submit-arr { transition: transform .25s; font-size: 1.05em; }
.cv6-submit:hover .cv6-submit-arr { transform: translateX(5px); }

/* ── Sección contacto: sidebar + form ── */
.ct-body {
  max-width: var(--max);
  margin: 0 auto;
  padding: 4rem var(--gap) 5rem;
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 2rem;
  align-items: stretch;        /* ambas columnas mismo alto */
  background: var(--cream);
}

/* Sidebar — tono apagado para que resalte el formulario */
.ct-sidebar {
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(5,22,94,.08);
  border-radius: 18px;
  padding: 1.95rem 2rem 2.4rem;
  box-shadow: 0 14px 40px rgba(5,22,94,.06);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

/* Título */
.ct-sidebar-title {
  font-family: var(--ft);
  font-size: 1.45rem;
  font-weight: 800;
  color: var(--navy);
  text-transform: uppercase;
  line-height: 1.15;
  letter-spacing: -.02em;
  margin-bottom: 2.2rem;
}

.ct-sidebar-title em {
  font-style: normal;
  color: var(--red);
  display: block;
}

/* Lista de razones */
.ct-reasons {
  display: flex;
  flex-direction: column;
  gap: 1.65rem;
}

/* Cada item más separado */
.ct-reason {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 1rem;
  align-items: flex-start;
  padding-bottom: 1.45rem;
  border-bottom: 1px solid rgba(5,22,94,.08);
}

.ct-reason:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

/* Icono más parecido a la propuesta */
.ct-reason-ico {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--gold), #ffb000);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  color: var(--navy);
  box-shadow: 0 8px 20px rgba(250,192,24,.22);
}

/* Título del item */
.ct-reason-t {
  font-family: var(--ft);
  font-size: .88rem;
  font-weight: 800;
  color: var(--navy);
  text-transform: none;
  letter-spacing: 0;
  margin-bottom: .35rem;
  line-height: 1.25;
}

/* Descripción */
.ct-reason-d {
  font-size: .82rem;
  line-height: 1.75;
  color: rgba(43,48,68,.72);
  max-width: 230px;
}

/* Formulario — misma card */
/*.ct-form-wrap {}*/
.cv6-card {
  background: var(--white);
  border: 1.5px solid #E8E4DC;
  border-radius: 14px;
  padding: 2rem 2rem 1.8rem;
  box-shadow: 0 4px 24px rgba(5,22,94,.07);
  height: 100%;
  box-sizing: border-box;
}

/* Número de sección — pill gold */
.cv6-sec { margin-bottom: 1.6rem; }
.cv6-sec:last-of-type { margin-bottom: 0; }
.cv6-sec-h {
  display: flex; align-items: center; gap: .75rem;
  margin-bottom: 1rem;
}
.cv6-sec-num {
  font-family: var(--ft); font-size: .62rem; font-weight: 700;
  letter-spacing: .08em;
  background: var(--gold);
  color: var(--dark);
  padding: .22rem .65rem;
  border-radius: 999px;
  line-height: 1;
}
.cv6-sec-t {
  font-family: var(--ft); font-size: .7rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--navy);
}
.cv6-sec-h::after {
  content:''; flex:1; height:1px;
  background: linear-gradient(90deg, rgba(5,22,94,.1), transparent);
}

/* Responsive contacto */
@media (max-width: 860px) {
  .ct-body {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 1.5rem;
    padding: 3rem var(--gap);
  }
  .cv6-card { height: auto; }
  .cv6-row { grid-template-columns: 1fr; gap: .9rem; }
}
@media (max-width: 500px) {
  .cv6-card { padding: 1.4rem 1.2rem; }
  .cv6-foot { flex-direction: column; align-items: stretch; }
  .cv6-submit { justify-content: center; }
}