/*
Theme Name: New Vision International School
Theme URI: https://www.newvisionschool.co.za/
Author: New Vision Website Team
Description: Premium school website theme recreated from the New Vision Lovable layout. Includes 2027 Admissions, four academic phases, school life, uniforms and enquiry via WhatsApp.
Version: 1.0.0
Requires at least: 6.2
Tested up to: 6.7
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: new-vision-school
*/
:root{--purple:#38215c;--deep:#25143f;--gold:#e5bd24;--paper:#f2efe9;--cream:#f8f6f2;--white:#fff;--text:#28272c;--muted:#696d74;--border:#dad6ce;--serif:"DM Serif Display",Georgia,serif;--sans:"Source Sans 3",Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--cream);color:var(--text);font:17px/1.58 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--purple)}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,h4,.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.01em}h1,h2,h3,p{margin-top:0}p{margin-bottom:16px}h1{line-height:1.02}h2{font-size:clamp(35px,4vw,56px);line-height:1.12}h3{font-size:29px;line-height:1.2}::selection{background:var(--gold);color:var(--deep)}:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.container{max-width:1280px;margin:auto;padding:0 24px}.eyebrow{text-transform:uppercase;font-weight:700;letter-spacing:.22em;font-size:12px;color:var(--purple)}.muted{color:var(--muted)}.gold{color:var(--gold)}.purple{color:var(--purple)}.rule{width:58px;height:3px;background:var(--gold);display:block;margin:22px 0}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:13px 28px;font-weight:700;font-size:16px;border:1px solid var(--purple);background:var(--purple);color:white;transition:background .2s,border-color .2s,transform .2s;line-height:1.2}.btn:hover{background:var(--deep);border-color:var(--deep);color:#fff;transform:translateY(-1px)}.btn-outline{background:transparent;color:var(--purple)}.btn-outline:hover{background:#e9e0ee;color:var(--purple);border-color:var(--purple)}.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--deep)}.btn-gold:hover{background:#f2cd45;color:var(--deep);border-color:#f2cd45}.textlink{font-weight:700;color:var(--purple);border-bottom:1px solid currentColor;padding-bottom:2px}.textlink:hover{color:#65418e}.topbar{background:var(--deep);color:#e7e1f0}.topbar-inner{max-width:1280px;min-height:29px;padding:3px 24px;display:flex;justify-content:space-between;gap:15px;align-items:center;margin:auto;font-size:12px;line-height:1.3}.topbar-right{display:flex;gap:18px;align-items:center}.topbar strong{color:var(--gold);font-weight:600}.site-header{position:sticky;top:0;z-index:900;background:var(--cream);border-bottom:1px solid var(--border);box-shadow:0 1px 0 #00000005}.navinner{display:flex;align-items:center;justify-content:space-between;gap:25px;max-width:1280px;margin:auto;padding:13px 24px;min-height:82px}.brand{display:flex;align-items:center;gap:12px;min-width:215px}.brand-logo{height:55px;width:55px;object-fit:contain;flex-shrink:0}.brand-name{display:block;color:var(--purple);font:27px/.96 var(--serif);white-space:nowrap}.brand-sub{display:block;color:var(--muted);font-weight:700;font-size:10px;letter-spacing:.25em;text-transform:uppercase;white-space:nowrap;margin-top:6px}.nav-list{display:flex;list-style:none;align-items:center;gap:0;padding:0;margin:0}.nav-list>li{position:relative}.nav-list>li>a{display:block;padding:10px 12px;font-size:16px;color:#59575b;white-space:nowrap}.nav-list>li>a:hover,.nav-list>li>a[aria-current=page],.subnav a:hover{color:var(--purple)}.nav-list>li.current>a{font-weight:700;color:var(--purple)}.nav-list>li.current:after{content:"";position:absolute;bottom:0;left:12px;right:12px;height:2px;background:var(--gold)}.subnav{display:none;position:absolute;top:100%;left:0;min-width:245px;z-index:1010;background:#fff;box-shadow:0 12px 30px #20122c21;border:1px solid var(--border);padding:10px 0;list-style:none;margin:0}.nav-list li:hover>.subnav,.nav-list li:focus-within>.subnav{display:block}.subnav a{display:block;padding:9px 18px;white-space:nowrap;font-size:14px;color:var(--text)}.menu-toggle{display:none;background:none;border:0;padding:10px;color:var(--purple);font-size:28px;line-height:1}.header-apply{font-size:14px;min-height:46px;padding:13px 16px;white-space:nowrap}.hero{background:var(--paper)}.hero-layout{display:grid;grid-template-columns:5fr 7fr;max-width:1440px;min-height:calc(100vh - 112px);margin:auto}.hero-copy{position:relative;padding:85px 56px 80px 128px;display:flex;flex-direction:column;justify-content:center}.hero-ribbon{position:absolute;top:0;left:28px;width:61px;height:242px;background:var(--purple);clip-path:polygon(0 0,100% 0,100% 100%,50% 88%,0 100%);display:flex;justify-content:center;padding-top:20px}.hero-ribbon img{height:42px;width:42px;object-fit:contain;filter:brightness(0) invert(1)}.hero-title{font-size:clamp(64px,6.8vw,94px);margin:22px 0 30px;color:var(--purple);line-height:.98}.hero-title em{color:#28272c;font-style:italic}.hero-copy>div>p:not(.eyebrow){color:var(--muted);max-width:445px;font-size:20px;line-height:1.52}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}.hero-media{position:relative;min-height:650px;overflow:hidden}.hero-media>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center center}.hero-gold{position:absolute;top:0;right:10px;width:12px;height:112px;background:var(--gold)}.hero-card{position:absolute;bottom:0;left:0;width:min(65%,408px);background:var(--purple);padding:34px 38px;color:white}.hero-card .eyebrow{color:var(--gold)}.hero-card h2{font-size:33px;color:white;margin:15px 0}.hero-card a{color:var(--gold);font-weight:700;font-size:14px}.rail{background:var(--deep);color:white}.railinner{display:grid;grid-template-columns:repeat(4,1fr)}.rail a{display:flex;gap:18px;padding:27px 24px;border-right:1px solid #ffffff25;min-height:104px}.rail a:last-child{border-right:0}.rail span.num{font:24px var(--serif);color:var(--gold)}.rail strong{display:block;color:white}.rail small{display:block;color:#e5dfecb5;font-size:14px}.section{padding:95px 0}.section.paper{background:var(--paper)}.section.dark{background:var(--purple);color:white}.section.deep{background:var(--deep);color:white}.section.narrow{padding:70px 0}.split{display:grid;grid-template-columns:5fr 7fr;gap:70px}.split.half{grid-template-columns:1fr 1fr}.sec-title{color:var(--purple)}.section.dark .sec-title,.section.deep .sec-title{color:white}.section-intro{font-size:19px;line-height:1.62;color:var(--muted)}.section.dark .section-intro,.section.deep .section-intro{color:#e3dceb}.pillars{padding:0;margin:0;list-style:none}.pillars li{display:grid;grid-template-columns:55px 1fr;gap:20px;padding:23px 0;border-top:1px solid var(--border)}.pillars li:last-child{border-bottom:1px solid var(--border)}.pillars .num{font:27px var(--serif);color:var(--gold)}.pillars h3{color:var(--purple);margin-bottom:5px;font-size:28px}.pillars p{color:var(--muted);margin-bottom:0}.photo-grid{display:grid;grid-template-columns:7fr 5fr;gap:22px}.photo-grid>img{height:500px;width:100%;object-fit:cover}.photo-stack{display:flex;flex-direction:column;gap:25px}.photo-stack blockquote{border-left:4px solid var(--gold);padding:15px 25px;font:32px/1.3 var(--serif);margin:0;color:var(--purple)}.photo-stack img{height:285px;width:100%;object-fit:cover}.caption{font-size:12px;color:var(--muted);margin-top:14px}.path-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--purple);margin-top:55px}.phase-card{padding:26px 24px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:background .2s}.phase-card:last-child{border-right:0}.phase-card:hover{background:var(--purple);color:white}.phase-card:hover h3,.phase-card:hover p{color:white}.phase-card h3{color:var(--purple);font-size:31px;margin:17px 0}.phase-card p{color:var(--muted)}.phase-card .eyebrow{color:#bc9200}.phase-card .arrow{display:block;font-size:28px;margin-top:30px}.feature-tiles{display:grid;grid-template-columns:repeat(2,1fr);max-width:1280px;margin:auto}.feature-tile{position:relative;min-height:455px;display:flex;align-items:end;color:white;overflow:hidden}.feature-tile>img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;transition:transform .7s ease}.feature-tile:hover>img{transform:scale(1.04)}.feature-tile:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#25143fee,#25143f00 85%);z-index:1}.feature-tile>div{position:relative;z-index:2;padding:45px}.feature-tile h3{font-size:45px;margin:5px 0}.feature-tile p{max-width:410px;color:#e4e0e8}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-top:45px}.value-box{background:var(--cream);padding:40px}.value-box h3{font-size:54px;color:var(--purple)}.value-box h3 b{color:var(--gold);font-weight:400}.value-box p{color:var(--muted)}.image-row{display:grid;grid-template-columns:repeat(2,1fr);gap:56px}.image-row img{height:335px;width:100%;object-fit:cover}.image-row h3{margin:27px 0 9px;color:var(--purple)}.contact-band{background:var(--purple);color:white;padding:78px 0;position:relative;overflow:hidden}.contact-band:before{content:"";position:absolute;top:0;right:9%;height:140px;width:45px;background:var(--gold)}.contact-inner{display:grid;grid-template-columns:7fr 5fr;gap:40px;align-items:end}.contact-band h2{color:white;margin:12px 0}.contact-band p{max-width:590px;color:#ded6e8}.contact-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}.contact-actions .btn-outline{color:white;border-color:#ffffff70}.contact-actions .btn-outline:hover{color:var(--purple);background:white}.inner-hero{background:var(--paper)}.inner-hero-grid{display:grid;grid-template-columns:7fr 5fr;min-height:420px}.inner-hero-copy{padding:45px 58px 65px 0;display:flex;flex-direction:column;justify-content:center}.breadcrumbs{display:flex;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--muted);margin-bottom:35px}.breadcrumbs a:hover{color:var(--purple)}.inner-hero h1{font-size:clamp(50px,5vw,76px);color:var(--purple);margin:13px 0 20px}.inner-hero .section-intro{max-width:630px}.inner-hero-image{min-height:400px;position:relative}.inner-hero-image img{height:100%;width:100%;object-fit:cover;position:absolute}.inner-hero-image:before{content:"";position:absolute;top:0;left:0;z-index:2;width:12px;height:145px;background:var(--gold)}.body-copy p{font-size:19px;line-height:1.68;color:var(--muted)}.body-copy strong{color:var(--text)}.step{display:grid;grid-template-columns:64px 3fr 5fr;gap:25px;border-top:1px solid var(--border);padding:29px 0}.step:last-child{border-bottom:1px solid var(--border)}.step .num{font:30px var(--serif);color:#b78d0c}.step h3{margin:0;color:var(--purple)}.step p{color:var(--muted);margin:0}.list-rows{display:grid;grid-template-columns:repeat(2,1fr);gap:0 50px}.list-row{border-top:1px solid var(--border);padding:26px 0}.list-row h3{color:var(--purple);margin:0 0 10px}.list-row p{color:var(--muted);margin:0}.phase-list{display:grid;gap:1px;margin-top:45px;background:var(--border)}.phase-entry{display:grid;grid-template-columns:25% 1fr 50px;gap:28px;padding:20px;background:var(--cream);align-items:center}.phase-entry:hover{background:#f4ecf8}.phase-entry img{height:165px;width:100%;object-fit:cover}.phase-entry h3{color:var(--purple);margin:7px 0 8px}.phase-entry p{color:var(--muted);margin:0}.phase-entry .arrow{font-size:30px;color:var(--purple)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gallery-grid figure{margin:0}.gallery-grid img{width:100%;height:250px;object-fit:cover}.gallery-grid figure:first-child{grid-column:span 2}.gallery-grid figure:first-child img{height:330px}.gallery-grid figcaption{font-size:12px;color:var(--muted);margin-top:6px}.palette{display:grid;grid-template-columns:repeat(5,1fr);margin-top:40px}.palette-chip>div{height:150px}.palette-chip p{font-size:15px;margin-top:12px}.uniform-items{display:grid;grid-template-columns:repeat(2,1fr);gap:0 55px;margin-top:65px}.uniform-row{display:flex;gap:25px;align-items:center;border-top:1px solid var(--border);padding:20px 0}.uniform-row .swatch{height:56px;width:56px;flex-shrink:0}.uniform-row h3{font-size:25px;margin:0;color:var(--purple)}.uniform-row p{margin:2px 0;color:var(--muted)}.form-grid{display:grid;grid-template-columns:5fr 7fr;gap:55px}.enquiry-form{padding:35px;background:white;display:grid;gap:14px}.enquiry-form label{display:grid;gap:7px;font-weight:500}.enquiry-form input:not([type=checkbox]),.enquiry-form select,.enquiry-form textarea{background:white;border:1px solid #cfc9ca;padding:12px 14px;width:100%;border-radius:0}.enquiry-form .consent{display:flex;align-items:start;gap:10px;font-size:14px;color:var(--muted)}.enquiry-form .consent input{margin-top:7px}.enquiry-form button{width:100%}.faq details{border-top:1px solid var(--border);padding:20px 0}.faq details:last-child{border-bottom:1px solid var(--border)}.faq summary{list-style:none;cursor:pointer;font:25px var(--serif);color:var(--purple)}.faq summary::after{content:'+';float:right}.faq details[open] summary::after{content:'−'}.faq details p{margin:12px 0 0;color:var(--muted)}.contact-info .eyebrow{margin-bottom:8px}.contact-info>div{margin-bottom:35px}.contact-info a.textlink{font-size:20px}.map iframe{width:100%;height:455px;border:0}.site-footer{background:var(--deep);color:white}.footer-inner{display:grid;grid-template-columns:5fr 2fr 2fr 3fr;gap:46px;padding-top:70px;padding-bottom:65px;border-bottom:1px solid #ffffff28}.site-footer .brand-name{color:#fff}.site-footer .brand-sub{color:var(--gold)}.site-footer .motto{font:33px/1.3 var(--serif);color:var(--gold);margin-top:26px}.site-footer .brand-logo{filter:brightness(0) invert(1)}.site-footer p,.site-footer address{color:#d7cddd;font-size:16px;font-style:normal}.site-footer h4{font:700 12px var(--sans);letter-spacing:.19em;text-transform:uppercase;color:var(--gold);margin:5px 0 20px}.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{margin-bottom:9px;font-size:16px;color:#e6e0ea}.site-footer a:hover{color:var(--gold)}.footer-bottom{display:flex;justify-content:space-between;gap:18px;padding:24px 0;color:#b7adc3;font-size:13px}.note{border-left:3px solid var(--gold);padding:0 16px;color:var(--muted);font-size:14px;margin:25px 0}.floating-cta{position:fixed;bottom:17px;right:17px;z-index:80;background:var(--gold);color:var(--deep);padding:12px 18px;font-size:14px;font-weight:700;box-shadow:0 7px 25px #0003}.editcontent{margin-top:40px;border-top:1px solid var(--border);padding-top:26px}.editcontent p{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}
@media(max-width:1200px){.nav-list>li>a{padding:10px 7px;font-size:14px}.brand{min-width:180px}.brand-name{font-size:24px}.brand-sub{font-size:8px}.hero-copy{padding-left:110px;padding-right:25px}.hero-title{font-size:76px}}
@media(max-width:1020px){.nav-list{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);border-top:1px solid var(--border);box-shadow:0 19px 30px #0002;overflow-y:auto;max-height:calc(100vh - 72px);padding:12px 24px}.nav-list.open{display:block}.nav-list>li>a{padding:12px;font-size:19px}.nav-list>li.current:after{display:none}.subnav{position:static;display:block;box-shadow:none;border:0;padding:0 0 6px 15px;min-width:0;background:transparent}.subnav a{white-space:normal}.menu-toggle{display:block}.navinner{min-height:74px}.header-apply{margin-left:auto}.hero-copy{padding:55px 25px 55px 82px}.hero-ribbon{left:15px;width:45px;height:170px}.hero-ribbon img{width:32px;height:32px}.hero-title{font-size:clamp(50px,6.5vw,75px)}.hero-media{min-height:580px}.split{gap:45px}}
@media(max-width:768px){.topbar-inner{display:block;text-align:center}.topbar-right{justify-content:center;margin-top:4px}.container{padding:0 18px}.hero-layout{display:block;min-height:0}.hero-copy{padding:65px 22px 45px 75px}.hero-media{min-height:500px}.hero-card{width:min(85%,410px)}.railinner{grid-template-columns:1fr 1fr}.rail a:nth-child(2){border-right:0}.rail a{min-height:0}.section{padding:66px 0}.split,.split.half,.contact-inner,.form-grid{grid-template-columns:1fr;gap:32px}.photo-grid{grid-template-columns:1fr}.photo-grid>img{height:350px}.photo-stack{display:grid;grid-template-columns:1fr 1fr;align-items:center}.photo-stack img{height:230px}.path-grid{grid-template-columns:repeat(2,1fr)}.feature-tiles,.values-grid,.image-row,.inner-hero-grid{grid-template-columns:1fr}.inner-hero-copy{padding:40px 0}.inner-hero-image{height:320px;min-height:320px}.inner-hero-image img{position:static}.list-rows{grid-template-columns:1fr}.footer-inner{grid-template-columns:repeat(2,1fr)}.footer-bottom{display:block}.phase-entry{grid-template-columns:150px 1fr 35px}.contact-actions{justify-content:start}.uniform-items{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.topbar{display:none}.brand-name{font-size:22px}.brand-logo{height:49px;width:49px}.brand-sub{letter-spacing:.12em;font-size:8px}.header-apply{display:none}.hero-copy{padding:50px 18px 50px 64px}.hero-ribbon{width:34px;left:10px;height:150px}.hero-ribbon img{width:28px;height:28px}.hero-title{font-size:clamp(56px,15vw,70px)}.hero-copy>div>p:not(.eyebrow){font-size:17px}.hero-actions{display:grid}.hero-actions .btn{width:100%}.hero-media{min-height:380px}.hero-card{padding:19px 22px}.hero-card h2{font-size:24px}.railinner{grid-template-columns:1fr}.rail a{padding:15px 18px;border-right:0;border-bottom:1px solid #ffffff29;min-height:0}.photo-stack,.path-grid,.feature-tiles,.values-grid,.image-row,.footer-inner,.gallery-grid{grid-template-columns:1fr}.photo-stack blockquote{font-size:27px}.path-grid .phase-card{border-right:0}.feature-tile{min-height:340px}.feature-tile>div{padding:26px}.feature-tile h3{font-size:34px}.inner-hero h1{font-size:47px}.inner-hero-image{height:260px;min-height:260px}.inner-hero-image img{height:260px}.phase-entry{grid-template-columns:100px 1fr;gap:14px}.phase-entry img{height:90px}.phase-entry h3{font-size:25px}.phase-entry .arrow{display:none}.step{grid-template-columns:45px 1fr;gap:10px}.step p{grid-column:2}.palette{grid-template-columns:repeat(2,1fr);gap:8px}.palette-chip>div{height:95px}.gallery-grid figure:first-child{grid-column:auto}.gallery-grid figure:first-child img{height:250px}.footer-inner{gap:25px}.floating-cta{font-size:12px;padding:11px;bottom:9px;right:9px}}@media(prefers-reduced-motion:reduce){*{transition-duration:0!important;scroll-behavior:auto!important}}
