/* ═══ School Innovation Projects browser ═══
   Loaded only on the School Solutions page. Uses the theme's existing
   custom properties so it stays in step with the site palette. */

.npb-stats{
  display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:0 0 34px;
}
.npb-stat{
  background:var(--card,#fff);border:1.5px solid var(--border,#CBD5E1);
  border-radius:16px;padding:14px 26px;text-align:center;min-width:132px;
}
.npb-stat b{
  display:block;font-family:'Poppins',sans-serif;font-weight:800;
  font-size:1.5rem;color:var(--royal,#1E5EFF);line-height:1.1;
}
.npb-stat span{font-size:.74rem;color:#64748B;font-weight:600;}

.npb-intro{text-align:center;margin:0 0 34px;}
.npb-tagline{
  font-family:'Poppins',sans-serif;font-weight:800;
  font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.25;
  color:var(--navy,#0B1F3A);margin:0;
  background:var(--grad2,linear-gradient(135deg,#1E5EFF,#00D4FF));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
/* Fallback for engines that ignore background-clip on text. */
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .npb-tagline{color:var(--royal,#1E5EFF);-webkit-text-fill-color:currentColor;}
}

.npb-step{
  font-family:'Poppins',sans-serif;font-weight:700;font-size:1rem;
  color:var(--navy,#0B1F3A);margin:0 0 16px;
}

.npb-sub{
  max-width:660px;margin:12px auto 0;color:#64748B;font-size:.9rem;line-height:1.7;
}

/* ── category rows: icon left, title right, laid out three across ── */
.npb-rows{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.npb-row{
  all:unset;box-sizing:border-box;cursor:pointer;width:100%;height:100%;
  display:flex;align-items:center;gap:14px;
  background:var(--card,#fff);border:1.5px solid var(--border,#CBD5E1);
  border-radius:16px;padding:15px 16px;transition:.25s;
}
.npb-row:hover{
  border-color:var(--royal,#1E5EFF);
  box-shadow:0 10px 26px rgba(30,94,255,.12);transform:translateY(-2px);
}
.npb-row:focus-visible{outline:2px solid var(--cyan,#00D4FF);outline-offset:2px;}
.npb-row-icon{
  flex:none;width:46px;height:46px;border-radius:13px;
  display:flex;align-items:center;justify-content:center;font-size:1.45rem;
  background:linear-gradient(135deg,rgba(30,94,255,.10),rgba(0,212,255,.10));
  border:1px solid rgba(30,94,255,.16);
}
.npb-row-title{
  flex:1;min-width:0;
  font-family:'Poppins',sans-serif;font-weight:700;font-size:.88rem;
  color:var(--navy,#0B1F3A);line-height:1.35;
}
.npb-row:hover .npb-row-title{color:var(--royal,#1E5EFF);}

@media(max-width:900px){
  .npb-rows{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:600px){
  .npb-rows{grid-template-columns:1fr;}
  .npb-row{gap:13px;padding:13px 15px;}
  .npb-row-icon{width:44px;height:44px;font-size:1.35rem;border-radius:12px;}
}
@media(prefers-reduced-motion:reduce){
  .npb-row{transition:none;}
  .npb-row:hover{transform:none;}
  .npb-row-arrow{opacity:1;transform:none;}
}

/* ── breadcrumb ── */
.npb-crumb{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;
  font-size:.8rem;
}
.npb-back{
  all:unset;cursor:pointer;color:var(--royal,#1E5EFF);font-weight:600;
  padding:5px 11px;border-radius:50px;transition:.2s;font-size:.8rem;
}
.npb-back:hover{background:rgba(30,94,255,.08);}
.npb-back:focus-visible{outline:2px solid var(--cyan,#00D4FF);outline-offset:2px;}
.npb-crumb-current{color:#64748B;font-weight:600;}

/* ── grids ── */
.npb-grid{display:grid;gap:14px;}
.npb-grid-themes{grid-template-columns:repeat(3,1fr);}
.npb-grid-subs{grid-template-columns:repeat(3,1fr);}
.npb-grid-projects{grid-template-columns:repeat(3,1fr);}

/* ── cards ── */
.npb-card{
  all:unset;box-sizing:border-box;cursor:pointer;display:flex;
  flex-direction:column;gap:6px;height:100%;
  background:var(--card,#fff);border:1.5px solid var(--border,#CBD5E1);
  border-radius:16px;padding:18px 18px 16px;transition:.25s;
}
.npb-card:hover{
  border-color:var(--royal,#1E5EFF);
  box-shadow:0 10px 28px rgba(30,94,255,.13);transform:translateY(-2px);
}
.npb-card:focus-visible{outline:2px solid var(--cyan,#00D4FF);outline-offset:2px;}
.npb-icon{font-size:1.8rem;line-height:1;margin-bottom:4px;}
.npb-card-title{
  font-family:'Poppins',sans-serif;font-weight:700;font-size:.9rem;
  color:var(--navy,#0B1F3A);line-height:1.35;
}
.npb-card-meta{font-size:.73rem;color:#64748B;font-weight:600;}
.npb-card-more{
  margin-top:auto;padding-top:8px;font-size:.74rem;font-weight:700;
  color:var(--royal,#1E5EFF);
}
.npb-project-card .npb-card-title{font-size:.85rem;}

.npb-loading,.npb-error,.npb-empty{
  text-align:center;color:#64748B;font-size:.85rem;padding:26px 0;
}
.npb-error{color:#B91C1C;}

/* ── modal ── */
.npb-modal{position:fixed;inset:0;z-index:9999;display:flex;
  align-items:center;justify-content:center;padding:20px;}
.npb-modal[hidden]{display:none;}
.npb-modal-backdrop{position:absolute;inset:0;background:rgba(8,21,38,.62);
  backdrop-filter:blur(3px);}
.npb-modal-box{
  position:relative;background:#fff;border-radius:22px;max-width:640px;width:100%;
  max-height:86vh;overflow-y:auto;padding:34px 34px 28px;
  box-shadow:0 30px 80px rgba(8,21,38,.35);
}
.npb-modal-x{
  all:unset;cursor:pointer;position:absolute;top:14px;right:18px;
  font-size:1.7rem;line-height:1;color:#94A3B8;padding:4px 10px;border-radius:8px;
}
.npb-modal-x:hover{color:var(--navy,#0B1F3A);background:#F1F5F9;}
.npb-modal-x:focus-visible{outline:2px solid var(--cyan,#00D4FF);outline-offset:2px;}
.npb-modal-eyebrow{
  display:block;font-size:.7rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--royal,#1E5EFF);margin-bottom:8px;
}
.npb-modal-box h3{
  font-family:'Poppins',sans-serif;font-weight:800;font-size:1.25rem;
  color:var(--navy,#0B1F3A);line-height:1.3;margin:0 0 12px;
}
.npb-modal-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.npb-tag{
  font-size:.7rem;font-weight:700;padding:5px 12px;border-radius:50px;
  background:rgba(30,94,255,.09);color:var(--royal,#1E5EFF);
}
.npb-tag-code{background:#F1F5F9;color:#64748B;}
.npb-modal-abstract{
  font-size:.87rem;line-height:1.75;color:#475569;margin:0 0 22px;
}
.npb-modal-acts{display:flex;gap:10px;flex-wrap:wrap;}
body.npb-locked{overflow:hidden;}

/* ── enquiry form inside the dialog ── */
.npb-form-selected{
  background:linear-gradient(135deg,rgba(30,94,255,.07),rgba(0,212,255,.07));
  border:1.5px solid rgba(30,94,255,.22);border-radius:14px;
  padding:13px 17px;margin-bottom:18px;font-size:.83rem;color:#475569;
}
.npb-form-selected b{color:var(--navy,#0B1F3A);}
#npb-view-form .npb-back{margin:0 0 12px;padding-left:0;}
#npb-view-form .cf-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;
}
#npb-view-form .cf-grid .s2{grid-column:1 / -1;}
#npb-view-form .ff{display:flex;flex-direction:column;gap:5px;}
#npb-view-form .ff label{
  font-size:.76rem;font-weight:700;color:var(--navy,#0B1F3A);
}
#npb-view-form .ff label b{color:#DC2626;}
#npb-view-form .ff small{font-weight:500;color:#94A3B8;}
/* Text fields only — the submit is a button and is styled below. */
#npb-view-form input:not([type="submit"]),
#npb-view-form textarea{
  width:100%;box-sizing:border-box;padding:10px 12px;
  border:1.5px solid var(--border,#CBD5E1);border-radius:10px;
  font-family:'Inter',sans-serif;font-size:.84rem;
  background:var(--bg,#F8FAFC);color:var(--navy,#0B1F3A);outline:none;
}
#npb-view-form input:not([type="submit"]):focus,
#npb-view-form textarea:focus{
  border-color:var(--royal,#1E5EFF);background:#fff;
}

/* Submit — the gradient pill used by the site's primary buttons. */
#npb-view-form .nrd-submit-row{
  display:flex;justify-content:center;margin-top:18px;
}
#npb-view-form input[type="submit"],
#npb-view-form .wpcf7-submit{
  width:auto;min-width:250px;
  padding:14px 34px;border:0;border-radius:50px;cursor:pointer;
  font-family:'Poppins',sans-serif;font-weight:600;font-size:.92rem;
  background:var(--grad2,linear-gradient(135deg,#1E5EFF,#00D4FF));
  color:#fff;box-shadow:0 8px 26px rgba(30,94,255,.36);
  transition:.3s cubic-bezier(.34,1.56,.64,1);
  -webkit-appearance:none;appearance:none;
}
#npb-view-form input[type="submit"]:hover,
#npb-view-form .wpcf7-submit:hover{
  transform:translateY(-3px);box-shadow:0 16px 38px rgba(30,94,255,.46);
}
#npb-view-form input[type="submit"]:active{transform:translateY(0);}
#npb-view-form input[type="submit"]:focus-visible{
  outline:2px solid var(--cyan,#00D4FF);outline-offset:3px;
}
/* CF7 shows a spinner beside the button while sending. */
#npb-view-form .wpcf7-spinner{margin:0 0 0 10px;align-self:center;}

@media(max-width:600px){
  #npb-view-form input[type="submit"],
  #npb-view-form .wpcf7-submit{width:100%;min-width:0;}
}
@media(prefers-reduced-motion:reduce){
  #npb-view-form input[type="submit"]{transition:none;}
  #npb-view-form input[type="submit"]:hover{transform:none;}
}
#npb-view-form .wpcf7-not-valid-tip{font-size:.72rem;color:#DC2626;}
#npb-view-form .wpcf7-response-output{
  margin:14px 0 0;padding:11px 14px;border-radius:10px;
  font-size:.8rem;border:1.5px solid var(--border,#CBD5E1);
}
@media(max-width:600px){
  #npb-view-form .cf-grid{grid-template-columns:1fr;}
}

/* ── responsive ── */
@media(max-width:900px){
  .npb-grid-themes,.npb-grid-subs,.npb-grid-projects{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:600px){
  .npb-grid-themes,.npb-grid-subs,.npb-grid-projects{grid-template-columns:1fr;}
  .npb-modal-box{padding:28px 20px 22px;border-radius:18px;}
  .npb-stat{min-width:104px;padding:12px 18px;}
}
@media(prefers-reduced-motion:reduce){
  .npb-card{transition:none;}
  .npb-card:hover{transform:none;}
}



/* ═══ Featured work (Projects page) ═══
   Ten cards — two from each of five disciplines — all visible at once. */
.nrdl-sp{background:var(--navy);position:relative;overflow:hidden;}
.nrdl-sp-dots{
  position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(0,212,255,.07) 1px,transparent 1px);
  background-size:30px 30px;
}
.nrdl-sp .container{position:relative;z-index:1;}

.nrdl-sp-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:28px;}
.nrdl-sp-tab{
  all:unset;cursor:pointer;padding:9px 20px;border-radius:50px;
  font-family:'Inter',sans-serif;font-weight:600;font-size:.84rem;
  color:rgba(255,255,255,.6);border:1.5px solid rgba(255,255,255,.14);transition:.25s;
}
.nrdl-sp-tab:hover{color:#fff;border-color:rgba(255,255,255,.32);}
.nrdl-sp-tab.is-on{
  background:var(--grad2);color:#fff;border-color:transparent;
  box-shadow:0 8px 22px rgba(30,94,255,.32);
}
.nrdl-sp-tab:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;}

.nrdl-sp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.nrdl-sp-pane:not([hidden]) .nrdl-sp-grid{animation:nrdlSpIn .34s cubic-bezier(.16,1,.3,1);}
@keyframes nrdlSpIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}

.nrdl-sp-card{
  display:flex;flex-direction:column;gap:7px;height:100%;text-decoration:none;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);
  border-radius:18px;padding:18px;transition:.28s;
}
.nrdl-sp-card:hover{
  background:rgba(30,94,255,.15);border-color:rgba(0,212,255,.42);
  transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.34);
}
.nrdl-sp-card:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;}
.nrdl-sp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px;}
.nrdl-sp-ico{
  width:40px;height:40px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;font-size:1.25rem;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);
  transition:.28s;
}
.nrdl-sp-card:hover .nrdl-sp-ico{background:rgba(0,212,255,.14);border-color:rgba(0,212,255,.3);}
.nrdl-sp-rank{
  font-family:'Poppins',sans-serif;font-weight:800;font-size:1.15rem;
  color:rgba(0,212,255,.28);transition:.28s;
}
.nrdl-sp-card:hover .nrdl-sp-rank{color:var(--cyan);}
.nrdl-sp-sub{
  font-size:.63rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--cyan);line-height:1.4;
}
.nrdl-sp-title{
  font-family:'Poppins',sans-serif;font-weight:700;font-size:.85rem;
  color:#fff;line-height:1.35;
}
.nrdl-sp-abs{font-size:.74rem;color:rgba(255,255,255,.52);line-height:1.55;}
.nrdl-sp-go{
  margin-top:auto;padding-top:10px;font-size:.73rem;font-weight:700;
  color:rgba(255,255,255,.42);transition:.28s;
}
.nrdl-sp-card:hover .nrdl-sp-go{color:var(--cyan);}
.nrdl-sp-foot{text-align:center;margin-top:26px;}

/* a deep-linked project is ringed when the browser opens it */
.npb-project-card.is-target{
  border-color:var(--cyan,#00D4FF);
  box-shadow:0 0 0 3px rgba(0,212,255,.25);
}

@media(max-width:1200px){.nrdl-sp-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:820px){.nrdl-sp-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.nrdl-sp-grid{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){
  .nrdl-sp-card{transition:none;}
  .nrdl-sp-card:hover{transform:none;}
  .nrdl-sp-pane:not([hidden]) .nrdl-sp-grid{animation:none;}
}
