/*
Theme Name: TarazSU Modern
Theme URI: https://tarazsu.kz/
Description: Точная WordPress-версия дизайна newtarazsu-improved.html.
Version: 1.1.4
Text Domain: tarazsu-modern
*/
:root {
      --primary: #0A4B93;
      --primary-soft: #1683FF;
      --accent: #1683FF;
      --surface: rgba(255,255,255,0.82);
      --surface-strong: rgba(255,255,255,0.95);
      --surface-soft: rgba(234,245,255,0.78);
      --text: #122644;
      --text-muted: #51647B;
      --border: rgba(255,255,255,0.45);
      --shadow: rgba(10,75,147,0.16);
      --shadow-strong: rgba(10,75,147,0.22);
      --bg: #EAF5FF;
    }
    * {
      box-sizing: border-box;
    }
    html {
      scroll-behavior: smooth;
    }
    body {
      margin: 0;
      min-height: 100vh;
      font-family: 'Inter', sans-serif;
      color: var(--text);
      background: radial-gradient(circle at top left, rgba(255,255,255,0.95), transparent 22%),
        radial-gradient(circle at 85% 10%, rgba(22,131,255,0.18), transparent 20%),
        linear-gradient(180deg, #f7fbff 0%, #e9f3ff 42%, #fdfdff 100%);
    }
    h1, h2, h3, h4, h5, h6,
    .brand h1,
    .menu a,
    .submenu a {
      font-family: 'Montserrat', Arial, sans-serif;
    }
    a,
    button {
      transition: all 0.24s ease;
    }
    .wrapper {
      max-width: 1240px;
      width: 100%;
      margin: 0 auto;
      padding: 0 24px;
    }
    .site-header {
      position: relative;
      background: rgba(10,75,147,0.95);
      color: #fff;
      padding: 28px 0 32px;
      border-bottom: 1px solid rgba(255,255,255,0.16);
      box-shadow: 0 24px 70px rgba(10,75,147,0.16);
      backdrop-filter: blur(16px);
      overflow: hidden;
    }
    .site-header::before {
      content: "";
      position: absolute;
      inset: 0;
      background: radial-gradient(circle at 22% 15%, rgba(255,255,255,0.22), transparent 16%),
        radial-gradient(circle at 80% 8%, rgba(255,255,255,0.12), transparent 12%);
      pointer-events: none;
    }
    .site-header::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0));
      pointer-events: none;
    }
    .top-contacts {
      display: flex;
      flex-wrap: wrap;
      gap: 12px 18px;
      align-items: center;
      justify-content: space-between;
      padding: 14px 20px;
      margin-bottom: 18px;
      background: rgba(255,255,255,0.14);
      border: 1px solid rgba(255,255,255,0.22);
      border-radius: 24px;
      color: #fff;
      font-size: 0.92rem;
      gap: 12px 18px;
      align-items: center;
      justify-content: space-between;
      color: #fff;
      font-size: 0.92rem;
    }
    .top-contacts .address,
    .top-contacts .pill {
      margin: 0;
      background: transparent;
      border: none;
      padding: 0;
      color: #fff;
      font-size: 0.92rem;
      font-weight: 600;
      letter-spacing: 0.01em;
    }
    .top-contacts .pill {
      white-space: nowrap;
      opacity: 0.95;
    }
    .header-shell {
      position: relative;
      display: grid;
      gap: 20px;
    }
    .header-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
    }
    .header-brand {
      display: flex;
      align-items: center;
      gap: 16px;
      min-width: 240px;
    }
    .logo-mark {
      width: 56px;
      height: 56px;
      min-width: 56px;
      min-height: 56px;
      border-radius: 20px;
      background: linear-gradient(135deg, #1683FF 0%, #0A4B93 100%);
      box-shadow: 0 18px 50px rgba(10,75,147,0.22);
      display: grid;
      place-items: center;
      overflow: hidden;
    }
    .logo-mark img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      display: block;
      border-radius: 18px;
    }
    .brand h1 {
      margin: 0 0 4px;
      font-size: 2rem;
      line-height: 1.02;
      font-weight: 800;
      color: #fff;
    }
    .brand p {
      margin: 0;
      font-size: 0.96rem;
      opacity: 0.9;
      font-weight: 600;
      color: rgba(255,255,255,0.88);
    }
    .phone-link {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      color: #fff;
      text-decoration: none;
      font-weight: 700;
      background: rgba(255,255,255,0.18);
      padding: 14px 20px;
      border-radius: 24px;
      border: 1px solid rgba(255,255,255,0.22);
      box-shadow: 0 18px 40px rgba(10,75,147,0.18);
    }
    .phone-link:hover,
    .phone-link:focus {
      background: rgba(255,255,255,0.28);
    }
    .menu {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      justify-content: center;
      margin: 0 auto;
      padding: 10px 12px 6px;
      max-width: min(1180px, 100%);
      background: rgba(18,34,56,0.85);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 26px;
      box-shadow: 0 22px 40px rgba(0,0,0,0.22);
      backdrop-filter: blur(12px);
    }
    .menu-item {
      position: relative;
    }
    .menu a {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 46px;
      gap: 8px;
      color: #fff;
      text-decoration: none;
      padding: 12px 18px;
      border-radius: 18px;
      background: rgba(255,255,255,0.1);
      border: 1px solid rgba(255,255,255,0.14);
      font-weight: 700;
      font-size: 0.94rem;
      box-shadow: 0 10px 24px rgba(10,75,147,0.12);
      transition: transform 0.24s ease, background 0.24s ease, box-shadow 0.24s ease, color 0.24s ease;
      min-width: 120px;
      text-align: center;
    }
    .menu-item:hover > a,
    .menu-item:focus-within > a {
      background: rgba(255,255,255,0.18);
      transform: translateY(-1px);
    }
    .menu-item.has-dropdown:hover .submenu {
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
    }
    .submenu {
      position: absolute;
      top: calc(100% + 10px);
      left: 0;
      display: flex;
      flex-direction: column;
      gap: 0;
      min-width: 220px;
      background: rgba(255,255,255,0.98);
      border-radius: 18px;
      border: 1px solid rgba(22,131,255,0.16);
      box-shadow: 0 24px 50px rgba(10,75,147,0.18);
      overflow: hidden;
      opacity: 0;
      pointer-events: none;
      transform: translateY(8px);
      transition: opacity 0.2s ease, transform 0.2s ease;
      z-index: 10;
    }
    .submenu a {
      display: block;
      padding: 12px 16px;
      color: #15283f;
      text-decoration: none;
      font-size: 0.92rem;
      font-weight: 600;
      border-bottom: 1px solid rgba(22,131,255,0.08);
      background: transparent;
    }
    .submenu a:last-child {
      border-bottom: none;
    }
    .submenu a:hover,
    .submenu a:focus {
      background: rgba(22,131,255,0.08);
      color: #0d2f5c;
    }
    .menu a:hover,
    .menu a:focus {
      background: rgba(255,255,255,0.24);
      transform: translateY(-1px);
      box-shadow: 0 18px 36px rgba(10,75,147,0.18);
    }
    .menu a.active {
      color: var(--primary);
      background: #fff;
      box-shadow: 0 22px 42px rgba(10,75,147,0.18);
    }
    .hero-block {
      position: relative;
      overflow: hidden;
      border-radius: 30px;
      padding: 28px;
      background: rgba(255,255,255,0.12);
      border: 1px solid rgba(255,255,255,0.2);
      box-shadow: 0 32px 90px rgba(10,75,147,0.18);
      backdrop-filter: blur(18px);
    }
    .hero-block::before {
      content: "";
      position: absolute;
      inset: 0;
      background: radial-gradient(circle at 15% 20%, rgba(255,255,255,0.28), transparent 16%),
        radial-gradient(circle at 84% 17%, rgba(255,255,255,0.14), transparent 12%);
      pointer-events: none;
    }
    .hero-block::after {
      content: "";
      position: absolute;
      right: -10%;
      bottom: -8%;
      width: 420px;
      height: 420px;
      border-radius: 50%;
      background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.32), transparent 46%);
      pointer-events: none;
      filter: blur(8px);
    }
    .hero-image {
      position: relative;
      width: 100%;
      min-height: 440px;
      border-radius: 28px;
      background: linear-gradient(135deg, #0A4B93 0%, #1683FF 54%, #D4E9FF 100%);
      overflow: hidden;
      box-shadow: 0 36px 100px rgba(10,75,147,0.22);
    }
    .hero-image::before {
      content: "";
      position: absolute;
      inset: 0;
      background: radial-gradient(circle at 17% 20%, rgba(255,255,255,0.48), transparent 18%),
        radial-gradient(circle at 77% 25%, rgba(255,255,255,0.22), transparent 16%),
        linear-gradient(180deg, rgba(255,255,255,0.18), rgba(255,255,255,0.04));
      mix-blend-mode: screen;
      pointer-events: none;
    }
    .hero-image::after {
      content: "";
      position: absolute;
      left: -12%;
      bottom: 0;
      width: 130%;
      height: 80%;
      background: radial-gradient(circle at 18% 70%, rgba(255,255,255,0.24), transparent 24%),
        radial-gradient(circle at 78% 45%, rgba(255,255,255,0.16), transparent 18%),
        linear-gradient(180deg, transparent 42%, rgba(255,255,255,0.18) 100%);
      opacity: 0.95;
      pointer-events: none;
    }
    .main {
      margin-top: 28px;
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 24px;
      align-items: start;
    }
    .hero-panel {
      display: none;
    }
    .services-area,
    .sidebar-card {
      background: var(--surface);
      border: 1px solid rgba(22,131,255,0.14);
      border-radius: 24px;
      box-shadow: 0 22px 60px rgba(10,75,147,0.08);
      padding: 26px;
    }
    .services-panel {
      background: linear-gradient(180deg, #f8fbff 0%, #eef7ff 100%);
      border: 1px solid rgba(22,131,255,0.16);
      border-radius: 26px;
      box-shadow: 0 22px 60px rgba(10,75,147,0.1);
      padding: 24px;
      overflow: hidden;
    }
    .services-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      margin-bottom: 18px;
      flex-wrap: wrap;
    }
    .services-head p {
      margin: 6px 0 0;
      color: var(--text-muted);
      font-size: 0.94rem;
    }
    .services-link {
      text-decoration: none;
      color: var(--primary);
      font-weight: 800;
      font-size: 0.92rem;
    }
    .services-title,
    .sidebar-card h3 {
      margin: 0;
      color: var(--primary);
      font-size: 1.24rem;
    }
    .service-layout {
      display: grid;
      grid-template-columns: 1.1fr 0.9fr;
      gap: 18px;
      align-items: stretch;
    }
    .service-feature {
      background: linear-gradient(135deg, #0A4B93 0%, #1683FF 100%);
      color: #fff;
      border-radius: 24px;
      padding: 26px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      min-height: 250px;
      box-shadow: 0 20px 60px rgba(10,75,147,0.16);
    }
    .service-feature h4 {
      margin: 0 0 12px;
      font-size: 1.35rem;
    }
    .service-feature p {
      margin: 0;
      line-height: 1.7;
      color: rgba(255,255,255,0.94);
    }
    .service-list {
      display: grid;
      gap: 14px;
    }
    .service-item {
      background: #fff;
      border: 1px solid rgba(22,131,255,0.14);
      border-radius: 20px;
      padding: 16px 18px;
      display: flex;
      gap: 14px;
      align-items: flex-start;
      box-shadow: 0 16px 32px rgba(10,75,147,0.08);
    }
    .service-item .icon {
      width: 42px;
      height: 42px;
      border-radius: 16px;
      background: rgba(22,131,255,0.12);
      display: grid;
      place-items: center;
      color: var(--primary);
      font-weight: 900;
      flex: 0 0 auto;
    }
    .service-item strong {
      display: block;
      margin-bottom: 4px;
      color: var(--primary);
    }
    .service-item span {
      display: block;
      color: var(--text-muted);
      font-size: 0.95rem;
      line-height: 1.6;
    }
    .utility-panel {
      background: rgba(255,255,255,0.86);
      border: 1px solid rgba(22,131,255,0.16);
      border-radius: 24px;
      box-shadow: 0 24px 70px rgba(10,75,147,0.12);
      padding: 28px;
      margin-top: 20px;
      backdrop-filter: blur(14px);
    }
    .services-title {
      margin: 0;
      color: var(--primary);
      font-size: 1.28rem;
      font-weight: 800;
    }
    .utility-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
      gap: 16px;
      margin-top: 18px;
      width: 100%;
      grid-auto-rows: 1fr;
    }

    /* Desktop: force a single horizontal row of cards */
    @media (min-width: 1000px) {
      /* Force exactly 6 equal columns so all cards are same size and fit */
      .utility-grid {
        display: grid;
        grid-template-columns: repeat(6, minmax(150px, 1fr));
        gap: 12px;
        width: 100%;
        align-items: stretch;
        grid-auto-rows: 1fr;
      }
      /* Force exactly 6 equal columns so all cards are same size and fit */
      .utility-grid {
        display: grid;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 12px;
        width: 100%;
        align-items: stretch;
      }
      .utility-panel {
        overflow: hidden; /* prevent visual overflow */
        padding-bottom: 6px;
      }
      .utility-card {
        padding: 12px 10px;
        min-height: 100px;
        box-sizing: border-box;
        min-width: 0; /* allow shrinking inside grid */
      }
      .utility-card > span:last-child {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      }
      .utility-icon {
        width: 40px;
        height: 40px;
        border-radius: 10px;
      }
    }
    .utility-card {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      gap: 12px;
      text-decoration: none;
      background: rgba(255,255,255,0.92);
      border: 1px solid rgba(22,131,255,0.12);
      border-radius: 22px;
      padding: 20px 16px;
      color: var(--primary);
      font-weight: 800;
      min-height: 132px;
      min-width: 0;
      box-shadow: 0 18px 40px rgba(10,75,147,0.08);
      transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
      word-break: break-word;
    }
    .utility-card:hover,
    .utility-card:focus {
      transform: translateY(-3px);
      box-shadow: 0 26px 58px rgba(10,75,147,0.14);
      border-color: rgba(22,131,255,0.24);
    }
    .utility-icon {
      width: 48px;
      height: 48px;
      border-radius: 16px;
      background: rgba(22,131,255,0.14);
      display: grid;
      place-items: center;
      color: var(--primary);
      flex: 0 0 auto;
    }
    .utility-icon svg {
      width: 22px;
      height: 22px;
      stroke: currentColor;
      fill: none;
      stroke-width: 1.9;
      stroke-linecap: round;
      stroke-linejoin: round;
    }
    .utility-card span:last-child {
      font-size: 0.92rem;
      line-height: 1.35;
      color: var(--text);
      white-space: normal;
      overflow-wrap: anywhere;
      max-width: 100%;
    }
    .about-company {
      background: rgba(255,255,255,0.96);
      border: 1px solid rgba(22,131,255,0.14);
      border-radius: 24px;
      padding: 24px;
      margin: 20px auto;
      box-shadow: 0 18px 50px rgba(10,75,147,0.08);
    }
    .about-header {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      align-items: center;
      gap: 14px;
      margin-bottom: 18px;
    }
    .about-header h2 {
      margin: 0;
      font-size: 1.75rem;
      color: var(--primary);
      position: relative;
      padding-left: 18px;
    }
    .about-header h2::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      width: 6px;
      height: 100%;
      border-radius: 999px;
      background: linear-gradient(180deg, #1683FF 0%, #0A4B93 100%);
    }
    .about-header a {
      text-decoration: none;
      color: var(--primary);
      font-weight: 700;
      white-space: nowrap;
    }
    .about-header a:hover,
    .about-header a:focus {
      text-decoration: underline;
      color: #0A4B93;
    }
    .about-content {
      display: flex;
      gap: 28px;
      align-items: flex-start;
      flex-wrap: wrap;
    }
    .about-text {
      flex: 1.1;
      max-width: 560px;
      color: var(--text);
    }
    .about-text p {
      margin: 0 0 14px;
      font-size: 0.95rem;
      line-height: 1.65;
      color: #243850;
      max-width: 100%;
    }
    .about-stats {
      flex: 1;
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }
    .stat-card {
      background: linear-gradient(180deg, #fff 0%, #f3f9ff 100%);
      border: 1px solid rgba(22,131,255,0.14);
      border-radius: 22px;
      padding: 20px 18px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      box-shadow: 0 18px 40px rgba(10,75,147,0.08);
      transition: transform 0.24s ease, box-shadow 0.24s ease;
    }
    .stat-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 24px 48px rgba(10,75,147,0.12);
    }
    .stat-icon {
      font-size: 26px;
      margin-bottom: 12px;
    }
    .stat-number {
      display: block;
      margin: 0;
      font-size: 2.4rem;
      font-weight: 700;
      color: var(--primary);
      line-height: 1.05;
    }
    .stat-text {
      display: block;
      font-size: 0.95rem;
      color: var(--text-muted);
      margin-top: 8px;
      line-height: 1.5;
    }
    .news-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 24px;
      margin-top: 28px;
    }
    .info-column {
      padding: 22px;
      background: rgba(255,255,255,0.94);
      border: 1px solid rgba(22,131,255,0.13);
      border-radius: 20px;
      box-shadow: 0 12px 30px rgba(10,75,147,0.08);
    }
    .info-column__title {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 0 0 18px;
      color: #12466c;
      font-size: 1.18rem;
      font-weight: 800;
    }
    .info-column__icon {
      display: grid;
      width: 26px;
      height: 26px;
      place-items: center;
      color: #087f93;
    }
    .info-column__icon svg {
      width: 23px;
      height: 23px;
      stroke: currentColor;
      fill: none;
      stroke-width: 1.9;
      stroke-linecap: round;
      stroke-linejoin: round;
    }
    .news-item {
      display: block;
      min-height: 154px;
      padding: 18px;
      color: inherit;
      text-decoration: none;
      background: #fff;
      border: 1px solid #dceaf5;
      border-radius: 16px;
      transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
    }
    .news-item:hover,
    .news-item:focus {
      border-color: rgba(22,131,255,0.4);
      box-shadow: 0 10px 24px rgba(10,75,147,0.10);
      transform: translateY(-2px);
    }
    .news-item__headline {
      display: block;
      color: #12466c;
      font-size: 1rem;
      font-weight: 800;
      line-height: 1.38;
    }
    .news-item__date {
      display: block;
      margin-top: 11px;
      color: #72849a;
      font-size: 0.79rem;
    }
    .news-item__summary {
      display: block;
      margin-top: 10px;
      color: #60758c;
      font-size: 0.91rem;
      line-height: 1.55;
    }
    .news-item__more {
      display: inline-block;
      margin-top: 12px;
      color: #087f93;
      font-size: 0.88rem;
      font-weight: 700;
    }
    .sidebar-card ul {
      margin: 0;
      padding-left: 18px;
      color: var(--text-muted);
      line-height: 1.8;
    }
    .footer {
      margin-top: 54px;
      background: linear-gradient(112deg, #062e5d 0%, #0a4b93 54%, #1171c2 100%);
      color: #fff;
    }
    .footer__main {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 48px;
      max-width: 760px;
      padding: 34px 24px 30px;
    }
    .footer__title {
      margin: 0 0 8px;
      font-size: 1rem;
      font-weight: 800;
    }
    .footer__text,
    .footer__contact {
      margin: 0;
      color: rgba(255,255,255,0.82);
      font-size: 0.92rem;
      line-height: 1.55;
    }
    .footer__contact + .footer__contact { margin-top: 8px; }
    .footer__contact strong { color: #fff; }
    .footer__bottom {
      padding: 14px 24px;
      text-align: center;
      color: rgba(255,255,255,0.76);
      font-size: 0.82rem;
      border-top: 1px solid rgba(255,255,255,0.14);
    }
    @media (max-width: 1024px) {
      .header-shell,
      .hero-panel,
      .main {
        grid-template-columns: 1fr;
      }
      .service-grid { grid-template-columns: repeat(2, 1fr); }
      .about-content { flex-direction: column; align-items: stretch; }
    }
    @media (max-width: 640px) {
      .service-grid { grid-template-columns: 1fr; }
      .utility-grid,
      .about-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .news-list { grid-template-columns: 1fr; gap: 16px; }
      .info-column { padding: 18px; }
      .brand-row { align-items: flex-start; }
      .brand h1 { font-size: 2rem; }
      .about-company { padding: 20px; margin: 20px auto; }
      .about-header { align-items: flex-start; flex-direction: column; gap: 8px; }
      .about-header h2 { font-size: 24px; }
      .about-header h2::before { height: 28px; }
      .about-text p { font-size: 15px; line-height: 1.65; }
      .stat-card { padding: 14px; }
      .stat-number { font-size: 25px; }
      .stat-text { font-size: 13px; }
      .footer__main { grid-template-columns: 1fr; gap: 20px; padding: 28px 20px 24px; }
    }

    /* Компактная двухуровневая шапка */
    .site-header {
      padding: 0;
      background: linear-gradient(135deg, #083d78 0%, #0a4b93 58%, #1269ba 100%);
      box-shadow: 0 12px 32px rgba(10,75,147,0.16);
    }
    .top-contacts {
      min-height: 40px;
      margin: 0;
      padding: 10px 0;
      border: 0;
      border-radius: 0;
      background: rgba(0,0,0,0.16);
      font-size: 0.82rem;
    }
    .top-contacts .address,
    .top-contacts .pill {
      font-size: 0.82rem;
      font-weight: 500;
    }
    .header-shell {
      display: block;
      padding: 18px 0;
    }
    .header-row {
      flex-wrap: nowrap;
      gap: 24px;
    }
    .header-brand {
      gap: 12px;
      min-width: max-content;
    }
    .logo-mark {
      width: 46px;
      height: 46px;
      min-width: 46px;
      min-height: 46px;
      border-radius: 14px;
      box-shadow: none;
    }
    .logo-mark img { border-radius: 12px; }
    .brand h1 { font-size: 1.45rem; }
    .brand p { font-size: 0.78rem; }
    .menu {
      flex: 1;
      justify-content: flex-end;
      gap: 2px;
      margin: 0;
      padding: 0;
      max-width: none;
      background: transparent;
      border: 0;
      border-radius: 0;
      box-shadow: none;
      backdrop-filter: none;
    }
    .menu a {
      min-width: 0;
      min-height: 38px;
      padding: 8px 10px;
      border: 0;
      border-radius: 10px;
      background: transparent;
      box-shadow: none;
      font-size: 0.82rem;
      white-space: nowrap;
    }
    .menu a.active {
      color: #fff;
      background: rgba(255,255,255,0.18);
      box-shadow: none;
    }
    .hero-block { display: none; }
    @media (max-width: 1024px) {
      .header-row { flex-wrap: wrap; }
      .menu { flex-basis: 100%; justify-content: flex-start; }
    }
    @media (max-width: 640px) {
      .wrapper { padding: 0 16px; }
      .top-contacts { align-items: flex-start; padding: 9px 0; }
      .top-contacts .pill { white-space: normal; }
      .header-shell { padding: 14px 0; }
      .menu { gap: 4px; }
      .menu a { padding: 7px 9px; font-size: 0.78rem; }
    }

    /* Улучшенная визуальная иерархия шапки */
    .site-header {
      background: linear-gradient(112deg, #062e5d 0%, #0a4b93 54%, #1171c2 100%);
      box-shadow: 0 14px 34px rgba(6,46,93,0.18);
    }
    .site-header::before {
      background: radial-gradient(circle at 8% 0%, rgba(105,197,255,0.22), transparent 25%),
        radial-gradient(circle at 95% 5%, rgba(255,255,255,0.10), transparent 18%);
    }
    .top-contacts {
      min-height: 42px;
      border-bottom: 1px solid rgba(255,255,255,0.14);
      background: rgba(0,20,48,0.22);
    }
    .top-contacts .address,
    .top-contacts .pill {
      font-size: 0.84rem;
      letter-spacing: 0.015em;
      color: rgba(255,255,255,0.86);
    }
    .header-shell { padding: 17px 0 15px; }
    .header-row { gap: 20px; }
    .logo-mark {
      width: 48px;
      height: 48px;
      min-width: 48px;
      min-height: 48px;
      padding: 3px;
      border: 1px solid rgba(255,255,255,0.42);
      border-radius: 16px;
      background: rgba(255,255,255,0.95);
      box-shadow: 0 8px 20px rgba(0,25,63,0.18);
    }
    .brand h1 {
      margin-bottom: 3px;
      font-size: 1.65rem;
      letter-spacing: -0.025em;
    }
    .brand p {
      font-size: 0.82rem;
      letter-spacing: 0.035em;
      text-transform: uppercase;
      opacity: 0.72;
    }
    .menu {
      gap: 0;
      align-items: center;
    }
    .menu a {
      position: relative;
      min-height: 36px;
      padding: 8px 9px;
      border-radius: 8px;
      color: rgba(255,255,255,0.88);
      font-size: 0.9rem;
      font-weight: 600;
    }
    .menu a::after {
      content: "";
      position: absolute;
      right: 9px;
      bottom: 3px;
      left: 9px;
      height: 2px;
      border-radius: 99px;
      background: #8bd2ff;
      transform: scaleX(0);
      transform-origin: center;
      transition: transform 0.2s ease;
    }
    .menu a:hover,
    .menu a:focus {
      background: rgba(255,255,255,0.09);
      transform: none;
      box-shadow: none;
      color: #fff;
    }
    .menu a:hover::after,
    .menu a:focus::after,
    .menu a.active::after { transform: scaleX(1); }
    .menu a.active {
      color: #fff;
      background: rgba(255,255,255,0.08);
      box-shadow: none;
    }
    @media (max-width: 1100px) {
      .menu a { padding-right: 8px; padding-left: 8px; }
    }
    @media (max-width: 640px) {
      .header-row { gap: 14px; }
      .menu { gap: 2px; }
      .menu a { font-size: 0.76rem; }
    }

    .menu-arrow {
      display: none;
      margin-left: 3px;
      font-size: 1rem;
      line-height: 0.8;
      opacity: 0.8;
    }
    .menu-item.has-dropdown:hover .menu-arrow,
    .menu-item.has-dropdown:focus-within .menu-arrow { opacity: 1; }
    .site-header { overflow: visible; z-index: 20; }
    .header-shell,
    .header-row,
    .menu-item.has-dropdown { position: relative; z-index: 2; }
    .submenu { z-index: 50; }
    .consumer-menu .submenu {
      width: 285px;
      max-width: min(285px, calc(100vw - 32px));
    }
    .submenu a {
      display: block;
      min-height: 0;
      padding: 11px 16px;
      color: #173c60;
      background: transparent;
      border: 0;
      border-bottom: 1px solid rgba(22,131,255,0.10);
      border-radius: 0;
      box-shadow: none;
      font-size: 0.88rem;
      font-weight: 600;
      line-height: 1.35;
      white-space: normal;
    }
    .submenu a::after { display: none; }
    .submenu a:hover,
    .submenu a:focus {
      color: #0a4b93;
      background: #eef8ff;
      transform: none;
      box-shadow: none;
    }
    .submenu a:last-child { border-bottom: 0; }
    @media (max-width: 900px) {
      .header-row { align-items: center; }
      .menu {
        flex-basis: 100%;
        justify-content: flex-start;
        row-gap: 4px;
      }
      .submenu { left: auto; right: 0; }
    }

    /* Фотобаннер предприятия */
    .building-hero {
      position: relative;
      min-height: 310px;
      overflow: hidden;
      color: #fff;
      background: #0a4b93;
    }
    .building-hero::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        linear-gradient(90deg, rgba(4,38,76,0.78) 0%, rgba(6,54,104,0.48) 43%, rgba(7,52,98,0.12) 72%),
        linear-gradient(0deg, rgba(4,31,62,0.26), transparent 55%);
      z-index: 1;
    }
    .building-hero__image {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 53%;
    }
    .building-hero__content {
      position: relative;
      z-index: 2;
      display: flex;
      min-height: 310px;
      flex-direction: column;
      justify-content: center;
      max-width: 1240px;
      margin: 0 auto;
      padding: 42px 24px;
    }
    .building-hero__eyebrow {
      margin: 0 0 10px;
      color: #aee2ff;
      font-size: 0.78rem;
      font-weight: 800;
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }
    .building-hero h2 {
      max-width: 560px;
      margin: 0;
      font-size: clamp(1.8rem, 3vw, 2.7rem);
      line-height: 1.15;
      letter-spacing: -0.03em;
    }
    .building-hero p:last-child {
      max-width: 480px;
      margin: 14px 0 0;
      color: rgba(255,255,255,0.9);
      font-size: 1rem;
      line-height: 1.6;
    }
    @media (max-width: 640px) {
      .building-hero,
      .building-hero__content { min-height: 250px; }
      .building-hero__content { padding: 32px 20px; }
      .building-hero__image { object-position: 58% center; }
      .building-hero p:last-child { font-size: 0.92rem; }
    }

    /* Полноэкранный верхний блок */
    .site-header {
      background: #344e70;
      box-shadow: none;
    }
    .site-header::before,
    .site-header::after { display: none; }
    .top-contacts {
      min-height: 40px;
      margin: 0;
      padding: 10px 0;
      background: #fff;
      border: 0;
      box-shadow: 0 0 0 100vmax #fff;
      clip-path: inset(0 -100vmax);
    }
    .top-contacts .address,
    .top-contacts .pill {
      color: #6e8095;
      font-size: 0.79rem;
      font-weight: 500;
    }
    .top-contacts .pill { color: #2e5d90; font-weight: 700; }
    .header-shell { padding: 0; }
    .header-brand { display: none; }
    .header-row {
      min-height: 54px;
      justify-content: center;
    }
    .menu {
      flex: 0 1 auto;
      justify-content: center;
      width: 100%;
      gap: 0;
    }
    .menu a {
      min-height: 54px;
      padding: 16px 18px;
      border-radius: 0;
      color: rgba(255,255,255,0.92);
      font-size: 0.92rem;
      font-weight: 700;
    }
    .menu a:hover,
    .menu a:focus,
    .menu a.active { background: rgba(255,255,255,0.10); }
    .menu a::after { right: 0; bottom: 0; left: 0; height: 3px; background: #7ed3ff; }
    .submenu { top: 100%; border-radius: 0 0 14px 14px; }
    .building-hero,
    .building-hero__content { min-height: 620px; }
    .building-hero::before {
      background: linear-gradient(90deg, rgba(2,20,42,0.76) 0%, rgba(4,33,68,0.45) 42%, rgba(3,24,50,0.08) 76%),
        linear-gradient(0deg, rgba(1,14,31,0.52) 0%, transparent 52%);
    }
    .building-hero__image { object-position: center 48%; }
    .building-hero__content {
      justify-content: flex-end;
      padding-bottom: 96px;
    }
    .building-hero__eyebrow { display: none; }
    .building-hero h2 {
      max-width: 660px;
      font-size: clamp(2.55rem, 5vw, 4.15rem);
      font-weight: 700;
      line-height: 1.05;
    }
    .building-hero p:last-child {
      max-width: 430px;
      margin-top: 16px;
      font-size: 1.08rem;
    }
    .building-hero__button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: fit-content;
      min-height: 46px;
      margin-top: 24px;
      padding: 0 22px;
      color: #fff;
      text-decoration: none;
      background: #1474e9;
      border-radius: 9px;
      box-shadow: 0 10px 22px rgba(0,45,105,0.28);
      font-weight: 800;
    }
    .building-hero__button:hover,
    .building-hero__button:focus { background: #0d60c8; transform: translateY(-1px); }
    @media (max-width: 900px) {
      .menu { justify-content: flex-start; }
      .menu a { min-height: 46px; padding: 12px 14px; }
      .building-hero,
      .building-hero__content { min-height: 510px; }
    }
    @media (max-width: 640px) {
      .top-contacts { gap: 4px 12px; }
      .top-contacts .address,
      .top-contacts .pill { font-size: 0.72rem; }
      .header-row { min-height: 48px; }
      .menu a { min-height: 42px; padding: 10px 11px; font-size: 0.79rem; }
      .building-hero,
      .building-hero__content { min-height: 420px; }
      .building-hero__content { padding: 28px 20px 58px; }
      .building-hero h2 { font-size: 2.15rem; }
      .building-hero p:last-child { font-size: 0.94rem; }
    }

    /* Подменю поверх фотобаннера */
    .site-header,
    .header-shell,
    .header-row,
    .menu { overflow: visible; }
    .site-header { z-index: 100; }
    .site-header .submenu {
      z-index: 200;
      background: #fff;
      border: 1px solid rgba(22,131,255,0.20);
      box-shadow: 0 18px 42px rgba(2,30,65,0.24);
    }
    .site-header .submenu a {
      display: block;
      min-height: 0;
      padding: 11px 16px;
      color: #173c60;
      background: transparent;
      border: 0;
      border-bottom: 1px solid rgba(22,131,255,0.10);
      border-radius: 0;
      box-shadow: none;
      font-size: 0.88rem;
      font-weight: 600;
      line-height: 1.35;
      white-space: normal;
    }
    .site-header .submenu a::after { display: none; }
    .site-header .submenu a:hover,
    .site-header .submenu a:focus {
      color: #0a4b93;
      background: #eef8ff;
      transform: none;
      box-shadow: none;
    }
    .site-header .submenu a:last-child { border-bottom: 0; }

    /* Final UI/UX polish */
    .site-header,
    .menu,
    .hero-block,
    .utility-panel { backdrop-filter: none; -webkit-backdrop-filter: none; }
    :root {
      --primary: #07549f;
      --primary-dark: #06386d;
      --accent: #1683ff;
      --focus: #ffd166;
    }
    body { background: #f3f8fd; }
    a:focus-visible, button:focus-visible {
      outline: 3px solid var(--focus);
      outline-offset: 3px;
    }
    .site-header { position: relative; background: #fff; }
    .site-header > .wrapper { max-width: none; padding: 0; }
    .top-contacts {
      max-width: 1180px;
      margin: 0 auto;
      min-height: 38px;
      padding: 8px 24px;
      color: #4f647c;
      font-size: .82rem;
    }
    .header-shell { border-radius: 0; box-shadow: none; }
    .header-row {
      min-height: 74px;
      padding: 0 max(24px, calc((100vw - 1180px) / 2));
      background: linear-gradient(100deg, #06386d, #0b5ba8);
    }
    .header-brand { flex: 0 0 auto; }
    .header-brand .brand h1 { color: #fff; font-size: 1.05rem; }
    .header-brand .brand p { color: rgba(255,255,255,.72); }
    .logo-mark {
      width: 50px;
      height: 50px;
      background: rgba(255,255,255,.12);
      border: 1px solid rgba(255,255,255,.2);
    }
    .logo-mark img { width: 100%; height: 100%; object-fit: contain; }
    .menu { margin-left: auto; }
    .menu-toggle {
      display: none;
      align-items: center;
      justify-content: center;
      width: 46px;
      height: 46px;
      padding: 0;
      color: #fff;
      background: rgba(255,255,255,.12);
      border: 1px solid rgba(255,255,255,.24);
      border-radius: 12px;
      cursor: pointer;
    }
    .menu-toggle svg { width: 24px; height: 24px; stroke: currentColor; }
    .building-hero,
    .building-hero__content { min-height: clamp(480px, 58vw, 650px); }
    .building-hero {
      background: linear-gradient(115deg, #052f5d, #0878ce);
    }
    .building-hero__content {
      max-width: 1180px;
      margin: 0 auto;
      padding: 90px 24px;
      align-items: flex-start;
      justify-content: center;
    }
    .building-hero__content > * { max-width: 650px; }
    .building-hero h2 { margin-bottom: 14px; font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1.02; }
    .building-hero p:last-of-type { max-width: 590px; font-size: clamp(1rem, 1.6vw, 1.2rem); line-height: 1.6; }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
    .building-hero__button { margin: 0; }
    .building-hero__button--secondary {
      color: #fff;
      background: rgba(255,255,255,.12);
      border: 1px solid rgba(255,255,255,.45);
      box-shadow: none;
    }
    .building-hero__button--secondary:hover { background: rgba(255,255,255,.22); }
    .service-status {
      display: flex;
      align-items: center;
      gap: 12px;
      max-width: 1180px;
      margin: -30px auto 0;
      padding: 18px 22px;
      position: relative;
      z-index: 5;
      color: #14304c;
      background: #fff;
      border: 1px solid #dce9f5;
      border-radius: 16px;
      box-shadow: 0 14px 40px rgba(14,71,123,.14);
    }
    .service-status__dot { width: 12px; height: 12px; flex: 0 0 auto; border-radius: 50%; background: #24ad6b; box-shadow: 0 0 0 5px rgba(36,173,107,.14); }
    .service-status strong { color: #0b4d84; }
    .main { padding-top: 36px; }
    .utility-panel { padding: 28px; border: 1px solid #dce9f5; box-shadow: 0 12px 36px rgba(17,74,126,.08); }
    .utility-card { border: 1px solid #e0eaf4; box-shadow: none; }
    .utility-card:hover { transform: translateY(-3px); border-color: #acd4f7; box-shadow: 0 10px 24px rgba(16,86,149,.12); }
    .about-company, .info-column { border: 1px solid #dce9f5; box-shadow: 0 12px 32px rgba(17,74,126,.07); }
    .about-company { margin-top: 28px; }
    .news-list { margin-top: 28px; }
    .stat-card { box-shadow: none; border: 1px solid #dce9f5; }
    .footer { margin-top: 64px; }

    @media (max-width: 900px) {
      .top-contacts { padding: 8px 16px; }
      .top-contacts .address { display: none; }
      .top-contacts .right-group { width: 100%; }
      .top-contacts .pill { width: 100%; text-align: center; }
      .header-row { min-height: 68px; padding: 10px 16px; flex-wrap: wrap; }
      .header-brand .brand p { display: none; }
      .menu-toggle { display: inline-flex; margin-left: auto; }
      .menu {
        display: none;
        width: 100%;
        flex-basis: 100%;
        margin: 10px 0 0;
        padding: 8px;
        background: #052f5d;
        border-radius: 14px;
      }
      .menu.is-open { display: block; }
      .menu-item { width: 100%; }
      .menu a { width: 100%; min-height: 46px; justify-content: space-between; padding: 12px 14px; border-radius: 9px; }
      .site-header .submenu {
        display: none;
        position: static;
        min-width: 0;
        margin: 2px 0 8px 12px;
        background: #073c72;
        box-shadow: none;
      }
      .menu-item:hover > .submenu,
      .menu-item:focus-within > .submenu { display: block; }
      .building-hero,
      .building-hero__content { min-height: 500px; }
      .building-hero__content { padding: 64px 20px 90px; }
      .service-status { margin: -36px 16px 0; }
    }
    @media (max-width: 640px) {
      .top-contacts { font-size: .75rem; line-height: 1.35; }
      .logo-mark { width: 44px; height: 44px; }
      .header-brand .brand h1 { font-size: .95rem; }
      .building-hero,
      .building-hero__content { min-height: 460px; }
      .building-hero__content { padding: 54px 18px 82px; }
      .building-hero h2 { font-size: 2.35rem; }
      .hero-actions { width: 100%; }
      .building-hero__button { flex: 1 1 150px; justify-content: center; text-align: center; }
      .service-status { align-items: flex-start; padding: 16px 18px; font-size: .9rem; }
      .main { padding: 28px 14px 0; }
      .utility-panel { padding: 20px; }
      .utility-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
      .utility-card { min-height: 132px; padding: 16px 10px; }
      .utility-card > span:last-child { font-size: .86rem; line-height: 1.25; }
      .about-company { margin-top: 22px; padding: 22px 18px; }
      .about-header { align-items: flex-start; gap: 8px; }
      .about-header h2 { font-size: 1.35rem; }
      .about-content { display: block; }
      .about-stats { grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: 22px; gap: 10px; }
      .stat-card { min-height: 132px; padding: 16px 12px; }
      .stat-number { font-size: 1.75rem; overflow-wrap: anywhere; }
      .news-list { display: grid; grid-template-columns: 1fr; }
      .info-column { padding: 20px 16px; }
      .footer { margin-top: 42px; }
    }

    /* Selected hero: variant 2 — copy left, building right */
    .building-hero {
      display: grid;
      grid-template-columns: minmax(390px, .88fr) minmax(0, 1.12fr);
      min-height: 570px;
      background: #063f78;
      overflow: hidden;
    }
    .building-hero::before { display: none; }
    .building-hero__content {
      grid-column: 1;
      grid-row: 1;
      width: 100%;
      min-height: 570px;
      margin: 0;
      padding: 74px clamp(34px, 6vw, 96px);
      position: relative;
      z-index: 2;
      background:
        radial-gradient(circle at 15% 20%, rgba(84, 196, 255, .18), transparent 36%),
        linear-gradient(135deg, #063667 0%, #07549f 56%, #0876bd 100%);
    }
    .building-hero__content::after {
      display: none;
    }
    .building-hero__eyebrow {
      display: block;
      margin: 0 0 18px;
      color: #8bdcff;
      font-size: .78rem;
      font-weight: 800;
      letter-spacing: .14em;
      text-transform: uppercase;
    }
    .building-hero h2 {
      max-width: 520px;
      font-size: clamp(3rem, 5vw, 5.4rem);
      line-height: .98;
    }
    .building-hero p:last-of-type { max-width: 520px; }
    .building-hero__image {
      grid-column: 2;
      grid-row: 1;
      position: relative;
      inset: auto;
      width: 100%;
      height: 570px;
      min-height: 100%;
      object-fit: cover;
      object-position: center 53%;
      opacity: 1;
    }
    @media (max-width: 900px) {
      .building-hero {
        grid-template-columns: 1fr;
        min-height: 0;
      }
      .building-hero__image {
        grid-column: 1;
        grid-row: 1;
        height: clamp(300px, 68vw, 440px);
        min-height: 0;
        object-position: center 48%;
      }
      .building-hero__content {
        grid-column: 1;
        grid-row: 2;
        min-height: 360px;
        padding: 54px 24px 60px;
      }
      .building-hero__content::after { display: none; }
    }
    @media (max-width: 640px) {
      .building-hero__image { height: 310px; }
      .building-hero__content { min-height: 320px; padding: 42px 20px 50px; }
      .building-hero h2 { font-size: 2.8rem; }
    }

    /* Переключатель языков в правой части навигации. */
    .language-switcher {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      margin-left: 8px;
      padding: 8px 12px;
      border-radius: 3px;
      background: rgba(4, 43, 84, .32);
      color: rgba(255, 255, 255, .62);
      font-size: .76rem;
      font-weight: 800;
      letter-spacing: .04em;
      white-space: nowrap;
    }
    .language-switcher a { padding: 0; color: rgba(255, 255, 255, .7); text-decoration: none; }
    .language-switcher a:hover, .language-switcher a:focus, .language-switcher a.is-active { color: #fff; }
    @media (max-width: 760px) {
      .language-switcher { margin-left: 0; }
    }

    .cabinet-page { padding-top: 34px; padding-bottom: 64px; }
    .cabinet-card { max-width: 880px; padding: 34px; border: 1px solid #d9e6f5; border-radius: 16px; background: #fff; box-shadow: 0 12px 30px rgba(10, 63, 117, .08); }
    .cabinet-card h1 { margin: 0 0 20px; color: #0b4b89; font-size: clamp(1.8rem, 4vw, 2.5rem); }
    .cabinet-intro { margin-bottom: 22px; color: #29486a; }
    .cabinet-form { display: grid; gap: 15px; max-width: 520px; }
    .cabinet-form label { display: grid; gap: 7px; color: #153a63; font-weight: 700; }
    .cabinet-form input { box-sizing: border-box; width: 100%; padding: 12px 13px; border: 1px solid #bcd1e8; border-radius: 7px; font: inherit; }
    .cabinet-form fieldset { display: flex; flex-wrap: wrap; gap: 14px; margin: 0; border: 0; padding: 0; }
    .cabinet-form fieldset label { display: block; font-weight: 500; }
    .cabinet-form fieldset input { width: auto; }
    .cabinet-form button, .cabinet-link-button { width: fit-content; padding: 12px 18px; border: 0; border-radius: 7px; background: #0b64b9; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
    .cabinet-form button:hover, .cabinet-link-button:hover { background: #084f94; }
    .cabinet-message { padding: 13px 15px; border-radius: 7px; }
    .cabinet-message--error { background: #fff0f0; color: #9d2525; }
    .cabinet-message--success { background: #eaf8ef; color: #176b3a; }
    .cabinet-data { margin: 18px 0; padding: 15px; border-radius: 8px; background: #f0f7ff; }
    .cabinet-data p { margin: 7px 0; }
    .cabinet-period { display: flex; max-width: none; flex-flow: row wrap; align-items: end; margin: 20px 0; }
    .cabinet-table-wrap { overflow-x: auto; margin: 24px 0; }
    .cabinet-table { width: 100%; border-collapse: collapse; }
    .cabinet-table td { padding: 9px; border: 1px solid #d6e3f1; vertical-align: top; }

    /* Один шрифт во всех шаблонах темы, включая формы и внутренние страницы. */
    html, body, button, input, select, textarea {
      font-family: 'Inter', Arial, sans-serif;
    }

    /* Логотип в основной строке навигации. */
    .header-row .header-brand {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      color: #fff;
      text-decoration: none;
    }
    .header-row .header-brand:hover .brand h1,
    .header-row .header-brand:focus .brand h1 { color: #9edcff; }
    .header-row .menu {
      margin-left: 18px;
      margin-right: auto;
    }
    @media (max-width: 900px) {
      .header-row .menu { margin-right: 0; }
    }

    /* Повышаем читаемость основной навигации. */
    .header-row .brand h1 {
      margin: 0;
      font-size: 1.18rem;
      font-weight: 800;
      letter-spacing: 0;
      line-height: 1.2;
    }
    .header-row .brand p { display: none; }
    .header-row .menu > .menu-item > a {
      min-height: 46px;
      padding: 10px 13px;
      font-size: .98rem;
      font-weight: 700;
      letter-spacing: 0;
      color: #fff;
    }
    .header-row .language-switcher {
      font-size: .86rem;
      font-weight: 800;
    }
    @media (max-width: 1100px) {
      .header-row .menu > .menu-item > a { padding-right: 9px; padding-left: 9px; font-size: .91rem; }
    }

    /* Активный пункт и наведение заполняют всю область пункта меню. */
    .header-row .menu { align-self: stretch; }
    .header-row .menu-item { display: flex; align-self: stretch; }
    .header-row .menu > .menu-item > a {
      height: 100%;
      min-height: 0;
      box-sizing: border-box;
      border-radius: 0;
    }
    .header-row .menu > .menu-item > a::after { display: none; }
    .header-row .menu > .menu-item > a.active,
    .header-row .menu-item:hover > a,
    .header-row .menu-item:focus-within > a {
      background: rgba(102, 180, 237, .28);
      box-shadow: inset 0 -3px 0 #7ed4ff;
    }

    /* Единый вид заголовков главных информационных блоков. */
    .services-title,
    .about-header h2 {
      position: relative;
      margin: 0;
      padding-left: 18px;
      color: var(--primary);
      font-size: 1.75rem;
      font-weight: 800;
      line-height: 1.25;
    }
    .services-title::before,
    .about-header h2::before {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      width: 6px;
      border-radius: 999px;
      background: linear-gradient(180deg, #1683ff 0%, #0a4b93 100%);
    }

    /* Фирменный синий цвет для блока новостей и объявлений. */
    .info-column__title,
    .info-column__icon,
    .news-item__headline,
    .news-item__more {
      color: var(--primary);
    }
    .news-item__date { color: #3971a5; }
    .news-item:hover .news-item__headline,
    .news-item:hover .news-item__more,
    .news-item:focus .news-item__headline,
    .news-item:focus .news-item__more { color: var(--primary-soft); }

    /* Универсальный шаблон внутренних страниц. */
    .inner-hero {
      position: relative;
      overflow: hidden;
      padding: 42px 0 46px;
      color: #fff;
      background: linear-gradient(108deg, #063d77 0%, #0b5eaa 62%, #1683d5 100%);
    }
    .inner-hero::after {
      content: "";
      position: absolute;
      right: -70px;
      bottom: -125px;
      width: 520px;
      height: 260px;
      border: 1px solid rgba(255,255,255,.3);
      border-radius: 50%;
      box-shadow: 0 -28px 0 -1px rgba(255,255,255,.12), 0 -56px 0 -2px rgba(255,255,255,.08);
    }
    .inner-hero__content { position: relative; z-index: 1; }
    .inner-hero .breadcrumbs { display: flex; gap: 9px; margin: 0 0 12px; color: rgba(255,255,255,.76); font-size: .88rem; }
    .inner-hero .breadcrumbs a { color: #fff; text-decoration: none; }
    .inner-hero h1 { max-width: 900px; margin: 0; font-size: clamp(2rem, 4vw, 3.1rem); line-height: 1.12; letter-spacing: -.03em; }
    .inner-page { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 28px; align-items: start; padding-top: 34px; padding-bottom: 68px; }
    .section-nav { position: sticky; top: 22px; padding: 12px; border: 1px solid #d6e7f6; border-radius: 16px; background: #fff; box-shadow: 0 12px 30px rgba(15, 79, 136, .08); }
    .section-nav__title { margin: 5px 10px 10px; color: var(--primary); font-size: 1rem; font-weight: 800; }
    .section-nav a { display: block; padding: 11px 10px; border-radius: 8px; color: #315270; font-size: .94rem; font-weight: 700; text-decoration: none; }
    .section-nav a:hover, .section-nav a:focus, .section-nav a.is-current { color: #fff; background: var(--primary); }
    .page-content { min-width: 0; padding: clamp(24px, 4vw, 42px); border: 1px solid #d6e7f6; border-radius: 20px; background: #fff; box-shadow: 0 14px 34px rgba(15, 79, 136, .08); }
    .page-content__image { margin: -8px -8px 28px; overflow: hidden; border-radius: 14px; }
    .page-content__image img { display: block; width: 100%; height: auto; }
    .page-content__body { color: #244464; font-size: 1rem; line-height: 1.75; }
    .page-content__body > :first-child { margin-top: 0; }
    .page-content__body h2, .page-content__body h3 { margin-top: 1.65em; color: var(--primary); line-height: 1.25; }
    .page-content__body h2 { font-size: 1.6rem; }
    .page-content__body h3 { font-size: 1.25rem; }
    .page-content__body a { color: #0876cf; font-weight: 700; }
    .page-content__body table { width: 100%; margin: 24px 0; border-collapse: collapse; }
    .page-content__body th, .page-content__body td { padding: 12px; border: 1px solid #d7e6f4; text-align: left; }
    .page-content__body th { color: var(--primary); background: #eef7ff; }
    .enterprise-stats, .enterprise-clients { display: grid; grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); gap: 14px; margin: 22px 0 30px; }
    .enterprise-stats > div, .enterprise-clients > div { padding: 19px 17px; border: 1px solid #d7e9f7; border-radius: 15px; background: linear-gradient(135deg, #fff, #f1f9ff); }
    .enterprise-stats strong, .enterprise-clients strong { display: block; color: var(--primary); font-size: 1.55rem; line-height: 1.1; }
    .enterprise-stats span, .enterprise-clients span { display: block; margin-top: 7px; color: #58718b; font-size: .86rem; line-height: 1.4; }
    .enterprise-clients { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .enterprise-clients > div { background: linear-gradient(135deg, #063d77, #0b6fc8); border: 0; }
    .enterprise-clients strong, .enterprise-clients span { color: #fff; }
    .enterprise-clients span { color: rgba(255,255,255,.8); }
    @media (max-width: 520px) { .enterprise-clients { grid-template-columns: 1fr; } }
    .laboratory-grid { display: none; }
    .laboratory-grid > div { position: relative; overflow: hidden; min-height: 142px; padding: 21px 18px; border: 1px solid #cfe6f8; border-radius: 16px; background: linear-gradient(135deg, #fff, #edf9ff); }
    .laboratory-grid > div::before { content: ""; display: block; width: 32px; height: 5px; margin-bottom: 14px; border-radius: 999px; background: linear-gradient(90deg, #0876cf, #41bbdd); }
    .laboratory-grid strong, .laboratory-grid span { display: block; }
    .laboratory-grid strong { color: var(--primary); font-size: 1rem; }
    .laboratory-grid span { margin-top: 8px; color: #5b7892; font-size: .87rem; line-height: 1.45; }
    @media (max-width: 700px) { .laboratory-grid { grid-template-columns: 1fr; } }
    .laboratory-gallery { margin-top: 44px; padding-top: 30px; border-top: 1px solid #dbeaf6; }
    .laboratory-gallery h2 { margin: 0 0 18px; color: var(--primary); font-size: 1.55rem; }
    .laboratory-gallery__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
    .laboratory-gallery figure { margin: 0; overflow: hidden; border: 1px solid #d4e7f5; border-radius: 16px; background: #f7fbff; }
    .laboratory-gallery img { display: block; width: 100%; height: 290px; object-fit: cover; }
    .laboratory-gallery__wide { grid-column: 1 / -1; }
    .laboratory-gallery__wide img { height: 390px; }
    .laboratory-gallery figcaption { padding: 13px 15px; color: #52708b; font-size: .86rem; font-weight: 700; }
    @media (max-width: 620px) { .laboratory-gallery__grid { grid-template-columns: 1fr; } .laboratory-gallery__wide { grid-column: auto; } .laboratory-gallery img, .laboratory-gallery__wide img { height: auto; max-height: 400px; object-fit: contain; background: #fff; } }
    .laboratory-lead { margin: 10px 0 30px; overflow: hidden; border-radius: 15px; background: #f2f9ff; }
    .laboratory-lead img { display: block; width: 100%; max-height: 470px; object-fit: cover; object-position: center; }
    .laboratory-lead figcaption { padding: 12px 16px; color: #52708b; font-size: .86rem; font-weight: 700; }
    .accreditation-documents { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 22px 0 32px; }
    .accreditation-documents figure { margin: 0; overflow: hidden; border: 1px solid #d4e7f5; border-radius: 14px; background: #f7fbff; }
    .accreditation-documents img { display: block; width: 100%; height: 370px; object-fit: contain; background: #fff; }
    .accreditation-documents figcaption { padding: 12px 14px; color: #52708b; font-size: .85rem; font-weight: 700; }
    @media (max-width: 620px) { .laboratory-lead img { max-height: 320px; } .accreditation-documents { grid-template-columns: 1fr; } }
    .services-page { padding-top: 34px; padding-bottom: 68px; }
    .services-intro { padding: 25px 28px; margin-bottom: 20px; border: 1px solid #d5e8f7; border-radius: 18px; background: linear-gradient(125deg, #fff, #eef9ff); box-shadow: 0 12px 30px rgba(15,79,136,.08); }
    .services-intro p { margin: 0; color: var(--primary); font-size: 1.2rem; font-weight: 800; }
    .services-intro span { display: block; margin-top: 8px; color: #607e98; }
    .services-accordion { display: grid; gap: 12px; }
    .services-accordion details { overflow: hidden; border: 1px solid #d6e7f6; border-radius: 15px; background: #fff; box-shadow: 0 8px 20px rgba(15,79,136,.06); }
    .services-accordion summary { position: relative; padding: 19px 52px 19px 22px; color: var(--primary); font-weight: 800; cursor: pointer; list-style: none; }
    .services-accordion summary::-webkit-details-marker { display: none; }
    .services-accordion summary::after { content: "+"; position: absolute; top: 50%; right: 20px; transform: translateY(-50%); display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; background: #e4f3ff; color: #0876cf; font-size: 1.3rem; line-height: 1; }
    .services-accordion details[open] summary { border-bottom: 1px solid #dcebf6; background: #f4faff; }
    .services-accordion details[open] summary::after { content: "−"; }
    .services-accordion ul { display: grid; gap: 10px; margin: 0; padding: 20px 28px 24px 43px; color: #385975; line-height: 1.55; }
    .services-accordion li::marker { color: #1683ff; }
    @media (max-width: 600px) { .services-page { padding-top: 22px; padding-bottom: 48px; } .services-intro { padding: 22px; } .services-accordion summary { padding: 17px 48px 17px 18px; } .services-accordion ul { padding: 18px 20px 22px 35px; } }
    .infrastructure-page { padding-top: 34px; padding-bottom: 68px; }
    .infrastructure-intro { padding: 25px 28px; border: 1px solid #d2e7f7; border-radius: 18px; background: linear-gradient(125deg, #fff, #eef9ff); color: #41617e; font-size: 1.05rem; line-height: 1.65; box-shadow: 0 12px 30px rgba(15,79,136,.08); }
    .infrastructure-intro p { margin: 0; }
    .infrastructure-section { margin-top: 22px; padding: 28px; border: 1px solid #d6e7f6; border-radius: 20px; background: #fff; box-shadow: 0 12px 30px rgba(15,79,136,.08); }
    .infrastructure-section__head span { color: #0876cf; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
    .infrastructure-section__head h2 { margin: 6px 0 22px; color: var(--primary); font-size: 1.65rem; }
    .infrastructure-cards, .equipment-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
    .infrastructure-cards article, .equipment-grid > div { min-height: 142px; padding: 20px 18px; border: 1px solid #d3e8f8; border-radius: 15px; background: linear-gradient(135deg, #fff, #f0f9ff); }
    .infrastructure-cards strong, .equipment-grid strong, .sewerage-stats strong { display: block; color: var(--primary); font-size: 1.7rem; line-height: 1.08; }
    .infrastructure-cards span, .equipment-grid span, .sewerage-stats span { display: block; margin-top: 9px; color: #55738e; font-size: .88rem; line-height: 1.42; }
    .infrastructure-cards small { display: block; margin-top: 8px; color: #0785a2; font-weight: 700; }
    .network-panel { display: grid; grid-template-columns: .8fr 1.2fr; gap: 20px; align-items: center; margin-top: 18px; padding: 22px; border-radius: 16px; background: #f4faff; }
    .network-panel h3 { margin: 0 0 8px; color: var(--primary); font-size: 1.1rem; }
    .network-panel strong { display: block; color: #0876cf; font-size: 1.65rem; }
    .network-panel span { color: #587692; font-size: .9rem; }
    .network-panel ul { display: grid; gap: 7px; margin: 0; padding-left: 21px; color: #46657e; }
    .network-panel li::marker { color: #1683ff; }
    .infrastructure-section--sewer { border-color: #ccebea; background: linear-gradient(125deg, #fff, #f1fcfc); }
    .sewerage-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
    .sewerage-stats article { padding: 22px 18px; border-radius: 15px; background: linear-gradient(135deg, #087d95, #14a5bd); }
    .sewerage-stats strong, .sewerage-stats span { color: #fff; }
    .sewerage-stats span { color: rgba(255,255,255,.85); }
    @media (max-width: 800px) { .infrastructure-cards, .equipment-grid, .sewerage-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .network-panel { grid-template-columns: 1fr; } }
    @media (max-width: 540px) { .infrastructure-page { padding-top: 22px; padding-bottom: 48px; } .infrastructure-intro, .infrastructure-section { padding: 22px 18px; } .infrastructure-cards, .equipment-grid, .sewerage-stats { grid-template-columns: 1fr; } }
    .connection-page { padding-top: 34px; padding-bottom: 68px; }
    .connection-intro { padding: 25px 28px; border: 1px solid #d2e7f7; border-radius: 18px; background: linear-gradient(125deg, #fff, #eef9ff); color: #41617e; font-size: 1.05rem; line-height: 1.65; box-shadow: 0 12px 30px rgba(15,79,136,.08); }
    .connection-intro p { margin: 0; }
    .connection-steps { display: grid; gap: 18px; margin-top: 22px; }
    .connection-step { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 20px; padding: 28px; border: 1px solid #d6e7f6; border-radius: 20px; background: #fff; box-shadow: 0 12px 30px rgba(15,79,136,.08); }
    .connection-step__number { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 16px; color: #fff; background: linear-gradient(145deg, #0876cf, #0a4b93); font-size: 1.45rem; font-weight: 800; box-shadow: 0 10px 20px rgba(10,75,147,.17); }
    .connection-step__eyebrow { margin: 0 0 7px; color: #0876cf; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
    .connection-step h2 { margin: 0; color: var(--primary); font-size: 1.55rem; }
    .connection-step__content > p:not(.connection-step__eyebrow) { margin: 12px 0 15px; color: #526f89; line-height: 1.55; }
    .connection-step ol { display: grid; gap: 11px; margin: 0; padding-left: 24px; color: #385975; line-height: 1.5; }
    .connection-step li::marker { color: #0876cf; font-weight: 800; }
    .connection-note { margin-top: 22px; padding: 25px 28px; border: 1px solid #ffe1a9; border-radius: 18px; background: #fffaf0; }
    .connection-note h2 { margin: 0 0 8px; color: #9a6310; font-size: 1.25rem; }
    .connection-note p { margin: 0; color: #735e3a; line-height: 1.55; }
    .connection-note a { display: inline-block; margin-top: 16px; color: #0876cf; font-weight: 800; text-decoration: none; }
    .connection-note a:hover { text-decoration: underline; }
    @media (max-width: 600px) { .connection-page { padding-top: 22px; padding-bottom: 48px; } .connection-intro, .connection-step, .connection-note { padding: 22px 18px; } .connection-step { grid-template-columns: 1fr; gap: 15px; } }
    .documents-page { min-height: 34px; }

    /* Автоматические архивы новостей, объявлений и отчётов. */
    .publication-page { padding-top: 34px; padding-bottom: 68px; }
    .publication-page__intro, .publication-empty { padding: 20px 24px; border: 1px solid #d6e7f6; border-radius: 16px; background: #fff; color: #315270; box-shadow: 0 12px 30px rgba(15,79,136,.08); }
    .publication-page__intro { margin-bottom: 22px; }
    .publication-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
    .publication-card { overflow: hidden; border: 1px solid #d6e7f6; border-radius: 18px; background: #fff; box-shadow: 0 12px 30px rgba(15,79,136,.08); }
    .publication-card__image { display: block; aspect-ratio: 16/10; background: #eaf5ff; }
    .publication-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
    .publication-card__body { padding: 20px; }
    .publication-card time { color: #5b7a9a; font-size: .82rem; font-weight: 700; }
    .publication-card h2 { margin: 10px 0 9px; font-size: 1.15rem; line-height: 1.32; }
    .publication-card h2 a, .publication-card__more { color: var(--primary); text-decoration: none; }
    .publication-card p { margin: 0 0 15px; color: #506d88; font-size: .94rem; line-height: 1.55; }
    .publication-card__more { font-weight: 800; }
    .publication-card:hover { transform: translateY(-3px); box-shadow: 0 18px 38px rgba(15,79,136,.13); }
    .publication-empty h2 { margin: 0 0 8px; color: var(--primary); }
    .publication-empty p { margin: 0; }
    @media (max-width: 900px) { .publication-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
    @media (max-width: 600px) { .publication-page { padding-top: 22px; padding-bottom: 48px; } .publication-grid { grid-template-columns: 1fr; } }

    /* Страница тарифов: карточки-выжимки и адаптивные таблицы. */
    .tariff-page { padding-top: 34px; padding-bottom: 68px; }
    .tariff-intro { padding: clamp(24px, 4vw, 42px); border: 1px solid #d2e7f7; border-radius: 22px; background: linear-gradient(120deg, #fff 0%, #f0f9ff 100%); box-shadow: 0 14px 34px rgba(15,79,136,.08); }
    .tariff-intro__eyebrow, .tariff-section__label { margin: 0 0 8px; color: #0876cf; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
    .tariff-intro h2 { margin: 0; color: var(--primary); font-size: clamp(1.75rem, 3vw, 2.45rem); }
    .tariff-intro p:last-child { max-width: 650px; margin: 14px 0 0; color: #4b6985; line-height: 1.6; }
    .tariff-highlights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 22px 0; }
    .tariff-highlights article { position: relative; overflow: hidden; padding: 26px; border-radius: 20px; color: #fff; background: linear-gradient(135deg, #063d77, #0b6fc8); box-shadow: 0 16px 34px rgba(10,75,147,.18); }
    .tariff-highlights article:nth-child(2) { background: linear-gradient(135deg, #087d95, #14a5bd); }
    .tariff-highlights article::after { content: ""; position: absolute; right: -38px; bottom: -76px; width: 180px; height: 180px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; box-shadow: 0 -27px 0 -1px rgba(255,255,255,.12); }
    .tariff-highlights span, .tariff-highlights strong, .tariff-highlights p { position: relative; z-index: 1; display: block; }
    .tariff-highlights span { color: rgba(255,255,255,.8); font-size: .92rem; font-weight: 700; }
    .tariff-highlights strong { margin: 10px 0 6px; font-size: clamp(2rem, 4vw, 3.1rem); line-height: 1; }
    .tariff-highlights strong small { font-size: .42em; }
    .tariff-highlights p { margin: 0; font-size: .88rem; color: rgba(255,255,255,.88); }
    .tariff-section { margin-top: 22px; overflow: hidden; border: 1px solid #d6e7f6; border-radius: 20px; background: #fff; box-shadow: 0 12px 30px rgba(15,79,136,.08); }
    .tariff-section__heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding: 25px 28px; border-bottom: 1px solid #dcebf7; background: #fbfdff; }
    .tariff-section__heading h2 { margin: 0; color: var(--primary); font-size: 1.5rem; }
    .tariff-section__heading > p { margin: 0; color: #5c7994; font-size: .88rem; font-weight: 700; }
    .tariff-table { width: 100%; border-collapse: collapse; }
    .tariff-table th, .tariff-table td { padding: 17px 28px; border-bottom: 1px solid #e4eef7; text-align: left; }
    .tariff-table th { color: #52718e; font-size: .79rem; letter-spacing: .06em; text-transform: uppercase; background: #f5faff; }
    .tariff-table th:last-child, .tariff-table td:last-child { width: 180px; text-align: right; white-space: nowrap; }
    .tariff-table td { color: #294b6b; line-height: 1.45; }
    .tariff-table td strong { color: var(--primary); font-size: 1.05rem; }
    .tariff-table tbody tr:last-child td { border-bottom: 0; }
    .tariff-table tbody tr:hover { background: #f4faff; }
    .tariff-note { margin: 18px 0 0; color: #64809a; font-size: .86rem; line-height: 1.5; }
    @media (max-width: 680px) { .tariff-page { padding-top: 22px; padding-bottom: 48px; } .tariff-highlights { grid-template-columns: 1fr; } .tariff-section__heading { align-items: start; flex-direction: column; padding: 22px; } .tariff-table-wrap { overflow-x: auto; } .tariff-table { min-width: 520px; } .tariff-table th, .tariff-table td { padding: 14px 18px; } }

    /* Текст главного баннера. */
    .building-hero__eyebrow { display: none !important; }
    .building-hero__content { justify-content: flex-end; padding-bottom: 112px; }
    .building-hero h2 { display: block; max-width: none; font-size: clamp(2.6rem, 3.75vw, 4.5rem); line-height: 1.04; white-space: nowrap; }
    .building-hero p:last-of-type { max-width: 560px; margin-top: 34px; font-size: clamp(1.2rem, 1.5vw, 1.35rem); font-weight: 700; line-height: 1.5; }
    /* Личный кабинет — та же светлая карточка, что на внутренних страницах. */
    .cabinet-layout { grid-template-columns: minmax(0, 880px); max-width: 880px; }
    .cabinet-card { max-width: 880px; }
    .cabinet-page--with-hero { padding-top: 34px; }
    /* Мобильная навигация: подменю показывается единым списком под разделом. */
    @media (max-width: 900px) {
      .menu.is-open { max-height: calc(100vh - 92px); overflow-y: auto; }
      .menu-item,
      .menu-item.has-dropdown { width: 100%; }
      .header-row .menu-item { display: block; align-self: auto; }
      .site-header .submenu {
        position: static;
        display: none;
        width: 100%;
        min-width: 0;
        margin: 0 0 8px;
        opacity: 1;
        pointer-events: auto;
        transform: none;
        border: 1px solid rgba(126, 211, 255, .28);
        border-radius: 10px;
        background: #0a467f;
      }
      .menu-item.has-dropdown:hover > .submenu,
      .menu-item.has-dropdown:focus-within > .submenu { display: flex; }
      .site-header .submenu a {
        width: 100%;
        min-width: 0;
        justify-content: flex-start;
        padding: 12px 16px;
        color: #fff;
        background: transparent;
        border-bottom-color: rgba(255, 255, 255, .14);
        text-align: left;
      }
      .site-header .submenu a:hover,
      .site-header .submenu a:focus { background: rgba(255, 255, 255, .12); color: #fff; }
    }
    @media (min-width: 901px) {
      .building-hero, .building-hero__content { min-height: 650px; }
      .building-hero {
        background: linear-gradient(180deg, #2e5f99 0%, #245487 58%, #194574 100%);
      }
      .building-hero__image {
        height: 650px;
        object-fit: cover;
        object-position: center center;
      }
    }
    @media (max-width: 640px) {
      .building-hero__content { justify-content: center; padding-bottom: 50px; }
      .building-hero h2 { white-space: normal; }
    }
    @media (max-width: 820px) {
      .inner-hero { padding: 32px 0 36px; }
      .inner-page { grid-template-columns: 1fr; gap: 18px; padding-top: 20px; }
      .section-nav { position: static; display: flex; flex-wrap: wrap; gap: 5px; }
      .section-nav__title { width: 100%; }
      .section-nav a { padding: 8px 10px; }
    }
    @media (max-width: 520px) {
      .page-content { padding: 22px 18px; border-radius: 14px; }
      .inner-hero h1 { font-size: 2rem; }
    }

    /* Визуальная подача личного кабинета. */
    .cabinet-page { padding-top: 28px; padding-bottom: 72px; }
    .cabinet-page > .breadcrumbs { margin: 0 0 16px; color: #55718f; }
    .cabinet-page > .breadcrumbs a { color: var(--primary); font-weight: 700; }
    .cabinet-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .8fr); gap: 26px; align-items: stretch; max-width: 1120px; }
    .cabinet-card { max-width: none; padding: clamp(28px, 4vw, 44px); border-radius: 20px; box-shadow: 0 20px 50px rgba(11, 75, 137, .11); }
    .cabinet-card h1 { margin-bottom: 22px; padding-left: 0; font-size: clamp(2rem, 3vw, 2.75rem); }
    .cabinet-intro { max-width: 680px; padding: 15px 17px; border-left: 3px solid #68bfff; border-radius: 0 10px 10px 0; background: #f2f9ff; }
    .cabinet-form { max-width: 590px; gap: 17px; margin-top: 26px; }
    .cabinet-form input { min-height: 48px; border-color: #b6d5ef; background: #fcfeff; transition: border-color .2s ease, box-shadow .2s ease; }
    .cabinet-form input:focus { outline: 0; border-color: #1683ff; box-shadow: 0 0 0 4px rgba(22, 131, 255, .12); }
    .cabinet-form fieldset { gap: 18px; padding: 12px 14px; border: 1px solid #d5e7f7; border-radius: 10px; background: #fbfdff; }
    .cabinet-form legend { padding: 0 5px; color: var(--primary); font-weight: 800; }
    .cabinet-form .account-type { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 14px; }
    .cabinet-form .account-type label { display: block; cursor: pointer; }
    .cabinet-form .account-type input { position: absolute; width: 1px; height: 1px; opacity: 0; }
    .cabinet-form .account-type label > span { display: block; position: relative; min-height: 76px; padding: 17px 16px 15px 45px; border: 1px solid #c9dff2; border-radius: 11px; background: #fff; color: #315270; transition: .2s ease; }
    .cabinet-form .account-type label > span::before { content: ""; position: absolute; top: 22px; left: 16px; width: 16px; height: 16px; border: 2px solid #8baac6; border-radius: 50%; box-sizing: border-box; }
    .cabinet-form .account-type label > span::after { content: ""; position: absolute; top: 27px; left: 21px; width: 6px; height: 6px; border-radius: 50%; background: transparent; }
    .cabinet-form .account-type b, .cabinet-form .account-type small { display: block; }
    .cabinet-form .account-type b { color: var(--primary); font-size: .98rem; }
    .cabinet-form .account-type small { margin-top: 4px; color: #7189a0; font-size: .8rem; font-weight: 500; }
    .cabinet-form .account-type input:checked + span { border-color: #1683ff; background: linear-gradient(135deg, #f8fcff, #eaf6ff); box-shadow: 0 5px 14px rgba(22, 131, 255, .12); }
    .cabinet-form .account-type input:checked + span::before { border-color: #1683ff; }
    .cabinet-form .account-type input:checked + span::after { background: #1683ff; }
    .cabinet-form .account-type input:focus-visible + span { outline: 3px solid rgba(22, 131, 255, .3); outline-offset: 2px; }
    .cabinet-form button, .cabinet-link-button { padding: 14px 20px; border-radius: 9px; box-shadow: 0 9px 20px rgba(9, 91, 174, .2); }
    .cabinet-info { position: relative; overflow: hidden; padding: 38px 30px; border-radius: 20px; color: #fff; background: linear-gradient(145deg, #063d77 0%, #0b63b5 72%, #1683d5 100%); box-shadow: 0 20px 50px rgba(11, 75, 137, .18); }
    .cabinet-info::after { content: ""; position: absolute; width: 340px; height: 190px; right: -140px; bottom: -85px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; box-shadow: 0 -26px 0 -1px rgba(255,255,255,.14), 0 -52px 0 -2px rgba(255,255,255,.08); }
    .cabinet-info > * { position: relative; z-index: 1; }
    .cabinet-info__icon { display: grid; width: 54px; height: 54px; place-items: center; border: 1px solid rgba(255,255,255,.32); border-radius: 16px; background: rgba(255,255,255,.14); font-size: 2rem; }
    .cabinet-info__eyebrow { margin: 24px 0 8px; color: #aee1ff; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
    .cabinet-info h2 { margin: 0; font-size: 1.55rem; line-height: 1.22; }
    .cabinet-info p:not(.cabinet-info__eyebrow) { margin: 15px 0 20px; color: rgba(255,255,255,.86); line-height: 1.6; }
    .cabinet-info ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
    .cabinet-info li { display: flex; gap: 9px; align-items: center; font-size: .93rem; }
    .cabinet-info li::before { content: "✓"; display: grid; width: 19px; height: 19px; place-items: center; border-radius: 50%; background: rgba(255,255,255,.18); color: #bce9ff; font-size: .75rem; font-weight: 800; }
    .cabinet-info__contact { margin-top: 28px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.24); }
    .cabinet-info__contact span, .cabinet-info__contact strong { display: block; }
    .cabinet-info__contact span { color: rgba(255,255,255,.7); font-size: .83rem; }
    .cabinet-info__contact strong { margin-top: 4px; font-size: 1.1rem; }
    @media (max-width: 820px) { .cabinet-layout { grid-template-columns: 1fr; } .cabinet-info { min-height: 330px; } }
    @media (max-width: 520px) { .cabinet-card, .cabinet-info { padding: 26px 20px; border-radius: 15px; } .cabinet-form .account-type { grid-template-columns: 1fr; } }

    /* Более выразительные сервисы и блок «О предприятии» — без изменения текста. */
    .utility-panel,
    .about-company {
      position: relative;
      overflow: hidden;
      isolation: isolate;
    }
    .utility-panel {
      background:
        radial-gradient(circle at 92% 22%, rgba(117, 204, 255, .2) 0 2px, transparent 3px),
        radial-gradient(circle at 95% 29%, rgba(117, 204, 255, .16) 0 5px, transparent 6px),
        linear-gradient(135deg, #fff 0%, #fbfdff 55%, #eaf7ff 100%);
      border-color: #cfe6f8;
      box-shadow: 0 20px 50px rgba(21, 96, 159, .10);
    }
    .utility-panel::after,
    .about-company::after {
      content: "";
      position: absolute;
      z-index: -1;
      pointer-events: none;
      background: repeating-radial-gradient(ellipse at 62% 112%, transparent 0 18px, rgba(71, 173, 235, .14) 19px 21px, transparent 22px 38px);
      opacity: .8;
    }
    .utility-panel::after { width: 520px; height: 240px; right: -80px; bottom: -150px; }
    .about-company {
      background: linear-gradient(125deg, #fff 0%, #fff 60%, #eff9ff 100%);
      border-color: #cfe6f8;
    }
    .about-company::after { width: 720px; height: 310px; left: -150px; bottom: -230px; }
    .utility-grid,
    .about-header,
    .about-content { position: relative; z-index: 1; }
    .utility-card {
      background: rgba(255,255,255,.94);
      border-color: #cfe3f6;
      box-shadow: 0 12px 26px rgba(19, 88, 150, .09);
    }
    .utility-card:hover,
    .utility-card:focus {
      transform: translateY(-5px);
      border-color: #83c6f1;
      box-shadow: 0 18px 34px rgba(17, 106, 177, .16);
    }
    .utility-icon {
      width: 58px;
      height: 58px;
      border-radius: 20px;
      background: linear-gradient(145deg, #e9f6ff, #cfeaff);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
    }
    .utility-icon svg { width: 27px; height: 27px; stroke-width: 2; }
    .stat-card { overflow: hidden; position: relative; }
    .stat-card::after { content: ""; position: absolute; width: 210px; height: 100px; right: -60px; bottom: -64px; border-radius: 50%; background: rgba(84, 183, 241, .14); }
    .stat-card:nth-child(2) { background: linear-gradient(135deg, #fff 45%, #e9fbfc); }
    .stat-card:nth-child(2)::after { background: rgba(38, 185, 189, .15); }
    .stat-card:nth-child(3) { background: linear-gradient(135deg, #fff 45%, #f0efff); }
    .stat-card:nth-child(3)::after { background: rgba(107, 88, 232, .14); }
    .stat-card:nth-child(4) { background: linear-gradient(135deg, #fff 45%, #eefbe9); }
    .stat-card:nth-child(4)::after { background: rgba(82, 184, 77, .14); }
    .stat-card:nth-child(2) .stat-number { color: #078b9a; }
    .stat-card:nth-child(3) .stat-number { color: #5641c9; }
    .stat-card:nth-child(4) .stat-number { color: #2b9d3d; }
    @media (min-width: 1000px) {
      .utility-panel { padding: 34px; }
      .utility-panel .utility-grid { gap: 16px; margin-top: 20px; }
      .utility-panel .utility-card { min-height: 176px; padding: 20px 10px; }
      .utility-panel .utility-card > span:last-child { white-space: normal; overflow: visible; text-overflow: clip; font-size: .96rem; }
    }

    /* Плотнее связываем баннер и первый информационный блок. */
    .main { padding-top: 12px; }
    .main .utility-panel { margin-top: 12px; }
    @media (max-width: 640px) {
      .main { padding-top: 10px; }
      .main .utility-panel { margin-top: 10px; }
    }
