:root {
  --blue:#3b465c; --blue-2:#2d3648; --blue-3:#1f2939; --deep:#0b111b; --deep-2:#101827;
  --bone:#e9e8d4; --paper:#f4f4f1; --ink:#1e2530; --cyan:#8fd3e0;
  --line:rgba(233,232,212,.16); --line-dark:rgba(59,70,92,.16); --radius:26px; --max:1200px;
  --shadow:0 24px 70px rgba(0,0,0,.22);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Montserrat',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--deep);color:var(--paper);line-height:1.55;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-5;background:
  radial-gradient(circle at 74% 12%,rgba(143,211,224,.12),transparent 30%),
  radial-gradient(circle at 14% 80%,rgba(233,232,212,.07),transparent 32%),
  linear-gradient(135deg,rgba(255,255,255,.022) 0 1px,transparent 1px 100%);
  background-size:auto,auto,64px 64px;}
a{color:inherit;text-decoration:none} img{display:block;max-width:100%;height:auto}
.wrap{width:min(var(--max),calc(100% - 44px));margin:auto}
.skip-link{position:fixed;top:8px;left:8px;z-index:300;transform:translateY(-150%);background:var(--bone);color:var(--blue-3);padding:12px 18px;border-radius:12px;font-weight:800;font-size:13px;letter-spacing:.04em;box-shadow:var(--shadow);transition:transform .2s ease}
.skip-link:focus{transform:translateY(0);outline:2px solid var(--cyan);outline-offset:2px}
.hero:focus{outline:none}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.links a:focus-visible,.brand:focus-visible{outline-offset:4px;border-radius:6px}
.burger:focus-visible{outline-color:var(--bone)}
section{position:relative;padding:96px 0;overflow:hidden;scroll-margin-top:88px}
.kicker{margin:0 0 14px;color:var(--cyan);font-size:18px;font-weight:900;letter-spacing:.20em;text-transform:uppercase}
h1,h2,h3,p{margin-top:0} h1,h2,h3{text-transform:uppercase;letter-spacing:-.045em;line-height:.96}
h2{font-size:clamp(38px,6vw,74px);margin-bottom:18px}
p{color:rgba(243,244,246,.74)}
.nav{position:fixed;top:0;left:0;right:0;z-index:100;backdrop-filter:blur(18px);background:linear-gradient(180deg,rgba(11,17,27,.95),rgba(11,17,27,.58));border-bottom:1px solid rgba(233,232,212,.12);transition:background .25s ease, box-shadow .25s ease}
.nav.scrolled{background:rgba(11,17,27,.92); box-shadow:0 14px 40px rgba(0,0,0,.28)}
.nav-inner{height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:flex;align-items:center;gap:16px;text-transform:uppercase;letter-spacing:.12em}
.brand img{width:56px;height:56px;object-fit:contain;filter:brightness(0) invert(1) drop-shadow(0 2px 8px rgba(0,0,0,.55)) drop-shadow(0 0 2px rgba(0,0,0,.45))}
.brand-text{position:relative;height:30px;display:flex;align-items:center}
.brand-text-short{font-size:24px;color:var(--bone);line-height:1;font-weight:600;transition:opacity .28s ease, transform .28s ease;opacity:1;transform:translateY(0)}
.brand-text-full{position:absolute;left:0;top:0;display:flex;flex-direction:column;gap:2px;font-size:10.5px;line-height:1.2;transition:opacity .28s ease, transform .28s ease;opacity:0;transform:translateY(8px);pointer-events:none}
.brand-text-full > div{white-space:nowrap}
.brand-text-full > div:first-child{color:var(--bone);font-weight:800}
.brand-text-full > div:last-child{color:rgba(243,244,246,.62);font-weight:600}
.brand:hover .brand-text-short{opacity:0;transform:translateY(-8px)}
.brand:hover .brand-text-full{opacity:1;transform:translateY(0)}
.links{display:flex;align-items:center;gap:22px;color:rgba(243,244,246,.7);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.links a{transition:.22s ease} .links a:hover{color:var(--bone)}
.links .pill{padding:10px 15px;border-radius:999px;border:1px solid rgba(233,232,212,.24);background:rgba(233,232,212,.04);color:var(--bone)}
.burger{display:none;background:none;border:0;width:36px} .burger span{display:block;height:2px;background:var(--bone);margin:7px 0}

.hero{min-height:100vh;display:grid;place-items:center;text-align:center;padding-top:118px;border-bottom:1px solid var(--line)}
.hero:before{content:"";position:absolute;inset:0;z-index:-4;background:
  linear-gradient(180deg,rgba(11,17,27,.16),rgba(11,17,27,.74)),
  linear-gradient(90deg,rgba(11,17,27,.72),rgba(59,70,92,.16),rgba(11,17,27,.72)),
  url('../assets/img_01_ebb2a4b1e83cc73f.webp');background-size:cover;background-position:center;filter:saturate(.92) contrast(1.03)}
.hero:after{content:"";position:absolute;z-index:-1;width:min(78vw,760px);height:min(78vw,760px);border-radius:50%;border:1px solid rgba(233,232,212,.12);box-shadow:inset 0 0 90px rgba(143,211,224,.06),0 0 120px rgba(143,211,224,.07)}
.hero-seal{width:min(220px,48vw);margin:0 auto 34px;filter:drop-shadow(0 28px 60px rgba(0,0,0,.65)) drop-shadow(0 0 22px rgba(233,232,212,.22))}
.hero h1{max-width:1080px;margin:0 auto;color:var(--bone);font-size:clamp(42px,7.2vw,80px);display:flex;flex-direction:column;align-items:center;text-align:center;text-shadow:0 6px 18px rgba(0,0,0,.30)}
.hero .preline{display:block;margin-bottom:18px;color:rgba(243,244,246,.84);font-size:.65em;font-weight:500;letter-spacing:.22em}
.hero .mainline{display:block;width:100%;text-align:center;align-self:center}
.tagline{margin:clamp(30px,4vw,46px) auto 0;color:var(--cyan);font-size:clamp(16px,2vw,26px);font-weight:300;letter-spacing:.065em;text-transform:uppercase}
.hero-line{width:min(300px,58vw);height:1px;margin:24px auto 0;background:linear-gradient(90deg, transparent, rgba(143,211,224,.9), transparent)}

.light,.cream,.campus,.contact{color:var(--ink)}
.light{background:var(--paper)} .campus{background:var(--paper)} .cream{background:var(--bone)} .contact{background:var(--paper)}
.light h2,.cream h2,.campus h2,.contact h2{color:var(--blue)}
.light .kicker,.cream .kicker,.campus .kicker,.contact .kicker{color:var(--blue)}
.light p,.cream p,.campus p,.contact p{color:rgba(30,37,48,.72)}
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .72s ease, transform .72s ease} .reveal.in{opacity:1;transform:none}

.inse-overview{position:relative}

.practice{background:radial-gradient(circle at 18% 28%,rgba(143,211,224,.12),transparent 30%),linear-gradient(180deg,var(--deep),var(--deep-2));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.practice-visuals{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.practice-image{min-height:460px;border-radius:28px;overflow:hidden;position:relative;box-shadow:var(--shadow);background-size:cover;background-position:center}
.practice-image:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,17,27,.08),rgba(11,17,27,.78))}
.practice-image h3{position:absolute;left:22px;bottom:22px;margin:0;font-size:22px;color:var(--bone)}
.practice-copy{margin:18px 0 18px 0;color:rgba(243,244,246,.78);font-size:17px;padding:0 2px}
.features{display:grid;gap:14px}
.feature{display:grid;grid-template-columns:48px 1fr;gap:16px;padding:20px;border-radius:20px;border:1px solid rgba(233,232,212,.13);background:rgba(243,244,246,.05);transition:transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease}
.feature:hover{transform:translateY(-4px);box-shadow:0 22px 46px rgba(0,0,0,.34);background:rgba(243,244,246,.075);border-color:rgba(143,211,224,.55)}
.feature strong{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--bone);color:var(--blue);font-weight:900}
.feature h3{font-size:19px;text-transform:none;letter-spacing:0;color:var(--bone);margin-bottom:5px} .feature p{margin:0;color:rgba(243,244,246,.64);font-size:14px}

.campus-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.campus-card{min-height:330px;border-radius:28px;overflow:hidden;position:relative;border:1px solid rgba(59,70,92,.14);box-shadow:0 22px 60px rgba(44,52,69,.12);background-size:cover;background-position:center}
.campus-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,17,27,.12),rgba(11,17,27,.72))}
.campus-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,17,27,.16),rgba(11,17,27,.92));opacity:0;transition:opacity .28s ease}
.campus-content{position:absolute;left:24px;right:24px;bottom:24px;z-index:1}
.campus-chip{display:inline-flex;align-items:center;margin-top:14px;padding:7px 11px;border-radius:999px;background:rgba(233,232,212,.12);border:1px solid rgba(233,232,212,.18);color:var(--bone);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;transition:opacity .24s ease, transform .24s ease}
.campus-content h3{margin:0;color:var(--bone);font-size:30px;transition:transform .32s ease}
.campus-content p{margin:0;max-height:0;color:rgba(243,244,246,.74);opacity:0;overflow:hidden;transition:max-height .34s ease, opacity .3s ease, margin-top .34s ease}
.campus-card:hover:after{opacity:1} .campus-card:hover .campus-content h3{transform:translateY(-6px)} .campus-card:hover .campus-content p{max-height:140px;opacity:1;margin-top:12px} .campus-card:hover .campus-chip{opacity:0;transform:translateY(6px);pointer-events:none}

#docencia{padding:64px 0}
#docencia h2{font-size:clamp(30px,6vw,52px);margin-bottom:12px}
.doc-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;align-items:center}
.doc-cards{display:grid;gap:12px;margin-top:20px}
.doc-card{padding:20px;border-radius:22px;background:rgba(255,255,255,.52);border:1px solid rgba(59,70,92,.14);box-shadow:0 16px 44px rgba(59,70,92,.08)}
.doc-title{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.doc-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(59,70,92,.10);color:var(--blue)}
.doc-title svg{width:20px;height:20px;flex:0 0 20px}
.doc-card h3{font-size:24px;margin:0;text-transform:none;letter-spacing:0;color:var(--blue)} .doc-card p{margin:0;color:rgba(30,37,48,.68)}

.programs{background:linear-gradient(180deg,var(--blue),var(--blue-2));color:var(--paper);border-top:1px solid rgba(233,232,212,.12);border-bottom:1px solid rgba(233,232,212,.12)}
.programs h2,.programs .kicker{color:var(--bone)} .programs p{color:rgba(243,244,246,.74)}
.program-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.program-card{min-height:435px;position:relative;overflow:hidden;border-radius:28px;isolation:isolate;border:1px solid rgba(233,232,212,.16);box-shadow:0 18px 42px rgba(0,0,0,.18);transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease}
.program-card:hover{transform:translateY(-5px);box-shadow:0 28px 56px rgba(0,0,0,.34);border-color:rgba(143,211,224,.55)}
.program-card:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(11,17,27,.10),rgba(11,17,27,.78) 72%);transition:background .28s ease}
.program-card:hover:before{background:linear-gradient(180deg,rgba(11,17,27,.16),rgba(11,17,27,.94) 72%)}
.program-number{position:absolute;top:20px;right:20px;z-index:1;color:rgba(233,232,212,.90);font-size:12px;font-weight:900;letter-spacing:.18em}
.program-content{position:absolute;left:24px;right:24px;bottom:26px}
.tag{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;border:1px solid rgba(233,232,212,.22);background:rgba(233,232,212,.09);color:var(--bone);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}
.program-card h3{margin:0 0 12px;color:var(--bone);font-size:32px}
.program-card p{margin:0;max-height:0;overflow:hidden;color:rgba(243,244,246,.72);opacity:0;transform:translateY(10px);transition:max-height .34s ease, opacity .28s ease, transform .28s ease, margin-top .34s ease}
.program-card:hover .program-content p{max-height:140px;opacity:1;transform:translateY(0);margin-top:10px}

.principles{background:linear-gradient(180deg,rgba(11,17,27,.97),rgba(16,24,39,.98)),radial-gradient(circle at 80% 30%,rgba(233,232,212,.14),transparent 30%);background-blend-mode:multiply}
.principles-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:36px;align-items:center}
.principles-seal{min-height:540px;border-radius:34px;border:1px solid rgba(233,232,212,.14);background:rgba(243,244,246,.045);display:grid;place-items:center;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.principles-seal:before,.principles-seal:after{content:"";position:absolute;width:500px;height:500px;border-radius:50%;border:1.5px solid rgba(143,211,224,.55);box-shadow:0 0 50px rgba(143,211,224,.2),inset 0 0 90px rgba(143,211,224,.08);transform-origin:center;animation:sonarPulse 3.2s ease-out infinite}
.principles-seal:after{animation-delay:1.6s}
.principles-seal img{width:72%;position:relative;filter:drop-shadow(0 24px 52px rgba(0,0,0,.64))}
@keyframes sonarPulse{0%{transform:scale(0);opacity:.95}60%{opacity:.35}100%{transform:scale(1);opacity:0}}
.stars{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}
.star{min-height:112px;min-width:0;padding:16px;border-radius:20px;border:1px solid rgba(233,232,212,.13);background:rgba(243,244,246,.055);display:flex;flex-direction:column;justify-content:flex-start;gap:10px}
.star span{color:var(--cyan);font-size:12px;font-weight:900;letter-spacing:.18em}
.star h3{font-size:19px;text-transform:none;letter-spacing:0;color:var(--bone);margin-bottom:7px}
.star p{font-size:13px;margin:0;color:rgba(243,244,246,.64);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
.principles-close{margin-top:20px;color:rgba(243,244,246,.75);font-weight:500;letter-spacing:.02em}

.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:24px}
.contact-card,.form-card{padding:32px;border-radius:28px;background:white;border:1px solid rgba(59,70,92,.13);box-shadow:0 24px 64px rgba(44,52,69,.10)}
.contact-list{display:grid;gap:14px;margin-top:24px}
.contact-item{border-radius:16px;padding:16px;background:var(--bone);color:rgba(30,37,48,.72)} .contact-item b{display:block;color:var(--blue);font-size:12px;letter-spacing:.13em;text-transform:uppercase;margin-bottom:2px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:grid;gap:7px} .field.full{grid-column:1/-1}
label{font-size:12px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:var(--blue)}
input,select,textarea{width:100%;border:1px solid rgba(59,70,92,.22);border-radius:14px;padding:14px;font:inherit;background:var(--paper);color:var(--ink)} textarea{min-height:132px;resize:vertical}
.form-card .btn{display:inline-flex;align-items:center;justify-content:center;padding:15px 22px;min-height:48px;border-radius:999px;background:var(--blue);color:var(--bone);border:0;width:max-content;font-weight:900;font-size:12px;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;transition:opacity .2s ease}
.form-card .btn:disabled{opacity:.6;cursor:not-allowed}
.field-error{display:block;min-height:16px;font-size:12px;font-weight:600;color:#c0392b;letter-spacing:normal;text-transform:none}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#c0392b;background:rgba(192,57,43,.05)}

.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);z-index:200;padding:16px 24px;border-radius:14px;background:var(--blue-3);color:var(--bone);font-size:13px;font-weight:700;letter-spacing:.02em;box-shadow:0 18px 48px rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .28s ease, transform .28s ease;max-width:min(90vw,420px);text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.success{background:#1f6f4a}
.toast.error{background:#8f2d24}

footer{background:#070b12;border-top:1px solid var(--line);color:rgba(243,244,246,.54)}
.footer-grid{display:grid;grid-template-columns:auto repeat(3,1fr);gap:40px;padding:64px 0 48px;align-items:start}
.footer-brand{display:flex;align-items:flex-start}
.footer-logo{width:64px;height:64px;object-fit:contain;opacity:.94}
.footer-title{display:flex;align-items:center;gap:14px;margin:0 0 22px;font-size:15px;font-weight:800;letter-spacing:.02em;color:var(--bone);text-transform:none}
.footer-title:after{content:"";flex:1;height:1px;background:rgba(243,244,246,.22)}
.footer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.footer-list li{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(243,244,246,.6)}
.footer-allies li{display:flex;align-items:center;justify-content:space-between;gap:14px}
.footer-ally-logo{height:30px;width:auto;max-width:64px;object-fit:contain;flex:none}
.footer-social{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.footer-social a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid rgba(233,232,212,.22);background:rgba(233,232,212,.04);color:rgba(243,244,246,.72);transition:color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease}
.footer-social a:hover{color:var(--bone);border-color:rgba(143,211,224,.55);background:rgba(143,211,224,.10);transform:translateY(-2px)}
.footer-social svg{width:18px;height:18px;fill:currentColor}
.footer-address{font-style:normal;font-size:13px;line-height:1.7;color:rgba(243,244,246,.6)}
.footer-bottom{display:flex;align-items:center;justify-content:flex-end;gap:32px;flex-wrap:wrap;padding:22px 0;border-top:1px solid rgba(243,244,246,.1);font-size:11px;color:rgba(243,244,246,.66)}
.footer-bottom a{color:inherit;transition:color .2s ease}
.footer-bottom a:hover{color:var(--bone)}

@media(max-width:1020px){
  .links{display:none} .burger{display:block}
  .links.open{display:flex;position:absolute;top:78px;left:0;right:0;flex-direction:column;align-items:stretch;padding:12px 22px 24px;background:var(--blue-2);border-bottom:1px solid rgba(233,232,212,.14)}
  .links.open a{padding:14px 0}
  .practice-grid,.practice-visuals,.campus-grid,.doc-grid,.program-grid,.principles-grid,.contact-grid{grid-template-columns:1fr}
  .stars,.form-grid{grid-template-columns:1fr 1fr} .principles-seal{min-height:420px}
  .practice-visuals .practice-image:nth-child(1),.practice-visuals .practice-image:nth-child(2){background-size:cover;background-position:center}
}
@media(max-width:820px){
  .campus-card:after{opacity:1} .campus-content p{opacity:1;max-height:200px;margin-top:12px} .campus-chip{display:none}
  .program-card p{opacity:1;transform:none;max-height:200px;margin-top:10px} .program-card:before{background:linear-gradient(180deg,rgba(11,17,27,.16),rgba(11,17,27,.94) 72%)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px 24px} .footer-brand{grid-column:1/-1}
}
@media(max-width:640px){
  .wrap{width:min(var(--max),calc(100% - 28px))} section{padding:74px 0}
  .brand-text-short{transition:none}
  .brand-text-full{display:none}
  .brand:hover .brand-text-short{opacity:1;transform:translateY(0)}
  .brand:hover .brand-text-full{opacity:0;transform:translateY(8px)}
  .hero .preline{letter-spacing:.12em}
  .practice-image{min-height:360px} .stars,.form-grid{grid-template-columns:1fr} .hero-seal{width:min(180px,42vw)}
  #docencia{padding:48px 0}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{justify-content:flex-start;flex-direction:column;align-items:flex-start;gap:10px}
}
@media(prefers-reduced-motion:reduce){ *{transition:none !important; animation:none !important; scroll-behavior:auto !important} .js .reveal{opacity:1;transform:none} }

/* v10 - nueva composición de "¿Qué es INSE?" */
.inse-overview-v10 {
  background: var(--bone);
  border-top: 1px solid rgba(59,70,92,.12);
}
.inse-overview-v10:after {
  content:"";
  position:absolute;
  right:-36px;
  top:122px;
  width:560px;
  height:560px;
  background:url('../assets/img_02_864d5c9c83f90e47.webp') center/contain no-repeat;
  opacity:.06;
  pointer-events:none;
}
.inse-v10-top {
  margin-bottom:40px;
  max-width:980px;
}
.inse-v10-top .kicker {
  margin-bottom:18px;
}
.inse-v10-top h2 {
  max-width:1320px;
  margin:0;
  color:var(--blue);
  line-height:.88;
  font-size:clamp(44px,3.2vw,76px);
}
.inse-v10-top .inse-title-line{
  display:block;
  white-space:nowrap;
}
.inse-v10-grid {
  display:grid;
  grid-template-columns: .92fr 1.08fr;
  gap:24px;
  align-items:stretch;
  position:relative;
  z-index:1;
}
.inse-photo-card {
  position:relative;
  min-height:460px;
  border-radius:26px;
  overflow:hidden;
  box-shadow:0 18px 44px rgba(44,52,69,.12);
  border:1px solid rgba(59,70,92,.10);
  background:#d4d1c2;
  cursor:pointer;
}
.inse-photo-image {
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(11,17,27,.08),rgba(11,17,27,.22) 52%,rgba(11,17,27,.76) 100%),
    url('../assets/img_06_df06184d30b8986a.webp') center/cover no-repeat;
  transition:filter .35s ease;
}
.inse-photo-card:hover .inse-photo-image {
  filter:brightness(.7);
}
.inse-photo-overlay {
  position:absolute;
  top:28px;
  right:28px;
  left:auto;
  bottom:auto;
  z-index:2;
  max-width:68%;
  text-align:right;
}
.inse-photo-overlay h3 {
  margin:0;
  color:var(--bone);
  font-size:clamp(19px,1.65vw,28px);
  line-height:.94;
  text-transform:uppercase;
  letter-spacing:-.03em;
  text-shadow:0 8px 24px rgba(0,0,0,.36);
  transition:transform .28s ease;
  max-width:100%;
  white-space:nowrap;
}
.inse-photo-hover {
  position:absolute;
  left:22px;
  right:22px;
  bottom:24px;
  top:auto;
  z-index:3;
  width:auto;
  background:none;
  display:block;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .28s ease, transform .28s ease;
  pointer-events:none;
  text-align:left;
}
.inse-photo-hover p {
  margin:0;
  color:#ffffff;
  font-size:13px;
  line-height:1.58;
  max-width:90%;
}
.inse-photo-card:hover .inse-photo-hover {
  opacity:1;
  transform:translateY(0);
}
.inse-photo-card:hover .inse-photo-overlay h3 {
  transform:translateY(-4px);
}

.inse-v10-stack {
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:18px;
  align-self:stretch;
}
.inse-text-card {
  border-radius:26px;
  background:rgba(243,244,241, 1);
  border:1px solid rgba(59,70,92,.10);
  box-shadow:0 14px 34px rgba(59,70,92,.06);
  padding:22px 26px 18px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:190px;
}
.inse-text-card h3 {
  margin:0 0 12px;
  color:var(--blue);
  font-size:clamp(22px,2vw,32px);
  line-height:1.03;
  text-transform:none;
  letter-spacing:-.03em;
}
.inse-text-card p {
  margin:0;
  color:rgba(30,37,48,.62);
  font-size:clamp(14px,1.12vw,16px);
  line-height:1.62;
}
.inse-text-card strong {
  color:rgba(30,37,48,.86);
  font-weight:800;
}
.inse-card-line {
  width:170px;
  max-width:38%;
  height:4px;
  margin:18px 0 0 auto;
  background:rgba(59,70,92,.58);
  border-radius:999px;
}
.inse-card-line.mexico-line{
  height:10px;
}
.inse-card-line.mexico-line {
  background:linear-gradient(90deg,#006847 0 33.33%,#ffffff 33.33% 66.66%,#ce1126 66.66% 100%);
}
.inse-text-card-blue {
  background:linear-gradient(180deg,#3a4661,#34415b);
  border-color:rgba(233,232,212,.10);
}
.inse-text-card-blue h3 {
  color:var(--paper);
}
.inse-text-card-blue p {
  color:rgba(243,244,246,.84);
}
.inse-text-card-blue strong {
  color:#ffffff;
  font-weight:800;
}
.inse-text-card-blue .inse-card-line {
  background:rgba(233,232,212,.82);
}

@media(max-width:1020px){
  .inse-v10-grid {
    grid-template-columns:1fr;
  }
  .inse-photo-card {
    min-height:360px;
  }
  .inse-text-card {
    min-height:150px;
  }
  .inse-v10-stack {
    grid-template-rows:none;
    grid-template-columns:1fr;
  }
}
@media(max-width:820px){
  .inse-overview-v10:after {
    width:360px;
    height:360px;
    top:auto;
    bottom:40px;
    right:-110px;
  }
  .inse-photo-card {
    min-height:320px;
  }
  .inse-photo-overlay {
    top:20px;
    right:20px;
    max-width:85%;
  }
  .inse-photo-hover {
    opacity:1;
    transform:none;
    left:20px;
    right:20px;
    bottom:20px;
    max-width:none;
    text-align:left;
  }
  .inse-photo-hover p {
    margin:0;
  }
}
@media(max-width:640px){
  .inse-v10-top {
    margin-bottom:24px;
  }
  .inse-v10-top h2 {
    font-size:clamp(20px,calc(6.2vw - 2px),44px);
  }
  .inse-photo-card {
    min-height:280px;
  }
  .inse-text-card {
    min-height:auto;
    padding:24px 22px 20px;
  }
  .inse-text-card h3 {
    font-size:24px;
  }
  .inse-text-card p {
    font-size:14px;
    line-height:1.58;
  }
  .inse-photo-overlay h3 {
    font-size:19px;
  }
  .inse-photo-hover p {
    font-size:12px;
    line-height:1.5;
  }
}


/* v11.8 - integración de nuevas imágenes y carrusel */
.campus-card.carousel{background:none !important}
.campus-card.carousel .campus-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity .8s ease;
}
.campus-card.carousel .campus-slide.active{opacity:1}
.campus-card.carousel .campus-slide:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(11,17,27,.12),rgba(11,17,27,.72));
}
.campus-card.carousel .campus-content{z-index:2}
.campus-card.carousel:before{z-index:1}
.campus-card.carousel:after{z-index:1}

.brand b,.brand small{text-shadow:0 2px 8px rgba(0,0,0,.32)}


/* v12.0 - docencia e invitados de élite */
.doc-carousel{
  position:relative;
  min-height:560px;
  border-radius:30px;
  overflow:hidden;
  border:1px solid rgba(59,70,92,.14);
  box-shadow:var(--shadow);
  background:#d9ddd9;
}
.doc-carousel .doc-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity .8s ease;
}
.doc-carousel .doc-slide.active{opacity:1}
.doc-carousel .doc-slide::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(11,17,27,.04),rgba(11,17,27,.12));
}
@media(max-width:920px){
  .doc-carousel{min-height:440px}
}
@media(max-width:640px){
  .doc-carousel{min-height:320px}
}


@media(max-width:640px){
  .hero .preline{font-size:.80em}
}


/* ===== Programas especializados · animaciones loop refinadas ===== */
.program-card.program-animated{background:linear-gradient(180deg,#0c121b 0%, #0a0f16 100%)}
.program-card.program-animated:before{background:linear-gradient(180deg,rgba(11,17,27,.08),rgba(11,17,27,.84) 72%)}
.program-card.program-animated:hover:before{background:linear-gradient(180deg,rgba(11,17,27,.12),rgba(11,17,27,.94) 72%)}
.program-anim{position:absolute;inset:0;z-index:-2;display:block;overflow:hidden;background:radial-gradient(120% 80% at 50% -10%, rgba(143,211,224,.10) 0%, rgba(17,26,40,0) 55%), linear-gradient(180deg,#101723 0%, #0b111b 100%)}
.program-anim svg{width:100%;height:100%;display:block;transform:translateY(-24px) scale(.985);transform-origin:center top}
.program-scrim{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(to top, rgba(7,10,14,.97) 0%, rgba(7,10,14,.88) 22%, rgba(7,10,14,.40) 50%, rgba(7,10,14,.10) 74%, rgba(7,10,14,0) 100%)}
.program-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 88px 10px rgba(0,0,0,.38)}
.program-card.program-animated .program-content{bottom:18px;transform:translateY(0);transition:transform .34s ease}
.program-card.program-animated:hover .program-content{transform:translateY(-18px)}
.program-card.program-animated .program-content p{max-width:32ch}
.program-card.program-animated .program-content .tag{background:rgba(255,255,255,.04);backdrop-filter:blur(4px);border-color:rgba(233,232,212,.32)}
.program-self{transform-box:fill-box;transform-origin:center}
@keyframes program-spin{to{transform:rotate(360deg)}}
@keyframes program-bob{0%,100%{transform:translateY(-5px)}50%{transform:translateY(5px)}}
@keyframes program-sway{0%,100%{transform:translateX(-4px)}50%{transform:translateX(4px)}}
@keyframes program-ringpulse{0%{transform:scale(.3);opacity:0}18%{opacity:.5}100%{transform:scale(1.35);opacity:0}}
@keyframes program-breathe{0%,100%{transform:scale(.96);opacity:.55}50%{transform:scale(1.05);opacity:.95}}
@keyframes program-breathe-soft{0%,100%{transform:scale(.97);opacity:.35}50%{transform:scale(1.03);opacity:.7}}
@keyframes program-dash{to{stroke-dashoffset:-68}}
.program-spin-fast{animation:program-spin 1.1s linear infinite}
.program-orbit{animation:program-spin 26s linear infinite}
.program-bob{animation:program-bob 4.6s ease-in-out infinite}
.program-sway{animation:program-sway 7.3s ease-in-out infinite}
.program-dash{animation:program-dash 1.5s linear infinite}
@media (prefers-reduced-motion: reduce){.program-anim *{animation:none !important}}
@media(max-width:900px){.program-anim svg{transform:translateY(-18px) scale(.99)} .program-card.program-animated .program-content{transform:translateY(0)} .program-card.program-animated:hover .program-content{transform:translateY(-12px)}}

/* Pausa las animaciones (CSS + SMIL) de las tarjetas cuando no están en pantalla; el JS alterna .anim-paused vía IntersectionObserver */
.program-anim.anim-paused *{animation-play-state:paused !important}

/* v12.9 - refinamiento visual móvil y respeto del área segura (notch) */
@media(max-width:1020px){
  /* Menú móvil: más aire, separadores sutiles y objetivos táctiles cómodos */
  .links.open{padding:8px 22px 18px;gap:0;box-shadow:0 24px 44px rgba(0,0,0,.38)}
  .links.open a{padding:15px 4px;min-height:48px;display:flex;align-items:center;font-size:13px;border-bottom:1px solid rgba(233,232,212,.09)}
  .links.open a:last-child{border-bottom:0}
  .links.open .pill{margin-top:12px;justify-content:center;border-radius:14px;min-height:50px}
}
@media(max-width:640px){
  /* Botón de envío a todo el ancho: más fácil de pulsar en móvil */
  .form-card .btn{width:100%}
  /* El toast no queda tapado por la barra de gestos en pantallas con notch */
  .toast{bottom:calc(28px + env(safe-area-inset-bottom))}
}
