/* =========================================================================
   ВЕСТНИК ГУМАНИТАРНОГО УНИВЕРСИТЕТА — master redesign
   Reproduces the Figma design system on top of the Specia theme.
   Loaded LAST so it overrides the theme defaults by cascade order.
   Design tokens:
     --c-ink     #000000  text / headings / borders
     --c-mint    #44D0A1  primary accent (nav pills, cards, buttons)
     --c-mint-dk #56947F  hover / secondary
     --c-panel   #E7EFF6  light-blue panels (top bar, hero, article cards)
     --c-paper   #FFFFFF  surfaces
   Font: Montserrat (Cyrillic) 500/600/700/800/900
   ========================================================================= */

:root {
  --c-ink: #000000;
  --c-mint: #44d0a1;
  --c-mint-dk: #56947f;
  --c-panel: #e7eff6;
  --c-paper: #ffffff;
  --c-muted: #444b4f;
  --c-purple: #6d28d9; /* primary purple — desktop backdrop gradient */
  --c-purple-dk: #2e1065;
  --content-w: 1310px; /* desktop content column width */
  --radius-card: 20px;
  --radius-hero: 32px;
  --radius-pill: 50px;
  --shell: 1500px;
  --ease: 220ms cubic-bezier(0.4, 0, 0.2, 1);
  --shadow-card: 0 4px 20px rgba(20, 40, 60, 0.06);
  --shadow-pop: 0 10px 34px rgba(20, 40, 60, 0.14);
}

/* -------------------------------------------------------------------------
   Base
   ------------------------------------------------------------------------- */
body.vestnik,
.vestnik body,
body {
  font-family:
    "Montserrat",
    "Open Sans",
    -apple-system,
    Segoe UI,
    Roboto,
    sans-serif;
  color: var(--c-ink);
  background: var(--c-paper);
  font-size: 17px;
  line-height: 1.6;
  letter-spacing: 0;
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
}

.vestnik h1,
.vestnik h2,
.vestnik h3,
.vestnik h4,
.vestnik h5,
.vestnik h6,
.vestnik .section-heading,
.site-content h1,
.site-content h2,
.site-content h3 {
  font-family: "Montserrat", sans-serif;
  color: var(--c-ink);
  font-weight: 800;
  letter-spacing: -0.01em;
}

.vestnik a {
  color: var(--c-mint-dk);
  transition: color var(--ease);
}
.vestnik a:hover {
  color: var(--c-mint);
}

.vestnik-shell {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 40px;
  width: 100%;
}

/* -------------------------------------------------------------------------
   Desktop frame — 1310px centered content column on a futuristic purple
   gradient backdrop. The column (#page.site) holds the whole site (top bar,
   nav, content, footer); everything beyond it reveals the gradient.
   ------------------------------------------------------------------------- */
html {
  background: var(--c-purple-dk);
}
body.vestnik,
body {
  background:
    radial-gradient(
      60% 50% at 12% -8%,
      rgba(168, 85, 247, 0.55),
      transparent 60%
    ),
    radial-gradient(
      55% 45% at 100% 8%,
      rgba(79, 70, 229, 0.5),
      transparent 58%
    ),
    radial-gradient(
      70% 60% at 50% 118%,
      rgba(217, 70, 239, 0.45),
      transparent 62%
    ),
    linear-gradient(155deg, #1b1040 0%, #3a157d 45%, var(--c-purple-dk) 100%);
  background-attachment: fixed;
  background-repeat: no-repeat;
  min-height: 100vh;
}

#page.site {
  max-width: var(--content-w);
  margin: 0 auto;
  background: var(--c-paper);
  width: 100%;
  position: relative;
  z-index: 1;
}

/* Lift the column off the gradient once there are side gutters (desktop). */
@media (min-width: 1280px) {
  #page.site {
    box-shadow: 0 24px 80px rgba(20, 6, 60, 0.45);
  }
}

/* -------------------------------------------------------------------------
   Top bar  — light-blue strip, centered logo, language switcher right
   ------------------------------------------------------------------------- */
.vestnik-topbar {
  background: var(--c-panel);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  position: relative;
  /* Sit above the primary nav (.sticky-nav has z-index:1000) so the open
       language dropdown is not painted behind the menu pills below it. */
  z-index: 1100;
}
.vestnik-topbar .vestnik-shell {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  position: relative;
  padding-top: 8px;
  padding-bottom: 8px;
}
.vestnik-logo {
  display: inline-flex;
  align-items: center;
  line-height: 0;
}
.vestnik-logo img {
  max-height: 44px;
  width: auto;
  display: block;
}
.vestnik-logo .vestnik-logo-text {
  font-weight: 800;
  font-size: 20px;
  color: var(--c-ink);
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.vestnik-logo .vestnik-logo-text b {
  color: var(--c-mint);
}

/* -------------------------------------------------------------------------
   Language switcher  — black pill with flag + code + chevron, dropdown below
   ------------------------------------------------------------------------- */
.vestnik-lang {
  position: absolute;
  right: 40px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 70;
}
.vestnik-lang-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--c-ink);
  color: #fff;
  border: 0;
  border-radius: var(--radius-pill);
  padding: 7px 14px 7px 9px;
  font:
    700 14px/1 "Montserrat",
    sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition:
    background var(--ease),
    transform var(--ease);
}
.vestnik-lang-toggle:hover {
  background: #1a1a1a;
}
.vestnik-lang.is-open .vestnik-lang-toggle {
  background: #1a1a1a;
}
.vestnik-lang-toggle .flag {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);
}
.vestnik-lang-toggle .chev {
  width: 9px;
  height: 9px;
  margin-left: 2px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-1px, -1px);
  transition: transform var(--ease);
}
.vestnik-lang.is-open .vestnik-lang-toggle .chev {
  transform: rotate(-135deg) translate(-1px, -1px);
}
.vestnik-lang-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  list-style: none;
  margin: 0;
  padding: 6px;
  background: var(--c-ink);
  border-radius: 16px;
  min-width: 100%;
  box-shadow: var(--shadow-pop);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition:
    opacity var(--ease),
    transform var(--ease),
    visibility var(--ease);
}
.vestnik-lang.is-open .vestnik-lang-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.vestnik-lang-menu li {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}
.vestnik-lang-menu a {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  padding: 7px 12px 7px 8px;
  border-radius: var(--radius-pill);
  font:
    700 14px/1 "Montserrat",
    sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  transition: background var(--ease);
}
.vestnik-lang-menu a:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}
.vestnik-lang-menu .flag {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);
}

/* -------------------------------------------------------------------------
   Masthead title (inner pages)  — big bold uppercase
   ------------------------------------------------------------------------- */
.vestnik-masthead {
  text-align: center;
  padding: 46px 0 8px;
}
.vestnik-masthead a {
  text-decoration: none;
}
.vestnik-title {
  font-weight: 900;
  text-transform: uppercase;
  color: var(--c-ink);
  line-height: 1.04;
  letter-spacing: -0.015em;
  margin: 0;
  font-size: clamp(28px, 4.4vw, 64px);
}
.vestnik-tagline {
  margin: 10px 0 0;
  font-weight: 600;
  font-size: 15px;
  color: var(--c-muted);
  font-style: normal;
}

/* -------------------------------------------------------------------------
   Primary navigation  — pill buttons that wrap to rows
   Overrides the Bootstrap navbar markup produced by the theme.
   ------------------------------------------------------------------------- */
.vestnik-nav {
  padding: 22px 0 10px;
}
.vestnik-nav .navbar,
.vestnik-nav nav.navbar {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0;
}
.vestnik-nav .container {
  width: 100%;
  max-width: var(--shell);
  padding: 0 40px;
}

/* hide the brand inside the nav — branding lives in topbar + masthead */
.vestnik-nav .navbar-header {
  float: none;
}
.vestnik-nav .navbar-brand {
  display: none !important;
}

.vestnik-nav .navbar-collapse {
  padding: 0;
}
.vestnik-nav ul.nav,
.vestnik-nav ul.navbar-nav {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  float: none !important;
  margin: 0 auto !important;
  padding: 0;
  list-style: none;
}
.vestnik-nav ul.navbar-nav > li {
  float: none;
  margin: 0;
  padding: 0;
}

.vestnik-nav ul.navbar-nav > li > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--c-mint);
  color: #fff !important;
  border: 2px solid var(--c-mint);
  border-radius: var(--radius-pill);
  padding: 11px 30px !important;
  font:
    700 16px/1.1 "Montserrat",
    sans-serif !important;
  letter-spacing: 0 !important;
  text-transform: lowercase;
  text-align: center;
  text-decoration: none;
  transition:
    background var(--ease),
    color var(--ease),
    border-color var(--ease),
    transform var(--ease);
}
.vestnik-nav ul.navbar-nav > li > a:hover,
.vestnik-nav ul.navbar-nav > li > a:focus {
  background: var(--c-mint-dk) !important;
  border-color: var(--c-mint-dk);
  color: #fff !important;
  transform: translateY(-1px);
}
.vestnik-nav ul.navbar-nav > li.current-menu-item > a,
.vestnik-nav ul.navbar-nav > li.current_page_item > a,
.vestnik-nav ul.navbar-nav > li.current-menu-parent > a,
.vestnik-nav ul.navbar-nav > li.active > a {
  background: var(--c-paper) !important;
  color: var(--c-ink) !important;
  border-color: var(--c-ink);
  /* Bootstrap's .active rule (css/menus.css) forces border-radius:2px and
       white text — re-assert the pill shape so the current item matches the
       other menu pills instead of rendering as a rectangle. */
  border-radius: var(--radius-pill) !important;
}

/* dropdown submenus */
.vestnik-nav ul.navbar-nav .dropdown-menu {
  border: 2px solid var(--c-ink);
  border-radius: 16px;
  padding: 6px;
  box-shadow: var(--shadow-pop);
  min-width: 220px;
}
.vestnik-nav ul.navbar-nav .dropdown-menu > li > a {
  border-radius: var(--radius-pill);
  padding: 10px 16px;
  font-weight: 600;
  color: var(--c-ink);
}
.vestnik-nav ul.navbar-nav .dropdown-menu > li > a:hover {
  background: var(--c-mint) !important;
  color: #fff !important;
}

/* mobile toggle restyle */
.vestnik-nav .navbar-toggle {
  border: 2px solid var(--c-ink);
  border-radius: 12px;
  margin: 0 auto;
  float: none;
  display: none;
  padding: 9px 12px;
}
.vestnik-nav .navbar-toggle .icon-bar {
  background: var(--c-ink);
  width: 22px;
}

/* -------------------------------------------------------------------------
   Breadcrumb  — Главная / Current
   ------------------------------------------------------------------------- */
.vestnik-crumb {
  padding: 16px 0 6px;
  font-weight: 600;
  font-size: 16px;
}
.vestnik-crumb a {
  color: var(--c-mint);
  text-decoration: none;
}
.vestnik-crumb a:hover {
  color: var(--c-mint-dk);
  text-decoration: underline;
}
.vestnik-nav ul.navbar-nav .dropdown-menu > li > a {
  text-decoration: none;
}
.vestnik-crumb .sep {
  color: var(--c-ink);
  margin: 0 6px;
}
.vestnik-crumb .current {
  color: var(--c-ink);
}

/* neutralise theme's default breadcrumb band if it renders */
.page-breadcrumbs,
.breadcrumbs-area,
.breadcrumb-section {
  background: transparent !important;
  box-shadow: none !important;
}

/* -------------------------------------------------------------------------
   Hero (home)  — big light-blue rounded card with journal title
   ------------------------------------------------------------------------- */
.vestnik-hero {
  padding: 14px 0 36px;
}
.vestnik-hero-card {
  background: var(--c-panel);
  border-radius: var(--radius-hero);
  padding: clamp(34px, 5vw, 70px) clamp(28px, 5vw, 76px);
}
.vestnik-hero-kicker {
  font-weight: 700;
  font-size: clamp(18px, 2vw, 30px);
  text-transform: lowercase;
  color: var(--c-ink);
  margin: 0 0 6px;
  letter-spacing: 0.02em;
}
.vestnik-hero-title {
  font-weight: 900;
  text-transform: uppercase;
  line-height: 1.02;
  letter-spacing: -0.015em;
  margin: 0;
  font-size: clamp(34px, 5.6vw, 84px);
}
.vestnik-hero-title .accent {
  color: var(--c-mint);
  display: block;
}
.vestnik-hero-title .rest {
  color: var(--c-ink);
  display: block;
}

/* -------------------------------------------------------------------------
   Content cards  (О журнале / Цель издания / etc.)
   Restyles the theme's "service" / about boxes into rounded cards.
   ------------------------------------------------------------------------- */
.vestnik-section {
  padding: 18px 0 28px;
}

.vestnik-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}
.vestnik-card {
  background: var(--c-paper);
  border: 2px solid var(--c-ink);
  border-radius: var(--radius-card);
  padding: 30px 32px;
}
.vestnik-card--mint {
  background: var(--c-mint);
  border-color: var(--c-mint);
  color: #fff;
}
.vestnik-card--panel {
  background: var(--c-panel);
  border-color: var(--c-panel);
}
.vestnik-card h2,
.vestnik-card h3,
.vestnik-card .vestnik-card-title {
  font-weight: 800;
  text-transform: uppercase;
  font-size: 20px;
  letter-spacing: 0;
  margin: 0 0 14px;
  color: var(--c-mint-dk);
}
.vestnik-card--mint h2,
.vestnik-card--mint .vestnik-card-title {
  color: #fff;
}
.vestnik-card p {
  color: var(--c-muted);
  font-size: 16px;
  line-height: 1.65;
}
.vestnik-card--mint p {
  color: rgba(255, 255, 255, 0.92);
}

/* Map existing theme service/feature boxes to card look */
.service-version-one .service-box,
.features-version-one .feature-box {
  background: var(--c-paper);
  border: 2px solid var(--c-ink);
  border-radius: var(--radius-card);
  padding: 30px 28px;
  box-shadow: none;
  height: 100%;
}
.service-version-one .service-title a {
  color: var(--c-mint-dk);
  font-weight: 800;
}
.section-heading {
  font-weight: 800;
  text-transform: uppercase;
  color: var(--c-ink);
}
.section-heading span,
.section-heading b {
  color: var(--c-mint);
}
.section-description {
  color: var(--c-muted);
  font-weight: 500;
}

/* -------------------------------------------------------------------------
   Archive index cards  (issue lists with links)
   ------------------------------------------------------------------------- */
.vestnik-archive {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 26px;
}
.vestnik-issue {
  border-radius: var(--radius-card);
  padding: 22px 24px;
  background: var(--c-panel);
}
.vestnik-issue:nth-child(odd) {
  background: var(--c-mint);
}
.vestnik-issue:nth-child(odd) a,
.vestnik-issue:nth-child(odd) .vestnik-issue-title {
  color: var(--c-ink);
}
.vestnik-issue-title {
  font-weight: 800;
  margin: 0 0 10px;
  font-size: 18px;
}
.vestnik-issue ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.vestnik-issue li {
  padding: 3px 0;
}
.vestnik-issue a {
  color: var(--c-ink);
  font-weight: 500;
  font-size: 15px;
  text-decoration: none;
}
.vestnik-issue a:hover {
  text-decoration: underline;
}

/* Article reference card (light-blue with title + author) */
.vestnik-article-card {
  background: var(--c-panel);
  border-radius: 18px;
  padding: 24px 28px;
  margin: 0 0 18px;
}
.vestnik-article-card .a-title {
  font-weight: 700;
  color: var(--c-ink);
  margin: 0 0 10px;
  font-size: 18px;
}
.vestnik-article-card .a-author {
  color: var(--c-muted);
  font-weight: 500;
  margin: 0;
}

/* -------------------------------------------------------------------------
   Buttons  (download / CTA)
   ------------------------------------------------------------------------- */
.vestnik-btn,
.btn-default,
.specia-btn-1,
.call-btn-1,
.more-link,
.entry-content .more-link,
button,
input[type="submit"] {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
}
.vestnik-btn,
a.vestnik-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--c-mint);
  color: var(--c-ink);
  border: 0;
  border-radius: var(--radius-pill);
  padding: 13px 34px;
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;
  cursor: pointer;
  transition:
    background var(--ease),
    color var(--ease),
    transform var(--ease);
}
.vestnik-btn:hover,
a.vestnik-btn:hover {
  background: var(--c-mint-dk);
  color: #fff;
  transform: translateY(-1px);
}

/* CTA band restyle */
.call-to-action .background-overlay {
  background: var(--c-mint) !important;
  border-radius: var(--radius-hero);
}
.call-to-action .call-btn-1 {
  background: var(--c-paper);
  color: var(--c-ink);
  border-radius: var(--radius-pill);
  border: 0;
  font-weight: 700;
  padding: 13px 30px;
}
.call-to-action .call-btn-1:hover {
  background: var(--c-ink);
  color: #fff;
}

/* -------------------------------------------------------------------------
   Blog / posts restyle (rounded panel cards)
   ------------------------------------------------------------------------- */
.latest-blog .hentry,
.blog-version-1 article {
  border: 2px solid var(--c-ink);
  border-radius: var(--radius-card);
  overflow: hidden;
  background: var(--c-paper);
  box-shadow: none;
}
.blog-version-1 article:hover {
  box-shadow: var(--shadow-card);
}
.entry-title a {
  color: var(--c-ink);
  font-weight: 800;
}
.entry-title a:hover {
  color: var(--c-mint-dk);
}
.entry-footer {
  background: var(--c-panel);
}

/* -------------------------------------------------------------------------
   Footer  — solid black bar with centered copyright
   ------------------------------------------------------------------------- */
.footer-copyright,
#specia-footer.footer-copyright {
  background: var(--c-ink) !important;
  color: #fff;
}
.footer-copyright .container .row {
  display: block;
  text-align: center;
}
.footer-copyright .col-md-6 {
  width: 100%;
  float: none;
  text-align: center !important;
}
.footer-copyright .copyright {
  color: rgba(255, 255, 255, 0.82);
  font-weight: 500;
  font-size: 15px;
  margin: 0;
}
.footer-copyright .payment-icon {
  text-align: center;
  margin-top: 8px;
}
.footer-copyright .payment-icon li a i {
  color: rgba(255, 255, 255, 0.7);
}

.footer-sidebar {
  background: #0f1417;
  color: rgba(255, 255, 255, 0.85);
}
.footer-sidebar .widget .title-border,
.footer-sidebar .widget-title {
  color: #fff;
  border-bottom-color: var(--c-mint);
}
.footer-sidebar a {
  color: rgba(255, 255, 255, 0.8);
}
.footer-sidebar a:hover {
  color: var(--c-mint);
}

/* Hide the original theme top-info bar & default breadcrumb (we render our own) */
#specia-header.header-top-info-1 {
  display: none;
}

/* Back-to-top */
.top-scroll {
  background: var(--c-ink);
  color: #fff;
  border-radius: 50%;
  width: 46px;
  height: 46px;
  line-height: 46px;
  transition: background var(--ease);
}
.top-scroll:hover {
  background: var(--c-mint);
  color: #fff;
}

/* -------------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .vestnik-shell,
  .vestnik-nav .container {
    padding: 0 24px;
  }
  .vestnik-cards {
    gap: 20px;
  }
  .vestnik-archive {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 782px) {
  body {
    font-size: 16px;
  }
  .vestnik-topbar .vestnik-shell {
    justify-content: flex-start;
    padding-right: 96px;
  }
  .vestnik-lang {
    right: 24px;
  }
  .vestnik-logo img {
    max-height: 36px;
  }
  .vestnik-logo .vestnik-logo-text {
    font-size: 16px;
  }

  .vestnik-masthead {
    padding: 30px 0 4px;
  }

  .vestnik-nav ul.navbar-nav {
    gap: 10px;
  }
  .vestnik-nav ul.navbar-nav > li > a {
    padding: 10px 20px !important;
    font-size: 15px !important;
  }

  .vestnik-cards {
    grid-template-columns: 1fr;
  }
  .vestnik-hero-card {
    padding: 30px 24px;
  }
}

@media (max-width: 600px) {
  .vestnik-shell,
  .vestnik-nav .container {
    padding: 0 16px;
  }
  .vestnik-archive {
    grid-template-columns: 1fr;
  }
  .vestnik-lang-toggle {
    padding: 6px 10px 6px 7px;
    font-size: 13px;
  }

  /* collapse menu into the Bootstrap toggle on small screens */
  .vestnik-nav .navbar-toggle {
    display: block;
  }
  .vestnik-nav .navbar-collapse.collapse:not(.in) {
    display: none !important;
  }
  .vestnik-nav ul.navbar-nav {
    flex-direction: column;
    align-items: stretch;
  }
  .vestnik-nav ul.navbar-nav > li > a {
    width: 100%;
  }
}
