/* ============ INNER PAGE CHROME ============ */
.page-hero{
  position:relative;
  background: linear-gradient(135deg, #0097B2 0%, #0097B2 60%, #0097B2 100%);
  color:#fff;
  padding: 130px 0 90px;
  overflow:hidden;
}
.page-hero::before{
  content:""; position:absolute; left:-200px; top:-200px;
  width:600px; height:600px; border-radius:50%;
  border:80px solid rgba(255,255,255,.06);
}
.page-hero::after{
  content:""; position:absolute; right:-100px; bottom:-100px;
  width:400px; height:400px; border-radius:50%;
  background: radial-gradient(circle, rgba(251,191,36,.15), transparent 70%);
}
.page-hero .container{position:relative; z-index:2;}
.page-hero .crumb{
  display:flex; gap:8px; align-items:center;
  font-size:.78rem; letter-spacing:.16em; text-transform:uppercase;
  color: #FADC6E; opacity:.95; margin-bottom:18px;
  font-weight:700;
}
.page-hero .crumb a{color:rgba(255,255,255,.85); text-decoration:none;}
.page-hero .crumb a:hover{color:#fff;}
.page-hero .crumb .sep{opacity:.5; color:#fff;}
.page-hero h1{
  font-family:"Bricolage Grotesque", sans-serif;
  font-weight:700;
  font-size: clamp(2.4rem, 5vw, 4.4rem);
  line-height:1.05;
  margin:0 0 18px;
  letter-spacing:-.02em;
}
.page-hero h1 .accent{color:#FADC6E; font-style:italic;}
.page-hero h1 .underline{position:relative; display:inline-block;}
.page-hero h1 .underline::after{
  content:""; position:absolute; left:-4px; right:-4px; bottom:-6px; height:.16em;
  background:#D962A2; border-radius:6px;
}
.page-hero .lead{
  font-size:1.18rem; line-height:1.65; max-width: 720px;
  color:rgba(255,255,255,.92);
}
.page-hero .grid{
  display:grid; grid-template-columns: 1.2fr 1fr; gap:60px; align-items:center;
}
.page-hero .photo-blob{
  position:relative; width:100%; aspect-ratio: 1/1; max-width:480px; justify-self:end;
}
.page-hero .photo-blob img{
  width:100%; height:100%; object-fit:cover;
  border-radius: 60% 40% 55% 45% / 50% 60% 40% 50%;
  border: 6px solid rgba(255,255,255,.15);
  box-shadow: 0 30px 60px rgba(0,0,0,.3);
}
.page-hero .photo-blob .dot1{position:absolute; top:-20px; right:30px; width:80px; height:80px; border-radius:50%; background:#FADC6E;}
.page-hero .photo-blob .dot2{position:absolute; bottom:20px; left:-30px; width:60px; height:60px; border-radius:50%; background:#D962A2;}
.page-hero .photo-blob .star{position:absolute; bottom:-10px; right:50px; width:60px; height:60px; color:#7ED957;}

@media (max-width: 900px){
  .page-hero{padding: 100px 0 60px;}
  .page-hero .grid{grid-template-columns:1fr; gap:40px;}
  .page-hero .photo-blob{max-width:340px; justify-self:center;}
}

/* ============ INNER PAGE CONTENT ============ */
.section{padding: 90px 0;}
.section.alt{background:#0097B2;}
.section.cream{background:#FADC6E;}
.section.purple{background: linear-gradient(135deg, #0097B2, #0097B2); color:#fff;}
.section.purple h2{color:#fff;}
.section.purple h2 .accent{color:#FADC6E; -webkit-text-fill-color:#FADC6E;}
.section.purple p{color:rgba(255,255,255,.92);}

.section h2{
  font-family:"Bricolage Grotesque", sans-serif;
  font-size: clamp(2rem, 3.5vw, 2.8rem);
  font-weight:700;
  color:#0097B2;
  line-height:1.1; margin:0 0 18px; letter-spacing:-.01em;
}
.section h2 .accent{color:#D962A2; font-style:italic;}
.section .lead{font-size:1.1rem; line-height:1.65; color:#463a5a; max-width:760px;}
.section .head{margin-bottom:50px;}
.section .head .eyebrow{
  display:inline-block;
  font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;
  color:#0097B2; font-weight:700; margin-bottom:12px;
  padding-left:30px; position:relative;
}
.section .head .eyebrow::before{
  content:""; position:absolute; left:0; top:50%; width:22px; height:2px; background:#FADC6E;
}

/* Two-col content */
.two-col{display:grid; grid-template-columns: 1fr 1fr; gap:60px; align-items:center;}
.two-col.text-left{grid-template-columns: 1.1fr .9fr;}
.two-col img.blob{
  width:100%; aspect-ratio: 1/1; object-fit:cover;
  border-radius: 55% 45% 60% 40% / 45% 55% 50% 55%;
  box-shadow: 0 24px 50px rgba(46,16,101,.18);
}
@media (max-width: 900px){
  .two-col, .two-col.text-left{grid-template-columns:1fr; gap:40px;}
}

/* Feature card grid */
.feat-grid{display:grid; grid-template-columns: repeat(3,1fr); gap:28px;}
.feat-grid.cols-4{grid-template-columns: repeat(4,1fr);}
.feat-grid.cols-2{grid-template-columns: repeat(2,1fr);}
.feat-card{
  background:#fff; border-radius:24px; padding:34px 28px;
  border:2px solid #0097B2; position:relative;
  transition: transform .3s, box-shadow .3s;
}
.feat-card:hover{transform:translateY(-4px); box-shadow: 0 20px 40px rgba(108,43,217,.15);}
.feat-card .ico{
  width:60px; height:60px; border-radius:18px;
  background: #0097B2;
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:1.8rem; font-weight:700; margin-bottom:18px;
  font-family:"Bricolage Grotesque", sans-serif;
}
.feat-card.pink .ico{background:#D962A2;}
.feat-card.green .ico{background:#7ED957; color:#0E1530;}
.feat-card.orange .ico{background:#FADC6E; color:#0E1530;}
.feat-card.yellow .ico{background:#FADC6E; color:#0E1530;}
.feat-card.teal .ico{background:#7ED957; color:#0E1530;}
.feat-card h3{
  font-family:"Bricolage Grotesque", sans-serif;
  font-size:1.32rem; color:#0097B2; margin:0 0 10px; font-weight:700;
}
.feat-card p{color:#463a5a; line-height:1.6; margin:0; font-size:.96rem;}
.feat-card ul{margin:14px 0 0; padding:0; list-style:none;}
.feat-card ul li{
  position:relative; padding-left:22px; margin:8px 0;
  font-size:.92rem; color:#463a5a; line-height:1.5;
}
.feat-card ul li::before{
  content:""; position:absolute; left:0; top:8px; width:10px; height:10px;
  background:#FADC6E; border-radius:50%;
}
@media (max-width: 1000px){
  .feat-grid, .feat-grid.cols-4{grid-template-columns: repeat(2,1fr);}
}
@media (max-width: 600px){
  .feat-grid, .feat-grid.cols-4, .feat-grid.cols-2{grid-template-columns:1fr;}
}

/* Big stat row */
.stat-row{
  display:grid; grid-template-columns: repeat(4,1fr); gap:24px;
  background:#fff; border-radius:28px; padding:40px;
  box-shadow: 0 20px 50px rgba(46,16,101,.08);
}
.stat-row .stat{text-align:center; border-right:1px solid #0097B2; padding:8px 12px;}
.stat-row .stat:last-child{border-right:none;}
.stat-row .stat .num{
  font-family:"Bricolage Grotesque", sans-serif;
  font-size:2.6rem; font-weight:800; color:#0097B2; line-height:1;
}
.stat-row .stat:nth-child(2) .num{color:#D962A2;}
.stat-row .stat:nth-child(3) .num{color:#0097B2;}
.stat-row .stat:nth-child(4) .num{color:#D962A2;}
.stat-row .stat .lbl{
  font-size:.82rem; letter-spacing:.12em; text-transform:uppercase;
  color:#6b5e7c; font-weight:600; margin-top:8px;
}
@media (max-width: 800px){
  .stat-row{grid-template-columns: repeat(2,1fr); gap:20px;}
  .stat-row .stat{border-right:none; border-bottom:1px solid #0097B2; padding-bottom:16px;}
}

/* CTA strip */
.cta-strip{
  background: linear-gradient(135deg, #0097B2, #D962A2);
  color:#fff; padding: 70px 0; text-align:center; position:relative; overflow:hidden;
}
.cta-strip::before{
  content:""; position:absolute; left:-100px; top:-100px;
  width:300px; height:300px; border-radius:50%;
  background:rgba(251,191,36,.2);
}
.cta-strip::after{
  content:""; position:absolute; right:-80px; bottom:-80px;
  width:280px; height:280px; border-radius:50%;
  background:rgba(255,255,255,.1);
}
.cta-strip .container{position:relative; z-index:2;}
.cta-strip h2{
  font-family:"Bricolage Grotesque", sans-serif;
  font-size: clamp(1.8rem, 3.5vw, 2.6rem); font-weight:700;
  color:#fff; margin:0 0 16px;
}
.cta-strip h2 .accent{color:#FADC6E; font-style:italic;}
.cta-strip p{font-size:1.1rem; color:rgba(255,255,255,.9); margin:0 0 28px; max-width:600px; margin-left:auto; margin-right:auto;}
.cta-strip .actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
.cta-strip .btn-primary{background:#FADC6E!important; color:#0097B2!important;}
.cta-strip .btn-primary:hover{background:#fff!important;}
.cta-strip .btn-outline{border-color:rgba(255,255,255,.5)!important; color:#fff!important;}
.cta-strip .btn-outline:hover{background:rgba(255,255,255,.15)!important;}

/* Curriculum table */
.curr-table{
  background:#fff; border-radius:24px; overflow:hidden;
  box-shadow:0 20px 50px rgba(46,16,101,.08); border:2px solid #0097B2;
}
.curr-table .row{
  display:grid; grid-template-columns: 200px 1fr; gap:24px;
  padding:24px 32px; border-bottom:1px solid #0097B2; align-items:start;
}
.curr-table .row:last-child{border-bottom:none;}
.curr-table .row:nth-child(odd){background:#0097B2;}
.curr-table .row .k{
  font-family:"Bricolage Grotesque", sans-serif; font-weight:700;
  color:#0097B2; font-size:1.05rem;
}
.curr-table .row .v{color:#463a5a; line-height:1.6;}
.curr-table .row .v ul{margin:6px 0 0; padding:0 0 0 18px;}
@media (max-width:700px){
  .curr-table .row{grid-template-columns:1fr; gap:6px; padding:20px;}
}

/* Photo strip */
.photo-strip{display:grid; grid-template-columns: repeat(4,1fr); gap:14px;}
.photo-strip .ph{
  aspect-ratio: 4/5; background:#0097B2; border-radius:18px; overflow:hidden;
  position:relative;
}
.photo-strip .ph img{width:100%; height:100%; object-fit:cover; transition:transform .4s;}
.photo-strip .ph:hover img{transform:scale(1.06);}
@media (max-width:800px){.photo-strip{grid-template-columns: repeat(2,1fr);}}

/* Timeline */
.timeline{position:relative; padding-left:40px;}
.timeline::before{
  content:""; position:absolute; left:14px; top:8px; bottom:8px; width:3px;
  background: linear-gradient(180deg,#0097B2, #D962A2, #FADC6E);
  border-radius:3px;
}
.timeline .tl-item{position:relative; padding-bottom:34px;}
.timeline .tl-item::before{
  content:""; position:absolute; left:-32px; top:6px; width:18px; height:18px;
  border-radius:50%; background:#FADC6E; border:4px solid #fff; box-shadow:0 0 0 3px #0097B2;
}
.timeline .tl-item .yr{
  font-family:"Bricolage Grotesque", sans-serif; font-weight:700;
  color:#D962A2; font-size:1.1rem; margin-bottom:4px;
}
.timeline .tl-item h4{
  font-family:"Bricolage Grotesque", sans-serif; font-weight:700;
  color:#0097B2; font-size:1.18rem; margin:0 0 6px;
}
.timeline .tl-item p{color:#463a5a; line-height:1.6; margin:0;}

/* News list */
.news-list{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.news-list .ni{
  background:#fff; border-radius:24px; overflow:hidden;
  border:2px solid #0097B2;
  transition:transform .3s, box-shadow .3s;
}
.news-list .ni:hover{transform:translateY(-4px); box-shadow:0 20px 40px rgba(108,43,217,.15);}
.news-list .ni .img{aspect-ratio: 16/10; overflow:hidden; background:#0097B2;}
.news-list .ni .img img{width:100%; height:100%; object-fit:cover;}
.news-list .ni .body{padding:24px;}
.news-list .ni .date{
  display:inline-block; padding: 4px 12px; border-radius:999px;
  background:#FADC6E; color:#0E1530; font-size:.78rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; margin-bottom:12px;
}
.news-list .ni h3{
  font-family:"Bricolage Grotesque", sans-serif; font-weight:700;
  font-size:1.15rem; color:#0097B2; margin:0 0 10px; line-height:1.3;
}
.news-list .ni p{color:#463a5a; line-height:1.55; font-size:.95rem; margin:0;}
@media (max-width:900px){.news-list{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.news-list{grid-template-columns:1fr;}}

/* Contact form */
.cform{
  background:#fff; border-radius:28px; padding:40px;
  box-shadow:0 24px 60px rgba(46,16,101,.08); border:2px solid #0097B2;
}
.cform .row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.cform label{
  display:block; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase;
  color:#0097B2; font-weight:700; margin-bottom:8px;
}
.cform input, .cform select, .cform textarea{
  width:100%; padding:14px 18px; border-radius:14px;
  border:2px solid #0097B2; background:#0097B2; font-size:1rem;
  font-family:inherit; color:#0097B2;
  transition: border-color .2s, background .2s;
}
.cform input:focus, .cform select:focus, .cform textarea:focus{
  outline:none; border-color:#0097B2; background:#fff;
}
.cform .field{margin-bottom:18px;}
.cform textarea{min-height:130px; resize:vertical;}
.cform .submit{
  display:inline-flex; align-items:center; gap:10px;
  background: linear-gradient(135deg,#0097B2, #D962A2); color:#fff;
  border:none; padding:16px 36px; border-radius:999px; cursor:pointer;
  font-weight:700; font-size:1rem; letter-spacing:.04em;
  transition: transform .2s, box-shadow .2s;
}
.cform .submit:hover{transform:translateY(-2px); box-shadow:0 16px 40px rgba(108,43,217,.3);}
@media (max-width:700px){.cform .row{grid-template-columns:1fr;}}

/* Pillar list (used on phase pages) */
.pillar-list{display:grid; gap:18px;}
.pillar-list .pl-item{
  background:#fff; padding:22px 26px; border-radius:16px;
  border-left:5px solid #0097B2;
  display:flex; gap:18px; align-items:flex-start;
}
.pillar-list .pl-item:nth-child(2n){border-left-color:#D962A2;}
.pillar-list .pl-item:nth-child(3n){border-left-color:#FADC6E;}
.pillar-list .pl-item:nth-child(4n){border-left-color:#7ED957;}
.pillar-list .pl-item .n{
  font-family:"Bricolage Grotesque", sans-serif; font-weight:700;
  color:#0097B2; font-size:1.4rem; min-width:36px;
}
.pillar-list .pl-item h4{
  font-family:"Bricolage Grotesque", sans-serif; font-weight:700;
  color:#0097B2; margin:0 0 6px; font-size:1.1rem;
}
.pillar-list .pl-item p{color:#463a5a; line-height:1.55; margin:0; font-size:.95rem;}

/* Toppers grid (achievements page) */
.topp-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.topp-grid .tp{
  background:#fff; border-radius:22px; padding:24px; text-align:center;
  border:2px solid #0097B2; position:relative;
}
.topp-grid .tp::before{
  content:""; position:absolute; top:0; left:24px; right:24px; height:5px;
  background: linear-gradient(90deg,#FADC6E,#FADC6E); border-radius:5px;
}
.topp-grid .tp .av{
  width:96px; height:96px; border-radius:50%; margin:14px auto 16px;
  background: linear-gradient(135deg,#FADC6E,#FADC6E); display:flex; align-items:center;
  justify-content:center; color:#0097B2; font-family:"Bricolage Grotesque",sans-serif;
  font-size:2rem; font-weight:700;
}
.topp-grid .tp .pct{
  font-family:"Bricolage Grotesque", sans-serif; font-weight:800;
  font-size:2rem; color:#0097B2; line-height:1;
}
.topp-grid .tp .nm{
  font-family:"Bricolage Grotesque", sans-serif; font-weight:700;
  color:#0097B2; font-size:1.05rem; margin-top:8px;
}
.topp-grid .tp .yr{font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; color:#6b5e7c; margin-top:4px;}
@media (max-width:900px){.topp-grid{grid-template-columns:repeat(2,1fr);}}

/* Generic content prose */
.prose p{color:#463a5a; line-height:1.75; margin:0 0 16px; font-size:1.04rem;}
.prose h3{
  font-family:"Bricolage Grotesque", sans-serif; font-weight:700;
  color:#0097B2; font-size:1.4rem; margin:30px 0 12px;
}
.prose ul{margin:0 0 16px; padding-left:22px; color:#463a5a; line-height:1.8;}
.prose blockquote{
  border-left:4px solid #FADC6E; padding:8px 22px; margin:24px 0;
  font-style:italic; color:#0097B2; background:#FADC6E; border-radius:0 14px 14px 0;
  font-family:"Bricolage Grotesque", sans-serif; font-weight:500;
}
