:root { --bloom-green:#4f8a00; --bloom-dark:#3a6800; }
body { background:#f8faf2; }
.bloom-nav { background:var(--bloom-dark); }
.bloom-title { color:var(--bloom-green); font-weight:700; }
.btn-primary { background:var(--bloom-green); border-color:var(--bloom-green); }
.btn-primary:hover { background:var(--bloom-dark); border-color:var(--bloom-dark); }
.login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:1rem; }
.login-card { width:100%; max-width:400px; }

/* ---- Admin shell (Phase 3) ---- */
.admin-body { background:#f6f8ef; }
.admin-sidebar { --bs-offcanvas-width:260px; background:var(--bloom-dark); color:#fff; }
.sidebar-brand { padding:1rem 1.1rem; border-bottom:1px solid rgba(255,255,255,.12); }
.sidebar-nav { padding:.6rem; overflow-y:auto; }
.sidebar-heading { font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; opacity:.6; padding:.9rem .8rem .3rem; }
.sidebar-link { display:flex; align-items:center; gap:.7rem; padding:.55rem .8rem; border-radius:.5rem; color:rgba(255,255,255,.88); text-decoration:none; font-size:.93rem; }
.sidebar-link i { font-size:1.05rem; width:1.2rem; text-align:center; }
.sidebar-link:hover { background:rgba(255,255,255,.1); color:#fff; }
.sidebar-link.active { background:var(--bloom-green); color:#fff; font-weight:600; }
.sidebar-link.disabled { opacity:.45; cursor:default; }
.sidebar-link.disabled:hover { background:none; }
.sidebar-link em { margin-left:auto; font-size:.65rem; font-style:normal; background:rgba(255,255,255,.18); padding:.1rem .4rem; border-radius:1rem; }
.admin-topbar { position:sticky; top:0; z-index:100; background:#fff; border-bottom:1px solid #e4e9da; padding:.6rem 1rem; }
.avatar { width:28px; height:28px; border-radius:50%; background:var(--bloom-green); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:.8rem; font-weight:600; }
.stat-card { border:0; border-radius:.8rem; }
.stat-icon { width:46px; height:46px; border-radius:.7rem; display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex-shrink:0; }
.stat-value { font-size:1.5rem; font-weight:700; line-height:1.1; }
.stat-label { font-size:.85rem; color:#555; }
.min-w-0 { min-width:0; }
.live-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#28a745; margin-left:.3rem; animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.3} }
@media (min-width:992px) {
  .admin-sidebar { position:fixed; top:0; bottom:0; left:0; width:260px; display:flex; flex-direction:column; visibility:visible !important; transform:none !important; }
  .admin-main { margin-left:260px; }
}

/* ---- Public website (Phase 4) ---- */
.pub-body { background:#fff; }
.pub-topbar { background:#2f5400; color:#e4efcf; padding:.35rem 0; }
.pub-topbar a, .pub-footer a { color:inherit; text-decoration:none; }
.pub-topbar a:hover, .pub-footer a:hover { color:#fff; text-decoration:underline; }
.pub-nav { background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.07); }
.pub-nav .navbar-brand { color:var(--bloom-dark); }
.pub-nav .navbar-brand small { color:#6a7560; font-size:.7rem; }
.pub-logo { width:42px; height:42px; border-radius:50%; background:var(--bloom-green); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:1.3rem; }
.pub-nav .nav-link { color:#2a3320; font-weight:500; }
.pub-nav .nav-link:hover, .pub-nav .nav-link.active { color:var(--bloom-green); }
.pub-nav .nav-link.active { border-bottom:2px solid var(--bloom-green); }
.pub-hero { background:linear-gradient(135deg,var(--bloom-dark),var(--bloom-green)); color:#fff; }
.pub-badge { background:rgba(255,255,255,.18); font-weight:500; }
.hero-icon { font-size:11rem; opacity:.25; }
.pub-strip { margin-top:-2rem; position:relative; z-index:2; }
.pub-fact { background:#fff; border-radius:.8rem; box-shadow:0 4px 14px rgba(0,0,0,.1); padding:1rem .5rem; height:100%; }
.pub-fact strong { display:block; color:var(--bloom-green); font-size:1.1rem; }
.pub-fact span { font-size:.8rem; color:#6a7560; }
.pub-card { border:0; border-radius:.9rem; box-shadow:0 3px 12px rgba(0,0,0,.07); transition:transform .2s; }
.pub-card:hover { transform:translateY(-4px); }
.pub-card-icon { width:60px; height:60px; border-radius:50%; background:#eef6dc; color:var(--bloom-green); display:flex; align-items:center; justify-content:center; font-size:1.7rem; }
.pub-alt { background:#f4f8ec; }
.pub-chip { background:#fff; border:1px solid #dcecb8; color:var(--bloom-dark); padding:.3rem .8rem; border-radius:2rem; font-size:.9rem; }
.pub-cta { background:linear-gradient(135deg,var(--bloom-green),var(--bloom-dark)); color:#fff; border-radius:1rem; }
.pub-footer { background:#2f5400; color:#dbe8c4; }
.pub-footer h6, .pub-footer h5 { margin-bottom:.8rem; }
.pub-footer li { margin-bottom:.3rem; }
.pub-copy { background:#223d00; color:#c2d4a3; }
.wa-float { position:fixed; right:16px; bottom:16px; width:52px; height:52px; border-radius:50%; background:#25d366; color:#fff; font-size:1.7rem; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,0,0,.3); z-index:1000; text-decoration:none; }
.wa-float:hover { color:#fff; background:#1ebe5a; }

/* ---- About pages (Phase 5) ---- */
.pub-pagehead { background:linear-gradient(135deg,var(--bloom-dark),var(--bloom-green)); color:#fff; }
.pub-pagehead a { color:#e4efcf; text-decoration:none; }
.pub-pagehead .breadcrumb-item.active, .pub-pagehead .breadcrumb-item+.breadcrumb-item::before { color:#e4efcf; }
.about-tabs .nav-link { color:var(--bloom-dark); background:#eef6dc; margin:0 .3rem .4rem 0; font-size:.9rem; }
.about-tabs .nav-link.active { background:var(--bloom-green); color:#fff; }
.obj-num { flex-shrink:0; width:32px; height:32px; border-radius:50%; background:var(--bloom-green); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:600; }
.principal-photo { width:150px; height:150px; border-radius:50%; background:#eef6dc; color:var(--bloom-green); display:flex; align-items:center; justify-content:center; font-size:5rem; border:4px solid #fff; box-shadow:0 3px 12px rgba(0,0,0,.12); }

/* ---- Website content (Phase 8) ---- */
.cms-body { line-height:1.8; }
.cms-body h2, .cms-body h3, .cms-body h4 { color:var(--bloom-dark); margin-top:1.2rem; }
.cms-body table { width:100%; border-collapse:collapse; margin:1rem 0; }
.cms-body th, .cms-body td { border:1px solid #dcecb8; padding:.45rem .7rem; }
.cms-body th { background:#eef6dc; }
.cms-body blockquote { border-left:4px solid var(--bloom-green); padding:.2rem 1rem; background:#f4f8ec; }

/* ======== Homepage redesign (matches design mockups) ======== */
:root { --bh-green:#4f8a00; --bh-dark:#3a6800; --bh-deep:#2a4d00; --bh-gold:#c60000; --bh-ink:#1f2a14; }
.pub-body { font-family:'Source Sans 3',system-ui,sans-serif; color:var(--bh-ink); background:#fff; }
.gold { color:var(--bh-gold); }

/* top bar */
.pub-topbar { background:var(--bh-dark); color:#fff; padding:.7rem 0; font-size:.92rem; }
.pub-topbar .pub-sep { width:1px; height:18px; background:rgba(255,255,255,.4); }
.pub-soc { width:34px; height:34px; border-radius:50%; background:#fff; color:var(--bh-dark) !important; display:inline-flex; align-items:center; justify-content:center; font-size:1rem; text-decoration:none !important; }
.pub-soc:hover { background:var(--bh-gold); }

/* nav */
.pub-nav { background:#fff; box-shadow:none; border-bottom:3px solid var(--bh-gold); padding:.5rem 0; }
.pub-nav .navbar-brand strong { font-size:1.35rem; font-weight:600; color:var(--bh-dark); letter-spacing:-.2px; }
.pub-nav .navbar-brand small { color:#515c46; font-size:.82rem; margin-top:3px; }
.pub-nav .nav-link { color:var(--bh-ink); font-weight:500; font-size:.95rem; padding:.55rem 1rem; border-radius:999px; border-bottom:0 !important; }
.pub-nav .nav-link:hover { color:var(--bh-green); }
.pub-nav .nav-link.active { background:var(--bh-green); color:#fff; }
.pub-dash-btn { background:var(--bh-green); color:#fff; border-radius:10px; padding:.6rem 1.1rem; font-weight:500; }
.pub-dash-btn:hover { background:var(--bh-deep); color:#fff; }

/* hero */
.bh-hero { position:relative; overflow:hidden; background:linear-gradient(100deg,#cfe6f5 0%,#e8f2f7 45%,#f4f8f4 100%); padding:3.2rem 0 6.5rem; min-height:470px; }
.bh-hero-img { position:absolute; top:0; right:0; bottom:0; width:56%; }
.bh-hero-img img { width:100%; height:100%; object-fit:cover; object-position:left center;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 22%); mask-image:linear-gradient(to right,transparent 0,#000 22%); }
.bh-hero-text { position:relative; max-width:640px; padding-top:.5rem; }
.bh-est { display:inline-flex; align-items:center; gap:.5rem; background:var(--bh-green); color:#fff; padding:.35rem .9rem; border-radius:8px; font-size:.92rem; font-weight:500; margin-bottom:1.1rem; }
.bh-hero h1 { font-size:clamp(2.2rem,5vw,3.7rem); font-weight:700; line-height:1.08; color:#16212c; margin:0; letter-spacing:-1px; }
.bh-hero h1 span { color:var(--bh-green); }
.bh-rule { width:165px; height:3px; background:var(--bh-gold); margin:1rem 0 1.4rem; }
.bh-quote { font-size:1.7rem; font-style:italic; font-weight:500; color:#1b2a33; margin-bottom:.8rem; }
.bh-sub { font-size:1.05rem; color:#243038; margin-bottom:1.6rem; }
.bh-btn-solid { background:var(--bh-green); color:#fff; border-radius:999px; padding:.8rem 1.8rem; font-weight:500; font-size:1.05rem; }
.bh-btn-solid:hover { background:var(--bh-deep); color:#fff; }
.bh-btn-outline { background:#fff; color:var(--bh-green); border:1.5px solid var(--bh-green); border-radius:999px; padding:.8rem 1.8rem; font-weight:500; font-size:1.05rem; }
.bh-btn-outline:hover { background:var(--bh-green); color:#fff; }

/* fact cards */
.bh-facts { position:relative; z-index:3; margin-top:-3.4rem; }
.bh-fact { background:#fff; border-radius:16px; box-shadow:0 8px 26px rgba(58,104,0,.15); padding:1rem 1.2rem; display:flex; align-items:center; gap:1rem; height:100%; }
.bh-fact-ic { flex-shrink:0; width:62px; height:62px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.7rem; color:#fff; }
.bh-fact-ic.green { background:var(--bh-dark); }
.bh-fact-ic.gold { background:var(--bh-gold); }
.bh-fact-txt { border-left:1px solid #dfe5e1; padding-left:1rem; line-height:1.25; }
.bh-fact-txt strong { display:block; font-size:1.35rem; font-weight:600; color:#1b2a33; }
.bh-fact-txt span { color:#5b6650; font-size:.95rem; }

/* why choose */
.bh-why { padding-top:2.6rem; text-align:center; }
.bh-why-title { font-size:2rem; font-weight:700; color:#1b2a33; display:flex; align-items:center; justify-content:center; gap:1.4rem; margin:0; }
.bh-why-title::before, .bh-why-title::after { content:""; width:min(150px,16vw); height:3px; background:var(--bh-gold); }
.bh-why-title em { font-style:normal; color:var(--bh-green); }
.bh-why-sub { font-size:1.15rem; font-weight:500; color:#1b2a33; margin:.1rem 0 1.4rem; }
.bh-feature { background:#f8faf2; border:1px solid #edf1ee; border-radius:14px; padding:1.5rem 1rem; display:flex; align-items:center; justify-content:center; gap:1.2rem; height:100%; font-weight:500; font-size:1.05rem; }
.bh-feature i { font-size:2.6rem; color:var(--bh-green); line-height:1; }
.bh-wave { height:70px; margin-top:1.6rem; background:
  radial-gradient(120% 100% at 50% 100%, var(--bh-dark) 0 55%, transparent 56%) no-repeat;
  border-top:0; position:relative; }
.bh-wave::before { content:""; position:absolute; inset:0; background:radial-gradient(120% 100% at 50% 100%, transparent 0 56%, var(--bh-gold) 56.5% 59%, transparent 59.5%); }

/* about + classes */
.bh-about { background:#f7f9ee; padding:3.2rem 0; }
.bh-serif { font-family:'Poppins',sans-serif; font-weight:700; color:#2a4d00; }
.bh-about h2.bh-serif { font-size:2.5rem; }
.bh-about p { font-size:1.1rem; line-height:1.65; color:#1f2a24; }
.bh-bar { width:78px; height:5px; border-radius:4px; background:linear-gradient(90deg,#4f8a00 60%,#c5e48a 60%); margin-bottom:1.1rem; }
.bh-photo-wrap { position:relative; padding:0 0 0 24px; }
.bh-photo-wrap img { position:relative; z-index:2; width:100%; border-radius:16px; box-shadow:0 10px 26px rgba(0,0,0,.18); display:block; }
.bh-blob { position:absolute; background:#c9e496; border-radius:18px; z-index:1; opacity:.75; }
.bh-blob.b1 { width:46%; height:40%; top:-18px; left:-6px; }
.bh-blob.b2 { width:24%; height:28%; right:-12px; bottom:-18px; background:#dcefb4; }
.bh-readmore { background:var(--bh-dark); color:#fff; border-radius:10px; padding:.65rem 1.4rem; font-family:'Poppins',sans-serif; font-weight:600; font-size:1.05rem; margin-top:.8rem; }
.bh-readmore:hover { background:var(--bh-deep); color:#fff; }
@media (min-width:992px) { .bh-classes-col { border-left:1px solid #d8dcc3; padding-left:2rem; } }
.bh-classes-title { font-size:2rem; margin-bottom:1rem; }
.bh-classes { display:flex; flex-wrap:wrap; gap:.7rem; }
.bh-class { background:#fff; border-radius:999px; padding:.5rem 1rem; box-shadow:0 3px 10px rgba(0,0,0,.08); font-family:'Poppins',sans-serif; font-weight:500; color:#2a4d00; display:inline-flex; align-items:center; gap:.5rem; font-size:.98rem; }
.bh-class i { color:var(--bh-green); }

/* admissions banner */
.bh-cta-wrap { padding-top:2.2rem; padding-bottom:2.2rem; }
.bh-cta { position:relative; overflow:hidden; border-radius:26px; background:linear-gradient(110deg,#3a6800,#467800); color:#fff; display:flex; align-items:center; padding:2.2rem 2.5rem; gap:2.2rem; box-shadow:0 8px 26px rgba(0,0,0,.15); min-height:230px; }
.bh-cta::before { content:""; position:absolute; left:-40px; top:-20px; bottom:-20px; width:90px; border-radius:50%; background:#78bb10; opacity:.55; }
.bh-cta-img { position:absolute; top:0; right:0; bottom:0; width:42%; }
.bh-cta-img img { width:100%; height:100%; object-fit:cover; opacity:.45; -webkit-mask-image:linear-gradient(to right,transparent,#000 60%); mask-image:linear-gradient(to right,transparent,#000 60%); }
.bh-cta-icon { position:relative; font-size:6rem; line-height:1; padding:0 2.2rem 0 1.5rem; border-right:1px solid rgba(255,255,255,.55); }
.bh-cta-body { position:relative; }
.bh-cta h3 { font-family:'Poppins',sans-serif; font-weight:700; font-size:2.7rem; margin-bottom:.4rem; }
.bh-cta p { font-family:'Poppins',sans-serif; font-size:1.2rem; margin-bottom:1.3rem; }
.bh-cta-call { background:#fff; color:var(--bh-dark); border-radius:10px; font-weight:600; padding:.7rem 1.4rem; font-size:1.1rem; }
.bh-cta-wa { background:#67aa00; color:#fff; border:1px solid #8fcf3a; border-radius:10px; font-weight:600; padding:.7rem 1.4rem; font-size:1.1rem; }
.bh-cta-wa:hover { background:#4f8a00; color:#fff; }
@media (max-width:767px) { .bh-cta { flex-direction:column; text-align:center; padding:1.6rem; } .bh-cta-icon { border:0; padding:0; font-size:4rem; } .bh-cta h3 { font-size:2rem; } .bh-cta .d-flex { justify-content:center; } .bh-cta-img { width:100%; opacity:.6; } }

/* footer */
.pub-footer { background:var(--bh-dark); color:#eef4df; font-family:'Poppins',sans-serif; }
.pub-footer a { color:#eef4df; text-decoration:none; }
.pub-footer a:hover { color:var(--bh-gold); text-decoration:none; }
.pub-foot-logo { background:#fff; border-radius:12px; padding:.4rem .6rem; display:flex; align-items:center; flex-shrink:0; }
.pub-foot-name { font-size:1.55rem; font-weight:600; color:#fff; }
.pub-foot-tag { font-size:1.15rem; }
.pub-foot-hr { border-color:rgba(255,255,255,.5); opacity:1; margin:.8rem 0; }
.pub-footer h6 { font-size:1.25rem; font-weight:600; color:#fff; margin-bottom:1rem; }
.pub-footer h6 i { margin-right:.4rem; font-size:1.3rem; }
.pub-footer li { margin-bottom:.45rem; font-size:1.05rem; }
.pub-footer p i { margin-right:.35rem; }
@media (min-width:992px) { .pub-foot-col { border-right:1px solid rgba(255,255,255,.22); } }
.pub-copy { background:#1c3300; color:#fff; border-top:1px solid rgba(255,255,255,.12); font-family:'Source Sans 3',sans-serif; }
.pub-copy a { color:#fff; }
.pub-foot-social .pub-soc { background:transparent; border:2px solid #fff; color:#fff !important; width:36px; height:36px; }
.pub-foot-social .pub-soc:hover { background:#fff; color:var(--bh-dark) !important; }

/* font roles: Montserrat = headings/nav/buttons, Open Sans = body, Roboto Slab = serif sections */
.pub-nav .nav-link, .pub-nav .navbar-brand strong, .pub-dash-btn, .bh-hero h1, .bh-est, .bh-btn-solid, .bh-btn-outline,
.bh-fact-txt strong, .bh-why-title, .bh-why-sub, .bh-feature, .bh-cta-call, .bh-cta-wa, .pub-topbar { font-family:'Poppins',sans-serif; }
.bh-quote { font-family:'Poppins',sans-serif; font-weight:500; }

/* navbar active = green text + underline (matches About designs) */
.pub-nav .nav-link { border-radius:0; padding:.55rem .85rem; position:relative; }
.pub-nav .nav-link.active { background:transparent; color:var(--bh-green); font-weight:600; }
.pub-nav .nav-link.active::after { content:""; position:absolute; left:.85rem; right:.85rem; bottom:-6px; height:3px; border-radius:2px; background:var(--bh-green); }

/* ======== About pages ======== */
.ab-banner { position:relative; overflow:hidden; background:linear-gradient(100deg,#3a6800,#467800); color:#fff; padding:2.6rem 0 2.2rem; min-height:170px; }
.ab-banner::before { content:""; position:absolute; left:-60px; top:20px; width:130px; height:200px; background:#67aa00; opacity:.5; border-radius:80% 0 80% 0; transform:rotate(-25deg); }
.ab-banner-img { position:absolute; top:0; right:0; bottom:0; width:55%; }
.ab-banner-img img { width:100%; height:100%; object-fit:cover; -webkit-mask-image:linear-gradient(to right,transparent 0,#000 40%); mask-image:linear-gradient(to right,transparent 0,#000 40%); }
.ab-banner h1 { font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(2rem,4.5vw,3.3rem); margin:0 0 .6rem; }
.ab-crumb { font-size:1.05rem; display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; }
.ab-crumb a { color:#fff; text-decoration:none; } .ab-crumb a:hover { text-decoration:underline; }
.ab-wrap { padding-top:1.9rem; padding-bottom:2.2rem; }
.ab-tabs { display:flex; flex-wrap:wrap; gap:.9rem; margin-bottom:2rem; }
.ab-tab { background:#f1f7e4; color:#2a4a00; border-radius:999px; padding:.7rem 1.4rem; text-decoration:none; font-weight:500; display:inline-flex; align-items:center; gap:.6rem; box-shadow:0 3px 10px rgba(0,0,0,.07); font-family:'Source Sans 3',sans-serif; }
.ab-tab i { font-size:1.15rem; color:var(--bh-green); }
.ab-tab:hover { background:#e6f1cf; color:#2a4a00; }
.ab-tab.active { background:var(--bh-dark); color:#fff; box-shadow:0 4px 12px rgba(58,104,0,.35); }
.ab-tab.active i { color:#fff; }

.ab-photo img { width:100%; border-radius:16px; box-shadow:0 8px 22px rgba(0,0,0,.15); display:block; }
.ab-text p { font-size:1.08rem; line-height:1.6; color:#222; }
.ab-h { font-family:'Poppins',sans-serif; font-weight:700; font-size:2rem; color:var(--bh-dark); border-left:5px solid var(--bh-green); padding-left:.8rem; margin-bottom:.7rem; }
.ab-glance { background:#fff; border:1px solid #dcecb8; border-radius:20px; box-shadow:0 6px 18px rgba(0,0,0,.08); overflow:hidden; padding:0 0 1rem; }
.ab-glance-head { background:var(--bh-dark); color:#fff; font-family:'Poppins',sans-serif; font-weight:600; font-size:1.4rem; padding:.9rem 1.2rem; }
.ab-glance ul { padding:1rem 1.1rem 0; }
.ab-glance li { display:flex; align-items:center; gap:.8rem; margin-bottom:.9rem; font-size:1rem; }
.ab-glance li span { flex-shrink:0; width:42px; height:42px; border-radius:50%; background:#eef6dc; color:var(--bh-green); display:flex; align-items:center; justify-content:center; font-size:1.2rem; }

.ab-mv { background:#fff; border-radius:18px; box-shadow:0 6px 22px rgba(0,0,0,.08); padding:.9rem; display:flex; gap:1.6rem; align-items:flex-start; height:100%; }
.ab-mv img { width:42%; max-width:265px; aspect-ratio:.86; object-fit:cover; border-radius:16px; flex-shrink:0; }
.ab-mv > div { padding-top:.4rem; padding-right:.6rem; }
.ab-mv-ic { width:76px; height:76px; border-radius:50%; background:#dcecb8; color:var(--bh-green); display:flex; align-items:center; justify-content:center; font-size:2.4rem; }
.ab-mv h2 { font-family:'Poppins',sans-serif; font-weight:700; font-size:2.3rem; color:var(--bh-dark); margin:.7rem 0 .3rem; }
.ab-line { width:76px; height:4px; background:var(--bh-green); margin-bottom:1rem; }
.ab-mv p { font-size:1.05rem; line-height:1.7; margin:0; }
@media (max-width:575px) { .ab-mv { flex-direction:column; } .ab-mv img { width:100%; max-width:none; aspect-ratio:1.3; } }

.ab-cta { position:relative; overflow:hidden; margin-top:2.4rem; border-radius:22px; background:linear-gradient(110deg,#3a6800,#467800); color:#fff; display:flex; align-items:center; justify-content:space-between; padding:1.6rem 2.5rem; box-shadow:0 8px 24px rgba(0,0,0,.14); }
.ab-cta-book { font-size:5.5rem; line-height:1; padding-right:2rem; border-right:1px solid rgba(255,255,255,.5); }
.ab-cta-stack { font-size:5.5rem; opacity:.3; line-height:1; }
.ab-cta-body { text-align:center; flex:1; }
.ab-cta h4 { font-family:'Poppins',sans-serif; font-weight:600; font-size:2rem; margin-bottom:1rem; }
@media (max-width:767px) { .ab-cta-book, .ab-cta-stack { display:none; } .ab-cta { padding:1.4rem; } }
.ab-wrap .bloom-title { font-family:'Poppins',sans-serif; color:var(--bh-dark); border-left:5px solid var(--bh-green); padding-left:.8rem; }

.side-logo { background:#fff; border-radius:10px; padding:.25rem .45rem; display:inline-flex; align-items:center; vertical-align:middle; }
.side-logo img { width:auto; display:block; }
.pub-nav .navbar-brand { gap:.7rem !important; }

/* ---- Navbar: fluid sizing, never wraps ---- */
.pub-nav > .container-xl { max-width:1560px; padding-left:clamp(.8rem,2.4vw,3rem); padding-right:clamp(.8rem,2.4vw,3rem); }
.pub-nav .navbar-brand { flex-shrink:0; margin-right:clamp(.8rem,2vw,2rem) !important; }
.pub-nav .navbar-brand strong { font-size:clamp(1rem,1.45vw,1.35rem); white-space:nowrap; }
.pub-nav .navbar-brand small { font-size:clamp(.68rem,.9vw,.82rem); white-space:nowrap; }
.pub-nav .bloom-logo-img { height:clamp(42px,3.8vw,58px) !important; }
.pub-nav .navbar-nav { flex-wrap:nowrap; }
.pub-nav .nav-link { white-space:nowrap; font-size:clamp(.8rem,1.02vw,.95rem); padding:.55rem clamp(.4rem,.85vw,.85rem); }
.pub-nav .nav-link.active::after { left:clamp(.4rem,.85vw,.85rem); right:clamp(.4rem,.85vw,.85rem); }
.pub-dash-btn { white-space:nowrap; flex-shrink:0; font-size:clamp(.8rem,1vw,.95rem); padding:.55rem clamp(.8rem,1.1vw,1.1rem); }
@media (max-width:1199.98px) { .pub-nav .nav-link { font-size:1rem; padding:.6rem .5rem; } .pub-nav .nav-link.active::after { left:.5rem; right:auto; width:40px; bottom:2px; } }

/* ---- Footer: smaller, cleaner fonts ---- */
.pub-footer { font-family:'Source Sans 3',sans-serif; font-size:.92rem; font-weight:400; }
.pub-footer .pub-foot-name { font-family:'Poppins',sans-serif; font-size:1.1rem; font-weight:600; }
.pub-footer .pub-foot-tag { font-family:'Source Sans 3',sans-serif; font-size:.9rem; font-weight:400; }
.pub-footer h6 { font-family:'Poppins',sans-serif; font-size:1rem; font-weight:600; margin-bottom:.8rem; }
.pub-footer h6 i { font-size:1.05rem; }
.pub-footer li { font-size:.9rem; margin-bottom:.35rem; font-weight:400; }
.pub-footer p { font-size:.9rem; font-weight:400; }
.pub-footer .small { font-size:.88rem; }
.pub-foot-logo img { height:44px !important; }
.pub-copy { font-size:.85rem; }
.pub-copy a:hover { color:var(--bh-gold); }
.pub-foot-social .pub-soc { width:32px; height:32px; font-size:.9rem; border-width:1.5px; }

/* ---- Philosophy & Objectives ---- */
.ab-bar { width:80px; height:4px; border-radius:3px; background:linear-gradient(90deg,#4f8a00 55%,#c5e48a 55%); margin-bottom:.6rem; }
.ab-serif { font-family:'Poppins',sans-serif; font-weight:700; color:var(--bh-dark); font-size:2.3rem; margin-bottom:.7rem; }
.ph-img { border-radius:110px 0 0 24px; border-left:5px solid #67aa00; overflow:hidden; box-shadow:0 8px 22px rgba(0,0,0,.14); }
.ph-img img { width:100%; display:block; aspect-ratio:2.4; object-fit:cover; }
.ph-obj { background:#fff; border-radius:12px; box-shadow:0 3px 12px rgba(0,0,0,.08); padding:1rem 1.1rem; display:flex; align-items:center; gap:.9rem; height:100%; }
.ph-num { flex-shrink:0; width:38px; height:38px; border-radius:50%; background:var(--bh-dark); color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; font-family:'Poppins',sans-serif; }
.ph-ic { flex-shrink:0; font-size:1.9rem; color:var(--bh-dark); padding-right:.9rem; border-right:1px solid #d8e2dc; line-height:1; }
.ph-txt { font-size:.98rem; line-height:1.45; }
.ab-cta-vision { padding:1.3rem 2.5rem; }
.ab-cta-vision .ab-cta-body h4 { font-family:'Poppins',sans-serif; font-size:2rem; }
.ab-cta-vision p { font-size:1.05rem; }
.ab-cta-ghost { position:absolute; left:6%; font-size:5rem; opacity:.2; }
.ab-cta-btn { background:#fff; color:var(--bh-dark); font-weight:600; border-radius:12px; padding:.7rem 1.4rem; position:relative; white-space:nowrap; }
.ab-cta-btn:hover { background:var(--bh-gold); color:#111; }
@media (max-width:767px) { .ab-cta-vision { flex-direction:column; gap:1rem; text-align:center; } .ph-img { border-radius:50px 0 0 16px; } }

/* tab row lines + banner wave (all About pages) */
.ab-tabs { justify-content:center; }
.ab-banner { padding-bottom:2.6rem; }
.ab-banner::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:34px; background:#fff; border-radius:50% 50% 0 0 / 100% 100% 0 0; transform:scaleX(1.6); }
.ab-crumb span:not(.cur) { opacity:.8; }

/* ---- Teaching Approach ---- */
.ab-h2 { font-family:'Poppins',sans-serif; font-weight:700; font-size:2.3rem; color:var(--bh-dark); border-left:5px solid var(--bh-green); padding-left:.9rem; margin-bottom:.8rem; line-height:1.15; }
.ta-card { background:#fff; border-radius:14px; box-shadow:0 3px 14px rgba(0,0,0,.08); padding:1.3rem 1.3rem; display:flex; gap:1.1rem; align-items:flex-start; height:100%; }
.ta-ic { flex-shrink:0; width:74px; height:74px; border-radius:50%; background:#e2efc6; color:var(--bh-dark); display:flex; align-items:center; justify-content:center; font-size:2rem; }
.ta-card h3 { font-family:'Poppins',sans-serif; font-weight:700; font-size:1.4rem; color:var(--bh-dark); margin:.3rem 0 .4rem; }
.ta-card p { font-size:.95rem; line-height:1.55; color:#444; margin:0; }
.ab-cta-inline { justify-content:center; gap:2rem; flex-wrap:wrap; padding:1.5rem 2.5rem; border-radius:40px; }
.ab-cta-inline h4 { font-family:'Poppins',sans-serif; font-weight:700; font-size:2rem; margin:0; }
.ab-cta-inline .ab-cta-book { padding-right:2rem; }
@media (max-width:767px) { .ab-cta-inline .ab-cta-book { display:none; } .ab-cta-inline { justify-content:center; text-align:center; } .ab-cta-inline h4 { font-size:1.5rem; } }
/* About tabs use serif like the designs */
.ab-tab { font-family:'Poppins',sans-serif; font-size:.95rem; }

/* ---- Principal's Message ---- */
.pr-card { position:relative; height:100%; background:linear-gradient(#fff,#f4f8ec); border:1px solid #dcecb8; border-radius:22px; box-shadow:0 6px 20px rgba(0,0,0,.09); text-align:center; padding:1.6rem 1rem 6rem; overflow:hidden; }
.pr-avatar { width:190px; height:190px; max-width:100%; margin:0 auto 1rem; border-radius:50%; background:#e8f2cf; border:2px solid var(--bh-dark); box-shadow:0 0 0 6px #f2f8e4 inset; display:flex; align-items:flex-end; justify-content:center; overflow:hidden; color:var(--bh-dark); font-size:8.5rem; line-height:1; }
.pr-card h3 { font-family:'Poppins',sans-serif; font-weight:700; font-size:1.7rem; color:var(--bh-dark); margin:0; }
.pr-line { width:80%; height:2px; margin:.7rem auto; background:linear-gradient(90deg,transparent,#f35500,transparent); }
.pr-card p { margin:0; font-size:.98rem; }
.pr-wave { position:absolute; left:0; right:0; bottom:0; height:80px; background:var(--bh-dark); border-radius:60% 40% 0 0 / 70% 70% 0 0; }
.pr-wave::before { content:""; position:absolute; left:-10%; right:-10%; top:-14px; height:30px; border-top:5px solid #f35500; border-radius:50%; }
.pr-msg { background:#fff; border-radius:16px; box-shadow:0 5px 20px rgba(0,0,0,.07); padding:1.5rem 1.8rem; height:100%; }
.pr-msg p { font-size:1.02rem; line-height:1.55; }
.pr-name { color:var(--bh-dark); }
.ab-cta-inline h4 { font-style:italic; }

/* ---- Fonts: Playfair Display (headings) + Source Sans 3 (body/nav/buttons) ---- */
.pub-body { font-family:'Source Sans 3',system-ui,sans-serif; font-size:1.02rem; }
.pub-topbar, .pub-nav .nav-link, .pub-dash-btn, .bh-est, .bh-btn-solid, .bh-btn-outline, .bh-feature, .bh-cta-call, .bh-cta-wa,
.ab-tab, .ab-crumb, .ab-cta-btn, .bh-readmore, .bh-class, .bh-fact-txt span, .pub-footer, .pub-footer h6 { font-family:'Source Sans 3',sans-serif; }
.pub-nav .nav-link { font-weight:700; }
.pub-dash-btn, .bh-btn-solid, .bh-btn-outline, .bh-cta-call, .bh-cta-wa, .ab-cta-btn, .bh-readmore, .bh-est { font-weight:700; }
.pub-nav .navbar-brand strong, .bh-hero h1, .bh-fact-txt strong, .bh-why-title, .bh-why-sub, .bh-quote, .bh-serif, .ab-h, .ab-h2, .ab-serif,
.ab-banner h1, .ab-mv h2, .ab-glance-head, .ta-card h3, .pr-card h3, .ab-cta h4, .bh-cta h3, .bh-class-title, .pub-foot-name, .ph-num, .bloom-title { font-family:'Poppins',sans-serif; }
.bh-hero h1 { font-weight:700; letter-spacing:-.5px; }
.bh-quote { font-style:normal; font-weight:500; }
.ab-cta-inline h4, .ab-cta-vision h4 { font-style:normal; }
.bh-class { font-weight:600; }
.ab-tab { font-weight:700; font-size:.95rem; }
.pub-footer h6 { font-weight:600; letter-spacing:.2px; }
.pub-footer, .pub-footer li, .pub-footer p { font-weight:600; }
.pub-nav .navbar-brand strong { font-weight:600; }


/* ======== LOGO THEME: green #67aa00 · red #c60000 · pink #cc007a · orange #f35500 ======== */
:root { --logo-green:#67aa00; --logo-red:#c60000; --logo-pink:#cc007a; --logo-orange:#f35500;
  --bloom-green:#4f8a00; --bloom-dark:#3a6800; --bh-green:#4f8a00; --bh-dark:#3a6800; --bh-deep:#2a4d00; --bh-gold:#c60000; }
.pub-nav { border-bottom:4px solid transparent; border-image:linear-gradient(90deg,#67aa00 0 40%,#c60000 40% 62%,#cc007a 62% 82%,#f35500 82% 100%) 1; }
.pub-footer { border-top:4px solid transparent; border-image:linear-gradient(90deg,#67aa00 0 40%,#c60000 40% 62%,#cc007a 62% 82%,#f35500 82% 100%) 1; }
.bh-fact-ic.gold { background:var(--logo-orange); }
.bh-fact-ic.green { background:var(--bh-dark); }
.bh-rule, .bh-why-title::before, .bh-why-title::after { background:var(--logo-red); }
.pub-soc:hover, .pub-foot-social .pub-soc:hover { background:var(--logo-orange); color:#fff !important; }
.pub-topbar .gold { color:#ffd9a8; }
.pub-footer a:hover, .pub-copy a:hover { color:#ffb27a; }
.bh-why-title em { color:var(--logo-red); }
.bh-feature:nth-child(1) i, .col-lg-3:nth-child(1) .bh-feature i { color:var(--logo-green); }
.col-lg-3:nth-child(2) .bh-feature i { color:var(--logo-red); }
.col-lg-3:nth-child(3) .bh-feature i { color:var(--logo-pink); }
.col-lg-3:nth-child(4) .bh-feature i { color:var(--logo-orange); }
.bh-wave::before { background:radial-gradient(120% 100% at 50% 100%, transparent 0 56%, var(--logo-red) 56.5% 59%, transparent 59.5%); }
.ab-h, .ab-h2, .bloom-title, .ab-wrap .bloom-title { border-left-color:var(--logo-red); }
.ab-line { background:var(--logo-red); }
.ab-bar, .bh-bar { background:linear-gradient(90deg,var(--logo-red) 55%,#f3a0a0 55%); }
.ab-mv-ic, .ta-ic { background:#e8f2cf; }
.ta-card:nth-child(odd) .ta-ic { }
.col-md-6:nth-child(2) .ta-ic, .col-xl-4:nth-child(2) .ta-ic { color:var(--logo-red); background:#fbe3e3; }
.col-xl-4:nth-child(3) .ta-ic { color:var(--logo-pink); background:#fbe0f0; }
.col-xl-4:nth-child(4) .ta-ic { color:var(--logo-orange); background:#ffe6d8; }
.col-xl-4:nth-child(5) .ta-ic { color:var(--logo-red); background:#fbe3e3; }
.col-xl-4:nth-child(6) .ta-ic { color:var(--logo-pink); background:#fbe0f0; }
.ph-num { background:var(--logo-red); }
.ph-img { border-left-color:var(--logo-red); }
.pr-wave::before { border-top-color:var(--logo-red); }
.pr-line { background:linear-gradient(90deg,transparent,var(--logo-red),transparent); }
.ab-tab.active, .pub-dash-btn, .bh-btn-solid, .bh-est, .bh-readmore { background:var(--bh-green); }
.ab-tab.active:hover { background:var(--bh-dark); }
.bh-hero h1 span { color:var(--bh-green); }
.bh-btn-outline { color:var(--bh-green); border-color:var(--bh-green); }
.bh-btn-outline:hover, .pub-dash-btn:hover, .bh-btn-solid:hover, .bh-readmore:hover { background:var(--bh-dark); color:#fff; }
.bh-cta, .ab-cta { background:linear-gradient(110deg,#3a6800,#4f8a00); }
.bh-cta-call, .ab-cta-btn { color:var(--bh-dark); }
.bh-cta-wa { background:var(--logo-red); border:1px solid #e25252; color:#fff; }
.bh-cta-wa:hover { background:#a50000; color:#fff; }
.ab-cta-btn:hover { background:var(--logo-orange); color:#fff; }
.pub-copy { background:#223d00; }
.pub-footer { background:var(--bh-dark); }
.pub-topbar { background:var(--bh-dark); }
.admin-sidebar { background:var(--bh-dark); }
.sidebar-link.active { background:var(--logo-green); }
.admin-topbar { border-bottom-color:#e4e9da; }

/* ======== TONED-DOWN LOGO THEME (calm deep green + one muted red accent) ======== */
:root { --bloom-green:#3d6b22; --bloom-dark:#2b4d17; --bh-green:#3d6b22; --bh-dark:#2b4d17; --bh-deep:#1f3a10; --bh-gold:#b23a30;
  --logo-green:#5f9a2a; --logo-red:#b23a30; --logo-pink:#3d6b22; --logo-orange:#3d6b22; }
.pub-nav, .pub-footer { border-image:linear-gradient(90deg,#5f9a2a 0 75%,#b23a30 75% 100%) 1; border-width:3px; }
.pub-nav { border-bottom-width:3px; } .pub-footer { border-top-width:3px; }
.pub-topbar, .pub-footer { background:#2b4d17; } .pub-copy { background:#1f3a10; }
.pub-topbar .gold { color:#cfe3b0; }
.pub-footer a:hover, .pub-copy a:hover { color:#d9ecb8; }
.pub-soc:hover, .pub-foot-social .pub-soc:hover { background:#dfeccb; color:#2b4d17 !important; }
.bh-fact-ic.gold, .bh-fact-ic.green { background:#2b4d17; }
.bh-fact-ic.gold { background:#5f8f35; }
.bh-rule, .bh-why-title::before, .bh-why-title::after { background:#b23a30; }
.bh-why-title em { color:var(--bh-green); }
.col-lg-3 .bh-feature i, .col-lg-3:nth-child(n) .bh-feature i { color:#3d6b22; }
.ab-h, .ab-h2, .bloom-title, .ab-wrap .bloom-title { border-left-color:#b23a30; }
.ab-line { background:#b23a30; }
.ab-bar, .bh-bar { background:linear-gradient(90deg,#3d6b22 55%,#bcd69a 55%); }
.ab-mv-ic, .ta-ic, .col-md-6:nth-child(n) .ta-ic, .col-xl-4:nth-child(n) .ta-ic { background:#e6efd8 !important; color:#2b4d17 !important; }
.ph-num { background:#2b4d17; }
.ph-img { border-left-color:#5f9a2a; }
.pr-wave::before { border-top-color:#b23a30; }
.pr-line { background:linear-gradient(90deg,transparent,#b23a30,transparent); }
.bh-wave::before { background:radial-gradient(120% 100% at 50% 100%, transparent 0 56%, #b23a30 56.5% 59%, transparent 59.5%); }
.bh-cta, .ab-cta { background:linear-gradient(110deg,#2b4d17,#3d6b22); }
.bh-cta::before { background:#5f9a2a; opacity:.35; }
.bh-cta-wa { background:#5f9a2a; border:1px solid #8cbf5a; }
.bh-cta-wa:hover { background:#4d8120; }
.ab-cta-btn:hover { background:#dfeccb; color:#2b4d17; }
.pub-dash-btn, .bh-btn-solid, .bh-est, .bh-readmore, .ab-tab.active { background:#3d6b22; }
.pub-dash-btn:hover, .bh-btn-solid:hover, .bh-readmore:hover, .ab-tab.active:hover { background:#2b4d17; }
.bh-btn-outline { color:#3d6b22; border-color:#3d6b22; } .bh-btn-outline:hover { background:#3d6b22; color:#fff; }
.pub-nav .nav-link.active { color:#3d6b22; } .pub-nav .nav-link.active::after { background:#3d6b22; }
.pub-nav .nav-link:hover { color:#3d6b22; }
.ab-banner { background:linear-gradient(100deg,#233f12,#2f5719); }
.ab-banner::before { background:#4f8a2a; opacity:.4; }
.admin-sidebar { background:#2b4d17; } .sidebar-link.active { background:#4d7f27; }
.bloom-title { color:#2b4d17; }


/* ---- Official look: Playfair Display headings + Source Sans 3 body ---- */
.pub-body { font-size:1.05rem; }
.bh-hero h1 { font-weight:700; letter-spacing:-.3px; line-height:1.12; }
.bh-quote { font-style:italic; font-weight:500; font-size:1.55rem; }
.bh-fact-txt strong { font-weight:700; font-size:1.25rem; }
.pub-nav .navbar-brand strong { font-weight:700; letter-spacing:0; }
.pub-nav .nav-link { font-weight:600; font-size:clamp(.82rem,1.05vw,.98rem); }
.ab-banner h1 { font-weight:700; letter-spacing:-.3px; }
.ab-h, .ab-h2, .ab-serif, .ab-mv h2, .ta-card h3, .pr-card h3, .bh-why-title, .bh-serif { font-weight:700; }
.ta-card h3 { font-size:1.3rem; }
.ab-tab { font-weight:600; font-size:.98rem; }
.pub-footer, .pub-footer li, .pub-footer p { font-weight:400; }
.pub-footer h6, .pub-footer .pub-foot-name { font-weight:600; }
.ab-cta h4, .bh-cta h3 { font-weight:700; }
.ab-cta-inline h4, .ab-cta-vision h4 { font-style:italic; }
.bh-class, .bh-feature { font-weight:600; }

/* ---- Hero: sharp entrance photo ---- */
.bh-hero-img { width:64%; }
.bh-hero-img img { object-fit:cover; object-position:58% 35%;
  -webkit-mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.55) 12%,#000 30%); mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.55) 12%,#000 30%); }
@media (max-width:991px) { .bh-hero-img { width:100%; opacity:.28; } .bh-hero-img img { -webkit-mask-image:none; mask-image:none; } }

/* ======== Home: Life at Bloom, Moments, Campus, Steps ======== */
.hm-sec { padding:3.6rem 0; }
.hm-head { text-align:center; max-width:720px; margin:0 auto 2.2rem; }
.hm-eyebrow { display:inline-block; font-weight:700; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:#b23a30; margin-bottom:.4rem; }
.hm-head h2 { font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(1.8rem,3.4vw,2.6rem); color:#2b4d17; margin-bottom:.6rem; }
.hm-head p { color:#4d5a43; margin:0; }
.hm-life { background:#fff; }
.hm-act { background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 6px 22px rgba(30,60,10,.10); height:100%; transition:transform .25s, box-shadow .25s; }
.hm-act:hover { transform:translateY(-5px); box-shadow:0 12px 28px rgba(30,60,10,.16); }
.hm-act-img { position:relative; aspect-ratio:4/3; overflow:hidden; background:#e6efd8; }
.hm-act-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; display:block; }
.hm-act:hover .hm-act-img img { transform:scale(1.06); }
.hm-act-img.empty { background:linear-gradient(135deg,#e6efd8,#cfe0b3); display:flex; align-items:center; justify-content:center; }
.hm-act-img.empty > i { font-size:5rem; color:rgba(43,77,23,.35); }
.hm-act-ic { position:absolute; left:1rem; bottom:-1px; width:54px; height:54px; border-radius:14px 14px 0 0; background:#fff; color:#3d6b22; display:flex; align-items:center; justify-content:center; font-size:1.5rem; }
.hm-act-img.empty .hm-act-ic { display:none; }
.hm-act-body { padding:1.2rem 1.3rem 1.4rem; }
.hm-act-body h3 { font-family:'Poppins',sans-serif; font-weight:700; font-size:1.3rem; color:#2b4d17; margin-bottom:.4rem; }
.hm-act-body p { color:#4d5a43; margin:0; font-size:.98rem; line-height:1.55; }

.hm-moments { background:#f4f8ec; }
.hm-mosaic { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:190px; gap:.8rem; }
.hm-m { position:relative; overflow:hidden; border-radius:14px; display:block; box-shadow:0 4px 14px rgba(0,0,0,.1); }
.hm-m img { width:100%; height:100%; object-fit:cover; transition:transform .5s; display:block; }
.hm-m:hover img { transform:scale(1.07); }
.hm-m0 { grid-column:span 2; grid-row:span 2; }
@media (max-width:767px) { .hm-mosaic { grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; } }

.hm-facil { background:#2b4d17; }
.hm-facil .hm-head h2 { color:#fff; } .hm-facil .hm-eyebrow { color:#cfe3b0; }
.hm-fac { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:14px; padding:1.3rem .7rem; color:#fff; height:100%; display:flex; flex-direction:column; align-items:center; gap:.3rem; }
.hm-fac i { font-size:2.1rem; color:#cfe3b0; }
.hm-fac strong { font-size:1.02rem; } .hm-fac span { font-size:.85rem; opacity:.85; }

.hm-steps { background:#fff; }
.hm-step { position:relative; background:#f4f8ec; border-radius:16px; padding:2.2rem 1.5rem 1.6rem; text-align:center; height:100%; }
.hm-step-n { position:absolute; top:-18px; left:50%; transform:translateX(-50%); width:40px; height:40px; border-radius:50%; background:#3d6b22; color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; font-family:'Poppins',sans-serif; box-shadow:0 0 0 5px #fff; }
.hm-step > i { font-size:2.2rem; color:#3d6b22; }
.hm-step h3 { font-family:'Poppins',sans-serif; font-weight:700; font-size:1.25rem; color:#2b4d17; margin:.6rem 0 .4rem; }
.hm-step p { color:#4d5a43; margin:0; }


/* ---- Headings: Poppins (clean, modern, official) ---- */
h1,h2,h3,h4,h5,.bh-hero h1,.hm-head h2,.ab-banner h1,.ab-h,.ab-h2,.ab-serif,.ab-mv h2,.ta-card h3,.pr-card h3,.bh-why-title,.bh-serif,
.hm-act-body h3,.hm-step h3,.ab-cta h4,.bh-cta h3,.pub-foot-name,.pub-nav .navbar-brand strong,.bh-fact-txt strong,.ab-glance-head { font-family:'Poppins',sans-serif; }
.bh-hero h1 { font-weight:700; letter-spacing:-1px; line-height:1.1; }
.hm-head h2, .ab-banner h1, .bh-why-title { font-weight:600; letter-spacing:-.4px; }
.ab-h, .ab-h2, .ab-serif, .ab-mv h2, .ta-card h3, .pr-card h3, .hm-act-body h3, .hm-step h3, .ab-glance-head, .ab-cta h4, .bh-cta h3 { font-weight:600; }
.ab-h2, .ab-h, .ab-serif { font-size:2rem; }
.ab-mv h2 { font-size:2rem; }
.ab-banner h1 { font-size:clamp(1.9rem,4vw,3rem); }
.bh-quote, .ab-cta-inline h4, .ab-cta-vision h4 { font-family:'Poppins',sans-serif; font-style:italic; font-weight:500; }
.ab-cta h4 { font-size:1.7rem; }
.pub-nav .navbar-brand strong { font-weight:600; }
.hm-eyebrow { font-family:'Poppins',sans-serif; }


/* ======== Home: Award ceremony, Winners' Wall, Qirat & Naat ======== */
.hm-btn-light { background:#fff; color:#2b4d17; border-radius:999px; padding:.7rem 1.5rem; font-weight:600; }
.hm-btn-light:hover { background:#e0b040; color:#1f3a10; }

.hm-awards { background:#233f12; color:#fff; }
.hm-aw-title { font-family:'Poppins',sans-serif; font-weight:600; font-size:clamp(1.9rem,3.4vw,2.7rem); letter-spacing:-.4px; color:#fff; margin-bottom:.8rem; }
.hm-aw-text { color:#dfeccb; font-size:1.08rem; line-height:1.65; max-width:34rem; }
.hm-stage { position:relative; margin:0; padding-top:30px; }
.hm-stage::before { content:""; position:absolute; left:-6px; right:-6px; top:0; height:34px; z-index:2; border-radius:4px 4px 0 0;
  background:radial-gradient(circle at 21px 0, #b23a30 20px, transparent 21px) 0 0/42px 34px repeat-x, linear-gradient(#b23a30,#b23a30) 0 0/100% 8px no-repeat; }
.hm-stage > a { display:block; border:5px solid #f0dfa8; border-top-width:0; box-shadow:0 18px 40px rgba(0,0,0,.35); overflow:hidden; }
.hm-stage > a img { width:100%; display:block; aspect-ratio:16/9; object-fit:cover; }
.hm-stage-row { display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; margin-top:.8rem; }
.hm-stage-row a { display:block; border-radius:10px; overflow:hidden; border:3px solid rgba(240,223,168,.55); }
.hm-stage-row img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; transition:transform .4s; }
.hm-stage-row a:hover img { transform:scale(1.06); }
.hm-shelf { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1.6rem; padding-bottom:12px; border-bottom:10px solid #8a6a3d; box-shadow:0 12px 14px -10px rgba(0,0,0,.5); }
.hm-shelf a { position:relative; display:block; border-radius:12px 12px 0 0; overflow:hidden; aspect-ratio:1/1; }
.hm-shelf img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.hm-shelf a:hover img { transform:scale(1.06); }
.hm-shelf span { position:absolute; left:0; right:0; bottom:0; padding:1.4rem .8rem .55rem; background:linear-gradient(transparent,rgba(20,35,10,.85)); color:#fff; font-weight:600; }

.hm-wallsec { background:#f4f8ec; padding-top:3.4rem; overflow:hidden; }
.hm-wall-head h2 { font-family:'Poppins',sans-serif; font-weight:600; letter-spacing:-.4px; font-size:clamp(1.8rem,3.4vw,2.6rem); color:#2b4d17; margin:0 0 .4rem; }
.hm-wall-head p { color:#4d5a43; margin:0; max-width:34rem; }
.hm-wall-btns { display:flex; gap:.5rem; }
.hm-wall-btn { width:44px; height:44px; border-radius:50%; border:2px solid #2b4d17; background:#fff; color:#2b4d17; font-size:1.1rem; display:inline-flex; align-items:center; justify-content:center; }
.hm-wall-btn:hover { background:#2b4d17; color:#fff; }
.hm-bunting { height:46px; margin-top:1.2rem; background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='168' height='46'><path d='M0 3H168' stroke='%232b4d17' stroke-width='2'/><polygon points='6,4 50,4 28,42' fill='%233d6b22'/><polygon points='62,4 106,4 84,42' fill='%23e0b040'/><polygon points='118,4 162,4 140,42' fill='%23b23a30'/></svg>") 0 0/168px 46px repeat-x; }
.hm-wall { overflow-x:auto; scroll-snap-type:x proximity; padding:0 1.2rem 2.2rem max(1.2rem, calc((100vw - 1320px) / 2 + .75rem)); outline-offset:4px; scrollbar-color:#3d6b22 #dfeccb; }
.hm-wall-track { position:relative; display:flex; gap:1.7rem; width:max-content; padding:0 .4rem; }
.hm-wall-track::before { content:""; position:absolute; left:0; right:0; top:10px; height:3px; background:#2b4d17; border-radius:2px; }
.hm-pol { position:relative; flex:0 0 auto; width:216px; margin-top:20px; padding:10px 10px 0; background:#fff; border-radius:3px; text-decoration:none; color:#2b4d17;
  box-shadow:0 10px 20px rgba(30,60,10,.2); transform:rotate(var(--r,0deg)); transform-origin:50% 0; scroll-snap-align:center; transition:transform .25s ease, box-shadow .25s ease; }
.hm-pol::before { content:""; position:absolute; top:-22px; left:50%; width:13px; height:30px; margin-left:-6px; background:linear-gradient(90deg,#d8b377,#b98f52); border-radius:3px; box-shadow:0 2px 3px rgba(0,0,0,.25); }
.hm-pol img { width:100%; aspect-ratio:4/5; object-fit:cover; display:block; background:#e6efd8; }
.hm-pol span { display:block; padding:.65rem .2rem .85rem; font-weight:600; font-size:.95rem; text-align:center; }
.hm-pol:hover, .hm-pol:focus-visible { transform:rotate(0deg) translateY(4px); box-shadow:0 16px 26px rgba(30,60,10,.28); }

.hm-qirat { background:#fff; }
.hm-q-title { font-size:clamp(1.8rem,3.2vw,2.4rem); letter-spacing:-.3px; }
.hm-qirat p { color:#4d5a43; font-size:1.06rem; line-height:1.65; max-width:33rem; }
.hm-q-photos { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.hm-q-photos a { display:block; border-radius:14px; overflow:hidden; box-shadow:0 6px 18px rgba(30,60,10,.16); }
.hm-q-photos img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.hm-q-photos a:hover img { transform:scale(1.05); }
.hm-q-main { grid-column:1 / span 2; }
.hm-q-main img { aspect-ratio:16/10; object-position:50% 40%; }
.hm-q-side img, .hm-q-side2 img { aspect-ratio:4/3; }

.hm-lb { position:fixed; inset:0; z-index:2000; background:rgba(15,25,8,.92); display:flex; align-items:center; justify-content:center; padding:1rem; }
.hm-lb[hidden] { display:none; }
.hm-lb figure { margin:0; max-width:min(92vw,1100px); text-align:center; }
.hm-lb img { max-width:100%; max-height:82vh; border-radius:6px; box-shadow:0 10px 40px rgba(0,0,0,.5); }
.hm-lb figcaption { color:#e8f1d8; margin-top:.7rem; font-size:1rem; }
.hm-lb button { position:absolute; width:46px; height:46px; border-radius:50%; border:0; background:rgba(255,255,255,.14); color:#fff; font-size:1.5rem; display:flex; align-items:center; justify-content:center; }
.hm-lb button:hover, .hm-lb button:focus-visible { background:rgba(255,255,255,.3); }
.hm-lb-x { top:14px; right:14px; } .hm-lb-p { left:14px; top:50%; margin-top:-23px; } .hm-lb-n { right:14px; top:50%; margin-top:-23px; }
body.hm-lb-open { overflow:hidden; }

@media (max-width:767px) {
  .hm-stage-row { grid-template-columns:1fr 1fr; } .hm-stage-row a:last-child { display:none; }
  .hm-pol { width:186px; }
  .hm-lb-p { left:6px; } .hm-lb-n { right:6px; }
}
@media (prefers-reduced-motion:reduce) { .hm-pol, .hm-m img, .hm-stage-row img, .hm-shelf img, .hm-q-photos img { transition:none; } .hm-wall { scroll-behavior:auto; } }


/* ---- Footer: more links, emails, portals, Powered by NIK ---- */
.pub-footer h6 { white-space:nowrap; }
.pub-footer .pub-foot-col ul li { margin-bottom:.35rem; }
.pub-foot-mail a { word-break:break-all; }
.pub-foot-portals { display:flex; flex-wrap:wrap; gap:.4rem; }
.pub-foot-portals a { display:inline-flex; align-items:center; gap:.35rem; padding:.3rem .7rem; border:1px solid rgba(255,255,255,.28); border-radius:999px; font-size:.82rem; color:#eef4df; text-decoration:none; }
.pub-foot-portals a:hover { background:#dfeccb; color:#2b4d17; }
.pub-copy-row > .pub-powered, .pub-copy-row > .pub-foot-social { flex:1 1 0; }
.pub-powered { font-size:.7rem; line-height:1; text-align:left; }
.pub-powered a { color:rgba(255,255,255,.5); text-decoration:none; }
.pub-powered a:hover { color:#fff; }
.pub-powered strong { letter-spacing:.04em; }
@media (max-width:767px) { .pub-copy-row > .pub-powered { flex:0 0 auto; text-align:center; } }

/* ---- Fix: Bootstrap 5.3 .offcanvas-lg makes the sidebar background transparent on desktop. Force the green sidebar. ---- */
.admin-sidebar { background-color:#2b4d17 !important; color:#fff; }
.admin-sidebar .sidebar-brand, .admin-sidebar .sidebar-brand * { color:#fff; }
.admin-sidebar .sidebar-link { color:rgba(255,255,255,.88); }
.admin-sidebar .sidebar-link:hover { background:rgba(255,255,255,.12); color:#fff; }
.admin-sidebar .sidebar-link.active { background:#4d7f27; color:#fff; }
.admin-sidebar .sidebar-heading { color:rgba(255,255,255,.6); opacity:1; }

/* ---- Public site: smaller top-bar social icons (perfectly centred) + 20px side margins site-wide ---- */
.pub-topbar .pub-soc { width:28px; height:28px; font-size:.85rem; line-height:1; padding:0; display:inline-flex; align-items:center; justify-content:center; }
.pub-soc i, .pub-soc .bi { display:block; line-height:1; margin:0; }
.pub-soc i::before { display:block; line-height:1; vertical-align:0; }
.pub-body .container, .pub-body .container-xl, .pub-body .pub-nav > .container-xl { max-width:none; padding-left:20px; padding-right:20px; }
.pub-body { overflow-x:hidden; }
@media (max-width:575px) { .pub-body .container, .pub-body .container-xl, .pub-body .pub-nav > .container-xl { padding-left:12px; padding-right:12px; } }

/* ---- SPA navigation (public site) ---- */
#spa-bar { position:fixed; top:0; left:0; height:3px; width:0; opacity:0; background:#8cc63f; z-index:2000; transition:width .25s ease, opacity .25s ease; pointer-events:none; }
main { transition:opacity .15s ease; }
main.spa-loading { opacity:.55; pointer-events:none; }
