:root{
  --blue:#25157b;
  --blue-2:#34239b;
  --gold:#c99a3a;
  --gold-2:#e4bd68;
  --cream:#fffbd9;
  --ink:#161327;
  --muted:#6d6a78;
  --surface:#ffffff;
  --soft:#f7f6fb;
  --line:#e8e5f0;
  --success:#0f7a50;
  --danger:#b42318;
  --shadow:0 18px 50px rgba(32,20,92,.12);
  --radius:22px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;line-height:1.65;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit}
.container{width:min(1180px,calc(100% - 36px));margin-inline:auto}
.section{padding:88px 0}
.section.soft{background:var(--soft)}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:var(--blue);margin-bottom:12px}
.eyebrow::before{content:"";width:26px;height:3px;border-radius:99px;background:var(--gold)}
.section-title{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4.5vw,3.35rem);line-height:1.1;color:var(--blue);margin-bottom:16px}
.section-copy{max-width:760px;color:var(--muted);font-size:1.04rem}
.text-center{text-align:center}.text-center .section-copy{margin-inline:auto}.text-center .eyebrow::before{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:11px 20px;border-radius:12px;border:1px solid transparent;font-weight:800;transition:.22s ease;cursor:pointer}
.btn-primary{background:var(--gold);color:#19121f;box-shadow:0 9px 24px rgba(201,154,58,.26)}
.btn-primary:hover{transform:translateY(-2px);background:var(--gold-2)}
.btn-secondary{background:var(--blue);color:white}.btn-secondary:hover{transform:translateY(-2px);background:var(--blue-2)}
.btn-outline{border-color:rgba(255,255,255,.55);color:white;background:rgba(255,255,255,.08)}.btn-outline:hover{background:#fff;color:var(--blue)}
.topline{background:var(--blue);color:#fff;font-size:.88rem}.topline .container{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:42px}.topline a{color:#fff}.topline .notice{font-weight:700}.social-mini{display:flex;gap:16px;align-items:center}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(37,21,123,.08)}
.navbar{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand img{width:60px;height:60px;object-fit:contain;border-radius:12px}.brand-text strong{display:block;color:var(--blue);font-size:1.04rem;line-height:1.12}.brand-text span{display:block;color:var(--gold);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-top:4px}
.nav-links{display:flex;align-items:center;gap:22px}.nav-links a{font-weight:750;color:#383348;font-size:.93rem}.nav-links a:hover{color:var(--blue)}.nav-links .portal-link{background:var(--blue);color:white;padding:10px 15px;border-radius:10px}.nav-links .portal-link:hover{background:var(--gold);color:#19121f}
.menu-toggle{display:none;border:0;background:transparent;color:var(--blue);font-size:1.6rem;padding:8px;cursor:pointer}
.hero{position:relative;isolation:isolate;overflow:hidden;background:#160c56;color:white;min-height:720px;display:grid;place-items:center}.hero-slideshow{position:absolute;inset:0;z-index:-4;overflow:hidden}.hero-slide{position:absolute;inset:-2%;background-size:cover;background-position:center center;background-repeat:no-repeat;opacity:0;transform:scale(1.035);transition:opacity 1.15s ease,transform 7s ease;will-change:opacity,transform}.hero-slide.is-active{opacity:1;transform:scale(1.09)}.hero-image-overlay{position:absolute;inset:0;z-index:-3;background:linear-gradient(90deg,rgba(18,8,67,.68) 0%,rgba(28,14,91,.52) 45%,rgba(16,8,60,.34) 100%),linear-gradient(180deg,rgba(9,5,38,.12),rgba(11,6,47,.36))}.hero-slide-dots{position:absolute;z-index:8;left:50%;bottom:28px;transform:translateX(-50%);display:flex;gap:8px;align-items:center}.hero-slide-dots button{width:9px;height:9px;border-radius:999px;border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.28);padding:0;cursor:pointer;transition:width .25s ease,background .25s ease}.hero-slide-dots button.is-active{width:27px;background:var(--gold-2);border-color:var(--gold-2)}.hero::before{content:"";position:absolute;inset:-20%;z-index:-2;background:radial-gradient(circle at 20% 30%,rgba(235,196,101,.14),transparent 24%),radial-gradient(circle at 78% 18%,rgba(255,255,255,.07),transparent 22%)}.hero::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.045;background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:50px 50px;mask-image:linear-gradient(to bottom,#000,transparent 80%)}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:60px;align-items:center;padding:90px 0}.hero-badge{display:inline-flex;gap:9px;align-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);padding:8px 12px;border-radius:999px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;margin-bottom:20px}.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,6.2vw,5.3rem);line-height:.98;letter-spacing:-.025em;margin-bottom:24px}.hero h1 span{color:var(--gold-2)}.hero p{max-width:680px;color:rgba(255,255,255,.83);font-size:1.12rem}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.hero-note{display:flex;gap:24px;flex-wrap:wrap;margin-top:38px;padding-top:24px;border-top:1px solid rgba(255,255,255,.16)}.hero-note strong{display:block;font-size:1.3rem;color:var(--gold-2)}.hero-note span{font-size:.84rem;color:rgba(255,255,255,.72)}
.crest-stage{position:relative;display:grid;place-items:center;min-height:500px}.crest-stage::before,.crest-stage::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.18)}.crest-stage::before{width:440px;height:440px}.crest-stage::after{width:360px;height:360px;border-style:dashed;animation:spin 24s linear infinite}.crest-card{width:min(390px,86vw);aspect-ratio:1/1.06;background:rgba(255,255,255,.96);border-radius:42px;display:grid;place-items:center;padding:28px;box-shadow:0 35px 80px rgba(0,0,0,.26);transform:rotate(2deg)}.crest-card img{max-height:100%;object-fit:contain;border-radius:28px}@keyframes spin{to{transform:rotate(360deg)}}
.stats-strip{position:relative;margin-top:-48px;z-index:4}.stats-card{display:grid;grid-template-columns:repeat(4,1fr);background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;overflow:hidden}.stat{padding:26px 24px;text-align:center}.stat+.stat{border-left:1px solid var(--line)}.stat strong{display:block;color:var(--blue);font-size:1.5rem}.stat span{font-size:.84rem;color:var(--muted)}
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:55px;align-items:center}.logo-panel{min-height:500px;border-radius:30px;background:linear-gradient(145deg,var(--cream),#fff);display:grid;place-items:center;padding:50px;border:1px solid #eee3bd;position:relative;overflow:hidden}.logo-panel::after{content:"ROSIS";position:absolute;font-weight:900;font-size:8rem;color:rgba(37,21,123,.045);bottom:-12px;right:-8px;line-height:1}.logo-panel img{width:min(390px,90%);border-radius:24px;position:relative;z-index:1}.about-copy p{color:var(--muted);margin:0 0 16px}.quote-card{margin-top:25px;padding:22px 24px;border-left:4px solid var(--gold);background:var(--soft);border-radius:0 16px 16px 0;color:#3b3650;font-weight:650}
.vm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:42px}.vm-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 10px 34px rgba(37,21,123,.06)}.vm-card i{font-size:1.8rem;color:var(--gold);margin-bottom:14px}.vm-card h3{color:var(--blue);font-size:1.25rem;margin-bottom:10px}.vm-card p{color:var(--muted)}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}.pillar{background:#fff;border-radius:20px;padding:26px;border:1px solid var(--line);transition:.25s}.pillar:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#ded7f7}.pillar .icon{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,var(--blue),var(--blue-2));color:#fff;display:grid;place-items:center;font-size:1.3rem;margin-bottom:20px}.pillar h3{color:var(--blue);margin-bottom:8px}.pillar p{color:var(--muted);font-size:.93rem}
.values-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.value-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:999px;font-weight:750;color:#403955}.value-chip i{color:var(--gold)}
.program-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}.program-card{border-radius:24px;border:1px solid var(--line);background:#fff;padding:28px;position:relative;overflow:hidden;box-shadow:0 10px 30px rgba(25,17,63,.05)}.program-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--blue),var(--gold))}.program-card .program-icon{font-size:1.8rem;color:var(--blue);margin-bottom:16px}.program-card h3{color:var(--blue);font-size:1.18rem;margin-bottom:4px}.program-card .age{font-size:.82rem;color:var(--gold);font-weight:850;text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px}.program-card p{color:var(--muted);font-size:.92rem}.program-card .admit{display:inline-block;margin-top:14px;font-weight:850;color:var(--blue)}
.belief-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:stretch}.belief-main{background:var(--blue);color:#fff;border-radius:28px;padding:38px}.belief-main .section-title{color:white}.belief-main p{color:rgba(255,255,255,.82)}.verse{margin-top:24px;border-top:1px solid rgba(255,255,255,.2);padding-top:22px;font-family:Georgia,serif;font-size:1.25rem;color:var(--gold-2)}.belief-side{display:grid;gap:18px}.belief-card{border:1px solid var(--line);border-radius:20px;padding:28px;background:white}.belief-card h3{color:var(--blue);margin-bottom:8px}.belief-card p{color:var(--muted)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:38px}.gallery-item{position:relative;aspect-ratio:4/3;border-radius:20px;overflow:hidden;background:linear-gradient(145deg,#ece9f8,#fbf8ea);border:1px solid var(--line)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.35s}.gallery-item:hover img{transform:scale(1.045)}.gallery-caption{position:absolute;left:12px;right:12px;bottom:12px;padding:10px 12px;border-radius:12px;background:rgba(16,14,34,.72);backdrop-filter:blur(8px);color:#fff;font-size:.85rem}.empty-state{grid-column:1/-1;border:1px dashed #cfc8e9;border-radius:20px;padding:35px;text-align:center;color:var(--muted);background:#faf9fd}.empty-state i{display:block;font-size:2rem;color:var(--gold);margin-bottom:10px}
.resources-list{display:grid;gap:12px;margin-top:32px}.resource{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:16px}.resource-main{display:flex;align-items:center;gap:14px;min-width:0}.resource-icon{width:42px;height:42px;flex:0 0 auto;border-radius:12px;background:#f1effa;display:grid;place-items:center;color:var(--blue)}.resource h4{color:var(--blue)}.resource p{font-size:.83rem;color:var(--muted)}
.cta{background:linear-gradient(120deg,#241474,#39239c);border-radius:30px;color:white;padding:50px;display:flex;justify-content:space-between;align-items:center;gap:35px;position:relative;overflow:hidden}.cta::after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(201,154,58,.18);right:-100px;top:-110px}.cta h2{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3rem);line-height:1.08;margin-bottom:12px}.cta p{color:rgba(255,255,255,.8);max-width:680px}.cta .hero-actions{margin-top:0;position:relative;z-index:1;flex-wrap:nowrap}
.contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:35px;align-items:start}.contact-card{background:var(--blue);color:#fff;padding:34px;border-radius:24px}.contact-card h3{font-size:1.6rem;margin-bottom:12px}.contact-card p{color:rgba(255,255,255,.76)}.contact-list{margin-top:26px;display:grid;gap:16px}.contact-list a,.contact-list div{display:flex;gap:12px;align-items:flex-start}.contact-list i{color:var(--gold-2);margin-top:4px;width:18px}.fb-preview{margin-top:24px;padding:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:16px}.fb-preview strong{display:block;margin-bottom:6px}.fb-preview a{color:var(--gold-2);font-weight:800}.form-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:32px;box-shadow:0 14px 40px rgba(37,21,123,.07)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:.86rem;font-weight:800;color:#403a4e}.field input,.field select,.field textarea{width:100%;border:1px solid #dcd8e6;border-radius:12px;padding:12px 13px;background:#fff;outline:none;transition:.2s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,21,123,.08)}.field textarea{min-height:140px;resize:vertical}.form-feedback{display:none;margin-top:14px;padding:11px 13px;border-radius:10px;font-size:.9rem}.form-feedback.show{display:block}.form-feedback.success{background:#eaf8f1;color:var(--success)}.form-feedback.error{background:#fff0ef;color:var(--danger)}
.footer{background:#100b2e;color:#d8d5e6;padding:60px 0 24px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:40px}.footer .brand-text strong{color:#fff}.footer p,.footer a{color:#aaa5bd;font-size:.9rem}.footer h4{color:white;margin-bottom:14px}.footer-links{display:grid;gap:9px}.footer-links a:hover{color:var(--gold-2)}.copyright{border-top:1px solid rgba(255,255,255,.1);margin-top:36px;padding-top:20px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:.82rem;color:#8f89a6}.copyright a{font-size:.82rem}
.page-hero{background:linear-gradient(125deg,#1c0f63,#332093);color:white;padding:90px 0 70px}.page-hero h1{font-family:Georgia,serif;font-size:clamp(2.7rem,6vw,4.7rem);line-height:1.05}.page-hero p{max-width:700px;color:rgba(255,255,255,.8);margin-top:14px}.breadcrumb{font-size:.85rem;color:var(--gold-2);font-weight:800;margin-bottom:14px}.page-content{padding:70px 0}.rich-content{max-width:900px;margin:auto}.rich-content h2,.rich-content h3{font-family:Georgia,serif;color:var(--blue);margin:28px 0 10px}.rich-content p,.rich-content li{color:#504b5f}.rich-content ul,.rich-content ol{padding-left:22px;margin:12px 0}.rich-content ul{list-style:disc}.rich-content ol{list-style:decimal}.rich-content img{border-radius:18px;margin:24px 0}.not-found{text-align:center;padding:100px 20px}.not-found h1{font-size:5rem;color:var(--blue)}

.hidden{display:none!important}
.btn-outline-dark{border-color:#cfc8e9;color:var(--blue);background:#fff}.btn-outline-dark:hover{background:var(--blue);color:#fff;border-color:var(--blue)}

.hero-visual{position:relative;min-height:520px;display:grid;place-items:center}
.hero-photo-card{position:relative;width:min(500px,100%);aspect-ratio:4/3;border-radius:34px;overflow:hidden;border:6px solid rgba(255,255,255,.9);box-shadow:0 34px 80px rgba(0,0,0,.32);transform:rotate(1.2deg);background:#fff}
.hero-photo-card>img{width:100%;height:100%;object-fit:cover}
.hero-photo-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,8,52,.62),transparent 48%);pointer-events:none}
.hero-photo-caption{position:absolute;z-index:2;left:22px;right:22px;bottom:20px;display:flex;align-items:center;gap:12px;color:white}
.hero-photo-caption img{width:58px;height:58px;object-fit:contain;background:white;border-radius:12px;padding:4px;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.hero-photo-caption strong{display:block;font-size:.98rem;line-height:1.15}
.hero-photo-caption span{display:block;color:rgba(255,255,255,.78);font-size:.78rem;margin-top:4px}
.hero-float-photo{position:absolute;right:-18px;top:16px;width:150px;aspect-ratio:3/4;border-radius:22px;overflow:hidden;border:5px solid #fff;box-shadow:0 18px 42px rgba(0,0,0,.25);transform:rotate(5deg);z-index:4}
.hero-float-photo img{width:100%;height:100%;object-fit:cover}

.about-photo-panel{position:relative;min-height:520px;border-radius:30px;overflow:hidden;background:#ebe8f7;box-shadow:var(--shadow)}
.about-main-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about-photo-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(22,12,77,.38),transparent 50%)}
.about-logo-badge{position:absolute;z-index:2;left:24px;bottom:24px;display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.94);padding:12px 15px;border-radius:16px;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.about-logo-badge img{width:58px;height:58px;object-fit:contain;border-radius:10px}
.about-logo-badge span{font-weight:850;color:var(--blue);font-size:.85rem;line-height:1.2;text-transform:uppercase;letter-spacing:.06em}

.whole-child-photo{position:relative;margin-top:34px;min-height:330px;border-radius:28px;overflow:hidden}
.whole-child-photo>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.whole-child-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,13,77,.78),rgba(24,13,77,.1) 72%)}
.whole-child-overlay{position:relative;z-index:2;color:white;max-width:560px;padding:56px}
.whole-child-overlay strong{display:block;font-family:Georgia,serif;font-size:clamp(1.9rem,4vw,3rem);line-height:1.08}
.whole-child-overlay span{display:block;margin-top:12px;color:rgba(255,255,255,.82)}

.academics-feature{display:grid;grid-template-columns:.72fr 1.28fr;gap:28px;align-items:center;margin-top:34px;background:linear-gradient(135deg,#f8f6ff,#fffaf0);border:1px solid var(--line);border-radius:26px;padding:20px}
.academics-feature-photo{height:300px;border-radius:20px;overflow:hidden}
.academics-feature-photo img{width:100%;height:100%;object-fit:cover}
.academics-feature-copy{padding:20px 20px 20px 4px}
.academics-feature-copy h3{font-family:Georgia,serif;color:var(--blue);font-size:clamp(1.6rem,3vw,2.35rem);line-height:1.12;margin-bottom:10px}
.academics-feature-copy p{color:var(--muted)}

.cta-with-photo{display:grid;grid-template-columns:1.15fr .85fr;align-items:stretch;padding:0}
.cta-with-photo::after{display:none}
.cta-copy{padding:48px 0 48px 50px;position:relative;z-index:2}
.cta-with-photo .hero-actions{margin-top:26px}
.cta-photo{min-height:320px;overflow:hidden;position:relative}
.cta-photo::before{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(90deg,#2a187d 0%,rgba(42,24,125,.05) 52%)}
.cta-photo img{width:100%;height:100%;object-fit:cover}

.gallery-actions{display:flex;justify-content:center;margin-top:28px}
.gallery-item{cursor:zoom-in}
.gallery-lightbox{position:fixed;inset:0;z-index:4000;background:rgba(7,5,20,.9);display:none;align-items:center;justify-content:center;padding:28px}
.gallery-lightbox.open{display:flex}
.gallery-lightbox-inner{max-width:min(1000px,94vw);max-height:90vh;display:grid;gap:10px}
.gallery-lightbox-inner img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:18px;box-shadow:0 28px 80px rgba(0,0,0,.45)}
.gallery-lightbox-title{color:#fff;text-align:center;font-weight:750}
.gallery-lightbox-close{position:absolute;right:24px;top:22px;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);color:#fff;font-size:1.2rem;cursor:pointer}

@media(max-width:980px){.hero-visual{min-height:470px}.hero-photo-card{width:min(620px,92%)}.hero-float-photo{right:4%;top:0}.about-photo-panel{min-height:440px}.academics-feature{grid-template-columns:1fr 1fr}.cta-with-photo{grid-template-columns:1fr}.cta-copy{padding:42px}.cta-photo{min-height:300px}.cta-photo::before{background:linear-gradient(180deg,#2a187d 0%,rgba(42,24,125,.02) 36%)}.nav-links{position:fixed;left:18px;right:18px;top:122px;background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;padding:18px;display:none;flex-direction:column;align-items:stretch;gap:6px}.nav-links.open{display:flex}.nav-links a{padding:10px 11px;border-radius:9px}.menu-toggle{display:block}.hero-grid,.about-grid,.belief-grid,.contact-grid{grid-template-columns:1fr}.crest-stage{min-height:400px}.stats-card{grid-template-columns:repeat(2,1fr)}.stat:nth-child(3){border-left:0;border-top:1px solid var(--line)}.stat:nth-child(4){border-top:1px solid var(--line)}.pillars,.program-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(2,1fr)}.cta{flex-direction:column;align-items:flex-start}.cta .hero-actions{flex-wrap:wrap}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:640px){.hero-visual{min-height:390px}.hero-photo-card{width:100%;border-width:4px;border-radius:24px}.hero-float-photo{width:110px;right:-4px;top:-18px;border-width:4px}.hero-photo-caption{left:14px;right:14px;bottom:13px}.hero-photo-caption img{width:48px;height:48px}.about-photo-panel{min-height:360px}.about-logo-badge{left:14px;bottom:14px;padding:9px 11px}.about-logo-badge img{width:48px;height:48px}.whole-child-photo{min-height:390px}.whole-child-photo::after{background:linear-gradient(to top,rgba(24,13,77,.86),rgba(24,13,77,.12) 75%)}.whole-child-overlay{padding:28px;position:absolute;left:0;right:0;bottom:0}.academics-feature{grid-template-columns:1fr;padding:14px}.academics-feature-photo{height:270px}.academics-feature-copy{padding:10px}.cta-copy{padding:32px 24px}.cta-photo{min-height:250px}.container{width:min(100% - 28px,1180px)}.section{padding:66px 0}.topline .container{justify-content:center;text-align:center}.topline .social-mini{display:none}.navbar{min-height:74px}.brand img{width:50px;height:50px}.brand-text strong{font-size:.88rem}.brand-text span{font-size:.63rem}.nav-links{top:106px}.hero{min-height:auto}.hero-grid{padding:70px 0 92px;gap:38px}.hero h1{font-size:clamp(2.8rem,14vw,4.25rem)}.hero p{font-size:1rem}.hero-actions .btn{width:100%}.crest-stage{min-height:330px}.crest-stage::before{width:320px;height:320px}.crest-stage::after{width:260px;height:260px}.crest-card{width:280px;border-radius:30px}.stats-strip{margin-top:-42px}.stats-card{grid-template-columns:1fr 1fr}.stat{padding:20px 12px}.stat strong{font-size:1.2rem}.about-grid{gap:34px}.logo-panel{min-height:360px;padding:28px}.vm-grid,.pillars,.program-grid,.gallery-grid,.form-grid,.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.field.full{grid-column:auto}.gallery-grid{gap:14px}.cta{padding:32px 24px;border-radius:22px}.resource{align-items:flex-start}.resource .btn{padding:8px 11px;min-height:38px}.copyright{display:block}.copyright>*{margin-bottom:8px}}


/* ROSIS August 20 refinements */
.reveal-on-scroll{opacity:0;transform:translateY(24px);transition:opacity .65s ease var(--reveal-delay,0s),transform .65s cubic-bezier(.2,.8,.2,1) var(--reveal-delay,0s)}
.reveal-on-scroll.is-visible{opacity:1;transform:none}
.programme-showcase{align-items:stretch;gap:16px}
.programme-card{--programme:#5a2fbd;--programme-soft:#f0e9ff;display:flex;flex-direction:column;min-height:470px;padding:24px 18px 18px;border:2px solid color-mix(in srgb,var(--programme) 45%,white);background:linear-gradient(180deg,var(--programme-soft),#fff 78%);box-shadow:0 16px 38px rgba(28,20,68,.09);transition:transform .28s ease,box-shadow .28s ease;overflow:hidden}
.programme-card::before{height:6px;background:var(--programme)}
.programme-card:hover{transform:translateY(-8px);box-shadow:0 24px 54px rgba(28,20,68,.16)}
.programme-card .programme-star{position:absolute;top:10px;right:12px;color:var(--programme);font-size:.78rem;animation:programmeSpark 2.8s ease-in-out infinite}
.programme-card .program-icon{width:74px;height:74px;margin:7px auto 14px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.78);color:var(--programme);font-size:1.65rem;border:5px solid color-mix(in srgb,var(--programme) 13%,white);box-shadow:0 8px 18px rgba(0,0,0,.08)}
.programme-card .age{margin:0 auto 12px;padding:5px 9px;border-radius:999px;background:var(--programme);color:#fff;font-size:.7rem;letter-spacing:.055em;white-space:nowrap}
.programme-card h3{text-align:center;color:var(--programme);font-family:Georgia,serif;font-size:1.28rem;margin-bottom:10px}
.programme-card p{text-align:center;font-size:.84rem;line-height:1.62;flex:1}
.programme-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:14px 0 16px}
.programme-tags span{font-size:.67rem;font-weight:750;border:1px solid color-mix(in srgb,var(--programme) 28%,white);color:color-mix(in srgb,var(--programme) 85%,black);background:color-mix(in srgb,var(--programme-soft) 65%,white);padding:5px 7px;border-radius:999px;white-space:nowrap}
.programme-cta{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 12px;border-radius:999px;background:var(--programme);color:#fff!important;font-size:.77rem;font-weight:850;margin-top:auto;transition:filter .2s ease,transform .2s ease}
.programme-cta:hover{filter:brightness(.93);transform:translateY(-1px)}
.programme-creche{--programme:#f94c9b;--programme-soft:#fff0f7}
.programme-nursery{--programme:#e6a600;--programme-soft:#fff8da}
.programme-primary{--programme:#164d9c;--programme-soft:#e9f4ff}
.programme-high{--programme:#2d8d45;--programme-soft:#e8f6e9}
@keyframes programmeSpark{0%,100%{transform:rotate(0) scale(1);opacity:.7}50%{transform:rotate(20deg) scale(1.22);opacity:1}}

.gallery-grid{align-items:start}
.gallery-item{box-shadow:0 10px 24px rgba(25,17,63,.06)}

.facebook-activity-section{background:linear-gradient(135deg,#f8f9ff,#fffaf0)}
.facebook-activity-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center}
.facebook-activity-copy p{color:var(--muted);max-width:520px;margin:14px 0 25px;line-height:1.7}
.facebook-feed-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:18px;box-shadow:var(--shadow);overflow:hidden;text-align:center}
.facebook-feed-card iframe{display:block;width:100%;max-width:500px;margin:auto;border-radius:14px}
.facebook-feed-fallback{padding:13px 8px 4px;font-weight:800}
.facebook-feed-fallback a{color:#1877f2}

.contact-card .contact-list span{line-height:1.58}
.contact-card .contact-list a{color:#fff}
.contact-card .contact-list a:hover span{color:var(--gold-2)}

.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:3000;display:flex;align-items:center;gap:8px;background:#25D366;color:#fff!important;min-height:54px;padding:0 17px;border-radius:999px;box-shadow:0 12px 30px rgba(0,0,0,.24);font-weight:850;letter-spacing:.01em;transition:transform .2s ease,box-shadow .2s ease}
.whatsapp-float i{font-size:1.65rem}
.whatsapp-float:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(0,0,0,.28)}

/* Hide platform badges if one is injected into the page DOM. */
.netlify-powered-by,.powered-by-netlify,[data-powered-by="netlify"],[data-netlify-badge]{display:none!important}

@media(max-width:980px){
  .facebook-activity-grid{grid-template-columns:1fr;gap:28px}
  .facebook-activity-copy{text-align:center}
  .facebook-activity-copy p{margin-left:auto;margin-right:auto}
  .programme-card{min-height:440px}
}
@media(max-width:640px){
  .hero{background:#160c56}
  .hero-slide{background-position:center center}
  .hero-image-overlay{background:linear-gradient(180deg,rgba(18,8,68,.38) 0%,rgba(22,10,77,.42) 48%,rgba(12,6,48,.52) 100%)}
  .hero::before{background:linear-gradient(180deg,rgba(10,4,41,.04),rgba(10,4,41,.08))}
  .hero::after{opacity:.025}
  .hero-grid{display:block;padding:64px 0 96px}
  .hero-visual{display:none}
  .hero h1{font-size:clamp(2.65rem,13.2vw,4rem);text-shadow:0 4px 22px rgba(0,0,0,.72)}
  .hero p{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.72)}
  .hero-badge{background:rgba(23,10,81,.40);backdrop-filter:blur(5px);box-shadow:0 8px 22px rgba(0,0,0,.15)}
  .hero-note{background:rgba(12,5,48,.26);backdrop-filter:blur(3px);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:17px 15px;margin-top:30px;gap:16px}
  .hero-slide-dots{bottom:28px}
  .programme-showcase{grid-template-columns:1fr}
  .programme-card{min-height:auto;padding:24px 20px 18px}
  .programme-card p{flex:none}
  .facebook-feed-card{padding:10px;border-radius:18px}
  .facebook-feed-card iframe{height:590px}
  .whatsapp-float{right:16px;bottom:16px;width:56px;height:56px;min-height:56px;padding:0;justify-content:center;border-radius:50%}
  .whatsapp-float span{display:none}
  .whatsapp-float i{font-size:1.8rem}
}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none;transform:none!important}.hero-slide-dots{display:none}
  .reveal-on-scroll{opacity:1;transform:none;transition:none}
  .programme-card,.programme-star{animation:none!important;transition:none}
}

/* =========================================================
   ROSIS PROFESSIONAL MOTION SYSTEM
   Subtle, accessible animation across the public website.
   ========================================================= */
:root{
  --motion-ease:cubic-bezier(.22,.8,.25,1);
  --motion-ease-soft:cubic-bezier(.2,.7,.2,1);
  --motion-fast:260ms;
  --motion-base:720ms;
}

/* Reading progress */
.site-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:99999;background:linear-gradient(90deg,var(--gold),var(--gold-2),#fff1ad);transform:scaleX(0);transform-origin:left center;box-shadow:0 0 12px rgba(228,189,104,.5);pointer-events:none}

/* Page entrance */
.motion-ready .topline{animation:rosisToplineIn .55s var(--motion-ease) both}
.motion-ready .site-header{animation:rosisHeaderIn .7s var(--motion-ease) .08s both}
@keyframes rosisToplineIn{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:none}}
@keyframes rosisHeaderIn{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}

/* Scroll reveal primitives */
.motion-ready [data-motion-ready="1"]{opacity:0;filter:blur(2px);transition:opacity var(--motion-base) var(--motion-ease) var(--motion-delay,0ms),transform var(--motion-base) var(--motion-ease) var(--motion-delay,0ms),filter .55s ease var(--motion-delay,0ms);will-change:opacity,transform}
.motion-ready [data-motion="up"]{transform:translate3d(0,32px,0)}
.motion-ready [data-motion="left"]{transform:translate3d(-38px,0,0)}
.motion-ready [data-motion="right"]{transform:translate3d(38px,0,0)}
.motion-ready [data-motion="scale"]{transform:scale(.94) translate3d(0,18px,0)}
.motion-ready [data-motion-ready="1"].motion-in{opacity:1;filter:none;transform:none}

/* Hero content — staged rather than flashy */
.motion-ready .hero-badge{animation:heroContentIn .7s var(--motion-ease) .18s both,heroBadgeBreath 4s ease-in-out 1.2s infinite}
.motion-ready .hero h1{animation:heroContentIn .85s var(--motion-ease) .28s both}
.motion-ready .hero p{animation:heroContentIn .8s var(--motion-ease) .42s both}
.motion-ready .hero-actions{animation:heroContentIn .8s var(--motion-ease) .54s both}
.motion-ready .hero-note{animation:heroContentIn .8s var(--motion-ease) .66s both}
.motion-ready .hero-visual{animation:heroVisualIn 1s var(--motion-ease) .38s both}
@keyframes heroContentIn{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes heroVisualIn{from{opacity:0;transform:translate3d(34px,14px,0) scale(.97)}to{opacity:1;transform:none}}
@keyframes heroBadgeBreath{0%,100%{box-shadow:0 0 0 rgba(228,189,104,0)}50%{box-shadow:0 0 0 7px rgba(228,189,104,.08)}}

/* Navigation interaction */
.nav-links a:not(.portal-link){position:relative;transition:color var(--motion-fast) ease,transform var(--motion-fast) ease}
.nav-links a:not(.portal-link)::after{content:"";position:absolute;left:11px;right:11px;bottom:5px;height:2px;border-radius:99px;background:var(--gold);transform:scaleX(0);transform-origin:center;transition:transform .28s var(--motion-ease)}
.nav-links a:not(.portal-link):hover,.nav-links a.is-current{color:var(--blue);transform:translateY(-1px)}
.nav-links a:not(.portal-link):hover::after,.nav-links a.is-current::after{transform:scaleX(1)}
.portal-link,.btn{position:relative;overflow:hidden;isolation:isolate}
.portal-link::before,.btn::before{content:"";position:absolute;top:-60%;bottom:-60%;left:-45%;width:30%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);transform:skewX(-18deg) translateX(-250%);transition:transform .7s var(--motion-ease);z-index:-1;pointer-events:none}
.portal-link:hover::before,.btn:hover::before{transform:skewX(-18deg) translateX(650%)}
.menu-toggle i{transition:transform .3s var(--motion-ease)}
.menu-toggle:hover i{transform:scale(1.08) rotate(5deg)}

/* Stats */
.stat{transition:background .3s ease,transform .3s var(--motion-ease)}
.stat:hover{background:linear-gradient(180deg,#fff,#fbf9ff);transform:translateY(-3px)}
.stat strong{transition:transform .3s var(--motion-ease),color .3s ease}
.stat:hover strong{transform:scale(1.035);color:var(--gold)}

/* Images feel alive while remaining restrained */
.about-photo-panel,.whole-child-photo,.academics-feature-photo,.cta-photo,.gallery-item{isolation:isolate}
.about-main-photo,.whole-child-photo>img,.academics-feature-photo>img,.cta-photo>img{transition:transform .75s var(--motion-ease),filter .5s ease}
.motion-parallax{transform:translate3d(0,var(--parallax-y,0),0) scale(1.045)!important}
.about-photo-panel:hover .about-main-photo,.whole-child-photo:hover>img,.academics-feature-photo:hover>img,.cta-photo:hover>img{transform:translate3d(0,var(--parallax-y,0),0) scale(1.075)!important;filter:saturate(1.05)}
.about-logo-badge{transition:transform .35s var(--motion-ease),box-shadow .35s ease}
.about-photo-panel:hover .about-logo-badge{transform:translateY(-5px);box-shadow:0 14px 30px rgba(20,12,62,.2)}

/* Card interaction + pointer-following highlight */
.vm-card,.pillar,.programme-card,.belief-card,.gallery-item,.resource,.form-card,.facebook-feed-card{position:relative;isolation:isolate;transition:transform .34s var(--motion-ease),box-shadow .34s ease,border-color .34s ease}
.vm-card::after,.pillar::after,.belief-card::after,.resource::after,.form-card::after,.facebook-feed-card::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(240px circle at var(--pointer-x,50%) var(--pointer-y,50%),rgba(228,189,104,.13),transparent 70%);transition:opacity .3s ease}
.vm-card:hover::after,.pillar:hover::after,.belief-card:hover::after,.resource:hover::after,.form-card:hover::after,.facebook-feed-card:hover::after{opacity:1}
.vm-card:hover,.belief-card:hover,.resource:hover,.form-card:hover,.facebook-feed-card:hover{transform:translateY(-5px);box-shadow:0 20px 48px rgba(37,21,123,.12);border-color:#ddd4f6}
.pillar:hover{transform:translateY(-7px)}
.pillar .icon,.vm-card>i,.belief-card h3 i{transition:transform .42s var(--motion-ease)}
.pillar:hover .icon{transform:translateY(-4px) rotate(-3deg) scale(1.06)}
.vm-card:hover>i,.belief-card:hover h3 i{transform:translateY(-3px) scale(1.08)}

/* Values */
.value-chip{transition:transform .28s var(--motion-ease),border-color .28s ease,box-shadow .28s ease,background .28s ease}
.value-chip:hover{transform:translateY(-3px);border-color:#d9cdf8;box-shadow:0 10px 25px rgba(37,21,123,.09);background:#fffdfa}
.value-chip i{transition:transform .35s var(--motion-ease)}
.value-chip:hover i{transform:scale(1.14) rotate(-4deg)}

/* Academic programme cards */
.programme-card{transform-style:preserve-3d}
.programme-card:hover{transform:translateY(-10px) scale(1.012)}
.programme-card .program-icon{width:92px;height:92px;overflow:hidden;padding:0;transition:transform .4s var(--motion-ease),box-shadow .4s ease}
.programme-card .program-icon img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--motion-ease),filter .5s ease}
.programme-card:hover .program-icon{transform:translateY(-4px) scale(1.05);box-shadow:0 13px 26px rgba(0,0,0,.13)}
.programme-card:hover .program-icon img{transform:scale(1.09);filter:saturate(1.06)}
.programme-tags span{transition:transform .22s var(--motion-ease),box-shadow .22s ease}
.programme-card:hover .programme-tags span:nth-child(1){transform:translateY(-2px)}
.programme-card:hover .programme-tags span:nth-child(2){transform:translateY(-2px);transition-delay:.04s}
.programme-card:hover .programme-tags span:nth-child(3){transform:translateY(-2px);transition-delay:.08s}
.programme-cta i{transition:transform .28s var(--motion-ease)}
.programme-cta:hover i{transform:translateX(4px)}

/* Gallery */
.gallery-item{cursor:zoom-in;box-shadow:0 10px 24px rgba(25,17,63,.06)}
.gallery-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(20,12,62,.2));opacity:0;transition:opacity .35s ease;pointer-events:none}
.gallery-item:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(25,17,63,.14)}
.gallery-item:hover::after{opacity:1}
.gallery-item:hover img{transform:scale(1.065)}
.gallery-caption{transition:transform .35s var(--motion-ease),background .35s ease}
.gallery-item:hover .gallery-caption{transform:translateY(-3px);background:rgba(16,14,34,.82)}

/* Belief + CTA */
.belief-main{position:relative;overflow:hidden}
.belief-main::after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-70px;bottom:-80px;border:1px solid rgba(228,189,104,.24);box-shadow:0 0 0 26px rgba(228,189,104,.04);animation:beliefOrbit 7s ease-in-out infinite}
@keyframes beliefOrbit{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-8px,-10px) scale(1.05)}}
.cta::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.08) 45%,transparent 70%);transform:translateX(-100%);animation:ctaSweep 7s ease-in-out infinite;pointer-events:none}
@keyframes ctaSweep{0%,65%{transform:translateX(-100%)}85%,100%{transform:translateX(100%)}}

/* Resources + contact form */
.resource:hover .resource-icon{transform:rotate(-4deg) scale(1.07);background:#ebe7fb}
.resource-icon{transition:transform .3s var(--motion-ease),background .3s ease}
.contact-list a{transition:transform .28s var(--motion-ease),color .28s ease}
.contact-list a:hover{transform:translateX(5px)}
.contact-list i{transition:transform .28s var(--motion-ease)}
.contact-list a:hover i{transform:scale(1.12)}
.field input,.field select,.field textarea{transition:border-color .22s ease,box-shadow .22s ease,background .22s ease,transform .22s var(--motion-ease)}
.field input:focus,.field select:focus,.field textarea:focus{transform:translateY(-1px);box-shadow:0 0 0 4px rgba(37,21,123,.08),0 10px 24px rgba(37,21,123,.07)}

/* Footer */
.footer-links a{display:inline-flex;align-items:center;gap:7px;transition:transform .25s var(--motion-ease),color .25s ease}
.footer-links a:hover{transform:translateX(4px);color:var(--gold-2)}
.footer .brand img{transition:transform .45s var(--motion-ease)}
.footer .brand:hover img{transform:rotate(-3deg) scale(1.05)}

/* Floating WhatsApp pulse */
.whatsapp-float::before{content:"";position:absolute;inset:-5px;border-radius:inherit;border:2px solid rgba(37,211,102,.35);animation:whatsappPulse 2.4s ease-out infinite;pointer-events:none}
.whatsapp-float i{transition:transform .3s var(--motion-ease)}
.whatsapp-float:hover i{transform:rotate(-7deg) scale(1.1)}
@keyframes whatsappPulse{0%{transform:scale(.92);opacity:.85}70%,100%{transform:scale(1.22);opacity:0}}

/* Page hero */
.page-hero{position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(228,189,104,.16);border-radius:50%;right:-70px;top:-145px;box-shadow:0 0 0 42px rgba(228,189,104,.035);animation:pageHeroFloat 9s ease-in-out infinite;pointer-events:none}
@keyframes pageHeroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(16px)}}

/* Mobile navigation opening */
@media(max-width:980px){
  .nav-links.open{animation:mobileMenuIn .32s var(--motion-ease) both}
  @keyframes mobileMenuIn{from{opacity:0;transform:translateY(-10px) scale(.985)}to{opacity:1;transform:none}}
}

/* Touch devices: keep interaction elegant without hover-only movement. */
@media(hover:none){
  .vm-card:hover,.belief-card:hover,.resource:hover,.form-card:hover,.facebook-feed-card:hover,.pillar:hover,.programme-card:hover,.gallery-item:hover{transform:none}
  .about-photo-panel:hover .about-main-photo,.whole-child-photo:hover>img,.academics-feature-photo:hover>img,.cta-photo:hover>img{transform:none!important}
}

/* Accessibility */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .site-progress{display:none}
  .motion-reduced [data-motion-ready="1"],.motion-ready [data-motion-ready="1"]{opacity:1!important;filter:none!important;transform:none!important;transition:none!important}
  .topline,.site-header,.hero-badge,.hero h1,.hero p,.hero-actions,.hero-note,.hero-visual,.belief-main::after,.cta::before,.whatsapp-float::before,.page-hero::after{animation:none!important}
  .motion-parallax{transform:none!important}
  .programme-card,.gallery-item,.pillar,.vm-card,.belief-card,.resource,.form-card,.facebook-feed-card,.btn,.nav-links a{transition:none!important}
}


@media(max-width:640px){
  /* Keep ROSIS mobile branding visible while scrolling */
  /* Keep the ROSIS announcement bar + logo header permanently visible on phones */
  .topline{
    position:fixed;
    top:0;
    left:0;
    right:0;
    height:42px;
    z-index:2001;
  }

  .site-header{
    position:fixed;
    top:42px;
    left:0;
    right:0;
    width:100%;
    z-index:2000;
    background:rgba(255,255,255,.98);
    box-shadow:0 8px 25px rgba(0,0,0,.10);
  }

  body{
    padding-top:124px;
  }

  .site-header + *{
    scroll-margin-top:124px;
  }

  .navbar{
    min-height:78px;
  }

  .site-header .brand img{
    width:48px;
    height:48px;
    max-height:48px;
  }

  .brand-text strong{
    font-size:.86rem;
  }

  .brand-text span{
    font-size:.62rem;
  }
}
