:root{--bg:#fffaf5;--ink:#26322e;--muted:#6d7773;--purple:#61359a;--teal:#159d9a;--coral:#ef5e73;--gold:#f6b21a;--line:#e8e4df;--radius:28px;--shadow:0 20px 55px rgba(38,50,46,.10);--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"DM Sans",system-ui,sans-serif;color:var(--ink);line-height:1.65;background:#fff}img{max-width:100%;display:block}.container{width:min(92%,var(--max));margin:auto}.narrow{max-width:850px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:100;background:#fff;padding:.6rem 1rem}
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.05)}.nav-wrap{min-height:78px;display:flex;justify-content:space-between;align-items:center;gap:2rem}.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font:900 1.1rem "Nunito"}.brand-mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f7e7ff;color:var(--purple)}.main-nav{display:flex;align-items:center;gap:1.3rem}.main-nav a{text-decoration:none;font-weight:700}.main-nav a.active{color:var(--purple)}.menu-toggle{display:none}
.btn{display:inline-flex;justify-content:center;align-items:center;background:var(--purple);color:#fff;border:0;border-radius:999px;padding:.92rem 1.25rem;text-decoration:none;font-weight:800;cursor:pointer}.btn:hover{filter:brightness(.95);transform:translateY(-1px)}.btn-small{padding:.68rem 1rem}.btn-secondary{background:var(--teal)}
.hero{padding:72px 0 58px;background:linear-gradient(135deg,#fffaf5,#fbf6ff)}.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:54px;align-items:center}.hero h1,.page-hero h1{font:900 clamp(2.8rem,6vw,5.4rem)/.98 "Nunito";letter-spacing:-.05em;margin:.3rem 0 1.2rem}.hero p,.page-hero p{font-size:1.12rem;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:900;color:var(--teal)}.hero-actions{display:flex;gap:1.1rem;align-items:center;margin:1.6rem 0}.text-link{font-weight:800;text-decoration:none}.trust-row{display:flex;flex-wrap:wrap;gap:1rem;color:var(--muted);font-size:.94rem}.hero-visual{position:relative}.hero-visual img{border-radius:42px;aspect-ratio:1.08/1;object-fit:cover;box-shadow:var(--shadow)}.floating-card{position:absolute;left:-24px;bottom:26px;background:#fff;padding:1rem 1.2rem;border-radius:18px;box-shadow:var(--shadow);display:grid}.floating-card span{font-size:.86rem;color:var(--muted)}
.section{padding:90px 0}.soft{background:#f8fbfa}.section-heading{max-width:760px;margin-bottom:36px}.section h2,.cta h2{font:900 clamp(2rem,4vw,3.35rem)/1.05 "Nunito";letter-spacing:-.035em;margin:.35rem 0 1rem}.section-heading p{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.cards.three{grid-template-columns:repeat(3,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px}.icon{font-size:2rem}.card h3{font:900 1.35rem "Nunito";margin:.6rem 0}.card p{color:var(--muted);margin:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center}.check-list{list-style:none;padding:0}.check-list li{padding:.45rem 0}.check-list li::before{content:"✓";color:var(--teal);font-weight:900;margin-right:.7rem}.page-hero{padding:85px 0 65px;background:linear-gradient(135deg,#fffaf5,#fbf6ff)}.page-hero h1{font-size:clamp(2.6rem,5.5vw,4.7rem)}
.program-row{display:grid;grid-template-columns:85px 1fr;gap:20px;border-bottom:1px solid var(--line);padding:30px 0}.program-num{font:900 1.1rem "Nunito";color:var(--coral)}.program-row h2{margin:0 0 .4rem;font-size:2rem}.program-row p{margin:0;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:54px}.form-card{border:1px solid var(--line);border-radius:30px;padding:30px;box-shadow:var(--shadow)}form{display:grid;gap:16px}label{display:grid;gap:7px;font-weight:700}input,select,textarea{width:100%;font:inherit;padding:.9rem 1rem;border:1px solid #d7dad6;border-radius:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.consent{grid-template-columns:auto 1fr;align-items:start;font-weight:500}.consent input{width:auto;margin-top:.35rem}.hp{position:absolute;left:-9999px}.success-message{padding:1rem;background:#eaf7ee;border-radius:12px;margin-bottom:1rem}
.cta{padding:48px 0;background:#f7e4ff}.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem}.site-footer{background:#20162e;color:#eee7f7;padding:58px 0 20px}.footer-grid{display:grid;grid-template-columns:1.4fr .7fr 1fr;gap:44px}.footer-grid a{display:block;color:#dfd5eb;text-decoration:none;margin:.35rem 0}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:38px;padding-top:18px;color:#b7acc3;font-size:.9rem}.footer-brand{margin-bottom:.8rem}
@media(max-width:900px){.hero-grid,.split,.contact-grid{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.main-nav{position:absolute;left:4%;right:4%;top:72px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:1rem;box-shadow:var(--shadow);display:none;flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.menu-toggle{display:block;border:1px solid var(--line);background:#fff;border-radius:999px;padding:.65rem 1rem;font-weight:800}.floating-card{left:18px}.cta-inner{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:600px){.section{padding:66px 0}.cards,.cards.three,.form-grid{grid-template-columns:1fr}.hero h1{font-size:3.2rem}.hero-actions{align-items:flex-start;flex-direction:column}.floating-card{position:static;margin-top:12px}.program-row{grid-template-columns:1fr;gap:4px}.form-card{padding:20px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}}


/* ---- Premium visual homepage additions ---- */
.hero-premium{position:relative;overflow:hidden;padding:92px 0 78px;background:linear-gradient(125deg,#fff9f0 0%,#fff 45%,#f7efff 100%)}
.blob{position:absolute;border-radius:50%;filter:blur(1px);opacity:.55;pointer-events:none}.blob-one{width:340px;height:340px;background:#e4f8f1;left:-120px;top:-110px}.blob-two{width:300px;height:300px;background:#f9e2ee;right:-100px;bottom:-120px}
.hero-premium .hero-grid{position:relative;z-index:2}
.hero-premium h1{font-size:clamp(3.4rem,7.2vw,6.25rem);max-width:720px}.highlight{color:var(--purple);position:relative}.highlight:after{content:"";position:absolute;height:13px;left:2%;right:0;bottom:4px;background:#f7cf53;z-index:-1;border-radius:999px;transform:rotate(-1deg)}
.btn-large{padding:1.08rem 1.55rem;font-size:1.02rem;box-shadow:0 12px 30px rgba(97,53,154,.22)}.call-pill{display:inline-flex;align-items:center;padding:.95rem 1.2rem;border:1px solid var(--line);border-radius:999px;background:#fff;text-decoration:none;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.05)}
.mini-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.mini-badges span{padding:.55rem .78rem;background:#fff;border:1px solid #eee8e2;border-radius:12px;font-size:.86rem;font-weight:700}
.hero-photo-wrap{position:relative;padding:18px}.hero-main-photo{width:100%;border-radius:44px;box-shadow:0 28px 70px rgba(48,36,61,.16);transform:rotate(1.5deg)}
.photo-sticker{position:absolute;background:#fff;border-radius:16px;padding:.85rem 1rem;box-shadow:0 12px 35px rgba(0,0,0,.13);font-weight:900}.photo-sticker small{display:block;font-weight:600;color:var(--muted)}.sticker-top{right:-4px;top:0;color:var(--purple);transform:rotate(3deg)}.sticker-bottom{left:-3px;bottom:9px;transform:rotate(-2deg)}
.program-strip{padding:0 0 22px;background:#fff}.program-strip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:-20px;position:relative;z-index:4}.program-strip a{display:flex;gap:12px;align-items:center;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:20px;text-decoration:none;box-shadow:0 10px 30px rgba(0,0,0,.06)}.program-strip a:nth-child(1){border-top:4px solid #8b5cf6}.program-strip a:nth-child(2){border-top:4px solid #2bb5ad}.program-strip a:nth-child(3){border-top:4px solid #f2667c}.program-strip a:nth-child(4){border-top:4px solid #f6b21a}.program-emoji{font-size:1.8rem}.program-strip strong,.program-strip small{display:block}.program-strip small{color:var(--muted)}
.section-intro-center{text-align:center;max-width:820px}.section-intro-center p{color:var(--muted);font-size:1.05rem}.visual-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}.visual-card{overflow:hidden;border-radius:30px;border:1px solid var(--line);box-shadow:0 14px 38px rgba(0,0,0,.06)}.visual-card img{aspect-ratio:1.35/1;object-fit:cover;width:100%}.visual-card-copy{padding:24px}.visual-card-copy>span{font-size:.75rem;letter-spacing:.14em;font-weight:900;color:var(--purple)}.visual-card-copy h3{font:900 1.55rem "Nunito";margin:.4rem 0}.visual-card-copy p{color:var(--muted);margin:0}.lavender{background:#fbf8ff}.mint{background:#f4fcf9}.peach{background:#fff8f3}
.why-section{background:#fffaf6}.why-grid{grid-template-columns:.9fr 1.1fr}.image-stack{position:relative;padding:22px 45px 45px 0}.stack-main{border-radius:34px;box-shadow:var(--shadow)}.stack-accent{position:absolute;right:13px;top:2px;width:82px;height:82px;border-radius:50%;background:#f6b21a;display:grid;place-items:center;font-size:2rem;color:white;transform:rotate(11deg)}.stack-note{position:absolute;right:0;bottom:0;background:#61359a;color:#fff;padding:20px 24px;border-radius:20px;box-shadow:0 14px 40px rgba(97,53,154,.25);font-size:1rem}
.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}.feature-box{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:start;background:#fff;border:1px solid var(--line);padding:18px;border-radius:18px}.feature-box b{grid-row:1/3;font-size:1.45rem}.feature-box strong{font-family:"Nunito";font-size:1.05rem}.feature-box span{color:var(--muted);font-size:.9rem}
.gallery-section{background:#f7fbfa}.section-heading-row{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:end}.section-heading-row p{color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:1.45fr .8fr;grid-template-rows:1fr 1fr;gap:18px;margin-top:34px}.gallery-grid figure{margin:0;border-radius:28px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.07)}.gallery-grid img{width:100%;height:100%;object-fit:cover}.gallery-large{grid-row:1/3}
.enroll-banner{background:linear-gradient(135deg,#5e3291,#7c49ad);color:#fff;padding:62px 0}.enroll-inner{display:flex;justify-content:space-between;gap:35px;align-items:center}.enroll-banner h2{font:900 clamp(2.1rem,4vw,3.5rem)/1.05 "Nunito";margin:.4rem 0}.enroll-banner p{color:#eee1f8}.light-eyebrow{color:#ffe184}.enroll-actions{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:210px}.btn-white{background:#fff;color:#603493}.phone-white{color:#fff;font-weight:900;text-decoration:none}
@media(max-width:900px){.program-strip-grid,.visual-card-grid{grid-template-columns:1fr 1fr}.section-heading-row{grid-template-columns:1fr}.enroll-inner{align-items:flex-start;flex-direction:column}.feature-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-large{grid-column:1/-1;grid-row:auto}.hero-main-photo{transform:none}}
@media(max-width:600px){.program-strip-grid,.visual-card-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr}.gallery-large{grid-column:auto}.hero-premium{padding-top:62px}.hero-premium h1{font-size:3.5rem}.photo-sticker{font-size:.8rem}.sticker-bottom{left:8px}.sticker-top{right:8px}.mini-badges{display:grid}.feature-grid{grid-template-columns:1fr}.enroll-actions{align-items:stretch;width:100%}.program-strip{padding-top:22px}.program-strip-grid{margin-top:0}}


/* Compact responsive logo */
.brand-logo-link{display:flex;align-items:center;line-height:0;flex:0 0 auto}
.site-logo{display:block;width:82px;height:82px;object-fit:contain}
.site-header .nav-wrap{min-height:92px}
@media(max-width:900px){
  .site-logo{width:68px;height:68px}
  .site-header .nav-wrap{min-height:80px}
}
@media(max-width:600px){
  .site-logo{width:58px;height:58px}
  .site-header .nav-wrap{min-height:70px}
}


/* Contact form security/status */
.hp-field{
  position:absolute!important;
  left:-10000px!important;
  top:auto!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}
.form-alert{
  margin:0 0 18px;
  padding:14px 16px;
  border-radius:12px;
  font-weight:700;
}
.form-success{background:#eef9f0;border:1px solid #b8e1c0}
.form-error{background:#fff4f2;border:1px solid #efc6c0}







/* =====================================
   Tuition & Fees
===================================== */

.tuition-section {
  padding: 90px 20px;
  background: linear-gradient(180deg, #fffaf7 0%, #f7fbfa 100%);
}

.tuition-section .section-heading {
  max-width: 760px;
  margin: 0 auto 45px;
  text-align: center;
}

.tuition-section .eyebrow {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 2px;
  color: #6c3bb4;
}

.tuition-section h2 {
  margin: 0 0 15px;
  font-family: "Nunito", sans-serif;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.05;
  color: #20322c;
}

.tuition-section .section-heading p {
  color: #65726d;
  font-size: 17px;
  line-height: 1.7;
}

.tuition-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  max-width: 1200px;
  margin: 0 auto;
}

.tuition-card {
  background: #ffffff;
  border: 1px solid #eee7e2;
  border-radius: 26px;
  padding: 32px 25px;
  text-align: center;
  box-shadow: 0 16px 40px rgba(42, 34, 66, 0.07);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.tuition-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 45px rgba(42, 34, 66, 0.12);
}

.tuition-icon {
  font-size: 42px;
  margin-bottom: 12px;
}

.tuition-card h3 {
  margin: 0;
  font-family: "Nunito", sans-serif;
  font-size: 23px;
  color: #20322c;
}

.tuition-card .age {
  margin: 6px 0 18px;
  color: #7b847f;
  font-size: 14px;
  font-weight: 600;
}

.price {
  margin-bottom: 20px;
}

.price span {
  display: block;
  font-family: "Nunito", sans-serif;
  font-size: 42px;
  line-height: 1;
  font-weight: 900;
  color: #6c3bb4;
}

.price small {
  display: block;
  margin-top: 6px;
  font-size: 14px;
  color: #69756f;
}

.tuition-card > p:last-child {
  font-size: 15px;
  line-height: 1.65;
  color: #69756f;
}

.fee-details {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 1000px;
  margin: 40px auto 0;
}

.fee-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: #ffffff;
  padding: 23px;
  border-radius: 20px;
  border: 1px solid #eee7e2;
}

.fee-icon {
  font-size: 28px;
}

.fee-item h3 {
  margin: 0 0 5px;
  font-size: 17px;
  color: #20322c;
}

.fee-item p {
  margin: 0;
  color: #66736e;
  line-height: 1.5;
}

.tuition-note {
  display: flex;
  gap: 15px;
  align-items: center;
  max-width: 900px;
  margin: 30px auto 0;
  padding: 23px 28px;
  background: #fff0f5;
  border-radius: 20px;
  color: #492c47;
}

.tuition-note > span {
  font-size: 32px;
}

.tuition-note p {
  margin: 5px 0 0;
  color: #735d70;
}

.tuition-cta {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 22px;
  margin-top: 35px;
}

.tuition-phone {
  font-weight: 700;
  color: #6c3bb4;
  text-decoration: none;
}

.tuition-phone:hover {
  text-decoration: underline;
}

@media (max-width: 1000px) {
  .tuition-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .fee-details {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .tuition-section {
    padding: 65px 16px;
  }

  .tuition-grid {
    grid-template-columns: 1fr;
  }

  .tuition-card {
    padding: 28px 20px;
  }

  .tuition-cta {
    flex-direction: column;
  }

  .tuition-note {
    align-items: flex-start;
  }
}




/* =====================================
   What to Bring & Feeding Information
===================================== */

.program-info-section {
  padding: 85px 20px;
  background: #ffffff;
}

.program-info-section .section-heading {
  max-width: 760px;
  margin: 0 auto 42px;
  text-align: center;
}

.program-info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  max-width: 1050px;
  margin: 0 auto;
}

.program-info-card {
  background: #fff;
  border: 1px solid #ebe7e4;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(31, 38, 35, 0.08);
}

.info-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px;
  color: #fff;
}

.info-card-header.teal {
  background: #149c97;
}

.info-card-header.pink {
  background: #ef4f7c;
}

.info-card-header span {
  font-size: 28px;
}

.info-card-header h3 {
  margin: 0;
  font-family: "Nunito", sans-serif;
  font-size: 23px;
  color: #fff;
}

.check-list {
  list-style: none;
  margin: 0;
  padding: 28px 30px 32px;
}

.check-list li {
  position: relative;
  padding: 9px 0 9px 34px;
  color: #49544f;
  line-height: 1.55;
}

.check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 9px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #149c97;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  text-align: center;
  line-height: 22px;
}

.feeding-block {
  padding: 28px 30px;
}

.feeding-block h4 {
  margin: 0 0 10px;
  font-family: "Nunito", sans-serif;
  font-size: 20px;
  color: #ef4f7c;
}

.feeding-block p {
  margin: 0 0 14px;
  color: #4f5a55;
  line-height: 1.7;
}

.feeding-divider {
  border-top: 1px dashed #ef9bb5;
  margin: 0 30px;
}

@media (max-width: 800px) {
  .program-info-grid {
    grid-template-columns: 1fr;
  }

  .program-info-section {
    padding: 65px 16px;
  }
}


/* =====================================
   Frequently Asked Questions
===================================== */

.faq-section {
  padding: 90px 20px;
  background: #f8fbfa;
}

.faq-section .section-heading {
  max-width: 760px;
  margin: 0 auto 42px;
  text-align: center;
}

.faq-list {
  max-width: 900px;
  margin: 0 auto;
}

.faq-list details {
  margin-bottom: 14px;
  background: #fff;
  border: 1px solid #e8e5e2;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 8px 25px rgba(31, 38, 35, 0.05);
}

.faq-list summary {
  position: relative;
  padding: 21px 60px 21px 24px;
  cursor: pointer;
  list-style: none;
  font-family: "Nunito", sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: #20322c;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::after {
  content: "+";
  position: absolute;
  right: 23px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #6c3bb4;
  color: #fff;
  text-align: center;
  line-height: 29px;
  font-size: 21px;
}

.faq-list details[open] summary::after {
  content: "−";
}

.faq-answer {
  padding: 0 24px 22px;
  color: #5e6a65;
  line-height: 1.7;
}

.faq-answer p {
  margin: 0 0 12px;
}

.faq-answer p:last-child {
  margin-bottom: 0;
}

.faq-answer ul {
  margin: 8px 0 15px;
  padding-left: 23px;
}

.faq-answer li {
  margin: 6px 0;
}

.faq-cta {
  max-width: 900px;
  margin: 35px auto 0;
  padding: 32px;
  text-align: center;
  background: #fff4f7;
  border-radius: 22px;
}

.faq-cta h3 {
  margin: 0 0 7px;
  font-family: "Nunito", sans-serif;
  font-size: 25px;
  color: #20322c;
}

.faq-cta p {
  margin: 0 0 20px;
  color: #68746f;
}

@media (max-width: 620px) {
  .faq-section {
    padding: 65px 15px;
  }

  .faq-list summary {
    padding: 18px 55px 18px 19px;
    font-size: 16px;
  }

  .faq-answer {
    padding: 0 19px 20px;
  }
}





/* =====================================
   Homepage Programs Preview
===================================== */

.home-programs-preview {
  padding: 90px 20px;
  background: #fffaf7;
}

.home-programs-preview .section-heading {
  max-width: 780px;
  margin: 0 auto 42px;
  text-align: center;
}

.home-programs-preview .eyebrow {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 2px;
  color: #159b98;
}

.home-programs-preview h2 {
  margin: 0 0 14px;
  font-family: "Nunito", sans-serif;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.08;
  color: #20322c;
}

.home-programs-preview .section-heading p {
  margin: 0;
  color: #68746f;
  font-size: 17px;
  line-height: 1.7;
}

.home-program-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  max-width: 1200px;
  margin: 0 auto;
}

.home-program-card {
  display: block;
  overflow: hidden;
  background: #fff;
  border: 1px solid #ece6e1;
  border-radius: 24px;
  text-decoration: none;
  box-shadow: 0 14px 34px rgba(38, 35, 49, 0.07);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.home-program-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 42px rgba(38, 35, 49, 0.12);
}

.home-program-card img {
  width: 100%;
  height: 210px;
  object-fit: cover;
  display: block;
}

.home-program-content {
  padding: 24px 22px 26px;
}

.program-label {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.5px;
  color: #6c3bb4;
}

.home-program-content h3 {
  margin: 0 0 10px;
  font-family: "Nunito", sans-serif;
  font-size: 22px;
  line-height: 1.2;
  color: #20322c;
}

.home-program-content p {
  margin: 0;
  color: #69756f;
  line-height: 1.65;
  font-size: 15px;
}

.home-programs-cta {
  margin-top: 35px;
  text-align: center;
}

@media (max-width: 1050px) {
  .home-program-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 620px) {
  .home-programs-preview {
    padding: 65px 16px;
  }

  .home-program-grid {
    grid-template-columns: 1fr;
  }

  .home-program-card img {
    height: 230px;
  }
}


/* ========================================
   PROGRAMS PAGE HERO
======================================== */

.programs-hero {
    position: relative;
    overflow: hidden;
    padding: 95px 20px 105px;
    background:
        radial-gradient(circle at 10% 20%, rgba(255, 190, 70, .20), transparent 25%),
        radial-gradient(circle at 88% 25%, rgba(130, 83, 190, .16), transparent 28%),
        linear-gradient(135deg, #fff8ef 0%, #fff4f8 48%, #f5f1ff 100%);
}

.programs-hero-content {
    position: relative;
    z-index: 2;
    max-width: 850px;
    text-align: center;
    margin: 0 auto;
}

.programs-hero-label {
    display: inline-block;
    margin-bottom: 18px;
    padding: 8px 18px;
    border-radius: 50px;
    background: #ffffff;
    color: #159c9a;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 2px;
    box-shadow: 0 5px 20px rgba(0,0,0,.05);
}

.programs-hero h1 {
    margin: 0 auto 22px;
    color: #20382f;
    font-family: "Nunito", sans-serif;
    font-size: clamp(42px, 5vw, 67px);
    font-weight: 900;
    line-height: 1.04;
    letter-spacing: -1.5px;
}

.programs-hero h1 span {
    color: #6734a5;
}

.programs-hero p {
    max-width: 730px;
    margin: 0 auto;
    color: #66736e;
    font-size: 18px;
    line-height: 1.75;
}

.programs-hero-buttons {
    margin-top: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 25px;
    flex-wrap: wrap;
}

.programs-hero-link {
    color: #6734a5;
    font-weight: 800;
    text-decoration: none;
}

.programs-hero-link:hover {
    text-decoration: underline;
}


/* Decorative daycare shapes */

.programs-hero-shape {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.programs-hero .shape-one {
    width: 150px;
    height: 150px;
    background: rgba(255, 184, 31, .18);
    left: -45px;
    top: 45px;
}

.programs-hero .shape-two {
    width: 220px;
    height: 220px;
    background: rgba(103, 52, 165, .09);
    right: -80px;
    top: 20px;
}

.programs-hero .shape-three {
    width: 90px;
    height: 90px;
    background: rgba(18, 166, 164, .12);
    right: 18%;
    bottom: -35px;
}


/* Mobile */

@media (max-width: 768px) {

    .programs-hero {
        padding: 65px 18px 75px;
    }

    .programs-hero h1 {
        font-size: 42px;
    }

    .programs-hero p {
        font-size: 16px;
    }

    .programs-hero-buttons {
        gap: 15px;
    }
}


/* ========================================
   STANDARD PAGE HERO - ALL PAGES
======================================== */

.page-hero {
    position: relative;
    overflow: hidden;
    padding: 85px 20px 90px;

    background:
        radial-gradient(circle at 10% 20%,
            rgba(255, 190, 70, .20),
            transparent 25%),

        radial-gradient(circle at 88% 25%,
            rgba(130, 83, 190, .16),
            transparent 28%),

        linear-gradient(
            135deg,
            #fff8ef 0%,
            #fff4f8 48%,
            #f5f1ff 100%
        );
}

.page-hero h1 {
    color: #20382f;
}

.page-hero .eyebrow {
    color: #159c9a;
}

.page-hero p {
    color: #66736e;
}

@media (max-width: 768px) {
    .page-hero {
        padding: 60px 18px 70px;
    }
}

.page-hero .narrow {
    max-width: 850px;
    margin: 0 auto;
    text-align: center;
}