/* NavDU content styles — built on the WIUT (lt_university) template palette */
:root{
  --nsu-primary:#0b459f;
  --nsu-dark:#071e33;
  --nsu-accent:#4dace1;
  --nsu-btn:#264f9d;
  --nsu-light:#f4f7fb;
  --nsu-border:#e4e9f2;
  --nsu-text:#1d2733;
  --nsu-muted:#5a6b7d;
}

/* ---------------------------------------------------------- page hero */
.nsu-page-hero{
  position:relative;
  background:var(--nsu-dark);
  background-size:cover;
  background-position:center;
  padding:0;
}
.nsu-page-hero.has-bg::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(7,30,51,.92) 0%,rgba(7,30,51,.75) 55%,rgba(7,30,51,.55) 100%);
}
.nsu-hero-inner{position:relative;z-index:2;padding:70px 0 60px;max-width:900px}
.nsu-page-hero h1{
  color:#fff;margin:0;font-size:44px;line-height:1.15;font-weight:700;letter-spacing:.2px;
}
.nsu-hero-sub{color:rgba(255,255,255,.85);font-size:18px;line-height:1.6;margin:16px 0 0;max-width:760px}
.nsu-crumbs{font-size:13px;color:rgba(255,255,255,.7);margin-bottom:18px;letter-spacing:.4px;text-transform:uppercase}
.nsu-crumbs a{color:rgba(255,255,255,.7);text-decoration:none}
.nsu-crumbs a:hover{color:#fff}
.nsu-crumbs .sep{opacity:.5;margin:0 4px}
.nsu-crumbs span:not(.sep){color:var(--nsu-accent)}

/* ---------------------------------------------------------- sections */
.nsu-inner #sp-main-body .sppb-section{padding:56px 0}
.nsu-inner #sp-main-body .sppb-section.nsu-alt{background:var(--nsu-light)}
.nsu-inner #sp-main-body .sppb-addon-title{
  color:var(--nsu-primary);font-size:30px;font-weight:700;margin:0 0 22px;line-height:1.25;
}
.nsu-inner #sp-main-body .sppb-addon-content{color:var(--nsu-text);font-size:16px;line-height:1.75}
.nsu-inner #sp-main-body .sppb-addon-content p{margin:0 0 16px}
h4.nsu-sub,h5.nsu-sub{
  color:var(--nsu-dark);font-weight:700;margin:28px 0 12px;font-size:20px;line-height:1.35;
}
h5.nsu-sub{font-size:17px}

/* ---------------------------------------------------------- lists */
.nsu-list{list-style:none;margin:0 0 20px;padding:0}
.nsu-list li{
  position:relative;padding:12px 0 12px 28px;border-bottom:1px solid var(--nsu-border);
}
.nsu-list li:last-child{border-bottom:0}
.nsu-list li::before{
  content:"";position:absolute;left:4px;top:20px;width:8px;height:8px;border-radius:50%;
  background:var(--nsu-accent);
}
.nsu-list li strong{color:var(--nsu-primary);display:block;margin-bottom:2px}
.nsu-list li span{color:var(--nsu-muted)}

/* ---------------------------------------------------------- cards */
.nsu-cards{margin:0 -12px}
.nsu-cards>[class*="col-"]{padding:12px}
.nsu-card{
  height:100%;background:#fff;border:1px solid var(--nsu-border);border-radius:4px;overflow:hidden;
  display:flex;flex-direction:column;transition:box-shadow .25s ease,transform .25s ease;
}
.nsu-card:hover{box-shadow:0 12px 30px rgba(7,30,51,.12);transform:translateY(-3px)}
.nsu-card-img{aspect-ratio:16/10;overflow:hidden;background:var(--nsu-light)}
.nsu-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.nsu-card-body{padding:22px}
.nsu-card-body h4{
  color:var(--nsu-primary);font-size:18px;font-weight:700;margin:0 0 10px;line-height:1.35;
}
.nsu-card-body p{color:var(--nsu-muted);font-size:15px;line-height:1.6;margin:0 0 8px}
.nsu-card-body p:last-child{margin-bottom:0}

/* ---------------------------------------------------------- stats */
.nsu-stats{margin:8px -12px 12px}
.nsu-stats>[class*="col-"]{padding:12px}
.nsu-stat{text-align:center;padding:26px 12px;background:#fff;border:1px solid var(--nsu-border);border-radius:4px;height:100%}
.nsu-alt .nsu-stat{background:#fff}
.nsu-stat-num{display:block;font-size:40px;font-weight:700;color:var(--nsu-primary);line-height:1.1}
.nsu-stat-lbl{display:block;margin-top:8px;color:var(--nsu-muted);font-size:15px}

/* ---------------------------------------------------------- misc content */
.nsu-quote{
  border-left:4px solid var(--nsu-accent);background:var(--nsu-light);
  margin:24px 0;padding:22px 26px;font-size:18px;line-height:1.7;color:var(--nsu-dark);font-style:italic;
}
.nsu-figure{margin:8px 0 24px}
.nsu-figure img{width:100%;height:auto;border-radius:4px;display:block}
.nsu-table{width:100%;border:1px solid var(--nsu-border)}
.nsu-table td,.nsu-table th{border:1px solid var(--nsu-border);padding:12px 14px;font-size:15px;vertical-align:top}
.nsu-table tr:first-child td,.nsu-table th{background:var(--nsu-light);font-weight:700;color:var(--nsu-dark)}

/* ---------------------------------------------------------- related links */
.nsu-related{background:var(--nsu-light)}
.nsu-rel-row{margin:0 -8px}
.nsu-rel-row>[class*="col-"]{padding:8px}
.nsu-rel{
  display:flex;align-items:center;justify-content:space-between;gap:12px;height:100%;
  background:#fff;border:1px solid var(--nsu-border);border-radius:4px;padding:16px 18px;
  color:var(--nsu-dark);text-decoration:none;font-weight:600;font-size:15px;transition:.2s;
}
.nsu-rel i{color:var(--nsu-accent);font-size:13px;transition:transform .2s}
.nsu-rel:hover{border-color:var(--nsu-primary);color:var(--nsu-primary)}
.nsu-rel:hover i{transform:translateX(4px)}

/* ---------------------------------------------------------- CTA */
.nsu-cta-sec{background:var(--nsu-dark)}
.nsu-cta{text-align:center;padding:10px 0}
.nsu-cta h3{color:#fff;font-size:32px;font-weight:700;margin:0 0 12px}
.nsu-cta p{color:rgba(255,255,255,.8);font-size:17px;margin:0 auto 26px;max-width:640px}
.nsu-cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.nsu-btn{
  display:inline-block;padding:13px 30px;border-radius:3px;font-weight:600;font-size:15px;
  text-decoration:none;transition:.2s;border:1px solid transparent;
}
.nsu-btn-primary{background:var(--nsu-btn);color:#fff}
.nsu-btn-primary:hover{background:var(--nsu-accent);color:#fff}
.nsu-btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.nsu-btn-ghost:hover{background:#fff;color:var(--nsu-dark)}

/* ---------------------------------------------------------- news grid */
.nsu-news-grid{margin:0 -12px}
.nsu-news-grid>[class*="col-"]{padding:12px}
.nsu-news-card{
  display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--nsu-border);
  border-radius:4px;overflow:hidden;text-decoration:none;transition:box-shadow .25s,transform .25s;
}
.nsu-news-card:hover{box-shadow:0 12px 30px rgba(7,30,51,.12);transform:translateY(-3px)}
.nsu-news-img{aspect-ratio:16/10;overflow:hidden}
.nsu-news-img img{width:100%;height:100%;object-fit:cover;display:block}
.nsu-news-body{padding:20px}
.nsu-news-tag{
  display:inline-block;font-size:12px;letter-spacing:1px;color:var(--nsu-accent);font-weight:700;margin-bottom:8px;
}
.nsu-news-body h4{color:var(--nsu-primary);font-size:17px;font-weight:700;margin:0 0 8px;line-height:1.4}
.nsu-news-body p{color:var(--nsu-muted);font-size:14px;line-height:1.6;margin:0}

/* ---------------------------------------------------------- news post */
.nsu-post-meta{position:relative;z-index:2;margin:14px 0 0;font-size:14px;color:rgba(255,255,255,.8);letter-spacing:.3px}
.nsu-post-meta .nsu-post-date+.nsu-post-views::before{content:"\00b7";margin:0 10px;opacity:.6}
.nsu-post-body{font-size:17px;line-height:1.75;color:var(--nsu-text);max-width:860px}
.nsu-post-body p{margin:0 0 18px}
.nsu-post-body h2,.nsu-post-body h3{color:var(--nsu-primary);font-weight:700;line-height:1.3;margin:32px 0 14px}
.nsu-post-body h2{font-size:26px}
.nsu-post-body h3{font-size:21px}
.nsu-post-body ul,.nsu-post-body ol{margin:0 0 18px 22px;padding:0}
.nsu-post-body li{margin:0 0 6px}
.nsu-post-body blockquote{margin:24px 0;padding:14px 20px;border-left:4px solid var(--nsu-accent);background:var(--nsu-light);color:var(--nsu-muted)}
.nsu-post-body a{color:var(--nsu-primary);text-decoration:underline}
.nsu-post-body img{display:block;max-width:100%;height:auto;border-radius:4px;margin:24px 0}
.nsu-post-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:36px 0 8px}
.nsu-post-gallery a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px;border:1px solid var(--nsu-border)}
.nsu-post-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.nsu-post-gallery a:hover img{transform:scale(1.04)}

/* ---------------------------------------------------------- footer */
#sp-bottom{background:var(--nsu-dark);color:rgba(255,255,255,.75);padding:60px 0 40px}
.nsu-footer-row{row-gap:32px}
.nsu-foot-logo{width:64px;height:auto;margin-bottom:14px}
.nsu-foot-brand{color:#fff;font-size:18px;font-weight:700;margin:0 0 8px}
.nsu-foot-contact p{margin:0 0 8px;font-size:14px;line-height:1.6}
.nsu-foot-contact a{color:rgba(255,255,255,.8);text-decoration:none}
.nsu-foot-contact a:hover{color:var(--nsu-accent)}
.nsu-foot-contact .fas{color:var(--nsu-accent);width:18px;margin-right:6px}
.nsu-foot-contact .social-icons{list-style:none;display:flex;gap:10px;padding:0;margin:18px 0 0}
.nsu-foot-contact .social-icons a{
  display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.1);color:#fff;
}
.nsu-foot-contact .social-icons a:hover{background:var(--nsu-accent)}
.nsu-foot-title{color:#fff;font-size:14px;font-weight:700;letter-spacing:1px;margin:0 0 14px}
.nsu-foot-list{list-style:none;padding:0;margin:0}
.nsu-foot-list li{margin-bottom:9px}
.nsu-foot-list a{color:rgba(255,255,255,.72);text-decoration:none;font-size:14px}
.nsu-foot-list a:hover{color:var(--nsu-accent)}
#sp-footer{background:#04121f;color:rgba(255,255,255,.55);padding:18px 0;font-size:13px}
#sp-footer .sp-copyright{color:rgba(255,255,255,.55)}

/* ---------------------------------------------------------- offcanvas quick links */
.nsu-oc-quick{padding:0 4px 8px}
.nsu-oc-quick h4{font-size:12px;letter-spacing:1px;color:var(--nsu-muted);margin:0 0 10px}
.nsu-oc-quick a{
  display:block;padding:10px 12px;background:var(--nsu-light);border-radius:3px;
  color:var(--nsu-primary);font-size:12px;font-weight:700;text-decoration:none;text-align:center;
}
.nsu-oc-quick a:hover{background:var(--nsu-accent);color:#fff}

/* ---------------------------------------------------------- responsive */
@media (max-width:1199px){
  .nsu-page-hero h1{font-size:38px}
}
@media (max-width:991px){
  .nsu-inner #sp-main-body .sppb-section{padding:44px 0}
  .nsu-hero-inner{padding:52px 0 46px}
  .nsu-page-hero h1{font-size:32px}
  .nsu-hero-sub{font-size:16px}
  .nsu-inner #sp-main-body .sppb-addon-title{font-size:25px}
  .nsu-cta h3{font-size:26px}
  .nsu-stat-num{font-size:32px}
}
@media (max-width:767px){
  .nsu-inner #sp-main-body .sppb-section{padding:36px 0}
  .nsu-hero-inner{padding:40px 0 34px}
  .nsu-page-hero h1{font-size:26px}
  .nsu-crumbs{font-size:11px}
  .nsu-inner #sp-main-body .sppb-addon-title{font-size:22px}
  h4.nsu-sub{font-size:18px}
  .nsu-inner #sp-main-body .sppb-addon-content{font-size:15px}
  .nsu-cta h3{font-size:22px}
  .nsu-cta p{font-size:15px}
  .nsu-btn{padding:12px 22px;font-size:14px}
  #sp-bottom{padding:44px 0 28px}
}

/* ---------------------------------------------------------- home: partner tiles */
.nsu-partner{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  height:120px;padding:16px;background:#fff;border:1px solid var(--nsu-border);border-radius:4px;
  text-align:center;transition:.2s;
}
.nsu-partner:hover{border-color:var(--nsu-primary);box-shadow:0 8px 22px rgba(7,30,51,.1)}
.nsu-partner span{
  display:block;font-size:14px;font-weight:700;color:var(--nsu-primary);line-height:1.35;
}
.nsu-partner small{display:block;font-size:12px;color:var(--nsu-muted)}
.sppb-carousel-extended-item a{text-decoration:none}

/* ---------------------------------------------------------- home: careers band */
#section-id-8NRmDSVfMdJu9ynYsykyE .sppb-addon-title,
#section-id-8NRmDSVfMdJu9ynYsykyE .sppb-addon-content,
#section-id-8NRmDSVfMdJu9ynYsykyE p{color:#fff !important}
#section-id-8NRmDSVfMdJu9ynYsykyE::before{
  content:"";position:absolute;inset:0;background:rgba(7,30,51,.55);pointer-events:none;
}
#section-id-8NRmDSVfMdJu9ynYsykyE{position:relative}
#section-id-8NRmDSVfMdJu9ynYsykyE .sppb-row-container{position:relative;z-index:2}

/* ---------------------------------------------------------- home: faculties grid */
a.nsu-card-link{text-decoration:none;color:inherit}
#section-id-1697795874370 .nsu-cards{margin-top:8px}

/* careers band: NavDU photo + readable overlay */
#section-id-8NRmDSVfMdJu9ynYsykyE{
  background-image:url(../../images/nsu/news/graduation.jpg) !important;
  background-size:cover !important;background-position:center !important;
}
#section-id-8NRmDSVfMdJu9ynYsykyE .sppb-row-overlay{
  background:linear-gradient(90deg,rgba(7,30,51,.9) 0%,rgba(7,30,51,.55) 60%,rgba(7,30,51,.35) 100%) !important;
}

/* ==========================================================================
   Home page fixes (template quirks that surfaced with NavDU content)
   ========================================================================== */

/* Slider pagination duplicated the slide titles next to the arrow as pale,
   half-legible captions. With two slides and working arrows it adds nothing. */
.sp-slider-custom-dot-indecators{display:none !important}

/* Decorative watermark behind the hero. The template sized it at 250px with
   !important and pulled it left by up to 120px, so on narrower screens the
   word ran off the edge and the U wrapped onto a second line. Scale it with
   the viewport, keep it on one line, and start it at the content edge. */
.sppb-sp-slider-text.number-heading,
.sppb-sp-slider-text.number-heading p,
#sppb-addon-W1mbff-sKIl91D-Pqq_YY .pitech-slider .number-heading{
  white-space:nowrap !important;
  font-size:clamp(46px, 9.5vw, 150px) !important;
  line-height:1.06 !important;
  left:0 !important;
  top:-.62em !important;
}

/* Rector card: the name wraps to two lines, and the designation had a 14px
   line-height on 18px text, so it collided with the name above it. */
.sppb-person-information{padding-top:6px}
.sppb-person-name{display:block;line-height:1.3 !important;margin-bottom:10px}
.sppb-person-designation{
  display:block;
  font-size:16px !important;
  line-height:1.55 !important;
  opacity:.9;
}

/* News carousel sat in a 2/3-width column, leaving a third of the row empty. */
@media (min-width:1200px){
  #column-wrap-id-3tytuIrDOkcJOkRj3X5k8{max-width:100% !important;flex-basis:100% !important}
}


/* ==========================================================================
   Header: slim, single-row, flexible
   ========================================================================== */

/* The template hard-codes 110px on the header AND on every box inside it -
   the logo column, the menu wrapper, the menu list and each menu link (whose
   line-height does the vertical centring). Shrinking only #sp-header left the
   logo centred in a 110px column that hung 13px below the bar. Drive them all
   from one value. */
:root{--nsu-header-h:64px}

#sp-header,
#sp-header > div > div > div,
#sp-header .container,
#sp-header .container-inner,
#sp-header .row,
#sp-header .row > [class*="col-"],
#sp-header .sp-column,
#sp-header .logo,
#sp-header .sp-megamenu-wrapper,
#sp-header .sp-megamenu-parent,
#sp-header .sp-megamenu-parent > li,
#sp-header .sp-megamenu-parent > li > a{
  height:var(--nsu-header-h) !important;
  min-height:0 !important;
}
#sp-header .sp-megamenu-parent > li > a{line-height:var(--nsu-header-h) !important}
#sp-header .row,
#sp-header .row > [class*="col-"],
#sp-header .sp-column,
#sp-header .logo{display:flex !important;align-items:center}
/* Turning the columns into flex containers made the menu column shrink to its
   content and sit next to the logo; let it span the row so the menu keeps its
   right alignment next to the burger. */
#sp-header .row > .flex-auto{flex:1 1 auto}
#sp-header .row > [class*="col-"] > .sp-column{flex:1 1 auto}
#sp-header .sp-column.justify-content-end{justify-content:flex-end !important}
#sp-header .row > .col-auto:first-child,
#sp-header .row > .col-auto:first-child > .sp-column{flex:0 0 auto}
#sp-header .logo img,
#sp-header .logo-image,
#sp-header .logo-image-phone{
  max-height:calc(var(--nsu-header-h) - 20px) !important;
  height:calc(var(--nsu-header-h) - 20px) !important;
  width:auto !important;
}
#sp-header .burger-icon{margin:0}
.sp-megamenu-parent > li > a{font-size:14px;padding:0 11px}

/* Top bar: one row at every width. The two columns were col-lg-6, so the
   right-hand list ran out of room and dropped EN (and below 992px the whole
   thing stacked into three rows). Let both columns take just what they need. */
#sp-top-bar{padding:0 !important;font-size:13px}
#sp-top-bar .row{flex-wrap:nowrap !important;align-items:center;min-height:36px}
#sp-top-bar #sp-top1,
#sp-top-bar #sp-top2{
  flex:0 1 auto !important;
  width:auto !important;
  max-width:none !important;
}
#sp-top-bar #sp-top2{margin-left:auto}
#sp-top-bar .sp-column{display:flex;align-items:center;gap:14px;text-align:left !important}
#sp-top-bar .sp-module{margin:0}
#sp-top-bar .social-icons{display:flex;align-items:center;gap:10px;margin:0;padding:0;list-style:none}
#sp-top-bar .social-icons li{margin:0}
#sp-top-bar .mod-menu{
  display:flex;
  flex-wrap:nowrap !important;
  align-items:center;
  gap:12px;
  white-space:nowrap;
  margin:0;
}
#sp-top-bar .mod-menu li{margin:0}
#sp-top-bar .top-header-phone{white-space:nowrap;margin:0}

/* Language switch reads as one group rather than three loose links. */
#sp-top-bar .mod-menu li:nth-last-child(3),
#sp-top-bar .mod-menu li:nth-last-child(2),
#sp-top-bar .mod-menu li:nth-last-child(1){margin-left:0}
#sp-top-bar .mod-menu li:nth-last-child(3){
  margin-left:6px;
  padding-left:14px;
  border-left:1px solid rgba(11,69,159,.25);
}
#sp-top-bar .mod-menu li:nth-last-child(2),
#sp-top-bar .mod-menu li:nth-last-child(1){margin-left:-4px}

/* Shed the least important links before anything can wrap. */
@media (max-width:1399px){
  #sp-top-bar{font-size:12.5px}
  #sp-top-bar .mod-menu{gap:10px}
  .sp-megamenu-parent > li > a{font-size:13px;padding:0 9px}
}
@media (max-width:1199px){
  #sp-top-bar .mod-menu li:nth-child(3){display:none}
}
@media (max-width:1099px){
  #sp-top-bar .mod-menu li:nth-child(2){display:none}
}
/* Below 1200px the nine top-level items no longer fit next to the logo and
   the menu dropped onto a second line inside the bar. The burger is always
   present, so hand navigation over to the off-canvas menu instead. */
@media (max-width:1199.98px){
  #sp-header .sp-megamenu-parent{display:none !important}
}
@media (max-width:991px){
  #sp-top-bar .social-icons{display:none}
  :root{--nsu-header-h:58px}
}
@media (max-width:575px){
  #sp-top-bar{display:none}
}

/* ==========================================================================
   Hero video
   ========================================================================== */
.sp-item .nsu-hero-media{
  position:absolute;
  inset:0;
  z-index:1;
  overflow:hidden;
  pointer-events:none;
}
.sp-item .nsu-hero-video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
/* The still background carried the template's dark tint; the video sits on top
   of it, so it needs its own scrim to keep the headline readable. */
.sp-item .nsu-hero-scrim{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,
    rgba(7,30,51,.78) 0%,
    rgba(7,30,51,.55) 45%,
    rgba(7,30,51,.38) 100%);
}
.sp-item .sppb-container,
.sp-item .sp-slider-content-align-left{position:relative;z-index:3}
@media (prefers-reduced-motion:reduce){
  .sp-item .nsu-hero-video{display:none}
}

/* Post body: tables + source line */
.nsu-table-wrap{overflow-x:auto;margin:24px 0;-webkit-overflow-scrolling:touch}
.nsu-post-body table{width:100%;min-width:560px;border-collapse:collapse;font-size:15px;line-height:1.55;margin:0}
.nsu-post-body th,.nsu-post-body td{border:1px solid var(--nsu-border);padding:10px 14px;vertical-align:top;text-align:left}
.nsu-post-body th{background:var(--nsu-light);color:var(--nsu-primary);font-weight:700}
.nsu-post-body td:first-child{text-align:center;white-space:nowrap;color:var(--nsu-muted)}
.nsu-post-body .nsu-post-source{margin-top:28px;font-size:14px;color:var(--nsu-muted)}
.nsu-post-body .nsu-nowrap{white-space:nowrap}
