@font-face {
  font-family:Anton;
  src:url('assets/fonts/anton-regular.ttf') format('truetype');
  font-style:normal;
  font-weight:400;
  font-display:swap
}

@font-face {
  font-family:Avant;
  src:url('assets/fonts/avantgarde-medium.ttf') format('truetype');
  font-style:normal;
  font-weight:400 500;
  font-display:swap
}

@font-face {
  font-family:Avant;
  src:url('assets/fonts/avantgarde-bold.ttf') format('truetype');
  font-style:normal;
  font-weight:600 900;
  font-display:swap
}

:root {
  --cyan:#009ed4;
  --sky:#64c9ea;
  --ink:#061b27;
  --blue-text:#007a9f;
  --paper:#fff;
  --line:#d7dfe2;
  --gutter:clamp(24px,4.45vw,76px);
  --header-height:88px;
  --font-body:Avant,Arial,sans-serif;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-height) + 16px)
}

body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased
}

body:has(dialog[open]) {
  overflow:hidden
}

img {
  display:block;
  max-width:100%;
  height:auto
}

a {
  color:inherit;
  text-decoration:none
}

button {
  font:inherit;
  color:inherit;
  cursor:pointer;
  background:none;
  border:0
}

button,a {
  -webkit-tap-highlight-color:transparent
}

button:disabled {
  cursor:default
}

figure,p,h1,h2,h3 {
  margin:0
}

::selection {
  color:#fff;
  background:var(--blue-text)
}

:focus-visible {
  outline:3px solid var(--ink);
  outline-offset:6px
}

.admission :focus-visible,.site-footer :focus-visible,.facts :focus-visible {
  outline-color:var(--sky)
}

[hidden] {
  display:none!important
}

.page-wrap {
  width:100%;
  max-width:1600px!important;
  margin-inline:auto;
  padding-inline:var(--gutter)
}

.section-pad {
  padding-block:92px
}

.eyebrow {
  font-size:13px;
  font-weight:500;
  letter-spacing:.045em;
  text-transform:uppercase
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:56px;
  padding:6px 6px 6px 22px;
  border-radius:999px;
  background:var(--cyan);
  color:var(--ink);
  font-size:14px;
  font-weight:700;
  line-height:1.45;
  isolation:isolate;
  position:relative;
  overflow:hidden;
  box-shadow:0 0 0 0 rgba(0,158,212,.35);
  transition:background .25s,color .25s,transform .25s,box-shadow .25s
}

.button-label {
  position:relative;
  z-index:1
}

.button-arrow {
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:#fff;
  color:var(--ink);
  font-size:16px;
  line-height:1;
  transition:transform .25s,background .25s,color .25s
}

.button-arrow i {
  line-height:1
}

.icon-ne {
  transform:rotate(-45deg)
}

.button::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.42) 50%,transparent 62%);
  transform:translateX(-130%);
  pointer-events:none
}

.button-small {
  min-height:46px;
  padding:4px 4px 4px 18px;
  font-size:13px;
  gap:12px
}

.button-small .button-arrow {
  width:36px;
  height:36px;
  font-size:14px
}

.button:active {
  transform:translateY(0) scale(.98)
}

.text-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:38px;
  width:fit-content;
  padding:0 0 7px;
  border:0;
  border-bottom:1px solid currentColor;
  background:none;
  font-size:14px;
  font-weight:500;
  line-height:1.6;
  transition:color .2s,gap .2s,border-color .2s
}

.text-link:hover {
  gap:48px
}

.text-link span:last-child {
  display:grid;
  place-items:center;
  font-size:14px;
  line-height:1
}

.skip-link {
  position:fixed;
  top:12px;
  left:16px;
  z-index:100;
  padding:14px 22px;
  background:var(--ink);
  color:#fff;
  transform:translateY(-160%)
}

.skip-link:focus {
  transform:none
}

.site-header {
  background:#fff;
  border-bottom:1px solid transparent
}

.site-header.is-scrolled {
  border-bottom-color:var(--line)
}

.header-inner {
  height:var(--header-height)
}

.brand img {
  width:100%;
  height:auto;
  border-radius:50%;
  box-shadow:0 0 0 4px #fff,0 0 0 6px var(--cyan),0 10px 24px rgba(6,27,39,.12)
}

.main-nav {
  display:flex;
  align-items:center;
  gap:clamp(24px,3.4vw,54px);
  font-size:14px
}

.main-nav>a:not(.button) {
  position:relative;
  padding-block:12px
}

.main-nav>a:not(.button)::after {
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:5px;
  height:2px;
  background:var(--cyan);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s
}

.main-nav>a:hover::after,.main-nav>a:focus-visible::after {
  transform:scaleX(1)
}

.menu-toggle {
  display:none
}

.hero {
  overflow:hidden
}

.hero-inner {
  position:relative;
  z-index:3;
  pointer-events:none
}

.hero-copy {
  width:64%;
  padding-block:36px 80px
}

.hero-copy a {
  pointer-events:auto
}

.hero-edition {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:11px;
  color:var(--blue-text);
  font-size:13px;
  text-transform:none;
  letter-spacing:0;
  margin-bottom:30px
}

.hero-edition>span+span::before {
  content:'·';
  margin-right:11px
}

.on-air {
  display:inline-flex;
  align-items:center;
  gap:8px
}

.on-air-dot {
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 0 0 rgba(0,158,212,.65)
}

.hero h1 {
  font-weight:400;
  letter-spacing:-.012em
}

.title-prefix {
  display:block;
  font-family:var(--font-body);
  font-size:clamp(25px,2.8vw,42px);
  line-height:1.25;
  letter-spacing:-.06em;
  margin-bottom:8px
}

.title-line {
  display:block;
  width:fit-content;
  font-family:Anton,Impact,'Arial Narrow',sans-serif;
  font-size:clamp(80px,8.95vw,142px);
  font-weight:400;
  line-height:1.095;
  letter-spacing:-.022em;
  text-transform:uppercase
}

.hero-tagline {
  font-size:clamp(23px,2.15vw,32px);
  line-height:1.24;
  letter-spacing:-.05em;
  color:var(--blue-text);
  margin-top:32px
}

.hero-actions {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:24px;
  margin-top:29px
}

.hero-field {
  position:absolute;
  z-index:0;
  right:0;
  top:16px;
  bottom:0;
  width:32%;
  background:linear-gradient(165deg,var(--cyan) 0%,#3bb6e4 28%,var(--sky) 52%,#0077a8 78%,var(--cyan) 100%);
  background-size:140% 240%
}

.hero-field::after {
  content:'';
  position:absolute;
  inset:-30% -40% auto auto;
  width:90%;
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.5),rgba(100,201,234,.15) 42%,transparent 70%)
}

.hero-grain,.admission-grain {
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  opacity:.045;
  background-image:var(--grain);
  mix-blend-mode:multiply
}

.admission-grain {
  z-index:1;
  mix-blend-mode:soft-light;
  opacity:.08
}

.hero-visual {
  position:absolute;
  z-index:1;
  width:min(62vw,960px);
  aspect-ratio:1;
  right:max(-11.5vw,calc((100vw - 1650px)/2));
  top:16px
}

.hero-orbit-ring {
  display:none;
  position:absolute;
  inset:-18px;
  border-radius:50%;
  pointer-events:none;
  overflow:hidden
}

.hero-orbit-ring::before {
  content:'';
  position:absolute;
  inset:7px;
  border-radius:50%;
  border:1px dashed rgba(255,255,255,.55)
}

.hero-orbit-ring::after {
  content:'';
  position:absolute;
  inset:0;
  border-radius:50%;
  background:conic-gradient(from 0deg,transparent 0 58%,#fff 68%,var(--sky) 76%,var(--cyan) 84%,transparent 94%);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 10px),#000 calc(100% - 9px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 10px),#000 calc(100% - 9px))
}

.hero-circle {
  position:relative;
  width:100%;
  height:100%;
  border:22px solid var(--cyan);
  border-radius:50%;
  overflow:hidden;
  background:var(--sky)
}

.hero-circle::after {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.22) 48%,transparent 62%);
  transform:translateX(-130%)
}

.hero-photo {
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:75% 50%;
  will-change:transform
}

.orbit-photo {
  position:absolute;
  left:-2%;
  bottom:4%;
  width:29%;
  aspect-ratio:1;
  border-radius:50%;
  border:6px solid var(--cyan);
  overflow:hidden;
  box-shadow:0 0 0 8px #fff;
  transition:transform .3s
}

.orbit-photo img {
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:53% center
}

.orbit-photo span {
  position:absolute;
  right:19px;
  bottom:15px;
  width:32px;
  height:32px;
  border-radius:50%;
  background:white;
  display:grid;
  place-items:center;
  font-size:13px;
  line-height:1
}

.hero-index {
  position:absolute;
  bottom:25px;
  left:var(--gutter);
  z-index:3;
  font-size:10px;
  letter-spacing:.15em;
  color:#597581
}

.facts {
  color:white;
  background:var(--ink)
}

.facts-inner {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  align-items:center;
  min-height:99px;
  padding-block:26px
}

.facts p,.facts a {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:clamp(14px,1.3vw,20px);
  white-space:nowrap
}

.facts strong {
  font-weight:500
}

.facts p:first-child {
  justify-content:flex-start
}

.facts a:last-child {
  justify-content:flex-end
}

.facts p+p {
  border-inline:1px solid var(--cyan)
}

.fact-arrow {
  color:var(--sky);
  margin-left:10px;
  font-size:14px;
  line-height:1
}

.program {
  position:relative;
  overflow:hidden;
  background:var(--cyan);
  color:var(--ink);
  padding-bottom:72px
}

.program::before {
  content:'';
  position:absolute;
  width:70vw;
  height:70vw;
  max-width:820px;
  max-height:820px;
  border-radius:50%;
  right:-18%;
  top:-30%;
  background:radial-gradient(circle,rgba(255,255,255,.2),transparent 64%);
  pointer-events:none
}

.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:35px
}

.section-heading h2 {
  font-size:clamp(36px,4.15vw,64px);
  line-height:1.04;
  letter-spacing:-.065em;
  font-weight:700
}

.program-heading {
  margin-bottom:46px
}

.program-heading .eyebrow {
  margin-bottom:19px
}

.program-heading h2 {
  color:white;
  text-shadow:0 1px 0 #00000008
}

.section-aside {
  padding-bottom:6px;
  font-size:15px;
  line-height:1.5;
  letter-spacing:-.025em
}

.program-list {
  position:relative;
  border-top:1px solid #ffffff70
}

.program-item {
  border-bottom:1px solid #ffffff70
}

.program-item summary {
  display:grid;
  grid-template-columns:142px minmax(220px,1.15fr) minmax(210px,1fr) 34px;
  align-items:center;
  gap:36px;
  list-style:none;
  cursor:pointer;
  min-height:142px;
  padding:18px 0;
  transition:background .2s
}

.program-item summary::-webkit-details-marker {
  display:none
}

.program-item summary:hover {
  background:#ffffff0b
}

.program-item summary:focus-visible {
  outline-offset:-4px
}

.program-number {
  font-family:var(--font-body);
  font-size:94px;
  font-weight:700;
  line-height:1;
  letter-spacing:-.08em;
  color:var(--ink);
  opacity:.45
}

.program-item h2,.program-item h3 {
  color:var(--ink);
  font-size:clamp(21px,2vw,29px);
  letter-spacing:-.05em;
  line-height:1.18;
  padding-left:30px;
  border-left:1px solid #ffffff70
}

.program-summary {
  padding-left:34px;
  border-left:1px solid #ffffff70;
  font-size:17px;
  line-height:1.4;
  letter-spacing:-.035em
}

.plus {
  position:relative;
  width:24px;
  height:24px
}

.plus::before,.plus::after {
  content:'';
  position:absolute;
  top:11px;
  left:3px;
  width:18px;
  height:2px;
  background:var(--ink);
  transition:transform .2s
}

.plus::after {
  transform:rotate(90deg)
}

.program-item[open] .plus::after {
  transform:rotate(0)
}

.program-content {
  padding:0 62px 30px 208px;
  font-size:16px;
  line-height:1.6
}

.program-content>p {
  font-weight:700;
  margin-bottom:15px
}

.program-content ul {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 32px;
  margin:0;
  padding-left:17px;
  list-style:disc
}

.program-expand,.program-more {
  margin-top:35px
}

.program-workload {
  max-width:85ch;
  margin:28px 0 0;
  font-size:15px;
  line-height:1.6
}

.experience {
  padding-top:78px;
  padding-bottom:76px
}

.experience-heading {
  margin-bottom:35px;
  align-items:center
}

.experience-heading h2 {
  font-size:clamp(45px,5.65vw,86px)
}

.experience-heading>p {
  color:var(--blue-text);
  font-size:clamp(16px,1.6vw,23px);
  line-height:1.45;
  letter-spacing:-.055em
}

.experience-heading>p span {
  font-size:14px;
  color:#56717c;
  letter-spacing:-.02em
}

.experience-grid {
  gap:22px
}

.photo-link {
  position:relative;
  display:block;
  overflow:hidden;
  background:#d7eaf0;
  aspect-ratio:1.3
}

.photo-link img {
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.6,.3,1)
}

.experience-card:first-child img {
  object-position:42% center
}

.photo-link:hover img {
  transform:scale(1.045)
}

.photo-open {
  position:absolute;
  right:13px;
  bottom:13px;
  display:grid;
  place-items:center;
  width:39px;
  height:39px;
  background:white;
  color:var(--ink);
  font-size:15px;
  line-height:1;
  transition:background .2s
}

.photo-link:hover .photo-open {
  background:var(--sky)
}

.experience-card figcaption {
  padding-top:20px
}

.experience-card h3 {
  font-size:28px;
  font-weight:700;
  line-height:1.1;
  letter-spacing:-.06em
}

.experience-card p {
  font-size:13px;
  margin-top:8px;
  color:#536b77;
  letter-spacing:-.02em
}

.experience-card figcaption::after {
  content:'';
  display:block;
  width:44px;
  height:2px;
  background:var(--cyan);
  margin-top:20px
}

.experience-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  margin-top:34px
}

.experience-bottom>span {
  font-size:12px;
  color:#536b77
}

.experience-bottom .text-link {
  color:var(--blue-text)
}

.admission {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:var(--ink);
  color:white;
  padding-block:76px 85px;
  min-height:565px
}

.admission-inner {
  position:relative;
  z-index:2
}

.admission .eyebrow {
  color:var(--sky);
  font-size:11px;
  margin-bottom:24px
}

.admission h2 {
  font-size:clamp(40px,5.6vw,82px);
  font-weight:700;
  line-height:1.03;
  letter-spacing:-.065em
}

.admission-actions {
  display:flex;
  align-items:flex-start;
  flex-direction:column;
  gap:22px;
  margin-top:32px
}

.admission-ring {
  position:absolute;
  z-index:0;
  width:min(66vw,970px);
  aspect-ratio:1;
  border:clamp(65px,10vw,155px) solid var(--cyan);
  border-radius:50%;
  right:-1.5vw;
  top:42px
}

.site-footer {
  background:var(--ink);
  color:white
}

.footer-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:92px;
  border-top:1px solid #ffffff24;
  font-size:12px
}

.footer-inner>*+* {
  position:relative
}

.footer-inner>*+*::before {
  content:'';
  position:absolute;
  left:-24px;
  top:4px;
  bottom:4px;
  width:1px;
  background:#3d7487
}

.organizer {
  font-size:18px;
  font-weight:700;
  letter-spacing:-.045em
}

.footer-inner a:hover {
  color:var(--sky)
}

.footer-with-ico {
  display:inline-flex;
  align-items:center;
  gap:7px
}

.footer-ico {
  flex:0 0 15px;
  width:15px;
  height:15px;
  background:none;
  border:0;
  border-radius:0;
  color:var(--sky)
}

.footer-ico svg {
  width:15px;
  height:15px
}

.footer-inner a:hover .footer-ico,.footer-inner a:focus-visible .footer-ico {
  color:#fff
}

.footer-year span {
  margin-left:14px;
  color:var(--sky);
  font-size:12px
}

.footer-contact span,
.footer-credit a span {
  margin-left:6px;
  font-size:11px
}

.mobile-cta {
  display:none
}

dialog {
  padding:0;
  border:0;
  color:var(--ink);
  background:white;
  max-height:calc(100dvh - 40px);
  overscroll-behavior:contain
}

dialog::backdrop {
  background:#03151dcc;
  backdrop-filter:blur(7px)
}

.info-dialog {
  width:min(650px,calc(100% - 32px));
  padding:58px
}

.dialog-close {
  position:absolute;
  right:15px;
  top:12px;
  z-index:2;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  color:var(--ink);
  background:white;
  font-size:20px;
  line-height:1
}

.dialog-close:hover {
  background:var(--sky)
}

.info-dialog .eyebrow {
  color:var(--blue-text);
  font-size:11px;
  margin:0 30px 22px 0
}

.info-dialog h2 {
  font-size:clamp(32px,4vw,49px);
  font-weight:700;
  letter-spacing:-.065em;
  line-height:1.08;
  margin-bottom:23px
}

.info-dialog>p:not(.eyebrow) {
  font-size:15px;
  line-height:1.6;
  margin-bottom:22px
}

.cyan-text {
  color:var(--blue-text)
}

.admission-steps {
  list-style:none;
  padding:0;
  margin:25px 0 30px;
  counter-reset:steps
}

.admission-steps li {
  counter-increment:steps;
  position:relative;
  padding:13px 0 13px 38px;
  border-top:1px solid var(--line)
}

.admission-steps li::before {
  content:'0' counter(steps);
  position:absolute;
  left:0;
  top:14px;
  color:var(--blue-text);
  font-size:12px;
  font-weight:700
}

.admission-steps strong,.admission-steps span {
  display:block;
  font-size:13px
}

.admission-steps span {
  margin-top:3px;
  color:#526e7a
}

.info-dialog .button {
  width:100%;
  font-size:13px
}

.dialog-phone {
  display:block;
  font-size:13px;
  text-align:center;
  margin-top:20px;
  color:var(--blue-text)
}

.dialog-phone:hover {
  text-decoration:underline
}

.dialog-highlight {
  padding:18px;
  border-left:3px solid var(--cyan);
  background:#effaff
}

.gallery-dialog {
  width:min(1200px,calc(100% - 40px));
  background:var(--ink);
  color:white;
  padding:54px 22px 20px
}

.gallery-dialog .dialog-close {
  background:var(--ink);
  color:#fff;
  top:6px;
  right:12px
}

.gallery-dialog figure img {
  width:100%;
  height:min(68dvh,800px);
  object-fit:contain
}

.gallery-dialog figcaption {
  font-size:14px;
  text-align:center;
  margin:16px 20px 0
}

.gallery-controls {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:30px;
  margin-top:14px
}

.gallery-controls button {
  background:none;
  color:var(--sky);
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  font-size:20px;
  line-height:1
}

.gallery-controls button:hover {
  background:#ffffff14
}

.gallery-controls span {
  font-size:12px
}

.gallery-dialog :focus-visible {
  outline-color:var(--sky)
}

.js .reveal {
  opacity:0;
  transform:translateY(16px)
}

.js .reveal.is-in {
  opacity:1;
  transform:none;
  transition:opacity .7s ease,transform .7s ease
}

.js .experience.is-in .experience-card {
  opacity:1;
  transform:none;
  transition:opacity .65s ease,transform .65s ease
}

.js .experience .experience-card {
  opacity:0;
  transform:translateY(16px)
}

.js .experience.is-in .experience-card:nth-child(2) {
  transition-delay:.1s
}

.js .experience.is-in .experience-card:nth-child(3) {
  transition-delay:.2s
}

@media(min-width:1024px) {
  .mobile-cta {
    display:none!important
  }

  .site-header {
    background:transparent;
    border-bottom-color:transparent;
    -webkit-backdrop-filter:none;
    backdrop-filter:none
  }

  .site-header.is-scrolled {
    background:rgba(255,255,255,.88);
    border-bottom-color:var(--line);
    -webkit-backdrop-filter:blur(18px) saturate(1.2);
    backdrop-filter:blur(18px) saturate(1.2)
  }

  .header-inner {
    align-items:center
  }

  .main-nav {
    padding:6px 8px 6px 26px;
    border-radius:999px;
    background:rgba(255,255,255,.78);
    -webkit-backdrop-filter:blur(16px) saturate(1.15);
    backdrop-filter:blur(16px) saturate(1.15);
    box-shadow:0 10px 30px rgba(6,27,39,.08)
  }

  .site-header.is-scrolled .main-nav {
    background:transparent;
    box-shadow:none;
    backdrop-filter:none
  }

  .brand {
    align-self:flex-start;
    margin-top:10px;
    z-index:21
  }

  .hero {
    min-height:100vh
  }

  .hero-copy {
    width:56%;
    padding:172px 0 96px
  }

  .hero-visual {
    width:min(52vw,calc(100vh - 160px),840px);
    top:118px;
    right:max(-6vw,calc((100vw - 1680px)/2))
  }

  .hero-orbit-ring {
    display:block
  }

  .hero-field {
    top:0;
    width:34%
  }

  .button:hover {
    color:#fff;
    background:var(--blue-text);
    transform:translateY(-2px);
    box-shadow:0 12px 30px rgba(0,122,159,.32)
  }

  .button:hover .button-arrow {
    transform:translate(2px,-2px);
    background:var(--ink);
    color:#fff
  }

  .button:hover::after {
    transform:translateX(130%);
    transition:transform .65s ease
  }

  .hero-photo {
    animation:kenburns 12s ease-in-out infinite alternate
  }

  .hero-circle::after {
    animation:photo-sweep 7s ease-in-out infinite
  }

  .hero-orbit-ring::before {
    animation:spin 28s linear infinite reverse
  }

  .hero-orbit-ring::after {
    animation:spin 14s linear infinite
  }

  .orbit-photo {
    animation:float-photo 4s ease-in-out infinite
  }

  .orbit-photo:hover {
    animation:none;
    transform:rotate(-4deg) scale(1.025)
  }

  .hero-field {
    animation:field-drift 10s ease-in-out infinite
  }

  .hero-field::after {
    animation:glow-shift 6s ease-in-out infinite
  }

  .on-air-dot {
    animation:pulse-dot 1.6s ease-out infinite
  }

  .title-prefix,.title-line {
    animation:title-in .8s ease both
  }

  .title-line:nth-of-type(2) {
    animation-delay:.1s
  }

  .title-line:nth-of-type(3) {
    animation-delay:.2s
  }

  .admission-ring {
    animation:spin 22s linear infinite,ring-pulse 5s ease-in-out infinite
  }

  .program::before {
    animation:program-glow 12s ease-in-out infinite
  }

  .hero-grain,.admission-grain {
    animation:grain-drift 9s steps(2) infinite
  }
}

@media(min-width:1600px) {
  .hero-copy {
    padding-top:188px
  }

  .hero-visual {
    width:min(860px,calc(100vh - 140px));
    right:calc((100vw - 1840px)/2)
  }

  .hero-field {
    width:calc(50% - 300px)
  }
}

@media(min-width:1024px) and (max-width:1279px) {
  .title-line {
    font-size:8.4vw
  }

  .hero-copy {
    width:54%;
    padding-top:156px
  }

  .hero-visual {
    width:min(50vw,calc(100vh - 160px));
    right:-8vw
  }

  .hero-circle {
    border-width:18px
  }

  .main-nav {
    gap:22px;
    font-size:13px
  }
}

@media(max-width:1023px) {
  :root {
    --gutter:28px
  }

  .site-header {
    background:#fff
  }

  .brand img {
    box-shadow:0 0 0 3px #fff,0 0 0 5px var(--cyan)
  }

  .menu-toggle {
    display:none;
    position:relative;
    align-items:center;
    justify-content:center;
    width:46px;
    height:46px;
    background:none;
    margin-left:auto
  }

  .js .menu-toggle {
    display:flex
  }

  .menu-toggle span {
    position:absolute;
    width:25px;
    height:2px;
    background:var(--ink);
    transition:transform .2s
  }

  .menu-toggle span:first-child {
    transform:translateY(-4px)
  }

  .menu-toggle span:last-child {
    transform:translateY(4px)
  }

  .menu-toggle[aria-expanded=true] span:first-child {
    transform:rotate(45deg)
  }

  .menu-toggle[aria-expanded=true] span:last-child {
    transform:rotate(-45deg)
  }

  .js .main-nav {
    display:none;
    position:absolute;
    top:calc(var(--header-height) - 1px);
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    gap:3px;
    padding:10px var(--gutter) 25px;
    background:#fff;
    border-bottom:1px solid var(--line);
    box-shadow:0 15px 20px #001d2610;
    font-size:17px
  }

  .js .main-nav.is-open {
    display:flex
  }

  .main-nav>a:not(.button) {
    padding-block:12px
  }

  .js .main-nav .button {
    margin-top:8px;
    min-height:48px;
    font-size:14px
  }

  .hero {
    min-height:0
  }

  .hero-inner {
    order:-1;
    pointer-events:auto
  }

  .hero-copy {
    width:100%;
    padding-block:28px 20px
  }

  .hero-visual {
    position:relative;
    width:92%;
    max-width:560px;
    right:auto;
    left:14%;
    top:auto;
    margin:8px 0 36px
  }

  .hero-orbit-ring {
    display:none
  }

  .hero-circle {
    border-width:15px
  }

  .hero-photo {
    object-position:65% 50%
  }

  .orbit-photo {
    width:31%;
    left:-9%;
    bottom:-1%;
    border-width:4px;
    box-shadow:0 0 0 5px white
  }

  .hero-field {
    top:auto;
    bottom:0;
    height:42%;
    width:40%;
    animation:none
  }

  .hero-index {
    display:none
  }

  .title-line {
    font-size:clamp(59px,11vw,92px)
  }

  .program-item summary {
    grid-template-columns:90px 1.1fr 1fr 22px;
    gap:22px;
    min-height:122px
  }

  .program-number {
    font-size:77px
  }

  .program-item h2,.program-item h3,.program-summary {
    padding-left:24px
  }

  .program-content {
    padding-left:136px
  }

  .section-pad {
    padding-block:65px
  }

  .admission-ring {
    width:70vw;
    right:-10vw;
    top:72px;
    animation:none
  }

  .admission {
    padding-bottom:140px
  }

  .mobile-cta {
    position:fixed;
    z-index:19;
    left:0;
    right:0;
    bottom:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    background:white;
    padding:12px 17px calc(12px + env(safe-area-inset-bottom));
    border-top:1px solid var(--line);
    font-size:10px
  }

  .footer-inner {
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-areas:
      "org year"
      "place phone"
      "contact experience"
      "instagram facebook"
      "aviso privacidad";
    gap:16px 28px;
    align-items:center;
    min-height:0;
    padding-block:28px 18px;
    font-size:13px
  }

  .footer-inner > * {
    min-width:0
  }

  .footer-inner > * + *::before {
    display:none
  }

  .organizer {
    grid-area:org;
    font-size:16px
  }

  .footer-place { grid-area:place }
  .footer-phone { grid-area:phone }
  .footer-contact { grid-area:contact }
  .footer-experience { grid-area:experience }
  .footer-instagram { grid-area:instagram }
  .footer-facebook { grid-area:facebook }
  .footer-aviso { grid-area:aviso }
  .footer-privacidad { grid-area:privacidad }

  .footer-year {
    grid-area:year;
    justify-self:end;
    text-align:right
  }

  .footer-inner a {
    min-height:40px;
    display:flex;
    align-items:center
  }

  .footer-credit {
    text-align:left
  }

  .site-footer {
    padding-bottom:calc(84px + env(safe-area-inset-bottom))
  }
}

@media(max-width:760px) {
  :root {
    --gutter:24px
  }

  .hero-actions {
    flex-direction:row;
    align-items:center;
    flex-wrap:wrap;
    gap:21px
  }

  .hero-tagline {
    font-size:24px;
    margin-top:25px
  }

  .title-prefix {
    font-size:25px
  }

  .facts-inner {
    grid-template-columns:1fr;
    padding-block:12px;
    min-height:0
  }

  .facts p,.facts a,.facts p:first-child,.facts a:last-child {
    justify-content:space-between;
    font-size:14px;
    min-height:49px
  }

  .facts p+p {
    border:0;
    border-block:1px solid #365c6b
  }

  .facts strong {
    font-weight:700
  }

  .fact-dot {
    display:none
  }

  .facts a:last-child {
    justify-content:flex-start;
    gap:6px
  }

  .fact-arrow {
    display:block;
    margin-left:auto
  }

  .section-pad {
    padding-block:48px
  }

  .section-heading h2 {
    font-size:38px
  }

  .section-heading {
    gap:20px
  }

  .section-aside {
    display:none
  }

  .program-item summary {
    grid-template-columns:58px 1fr 24px;
    gap:14px;
    min-height:123px;
    padding:21px 0
  }

  .program-number {
    font-size:56px;
    align-self:start
  }

  .program-item h2,.program-item h3 {
    font-size:21px;
    padding-left:14px;
    min-height:51px;
    display:flex;
    align-items:center
  }

  .program-summary {
    grid-column:2;
    grid-row:2;
    font-size:13px;
    padding-left:14px;
    margin-top:-11px;
    border-left:0
  }

  .program-summary br {
    display:none
  }

  .program-item .plus {
    grid-column:3;
    grid-row:1;
    align-self:start;
    margin-top:13px
  }

  .program-content {
    padding:0 0 23px;
    font-size:14px
  }

  .program-content ul {
    grid-template-columns:1fr;
    gap:7px
  }

  .experience-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:18px
  }

  .experience-heading h2 {
    font-size:51px
  }

  .photo-link {
    aspect-ratio:1.45
  }

  .experience-bottom {
    flex-direction:column;
    align-items:flex-start;
    gap:19px
  }

  .admission {
    padding-bottom:245px;
    min-height:0
  }

  .admission h2 {
    font-size:52px
  }

  .admission-ring {
    width:440px;
    border-width:75px;
    right:-140px;
    top:auto;
    bottom:-263px
  }

  .footer-inner {
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-areas:
      "org org"
      "place place"
      "phone phone"
      "contact contact"
      "experience experience"
      "instagram facebook"
      "aviso privacidad"
      "year year";
    gap:2px 28px;
    padding-block:36px 20px;
    padding-inline:28px;
    font-size:14px
  }

  .organizer {
    padding-bottom:16px;
    margin-bottom:8px;
    border-bottom:1px solid #ffffff18
  }

  .footer-place,
  .footer-phone,
  .footer-inner a {
    min-height:44px;
    display:flex;
    align-items:center
  }

  .footer-phone {
    padding-bottom:12px;
    margin-bottom:8px;
    border-bottom:1px solid #ffffff18
  }

  .footer-year {
    grid-area:year;
    justify-self:start;
    text-align:left;
    margin-top:8px
  }

  .info-dialog {
    padding:45px 25px 28px
  }

  .info-dialog h2 {
    font-size:37px
  }

  .gallery-dialog {
    width:calc(100% - 20px);
    padding:50px 10px 12px
  }

  .gallery-dialog figure img {
    height:56dvh
  }
}

@media(max-width:370px) {
  :root {
    --gutter:19px
  }

  .title-line {
    font-size:clamp(48px,15vw,56px)
  }

  .hero-tagline {
    font-size:22px
  }

  .section-heading h2 {
    font-size:34px
  }

  .experience-heading h2 {
    font-size:44px
  }

  .admission h2 {
    font-size:46px
  }
}

@keyframes kenburns {
  from {
    transform:scale(1.04) translate(0,0)
  }
  to {
    transform:scale(1.18) translate(-5%,3.2%)
  }
}

@keyframes spin {
  to {
    transform:rotate(360deg)
  }
}

@keyframes float-photo {
  0%,100% {
    transform:translateY(0)
  }
  50% {
    transform:translateY(-18px)
  }
}

@keyframes field-drift {
  0%,100% {
    background-position:0 0;
    filter:saturate(1)
  }
  50% {
    background-position:40% 100%;
    filter:saturate(1.25)
  }
}

@keyframes glow-shift {
  0%,100% {
    opacity:.45;
    transform:translate(0,0) scale(1)
  }
  50% {
    opacity:1;
    transform:translate(-18%,16%) scale(1.2)
  }
}

@keyframes pulse-dot {
  0% {
    box-shadow:0 0 0 0 rgba(0,158,212,.7)
  }
  70% {
    box-shadow:0 0 0 12px rgba(0,158,212,0)
  }
  100% {
    box-shadow:0 0 0 0 rgba(0,158,212,0)
  }
}

@keyframes title-in {
  from {
    opacity:0;
    transform:translateY(18px)
  }
  to {
    opacity:1;
    transform:none
  }
}

@keyframes ring-pulse {
  0%,100% {
    opacity:.88;
    filter:saturate(1)
  }
  50% {
    opacity:1;
    filter:saturate(1.35)
  }
}

@keyframes program-glow {
  0%,100% {
    transform:translate(0,0) scale(1);
    opacity:.7
  }
  50% {
    transform:translate(-10%,12%) scale(1.14);
    opacity:1
  }
}

@keyframes photo-sweep {
  0%,28% {
    transform:translateX(-130%)
  }
  58%,100% {
    transform:translateX(130%)
  }
}

@keyframes grain-drift {
  0%,100% {
    transform:translate(0,0)
  }
  50% {
    transform:translate(-2%,1%)
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }

  *,*::before,*::after {
    transition:none!important;
    animation:none!important
  }

  .js .reveal,.js .experience .experience-card {
    opacity:1;
    transform:none
  }
}

/* Layout de producto (sin Tailwind) */
.site-header {
  z-index:20;
  width:100%;
  position:relative
}

.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px
}

.brand {
  display:block;
  flex-shrink:0;
  width:72px;
  transition:width .25s ease
}

.site-header.is-scrolled .brand {
  width:60px
}

.footer-credit {
  padding-block:18px 24px;
  border-top:1px solid #ffffff18;
  color:#a9bec7;
  text-align:right;
  font-size:12px
}

.footer-credit a {
  color:#fff;
  border-bottom:1px solid var(--cyan);
  padding-bottom:3px
}

.footer-credit a:hover {
  color:var(--sky)
}

.hero {
  position:relative;
  isolation:isolate
}

.experience-grid {
  display:grid;
  grid-template-columns:1fr
}

.main-nav>a.is-active:not(.button)::after {
  transform:scaleX(1)
}

.layout-home .site-alerts {
  padding-top:24px
}

@media(max-width:1023px) {
  .site-header {
    position:sticky;
    top:0
  }

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

@media(min-width:1024px) {
  .layout-home .site-header {
    position:fixed;
    left:0;
    right:0;
    top:0
  }

  .layout-page .site-header {
    position:sticky;
    top:0;
    z-index:20;
    background:#fff;
    border-bottom-color:var(--line);
    -webkit-backdrop-filter:blur(18px) saturate(1.2);
    backdrop-filter:blur(18px) saturate(1.2)
  }

  .header-inner {
    gap:32px
  }

  .brand {
    width:132px;
    margin-top:10px
  }

  .site-header.is-scrolled .brand {
    width:64px
  }

  .layout-home .hero-copy {
    padding-top:172px
  }

  .main-nav {
    display:flex;
    align-items:center
  }

  .experience-grid {
    grid-template-columns:repeat(3,1fr)
  }

  .layout-home .site-alerts {
    position:relative;
    z-index:2;
    padding:24px var(--gutter) 0
  }
}

.page-hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:flex;
  align-items:center;
  min-height:560px;
  padding:100px 0 72px;
  background:var(--ink);
  color:#fff;
  border-bottom:4px solid var(--cyan)
}

.page-hero-image {
  position:absolute;
  inset:0;
  z-index:-2;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:65% 50%
}

.page-hero::after {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,rgba(3,18,29,.94) 0%,rgba(3,18,29,.78) 35%,rgba(3,18,29,.35) 65%,rgba(3,18,29,.12) 100%)
}

.page-hero .eyebrow {
  color:var(--sky)
}

.page-hero .page-lead {
  color:#e1edf3;
  max-width:46ch;
  text-wrap:pretty
}

.page-hero--compact {
  min-height:390px
}

@media(max-width:760px) {
  .page-hero {
    min-height:480px;
    padding:56px 0 48px
  }

  .page-hero-image {
    object-position:70% center
  }

  .page-hero::after {
    background:linear-gradient(90deg,rgba(3,18,29,.87),rgba(3,18,29,.58))
  }

  .page-hero--compact {
    min-height:300px
  }

  .footer-credit {
    text-align:left;
    padding-inline:28px
  }
}

.page-hero h1 {
  font-family:Anton,Impact,'Arial Narrow',sans-serif;
  font-size:clamp(42px,6.4vw,92px);
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.02em;
  text-transform:uppercase;
  max-width:16ch;
  margin:12px 0 18px
}

.page-lead {
  font-size:clamp(18px,1.6vw,24px);
  line-height:1.35;
  color:var(--blue-text);
  max-width:42ch
}

.page-body {
  padding:56px 0 96px
}

.page-grid,.form-layout,.plan-facts,.people-grid {
  display:grid;
  gap:40px 48px
}

@media(min-width:900px) {
  .page-grid,.form-layout {
    grid-template-columns:minmax(0,1.4fr) minmax(220px,.7fr);
    align-items:start
  }

  .plan-facts,.people-grid {
    grid-template-columns:1fr 1fr
  }
}

.page-body h2,.legal-copy h2,.plan-facts h2,.person-card h2 {
  font-size:clamp(22px,2vw,32px);
  letter-spacing:-.04em;
  margin:28px 0 12px
}

.page-body p,.legal-copy p {
  margin:0 0 14px
}

.page-list {
  padding-left:18px;
  margin:0 0 18px
}

.page-list li {
  margin-bottom:8px
}

.page-aside {
  padding:28px 24px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#f7fbfc
}

.page-aside .button,.page-aside .text-link {
  margin-top:18px
}

.page-aside > .eyebrow:not(:first-child) {
  margin-top:28px
}

.page-aside ul {
  list-style:none;
  padding:0;
  margin:12px 0 0
}

.page-aside li {
  padding:10px 0;
  border-bottom:1px solid var(--line)
}

.contact-list {
  margin-top:8px
}

.page-aside .contact-list li {
  padding:0;
  border:0
}

.contact-list a,.contact-place {
  display:flex;
  align-items:center;
  gap:12px;
  min-height:48px
}

.contact-list a {
  padding:10px 0;
  border-bottom:1px solid var(--line)
}

.contact-list li:last-child a {
  border-bottom:0
}

.contact-list a span:last-child {
  overflow-wrap:anywhere
}

.contact-ico {
  flex:0 0 36px;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#fff;
  border:1px solid var(--line);
  color:var(--cyan);
  transition:background .18s ease, border-color .18s ease, color .18s ease
}

.contact-ico svg {
  width:18px;
  height:18px;
  display:block
}

.contact-list a:hover .contact-ico,.contact-list a:focus-visible .contact-ico {
  background:var(--cyan);
  border-color:var(--cyan);
  color:var(--ink)
}

.contact-ico.footer-ico {
  flex:0 0 15px;
  width:15px;
  height:15px;
  padding:0;
  background:none;
  border:0;
  border-radius:0;
  color:var(--sky);
  transition:color .18s ease
}

.contact-ico.footer-ico svg {
  width:15px;
  height:15px
}

.footer-inner a:hover .contact-ico.footer-ico,
.footer-inner a:focus-visible .contact-ico.footer-ico {
  background:none;
  border:0;
  color:#fff
}

.contact-place {
  align-items:flex-start;
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid var(--line)
}

.contact-place h2 {
  margin:2px 0 8px;
  font-size:18px
}

.contact-place p {
  margin:0;
  color:#536b77
}

.page-note {
  color:#536b77;
  margin:36px 0 20px;
  max-width:62ch
}

.page-cta-row {
  margin-top:28px
}

.page-steps {
  margin:0 0 28px
}

.person-card {
  padding:28px 24px 32px;
  border-top:4px solid var(--cyan);
  background:#f7fbfc
}

.plan-page-list {
  margin-bottom:48px
}

.plan-facts {
  margin-top:12px
}

.form-card {
  max-width:720px
}

.form-row {
  display:grid;
  gap:16px
}

@media(min-width:700px) {
  .form-row {
    grid-template-columns:1fr 1fr
  }
}

.form-field {
  margin-bottom:18px
}

.form-field label,.form-field legend {
  display:block;
  font-size:13px;
  font-weight:700;
  margin-bottom:8px
}

.form-field input,.form-field textarea,.form-field select {
  width:100%;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px 14px;
  font:inherit;
  color:var(--ink);
  background:#fff;
  transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease
}

.form-field textarea {
  resize:vertical;
  min-height:120px
}

.form-field input:focus,.form-field textarea:focus {
  outline:none;
  border-color:var(--cyan);
  box-shadow:0 0 0 3px rgba(0,158,212,.22)
}

.form-field input.is-valid,.form-field textarea.is-valid {
  border-color:#14804a;
  background:#f3fbf6;
  box-shadow:0 0 0 3px rgba(20,128,74,.2)
}

.form-field input.is-invalid,.form-field textarea.is-invalid {
  border-color:#b42318;
  background:#fff6f5;
  box-shadow:0 0 0 3px rgba(180,35,24,.18)
}

.form-field input.is-valid:focus,.form-field textarea.is-valid:focus {
  border-color:#14804a;
  box-shadow:0 0 0 3px rgba(20,128,74,.28)
}

.form-field input.is-invalid:focus,.form-field textarea.is-invalid:focus {
  border-color:#b42318;
  box-shadow:0 0 0 3px rgba(180,35,24,.24)
}

fieldset.form-field {
  margin:0 0 18px;
  padding:14px 16px 10px;
  border:1px solid transparent;
  border-radius:14px
}

fieldset.form-field.is-valid {
  border-color:#14804a;
  background:#f3fbf6;
  box-shadow:0 0 0 3px rgba(20,128,74,.2)
}

fieldset.form-field.is-invalid {
  border-color:#b42318;
  background:#fff6f5;
  box-shadow:0 0 0 3px rgba(180,35,24,.18)
}

.field-feedback,.invalid-feedback {
  display:none;
  margin-top:6px;
  color:#b42318;
  font-size:13px
}

.field-feedback.is-visible,.invalid-feedback:not(:empty) {
  display:block
}

.choice {
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-right:18px;
  font-weight:500
}

.choice input {
  width:auto
}

.captcha-row {
  display:grid;
  grid-template-columns:180px 56px minmax(0,1fr);
  gap:10px;
  align-items:stretch
}

.captcha-image {
  width:180px;
  height:56px;
  object-fit:cover;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f7fbfc;
  cursor:pointer
}

.captcha-reload {
  width:56px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  font-size:22px;
  line-height:1
}

.captcha-reload:hover,.captcha-image:hover {
  border-color:var(--cyan)
}

.captcha-hint {
  margin:8px 0 0;
  font-size:13px;
  color:#536b77
}

@media(max-width:600px) {
  .captcha-row {
    grid-template-columns:1fr 56px
  }

  .captcha-image {
    grid-column:1 / -1;
    width:100%;
    height:72px
  }
}

.form-legal {
  font-size:13px;
  color:#536b77;
  margin:8px 0 22px
}

.form-legal a {
  text-decoration:underline
}

.hp-field {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden
}

.site-alerts {
  width:100%;
  max-width:1600px;
  margin:0 auto;
  padding:24px var(--gutter) 0
}

.site-alerts:focus {
  outline:none
}

.site-alerts+.page-body {
  padding-top:28px
}

.site-alert {
  padding:14px 18px;
  border-radius:14px;
  margin-bottom:10px;
  font-size:15px
}

.site-alert-success {
  background:#e3f6e8;
  color:#14532d
}

.site-alert-danger {
  background:#fde8e6;
  color:#7a1c16
}

.site-alert-warning {
  background:#fff4d6;
  color:#7a4d00
}

.site-alert-info,.site-alert-primary,.site-alert-secondary {
  background:#e7f5fb;
  color:#0b3d4d
}

.legal-copy {
  max-width:68ch
}

/* Matrícula, formas de pago y becas */
.page-body .tuition-price {
  font-family:Anton,Impact,sans-serif;
  font-size:clamp(76px,8vw,120px);
  line-height:1.1;
  margin:12px 0 24px;
  letter-spacing:-.03em
}

.tuition-price span {
  color:var(--blue-text)
}

.payment-reserve {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:22px 24px;
  margin:28px 0 16px;
  background:var(--ink);
  color:#fff;
  border-radius:16px
}

.payment-reserve small {
  display:block;
  color:#b4cdd8;
  margin-top:4px
}

.payment-reserve strong {
  font-size:30px;
  white-space:nowrap
}

.payment-options,.scholarship-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-bottom:22px
}

.payment-card {
  padding:24px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f7fbfc
}

.payment-card h2 {
  margin:0 0 20px;
  font-size:18px
}

.payment-card .payment-amount {
  font-size:clamp(24px,2.6vw,36px);
  font-weight:700;
  letter-spacing:-.05em;
  white-space:nowrap
}

.payment-total {
  display:block;
  border-top:1px solid var(--line);
  padding-top:14px;
  font-size:13px;
  color:#536b77
}

.scholarship-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:24px
}

.scholarship-card {
  padding:24px 16px;
  background:#eaf6fb;
  border-top:3px solid var(--cyan)
}

.scholarship-card>strong {
  display:block;
  font-family:Anton,Impact,sans-serif;
  font-size:46px;
  font-weight:400;
  color:var(--blue-text)
}

.scholarship-card>span,.scholarship-card p {
  font-size:12px
}

.scholarship-card p {
  margin:20px 0 0
}

.scholarship-card b {
  display:block;
  font-size:24px;
  margin-top:5px
}

.pricing-aside h2 {
  margin-top:8px
}

@media(max-width:600px) {
  .payment-options,.scholarship-grid {
    grid-template-columns:1fr
  }
}

/* Plan de estudios y entidades colaboradoras */
.plan-page { padding-bottom:72px }
.plan-intro { max-width:78ch }
.plan-page h2,.plan-partners h2,.master-partners h2,.plan-final-cta h2 {
  font-size:clamp(28px,3.1vw,46px);
  line-height:1.12;
  letter-spacing:-.045em;
  margin:12px 0 24px
}
.plan-metrics {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  margin:40px 0 30px;
  padding:26px 0;
  border-block:1px solid var(--line);
  gap:22px
}
.plan-metrics>div { display:flex; flex-direction:column; gap:8px }
.plan-metrics dt { font-size:12px; color:#536b77 }
.plan-metrics dd { order:-1; margin:0; font-family:Anton,Impact,sans-serif; font-size:46px; line-height:1; color:var(--blue-text) }
.plan-jump-links { display:flex; flex-wrap:wrap; gap:12px 24px }
.plan-jump-links a { font-size:13px; border-bottom:1px solid var(--cyan); padding-bottom:5px }
.plan-jump-links a:hover { color:var(--blue-text) }
.plan-section { padding-top:72px; scroll-margin-top:110px }
.plan-section-heading { display:flex; align-items:center; justify-content:space-between; gap:24px }
.plan-section-heading .program-expand { margin:0 0 20px; flex-shrink:0 }
.plan-page .program-list { border-top-color:var(--line) }
.plan-page .program-item { border-bottom-color:var(--line) }
.plan-page .program-item summary:hover { background:#f4fafc }
.plan-page .program-item h3,.plan-page .program-summary { border-left-color:var(--line) }
.plan-page .program-content { padding:0 32px 34px 178px }
.plan-page .program-content h4 { font-size:18px; margin:0 0 16px; line-height:1.4 }
.plan-page .plan-module-columns { display:grid; grid-template-columns:1fr 1fr; gap:32px }
.plan-module-columns ul { grid-template-columns:1fr }
.plan-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px }
.plan-info-grid article { padding:28px; background:#f3f9fb; border-top:3px solid var(--cyan) }
.plan-info-wide { grid-column:1 / -1 }
.plan-info-grid h3 { font-size:20px; line-height:1.3; margin:0 0 16px }
.plan-info-grid p:last-child { margin-bottom:0 }
.plan-text-columns { columns:2; column-gap:64px }
.plan-text-columns li { break-inside:avoid; padding:4px 0 8px }
.plan-partners { padding:72px 0 80px; background:#f3f7f9; scroll-margin-top:100px }
.plan-partners-intro { max-width:72ch; margin-bottom:36px; color:#536b77 }
.partner-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px; list-style:none; padding:0; margin:0 }
.partner-card { display:flex; flex-direction:column; align-items:center; gap:20px; padding:24px 16px 20px; border:1px solid #dfe8ed; border-radius:10px; background:#fff; text-align:center }
.partner-logo { display:flex; align-items:center; justify-content:center; width:100%; height:100px }
.partner-logo img { display:block; width:100%; height:100%; object-fit:contain }
.partner-logo--dark { background:var(--ink); border-radius:6px; padding:8px }
.partner-card>span { font-size:12px; line-height:1.45 }
.master-partners { padding:64px 0; background:#fff; border-top:1px solid var(--line); scroll-margin-top:100px }
.master-partners-intro { max-width:72ch; margin-bottom:32px; color:#536b77 }
.master-partner-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; list-style:none; margin:0; padding:0 }
.master-partner-grid>li { min-width:0; padding:24px 0 0; border-top:3px solid var(--cyan) }
.master-partner-grid h3 { margin:0 0 12px; font-size:24px; line-height:1.2; letter-spacing:-.035em; color:var(--ink) }
.master-partner-grid p { margin:0; font-size:14px; line-height:1.65; color:#536b77 }
.plan-final-cta { padding:64px 0 80px }
.plan-final-cta h2 { max-width:26ch }
.plan-final-cta .text-link { margin:20px 0 0 28px }
@media(max-width:1100px) {
  .partner-grid { grid-template-columns:repeat(4,minmax(0,1fr)) }
}
@media(max-width:900px) {
  .master-partner-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px }
  .plan-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:30px }
  .plan-page .program-content { padding-left:0 }
  .plan-section-heading { align-items:flex-start; flex-direction:column; gap:0 }
}
@media(max-width:600px) {
  .plan-section { padding-top:48px }
  .plan-page .plan-module-columns,.plan-info-grid { grid-template-columns:1fr }
  .plan-page .program-content { padding-right:0 }
  .plan-text-columns { columns:1 }
  .plan-info-grid article { padding:24px }
  .partner-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px }
  .partner-card { padding:20px 12px; gap:16px }
  .partner-logo { height:88px }
  .plan-partners { padding:48px 0 }
  .master-partners { padding:48px 0 }
  .master-partner-grid { gap:24px 20px }
  .master-partner-grid h3 { font-size:20px }
  .master-partner-grid p { font-size:13px }
  .plan-final-cta .text-link { display:table; margin:24px 0 0 }
}

/* Directorio docente y archivo de actividades */
.hero-admission-note { max-width:40ch; margin:20px 0 0; font-size:14px; line-height:1.7; color:var(--ink) }
.faculty-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; align-items:start; margin:32px 0 48px }
.faculty-card { min-width:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#f7fbfc }
.faculty-card>a,.faculty-direction .person-card>a { display:block }
.faculty-card img,.faculty-direction img { display:block; width:100%; height:auto }
.faculty-card-copy { padding:24px }
.faculty-card h3,.faculty-direction h3 { font-size:22px; line-height:1.3; letter-spacing:-.03em; margin:0 0 10px }
.faculty-card-copy>p { color:#536b77; font-size:14px }
.faculty-card details { border-top:1px solid var(--line); padding-top:16px; margin-top:20px }
.faculty-card summary { cursor:pointer; font-size:14px; font-weight:700 }
.faculty-card details p { margin:16px 0 0; font-size:14px; line-height:1.75 }
.faculty-direction { margin-top:28px }
.faculty-direction h3 { margin-top:24px }
.faculty-direction p { font-size:14px; line-height:1.75 }
.faculty-intro { max-width:78ch; margin-top:64px }
.faculty-editions-note { padding:20px 24px; border-left:3px solid var(--cyan); background:#f3f9fb }
.experience-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:36px 0 48px }
.experience-photo-grid a { display:block; position:relative; overflow:hidden; border-radius:10px; background:#eaf6fb }
.experience-photo-grid img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .2s ease }
.experience-photo-grid a:hover img { transform:scale(1.03) }
.experience-photo-grid span { position:absolute; right:12px; bottom:12px; display:grid; place-items:center; width:36px; height:36px; background:var(--ink); color:#fff; border-radius:50%; font-size:14px; line-height:1 }
@media(max-width:850px) {
  .experience-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:650px) {
  .faculty-grid { grid-template-columns:1fr; gap:24px }
  .faculty-card-copy { padding:20px }
  .experience-photo-grid { gap:12px }
}
@media(prefers-reduced-motion:reduce) {
  .experience-photo-grid img { transition:none }
}
