/* ============================================================================
   0) RESET (Meyerweb)
   ========================================================================== */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video { margin: 0; padding: 0; border: 0; }
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section { display: block; }
body { line-height: 1; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; }
table { border-collapse: collapse; border-spacing: 0; }

/* ============================================================================
   1) DESIGN TOKENS (цвета, типографика, размеры, брейкпоинты, эффекты)
   ========================================================================== */

:root{
  /* Цвета */
  --color-ui-primary: #007DFF;
  --color-ui-primary-600: #005fcc;
  --color-ui-primary-200: #c7e0ff;
  --color-accent: #ff3d00;

  --white: #ffffff;
  --black: #000000;
  --gray-900: #1d1d1f;
  --gray-800: #111;
  --gray-700: #333;
  --gray-600: #444;
  --gray-500: #666;
  --gray-400: #888;
  --gray-300: #ddd;
  --gray-200: #eee;
  --gray-100: #f7f7f7;

  --color-bg-primary: #f5f5f6;
  --color-bg-secondary: #ffffff;
  --text-color: #1b1f24;

  /* Типографика */
  --font-sans: 'PT Sans', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --fs-base: 16px;
  --lh-base: 1.6;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --quick-panel-width: min(420px, 90vw);

  /* Контейнер */
  --max-width: 1200px;
  --gutter: 16px;

  /* Эффекты */
  --shadow-sm: 0 1px 4px rgba(0,0,0,.04);
  --shadow-md: 0 6px 16px rgba(0,0,0,.08);
  --shadow-lg: 0 10px 30px rgba(0,0,0,.15);

  /* Брейкпоинты */
  --bp-xl: 1280px;
  --bp-lg: 1065px;
  --bp-md: 960px;
  --bp-sm: 640px;
  --bp-xs: 480px;
}

/* Тёмная тема (опционально, авто по системе) */
@media (prefers-color-scheme: dark) {
  :root{
    --color-bg-primary: #0e1116;
    --color-bg-secondary: #121722;
    --text-color: #e9eef6;
    --gray-100:#202636; --gray-200:#273147; --gray-300:#2f3a50;
    --gray-400:#8391a7; --gray-500:#9aa7bb; --gray-600:#b3bed0; --gray-700:#d0d8e4;
    --white:#0e1116;
  }
}

/* Базовые теги */
html, body { font-family: var(--font-sans); font-size: var(--fs-base); line-height: var(--lh-base); }
body { background-color: var(--color-bg-primary); color: var(--text-color); }
.container { max-width: var(--max-width); margin: 0 auto; padding-inline: var(--gutter); }

/* Утилиты/акценты */
.blue, .active-blue { background-color: var(--color-ui-primary) !important; color: #fff !important; }
.active-blue:hover { background-color: var(--color-ui-primary) !important; color: #fff !important; }
.gray { background-color: var(--color-ui-primary); color: var(--gray-700); }

/* ============================================================================
   2) FONTS (PT Sans)
   ========================================================================== */

@font-face {
  font-family: 'PT Sans';
  src: url('/fonts/PT_Sans/PTSans-Regular.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'PT Sans';
  src: url('/fonts/PT_Sans/PTSans-Bold.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'PT Sans';
  src: url('/fonts/PT_Sans/PTSans-Italic.woff2') format('woff2');
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: 'PT Sans';
  src: url('/fonts/PT_Sans/PTSans-BoldItalic.woff2') format('woff2');
  font-weight: 700; font-style: italic; font-display: swap;
}

/* ============================================================================
   3) HEADER (top bar, site header, navigation, mega menu)
   ========================================================================== */

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Top bar */
.site-topbar {
  background: var(--color-ui-primary);
  color: var(--white);
  font-size: 0.875rem;
}
.site-topbar__content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-block: 10px;
}
.site-topbar__left {
  display: flex;
  align-items: center;
  gap: 14px;
}
.site-topbar__label {
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 700;
  opacity: .9;
}
.site-topbar__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.site-topbar__social {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-left: 4px;
}
.site-topbar__chat {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 14px 6px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .12);
  color: var(--white);
  font-weight: 600;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.site-topbar__chat:focus-visible {
  outline: 2px solid rgba(255, 255, 255, .6);
  outline-offset: 2px;
}
.site-topbar__chat:hover,
.site-topbar__chat:focus-visible {
  background: rgba(255, 255, 255, .22);
  transform: translateY(-1px);
}
.site-topbar__chat img {
  display: block;
}
.site-topbar__chat-label {
  font-size: 0.95rem;
  text-transform: none;
  letter-spacing: 0;
}
.site-topbar__action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 999px;
  color: var(--white);
  text-decoration: none;
  background: rgba(255, 255, 255, .12);
  font-weight: 600;
  transition: background .2s ease, transform .2s ease;
}
.site-topbar__action:focus-visible {
  outline: 2px solid rgba(255, 255, 255, .6);
  outline-offset: 2px;
}
.site-topbar__action:hover,
.site-topbar__action:focus-visible {
  background: rgba(255, 255, 255, .22);
  transform: translateY(-1px);
}
.site-topbar__indicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  padding: 2px 6px;
  margin-left: 8px;
  border-radius: 999px;
  background: #ff5151;
  color: var(--white);
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
}
.site-topbar__indicator[hidden] {
  display: none !important;
}
button.site-topbar__action {
  border: none;
  background: rgba(255, 255, 255, .12);
  cursor: pointer;
  font: inherit;
}
.site-topbar__icon {
  width: 20px;
  height: 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, .16);
  color: #fff;
  font-size: 0.75rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}
.site-topbar__icon::before { content: "\f06e"; }
.site-topbar__icon--phone::before { content: "\f095"; }
.site-topbar__icon--mail::before { content: "\f0e0"; }
.site-topbar__icon--vacancies::before { content: "\f0b1"; }
.site-topbar__icon--account::before { content: "\f2bd"; }
.site-topbar__icon--vk,
.site-topbar__icon--youtube,
.site-topbar__icon--telegram,
.site-topbar__icon--rutube,
.site-topbar__icon--max {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.site-topbar__icon--vk::before { content: "\f189"; }
.site-topbar__icon--youtube::before { content: "\f167"; }
.site-topbar__icon--telegram::before { content: "\f2c6"; }
.site-topbar__icon--rutube,
.site-topbar__icon--max {
  font-family: "Manrope", "Font Awesome 6 Free", sans-serif;
  font-weight: 700;
  letter-spacing: -0.04em;
}
.site-topbar__icon--rutube::before {
  content: "Ru";
  font-size: 0.75rem;
}
.site-topbar__icon--max::before {
  content: "Max";
  font-size: 0.62rem;
  letter-spacing: -0.06em;
  text-transform: uppercase;
}
.site-topbar__action--social {
  width: 40px;
  height: 40px;
  padding: 0;
  gap: 0;
  justify-content: center;
}
.site-topbar__action--social .site-topbar__icon {
  width: 24px;
  height: 24px;
  border-radius: 0;
  background: transparent;
  font-size: 1.1rem;
}

/* Header */
:root {
  --site-topbar-height: 0px;
  --site-nav-height: 0px;
  --site-header-offset: 0px;
}
.site-header-container {
  background: var(--color-bg-secondary);
  box-shadow: var(--shadow-sm);
}
.site-header {
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding-block: 32px;
}
.site-header__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.site-header__row--primary {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .85fr);
  grid-template-rows: auto auto;
  align-items: stretch;
  gap: 24px;
}
.site-header__row--primary > .site-header__brand {
  grid-column: 1;
  grid-row: 1;
}
.site-header__row--primary > .site-header__lead {
  grid-column: 1;
  grid-row: 2;
}
.site-header__row--primary > .site-header__detail--info {
  grid-column: 2;
  grid-row: 1;
}
.site-header__row--primary > .site-header__detail--weather {
  grid-column: 2;
  grid-row: 2;
}
.site-header__brand {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  flex: 1 1 auto;
  min-width: 260px;
}
.mega-toggle {
  width: 48px;
  height: 48px;
  border: none;
  border-radius: 16px;
  background: var(--color-ui-primary);
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 0 10px;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  flex-shrink: 0;
}
.mega-toggle:hover,
.mega-toggle:focus-visible {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  background: var(--color-ui-primary-600);
}
.mega-toggle__bar {
  display: block;
  height: 3px;
  width: 100%;
  border-radius: 999px;
  background: var(--white);
}
.site-header__logo img {
  height: 92px;
  width: auto;
  object-fit: contain;
}
.site-header__titles {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.site-header__lead {
  width: min(100%, 540px);
  display: flex;
  flex: 1 1 auto;
  align-self: stretch;
  margin-top: 0;
}
.site-header__lead-inner {
  min-height: 72px;
  border-radius: 18px;
  border: 1px dashed rgba(255, 255, 255, .4);
  background: rgba(255, 255, 255, .08);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  justify-content: space-between;
  flex: 1 1 auto;
  height: 100%;
}
.site-header__lead-link {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-decoration: none;
  color: inherit;
  height: 100%;
}
.site-header__lead-link:focus-visible {
  outline: 2px solid rgba(0, 125, 255, .45);
  outline-offset: 3px;
}
.site-header__lead-link:hover .site-header__lead-title,
.site-header__lead-link:focus-visible .site-header__lead-title {
  color: var(--color-ui-primary);
}
.site-header__lead-label {
  font-size: 0.75rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-ui-primary-600);
}
.site-header__lead-title {
  font-size: clamp(1.1rem, 1rem + .6vw, 1.5rem);
  font-weight: 700;
  color: var(--text-color);
  line-height: 1.4;
}
.site-header__lead-desc {
  font-size: 0.95rem;
  line-height: 1.55;
  color: rgba(27, 31, 36, .85);
}
.site-header__lead-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.9rem;
  color: #4b5668;
}
.site-header__lead-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: rgba(0, 125, 255, .12);
  color: var(--color-ui-primary);
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 0.85rem;
  transition: background .2s ease, transform .2s ease;
}
.site-header__lead-arrow::before {
  content: "\f061";
}
.site-header__lead-link:hover .site-header__lead-arrow,
.site-header__lead-link:focus-visible .site-header__lead-arrow {
  background: rgba(0, 125, 255, .22);
  transform: translateX(2px);
}
.site-header__lead-link--static {
  cursor: default;
}
.site-header__lead-link--static .site-header__lead-arrow {
  background: rgba(0, 125, 255, .12);
  transform: none;
}
.site-header__lead-link--static .site-header__lead-title {
  color: var(--text-color);
}
.site-header__lead-placeholder {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.site-header__message {
  position: relative;
  margin-top: 14px;
  padding-left: 22px;
  font-weight: 600;
  font-size: clamp(1rem, 0.92rem + .5vw, 1.25rem);
  line-height: 1.6;
  color: var(--text-color);
}
.site-header__message::before {
  content: "";
  position: absolute;
  inset-block: 12%;
  left: 0;
  width: 6px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(0, 125, 255, .95) 0%, rgba(0, 125, 255, .25) 100%);
  box-shadow: 0 12px 25px rgba(0, 125, 255, .22);
}
.site-header__institution {
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 700;
  font-size: 0.8125rem;
  color: var(--color-ui-primary-600);
}
.site-header__name {
  margin: 0;
  font-size: clamp(1.5rem, 1.2rem + 1vw, 2.25rem);
  font-weight: 700;
  color: var(--text-color);
}
.site-header__search {
  flex: 0 1 360px;
  min-width: 240px;
}
#siteSearch {
  position: relative;
}
.search-input {
  width: 100%;
  border-radius: 14px;
  border: 1px solid #dce3eb;
  background: var(--white);
  padding: 12px 48px 12px 18px;
  font-weight: 600;
  font-size: 1rem;
  color: var(--text-color);
  box-shadow: 0 8px 24px rgba(10, 27, 51, .06);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.search-input::placeholder {
  color: #8a93a5;
}
.search-input:focus {
  outline: none;
  border-color: var(--color-ui-primary);
  box-shadow: 0 0 0 4px rgba(0, 125, 255, .15);
}
.search-submit {
  position: absolute;
  inset-block: 0;
  right: 12px;
  border: none;
  background: none;
  cursor: pointer;
  width: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.search-submit::before {
  content: "\f002";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--color-ui-primary);
  font-size: 1.05rem;
}

.site-header__detail {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  border-radius: 18px;
  background: var(--white);
  box-shadow: var(--shadow-sm);
  min-width: 220px;
  flex: 1 1 auto;
}
.site-header__detail--info {
  align-self: stretch;
}
.site-header__detail-icon {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: rgba(0, 125, 255, .12);
  color: var(--color-ui-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1rem;
}
.site-header__detail-icon::before { content: "\f017"; }
.site-header__detail-icon--info::before { content: "\f05a"; }
.site-header__detail-icon--lunch::before { content: "\f2e7"; }
.site-header__detail-icon--map::before { content: "\f3c5"; }
.site-header__detail-icon--phone::before { content: "\f095"; }
.site-header__detail-icon--mail::before { content: "\f0e0"; }
.site-header__detail-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.site-header__detail-items {
  list-style: none;
  margin: 0;
  padding: 8px 0 0;
  display: grid;
  gap: 12px;
}
.site-header__detail-item {
  display: grid;
  gap: 4px;
}
.site-header__detail-item-label {
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 0.68rem;
  color: #88919f;
  font-weight: 700;
}
.site-header__detail-item-value {
  font-weight: 600;
  color: var(--text-color);
  line-height: 1.45;
  text-decoration: none;
}
.site-header__detail-item-value.sp-link,
.site-header__detail-item-value[href] {
  color: var(--color-ui-primary);
}
.site-header__detail-item-value.sp-link:hover,
.site-header__detail-item-value[href]:hover {
  text-decoration: underline;
}
.site-header__detail-label {
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 0.7rem;
  color: #88919f;
  font-weight: 700;
}
.site-header__detail-value {
  font-weight: 600;
  color: var(--text-color);
  line-height: 1.45;
}
.site-header__detail-value a,
.site-header__detail-value.sp-link,
.site-header__detail-value[href] {
  color: var(--color-ui-primary);
  text-decoration: none;
}
.site-header__detail-value a:hover,
.site-header__detail-value.sp-link:hover,
.site-header__detail-value[href]:hover {
  text-decoration: underline;
}

.hero-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--hero-header-min-height, calc(85vh - var(--site-header-offset, 0px)));
  padding-block: clamp(38px, 7vh, 96px);
  background: none;
  box-shadow: none;
  color: var(--white);
  overflow: hidden;
}
.hero-header::before,
.hero-header::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.hero-header::before {
  background: var(--hero-header-bg, url('/images/yakimanka/main_banner.jpg')) center/cover no-repeat;
  filter: blur(4px);
  transform: scale(1.04);
}
.hero-header::after {
  background: linear-gradient(135deg, rgba(9, 22, 41, .75), rgba(22, 54, 105, .55));
}
.hero-header .site-header {
  position: relative;
  z-index: 1;
  gap: clamp(22px, 3vw, 48px);
  padding-block: 0;
  color: inherit;
  width: 100%;
}
.hero-header .site-header__row {
  gap: clamp(18px, 2.5vw, 36px);
}
.hero-header .site-header__row--secondary {
  max-width: min(100%, 880px);
}
.hero-header .site-header__brand {
  align-items: flex-start;
  gap: clamp(16px, 1.8vw, 28px);
}
.hero-header .site-header__logo img {
  height: clamp(88px, 12vw, 132px);
  max-height: 160px;
  filter: drop-shadow(0 20px 36px rgba(5, 12, 26, .45));
}
.hero-header .site-header__titles {
  gap: clamp(8px, 1vw, 16px);
}
.hero-header .site-header__message {
  color: #fff;
  text-shadow: 0 10px 18px rgba(0, 0, 0, .35);
}
.hero-header .site-header__message::before {
  background: linear-gradient(180deg, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, .3) 100%);
  box-shadow: 0 16px 30px rgba(9, 20, 48, .55);
}
.hero-header .site-header__lead-inner {
  border-color: rgba(255, 255, 255, .45);
  background: rgba(255, 255, 255, .1);
}
.hero-header .site-header__lead-link:focus-visible {
  outline-color: rgba(255, 255, 255, .65);
}
.hero-header .site-header__lead-label {
  color: rgba(255, 255, 255, .72);
}
.hero-header .site-header__lead-title {
  color: #fff;
  text-shadow: 0 12px 24px rgba(0, 0, 0, .35);
}
.hero-header .site-header__lead-link:hover .site-header__lead-title,
.hero-header .site-header__lead-link:focus-visible .site-header__lead-title {
  color: #fff;
}
.hero-header .site-header__lead-desc,
.hero-header .site-header__lead-placeholder .site-header__lead-desc {
  color: rgba(255, 255, 255, .85);
}
.hero-header .site-header__lead-meta {
  color: rgba(255, 255, 255, .75);
}
.hero-header .site-header__lead-arrow {
  background: rgba(255, 255, 255, .18);
  color: #fff;
}
.hero-header .site-header__lead-link:hover .site-header__lead-arrow,
.hero-header .site-header__lead-link:focus-visible .site-header__lead-arrow {
  background: rgba(255, 255, 255, .32);
}
.hero-header .site-header__institution {
  color: rgba(255, 255, 255, .72);
}
.hero-header .site-header__name {
  color: #fff;
  text-shadow: 0 12px 24px rgba(0, 0, 0, .35);
}
.hero-header .site-header__detail {
  background: rgba(6, 14, 32, .55);
  border: 1px solid rgba(255, 255, 255, .18);
  box-shadow: 0 28px 48px rgba(3, 8, 22, .42);
  color: inherit;
  backdrop-filter: blur(18px);
}
.hero-header .site-header__detail-icon {
  background: rgba(255, 255, 255, .16);
  color: #fff;
}
.hero-header .site-header__detail-label {
  color: rgba(255, 255, 255, .62);
}
.hero-header .site-header__detail-value {
  color: #fff;
}
.hero-header .site-header__detail-items {
  padding-top: 12px;
}
.hero-header .site-header__detail-item-label {
  color: rgba(255, 255, 255, .62);
}
.hero-header .site-header__detail-item-value {
  color: #fff;
}
.hero-header .site-header__detail-item-value.sp-link,
.hero-header .site-header__detail-item-value[href] {
  color: #fff;
}
.hero-header .site-header__detail-item-value.sp-link:hover,
.hero-header .site-header__detail-item-value[href]:hover {
  color: rgba(255, 255, 255, .85);
}
.hero-header .site-header__detail-value a,
.hero-header .site-header__detail-value.sp-link,
.hero-header .site-header__detail-value[href] {
  color: #fff;
}
.hero-header .site-header__detail-value a:hover,
.hero-header .site-header__detail-value.sp-link:hover,
.hero-header .site-header__detail-value[href]:hover {
  color: rgba(255, 255, 255, .85);
}

@supports (height: 100dvh) {
  .hero-header {
    min-height: var(--hero-header-min-height, calc(85dvh - var(--site-header-offset, 0px)));
  }
}

/* Main navigation */
.site-nav {
  background: var(--white);
  box-shadow: var(--shadow-sm);
  border-bottom: 1px solid rgba(15, 44, 86, .05);
}
.site-nav__wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-block: 16px;
}
.site-nav__actions {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-left: auto;
}
.site-nav__search {
  flex: 0 0 auto;
}
.site-nav__search-trigger {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 20px;
  border-radius: 999px;
  border: none;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.site-nav__search-trigger:focus-visible {
  outline: 3px solid rgba(255, 255, 255, .28);
  outline-offset: 3px;
}
.site-nav__search-trigger:hover,
.site-nav__search-trigger:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(17, 24, 39, .22);
}
.site-nav__search-trigger-icon {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: .95rem;
  color: inherit;
}
.site-nav__search-trigger-icon::before { content: "\f002"; }
.site-nav__search-trigger-label {
  font-size: 0.95rem;
  letter-spacing: .02em;
}
.site-search-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: min(300px, 100dvh);
  background: var(--white);
  backdrop-filter: none;
  box-shadow: 0 22px 48px rgba(15, 30, 65, .18);
  transform: translateY(-110%);
  opacity: 0;
  transition: transform .35s ease, opacity .35s ease;
  z-index: 1600;
}
.site-search-overlay.is-visible {
  transform: translateY(0);
  opacity: 1;
}
.site-search-overlay__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(18px, 3vw, 28px);
  height: 100%;
  color: var(--text-color);
  padding: clamp(28px, 6vw, 44px) 32px;
}
.site-search-overlay__close {
  position: absolute;
  top: clamp(18px, 4vw, 30px);
  right: clamp(18px, 4vw, 30px);
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 14px;
  background: rgba(17, 24, 39, .08);
  color: #111827;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.site-search-overlay__close::before,
.site-search-overlay__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}
.site-search-overlay__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.site-search-overlay__close::after { transform: translate(-50%, -50%) rotate(-45deg); }
.site-search-overlay__close:hover,
.site-search-overlay__close:focus-visible {
  background: rgba(17, 24, 39, .12);
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(15, 30, 65, .18);
  outline: 2px solid rgba(17, 24, 39, .35);
  outline-offset: 3px;
}
.site-search-overlay__title {
  margin: 0;
  font-size: clamp(1.6rem, 1.3rem + .8vw, 2.2rem);
  font-weight: 700;
}
.site-search-overlay__form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: min(620px, 100%);
}
.site-search-overlay__field {
  position: relative;
}
.site-search-overlay__icon {
  position: absolute;
  top: 50%;
  left: 20px;
  transform: translateY(-50%);
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1.15rem;
  color: rgba(17, 24, 39, .55);
  pointer-events: none;
}
.site-search-overlay__icon::before { content: "\f002"; }
.site-search-overlay__field input {
  width: 100%;
  border: 1px solid rgba(17, 24, 39, .12);
  border-radius: 18px;
  padding: 16px 22px 16px 58px;
  background: #f3f5f9;
  color: var(--text-color);
  font-size: 1.05rem;
  font-weight: 600;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .75), 0 12px 28px rgba(15, 30, 65, .08);
  transition: box-shadow .25s ease, background .25s ease, border-color .25s ease;
}
.site-search-overlay__field input::placeholder {
  color: rgba(107, 114, 128, .9);
}
.site-search-overlay__field input:focus {
  outline: none;
  background: var(--white);
  border-color: rgba(37, 99, 235, .55);
  box-shadow: 0 20px 44px rgba(15, 30, 65, .14), 0 0 0 4px rgba(37, 99, 235, .18);
}
.site-search-overlay__submit {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 32px;
  border-radius: 16px;
  border: none;
  background: var(--color-ui-primary);
  color: var(--white);
  font-weight: 700;
  font-size: 0.98rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.site-search-overlay__submit:hover,
.site-search-overlay__submit:focus-visible {
  background: var(--color-ui-primary-600);
  transform: translateY(-1px);
  box-shadow: 0 20px 40px rgba(8, 24, 52, .35);
}
.site-search-overlay[hidden] {
  display: none !important;
}

.search-page {
  display: grid;
  gap: clamp(24px, 4vw, 36px);
}
.search-page__form {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
}
.search-page__field {
  position: relative;
  flex: 1 1 min(480px, 100%);
  min-width: 220px;
}
.search-page__icon {
  position: absolute;
  left: 18px;
  top: 50%;
  width: 20px;
  height: 20px;
  color: #576072;
  transform: translateY(-50%);
  pointer-events: none;
}
.search-page__icon::before {
  content: "\f002";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1rem;
  display: inline-block;
}
.search-page__input {
  width: 100%;
  border: 1px solid rgba(19, 33, 68, .16);
  border-radius: 18px;
  padding: 14px 16px 14px 52px;
  font-size: 1rem;
  font-family: inherit;
  font-weight: 500;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.search-page__input:focus {
  outline: none;
  border-color: var(--color-ui-primary);
  box-shadow: 0 0 0 4px rgba(0, 125, 255, .12);
}
.search-page__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 24px;
  border-radius: 16px;
  background: var(--color-ui-primary);
  color: var(--white);
  font-weight: 700;
  font-size: 1rem;
  border: none;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.search-page__submit:hover,
.search-page__submit:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 16px 30px rgba(0, 125, 255, .28);
}
.search-page__content {
  display: grid;
  gap: 16px;
}
.search-page__title {
  margin: 0;
  font-size: clamp(1.7rem, 1.4rem + .8vw, 2.3rem);
  font-weight: 700;
}
.search-page__summary {
  margin: 0;
  color: #5b6677;
  font-size: 0.96rem;
}
.search-page__empty {
  color: #5b6677;
  font-size: 1rem;
}
.search-page__loader {
  color: #1e2c46;
  font-weight: 600;
}

@media (max-width: var(--bp-sm)) {
  .search-page__form {
    flex-direction: column;
    align-items: stretch;
  }
  .search-page__submit {
    width: 100%;
  }
}
body.site-search-open {
  overflow: hidden;
}

@media (max-width: var(--bp-md)) {
  .site-topbar__chat,
  .site-topbar__action--vacancies,
  .site-topbar__social {
    display: none !important;
  }
  .site-nav {
    display: none;
  }
  .home-important__nav {
    display: none;
  }
}

@media (max-width: var(--bp-sm)) {
  .site-nav__search-trigger {
    padding: 10px 14px;
  }
  .site-nav__search-trigger-label {
    display: none;
  }
  .site-search-overlay__inner {
    padding-inline: 20px;
  }
  .site-search-overlay__submit {
    width: 100%;
    justify-content: center;
  }
}
.main-menu-content {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.main-menu-item {
  position: relative;
  display: flex;
  align-items: center;
}
.main-menu-item > .sp-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.main-menu-item--has-children > .sp-link::after {
  content: '';
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-left: 6px;
  opacity: .7;
  transition: transform .15s ease;
}
.main-menu-item--has-children:hover > .sp-link::after,
.main-menu-item--has-children:focus-within > .sp-link::after {
  transform: rotate(225deg);
}
.main-menu-item > .sp-link {
  padding: 10px 18px;
  border-radius: 999px;
  font-weight: 600;
  color: var(--text-color);
  text-decoration: none;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.main-menu-item > .sp-link:hover,
.main-menu-item > .sp-link:focus-visible {
  background: rgba(0, 125, 255, .12);
  color: var(--color-ui-primary);
  transform: translateY(-1px);
}
.main-menu-content .active-blue {
  background: var(--color-ui-primary);
  color: var(--white) !important;
  box-shadow: 0 8px 16px rgba(0, 125, 255, .2);
}
.main-menu-item--active > .sp-link:not(.active-blue) {
  background: rgba(0, 125, 255, .12);
  color: var(--color-ui-primary);
}
.main-menu-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 50;
  min-width: 240px;
  padding: 18px;
  border-radius: 18px;
  background: linear-gradient(165deg, #ffffff 0%, #f2f6ff 100%);
  box-shadow: 0 22px 42px rgba(15, 44, 86, .18);
  border: 1px solid rgba(15, 44, 86, .08);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .2s ease, transform .2s ease;
}
.main-menu-dropdown__list,
.main-menu-dropdown__sublist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.main-menu-dropdown__item {
  position: relative;
}
.main-menu-dropdown__sublist {
  padding-left: 12px;
  margin-top: 6px;
  border-left: 2px solid rgba(15, 44, 86, .08);
}
.main-menu-dropdown__link {
  display: block;
  padding: 12px 16px;
  border-radius: 12px;
  font-weight: 600;
  color: var(--text-color);
  text-decoration: none;
  line-height: 1.35;
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.main-menu-dropdown__link:hover,
.main-menu-dropdown__link:focus-visible {
  background: rgba(0, 125, 255, .12);
  color: var(--color-ui-primary);
  transform: translateX(2px);
}
.main-menu-dropdown__link--active {
  background: rgba(0, 125, 255, .18);
  color: var(--color-ui-primary);
}
.main-menu-item--has-children:hover > .main-menu-dropdown,
.main-menu-item--has-children:focus-within > .main-menu-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

@media (hover: none) {
  .main-menu-item--has-children > .sp-link::after {
    display: none;
  }
}
.site-nav__accent {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  border-radius: 14px;
  background: var(--color-accent);
  color: var(--white);
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 12px 24px rgba(255, 61, 0, .28);
  transition: transform .2s ease, box-shadow .2s ease;
}
.site-nav__accent:hover,
.site-nav__accent:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(255, 61, 0, .32);
}

/* Auth pages */
.auth-layout {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--color-bg-secondary);
}
.auth-layout__main {
  flex: 1 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: clamp(60px, 12vh, 120px);
}
.admin-layout {
  min-height: 100vh;
  background: var(--color-bg-secondary);
  display: flex;
  flex-direction: column;
}
.admin-layout__body {
  flex: 1 0 auto;
}
.admin-layout__body > .container {
  max-width: var(--max-width);
}
.admin-topbar {
  background: var(--color-ui-primary);
  color: #fff;
  padding-block: 14px;
  box-shadow: var(--shadow-sm);
}
.admin-topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.admin-topbar__brand,
.admin-topbar__profile {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.admin-topbar__link,
.admin-topbar__logout {
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .12);
  transition: background .2s ease, transform .2s ease;
}
.admin-topbar__link:hover,
.admin-topbar__link:focus-visible,
.admin-topbar__logout:hover,
.admin-topbar__logout:focus-visible {
  background: rgba(255, 255, 255, .22);
  transform: translateY(-1px);
}
.admin-topbar__link--current {
  background: rgba(255, 255, 255, .22);
  transform: translateY(-1px);
}
.admin-topbar__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  padding: 2px 6px;
  margin-left: 6px;
  border-radius: 999px;
  background: #fff;
  color: var(--color-ui-primary);
  font-weight: 700;
  font-size: 0.75rem;
  line-height: 1.2;
}
.admin-topbar__dropdown {
  position: relative;
}
.admin-topbar__dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: none;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-weight: 600;
  padding: 6px 16px;
  border-radius: 999px;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease, color .2s ease;
}
.admin-topbar__dropdown-toggle:hover,
.admin-topbar__dropdown-toggle:focus-visible {
  background: rgba(255, 255, 255, .22);
  transform: translateY(-1px);
}
.admin-topbar__dropdown-toggle:focus-visible {
  outline: 2px solid rgba(255, 255, 255, .35);
  outline-offset: 2px;
}
.admin-topbar__dropdown-icon {
  font-size: 0.75rem;
  line-height: 1;
}
.admin-topbar__dropdown-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  display: none;
  flex-direction: column;
  gap: 4px;
  min-width: 220px;
  padding: 8px;
  border-radius: 12px;
  background: #fff;
  color: var(--gray-900);
  box-shadow: var(--shadow-md);
  z-index: 40;
}
.admin-topbar__dropdown[data-open="true"] .admin-topbar__dropdown-menu {
  display: flex;
}
.admin-topbar__dropdown-link {
  display: block;
  padding: 8px 12px;
  border-radius: 8px;
  color: var(--gray-900);
  font-weight: 600;
  text-decoration: none;
  transition: background .2s ease, color .2s ease;
}
.admin-topbar__dropdown-toggle--alert {
  background: rgba(255, 255, 255, .24);
  box-shadow: 0 0 0 2px rgba(255, 255, 255, .25);
}
.admin-topbar__dropdown-link:hover,
.admin-topbar__dropdown-link:focus-visible {
  background: rgba(0, 125, 255, .12);
  color: var(--color-ui-primary);
}
.admin-topbar__dropdown-link.is-active {
  background: rgba(0, 125, 255, .18);
  color: var(--color-ui-primary);
}
.admin-topbar__dropdown-link--alert {
  background: rgba(255, 255, 255, .2);
  color: var(--color-ui-primary);
}
.admin-topbar__dropdown-link .admin-topbar__badge {
  margin-left: auto;
  background: rgba(0, 125, 255, .15);
  color: var(--color-ui-primary);
}
.admin-topbar__user {
  font-weight: 700;
  font-size: 0.95rem;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .18);
}
.admin-topbar__email {
  font-size: 0.9rem;
  opacity: .85;
}
.auth-page {
  padding-block: clamp(24px, 5vh, 60px);
  background: transparent;
}
.auth-page__container {
  display: flex;
  justify-content: center;
}
.auth-card {
  width: min(100%, 420px);
  background: var(--white);
  border-radius: 24px;
  padding: clamp(28px, 4vw, 40px);
  box-shadow: var(--shadow-lg);
  display: grid;
  gap: 22px;
}
.auth-card--compact {
  gap: 16px;
  text-align: center;
}
.auth-card__title {
  margin: 0;
  font-size: clamp(1.7rem, 1.3rem + .8vw, 2.1rem);
  font-weight: 700;
  color: var(--text-color);
}
.auth-card__subtitle {
  margin: 0;
  color: #5b6677;
  line-height: 1.6;
}
.auth-form {
  display: grid;
  gap: 18px;
}
.auth-form__errors {
  color: #d12c2c;
  background: rgba(209, 44, 44, .08);
  border-radius: 12px;
  padding: 12px 16px;
  font-weight: 600;
}
.auth-form__field {
  display: grid;
  gap: 6px;
}
.auth-form__label {
  font-weight: 600;
  color: #2b3342;
}
.auth-form__input {
  border: 1px solid rgba(19, 33, 68, .16);
  border-radius: 14px;
  padding: 12px 16px;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-color);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.auth-form__input:focus {
  outline: none;
  border-color: var(--color-ui-primary);
  box-shadow: 0 0 0 4px rgba(0, 125, 255, .15);
}
.auth-form__error {
  color: #d12c2c;
  font-size: 0.85rem;
}
.auth-form__options {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.auth-form__field--grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}
.auth-alert {
  margin-bottom: 18px;
  padding: 14px 18px;
  border-radius: 16px;
  font-weight: 600;
  background: rgba(0, 125, 255, .12);
  color: var(--color-ui-primary);
}
.auth-alert--success {
  background: rgba(22, 163, 74, .12);
  color: #198754;
}
.auth-alert--error {
  background: rgba(255, 81, 81, .12);
  color: #c0392b;
}
.auth-form__remember {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.95rem;
  color: #2b3342;
}
.auth-form__submit {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 14px 18px;
  border-radius: 16px;
  background: var(--color-ui-primary);
  color: var(--white);
  font-weight: 700;
  font-size: 1.05rem;
  border: none;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
  text-decoration: none;
}
.auth-form__submit:hover,
.auth-form__submit:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 16px 30px rgba(0, 125, 255, .28);
}
.auth-form__back {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin-top: 12px;
  padding: 12px 18px;
  border-radius: 16px;
  background: rgba(0, 125, 255, .08);
  color: var(--color-ui-primary);
  font-weight: 700;
  text-decoration: none;
  transition: background .2s ease, transform .2s ease;
}
.auth-form__back:hover,
.auth-form__back:focus-visible {
  background: rgba(0, 125, 255, .16);
  transform: translateY(-1px);
}
.auth-form__footer {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}
.auth-page--logout .auth-card__subtitle {
  color: #3a4556;
}

/* Admin area */
.admin-page {
  padding: 20px 0;
  background: var(--color-bg-secondary);
}
.admin-page__container {
  display: grid;
  gap: clamp(32px, 4vw, 48px);
}
.admin-page__header {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.admin-page__header--split {
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}
.admin-page__eyebrow {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 700;
  color: rgba(24, 36, 60, .6);
}
.admin-page__title {
  margin: 0;
  font-size: clamp(2rem, 1.5rem + 1vw, 2.6rem);
  font-weight: 700;
  color: var(--text-color);
}
.admin-page__subtitle {
  margin: 0;
  color: #5b6677;
  font-size: 1rem;
  line-height: 1.6;
  max-width: 620px;
}
.admin-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.admin-card {
  background: var(--white);
  border-radius: 22px;
  padding: 32px;
  box-shadow: var(--shadow-lg);
  display: grid;
  gap: 16px;
}
.admin-card--accent {
  background: linear-gradient(135deg, rgba(0, 125, 255, .1), rgba(0, 125, 255, .22));
  box-shadow: 0 24px 40px rgba(0, 125, 255, .18);
}
.admin-card--flush {
  padding: 0;
  overflow: hidden;
}
.admin-card__title {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--text-color);
}
.admin-card__text {
  margin: 0;
  color: #4b5668;
  line-height: 1.6;
}
.admin-card__status {
  margin: 0;
  font-size: 0.92rem;
  color: #4b5668;
}
.admin-card__status--progress {
  color: #0f2137;
}
.admin-card__status--success {
  color: #1a7f3c;
}
.admin-card__status--error {
  color: #c0392b;
}
.admin-card__form {
  display: grid;
  gap: 14px;
}
.admin-card__form .form-group {
  margin-bottom: 0;
}
.admin-card__form .form-control,
.admin-card__form .admin-btn {
  width: 100%;
}
.admin-card__form .admin-btn {
  justify-content: center;
}
.admin-faq__controls {
  display: flex;
  justify-content: flex-end;
  padding: 0 0 16px;
}
.admin-faq__list {
  display: grid;
  gap: 16px;
}
.admin-faq__placeholder {
  margin: 0;
  padding: 24px;
  border: 1px dashed rgba(13, 32, 64, .2);
  border-radius: 16px;
  text-align: center;
  color: #5f6b7d;
}
.admin-faq-item {
  border: 1px solid rgba(13, 32, 64, .12);
  border-radius: 18px;
  padding: 20px;
  background: #fff;
  display: grid;
  gap: 14px;
}
.admin-faq-item__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.admin-faq-item__title {
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--text-color);
}
.admin-faq-item__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.admin-toggle--compact span {
  font-size: 0.9rem;
}
.admin-number {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #5f6b7d;
}
.admin-number input {
  width: 80px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(13, 32, 64, .18);
}
.admin-faq__footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: 20px;
}
.admin-faq__actions {
  display: flex;
  gap: 12px;
}
.admin-faq__status {
  font-size: 0.95rem;
  color: #5f6b7d;
}
.admin-faq__status.is-success {
  color: #1a7f3c;
}
.admin-faq__status.is-error {
  color: #c0392b;
}

@media (max-width: 720px) {
  .admin-faq-item__header {
    flex-direction: column;
    align-items: flex-start;
  }
  .admin-faq-item__controls {
    width: 100%;
    justify-content: space-between;
  }
  .admin-number input {
    width: 100%;
  }
  .admin-faq__footer {
    flex-direction: column;
    align-items: stretch;
  }
  .admin-faq__actions {
    width: 100%;
    justify-content: stretch;
  }
  .admin-faq__actions .admin-btn {
    flex: 1 1 auto;
  }
}

.paid-services {
  margin-top: 40px;
  display: grid;
  gap: 24px;
}
.paid-services__controls {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  align-items: end;
}
.paid-services__filter {
  display: grid;
  gap: 8px;
}
.paid-services__filter label {
  font-weight: 600;
  color: #2c3444;
}
.paid-services__search,
.paid-services__select {
  width: 100%;
  padding: 12px 16px;
  border-radius: 14px;
  border: 1px solid rgba(13, 32, 64, .18);
  font-size: 1rem;
}
.paid-services__select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #1b2d47 50%), linear-gradient(135deg, #1b2d47 50%, transparent 50%);
  background-position: calc(100% - 18px) calc(50% - 3px), calc(100% - 11px) calc(50% - 3px);
  background-size: 7px 7px;
  background-repeat: no-repeat;
}
.paid-services__empty {
  margin: 0;
  padding: 20px;
  border-radius: 16px;
  border: 1px dashed rgba(13, 32, 64, .2);
  text-align: center;
  color: #5f6b7d;
  font-weight: 600;
}
.paid-services__category {
  display: grid;
  gap: 14px;
  margin-bottom: 20px;
}
.paid-category--hidden {
  display: none !important;
}
.paid-category__toggle {
  width: 100%;
  border: none;
  border-radius: 16px;
  background: linear-gradient(135deg, #005fcc, #0047a6);
  color: #fff;
  font-weight: 700;
  font-size: 1.1rem;
  padding: 18px 20px;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 16px;
  align-items: center;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.paid-category__toggle:hover,
.paid-category__toggle:focus-visible {
  filter: brightness(1.05);
  transform: translateY(-1px);
}
.paid-category__name {
  text-align: left;
  margin: 0;
}
.paid-category__count {
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .2);
  font-size: 0.9rem;
  font-weight: 600;
}
.paid-category__icon {
  width: 12px;
  height: 12px;
  border: solid 2px #fff;
  border-left: 0;
  border-top: 0;
  transform: rotate(45deg);
  transition: transform .2s ease;
}
.paid-category__body {
  display: grid;
  gap: 14px;
}
.paid-services__category.paid-category--collapsed .paid-category__body {
  display: none;
}
.paid-services__category.paid-category--collapsed .paid-category__icon {
  transform: rotate(-135deg);
}
.paid-services__category-title {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--text-color);
}
.paid-services__category-desc {
  margin: 0;
  color: #5f6b7d;
  max-width: 720px;
}
.paid-services__items {
  display: grid;
  gap: 14px;
  padding-left: 36px;
}
.paid-service {
  border-radius: 16px;
  border: 1px solid rgba(13, 32, 64, .18);
  overflow: hidden;
  background: #fff;
}
.paid-service__toggle {
  width: 100%;
  border: none;
  background: var(--color-ui-primary);
  color: #fff;
  font-weight: 700;
  font-size: 1.05rem;
  padding: 16px 20px;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 16px;
  align-items: center;
  text-align: left;
  cursor: pointer;
  transition: filter .2s ease;
}
.paid-service__toggle:hover,
.paid-service__toggle:focus-visible {
  filter: brightness(1.05);
}
.paid-service__name {
  margin: 0;
}
.paid-service__price {
  font-weight: 600;
}
.paid-service__icon {
  justify-self: end;
  width: 14px;
  height: 14px;
  border: solid 2px #fff;
  border-left: 0;
  border-top: 0;
  transform: rotate(45deg);
  transition: transform .2s ease;
}
.paid-service--open .paid-service__icon {
  transform: rotate(-135deg);
}
.paid-service__details {
  padding: 18px 20px;
  background: #f6f8ff;
}
.paid-service__content {
  display: grid;
  gap: 10px;
  color: #3a4556;
  line-height: 1.6;
}
.paid-service__content p {
  margin: 0;
}

@media (max-width: 600px) {
  .paid-service__toggle {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    row-gap: 8px;
  }
  .paid-service__icon {
    justify-self: start;
  }
}
.admin-card__action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: var(--color-ui-primary);
  text-decoration: none;
}
.admin-card__action--disabled {
  color: #8590a4;
  cursor: not-allowed;
}
.admin-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: 16px;
  background: rgba(9, 22, 41, .08);
  color: var(--text-color);
  font-weight: 700;
  border: none;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  text-decoration: none;
}
.admin-btn:hover,
.admin-btn:focus-visible {
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}
.admin-btn--primary {
  background: var(--color-ui-primary);
  color: var(--white);
  box-shadow: 0 18px 36px rgba(0, 125, 255, .28);
}
.admin-btn--primary:hover,
.admin-btn--primary:focus-visible {
  box-shadow: 0 24px 42px rgba(0, 125, 255, .32);
}
.admin-btn--danger {
  background: #d92d20;
  color: var(--white);
  box-shadow: 0 18px 32px rgba(217, 45, 32, .28);
}
.admin-btn--danger:hover,
.admin-btn--danger:focus-visible {
  box-shadow: 0 22px 38px rgba(217, 45, 32, .32);
  background: #b42318;
}
.admin-btn:disabled,
.admin-btn[disabled] {
  opacity: .6;
  cursor: not-allowed;
  pointer-events: none;
  transform: none;
  box-shadow: none;
}
.admin-btn:disabled:hover,
.admin-btn:disabled:focus-visible,
.admin-btn[disabled]:hover,
.admin-btn[disabled]:focus-visible {
  box-shadow: none;
  transform: none;
}
.admin-table__wrap {
  overflow-x: auto;
}
.admin-table__wrap--files {
  max-height: 60vh;
  overflow: auto;
}
.admin-table__wrap--files .admin-table {
  min-width: 540px;
}
.admin-table__wrap--files [data-files-cell-updated] {
  max-width: 140px;
  white-space: normal;
  font-variant-numeric: tabular-nums;
  line-height: 1.3;
  font-size: 0.9rem;
}
.admin-table thead th[data-column="order"],
.admin-table tbody td[data-column="order"] {
  width: 80px;
  max-width: 80px;
  white-space: nowrap;
}
.admin-table thead th[data-column="size"],
.admin-table tbody td[data-column="size"] {
  width: 100px;
  max-width: 100px;
  white-space: nowrap;
}
.admin-table thead th[data-column="updated"],
.admin-table tbody td[data-column="updated"] {
  width: 160px;
  max-width: 160px;
}
.admin-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 680px;
}
.admin-table thead {
  background: rgba(9, 22, 41, .05);
}
.admin-table th,
.admin-table td {
  padding: 14px 18px;
  text-align: left;
  border-bottom: 1px solid rgba(15, 30, 55, .08);
  font-size: 0.96rem;
}
.admin-table th {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #4a5565;
}
.admin-table__col--actions {
  width: 180px;
  text-align: right;
}
.admin-table__row--directory {
  cursor: pointer;
}
.admin-table__row--directory:hover td {
  background: rgba(9, 22, 41, .04);
}
.admin-table__row--directory:focus-within td {
  background: rgba(0, 125, 255, .08);
}
.admin-table__placeholder {
  text-align: center;
  color: #677286;
  font-weight: 600;
}
.admin-table__status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.82rem;
}
.admin-table__status--active {
  background: rgba(46, 204, 113, .18);
  color: #27ae60;
}
.admin-table__status--hidden {
  background: rgba(231, 76, 60, .12);
  color: #c0392b;
}
.admin-table__actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  width: 100%;
}
.admin-icon-btn {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  border: 1px solid transparent;
  background: rgba(0, 125, 255, .08);
  color: var(--text-color);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease, border-color .2s ease;
  outline: none;
}
.admin-icon-btn:hover,
.admin-icon-btn:focus-visible {
  background: rgba(0, 125, 255, .16);
  border-color: rgba(0, 125, 255, .32);
  transform: translateY(-1px);
}
.admin-icon-btn--danger {
  color: #c0392b;
  background: rgba(192, 57, 43, .12);
  border-color: rgba(192, 57, 43, .24);
}
.admin-modal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 32px 18px;
  z-index: 1500;
}
.admin-modal[open],
.admin-modal:not([hidden]) {
  display: flex;
}
.admin-modal__dialog {
  position: relative;
  width: min(720px, 100%);
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 40px 60px rgba(7, 14, 30, .28);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: 90vh;
}
.admin-modal__dialog--wide {
  width: min(960px, 100%);
}
.admin-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 24px 28px 12px;
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 2;
  border-bottom: 1px solid rgba(15, 30, 55, .08);
}
.admin-modal__title {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 700;
}
.admin-modal__close {
  width: 40px;
  height: 40px;
  border-radius: 14px;
  border: none;
  background: rgba(0, 125, 255, .08);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.admin-modal__close::before {
  content: "\00d7";
  font-size: 1.4rem;
  line-height: 1;
  color: var(--color-ui-primary);
}
.admin-modal__close:hover,
.admin-modal__close:focus-visible {
  background: rgba(0, 125, 255, .18);
  transform: translateY(-1px);
}
.admin-modal__content {
  display: grid;
  gap: 18px;
  padding: 18px 28px 24px;
}
.admin-modal__description {
  margin: 0;
  color: #2f3848;
  line-height: 1.55;
}
.admin-modal__entity {
  color: var(--color-ui-primary);
  font-weight: 700;
}
.admin-modal__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(9, 20, 38, .52);
  z-index: -1;
}
.admin-alert {
  border-radius: 14px;
  padding: 12px 16px;
  font-weight: 600;
  font-size: 0.95rem;
}
.admin-alert--danger {
  background: rgba(217, 45, 32, .12);
  color: #b42318;
}
.admin-form {
  display: grid;
  gap: 24px;
  padding: 0 28px;
  overflow-y: auto;
  max-height: calc(90vh - 60px);
  background: #fff;
}
.admin-form__grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.admin-form__field {
  display: grid;
  gap: 8px;
}
.admin-form__field span {
  font-weight: 600;
  color: #2f3848;
}
.admin-form__field--full {
  grid-column: 1 / -1;
}
.admin-form__field input,
.admin-form__field textarea,
.admin-form__field select {
  border: 1px solid rgba(19, 33, 68, .16);
  border-radius: 14px;
  padding: 12px 14px;
  font-size: 0.98rem;
  font-family: inherit;
  font-weight: 500;
  color: var(--text-color);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.admin-form__field textarea {
  resize: vertical;
}
.admin-form__field input:focus,
.admin-form__field textarea:focus,
.admin-form__field select:focus {
  outline: none;
  border-color: var(--color-ui-primary);
  box-shadow: 0 0 0 4px rgba(0, 125, 255, .16);
}
.admin-form__errors {
  background: rgba(192, 57, 43, .12);
  color: #c0392b;
  border-radius: 14px;
  padding: 12px 16px;
  font-weight: 600;
}
.admin-form__toggles {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.admin-toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  color: #2f3848;
}
.admin-form__actions {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  padding: 16px 0;
  position: sticky;
  bottom: 0;
  background: #fff;
  border-top: 1px solid rgba(15, 30, 55, .08);
}

.admin-card__controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 24px;
  border-bottom: 1px solid rgba(15, 30, 55, .08);
  flex-wrap: wrap;
}
.admin-card__controls--stack {
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
}
.admin-card__hint {
  font-size: 0.9rem;
  color: #4b5668;
}
.admin-form__field--content textarea {
  min-height: 400px;
  max-height: 600px;
  resize: vertical;
  width: 100%;
  white-space: pre;
  font-family: 'PT Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
  tab-size: 4;
  line-height: 1.4;
}
.admin-form__field--parent select {
  max-width: 420px;
}
.admin-files__updated {
  display: inline-block;
}
.admin-files__updated-date {
  display: block;
  font-weight: 600;
  color: var(--gray-900);
}
.admin-files__updated-time {
  display: block;
  color: #677286;
  font-size: 0.82rem;
}
.admin-sitepages__status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.82rem;
  background: rgba(0, 125, 255, .14);
  color: var(--color-ui-primary);
}
.admin-sitepages__status--hidden {
  background: rgba(231, 76, 60, .14);
  color: #e74c3c;
}
.admin-settings__name {
  font-weight: 600;
  color: var(--gray-900);
  word-break: break-word;
}
.admin-settings__value {
  display: block;
  white-space: pre-line;
  word-break: break-word;
  color: var(--gray-800);
  font-size: 0.95rem;
  max-width: min(540px, 75vw);
}
.admin-settings__empty {
  color: var(--gray-500);
  font-style: italic;
}
.admin-card--files .admin-card__summary {
  font-size: 0.94rem;
  font-weight: 500;
  color: #4b5668;
}
.admin-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.admin-breadcrumbs__item {
  border: none;
  background: rgba(9, 22, 41, .06);
  color: #0f2137;
  padding: 8px 12px;
  border-radius: 999px;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.admin-breadcrumbs__item:hover,
.admin-breadcrumbs__item:focus-visible {
  background: rgba(0, 125, 255, .16);
  color: var(--color-ui-primary);
  outline: none;
}
.admin-breadcrumbs__item.is-active {
  background: var(--color-ui-primary);
  color: var(--white);
}
.admin-link {
  color: var(--color-ui-primary);
  font-weight: 600;
  text-decoration: none;
  transition: color .2s ease;
}
.admin-link:focus-visible,
.admin-link:hover {
  color: #0051a8;
  text-decoration: underline;
}
.admin-link--icon {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
  font: inherit;
}
.admin-link--icon:focus-visible {
  outline: 2px solid rgba(0, 125, 255, .32);
  outline-offset: 2px;
}
.admin-card__summary {
  font-weight: 600;
  color: #4b5668;
}
.admin-search {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1 320px;
}
.admin-search__input {
  flex: 1 1 auto;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid rgba(19, 33, 68, .16);
  font-size: 0.96rem;
  font-family: inherit;
}
.admin-search__input:focus {
  outline: none;
  border-color: var(--color-ui-primary);
  box-shadow: 0 0 0 4px rgba(0, 125, 255, .16);
}
.admin-btn--compact {
  padding: 10px 16px;
  font-size: 0.95rem;
}
.admin-btn--ghost {
  background: transparent;
  color: var(--color-ui-primary);
  border: 1px solid rgba(0, 125, 255, .28);
}
.admin-btn--ghost:hover,
.admin-btn--ghost:focus-visible {
  background: rgba(0, 125, 255, .08);
  box-shadow: none;
}
.admin-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 24px;
  border-top: 1px solid rgba(15, 30, 55, .08);
  flex-wrap: wrap;
}
.admin-pagination__status {
  font-weight: 600;
  color: #4b5668;
}
.admin-pagination button {
  min-width: 120px;
}
.admin-pagination button:disabled {
  opacity: .5;
  cursor: not-allowed;
}
.admin-pagination.is-hidden {
  display: none;
}

@media (max-width: 640px) {
  .admin-card__controls {
    padding: 16px;
  }
  .admin-pagination {
    padding: 16px;
  }
}

@media (max-width: 720px) {
  .admin-page__header--split {
    flex-direction: column;
    align-items: stretch;
  }
  .admin-form__actions {
    flex-direction: column;
    align-items: stretch;
  }
}

/* Weather widget */
.site-header__detail--weather {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  border-radius: 20px;
  color: #fff;
  flex: 1 1 240px;
  min-width: 220px;
  align-self: stretch;
}
.site-header__detail--weather .site-header__weather-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: baseline;
  justify-content: space-between;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, .75);
  flex: 1 1 100%;
}
.site-header__detail--weather .site-header__weather-location {
  font-weight: 700;
  font-size: 1.05rem;
  color: #fff;
}
.site-header__detail--weather .site-header__weather-main {
  display: flex;
  align-items: center;
  gap: 18px;
  flex: 1 1 220px;
}
.site-header__detail--weather .site-header__weather-icon {
  font-size: clamp(2.5rem, 2rem + 1vw, 3rem);
}
.site-header__detail--weather .site-header__weather-temp {
  display: grid;
  gap: 6px;
}
.site-header__detail--weather .site-header__weather-value {
  font-size: clamp(2.2rem, 1.8rem + 1vw, 2.8rem);
  font-weight: 700;
  text-shadow: 0 12px 24px rgba(0, 0, 0, .35);
}
.site-header__detail--weather .site-header__weather-desc {
  font-size: 1rem;
  color: rgba(255, 255, 255, .8);
}
.site-header__detail--weather .site-header__weather-extra {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  flex: 1 1 240px;
}
.site-header__detail--weather .site-header__weather-extra-item {
  display: grid;
  gap: 4px;
  font-size: 0.88rem;
  color: rgba(255, 255, 255, .78);
}
.site-header__detail--weather .site-header__weather-extra-item dt {
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: rgba(255, 255, 255, .62);
}
.site-header__detail--weather .site-header__weather-extra-item dd {
  margin: 0;
  font-weight: 600;
}

.site-header__detail--weather {
  --weather-gap: 16px;
}

@media (max-width: 768px) {
  .site-header__detail--weather {
    flex-direction: column;
    align-items: stretch;
    gap: var(--weather-gap);
  }
  .site-header__detail--weather .site-header__weather-main,
  .site-header__detail--weather .site-header__weather-extra {
    flex: 1 1 auto;
  }
}

/* Home sections */
.home-container {
  padding: 20px 0;
}
@media (max-width: var(--bp-md)) {
  .home-container {
    padding-inline: clamp(12px, 5vw, 24px);
  }
}

.main-area--home {
  display: flex;
  flex-direction: column;
  gap: clamp(32px, 4vw, 56px);
}

.home-section {
  background: transparent;
  padding: 20px;
}

.home-section__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: clamp(16px, 2vw, 24px);
}

.home-section__header h2 {
  font-size: clamp(1.6rem, 1.2rem + 1vw, 2.2rem);
  font-weight: 800;
  margin: 0;
  color: var(--text-color);
}

.home-section__header p {
  margin: 0;
  color: #5b6677;
  max-width: 420px;
}

.home-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  color: var(--color-ui-primary);
  text-decoration: none;
  transition: color .2s ease, transform .2s ease;
}

.home-link::after {
  content: "\f061";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 0.75rem;
}

.home-link:hover,
.home-link:focus-visible {
  color: var(--color-ui-primary-600);
  transform: translateX(2px);
}

.home-important {
  --important-active-bg: #29b15c;
  --important-active-color: #ffffff;
  --important-tab-bg: #f1f4fb;
  --important-tab-color: #2a374c;
  --important-border: rgba(13, 32, 64, .08);
}

.home-section__header--important {
  align-items: flex-start;
}

.home-important__head p {
  margin-top: 6px;
  max-width: 520px;
}

.home-important__status {
  font-weight: 600;
  color: #5b6677;
  white-space: nowrap;
}

.home-important__stage > .home-important__status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: clamp(12px, 2vw, 18px);
}

.home-important__slider {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 4vw, 28px);
}

.home-important__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.home-important__tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid var(--important-border);
  background: var(--important-tab-bg);
  color: var(--important-tab-color);
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  transition: background .25s ease, color .25s ease, box-shadow .25s ease, border-color .25s ease;
  max-width: 100%;
  text-align: center;
  white-space: normal;
}

.home-important__tab:hover,
.home-important__tab:focus-visible {
  background: rgba(34, 156, 243, .14);
  border-color: rgba(34, 156, 243, .24);
}

.home-important__tab.is-active {
  background: var(--important-active-bg);
  border-color: transparent;
  color: var(--important-active-color);
  box-shadow: 0 18px 32px rgba(41, 177, 92, .28);
}

.home-important__stage {
  position: relative;
  background: #fff;
  border-radius: 28px;
  border: 1px solid var(--important-border);
  box-shadow: 0 28px 46px rgba(15, 44, 86, .12);
  padding: clamp(22px, 4vw, 36px);
  min-height: 350px;
  overflow: hidden;
}

.home-important__panels {
  position: relative;
}

.home-important__slide {
  display: flex;
  gap: clamp(22px, 4vw, 40px);
  align-items: stretch;
  min-height: 350px;
}

.home-important__slide[hidden] {
  display: none;
}

.home-important__media {
  flex: 0 0 350px;
  height: 350px;
  border-radius: 24px;
  overflow: hidden;
  background: #0d1730;
  position: relative;
  box-shadow: 0 22px 38px rgba(15, 44, 86, .2);
  margin-left: clamp(58px, 4vw, 80px);
}

.home-important__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  min-height: 240px;
}

.home-important__details {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 2.5vw, 24px);
  justify-content: center;
  min-height: 350px;
  padding-right: clamp(64px, 6vw, 96px);
}

.home-important__meta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-weight: 600;
  color: #657085;
  font-size: 0.95rem;
}

.home-important__tag {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(34, 156, 243, .12);
  color: #1e4a94;
  font-size: 0.85rem;
  font-weight: 600;
}

.home-important__title {
  margin: 0;
  font-size: clamp(1.45rem, 1.1rem + .8vw, 2rem);
  line-height: 1.25;
}

.home-important__title a {
  color: var(--text-color);
  text-decoration: none;
  transition: color .25s ease;
}

.home-important__title a:hover,
.home-important__title a:focus-visible {
  color: var(--color-ui-primary);
}

.home-important__excerpt {
  margin: 0;
  color: #4a5568;
  line-height: 1.65;
  font-size: 1rem;
}

.home-important__footer {
  margin-top: clamp(18px, 3vw, 26px);
  display: flex;
  justify-content: flex-end;
}

.home-important__link {
  font-weight: 700;
}

.home-important__nav {
  position: absolute;
  top: 50%;
  --important-nav-transform: translateY(-50%);
  transform: var(--important-nav-transform);
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: none;
  background: rgba(13, 32, 64, .12);
  color: #1b2d47;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .25s ease, color .25s ease, transform .25s ease;
  z-index: 5;
  pointer-events: auto;
}

.home-important__nav span::before {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1.1rem;
  display: inline-block;
}

.home-important__nav--prev { left: clamp(12px, 2vw, 24px); }
.home-important__nav--prev span::before { content: "\f104"; }

.home-important__nav--next { right: clamp(12px, 2vw, 24px); }
.home-important__nav--next span::before { content: "\f105"; }

.home-important__nav:hover,
.home-important__nav:focus-visible {
  background: rgba(13, 32, 64, .2);
  color: #0b1d35;
  transform: var(--important-nav-transform) scale(1.05);
}

@media (max-width: 1200px) {
  .home-important__slide {
    flex-direction: column;
    min-height: auto;
  }

  .home-important__media {
    flex: none;
    width: 100%;
    height: clamp(220px, 50vw, 320px);
    margin-left: 0;
  }

  .home-important__details {
    min-height: auto;
    padding-right: 0;
  }

  .home-important__stage {
    min-height: 0;
    padding-bottom: clamp(56px, 12vw, 92px);
  }

  .home-important__nav {
    top: auto;
    bottom: clamp(18px, 4vw, 26px);
    --important-nav-transform: translateY(0);
  }
}

@media (max-width: var(--bp-sm)) {
  .home-important__tabs {
    gap: 8px;
    justify-content: center;
  }

  .home-important__tab {
    flex: 1 1 calc(50% - 8px);
  }

  .home-important__status {
    font-size: 0.85rem;
  }

  .home-important__stage {
    padding: clamp(18px, 5vw, 24px);
    min-height: 0;
    margin-inline: clamp(8px, 4vw, 18px);
    padding-bottom: clamp(62px, 18vw, 96px);
  }

  .home-important__nav {
    width: 42px;
    height: 42px;
    bottom: clamp(16px, 5vw, 22px);
    --important-nav-transform: translateY(0);
  }

  .home-important__slider {
    padding-inline: clamp(6px, 4vw, 16px);
  }
}

.home-important__nav:disabled {
  opacity: .45;
  cursor: not-allowed;
  transform: translateY(-50%);
}

.home-news {
  position: relative;
}

.home-section__header--news {
  align-items: center;
}

.home-section__header--news p {
  margin: 6px 0 0;
  color: #657085;
  max-width: 460px;
}

.home-button--outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 22px;
  border-radius: 999px;
  border: 1px solid rgba(15, 44, 86, .16);
  background: transparent;
  color: #0f2c56;
  font-weight: 700;
  text-decoration: none;
  transition: background .25s ease, color .25s ease, box-shadow .25s ease;
}

.home-button--outline:hover,
.home-button--outline:focus-visible {
  background: rgba(15, 44, 86, .08);
  box-shadow: 0 14px 30px rgba(15, 44, 86, .16);
}

.home-button--outline::after {
  content: "\f061";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 0.85rem;
  margin-left: 8px;
}

.home-news__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(18px, 4vw, 28px);
}

.home-news-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 24px;
  border: 1px solid rgba(13, 32, 64, .08);
  box-shadow: 0 20px 40px rgba(13, 32, 64, .12);
  overflow: hidden;
  min-height: 100%;
  transition: transform .3s ease, box-shadow .3s ease;
}

.home-news-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 54px rgba(13, 32, 64, .2);
}

.home-news-card__media {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 10;
}

.home-news-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.home-news-card:hover .home-news-card__media img {
  transform: scale(1.05);
}

.home-news-card__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: clamp(18px, 3.6vw, 26px);
}

.home-news-card__meta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: .92rem;
  font-weight: 600;
  color: rgba(14, 38, 72, .72);
}

.home-news-card__tag {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 999px;
  background: rgba(0, 125, 255, .12);
  color: #1650a2;
  font-size: .8rem;
  font-weight: 600;
}

.home-news-card__title {
  margin: 0;
  font-size: clamp(1.08rem, .98rem + .55vw, 1.4rem);
  line-height: 1.35;
}

.home-news-card__title a {
  color: var(--text-color);
  text-decoration: none;
  transition: color .25s ease;
}

.home-news-card__title a:hover,
.home-news-card__title a:focus-visible {
  color: var(--color-ui-primary);
}

.home-news-card__excerpt {
  margin: 0;
  color: #4a5668;
  line-height: 1.6;
  flex: 1;
}

.home-news-card__more {
  align-self: flex-start;
  font-weight: 600;
}

@media (max-width: var(--bp-lg)) {
  .home-news__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-news-card--wide {
    grid-column: 1 / -1;
  }
}

@media (max-width: var(--bp-md)) {
  .home-news__grid {
    grid-template-columns: 1fr;
  }
  .home-news-card--wide {
    grid-column: auto;
  }
}

@media (max-width: 768px) {
  .home-paid__content {
    flex-direction: column;
    align-items: flex-start;
  }
}

.home-paid {
  background: linear-gradient(135deg, rgba(0, 125, 255, .08), rgba(0, 125, 255, .18));
  border: 1px solid rgba(0, 65, 150, .12);
  border-radius: 24px;
  padding: clamp(28px, 4vw, 40px);
}

.home-paid__content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  flex-wrap: wrap;
}

.home-paid__content h2 {
  margin: 0 0 12px;
  font-size: clamp(1.6rem, 1.2rem + 1vw, 2.1rem);
}

.home-paid__content p {
  margin: 0;
  max-width: 640px;
  color: #2f3848;
  line-height: 1.65;
}

.home-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 22px;
  border-radius: 16px;
  background: var(--color-ui-primary);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.home-button:hover,
.home-button:focus-visible {
  background: var(--color-ui-primary-600);
  transform: translateY(-1px);
  box-shadow: 0 16px 30px rgba(0, 125, 255, .24);
}

.home-useful__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
@media (max-width: 1200px) {
  .home-useful__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 920px) {
  .home-useful__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .home-useful__grid { grid-template-columns: 1fr; }
}

.home-useful__item {
  background: #fff;
  border-radius: 18px;
  border: 1px solid rgba(13, 32, 64, .08);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.home-useful__item:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.home-useful__link {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: space-between;
  text-decoration: none;
  color: inherit;
  padding: 20px 24px 24px;
  gap: 16px;
  height: 100%;
  width: 100%;
}

.home-useful__image {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  background: #f3f6fb;
  display: block;
}

.home-useful__image img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}

.home-useful__title {
  font-weight: 600;
  text-align: center;
  line-height: 1.4;
}

.home-faq__list {
  display: grid;
  gap: 16px;
}

.home-faq__item {
  border-radius: 18px;
  border: 1px solid rgba(13, 32, 64, .08);
  background: #fff;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.home-faq__button {
  width: 100%;
  border: none;
  background: transparent;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 18px 22px;
  font-size: 1.05rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  color: var(--text-color);
}

.home-faq__button:focus-visible {
  outline: 2px solid rgba(0, 125, 255, .45);
  outline-offset: 4px;
}

.home-faq__question {
  flex: 1 1 auto;
}

.home-faq__icon {
  flex: none;
  font-size: 1.4rem;
  line-height: 1;
  color: var(--color-ui-primary);
}

.home-faq__panel {
  padding: 0 22px 22px;
}

.home-faq__body {
  display: grid;
  gap: 12px;
  color: #4b5668;
  line-height: 1.6;
}

.home-faq__body ul {
  padding-left: 18px;
}

.home-faq__body a {
  color: var(--color-ui-primary);
}

.home-faq__body .description__title,
.home-faq__body .contact-list__h,
.home-faq__body .h4 {
  font-weight: 700;
  color: var(--text-color);
  margin-bottom: 6px;
}

@media (max-width: 540px) {
  .home-important__grid {
    grid-template-columns: 1fr;
  }
}

.site-header-container:not(.hero-header) .site-header__detail--weather {
  background: var(--white);
  color: var(--text-color);
  border: 1px solid rgba(15, 44, 86, .08);
  box-shadow: var(--shadow-md);
}
.site-header-container:not(.hero-header) .site-header__detail--weather .site-header__weather-meta {
  color: #5b6677;
}
.site-header-container:not(.hero-header) .site-header__detail--weather .site-header__weather-location {
  color: var(--text-color);
}
.site-header-container:not(.hero-header) .site-header__detail--weather .site-header__weather-desc {
  color: #4a5565;
}
.site-header-container:not(.hero-header) .site-header__detail--weather .site-header__weather-extra-item {
  color: #3c475a;
}
.site-header-container:not(.hero-header) .site-header__detail--weather .site-header__weather-extra {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.site-header-container:not(.hero-header) .site-header__detail--weather .site-header__weather-extra-item dt {
  color: #7b8799;
}
.site-header-container:not(.hero-header) .site-header__lead-inner {
  border-color: rgba(9, 22, 41, .18);
  background: rgba(9, 22, 41, .04);
}

@media (max-width: 960px) {
  .site-header {
    gap: 20px;
    padding-block: 24px;
  }
  .hero-header {
    min-height: auto;
    padding-block: 96px;
  }
  .hero-header .site-header {
    gap: 32px;
  }
  .site-header__row--primary {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
  .site-header__row--primary > .site-header__brand { order: 1; }
  .site-header__row--primary > .site-header__lead { order: 2; }
  .site-header__row--primary > .site-header__detail--info { order: 3; }
  .site-header__row--primary > .site-header__detail--weather { order: 4; }
  .hero-header .site-header__row--primary {
    align-items: flex-start;
  }
  .site-header__lead {
    width: 100%;
  }
  .site-header__brand {
    gap: 16px;
  }
  .site-header__logo img {
    height: 72px;
  }
  .site-nav__wrap {
    flex-direction: column;
    align-items: flex-start;
  }
  .site-nav__actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    margin-left: 0;
  }
  .site-nav__search {
    width: 100%;
    flex: none;
  }
  .site-nav__accent {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .site-topbar__content {
    flex-direction: column;
    align-items: flex-start;
  }
  .hero-header {
    padding-block: 72px;
  }
  .site-topbar__left {
    width: 100%;
    justify-content: space-between;
  }
  .mega-toggle {
    width: 44px;
    height: 44px;
  }
  .site-header__detail {
    flex: 1 1 100%;
  }
  .site-nav__wrap {
    gap: 16px;
  }
  .main-menu-content {
    gap: 6px;
  }
}

/* Mega menu overlay */
body.mega-menu-open {
  overflow: hidden;
}
html.admin-modal-open,
body.admin-modal-open {
  overflow: hidden;
}
.mega-menu-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 32px 18px;
  background: rgba(10, 20, 35, .58);
  z-index: 1300;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
.mega-menu-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}
.mega-menu-overlay__backdrop {
  position: absolute;
  inset: 0;
}
.mega-menu-overlay__panel {
  position: relative;
  background: var(--white);
  color: var(--text-color);
  width: min(1100px, 100%);
  max-height: 100%;
  border-radius: 32px;
  box-shadow: var(--shadow-lg);
  padding: 48px;
  overflow: auto;
  transform: translateY(32px);
  transition: transform .3s ease;
}
.mega-menu-overlay.is-open .mega-menu-overlay__panel {
  transform: translateY(0);
}
.mega-menu-overlay__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 32px;
}
.mega-menu-overlay__title-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mega-menu-overlay__subtitle {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--color-ui-primary-600);
  opacity: .85;
}
.mega-menu-overlay__header h2 {
  margin: 0;
  font-size: clamp(1.6rem, 1.4rem + .8vw, 2.4rem);
  font-weight: 700;
}
.mega-menu-overlay__close {
  position: relative;
  width: 48px;
  height: 48px;
  border-radius: 16px;
  border: none;
  background: var(--color-bg-primary);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.mega-menu-overlay__close:hover,
.mega-menu-overlay__close:focus-visible {
  background: var(--color-ui-primary-200);
  transform: translateY(-2px);
}
.mega-menu-overlay__close::before,
.mega-menu-overlay__close::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background: var(--text-color);
}
.mega-menu-overlay__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.mega-menu-overlay__close::after { transform: translate(-50%, -50%) rotate(-45deg); }

.mega-menu-search {
  display: flex;
  align-items: stretch;
  gap: 12px;
  flex-wrap: nowrap;
  width: 100%;
  margin-bottom: 28px;
}
.mega-menu-overlay__search {
  width: 100%;
  flex: 0 0 100%;
}
.mega-menu-search__field {
  position: relative;
  flex: 1 1 auto;
}
.mega-menu-search__field input {
  width: 100%;
  border: 1px solid rgba(17, 24, 39, .16);
  border-radius: 18px;
  padding: 12px 16px 12px 46px;
  font-size: 1rem;
  font-weight: 500;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.mega-menu-search__field input:focus {
  outline: none;
  border-color: var(--color-ui-primary);
  box-shadow: 0 0 0 3px rgba(0, 125, 255, .14);
}
.mega-menu-search__icon {
  position: absolute;
  top: 50%;
  left: 18px;
  transform: translateY(-50%);
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 0.95rem;
  color: rgba(17, 24, 39, .55);
  pointer-events: none;
}
.mega-menu-search__icon::before { content: "\f002"; }
.mega-menu-search__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  flex: 0 0 auto;
  border-radius: 16px;
  border: none;
  background: var(--color-ui-primary);
  color: var(--white);
  font-weight: 700;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.mega-menu-search__submit:hover,
.mega-menu-search__submit:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 16px 28px rgba(0, 125, 255, .25);
}

.mega-menu-overlay__body {
  display: flex;
  flex-direction: column;
  gap: 44px;
}
.mega-menu-overlay__content {
  display: flex;
  gap: 44px;
  flex-wrap: wrap;
  align-items: flex-start;
}
.mega-menu-overlay__nav {
  flex: 2 1 520px;
}
.mega-menu-overlay__aside {
  flex: 1 1 260px;
  display: grid;
  gap: 16px;
}
.mega-menu-groups {
  display: grid;
  gap: 28px;
}
.mega-menu-group h3 {
  margin: 0 0 14px;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 0.85rem;
  color: #6d7686;
  font-weight: 700;
}
.mega-menu-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}
.mega-menu-item {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.mega-menu-item--nested .mega-menu-link {
  justify-content: space-between;
}
.mega-menu-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-radius: 18px;
  background: #f3f6fb;
  text-decoration: none;
  color: var(--text-color);
  font-weight: 600;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.mega-menu-link__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(0, 125, 255, .14);
  color: var(--color-ui-primary);
  font-size: 0.85rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}
.mega-menu-link__icon::before { content: "\f061"; }
.mega-menu-link:hover,
.mega-menu-link:focus-visible {
  background: rgba(0, 125, 255, .12);
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 125, 255, .16);
}
.mega-menu-link--active {
  background: rgba(0, 125, 255, .16);
  box-shadow: 0 14px 28px rgba(0, 125, 255, .18);
}
.mega-menu-sublist {
  list-style: none;
  margin: 0;
  padding: 0 0 0 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mega-menu-sublink {
  display: block;
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(15, 44, 86, .05);
  color: var(--text-color);
  font-weight: 600;
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.mega-menu-sublink:hover,
.mega-menu-sublink:focus-visible {
  background: rgba(0, 125, 255, .12);
  color: var(--color-ui-primary);
}
.mega-menu-sublink--active {
  background: var(--color-ui-primary);
  color: var(--white);
}

.mega-menu-card {
  padding: 18px 20px;
  border-radius: 18px;
  background: #f3f6fb;
  display: flex;
  flex-direction: column;
  gap: 6px;
  box-shadow: var(--shadow-sm);
}
.mega-menu-card--accent {
  background: rgba(0, 125, 255, .12);
  border-left: 4px solid var(--color-ui-primary);
}
.mega-menu-card__label {
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: .12em;
  color: #6d7484;
  font-weight: 700;
}
.mega-menu-card__value {
  font-weight: 600;
  color: var(--text-color);
  text-decoration: none;
  line-height: 1.5;
}
.mega-menu-card__value:hover {
  color: var(--color-ui-primary);
}
.mega-menu-overlay__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 22px;
  border-radius: 18px;
  background: var(--color-accent);
  color: var(--white);
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 16px 30px rgba(255, 61, 0, .28);
  transition: transform .2s ease, box-shadow .2s ease;
}
.mega-menu-overlay__cta:hover,
.mega-menu-overlay__cta:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 20px 36px rgba(255, 61, 0, .32);
}

@media (max-width: 1065px) {
  .mega-menu-overlay__panel {
    border-radius: 24px;
    padding: 36px 28px;
  }
  .mega-menu-overlay__body {
    gap: 32px;
  }
}

@media (max-width: 640px) {
  .mega-menu-overlay {
    padding: 18px;
  }
  .mega-menu-overlay__panel {
    padding: 28px 20px;
    border-radius: 20px;
  }
  .mega-menu-overlay__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .mega-menu-overlay__close {
    align-self: flex-end;
  }
  .mega-menu-search {
    flex-wrap: wrap;
    gap: 12px;
  }
  .mega-menu-search__field {
    flex: 1 1 100%;
  }
  .mega-menu-search__submit {
    width: 100%;
    flex: 1 1 100%;
  }
  .mega-menu-overlay__body {
    flex-direction: column;
  }
  .mega-menu-overlay__content {
    flex-direction: column;
  }
  .mega-menu-overlay__aside {
    width: 100%;
  }
}

/* Forms */
.form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 18px;
  position: relative;
}
.form-group label {
  font-weight: 700;
  color: var(--text-color);
  font-size: 0.95rem;
}
.form-control {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border-radius: 14px;
  border: 1px solid #dce3eb;
  background-color: var(--white);
  padding: 12px 18px 12px 52px;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--text-color);
  transition: border-color .2s ease, box-shadow .2s ease;
  background-repeat: no-repeat;
  background-position: 18px center;
  background-size: 22px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23007DFF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M5 6h14M5 12h14M5 18h9'/%3E%3C/svg%3E");
}
.form-control[data-icon="user"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23007DFF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M4 19c0-3.3 3.1-6 7-6h2c3.9 0 7 2.7 7 6'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}
.form-control[data-icon="location"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23007DFF' d='M12 2a7 7 0 00-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 00-7-7zm0 10a3 3 0 110-6 3 3 0 010 6z'/%3E%3C/svg%3E");
}
.form-control[data-icon="order"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23007DFF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Cpath d='M8 7h8M8 12h8M8 17h5'/%3E%3C/svg%3E");
}
.form-control[data-icon="payment"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23007DFF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M9 4h6.5a4 4 0 010 8H9V4z'/%3E%3Cpath d='M9 12v8M6 16h10'/%3E%3C/svg%3E");
}
.form-control:focus {
  outline: none;
  border-color: var(--color-ui-primary);
  box-shadow: 0 0 0 4px rgba(0, 125, 255, .15);
}
.form-control::placeholder {
  color: #8a93a5;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 22px;
  border-radius: 14px;
  border: none;
  font-weight: 700;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}
.btn-primary {
  background: var(--color-ui-primary);
  color: var(--white);
  box-shadow: 0 14px 26px rgba(0, 125, 255, .22);
}
.btn-primary:hover,
.btn-primary:focus-visible {
  background: var(--color-ui-primary-600);
  transform: translateY(-2px);
  box-shadow: 0 16px 30px rgba(0, 125, 255, .28);
}
.btn-primary:active {
  transform: translateY(0);
}

/* ============================================================================
   4) SERVICE SECTION (карточки услуг)
   ========================================================================== */

.home-services {
  padding-block: clamp(24px, 5vw, 48px);
}
.service-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(220px, 1fr));
  gap: clamp(16px, 3vw, 28px);
  margin: 0;
  padding: clamp(14px, 3vw, 28px);
  list-style: none;
  background: var(--color-bg-secondary);
  border-radius: 18px;
}
.service-grid__item {
  list-style: none;
}
.service-grid__item--stretch {
  grid-column: auto;
}
.service-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: clamp(220px, 28vw, 320px);
  border-radius: 22px;
  overflow: hidden;
  padding: clamp(18px, 3vw, 32px);
  color: #fdfcff;
  text-decoration: none;
  box-shadow: 0 24px 50px rgba(9, 18, 36, .28);
  background: #091324;
  transition: transform .35s ease, box-shadow .35s ease;
}
.service-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 140% at 50% 100%, rgba(38, 99, 235, .42) 0%, rgba(9, 18, 36, 0) 58%);
  opacity: .75;
  mix-blend-mode: screen;
  pointer-events: none;
  transition: opacity .35s ease;
}
.service-tile__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
  filter: saturate(1.08);
  transition: transform .4s ease, filter .4s ease;
}
.service-tile__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7, 16, 32, .94) 0%, rgba(7, 16, 32, .8) 44%, rgba(7, 16, 32, .62) 68%, rgba(7, 16, 32, 0) 100%);
  pointer-events: none;
  transition: opacity .35s ease;
}
.service-tile__label {
  position: relative;
  max-width: 20ch;
  font: 600 clamp(1rem, .94rem + .35vw, 1.18rem)/1.35 var(--font-sans);
  letter-spacing: .01em;
  text-transform: none;
  color: inherit;
  text-shadow: 0 18px 36px rgba(0, 0, 0, .55);
}
.service-tile:focus-visible {
  outline: 3px solid rgba(255, 255, 255, .8);
  outline-offset: 4px;
}
.service-tile:hover,
.service-tile:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 34px 68px rgba(9, 18, 36, .32);
}
.service-tile:hover .service-tile__media,
.service-tile:focus-visible .service-tile__media {
  transform: scale(1.14);
  filter: saturate(1.18);
}
.service-tile:hover .service-tile__scrim,
.service-tile:focus-visible .service-tile__scrim {
  opacity: .92;
}
.service-tile:hover::after,
.service-tile:focus-visible::after {
  opacity: 1;
}

/* Адаптивные состояния */
@media (max-width: 1500px) {
  .service-grid {
    grid-template-columns: repeat(3, minmax(240px, 1fr));
    grid-template-areas:
      "svc1 svc2 svc3"
      "svc4 svc5 svc5";
  }
  .service-grid__item--a { grid-area: svc1; }
  .service-grid__item--b { grid-area: svc2; }
  .service-grid__item--c { grid-area: svc3; }
  .service-grid__item--d { grid-area: svc4; }
  .service-grid__item--stretch { grid-area: svc5; }
}
@media (max-width: 1280px) {
  .service-grid {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
    grid-template-areas:
      "svc1 svc2"
      "svc3 svc4"
      "svc5 svc5";
  }
  .service-grid__item--a { grid-area: svc1; }
  .service-grid__item--b { grid-area: svc2; }
  .service-grid__item--c { grid-area: svc3; }
  .service-grid__item--d { grid-area: svc4; }
  .service-grid__item--stretch { grid-area: svc5; }
}
@media (max-width: var(--bp-md)) {
  .service-tile {
    min-height: clamp(220px, 36vw, 320px);
  }
}
@media (max-width: 640px) {
  .service-grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "svc1"
      "svc2"
      "svc3"
      "svc4"
      "svc5";
  }
  .service-grid__item--a { grid-area: svc1; }
  .service-grid__item--b { grid-area: svc2; }
  .service-grid__item--c { grid-area: svc3; }
  .service-grid__item--d { grid-area: svc4; }
  .service-grid__item--stretch { grid-area: svc5; }
  .service-tile {
    min-height: 220px;
  }
}

/* ============================================================================
   5) SEND METERS (4 кнопки)
   ========================================================================== */

.send-meters-row {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px;
  background: var(--color-bg-secondary); width: 100%; padding-bottom: 15px;
}
.send-meters-btn {
  padding: 20px; text-align: center; border-radius: 8px; background-color: var(--color-ui-primary);
  box-shadow: 0 0 10px rgba(0,0,0,0.1); cursor: pointer; opacity: .9;
  transition: transform .2s, box-shadow .2s, opacity .2s;
}
.send-meters-btn:hover { transform: translateY(-5px); box-shadow: 0 4px 15px rgba(0,0,0,.2); opacity: 1; }
.send-meters-btn a {
  display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%;
  text-decoration: none; color: #fff; font-weight: 700;
}
.send-meters-btn i {
  font-size: 40px; color: #fff; margin-bottom: 10px;
  text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px  1px 0 #000, 1px  1px 0 #000;
}

/* Адаптив 4→3→2→1 */
@media (max-width: var(--bp-lg)) { .send-meters-row { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: var(--bp-md)) { .send-meters-row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: var(--bp-xs)) { .send-meters-row { grid-template-columns: 1fr; } }

/* ============================================================================
   6) LAYOUT (сайдбар + контент) и САЙДБАР
   ========================================================================== */

.layout { display: flex; gap: 20px; background-color: var(--color-bg-secondary); }
.layout--hierarchy {
  display: grid;
  gap: 20px;
  background-color: var(--color-bg-secondary);
  grid-template-columns: 1fr;
}
.layout--hierarchy--with-menu {
  grid-template-columns: minmax(220px, 280px) 1fr;
  align-items: start;
}
.layout--hierarchy--full {
  grid-template-columns: 1fr;
}
.sidebar { flex: 0 0 250px; background-color: #fff; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.sidebar-title { margin: 12px 0; padding: 0 12px; font-weight: 800; }
.sidebar-content { padding: 0 12px 12px; display: grid; gap: 10px; }
.sidebar-btn{
  display:block; width:100%; padding:12px 14px; border-radius:12px; border:1px solid #ececec; color:#222; text-decoration:none;
  line-height:1.25; transition: transform .12s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease; box-shadow: var(--shadow-sm);
}
.sidebar-btn:hover{ transform: translateY(-1px); box-shadow: var(--shadow-md); border-color:#e5e5e5; }
.sidebar-btn:focus-visible{ outline: 2px solid var(--color-ui-primary-200); outline-offset: 2px; }

.buttonVacancy{
  position:relative; text-align:center; overflow:hidden;
  /*background: linear-gradient(180deg, #f8fbff 0%, #f2f7ff 100%);*/
  border:1px solid #cfe0ff; box-shadow: 0 2px 8px rgba(15,90,212,.08);
  color:#0f5ad4; padding:14px; animation: vacancy-breathe 2.2s ease-in-out infinite; transform-origin:center;
}
.buttonVacancy::before{
  content:""; position:absolute; left:6px; top:8px; bottom:8px; width:4px; border-radius:4px;
  background: linear-gradient(180deg, #7fb1ff 0%, #2a73e8 100%); opacity:.9;
}
.buttonVacancy .vac-line1, .buttonVacancy .vac-line2{ display:block; line-height:1.1; }
.buttonVacancy .vac-line1{ font-weight:700; letter-spacing:.4px; text-transform:uppercase; font-size: clamp(1rem, .9rem + .5vw, 1.15rem); }
.buttonVacancy .vac-line2{ margin-top:2px; font-weight:900; letter-spacing:.3px; text-transform:uppercase; font-size: clamp(1.2rem, 1rem + .9vw, 1.6rem); }
@keyframes vacancy-breathe{ 0%,100%{ transform:scale(.985); box-shadow:0 2px 8px rgba(15,90,212,.10); } 50%{ transform:scale(1); box-shadow:0 8px 18px rgba(15,90,212,.16); } }
.buttonVacancy:hover{ transform: translateY(-1px); box-shadow: 0 10px 22px rgba(15,90,212,.18); border-color:#b5d0ff; color:#0d4fb5; }
.buttonVacancy:focus{ outline:2px solid #99c2ff; outline-offset:2px; }
@media (prefers-reduced-motion: reduce){ .buttonVacancy{ animation:none; } }

.main-area{ flex:1; min-width:0; }
.main-area--hierarchy {
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: 24px;
}
.main-area--hierarchy-full {
  grid-column: span 1;
}
.main-area--single {
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: 28px;
  margin-block: 24px;
}

.page-hierarchy-nav {
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  border: 1px solid rgba(13, 32, 64, .08);
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: sticky;
  top: 120px;
}
.page-hierarchy-nav__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.page-hierarchy-nav__caption {
  margin: 0;
  font-size: 0.82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(17, 36, 64, .6);
}
.page-hierarchy-nav__tree {
  display: block;
}
.page-hierarchy-nav__list,
.page-hierarchy-nav__sublist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}
.page-hierarchy-nav__item {
  margin: 0;
}
.page-hierarchy-nav__sublist {
  margin-top: 6px;
  margin-left: 8px;
  padding-left: 12px;
  border-left: 2px solid rgba(15, 44, 86, .08);
}
.page-hierarchy-nav__link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(15, 44, 86, .04);
  color: var(--text-color);
  text-decoration: none;
  font-weight: 600;
  transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.page-hierarchy-nav__item--root > .page-hierarchy-nav__link {
  font-size: 1.05rem;
  padding: 12px 16px;
  background: rgba(0, 125, 255, .08);
  border: 1px solid rgba(0, 125, 255, .12);
}
.page-hierarchy-nav__item--level-1 > .page-hierarchy-nav__link {
  padding-left: 22px;
}
.page-hierarchy-nav__item--level-2 > .page-hierarchy-nav__link {
  padding-left: 28px;
}
.page-hierarchy-nav__item--level-3 > .page-hierarchy-nav__link {
  padding-left: 34px;
}
.page-hierarchy-nav__link:hover,
.page-hierarchy-nav__link:focus-visible {
  background: rgba(0, 125, 255, .16);
  color: var(--color-ui-primary);
  transform: translateX(4px);
}
.page-hierarchy-nav__item--active > .page-hierarchy-nav__link {
  background: var(--color-ui-primary);
  color: var(--white);
  box-shadow: 0 12px 24px rgba(0, 125, 255, .2);
  transform: none;
}
.page-hierarchy-nav__item--expanded > .page-hierarchy-nav__sublist {
  border-left-color: rgba(0, 125, 255, .24);
}
.page-hierarchy-nav__item--expanded > .page-hierarchy-nav__link:not(.page-hierarchy-nav__link--active) {
  background: rgba(0, 125, 255, .1);
  color: var(--color-ui-primary);
}

.page-breadcrumbs {
  margin-bottom: 20px;
  font-size: 0.85rem;
  color: #5c6373;
}
.page-breadcrumbs__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.page-breadcrumbs__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.page-breadcrumbs__item + .page-breadcrumbs__item::before {
  content: "›";
  color: rgba(92, 99, 115, .7);
  font-size: 0.9rem;
}
.page-breadcrumbs__item a {
  color: inherit;
  text-decoration: none;
  transition: color .15s ease;
}
.page-breadcrumbs__item a:hover,
.page-breadcrumbs__item a:focus-visible {
  color: var(--color-ui-primary);
}
.page-breadcrumbs__item span[aria-current="page"] {
  font-weight: 600;
  color: var(--text-color);
}

/* Навигация категорий новостей (хоризонтально с переносом) */
.category-news-menu{ display:flex; flex-wrap:wrap; gap:10px; padding:8px 12px; }
.category-news-menu-btn{
  display:block; text-decoration:none; color:#000; padding:8px 12px; margin-bottom:8px; border-radius: var(--radius-sm);
  background: #fff; border:1px solid var(--gray-200); transition: background .15s, transform .12s, border-color .15s;
}
.category-news-menu-btn:hover{ background:#f8faff; border-color:#e8efff; transform: translateY(-1px); }

/* Узкие экраны: сайдбар вниз */
@media (max-width: var(--bp-md)) {
  .layout{ flex-direction: column; }
  .sidebar{ order: 2; }
  .main-area{ order: 1; }
  .layout--hierarchy {
    display: flex;
    flex-direction: column;
  }
  .page-hierarchy-nav {
    position: static;
  }
}

/* ============================================================================
   6.0) Личный кабинет — главная
   ========================================================================== */

.account-dashboard {
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: clamp(24px, 3vw, 36px);
  display: grid;
  gap: 24px;
  margin-block: 24px;
}
.account-dashboard__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.account-dashboard__header h1 {
  margin: 0 0 6px;
  font-size: clamp(1.5rem, 1.1rem + 1vw, 2rem);
}
.account-dashboard__messages-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(0, 125, 255, .14);
  color: var(--color-ui-primary);
  text-decoration: none;
  font-weight: 700;
  transition: transform .2s ease, box-shadow .2s ease;
}
.account-dashboard__messages-link:hover,
.account-dashboard__messages-link:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 125, 255, .22);
}
.account-dashboard__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.account-dashboard__logout {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, #ff5c6a, #ff2f4c);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.account-dashboard__logout:hover,
.account-dashboard__logout:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(255, 95, 110, .32);
  filter: brightness(1.05);
  outline: none;
}
.account-dashboard__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  padding: 2px 8px;
  border-radius: 999px;
  background: #ff5151;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
}
.account-dashboard__grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.account-dashboard__card {
  background: linear-gradient(180deg, #ffffff 0%, #f7f9ff 100%);
  border-radius: 20px;
  box-shadow: var(--shadow-sm);
  padding: 24px;
  display: grid;
  gap: 18px;
}
.account-dashboard__card h2 {
  margin: 0;
  font-size: 1.15rem;
}
.account-dashboard__info {
  margin: 0;
  display: grid;
  gap: 12px;
}
.account-dashboard__info div {
  display: grid;
  gap: 4px;
}
.account-dashboard__info dt {
  font-size: 0.78rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #60708c;
}
.account-dashboard__info dd {
  margin: 0;
  font-weight: 600;
  color: var(--text-color);
}
.account-dashboard__alert {
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(0, 125, 255, .12);
  color: var(--color-ui-primary);
  font-weight: 600;
}
.account-dashboard__alert--error {
  background: rgba(255, 81, 81, .12);
  color: #c0392b;
}
.account-dashboard__form {
  display: grid;
  gap: 16px;
}
.account-dashboard__form .form-submit {
  width: 100%;
  justify-content: center;
}
.account-dashboard__toggle {
  display: flex;
  align-items: center;
  gap: 12px;
}
.account-dashboard__toggle-input {
  width: 20px;
  height: 20px;
  accent-color: var(--color-ui-primary);
}
.account-dashboard__toggle-label {
  font-weight: 600;
  color: var(--text-color);
}

@media (max-width: var(--bp-md)) {
  .account-dashboard__header {
    flex-direction: column;
    align-items: flex-start;
  }
  .account-dashboard__actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }
  .account-dashboard__actions > a {
    width: 100%;
    justify-content: center;
  }
}

/* ============================================================================
   6.1) Личный кабинет — сообщения
   ========================================================================== */

.account-messages {
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: 28px;
  margin-block: 24px;
  display: grid;
  gap: 20px;
}
.account-messages__toolbar {
  display: flex;
  justify-content: flex-start;
}

.account-messages__back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 999px;
  background: rgba(15, 44, 86, .08);
  color: var(--color-ui-primary);
  text-decoration: none;
  font-weight: 600;
  transition: background .2s ease, transform .2s ease;
}

.account-messages__back:hover,
.account-messages__back:focus-visible {
  background: rgba(0, 125, 255, .18);
  transform: translateX(2px);
}

.account-messages__header h1 {
  margin-bottom: 6px;
}
.account-messages__alert {
  padding: 10px 16px;
  border-radius: 12px;
  background: rgba(0, 125, 255, .12);
  color: var(--color-ui-primary);
  font-weight: 600;
}
.account-messages__thread {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-height: 420px;
  overflow-y: auto;
  padding-right: 4px;
}
.account-messages__empty {
  margin: 0;
  color: var(--gray-600);
}
.account-message {
  padding: 14px 18px;
  border-radius: 16px;
  max-width: 640px;
  background: #f4f6fb;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35);
}
.account-message--user {
  margin-left: auto;
  background: rgba(0, 125, 255, .12);
}
.account-message--admin {
  margin-right: auto;
  background: rgba(15, 44, 86, .08);
}
.account-message__meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 8px;
  font-size: 0.85rem;
  color: var(--gray-600);
}
.account-message__author {
  font-weight: 700;
}
.account-message__body {
  white-space: pre-wrap;
  line-height: 1.5;
}
.account-messages__form .form-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.account-messages__form .form-textarea {
  border-radius: 12px;
  border: 1px solid rgba(15, 44, 86, .15);
  padding: 12px 14px;
  resize: vertical;
}
.account-messages__form .form-submit {
  align-self: flex-start;
  margin-top: 10px;
}
.form-label {
  font-weight: 600;
}
.form-textarea {
  width: 100%;
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.5;
}
.form-submit {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--color-ui-primary);
  color: #fff;
  border: none;
  cursor: pointer;
  font-weight: 700;
  transition: background .2s ease, transform .2s ease;
}
.form-submit:hover,
.form-submit:focus-visible {
  background: #0f5ad4;
  transform: translateY(-1px);
}
.form-error {
  color: #ff5151;
  font-size: 0.85rem;
}

/* ============================================================================
   6.2) Админка — сообщения пользователей
   ========================================================================== */

.admin-messages__header h1 {
  margin-bottom: 6px;
}
.admin-messages__layout {
  display: grid;
  grid-template-columns: minmax(220px, 320px) 1fr;
  gap: 20px;
}
.admin-messages__list {
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 520px;
  overflow-y: auto;
}
.admin-messages__empty {
  margin: 0;
  color: var(--gray-600);
}
.admin-messages__list-item {
  display: block;
  padding: 12px;
  border-radius: 14px;
  text-decoration: none;
  background: rgba(15, 44, 86, .06);
  color: var(--text-color);
  transition: background .2s ease, transform .2s ease;
}
.admin-messages__list-item:hover,
.admin-messages__list-item:focus-visible {
  background: rgba(0, 125, 255, .18);
  transform: translateY(-1px);
  color: var(--text-color);
}
.admin-messages__list-item--active {
  background: rgba(0, 125, 255, .24);
  color: var(--text-color);
  box-shadow: 0 12px 24px rgba(0, 125, 255, .18);
}
.admin-messages__list-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  font-weight: 700;
}
.admin-messages__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #ff5151;
  color: #fff;
  font-size: 0.75rem;
}
.admin-messages__list-meta {
  font-size: 0.8rem;
  color: var(--gray-600);
  margin-top: 6px;
}
.admin-messages__list-preview {
  margin-top: 6px;
  font-size: 0.85rem;
  color: var(--gray-700);
  line-height: 1.4;
}
.admin-messages__conversation {
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: 20px;
  min-height: 320px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.admin-messages__placeholder {
  color: var(--gray-600);
}
.admin-messages__thread {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-height: 420px;
  overflow-y: auto;
  padding-right: 4px;
}
.admin-message {
  padding: 14px 18px;
  border-radius: 16px;
  max-width: 680px;
  background: rgba(15, 44, 86, .07);
  line-height: 1.5;
}
.admin-message--admin {
  margin-left: auto;
  background: rgba(0, 125, 255, .12);
}
.admin-message__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.85rem;
  color: var(--gray-600);
  margin-bottom: 8px;
}
.admin-message__author {
  font-weight: 700;
}
.admin-message__body {
  white-space: pre-wrap;
}
.admin-messages__form .form-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.admin-messages__form .form-textarea {
  border-radius: 12px;
  border: 1px solid rgba(15, 44, 86, .15);
  padding: 12px 14px;
}
.admin-messages__form .form-submit {
  align-self: flex-start;
}
.admin-messages__alert {
  padding: 8px 14px;
  border-radius: 12px;
  background: rgba(0, 125, 255, .12);
  color: var(--color-ui-primary);
  font-weight: 600;
}

@media (max-width: var(--bp-lg)) {
  .admin-messages__layout {
    grid-template-columns: 1fr;
  }

  .admin-messages__list {
    max-height: none;
    order: 2;
  }

  .admin-messages__conversation {
    order: 1;
  }
}

/* ============================================================================
   7) BANNERS (в сайдбаре)
   ========================================================================== */

.banners-content{ margin-top:24px; padding:0 12px 12px; display:grid; gap:16px; }
.banners-title{ font-weight:800; font-size:1.2rem; margin-bottom:10px; color:#222; }
.banner-item{
  display:flex; flex-direction:column; border-radius:12px; overflow:hidden; background:#fff; border:1px solid #eee;
  box-shadow: var(--shadow-sm); text-decoration:none; transition: transform .2s ease, box-shadow .2s ease;
}
.banner-item img{ width:100%; height:auto; display:block; object-fit:cover; transition: transform .3s ease; }
.banner-item:hover{ transform: translateY(-2px); box-shadow: var(--shadow-md); }
.banner-item:hover img{ transform: scale(1.04); }
.banner-caption{ padding:10px 12px; font-size:.95rem; font-weight:600; color:#333; border-top:1px solid #f0f0f0; background:#fafafa; }

@media (max-width: var(--bp-sm)) {
  .banners-content{ gap:12px; }
  .banner-caption{ font-size:.9rem; padding:8px 10px; }
}

/* ============================================================================
   8) FOOTER (бренд-фон, горизонтальное меню, контакты)
   ========================================================================== */

.footer{ background: var(--color-ui-primary); color: var(--white); margin-top: 32px; }
.footer-container{ max-width: var(--max-width); margin:0 auto; padding:32px var(--gutter); }
.footer-top{
  display:grid;
  grid-template-columns: 1.2fr .9fr 1fr;
  gap:32px;
  align-items:start;
}
.footer-brand{ display:flex; align-items:flex-start; gap:14px; }
.footer-logo{ width:56px; height:auto; flex-shrink:0; border-radius:6px; background:#fff; padding:6px; box-shadow: 0 2px 6px rgba(0,0,0,.1); }
.footer-org{ margin:0 0 6px; font-weight:700; font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); color: var(--white); }
.footer-desc{ margin:0; color: rgba(255,255,255,.85); line-height:1.6; font-size:.95rem; }

.footer-hours{
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:20px 22px;
  border-radius:20px;
  background: rgba(255,255,255,.12);
  color: var(--white);
  box-shadow: 0 16px 32px rgba(12, 70, 140, .18);
}
.footer-hours__icon{
  width:44px;
  height:44px;
  border-radius:14px;
  background: rgba(255,255,255,.18);
  position:relative;
}
.footer-hours__icon::before,
.footer-hours__icon::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  background: var(--color-ui-primary);
  transform: translate(-50%, -50%);
  border-radius:999px;
}
.footer-hours__icon::before{
  width:18px;
  height:3px;
}
.footer-hours__icon::after{
  width:3px;
  height:18px;
}
.footer-hours__content{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.footer-hours__title{
  margin:0;
  font-size:.86rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:700;
  opacity:.9;
}
.footer-hours__value{
  margin:0;
  font-weight:600;
  font-size:1.02rem;
  color: rgba(255,255,255,.96);
}
.footer-hours__sep{
  opacity:.7;
}
.footer-hours--empty{
  display:none;
}
.footer-nav{
  grid-column: 1 / -1;
  margin-top: 24px;
}

.contact-list{ padding:0; margin:0 0 16px; display:grid; gap:6px; }
.contact-list a{ color:var(--white); text-decoration:none; opacity:.9; transition: opacity .2s, text-decoration-color .2s; }
.contact-list a:hover{ text-decoration:underline; opacity:1; }
.footer-social{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.footer-social .site-topbar__action{
  background: rgba(255,255,255,.18);
}
.footer-social .site-topbar__action:hover,
.footer-social .site-topbar__action:focus-visible{
  background: rgba(255,255,255,.28);
}
.footer-social .site-topbar__icon{
  background: transparent;
}

.footer-sep{ display:block; height:2px; margin:24px 0; border:0 !important; background: rgba(255,255,255,.25); border-radius:2px; }
.footer-bottom{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:.95rem; color: rgba(255,255,255,.85); }
.footer-bottom p{ margin:0; }
.footer-legal{ color: rgba(255,255,255,.85); text-decoration:none; }
.footer-legal:hover{ text-decoration:underline; }
.footer-bottom .dot{ margin:0 6px; }
.footer a:focus-visible{ outline:2px solid rgba(255,255,255,.7); outline-offset:2px; border-radius:6px; }

/* Многоуровневое меню в футере */
.footer-menu{ display:flex; flex-direction:column; gap:18px; }
.footer-menu-row{ width:100%; }
.footer-menu-columns{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap:18px 28px;
}
.footer-menu-column{ display:flex; flex-direction:column; gap:12px; }
.footer-menu-title{
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.95);
  text-decoration:none;
  transition: opacity .2s ease, transform .15s ease;
}
.footer-menu-title:hover{ opacity:1; transform: translateY(-1px); }
.footer-menu-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
.footer-menu-link{
  color:rgba(255,255,255,.85);
  text-decoration:none;
  font-size:.95rem;
  transition: opacity .2s ease, transform .15s ease;
}
.footer-menu-link:hover{ opacity:1; transform: translateX(4px); }
.footer-menu-standalone{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
}
.footer-menu-pill{
  display:inline-flex;
  align-items:center;
  padding:6px 14px;
  border-radius:999px;
  background: rgba(255,255,255,.12);
  color:rgba(255,255,255,.9);
  text-decoration:none;
  font-size:.9rem;
  transition: background .2s ease, transform .15s ease, opacity .2s ease;
}
.footer-menu-pill:hover{
  background: rgba(255,255,255,.22);
  transform: translateY(-1px);
  opacity:1;
}
.footer-menu-link.active-blue,
.footer-menu-pill.active-blue{
  background: var(--white);
  color: var(--color-ui-primary);
}
.footer-menu-link.active-blue:hover,
.footer-menu-pill.active-blue:hover{
  background: var(--white);
  opacity:1;
  transform: translateY(-1px);
}
.footer-menu-title.active-blue{
  color: var(--white);
  text-decoration:underline;
  text-underline-offset:4px;
}

/* Адаптив футера */
@media (max-width: var(--bp-md)) {
  .footer-top{ grid-template-columns: 1fr 1fr; gap:24px; }
  .footer-hours{ grid-column: 1 / -1; padding:18px 20px; }
  .footer-nav{ grid-column: 1 / -1; margin-top:20px; }
}
@media (max-width: 640px) {
  .footer-top{ grid-template-columns: 1fr; }
  .footer-container{ padding:24px 14px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; gap:6px; }
  .footer-brand{ flex-direction:column; align-items:flex-start; }
  .footer-logo{ margin-bottom:8px; }
  .footer-hours{ width:100%; padding:16px 18px; }
  .footer-nav{ margin-top:18px; }
  .footer-menu-columns{ grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap:16px 20px; }
  .footer-menu-list{ gap:6px; }
  .footer-menu-standalone{ width:100%; gap:10px 12px; justify-content:flex-start; }
  .footer-menu-pill{ padding:6px 12px; max-width:100%; flex:0 1 auto; }
}

@media (max-width: 640px) {
  .site-nav { display: none; }
  .site-topbar__content {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .site-topbar__left {
    width: auto;
    justify-content: flex-start;
    gap: 12px;
  }
  .site-topbar__actions {
    flex: 1 1 auto;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
  }
  .site-topbar__content > .site-topbar__actions:first-of-type {
    flex: 0 0 auto;
    justify-content: flex-start;
  }
  .site-topbar__content > .site-topbar__actions:first-of-type .site-topbar__left {
    margin-right: 0;
  }
  .site-nav__wrap,
  .site-nav > .container { display: none; }
  .site-topbar__actions .site-topbar__chat,
  .site-topbar__actions .site-topbar__action--vacancies,
  .site-topbar__actions .site-topbar__action--social,
  .site-topbar__actions .site-topbar__social { display: none; }
  .quick-widget {
    right: 0;
    top: auto;
    transform: none;
    border-radius: 18px 0 0 18px;
  }
  .quick-widget__btn { width: 56px; height: 56px; }
  .quick-widget.quick-widget--panel-open {
    right: var(--quick-panel-width);
  }
}

@media (max-width: 540px) {
  .site-topbar__action.low-vision-btn {
    padding: 6px;
    width: 40px;
    height: 40px;
    justify-content: center;
  }
  .site-topbar__action.low-vision-btn .site-topbar__icon {
    margin: 0;
  }
  .site-topbar__action.low-vision-btn span:not(.site-topbar__icon),
  .site-topbar__action.low-vision-btn .site-topbar__indicator {
    display: none;
  }
}

/* ============================================================================
   9) COOKIE DIALOG + MODAL
   ========================================================================== */

.cookie_content{
  position: fixed; left:0; right:0; bottom:0; z-index:1000; display:block;
  background-color: transparent; color:#878b90; transform: translateY(0)!important;
}
.cookie_form{
  display:flex; align-items:center; gap:16px;
  backdrop-filter: blur(4px); background:#fff; border-radius:5px;
  box-shadow: 0 5px 23px -3px rgba(0,0,0,.3);
  margin: 30px auto; width: calc(100% - 80px); max-width: 1170px; padding: 20px 30px;
}
.cookie_btn{
  background: var(--color-ui-primary); border:0; border-radius:5px; color:#fff; cursor:pointer;
  font-weight:600; height:40px; width:150px; margin-left:auto;
  transition: filter .2s ease, transform .12s ease;
}
.cookie_btn:hover{ filter: brightness(1.05); transform: translateY(-1px); }

@media (max-width: 640px) {
  .cookie_form {
    flex-direction: column;
    align-items: stretch;
    width: calc(100% - 32px);
    padding: 18px 20px;
    gap: 12px;
  }
  .cookie_form p {
    margin: 0;
    text-align: left;
  }
  .cookie_form .cookie_btn {
    width: 100%;
    margin-left: 0;
  }
  .cookie_form > span {
    display: none !important;
  }
}

.modal{
  display:none; position:fixed; inset:0; background: rgba(0,0,0,.55); z-index:2000;
  justify-content:center; align-items:center; padding:20px;
}
.modal-content{
  background:#fff; padding:24px; border-radius:12px; max-width:640px; width:100%;
  box-shadow: var(--shadow-lg); animation: fadeIn .25s ease; position:relative;
}
.modal-content h2{ margin:0 0 12px; font-size:1.3rem; font-weight:700; color:#1d1d1f; }
.modal-content p{ margin:0 0 12px; line-height:1.6; color:#333; }
.modal-close{ position:absolute; right:16px; top:12px; font-size:1.5rem; color:#666; cursor:pointer; transition: color .2s; }
.modal-close:hover{ color:#000; }
@keyframes fadeIn{ from{ opacity:0; transform: translateY(-10px);} to{ opacity:1; transform: translateY(0);} }

/* ============================================================================
   10) NEWS LIST (список новостей)
   ========================================================================== */

.news-item{
  display:flex; align-items:flex-start; gap:14px; margin-bottom:16px; padding:14px; background:#fff;
  border:1px solid #eee; border-radius:12px; box-shadow: var(--shadow-sm);
  transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.news-item:hover{ transform: translateY(-1px); box-shadow: var(--shadow-md); border-color:#e6e6e6; }

.preview-img{
  flex:0 0 160px; aspect-ratio: 4/3; width:160px; height:auto; object-fit: cover;
  background: var(--color-bg-secondary); border:1px solid #eee; border-radius:10px; box-shadow: inset 0 1px 2px rgba(0,0,0,.03);
}
.news-text{ flex:1 1 auto; min-width:0; }
.news-text h2{ margin:0 0 6px; font-weight:700; line-height:1.25; font-size: clamp(1.05rem, .98rem + .4vw, 1.35rem); }
.news-text h2 .news-link{ color:inherit; text-decoration:none; border-bottom:1px solid transparent; transition: color .15s, border-color .15s; }
.news-text h2 .news-link:hover, .news-text h2 .news-link:focus{ color: var(--color-ui-primary); text-decoration: underline; text-underline-offset:3px; text-decoration-thickness:2px; }
.news-text h2 .news-link:focus{ outline:none; }
.news-text p{
  margin:0 0 8px; color:#444; line-height:1.6; font-size:.98rem;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.news-text small{ display:inline-block; color:#888; font-size:.9rem; }
.news-item:hover .news-link{ color: var(--color-ui-primary); }

@media (max-width: var(--bp-sm)) {
  .news-item{ flex-direction:column; gap:10px; padding:12px; border-radius:10px; }
  .preview-img{ width:100%; flex-basis:auto; aspect-ratio: 16/9; }
  .news-text p{ -webkit-line-clamp:4; }
}
@media (prefers-reduced-motion: reduce){ .news-item, .news-text h2 .news-link{ transition:none; } }

/* ============================================================================
   11) NEWS VIEW (страница новости)
   ========================================================================== */

.news-one{ background:#fff; padding:8px 20px 16px; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.news-one h1{
  margin:8px 0 6px; font-weight:700; line-height:1.2; font-size: clamp(1.5rem, 1.2rem + 1vw, 2.25rem); letter-spacing:.2px; overflow-wrap:anywhere;
}
.news-one small{ color:#777; display:inline-block; margin-bottom:8px; }
.news-one-data{
  display:block; margin:6px 0 18px; font-size:.9rem; line-height:1.4; color:#888; letter-spacing:.3px;
}
.news-one-data::before{ content:"📅 "; font-size:.95em; }

.back{ margin: 20px 0; }
.back #backToList, .back .back-to-search{
  display:inline-flex; align-items:center; gap:6px; padding:8px 14px; font-size:.95rem; font-weight:500;
  color:#1a73e8; background:#f3f7ff; border:1px solid #d0e0ff; border-radius:8px; cursor:pointer; text-decoration:none;
  transition: background .2s, border-color .2s, color .2s, transform .12s;
}
.back #backToList:hover, .back .back-to-search:hover{ background:#e6efff; border-color:#b0caff; color:#0f5ad4; transform: translateY(-1px); }
.back #backToList:focus, .back .back-to-search:focus{ outline:2px solid #99c2ff; outline-offset:2px; }


.news-one .preview-img {
  width: 100%;
  max-width: 400px;
  height: auto;
  max-height: 300px;
  object-fit: contain;
  flex: none;
  border-radius: 18px;
  border: 1px solid rgba(13, 32, 64, .12);
  background: #f3f6fb;
  margin: 12px auto 18px;
  display: block;
}

.news-content{
  background:#fff; font-size:1.0625rem; line-height:1.7; color:#222; margin:16px 0 24px;
}
.news-content p{ margin:0 0 1em; }
.news-content h2, .news-content h3, .news-content h4{ margin:1.2em 0 .6em; line-height:1.3; }
.news-content ul, .news-content ol{ margin:.8em 0 1em; padding-left:1.4em; }
.news-content li{ margin:.3em 0; }
.news-content a{ text-decoration:underline; text-underline-offset:2px; }
.news-content blockquote{ margin:1em 0; padding:.8em 1em; border-left:4px solid #e3e3e3; background:#fafafa; border-radius:8px; }
.news-content img{ max-width:100%; height:auto; border-radius:10px; display:block; margin:1em 0; }
.news-content table{ width:100%; border-collapse:collapse; margin:1em 0; font-size:.95em; }
.news-content th, .news-content td{ border:1px solid #eee; padding:.55em .7em; }
.news-content pre, .news-content code{ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.news-content pre{ background:#0f0f0f08; padding:.9em 1em; border-radius:8px; overflow:auto; }

.news-gallery{
  display:flex; flex-wrap:wrap; gap:12px; align-items:flex-start;
}
.news-gallery img{
  max-width:300px; max-height:300px; width:auto; height:auto; object-fit: cover;
  border-radius:10px; display:block; background:#f6f6f6; box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
@media (max-width: var(--bp-xs)) { .news-gallery img{ max-width:45vw; max-height:45vw; } }

/* ============================================================================
   12) LOADER (глобальный)
   ========================================================================== */

#app-loader{
  position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center;
  pointer-events:none; opacity:0; transition: opacity .18s ease;
}
#app-loader.visible{ opacity:1; pointer-events:auto; }
#app-loader .app-loader-backdrop{ position:absolute; inset:0; background: rgba(0,0,0,.15); backdrop-filter: blur(2px); }
#app-loader .app-loader-box{
  position:relative; z-index:1; min-width:180px; padding:16px 20px; border-radius:16px; background: var(--white);
  box-shadow: var(--shadow-lg); display:flex; align-items:center; gap:12px;
}
#app-loader .lds-ring{ position:relative; width:40px; height:40px; }
#app-loader .lds-ring div{
  box-sizing:border-box; position:absolute; width:40px; height:40px; border:4px solid var(--gray-300);
  border-top-color: var(--color-ui-primary); border-radius:50%; animation: app-ring 1s linear infinite;
  border-color: var(--gray-300) transparent transparent transparent;
}
#app-loader .lds-ring div:nth-child(1){ animation-delay: -0.45s; }
#app-loader .lds-ring div:nth-child(2){ animation-delay: -0.3s; }
#app-loader .lds-ring div:nth-child(3){ animation-delay: -0.15s; }
@keyframes app-ring{ 0%{ transform: rotate(0deg);} 100%{ transform: rotate(360deg);} }
#app-loader .app-loader-text{ font-size:14px; color: var(--text-color); opacity:.9; }

/* ============================================================================
   13) SITE PAGES (Контакты) + утилиты
   ========================================================================== */

.site-page{ background:transparent; padding:16px 0 24px; }
.site-page > h1{
  margin:0 0 16px; font-weight:800; line-height:1.2; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem);
  color:#1d1d1f; letter-spacing:.2px;
}
.site-page .site-page-content{ margin:12px 0 20px; padding: 20px; background:#fff; color:#333; line-height:1.7; font-size:1.05rem; }
.site-page .paid-services { margin-inline: 6px; }

.contactcard{
  display:grid; gap:14px; padding:16px; border-radius:14px; background:#fff; border:1px solid #eee; box-shadow: var(--shadow-sm);
  margin:10px 0 20px;
}
.contactcard > div{ display:flex; flex-wrap:wrap; align-items:flex-start; gap:8px 12px; }
.contactcard .title{ font-weight:700; color:#111; }
.icon{ display:inline-block; vertical-align:middle; }

.contactcard h4, .site-page h3.title{
  margin:8px 0 12px; font-size: clamp(1.05rem, 1rem + .3vw, 1.25rem); font-weight:800; color:#1d1d1f;
}

.boss{
  position:relative; display:grid; grid-template-columns:96px 1fr; gap:12px; padding:14px; border:1px solid #f0f0f0;
  border-radius:12px; background:#fafafa;
}
.boss img{ width:96px; height:96px; border-radius:10px; object-fit:cover; background:#f3f3f3; border:1px solid #ececec; }
.boss__name{
  display:inline-block; font-weight:800; font-size:1.05rem; color:#111; margin:2px 0 6px; border-bottom:2px solid rgba(0,0,0,.08); padding-bottom:4px;
}
.boss > div span:first-child{ font-weight:700; }
.boss > div{ color:#333; line-height:1.6; }

.substitutors{ display:grid; gap:12px; padding-top:6px; }
.substitutors .person{
  display:grid; grid-template-columns:72px 1fr; gap:12px; padding:12px; border:1px solid #f0f0f0; border-radius:12px; background:#fff; box-shadow: 0 1px 6px rgba(0,0,0,.03);
}
.substitutors .person img{ width:72px; height:72px; object-fit:cover; border-radius:10px; background:#f6f6f6; border:1px solid #ececec; }
.substitutor-info{ display:grid; gap:4px; color:#333; }
.substitutor-info .person__name{ font-weight:800; color:#111; padding-bottom:4px; border-bottom:2px solid rgba(0,0,0,.08) !important; }

.areainfo-masters-wrap{ margin:12px 0; }
.areainfo.areainfo--masters{
  display:grid; gap:8px; padding:14px; border-radius:12px; background:#fff; border:1px solid #eee; box-shadow: 0 1px 6px rgba(0,0,0,.04);
}
.areainfo--masters .center > div{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.areainfo--masters .red{ color: var(--color-ui-primary); font-weight:800; margin-left:6px; }
.redcircle{
  display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:22px; padding:0 6px; border-radius:999px;
  background: var(--color-ui-primary); color:#fff; font-weight:800; font-size:.9rem;
}
.areainfo--masters > div span{ line-height:1.65; color:#333; }
.multiphone{ display:flex; align-items:center; gap:8px; padding-top:2px; }
.multiphone span{ font-weight:700; color:#111; }

.tree-menu.tree-menu--masters{
  margin:8px 0 16px; border-radius:12px; overflow:hidden; border:1px solid #eee; background:#fff;
}
.tree-menu .items{ margin:0; }
.tree-menu .item > header{ padding:12px 14px; font-weight:800; background:#f7f9ff; color:#0f1a2b; border-bottom:1px solid #eef2ff; }
.tree-menu .item.active > header{ background:#eef4ff; }
.tree-menu .content{ padding:12px 14px; }
.content--pd-bg{ background:#fff; }

.contacttable{ width:100%; border-collapse:collapse; font-size:.98rem; }
.contacttable thead th{
  text-align:left; font-weight:800; color:#0f1a2b; background:#f7f9ff; border-bottom:1px solid #eef2ff; padding:10px 12px;
}
.contacttable tbody td{ border-bottom:1px solid #f2f2f2; padding:10px 12px; color:#333; }
.contacttable tbody tr:hover{ background:#fafcff; }

.site-page .icon--contacts--geo::before{ content:"📍"; margin-right:4px; }
.site-page .icon--contacts--time::before{ content:"⏰"; margin-right:4px; }
.icon--personred::before{ content:"👤"; margin-right:6px; }
.site-page span{ word-break: break-word; }

@media (max-width: 720px){
  .boss{ grid-template-columns:72px 1fr; }
  .boss img{ width:72px; height:72px; }
  .substitutors .person{ grid-template-columns:56px 1fr; }
  .substitutors .person img{ width:56px; height:56px; }
}
@media (max-width: 520px){
  .contactcard{ padding:12px; }
  .areainfo.areainfo--masters{ padding:12px; }
  .tree-menu .content{ padding:10px 12px; }
  .tree-menu .item > header{ padding:10px 12px; }
}

/* ============================================================================
   14) ABOUT (структура, документы)
   ========================================================================== */

.structure__top-person{ margin:20px 0 28px; display:flex; justify-content:flex-start; }
.structure__person{
  display:flex; align-items:flex-start; gap:16px; padding:16px; border-radius:14px; border:1px solid #eee; background:#fff; box-shadow: var(--shadow-sm);
}
.structure__person-img img{ width:100px; height:100px; border-radius:12px; object-fit:cover; border:1px solid #ddd; background:#f7f7f7; }
.structure__person-inf{ display:flex; flex-direction:column; gap:6px; color:#333; line-height:1.6; }
.structure__person-name{ font-weight:800; font-size:1.1rem; color:#111; }
.structure__person-post{ font-size:.95rem; color:#555; }
.structure__person-tel{ margin-left:auto; font-weight:600; color: var(--color-ui-primary); }

.tree-menu{ margin:12px 0 20px; border-radius:12px; border:1px solid #eaeaea; background:#fff; box-shadow: 0 1px 6px rgba(0,0,0,.04); }
.tree-menu .items{ margin:0; padding:0; }
.tree-menu .item{ border-bottom:1px solid #f0f0f0; }
.tree-menu .item:last-child{ border-bottom:none; }
.structure__item-header{
  padding:14px 16px; font-weight:700; font-size:1rem; background:#f8faff; color:#111; display:flex; justify-content:space-between; align-items:center; cursor:pointer;
  transition: background .2s ease;
}
.structure__item-header:hover{ background:#eef4ff; }
.structure__item-header-ico{ width:16px; height:auto; opacity:.6; }
.structure__item-content{ padding:14px 16px; color:#333; font-size:.96rem; line-height:1.6; }

.documents-acc{ margin:20px 0 28px; }
.doc-desc{ padding:10px 14px; border-radius:8px; background:#fafafa; border:1px solid #eee; font-size:.95rem; color:#333; line-height:1.5; }
.site-page h3{
  margin:28px 0 16px; font-weight:800; font-size:1.3rem; color:#1d1d1f; border-left:4px solid var(--color-ui-primary); padding-left:10px;
}

@media (max-width: var(--bp-sm)){
  .structure__person{ flex-direction:column; align-items:center; text-align:center; }
  .structure__person-img img{ width:80px; height:80px; }
  .structure__person-tel{ margin:8px 0 0; }
  .structure__item-header{ font-size:.95rem; padding:12px 14px; }
  .structure__item-content{ padding:12px 14px; }
}

/* ============================================================================
   15) SEARCH PAGE (результаты, лоадер, бесконечная прокрутка)
   ========================================================================== */

#search-shell{ background:transparent; padding:12px 0 24px; }
#search-shell > h2{
  margin:0 0 12px; font-weight:800; line-height:1.2; font-size: clamp(1.3rem, 1rem + 1vw, 1.8rem); color:#1d1d1f;
}
#search-summary{ margin:0 0 16px; color:#444; line-height:1.6; font-size:.98rem; }
#search-summary strong{ color: var(--color-ui-primary); }

#search-results{ display:grid; gap:12px; }
.search-item{
  display:grid; gap:6px; padding:14px; border-radius:12px; background:#fff; border:1px solid #eee; box-shadow: var(--shadow-sm);
  transition: border-color .2s, box-shadow .2s, transform .15s;
}
.search-item:hover{ transform: translateY(-1px); border-color:#e6e6e6; box-shadow: var(--shadow-md); }
.search-item h3{ margin:0; line-height:1.25; font-size: clamp(1.02rem, .95rem + .4vw, 1.25rem); font-weight:800; }
.search-link{
  color:#111; text-decoration:none; border-bottom:2px solid transparent; transition: color .15s, border-color .15s, text-decoration-color .15s;
}
.search-link:hover, .search-link:focus{ color: var(--color-ui-primary); border-bottom-color: currentColor; text-decoration:none; outline:none; }
.search-item p{
  margin:0; color:#444; line-height:1.6; font-size:.98rem;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.search-item small{ color:#777; font-size:.9rem; }

#search-empty{
  margin:16px 0; padding:16px; border-radius:12px; background:#fff8f8; color:#8a2c2c; border:1px solid #ffdede; display:none;
}
#loader{ margin:16px 0; display:none; }
#loader::before{
  content:""; display:inline-block; width:28px; height:28px; border:3px solid #d3d3d3; border-top-color: var(--color-ui-primary);
  border-radius:50%; animation: search-ring 1s linear infinite; vertical-align:middle; margin-right:10px;
}
@keyframes search-ring{ to{ transform: rotate(360deg);} }
#search-sentinel{ height:1px; }

@media (max-width: var(--bp-sm)){
  #search-shell{ padding:8px 0 18px; }
  #search-results{ gap:10px; }
  .search-item{ padding:12px; }
  .search-item p{ -webkit-line-clamp:4; }
}

/* ============================================================================
   15) FULLSCREEN MODAL (vacancies)
   ========================================================================== */

body.is-modal-open {
  overflow: hidden;
}

.site-modal {
  position: fixed;
  inset: 0;
  z-index: 2400;
  display: none;
  align-items: stretch;
  justify-content: center;
  overflow: hidden;
}
.site-modal--visible {
  display: flex;
}
.site-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 12, 28, .75);
  cursor: pointer;
}
.site-modal__dialog {
  position: relative;
  z-index: 1;
  background: var(--white);
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  box-shadow: 0 40px 68px rgba(5, 17, 36, .45);
}
.site-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 32px 72px 16px 32px;
  border-bottom: 1px solid rgba(15, 44, 86, .08);
}
.site-modal__title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-color);
}
.site-modal__body {
  flex: 1;
  padding: 28px 32px 40px;
  overflow-y: auto;
  background: rgba(243, 246, 252, .8);
}
.site-modal__content {
  max-width: min(100%, 960px);
  margin: 0 auto;
  background: var(--white);
  border-radius: 22px;
  box-shadow: var(--shadow-md);
  padding: clamp(22px, 16px + 1.5vw, 36px);
  color: var(--text-color);
}
.site-modal__content > *:first-child { margin-top: 0; }
.site-modal__content > *:last-child { margin-bottom: 0; }
.site-modal__loader,
.site-modal__error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  text-align: center;
  margin: 0 auto 28px;
}
.site-modal__loader[hidden],
.site-modal__error[hidden] {
  display: none !important;
}
.site-modal__spinner {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 4px solid rgba(15, 44, 86, .15);
  border-top-color: var(--color-ui-primary);
  animation: vacanciesSpin 0.9s linear infinite;
}
.site-modal__loading-text {
  font-weight: 600;
  color: rgba(15, 44, 86, .7);
}
.site-modal__error p {
  margin: 0;
  font-weight: 600;
  color: rgba(196, 52, 52, .94);
}
.site-modal__retry {
  border: none;
  border-radius: 999px;
  padding: 10px 20px;
  background: var(--color-ui-primary);
  color: var(--white);
  font-weight: 600;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.site-modal__retry:hover,
.site-modal__retry:focus-visible {
  transform: translateY(-1px);
  background: var(--color-ui-primary-600);
  box-shadow: 0 12px 24px rgba(0, 125, 255, .28);
}
.site-modal__close {
  position: absolute;
  top: 24px;
  right: 24px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(15, 44, 86, .1);
  color: var(--text-color);
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .2s ease, transform .2s ease;
}
.site-modal__close:hover,
.site-modal__close:focus-visible {
  background: rgba(15, 44, 86, .18);
  transform: scale(1.04);
  outline: none;
}
.site-modal--fullscreen .site-modal__dialog {
  border-radius: 0;
}

@media (max-width: 960px) {
  .site-modal__header {
    padding: 24px 64px 14px 20px;
  }
  .site-modal__close {
    top: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
  }
  .site-modal__body {
    padding: 24px 20px 32px;
  }
}

@media (max-width: 640px) {
  .site-modal__header {
    padding: 20px 56px 12px 16px;
  }
  .site-modal__title {
    font-size: 1.25rem;
  }
  .site-modal__body {
    padding: 20px 16px 28px;
  }
}

@keyframes vacanciesSpin {
  to { transform: rotate(360deg); }
}

.vacancy-form[hidden] {
  display: none !important;
}
.vacancy-form {
  max-width: min(100%, 960px);
  margin: 32px auto 0;
  background: #fff;
  border-radius: 22px;
  border: 1px solid rgba(15, 44, 86, .08);
  box-shadow: var(--shadow-md);
  padding: clamp(22px, 16px + 1.5vw, 36px);
  color: var(--text-color);
}
.vacancy-form__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.vacancy-form__title {
  margin: 0;
  font-size: clamp(1.2rem, 1.05rem + .6vw, 1.45rem);
  font-weight: 700;
  color: #0f2c56;
}
.vacancy-form__close {
  border: none;
  background: rgba(15, 44, 86, .1);
  color: #0f2c56;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.vacancy-form__close:hover,
.vacancy-form__close:focus-visible {
  background: rgba(15, 44, 86, .18);
  transform: scale(1.04);
  outline: none;
}
.vacancy-form__note {
  margin: 0 0 18px;
  font-size: .95rem;
  color: rgba(15, 44, 86, .75);
}
.vacancy-form__feedback {
  margin: 0 0 18px;
  padding: 14px 16px;
  border-radius: 12px;
  border-left: 4px solid transparent;
  background: rgba(15, 44, 86, .06);
  color: #0f2c56;
  font-weight: 600;
  font-size: .95rem;
}
.vacancy-form__feedback[hidden] {
  display: none !important;
}
.vacancy-form__feedback--error {
  background: rgba(196, 52, 52, .08);
  color: #9f1f1f;
  border-left-color: #d94444;
}
.vacancy-form__feedback--success {
  background: rgba(32, 127, 61, .08);
  color: #1c6b32;
  border-left-color: #2f9d57;
}
.vacancy-form__grid {
  display: grid;
  gap: 18px;
  margin-bottom: 18px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.vacancy-form__field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
}
.vacancy-form__field--wide {
  grid-column: 1 / -1;
}
.vacancy-form__label {
  font-size: .95rem;
  font-weight: 600;
  color: rgba(15, 44, 86, .94);
}
.vacancy-form__input,
.vacancy-form__textarea {
  width: 100%;
  border: 1px solid rgba(15, 44, 86, .18);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 1rem;
  font-family: inherit;
  background: rgba(255, 255, 255, .96);
  transition: border .2s ease, box-shadow .2s ease;
  box-shadow: none;
  color: inherit;
}
.vacancy-form__input:focus,
.vacancy-form__textarea:focus {
  border-color: rgba(0, 125, 255, .7);
  box-shadow: 0 0 0 3px rgba(0, 125, 255, .18);
  outline: none;
}
.vacancy-form__field--readonly .vacancy-form__input {
  background: rgba(15, 44, 86, .04);
  cursor: not-allowed;
}
.vacancy-form__textarea {
  min-height: 140px;
  resize: vertical;
}
.vacancy-form__field--message {
  margin-bottom: 18px;
}
.vacancy-form__field--file {
  margin-bottom: 18px;
}
.vacancy-form__file {
  display: block;
  font-size: .95rem;
}
.vacancy-form__help {
  margin: 8px 0 0;
  font-size: .85rem;
  color: rgba(15, 44, 86, .7);
}
.vacancy-form__consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 20px;
  font-size: .95rem;
  color: rgba(15, 44, 86, .9);
}
.vacancy-form__consent a {
  color: var(--color-ui-primary);
  text-decoration: underline;
}
.vacancy-form__consent input {
  margin-top: 4px;
}
.vacancy-form__actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 12px;
}
.vacancy-form__submit {
  border: none;
  border-radius: 12px;
  padding: 12px 26px;
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
  background: var(--color-ui-primary);
  cursor: pointer;
  transition: transform .15s ease, box-shadow .25s ease, background .15s ease;
}
.vacancy-form__submit:hover,
.vacancy-form__submit:focus-visible {
  background: var(--color-ui-primary-600);
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(0, 125, 255, .25);
  outline: none;
}
.vacancy-form__submit:disabled {
  cursor: progress;
  opacity: .7;
  transform: none;
  box-shadow: none;
}
.vacancy-form__footnote {
  margin: 0;
  font-size: .85rem;
  color: rgba(15, 44, 86, .6);
}

@media (max-width: 720px) {
  .vacancy-form {
    padding: clamp(18px, 14px + 1vw, 24px);
    margin-top: 24px;
  }
  .vacancy-form__header {
    gap: 12px;
  }
  .vacancy-form__grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .vacancy-form__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .vacancy-form__submit {
    width: 100%;
  }
}

/* ============================================================================
   16) RESPONSIVE TWEAKS (общие корректировки)
   ========================================================================== */

@media (max-width: var(--bp-lg)){
  .header-contacts{ padding-top: 10px; text-align:left; }
  .main-menu-content{ flex-direction: row; } /* оставляем горизонтально, но с переносом */
}
@media (max-width: var(--bp-sm)){
  .header-logo img{ height: 110px; }
  .main-menu-content{ gap: 6px; }
  .search{ margin-left:0; width:100%; }
}
@media (max-width: var(--bp-xs)){
  .header-logo img{ height: 90px; }
}

/* Уважение к системным настройкам анимации */
@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}


#scrollTopButton {
  position: fixed;
  left: 24px;
  bottom: 24px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 2px solid #ffffff;
  background: var(--color-ui-primary);
  color: #fff;
  display: none;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 30px rgba(0, 60, 120, .28);
  cursor: pointer;
  z-index: 1200;
  transition: transform .25s ease, box-shadow .25s ease, opacity .2s ease;
}
#scrollTopButton:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0, 60, 120, .32);
}
#scrollTopButton:focus-visible {
  outline: 2px solid rgba(255,255,255,.8);
  outline-offset: 3px;
}
#scrollTopButton svg {
  width: 22px;
  height: 22px;
}

.quick-widget {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border-radius: 22px 0 0 22px;
  box-shadow: -10px 18px 32px rgba(9, 20, 45, .18);
  overflow: hidden;
  z-index: 1100;
  transition: right .35s ease, box-shadow .2s ease;
}
.quick-widget.quick-widget--panel-open {
  right: var(--quick-panel-width);
  box-shadow: -20px 22px 46px rgba(9, 20, 45, .2);
}
.quick-widget__btn {
  appearance: none;
  border: none;
  background: transparent;
  width: 64px;
  height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #9aa1b2;
  border-bottom: 1px solid rgba(154, 161, 178, .2);
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.quick-widget__btn:last-child {
  border-bottom: none;
}
.quick-widget__btn:hover,
.quick-widget__btn:focus-visible {
  background: rgba(0, 125, 255, .08);
  color: var(--color-ui-primary);
  outline: none;
}
.quick-widget__btn[href="#"] {
  cursor: default;
}
.quick-widget__btn[href="#"]:hover,
.quick-widget__btn[href="#"]:focus-visible {
  background: transparent;
  color: #9aa1b2;
}
.quick-widget__icon {
  font-size: 1.25rem;
}
.quick-widget__btn--vision .quick-widget__icon {
  font-size: 1.1rem;
}
.quick-widget__btn .quick-widget__icon::before {
  line-height: 1;
}

.geo-panel-toggle:focus-visible {
  transform: translateY(-50%) scale(1.04);
  box-shadow: 0 14px 32px rgba(9, 30, 65, .28);
  outline: none;
}

.quick-panel__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(17, 24, 39, .35);
  backdrop-filter: blur(2px);
  z-index: 1090;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
.quick-panel__backdrop.is-active {
  opacity: 1;
  pointer-events: auto;
}

.quick-panel {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  width: var(--quick-panel-width);
  background: #ffffff;
  box-shadow: -24px 0 60px rgba(9, 20, 45, .24);
  border-radius: 24px 0 0 24px;
  transform: translateX(100%);
  transition: transform .35s ease;
  z-index: 1200;
  display: flex;
  flex-direction: column;
  padding: 28px 28px 32px;
  gap: 20px;
}
.quick-panel.is-open {
  transform: translateX(0);
}
.quick-panel__close {
  position: absolute;
  top: 20px;
  right: 24px;
  background: transparent;
  border: none;
  font-size: 1.8rem;
  color: #9aa1b2;
  cursor: pointer;
  transition: color .2s ease, transform .2s ease;
}
.quick-panel__close:hover,
.quick-panel__close:focus-visible {
  color: var(--color-ui-primary);
  outline: none;
  transform: scale(1.05);
}
.quick-panel__header {
  padding-right: 36px;
}
.quick-panel__title {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--text-color);
}
.quick-panel__content {
  flex: 1 1 auto;
  overflow-y: auto;
  padding-right: 6px;
  display: grid;
  gap: 22px;
}
.quick-panel__section h3 {
  margin: 0 0 10px;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-color);
}
.quick-panel__section p {
  margin: 0 0 10px;
  color: #4b5668;
}
.quick-panel__section ul {
  margin: 0;
  padding-left: 18px;
  color: #4b5668;
  display: grid;
  gap: 6px;
}
.quick-panel__section li {
  line-height: 1.6;
}

.quick-panel__section--faq .home-faq__list {
  gap: 12px;
}

.quick-panel__section--faq .home-faq__item {
  border-radius: 16px;
  box-shadow: none;
  border: 1px solid rgba(13, 32, 64, .1);
}

.quick-panel__section--faq .home-faq__button {
  padding: 16px 18px;
}

.quick-panel__section--faq .home-faq__panel {
  padding: 0 18px 16px;
}

.quick-panel__faq-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 16px;
  font-weight: 600;
  color: var(--color-ui-primary);
  text-decoration: none;
}

.quick-panel__faq-link::after {
  content: "\2192";
  font-size: 0.95rem;
  transition: transform .2s ease;
}

.quick-panel__faq-link:hover::after,
.quick-panel__faq-link:focus-visible::after {
  transform: translateX(2px);
}

@media (max-width: 768px) {
  .quick-panel__backdrop.is-active {
    background: rgba(17, 24, 39, .45);
  }
  #scrollTopButton {
    right: 16px;
  }
  .quick-panel {
    width: var(--quick-panel-width);
    padding: 24px 22px 28px;
  }
}

@media (max-width: 640px) {
  .quick-widget {
    display: none;
  }
}
