*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

:root{
  --purple:#3a168e;
  --purple-dark:#2d147d;
  --purple-light:#8700d9;
  --yellow:#ffbf0b;
  --navy:#142b73;
  --text:#151515;
  --white:#fff;
  --soft:#f8f8fb;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:'Poppins',sans-serif;
  color:var(--text);
  background:#fff;
  overflow-x:hidden;
}

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

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

.section{
  position:relative;
}

.container{
  width:min(1160px,92%);
  margin:auto;
}

.hero{
  min-height:610px;
  display:flex;
  align-items:center;
  background:
    radial-gradient(circle at 86% 20%,rgba(120,80,220,.05),transparent 22%),
    linear-gradient(135deg,#fff 0%,#fff 65%,#faf9ff 100%);
  overflow:hidden;
}

.hero::before{
  content:"";
  position:absolute;
  inset:-100px -100px auto auto;
  width:520px;
  height:330px;
  border-radius:50%;
  border:1px solid rgba(90,50,170,.08);
  transform:rotate(-20deg);
}

.hero-grid{
  display:grid;
  grid-template-columns:45% 55%;
  align-items:center;
  min-height:610px;
}

.hero-visual{
  position:relative;
  min-height:500px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.student-art{
  width:min(470px,95%);
  height:480px;
  position:relative;
}

.student-art::before,
.student-art::after{
  content:"";
  position:absolute;
  bottom:55px;
  width:58px;
  height:245px;
  border-radius:35px;
  z-index:0;
}

.student-art::before{
  left:70px;
  background:#9b7de5;
}

.student-art::after{
  right:65px;
  background:#7d8bbf;
}

.student-placeholder{
  position:absolute;
  inset:35px 25px 45px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:30px;
  background:linear-gradient(180deg,rgba(80,35,170,.08),rgba(80,35,170,.02));
  color:#6b4ac5;
  font-size:18px;
  font-weight:800;
  text-align:center;
  z-index:1;
}

.student-art img{
  position:relative;
  z-index:3;
  width:100%;
  height:100%;
  object-fit:contain;
}

.hero-content{
  padding:55px 0 20px 25px;
  text-align:center;
  position:relative;
}

.school-logo{
  position:absolute;
  right:15px;
  top:10px;
  width:165px;
  min-height:45px;
}

.school-logo img{
  width:100%;
  height:auto;
  object-fit:contain;
}

.logo-placeholder{
  font-size:13px;
  font-weight:800;
  line-height:1;
  color:var(--navy);
}

.logo-placeholder small{
  font-size:8px;
}

.hero-content h1{
  font-size:clamp(52px,6vw,76px);
  line-height:1;
  font-weight:800;
  letter-spacing:-2px;
  background:linear-gradient(90deg,#351491,#8c00dd);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  margin-top:45px;
}

.hero-content p{
  margin:12px 0 32px;
  font-size:16px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 30px;
  border-radius:30px;
  font-weight:700;
  font-size:14px;
  transition:.25s ease;
  box-shadow:0 9px 18px rgba(51,24,130,.2);
}

.btn:hover{
  transform:translateY(-2px);
}

.btn-purple{
  color:#fff;
  background:linear-gradient(90deg,#31127f,#8500d9);
}

.hero-content h3{
  margin-top:60px;
  color:#37148e;
  font-size:16px;
  font-style:italic;
  font-weight:800;
}

.school-background{
  padding:0 0 40px;
  background:#fff;
}

.background-card{
  min-height:390px;
  border-radius:0 0 0 28px;
  padding:45px 50px;
  color:#fff;
  display:grid;
  grid-template-columns:58% 42%;
  align-items:center;
  background:linear-gradient(115deg,#2d1686,#8700d9);
  position:relative;
  overflow:hidden;
}

.background-card::after{
  content:"";
  position:absolute;
  left:-55px;
  bottom:-90px;
  width:180px;
  height:180px;
  background:#fff;
  border-radius:50%;
  opacity:.06;
}

.background-copy{
  position:relative;
  z-index:2;
  padding-right:35px;
}

.mini-brand{
  display:flex;
  gap:10px;
  align-items:center;
  min-height:40px;
  font-size:11px;
  font-weight:700;
}

.mini-brand img{
  width:45px;
  max-height:45px;
  object-fit:contain;
}

.mini-brand small{
  font-weight:400;
}

.background-copy h2{
  margin:32px 0 24px;
  font-size:clamp(42px,5vw,62px);
  line-height:.9;
  color:#ffc30b;
  font-weight:800;
}

.background-copy p{
  max-width:650px;
  font-size:13px;
  line-height:1.7;
  text-align:justify;
}

.photo-frame{
  height:250px;
  border-radius:0 55px 0 0;
  overflow:hidden;
  background:#5e38ac;
  position:relative;
}

.photo-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.photo-placeholder{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#eceaf4,#c8c4d6);
  color:#543a99;
  font-size:20px;
  font-weight:800;
  text-align:center;
  z-index:0;
}

.photo-frame img:not([style*="display: none"]) + .photo-placeholder{
  display:none;
}

.registration-info{
  padding:45px 0 65px;
  background:linear-gradient(110deg,#2d1686,#8500d8);
  color:#fff;
  overflow:hidden;
}

.registration-info::before{
  content:"";
  position:absolute;
  left:-50px;
  top:10px;
  width:170px;
  height:150px;
  opacity:.08;
  background:
    radial-gradient(circle,#fff 0 6px,transparent 7px);
  background-size:28px 28px;
}

.section-title{
  width:max-content;
  margin:0 auto 38px;
  padding:10px 28px;
  border-radius:28px;
  font-size:16px;
  font-weight:800;
  box-shadow:0 8px 16px rgba(0,0,0,.18);
}

.yellow-title{
  color:#2e1682;
  background:var(--yellow);
}

.purple-title{
  color:#fff;
  background:linear-gradient(90deg,#32147e,#8300d5);
}

.level-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:35px;
  max-width:860px;
  margin:auto;
}

.level-card{
  background:#dddde3;
  border-radius:0 35px 12px 12px;
  overflow:hidden;
  color:#27147c;
  box-shadow:0 8px 18px rgba(0,0,0,.18);
  transition:.25s ease;
}

.level-card:hover{
  transform:translateY(-6px);
}

.level-image{
  height:170px;
  position:relative;
  overflow:hidden;
  background:#d4d0df;
}

.level-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  position:relative;
  z-index:2;
}

.level-caption{
  text-align:center;
  padding:13px 10px 18px;
}

.level-caption .pill{
  display:inline-block;
  padding:5px 15px;
  border-radius:18px;
  color:#fff;
  background:linear-gradient(90deg,#4b22a4,#7d00d5);
  font-size:12px;
  font-weight:800;
  box-shadow:0 4px 8px rgba(0,0,0,.18);
  margin-bottom:8px;
}

.level-caption .pill.navy{
  background:var(--navy);
}

.level-caption strong,
.level-caption small{
  display:block;
}

.level-caption strong{
  font-size:15px;
}

.level-caption small{
  font-size:12px;
  margin-top:2px;
}

.registration-flow{
  padding:45px 0 60px;
  background:#fff;
  overflow:hidden;
}

.flow-pattern{
  position:absolute;
  right:-40px;
  top:0;
  width:390px;
  height:160px;
  background:
    repeating-radial-gradient(ellipse at 100% 0%,transparent 0 9px,rgba(45,23,120,.13) 10px 12px,transparent 13px 19px);
  opacity:.65;
  transform:rotate(8deg);
}

.flow-track{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:13px;
  align-items:center;
  position:relative;
  z-index:2;
  padding-top:15px;
}

.flow-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:20px;
}

.flow-box{
  width:100%;
  min-height:112px;
  border-radius:13px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:13px 8px;
  font-size:11px;
  line-height:1.25;
  box-shadow:0 7px 14px rgba(0,0,0,.12);
}

.flow-box.yellow{
  background:var(--yellow);
  color:#171717;
}

.flow-box.purple{
  background:linear-gradient(145deg,#3b168d,#8200d4);
  color:#fff;
}

.flow-box strong{
  display:block;
}

.flow-number{
  width:38px;
  height:38px;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:14px;
}

.flow-number.purple{
  background:#3b168d;
  color:#fff;
}

.flow-number.yellow{
  background:var(--yellow);
  color:#24146e;
}

.values{
  padding:25px 0 0;
  background:#fff;
  border-top:25px solid #7c00cf;
}

.values-card{
  min-height:325px;
  border-radius:0 0 30px 30px;
  background:linear-gradient(115deg,#2c167f,#8300d5);
  color:#fff;
  display:grid;
  grid-template-columns:65% 35%;
  align-items:center;
  overflow:hidden;
  position:relative;
  padding:35px 50px;
}

.values-copy{
  text-align:center;
  position:relative;
  z-index:2;
}

.values-logo{
  height:65px;
  display:flex;
  justify-content:center;
  align-items:center;
}

.values-logo img{
  max-width:70px;
  max-height:65px;
}

.logo-mark-placeholder{
  font-size:38px;
  font-weight:800;
  color:#fff;
}

.values-copy h2{
  font-family:Georgia,serif;
  font-size:24px;
  margin-top:8px;
}

.values-copy .subtitle{
  font-size:13px;
  line-height:1.25;
}

.values-copy p{
  margin-top:25px;
  font-size:12px;
  line-height:1.55;
  text-align:left;
  max-width:680px;
}

.values-visual{
  height:300px;
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}

.values-visual img{
  height:100%;
  width:100%;
  object-fit:contain;
  position:relative;
  z-index:2;
}

.values-visual .student-placeholder{
  width:100%;
  height:100%;
  inset:auto;
}

.footer{
  background:#fff;
  padding:25px 0 35px;
}

.footer-grid{
  display:grid;
  grid-template-columns:1fr 1px 1fr;
  gap:40px;
  align-items:center;
}

.footer h4{
  font-size:10px;
  margin-bottom:9px;
}

.footer p{
  font-size:8px;
  margin:5px 0;
}

.footer-divider{
  width:1px;
  height:75px;
  background:#333;
}

.supported{
  padding-left:25px;
}

.support-logos{
  display:flex;
  gap:10px;
  align-items:center;
  min-height:35px;
}

.support-logos img{
  max-width:75px;
  max-height:35px;
  object-fit:contain;
}

@media(max-width:900px){
  .hero-grid,
  .background-card,
  .values-card{
    grid-template-columns:1fr;
  }

  .hero{
    min-height:auto;
    padding:35px 0 45px;
  }

  .hero-grid{
    min-height:auto;
  }

  .hero-visual{
    min-height:360px;
  }

  .hero-content{
    padding:15px 0;
  }

  .school-logo{
    top:-10px;
  }

  .background-card{
    padding:35px 30px;
  }

  .background-copy{
    padding-right:0;
    margin-bottom:25px;
  }

  .photo-frame{
    max-width:500px;
    width:100%;
    margin:auto;
  }

  .level-grid{
    gap:18px;
  }

  .flow-track{
    grid-template-columns:repeat(4,1fr);
  }

  .values-card{
    padding:35px 30px;
  }

  .values-visual{
    max-width:360px;
    margin:auto;
  }
}

@media(max-width:600px){
  .container{
    width:90%;
  }

  .hero-content h1{
    font-size:48px;
  }

  .hero-content h3{
    font-size:13px;
    margin-top:40px;
  }

  .student-art{
    height:370px;
  }

  .background-copy h2{
    font-size:42px;
  }

  .level-grid{
    grid-template-columns:1fr;
    max-width:300px;
  }

  .level-image{
    height:190px;
  }

  .flow-track{
    grid-template-columns:repeat(2,1fr);
    gap:22px 14px;
  }

  .flow-box{
    min-height:110px;
  }

  .footer-grid{
    grid-template-columns:1fr;
    gap:20px;
  }

  .footer-divider{
    width:100%;
    height:1px;
  }

  .supported{
    padding-left:0;
  }
}
