/* 2026-10-22 -- Ruben: "revisa todo se va a pasar al server windows".
   Estilos de la página original (app/globals.css, agosto 2026) sin cambios de diseño;
   las fotos ahora son .webp. Lo nuevo va al final, en la sección AGREGADOS. */

:root { color: #111; background: #f8f7f3; font-family: 'DM Sans', Arial, sans-serif; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; }
a { color: inherit; text-decoration: none; }

.treymar { overflow: hidden; background: #f8f7f3; }
.treymar-hero { min-height: 100svh; position: relative; overflow: hidden; background: #ced8d5; color: #fff; isolation: isolate; }
.treymar-hero::before { content: ''; position: absolute; inset: 0; z-index: -3; background: linear-gradient(90deg, rgba(13,25,28,.7) 0%, rgba(13,25,28,.25) 42%, rgba(13,25,28,.04) 72%), none center/cover no-repeat; }
.treymar-hero::after { content: ''; position: absolute; inset: 0; z-index: -2; pointer-events: none; background: linear-gradient(0deg, rgba(6,16,20,.32), transparent 30%); }
.treymar-nav { height: 94px; padding: 0 clamp(24px, 5vw, 76px); display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 8; }
.treymar-logo { font-weight: 700; letter-spacing: -.07em; font-size: 25px; }.treymar-logo span { font-family: 'Playfair Display', serif; font-weight: 500; }
.treymar-links { display: flex; gap: clamp(18px, 2.4vw, 42px); font-size: 13px; }.treymar-links a { opacity: .9; transition: opacity .2s; }.treymar-links a:hover { opacity: .55; }
.apply { display: inline-flex; gap: 12px; align-items: center; padding: 12px 17px; color: #182323; background: #fff; border-radius: 99px; font-size: 13px; font-weight: 600; transition: transform .25s, background .25s; }.apply:hover { transform: translateY(-2px); background: #e9efeb; }.apply span { font-size: 17px; line-height: .7; }
.hero-copy { position: relative; z-index: 5; padding: clamp(105px, 15vh, 175px) 7vw 0; max-width: 700px; }.treymar-kicker { font: 11px 'DM Mono', monospace; letter-spacing: .14em; margin: 0 0 24px; }.hero-copy h1 { font: 600 clamp(52px, 7vw, 108px)/.9 'Playfair Display', serif; letter-spacing: -.065em; margin: 0; }.hero-copy > p:not(.treymar-kicker) { max-width: 355px; margin: 31px 0 0; font-size: 16px; line-height: 1.55; color: rgba(255,255,255,.92); }

.campus-scene { position: absolute; inset: 0; z-index: 2; }
.pose-layer { position: absolute; inset: -88px 0 0; pointer-events: none; opacity: 0; background-position: center; background-repeat: no-repeat; background-size: cover; clip-path: polygon(49% 31%, 96% 31%, 96% 100%, 49% 100%); }
.pose-two { background-image: none; }.pose-three { background-image: none; }
.campus-scene:has(.student-zone:hover) .pose-two, .campus-scene:has(.student-zone:focus-visible) .pose-two { animation: pose-two 2.45s ease-in-out infinite; }
.campus-scene:has(.student-zone:hover) .pose-three, .campus-scene:has(.student-zone:focus-visible) .pose-three { animation: pose-three 2.45s ease-in-out infinite; }
.scene-sun, .scene-building { position: absolute; pointer-events: none; }.scene-sun { right: 10%; top: 8%; width: 19vw; height: 19vw; max-width: 260px; max-height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(255,241,170,.31), transparent 66%); filter: blur(4px); }.scene-building { background: rgba(255,255,255,.08); backdrop-filter: blur(1px); }.building-one { right: 0; top: 11%; width: 17%; height: 22%; }.building-two { right: 19%; top: 21%; width: 9%; height: 15%; }
.student-zone { position: absolute; z-index: 4; border: 0; padding: 0; cursor: pointer; background: transparent; color: #132526; width: 11%; height: 65%; top: 20%; }.student-zone.science { right: 36%; }.student-zone.creative { right: 23%; }.student-zone.community { right: 9%; }
.student-figure { position: absolute; inset: 0; opacity: 0; }.student-figure i, .student-figure b, .student-figure em { position: absolute; display: block; }
.zone-dot { position: absolute; left: 50%; top: 52%; transform: translate(-50%, -50%); width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.72); border-radius: 50%; color: white; background: rgba(24,47,48,.35); font-size: 22px; font-weight: 300; opacity: 0; transition: opacity .25s, transform .25s, background .25s; }.student-zone:hover .zone-dot, .student-zone:focus-visible .zone-dot { opacity: 1; transform: translate(-50%, -50%) scale(1.13); background: #f16d4a; }
.zone-card { position: absolute; left: 50%; top: calc(52% + 26px); width: 225px; padding: 15px 16px; text-align: left; border-radius: 3px; background: rgba(254,253,249,.95); box-shadow: 0 15px 40px rgba(0,0,0,.15); opacity: 0; transform: translate(-50%, 12px); pointer-events: none; }.student-zone.science .zone-card { transform: translate(-68%, 12px); }.student-zone.community .zone-card { transform: translate(-96%, 12px); }.student-zone:hover .zone-card, .student-zone:focus-visible .zone-card { animation: info-reveal .42s 1.72s ease-out forwards; }.zone-card strong { display: flex; align-items: center; gap: 8px; font-size: 13px; }.zone-card strong i { font-style: normal; color: #e86a49; font-size: 18px; }.zone-card small { display: block; margin: 7px 0 12px; color: #566363; font-size: 11px; line-height: 1.4; }.zone-card b { color: #2c7774; font-size: 11px; }
.scene-tip { position: absolute; z-index: 7; bottom: 27px; left: 7vw; margin: 0; color: rgba(255,255,255,.85); font: 10px 'DM Mono', monospace; letter-spacing: .08em; }

.intro { padding: 145px 8vw 130px; background: #f8f7f3; color: #182323; }.intro .treymar-kicker, .admission .treymar-kicker { color: #287673; }.intro h2, .admission h2 { margin: 0; font: 600 clamp(42px, 6vw, 82px)/.99 'Playfair Display', serif; letter-spacing: -.06em; }.intro h2 em { color: #e56d4b; }.intro > p:last-child { max-width: 420px; margin: 30px 0 0; color: #647070; line-height: 1.65; }
.programs { display: grid; grid-template-columns: repeat(3,1fr); background: #193e3e; color: #fff; padding: 0 8vw; }.programs article { min-height: 300px; padding: 48px 35px 43px 0; border-right: 1px solid rgba(255,255,255,.16); margin-right: 35px; }.programs article:last-child { border: 0; }.programs span { color: #ec7656; font: 12px 'DM Mono', monospace; }.programs h3 { margin: 62px 0 12px; font-size: 22px; letter-spacing: -.04em; }.programs p { max-width: 250px; margin: 0; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.5; }
.admission { min-height:520px; display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:6vw; padding:100px 8vw; overflow:hidden; position:relative; background:#f77431; color:#fff; }.admission-copy { position:relative; z-index:3; }.admission h2 { margin-bottom:36px; }.apply.light { background:#fff; color:#1f3939; }footer { display: flex; justify-content: space-between; padding: 25px 8vw; background: #122f30; color: #fff; font-size: 12px; }footer span { color: rgba(255,255,255,.55); }
@keyframes pose-two { 0%, 27% { opacity: 0; } 38%, 61% { opacity: 1; } 72%, 100% { opacity: 0; } }@keyframes pose-three { 0%, 57% { opacity: 0; } 70%, 91% { opacity: 1; } 100% { opacity: 0; } }@keyframes info-reveal { to { opacity: 1; transform: translate(-50%, 0); } }.student-zone.science:hover .zone-card, .student-zone.science:focus-visible .zone-card { animation-name: info-reveal-science; }.student-zone.community:hover .zone-card, .student-zone.community:focus-visible .zone-card { animation-name: info-reveal-community; }@keyframes info-reveal-science { to { opacity: 1; transform: translate(-68%, 0); } }@keyframes info-reveal-community { to { opacity: 1; transform: translate(-96%, 0); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
@media (max-width: 760px) { .treymar-nav { height: 72px; }.treymar-links { display: none; }.treymar-logo { font-size: 22px; }.apply { padding: 10px 13px; font-size: 11px; }.hero-copy { padding: 93px 7vw 0; }.hero-copy h1 { font-size: clamp(50px,15vw,78px); }.campus-scene { left: -19%; width: 130%; }.student-zone { width: 21%; top: 30%; height: 56%; }.student-zone.science { right: 39%; }.student-zone.creative { right: 20%; }.student-zone.community { right: 1%; }.zone-card { width: 190px; }.scene-tip { font-size: 8px; }.programs { grid-template-columns: 1fr; }.programs article { min-height: auto; padding: 32px 0; margin: 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); }.programs h3 { margin: 24px 0 8px; }footer { flex-direction: column; gap: 8px; } }

/* Trainmar identity and online-learning hero */
.trainmar { overflow: hidden; background: #fff; }
.trainmar-hero { min-height: 100svh; position: relative; overflow: hidden; color: #fff; background: #03033c; isolation: isolate; }
.trainmar-hero::before { content: ''; position: absolute; inset: 0; z-index: -3; background: radial-gradient(circle at 76% 44%, #3436aa 0, #080842 36%, #03032d 74%); }
.trainmar-nav { height: 94px; padding: 0 clamp(24px,5vw,76px); display:flex; align-items:center; justify-content:space-between; position:relative; z-index:8; }
.trainmar-logo { position:relative; display:block; width:170px; height:50px; }.trainmar-logo img { display:block; width: 170px; height: 50px; object-fit: contain; object-position: left center; filter: brightness(0) invert(1); }.trainmar-logo::after { content:''; position:absolute; z-index:1; left:-3px; top:25px; width:48px; height:4px; border-radius:2px; background:#080842; transform:rotate(-30deg); transform-origin:left center; pointer-events:none; }
.footer-logo { position:relative; display:block; width:180px; height:60px; }.footer-logo img { display:block; width:180px; height:60px; object-fit:contain; object-position:left center; filter:brightness(0) invert(1); }.footer-logo::after { content:''; position:absolute; z-index:1; left:-3px; top:30px; width:51px; height:4px; border-radius:2px; background:#080842; transform:rotate(-30deg); transform-origin:left center; pointer-events:none; }
.trainmar-links { display:flex; gap:clamp(18px,2.4vw,42px); font-size:13px; }.trainmar-links a { opacity:.9; transition:opacity .2s; }.trainmar-links a:hover { opacity:.6; }
.nav-actions { display:flex; align-items:center; gap:12px; }.login { padding:11px 15px; border:1px solid rgba(255,255,255,.62); border-radius:99px; color:#fff; font-size:13px; font-weight:600; transition:background .2s,color .2s,transform .2s; }.login:hover { transform:translateY(-2px); color:#07073e; background:#fff; }
.trainmar-kicker { font: 11px 'DM Mono',monospace; letter-spacing:.14em; margin:0 0 24px; }.hero-copy { position:relative; z-index:5; padding:clamp(105px,15vh,175px) 7vw 0; max-width:700px; }.hero-copy h1 { font:600 clamp(52px,7vw,108px)/.9 'Playfair Display',serif; letter-spacing:-.065em; margin:0; }.hero-copy>p:not(.trainmar-kicker) { max-width:355px; margin:31px 0 0; font-size:16px; line-height:1.55; color:rgba(255,255,255,.92); }
.online-scene { position:absolute; inset:0; z-index:2; pointer-events:none; }.student-motion { position:absolute; right:-4%; bottom:-10%; width:min(67vw,1040px); height:min(67vw,760px); overflow:hidden; border-radius:44% 0 0 0; box-shadow:-30px 30px 90px rgba(0,0,0,.28); transform-origin:70% 70%; animation: student-route 7.6s cubic-bezier(.55,.05,.25,1) infinite; }.student-motion::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#080840 0%,transparent 31%),linear-gradient(0deg,rgba(3,3,60,.38),transparent 35%); }.student-motion img { width:100%; height:100%; display:block; object-fit:cover; object-position:62% 50%; animation: student-view 7.6s cubic-bezier(.55,.05,.25,1) infinite; }
.online-orbit { position:absolute; border:1px solid rgba(255,255,255,.23); border-radius:50%; }.orbit-one { width:52vw; height:52vw; right:-5vw; bottom:-22vw; }.orbit-two { width:35vw; height:35vw; right:9vw; bottom:-15vw; border-color:rgba(248,116,49,.7); }
.online-reveal { position:absolute; z-index:2; right:8vw; bottom:11vh; width:260px; padding:18px 20px; background:#f77431; color:#050541; opacity:0; transform:translateY(18px); animation: reveal-online 7.6s cubic-bezier(.16,1,.3,1) infinite; }.online-reveal span { display:block; font:10px 'DM Mono',monospace; letter-spacing:.12em; margin-bottom:8px; }.online-reveal strong { font:600 30px/.94 'Playfair Display',serif; letter-spacing:-.05em; }.scene-tip { left:7vw; }
.intro .trainmar-kicker,.admission .trainmar-kicker { color:#f77431; } footer img { width:115px; height:35px; object-fit:contain; filter:brightness(0) invert(1); }
@keyframes student-route { 0%,12% { transform:translate(22%,8%) scale(.76) rotate(-5deg); border-radius:50%; } 40% { transform:translate(3%,2%) scale(.92) rotate(-1deg); border-radius:46% 12% 0 0; } 63%,100% { transform:translate(0,0) scale(1) rotate(0); border-radius:44% 0 0 0; } }
@keyframes student-view { 0%,12% { object-position:78% 50%; filter:saturate(.86) contrast(.95); } 40% { object-position:66% 50%; filter:saturate(1); } 63%,100% { object-position:57% 50%; filter:saturate(1.06) contrast(1.02); } }
@keyframes reveal-online { 0%,56% { opacity:0; transform:translateY(18px); } 65%,91% { opacity:1; transform:translateY(0); } 100% { opacity:0; transform:translateY(0); } }
@media(max-width:760px){ .trainmar-nav { height:72px; }.trainmar-links { display:none; }.nav-actions { gap:7px; }.login { padding:9px 10px; font-size:10px; }.trainmar-nav .apply { padding:10px 11px; font-size:10px; }.trainmar-logo { width:125px; height:40px; }.trainmar-logo img { width:125px; height:40px; }.trainmar-logo::after { left:-2px; top:20px; width:36px; height:3px; }.student-motion { width:112vw; height:100vw; right:-28%; bottom:1%; }.online-reveal { right:6vw; bottom:13vh; width:205px; }.online-reveal strong { font-size:25px; }.orbit-one { width:92vw; height:92vw; right:-27vw; bottom:-26vw; }.orbit-two { width:62vw; height:62vw; right:-6vw; bottom:-17vw; } }

.degree-grid { display:grid; grid-template-columns:repeat(3,1fr); background:#f5f4ef; padding:0 8vw 110px; gap:1px; }.degree-grid article { min-height:245px; padding:28px; background:#fff; color:#07073e; display:flex; flex-direction:column; transition:background .25s,color .25s,transform .25s; }.degree-grid article:hover { background:#080842; color:#fff; transform:translateY(-5px); }.degree-grid article>span { font:11px 'DM Mono',monospace; color:#f77431; }.degree-grid article p { margin:31px 0 8px; color:#74758c; font-size:12px; }.degree-grid article:hover p,.degree-grid article:hover small { color:rgba(255,255,255,.68); }.degree-grid h3 { font-size:22px; line-height:1.06; letter-spacing:-.045em; margin:0 0 10px; }.degree-grid small { color:#66677b; font-size:12px; }.degree-grid a { margin-top:auto; color:#f77431; font-size:12px; font-weight:700; }
.faculty-section { display:grid; grid-template-columns:1fr 1fr; gap:8vw; padding:125px 8vw; color:#07073e; }.faculty-section h2,.stories h2,.contact h2 { font:600 clamp(38px,5vw,70px)/.98 'Playfair Display',serif; letter-spacing:-.06em; margin:0; }.faculty-list { border-top:1px solid #d9d8d3; }.faculty-list span { display:block; padding:21px 0; border-bottom:1px solid #d9d8d3; font-size:clamp(17px,2vw,25px); letter-spacing:-.04em; }.faculty-list span::after { content:'↗'; float:right; color:#f77431; }
.stats { display:grid; grid-template-columns:repeat(3,1fr); padding:75px 8vw; background:#f77431; color:#07073e; }.stats div { padding-left:2vw; border-left:1px solid rgba(7,7,62,.25); }.stats div:first-child { border:0; padding-left:0; }.stats strong { display:block; font:600 clamp(56px,7vw,98px)/.8 'Playfair Display',serif; letter-spacing:-.08em; }.stats strong span { font-size:.42em; }.stats p { margin:17px 0 0; font-size:13px; }
.stories { padding:125px 8vw; color:#07073e; background:#fff; }.stories h2 { margin-bottom:65px; }.story-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }.story-grid article { min-height:280px; padding:29px; background:#f2f2ee; display:flex; flex-direction:column; }.story-grid blockquote { margin:0; font:500 21px/1.26 'Playfair Display',serif; letter-spacing:-.03em; }.story-grid strong { margin-top:auto; font-size:13px; }.story-grid small { margin-top:6px; color:#6d6d75; font-size:11px; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:10vw; padding:125px 8vw; color:#fff; background:#07073e; }.contact>div>p:last-child { max-width:390px; color:rgba(255,255,255,.72); line-height:1.55; }.contact form { display:grid; gap:17px; align-content:start; }.contact label { color:rgba(255,255,255,.78); font-size:11px; }.contact input,.contact select { width:100%; display:block; margin-top:8px; border:0; border-bottom:1px solid rgba(255,255,255,.4); border-radius:0; padding:11px 0; background:transparent; color:#fff; font:14px 'DM Sans',sans-serif; outline:none; }.contact input::placeholder { color:rgba(255,255,255,.45); }.contact select option { color:#07073e; }.contact form .apply { border:0; justify-content:center; margin-top:12px; cursor:pointer; }
@media(max-width:760px){ .degree-grid,.story-grid { grid-template-columns:1fr; }.degree-grid { padding:0 6vw 65px; }.faculty-section,.contact { grid-template-columns:1fr; padding:80px 7vw; gap:45px; }.stats { grid-template-columns:1fr; gap:33px; padding:55px 7vw; }.stats div { border-left:0; border-top:1px solid rgba(7,7,62,.25); padding:25px 0 0; }.stats div:first-child { border-top:0; padding-top:0; }.stories { padding:80px 7vw; }.stories h2 { margin-bottom:35px; } }

/* Program identity system */
.study-tags { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:16px; padding:27px 6vw; color:#07073e; background:#fff; font-size:15px; }.study-tags span { color:#656681; }.study-tags b { padding:11px 27px; border:2px solid #ff6504; border-radius:99px; font-size:14px; }.study-tags b:nth-child(2) { color:#fff; background:#ff6504; }.study-tags b:nth-child(3),.study-tags b:nth-child(5) { color:#fff; border-color:#07073e; background:#07073e; }
.intro { padding-bottom:60px; }.intro h2 strong { font-family:'DM Sans',sans-serif; font-weight:700; }.intro>p:last-child { margin-left:auto; margin-top:-85px; font-size:18px; }.degree-grid { display:block; padding:0; background:#fff; }.degree { min-height:630px; display:grid!important; grid-template-columns:1fr 1fr; gap:6vw; padding:92px 9vw!important; color:#fff!important; background:#ff6504!important; overflow:hidden; position:relative; }.degree.teal { background:#078c88!important; }.degree.gold { color:#07073e!important; background:#ecad09!important; }.degree.purple { background:#45418d!important; }.degree-copy { position:relative; z-index:1; }.degree-copy>span { color:inherit!important; font:12px 'DM Mono',monospace!important; letter-spacing:.12em; }.degree h3 { max-width:650px; margin:32px 0 24px!important; font-size:clamp(48px,5.5vw,82px)!important; line-height:.94!important; color:inherit!important; }.degree-copy>p { max-width:610px; color:inherit!important; font-size:18px!important; line-height:1.55!important; margin:0 0 44px!important; }.degree-stats { display:flex; gap:clamp(25px,5vw,90px); border-top:1px solid rgba(255,255,255,.35); padding:27px 0 44px; }.gold .degree-stats { border-color:rgba(7,7,62,.25); }.degree-stats b { font:400 50px/.8 'Playfair Display',serif; font-weight:500; }.degree-stats small { display:block; margin-top:13px; font:10px 'DM Mono',monospace; letter-spacing:.1em; white-space:nowrap; }.degree-actions { display:flex; gap:16px; }.degree-actions a { display:inline-flex; justify-content:center; align-items:center; gap:18px; border:2px solid currentColor; padding:18px 28px; border-radius:99px; font-weight:700; font-size:15px; }.degree-actions a:first-child { background:#07073e; color:#fff; border-color:#07073e; }.degree-actions i { font-style:normal; font-size:20px; }.degree-shield { min-height:410px; align-self:center; position:relative; overflow:hidden; border-radius:130px 0 130px 0; background:linear-gradient(135deg,rgba(255,255,255,.34),rgba(6,5,57,.98)); }.degree-shield::after { content:''; position:absolute; inset:auto 0 0; height:34%; background:#05053b; }.degree-shield img { position:absolute; inset:8% 8%; width:84%; height:84%; object-fit:contain; opacity:.1; filter:brightness(0) invert(1); }.degree-shield em { position:absolute; z-index:1; left:50%; top:50%; transform:translate(-50%,-50%); color:rgba(255,255,255,.68); font:70px/1 'DM Sans',sans-serif; font-style:normal; }.gold .degree-shield em { color:#fff; }.gold .degree-shield img { filter:none; }
footer { display:grid; grid-template-columns:2.1fr 1.25fr 1.25fr 1.25fr; gap:44px; padding:72px 7vw; background:#05053b; color:#fff; }footer img { width:180px; height:60px; object-position:left center; }.footer-brand p { max-width:310px; margin:28px 0; color:rgba(255,255,255,.68); line-height:1.5; }.socials { display:flex; gap:14px; }.socials i { width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.32); border-radius:50%; font-size:13px; font-style:normal; }footer h4 { margin:6px 0 25px; color:rgba(255,255,255,.55); font:11px 'DM Mono',monospace; letter-spacing:.12em; }footer a { display:block; width:max-content; max-width:100%; margin:0 0 16px; color:rgba(255,255,255,.85); font-size:15px; }
@media(max-width:760px){ .trainmar-links a:nth-child(n+3){display:none}.study-tags{justify-content:flex-start;gap:8px}.study-tags b{padding:8px 14px;font-size:12px}.intro>p:last-child{margin:28px 0 0;font-size:16px}.degree{grid-template-columns:1fr;min-height:auto;padding:65px 7vw!important;gap:35px}.degree h3{font-size:48px!important}.degree-copy>p{font-size:16px!important}.degree-stats{gap:20px;overflow:auto}.degree-stats b{font-size:37px}.degree-actions{flex-wrap:wrap}.degree-actions a{padding:14px 20px;font-size:13px}.degree-shield{min-height:270px;border-radius:80px 0}.degree-shield em{font-size:54px}footer{grid-template-columns:1fr 1fr;padding:55px 7vw;gap:34px}.footer-brand{grid-column:1/-1}.footer-brand p{margin:18px 0}footer a{font-size:13px} }

/* Make every career panel visibly purposeful. */
.degree-shield { min-height:410px; align-self:center; position:relative; overflow:hidden; border-radius:130px 0 130px 0; background:linear-gradient(135deg,rgba(255,255,255,.4),rgba(6,5,57,.98)); }.degree-shield::before { content:''; position:absolute; width:56%; height:56%; left:22%; top:15%; border:2px solid rgba(255,255,255,.42); border-radius:42px 0 42px; transform:rotate(-8deg); }.degree-shield::after { content:''; position:absolute; inset:auto 0 0; height:34%; z-index:2; background:#05053b; }.degree-shield .brand-mark { position:absolute; z-index:1; inset:12% 20%; width:60%; height:60%; object-fit:contain; opacity:.48; filter:brightness(0) invert(1); }.degree-shield em { position:absolute; z-index:3; left:50%; top:47%; transform:translate(-50%,-50%); color:#fff; text-shadow:0 7px 30px rgba(4,4,50,.45); font:78px/1 'DM Sans',sans-serif; font-style:normal; }.degree-shield span { position:absolute; z-index:4; left:26px; bottom:21px; color:rgba(255,255,255,.9); font:10px/1.5 'DM Mono',monospace; letter-spacing:.12em; }.degree-shield .career-photo { position:absolute; z-index:1; width:100%; height:100%; object-fit:cover; object-position:68% 50%; animation:career-photo-motion 7s cubic-bezier(.55,.05,.25,1) infinite; }.degree.purple .degree-shield::before { z-index:2; border-color:rgba(255,255,255,.55); }.degree.purple .degree-shield::after { background:linear-gradient(90deg,rgba(5,5,59,.85),rgba(5,5,59,.3)); }.degree.purple .degree-shield .brand-mark { display:none; }.degree.purple .degree-shield em { top:18%; left:14%; transform:none; font-size:45px; }.degree.purple .degree-shield span { text-shadow:0 2px 14px #05053b; }
@keyframes career-photo-motion { 0%,16% { transform:scale(1.1) translate(3%,2%); filter:saturate(.88); } 45% { transform:scale(1.03) translate(-1%,0); filter:saturate(1); } 70%,100% { transform:scale(1.08) translate(1%,-2%); filter:saturate(1.1); } }
@media(max-width:760px){ .degree-shield { min-height:270px; border-radius:80px 0; }.degree-shield em { font-size:54px; }.degree.purple .degree-shield em { font-size:36px; } }

/* Career photography is the hero of each degree panel. */
.degree-shield { background:#08073e; isolation:isolate; }
.degree-shield::before { display:none; }
.degree-shield::after { height:28%; z-index:2; background:linear-gradient(0deg,rgba(5,5,57,.96),rgba(5,5,57,.04)); }
.degree-shield .brand-mark { display:none; }
.degree-shield .career-photo { inset:0; z-index:1; width:100%; height:100%; opacity:1; filter:none; object-fit:cover; animation:career-photo-motion 5.6s cubic-bezier(.55,.05,.25,1) infinite; }
.degree.orange .career-photo { object-position:62% 26%; animation-name:career-photo-motion-face-right; }
.degree.teal .career-photo { object-position:49% 24%; animation-name:career-photo-motion-face-center; }
.degree.gold .career-photo { object-position:52% center; }
.degree.purple .career-photo { object-position:60% center; }
.degree::before { content:''; position:absolute; z-index:0; pointer-events:none; inset:0; opacity:.045; background-color:#fff; -webkit-mask-image:url('/brand/trainmar-mark-positive.png'); -webkit-mask-repeat:repeat; -webkit-mask-size:150px auto; -webkit-mask-position:18px 10px; mask-image:url('/brand/trainmar-mark-positive.png'); mask-repeat:repeat; mask-size:150px auto; mask-position:18px 10px; animation:career-pattern-drift 16s linear infinite; }
/* Each degree has an individual pattern, inspired by its own program panel. */
.degree.teal::before { opacity:.055; background-color:transparent; background-image:radial-gradient(circle at 18% 14%,#fff 0 12%,transparent 12.5%),radial-gradient(circle at 66% 14%,#fff 0 12%,transparent 12.5%),linear-gradient(90deg,transparent 0 22%,#fff 22% 46%,transparent 46% 54%,#fff 54% 78%,transparent 78%); background-size:260px 260px; background-position:0 0; -webkit-mask-image:none; mask-image:none; border-radius:0; }
.degree.gold::before { opacity:.035; background-color:transparent; background-image:radial-gradient(ellipse at 51% 8%,#07073e 0 22%,transparent 22.5%),linear-gradient(#07073e 0 0),linear-gradient(#07073e 0 0); background-size:100% 100%,31% 25%,31% 25%; background-position:center top,12% 58%,57% 58%; background-repeat:no-repeat; -webkit-mask-image:none; mask-image:none; }
.degree.purple::before { opacity:.04; background-color:transparent; background-image:radial-gradient(ellipse at 50% 10%,#fff 0 25%,transparent 25.5%),linear-gradient(#fff 0 0),linear-gradient(#fff 0 0); background-size:100% 100%,75% 24%,75% 24%; background-position:center top,center 52%,center 79%; background-repeat:no-repeat; -webkit-mask-image:none; mask-image:none; }
.degree-grid { display:grid; grid-template-columns:1fr; gap:4px; padding:4px 0; background:#fff; }
.degree-human { max-width:510px; margin:-25px 0 30px!important; padding-left:14px; border-left:3px solid currentColor; font-size:14px!important; font-style:italic; opacity:.82; }
.floating-contact { position:fixed; z-index:20; right:22px; bottom:22px; display:grid; grid-template-columns:27px auto; column-gap:9px; align-items:center; padding:11px 17px 11px 12px; border-radius:999px; color:#fff; background:#25d366; box-shadow:0 13px 28px rgba(5,5,57,.28); font-size:13px; animation:floating-contact-bob 3s ease-in-out infinite; }.floating-contact span { grid-row:span 2; width:29px; height:29px; display:grid; place-items:center; border-radius:50%; color:#25d366; background:#fff; font-size:19px; font-weight:700; }.floating-contact b { line-height:1.1; }.floating-contact em { color:rgba(255,255,255,.88); font-size:10px; font-style:normal; line-height:1.15; }.floating-contact:hover { background:#128c7e; animation-play-state:paused; }
.reveal-on-scroll { opacity:0; transform:translateY(30px); transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1); }.reveal-on-scroll.is-revealed { opacity:1; transform:translateY(0); }.reveal-on-scroll:nth-of-type(even) { transition-delay:.08s; }
@keyframes floating-contact-bob { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-7px); } }
@media(max-width:760px){ .degree-human { margin:-18px 0 24px!important; font-size:13px!important; }.floating-contact { right:14px; bottom:14px; padding:10px 12px; }.floating-contact em { display:none; } }
@media(prefers-reduced-motion:reduce){ .reveal-on-scroll { opacity:1; transform:none; transition:none; }.floating-contact { animation:none; } }

/* Interactive motion graphic for the admissions invitation. */
.admission-motion { position:relative; min-height:340px; z-index:2; }.admission-orbit { position:absolute; border:1px solid rgba(255,255,255,.52); border-radius:50%; pointer-events:none; }.orbit-a { width:370px; height:370px; right:6%; top:-3%; animation:admission-orbit-spin 18s linear infinite; }.orbit-b { width:230px; height:230px; right:25%; top:19%; border-style:dashed; animation:admission-orbit-spin 12s linear reverse infinite; }.admission-shape { position:absolute; display:flex; flex-direction:column; justify-content:space-between; width:142px; height:162px; padding:20px; border:0; color:#07073e; background:#fff; border-radius:55px 55px 18px 18px; box-shadow:0 16px 30px rgba(7,7,62,.16); cursor:pointer; transition:transform .35s cubic-bezier(.16,1,.3,1),background .25s,color .25s; }.admission-shape:hover { transform:scale(1.13) rotate(-5deg)!important; background:#07073e; color:#fff; }.admission-shape i { font:11px 'DM Mono',monospace; font-style:normal; color:#fb6100; }.admission-shape b { font:700 15px 'DM Sans',sans-serif; letter-spacing:-.04em; }.shape-one { left:7%; top:19%; animation:admission-shape-float-one 5.5s ease-in-out infinite; }.shape-two { left:38%; top:4%; width:125px; height:142px; border-radius:18px 18px 54px 54px; background:#f1bd36; animation:admission-shape-float-two 6.2s ease-in-out infinite; }.shape-three { right:5%; bottom:5%; width:155px; height:128px; border-radius:22px 62px 62px 22px; background:#363171; color:#fff; animation:admission-shape-float-three 5.8s ease-in-out infinite; }.admission-arrow { position:absolute; right:32%; bottom:12%; color:#fff; font:600 68px/.8 'Playfair Display',serif; animation:admission-arrow-bounce 2.5s ease-in-out infinite; }.admission-motion:hover .orbit-a { animation-duration:7s; }.admission-motion:hover .orbit-b { animation-duration:5s; }
@keyframes admission-orbit-spin { to { transform:rotate(360deg); } }@keyframes admission-shape-float-one { 0%,100% { transform:translateY(0) rotate(-7deg); } 50% { transform:translateY(-16px) rotate(3deg); } }@keyframes admission-shape-float-two { 0%,100% { transform:translateY(0) rotate(6deg); } 50% { transform:translateY(14px) rotate(-3deg); } }@keyframes admission-shape-float-three { 0%,100% { transform:translateY(0) rotate(4deg); } 50% { transform:translateY(-14px) rotate(-4deg); } }@keyframes admission-arrow-bounce { 0%,100% { transform:translate(0,0); } 50% { transform:translate(9px,-9px); } }
@media(max-width:760px){ .admission { grid-template-columns:1fr; min-height:650px; padding:75px 7vw 34px; gap:12px; }.admission-motion { min-height:280px; }.orbit-a { width:290px; height:290px; right:0; top:-4%; }.orbit-b { width:175px; height:175px; right:29%; }.admission-shape { width:115px; height:132px; padding:16px; }.shape-one { left:2%; top:21%; }.shape-two { left:35%; top:3%; width:105px; height:120px; }.shape-three { right:1%; bottom:2%; width:125px; height:105px; }.admission-arrow { right:35%; bottom:8%; font-size:55px; } }

/* The arrow follows whichever admissions step is being explored. */
.admission-spark { position:absolute; right:26%; top:29%; z-index:2; display:grid; place-items:center; width:86px; height:86px; border-radius:50%; color:#07073e; background:#f1bd36; font:10px/1.25 'DM Mono',monospace; text-align:center; letter-spacing:.08em; box-shadow:0 10px 23px rgba(7,7,62,.13); animation:admission-spark-pulse 3s ease-in-out infinite; }.admission-spark b { font-size:9px; }
.admission-arrow { z-index:4; left:65%; top:63%; right:auto; bottom:auto; animation:admission-arrow-bounce-translate 2.5s ease-in-out infinite; transition:left .55s cubic-bezier(.16,1,.3,1),top .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1); }
.admission-motion:has(.shape-one:hover) .admission-arrow,.admission-motion:has(.shape-one:focus-visible) .admission-arrow { left:18%; top:22%; transform:rotate(-24deg) scale(1.14); }.admission-motion:has(.shape-two:hover) .admission-arrow,.admission-motion:has(.shape-two:focus-visible) .admission-arrow { left:48%; top:17%; transform:rotate(-10deg) scale(1.14); }.admission-motion:has(.shape-three:hover) .admission-arrow,.admission-motion:has(.shape-three:focus-visible) .admission-arrow { left:67%; top:59%; transform:rotate(4deg) scale(1.14); }
@keyframes admission-spark-pulse { 0%,100% { transform:scale(1) rotate(-8deg); } 50% { transform:scale(1.09) rotate(8deg); } }
@keyframes admission-arrow-bounce-translate { 0%,100% { translate:0 0; } 50% { translate:9px -9px; } }
@media(max-width:760px){ .admission-spark { right:25%; top:35%; width:68px; height:68px; font-size:8px; }.admission-arrow { left:66%; top:64%; right:auto; bottom:auto; font-size:55px; }.admission-motion:has(.shape-one:hover) .admission-arrow,.admission-motion:has(.shape-one:focus-visible) .admission-arrow { left:14%; top:24%; }.admission-motion:has(.shape-two:hover) .admission-arrow,.admission-motion:has(.shape-two:focus-visible) .admission-arrow { left:46%; top:18%; }.admission-motion:has(.shape-three:hover) .admission-arrow,.admission-motion:has(.shape-three:focus-visible) .admission-arrow { left:67%; top:59%; } }

/* Stable arrow: the stem stays fixed while only its head reacts. */
.admission-arrow { left:50%; top:65%; width:130px; height:72px; display:block; animation:none; color:#fff; }.admission-arrow i { position:absolute; left:0; bottom:9px; width:106px; height:2px; background:currentColor; transform:rotate(-24deg); transform-origin:left center; }.admission-arrow b { position:absolute; right:0; top:0; display:block; font:600 62px/.8 'Playfair Display',serif; transform:rotate(0) scale(1); transform-origin:center; transition:transform .38s cubic-bezier(.16,1,.3,1),color .25s; }.admission-motion:has(.shape-one:hover) .admission-arrow,.admission-motion:has(.shape-one:focus-visible) .admission-arrow,.admission-motion:has(.shape-two:hover) .admission-arrow,.admission-motion:has(.shape-two:focus-visible) .admission-arrow,.admission-motion:has(.shape-three:hover) .admission-arrow,.admission-motion:has(.shape-three:focus-visible) .admission-arrow { left:50%; top:65%; transform:none; }.admission-motion:has(.shape-one:hover) .admission-arrow b,.admission-motion:has(.shape-one:focus-visible) .admission-arrow b { transform:translate(-12px,-10px) rotate(-28deg) scale(1.18); color:#f1bd36; }.admission-motion:has(.shape-two:hover) .admission-arrow b,.admission-motion:has(.shape-two:focus-visible) .admission-arrow b { transform:translate(0,-15px) rotate(-10deg) scale(1.35); color:#fff; }.admission-motion:has(.shape-three:hover) .admission-arrow b,.admission-motion:has(.shape-three:focus-visible) .admission-arrow b { transform:translate(13px,4px) rotate(7deg) scale(1.12); color:#f1bd36; }
@media(max-width:760px){ .admission-arrow { left:47%; top:66%; width:106px; height:62px; font-size:inherit; }.admission-arrow i { width:88px; }.admission-arrow b { font-size:51px; }.admission-motion:has(.shape-one:hover) .admission-arrow,.admission-motion:has(.shape-one:focus-visible) .admission-arrow,.admission-motion:has(.shape-two:hover) .admission-arrow,.admission-motion:has(.shape-two:focus-visible) .admission-arrow,.admission-motion:has(.shape-three:hover) .admission-arrow,.admission-motion:has(.shape-three:focus-visible) .admission-arrow { left:47%; top:66%; } }
.degree-shield { z-index:1; }
.degree-shield em, .degree.purple .degree-shield em { z-index:3; left:48px; top:48px; transform:none; width:46px; height:46px; display:grid; place-items:center; border-radius:14px; background:rgba(5,5,57,.74); color:#fff; text-shadow:none; font-size:24px; line-height:1; padding:0; overflow:visible; backdrop-filter:blur(8px); }
.degree-shield span { z-index:3; left:20px; bottom:18px; text-shadow:0 2px 15px rgba(0,0,0,.75); }
@keyframes career-photo-motion { 0%,15% { transform:scale(1.12) translate(3%,2%); filter:saturate(.94); } 48% { transform:scale(1.04) translate(-2%,-1%); filter:saturate(1.07); } 74%,100% { transform:scale(1.1) translate(1%,-2%); filter:saturate(1.16); } }
@keyframes career-photo-motion-face-right { 0%,15% { transform:scale(1.035) translate(1%,1%); } 48% { transform:scale(1.01) translate(-1%,0); } 74%,100% { transform:scale(1.03) translate(1%,-1%); } }
@keyframes career-photo-motion-face-center { 0%,15% { transform:scale(1.035) translate(0,1%); } 48% { transform:scale(1.01) translate(-1%,0); } 74%,100% { transform:scale(1.03) translate(1%,-1%); } }
@keyframes career-pattern-drift { to { -webkit-mask-position:128px 128px; mask-position:128px 128px; } }
@media(max-width:760px){ .degree-shield { min-height:315px; border-radius:88px 0; }.degree-shield em, .degree.purple .degree-shield em { left:36px; top:36px; width:40px; height:40px; font-size:20px; } }

/* Keep the secondary action legible on every degree colour. */
.degree-actions a:nth-child(2) { background:rgba(255,255,255,.96); color:#07073e; border-color:#fff; box-shadow:0 5px 18px rgba(5,5,57,.18); }
.degree-actions a:nth-child(2):hover { background:#07073e; color:#fff; border-color:#07073e; }
.degree.gold .degree-actions a:nth-child(2) { background:#07073e; color:#fff; border-color:#07073e; }
.degree.gold .degree-actions a:nth-child(2):hover { background:#fff; color:#07073e; border-color:#fff; }

/* Internal page system and the concise homepage navigation cards. */
.programs>a { min-height:300px; padding:48px 35px 43px 0; border-right:1px solid rgba(255,255,255,.16); margin-right:35px; transition:background .2s,padding .2s; }.programs>a:last-child { border:0; }.programs>a:hover { background:rgba(255,255,255,.05); padding-left:16px; }.programs>a span { color:#ec7656; font:12px 'DM Mono',monospace; }.programs>a h3 { margin:62px 0 12px; font-size:22px; letter-spacing:-.04em; }.programs>a p { max-width:250px; margin:0; color:rgba(255,255,255,.72); font-size:14px; line-height:1.5; }
.inner-page { min-height:100vh; background:#f6f6f4; color:#07073e; }.inner-header { min-height:88px; padding:0 7vw; display:flex; align-items:center; justify-content:space-between; gap:24px; background:#fff; }.inner-logo img { display:block; width:160px; height:48px; object-fit:contain; object-position:left; }.inner-header nav { display:flex; gap:clamp(16px,2.6vw,42px); font-size:13px; }.inner-header nav a:hover { color:#fb6100; }.header-actions { display:flex; align-items:center; gap:18px; flex-shrink:0; }.login-link { color:#363171; font-size:13px; font-weight:700; text-decoration:underline; text-decoration-color:rgba(54,49,113,.3); text-underline-offset:5px; transition:color .2s,text-decoration-color .2s; }.login-link:hover,.login-link:focus-visible { color:#fb6100; text-decoration-color:#fb6100; }.inner-header .apply { background:#fb6100; color:#07073e; }
.academic-menu { position:relative; display:inline-flex; align-items:center; }.academic-menu>a { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }.academic-menu>a i { font-style:normal; transition:transform .25s ease; }.academic-dropdown { position:absolute; z-index:20; top:calc(100% + 15px); left:-18px; display:grid; min-width:250px; padding:10px; border:1px solid rgba(7,7,62,.1); border-radius:18px; opacity:0; visibility:hidden; transform:translateY(-8px); background:#fff; box-shadow:0 20px 44px rgba(7,7,62,.17); transition:opacity .22s ease,transform .22s ease,visibility .22s; }.academic-menu:hover .academic-dropdown,.academic-menu:focus-within .academic-dropdown { opacity:1; visibility:visible; transform:translateY(0); }.academic-menu:hover>a i,.academic-menu:focus-within>a i { transform:rotate(180deg); }.academic-dropdown a { display:grid; grid-template-columns:31px 1fr auto; align-items:center; gap:8px; padding:14px 12px; border-radius:12px; color:#07073e!important; font-size:14px; font-weight:700; transition:background .2s,color .2s; }.academic-dropdown a:hover { color:#fff!important; background:#07073e; }.academic-dropdown b { color:#fb6100; font:10px 'DM Mono',monospace; }.academic-dropdown em { font-style:normal; font-size:20px; }.masters-page { display:grid; grid-template-columns:1fr auto; gap:8vw; align-items:center; padding:100px 8vw; color:#fff; background:#45418d; }.masters-page h2 { max-width:700px; margin:0 0 20px; font:600 clamp(44px,5.5vw,76px)/.92 'Playfair Display',serif; letter-spacing:-.065em; }.masters-page p:last-child { max-width:550px; margin:0; color:rgba(255,255,255,.78); line-height:1.6; }
.inner-hero { padding:105px 8vw 96px; color:#fff; background:radial-gradient(circle at 72% 10%,#4446a4 0,#09093f 36%,#05053b 78%); }.inner-hero h1 { max-width:900px; margin:0 0 28px; font:600 clamp(52px,7vw,100px)/.91 'Playfair Display',serif; letter-spacing:-.065em; }.inner-hero>p:last-child { max-width:535px; margin:0; color:rgba(255,255,255,.8); font-size:17px; line-height:1.6; }
.program-index { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; padding:80px 8vw; }.program-link { min-height:265px; display:flex; flex-direction:column; padding:30px; border-radius:25px; color:#fff; transition:transform .25s; }.program-link:hover { transform:translateY(-6px); }.program-link.orange { background:#fb6100; }.program-link.teal { background:#037c77; }.program-link.gold { background:#f1bd36; color:#07073e; }.program-link.purple { background:#363171; }.program-link span { font:11px 'DM Mono',monospace; letter-spacing:.11em; }.program-link strong { max-width:450px; margin:28px 0 auto; font-size:clamp(28px,3.6vw,54px); line-height:.95; letter-spacing:-.055em; }.program-link i { align-self:flex-end; font-size:30px; font-style:normal; }
.program-page { display:grid; grid-template-columns:1fr 1fr; gap:8vw; padding:95px 8vw; color:#fff; }.program-page.orange { background:#fb6100; }.program-page.teal { background:#037c77; }.program-page.gold { color:#07073e; background:#f1bd36; }.program-page.purple { background:#363171; }.program-page h2,.community-page h2,.admissions-page h2,.campus-page h2,.costs-page h2 { margin:0 0 24px; font:600 clamp(40px,5vw,72px)/.95 'Playfair Display',serif; letter-spacing:-.06em; }.program-page>div>p:last-of-type { max-width:560px; margin:0 0 32px; font-size:18px; line-height:1.6; }.program-page .apply { background:#07073e; color:#fff; }.program-page dl { align-self:center; margin:0; border-top:1px solid rgba(255,255,255,.45); }.program-page.gold dl { border-color:rgba(7,7,62,.3); }.program-page dl>div { display:grid; grid-template-columns:140px 1fr; gap:18px; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.32); }.program-page.gold dl>div { border-color:rgba(7,7,62,.25); }.program-page dt { font:10px 'DM Mono',monospace; letter-spacing:.11em; }.program-page dd { margin:0; line-height:1.5; }
.info-columns,.costs-page { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; padding:0 8vw 90px; background:#f6f6f4; }.info-columns article,.costs-page>div { min-height:315px; padding:42px 28px; background:#fff; }.info-columns span,.costs-page span { color:#fb6100; font:12px 'DM Mono',monospace; }.info-columns h2,.costs-page h2 { margin:60px 0 14px; font:600 28px/.98 'Playfair Display',serif; letter-spacing:-.05em; }.info-columns p,.costs-page p { margin:0; line-height:1.6; color:#575a79; }.community-page { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; background:#eceef4; }.community-page img { width:100%; height:100%; min-height:470px; object-fit:cover; }.community-page>div { padding:90px 8vw 80px 7vw; }.community-page>div>p:last-of-type { max-width:430px; margin:0 0 30px; line-height:1.6; color:#575a79; }.community-page .apply,.costs-page .apply { background:#fb6100; color:#07073e; }.admissions-page { display:grid; grid-template-columns:1fr 1fr; gap:9vw; padding:90px 8vw; background:#fb6100; color:#07073e; }.admissions-page>div>p { max-width:420px; line-height:1.6; }.admissions-page form { display:grid; gap:18px; align-content:start; }.admissions-page label { font-size:12px; font-weight:600; }.admissions-page input,.admissions-page select { display:block; width:100%; padding:11px 0; margin-top:7px; background:transparent; border:0; border-bottom:1px solid rgba(7,7,62,.45); font:15px 'DM Sans',sans-serif; }.admissions-page .apply { border:0; background:#07073e; color:#fff; justify-content:center; cursor:pointer; }.costs-page { grid-template-columns:repeat(3,1fr); align-items:stretch; }.costs-page .apply { align-self:center; justify-self:start; grid-column:1/-1; margin-top:20px; }.campus-page { padding:90px 8vw; min-height:430px; background:linear-gradient(135deg,#037c77,#05053b); color:#fff; }.campus-page>div { max-width:650px; }.campus-page>div>p:last-of-type { max-width:500px; margin:0 0 30px; line-height:1.6; color:rgba(255,255,255,.78); }.campus-page .apply { background:#fff; color:#07073e; }
@media(max-width:760px){ .programs>a { min-height:auto; padding:32px 0; margin:0; border-right:0; border-bottom:1px solid rgba(255,255,255,.16); }.programs>a h3 { margin:24px 0 8px; }.inner-header { min-height:72px; padding:0 6vw; gap:12px; }.inner-header nav { display:none; }.inner-logo img { width:125px; }.header-actions { gap:10px; }.login-link { font-size:11px; text-underline-offset:4px; }.inner-header .apply { padding:10px 12px; font-size:11px; }.inner-hero { padding:80px 7vw 72px; }.program-index,.program-page,.community-page,.admissions-page { grid-template-columns:1fr; }.program-index { padding:55px 6vw; }.program-page { gap:42px; padding:65px 7vw; }.program-page dl>div { grid-template-columns:1fr; gap:7px; }.info-columns,.costs-page { grid-template-columns:1fr; padding:0 6vw 58px; }.community-page img { min-height:295px; }.community-page>div { padding:62px 7vw; }.admissions-page { gap:30px; padding:65px 7vw; }.campus-page { padding:70px 7vw; } }

/* A richer catalogue of Trainmar programmes. */
.program-index-intro { display:flex; align-items:center; justify-content:space-between; gap:8vw; padding:34px 8vw; color:#07073e; background:#fff; }.program-index-intro span { color:#fb6100; font:11px 'DM Mono',monospace; letter-spacing:.14em; }.program-index-intro p { max-width:450px; margin:0; color:#60627c; line-height:1.55; }.program-index { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; padding:70px 8vw 100px; background:#f5f5f3; }.program-link { position:relative; display:grid; grid-template-columns:.92fr 1.08fr; min-height:420px; padding:0; overflow:hidden; border-radius:28px; color:#fff; box-shadow:0 17px 32px rgba(7,7,62,.1); transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s ease; }.program-link:hover { transform:translateY(-10px); box-shadow:0 27px 46px rgba(7,7,62,.22); }.program-link.orange { background:#fb6100; }.program-link.teal { background:#078c88; }.program-link.gold { color:#07073e; background:#f1bd36; }.program-link.purple { background:#363171; }.program-link::before { content:''; position:absolute; z-index:0; pointer-events:none; inset:0; opacity:.075; background-image:radial-gradient(circle,#fff 0 17%,transparent 17.5%); background-size:92px 92px; animation:programme-pattern-drift 18s linear infinite; }.program-link.teal::before { opacity:.08; background-image:linear-gradient(90deg,transparent 0 20%,#fff 20% 47%,transparent 47% 54%,#fff 54% 80%,transparent 80%),radial-gradient(circle at 15% 15%,#fff 0 11%,transparent 11.5%); background-size:190px 190px; }.program-link.gold::before { opacity:.055; background-image:radial-gradient(ellipse at 50% 0,#07073e 0 25%,transparent 25.5%),linear-gradient(#07073e 0 0); background-size:100% 100%,70% 28%; background-position:center,center 70%; background-repeat:no-repeat; }.program-link.purple::before { opacity:.07; background-image:radial-gradient(ellipse at 50% 5%,#fff 0 28%,transparent 28.5%),linear-gradient(#fff 0 0),linear-gradient(#fff 0 0); background-size:100% 100%,70% 20%,70% 20%; background-position:center,center 53%,center 80%; background-repeat:no-repeat; }.program-link-photo { position:relative; z-index:1; overflow:hidden; min-height:420px; }.program-link-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,5,55,.16),transparent),linear-gradient(0deg,rgba(5,5,55,.48),transparent 55%); }.program-link-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .7s cubic-bezier(.16,1,.3,1); }.program-link.orange .program-link-photo img { object-position:66% center; }.program-link.teal .program-link-photo img { object-position:60% center; }.program-link:hover .program-link-photo img { transform:scale(1.1); }.program-link-photo i { position:absolute; z-index:2; left:22px; top:22px; display:grid; place-items:center; width:45px; height:45px; border-radius:14px; color:#fff; background:rgba(5,5,55,.72); backdrop-filter:blur(7px); font-style:normal; font-size:23px; }.program-link-content { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:center; min-width:0; padding:35px; }.program-link-content span { color:inherit; opacity:.72; font:10px 'DM Mono',monospace; letter-spacing:.11em; }.program-link-content strong { margin:24px 0 16px; font-size:clamp(30px,3.35vw,52px); line-height:.91; letter-spacing:-.06em; }.program-link-content p { margin:0 0 28px; color:inherit; opacity:.82; font-size:14px; line-height:1.55; }.program-link-content>b { display:flex; align-items:center; gap:12px; margin-top:auto; font-size:13px; }.program-link-content>b i { font-style:normal; font-size:21px; transition:transform .2s; }.program-link:hover .program-link-content>b i { transform:translateX(7px); }
@keyframes programme-pattern-drift { to { background-position:92px 92px; } }
@media(max-width:760px){ .program-index-intro { align-items:flex-start; flex-direction:column; gap:12px; padding:28px 7vw; }.program-index { grid-template-columns:1fr; gap:14px; padding:45px 6vw 65px; }.program-link { grid-template-columns:1fr; min-height:520px; }.program-link-photo { min-height:250px; height:250px; }.program-link-content { min-height:270px; padding:28px; }.program-link-content strong { font-size:43px; }.program-link-photo i { left:18px; top:18px; }.program-link.orange .program-link-photo img { object-position:58% center; }.program-link.teal .program-link-photo img { object-position:55% center; } }

/* Licenciaturas: a richer entry point and a clearer reading rhythm. */
.catalog-hero { position:relative; display:grid; grid-template-columns:.92fr 1.08fr; align-items:center; min-height:620px; padding:76px 8vw; overflow:hidden; color:#fff; background:radial-gradient(circle at 77% 22%,#4e4899 0,#15135b 32%,#07073e 68%); }
.catalog-hero>div:first-child { position:relative; z-index:2; }.catalog-hero h1 { max-width:670px; margin:0 0 25px; font:600 clamp(56px,7vw,104px)/.88 'Playfair Display',serif; letter-spacing:-.075em; }.catalog-hero h1 strong { color:#f1bd36; font-family:'DM Sans',sans-serif; }.catalog-hero>div:first-child>p:not(.trainmar-kicker) { max-width:465px; margin:0 0 30px; color:rgba(255,255,255,.8); font-size:17px; line-height:1.6; }.catalog-hero .trainmar-kicker { color:#f1bd36; }
.catalog-hero-tags { display:flex; flex-wrap:wrap; gap:9px; }.catalog-hero-tags span { padding:9px 12px; border:1px solid rgba(255,255,255,.28); border-radius:99px; color:#fff; background:rgba(255,255,255,.08); font:10px 'DM Mono',monospace; letter-spacing:.1em; backdrop-filter:blur(8px); }
.catalog-hero-visual { position:relative; align-self:stretch; min-height:470px; }.catalog-hero-visual::before,.catalog-hero-visual::after { content:''; position:absolute; pointer-events:none; border:1px solid rgba(255,255,255,.19); border-radius:50%; }.catalog-hero-visual::before { width:560px; height:560px; right:-18%; top:-8%; }.catalog-hero-visual::after { width:320px; height:320px; right:8%; bottom:-17%; border-style:dashed; animation:catalog-orbit 18s linear infinite; }.catalog-hero-visual img { position:absolute; z-index:2; right:-6%; bottom:-7%; display:block; width:min(52vw,710px); max-height:590px; object-fit:contain; object-position:right bottom; filter:drop-shadow(-22px 22px 28px rgba(0,0,0,.25)); animation:catalog-student-drift 7s ease-in-out infinite; }.catalog-hero-visual i { position:absolute; z-index:3; top:15%; left:8%; display:grid; place-items:center; width:65px; height:65px; border-radius:50%; color:#07073e; background:#f1bd36; font-size:29px; font-style:normal; box-shadow:0 0 0 13px rgba(241,189,54,.13); animation:catalog-star-pulse 2.8s ease-in-out infinite; }.catalog-hero-visual b { position:absolute; z-index:3; left:12%; bottom:18%; padding:12px 15px; border:1px solid rgba(255,255,255,.3); border-radius:16px; background:rgba(7,7,62,.48); font:10px/1.5 'DM Mono',monospace; letter-spacing:.12em; backdrop-filter:blur(10px); }
@keyframes catalog-orbit { to { transform:rotate(360deg); } }@keyframes catalog-student-drift { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(-12px,-10px) scale(1.018); } }@keyframes catalog-star-pulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.1); } }
.program-index-intro { position:relative; isolation:isolate; margin:38px 8vw 0; padding:32px 38px; overflow:hidden; border:1px solid rgba(7,7,62,.11); border-radius:24px; color:#fff; background:#07073e; box-shadow:0 15px 30px rgba(7,7,62,.1); }.program-index-intro::before { content:'04'; position:absolute; z-index:-1; right:4%; top:50%; color:rgba(255,255,255,.055); font:700 clamp(150px,21vw,340px)/.7 'DM Sans',sans-serif; transform:translateY(-50%); }.program-index-intro::after { content:''; position:absolute; z-index:-1; width:220px; height:220px; right:23%; top:-112px; border:1px solid rgba(241,189,54,.38); border-radius:50%; box-shadow:0 0 0 36px rgba(241,189,54,.055),0 0 0 72px rgba(241,189,54,.035); }.program-index-intro span { color:#f1bd36; }.program-index-intro strong { display:block; margin-top:9px; color:#fff; font:600 clamp(25px,3vw,44px)/.98 'Playfair Display',serif; letter-spacing:-.05em; }.program-index-intro p { color:rgba(255,255,255,.74); }.program-index-intro>i { display:grid; place-items:center; flex:0 0 auto; width:50px; height:50px; border:1px solid rgba(255,255,255,.35); border-radius:50%; color:#f1bd36; font-style:normal; font-size:25px; transition:transform .3s ease,background .3s ease; }.program-index-intro:hover>i { transform:rotate(45deg) scale(1.08); background:rgba(255,255,255,.1); }
.licenciaturas-page .program-index { padding-top:42px; }.program-link.gold .program-link-content strong { font-size:clamp(27px,2.75vw,43px); line-height:.94; letter-spacing:-.055em; }
@media(max-width:760px){ .catalog-hero { grid-template-columns:1fr; min-height:760px; padding:65px 7vw 0; }.catalog-hero h1 { font-size:59px; }.catalog-hero-visual { min-height:345px; margin-top:-20px; }.catalog-hero-visual img { right:-12%; bottom:-8%; width:108%; max-height:415px; }.catalog-hero-visual::before { width:390px; height:390px; right:-48%; top:-4%; }.catalog-hero-visual::after { width:220px; height:220px; right:-6%; bottom:-18%; }.catalog-hero-visual i { top:14%; left:4%; width:50px; height:50px; font-size:21px; }.catalog-hero-visual b { left:0; bottom:14%; font-size:8px; }.program-index-intro { align-items:flex-start; gap:16px; margin:25px 6vw 0; padding:28px; }.program-index-intro p { max-width:285px; }.program-index-intro>i { position:absolute; right:25px; bottom:25px; }.licenciaturas-page .program-index { padding-top:28px; }.program-link.gold .program-link-content strong { font-size:36px; line-height:.95; } }

/* Nuestro propósito: the institutional story in the Trainmar visual language. */
.university-intro { display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:center; padding:110px 8vw; color:#07073e; background:#f5f5f3; }.university-intro h2,.university-compass h2,.university-goals h2 { margin:0 0 25px; font:600 clamp(46px,5.7vw,84px)/.9 'Playfair Display',serif; letter-spacing:-.07em; }.university-intro>div>p:last-child { max-width:510px; margin:0; color:#565976; font-size:18px; line-height:1.65; }.university-mark { position:relative; display:grid; place-items:center; min-height:410px; overflow:hidden; border-radius:120px 24px 120px 24px; background:#080842; }.university-mark::before { content:''; position:absolute; z-index:2; width:360px; height:360px; border:1px solid rgba(255,255,255,.22); border-radius:50%; box-shadow:0 0 0 48px rgba(255,255,255,.06),0 0 0 96px rgba(255,255,255,.04); animation:catalog-orbit 20s linear infinite; }.university-mark img { position:relative; z-index:1; width:180px; max-width:42%; filter:drop-shadow(0 18px 18px rgba(7,7,62,.18)); }.university-mark span { position:absolute; z-index:1; left:28px; bottom:25px; color:#fff; font:10px/1.45 'DM Mono',monospace; letter-spacing:.12em; }
.university-values { display:grid; grid-template-columns:repeat(3,1fr); padding:0 8vw; color:#fff; background:#07073e; }.university-values article { position:relative; min-height:325px; padding:50px 42px; overflow:hidden; border-right:1px solid rgba(255,255,255,.16); }.university-values article:last-child { border:0; }.university-values article::after { content:''; position:absolute; width:190px; height:190px; right:-65px; bottom:-80px; border:1px solid rgba(241,189,54,.35); border-radius:50%; box-shadow:0 0 0 28px rgba(241,189,54,.05); }.university-values article:nth-child(2)::after { border-radius:35px; transform:rotate(24deg); }.university-values span { color:#f1bd36; font:11px 'DM Mono',monospace; letter-spacing:.12em; }.university-values h2 { position:relative; z-index:1; margin:55px 0 14px; font:600 35px/.95 'Playfair Display',serif; letter-spacing:-.06em; }.university-values p { position:relative; z-index:1; max-width:280px; margin:0; color:rgba(255,255,255,.72); line-height:1.55; }
.university-compass { display:grid; grid-template-columns:1fr 1fr .9fr; gap:18px; padding:100px 8vw; background:#fff; }.university-compass article,.university-compass aside { min-height:410px; padding:45px; border-radius:28px; }.university-compass article { color:#07073e; background:#f1bd36; }.university-compass .vision { color:#fff; background:#078c88; }.university-compass h2 { font-size:clamp(36px,3.8vw,57px); }.university-compass article>p:last-child { max-width:390px; line-height:1.6; }.university-compass aside { position:relative; overflow:hidden; color:#fff; background:#45418d; }.university-compass aside::before { content:''; position:absolute; width:320px; height:320px; top:-120px; right:-135px; border:1px solid rgba(255,255,255,.24); border-radius:50%; box-shadow:0 0 0 45px rgba(255,255,255,.04); }.university-compass aside span { position:relative; color:#f1bd36; font:10px 'DM Mono',monospace; letter-spacing:.11em; }.university-compass aside strong { position:relative; display:block; margin:80px 0 25px; font:600 48px/.91 'Playfair Display',serif; letter-spacing:-.07em; }.university-compass aside p { position:relative; margin:0; color:rgba(255,255,255,.75); line-height:1.55; }
.university-goals { display:grid; grid-template-columns:.85fr 1.15fr; gap:10vw; padding:110px 8vw; color:#fff; background:#080842; }.university-goals ul { margin:0; padding:0; list-style:none; }.university-goals li { display:grid; grid-template-columns:70px 1fr; gap:24px; padding:22px 0; border-top:1px solid rgba(255,255,255,.2); font-size:20px; line-height:1.45; }.university-goals li:last-child { border-bottom:1px solid rgba(255,255,255,.2); }.university-goals li b { color:#f1bd36; font:11px 'DM Mono',monospace; letter-spacing:.12em; }
.university-mark .university-photo { position:absolute; z-index:1; inset:0; width:100%; max-width:none; height:100%; object-fit:cover; object-position:72% center; filter:none; animation:stories-photo-motion 9s ease-in-out infinite; }.university-mark::after { content:''; position:absolute; z-index:2; inset:0; background:linear-gradient(90deg,rgba(7,7,62,.56),rgba(7,7,62,.06) 72%); }.university-mark span { z-index:3; }
@media(max-width:760px){ .university-intro,.university-compass,.university-goals { grid-template-columns:1fr; gap:45px; padding:72px 7vw; }.university-mark { min-height:300px; }.university-values { grid-template-columns:1fr; padding:0 7vw; }.university-values article { min-height:0; padding:38px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.16); }.university-values h2 { margin:28px 0 10px; }.university-compass article,.university-compass aside { min-height:0; padding:35px 29px; }.university-compass aside strong { margin:54px 0 20px; }.university-goals li { grid-template-columns:45px 1fr; gap:14px; font-size:17px; } }

/* Story-led primary actions: one clear next step from the first screen. */
.hero-actions { display:flex; flex-wrap:wrap; gap:13px; margin-top:30px; }.hero-actions .apply { padding:14px 19px; }.hero-secondary { display:inline-flex; align-items:center; gap:10px; padding:13px 17px; border:1px solid rgba(255,255,255,.6); border-radius:99px; color:#fff; font-size:14px; font-weight:700; transition:transform .2s,background .2s,color .2s; }.hero-secondary:hover { transform:translateY(-3px); color:#07073e; background:#fff; }
@media(max-width:760px){ .hero-actions { margin-top:24px; }.hero-secondary { padding:12px 15px; font-size:13px; } }

/* Isolated preview: proposed information architecture for Trainmar. */
.proposal { background:#f6f6f4; color:#07073e; }.proposal-hero { min-height:660px; position:relative; display:flex; align-items:center; overflow:hidden; padding:92px 8vw; color:#fff; background:#080842; }.proposal-hero>div { position:relative; z-index:2; max-width:560px; }.proposal-hero h1 { margin:0 0 24px; font:600 clamp(58px,7vw,106px)/.86 'Playfair Display',serif; letter-spacing:-.075em; }.proposal-hero h1 b { color:#fb6100; font-family:'DM Sans',sans-serif; }.proposal-hero>div>p:last-of-type { max-width:405px; font-size:18px; line-height:1.55; color:rgba(255,255,255,.82); }.proposal-hero>img { position:absolute; right:0; top:0; width:59%; height:100%; object-fit:cover; object-position:64% center; opacity:.88; }.proposal-hero::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#080842 24%,rgba(8,8,66,.73) 48%,rgba(8,8,66,.08)); }.proposal-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }.proposal-actions a:not(.apply) { display:inline-flex; align-items:center; padding:12px 18px; border:1px solid rgba(255,255,255,.7); border-radius:999px; font-weight:600; }.proposal-hero aside { position:absolute; z-index:2; right:8vw; bottom:42px; display:flex; gap:14px; align-items:end; }.proposal-hero aside strong { font:500 52px/.7 'Playfair Display',serif; }.proposal-hero aside small { display:block; margin-top:10px; font:10px 'DM Mono',monospace; letter-spacing:.1em; }.proposal-hero aside span { font-size:12px; line-height:1.35; color:rgba(255,255,255,.8); }
.proposal-quick { display:flex; align-items:center; justify-content:space-between; gap:38px; padding:26px 8vw; background:#fff; box-shadow:0 10px 24px rgba(7,7,62,.06); }.proposal-quick>strong { font-size:19px; }.proposal-quick>div { display:flex; gap:10px; align-items:center; }.proposal-quick button { padding:12px 17px; color:#5a5d7b; border:1px solid #d5d6df; border-radius:99px; background:#fff; font:13px 'DM Sans',sans-serif; }.proposal-quick a { padding:13px 20px; border-radius:99px; background:#fb6100; color:#07073e; font-size:13px; font-weight:700; }
.proposal-trust { display:grid; grid-template-columns:repeat(4,1fr); padding:29px 8vw; background:#eceef4; }.proposal-trust div { padding:0 22px; border-left:1px solid #cfd1db; }.proposal-trust div:first-child { padding-left:0; border:0; }.proposal-trust strong,.proposal-trust span { display:block; }.proposal-trust strong { font-size:14px; }.proposal-trust span { margin-top:6px; color:#62657e; font-size:12px; }
.proposal-programs { padding:110px 8vw; }.proposal-programs h2,.proposal-model h2,.proposal-tools h2,.proposal-steps h2,.proposal-faq h2,.proposal-contact h2 { margin:0 0 44px; font:600 clamp(42px,5.5vw,78px)/.94 'Playfair Display',serif; letter-spacing:-.065em; }.proposal-programs>div { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }.proposal-programs article { min-height:360px; display:flex; flex-direction:column; padding:25px; border-radius:26px 26px 0 0; color:#fff; }.proposal-programs article:nth-child(3) { color:#07073e; }.proposal-programs article span { font:10px 'DM Mono',monospace; letter-spacing:.1em; }.proposal-programs article h3 { margin:35px 0 16px; font-size:29px; line-height:.98; letter-spacing:-.05em; }.proposal-programs article p { margin:0; font-size:13px; line-height:1.55; }.proposal-programs article a { margin-top:auto; font-size:13px; font-weight:700; }
.proposal-model { display:grid; grid-template-columns:.9fr 1.1fr; gap:8vw; padding:105px 8vw; background:#05053b; color:#fff; }.proposal-model>div>p:last-of-type { max-width:420px; margin:0 0 30px; color:rgba(255,255,255,.72); line-height:1.6; }.proposal-model .detail-cta { color:#fff; }.proposal-model ol { margin:0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.25); }.proposal-model li { display:grid; grid-template-columns:60px 1fr 1.4fr; gap:17px; align-items:baseline; padding:22px 0; border-bottom:1px solid rgba(255,255,255,.2); }.proposal-model li b { color:#fb6100; font:11px 'DM Mono',monospace; }.proposal-model li strong { font-size:20px; }.proposal-model li span { color:rgba(255,255,255,.65); font-size:14px; }
.proposal-tools { padding:105px 8vw; background:#f1bd36; }.proposal-tools>div { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; }.proposal-tools a { min-height:220px; display:flex; flex-direction:column; padding:26px; border-radius:22px; color:#fff; background:#07073e; transition:transform .2s; }.proposal-tools a:hover { transform:translateY(-5px); }.proposal-tools i { color:#fb6100; font-size:27px; font-style:normal; }.proposal-tools strong { margin:45px 0 8px; font-size:20px; }.proposal-tools span { color:rgba(255,255,255,.68); font-size:13px; line-height:1.5; }
.proposal-steps { padding:105px 8vw; background:#fff; }.proposal-steps>div { display:grid; grid-template-columns:repeat(3,1fr); gap:0; }.proposal-steps article { padding:25px 32px 24px 0; margin-right:32px; border-right:1px solid #d6d7df; }.proposal-steps article:last-child { border:0; }.proposal-steps b { color:#fb6100; font:12px 'DM Mono',monospace; }.proposal-steps h3 { margin:45px 0 12px; font-size:28px; letter-spacing:-.05em; }.proposal-steps p { margin:0; color:#60637d; line-height:1.55; }
.proposal-faq { display:grid; grid-template-columns:.82fr 1.18fr; gap:8vw; padding:105px 8vw; background:#eceef4; }.proposal-faq details { border-top:1px solid #bfc1cd; }.proposal-faq details:last-child { border-bottom:1px solid #bfc1cd; }.proposal-faq summary { padding:20px 25px 20px 0; cursor:pointer; font-weight:700; }.proposal-faq p { max-width:540px; padding:0 0 20px; margin:0; color:#5d607b; line-height:1.55; }
.proposal-contact { display:grid; grid-template-columns:1fr 1fr; gap:8vw; padding:105px 8vw; color:#fff; background:#363171; }.proposal-contact>div>p:last-of-type { max-width:380px; color:rgba(255,255,255,.76); line-height:1.55; }.proposal-contact form { display:grid; gap:16px; align-content:start; }.proposal-contact label { font-size:12px; }.proposal-contact input,.proposal-contact select { display:block; width:100%; margin-top:8px; padding:12px 0; border:0; border-bottom:1px solid rgba(255,255,255,.4); background:transparent; color:#fff; font:14px 'DM Sans',sans-serif; }.proposal-contact select option { color:#07073e; }.proposal-contact .apply { border:0; justify-content:center; margin-top:14px; color:#07073e; background:#fb6100; }
@media(max-width:760px){ .proposal-hero { min-height:610px; padding:75px 7vw; align-items:flex-start; }.proposal-hero>img { width:100%; height:55%; top:auto; bottom:0; opacity:.58; }.proposal-hero::after { background:linear-gradient(180deg,#080842 35%,rgba(8,8,66,.8) 67%,rgba(8,8,66,.3)); }.proposal-hero aside { right:7vw; bottom:22px; }.proposal-quick { align-items:flex-start; flex-direction:column; padding:22px 7vw; gap:16px; }.proposal-quick>div { flex-wrap:wrap; }.proposal-trust { grid-template-columns:1fr 1fr; gap:18px; padding:28px 7vw; }.proposal-trust div { padding:0; border:0; }.proposal-programs,.proposal-model,.proposal-tools,.proposal-steps,.proposal-faq,.proposal-contact { padding:75px 7vw; }.proposal-programs>div,.proposal-tools>div,.proposal-steps>div,.proposal-model,.proposal-faq,.proposal-contact { grid-template-columns:1fr; }.proposal-programs article { min-height:240px; }.proposal-model { gap:42px; }.proposal-model li { grid-template-columns:35px 1fr; }.proposal-model li span { grid-column:2; }.proposal-steps article { margin:0; padding:25px 0; border-right:0; border-bottom:1px solid #d6d7df; }.proposal-steps article:last-child { border-bottom:0; }.proposal-faq { gap:22px; } }

/* The main page keeps the new tools, but in Trainmar's playful motion language. */
.home-explorer { display:grid; grid-template-columns:.88fr 1.12fr; gap:5vw; align-items:center; min-height:520px; padding:90px 8vw; overflow:hidden; background:#f2f3f7; color:#07073e; }.home-explorer h2,.admission-route h2,.home-faq h2 { margin:0 0 22px; font:600 clamp(42px,5.2vw,76px)/.93 'Playfair Display',serif; letter-spacing:-.065em; }.home-explorer>div>p:last-child { max-width:350px; color:#60637d; line-height:1.6; }.explorer-orbit { width:min(46vw,620px); aspect-ratio:1; justify-self:center; position:relative; border-radius:50%; border:1px solid rgba(7,7,62,.13); animation:explorer-orbit-spin 20s linear infinite; }.explorer-orbit::before,.explorer-orbit::after { content:''; position:absolute; inset:13%; border:1px dashed rgba(7,7,62,.17); border-radius:50%; }.explorer-orbit::after { inset:28%; border-style:solid; border-color:rgba(251,97,0,.35); }.explorer-chip,.explorer-center { position:absolute; display:flex; align-items:center; justify-content:space-between; gap:12px; z-index:2; padding:13px 18px; border-radius:999px; font-size:13px; font-weight:700; box-shadow:0 12px 24px rgba(7,7,62,.15); animation:explorer-counter-spin 20s linear infinite; transition:transform .2s; }.explorer-chip:hover { transform:scale(1.08); }.explorer-chip.orange { left:-5%; top:21%; color:#fff; background:#fb6100; }.explorer-chip.teal { right:-7%; top:28%; color:#fff; background:#037c77; }.explorer-chip.gold { left:6%; bottom:16%; color:#07073e; background:#f1bd36; }.explorer-chip.purple { right:0; bottom:8%; color:#fff; background:#363171; }.explorer-center { inset:33%; display:grid; place-content:center; text-align:center; color:#fff; background:#07073e; font-size:12px; line-height:1.4; }.explorer-center b { margin-top:6px; color:#fb6100; }
.home-trust { display:grid; grid-template-columns:repeat(4,1fr); padding:0 8vw; background:#05053b; color:#fff; }.home-trust article { min-height:190px; padding:29px 26px; border-right:1px solid rgba(255,255,255,.16); transition:background .2s,transform .2s; }.home-trust article:hover { background:#363171; transform:translateY(-7px); }.home-trust article:last-child { border:0; }.home-trust i,.home-trust strong,.home-trust span { display:block; }.home-trust i { width:34px; height:34px; display:grid; place-items:center; margin-bottom:28px; border-radius:50%; background:#fb6100; color:#07073e; font-style:normal; }.home-trust strong { font-size:16px; }.home-trust span { margin-top:8px; color:rgba(255,255,255,.65); font-size:13px; line-height:1.45; }
.admission-route { display:grid; grid-template-columns:.8fr 1.2fr; gap:7vw; padding:105px 8vw; color:#07073e; background:#f1bd36; }.admission-route h2 strong { font-family:'DM Sans',sans-serif; }.route-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; align-items:end; }.route-steps a { min-height:255px; display:flex; flex-direction:column; padding:21px; border-radius:100px 100px 18px 18px; color:#fff; background:#07073e; transition:transform .25s,background .25s; }.route-steps a:nth-child(2) { min-height:305px; background:#037c77; }.route-steps a:nth-child(3) { background:#363171; }.route-steps a:hover { transform:translateY(-12px) rotate(-1deg); background:#fb6100; color:#07073e; }.route-steps b { color:#fb6100; font:11px 'DM Mono',monospace; }.route-steps a:hover b { color:#07073e; }.route-steps strong { margin:50px 0 8px; font-size:20px; }.route-steps span { font-size:12px; line-height:1.45; opacity:.75; }.route-steps i { align-self:flex-end; margin-top:auto; font-style:normal; font-size:24px; }
.home-faq { display:grid; grid-template-columns:.83fr 1.17fr; gap:8vw; padding:105px 8vw; background:#fff; color:#07073e; }.home-faq details { border-top:1px solid #c7c9d3; }.home-faq details:last-child { border-bottom:1px solid #c7c9d3; }.home-faq summary { padding:21px 30px 21px 0; cursor:pointer; font-weight:700; list-style:none; }.home-faq summary::after { content:'+'; float:right; color:#fb6100; font-size:24px; line-height:.7; }.home-faq details[open] summary::after { content:'–'; }.home-faq details p { max-width:540px; margin:0; padding:0 0 22px; color:#60637d; line-height:1.55; }
@keyframes explorer-orbit-spin { to { transform:rotate(360deg); } }@keyframes explorer-counter-spin { to { transform:rotate(-360deg); } }
@media(max-width:760px){ .home-explorer,.admission-route,.home-faq { grid-template-columns:1fr; padding:75px 7vw; }.explorer-orbit { width:88vw; }.home-trust { grid-template-columns:1fr 1fr; padding:0; }.home-trust article { min-height:170px; padding:25px 7vw; }.home-trust article:nth-child(2) { border-right:0; }.home-trust article:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.16); }.route-steps { gap:8px; }.route-steps a { min-height:218px; padding:16px; border-radius:68px 68px 14px 14px; }.route-steps a:nth-child(2) { min-height:255px; }.route-steps strong { margin:35px 0 8px; font-size:17px; } }

/* Verified programme sheets fed by the institutional brief. */
.degree-details { background:#f6f6f4; padding:96px 8vw; display:grid; gap:26px; }
.detail-card { display:grid; grid-template-columns:1.05fr .95fr; gap:6vw; padding:58px 6vw; border-radius:34px; color:#fff; overflow:hidden; position:relative; }
.detail-card.orange { background:#fb6100; }.detail-card.teal { background:#037c77; }.detail-card.gold { background:#f1bd36; color:#07073e; }.detail-card.purple { background:#363171; }
.detail-card h2,.costs h2 { margin:0 0 22px; font:600 clamp(38px,5vw,70px)/.97 'Playfair Display',serif; letter-spacing:-.06em; }.detail-description { max-width:590px; margin:0 0 32px; font-size:18px; line-height:1.55; }
.detail-cta { display:inline-flex; gap:14px; align-items:center; padding:15px 22px; border:2px solid currentColor; border-radius:999px; font-weight:700; font-size:14px; transition:transform .2s,background .2s,color .2s; }.detail-cta:hover { transform:translateY(-2px); background:#07073e; color:#fff; border-color:#07073e; }
.detail-card aside { align-self:center; padding:24px 0 0; }.detail-status { display:inline-block; margin:0 0 22px; padding:8px 11px; border:1px solid currentColor; border-radius:999px; font:10px 'DM Mono',monospace; letter-spacing:.07em; }
.detail-card dl { margin:0; border-top:1px solid rgba(255,255,255,.45); }.detail-card.gold dl { border-color:rgba(7,7,62,.3); }.detail-card dl>div { display:grid; grid-template-columns:132px 1fr; gap:18px; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.3); }.detail-card.gold dl>div { border-color:rgba(7,7,62,.22); }.detail-card dt { font:10px 'DM Mono',monospace; letter-spacing:.1em; text-transform:uppercase; opacity:.8; }.detail-card dd { margin:0; font-size:14px; line-height:1.4; }
.study-plan { margin-top:22px; padding:18px 20px; background:rgba(5,5,57,.16); border-radius:16px; }.study-plan strong { font-size:15px; }.study-plan p { margin:8px 0 0; line-height:1.5; font-size:14px; }.detail-card.gold .study-plan { background:rgba(255,255,255,.28); }
.costs { padding:110px 8vw; background:#fff; color:#07073e; }.costs .trainmar-kicker { color:#fb6100; }.costs>p:not(.trainmar-kicker) { max-width:530px; margin:0 0 30px; line-height:1.65; color:#545570; }.costs .apply { background:#07073e; color:#fff; }
@media(max-width:760px){ .degree-details { padding:65px 6vw; gap:18px; }.detail-card { grid-template-columns:1fr; gap:22px; padding:42px 7vw; border-radius:24px; }.detail-description { font-size:16px; }.detail-card dl>div { grid-template-columns:1fr; gap:6px; }.costs { padding:80px 7vw; } }

/* A richer community section with a real online-learning moment. */
.stories { background:#eceef4; position:relative; overflow:hidden; }.stories::before { content:''; position:absolute; width:54vw; height:54vw; right:-22vw; top:-29vw; border:1px solid rgba(54,49,113,.14); border-radius:50%; }.stories-heading { display:grid; grid-template-columns:.92fr 1.08fr; gap:7vw; align-items:end; margin-bottom:58px; position:relative; z-index:1; }.stories-heading h2 { margin:0 0 22px; }.stories-heading>div>p:last-child { max-width:390px; margin:0; color:#575a79; line-height:1.6; }.stories-photo { min-height:370px; position:relative; overflow:hidden; border-radius:120px 0 28px 0; background:#080842; box-shadow:20px 22px 0 #f1bd36; }.stories-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,5,57,.42),transparent 54%),linear-gradient(0deg,rgba(5,5,57,.52),transparent 45%); }.stories-photo img { display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:70% center; animation:stories-photo-motion 8s ease-in-out infinite; }.stories-photo span { position:absolute; z-index:1; left:25px; bottom:22px; color:#fff; font:11px/1.5 'DM Mono',monospace; letter-spacing:.13em; }.story-grid { position:relative; z-index:1; }.story-grid article { min-height:310px; background:#fff; border-top:5px solid #fb6100; box-shadow:0 16px 35px rgba(12,16,61,.09); }.story-grid article:nth-child(2) { border-color:#037c77; transform:translateY(28px); }.story-grid article:nth-child(3) { border-color:#363171; }.story-grid article>span { color:#fb6100; font:11px 'DM Mono',monospace; letter-spacing:.12em; }.story-grid article:nth-child(2)>span { color:#037c77; }.story-grid article:nth-child(3)>span { color:#363171; }
@keyframes stories-photo-motion { 0%,20% { transform:scale(1.08) translate(2%,1%); filter:saturate(.9); } 52% { transform:scale(1.02) translate(-1%,0); filter:saturate(1.08); } 78%,100% { transform:scale(1.06) translate(1%,-1%); filter:saturate(1); } }
@media(max-width:760px){ .stories-heading { grid-template-columns:1fr; gap:35px; margin-bottom:36px; }.stories-photo { min-height:285px; border-radius:78px 0 24px 0; box-shadow:12px 13px 0 #f1bd36; }.story-grid article:nth-child(2) { transform:none; } }

/* Animated testimonial carousel. */
.stories-carousel { position:relative; z-index:1; }
.stories-carousel .story-grid { animation:stories-slide-in .55s cubic-bezier(.16,1,.3,1) both; }
.stories-carousel .story-grid article { transform:translateY(0) scale(1); transform-origin:center bottom; transition:transform .34s cubic-bezier(.16,1,.3,1), box-shadow .34s ease, background .34s ease; cursor:default; }
.stories-carousel .story-grid article:hover { position:relative; z-index:3; transform:translateY(-16px) scale(1.055); background:#fff; box-shadow:0 27px 44px rgba(7,7,62,.2); }
.stories-carousel .story-grid article:hover blockquote { color:#363171; }
.stories-controls { display:flex; align-items:center; gap:13px; margin-top:42px; }
.stories-controls button { display:grid; place-items:center; width:53px; height:53px; border:2px solid #07073e; border-radius:50%; color:#07073e; background:transparent; font:400 28px/.8 'DM Sans',sans-serif; cursor:pointer; transition:transform .2s,background .2s,color .2s; }
.stories-controls button:hover { transform:translateY(-4px) scale(1.05); color:#fff; background:#07073e; }.stories-controls span { min-width:38px; color:#5d607b; font:11px 'DM Mono',monospace; text-align:center; letter-spacing:.08em; }
@keyframes stories-slide-in { from { opacity:0; transform:translateX(54px); } to { opacity:1; transform:translateX(0); } }
@media(max-width:760px){ .stories-controls { justify-content:center; margin-top:28px; } }

/* Visual language for Trainmar's trust and statistic blocks. */
.home-trust article { position:relative; isolation:isolate; overflow:hidden; }
.home-trust article::before { content:''; position:absolute; z-index:-1; width:155px; height:155px; right:-50px; bottom:-64px; border:1px solid rgba(255,255,255,.2); border-radius:50%; box-shadow:0 0 0 27px rgba(255,255,255,.035),0 0 0 54px rgba(255,255,255,.02); transition:transform .45s cubic-bezier(.16,1,.3,1); }
.home-trust article::after { content:''; position:absolute; z-index:-1; width:95px; height:95px; right:24px; top:-42px; border:1px dashed rgba(251,97,0,.5); border-radius:30px; transform:rotate(24deg); animation:trust-shape-turn 16s linear infinite; }
.home-trust article:nth-child(2)::after { border-radius:50%; border-style:solid; }.home-trust article:nth-child(3)::after { width:80px; height:80px; border-radius:0; }.home-trust article:nth-child(4)::after { border-radius:50% 50% 0 50%; }
.home-trust article:hover::before { transform:scale(1.3) translate(-18px,-12px); }.home-trust article:hover::after { animation-duration:3s; }
.home-trust i { position:relative; z-index:1; width:48px!important; height:48px!important; margin-bottom:24px!important; border:1px solid rgba(255,255,255,.28); background:#fb6100!important; box-shadow:0 9px 18px rgba(0,0,0,.16); transition:transform .3s cubic-bezier(.16,1,.3,1); }.home-trust article:nth-child(2) i { background:#f1bd36!important; }.home-trust article:nth-child(3) i { background:#078c88!important; color:#fff; }.home-trust article:nth-child(4) i { background:#fff!important; color:#363171; }.home-trust article:hover i { transform:rotate(-10deg) scale(1.13); }
.stats { position:relative; overflow:hidden; background:linear-gradient(118deg,#fb6100,#f78b28)!important; }.stats::before { content:''; position:absolute; width:46vw; height:46vw; left:-19vw; bottom:-37vw; border:1px solid rgba(7,7,62,.22); border-radius:50%; box-shadow:0 0 0 55px rgba(7,7,62,.045),0 0 0 110px rgba(7,7,62,.03); animation:stats-orbit 23s linear infinite; }.stats::after { content:'✦  ○  +  ✦  ○  +'; position:absolute; right:-60px; top:24px; color:rgba(255,255,255,.26); font:500 42px/1.65 'DM Mono',monospace; letter-spacing:.25em; transform:rotate(-12deg); }
.stats div { position:relative; z-index:1; isolation:isolate; overflow:hidden; transition:transform .3s cubic-bezier(.16,1,.3,1),background .3s ease; }.stats div::before { display:grid; place-items:center; width:44px; height:44px; margin-bottom:18px; border:1px solid rgba(7,7,62,.28); border-radius:14px; color:#07073e; background:rgba(255,255,255,.24); font:20px/1 'DM Sans',sans-serif; }.stats div:nth-child(1)::before { content:'◌'; }.stats div:nth-child(2)::before { content:'↗'; }.stats div:nth-child(3)::before { content:'◎'; }.stats div:hover { transform:translateY(-10px); background:rgba(255,255,255,.13); }.stats div:hover::before { background:#07073e; color:#f1bd36; transform:rotate(10deg); }
@keyframes trust-shape-turn { to { transform:rotate(384deg); } }@keyframes stats-orbit { to { transform:rotate(360deg); } }
@media(max-width:760px){ .home-trust article::after { right:8px; }.stats::before { width:85vw; height:85vw; left:-39vw; bottom:-62vw; }.stats div::before { margin-bottom:13px; } }

/* A deliberate first impression for the main statement. */
.trainmar-hero .hero-copy .trainmar-kicker { animation:hero-copy-rise 1s .16s cubic-bezier(.16,1,.3,1) both; }
.trainmar-hero .hero-copy h1 { transform-origin:left center; animation:hero-title-zoom 2.05s .32s cubic-bezier(.16,1,.3,1) both; }
.trainmar-hero .hero-copy>p:not(.trainmar-kicker) { animation:hero-copy-rise 1s 1.28s cubic-bezier(.16,1,.3,1) both; }
@keyframes hero-title-zoom { 0% { opacity:0; transform:scale(.72) translateY(38px); filter:blur(9px); } 58% { opacity:1; transform:scale(1.035) translateY(-3px); filter:blur(0); } 100% { opacity:1; transform:scale(1) translateY(0); filter:blur(0); } }
@keyframes hero-copy-rise { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }

/* Portadas alternas del encabezado: una experiencia institucional y una ficha informativa. */
.home-hero-carousel { position:absolute; inset:0; z-index:1; overflow:clip; }
.home-hero-slide { position:absolute; inset:0; opacity:0; pointer-events:none; transition:opacity .85s ease; }
.home-hero-slide.is-active { opacity:1; pointer-events:auto; }
.home-hero-welcome { background:radial-gradient(circle at 76% 44%,#3436aa 0,#080842 36%,#03032d 74%); }
.home-hero-programs { background:#080a3d url('/images/trainmar-hero-programas-bg-v1.webp') center/cover no-repeat; }
.home-hero-programs::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,3,45,.3),rgba(3,3,45,.08) 52%,rgba(3,3,45,.2)); }
.programs-hero-copy { position:absolute; z-index:2; inset:0 7vw; color:#fff; }
.programs-hero-title { position:absolute; top:clamp(118px,15vh,164px); left:50%; display:flex; align-items:flex-start; gap:clamp(12px,1.8vw,28px); }
.programs-hero-title strong { font:400 clamp(150px,21vw,340px)/.68 'DM Sans',sans-serif; letter-spacing:-.12em; }
.programs-hero-title span { margin-top:clamp(20px,3vw,48px); font:400 clamp(24px,3vw,49px)/1 'DM Sans',sans-serif; letter-spacing:-.055em; }
.programs-hero-facts { position:absolute; left:15%; right:8%; bottom:clamp(100px,16vh,160px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,8vw,150px); padding-top:22px; border-top:1px solid rgba(255,255,255,.55); }
.programs-hero-facts span { display:block; margin-bottom:5px; font-size:clamp(17px,2vw,33px); letter-spacing:-.05em; }
.programs-hero-facts b { display:block; font:400 clamp(72px,10vw,164px)/.75 'DM Sans',sans-serif; letter-spacing:-.1em; }
.programs-hero-copy>p { position:absolute; left:0; bottom:35px; margin:0; max-width:480px; color:rgba(255,255,255,.94); font-size:clamp(14px,1.55vw,23px); line-height:1.35; }
.home-hero-programs.is-active .programs-hero-title { animation:hero-program-title .78s .12s cubic-bezier(.16,1,.3,1) both; }
.home-hero-programs.is-active .programs-hero-facts { animation:hero-program-facts .72s .42s cubic-bezier(.16,1,.3,1) both; }
.home-hero-programs.is-active .programs-hero-copy>p { animation:hero-program-facts .62s .66s cubic-bezier(.16,1,.3,1) both; }
@keyframes hero-program-title { from { opacity:0; transform:translateY(-30px) scale(.93); filter:blur(8px); } to { opacity:1; transform:translateY(0) scale(1); filter:blur(0); } }
@keyframes hero-program-facts { from { opacity:0; transform:translateY(25px); } to { opacity:1; transform:translateY(0); } }
.home-hero-future { background:#050a18 url('/images/trainmar-hero-futuro-v1.webp') center/cover no-repeat; }
.home-hero-future::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,7,20,.25) 0%,rgba(3,7,20,.06) 45%,rgba(3,7,20,.08) 100%); }
.hero-future-copy { max-width:630px; }
.home-hero-future .hero-future-copy { padding-top:clamp(126px,18vh,190px); padding-bottom:112px; }
.home-hero-future .hero-future-copy .trainmar-kicker { margin-bottom:18px; }
.home-hero-future .hero-future-copy h1 { margin:0 0 24px; color:#fff; font-size:clamp(48px,6.1vw,92px); line-height:.9; }
.home-hero-future .hero-future-copy>p:not(.trainmar-kicker) { max-width:530px; margin:0; font-size:clamp(16px,1.45vw,20px); line-height:1.45; }
.hero-future-copy h1 em { color:#f1bd36; font-style:normal; }
.hero-future-copy .trainmar-kicker { color:#f1bd36; }
.home-hero-future .hero-copy,.home-hero-future .scene-tip { position:relative; z-index:2; }
.home-hero-future.is-active .hero-future-copy .trainmar-kicker { animation:hero-future-kicker .58s .12s cubic-bezier(.16,1,.3,1) both; }
.home-hero-future.is-active .hero-future-copy h1 { animation:hero-future-title .88s .28s cubic-bezier(.16,1,.3,1) both; }
.home-hero-future.is-active .hero-future-copy>p:not(.trainmar-kicker) { animation:hero-future-copy .68s .66s cubic-bezier(.16,1,.3,1) both; }
@keyframes hero-future-kicker { from { opacity:0; transform:translateX(-25px); letter-spacing:.34em; } to { opacity:1; transform:translateX(0); letter-spacing:.14em; } }
@keyframes hero-future-title { from { opacity:0; transform:translateY(34px) scale(.94); filter:blur(8px); } to { opacity:1; transform:translateY(0) scale(1); filter:blur(0); } }
@keyframes hero-future-copy { from { opacity:0; transform:translateY(19px); } to { opacity:1; transform:translateY(0); } }

/* La llamada del primer hero sigue la cápsula redonda de la identidad visual. */
.home-hero-welcome .online-reveal { width:min(390px,32vw); padding:17px 30px 20px; border:1px solid rgba(255,255,255,.24); border-radius:999px; background:#ff6b1a; box-shadow:0 18px 36px rgba(4,4,45,.28); animation:reveal-online-capsule 7.6s cubic-bezier(.16,1,.3,1) infinite; }
.home-hero-welcome .online-reveal span { margin-bottom:5px; font-size:11px; letter-spacing:.14em; }
.home-hero-welcome .online-reveal strong { display:block; font-size:clamp(24px,2.25vw,34px); line-height:.94; }
@keyframes reveal-online-capsule { 0%,56% { opacity:0; transform:translateY(20px) scale(.94); } 65%,82% { opacity:1; transform:translateY(0) scale(1); } 91% { opacity:1; transform:translateY(-7px) scale(1.015); } 100% { opacity:0; transform:translateY(0) scale(1); } }
@media(max-width:760px){ .home-hero-welcome .online-reveal { width:min(265px,72vw); padding:14px 21px 16px; border-radius:999px; }.home-hero-welcome .online-reveal span { font-size:9px; }.home-hero-welcome .online-reveal strong { font-size:24px; } }
.home-hero-controls { position:absolute; z-index:9; right:7vw; top:122px; display:flex; gap:9px; }
.home-hero-controls button { width:35px; height:4px; padding:0; border:0; border-radius:999px; background:rgba(255,255,255,.45); cursor:pointer; transition:width .25s ease,background .25s ease; }
.home-hero-controls button.is-active { width:68px; background:#fff; }
.home-hero-controls button:focus-visible { outline:2px solid #f1bd36; outline-offset:4px; }
.home-hero-welcome .hero-copy { position:relative; z-index:5; }
.home-hero-welcome .online-scene { z-index:2; }
.home-hero-welcome .scene-tip { z-index:7; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:760px) { .home-hero-programs { background-position:center; } .programs-hero-copy { inset:0 7vw; }.programs-hero-title { top:116px; left:21%; gap:10px; }.programs-hero-title strong { font-size:clamp(106px,31vw,160px); }.programs-hero-title span { margin-top:18px; font-size:clamp(19px,6vw,29px); }.programs-hero-facts { left:0; right:0; bottom:82px; gap:17px; padding-top:14px; }.programs-hero-facts span { margin-bottom:4px; font-size:14px; }.programs-hero-facts b { font-size:clamp(53px,16vw,82px); }.programs-hero-copy>p { bottom:27px; max-width:270px; font-size:12px; }.home-hero-controls { right:7vw; top:92px; } .home-hero-controls button { width:27px; } .home-hero-controls button.is-active { width:49px; } }
@media (prefers-reduced-motion:reduce) { .home-hero-slide { transition:none; } }

/* The three learning-model cards get their own quiet visual vocabulary. */
.programs>a { position:relative; isolation:isolate; overflow:hidden; padding-top:48px!important; }
.programs>a::before { position:absolute; z-index:-1; right:27px; top:31px; display:grid; place-items:center; width:70px; height:70px; border:1px solid rgba(255,255,255,.34); border-radius:24px; color:#f1bd36; background:rgba(255,255,255,.07); font:34px/1 'DM Sans',sans-serif; box-shadow:0 0 0 10px rgba(255,255,255,.025); transition:transform .4s cubic-bezier(.16,1,.3,1),background .3s,color .3s; }
.programs>a:nth-child(1)::before { content:'⌂'; }.programs>a:nth-child(2)::before { content:'◌'; }.programs>a:nth-child(3)::before { content:'✦'; }
.programs>a::after { content:''; position:absolute; z-index:-2; width:220px; height:220px; left:-68px; bottom:-135px; border:1px solid rgba(255,255,255,.16); border-radius:50%; box-shadow:0 0 0 27px rgba(255,255,255,.035),0 0 0 54px rgba(255,255,255,.02); transition:transform .65s cubic-bezier(.16,1,.3,1); }
.programs>a:nth-child(2)::after { border-radius:27px; transform:rotate(25deg); }.programs>a:nth-child(3)::after { width:190px; height:190px; border-radius:50% 50% 0 50%; }
.programs>a:hover::before { transform:rotate(-11deg) scale(1.18); color:#07073e; background:#f1bd36; }.programs>a:hover::after { transform:scale(1.35) translate(22px,-25px); }.programs>a:nth-child(2):hover::after { transform:rotate(48deg) scale(1.32) translate(20px,-20px); }
@media(max-width:760px){ .programs>a { padding-top:32px!important; padding-right:88px!important; }.programs>a::before { right:7vw; top:23px; width:53px; height:53px; border-radius:18px; font-size:25px; }.programs>a::after { width:160px; height:160px; left:auto; right:-75px; bottom:-87px; } }

/* Dedicated Campus login page. */
.login-page { min-height:100svh; display:grid; grid-template-columns:1fr 1fr; color:#07073e; background:#f5f5f3; }.login-brand { position:relative; display:flex; flex-direction:column; justify-content:space-between; min-height:100svh; padding:46px 8vw 8vw; overflow:hidden; color:#fff; background:radial-gradient(circle at 18% 78%,#45418d 0,#080842 46%,#04042f 100%); }.login-brand::before,.login-brand::after { content:''; position:absolute; border:1px solid rgba(255,255,255,.2); border-radius:50%; pointer-events:none; }.login-brand::before { width:58vw; height:58vw; right:-31vw; bottom:-37vw; box-shadow:0 0 0 50px rgba(255,255,255,.025),0 0 0 100px rgba(255,255,255,.018); }.login-brand::after { width:270px; height:270px; left:-140px; top:28%; border-style:dashed; animation:login-orbit 18s linear infinite; }.login-brand .inner-logo { position:relative; z-index:1; }.login-brand .inner-logo img { filter:brightness(0) invert(1); }.login-brand>div { position:relative; z-index:1; max-width:520px; }.login-brand p { margin:0 0 21px; color:#f1bd36; font:11px 'DM Mono',monospace; letter-spacing:.14em; }.login-brand h1 { margin:0 0 25px; font:600 clamp(52px,6vw,92px)/.9 'Playfair Display',serif; letter-spacing:-.07em; }.login-brand span { display:block; max-width:340px; color:rgba(255,255,255,.76); line-height:1.6; }.login-panel { display:grid; align-content:center; padding:9vw; position:relative; }.login-back { position:absolute; left:9vw; top:46px; color:#595b76; font-size:13px; }.login-panel form { width:min(100%,430px); }.login-panel h2 { margin:0 0 42px; font:600 clamp(42px,4.5vw,68px)/.93 'Playfair Display',serif; letter-spacing:-.065em; }.login-panel label { display:block; margin:0 0 22px; color:#50526e; font-size:12px; font-weight:700; }.login-panel input { display:block; width:100%; margin-top:8px; padding:14px 0; border:0; border-bottom:1px solid #c7c8d2; outline:none; color:#07073e; background:transparent; font:15px 'DM Sans',sans-serif; transition:border-color .2s; }.login-panel input:focus { border-color:#fb6100; }.login-forgot { display:block; width:max-content; margin:2px 0 28px; color:#363171; font-size:12px; text-decoration:underline; text-underline-offset:4px; }.login-panel .apply { width:100%; justify-content:center; border:0; color:#fff; background:#07073e; cursor:pointer; }.login-panel small { display:block; margin-top:22px; color:#686a80; }.login-panel small a { color:#fb6100; font-weight:700; }.login-panel .trainmar-kicker { color:#fb6100; }
@keyframes login-orbit { to { transform:rotate(360deg); } }
@media(max-width:760px){ .login-page { grid-template-columns:1fr; }.login-brand { min-height:315px; padding:30px 7vw; }.login-brand h1 { font-size:48px; }.login-brand span { max-width:280px; font-size:14px; }.login-brand::before { width:90vw; height:90vw; right:-43vw; bottom:-59vw; }.login-panel { min-height:calc(100svh - 315px); padding:80px 7vw 60px; }.login-back { left:7vw; top:30px; } }

/* Conversion-focused admissions experience. */
.admissions-focus { position:relative; display:grid; grid-template-columns:.82fr 1.18fr; gap:7vw; align-items:center; min-height:calc(100svh - 88px); padding:72px 8vw; overflow:hidden; color:#fff; background:radial-gradient(circle at 18% 93%,#414298 0,#090947 40%,#050533 78%); }.admissions-focus::before { content:''; position:absolute; width:54vw; height:54vw; right:-22vw; top:-34vw; border:1px solid rgba(255,255,255,.15); border-radius:50%; box-shadow:0 0 0 60px rgba(255,255,255,.025),0 0 0 120px rgba(255,255,255,.018); }.admissions-intro { position:relative; z-index:1; }.admissions-intro h1 { margin:0 0 25px; font:600 clamp(52px,6.5vw,92px)/.86 'Playfair Display',serif; letter-spacing:-.075em; }.admissions-intro h1 strong { color:#f1bd36; font-family:'DM Sans',sans-serif; }.admissions-intro>p:not(.trainmar-kicker) { max-width:400px; margin:0; color:rgba(255,255,255,.78); font-size:18px; line-height:1.58; }.admissions-intro .trainmar-kicker { color:#f1bd36; }.admission-highlights { display:grid; gap:11px; margin-top:35px; }.admission-highlights span { display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.9); font-size:13px; }.admission-highlights i { display:grid; place-items:center; width:24px; height:24px; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:#f1bd36; font-style:normal; }.admissions-arrow-art { position:absolute; right:2vw; top:14%; display:grid; place-items:center; width:134px; height:134px; border:1px solid rgba(255,255,255,.2); border-radius:50% 50% 0 50%; color:#f1bd36; transform:rotate(-15deg); animation:admissions-art-float 5s ease-in-out infinite; }.admissions-arrow-art::before { content:'↗'; position:absolute; left:-34px; bottom:-44px; font:600 92px/.8 'Playfair Display',serif; color:#fb6100; transform:rotate(15deg); }.admissions-arrow-art b,.admissions-arrow-art span { position:relative; z-index:1; transform:rotate(15deg); }.admissions-arrow-art b { font:20px 'DM Mono',monospace; }.admissions-arrow-art span { margin-top:-64px; font:9px/1.4 'DM Mono',monospace; text-align:center; letter-spacing:.12em; }.admissions-form { position:relative; z-index:2; display:grid; gap:16px; max-width:590px; justify-self:end; width:100%; padding:46px clamp(28px,4vw,60px); border-radius:34px; color:#07073e; background:#fff; box-shadow:0 36px 70px rgba(0,0,0,.25); }.form-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; padding-bottom:17px; border-bottom:1px solid #e2e3e9; }.form-heading span { padding:8px 11px; border-radius:99px; color:#fff; background:#fb6100; font:10px 'DM Mono',monospace; letter-spacing:.1em; }.form-heading b { color:#6c6d7f; font-size:11px; }.admissions-form h2 { margin:9px 0 14px; font:600 clamp(34px,4vw,52px)/.92 'Playfair Display',serif; letter-spacing:-.06em; }.admissions-form label { color:#454762; font-size:11px; font-weight:700; }.admissions-form input,.admissions-form select { display:block; width:100%; margin-top:7px; padding:14px 0; border:0; border-bottom:1px solid #c7c8d2; outline:none; color:#07073e; background:transparent; font:15px 'DM Sans',sans-serif; transition:border-color .2s; }.admissions-form input:focus,.admissions-form select:focus { border-color:#fb6100; }.admissions-form .apply { justify-content:center; margin-top:10px; border:0; color:#fff; background:#07073e; cursor:pointer; }.admissions-form .apply:hover { background:#fb6100; }.admissions-form small { color:#77798c; font-size:10px; line-height:1.5; }.admissions-steps { display:grid; grid-template-columns:.78fr 1.22fr; gap:8vw; padding:100px 8vw; color:#07073e; background:#f5f5f3; }.admissions-steps h2 { margin:0; font:600 clamp(42px,5vw,72px)/.92 'Playfair Display',serif; letter-spacing:-.065em; }.admissions-steps h2 strong { font-family:'DM Sans',sans-serif; }.admissions-steps ol { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:0; padding:0; list-style:none; border-top:1px solid #ccced8; }.admissions-steps li { min-height:206px; display:flex; flex-direction:column; padding:22px 22px 22px 0; margin-right:22px; border-right:1px solid #ccced8; }.admissions-steps li:last-child { margin:0; border:0; }.admissions-steps li b { display:grid; place-items:center; width:37px; height:37px; border-radius:50%; color:#fff; background:#363171; font:11px 'DM Mono',monospace; }.admissions-steps li:nth-child(2) b { background:#037c77; }.admissions-steps li:nth-child(3) b { color:#07073e; background:#f1bd36; }.admissions-steps li strong { margin:34px 0 9px; font-size:17px; }.admissions-steps li span { color:#62647e; font-size:13px; line-height:1.5; }.admissions-help { display:flex; align-items:center; justify-content:space-between; gap:26px; padding:25px 8vw; color:#fff; background:#fb6100; }.admissions-help span { color:#07073e; font-weight:700; }.admissions-help a { display:flex; align-items:center; gap:17px; color:#fff; font-size:17px; font-weight:700; }.admissions-help b { font-size:25px; transition:transform .2s; }.admissions-help a:hover b { transform:translateX(7px); }
@keyframes admissions-art-float { 0%,100% { translate:0 0; } 50% { translate:0 -12px; } }
@media(max-width:760px){ .admissions-focus { grid-template-columns:1fr; gap:38px; min-height:auto; padding:65px 7vw 52px; }.admissions-intro h1 { font-size:56px; }.admissions-intro>p:not(.trainmar-kicker) { font-size:16px; }.admissions-arrow-art { right:-22px; top:18px; width:100px; height:100px; opacity:.7; }.admissions-form { justify-self:stretch; padding:30px 23px; border-radius:25px; }.admissions-steps { grid-template-columns:1fr; gap:35px; padding:70px 7vw; }.admissions-steps ol { grid-template-columns:1fr; }.admissions-steps li { min-height:auto; display:grid; grid-template-columns:48px 1fr; column-gap:14px; padding:18px 0; margin:0; border-right:0; border-bottom:1px solid #ccced8; }.admissions-steps li b { grid-row:span 2; }.admissions-steps li strong { margin:0; }.admissions-steps li span { grid-column:2; }.admissions-help { align-items:flex-start; flex-direction:column; padding:27px 7vw; gap:9px; }.admissions-help a { font-size:15px; } }

/* Keep the admissions decoration away from the headline. */
.admissions-arrow-art { right:-1vw; top:auto; bottom:3%; }
@media(max-width:760px){ .admissions-arrow-art { right:-22px; top:auto; bottom:3%; } }

/* Staggered slide-in reserved for the admissions message, never the form. */
.admissions-intro .trainmar-kicker { animation:admissions-copy-slide .72s .08s cubic-bezier(.16,1,.3,1) both; }
.admissions-intro h1 { animation:admissions-title-slide 1.25s .2s cubic-bezier(.16,1,.3,1) both; }
.admissions-intro>p:not(.trainmar-kicker) { animation:admissions-copy-slide .82s .66s cubic-bezier(.16,1,.3,1) both; }
.admissions-intro .admission-highlights { animation:admissions-copy-slide .85s .9s cubic-bezier(.16,1,.3,1) both; }
@keyframes admissions-title-slide { from { opacity:0; transform:translateX(-100px) skewX(-5deg); filter:blur(7px); } to { opacity:1; transform:translateX(0) skewX(0); filter:blur(0); } }
@keyframes admissions-copy-slide { from { opacity:0; transform:translateX(-42px); } to { opacity:1; transform:translateX(0); } }

/* Online learning: student-to-professional transition. */
.model-hero { position:relative; display:grid; grid-template-columns:.88fr 1.12fr; align-items:center; min-height:650px; padding:76px 8vw; overflow:hidden; color:#fff; background:radial-gradient(circle at 72% 22%,#45418d 0,#090947 41%,#050533 80%); }.model-hero>div:first-child { position:relative; z-index:2; }.model-hero h1 { margin:0 0 25px; font:600 clamp(54px,7vw,102px)/.88 'Playfair Display',serif; letter-spacing:-.075em; }.model-hero h1 strong { color:#f1bd36; font-family:'DM Sans',sans-serif; }.model-hero>div:first-child>p:not(.trainmar-kicker) { max-width:470px; margin:0 0 31px; color:rgba(255,255,255,.78); font-size:17px; line-height:1.6; }.model-hero .detail-cta { color:#fff; }.model-growth { position:relative; z-index:1; align-self:stretch; min-height:490px; }.model-growth::before,.model-growth::after { content:''; position:absolute; border:1px solid rgba(255,255,255,.18); border-radius:50%; pointer-events:none; }.model-growth::before { width:620px; height:620px; right:-25%; top:-14%; }.model-growth::after { width:360px; height:360px; right:3%; bottom:-17%; border-style:dashed; animation:model-orbit 17s linear infinite; }.model-growth img { position:absolute; z-index:2; right:-2%; bottom:-9%; width:min(52vw,720px); max-height:620px; object-fit:contain; object-position:right bottom; animation:model-growth-motion 6.5s cubic-bezier(.55,.05,.25,1) infinite; }.growth-path { position:absolute; z-index:1; right:17%; bottom:19%; width:260px; height:160px; border-right:2px solid #fb6100; border-bottom:2px solid #fb6100; border-radius:0 0 140px 0; transform:rotate(-19deg); opacity:.9; animation:growth-path-pulse 2.6s ease-in-out infinite; }.growth-path::after { content:'↗'; position:absolute; right:-25px; top:-34px; color:#fb6100; font:600 52px/.8 'Playfair Display',serif; transform:rotate(19deg); }.model-growth small { position:absolute; z-index:3; left:4%; bottom:14%; padding:11px 14px; border:1px solid rgba(255,255,255,.35); border-radius:15px; color:#fff; background:rgba(5,5,55,.45); backdrop-filter:blur(9px); font:10px/1.45 'DM Mono',monospace; letter-spacing:.12em; }.model-hero .trainmar-kicker { color:#f1bd36; }
@keyframes model-growth-motion { 0%,20% { transform:translate(0,0) scale(1); } 48% { transform:translate(-12px,-13px) scale(1.025); } 74%,100% { transform:translate(5px,-5px) scale(1.01); } }@keyframes model-orbit { to { transform:rotate(360deg); } }@keyframes growth-path-pulse { 0%,100% { opacity:.52; } 50% { opacity:1; } }
@media(max-width:760px){ .model-hero { grid-template-columns:1fr; min-height:760px; padding:65px 7vw 0; }.model-hero h1 { font-size:58px; }.model-growth { min-height:350px; margin-top:-15px; }.model-growth img { right:-8%; bottom:-9%; width:105%; max-height:430px; }.model-growth::before { width:410px; height:410px; right:-48%; top:-8%; }.model-growth::after { width:230px; height:230px; right:-8%; bottom:-20%; }.growth-path { right:20%; bottom:16%; width:165px; height:110px; }.model-growth small { left:0; bottom:12%; font-size:8px; } }

/* Expanded explanations for the online-learning model. */
.model-orientation { display:grid; grid-template-columns:1fr 1fr; min-height:700px; background:#f7f7f4; }.model-orientation-image { position:relative; min-height:700px; overflow:hidden; background:linear-gradient(180deg,#078c88,#063f6d); }.model-orientation-image::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,5,55,.72),transparent 48%); }.model-orientation-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center center; }.model-orientation-image strong { position:absolute; z-index:1; left:8vw; bottom:62px; max-width:530px; color:#fff; font:600 clamp(45px,5.1vw,78px)/.88 'Playfair Display',serif; letter-spacing:-.07em; }.model-orientation-copy { padding:84px 8vw 76px; color:#07073e; }.model-orientation-copy .trainmar-kicker { color:#fb6100; }.model-orientation-copy h2 { margin:22px 0 42px; font:600 clamp(48px,5.25vw,78px)/.88 'Playfair Display',serif; letter-spacing:-.075em; }.model-orientation-questions { border-top:1px solid #d6d7df; }.model-orientation-questions article { display:grid; grid-template-columns:54px 1fr; gap:15px; padding:24px 0; border-bottom:1px solid #d6d7df; }.model-orientation-questions b { color:#fb6100; font:12px 'DM Mono',monospace; letter-spacing:.08em; }.model-orientation-questions span { color:#62647c; font-size:15px; line-height:1.52; }.model-orientation-questions strong { display:block; margin-bottom:6px; color:#55576f; font-size:18px; }.model-orientation-copy>a { display:inline-flex; align-items:center; justify-content:space-between; gap:56px; margin-top:38px; padding:16px 21px 16px 25px; border-radius:99px; color:#fff; background:#080842; font-size:14px; font-weight:700; transition:transform .2s,background .2s; }.model-orientation-copy>a:hover { transform:translateY(-3px); background:#fb6100; }.model-orientation-copy>a b { font-size:22px; }
@media(max-width:760px){ .model-orientation { grid-template-columns:1fr; }.model-orientation-image { min-height:440px; }.model-orientation-image img { object-position:center top; }.model-orientation-image strong { left:7vw; bottom:35px; font-size:47px; }.model-orientation-copy { padding:64px 7vw; }.model-orientation-copy h2 { font-size:55px; }.model-orientation-questions article { grid-template-columns:41px 1fr; gap:12px; padding:20px 0; }.model-orientation-questions strong { font-size:16px; }.model-orientation-questions span { font-size:14px; }.model-orientation-copy>a { gap:35px; margin-top:30px; font-size:13px; } }

.model-benefits { background:#f5f5f3; }.model-benefits article { min-height:600px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:600px; align-items:stretch; overflow:hidden; color:#fff; }.model-benefits article.teal { color:#fff; background:#078c88; }.model-benefits article.orange { background:#fb6100; }.model-benefits article.purple { background:#363171; }.model-benefit-copy { min-width:0; min-height:600px; box-sizing:border-box; position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center; padding:90px 10vw; }.model-benefits article:nth-child(even) .model-benefit-copy { order:2; }.model-benefit-copy>span { display:grid; place-items:center; width:49px; height:49px; margin-bottom:32px; border:1px solid rgba(255,255,255,.55); border-radius:50%; background:rgba(255,255,255,.12); font:12px 'DM Mono',monospace; }.model-benefit-copy h2 { max-width:500px; margin:0 0 23px; font:600 clamp(48px,5.5vw,82px)/.9 'Playfair Display',serif; letter-spacing:-.07em; }.model-benefit-copy p { max-width:460px; margin:0 0 35px; color:rgba(255,255,255,.85); font-size:18px; line-height:1.6; }.model-benefit-copy a { display:inline-flex; align-items:center; gap:15px; width:max-content; padding:13px 19px; border:1px solid rgba(255,255,255,.65); border-radius:99px; color:#fff; font-size:14px; font-weight:700; transition:transform .2s,background .2s,color .2s; }.model-benefit-copy a b { font-size:21px; }.model-benefit-copy a:hover { transform:translateY(-3px); color:#07073e; background:#fff; }.model-benefit-image { min-width:0; min-height:600px; height:600px; position:relative; overflow:hidden; }.model-benefits article:nth-child(even) .model-benefit-image { order:1; }.model-benefit-image::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,5,55,.24),transparent 60%),linear-gradient(0deg,rgba(5,5,55,.42),transparent 50%); }.model-benefit-image img { width:100%; height:100%; display:block; object-fit:cover; animation:model-benefit-image 8s ease-in-out infinite; }.model-benefits article:nth-child(2) .model-benefit-image img { animation-delay:-2.5s; }.model-benefits article:nth-child(3) .model-benefit-image img { animation-delay:-5s; }.model-benefit-image i { position:absolute; z-index:2; right:9%; bottom:10%; display:grid; place-items:center; width:76px; height:76px; border:1px solid rgba(255,255,255,.58); border-radius:50%; color:#fff; background:rgba(5,5,55,.32); font:34px/1 'DM Sans',sans-serif; backdrop-filter:blur(8px); animation:model-benefit-icon 3.5s ease-in-out infinite; }.model-benefits article:nth-child(even) .model-benefit-image i { left:9%; right:auto; }.model-benefit-copy::after { content:''; position:absolute; z-index:-1; width:290px; height:290px; right:-150px; top:-80px; border:1px solid rgba(255,255,255,.18); border-radius:50%; box-shadow:0 0 0 45px rgba(255,255,255,.035),0 0 0 90px rgba(255,255,255,.025); }.model-benefits article:nth-child(even) .model-benefit-copy::after { right:auto; left:-150px; border-radius:38px; transform:rotate(26deg); }.model-benefits article:hover .model-benefit-image img { animation-play-state:paused; transform:scale(1.1); }.model-benefits article:hover .model-benefit-image i { transform:scale(1.14) rotate(-9deg); }
@keyframes model-benefit-image { 0%,18% { transform:scale(1.08) translate(2%,1%); } 52% { transform:scale(1.02) translate(-1%,0); } 78%,100% { transform:scale(1.07) translate(1%,-1%); } }@keyframes model-benefit-icon { 0%,100% { translate:0 0; } 50% { translate:0 -9px; } }
@media(max-width:760px){ .model-benefits article,.model-benefits article:nth-child(even) { grid-template-columns:1fr; grid-template-rows:auto; min-height:0; }.model-benefit-copy,.model-benefits article:nth-child(even) .model-benefit-copy { order:2; min-height:0; padding:62px 7vw; }.model-benefit-image,.model-benefits article:nth-child(even) .model-benefit-image { order:1; min-height:310px; height:310px; }.model-benefit-copy h2 { font-size:50px; }.model-benefit-copy p { font-size:16px; }.model-benefit-image i,.model-benefits article:nth-child(even) .model-benefit-image i { right:7vw; left:auto; bottom:8%; } }

/* Preserve faces in the editorial crops without a tight entry-frame zoom. */
.model-benefits article.orange .model-benefit-image img,.model-benefits article.purple .model-benefit-image img { object-position:center center; animation:none; transform:scale(1); }
.model-benefits article.orange .model-benefit-image,.model-benefits article.purple .model-benefit-image { background:#080842; }
.model-benefits article.orange .model-benefit-image img { object-position:58% center; }
.model-benefits article.purple .model-benefit-image img { object-position:46% center; }
.model-benefits article.orange:hover .model-benefit-image img,.model-benefits article.purple:hover .model-benefit-image img { transform:scale(1.035); }
@media(max-width:760px){ .model-benefits article.orange .model-benefit-image img { object-position:56% center; }.model-benefits article.purple .model-benefit-image img { object-position:45% center; } }

.model-growth small { left:31%; right:auto; top:7%; bottom:auto; padding:0; border:0; border-radius:0; color:#f1bd36; background:transparent; box-shadow:none; font-size:16px; line-height:1.45; letter-spacing:.17em; text-shadow:0 4px 18px rgba(5,5,55,.75); }
@media(max-width:760px){ .model-growth small { left:13%; right:auto; top:3%; bottom:auto; padding:0; font-size:11px; } }

/* Transition label, aligned with the open area above the figures. */
.model-growth small { z-index:4; left:7%; right:auto; top:9%; bottom:auto; padding:0; border:0; border-radius:0; color:#f1bd36; background:transparent; box-shadow:none; font-size:16px; line-height:1.45; letter-spacing:.17em; text-shadow:0 4px 18px rgba(5,5,55,.75); }
@media(max-width:760px){ .model-growth small { left:8%; top:5%; right:auto; bottom:auto; padding:0; font-size:11px; } }

/* One clean arrow that travels to the active admissions card. */
.admission-motion .admission-arrow {
  z-index:6;
  display:block;
  width:auto;
  height:auto;
  color:#fff;
  font:600 68px/.8 'Playfair Display',serif;
  line-height:.8;
  animation:none !important;
  translate:0 0;
  transition:left .42s cubic-bezier(.16,1,.3,1), top .42s cubic-bezier(.16,1,.3,1), transform .42s cubic-bezier(.16,1,.3,1), color .25s ease;
}
.admission-motion .admission-arrow.arrow-explora { left:17%; top:12%; transform:rotate(-24deg) scale(1.1); color:#f1bd36; }
.admission-motion .admission-arrow.arrow-conoce { left:48%; top:8%; transform:rotate(-10deg) scale(1.25); color:#fff; }
.admission-motion .admission-arrow.arrow-avanza { left:69%; top:58%; transform:rotate(5deg) scale(1.08); color:#f1bd36; }
@media(max-width:760px){
  .admission-motion .admission-arrow { font-size:55px; }
  .admission-motion .admission-arrow.arrow-explora { left:13%; top:14%; }
  .admission-motion .admission-arrow.arrow-conoce { left:47%; top:6%; }
  .admission-motion .admission-arrow.arrow-avanza { left:67%; top:60%; }
}

/* The moving beacon is deliberately independent from the former arrow. */
.admission-beacon {
  position:absolute;
  z-index:7;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:2px solid #fff;
  border-radius:50%;
  background:rgba(5,5,59,.34);
  box-shadow:0 0 0 8px rgba(255,255,255,.12), 0 10px 23px rgba(5,5,59,.24);
  pointer-events:none;
  transition:left .5s cubic-bezier(.16,1,.3,1), top .5s cubic-bezier(.16,1,.3,1), transform .5s cubic-bezier(.16,1,.3,1), background .25s ease;
}
.admission-beacon span { width:10px; height:10px; border-radius:50%; background:#f1bd36; box-shadow:0 0 0 5px rgba(241,189,54,.22); animation:admission-beacon-pulse 1.8s ease-in-out infinite; }
.admission-beacon::after { content:''; position:absolute; bottom:-12px; left:50%; width:0; height:0; border:7px solid transparent; border-top-color:#fff; transform:translateX(-50%); }
.admission-beacon.beacon-explora { left:14%; top:14%; transform:scale(1.04); background:#fb6100; }
.admission-beacon.beacon-conoce { left:47%; top:9%; transform:scale(1.17); background:#037c77; }
.admission-beacon.beacon-avanza { left:76%; top:57%; transform:scale(1); background:#363171; }
@keyframes admission-beacon-pulse { 0%,100% { transform:scale(.85); } 50% { transform:scale(1.25); } }
@media(max-width:760px){
  .admission-beacon { width:32px; height:32px; }
  .admission-beacon.beacon-explora { left:10%; top:15%; }
  .admission-beacon.beacon-conoce { left:46%; top:8%; }
  .admission-beacon.beacon-avanza { left:75%; top:59%; }
}

/* A more expressive three-step admissions route. */
.admission-route { position:relative; isolation:isolate; overflow:hidden; background:linear-gradient(125deg,#f1bd36 0%,#f2b60c 58%,#ffb000 100%); }
.admission-route > div { position:relative; z-index:2; }
.route-intro { max-width:330px; margin:0; color:rgba(7,7,62,.72); line-height:1.55; }
.route-orbit { position:absolute; z-index:1; display:block; pointer-events:none; border:1px solid rgba(7,7,62,.18); border-radius:50%; }
.route-orbit-one { width:410px; height:410px; left:-235px; bottom:-220px; animation:route-orbit-turn 21s linear infinite; }
.route-orbit-two { width:250px; height:250px; right:-105px; top:-118px; border-style:dashed; animation:route-orbit-turn 15s linear reverse infinite; }
.route-steps a { position:relative; overflow:hidden; box-shadow:0 16px 26px rgba(7,7,62,.16); }
.route-steps a::before { content:''; position:absolute; width:150px; height:150px; right:-52px; top:-54px; border:1px solid rgba(255,255,255,.22); border-radius:50%; box-shadow:0 0 0 30px rgba(255,255,255,.05),0 0 0 60px rgba(255,255,255,.035); transition:transform .45s cubic-bezier(.16,1,.3,1); }
.route-steps a::after { content:''; position:absolute; left:-36px; bottom:-48px; width:130px; height:130px; border-radius:42px; background:rgba(255,255,255,.06); transform:rotate(25deg); transition:transform .45s cubic-bezier(.16,1,.3,1); }
.route-steps a:hover::before { transform:scale(1.25) translate(-20px,25px); }.route-steps a:hover::after { transform:rotate(48deg) translate(12px,-16px); }
.route-step-number { position:relative; z-index:1; display:grid; place-items:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.54); border-radius:50%; color:#fff!important; background:rgba(255,255,255,.12); font:12px 'DM Mono',monospace!important; letter-spacing:.08em; box-shadow:0 7px 16px rgba(0,0,0,.11); }
.route-steps a strong,.route-steps a span,.route-steps a i { position:relative; z-index:1; }
.route-steps a:hover .route-step-number { color:#07073e!important; border-color:#07073e; background:#fff; }
@keyframes route-orbit-turn { to { transform:rotate(360deg); } }
@media(max-width:760px){ .route-intro { margin-bottom:5px; }.route-orbit-one { width:300px; height:300px; left:-180px; bottom:-175px; }.route-orbit-two { width:180px; height:180px; right:-80px; top:-90px; }.route-step-number { width:38px; height:38px; font-size:10px!important; } }

/* Long-form academic pages: clarity first, then texture and motion. */
.program-fit { padding:105px 8vw; color:#07073e; background:#f5f5f3; }.program-section-intro { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:end; margin-bottom:54px; }.program-section-intro h2 { max-width:600px; margin:0; font:600 clamp(48px,5.8vw,86px)/.9 'Playfair Display',serif; letter-spacing:-.07em; }.program-section-intro>p:last-child { max-width:440px; margin:0 0 6px; color:#64667d; font-size:16px; line-height:1.65; }.program-fit-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }.program-fit-grid article { position:relative; min-height:265px; padding:30px 25px; overflow:hidden; border-radius:24px; color:#fff; background:#07073e; transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s ease; }.program-fit-grid article::before { content:''; position:absolute; width:180px; height:180px; right:-71px; top:-67px; border:1px solid rgba(255,255,255,.2); border-radius:50%; box-shadow:0 0 0 28px rgba(255,255,255,.035),0 0 0 56px rgba(255,255,255,.02); transition:transform .55s cubic-bezier(.16,1,.3,1); }.program-fit-grid article:nth-child(2) { background:#363171; }.program-fit-grid article:nth-child(3) { background:#078c88; }.program-fit-grid article:nth-child(4) { color:#07073e; background:#f1bd36; }.program-fit-grid article:nth-child(4)::before { border-color:rgba(7,7,62,.22); box-shadow:0 0 0 28px rgba(7,7,62,.05),0 0 0 56px rgba(7,7,62,.025); }.program-fit-grid article:hover { z-index:1; transform:translateY(-12px); box-shadow:0 22px 38px rgba(7,7,62,.19); }.program-fit-grid article:hover::before { transform:scale(1.3) translate(-20px,18px); }.program-fit-grid article b { position:relative; z-index:1; display:grid; place-items:center; width:38px; height:38px; margin-bottom:57px; border:1px solid rgba(255,255,255,.42); border-radius:50%; font:11px 'DM Mono',monospace; }.program-fit-grid article:nth-child(4) b { border-color:rgba(7,7,62,.38); }.program-fit-grid h3,.program-fit-grid p { position:relative; z-index:1; }.program-fit-grid h3 { margin:0 0 13px; font-size:17px; line-height:1.08; }.program-fit-grid p { margin:0; color:rgba(255,255,255,.78); font-size:13px; line-height:1.55; }.program-fit-grid article:nth-child(4) p { color:rgba(7,7,62,.74); }
.program-experience { display:grid; grid-template-columns:.78fr 1.22fr; gap:7vw; align-items:center; padding:110px 8vw; overflow:hidden; color:#fff; background:#07073e; }.program-experience.teal { background:#078c88; }.program-experience.gold { color:#07073e; background:#f1bd36; }.program-experience.purple { background:#363171; }.program-experience-copy h2 { margin:0 0 23px; font:600 clamp(49px,5.5vw,82px)/.9 'Playfair Display',serif; letter-spacing:-.07em; }.program-experience-copy>p:not(.trainmar-kicker) { max-width:410px; margin:0 0 34px; color:rgba(255,255,255,.8); font-size:16px; line-height:1.6; }.program-experience.gold .program-experience-copy>p:not(.trainmar-kicker) { color:rgba(7,7,62,.75); }.program-learning-list { display:grid; gap:10px; }.program-learning-list span { display:flex; gap:14px; align-items:center; padding:11px 0; border-bottom:1px solid rgba(255,255,255,.22); font-size:13px; font-weight:600; }.program-experience.gold .program-learning-list span { border-color:rgba(7,7,62,.25); }.program-learning-list b { color:#f1bd36; font:10px 'DM Mono',monospace; letter-spacing:.1em; }.program-experience.gold .program-learning-list b { color:#fb6100; }.program-video-grid { display:grid; grid-template-columns:1.26fr .74fr; gap:17px; align-items:stretch; }.program-video-card { position:relative; min-height:455px; overflow:hidden; border-radius:28px; isolation:isolate; }.program-video-photo { background:#050533; }.program-video-photo::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(3,3,45,.86),transparent 64%); }.program-video-photo img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .85s cubic-bezier(.16,1,.3,1); }.program-video-photo:hover img { transform:scale(1.08); }.program-video-photo div { position:absolute; z-index:1; inset:auto 27px 26px; display:grid; gap:11px; }.program-video-card i { display:grid; place-items:center; width:56px; height:56px; border:1px solid rgba(255,255,255,.54); border-radius:50%; color:#fff; background:rgba(255,255,255,.13); font:18px/1 'DM Sans',sans-serif; font-style:normal; backdrop-filter:blur(8px); transition:transform .25s,background .25s,color .25s; }.program-video-card:hover i { transform:scale(1.1); color:#07073e; background:#fff; }.program-video-card span { color:rgba(255,255,255,.82); font:9px 'DM Mono',monospace; letter-spacing:.12em; }.program-video-card strong { max-width:335px; color:#fff; font:600 clamp(24px,2.5vw,37px)/.96 'Playfair Display',serif; letter-spacing:-.045em; }.program-video-detail { display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; padding:28px; background:linear-gradient(150deg,#fb6100,#c73e08 63%,#07073e 145%); }.program-video-detail::before { content:''; position:absolute; z-index:-1; width:290px; height:290px; right:-135px; top:-52px; border:1px solid rgba(255,255,255,.26); border-radius:50%; box-shadow:0 0 0 34px rgba(255,255,255,.055),0 0 0 68px rgba(255,255,255,.025); }.program-video-detail::after { content:'✦  ○  +'; position:absolute; z-index:-1; top:25px; left:22px; color:rgba(255,255,255,.24); font:35px 'DM Mono',monospace; letter-spacing:.13em; }.program-video-detail>i { margin-bottom:auto; }.program-video-detail span { margin-bottom:12px; }.program-video-detail p { margin:15px 0 0; color:rgba(255,255,255,.76); font-size:12px; line-height:1.5; }.program-experience.teal .program-video-detail { background:linear-gradient(150deg,#064d57,#037c77 62%,#07073e 142%); }.program-experience.gold .program-video-detail { background:linear-gradient(150deg,#363171,#07073e 76%); }.program-experience.purple .program-video-detail { background:linear-gradient(150deg,#f1bd36,#fb6100 64%,#07073e 144%); }.program-plan-cta { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:end; padding:100px 8vw; color:#07073e; background:#fff; }.program-plan-cta h2 { margin:0; font:600 clamp(48px,5.5vw,80px)/.9 'Playfair Display',serif; letter-spacing:-.07em; }.program-plan-cta>div:last-child { max-width:450px; }.program-plan-cta p { margin:0 0 27px; color:#5b5d76; font-size:16px; line-height:1.65; }.program-plan-cta .apply { color:#fff; background:#07073e; }
.program-video-preview { background:linear-gradient(140deg,#151451 0%,#07073e 58%,#fb6100 160%); }.program-video-preview::before { content:"01 / 01"; position:absolute; left:27px; top:27px; color:rgba(255,255,255,.5); font:11px 'DM Mono',monospace; letter-spacing:.12em; }.program-video-preview::after { content:""; position:absolute; z-index:-1; width:380px; height:380px; right:-104px; top:-112px; border:1px solid rgba(255,255,255,.26); border-radius:50% 50% 0 50%; box-shadow:0 0 0 40px rgba(255,255,255,.045),0 0 0 80px rgba(255,255,255,.025); }.program-video-preview div::before { content:"Trainmar"; position:absolute; right:0; bottom:130px; color:rgba(255,255,255,.09); font:600 clamp(52px,6vw,92px)/.8 'Playfair Display',serif; letter-spacing:-.08em; }.program-experience.teal .program-video-preview { background:linear-gradient(140deg,#043f4b 0%,#037c77 62%,#07073e 155%); }.program-experience.gold .program-video-preview { background:linear-gradient(140deg,#363171 0%,#07073e 68%,#fb6100 160%); }.program-experience.purple .program-video-preview { background:linear-gradient(140deg,#221d64 0%,#363171 62%,#07073e 155%); }
@media(max-width:1000px){ .program-fit-grid { grid-template-columns:repeat(2,1fr); }.program-fit-grid article { min-height:230px; }.program-video-grid { grid-template-columns:1fr .72fr; } }
@media(max-width:760px){ .program-fit { padding:72px 7vw; }.program-section-intro,.program-experience,.program-plan-cta { grid-template-columns:1fr; gap:32px; }.program-section-intro { margin-bottom:34px; }.program-section-intro h2,.program-experience-copy h2,.program-plan-cta h2 { font-size:50px; }.program-fit-grid { grid-template-columns:1fr; gap:12px; }.program-fit-grid article { min-height:205px; padding:25px; }.program-fit-grid article b { margin-bottom:32px; }.program-experience { padding:72px 7vw; }.program-video-grid { grid-template-columns:1fr; }.program-video-card { min-height:360px; border-radius:23px; }.program-video-detail { min-height:270px; }.program-video-detail>i { margin-bottom:60px; }.program-plan-cta { padding:72px 7vw; }.program-plan-cta p { font-size:15px; } }

/* Program heroes: each degree begins with its own visual story. */
.enrollment-popup-backdrop { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:26px; background:rgba(5,5,46,.68); backdrop-filter:blur(9px); animation:popup-backdrop-in .35s ease both; }.enrollment-popup { position:relative; display:grid; grid-template-columns:.72fr 1.28fr; width:min(940px,100%); min-height:520px; overflow:hidden; border-radius:31px; color:#07073e; background:#f7f6f1; box-shadow:0 30px 80px rgba(0,0,0,.35); animation:popup-card-in .5s cubic-bezier(.16,1,.3,1) both; }.enrollment-popup-art { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:100%; padding:42px; overflow:hidden; color:#07073e; background:linear-gradient(150deg,#fb6100 0%,#f88823 58%,#f1bd36 150%); }.enrollment-popup-art::before,.enrollment-popup-art::after { content:""; position:absolute; border:1px solid rgba(7,7,62,.25); border-radius:50%; }.enrollment-popup-art::before { width:410px; height:410px; left:-218px; top:-128px; box-shadow:0 0 0 40px rgba(255,255,255,.12),0 0 0 80px rgba(255,255,255,.07); }.enrollment-popup-art::after { width:235px; height:235px; right:-123px; bottom:53px; border-radius:50% 50% 0 50%; transform:rotate(31deg); }.enrollment-popup-art span,.enrollment-popup-art i { position:relative; z-index:1; }.enrollment-popup-art span { font:600 clamp(105px,15vw,184px)/.72 'Playfair Display',serif; letter-spacing:-.12em; }.enrollment-popup-art i { margin:15px 0 0 10px; font:12px 'DM Mono',monospace; letter-spacing:.34em; font-style:normal; }.enrollment-popup-copy { padding:48px clamp(30px,5vw,68px); }.enrollment-popup-copy .trainmar-kicker { margin-bottom:18px; color:#fb6100; }.enrollment-popup-copy h2 { margin:0 0 16px; font:600 clamp(39px,5vw,63px)/.89 'Playfair Display',serif; letter-spacing:-.07em; }.enrollment-popup-copy h2 em { color:#fb6100; font-style:normal; }.enrollment-popup-copy>p { max-width:425px; margin:0 0 25px; color:#5a5c72; font-size:15px; line-height:1.55; }.enrollment-popup form { display:grid; grid-template-columns:1fr 1fr; gap:13px 16px; }.enrollment-popup label { color:#4a4d69; font-size:11px; font-weight:700; }.enrollment-popup input,.enrollment-popup select { display:block; width:100%; margin-top:6px; padding:11px 0; border:0; border-bottom:1px solid #c7c8d2; outline:0; color:#07073e; background:transparent; font:14px 'DM Sans',sans-serif; }.enrollment-popup select { cursor:pointer; }.enrollment-popup input:focus,.enrollment-popup select:focus { border-color:#fb6100; }.enrollment-popup label:nth-child(3),.enrollment-popup .apply { grid-column:1/-1; }.enrollment-popup .apply { justify-content:center; margin-top:5px; border:0; color:#fff; background:#07073e; cursor:pointer; }.enrollment-popup .apply:hover { background:#fb6100; }.enrollment-popup small { display:block; margin-top:15px; color:#77798c; font-size:10px; line-height:1.45; }.enrollment-popup-close { position:absolute; z-index:3; top:17px; right:19px; display:grid; place-items:center; width:34px; height:34px; border:1px solid rgba(7,7,62,.14); border-radius:50%; color:#07073e; background:rgba(255,255,255,.68); font-size:25px; line-height:1; cursor:pointer; transition:transform .2s,background .2s; }.enrollment-popup-close:hover,.enrollment-popup-close:focus-visible { color:#fff; background:#07073e; transform:rotate(90deg); }@keyframes popup-backdrop-in { from { opacity:0; } to { opacity:1; } }@keyframes popup-card-in { from { opacity:0; transform:translateY(24px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
@media(max-width:760px){ .enrollment-popup-backdrop { align-items:end; padding:12px; }.enrollment-popup { grid-template-columns:1fr; min-height:0; max-height:calc(100svh - 24px); overflow:auto; border-radius:26px; }.enrollment-popup-art { min-height:150px; padding:27px 31px; }.enrollment-popup-art span { font-size:102px; }.enrollment-popup-art i { margin-top:8px; }.enrollment-popup-art::before { width:260px; height:260px; left:-154px; top:-95px; }.enrollment-popup-art::after { width:160px; height:160px; right:-80px; bottom:-71px; }.enrollment-popup-copy { padding:28px 26px 30px; }.enrollment-popup-copy h2 { font-size:42px; }.enrollment-popup-copy>p { font-size:14px; margin-bottom:18px; }.enrollment-popup form { grid-template-columns:1fr; gap:12px; }.enrollment-popup label:nth-child(3),.enrollment-popup .apply { grid-column:auto; } }
.inner-hero-with-image { position:relative; isolation:isolate; min-height:clamp(520px,68vh,720px); display:flex; align-items:flex-end; overflow:hidden; padding:0; background:#07073e; }
.program-hero-image { position:absolute; z-index:-2; inset:-8% 0 -14%; overflow:hidden; }
.program-hero-image img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(1.07) contrast(1.04); }
.inner-hero-with-image::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(5,5,54,.93) 0%,rgba(5,5,54,.72) 38%,rgba(5,5,54,.16) 73%,rgba(5,5,54,.22) 100%),linear-gradient(0deg,rgba(5,5,54,.55),transparent 50%); }
.inner-hero-with-image::after { content:""; position:absolute; z-index:-1; width:420px; height:420px; right:-118px; top:-206px; border:1px solid rgba(255,255,255,.35); border-radius:42% 58% 62% 38%; box-shadow:0 0 0 46px rgba(255,255,255,.05),0 0 0 92px rgba(255,255,255,.025); transform:rotate(18deg); }
.inner-hero-copy { width:100%; padding:105px 8vw 96px; }
.inner-hero-with-image .inner-hero-copy { max-width:850px; }
.inner-hero-with-image .trainmar-kicker { color:#f1bd36; }
.inner-hero-with-image h1 { max-width:760px; margin:0 0 25px; text-wrap:balance; }
.inner-hero-with-image .inner-hero-copy>p:last-child { margin:0; max-width:500px; }
.program-hero-orange::before { background:linear-gradient(90deg,rgba(67,19,0,.94) 0%,rgba(104,33,1,.77) 40%,rgba(88,24,0,.18) 75%,rgba(46,12,0,.24) 100%),linear-gradient(0deg,rgba(67,19,0,.5),transparent 50%); }.program-hero-orange .trainmar-kicker { color:#ffd064; }.program-hero-orange::after { border-radius:50% 50% 0 50%; }
.program-hero-teal::before { background:linear-gradient(90deg,rgba(0,54,56,.94) 0%,rgba(0,82,82,.76) 40%,rgba(0,77,78,.17) 75%,rgba(0,40,46,.3) 100%),linear-gradient(0deg,rgba(0,47,49,.5),transparent 50%); }.program-hero-teal::after { border-radius:20% 50% 20% 50%; transform:rotate(45deg); }
.program-hero-gold { color:#07073e; }.program-hero-gold::before { background:linear-gradient(90deg,rgba(245,190,47,.95) 0%,rgba(246,192,48,.78) 40%,rgba(110,78,6,.18) 76%,rgba(63,42,0,.25) 100%),linear-gradient(0deg,rgba(245,190,47,.32),transparent 50%); }.program-hero-gold .inner-hero-copy>p:last-child { color:rgba(7,7,62,.82); }.program-hero-gold .trainmar-kicker { color:#363171; }.program-hero-gold::after { border-color:rgba(7,7,62,.28); box-shadow:0 0 0 46px rgba(7,7,62,.05),0 0 0 92px rgba(7,7,62,.025); }
.program-hero-purple::before { background:linear-gradient(90deg,rgba(31,23,83,.95) 0%,rgba(54,49,113,.76) 42%,rgba(36,26,91,.19) 75%,rgba(19,13,55,.28) 100%),linear-gradient(0deg,rgba(26,19,74,.52),transparent 50%); }.program-hero-purple::after { border-radius:50% 12% 50% 12%; }
@media(max-width:760px){ .inner-hero-with-image { min-height:560px; align-items:flex-end; }.program-hero-image { inset:-4% -54% 0 -24%; }.inner-hero-with-image::before { background:linear-gradient(0deg,rgba(5,5,54,.94) 0%,rgba(5,5,54,.72) 48%,rgba(5,5,54,.14) 100%); }.program-hero-orange::before { background:linear-gradient(0deg,rgba(67,19,0,.94) 0%,rgba(104,33,1,.72) 48%,rgba(88,24,0,.13) 100%); }.program-hero-teal::before { background:linear-gradient(0deg,rgba(0,54,56,.94) 0%,rgba(0,82,82,.72) 48%,rgba(0,77,78,.13) 100%); }.program-hero-gold::before { background:linear-gradient(0deg,rgba(245,190,47,.95) 0%,rgba(246,192,48,.7) 48%,rgba(110,78,6,.1) 100%); }.program-hero-purple::before { background:linear-gradient(0deg,rgba(31,23,83,.95) 0%,rgba(54,49,113,.72) 48%,rgba(36,26,91,.13) 100%); }.inner-hero-copy { padding:80px 7vw 64px; }.inner-hero-with-image h1 { font-size:clamp(49px,13vw,72px); }.inner-hero-with-image::after { width:280px; height:280px; right:-125px; top:-124px; } }

/* Photography replaces the solid-color enrollment panel. */
.enrollment-popup-art { color:#fff; background:#07073e; }.enrollment-popup-art img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }.enrollment-popup-art::before { z-index:1; border-color:rgba(255,255,255,.3); box-shadow:0 0 0 40px rgba(255,255,255,.08),0 0 0 80px rgba(255,255,255,.04); }.enrollment-popup-art::after { z-index:1; inset:auto 0 0; width:auto; height:58%; border:0; border-radius:0; background:linear-gradient(0deg,rgba(4,4,42,.9),transparent); transform:none; }.enrollment-popup-art span,.enrollment-popup-art i,.enrollment-popup-art b { position:relative; z-index:2; }.enrollment-popup-art span { text-shadow:0 4px 18px rgba(0,0,0,.28); }.enrollment-popup-art i { color:#f1bd36; }.enrollment-popup-art b { align-self:flex-start; margin-top:29px; padding:9px 12px; border:1px solid rgba(255,255,255,.35); border-radius:99px; background:rgba(7,7,62,.25); font:9px/1.35 'DM Mono',monospace; letter-spacing:.11em; backdrop-filter:blur(8px); }
@media(max-width:760px){ .enrollment-popup-art::after { width:auto; height:62%; right:0; bottom:0; }.enrollment-popup-art b { margin-top:15px; } }

/* Keep the start-date label outside the photo so the student remains visible. */
.enrollment-popup-art { display:grid; grid-template-rows:auto minmax(0,1fr); padding:0; }.enrollment-popup-date { display:flex; align-items:flex-end; gap:12px; min-height:150px; padding:27px 34px 20px; color:#07073e; background:#f1bd36; }.enrollment-popup-date span,.enrollment-popup-date i { position:static; z-index:auto; }.enrollment-popup-date span { font:600 96px/.72 'Playfair Display',serif; letter-spacing:-.12em; text-shadow:none; }.enrollment-popup-date i { padding-bottom:8px; margin:0; color:#07073e; font:11px 'DM Mono',monospace; letter-spacing:.3em; font-style:normal; }.enrollment-popup-photo { position:relative; min-height:0; overflow:hidden; }.enrollment-popup-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 45%; }.enrollment-popup-photo::after { content:""; position:absolute; inset:auto 0 0; height:58%; background:linear-gradient(0deg,rgba(4,4,42,.92),transparent); }.enrollment-popup-photo b { position:absolute; z-index:2; left:27px; bottom:25px; margin:0; padding:9px 12px; border:1px solid rgba(255,255,255,.35); border-radius:99px; color:#fff; background:rgba(7,7,62,.42); font:9px/1.35 'DM Mono',monospace; letter-spacing:.11em; backdrop-filter:blur(8px); }.enrollment-popup-art::before,.enrollment-popup-art::after { display:none; }
@media(max-width:760px){ .enrollment-popup-art { display:grid; grid-template-rows:86px 150px; min-height:236px; padding:0; }.enrollment-popup-date { min-height:86px; padding:16px 25px 12px; gap:9px; }.enrollment-popup-date span { font-size:64px; }.enrollment-popup-date i { padding-bottom:4px; font-size:9px; }.enrollment-popup-photo b { left:17px; bottom:15px; } }

/* Full-bleed photograph with a quiet date overlay; the offer owns the copy panel. */
.enrollment-popup-art { display:block; min-height:100%; padding:0; background:#07073e; }.enrollment-popup-date { position:absolute; z-index:3; top:28px; left:28px; display:flex; align-items:flex-end; gap:10px; min-height:auto; padding:0; color:#fff; background:transparent; }.enrollment-popup-date span { font-size:82px; color:#fff; text-shadow:0 4px 17px rgba(0,0,0,.38); }.enrollment-popup-date i { padding-bottom:6px; color:#f1bd36; font-size:10px; text-shadow:0 2px 7px rgba(0,0,0,.45); }.enrollment-popup-photo { position:absolute; inset:0; overflow:hidden; }.enrollment-popup-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }.enrollment-popup-photo::after { content:""; position:absolute; inset:0; height:auto; background:linear-gradient(180deg,rgba(4,4,42,.4),transparent 42%,rgba(4,4,42,.18)); }.enrollment-discount { position:relative; display:grid; grid-template-columns:auto 1fr; align-items:center; column-gap:6px; margin:0 0 18px!important; padding:12px 15px 12px 17px; overflow:hidden; border-radius:14px; color:#07073e!important; background:#f1bd36; box-shadow:0 12px 25px rgba(241,189,54,.28); font:10px 'DM Mono',monospace!important; letter-spacing:.06em; animation:discount-pulse 2.8s ease-in-out infinite; }.enrollment-discount::before { content:"✦"; grid-row:span 2; color:#fb6100; font-size:22px; }.enrollment-discount strong { font:700 19px/.95 'DM Sans',sans-serif; letter-spacing:-.04em; }.enrollment-discount span { grid-column:2; margin-top:4px; color:rgba(7,7,62,.72); font:10px 'DM Sans',sans-serif; letter-spacing:0; }.enrollment-popup-copy h2 { margin-top:0; }@keyframes discount-pulse { 0%,100% { transform:translateY(0); box-shadow:0 12px 25px rgba(241,189,54,.28); } 50% { transform:translateY(-4px); box-shadow:0 18px 34px rgba(241,189,54,.45); } }
.enrollment-popup select { padding:12px 42px 12px 15px; border:1px solid #dedfe6; border-radius:14px; background-color:#f4f4f1; transition:border-color .2s,box-shadow .2s,background .2s; }.enrollment-popup select:focus { border-color:#fb6100; background:#fff; box-shadow:0 0 0 3px rgba(251,97,0,.12); }
@media(max-width:760px){ .enrollment-popup-art { display:block; min-height:190px; }.enrollment-popup-date { top:18px; left:19px; }.enrollment-popup-date span { font-size:58px; }.enrollment-popup-date i { font-size:9px; padding-bottom:3px; }.enrollment-discount { margin-bottom:15px!important; padding:10px 12px; }.enrollment-discount strong { font-size:17px; } }

/* A denser, more legible program-fit introduction with a program-specific visual. */
.program-section-intro { grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr); align-items:center; gap:clamp(34px,6vw,100px); max-width:1360px; margin:0 auto 48px; }.program-section-copy { max-width:700px; }.program-section-copy .trainmar-kicker { display:flex; align-items:center; gap:12px; margin:0 0 17px; color:#fb6100; font-size:12px; font-weight:700; }.program-section-copy .trainmar-kicker::before { content:""; width:42px; height:2px; background:currentColor; }.program-section-intro h2 { max-width:690px; font-size:clamp(46px,5.1vw,76px); line-height:.92; }.program-section-intro>p:last-child,.program-section-copy>p:last-child { max-width:580px; margin:23px 0 0; color:#555772; font-size:17px; font-weight:500; line-height:1.65; }.program-fit-visual { position:relative; min-height:300px; overflow:hidden; border-radius:26px; color:#fff; background:#07073e; box-shadow:0 20px 38px rgba(7,7,62,.16); }.program-fit-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(4,4,42,.8),transparent 62%); }.program-fit-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .8s cubic-bezier(.16,1,.3,1); }.program-fit-visual:hover img { transform:scale(1.06); }.program-fit-visual span,.program-fit-visual b { position:absolute; z-index:1; }.program-fit-visual span { top:22px; left:23px; padding:7px 9px; border:1px solid rgba(255,255,255,.45); border-radius:99px; background:rgba(7,7,62,.22); font:10px 'DM Mono',monospace; letter-spacing:.1em; backdrop-filter:blur(8px); }.program-fit-visual b { left:24px; bottom:23px; font:600 clamp(24px,2.5vw,35px)/.94 'Playfair Display',serif; letter-spacing:-.05em; }.program-fit { position:relative; overflow:hidden; }.program-fit::before { content:""; position:absolute; width:440px; height:440px; right:-265px; top:96px; border:1px solid rgba(54,49,113,.12); border-radius:50%; box-shadow:0 0 0 48px rgba(54,49,113,.025),0 0 0 96px rgba(54,49,113,.018); animation:fit-orbit 22s linear infinite; }.program-fit-grid { position:relative; max-width:1360px; margin:0 auto; }.program-fit-grid article { min-height:282px; }.program-fit-grid h3 { font-size:18px; }.program-fit-grid p { font-size:14px; line-height:1.6; }@keyframes fit-orbit { to { transform:rotate(360deg); } }
@media(max-width:760px){ .program-section-intro { grid-template-columns:1fr; gap:28px; margin-bottom:35px; }.program-section-copy .trainmar-kicker { font-size:11px; }.program-section-intro h2 { font-size:clamp(46px,13vw,63px); }.program-section-intro>p:last-child,.program-section-copy>p:last-child { margin-top:18px; font-size:16px; }.program-fit-visual { min-height:275px; border-radius:22px; }.program-fit-visual b { font-size:30px; }.program-fit::before { width:300px; height:300px; right:-195px; top:210px; } }

/* The program image becomes a calm, keyboard-friendly carousel. */
.program-fit-carousel { position:absolute; inset:0; overflow:hidden; }.program-fit-carousel img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 38%; opacity:0; transform:translateX(12%); transition:opacity .7s ease,transform .8s cubic-bezier(.16,1,.3,1); }.program-fit-carousel img.is-active { opacity:1; transform:translateX(0); }.program-fit-carousel-count { position:absolute; z-index:2; top:22px; left:23px; padding:7px 9px; border:1px solid rgba(255,255,255,.45); border-radius:99px; color:#fff; background:rgba(7,7,62,.22); font:10px 'DM Mono',monospace; letter-spacing:.1em; backdrop-filter:blur(8px); }.program-fit-carousel-dots { position:absolute; z-index:2; right:22px; bottom:24px; display:flex; gap:7px; }.program-fit-carousel-dots button { width:8px; height:8px; padding:0; border:1px solid rgba(255,255,255,.8); border-radius:50%; background:transparent; cursor:pointer; transition:width .25s,background .25s; }.program-fit-carousel-dots button.is-active { width:25px; border-radius:99px; background:#fff; }.program-fit-carousel-dots button:focus-visible { outline:3px solid #f1bd36; outline-offset:3px; }.program-fit-visual>span { display:none; }.program-fit-visual>b { z-index:3; pointer-events:none; }
@media(max-width:760px){ .program-fit-carousel-count { top:18px; left:18px; }.program-fit-carousel-dots { right:18px; bottom:19px; } }

/* Sistema de contenedores fotográficos: la silueta del escudo sustituye a los rectángulos genéricos. */
:root { --trainmar-shield:polygon(0 0,100% 0,100% 76%,98% 84%,94% 90%,87% 96%,75% 100%,50% 100%,25% 100%,13% 96%,6% 90%,2% 84%,0 76%); }
.degree-shield,.program-link-photo,.catalog-hero-visual,.community-page>img,.stories-photo,.model-benefit-image,.model-orientation-image,.program-fit-visual,.program-video-photo { clip-path:var(--trainmar-shield); border-radius:44px 44px 0 0; }
.degree-shield,.program-link-photo,.model-benefit-image,.model-orientation-image,.program-fit-visual,.program-video-photo { isolation:isolate; }
.catalog-hero-visual,.stories-photo { overflow:hidden; }
.community-page>img { align-self:center; min-height:420px; height:calc(100% - 60px); margin:30px 0; object-position:center; }
.model-orientation-image { margin:34px 0 34px 7vw; min-height:calc(700px - 68px); }
.model-orientation-image strong { left:42px; bottom:38px; }
@media(max-width:760px){ .degree-shield,.program-link-photo,.catalog-hero-visual,.community-page>img,.stories-photo,.model-benefit-image,.model-orientation-image,.program-fit-visual,.program-video-photo { border-radius:29px 29px 0 0; }.community-page>img { min-height:300px; height:calc(100% - 38px); margin:19px 0; }.model-orientation-image { min-height:390px; margin:20px 7vw 0; }.model-orientation-image strong { left:25px; bottom:28px; } }

/* Ajuste de proporciones: el escudo acompaña la fotografía sin recortar contenido ni textos. */
.degree-shield,.program-link-photo,.catalog-hero-visual,.community-page>img,.stories-photo,.model-benefit-image,.model-orientation-image,.program-fit-visual,.program-video-photo { clip-path:none; border-radius:clamp(28px,4vw,68px) 16px clamp(28px,4vw,68px) 16px; }
.degree-shield,.program-link-photo,.model-benefit-image,.model-orientation-image,.program-fit-visual,.program-video-photo { overflow:hidden; }
.degree-shield { aspect-ratio:1.06 / 1; min-height:0; align-self:center; }
.program-link-photo,.model-benefit-image,.program-video-photo { min-height:0; }
.model-orientation-image { display:grid; place-items:center; margin:42px 0 42px 7vw; min-height:616px; background:linear-gradient(180deg,#078c88,#073e6c); }
.model-orientation-image img { object-fit:contain; object-position:center bottom; }
.model-orientation-image strong { left:clamp(24px,4vw,58px); right:24px; bottom:clamp(26px,4vw,52px); max-width:500px; line-height:.92; }
.program-link-photo img { object-position:center 32%; }
.program-link.orange .program-link-photo img { object-position:64% 31%; }.program-link.teal .program-link-photo img { object-position:58% 29%; }.program-link.gold .program-link-photo img { object-position:center 32%; }.program-link.purple .program-link-photo img { object-position:55% 30%; }
.model-benefit-image img { object-position:center 32%; }.model-benefits article.orange .model-benefit-image img { object-position:58% 29%; }.model-benefits article.purple .model-benefit-image img { object-position:48% 28%; }
.program-fit-visual { min-height:310px; }.program-fit-visual b { left:clamp(22px,3vw,36px); right:78px; bottom:clamp(21px,3vw,32px); line-height:.98; }.program-fit-carousel-dots { right:clamp(18px,3vw,30px); bottom:clamp(18px,3vw,28px); }
.program-video-photo img { object-position:center 34%; }.community-page>img { object-position:center 33%; }
@media(max-width:760px){ .degree-shield { aspect-ratio:1.18 / 1; }.model-orientation-image { min-height:390px; margin:24px 7vw 0; }.model-orientation-image img { object-position:center bottom; }.model-orientation-image strong { right:22px; font-size:clamp(39px,11vw,52px); }.program-link-photo { min-height:250px; }.program-fit-visual { min-height:280px; }.program-fit-visual b { right:68px; } }

/* Escudo oficial: la máscara usa el archivo de identidad recortado a su área útil. */
.degree-shield,.program-link-photo,.model-benefit-image,.model-orientation-image,.program-fit-visual,.program-video-photo,.community-page>img,.stories-photo { -webkit-mask-image:url('/brand/trainmar-mark-mono.png'); mask-image:url('/brand/trainmar-mark-mono.png'); -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-size:166.78% 141.88%; mask-size:166.78% 141.88%; -webkit-mask-position:center; mask-position:center; border-radius:0; }
.degree-shield,.program-link-photo,.model-benefit-image,.model-orientation-image,.program-fit-visual,.program-video-photo { aspect-ratio:2456 / 2887; min-height:0; }
.degree-shield { width:min(100%,520px); justify-self:center; }
.program-link-photo { width:min(78%,360px); height:auto; align-self:center; justify-self:center; margin:auto; }
.model-benefit-image { width:min(78%,510px); height:auto; align-self:center; justify-self:center; margin:auto; }
.model-orientation-image { width:min(82%,540px); height:auto; min-height:0; align-self:center; justify-self:center; margin:42px auto; }
.program-fit-visual { width:min(100%,430px); min-height:0; justify-self:center; }
.program-video-photo { width:min(100%,390px); min-height:0; align-self:center; justify-self:center; }
.community-page>img { width:min(80%,440px); height:auto; min-height:0; margin:36px auto; justify-self:center; }.stories-photo { width:min(100%,460px); aspect-ratio:2456 / 2887; justify-self:center; }
.model-orientation-image strong { left:10%; right:10%; bottom:8%; font-size:clamp(32px,3.6vw,58px); }.program-fit-visual b { left:10%; right:10%; bottom:9%; font-size:clamp(25px,2.4vw,35px); }.program-fit-carousel-dots { right:10%; bottom:5%; }.program-fit-carousel-count { left:10%; top:7%; }
@media(max-width:760px){ .degree-shield { width:min(88vw,365px); }.program-link-photo { width:min(76%,330px); min-height:0; height:auto; }.model-benefit-image { width:min(82%,340px); min-height:0; height:auto; margin:30px auto; }.model-orientation-image { width:min(82vw,360px); margin:30px auto; }.program-fit-visual { width:min(82vw,350px); }.program-video-photo { width:min(82vw,350px); }.community-page>img { width:min(82vw,350px); margin:28px auto; }.stories-photo { width:min(82vw,350px); }.model-orientation-image strong { left:11%; right:11%; bottom:9%; } }

/* Zona segura del escudo: se muestra la fotografía completa y el texto no invade las curvas ni la punta. */
.degree-shield .career-photo,.program-link-photo img,.model-benefit-image img,.model-orientation-image img,.program-fit-carousel img,.program-video-photo img,.community-page>img,.stories-photo img { object-fit:contain !important; object-position:center center !important; transform:none !important; animation:none !important; }
.degree-shield { background:#080842; }.program-link-photo { background:rgba(7,7,62,.11); }.model-benefit-image { background:#080842; }.model-orientation-image { background:linear-gradient(180deg,#078c88,#063f6d); }.program-fit-visual,.program-video-photo { background:#080842; }
.degree-shield span { left:14%; right:14%; bottom:17%; max-width:none; line-height:1.4; }.degree-shield em,.degree.purple .degree-shield em { left:14%; top:10%; }
.model-orientation-image strong { left:13%; right:13%; bottom:18%; max-width:none; font-size:clamp(29px,3vw,48px); }
.program-fit-visual b { left:13%; right:13%; bottom:18%; max-width:none; font-size:clamp(24px,2.25vw,34px); }.program-fit-carousel-dots { right:14%; bottom:10%; }.program-fit-carousel-count { left:13%; top:9%; }
.program-video-photo div { right:14%; bottom:16%; left:14%; }.program-video-photo div strong { max-width:none; font-size:clamp(22px,2vw,31px); }.model-benefit-image i { right:16%; bottom:16%; }.model-benefits article:nth-child(even) .model-benefit-image i { right:16%; left:auto; }
.stories-photo span { left:13%; right:13%; bottom:17%; }.program-link-photo i { left:13%; top:11%; }
@media(max-width:760px){ .model-orientation-image strong { left:14%; right:14%; bottom:20%; font-size:30px; }.program-fit-visual b { left:14%; right:14%; bottom:20%; font-size:25px; }.program-fit-carousel-dots { right:15%; bottom:11%; }.program-fit-carousel-count { left:14%; top:10%; }.program-video-photo div { right:14%; bottom:20%; left:14%; }.degree-shield span { left:15%; right:15%; bottom:18%; }.degree-shield em,.degree.purple .degree-shield em { left:15%; top:10%; } }

/* Las fuentes usadas en estas tarjetas ya son verticales: cubren el escudo por completo. */
.degree-shield .career-photo,.program-link-photo img,.model-benefit-image img,.model-orientation-image img,.program-fit-carousel img,.program-video-photo img { object-fit:cover !important; }
.degree-shield .career-photo { object-position:center 18% !important; }.program-link-photo img { object-position:center 20% !important; }.model-benefit-image img { object-position:center 18% !important; }.program-video-photo img { object-position:center 20% !important; }
.model-orientation-image img { object-position:center 5% !important; }
.program-link.orange .program-link-photo img { object-position:62% 18% !important; }.program-link.teal .program-link-photo img { object-position:52% 18% !important; }.program-link.gold .program-link-photo img { object-position:50% 17% !important; }.program-link.purple .program-link-photo img { object-position:52% 17% !important; }
.model-benefits article.orange .model-benefit-image img { object-position:56% 18% !important; }.model-benefits article.purple .model-benefit-image img { object-position:48% 17% !important; }
@media(max-width:760px){ .model-orientation-image img { object-position:center 4% !important; }.program-link-photo img,.model-benefit-image img,.program-video-photo img { object-position:center 16% !important; } }

/* La foto ocupa todo el escudo; sólo queda un velo de contraste para el texto. */
.degree-shield::after { inset:0; height:auto; z-index:2; background:linear-gradient(0deg,rgba(5,5,57,.74) 0%,rgba(5,5,57,.32) 25%,rgba(5,5,57,0) 54%); }
.degree-shield .career-photo { object-position:center 18% !important; }

/* Aplicación limpia del escudo: la fotografía es protagonista y ningún panel de texto invade su interior. */
.degree-shield::after,.program-link-photo::after,.model-benefit-image::after,.model-orientation-image::after,.program-fit-visual::after,.program-video-photo::after { display:none; }
.degree-shield em,.degree-shield span,.program-link-photo i,.model-benefit-image i,.model-orientation-image strong,.program-fit-visual>b,.program-fit-carousel-count,.program-fit-carousel-dots,.program-video-photo div,.stories-photo span { display:none; }
.degree-shield .career-photo,.program-link-photo img,.model-benefit-image img,.model-orientation-image img,.program-fit-carousel img,.program-video-photo img { filter:none; opacity:1; }
.stories-photo img { width:100%; height:100%; object-fit:cover !important; object-position:center 16% !important; }

/* Los tres pasos comparten la silueta vertical del escudo oficial. */
.route-steps { align-items:center; justify-items:center; }
.route-steps a,.route-steps a:nth-child(2),.route-steps a:nth-child(3) { width:min(100%,315px); min-height:0; aspect-ratio:2456 / 2887; padding:14% 13% 16%; border-radius:0; -webkit-mask-image:url('/brand/trainmar-mark-mono.png'); mask-image:url('/brand/trainmar-mark-mono.png'); -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-size:166.78% 141.88%; mask-size:166.78% 141.88%; -webkit-mask-position:center; mask-position:center; }
.route-steps a::before { right:7%; top:8%; }.route-steps a::after { left:7%; bottom:6%; }.route-steps strong { margin:35% 0 8px; font-size:clamp(18px,1.8vw,27px); }.route-steps span { font-size:clamp(12px,1.15vw,15px); }.route-steps i { margin-top:auto; padding-bottom:11%; }
@media(max-width:760px){ .route-steps { grid-template-columns:repeat(3,1fr); gap:5px; }.route-steps a,.route-steps a:nth-child(2),.route-steps a:nth-child(3) { width:100%; padding:15% 13% 18%; }.route-steps strong { margin-top:31%; font-size:15px; }.route-steps span { font-size:10px; }.route-steps i { font-size:19px; } }

/* Escala editorial: los tres escudos ocupan el ancho completo de la sección. */
@media(min-width:761px){ .admission-route { grid-template-columns:1fr; gap:44px; }.admission-route>div:first-of-type { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:end; }.admission-route>div:first-of-type .route-intro { max-width:430px; margin:0 0 8px; }.route-steps { width:100%; gap:clamp(18px,2.5vw,42px); }.route-steps a,.route-steps a:nth-child(2),.route-steps a:nth-child(3) { width:100%; max-width:430px; }.route-steps strong { font-size:clamp(22px,2vw,31px); }.route-steps span { font-size:clamp(13px,1.2vw,16px); } }

/* Sección de ruta compacta, fotográfica y con la punta curva del escudo. */
.admission-route { color:#07073e; background:linear-gradient(90deg,rgba(246,246,243,.95),rgba(246,246,243,.73)),url('/images/trainmar-purpose-online-v1.webp') center/cover; }
.admission-route .trainmar-kicker { margin:0 0 22px; color:#fb6100; font-size:clamp(14px,1.3vw,19px); font-weight:700; letter-spacing:.13em; }.admission-route h2 { font-size:clamp(48px,4.5vw,74px); }.route-intro { color:#4e506a; font-size:16px; }
.route-steps a,.route-steps a:nth-child(2),.route-steps a:nth-child(3) { -webkit-mask-image:url('/brand/trainmar-shield-rounded.svg'); mask-image:url('/brand/trainmar-shield-rounded.svg'); -webkit-mask-size:100% 100%; mask-size:100% 100%; -webkit-mask-position:center; mask-position:center; }
@media(min-width:761px){ .admission-route { grid-template-columns:.72fr 1.28fr; gap:5vw; min-height:0; padding:72px 8vw; }.admission-route>div:first-of-type { display:block; align-self:center; }.route-steps { gap:16px; align-items:center; }.route-steps a,.route-steps a:nth-child(2),.route-steps a:nth-child(3) { max-width:none; }.route-steps strong { font-size:clamp(19px,1.75vw,27px); }.route-steps span { font-size:clamp(12px,1vw,15px); } }
@media(max-width:760px){ .admission-route { padding:62px 7vw; background:linear-gradient(180deg,rgba(246,246,243,.94),rgba(246,246,243,.82)),url('/images/trainmar-purpose-online-v1.webp') center/cover; }.admission-route .trainmar-kicker { font-size:13px; }.route-steps { margin-top:12px; } }

/* La flecha se mantiene dentro de la zona segura, lejos del borde del escudo. */
.route-steps i { align-self:center; width:76%; margin-right:0; padding:0 0 13%; text-align:right; }
@media(max-width:760px){ .route-steps i { width:70%; padding-bottom:15%; } }

/* =====================================================================
   AGREGADOS 2026-10-22 -- paso a servidor Windows (ASP.NET Core).
   Solo piezas nuevas: formularios que sí guardan, menú de teléfono,
   aviso de privacidad, 404 y pie con versión. El diseño original no se tocó.
   ===================================================================== */
[hidden] { display:none!important; }
.trampa { position:absolute!important; left:-10000px!important; width:1px; height:1px; overflow:hidden; }
:focus-visible { outline:2px solid #fb6100; outline-offset:3px; }

/* --- formularios: errores, gracias y leyenda de privacidad --- */
.campo-error { display:block; margin-top:6px; color:#d63a22; font-size:11px; font-weight:700; letter-spacing:0; }
.campo-error:empty { display:none; }
.contact .campo-error, .masters-page .campo-error { color:#ffb59e; }
.forma-error { padding:12px 14px; border-radius:12px; background:#fde8e3; color:#9b2410; font-size:13px; font-weight:600; line-height:1.45; }
.leyenda-privacidad { display:block; color:#77798c; font-size:10.5px; line-height:1.5; }
.leyenda-privacidad a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.contact .leyenda-privacidad, .masters-page .leyenda-privacidad { color:rgba(255,255,255,.62); }
.enrollment-popup .leyenda-privacidad { margin-top:15px; }
.forma-gracias { display:grid; gap:18px; align-content:start; justify-items:start; }
.forma-gracias>b { display:grid; place-items:center; width:58px; height:58px; border-radius:50%; background:#fb6100; color:#07073e; font-size:26px; }
.forma-gracias>p { max-width:420px; margin:0; font:500 clamp(22px,2.2vw,28px)/1.25 'Playfair Display',serif; letter-spacing:-.03em; }
.forma-gracias.claro>p { font:16px/1.55 'DM Sans',sans-serif; color:#454762; letter-spacing:0; }
.forma-gracias .apply { background:#fb6100; color:#07073e; }
.forma-gracias.claro .apply { background:#07073e; color:#fff; }
.masters-page .forma-corta { display:grid; gap:16px; width:min(420px,100%); }
.masters-page .forma-corta label { color:rgba(255,255,255,.82); font-size:11px; font-weight:700; }
.masters-page .forma-corta input { display:block; width:100%; margin-top:7px; padding:12px 0; border:0; border-bottom:1px solid rgba(255,255,255,.45); background:transparent; color:#fff; font:15px 'DM Sans',sans-serif; outline:none; }
.masters-page .forma-corta input::placeholder { color:rgba(255,255,255,.5); }
.masters-page .forma-corta .apply { justify-content:center; border:0; background:#fff; color:#07073e; cursor:pointer; }

/* --- iniciar sesión: aviso en lugar del formulario que no hacía nada --- */
.login-aviso { width:min(100%,460px); }
.login-aviso>p:not(.trainmar-kicker) { margin:0 0 30px; color:#575a79; line-height:1.6; }
.login-aviso .apply { width:100%; justify-content:center; color:#fff; background:#07073e; }

/* --- menú de teléfono (el original se escondía sin reemplazo) --- */
.menu-movil { display:none; width:42px; height:42px; place-items:center; border:1px solid rgba(7,7,62,.18); border-radius:50%; background:#fff; color:#07073e; font-size:18px; cursor:pointer; }
.menu-movil.claro { border-color:rgba(255,255,255,.45); background:transparent; color:#fff; }
.panel-movil { position:fixed; z-index:120; inset:0; display:flex; justify-content:flex-end; background:rgba(5,5,46,.55); backdrop-filter:blur(6px); }
.panel-movil-caja { position:relative; display:flex; flex-direction:column; gap:26px; width:min(360px,88vw); height:100%; padding:72px 30px 34px; overflow:auto; background:#05053b; color:#fff; animation:panel-entra .28s ease-out; }
.panel-movil nav { display:grid; }
.panel-movil nav a { padding:15px 0; border-bottom:1px solid rgba(255,255,255,.12); font-size:18px; }
.panel-movil .apply { justify-content:center; background:#fb6100; color:#07073e; }
.panel-movil-cerrar { position:absolute; top:18px; right:18px; width:40px; height:40px; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:transparent; color:#fff; font-size:22px; cursor:pointer; }
@keyframes panel-entra { from { transform:translateX(30px); opacity:0; } to { transform:none; opacity:1; } }
@media(max-width:760px){ .menu-movil { display:grid; } .header-actions .login-link, .nav-actions .login { display:none; } }

/* --- pie: redes solo si hay liga, renglón legal con la versión --- */
.socials a { display:block; width:auto; margin:0; }
.socials a:hover i { background:#fb6100; border-color:#fb6100; color:#07073e; }
footer .pie-legal { grid-column:1/-1; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding-top:26px; border-top:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.5); font-size:12px; }
footer .pie-version { font:11px 'DM Mono',monospace; letter-spacing:.08em; }

/* --- aviso de privacidad --- */
.privacidad { padding:90px 8vw 110px; background:#f6f6f4; color:#07073e; }
.privacidad article { max-width:820px; }
.privacidad h2 { margin:46px 0 14px; font:600 clamp(24px,2.6vw,32px)/1.05 'Playfair Display',serif; letter-spacing:-.04em; }
.privacidad h2:first-child { margin-top:0; }
.privacidad p { margin:0 0 14px; color:#45486a; line-height:1.7; }
.privacidad a { color:#fb6100; font-weight:700; }
.privacidad-fecha { margin-top:44px!important; padding-top:18px; border-top:1px solid #d9d8d3; font:12px 'DM Mono',monospace; letter-spacing:.06em; }
@media(max-width:760px){ .privacidad { padding:60px 7vw 70px; } }

/* --- 404 y error --- */
.no-encontrada { min-height:62vh; padding:110px 8vw; color:#fff; background:radial-gradient(circle at 72% 10%,#4446a4 0,#09093f 36%,#05053b 78%); }
.no-encontrada h1 { margin:0 0 24px; font:600 clamp(52px,7vw,100px)/.91 'Playfair Display',serif; letter-spacing:-.065em; }
.no-encontrada h1 strong { color:#f1bd36; font-family:'DM Sans',sans-serif; }
.no-encontrada>p:not(.trainmar-kicker) { max-width:520px; color:rgba(255,255,255,.8); font-size:17px; line-height:1.6; }
.no-encontrada-ligas { display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-top:34px; }
.no-encontrada .apply { background:#fb6100; color:#07073e; }
.no-encontrada .detail-cta { color:#fff; }

/* --- sin JavaScript o con movimiento reducido, todo visible --- */
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }

/* 2026-10-22 -- "Entrar al aula" (aula virtual Moodle) */
.panel-movil .apply.aula { background:#fff; color:#07073e; }
.campus-page .detail-cta.claro { margin-left:18px; color:#fff; }

/* =====================================================================
   2026-10-22 -- Ruben: "los murciélagos, las calaveritas, la araña que se cuelga, todo alusivo
   al Día de Muertos y el Halloween. Y se debe quitar el día 3 de noviembre."
   Capa decorativa: no recibe clics, no tapa formularios ni botones.
   ===================================================================== */
.temporada { position:absolute; top:0; left:0; right:0; height:100vh; height:100svh; z-index:60; pointer-events:none; overflow:hidden; }
/* Solo vive en la primera pantalla (la portada): al bajar se queda arriba y no tapa títulos. */
.temporada svg { display:block; }
/* murciélagos: cruzan la parte de arriba aleteando */
.t-vuelo { position:absolute; left:-90px; animation:t-cruza 19s linear infinite; }
.t-v1 { top:16vh; animation-duration:21s; }
.t-v2 { top:9vh;  animation-duration:26s; animation-delay:-9s; }
.t-v3 { top:28vh; animation-duration:31s; animation-delay:-17s; }
.t-v4 { top:12vh; animation-duration:24s; animation-delay:-4s; animation-direction:reverse; }
.t-bat { width:70px; height:33px; opacity:.95; filter:drop-shadow(0 2px 3px rgba(255,255,255,.25)); animation:t-aleteo .32s ease-in-out infinite alternate; transform-origin:center 60%; }
.t-v2 .t-bat { width:50px; height:24px; opacity:.8; }
.t-v3 .t-bat { width:40px; height:19px; opacity:.65; }
.t-v4 .t-bat { width:58px; height:28px; }
@keyframes t-cruza {
  0%   { transform:translate(0,0); }
  25%  { transform:translate(30vw,-3vh); }
  50%  { transform:translate(60vw,2vh); }
  75%  { transform:translate(90vw,-2vh); }
  100% { transform:translate(calc(100vw + 180px),1vh); }
}
@keyframes t-aleteo { from { transform:scaleY(1); } to { transform:scaleY(.45); } }
/* araña: cuelga de arriba con su hilo, baja y sube */
.t-arana { position:absolute; top:0; right:11vw; display:flex; flex-direction:column; align-items:center; animation:t-cuelga 6.5s ease-in-out infinite; transform-origin:top center; }
.t-hilo { display:block; width:1.5px; height:120px; background:linear-gradient(rgba(255,255,255,.75),rgba(200,200,215,.6)); animation:t-hilo 6.5s ease-in-out infinite; }
.t-arana svg { width:52px; height:48px; margin-top:-4px; filter:drop-shadow(0 3px 4px rgba(0,0,0,.25)); }
@keyframes t-hilo { 0%,100% { height:96px; } 50% { height:190px; } }
@keyframes t-cuelga { 0%,100% { transform:rotate(-4deg); } 50% { transform:rotate(4deg); } }
/* ofrenda: calaveritas y cempasúchil abajo a la izquierda */
.t-ofrenda { position:absolute; left:18px; bottom:14px; display:flex; align-items:flex-end; gap:4px; }
.t-calavera { width:46px; height:52px; filter:drop-shadow(0 4px 6px rgba(7,7,62,.25)); animation:t-meneo 3.4s ease-in-out infinite; }
.t-c2 { width:38px; height:43px; animation-delay:-1.4s; }
.t-flor { width:26px; height:26px; animation:t-gira 9s linear infinite; }
.t-f2 { width:32px; height:32px; animation-direction:reverse; }
@keyframes t-meneo { 0%,100% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-5px) rotate(3deg); } }
@keyframes t-gira { to { transform:rotate(360deg); } }
@media(max-width:760px){
  .t-v3, .t-v4 { display:none; }
  .t-arana { right:8px; }
  .t-arana svg { width:40px; height:37px; }
  .t-ofrenda { left:10px; bottom:10px; transform:scale(.8); transform-origin:left bottom; }
}
/* trueno: destello discreto y espaciado, como relámpago lejano (doble parpadeo cada ~14 s) */
.t-rayo { position:absolute; inset:0; opacity:0; mix-blend-mode:screen; background:radial-gradient(ellipse at 72% -10%, rgba(205,215,255,.75) 0%, rgba(140,150,255,.25) 35%, transparent 70%); animation:t-rayo 14s linear infinite; animation-delay:3s; }
@keyframes t-rayo { 0%,88%,100% { opacity:0; } 88.6% { opacity:.42; } 89.2% { opacity:.06; } 90% { opacity:.32; } 91.5% { opacity:0; } }
@media (prefers-reduced-motion: reduce) { .t-rayo { display:none; } .t-vuelo, .t-bat, .t-arana, .t-hilo, .t-calavera, .t-flor { animation:none!important; } .t-vuelo { left:auto; right:22vw; } }
