@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');
:root{--purple:#7017a8;--purple2:#a82fc4;--green:#6b9e19;--lime:#9fc72c;--dark:#24152e;--light:#faf9fc;--white:#fff;--shadow:0 16px 45px rgba(45,20,60,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"DM Sans",Arial,sans-serif;color:var(--dark);background:var(--white);line-height:1.6}a{text-decoration:none;color:inherit}.container{width:min(1120px,92%);margin:auto}.header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid #eee}.nav{min-height:84px;display:flex;align-items:center;justify-content:space-between}.brand img{width:210px;display:block}.links{display:flex;gap:28px;align-items:center;font-weight:600}.links a:hover{color:var(--purple)}.menu{display:none;border:0;background:none;font-size:28px;color:var(--purple)}
.hero{position:relative;overflow:hidden;min-height:620px;background:linear-gradient(120deg,#f8f3fb 0%,#fff 55%,#f4f9e9 100%);display:flex;align-items:center}.hero:after{content:"";position:absolute;width:500px;height:500px;border-radius:50%;right:-160px;top:-120px;background:radial-gradient(circle,#b5d65d55 0,#b5d65d00 70%)}.hero-content{position:relative;z-index:2;display:grid;grid-template-columns:1.4fr .7fr;gap:60px;align-items:center}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:800;color:var(--green)}h1,h2{font-family:"Playfair Display",Georgia,serif;line-height:1.08;margin:12px 0}h1{font-size:clamp(46px,6vw,76px)}h1 span{color:var(--purple)}h2{font-size:clamp(34px,4vw,50px)}.hero-copy p{font-size:19px;max-width:650px;color:#5e5363}.buttons{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap}.btn{display:inline-block;padding:15px 24px;border-radius:8px;font-weight:800;letter-spacing:.4px}.primary{background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;box-shadow:0 10px 25px #7017a833}.primary:hover{transform:translateY(-2px)}.light{background:#fff;border:2px solid var(--green);color:var(--green)}.hero-card{background:#fff;border-radius:28px;padding:42px 34px;text-align:center;box-shadow:var(--shadow);border-top:7px solid var(--purple)}.heart{font-size:70px;line-height:1;color:var(--purple)}.hero-card h3{font-family:"Playfair Display",Georgia,serif;font-size:26px;margin:18px 0 4px}.hero-card p{color:var(--green);font-weight:700}.mini-line{height:3px;width:60px;margin:22px auto;background:linear-gradient(90deg,var(--purple),var(--green))}
.announcement{background:var(--purple);color:#fff}.announcement-inner{display:flex;justify-content:space-between;align-items:center;padding:20px 0;gap:20px}.announcement span{display:block;opacity:.8;font-size:14px}.announcement a{background:var(--lime);color:#203000;padding:10px 17px;border-radius:7px;font-weight:800;white-space:nowrap}
.section{padding:90px 0}.section-heading{text-align:center;max-width:700px;margin:0 auto 48px}.section-heading p{color:#716778;font-size:17px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{padding:30px;background:#fff;border:1px solid #eee;border-radius:18px;box-shadow:0 8px 28px #3b18400d;transition:.2s}.card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.icon{font-size:36px}.card h3{font-size:22px;margin:14px 0 7px}.card p{color:#665d6b}.card a{font-weight:800;color:var(--purple)}
.about{padding:90px 0;background:linear-gradient(120deg,#faf5fd,#f4f9ea)}.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.about-logo{background:#fff;border-radius:30px;padding:35px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center}.about-logo img{max-width:100%}.about p{font-size:17px;color:#625969}.checks{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:25px;font-weight:600}.checks div{background:#fff;padding:12px;border-radius:8px;border-left:4px solid var(--green)}
.register{padding:90px 0}.register-box{max-width:900px;margin:auto;padding:38px;background:#fff;border:1px solid #ece6ef;border-radius:22px;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;gap:30px}.register-box h3{font-family:"Playfair Display",Georgia,serif;font-size:30px;margin:0 0 5px}.register-box p{color:#675e6d}.register-note{background:#f4f9e9;padding:20px;border-radius:12px;min-width:250px}.register-note a{color:var(--purple);font-weight:800}
.contact{padding:75px 0;background:var(--dark);color:#fff}.contact h2{color:#fff}.contact p{color:#d8cfe0;max-width:580px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact-details{display:grid;gap:20px}.contact-details div{padding:18px 20px;border-left:4px solid var(--lime);background:#ffffff0a;border-radius:7px}.contact-details strong,.contact-details span{display:block}.contact-details span{color:#d8cfe0;margin-top:4px}.contact-details a{color:#b9df53}
footer{background:#170e1d;color:#bdb3c4}.footer-inner{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-inner img{width:155px;background:#fff;border-radius:8px;padding:5px}
@media(max-width:800px){.links{display:none;position:absolute;top:84px;left:0;right:0;background:#fff;padding:20px;flex-direction:column;border-bottom:1px solid #eee}.links.open{display:flex}.menu{display:block}.hero-content,.about-grid,.contact-grid{grid-template-columns:1fr}.hero{padding:70px 0}.hero-card{max-width:420px;margin:auto}.cards{grid-template-columns:1fr 1fr}.register-box{flex-direction:column;align-items:flex-start}.announcement-inner{flex-direction:column;align-items:flex-start}.footer-inner{flex-direction:column;padding:20px 0}}
@media(max-width:520px){.cards{grid-template-columns:1fr}.checks{grid-template-columns:1fr}.brand img{width:175px}.section,.about,.register{padding:65px 0}}

.upcoming{background:#fbfafc}.class-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.class-card{background:#fff;border:1px solid #eee;border-radius:18px;padding:30px;box-shadow:0 8px 28px #3b18400d;position:relative}.class-card.featured{border-top:6px solid var(--green)}.date-badge{display:inline-block;background:#f1f8df;color:#557d0f;font-weight:800;font-size:12px;letter-spacing:1px;padding:7px 10px;border-radius:6px}.class-card h3{font-family:"Playfair Display",Georgia,serif;font-size:28px;margin:16px 0 5px}.class-card p{color:#665d6b}.class-card .schedule{font-weight:800;color:var(--purple);margin-top:0}.btn.small{padding:11px 18px;font-size:13px}.class-note{margin:30px auto 0;max-width:800px;padding:18px 22px;border-radius:10px;background:linear-gradient(90deg,#f4f9e9,#faf4fc);text-align:center}.class-note strong,.class-note span{display:block}.class-note span{color:#6a6170;margin-top:3px}@media(max-width:800px){.class-grid{grid-template-columns:1fr}}

.portal-section{padding:90px 0;background:linear-gradient(120deg,#f5faeb,#faf5fd)}
.portal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:900px;margin:auto}
.portal-card{background:#fff;border:1px solid #ece7ef;border-radius:20px;padding:34px;box-shadow:var(--shadow);text-align:center;border-top:6px solid var(--green)}
.portal-card:nth-child(2){border-top-color:var(--purple)}
.portal-icon{font-size:48px}
.portal-card h3{font-family:"Playfair Display",Georgia,serif;font-size:27px;margin:12px 0 6px}
.portal-card p{color:#665d6b;margin-bottom:22px}
.portal-help{max-width:900px;margin:25px auto 0;padding:18px 22px;border-radius:12px;background:#fff;text-align:center;border-left:4px solid var(--purple)}
.portal-help strong,.portal-help span{display:block}.portal-help span{color:#665d6b;margin-top:4px}.portal-help a{color:var(--purple);font-weight:800}
.staff-portal{background:#24152e;color:#fff}.staff-portal .eyebrow{color:#b9df53}.staff-portal h2{color:#fff}.staff-portal .section-heading p{color:#d8cfe0}
.staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.staff-card{background:#ffffff0d;border:1px solid #ffffff1c;border-radius:16px;padding:28px}.staff-card span{font-size:34px}.staff-card h3{font-size:21px;margin:10px 0 5px}.staff-card p{color:#d8cfe0;margin:0}
@media(max-width:800px){.portal-grid,.staff-grid{grid-template-columns:1fr}}

.portal-btn{background:#fff;border:2px solid var(--purple);color:var(--purple)}
.portal-btn:hover{background:#f8effc}
.portal-section{scroll-margin-top:84px}
.portal-section .section-heading{margin-bottom:38px}
.portal-card .btn{margin-top:4px}
.contact-details a[href^="mailto"]{color:#b9df53}
@media(max-width:800px){
  .links{gap:12px}
  .links a{padding:5px 0}
  .buttons .btn{width:100%;text-align:center}
}

.portal-page{padding:70px 0 100px;min-height:calc(100vh - 84px);background:linear-gradient(120deg,#faf5fd,#f5faeb)}
.portal-page h1{font-family:"Playfair Display",Georgia,serif;font-size:clamp(42px,6vw,68px);line-height:1.08;margin:12px 0}
.portal-page .section-heading{max-width:780px}
.back-link{display:inline-block;margin-bottom:35px;font-weight:800;color:var(--purple)}
.portal-page .portal-grid{max-width:900px}
.portal-page .portal-card h2{font-family:"Playfair Display",Georgia,serif;font-size:29px;margin:12px 0 6px}

/* Professional refresh */
body{font-family:"DM Sans",Arial,sans-serif}
.hero{position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:58px;align-items:center;padding:88px 0 92px}
.hero-copy h1{font-family:"Playfair Display",Georgia,serif;font-size:clamp(48px,6.3vw,82px);line-height:1.02;letter-spacing:-2px;margin:15px 0 24px}
.hero-copy h1 span{color:var(--purple)}
.hero-lead{font-size:20px;line-height:1.65;max-width:690px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 22px}
.trust-row{display:flex;flex-wrap:wrap;gap:18px;font-weight:700;font-size:14px}
.hero-card{position:relative;border-radius:30px;padding:34px;min-height:470px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:linear-gradient(145deg,#fff,#f7f1fb);border:1px solid #eadff0;box-shadow:0 25px 70px rgba(66,29,85,.14);overflow:hidden}
.hero-card-glow{position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(185,223,83,.22);filter:blur(5px);top:-80px;right:-60px}
.hero-card img{position:relative;width:min(285px,80%);margin-bottom:18px}
.hero-card-content{position:relative}
.hero-card-content>span{font-size:12px;font-weight:800;letter-spacing:2px;color:#6b9020}
.hero-card-content h2{font-family:"Playfair Display",Georgia,serif;font-size:31px;margin:8px 0}
.hero-card-content p{color:#665d6b}
.hero-card-content a{font-weight:800;color:var(--purple)}
.program-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.program-card{position:relative;background:#fff;border:1px solid #ece7ef;border-radius:20px;padding:28px;box-shadow:0 10px 35px rgba(43,24,55,.06);transition:transform .2s ease,box-shadow .2s ease}
.program-card:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(43,24,55,.11)}
.program-card-highlight{background:linear-gradient(145deg,#faf5fd,#f6fbe9)}
.program-number{position:absolute;top:18px;right:20px;font-size:12px;font-weight:800;color:#a4aa9a}
.program-icon{font-size:38px;margin:12px 0}
.program-card h3{font-family:"Playfair Display",Georgia,serif;font-size:26px;margin:5px 0 10px}
.program-card p{color:#665d6b;line-height:1.6;min-height:78px}
.program-card a{font-weight:800;color:var(--purple)}
.about-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:70px;align-items:center}
.about-visual{padding:35px;border-radius:28px;background:linear-gradient(145deg,#f7f1fb,#f3f9e7);text-align:center}
.about-logo img{max-width:360px;width:85%}
.about-stat{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;font-size:19px;margin-top:14px}
.about-stat strong{color:var(--purple)}.about-stat span{color:#769625;font-weight:700}
.about-copy h2{font-family:"Playfair Display",Georgia,serif;font-size:clamp(38px,4.2vw,58px);line-height:1.08;margin:12px 0 20px}
.about-copy p{font-size:17px;line-height:1.7;color:#665d6b}
.about-points{margin-top:25px;display:grid;gap:12px}
.about-points div{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;background:#faf9fb}
.about-points strong{color:var(--purple)}.about-points span{font-weight:700}
.faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;max-width:1000px;margin:auto}
.faq-grid details{background:#fff;border:1px solid #ece7ef;border-radius:14px;padding:18px 20px}
.faq-grid summary{cursor:pointer;font-weight:800;font-size:16px}
.faq-grid p{color:#665d6b;line-height:1.6;margin:12px 0 0}
.cta-band{background:linear-gradient(100deg,#3f1760,#6c2494);color:#fff;padding:48px 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}
.cta-inner h2{font-family:"Playfair Display",Georgia,serif;font-size:38px;margin:8px 0 0}
.cta-band .eyebrow{color:#cbe77d}.cta-band .btn.primary{background:#fff;color:#5b1a83}
@media(max-width:900px){.hero-grid,.about-grid{grid-template-columns:1fr}.program-grid{grid-template-columns:repeat(2,1fr)}.faq-grid{grid-template-columns:1fr}.cta-inner{flex-direction:column;align-items:flex-start}}
@media(max-width:600px){.hero-grid{padding:58px 0}.hero-copy h1{font-size:46px;letter-spacing:-1px}.hero-card{min-height:390px}.program-grid{grid-template-columns:1fr}.hero-actions .btn{width:100%;text-align:center}.trust-row{display:grid;gap:8px}.about-grid{gap:30px}.cta-inner h2{font-size:30px}}
