/* =====================================================================
   Theme 07 — "Nova"   (modern technology institute)
   Loaded after theme.css. Tokens + presentation only; section markup and
   page data are identical to every other theme.
   Identity: a charcoal header stack and hero with an electric cyan accent,
   Space Grotesk headings over IBM Plex Sans, dark quick-access tiles
   floating over a light, airy page.
   ===================================================================== */

:root{
  --sec-y:clamp(60px,7vw,96px);
  --radius:10px;
  --radius-sm:6px;
  --shadow-1:0 1px 2px rgba(15,23,42,.04),0 4px 14px rgba(15,23,42,.05);
  --shadow-2:0 14px 34px rgba(15,23,42,.10),0 2px 8px rgba(15,23,42,.05);
  --shadow-3:0 26px 64px rgba(11,16,32,.28);
  --cyan:var(--accent-light);
  --cyan-ink:var(--accent);
  --cyan-tint:rgba(14,116,144,.1);
  --glow:rgba(34,211,238,.22);
  --dark-line:rgba(255,255,255,.08);
}
h1,h2,h3,h4,h5{font-weight:700;letter-spacing:-.025em;color:var(--ink)}
a:hover{color:var(--cyan-ink)}

/* ---------- header stack: dark from top bar to navigation ---------- */
.topbar{background:var(--brand-dark);color:#94a3b8;font-size:12.3px;border-bottom:1px solid var(--dark-line)}
.topbar a{color:#94a3b8}
.topbar a:hover{color:var(--cyan)}
.topbar-links a{border-left-color:var(--dark-line)}
.topbar-social a{background:rgba(255,255,255,.07)}
.topbar-social a:hover{background:var(--cyan);color:#062a33}
.masthead{background:var(--brand-dark);border-bottom:1px solid var(--dark-line)}
.masthead-in{padding:18px 22px}
.brand-txt strong{color:#fff;letter-spacing:-.03em}
.brand-txt small{color:#94a3b8}
.brand-txt em{color:var(--cyan)}
.mh-info small{color:#94a3b8}
.mh-info b{color:#fff;font-family:var(--font-display)}
.mh-info svg{stroke:var(--cyan)}
/* the crest is drawn in --brand, which is charcoal here: lift it off the dark masthead */
.masthead .brand-mark > path:first-of-type{fill:var(--brand-light)}
.masthead .brand-mark{filter:drop-shadow(0 0 12px rgba(34,211,238,.35))}
.mh-actions .btn-primary{background:var(--cyan);color:#062a33;box-shadow:none}
.mh-actions .btn-primary:hover{background:#a5f3fc;color:#062a33;transform:none}
.mh-actions .btn-ghost{color:#e2e8f0;border-color:rgba(255,255,255,.22);background:transparent}
.mh-actions .btn-ghost:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.4);color:#fff}
.navbar{background:var(--brand-dark);border-bottom:1px solid var(--dark-line);box-shadow:none}
.nav-item > a{color:#cbd5e1;font-size:13.6px;font-weight:500;letter-spacing:.01em;padding:16px 14px}
.nav-item > a::after{height:2px;bottom:0;left:14px;right:14px;background:var(--cyan)}
.nav-item:hover > a,.nav-item.is-active > a{color:#fff;background:transparent}
.nav-tools button{color:#cbd5e1}
.nav-tools button:hover{background:rgba(255,255,255,.08);color:#fff}
.caret{opacity:.6}
.drop{background:#0f172a;border:1px solid var(--dark-line);border-top:2px solid var(--cyan);border-radius:8px;box-shadow:var(--shadow-3);min-width:280px}
.drop a{color:#cbd5e1}
.drop a:hover{background:rgba(255,255,255,.06);border-left-color:var(--cyan);color:#fff}
.mega{background:#0f172a;border-top:2px solid var(--cyan);box-shadow:var(--shadow-3)}
.mega-col h4{color:var(--cyan);border-bottom-color:var(--dark-line);letter-spacing:.14em}
.mega-col a{color:#cbd5e1}
.mega-col a:hover{color:#fff}
.mega-promo{background:rgba(255,255,255,.04);border:1px solid var(--dark-line);border-radius:8px}
.mega-promo p{color:#94a3b8}
.mega-promo .btn-accent{background:var(--cyan);color:#062a33}
.searchbar{background:#0f172a;border-bottom-color:var(--dark-line)}
.searchbar input{background:rgba(255,255,255,.06);border-color:var(--dark-line);color:#fff}
.searchbar input:focus{border-color:var(--cyan)}
.searchbar .btn-primary{background:var(--cyan);color:#062a33}
.nav-backdrop{background:rgba(11,16,32,.6)}

/* ---------- controls ---------- */
.btn{border-radius:6px;font-weight:600;letter-spacing:0;font-size:14px}
.btn-primary{background:var(--brand)}
.btn-primary:hover{background:var(--brand-light);transform:none;box-shadow:none}
.btn-accent{background:var(--cyan-ink);color:#fff}
.btn-accent:hover{background:#155e75;color:#fff;transform:none;box-shadow:none}
.btn-ghost{border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--cyan-ink);color:var(--cyan-ink);background:var(--surface-2)}
.slide .btn-primary,.cta .btn-primary,.side-card .btn-primary{background:var(--cyan);color:#062a33}
.slide .btn-primary:hover,.cta .btn-primary:hover,.side-card .btn-primary:hover{background:#a5f3fc;color:#062a33}
.btn-outline{border-color:rgba(255,255,255,.45)}
.btn-outline:hover{background:#fff;color:var(--brand-dark)}
.tab{border-radius:6px;font-weight:600}
.tab:hover{border-color:var(--cyan-ink);color:var(--cyan-ink)}
.tab.is-active{background:var(--brand);border-color:var(--brand)}

/* ---------- hero: charcoal, cyan glow, faint grid ---------- */
.hero{background:var(--brand-dark)}
.hero::before{
  content:'';position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.7;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:radial-gradient(70% 90% at 25% 50%,#000 20%,transparent 100%);
  mask-image:radial-gradient(70% 90% at 25% 50%,#000 20%,transparent 100%);
}
.hero-track{height:clamp(480px,66vh,640px)}
.slide::after{background:linear-gradient(100deg,rgba(11,16,32,.96) 0%,rgba(11,16,32,.84) 40%,rgba(11,16,32,.4) 78%,rgba(14,116,144,.35) 100%)}
.slide-in{padding-bottom:52px}
.slide .kicker{color:var(--cyan);letter-spacing:.22em;font-size:11px}
.slide .kicker::before{width:10px;height:10px;background:var(--cyan)}
.slide h1{font-size:clamp(34px,5.2vw,64px);line-height:1.02;letter-spacing:-.035em}
.slide h1 em{color:var(--cyan)}
.slide .lede{color:#a5b4c8}
.hero-ui{bottom:34px}
.hero-dots button{height:3px;border-radius:0;background:rgba(255,255,255,.3)}
.hero-dots button.is-active{background:var(--cyan)}
.hero-arrows button{border-radius:6px;background:rgba(255,255,255,.06);border-color:var(--dark-line)}
.hero-arrows button:hover{background:var(--cyan);border-color:var(--cyan);color:#062a33}

/* ---------- quick access: dark tiles over the light page ---------- */
.quick{margin-top:-46px;background:transparent}
.quick-grid{background:#0f172a;border:1px solid var(--dark-line);border-radius:12px;box-shadow:var(--shadow-3)}
.quick-item{color:#e2e8f0;border-right-color:var(--dark-line);padding:22px 16px}
.quick-item small{color:#94a3b8}
.quick-item:hover{background:rgba(34,211,238,.1);color:#fff;transform:none}
.quick-item:hover small{color:#cbd5e1}
.qi-ic{border-radius:8px;background:rgba(34,211,238,.12);color:var(--cyan)}
.quick-item:hover .qi-ic{background:var(--cyan);color:#062a33}

/* ---------- ticker ---------- */
.ticker{background:#fff;border-block-color:var(--line)}
.ticker-label{background:var(--brand-dark);color:var(--cyan);letter-spacing:.16em;font-size:11px}
.ticker-label::after{border-left-color:var(--brand-dark)}
.ticker-move a{color:#334155}
.tag{background:var(--cyan-tint);color:var(--cyan-ink);border-radius:4px}
.tag-new{background:var(--danger);color:#fff}

/* ---------- section rhythm ---------- */
.kicker{color:var(--cyan-ink);letter-spacing:.2em;font-size:11px}
.kicker::before,.sec-head.center .kicker::after{width:8px;height:8px;background:var(--cyan-ink)}
.sec-head h2{font-size:clamp(28px,3.4vw,44px)}
.sec-head p{font-size:16.5px}
.sec-alt{background:var(--surface-2)}

/* ---------- about ---------- */
.split-art{z-index:0}
.split-art::after{content:'';position:absolute;right:-40px;top:-40px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,var(--glow),transparent 68%);z-index:-1;filter:blur(8px)}
.art-main{border-radius:12px;box-shadow:var(--shadow-2)}
.art-badge{background:var(--brand-dark);border-bottom:3px solid var(--cyan);border-radius:10px}
.art-badge b{color:var(--cyan)}
.art-badge span{color:#94a3b8}
.tick-list svg{stroke:var(--cyan-ink)}
.sig-mark{border-radius:8px;background:var(--brand-dark)}

/* ---------- statistics: charcoal band, cyan numerals ---------- */
.stats{background:var(--brand-dark);border-top:1px solid var(--dark-line)}
.stats::before{background:radial-gradient(640px 320px at 85% 0%,var(--glow),transparent 70%)}
.stat-grid{background:var(--dark-line)}
.stat{background:var(--brand-dark);padding:34px 18px}
.stat b{color:var(--cyan)}
.stat span{color:#94a3b8;letter-spacing:.04em}

/* ---------- cards ---------- */
.card,.feat,.mini-card,.fcard,.place-num,.ccard,.panel,.form-wrap,.table-wrap,.acc-item,.event-mini,.dl-item,
.press a,.side-nav,.side-card,.filterbar,.map-frame,.empty{border-radius:10px}
.card::before{background:var(--cyan-ink)}
.card:hover{border-color:var(--cyan-ink);box-shadow:var(--shadow-2);transform:translateY(-4px)}
.card-ic{border-radius:8px;background:var(--cyan-tint);color:var(--cyan-ink)}
.card h3{font-size:18.5px}
.card h3 a:hover{color:var(--cyan-ink)}
.card-badge{background:var(--cyan-tint);color:var(--cyan-ink);border-radius:4px}
.card-meta svg{stroke:var(--cyan-ink)}
.link-more{color:var(--cyan-ink)}
.link-more:hover{color:var(--ink)}
.mini-card{border-top:3px solid var(--cyan-ink)}

/* ---------- features ---------- */
.feat:hover{border-color:var(--cyan-ink);box-shadow:var(--shadow-2)}
.feat-ic{border-radius:8px;background:var(--brand-dark);color:var(--cyan)}
.feat h3{font-size:17px}

/* ---------- notice board ---------- */
.panel-head button.is-active{border-bottom-color:var(--cyan-ink);color:var(--ink)}
.date-chip{background:var(--brand-dark);border-color:var(--brand-dark);border-radius:6px}
.date-chip b{color:var(--cyan)}
.date-chip span{color:#94a3b8}
.notice-body a:hover{color:var(--cyan-ink)}
.event-mini:hover{border-color:var(--cyan-ink)}
.dl-item:hover{border-color:var(--cyan-ink)}
.dl-ic{border-radius:6px}
.dl-item svg{stroke:var(--cyan-ink)}

/* ---------- message ---------- */
.msg-portrait{border-radius:12px}
.msg-name{background:var(--brand-dark);border-bottom:3px solid var(--cyan);border-radius:10px}
.msg-name span{color:#94a3b8}
.msg-quote{border-left:3px solid var(--cyan-ink);font-weight:500;color:var(--ink)}
.avatar{border-radius:8px;background:linear-gradient(135deg,var(--brand),var(--cyan-ink))}

/* ---------- placement & gallery ---------- */
.place-num:hover{border-color:var(--cyan-ink);box-shadow:var(--shadow-2)}
.place-num b{color:var(--ink)}
.rlogo{border-radius:6px;font-weight:600}
.rlogo:hover{border-color:var(--cyan-ink);color:var(--cyan-ink)}
.gal{border-radius:10px}
.gal::after{background:linear-gradient(180deg,transparent 42%,rgba(11,16,32,.9))}
.gal figcaption em{color:var(--cyan)}
.lb-art{border-radius:12px}
.lb-close,.lb-nav{border-radius:8px}

/* ---------- testimonials, press, chips ---------- */
.quote-mark{color:var(--cyan-ink);opacity:.5}
.tst blockquote{font-weight:500;letter-spacing:-.01em}
.tst-dots button.is-active{background:var(--cyan-ink)}
.press a:hover{border-color:var(--cyan-ink);box-shadow:none}
.press-src{color:var(--cyan-ink)}
.chip{border-radius:6px}
.chip:hover{border-color:var(--cyan-ink);color:var(--cyan-ink);background:#fff}

/* ---------- call to action ---------- */
.cta{background:var(--brand-dark)}
.cta::before{background:radial-gradient(circle,var(--glow),transparent 70%);width:520px;height:520px;right:-120px;top:-160px}
.cta::after{display:none}
.cta p{color:#a5b4c8}
.cta .btn-accent{background:var(--cyan);color:#062a33}
.cta .btn-accent:hover{background:#a5f3fc}
.cta .btn-outline{border-color:rgba(255,255,255,.4)}

/* ---------- inner pages ---------- */
.phero{background:var(--brand-dark);border-bottom:2px solid var(--cyan)}
.phero::after{background:linear-gradient(95deg,rgba(11,16,32,.96),rgba(11,16,32,.6) 70%,rgba(14,116,144,.4))}
.phero .container{padding-block:clamp(52px,6.5vw,84px)}
.phero h1{font-size:clamp(30px,4.2vw,50px)}
.phero p{color:#a5b4c8}
.crumbs{color:#94a3b8}
.crumbs a{color:#cbd5e1}
.crumbs a:hover{color:var(--cyan)}
.phero-program .pill-lg{border-radius:6px;background:rgba(255,255,255,.06);border-color:var(--dark-line)}
.phero-program .pill-lg small{color:#94a3b8}
.side-nav h4{background:var(--brand-dark);letter-spacing:.14em}
.side-nav a:hover,.side-nav a.is-active{border-left-color:var(--cyan-ink);color:var(--cyan-ink);background:var(--surface-2)}
.side-card{background:var(--brand-dark);border-bottom:3px solid var(--cyan);color:#a5b4c8}
.side-card p{color:#94a3b8}
.side-help{border-top-color:var(--dark-line)}
.side-help svg{stroke:var(--cyan)}
.prose > h2::after,.page-body .sec-head h2::after{background:var(--cyan-ink)}
.prose ul li::before,.bullets li::before{background:var(--cyan-ink);border-radius:1px}
.fig figcaption{border-left-color:var(--cyan-ink)}
.fig-art{border-radius:12px}
.fac-item{border-radius:10px}
.fac-item h4{color:var(--cyan-ink)}
.doc-list li{border-radius:6px}
.doc-list li:hover{border-color:var(--cyan-ink)}
.data-table th{background:var(--brand-dark);letter-spacing:.09em}
.data-table tbody tr:hover{background:var(--surface-2)}
.pill{border-radius:4px}
.acc-item.is-open{border-color:var(--cyan-ink)}
.acc-ic{border-radius:6px}
.acc-item.is-open .acc-ic{background:var(--cyan-ink);color:#fff}
.acc-meta b{color:var(--cyan-ink)}
.dept-tags span{border-radius:4px}
.step-num{border-radius:8px;border-color:var(--cyan-ink);color:var(--cyan-ink)}
.step:hover .step-num{background:var(--cyan-ink);color:#fff}
.fcard:hover{border-color:var(--cyan-ink)}
.fcard .avatar{border-radius:8px}
.fcard .role{color:var(--cyan-ink)}
.field input,.field select,.field textarea{border-radius:6px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cyan-ink);box-shadow:0 0 0 3px var(--cyan-tint)}
.form-ok{border-radius:6px}
.ccard:hover{border-color:var(--cyan-ink)}
.ccard .card-ic{background:var(--brand-dark);color:var(--cyan)}
.filterbar select,.filterbar input{border-radius:6px}
.filterbar select:focus,.filterbar input:focus{border-color:var(--cyan-ink)}
.pager button{border-radius:6px}
.pager button:hover:not(:disabled){border-color:var(--cyan-ink);color:var(--cyan-ink)}
.pager button.is-active{background:var(--brand);border-color:var(--brand)}

/* ---------- footer ---------- */
.footer{background:var(--brand-dark);color:#94a3b8;border-top:1px solid var(--dark-line);position:relative;overflow:hidden}
.footer::before{content:'';position:absolute;left:50%;top:-220px;transform:translateX(-50%);width:900px;height:360px;border-radius:50%;background:var(--glow);filter:blur(110px)}
.footer .container{position:relative}
.footer h4{border-bottom-color:var(--dark-line)}
.footer h4::after{background:var(--cyan)}
.footer a{color:#94a3b8}
.footer a:hover{color:var(--cyan)}
.f-links a::before{color:var(--cyan)}
.f-brand span{color:#64748b}
.f-about p{color:#94a3b8}
.f-contact svg{stroke:var(--cyan)}
.f-social a{border-radius:8px;background:rgba(255,255,255,.06)}
.f-social a:hover{background:var(--cyan);color:#062a33}
.f-bottom{border-top-color:var(--dark-line);color:#64748b}
.f-bottom strong{color:var(--cyan)}
.rail{display:none}
.totop{border-radius:8px;background:var(--brand-dark);border:1px solid var(--dark-line)}

@media (max-width:1180px){ .quick-item{border-bottom-color:var(--dark-line)} }
@media (max-width:1024px){ .split-art::after{display:none} }
@media (max-width:860px){
  .hero::before{display:none}
  .quick{margin-top:0}
  .quick-grid{border-radius:0;border-inline:0}
  /* the mobile drawer is white — put dark text back */
  .nav-item > a{color:var(--ink)}
  .nav-item:hover > a,.nav-item.is-active > a{background:var(--surface-2);color:var(--brand)}
  .drop,.mega{background:var(--surface-2);border:0;border-top:0;box-shadow:none}
  .drop a,.mega-col a{color:#334155}
  .drop a:hover,.mega-col a:hover{color:var(--ink);background:transparent}
  .mega-col h4{color:var(--cyan-ink)}
  .mega-promo{background:var(--brand-dark);border:0}
  .searchbar{background:#fff;border-bottom-color:var(--line)}
  .searchbar input{background:#fff;color:var(--ink);border-color:var(--line)}
}
