/* ===== Newschool Neon — main stylesheet ===== */
:root{
  --ns-navy-950:#040820;
  --ns-navy-900:#050b2e;
  --ns-navy-800:#0a1445;
  --ns-navy-700:#12205e;
  --ns-ice:#89cff0;
  --ns-ice-bright:#b8e6ff;
  --ns-purple:#8b5cf6;
  --ns-purple-deep:#6d28d9;
  --ns-purple-neon:#a855f7;
  --ns-pink:#e879f9;
  --ns-white:#f4f8ff;
  --ns-glow-ice:0 0 6px rgba(137,207,240,.9),0 0 18px rgba(137,207,240,.6),0 0 42px rgba(137,207,240,.35);
  --ns-glow-purple:0 0 6px rgba(168,85,247,.9),0 0 18px rgba(168,85,247,.55),0 0 42px rgba(168,85,247,.3);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Poppins',sans-serif;background:var(--ns-navy-950);color:var(--ns-white);overflow-x:hidden}
h1,h2,h3,h4{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.04em;margin:0}
a{text-decoration:none;color:inherit}
img{max-width:100%;height:auto}
.ns-container{max-width:1200px;margin:0 auto;padding:0 24px}

/* WPBakery compatibility */
.vc_row{margin-left:0!important;margin-right:0!important}
.wpb_content_element{margin-bottom:0}

/* ===== buttons ===== */
.ns-btn{display:inline-block;padding:13px 34px;border-radius:40px;font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase;transition:.3s;border:none;cursor:pointer;font-family:'Poppins',sans-serif}
.ns-btn-purple{background:linear-gradient(90deg,var(--ns-purple-deep),var(--ns-purple-neon));color:#fff;box-shadow:0 0 14px rgba(168,85,247,.5)}
.ns-btn-purple:hover{box-shadow:var(--ns-glow-purple);transform:translateY(-2px);color:#fff}
.ns-btn-ice{background:transparent;color:var(--ns-ice);border:2px solid var(--ns-ice);box-shadow:inset 0 0 8px rgba(137,207,240,.2),0 0 12px rgba(137,207,240,.35)}
.ns-btn-ice:hover{background:rgba(137,207,240,.12);box-shadow:var(--ns-glow-ice);transform:translateY(-2px);color:var(--ns-ice)}
.ns-btn-sm{padding:9px 22px;font-size:12px}

/* ===== topbar ===== */
.ns-topbar{background:linear-gradient(90deg,var(--ns-purple-deep),var(--ns-purple-neon));font-size:13px;padding:7px 0;text-align:center;color:#fff;letter-spacing:.03em}
.ns-topbar a{font-weight:500;color:#fff}

/* ===== header ===== */
.ns-header{position:sticky;top:0;z-index:100;background:rgba(4,8,32,.82);backdrop-filter:blur(14px);border-bottom:1px solid rgba(137,207,240,.15)}
.admin-bar .ns-header{top:32px}
.ns-nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.ns-logo{display:flex;align-items:center;gap:12px;font-family:'Oswald',sans-serif;font-weight:700;font-size:20px;letter-spacing:.12em;color:var(--ns-white)}
.ns-logo img,img.custom-logo{max-height:46px;width:auto}
.ns-logo .custom-logo-link{display:flex;align-items:center}
.ns-logo .ns-mark{width:40px;height:40px;border-radius:50%;border:2px solid var(--ns-ice);box-shadow:var(--ns-glow-ice);display:grid;place-items:center;font-size:18px;color:var(--ns-ice)}
.ns-nav ul{display:flex;gap:34px;list-style:none;margin:0;padding:0}
.ns-nav ul a{font-size:14px;font-weight:500;letter-spacing:.05em;opacity:.85;transition:.25s;color:var(--ns-white)}
.ns-nav ul a:hover,.ns-nav ul .current-menu-item a{opacity:1;color:var(--ns-ice);text-shadow:var(--ns-glow-ice)}
.ns-nav-toggle{display:none;background:none;border:2px solid var(--ns-ice);border-radius:8px;color:var(--ns-ice);font-size:20px;padding:4px 12px;cursor:pointer}

/* ===== hero ===== */
.ns-hero{position:relative;min-height:92vh;display:grid;place-items:center;text-align:center;overflow:hidden;
background:
 radial-gradient(ellipse 60% 45% at 50% 108%, rgba(137,207,240,.28), transparent 60%),
 radial-gradient(ellipse 45% 40% at 50% -8%, rgba(109,40,217,.4), transparent 65%),
 linear-gradient(180deg,var(--ns-navy-900) 0%,var(--ns-navy-950) 100%)}
.ns-hero.ns-has-bg{background-size:cover;background-position:center}
.ns-hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,8,32,.55),rgba(4,8,32,.75));pointer-events:none}
.ns-hero::after{content:'';position:absolute;inset:0;pointer-events:none;background:
 repeating-linear-gradient(90deg, rgba(137,207,240,.06) 0 1px, transparent 1px 120px),
 linear-gradient(180deg, transparent 62%, rgba(10,20,69,.55) 100%)}
.ns-beam{position:absolute;top:-6%;width:5px;height:112%;border-radius:4px;background:linear-gradient(180deg,var(--ns-ice-bright),var(--ns-ice) 55%,transparent);box-shadow:var(--ns-glow-ice);animation:ns-flicker 5.2s infinite;z-index:1}
.ns-beam.p{background:linear-gradient(180deg,#e9d5ff,var(--ns-purple-neon) 55%,transparent);box-shadow:var(--ns-glow-purple)}
.ns-beam:nth-of-type(1){left:5%;transform:rotate(7deg);animation-delay:.4s}
.ns-beam:nth-of-type(2){left:13%;transform:rotate(5deg);height:88%;animation-delay:1.8s}
.ns-beam:nth-of-type(3){left:21%;transform:rotate(3deg);height:70%;opacity:.75}
.ns-beam:nth-of-type(4){right:5%;transform:rotate(-7deg);animation-delay:1s}
.ns-beam:nth-of-type(5){right:13%;transform:rotate(-5deg);height:88%;animation-delay:2.6s}
.ns-beam:nth-of-type(6){right:21%;transform:rotate(-3deg);height:70%;opacity:.75;animation-delay:.9s}
@keyframes ns-flicker{0%,100%{opacity:1}92%{opacity:1}93%{opacity:.55}94%{opacity:1}97%{opacity:.7}98%{opacity:1}}
.ns-hero-inner{position:relative;z-index:2;padding:60px 20px}
.ns-hero-kicker{font-size:15px;letter-spacing:.5em;color:var(--ns-ice);text-transform:uppercase;margin-bottom:18px;text-shadow:var(--ns-glow-ice)}
.ns-hero h1{font-size:clamp(52px,9vw,120px);font-weight:700;line-height:1.04;color:var(--ns-white);
 text-shadow:0 0 8px rgba(184,230,255,.8),0 0 30px rgba(137,207,240,.55),0 0 80px rgba(137,207,240,.3)}
.ns-hero h1 .ns-stroke{color:transparent;-webkit-text-stroke:2px var(--ns-ice);text-shadow:0 0 20px rgba(137,207,240,.45)}
.ns-hero p{margin:22px auto 36px;max-width:520px;font-weight:300;color:#cfe3f7;font-size:17px}
.ns-hero-cta{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}

.ns-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.ns-hero .ns-hero-overlay{z-index:1}
.ns-hero .ns-beam{z-index:2}

/* ===== CTA banner ===== */
.ns-cta{position:relative;padding:140px 0;background-size:cover;background-position:center 30%;background-color:var(--ns-navy-900);text-align:center;overflow:hidden}
.ns-cta-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,8,32,.85),rgba(42,19,100,.75))}
.ns-cta-inner{position:relative;z-index:2}
.ns-cta h2{font-size:clamp(34px,5vw,58px);color:var(--ns-white);text-shadow:0 0 10px rgba(184,230,255,.7),0 0 34px rgba(137,207,240,.45);margin-bottom:14px}
.ns-cta p{color:#cfe3f7;font-weight:300;font-size:17px;margin:0 0 28px}

/* ===== sections ===== */
.ns-section{padding:96px 0;position:relative}
.ns-sec-head{text-align:center;margin-bottom:56px}
.ns-sec-head h2{font-size:clamp(32px,4.5vw,52px);color:var(--ns-white);text-shadow:0 0 14px rgba(137,207,240,.4)}
.ns-sec-head h2 span{color:var(--ns-purple-neon);text-shadow:var(--ns-glow-purple)}
.ns-sec-head p{margin-top:10px;color:#9db8d8;font-weight:300}

/* ===== about ===== */
.ns-about{background:linear-gradient(135deg,var(--ns-navy-900),#1b1147 60%,#2a1364)}
.ns-about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:center}
.ns-about-visual{aspect-ratio:4/3;border-radius:18px;border:1px solid rgba(168,85,247,.5);
 background:radial-gradient(circle at 50% 55%, rgba(168,85,247,.35), rgba(5,11,46,.9) 70%);
 display:grid;place-items:center;box-shadow:var(--ns-glow-purple);overflow:hidden}
.ns-about-visual img{width:100%;height:100%;object-fit:cover}
.ns-about-visual .ns-neon-logo{font-family:'Oswald',sans-serif;font-size:44px;font-weight:700;letter-spacing:.2em;color:#f2e6ff;text-align:center;text-shadow:0 0 10px #e879f9,0 0 34px var(--ns-purple-neon),0 0 70px var(--ns-purple-neon)}
.ns-about h2{font-size:40px;margin-bottom:20px}
.ns-about h2 span{color:var(--ns-pink);text-shadow:var(--ns-glow-purple)}
.ns-about p{color:#d8cdf5;font-weight:300;line-height:1.8;margin:0 0 14px}

/* ===== styles grid ===== */
.ns-styles{background:var(--ns-navy-950)}
.ns-styles-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.ns-style-card{position:relative;border-radius:16px;padding:34px 24px;min-height:210px;display:flex;flex-direction:column;justify-content:flex-end;
 background:linear-gradient(180deg,rgba(18,32,94,.55),rgba(5,11,46,.9));border:1px solid rgba(137,207,240,.25);transition:.3s;overflow:hidden}
.ns-style-card.ns-has-img{background-size:cover;background-position:center}
.ns-style-card.ns-has-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,8,32,.15),rgba(4,8,32,.88) 75%);z-index:0}
.ns-style-card>*{position:relative;z-index:1}
.ns-style-card::before{content:'';position:absolute;top:0;left:24px;right:24px;height:3px;border-radius:3px;background:var(--ns-ice);box-shadow:var(--ns-glow-ice);transition:.3s;z-index:2}
.ns-style-card:nth-child(2n)::before{background:var(--ns-purple-neon);box-shadow:var(--ns-glow-purple)}
.ns-style-card:hover{transform:translateY(-6px);border-color:rgba(137,207,240,.6);box-shadow:0 12px 40px rgba(137,207,240,.15)}
.ns-style-card h3{font-size:24px;margin-bottom:8px;color:var(--ns-white)}
.ns-style-card p{font-size:13.5px;color:#9db8d8;font-weight:300;line-height:1.6;margin:0}

/* ===== schedule ===== */
.ns-schedule{background:linear-gradient(180deg,var(--ns-navy-900),var(--ns-navy-950))}
.ns-sched-wrap{overflow-x:auto}
.ns-sched-table{width:100%;border-collapse:separate;border-spacing:0 10px;min-width:640px}
.ns-sched-table th{font-family:'Oswald',sans-serif;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--ns-ice);padding:0 20px 8px;text-align:left;text-shadow:0 0 8px rgba(137,207,240,.5)}
.ns-sched-table td{background:rgba(18,32,94,.45);border-top:1px solid rgba(137,207,240,.18);border-bottom:1px solid rgba(137,207,240,.18);padding:18px 20px;font-size:15px}
.ns-sched-table td:first-child{border-left:1px solid rgba(137,207,240,.18);border-radius:12px 0 0 12px;font-weight:500}
.ns-sched-table td:last-child{border-right:1px solid rgba(137,207,240,.18);border-radius:0 12px 12px 0;text-align:right}
.ns-sched-table tr:hover td{background:rgba(18,32,94,.75);border-color:rgba(137,207,240,.45)}
.ns-tag{display:inline-block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:4px 12px;border-radius:20px;background:rgba(168,85,247,.18);border:1px solid rgba(168,85,247,.5);color:#d8b4fe}

/* ===== pricing ===== */
.ns-pricing{background:linear-gradient(160deg,#2a1364,var(--ns-purple-deep) 55%,#7c3aed)}
.ns-pricing .ns-sec-head h2{text-shadow:0 0 18px rgba(255,255,255,.35)}
.ns-pricing .ns-sec-head p{color:#e9defc}
.ns-price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.ns-price-card{background:rgba(255,255,255,.97);color:#1e1145;border-radius:16px;padding:32px 24px;text-align:center;transition:.3s;position:relative}
.ns-price-card:hover{transform:translateY(-6px);box-shadow:0 0 0 2px var(--ns-ice),0 18px 50px rgba(0,0,0,.35)}
.ns-price-card .ns-num{font-family:'Oswald',sans-serif;font-size:44px;font-weight:700;line-height:1}
.ns-price-card .ns-name{font-family:'Oswald',sans-serif;font-size:18px;letter-spacing:.08em;text-transform:uppercase;margin:4px 0 14px}
.ns-price-card .ns-price{font-size:26px;font-weight:700;color:var(--ns-purple-deep);margin-bottom:12px}
.ns-price-card ul{list-style:none;font-size:13.5px;color:#5b5473;margin:0 0 20px;padding:0}
.ns-price-card ul li{padding:3px 0}
.ns-price-card .ns-btn{width:100%;padding:11px}
.ns-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--ns-ice);color:#06255c;font-size:11px;font-weight:700;letter-spacing:.1em;padding:5px 16px;border-radius:20px;box-shadow:var(--ns-glow-ice);white-space:nowrap}

/* ===== teachers ===== */
.ns-teachers{background:var(--ns-navy-950)}
.ns-teach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.ns-teach-card{border-radius:16px;overflow:hidden;background:linear-gradient(180deg,rgba(18,32,94,.5),rgba(42,19,100,.55));border:1px solid rgba(168,85,247,.35);transition:.3s}
.ns-teach-card:hover{transform:translateY(-6px);border-color:var(--ns-purple-neon);box-shadow:var(--ns-glow-purple)}
.ns-teach-photo{aspect-ratio:4/4.4;background:linear-gradient(135deg,#12205e,#2a1364);display:grid;place-items:center;color:rgba(137,207,240,.5);font-family:'Oswald',sans-serif;font-size:15px;letter-spacing:.2em;overflow:hidden}
.ns-teach-photo img{width:100%;height:100%;object-fit:cover}
.ns-teach-body{padding:22px}
.ns-teach-body h3{font-size:22px;color:var(--ns-white)}
.ns-teach-body .ns-role{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ns-ice);margin:4px 0 10px}
.ns-teach-body p{font-size:13.5px;color:#9db8d8;font-weight:300;line-height:1.65;margin:0}

/* ===== contact ===== */
.ns-contact{background:linear-gradient(180deg,var(--ns-navy-900),#0a0620)}
.ns-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.ns-contact-box{border:1px solid rgba(137,207,240,.25);border-radius:16px;padding:36px;background:rgba(18,32,94,.3)}
.ns-contact-box h3{font-size:22px;color:var(--ns-ice);margin-bottom:18px;text-shadow:0 0 10px rgba(137,207,240,.5)}
.ns-contact-box p{color:#cfe3f7;font-weight:300;line-height:1.9;font-size:15px;margin:0}
.ns-contact-box strong{color:var(--ns-white)}

/* ===== footer ===== */
.ns-footer{background:#03051a;padding:44px 0;border-top:1px solid rgba(137,207,240,.14);text-align:center}
.ns-footer .ns-f-logo{font-family:'Oswald',sans-serif;font-size:24px;letter-spacing:.2em;color:var(--ns-ice);text-shadow:var(--ns-glow-ice);margin-bottom:14px}
.ns-footer p{font-size:13px;color:#6a7ba3;margin:0}
.ns-socials{margin:16px 0;display:flex;gap:14px;justify-content:center}
.ns-socials a{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--ns-purple-neon);display:grid;place-items:center;color:var(--ns-purple-neon);transition:.3s;font-size:16px}
.ns-socials a:hover{box-shadow:var(--ns-glow-purple);color:#fff}

/* ===== default page content ===== */
.ns-page-content{padding:80px 0;max-width:820px;margin:0 auto}
.ns-page-content a{color:var(--ns-ice)}

/* ===== responsive ===== */
@media(max-width:960px){
 .ns-styles-grid,.ns-price-grid{grid-template-columns:repeat(2,1fr)}
 .ns-teach-grid{grid-template-columns:1fr}
 .ns-about-grid,.ns-contact-grid{grid-template-columns:1fr}
 .ns-nav ul{display:none;position:absolute;top:72px;left:0;right:0;background:rgba(4,8,32,.97);flex-direction:column;padding:20px 24px;gap:18px;border-bottom:1px solid rgba(137,207,240,.2)}
 .ns-nav.open ul{display:flex}
 .ns-nav-toggle{display:block}
 .ns-nav>.ns-btn{display:none}
}
@media(max-width:600px){
 .ns-styles-grid,.ns-price-grid{grid-template-columns:1fr}
 .ns-section{padding:64px 0}
}
