/* PUBLIC SCHOOL WEBSITE STYLES
   This file contains the slideshow library CSS and all template styling.
   Bootstrap remains in css/bootstrap.min.css. CMS-authored custom CSS is
   rendered separately by index.php. Later component rules refine base styles.
*/
/* Owl Carousel vendor styles: required for slide positioning and dragging. */
.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}

/* School website: a single consistent visual system. */
/* 01. Theme colors and global typography */
:root { --ink:#142c36; --muted:#65767d; --teal:#086b70; --accent:#d8b56b; --paper:#fff; --line:#dfe7e8; }
html { scroll-behavior:smooth; }
body { font-family:"DM Sans",sans-serif; color:var(--ink); background:white; line-height:1.75; }
h1,h2,h3,h4,h5,h6 { font-family:"Manrope",sans-serif; font-weight:700; letter-spacing:-.045em; line-height:1.2; color:var(--ink); }
a { color:var(--teal); text-decoration:none; transition:color .2s; }
a:hover { color:#034a50; }
p { color:var(--muted); }
.container { max-width:1320px; padding-left:32px; padding-right:32px; }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
/* 02. Header, contact bar and navigation */
header { position:relative; z-index:1040; background:linear-gradient(110deg,#101b38 0%,#202c58 65%,#343c72 100%); }
.school-contactbar { background:#080f2455; border-bottom:1px solid #ffffff18; color:#d0dee2; font-size:12px; padding:8px 0; }
.school-contactbar>.container { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.school-contactlinks { display:flex; gap:26px; }
.school-contactbar a { color:inherit; }
.school-domain { letter-spacing:.03em; }
.navbar { padding:22px 0; }
.navbar-brand { display:flex; align-items:center; gap:16px; max-width:370px; white-space:normal; margin-right:25px; }
.navbar-brand img { width:66px; height:74px; object-fit:contain; }
.navbar-brand>span { font-family:"Outfit",sans-serif; font-size:26px; font-weight:400; line-height:1.2; letter-spacing:-.025em; color:#fff; }
.navbar-brand small { display:block; margin-top:8px; color:#bacdd2; font-family:"DM Sans",sans-serif; font-size:11px; font-weight:400; letter-spacing:.035em; line-height:1.5; }
.navbar .navbar-nav { gap:3px; }
.navbar .nav-link { display:flex; align-items:center; gap:9px; color:#fff; font-size:16px; font-weight:500; padding:14px 10px!important; white-space:nowrap; }
.navbar .nav-link:hover,.navbar .nav-link:focus,.navbar .nav-link.show { color:var(--accent); }
.navbar .dropdown-toggle:before { content:none; }
.navbar .dropdown-toggle:after { width:6px; height:6px; border:0; border-bottom:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg); margin:-4px 0 0; flex-shrink:0; }
.navbar .dropdown-menu { min-width:240px; padding:10px; margin-top:0; border:1px solid var(--line); border-radius:3px; box-shadow:0 15px 40px #06253620; }
.navbar .dropdown-item { padding:11px 14px; font-size:15px; color:var(--ink); border-radius:2px; }
.navbar .dropdown-item:hover,.navbar .dropdown-item:focus { background:#edf5f4; color:var(--teal); }
.navbar-toggler { border-color:#ffffff50; border-radius:3px; }
.navbar-toggler-icon { filter:invert(1); }
/* 03. Base slideshow layout and controls */
.slider-wrapper { padding:0; background:#142c36; overflow:hidden; }
.slider-wrapper>.container { max-width:none; padding:0; }
.school-hero-slide { position:relative; width:100%; height:75vh; aspect-ratio:auto; min-height:0; overflow:hidden; display:flex; align-items:center; }
.school-hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.school-hero-slide:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#071d2ded 0%,#0b2a38bf 32%,#0b2a3850 65%,#0b2a3808 100%); }
.school-hero-content { position:relative; z-index:1; width:58%; max-width:830px; margin-left:max(6vw,calc((100vw - 1256px)/2)); padding:6vw 0 8vw; }
.school-hero-content h1 { font-size:clamp(32px,4.6vw,80px); font-weight:600; line-height:1.12; letter-spacing:-.045em; color:white; margin:0 0 26px; }
.school-hero-content h1 span { color:#e5c88c; }
.school-hero-description { max-width:550px; margin-bottom:32px; }
.school-hero-description,.school-hero-description p { color:#e4edef; font-size:clamp(15px,1.3vw,21px); line-height:1.7; }
.slider-button,.section-btn { display:inline-flex; align-items:center; gap:35px; color:#102c37; background:#e6c780; border:1px solid #e6c780; border-radius:2px; padding:15px 24px; font-size:14px; font-weight:600; }
.slider-button:hover { background:white; border-color:white; color:#102c37; }
#carousel .owl-nav { position:absolute; right:6vw; bottom:36px; display:flex; gap:10px; }
#carousel .owl-nav button { width:48px; height:48px; border:1px solid #ffffff70; border-radius:50%; background:transparent; color:white; font-size:23px; }
#carousel .owl-nav button:hover { background:white; color:var(--ink); }
#carousel .owl-dots { position:absolute; bottom:50px; left:max(6vw,calc((100vw - 1256px)/2)); margin:0; }
.owl-dots { display:flex; justify-content:center; align-items:center; gap:9px; margin-top:25px; }
.owl-dot { background:transparent; border:0; padding:0; }
.owl-dot span { display:block; height:5px; width:22px; background:#9fbbb8; border-radius:0; }
.owl-dot.active span { background:var(--teal); width:40px; }
#carousel .owl-dot span { background:#ffffff60; }
#carousel .owl-dot.active span { background:#e6c780; }
/* 04. Introduction and home content */
.school-welcome { padding:105px 0!important; background:white!important; }
.school-welcome .display-5 { font-size:clamp(32px,3.1vw,48px); font-weight:600!important; }
.school-welcome .border-start { border-color:var(--accent)!important; padding-left:38px!important; }
.school-welcome .lead { font-size:24px; color:#29434c; line-height:1.6; }
.school-welcome .text-secondary { color:var(--muted)!important; font-size:17px!important; line-height:1.85; }
.highlights { padding:0 0 95px; background:white; }
.highlights .row { --bs-gutter-x:0; border:1px solid var(--line); }
.highlights .row>div { margin-top:0!important; }
.highlight { padding:35px 29px; height:100%; border-right:1px solid var(--line); background:#f5f8f7; }
.highlights .row>div:last-child .highlight { border-right:0; }
.highlight img { width:42px; height:42px; object-fit:contain; margin-bottom:25px; }
.highlight h5 { font-size:20px; text-align:left!important; margin:0 0 14px!important; }
.highlight p { font-size:15px; line-height:1.8; margin:0; }
.school-content-section { padding:95px 0!important; background:#f3f6f4!important; }
.school-content-section:nth-child(even) { background:white!important; }
.school-content-section .row { --bs-gutter-x:6rem; }
.school-content-section img { border-radius:3px!important; box-shadow:none!important; width:100%; height:500px; object-fit:cover; }
.school-content-section h2 { font-size:clamp(32px,3.3vw,48px); font-weight:600!important; margin-bottom:25px!important; }
.school-content-section p { font-size:18px!important; line-height:1.85; }
.school-content-section .list-group-item { font-size:15px; color:#3f565d; border-color:#d8e1de; display:flex; align-items:center; gap:15px; }
.school-content-section .list-group-item:before { content:""; width:6px; height:6px; background:var(--teal); flex-shrink:0; }
.school-content-section .btn { border-radius:2px; background:var(--teal); padding:13px 23px; }
.school-home>div>section { padding:95px 0!important; }
.school-home>div>section h2 { font-size:clamp(32px,3.3vw,48px); font-weight:600; margin-bottom:40px!important; }
.card { border:1px solid var(--line); border-radius:4px; overflow:hidden; background:white; box-shadow:none; }
.card-body { padding:28px; }
.card h3 { font-size:23px; line-height:1.4; letter-spacing:-.025em; }
.card p { font-size:16px; }
.card .small { font-size:12px; letter-spacing:.02em; }
.card-img-top { border-radius:0; object-fit:cover; }
/* 05. News and gallery */
.school-news { background:#143b46; }
.school-news h2 { color:white; }
.school-news .card { background:transparent; border:0; border-top:1px solid #ffffff35; border-radius:0; }
.school-news .card-body { padding:27px 0 15px; }
.school-news .card h3 { max-width:510px; font-size:27px; }
.school-news a { color:white; }
.school-news a:hover { color:#e6c780; }
.school-news .card p { color:#bfced2; }
.school-news .card .small { color:#e6c780!important; margin-bottom:17px; }
.school-news>.container>p { margin-bottom:0; }
.school-news>.container>p>a,.school-gallery>.container>p>a { display:inline-block; border-bottom:1px solid currentColor; padding-bottom:5px; font-weight:500; font-size:15px; }
.school-gallery { background:white; }
.school-gallery .card { border:0; border-radius:0; }
.school-gallery .card-img-top { height:330px!important; transition:filter .25s; }
.school-gallery .card:hover .card-img-top { filter:brightness(.9); }
.school-gallery .card-body { padding:22px 0 0; }
.school-gallery .card h3 { font-size:24px; margin:0; }
.school-gallery .card .small { margin-bottom:8px; }
/* 06. Testimonials */
.testimonials { padding:90px 0; background:#f3f6f4; }
.testimonial { padding:35px; height:100%; background:white; border:1px solid var(--line); border-radius:3px; }
.testimonial-head { display:flex; align-items:center; gap:18px; margin-bottom:22px; }
.testimonial-head p { margin:0; color:var(--ink); line-height:1.6; font-size:15px; }
.testimonial-head p>span { color:var(--muted); font-size:13px; }
.testimonial-avatar { width:54px; height:54px; flex-shrink:0; }
.testimonial-avatar img { height:54px; width:54px; border-radius:50%; object-fit:cover; }
.testimonial-stars i { font-size:11px; color:#b28c3c; }
.testimonial-text { font-size:17px; line-height:1.85; margin:0; }
/* 07. Enquiry form */
#enquiry-form { margin:0; padding:0; }
#enquiry-form>section { background:#eaf0ed!important; padding:100px 0!important; }
#enquiry-form .display-5 { font-size:clamp(36px,3.4vw,50px); font-weight:600!important; }
#enquiry-form .lead { font-size:20px; max-width:420px; }
#enquiry-form .col-lg-5>.card { background:transparent!important; border-top:1px solid #c9d5d0!important; border-radius:0!important; margin-top:35px; }
#enquiry-form .col-lg-5>.card .card-body { padding:28px 0!important; }
#enquiry-form .col-lg-5 .h4 { font-size:20px; }
#enquiry-form .col-lg-7>.card { border:1px solid #d8e2dd!important; border-radius:4px!important; box-shadow:0 15px 45px #1a433908!important; }
#enquiry-form .h2 { font-size:28px; }
.form-label { color:var(--ink); font-size:14px!important; font-weight:500; }
.form-control,.form-select { border-radius:2px; border-color:#d5dedd; background:#fafcfb; color:var(--ink); }
.form-control-lg,.form-select-lg { font-size:16px; padding:13px 15px; }
.form-control:focus,.form-select:focus { border-color:var(--teal); box-shadow:0 0 0 3px #086b7012; }
#enquiry-form .btn-success { border-radius:2px!important; background:var(--teal); border-color:var(--teal); font-size:15px; padding:15px 25px!important; }
/* 08. Footer */
footer { background:#102c37; color:#dce6e9; padding:80px 0 25px; }
.footer-links h5 { color:white; font-size:20px; letter-spacing:-.02em; margin-bottom:22px; }
.footer-links a { display:block; color:#afc5cb; font-size:15px; padding:6px 0; }
.footer-links a:hover { color:#e6c780; }
.footer-logo { width:80px; height:90px; object-fit:contain; margin-bottom:20px; }
.footer-brand address { color:#afc5cb; font-size:14px; line-height:1.8; }
footer .social-icons a { color:#e6c780; }
.footer-text { color:#afc5cb; font-size:15px; max-width:740px; margin-top:40px; }
.footer-copy { color:#a7bcc3; border-top:1px solid #ffffff20; padding-top:23px; margin:30px 0 0; font-size:12px; }
/* 09. Inner pages and dialogs */
.page-title { background:#edf2ef; padding:65px 32px; }
.page-title h1 { font-size:44px; text-align:center; margin:0; }
.page-wrapper { max-width:1256px; margin:auto; padding:65px 32px; }
.school-inner>div>section { padding:60px 0; }
.school-inner .school-news { background:white; }
/* Inner news text colors apply to content cards, leaving the dark sidebar untouched. */
.school-inner .school-news .card h2,.school-inner .school-news .card a { color:var(--ink); }
.school-inner .school-news .card { border-top-color:var(--line); }
.school-inner .school-news .card p { color:var(--muted); }
.school-inner .school-news .card .small { color:var(--teal)!important; }
.modal-content { border:0; border-radius:4px; overflow:hidden; }
.modal-header { background:#edf2ef; }
/* 10. Responsive layouts */
@media(min-width:1200px) and (hover:hover) { .navbar .dropdown:hover>.dropdown-menu { display:block; } }
@media(min-width:1200px) and (max-width:1399px) { .navbar-brand { max-width:300px; } .navbar-brand>span { font-size:23px; } .navbar .nav-link { font-size:15px; padding:12px 7px!important; } }
@media(max-width:1199px) { .navbar-collapse { padding-top:22px; } .navbar .nav-link { padding:12px 0!important; } .navbar .dropdown-toggle:after { margin-left:auto; margin-right:12px; } .navbar .dropdown-menu { box-shadow:none; margin-bottom:12px; } .school-content-section .row { --bs-gutter-x:3rem; } }
@media(max-width:991px) { .school-content-section img { height:420px; } .school-content-section .row { --bs-gutter-x:1.5rem; } .school-content-section,.school-welcome,.school-home>div>section { padding:65px 0!important; } .highlight { border-bottom:1px solid var(--line); } #enquiry-form>section { padding:65px 0!important; } }
@media(max-width:767px) { .container { padding-left:22px; padding-right:22px; } .school-contactbar { font-size:10px; } .school-contactlinks { gap:4px; flex-direction:column; } .navbar { padding:15px 0; } .navbar-brand { max-width:275px; gap:12px; } .navbar-brand>span { font-size:21px; } .navbar-brand img { width:48px; height:56px; } .navbar-brand small { font-size:10px; margin-top:4px; } .school-hero-content { width:66%; margin-left:6vw; padding:10px 0 35px; } .school-hero-content h1 { font-size:clamp(19px,4.3vw,32px); margin-bottom:8px; } .school-hero-description { margin-bottom:10px; } .school-hero-description,.school-hero-description p { font-size:clamp(10px,2vw,14px); line-height:1.4; margin-bottom:6px; } .slider-button { font-size:10px; padding:7px 12px; gap:15px; } #carousel .owl-nav { bottom:12px; gap:6px; } #carousel .owl-nav button { width:26px; height:26px; font-size:15px; } #carousel .owl-dots { bottom:20px; } #carousel .owl-dot span { height:3px; width:16px; } #carousel .owl-dot.active span { width:28px; } .school-welcome .border-start { padding-left:22px!important; } .school-welcome .lead { font-size:21px; } .highlights { padding-bottom:55px; } .highlight { padding:25px 20px; } .highlight h5 { font-size:18px; } .highlight p { font-size:14px; } .school-content-section img { height:350px; } .school-content-section p { font-size:16px!important; } .school-gallery .card-img-top { height:300px!important; } .testimonials { padding:60px 0; } .testimonial { padding:25px; } footer { padding-top:60px; } .footer-links h5 { font-size:18px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }

.school-contactlinks { margin-left:auto; }
.school-contactlinks a { display:inline-flex; align-items:center; gap:8px; }
.school-contactlinks i { font-size:11px; color:var(--accent); }
@media(max-width:767px) { .school-contactlinks { align-items:flex-end; } }

/* Editorial hero typography and capsule calls to action. */
.school-hero-content h1,.school-hero-content h1 span { font-family:"Outfit",sans-serif; font-weight:400; letter-spacing:-.025em; }
.school-hero-content h1 { font-size:clamp(36px,5.3vw,88px); }
.school-hero-content h1 span { color:#edc876; }
.slider-button,.section-btn,.btn,#enquiry-form .btn-success { border-radius:999px!important; }
.school-news>.container>p>a,.school-gallery>.container>p>a { padding:12px 23px; border:1px solid currentColor; border-radius:999px; display:inline-flex; align-items:center; gap:15px; }
@media(max-width:767px) { .school-hero-content h1 { font-size:clamp(27px,6vw,44px); } }

.btn:not(:has(i)):after,.section-btn:not(:has(i)):after,.school-news>.container>p>a:after,.school-gallery>.container>p>a:after { content:"\f061"; font-family:"Font Awesome 6 Free"; font-weight:900; display:inline-block; margin-left:12px; }

.school-domain { display:inline-flex; align-items:center; gap:8px; }
.school-domain i { color:var(--accent); font-size:11px; }
/* Share the same container edge with the brand below. */
.school-contactbar>.container,.navbar>.container { padding-left:32px; padding-right:32px; }
@media(max-width:767px) { .school-contactbar>.container,.navbar>.container { padding-left:22px; padding-right:22px; } }

/* Bold condensed branding and modern heading typography. */
.navbar-brand>span { font-family:"Roboto Condensed",sans-serif; font-weight:700; letter-spacing:.005em; font-size:30px; }
h1,h2,h3,.school-hero-content h1,.school-hero-content h1 span { font-family:"Outfit",sans-serif; font-weight:700; letter-spacing:-.025em; }
.school-welcome .display-5,.school-content-section h2,.school-home>div>section h2,#enquiry-form .display-5 { font-weight:700!important; }
@media(min-width:1200px) and (max-width:1399px) { .navbar-brand>span { font-size:27px; } }
@media(max-width:767px) { .navbar-brand>span { font-size:25px; } }

/* Reference direction: editorial serif, botanical palette, split photo hero. */
:root { --ink:#15382d; --teal:#15382d; --accent:#f58013; --muted:#647069; }
body { font-family:"Poppins",sans-serif; }
header { background:#faf7f0; }
.school-contactbar { background:#15382d; color:#e0e8e2; }
.navbar-brand>span { font-family:"DM Serif Display",Georgia,serif; font-size:27px; font-weight:400; color:#de6905; letter-spacing:0; }
.navbar-brand small { color:#15382d; font-family:"Poppins",sans-serif; }
.navbar .nav-link { color:#15382d; font-family:"Poppins",sans-serif; font-size:15px; }
.navbar .nav-link:hover,.navbar .nav-link:focus,.navbar .nav-link.show { color:#ee750e; }
.navbar-toggler { border-color:#15382d50; }
.navbar-toggler-icon { filter:none; }
h1,h2,h3,.school-hero-content h1,.school-hero-content h1 span { font-family:"DM Serif Display",Georgia,serif; font-weight:400; letter-spacing:-.025em; }
.school-welcome .display-5,.school-content-section h2,.school-home>div>section h2,#enquiry-form .display-5 { font-weight:400!important; }
.slider-wrapper { background:#edf5ec; }
.school-hero-slide { background:#edf5ec; height:75vh; isolation:isolate; }
.school-hero-slide:after { inset:auto -5% -65px; height:100px; background:#bcd99f; border-radius:50% 50% 0 0; z-index:-1; }
.school-hero-slide:before { content:""; position:absolute; width:37vw; height:37vw; max-width:600px; max-height:600px; right:7%; top:50%; transform:translateY(-50%); border:2px solid #dac58c; outline:5px dotted #dac58c; outline-offset:18px; border-radius:50%; z-index:-1; opacity:.65; }
.school-hero-image { inset:12% 9% auto auto; width:34%; height:76%; border:9px solid white; border-radius:48% 8% 48% 8%; box-shadow:0 15px 35px #24462e15; object-fit:cover; object-position:center; }
.school-hero-content { width:49%; max-width:640px; padding:30px 0 55px; margin-left:max(6vw,calc((100vw - 1256px)/2)); }
.school-hero-content h1 { color:#15382d; font-size:clamp(38px,4.5vw,76px); line-height:1.12; margin-bottom:24px; }
.school-hero-content h1 span { color:#f58013; }
.school-hero-description,.school-hero-description p { color:#636d65; font-family:"Poppins",sans-serif; font-size:clamp(14px,1.1vw,18px); line-height:1.85; }
.slider-button { background:#f58013; border-color:#f58013; color:white; box-shadow:0 10px 20px #f5801325; font-family:"Poppins",sans-serif; padding:16px 26px; }
.slider-button:hover { background:#db6806; border-color:#db6806; color:white; }
#carousel .owl-nav { right:14%; bottom:25px; }
#carousel .owl-nav button { background:#15382d; border:0; color:white; width:38px; height:38px; }
#carousel .owl-dots { left:auto; right:23%; bottom:41px; }
#carousel .owl-dot span { background:#cfd9ce; }
#carousel .owl-dot.active span { background:#f58013; }
@media(min-width:1200px) and (max-width:1399px) { .navbar-brand>span { font-size:25px; } }
@media(max-width:767px) {
.navbar-brand>span { font-size:23px; }
.school-hero-content { width:53%; margin-left:5%; padding:20px 0 50px; }
.school-hero-content h1 { font-size:clamp(27px,5.4vw,40px); }
.school-hero-description,.school-hero-description p { font-size:12px; line-height:1.6; }
.school-hero-image { right:4%; width:36%; height:58%; top:20%; border-width:5px; }
.school-hero-slide:before { right:3%; width:36vw; height:55%; outline-offset:8px; }
.slider-button { padding:10px 15px; font-size:11px; gap:10px; }
#carousel .owl-nav { right:8%; bottom:25px; }
#carousel .owl-dots { right:8%; bottom:80px; }
}

/* Full-width photo hero without decorative shapes. */
.school-hero-slide { height:75vh; background:#15382d; border-radius:0; }
.school-hero-slide:before { content:none; }
.school-hero-slide:after { inset:0; height:auto; border-radius:0; background:linear-gradient(90deg,#091e2dee 0%,#102b38bd 35%,#102b3845 70%,transparent 100%); z-index:0; }
.school-hero-image { inset:0; width:100%; height:100%; border:0; border-radius:0; box-shadow:none; object-fit:cover; object-position:center; }
.school-hero-content { width:58%; max-width:830px; margin-left:max(6vw,calc((100vw - 1256px)/2)); padding:35px 0 70px; }
.school-hero-content h1 { color:white; }
.school-hero-description,.school-hero-description p { color:#e4edef; }
#carousel .owl-nav { right:6vw; bottom:30px; }
#carousel .owl-dots { left:max(6vw,calc((100vw - 1256px)/2)); right:auto; bottom:45px; }
#carousel .owl-dot span { background:#ffffff60; }
@media(max-width:767px) {
.school-hero-content { width:75%; margin-left:6%; padding:25px 0 65px; }
.school-hero-image { inset:0; width:100%; height:100%; border:0; border-radius:0; }
#carousel .owl-nav { right:6vw; bottom:20px; }
#carousel .owl-dots { left:6vw; right:auto; bottom:35px; }
}

.navbar .nav-link,.navbar .dropdown-item { text-transform:uppercase; }

/* Condensed school branding and navigation. */
.navbar-brand>span { font-family:"Roboto Condensed",sans-serif; font-weight:700; font-size:30px; letter-spacing:.01em; }
.navbar .nav-link,.navbar .dropdown-item { font-family:"Roboto Condensed",sans-serif; font-weight:600; font-size:19px; letter-spacing:.035em; }
@media(min-width:1200px) and (max-width:1399px) { .navbar-brand>span { font-size:28px; } .navbar .nav-link { font-size:18px; } }
@media(max-width:767px) { .navbar-brand>span { font-size:26px; } }

/* Split hero with a shaped photo only; CMS slides and sequence are retained. */
.school-contactbar { background:linear-gradient(105deg,#102e24,#1a4d3a 65%,#246044); }
.slider-wrapper { position:relative; background:#edf5ec; }
.slider-wrapper>.container { position:relative; }
.school-hero-slide { display:flex; align-items:center; justify-content:space-between; gap:6%; height:75vh; min-height:0; padding:45px max(6vw,calc((100vw - 1256px)/2)) 90px; background:#edf5ec; }
.school-hero-slide:before,.school-hero-slide:after { content:none; }
.school-hero-content { order:0; width:50%; max-width:620px; margin:0; padding:0; }
.school-hero-content h1 { color:#15382d; font-size:clamp(38px,4vw,66px); line-height:1.13; }
.school-hero-content h1 span { color:#f58013; }
.school-hero-description,.school-hero-description p { color:#626e65; font-size:17px; line-height:1.8; }
.school-hero-photo { order:1; position:relative; width:44%; height:100%; max-height:510px; min-height:0; flex-shrink:0; }
.school-hero-photo:before { content:""; position:absolute; inset:-18px; border:2px solid #d4bf82; border-radius:50%; opacity:.55; }
.school-hero-photo:after { content:""; position:absolute; inset:-30px; border:3px dotted #d4bf82; border-radius:50%; opacity:.6; pointer-events:none; }
.school-hero-photo .school-hero-image { position:relative; inset:auto; width:100%; height:100%; border:9px solid white; border-radius:48% 9% 48% 9%; object-fit:cover; box-shadow:0 16px 40px #214f2f14; }
.school-hero-controls { position:absolute; z-index:2; bottom:22px; right:max(8vw,calc((100vw - 1190px)/2)); width:clamp(240px,25vw,340px); height:58px; border-radius:999px; background:white; box-shadow:0 6px 22px #173a2910; }
.school-hero-controls .owl-nav { position:absolute; inset:8px; display:flex; justify-content:space-between; pointer-events:none; }
.school-hero-controls .owl-nav button { pointer-events:auto; border:0; border-radius:50%; background:#15382d; color:white; height:42px; width:42px; font-size:24px; }
.school-hero-controls .owl-nav button:hover { background:#f58013; }
.school-hero-controls .owl-dots { position:absolute; inset:0 60px; margin:0; gap:6px; }
.school-hero-controls .owl-dot span { width:22px; height:5px; background:#e3ded0; border-radius:5px; }
.school-hero-controls .owl-dot.active span { background:#f58013; width:30px; }
.school-hero-controls .disabled { display:none; }
@media(max-width:991px) { .school-hero-slide { gap:5%; padding-left:5%; padding-right:5%; min-height:0; } .school-hero-content h1 { font-size:42px; } .school-hero-description,.school-hero-description p { font-size:15px; } .school-hero-photo { min-height:0; max-height:420px; } }
@media(max-width:767px) {
.school-hero-slide { flex-direction:column; height:auto; min-height:75vh; padding:40px 25px 95px; gap:35px; }
.school-hero-content { width:100%; max-width:550px; margin:0; padding:0; }
.school-hero-content h1 { font-size:39px; }
.school-hero-photo { width:80%; max-width:360px; height:340px; min-height:0; }
.school-hero-photo .school-hero-image { inset:auto; width:100%; height:100%; border:7px solid white; border-radius:48% 9% 48% 9%; }
.school-hero-photo:before { inset:-10px; } .school-hero-photo:after { inset:-20px; }
.school-hero-controls { right:50%; transform:translateX(50%); bottom:20px; width:260px; }
.slider-button { font-size:14px; padding:13px 22px; }
}

/* Typography aligned with the supplied reference. */
h1,h2,h3,.school-hero-content h1,.school-hero-content h1 span { font-family:"Playfair Display",Georgia,serif; font-weight:700; letter-spacing:-.035em; }
.school-hero-content h1 { font-weight:800; line-height:1.16; }
.navbar-brand>span { font-family:"Playfair Display",Georgia,serif; font-weight:700; font-size:25px; letter-spacing:-.025em; }
.navbar .nav-link,.navbar .dropdown-item { font-family:"Poppins",sans-serif; font-size:15px; font-weight:500; letter-spacing:0; text-transform:none; }
.school-welcome .display-5,.school-content-section h2,.school-home>div>section h2,#enquiry-form .display-5 { font-weight:700!important; }
@media(min-width:1200px) and (max-width:1399px) { .navbar-brand>span { font-size:23px; } .navbar .nav-link { font-size:14px; } }
@media(max-width:767px) { .navbar-brand>span { font-size:21px; } }

/* Hero columns: 40% text and 60% photo. */
@media(min-width:768px) {
.school-hero-slide { gap:0; }
.school-hero-content { width:40%; flex:0 0 40%; max-width:none; padding-right:35px; }
.school-hero-photo { width:60%; flex:0 0 60%; }
.school-hero-controls { right:max(6vw,calc((100vw - 1256px)/2)); margin-right:calc(min(88vw,1256px) * .3); transform:translateX(50%); }
}

/* Circular hero photo frame. */
.school-hero-photo { flex:0 0 auto; width:min(48vh,44vw,510px); height:min(48vh,44vw,510px); aspect-ratio:1; min-height:0; max-height:none; margin-left:auto; margin-right:auto; }
.school-hero-photo .school-hero-image { border-radius:50%; }
@media(max-width:767px) { .school-hero-photo { width:min(75vw,340px); height:min(75vw,340px); } .school-hero-photo .school-hero-image { border-radius:50%; } }

/* Deeper green hero background. */
.slider-wrapper,.school-hero-slide { background:#ccdece; }
.school-hero-description,.school-hero-description p { color:#45594b; }

/* Match the hero background to the top bar. */
.slider-wrapper,.school-hero-slide { background:linear-gradient(105deg,#102e24,#1a4d3a 65%,#246044); }
.school-hero-content h1 { color:#fffaf0; }
.school-hero-content h1 span { color:#ffad55; }
.school-hero-description,.school-hero-description p { color:#dce9df; }


.navbar { padding:10px 0; }
@media(max-width:767px) { .navbar { padding:8px 0; } }

/* Align the home icon with the visible crest, accounting for SVG whitespace. */
.school-domain { padding-left:11px; }
@media(max-width:767px) { .school-domain { padding-left:8px; } }

/* Arrow navigation below the photo. */
.school-hero-controls { width:210px; height:52px; border-radius:0; background:transparent; box-shadow:none; }
.school-hero-controls .owl-nav { inset:0; }
.school-hero-controls .owl-nav button { width:52px; height:52px; border:1px solid #ffffff65; background:transparent; color:white; font-size:24px; transition:background .2s,border-color .2s; }
.school-hero-controls .owl-nav button:hover { background:#f58013; border-color:#f58013; }
@media(max-width:767px) { .school-hero-controls { width:210px; } }

/* Social links float inside the right edge of the hero container. */
.hero-socials { position:absolute; z-index:3; right:max(6vw,calc((100vw - 1256px)/2)); top:50%; transform:translateY(-50%); display:flex; flex-direction:column; gap:12px; }
.hero-socials:empty { display:none; }
.hero-socials a { display:flex; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid #ffffff45; border-radius:50%; background:#102e2466; color:white; font-size:16px; transition:background .2s; }
.hero-socials a:hover { background:#f58013; border-color:#f58013; }
@media(max-width:767px) { .hero-socials { right:12px; top:auto; bottom:125px; transform:none; gap:8px; } .hero-socials a { width:32px; height:32px; font-size:14px; } }

/* Slow photo zoom inside a fixed circular frame; decorative rings rotate. */
.school-hero-photo-crop { position:relative; width:100%; height:100%; overflow:hidden; border:9px solid white; border-radius:50%; box-shadow:0 16px 40px #214f2f14; }
.school-hero-photo .school-hero-photo-crop .school-hero-image { border:0; border-radius:0; box-shadow:none; width:100%; height:100%; object-fit:cover; }
#carousel .owl-item.active .school-hero-image { animation:heroPhotoZoom 12s ease-in-out infinite alternate; }
.school-hero-photo:before { animation:heroRingRotate 60s linear infinite; border-style:dashed; }
.school-hero-photo:after { animation:heroRingRotate 90s linear infinite reverse; }
@keyframes heroPhotoZoom { from { transform:scale(1); } to { transform:scale(1.09); } }
@keyframes heroRingRotate { from { transform:rotate(0); } to { transform:rotate(360deg); } }
@media(max-width:767px) { .school-hero-photo-crop { border-width:7px; } }
@media(prefers-reduced-motion:reduce) { #carousel .owl-item.active .school-hero-image,.school-hero-photo:before,.school-hero-photo:after { animation:none; } }

.school-hero-controls { width:120px; }

/* 11. Hero word highlight animation.
   Words wrapped in [brackets] in the CMS become spans in the hero title.
   Slowly blend orange into warm yellow and back; reduced-motion stays yellow. */
.school-hero-content h1 span { animation:heroTitleColor 8s ease-in-out infinite alternate; }
@keyframes heroTitleColor { from { color:#ffad55; } to { color:#ffe179; } }
@media(prefers-reduced-motion:reduce) { .school-hero-content h1 span { animation:none; color:#ffe179; } }

/* 12. Explicit slideshow navigation: independent of Owl's generated controls. */
.school-hero-controls { display:flex; align-items:center; justify-content:center; gap:14px; width:126px; height:52px; background:transparent; box-shadow:none; }
.school-hero-controls>button { display:flex; align-items:center; justify-content:center; width:52px; height:52px; padding:0; border:1px solid #ffffff60; border-radius:50%; background:#fffaf0; color:#15382d; font-size:18px; box-shadow:0 5px 15px #091e2d20; transition:background .2s,color .2s; cursor:pointer; }
.school-hero-controls>button:hover { background:#f58013; color:white; }
@media(max-width:767px) { .school-hero-controls { margin-right:0; } }

/* 13. Hero bottom wave.
   A white SVG silhouette blends the dark hero into the following light section.
   It is decorative and does not intercept slideshow or social-link clicks. */
.slider-wrapper::after {
  content:"";
  position:absolute;
  z-index:2;
  left:0;
  right:0;
  bottom:-1px;
  height:42px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0 8C360 8 360 72 720 72S1080 8 1440 8V80H0Z'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
  pointer-events:none;
}
.school-hero-controls { bottom:54px; }
@media(max-width:767px) { .slider-wrapper::after { height:30px; } .school-hero-controls { bottom:42px; } }

/* 14. Home highlights: individual cards using the CMS icon assets.
   Soft botanical colors tie into the hero; Bootstrap controls the grid.
   Keep equal card heights, generous icon spacing and a restrained hover lift. */
.highlights { padding:25px 0 85px; background:white; }
.highlights .row { --bs-gutter-x:1.5rem; border:0; }
.highlights .row>div { margin-top:var(--bs-gutter-y)!important; }
.highlight { position:relative; height:100%; padding:32px 28px; border:1px solid #dce7dd; border-radius:16px; background:linear-gradient(145deg,#f1f7f0,#fff); box-shadow:0 8px 25px #173a2906; transition:transform .25s,box-shadow .25s,border-color .25s; }
.highlights .row>div:last-child .highlight { border-right:1px solid #dce7dd; }
.highlights .row>div:nth-child(2) .highlight { background:linear-gradient(145deg,#fff3e7,#fff); }
.highlights .row>div:nth-child(3) .highlight { background:linear-gradient(145deg,#f8f3e3,#fff); }
.highlights .row>div:nth-child(4) .highlight { background:linear-gradient(145deg,#eaf4f3,#fff); }
.highlight-icon { display:flex; align-items:center; justify-content:center; width:70px; height:70px; margin-bottom:26px; background:white; border:1px solid #e3e9e0; border-radius:18px; box-shadow:0 5px 15px #173a2907; }
.highlight img { width:40px; height:40px; margin:0; object-fit:contain; }
.highlight h3 { font-size:25px; line-height:1.25; margin:0 0 16px; }
.highlight h3 a { color:#15382d; }
.highlight p { margin:0; color:#647069; font-size:14px; line-height:1.85; }
@media(hover:hover) { .highlight:hover { transform:translateY(-6px); box-shadow:0 18px 35px #173a2910; border-color:#afc5b2; } .highlight h3 a:hover { color:#db6b08; } }
@media(max-width:767px) { .highlights { padding:15px 0 55px; } .highlight { padding:27px; } }
@media(prefers-reduced-motion:reduce) { .highlight:hover { transform:none; } }

/* Highlight CTA: use each record's InfoURL; anchor sits at the card bottom. */
.highlight { display:flex; flex-direction:column; align-items:flex-start; }
.highlight p { margin-bottom:24px; }
.highlight-cta { display:inline-flex; align-items:center; gap:20px; margin-top:auto; padding:10px 19px; border-radius:999px; background:#15382d; color:white; font-family:"Poppins",sans-serif; font-size:12px; font-weight:600; }
.highlight-cta:hover { background:#f58013; color:white; }


/* 15. CMS section artwork: shape and transparency belong to the PNG itself.
   Only responsive sizing is applied here; no crop, border, shadow or mask. */
.school-content-section img { height:auto; width:100%; object-fit:contain; border:0; border-radius:0!important; box-shadow:none!important; }

/* 16. Homepage news and upcoming events.
   Separate date-driven lists; details are shown only on news-events?id=... . */
.school-news.school-updates { background:#f5f7f2; }
.updates-panel { height:100%; padding:36px; border-radius:16px; background:white; border:1px solid #e1e8de; }
.updates-panel.upcoming-panel { background:linear-gradient(135deg,#143b2e,#20553f); border-color:transparent; }
.updates-heading { display:flex; align-items:center; gap:16px; margin-bottom:24px; }
.updates-heading-icon { display:flex; align-items:center; justify-content:center; width:48px; height:48px; flex-shrink:0; border-radius:14px; color:#d7670a; background:#fff0df; font-size:20px; }
.school-home .school-updates .updates-heading h2 { color:#15382d; font-size:32px; line-height:1.2; margin:0!important; }
.school-home .upcoming-panel .updates-heading h2 { color:#fffaf0; }
.upcoming-panel .updates-heading-icon { background:#ffffff15; color:#ffc477; }
.update-item { display:flex; gap:20px; padding:24px 0; border-top:1px solid #e8ede4; }
.update-date { display:flex; flex-direction:column; align-items:center; justify-content:center; width:64px; height:72px; flex-shrink:0; border-radius:12px; background:#edf4eb; color:#244d34; line-height:1.25; }
.update-date strong { font-size:26px; font-family:"Poppins",sans-serif; font-weight:600; }
.update-date span { font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.update-type { display:block; font-family:"Poppins",sans-serif; color:#8a7458; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; margin-bottom:6px; }
.school-updates .update-copy h3 { font-family:"Poppins",sans-serif; font-size:18px; font-weight:500; letter-spacing:-.02em; line-height:1.5; margin:0 0 13px; }
.school-updates .update-copy h3 a { color:#15382d; }
.school-updates .update-cta { display:inline-flex; align-items:center; gap:15px; color:#15382d; background:#f2f6ee; padding:7px 14px; border-radius:999px; font-size:11px; font-weight:600; }
.school-updates .update-cta:hover { background:#f58013; color:white; }
.upcoming-panel .update-item { border-color:#ffffff20; }
.upcoming-panel .update-date { background:#ffffff12; color:#ffd08a; }
.upcoming-panel .update-type { color:#bbd4c5; }
.school-updates .upcoming-panel .update-copy h3 a { color:#fffaf0; }
.school-updates .upcoming-panel .update-cta { background:#ffffff12; color:#ffd08a; }
.school-updates .upcoming-panel .update-cta:hover { background:#f58013; color:white; }
.upcoming-panel .updates-empty { color:#dce9df; }
@media(max-width:767px) { .updates-panel { padding:25px; } .school-home .school-updates .updates-heading h2 { font-size:28px; } .update-item { gap:14px; } .update-date { width:55px; height:65px; } .school-updates .update-copy h3 { font-size:16px; } }

/* 17. Gallery album cards: rounded corners and a subtle outline. */
.school-gallery .card { border:1px solid #dce5dd; border-radius:16px; overflow:hidden; background:white; }
.school-gallery .card-img-top { border-radius:15px 15px 0 0; }
.school-gallery .card-body { padding:22px; }

/* 18. Combined homepage gallery: one large photo and smaller photo/video tiles.
   Links preserve album/video IDs; the grid reflows without changing CMS order. */
.school-media { background:#faf7f0; }
.media-heading { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-bottom:35px; }
.school-home>div>section .media-heading h2 { margin:0!important; }
.media-links { display:flex; gap:12px; flex-wrap:wrap; }
.media-links a { display:inline-flex; align-items:center; gap:15px; padding:10px 18px; border:1px solid #ced9cd; border-radius:999px; color:#15382d; font-size:12px; font-weight:500; }
.media-links a:hover { background:#15382d; color:white; }
.media-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:230px; gap:18px; }
.media-tile { position:relative; display:block; border:1px solid #e0e5db; border-radius:20px; overflow:hidden; isolation:isolate; background:#e5ecdf; box-shadow:0 7px 18px #15382d09; }
.media-tile:first-child { grid-column:span 2; grid-row:span 2; }
.media-tile img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.media-tile:after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,#0c281d65); pointer-events:none; }
.media-caption { position:absolute; z-index:1; left:16px; bottom:16px; right:16px; width:fit-content; max-width:calc(100% - 32px); background:#fffffff5; border-radius:14px; padding:12px 17px; color:#15382d; }
.media-caption small { display:block; color:#738075; font-size:10px; margin-bottom:3px; }
.media-caption strong { display:block; font-family:"Poppins",sans-serif; font-size:13px; font-weight:600; line-height:1.45; }
.media-tile:first-child .media-caption { padding:18px 23px; }
.media-tile:first-child .media-caption strong { font-family:"Playfair Display",serif; font-size:25px; }
.media-play { position:absolute; z-index:2; left:50%; top:40%; transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; width:55px; height:55px; border:2px solid white; border-radius:50%; background:#15382dbb; color:white; box-shadow:0 5px 18px #0002; }
.media-play i { margin-left:3px; }
@media(hover:hover) { .media-tile:hover img { transform:scale(1.04); } }
@media(max-width:991px) { .media-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:230px; } .media-tile:first-child { grid-column:span 2; grid-row:span 1; } .media-heading { align-items:flex-start; flex-direction:column; } }
@media(max-width:575px) { .media-grid { grid-template-columns:1fr; grid-auto-rows:280px; } .media-tile:first-child { grid-column:auto; } .media-tile:first-child .media-caption strong { font-size:21px; } }
@media(prefers-reduced-motion:reduce) { .media-tile:hover img { transform:none; } }

/* 19. Homepage achievements carousel: three desktop cards, two tablet, one mobile.
   Owl manages horizontal movement; images use an even portrait crop. */
.school-achievers { background:#f1f6ee; }
.achievers-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:35px; }
.school-home>div>section .achievers-heading h2 { margin:0!important; }
.achievers-link { display:inline-flex; align-items:center; gap:18px; border:1px solid #cbd9c8; border-radius:999px; padding:10px 19px; font-size:12px; white-space:nowrap; }
.achievement-card { border:1px solid #dce5d8; border-radius:16px; }
.achievement-card .card-img-top { height:310px; object-fit:cover; object-position:center 25%; }
.achievement-card .card-body { padding:27px; }
.achievement-date { display:inline-block; padding:5px 11px; border-radius:999px; background:#f9efde; color:#95630e; font-size:11px; margin-bottom:16px; }
.achievement-card h3 { font-size:24px; line-height:1.35; margin-bottom:14px; }
.achievement-card p { font-size:14px; line-height:1.8; margin:0; }
#achievers-carousel .owl-stage { display:flex; }
#achievers-carousel .owl-item { display:flex; }
#achievers-carousel .achievement-card { width:100%; }
#achievers-carousel .owl-nav { display:flex; justify-content:center; gap:12px; margin-top:28px; }
#achievers-carousel .owl-nav button { width:44px; height:44px; border:1px solid #c8d7c4; border-radius:50%; background:white; color:#15382d; }
#achievers-carousel .owl-nav button:hover { background:#15382d; color:white; }
#achievers-carousel .owl-nav.disabled { display:flex; }
@media(max-width:767px) { .achievers-heading { flex-wrap:wrap; } .achievement-card .card-img-top { height:300px; } }

/* 20. Dark achievements section with complementary top and bottom waves.
   Top joins the cream gallery; bottom joins the light testimonial section. */
.school-achievers { position:relative; isolation:isolate; background:linear-gradient(110deg,#102e24,#1b4b37 70%,#23563e); }
.school-home>div>section.school-achievers { padding-top:115px!important; padding-bottom:115px!important; }
.school-home>div>section .school-achievers h2,.school-home>div>section.school-achievers .achievers-heading h2 { color:#fffaf0; }
.school-achievers .achievers-link { color:#ffe0a0; border-color:#ffffff45; }
.school-achievers .achievers-link:hover { color:white; background:#ffffff12; }
.school-achievers::before,.school-achievers::after { content:""; position:absolute; left:0; right:0; height:55px; pointer-events:none; background-size:100% 100%; background-repeat:no-repeat; }
.school-achievers::before { top:-1px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%23faf7f0' d='M0 0H1440V68C1080 68 1080 8 720 8S360 68 0 68Z'/%3E%3C/svg%3E"); }
.school-achievers::after { bottom:-1px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%23f3f6f4' d='M0 8C360 8 360 72 720 72S1080 8 1440 8V80H0Z'/%3E%3C/svg%3E"); }
@media(max-width:767px) { .school-achievers::before,.school-achievers::after { height:35px; } .school-home>div>section.school-achievers { padding-top:80px!important; padding-bottom:80px!important; } }

/* 21. Testimonial quote cards and photographic signatures.
   Reviewer text and portraits are loaded from the CMS testimonials records. */
.testimonials { background:#f3f6f4; padding:80px 0; }
.testimonials h2 { font-size:44px; }
#messages .owl-stage { display:flex; }
#messages .owl-item { display:flex; }
.testimonial-quote { width:100%; display:flex; flex-direction:column; padding:34px; border:1px solid #dce6dc; border-radius:18px; background:white; box-shadow:0 8px 25px #15382d05; }
.testimonial-rating { display:flex; align-items:center; justify-content:space-between; margin-bottom:23px; }
.testimonial-quote-icon { width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:#edf4e9; color:#2b5d3a; border-radius:12px; font-size:19px; }
.testimonial-stars { display:flex; gap:4px; }
.testimonial-stars i { color:#e2a12d; font-size:12px; }
.testimonial-quote .testimonial-text { margin:0 0 30px; font-family:"Poppins",sans-serif; font-size:15px; line-height:1.9; color:#526359; }
.testimonial-quote .testimonial-text p { font-size:inherit; color:inherit; margin:0; }
.testimonial-person { display:flex; align-items:center; gap:16px; padding-top:22px; border-top:1px solid #e6ece4; margin-top:auto; }
#messages .testimonial-person img { width:64px; height:64px; flex-shrink:0; object-fit:cover; object-position:center 35%; border-radius:50%; border:3px solid #f0f4ed; }
.testimonial-person h3 { font-family:"Poppins",sans-serif; font-size:15px; font-weight:600; letter-spacing:0; margin:0 0 3px; }
.testimonial-person span { color:#8a9b8a; font-size:12px; }
#messages .owl-dots { margin-top:28px; }
@media(max-width:767px) { .testimonial-quote { padding:28px; } .testimonials h2 { font-size:34px; } }

/* Testimonial carousel arrows remain visible with the three initial records. */
#messages .owl-nav,#messages .owl-nav.disabled { display:flex; justify-content:center; gap:12px; margin-top:28px; }
#messages .owl-nav button { width:44px; height:44px; padding:0; border:1px solid #cbdac8; border-radius:50%; background:white; color:#15382d; cursor:pointer; }
#messages .owl-nav button:hover { background:#15382d; color:white; }

/* Testimonial emphasis: larger portraits/names, smaller quote text. */
#messages .testimonial-person img { width:84px; height:84px; }
.testimonial-person h3 { font-size:20px; line-height:1.35; }
.testimonial-quote .testimonial-text { font-size:13px; line-height:1.85; }

/* 22. Fixed-height news/event lists with independent vertical navigation.
   Wheel, touch and keyboard scrolling remain available alongside the arrows. */
.updates-list { height:430px; overflow-y:auto; padding-right:8px; scrollbar-width:thin; scrollbar-color:#a6bca9 transparent; }
.updates-scroll-controls { display:flex; justify-content:flex-end; gap:10px; padding-top:20px; border-top:1px solid #e8ede4; }
.updates-scroll-controls button { display:flex; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid #d4dfd2; border-radius:50%; background:#f2f6ee; color:#15382d; cursor:pointer; }
.updates-scroll-controls button:hover:not(:disabled) { background:#f58013; border-color:#f58013; color:white; }
.updates-scroll-controls button:disabled { opacity:.35; cursor:default; }
.upcoming-panel .updates-scroll-controls { border-color:#ffffff20; }
.upcoming-panel .updates-scroll-controls button { background:#ffffff12; border-color:#ffffff35; color:#ffd08a; }
.updates-list:focus-visible,.updates-scroll-controls button:focus-visible { outline:2px solid #e59124; outline-offset:3px; }
@media(max-width:767px) { .updates-list { height:360px; } }

/* 23. Homepage enquiry: warm background, generous form card and clear focus states.
   CMS content uses Bootstrap classes; these template rules polish the presentation. */
#enquiry-form>section { background:linear-gradient(115deg,#faf4e8,#edf4ed)!important; padding:85px 0!important; }
#enquiry-form .display-5 { color:#15382d; font-size:clamp(34px,3.2vw,48px); line-height:1.2; }
#enquiry-form .lead { color:#657368; font-size:17px; line-height:1.85; }
#enquiry-form .col-lg-7>.card { border:1px solid #e2e8dd!important; border-radius:24px!important; box-shadow:0 20px 60px #173b2910!important; }
#enquiry-form .h2 { color:#15382d; font-size:32px; }
#enquiry-form .form-label { font-size:13px!important; font-weight:500; color:#284639; }
#enquiry-form .form-control,#enquiry-form .form-select { border-radius:11px; background:#f8faf6; border-color:#dce5d8; font-size:14px; padding:13px 15px; }
#enquiry-form .form-control:focus,#enquiry-form .form-select:focus { background:white; border-color:#809c7a; box-shadow:0 0 0 3px #2b623515; }
#enquiry-form .btn-success { background:#ed7b10; border-color:#ed7b10; color:white; padding:13px 24px!important; font-size:14px; font-weight:600; }
#enquiry-form .btn-success:hover { background:#cf6406; border-color:#cf6406; }
@media(max-width:767px) { #enquiry-form>section { padding:55px 0!important; } #enquiry-form .h2 { font-size:28px; } }

/* 24. CMS page viewer: dark title hero, centered dip wave, content and right menu. */
.school-page-hero { position:relative; background:linear-gradient(110deg,#0c261e,#164331 70%,#20543b); padding:65px 0 85px; }
.page-hero-row { display:flex; justify-content:space-between; align-items:center; gap:30px; }
.school-page-hero h1 { text-align:left; color:#fffaf0; font-size:clamp(34px,4vw,52px); line-height:1.2; }
.school-page-hero::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:35px; pointer-events:none; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0 8C360 8 360 72 720 72S1080 8 1440 8V80H0Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.page-share { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.page-share span { font-size:12px; color:#c4d5c8; margin-right:5px; }
.page-share a { display:flex; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid #ffffff35; border-radius:50%; background:#ffffff0c; color:#fffaf0; font-size:18px; }
.page-share a:hover { background:#ed7b10; border-color:#ed7b10; color:white; }
.page-wrapper { max-width:none; padding:55px 0 75px; background:white; }
.page-content { min-width:0; }
.page-content img { max-width:100%; height:auto; }
.page-side-menu { background:linear-gradient(140deg,#14382b,#1b4a35); padding:26px; border-radius:18px; }
.page-side-menu h2 { color:#fffaf0; font-size:24px; margin:0 0 20px; }
.page-side-menu .list-group-item { display:flex; justify-content:space-between; align-items:center; gap:12px; background:transparent; border:0; border-top:1px solid #ffffff20; color:#dfeade; padding:15px 0; font-size:14px; }
.page-side-menu .list-group-item i { font-size:11px; color:#d9b879; }
.page-side-menu .list-group-item:hover,.page-side-menu .list-group-item.active { color:#ffd08a; background:transparent; }
@media(max-width:767px) { .school-page-hero { padding:45px 0 65px; } .page-hero-row { align-items:flex-start; flex-direction:column; gap:22px; } .page-wrapper { padding:35px 0 50px; } }

/* 25. Gallery, video and news viewers share the page hero and dark right menu. */
.page-wrapper.school-news { background:white; }
.page-wrapper.school-news .card { border:1px solid #e0e7dc; border-radius:18px; }
.page-wrapper.school-news .card-body { padding:26px; }
.page-wrapper.school-gallery .card-img-top { height:220px; object-fit:cover; }
.video-card { border:1px solid #dce5dd; border-radius:18px; overflow:hidden; color:#15382d; }
.video-card .card-body { padding:24px; }
.video-thumbnail { position:relative; aspect-ratio:16/9; }
.video-thumbnail img { width:100%; height:100%; object-fit:cover; }
.video-thumbnail span { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; background:#14382bd9; color:white; border:2px solid white; }
.video-player { border-radius:18px; overflow:hidden; background:#102e24; }

/* News listing stays compact; full CMS stories render only on the selected item. */
.school-news .news-story { overflow-wrap:anywhere; }
.school-news .news-story img { max-width:100%; height:auto; }
.school-news .news-story p { margin-bottom:1rem; }
