/* =========================================================
   Curriculum page — Meru Gopanpally
   Distinct from M-Clap / Robotics / Admissions
   ========================================================= */
.curriculum-page .page-banner,
.curriculum-page .cur-hero,
.curriculum-page .cur-stages,
.curriculum-page .cur-pathways,
.curriculum-page .cur-help,
.curriculum-page .cur-faq,
.curriculum-page .cur-visit{
  position:relative;
  overflow:hidden;
}

.cur-kicker{
  display:inline-block;
  margin:0 0 12px;
  color: rgb(52, 50, 114);
  font-family: Helvetica, Arial, sans-serif;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.cur-kicker.on-dark{ color:rgba(255,255,255,.9); }

.cur-label{
  margin:0 0 10px;
  color: rgb(52, 50, 114);
  font-family: Helvetica, Arial, sans-serif;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.cur-crumb{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 18px;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.03em;
}
.cur-crumb a{
  color: rgb(52, 50, 114);
  text-decoration:none;
  opacity:.8;
}
.cur-crumb a:hover{ opacity:1; color: rgb(52, 50, 114); }
.cur-crumb span{ opacity:.4; }
.cur-crumb [aria-current="page"]{
  opacity:1;
  color:var(--marigold);
}

/* Hero — editorial split: copy | framed media */
.cur-hero{
  padding:30px 0;
  background:
    radial-gradient(ellipse 45% 50% at 100% 0%, rgba(245,195,7,.12), transparent 55%),
    radial-gradient(ellipse 40% 45% at 0% 100%, rgba(54,53,135,.05), transparent 50%),
    #faf9f6;
}
.cur-hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(0, .95fr);
  gap:clamp(28px, 4vw, 56px);
  align-items:center;
}
.cur-hero-copy,
.cur-hero-media{
  min-width:0;
}
.cur-hero-copy h1{
  margin:0 0 16px;
  color: rgb(52, 50, 114);
  font-family: Helvetica, Arial, sans-serif; font-weight: 700;
  font-size:clamp(2rem, 4vw, 3.1rem);
  font-weight:700;
  line-height:1.12;
  letter-spacing:-.02em;
 
}
.cur-hero-lead{
  margin:0 0 24px;
  color: rgb(33, 37, 41);
  font-size:1.06rem;
  line-height:1.7;
 
}
.cur-hero-copy .btn{
  width:fit-content;
  max-width:max-content;
  flex:0 0 auto;
}
.cur-hero-media{
  position:relative;
}
.cur-hero-media::before{
  content:"";
  position:absolute;
  inset:18px -14px -14px 18px;
  border:1.5px solid rgba(54,53,135,.14);
  z-index:0;
}
.cur-hero-frame{
  position:relative;
  z-index:1;
  margin:0;
  overflow:hidden;
  background:#eceaf5;
  box-shadow:14px 14px 0 var(--marigold);
}
.cur-hero-frame img{
  width:100%;
  aspect-ratio:8 / 5;
  object-fit:cover;
  object-position:center 28%;
  display:block;
}

/* Stages — three photo cards */
.cur-stages{
  padding:30px 0;
  background:#fff;
}
.cur-stages-head{
   
  margin:0 auto 48px;
  text-align:center;
}
.cur-stages-head h2{
  margin:0 0 12px;
  color: rgb(52, 50, 114);
  font-family: Helvetica, Arial, sans-serif; font-weight: 700;
  font-size:clamp(1.85rem, 3.2vw, 2.6rem);
  line-height:1.15;
  letter-spacing:-.015em;
}
.cur-stages-head p{
  margin:0 auto;
  color: rgb(33, 37, 41);
  font-size:1.02rem;
  line-height:1.65;
 
}
.cur-pathways-cta{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:14px;
  width:100%;
  margin:28px auto 0;
  text-align:center;
}
.cur-pathways-cta .btn{
  width:fit-content;
  max-width:max-content;
  flex:0 0 auto;
}
.cur-stage-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:28px;
}
.cur-stage{
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.cur-stage-media{
  border-radius:16px;
  overflow:hidden;
  aspect-ratio:6/ 6;
  margin-bottom:18px;
  background:#e8e7f0;
}
.cur-stage-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .7s cubic-bezier(.22,1,.36,1);
}
.cur-stage:hover .cur-stage-media img{ transform:scale(1.04); }
.cur-stage-meta{
  margin:0 0 8px;
  color: rgb(52, 50, 114);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.cur-stage h3{
  margin:0 0 10px;
  color: rgb(52, 50, 114);
  font-family: Helvetica, Arial, sans-serif; font-weight: 700;
  font-size:1.35rem;
  font-weight:700;
  line-height:1.25;
  letter-spacing:-.01em;
}
.cur-stage > p{
  margin:0;
  color: rgb(33, 37, 41);
  font-size:.98rem;
  line-height:1.65;
}

/* Pathways — logos + CBSE vs Cambridge comparison */
.cur-pathways{
  padding:48px 0 40px;
  background:#f7f6f2;
}
.cur-pathways-inner{ margin:0 auto; }
.cur-pathways-head{
  max-width:40rem;
  margin:0 auto 28px;
  text-align:center;
}
.cur-pathways-head h2{
  margin:0 0 14px;
  color: rgb(52, 50, 114);
  font-family: Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size:clamp(1.8rem, 3vw, 2.45rem);
  line-height:1.15;
}
.cur-pathways-head p{
  margin:0;
  color: rgb(33, 37, 41);
  font-size:1.02rem;
  line-height:1.65;
}
.cur-marks{
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr);
  gap: 0;
  max-width: 860px;
  margin: 0 auto 36px;
  align-items: start;
  text-align:center;
}
.cur-marks-rule{
  width:1px;
  height:100%;
  min-height:140px;
  background:rgba(54,53,135,.22);
  justify-self:center;
  align-self:stretch;
}
.cur-mark{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  padding:8px 36px;
  min-width:0;
}
.cur-mark-logo-wrap{
  width:100%;
  max-width:320px;
  height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px 20px;
  background:#fff;
  border:1px solid rgba(54,53,135,.08);
  box-shadow:0 12px 28px -22px rgba(54,53,135,.45);
}
.cur-mark-logo-wrap img{
  width:100%;
  height:100%;
  max-width:100%;
  object-fit:contain;
  object-position:center;
  display:block;
}
.cur-mark-name{
  margin:0;
  color:#5a5a68;
  font-size:.92rem;
  font-weight:600;
  line-height:1.4;
  max-width:24ch;
}

.cur-compare-intro{
  margin:0 0 14px;
  color:rgb(33, 37, 41);
  font-size:.98rem;
  line-height:1.6;
}
.cur-compare-wrap{
  border:1px solid rgba(54,53,135,.14);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
}
.cur-compare{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
}
.cur-compare th,
.cur-compare td{
  padding:18px 22px;
  text-align:left;
  vertical-align:middle;
  border-bottom:1px solid rgba(54,53,135,.12);
  border-right:1px solid rgba(54,53,135,.12);
  color:var(--ink);
}
.cur-compare th:last-child,
.cur-compare td:last-child{ border-right:none; }
.cur-compare tbody tr:last-child td,
.cur-compare tbody tr:last-child th{ border-bottom:none; }
.cur-compare th{
  font-family:Helvetica, Arial, sans-serif;
  font-weight:700;
  font-size:1rem;
}
.cur-compare thead th:nth-child(1){ background:#eef0f3; width:22%; }
.cur-compare thead th:nth-child(2){ background:#f8ecc4; width:39%; }
.cur-compare thead th:nth-child(3){ background:#dce6f2; width:39%; }
.cur-compare td:not(:first-child){
  font-size:.98rem;
  font-weight:400;
  line-height:1.5;
}
.cur-compare tbody th{
  font-family:Helvetica, Arial, sans-serif;
  font-weight:700;
  font-size:.98rem;
  background:#fff;
}
.cur-compare-note{
  margin:16px 0 0;
  color:#5a5a68;
  font-size:.92rem;
  line-height:1.55;
}

/* Help — image + soft panel */
.cur-help{
  padding:30px 0;
  background:#fff;
}
.cur-help-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:0;
  align-items:stretch;
  max-width:1180px;
  margin:0 auto;
  padding:30px 20px;
}
.cur-help-media{
  border-radius:18px 0 0 18px;
  overflow:hidden;
  min-height:380px;
}
.cur-help-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.cur-help-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:30px 8% 30px 48px;
  background:rgba(54,53,135,.06);
  border-radius:0 18px 18px 0;
}
.cur-help-copy h2{
  margin:0 0 14px;
  color: rgb(52, 50, 114);
  font-family: Helvetica, Arial, sans-serif; font-weight: 700;
  font-size:clamp(1.7rem, 3vw, 2.35rem);
  line-height:1.15;
 
}
.cur-help-copy > p{
  margin:0 0 24px;
  color: rgb(33, 37, 41);
  font-size:1.02rem;
  line-height:1.7;
 
}

/* FAQ — two-column accordion */
.cur-faq{
  padding:48px 0 56px;
  background:#fff;
}
.cur-faq-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px 40px;
  margin-bottom:clamp(28px, 4vw, 44px);
}
.cur-faq-intro h2{
  margin:0;
  color:rgb(52, 50, 114);
  font-family:Helvetica, Arial, sans-serif;
  font-weight:700;
  line-height:1.15;
}
.cur-faq-all{
  flex:0 0 auto;
  margin:0 0 6px;
  color:rgb(52, 50, 114);
  font-family:Helvetica, Arial, sans-serif;
  font-size:.95rem;
  font-weight:700;
  letter-spacing:.01em;
  text-decoration:none;
  white-space:nowrap;
}
.cur-faq-all:hover{ color:var(--marigold); }
.cur-faq-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:0;
  align-items:start;
}
.cur-faq-col{ min-width:0; }
.cur-faq-col + .cur-faq-col{
  border-left:1px solid rgba(54,53,135,.14);
  padding-left:clamp(28px, 4vw, 48px);
  margin-left:clamp(28px, 4vw, 48px);
}
.cur-faq-item{
  margin:0;
  border-bottom:1px solid rgba(54,53,135,.14);
  background:transparent;
}
.cur-faq-col > .cur-faq-item:first-child{
  border-top:1px solid rgba(54,53,135,.14);
}
.cur-faq-item summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:22px 4px 22px 0;
  color:rgb(52, 50, 114);
}
.cur-faq-item summary::-webkit-details-marker,
.cur-faq-item summary::marker{ display:none; content:none; }
.cur-faq-q{
  font-family:Helvetica, Arial, sans-serif;
  font-size:1.02rem;
  font-weight:700;
  line-height:1.45;
  color:rgb(52, 50, 114);
}
.cur-faq-item summary::after{
  content:"";
  flex:0 0 14px;
  width:14px;
  height:14px;
  background:
    linear-gradient(#363587, #363587) center / 12px 1.5px no-repeat,
    linear-gradient(#363587, #363587) center / 1.5px 12px no-repeat;
}
.cur-faq-item[open] summary::after{
  background:linear-gradient(#363587, #363587) center / 12px 1.5px no-repeat;
}
.cur-faq-a{
  padding:0 28px 22px 0;
}
.cur-faq-item p{
  margin:0;
  color:rgb(33, 37, 41);
  font-size:.98rem;
  line-height:1.7;
}

/* Visit — immersive journey panel */
.cur-visit{
  padding:30px 0;
  color:#fff;
  background:
    radial-gradient(ellipse 50% 60% at 100% 100%, rgba(245,195,7,.1), transparent 50%),
    #faf9f6;
}
.cur-visit-panel{
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(280px, .9fr);
  align-items:stretch;
  max-width:1240px;
  margin:0 auto;
  min-height:min(520px, 70vh);
  overflow:hidden;
  background:#363587;
  box-shadow:0 28px 60px -36px rgba(54,53,135,.45);
}
.cur-visit-visual{
  position:relative;
  min-height:100%;
  overflow:hidden;
  background:#2a2968;
}
.cur-visit-visual img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:right;
  display:block;
  transform:scale(1.04);
  transition:transform 1.1s cubic-bezier(.22,1,.36,1);
}
.cur-visit-panel:hover .cur-visit-visual img{
  transform:scale(1.08);
}
.cur-visit-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, transparent 42%, rgba(54,53,135,.55) 100%),
    linear-gradient(180deg, transparent 55%, rgba(42,41,104,.35) 100%);
  pointer-events:none;
}
.cur-visit-copy{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(36px, 5vw, 56px) clamp(28px, 4vw, 48px);
  margin-left:-48px;
  background:
    radial-gradient(ellipse 80% 55% at 100% 0%, rgba(245,195,7,.16), transparent 55%),
    #363587;
  color:#fff;
}
.cur-visit-copy::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:4px;
  height:100%;
  background:var(--marigold);
}
.cur-visit-copy h2{
  margin:0 0 16px;
  color:#fff;
  font-family: Helvetica, Arial, sans-serif; font-weight: 700;
  font-size:clamp(1.95rem, 3.4vw, 2.75rem);
  line-height:1.12;
 
}
.cur-visit-copy > p:not(.cur-kicker){
  margin:0 0 22px;
  color:rgba(255,255,255,.9);
  font-size:1.04rem;
  line-height:1.7;
 
}
.cur-visit-path{
  list-style:none;
  margin:0 0 28px;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 0;
}
.cur-visit-path li{
  position:relative;
  margin:0;
  padding:0 18px 0 0;
  color:rgba(255,255,255,.88);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.cur-visit-path li:not(:last-child)::after{
  content:"";
  position:absolute;
  top:50%;
  right:6px;
  width:8px;
  height:1.5px;
  background:var(--marigold);
  transform:translateY(-50%);
}
.cur-visit-cta .btn{
  width:fit-content;
  max-width:max-content;
}

/* Animations */
.curriculum-page .home-section-anim .home-anim-item{
  opacity:0;
  transform:translateY(24px);
  transition:
    opacity .85s cubic-bezier(.22,1,.36,1),
    transform .85s cubic-bezier(.22,1,.36,1);
  transition-delay:calc(var(--i, 0) * 70ms);
}
.curriculum-page .home-section-anim .home-anim-item.reveal-scale{
  transform:scale(.96) translateY(16px);
}
.curriculum-page .home-section-anim.is-inview .home-anim-item,
.curriculum-page .home-section-anim .home-anim-item.is-animated,
.curriculum-page .home-section-anim .home-anim-item.is-visible{
  opacity:1;
  transform:none;
}
@media (prefers-reduced-motion: reduce){
  .curriculum-page .home-section-anim .home-anim-item{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .cur-stage:hover .cur-stage-media img,
  .cur-visit-panel:hover .cur-visit-visual img{ transform:none; }
}

/* Responsive */
@media (max-width:980px){
  .cur-hero-grid,
  .cur-stage-grid,
  .cur-help-grid{
    grid-template-columns:1fr;
    gap:22px;
  }
  .cur-compare-wrap{ overflow-x:auto; }
  .cur-compare{ min-width:560px; table-layout:auto; }
  .cur-compare th,
  .cur-compare td{ padding:14px 16px; }
  .cur-faq-head{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .cur-faq-grid{
    grid-template-columns:1fr;
  }
  .cur-faq-col + .cur-faq-col{
    border-left:0;
    padding-left:0;
    margin-left:0;
  }
  .cur-faq-col + .cur-faq-col > .cur-faq-item:first-child{
    border-top:0;
  }
  .cur-faq-intro h2{ max-width:none; }
  .cur-hero-copy{ order:1; }
  .cur-hero-media{ order:2; max-width:480px; }
  .cur-hero-media::before{ display:none; }
  .cur-hero-frame img{ aspect-ratio:16 / 11; }
  .cur-hero-lead{ max-width:none; }
  .cur-hero-copy h1{ max-width:none; }
  .cur-help-grid{ padding:30px 16px; }
  .cur-help-media{
    border-radius:18px 18px 0 0;
    min-height:260px;
    aspect-ratio:16 / 10;
  }
  .cur-help-copy{
    border-radius:0 0 18px 18px;
    padding:30px 28px;
  }
  .cur-visit{
    padding:30px 16px;
  }
  .cur-visit-panel{
    grid-template-columns:1fr;
    min-height:0;
  }
  .cur-visit-visual{
    min-height:280px;
    aspect-ratio:16 / 10;
  }
  .cur-visit-visual::after{
    background:linear-gradient(180deg, transparent 35%, rgba(54,53,135,.75) 100%);
  }
  .cur-visit-copy{
    margin-left:0;
    margin-top:-36px;
    padding:36px 28px 40px;
  }
  .cur-visit-copy::before{
    top:0;
    left:0;
    width:100%;
    height:4px;
  }
  .cur-visit-copy h2,
  .cur-visit-copy > p:not(.cur-kicker){ max-width:none; }
  .cur-marks{
    grid-template-columns:minmax(0, 1fr) 1px minmax(0, 1fr);
    gap:0;
    max-width:100%;
  }
  .cur-marks-rule{
    min-height:110px;
    align-self:stretch;
  }
  .cur-mark{ padding:8px 16px; }
  .cur-mark-logo-wrap{
    height:96px;
    max-width:100%;
    padding:12px 14px;
  }
  .cur-mark-name{ font-size:.82rem; max-width:20ch; }
}
@media (max-width:640px){
  .cur-stages,
  .cur-pathways,
  .cur-faq{ padding:30px 0; }
  .cur-visit{ padding:30px 12px; }
  .cur-stage-grid{ gap:36px; }
  .cur-hero-media{ max-width:none; }
  .cur-visit-visual{ min-height:220px; }
  .cur-visit-copy{ padding:30px 22px 34px; }
  .cur-visit-path li{ font-size:.66rem; letter-spacing:.08em; padding-right:14px; }
  .cur-faq-item summary{ padding:18px 0; }
  .cur-faq-a{ padding:0 22px 18px 0; }
}
