/*!
Theme Name: kdts
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: kdts
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

kdts is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}
html body { background: var(--c-white); }

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

/* ================================================================================
   REDESIGN (2026) — added incrementally on top of the original theme, step by step.
   Scoped to component classes only (no bare element/reset rules) so pages that
   haven't been converted yet keep their original appearance untouched.
   Source: wp-content/themes/redesign_claude.html
   ================================================================================ */
:root {
  --c-dark: #06182f;
  --c-dark-2: #0a2547;
  --c-dark-3: #0d47a1;
  --c-grey: #5b6a78;
  --c-grey-2: #8a97a3;
  --c-grey-3: #c7d0d8;
  --c-line: #eef2f5;
  --c-bg: #ffffff;
  --c-bg-soft: #eaf3fc;
  --c-bg-card: #ffffff;
  --c-white: #ffffff;
  --c-gold: #e8b923;
  --c-blue-2: #1565c0;
  --c-blue-light: #8ec6f0;
  --c-blue-pale: #eaf3fc;
  --c-container: 1240px;
  --c-ink: #101820;
  --c-radius: 4px;
  --c-success: #2e9b5d;
  --c-warning: #d97a1d;
  --shadow-sm: 0 2px 8px rgba(6, 24, 47, 0.06);
  --shadow-md: 0 6px 20px rgba(6, 24, 47, 0.10);
  --shadow-lg: 0 16px 48px rgba(6, 24, 47, 0.16);
  --tr: 0.2s cubic-bezier(.2,.7,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }

/* .site-header is position:fixed (~66-70px tall), so jumping to an in-page
   anchor (e.g. hero's #services / #routes buttons) would otherwise land the
   section's heading right underneath it. scroll-margin-top reserves that
   space during anchor scrolling only — it doesn't affect normal layout. */
html { scroll-behavior: smooth; }
section, footer { scroll-margin-top: 84px; }
h1, h2, h3, h4 { margin: 0; font-weight: 800; letter-spacing: -0.01em; text-transform: uppercase; }

.container { max-width: var(--c-container); margin: 0 auto; padding: 0 24px; }

.btn { padding: 14px 24px; font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; border-radius: 10px; cursor: pointer; transition: all var(--tr); border: 1.5px solid transparent; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: 'Helvetica Neue', Arial, 'Segoe UI', sans-serif; text-decoration: none; }
.btn-primary { background: var(--c-dark-3); color: var(--c-white); border-color: var(--c-dark-3); }
.btn-primary:hover { background: var(--c-blue-2); }
.btn-secondary { background: var(--c-white); color: var(--c-dark); border-color: var(--c-line); }
.btn-secondary:hover { border-color: var(--c-dark); }
.btn-ghost { background: transparent; color: var(--c-dark); border-color: transparent; padding: 10px 12px; }
.btn-ghost:hover { background: var(--c-bg-soft); }
.btn-outline { border-color: var(--c-dark-3); color: var(--c-dark-3); background: transparent; }
.btn-outline:hover { background: var(--c-dark-3); color: var(--c-white); }
.btn-outline-light { border-color: rgba(255,255,255,.5); color: var(--c-white); background: transparent; }
.btn-outline-light:hover { background: var(--c-white); color: var(--c-dark); }

/* ----------------------------------------------------------------
   HEADER — ported from the site's own design (redesign_kdts.html):
   fixed, transparent-over-hero header that turns solid white on
   scroll/menu-open, compact always-visible main-nav (the WP Header
   Menu's parent-less top items), burger → full-width mega menu built
   from the same admin-editable Header Menu's items-with-children.
   ---------------------------------------------------------------- */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background .3s ease, border-color .3s ease, box-shadow .3s ease;
  font-family: 'Helvetica Neue', Arial, 'Segoe UI', sans-serif;
  line-height: normal;
}
.site-header.is-scrolled, .site-header.is-open {
  background: rgba(255,255,255,.97);
  border-bottom-color: var(--c-line);
  box-shadow: 0 2px 14px rgba(0,0,0,.06);
}
/* .site-header is fixed (out of flow) so every page except the homepage
   (whose .hero already reserves the space via its own top padding) needs
   compensating top padding, or its content renders underneath the header. */
body:not(.home) { padding-top: 72px; }
body:has(.page-hero) { padding-top: 0; }
.site-header a { text-decoration: none; }
.site-header img { max-width: 100%; display: block; }
.header-inner {
  max-width: var(--c-container); margin: 0 auto; padding: 12px 24px;
  display: flex; align-items: center; gap: 28px; box-sizing: border-box;
}
.logo { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.logo img { width: 42px; height: 42px; }
.logo-text { display: flex; flex-direction: column; line-height: 1.1; }
.logo-text strong { font-size: 18px; letter-spacing: .04em; color: var(--c-white); transition: color .3s ease; }
.logo-text em { font-style: normal; font-size: 10px; color: rgba(255,255,255,.75); letter-spacing: .03em; transition: color .3s ease; }
.site-header.is-scrolled .logo-text strong, .site-header.is-open .logo-text strong { color: var(--c-dark-3); }
.site-header.is-scrolled .logo-text em, .site-header.is-open .logo-text em { color: var(--c-grey); }

.main-nav { display: flex; gap: 26px; margin-left: 8px; flex: 1; }
.main-nav a {
  font-size: 14px; font-weight: 600; color: var(--c-white);
  padding: 8px 0; position: relative; transition: color .3s ease;
}
.site-header.is-scrolled .main-nav a, .site-header.is-open .main-nav a { color: var(--c-dark); }
.main-nav a::after {
  content: ''; position: absolute; left: 0; bottom: 0; height: 2px; width: 0;
  background: var(--c-blue-light); transition: width .2s ease;
}
.site-header.is-scrolled .main-nav a::after, .site-header.is-open .main-nav a::after { background: var(--c-dark-3); }
.main-nav a:hover::after { width: 100%; }

.header-actions { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.phone { font-size: 14px; font-weight: 700; color: var(--c-white); white-space: nowrap; transition: color .3s ease; }
.site-header.is-scrolled .phone, .site-header.is-open .phone { color: var(--c-dark); }

.lang-switch { display: flex; border: 1.5px solid rgba(255,255,255,.4); border-radius: 20px; overflow: hidden; transition: border-color .3s ease; }
.site-header.is-scrolled .lang-switch, .site-header.is-open .lang-switch { border-color: var(--c-dark-3); }
.lang-btn {
  border: none; background: transparent; padding: 6px 12px;
  font-size: 12px; font-weight: 700; cursor: pointer;
  color: rgba(255,255,255,.8); transition: color .3s ease; text-transform: uppercase;
}
.site-header.is-scrolled .lang-btn, .site-header.is-open .lang-btn { color: var(--c-grey); }
.lang-btn.is-active { background: var(--c-dark-3); color: var(--c-white); }
.site-header.is-scrolled .lang-btn.is-active, .site-header.is-open .lang-btn.is-active { color: var(--c-white); }

.cabinet-btn {
  padding: 10px 20px; font-size: 13px; white-space: nowrap;
  border-color: rgba(255,255,255,.6); color: var(--c-white);
  transition: border-color .3s ease, color .3s ease, background .3s ease;
}
.site-header.is-scrolled .cabinet-btn, .site-header.is-open .cabinet-btn { border-color: var(--c-dark-3); color: var(--c-dark-3); }

.burger {
  display: flex; flex-shrink: 0; flex-direction: column; justify-content: center; gap: 5px;
  width: 40px; height: 40px; border: none; background: rgba(255,255,255,.15);
  border-radius: 4px; cursor: pointer; transition: background .3s ease;
}
.site-header.is-scrolled .burger, .site-header.is-open .burger { background: var(--c-dark); }
.burger span { width: 18px; height: 2px; background: var(--c-white); margin: 0 auto; transition: transform .2s ease, opacity .2s ease; display: block; }
.burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.is-open span:nth-child(2) { opacity: 0; }
.burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.header-line {
  position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.05) 15%, var(--c-blue-light) 50%, rgba(255,255,255,.05) 85%, transparent 100%);
  background-size: 200% 100%; animation: headerLineSweep 5s linear infinite; opacity: .8;
}
.site-header.is-scrolled .header-line, .site-header.is-open .header-line {
  background: linear-gradient(90deg, transparent 0%, rgba(13,71,161,.05) 15%, var(--c-dark-3) 50%, rgba(13,71,161,.05) 85%, transparent 100%);
  background-size: 200% 100%;
}
@keyframes headerLineSweep { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* ---------- mega menu ---------- */
.mega-menu-backdrop {
  position: fixed; inset: 0; background: rgba(6,24,47,.55);
  opacity: 0; pointer-events: none; transition: opacity .3s ease; z-index: 99;
}
.mega-menu-backdrop.is-open { opacity: 1; pointer-events: auto; }
.mega-menu {
  position: absolute; top: 100%; left: 0; right: 0;
  background: rgba(255,255,255,.98); backdrop-filter: blur(10px);
  box-shadow: 0 30px 60px rgba(0,0,0,.25); border-top: 1px solid var(--c-line);
  max-height: 0; overflow: hidden; opacity: 0; pointer-events: none;
  transition: max-height .4s ease, opacity .3s ease;
}
.mega-menu.is-open { max-height: 620px; opacity: 1; pointer-events: auto; }
.mega-menu-inner {
  max-width: var(--c-container); margin: 0 auto; padding: 44px 24px 50px;
  display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr; gap: 40px; box-sizing: border-box;
}
.mega-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.mega-col-title { font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--c-dark-3); margin: 0 0 4px; }
.mega-col a { font-size: 14px; color: var(--c-grey); transition: color .2s ease; }
.mega-col a:hover { color: var(--c-dark-3); }
.mega-contacts { display: flex; flex-direction: column; gap: 6px; margin-bottom: 4px; }
.mega-contacts a { font-size: 18px; font-weight: 700; color: var(--c-dark); }
.mega-address { font-size: 13px; color: var(--c-grey); line-height: 1.5; max-width: 230px; margin: 0 0 16px; }
.mega-social { display: flex; gap: 10px; margin-bottom: 18px; }
.mega-social a {
  display: flex; align-items: center; justify-content: center; width: 36px; height: 36px;
  border: 1.5px solid var(--c-dark-3); border-radius: 50%; color: var(--c-dark-3);
}
.mega-social a:hover { background: var(--c-dark-3); color: var(--c-white); border-color: var(--c-dark-3); }
.mega-social svg { width: 16px; height: 16px; }
.mega-quicklinks { display: flex; flex-direction: column; gap: 10px; }
.mega-quicklinks a { font-size: 13px; font-weight: 700; color: var(--c-dark); text-transform: uppercase; letter-spacing: .03em; }
.mega-quicklinks a:hover { color: var(--c-dark-3); }

@media (max-width: 1180px) {
  .phone { display: none; }
  .cabinet-btn { display: none; }
  .mega-menu-inner { grid-template-columns: 1.2fr 1fr 1fr; }
  .mega-col-contact { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; gap: 32px; align-items: flex-start; }
}
@media (max-width: 760px) {
  .main-nav { display: none; }
  .mega-menu { position: fixed; top: 0; bottom: 0; max-height: none; height: 100%; overflow-y: auto; }
  .mega-menu.is-open { max-height: none; }
  .mega-menu-inner { grid-template-columns: 1fr; padding-top: 90px; gap: 32px; }
  .mega-col-contact { flex-direction: column; }
}
@media (max-width: 620px) {
  .header-inner { padding: 10px 16px; gap: 12px; }
  .logo-text { display: none; }
}

/* ----------------------------------------------------------------
   BREADCRUMB BAR (legacy page templates: .pagination-block)
   ---------------------------------------------------------------- */
.pagination-block {
  display: flex; align-items: center; justify-content: space-between;
  max-width: 1280px; margin: 0 auto; padding: 24px 24px;
  /* background: var(--c-bg-soft); 
  border-bottom: 1px solid var(--c-line); */
  font-family: 'Helvetica Neue', Arial, 'Segoe UI', sans-serif;
}
.sdfsdfjsdf { display: flex; align-items: center; }
.pagination ul {
  display: flex; align-items: center; flex-wrap: wrap;
  list-style: none; padding: 0; margin: 0;
  font-size: 13px; color: var(--c-grey);
}
.pagination ul li { position: relative; display: flex; align-items: center; padding-right: 18px; margin-left: 0; }
.pagination ul li::after {
  content: ''; position: absolute; top: 50%; right: 5px;
  width: 5px; height: 5px; transform: translateY(-60%) rotate(45deg);
  border-right: 1.5px solid var(--c-grey-3); border-top: 1.5px solid var(--c-grey-3);
  background: none;
}
.pagination .breadcrumbs__link { color: var(--c-grey); transition: color var(--tr); }
.pagination .breadcrumbs__link:hover { color: var(--c-dark); }
.pagination .pagination-last { color: var(--c-dark); font-weight: 600; padding-right: 0; }
.pagination .pagination-last::after { display: none; }

/* language switcher next to the breadcrumb trail — hardcoded Қаз/Рус/Eng
   links, sibling of .sdfsdfjsdf inside .pagination-block, present on
   nearly every inner-page template. No display/spacing was ever set, so
   it rendered as a plain stacked <ul> (block-level li's, no gap). */
.yazyk ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
}
.yazyk ul li {
  padding: 5px;
}
.yazyk ul li a {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--c-grey);
  text-decoration: none;
  transition: color var(--tr);
}
.yazyk ul li a:hover { color: var(--c-dark); }
.yazyk ul li.yazyk-active a { color: var(--c-dark); }

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

/* ----------------------------------------------------------------
   404 PAGE
   ---------------------------------------------------------------- */
.error-404 { max-width: 640px; margin: 0 auto; padding: 80px 24px 120px; }
.error-404__body p { font-size: 16px; line-height: 1.6; color: var(--c-grey); margin: 0 0 14px; }
.error-404__body ul { list-style: none; padding: 0; margin: 20px 0 36px; display: flex; flex-direction: column; gap: 10px; }
.error-404__body li { position: relative; padding-left: 22px; font-size: 15px; line-height: 1.6; color: var(--c-grey); }
.error-404__body li::before { content: ''; position: absolute; left: 0; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--c-dark); }
@media (max-width: 640px) {
  .error-404 { padding: 48px 16px 80px; }
}

/* ----------------------------------------------------------------
   GENERIC "simplepage" TEMPLATE (template-page.php)
   Standalone top-level content pages with no section sidebar
   (previously showed a hardcoded, wrong "Компания туралы" sidebar
   with a dead /o-kompanii link regardless of which page used it).
   .rukovodstvo-content--full's width override lives in main.min.css
   (appended at the end), since that file loads after this one and
   would otherwise stomp this rule — see HOMEPAGE-REDESIGN-NOTES.md
   section 8.
   ---------------------------------------------------------------- */
.simplepage-container { max-width: 1280px; margin: 0 auto; padding: 0 24px 80px; }

/* ----------------------------------------------------------------
   SUSTAINABLE DEVELOPMENT DOCUMENT LIST ("Тұрақты даму", page-id-1383)
   Scoped to this page only — .aktsioneram-text is shared by other
   pages for plain paragraph content, not just link lists.
   ---------------------------------------------------------------- */
.page-id-1383 .aktsioneram-text { text-indent: 0; }
.page-id-1383 .aktsioneram-text br { display: none; }
.page-id-1383 .aktsioneram-text a {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 18px; margin-bottom: 8px;
  background: var(--c-white); border: 1px solid var(--c-line); border-radius: 10px;
  color: var(--c-dark); text-decoration: none; font-weight: 500; font-size: 16px;
  transition: all var(--tr);
}
.page-id-1383 .aktsioneram-text a::before {
  content: '';
  flex-shrink: 0; width: 16px; height: 16px;
  background-color: var(--c-dark);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / contain;
  transition: transform var(--tr);
}
.page-id-1383 .aktsioneram-text a:hover {
  background: var(--c-bg-soft); border-color: var(--c-dark); color: var(--c-dark);
}
.page-id-1383 .aktsioneram-text a:hover::before { transform: translateX(3px); }

/* ----------------------------------------------------------------
   FOOTER — ported from the site's own design (redesign_kdts.html):
   brand column + 3 link columns + bottom bar.
   ---------------------------------------------------------------- */
.site-footer { background: var(--c-dark); color: rgba(255,255,255,.75); font-family: 'Helvetica Neue', Arial, 'Segoe UI', sans-serif; line-height: normal; }
.site-footer a { text-decoration: none; color: inherit; }
.site-footer img { max-width: 100%; display: block; }
.footer-main {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px;
  padding: 60px 24px 50px; border-bottom: 1px solid rgba(255,255,255,.1);
}
.footer-logo { width: 64px; height: 64px; margin-bottom: 20px; }
.footer-contacts { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.footer-contacts a { font-size: 18px; font-weight: 700; color: var(--c-white); }
.footer-contacts p { font-size: 13.5px; color: rgba(255,255,255,.6); margin: 6px 0 0; max-width: 260px; line-height: 1.5; }
.footer-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: var(--c-white);
}
.footer-social svg { width: 18px; height: 18px; }
.footer-col-title { color: var(--c-white); font-weight: 700; font-size: 13px; letter-spacing: .05em; text-transform: uppercase; margin: 0 0 18px; }
.footer-col { display: flex; flex-direction: column; gap: 12px; }
.footer-col a { font-size: 13.5px; color: rgba(255,255,255,.65); }
.footer-col a:hover { color: var(--c-white); }
.footer-bottom { display: flex; justify-content: space-between; padding: 22px 24px; font-size: 12.5px; color: rgba(255,255,255,.45); }
@media (max-width: 1024px) { .footer-main { grid-template-columns: 1.2fr 1fr 1fr; } }
@media (max-width: 1180px) { .footer-main { grid-template-columns: 1fr 1fr; } .footer-brand { grid-column: 1 / -1; } }
@media (max-width: 620px) {
  .footer-main { grid-template-columns: 1fr; padding: 44px 18px; }
  .footer-bottom { flex-direction: column; gap: 6px; padding: 18px; }
}

/* ----------------------------------------------------------------
   FLOATING ACTIONS
   ---------------------------------------------------------------- */
.float-actions { position: fixed; right: 24px; bottom: 82px; z-index: 90; display: flex; flex-direction: column; gap: 10px; }
.float-btn {
  width: 46px; height: 46px; border-radius: 4px; display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.14); background: var(--c-dark-2); color: var(--c-white);
  cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.25); transition: transform .2s ease, opacity .2s ease;
  padding: 0; overflow: hidden; text-decoration: none;
}
.float-btn:hover { opacity: .85; transform: translateY(-2px); }
.float-btn svg { width: 20px; height: 20px; }
.float-btn-hotline, .float-btn-eotinish { background: var(--c-white); border-color: var(--c-line); }
.float-btn-hotline img { width: 26px; height: 26px; object-fit: contain; border-radius: 4px; }
.float-btn-eotinish img { width: 34px; height: 34px; object-fit: contain; }
.float-btn-tg { background: #229ED9; }
.float-btn-phone { background: var(--c-dark); }
.float-btn-hr { background: var(--c-dark-3); }
@media (max-width: 640px) {
  .float-actions { right: 16px; bottom: 76px; gap: 8px; }
  .float-btn { width: 42px; height: 42px; }
  .float-btn-hotline img { width: 22px; height: 22px; }
  .float-btn-eotinish img { width: 30px; height: 30px; }
}

/* ----------------------------------------------------------------
   SCROLL TOP
   ---------------------------------------------------------------- */
.scroll-top {
  position: fixed; right: 24px; bottom: 24px; width: 46px; height: 46px; border-radius: 50%;
  background: var(--c-dark-3); color: var(--c-white); border: none; display: flex; align-items: center; justify-content: center;
  cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.25); opacity: 0; pointer-events: none;
  transition: opacity .2s ease, transform .2s ease; z-index: 90;
}
.scroll-top.is-visible { opacity: 1; pointer-events: auto; }
.scroll-top svg { width: 20px; height: 20px; }

/* ================================================================================
   HOMEPAGE (template-home.php) — rebuilt using the component system from
   wp-content/themes/redesign_claude.html, with real site content (CFS fields,
   real posts/partners/services, the real quote-request form) mapped in.
   main.min.css is dequeued on the front page (see functions.php), so these
   classes get their layout + look from here instead. All homepage-only class
   names, so other pages (which still load main.min.css) are unaffected.
   ================================================================================ */
.hero, .mission, .services, .routes, .partners-strip, .news, .cta-banner, .cabinet, .modal-overlay {
  font-family: 'Helvetica Neue', Arial, 'Segoe UI', sans-serif;
  box-sizing: border-box;
  line-height: normal;
}
.hero *, .mission *, .services *, .routes *, .partners-strip *, .news *, .cta-banner *, .cabinet *, .modal-overlay * {
  box-sizing: border-box;
}

/* Section head (shared by services/news) */
.section-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 48px; gap: 32px; flex-wrap: wrap; }
.section-head .head-text { max-width: 700px; }
.section-eyebrow { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--c-grey); margin-bottom: 12px; }
.section-head h2 { font-size: clamp(28px, 3.6vw, 42px); letter-spacing: -0.025em; color: var(--c-dark); margin: 0; }
.section-head p { color: var(--c-grey); margin-top: 12px; font-size: 16px; line-height: 1.6; }
.section-head .head-link {
  font-size: 14px; font-weight: 500; color: var(--c-dark);
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 14px; border: 1px solid var(--c-line); border-radius: 100px;
  transition: all var(--tr); white-space: nowrap;
}
.section-head .head-link:hover { background: var(--c-dark); color: var(--c-white); border-color: var(--c-dark); }

/* ----------------------------------------------------------------
   HERO + CALCULATOR
   ---------------------------------------------------------------- */
/* ---------------------------------------------------------------
   HERO — ported from the site's own design (see redesign_kdts.html)
   full-bleed photo/video background, badge, 3-line headline, stats,
   bottom CTA bar. Replaces the previous two-column hero+calc layout.
   --------------------------------------------------------------- */
.hero {
  position: relative;
  color: var(--c-white);
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 100px 0 0;
  overflow: hidden;
}
.hero-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.hero-bg .hero-video,
.hero-bg .hero-fallback-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  animation: heroKenBurns 24s ease-in-out infinite alternate;
}
.hero-bg .hero-video { opacity: 0; transition: opacity .6s ease; }
.hero-bg .hero-video.is-ready { opacity: 1; }
.hero-bg .hero-fallback-img { transition: opacity .6s ease; }
.hero-bg .hero-video.is-ready ~ .hero-fallback-img { opacity: 0; }
@keyframes heroKenBurns {
  0% { transform: scale(1) translate(0, 0); }
  100% { transform: scale(1.12) translate(-1%, -1%); }
}
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(6,24,47,.94) 0%, rgba(6,24,47,.72) 45%, rgba(10,37,71,.55) 100%);
}
.hero-content {
  position: relative;
  z-index: 1;
  max-width: var(--c-container);
  margin: 0 auto;
  padding: 60px 24px 140px;
  width: 100%;
}
.hero-text { min-width: 0; max-width: 760px; }
.hero .badge {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--c-dark);
  background: var(--c-gold);
  padding: 6px 14px;
  border-radius: 3px;
  margin-bottom: 22px;
}
.hero h1 {
  font-size: clamp(28px, 4.2vw, 50px);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 22px;
  color: var(--c-white);
}
.hero h1 .hl-line { display: block; }
.hero-sub {
  max-width: 640px;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(255,255,255,.85);
  margin: 0 0 40px;
}
.hero-stats { display: flex; flex-wrap: wrap; gap: 36px; }
.hero-stat { display: flex; flex-direction: column; gap: 4px; max-width: 190px; }
.hero-stat .num { font-size: 30px; font-weight: 800; color: var(--c-blue-light); line-height: 1; }
.hero-stat span:last-child { font-size: 13px; color: rgba(255,255,255,.75); line-height: 1.35; }
.hero-stat-wide { max-width: none; }
.hero-stat-wide .num, .hero-stat-wide span:last-child { white-space: nowrap; }

/* ---- hero slider: slides stack in one grid cell and cross-fade ---- */
.hero-slides { display: grid; width: 100%; flex: 1 1 auto; align-content: center; }
.hero-slide {
  grid-area: 1 / 1;
  display: flex; align-items: center;
  opacity: 0; visibility: hidden; z-index: 0;
  transition: opacity .9s ease, visibility .9s ease;
}
.hero-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.hero-slide-title {
  font-size: clamp(28px, 4.2vw, 50px); font-weight: 800; line-height: 1.1;
  letter-spacing: -0.02em; text-transform: uppercase; margin: 0 0 22px; color: var(--c-white);
}
.hero-sub-lg { max-width: 760px; font-size: clamp(16px, 1.6vw, 19px); margin-bottom: 0; }
.hero-controls {
  position: absolute; left: 50%; transform: translateX(-50%);
  width: 100%; max-width: var(--c-container); padding: 0 24px;
  bottom: 44px; z-index: 2;
  display: flex; align-items: center; justify-content: flex-start; gap: 28px;
}
.hero-dots { display: flex; gap: 10px; }
.hero-arrows { display: flex; gap: 10px; }
.hero-arrow {
  width: 44px; height: 44px; padding: 0; border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.5); background: rgba(6,24,47,.35);
  color: var(--c-white); cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: background .2s ease, border-color .2s ease;
}
.hero-arrow svg { width: 18px; height: 18px; }
.hero-arrow:hover { background: var(--c-dark-3); border-color: var(--c-dark-3); }
.hero-dot {
  width: 34px; height: 4px; padding: 0; border: 0; border-radius: 2px;
  background: rgba(255,255,255,.35); cursor: pointer; transition: background .3s ease, width .3s ease;
}
.hero-dot:hover { background: rgba(255,255,255,.6); }
.hero-dot.is-active { width: 54px; background: var(--c-blue-light); }
.hero-cta-bar { z-index: 2; }

.hero-cta-bar {
  position: absolute; left: 50%; transform: translateX(-50%);
  width: 100%; max-width: var(--c-container); padding: 0 24px;
  bottom: 0; z-index: 1; display: flex;
}
.hero-cta {
  flex: 1; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 20px 32px; background: var(--c-dark-3);
  color: var(--c-white); font-weight: 700; font-size: 15px; letter-spacing: .02em;
  transition: background .2s ease; text-decoration: none; cursor: pointer; border: none; font-family: inherit;
}
.hero-cta:hover { background: var(--c-blue-2); }
.hero-cta-alt { background: var(--c-dark-2); }
.hero-cta-alt:hover { background: #123262; }
.hero-cta-label { display: flex; align-items: center; gap: 12px; }
.hero-cta svg { width: 20px; height: 20px; flex-shrink: 0; }
.hero-cta .chev { width: 16px; height: 16px; flex-shrink: 0; }

/* ---------------------------------------------------------------
   MISSION / ABOUT strip
   --------------------------------------------------------------- */
.mission { padding: 70px 0; text-align: center; }
.mission-title { font-size: clamp(24px, 3.4vw, 38px); margin: 0 0 36px; letter-spacing: -0.01em; text-transform: uppercase; color: var(--c-dark); }
.mission-text {
  max-width: 880px; margin: 0 auto;
  font-size: clamp(18px, 2.2vw, 24px); font-weight: 600; line-height: 1.5;
  color: var(--c-dark);
}
.mission-text .mtxt-word { color: var(--c-grey-3); transition: color .2s ease; }
.mission-text .mtxt-word.is-lit { color: var(--c-dark-3); }

/* ----------------------------------------------------------------
   SERVICES — ported from the site's own design (icon/arrow card with
   a diagonal sweep-fill hover, matching redesign_kdts.html exactly).
   ---------------------------------------------------------------- */
.services { padding: 90px 0; }
.services .container > h2 { font-size: clamp(24px, 3.4vw, 38px); letter-spacing: -0.01em; color: var(--c-dark); margin: 0 0 28px; }
.services-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.service-card {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between;
  background: var(--c-line); border-radius: 4px; padding: 28px 24px 26px; overflow: hidden;
  text-decoration: none; color: inherit; min-height: 168px; isolation: isolate;
}
.service-card::before {
  content: ''; position: absolute; top: 0; right: 0; width: 80px; height: 80px;
  background: linear-gradient(135deg, var(--c-blue-pale) 0%, transparent 70%);
  transition: background .3s ease; z-index: -1;
}
.service-card::after {
  content: ''; position: absolute; inset: 0; background: var(--c-dark-3);
  transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.65,0,.35,1); z-index: -1;
}
.service-card:hover::after { transform: scaleX(1); }
.service-card:hover::before { background: linear-gradient(135deg, rgba(255,255,255,.16) 0%, transparent 70%); }
.service-card:hover { color: var(--c-white); }
.service-card:hover .s-icon { color: var(--c-white); }
.service-card:hover .s-arrow { opacity: 1; transform: translate(0,0); color: var(--c-white); }
.s-icon { color: var(--c-dark-3); margin-bottom: 20px; position: relative; transition: color .3s ease; }
.s-icon img { width: 52px; height: 52px; object-fit: contain; }
.s-icon svg { width: 60px; height: 60px; display: block; }
.service-card h3 { font-size: 16px; font-weight: 700; line-height: 1.3; margin: 0; position: relative; color: inherit; letter-spacing: 0; text-transform: none; }
.s-arrow {
  position: absolute; right: 20px; bottom: 20px; width: 18px; height: 18px;
  color: var(--c-dark-3); opacity: 1; transition: opacity .3s ease, transform .3s ease, color .3s ease;
}
.service-card-cta { background: var(--c-dark-3); color: var(--c-white); }
.service-card-cta .s-icon { color: rgba(255,255,255,.85); }
.service-card-cta::before { display: none; }
.service-card-cta::after { background: var(--c-line); }
.service-card-cta .s-arrow { opacity: .85; color: var(--c-white); }
.service-card-cta:hover { color: var(--c-dark); }
.service-card-cta:hover .s-icon, .service-card-cta:hover .s-arrow { color: var(--c-dark-3); }


/* ----------------------------------------------------------------
   ROUTES — interactive amCharts maps + route tabs/info bars, ported
   from the site's own design (redesign_kdts.html). See
   template-parts/routes.php and js/route-maps.js.
   ---------------------------------------------------------------- */
.routes { position: relative; background: var(--c-dark); overflow: hidden; }
.routes::before, .routes::after {
  content: ''; position: absolute; width: 26px; height: 26px;
  border: 2px solid rgba(255,255,255,.3); z-index: 3;
}
.routes::before { top: 40px; left: 24px; border-right: none; border-bottom: none; }
.routes::after { bottom: 40px; right: 24px; border-left: none; border-top: none; }
.routes h2 { max-width: 720px; margin: 0 0 30px; font-size: clamp(24px, 3.4vw, 38px); text-transform: uppercase; letter-spacing: -0.01em; }
.h-light { color: var(--c-white); }

.route-map { position: relative; width: 100%; aspect-ratio: 1.8 / 1; min-height: 680px; background: var(--c-dark-2); }
.route-map-chart { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; transition: opacity .4s ease; }
.route-map-chart.is-active { opacity: 1; pointer-events: auto; z-index: 1; }
.routes-top-scrim {
  position: absolute; inset: 0 0 auto 0; height: 50%; z-index: 2;
  background: linear-gradient(180deg, rgba(6,24,47,1) 0%, rgba(6,24,47,.86) 55%, rgba(6,24,47,0) 100%);
  pointer-events: none;
}
.routes-content { position: relative; z-index: 3; width: 100%; padding: 48px 0 0; }
.routes-list-title { color: var(--c-white); font-weight: 700; margin: 0 0 16px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; }
.route-tabs-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.route-tab {
  text-align: center; background: rgba(255,255,255,.06); border: 1.5px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.8); font-size: 13px; font-weight: 600; font-family: inherit;
  padding: 14px 12px; border-radius: 4px; cursor: pointer; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.route-tab:hover { background: rgba(255,255,255,.14); color: var(--c-white); }
.route-tab.is-active { background: var(--c-dark-3); border-color: var(--c-dark-3); color: var(--c-white); }
.route-switcher-btn { justify-self: stretch; padding: 14px 10px; font-size: 13px; letter-spacing: .01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.route-info-bar {
  position: absolute; left: 50%; bottom: 46px; transform: translateX(-50%);
  width: calc(100% - 48px); max-width: 920px; z-index: 3;
  background: rgba(10,37,71,.92); backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.22); border-radius: 10px; padding: 18px 26px 14px;
  opacity: 0; pointer-events: none; transition: opacity .4s ease;
}
.route-info-bar.is-active { opacity: 1; pointer-events: auto; }
.rib-track { display: flex; align-items: center; flex-wrap: wrap; row-gap: 10px; }
.rib-city { color: var(--c-white); font-weight: 700; font-size: clamp(12px, 1.5vw, 16px); white-space: nowrap; }
.rib-seg { flex: 1; min-width: 44px; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 0 8px; }
.rib-arrow { position: relative; width: 100%; height: 1px; background: var(--c-gold); }
.rib-arrow::after {
  content: ''; position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  border-style: solid; border-width: 3px 0 3px 5px; border-color: transparent transparent transparent var(--c-gold);
}
.rib-dist { font-size: 10.5px; color: var(--c-blue-light); white-space: nowrap; }
.rib-total { margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.22); text-align: center; display: flex; justify-content: center; gap: 18px; }
.rib-total span { color: var(--c-gold); font-weight: 800; font-size: 13px; letter-spacing: .02em; }

@media (max-width: 1180px) { .route-tabs-row { grid-template-columns: repeat(2, 1fr); } .routes-top-scrim { height: 60%; } }
@media (max-width: 760px) {
  .route-tabs-row { grid-template-columns: 1fr; }
  .routes-top-scrim { height: 72%; }
  .route-map { min-height: 800px; }
}
@media (max-width: 620px) {
  .route-map { min-height: 560px; }
  .route-info-bar { padding: 14px 16px 12px; bottom: 28px; }
  .rib-city { font-size: 11px; }
  .rib-total span { font-size: 11px; }
}

/* ----------------------------------------------------------------
   PARTNERS STRIP
   ---------------------------------------------------------------- */
.partners-strip { padding: 90px 0; background: var(--c-bg-soft); }
.partners-strip .container > h2 { font-size: clamp(24px, 3.4vw, 38px); text-transform: uppercase; letter-spacing: -0.01em; color: var(--c-dark); margin: 0 0 36px; }
.partners-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; }
.partner-cell {
  display:flex; align-items:center; justify-content:center;
  height:88px; background:var(--c-white); border-radius:4px; padding:16px 20px;
}
.partner-logo { max-width:100%; max-height:44px; width:auto; height:auto; object-fit:contain; filter:grayscale(1) opacity(.55); transition:filter var(--tr); }
.partner-cell:hover .partner-logo { filter:grayscale(0) opacity(1); }
@media (max-width: 1024px) { .partners-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 760px) { .partners-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 620px) { .partners-grid { grid-template-columns: repeat(2, 1fr); } }

/* ----------------------------------------------------------------
   REVEAL ON SCROLL
   ---------------------------------------------------------------- */
[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }

/* ----------------------------------------------------------------
   NEWS — ported from the site's own design (redesign_kdts.html).
   ---------------------------------------------------------------- */
.news { padding:90px 0; }
.news-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 36px; }
.news-head h2 { margin: 0; font-size: clamp(24px, 3.4vw, 38px); text-transform: uppercase; letter-spacing: -0.01em; color: var(--c-dark); }
.news-head-link { font-size: 13px; font-weight: 700; color: var(--c-dark-3); text-transform: uppercase; letter-spacing: .03em; transition: color .2s ease; text-decoration: none; }
.news-head-link:hover { color: var(--c-blue-2); }
.news-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.news-card { display: flex; flex-direction: column; border: 1px solid var(--c-line); border-radius: 4px; overflow: hidden; transition: border-color .2s ease, transform .15s ease; text-decoration: none; color: inherit; }
.news-card:hover { border-color: var(--c-dark-3); transform: translateY(-2px); }
.news-img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.news-body { padding: 20px 22px 22px; min-height: 160px; flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
.news-card p { font-size: 14px; line-height: 1.45; font-weight: 600; color: var(--c-dark); margin: 0; order: -1; margin-bottom: 30px; }
.news-date { display: flex; align-items: baseline; gap: 6px; }
.news-date .d { font-size: 26px; font-weight: 800; color: var(--c-dark-3); }
.news-date .m { font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--c-grey); }
.news-date .y { font-size: 13px; color: var(--c-grey); margin-left: auto; }
@media (max-width: 1024px) { .news-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px) { .news-grid { grid-template-columns: 1fr; } }

/* ----------------------------------------------------------------
   CABINET PROMO
   ---------------------------------------------------------------- */
.cabinet {
  background: var(--c-dark);
  background-image: radial-gradient(circle at 85% 20%, rgba(21,101,192,.35), transparent 55%);
  padding: 90px 0;
  text-align: center;
  color: var(--c-white);
}
.cabinet h2 { max-width: 760px; margin: 0 auto 16px; font-size: clamp(24px, 3.4vw, 38px); font-weight: 700; text-transform: uppercase; letter-spacing: -0.01em; color: var(--c-white); }
.cabinet-sub { max-width: 720px; margin: 0 auto 50px; color: rgba(255,255,255,.75); font-size: 15px; }
.cabinet-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 50px;
  text-align: left;
}
.cabinet-item {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 4px;
  padding: 24px;
}
.cabinet-item svg { width: 34px; height: 34px; color: var(--c-blue-light); margin-bottom: 16px; }
.cabinet-item h4 { font-size: 14px; text-transform: none; margin: 0 0 8px; color: var(--c-white); }
.cabinet-item p { font-size: 13px; color: rgba(255,255,255,.65); margin: 0; line-height: 1.5; }
.btn-lg { padding: 16px 40px; font-size: 15px; }
@media (max-width: 1024px) { .cabinet-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .cabinet-grid { grid-template-columns: 1fr; } }

/* ----------------------------------------------------------------
   CTA
   ---------------------------------------------------------------- */
.cta-banner { background: var(--c-dark-3); color: var(--c-white); padding: 70px 0; }
.cta-inner { text-align: center; }
.cta-banner h2 { margin: 0 0 14px; font-size: clamp(24px, 3.4vw, 38px); text-transform: uppercase; letter-spacing: -0.01em; color: var(--c-white); }
.cta-banner p { max-width: 640px; margin: 0 auto 32px; font-size: 15px; color: rgba(255,255,255,.85); }
.cta-phones { display: inline-block; white-space: nowrap; }
.cta-buttons { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
.cta-buttons .btn-primary { background: var(--c-white); color: var(--c-dark-3); border-color: var(--c-white); }
.cta-buttons .btn-primary:hover { background: var(--c-bg-soft); }


/* ===========================================================
   INNER PAGE HERO (breadcrumb + title band)
   =========================================================== */
.page-hero {
  background: var(--c-dark);
  background-image: radial-gradient(circle at 85% 20%, rgba(21,101,192,.35), transparent 55%);
  padding: 152px 0 60px;
  color: var(--c-white);
}
.breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 13px; color: rgba(255,255,255,.5); margin: 0 0 22px; }
.breadcrumb a { color: rgba(255,255,255,.75); transition: color .2s ease; }
.breadcrumb a:hover { color: var(--c-white); }
.breadcrumb .crumb-sep { color: rgba(255,255,255,.3); }
.breadcrumb .crumb-current { color: var(--c-blue-light); }
.page-hero h1 { font-size: clamp(28px, 4.4vw, 52px); line-height: 1.05; margin: 0 0 18px; max-width: 900px; }
.page-hero.is-article h1 { font-size: clamp(19px, 2.4vw, 29px); line-height: 1.35; max-width: 820px; }
.page-hero-sub { font-size: clamp(15px, 1.6vw, 18px); line-height: 1.6; color: rgba(255,255,255,.72); max-width: 620px; margin: 0; }

/* ---------- pill sub-navigation (switch between sibling pages) ---------- */
.subnav-pills {
  display: flex; flex-wrap: nowrap; gap: 8px; margin: 26px 0 0;
  overflow-x: auto; padding-bottom: 4px;
  scrollbar-width: none;
}
.subnav-pills::-webkit-scrollbar { display: none; }
.subnav-pills a {
  display: inline-flex; align-items: center;
  padding: 8px 14px;
  font-size: 12.5px; font-weight: 700; letter-spacing: .01em;
  border: 1.5px solid rgba(255,255,255,.3);
  border-radius: 999px;
  color: rgba(255,255,255,.85);
  transition: background .2s ease, border-color .2s ease, color .2s ease;
  white-space: nowrap;
}
.subnav-pills a:hover { border-color: var(--c-white); color: var(--c-white); }
.subnav-pills a.is-active { background: var(--c-blue-2); border-color: var(--c-blue-2); color: var(--c-white); }

/* ===========================================================
   INNER PAGE CONTENT (generic article wrapper)
   =========================================================== */
.page-content { padding: 64px 0 90px; }
/* every inner page uses the same content width as the header / hero */
.page-content .container,
.page-content.is-wide .container { max-width: var(--c-container); }
.page-lead { font-size: 17px; line-height: 1.7; color: var(--c-grey); margin: 0 0 44px; }
.page-section { margin-bottom: 54px; }
.page-section:last-child { margin-bottom: 0; }
.page-section h2 { font-size: clamp(19px, 2.4vw, 26px); margin-bottom: 20px; }
.page-section p { font-size: 15px; line-height: 1.8; color: var(--c-ink); margin: 0 0 18px; }
.page-section p:last-child { margin-bottom: 0; }

.service-detail p { font-size: 15px; line-height: 1.8; color: var(--c-ink); margin: 0 0 18px; }
.service-detail-list { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.service-detail-list li {
  position: relative;
  padding-left: 26px;
  font-size: 15px;
  line-height: 1.7;
  color: var(--c-ink);
}
.service-detail-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-dark-3);
}

.timeline { position: relative; display: flex; flex-direction: column; margin-bottom: 60px; padding-left: 44px; }
.timeline::before { content: ""; position: absolute; left: 7px; top: 10px; bottom: 10px; width: 2px; background: var(--c-line); }
.timeline-item { position: relative; padding: 0 0 40px; }
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item::before {
  content: ""; position: absolute; left: -44px; top: 4px;
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--c-white); border: 3px solid var(--c-dark-3);
}
.timeline-year { display: inline-block; font-size: 34px; font-weight: 800; color: var(--c-dark-3); line-height: 1; margin-bottom: 10px; letter-spacing: -.01em; }
.timeline-text { font-size: 16px; line-height: 1.65; color: var(--c-ink); max-width: 720px; }

/* ---------- people grid (hover image-accordion leadership / board gallery) ---------- */
.people-grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 60px;
}
.people-row {
  display: flex;
  align-items: stretch;
  gap: 10px;
}
.people-card {
  position: relative;
  flex: 1 1 0%;
  height: 460px;
  min-width: 0;
  border-radius: 14px;
  overflow: hidden;
  background: var(--c-dark);
  cursor: pointer;
  transition: flex .4s ease;
}
.people-card:hover { flex: 0 0 460px; }
.people-row:has(.people-card:hover) .people-card:not(:hover) { flex: 1 1 0%; }
.people-card::before {
  /* blurred dim overlay on the OTHER cards while a sibling is hovered */
  content: "";
  position: absolute; inset: 0;
  background: rgba(6,24,47,.2);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
  z-index: 2;
}
.people-row:has(.people-card:hover) .people-card:not(:hover)::before { opacity: 1; }
.people-card-photo-wrap { position: absolute; inset: 0; aspect-ratio: unset; overflow: hidden; background: var(--c-line); }
.people-card-photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 18%;
  transition: object-position .4s ease;
}
.people-card:hover .people-card-photo { object-position: center; }
.people-card-photo-wrap::after {
  content: ""; position: absolute; inset: auto 0 0 0; height: 55%;
  background: linear-gradient(to top, rgba(6,24,47,.85), transparent);
  pointer-events: none;
  opacity: 0;
  transition: opacity .3s ease;
}
.people-card:hover .people-card-photo-wrap::after { opacity: 1; }
.people-card-body {
  position: absolute; inset: auto 0 0 0;
  padding: 18px 20px 20px;
  z-index: 1;
}
.people-card-body h3 {
  font-size: 15px; text-transform: none; font-weight: 700; color: var(--c-white); margin: 0 0 8px; letter-spacing: 0;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  opacity: 0; transform: translateY(8px);
  transition: opacity .25s ease, transform .25s ease;
}
.people-card:hover .people-card-body h3 { opacity: 1; transform: translateY(0); transition-delay: .15s; }
.people-card-body .info-role {
  display: inline-block;
  background: rgba(255,255,255,.14); color: var(--c-white);
  padding: 5px 11px; border-radius: 6px;
  font-size: 11px; font-weight: 700; letter-spacing: .01em;
  margin: 0;
  white-space: nowrap;
  opacity: 0; transform: translateY(8px);
  transition: opacity .25s ease, transform .25s ease;
}
.people-card:hover .people-card-body .info-role { opacity: 1; transform: translateY(0); transition-delay: .22s; }
.people-card-body p {
  font-size: 13px; color: rgba(255,255,255,.85); line-height: 1.6; margin: 12px 0 0;
  max-width: 420px;
  opacity: 0; transform: translateY(8px);
  transition: opacity .25s ease, transform .25s ease;
}
.people-card:hover .people-card-body p { opacity: 1; transform: translateY(0); transition-delay: .3s; }
.people-more {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 14px;
  padding: 10px 16px; border: 1px solid rgba(255,255,255,.4); border-radius: var(--c-radius);
  background: rgba(255,255,255,.1); cursor: pointer; font-family: inherit;
  font-size: 11.5px; font-weight: 700; color: var(--c-white); text-transform: uppercase; letter-spacing: .03em;
  opacity: 0; transform: translateY(8px);
  transition: opacity .25s ease, transform .25s ease, background .2s ease;
}
.people-card:hover .people-more { opacity: 1; transform: translateY(0); transition-delay: .35s; }
.people-more:hover { background: var(--c-dark-3); border-color: var(--c-dark-3); }
.people-more svg { width: 14px; height: 14px; transition: transform .2s ease; }
.people-more:hover svg { transform: translateX(3px); }

@media (max-width: 900px) {
  .people-row { flex-direction: column; }
  .people-card { flex: none !important; height: auto; display: flex; flex-direction: column; }
  .people-card::before { display: none; }
  .people-card-photo-wrap { position: relative; inset: auto; height: 220px; }
  .people-card-photo-wrap::after { display: none; }
  .people-card-body {
    position: relative; inset: auto;
    background: var(--c-dark);
    padding: 18px 20px 20px;
  }
  .people-card-body h3 { white-space: normal; font-size: 16px; }
  .people-card-body h3,
  .people-card-body .info-role,
  .people-card-body p,
  .people-more { opacity: 1; transform: none; transition-delay: 0s; }
}

/* ---------- reception schedule + online appointment form ---------- */
.reception-block { display: grid; grid-template-columns: 320px 1fr; gap: 28px; align-items: stretch; }
.reception-banner {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  min-height: 420px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: var(--c-dark);
}
.reception-banner-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: .85;
}
.reception-banner::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(6,24,47,.9) 0%, rgba(13,71,161,.55) 45%, rgba(6,24,47,.55) 100%);
}
.reception-banner-text {
  position: relative;
  padding: 30px 26px 0;
  font-size: 26px;
  font-weight: 800;
  line-height: 1.25;
  color: var(--c-white);
  text-transform: uppercase;
}
.reception-banner-text span:first-child { color: var(--c-blue-light); }
.reception-download-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 26px 26px;
  padding: 14px 20px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.3);
  border-radius: var(--c-radius);
  color: var(--c-white);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  transition: background .2s ease, border-color .2s ease;
}
.reception-download-btn:hover { background: var(--c-dark-3); border-color: var(--c-dark-3); }
.reception-form-card {
  background: var(--c-white);
  border: 1px solid var(--c-line);
  border-radius: 14px;
  box-shadow: 0 6px 20px rgba(6,24,47,.05);
  padding: 36px 40px;
}
.reception-form-title { font-size: 17px; font-weight: 800; color: var(--c-ink); text-align: center; margin: 0 0 22px; }
.reception-form { max-width: 580px; margin: 0 auto; }
.reception-form-fields { display: flex; flex-direction: column; gap: 14px; }
.reception-form select,
.reception-form input {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid var(--c-line);
  border-radius: var(--c-radius);
  font-family: inherit;
  font-size: 15px;
  color: var(--c-ink);
  background: var(--c-white);
  transition: border-color .2s ease;
}
.reception-form select:focus,
.reception-form input:focus { outline: none; border-color: var(--c-dark-3); }
.reception-form select { font-weight: 700; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6a78' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 16px; }
.reception-form-submit {
  align-self: flex-start;
  margin-top: 4px;
  padding: 15px 34px;
  background: var(--c-grey);
  color: var(--c-white);
  border: none;
  border-radius: var(--c-radius);
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  cursor: pointer;
  transition: background .2s ease;
}
.reception-form-submit:hover { background: var(--c-dark-3); }
.reception-form.is-sent .reception-form-fields { display: none; }
.reception-form-sent { display: none; text-align: center; padding: 30px 0; color: var(--c-dark-3); font-weight: 700; font-size: 15px; }
.reception-form.is-sent .reception-form-sent { display: block; }

@media (max-width: 900px) {
  .reception-block { grid-template-columns: 1fr; }
  .reception-banner { min-height: 260px; }
}

/* ---------- person modal (read-more popup) ---------- */
.person-modal {
  position: relative;
  background: var(--c-white);
  border-radius: 18px;
  width: 100%;
  max-width: 780px;
  height: min(600px, 86vh);
  overflow: hidden;
  box-shadow: 0 30px 70px rgba(0,0,0,.35);
  transform: translateY(16px);
  transition: transform .25s ease;
  display: flex;
  align-items: stretch;
}
.modal-overlay.is-open .person-modal { transform: translateY(0); }

/* the modal has a fixed height, so the portrait always fills its column
   edge-to-edge -- no leftover panel colour, no stretched/distorted crop */
.person-modal-photo-wrap {
  position: relative;
  flex: 0 0 300px;
  align-self: stretch;
  overflow: hidden;
  background: var(--c-dark);
}
.person-modal-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 15%;
  display: block;
}
.person-modal-photo-wrap::after {
  /* gold accent seam on the inner edge -- the page's one deliberate
     flourish, echoing the gold pin markers on the branch map elsewhere */
  content: "";
  position: absolute;
  top: 0; bottom: 0; right: 0;
  width: 3px;
  background: linear-gradient(180deg, var(--c-gold), rgba(232,185,35,.15));
}
.person-modal-body {
  padding: 40px 40px 36px;
  flex: 1;
  min-width: 0;
  height: 100%;
  overflow-y: auto;
}
.person-modal-body h3 {
  font-size: 24px; text-transform: none; font-weight: 800; color: var(--c-dark);
  margin: 0 0 12px; letter-spacing: -.01em; line-height: 1.2;
}
.person-modal-body .info-role {
  display: inline-block;
  background: none; color: var(--c-dark-3);
  border: 1px solid var(--c-blue-light);
  padding: 6px 13px; border-radius: 20px;
  font-size: 12.5px; font-weight: 700; letter-spacing: .01em;
  margin: 0 0 24px;
}
.person-modal-body p { font-size: 14.5px; color: var(--c-ink); line-height: 1.75; margin: 0 0 16px; }
.person-modal-body p:last-child { margin-bottom: 0; }
.person-modal-body p + p { padding-top: 16px; border-top: 1px solid var(--c-line); }
.callback-close.person-modal-close {
  position: absolute; top: 16px; right: 16px; z-index: 2;
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%;
  background: rgba(255,255,255,.92); color: var(--c-dark);
  box-shadow: 0 4px 14px rgba(6,24,47,.25);
  backdrop-filter: blur(4px); cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.callback-close.person-modal-close svg { width: 18px; height: 18px; display: block; }
.callback-close.person-modal-close:hover { background: var(--c-dark-3); color: var(--c-white); }

@media (max-width: 640px) {
  .person-modal { flex-direction: column; max-height: 90vh; overflow-y: auto; }
  .person-modal-photo-wrap { flex: none; align-self: auto; aspect-ratio: 16 / 10; }
  .person-modal-photo { position: absolute; inset: 0; aspect-ratio: unset; height: 100%; object-position: center 20%; }
  .person-modal-photo-wrap::after { display: none; }
  .person-modal-body { padding: 28px 24px; max-height: none; overflow-y: visible; }
}

/* ---------- news article page (full article + sidebar) ---------- */
.article-layout { display: grid; grid-template-columns: 1fr 320px; gap: 56px; align-items: start; }
.article-main { min-width: 0; }
.article-hero-img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; margin: 0 0 32px; display: block; background: var(--c-line); }
.article-date { display: flex; align-items: baseline; gap: 6px; margin: 0 0 16px; }
.article-date .d { font-size: 30px; font-weight: 800; color: var(--c-dark-3); line-height: 1; }
.article-date .m { font-size: 12px; font-weight: 700; letter-spacing: .06em; color: var(--c-grey); text-transform: uppercase; }
.article-date .y { font-size: 14px; color: var(--c-grey); }
.article-main p { font-size: 15.5px; color: var(--c-ink); line-height: 1.85; margin: 0 0 20px; }
.article-main p:last-child { margin-bottom: 0; }

.article-sidebar { position: sticky; top: 110px; }
.article-sidebar-title { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--c-grey); margin: 0 0 20px; }
.news-side-list { display: flex; flex-direction: column; gap: 20px; }
.news-side-item { display: flex; gap: 14px; }
.news-side-item img { width: 88px; height: 66px; object-fit: cover; border-radius: 6px; flex-shrink: 0; background: var(--c-line); }
.news-side-item .t { font-size: 13.5px; font-weight: 700; line-height: 1.4; color: var(--c-ink); margin: 0 0 8px; transition: color .2s ease; }
.news-side-item .d { font-size: 12px; color: var(--c-grey); }
.news-side-item:hover .t { color: var(--c-dark-3); }

@media (max-width: 900px) {
  .article-layout { grid-template-columns: 1fr; gap: 44px; }
  .article-sidebar { position: static; }
  .news-side-list { flex-direction: row; overflow-x: auto; padding-bottom: 8px; }
  .news-side-item { flex-direction: column; width: 200px; flex-shrink: 0; }
  .news-side-item img { width: 100%; height: 120px; }
}

@media (max-width: 640px) {
  .news-modal-body { padding: 24px 22px 32px; }
}

/* ---------- info grid (branches / job listings) ---------- */
.info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-bottom: 54px; }
.info-grid.cols-1 { grid-template-columns: 1fr; }
.info-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.info-card { border: 1px solid var(--c-line); border-radius: var(--c-radius); padding: 22px 24px; }
.info-card h3 { font-size: 15px; text-transform: none; font-weight: 700; color: var(--c-ink); margin: 0 0 6px; letter-spacing: 0; }
.info-card .info-role { font-size: 12.5px; font-weight: 700; color: var(--c-dark-3); text-transform: uppercase; letter-spacing: .04em; margin: 0 0 10px; }
.info-card p { font-size: 14px; color: var(--c-grey); line-height: 1.6; margin: 0 0 6px; }
.info-card p:last-child { margin-bottom: 0; }
.info-card a.info-link { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--c-dark-3); margin-top: 8px; }
.info-card a.info-link:hover { color: var(--c-blue-2); }
.info-card-head { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 14px; }
.info-card-photo { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; object-position: center 22%; flex-shrink: 0; background: var(--c-line); }
.info-card-head h3 { margin: 0 0 4px; }
.info-card-head .info-role { margin: 0; }

/* ---------- tender listing (Сатып алулар) ---------- */
.zakupki-layout { display: flex; align-items: flex-start; gap: 44px; margin-bottom: 54px; }
.zakupki-sidebar { flex: 0 0 240px; position: sticky; top: 100px; }
.zakupki-nav-group { margin-bottom: 26px; }
.zakupki-nav-title {
  display: block; font-size: 13px; font-weight: 800; color: var(--c-dark);
  text-transform: uppercase; letter-spacing: .03em; margin-bottom: 10px; text-decoration: none;
}
a.zakupki-nav-title:hover { color: var(--c-dark-3); }
.zakupki-nav-group ul { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--c-line); }
.zakupki-nav-group li { margin: 0; }
.zakupki-nav-group li a {
  display: block; padding: 6px 0 6px 14px; font-size: 13.5px; color: var(--c-grey);
  line-height: 1.4; transition: color .2s ease;
}
.zakupki-nav-group li a:hover { color: var(--c-dark-3); }
.zakupki-main { flex: 1; min-width: 0; }
.zakupki-item { margin-bottom: 48px; scroll-margin-top: 84px; }
.zakupki-item__title { font-size: clamp(17px, 2vw, 21px); font-weight: 800; color: var(--c-dark); margin: 0 0 16px; }
.zakupki-archive-block { margin-top: 60px; padding-top: 40px; border-top: 1px solid var(--c-line); }
.zakupki-archive-block > h2 { font-size: clamp(19px, 2.4vw, 26px); margin: 0 0 28px; }
.tender-table { display: flex; flex-direction: column; }
.tender-row {
  display: grid; grid-template-columns: 1fr 130px 130px; gap: 16px; align-items: start;
  padding: 16px 0; border-top: 1px solid var(--c-line);
}
.tender-row.tender-row-head {
  font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  color: var(--c-grey); border-top: none; padding-top: 0; padding-bottom: 10px;
}
.tender-row-title { font-size: 14.5px; color: var(--c-ink); line-height: 1.55; text-decoration: none; transition: color .2s ease; }
a.tender-row-title:hover { color: var(--c-dark-3); text-decoration: underline; }
.tender-row-date { font-size: 13.5px; color: var(--c-grey); font-variant-numeric: tabular-nums; }
.tender-empty { padding: 28px 0; color: var(--c-grey); font-size: 14.5px; text-align: center; border-top: 1px solid var(--c-line); }
.tender-more { margin-top: 18px; }
.tender-showall { font-size: 13.5px; font-weight: 700; color: var(--c-dark-3); text-decoration: none; }
.tender-showall:hover { color: var(--c-blue-2); text-decoration: underline; }
@media (max-width: 900px) {
  .zakupki-layout { flex-direction: column; }
  .zakupki-sidebar { position: static; flex: none; width: 100%; }
  .zakupki-nav-group ul { display: none; }
}
@media (max-width: 640px) {
  .tender-row { grid-template-columns: 1fr; gap: 4px; padding: 14px 0; }
  .tender-row.tender-row-head { display: none; }
  .tender-row-date { display: inline-block; }
  .tender-row-date::before { content: attr(data-label) ": "; color: var(--c-grey); font-weight: 600; }
}

/* ---------- tender detail page ---------- */
.tender-meta { border: 1px solid var(--c-line); border-radius: var(--c-radius); padding: 6px 24px; margin-bottom: 32px; }
.tender-meta-row { display: flex; gap: 10px; padding: 14px 0; border-top: 1px solid var(--c-line); font-size: 14.5px; }
.tender-meta-row:first-child { border-top: none; }
.tender-meta-label { flex: 0 0 160px; font-weight: 700; color: var(--c-grey); }
.tender-meta-value { color: var(--c-ink); }
.tender-detail-text { font-size: 15px; line-height: 1.8; color: var(--c-ink); margin-bottom: 40px; }
.tender-detail-text p { margin: 0 0 16px; }
.tender-detail-text p:last-child { margin-bottom: 0; }
.tender-back { margin-top: 40px; }
.tender-back a { font-size: 13.5px; font-weight: 700; color: var(--c-dark-3); }
.tender-back a:hover { color: var(--c-blue-2); }
@media (max-width: 640px) {
  .tender-meta-row { flex-direction: column; gap: 2px; }
  .tender-meta-label { flex: none; }
}

/* ---------- document / listing rows ---------- */
.doc-list { display: flex; flex-direction: column; margin-bottom: 54px; }
.doc-item { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; border-top: 1px solid var(--c-line); }
.doc-item:first-child { border-top: none; }
.doc-item span { font-size: 14.5px; color: var(--c-ink); line-height: 1.5; }
.doc-item a { flex-shrink: 0; font-size: 13px; font-weight: 700; color: var(--c-dark-3); text-transform: uppercase; letter-spacing: .03em; display: inline-flex; align-items: center; gap: 6px; }
.doc-item a:hover { color: var(--c-blue-2); }

/* ---------- document cards (PDF-style tiles) ---------- */
.doc-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 54px; }
.doc-card {
  display: flex; flex-direction: column; gap: 22px;
  padding: 20px; border: 1px solid var(--c-line); border-radius: 8px;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.doc-card:hover { border-color: var(--c-dark-3); box-shadow: 0 14px 30px rgba(6,24,47,.1); transform: translateY(-2px); }
.doc-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.doc-card-icon {
  width: 38px; height: 46px; flex-shrink: 0;
  background: var(--c-blue-pale); color: var(--c-dark-3);
  clip-path: polygon(0 0, 70% 0, 100% 30%, 100% 100%, 0 100%);
  display: flex; align-items: flex-end; justify-content: center;
  font-size: 9px; font-weight: 800; letter-spacing: .03em; padding-bottom: 6px;
}
.doc-card-size { font-size: 12px; color: var(--c-grey); white-space: nowrap; }
.doc-card p { font-size: 14px; font-weight: 600; color: var(--c-ink); line-height: 1.5; margin: 0; }

/* ---------- stat grid (big-number pairs) ---------- */
.stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-bottom: 54px; }
.stat-item { border: 1px solid var(--c-line); border-radius: 8px; padding: 28px 26px; }
.stat-item .stat-num { font-size: 44px; font-weight: 800; color: var(--c-dark-3); line-height: 1; margin-bottom: 10px; }
.stat-item p { font-size: 14px; color: var(--c-grey); line-height: 1.5; margin: 0; }

/* ---------- pull quote (mission / vision) ---------- */
.pull-quote {
  border-left: 3px solid var(--c-dark-3);
  padding: 4px 0 4px 24px;
  margin: 0 0 28px;
  font-size: 18px; line-height: 1.6; font-weight: 600; color: var(--c-dark);
}
.goal-list { display: flex; flex-direction: column; gap: 12px; margin: 0 0 18px; padding: 0; list-style: none; }
.goal-list li { display: flex; gap: 14px; font-size: 15px; line-height: 1.6; color: var(--c-ink); }
.goal-list .goal-num { flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--c-blue-pale); color: var(--c-dark-3); font-size: 13px; font-weight: 800; display: flex; align-items: center; justify-content: center; }

@media (max-width: 640px) {
  .page-hero { padding: 128px 0 40px; }
  .info-grid, .info-grid.cols-3, .doc-card-grid, .stat-grid { grid-template-columns: 1fr; }
  .timeline { padding-left: 34px; }
  .timeline-item::before { left: -34px; }
  .timeline-year { font-size: 26px; }
}

/* ----------------------------------------------------------------
   QUOTE-REQUEST / CALLBACK MODALS
   ---------------------------------------------------------------- */
.modal-overlay { position:fixed; inset:0; background:rgba(6,24,47,.65); z-index:300; opacity:0; visibility:hidden; transition:opacity var(--tr); }
.modal-overlay.modal-overlay--visible { opacity:1; visibility:visible; }
#personOverlay { display: flex; align-items: center; justify-content: center; padding: 24px; }
#personOverlay.is-open { opacity: 1; visibility: visible; }
.arPortfolioModal {
  position:fixed; top:50%; left:50%; transform:translate(-50%,-48%);
  background:var(--c-white); border-radius:10px; padding:40px 36px;
  width:92%; max-width:600px; max-height:88vh; overflow-y:auto;
  box-shadow:0 30px 70px rgba(0,0,0,.35); z-index:301;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity var(--tr), transform var(--tr), visibility var(--tr);
}
.arPortfolioModal.modal--visible { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,-50%); }
.arPortfolioModal-title { font-size:19px; font-weight:800; letter-spacing:-0.02em; margin-bottom:24px; padding-right:24px; line-height:1.3; color:var(--c-dark); }
.arPortfolioModal .modalBtn {
  padding:14px 24px; font-size:14px; font-weight:600; border-radius:10px;
  background:var(--c-dark); color:var(--c-white); border:1.5px solid var(--c-dark);
  cursor:pointer; transition:all var(--tr); font-family:inherit;
}
.arPortfolioModal .modalBtn:hover { background:var(--c-dark-2); }
.modal-close {
  position:absolute; top:16px; right:16px; width:32px; height:32px; border:none;
  background:var(--c-line); border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:var(--c-grey); cursor:pointer;
}
.modal-close:hover { background:var(--c-bg-soft); color:var(--c-dark-3); }
.modal-close svg { width:16px; height:16px; }
@media (max-width:640px) { .arPortfolioModal { padding:32px 22px; } }
.hr-form .form-fld textarea { min-height:110px; }
.hr-status { min-height:20px; margin:0 0 12px; font-size:13px; line-height:1.4; text-align:center; color:var(--c-grey); }
.hr-status.is-ok { color:var(--c-success); font-weight:600; }
.hr-status.is-error { color:#c0392b; font-weight:600; }
.hr-form .modalBtn[disabled] { opacity:.6; cursor:default; }

/* Form fields (same pattern as redesign_claude.html's contacts-page form) */
.form-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.form-fld { display:flex; flex-direction:column; gap:6px; }
.form-fld label { font-size:11px; font-weight:600; color:var(--c-grey); text-transform:uppercase; letter-spacing:.04em; }
.form-fld input, .form-fld select, .form-fld textarea { padding:12px 14px; background:var(--c-white); border:1px solid var(--c-line); border-radius:8px; font-family:inherit; font-size:14px; transition:border-color var(--tr); color: var(--c-dark); }
.form-fld input:focus, .form-fld select:focus, .form-fld textarea:focus { outline:none; border-color:var(--c-dark); }
.form-fld textarea { resize:vertical; min-height:100px; }
.form-row-1 { margin-bottom:16px; }
.form-foot { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }
.form-foot p { font-size:11px; color:var(--c-grey); max-width:400px; line-height:1.5; margin: 0; }

/* jQuery UI autocomplete dropdown, restyled to match the design system */
.ui-autocomplete { list-style:none; margin:0; background:var(--c-white); border:1px solid var(--c-line); border-radius:10px; box-shadow:var(--shadow-md); padding:6px; z-index:400; max-height:240px; overflow-y:auto; }
.ui-autocomplete .ui-menu-item { list-style:none; }
.ui-autocomplete .ui-menu-item-wrapper { display:block; padding:9px 12px; font-size:13px; color:var(--c-dark); border-radius:6px; cursor:pointer; }
.ui-autocomplete .ui-menu-item-wrapper.ui-state-active { background:var(--c-bg-soft); border:none; margin:0; }

/* ----------------------------------------------------------------
   RESPONSIVE
   ---------------------------------------------------------------- */
@media (max-width: 1024px) {
  .hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .services-grid { grid-template-columns: 1fr 1fr; }
  .news-grid { grid-template-columns: 1fr 1fr; }
  .cabinet-grid { grid-template-columns: 1fr; gap: 32px; }
  .cabinet-features { grid-template-columns: 1fr; }
  .cta-grid { grid-template-columns: 1fr; }
  .cta-card { padding: 36px; }
}
@media (max-width: 640px) {
  .services-grid, .news-grid { grid-template-columns: 1fr; }
  .calc-row { grid-template-columns: 1fr; }
  .calc-swap { display: none; }
  .cta-card { padding: 28px 20px; }
}

/* ----------------------------------------------------------------
   SERVICES — detail pages (service-detail) + ecosystem block
   ---------------------------------------------------------------- */
.service-detail h2 { font-size: clamp(19px, 2.4vw, 26px); margin: 44px 0 20px; }
.service-detail > .article-hero-img + p, .service-detail > p:first-child { margin-top: 0; }
.service-detail .stat-grid { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px; margin-bottom: 8px; }
.service-detail .stat-item { padding: 24px 22px; }
.service-detail .stat-item .stat-num { font-size: clamp(30px, 4vw, 40px); }
.service-detail .info-grid { margin-bottom: 8px; }
.service-detail .info-card h3 { font-size: 16px; margin-bottom: 8px; }
.service-detail .info-card p { font-size: 14.5px; line-height: 1.7; color: var(--c-ink); }
.flow-chain { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px 0; margin: 0 0 22px; }
.flow-chain span {
  position: relative; display: inline-flex; align-items: center;
  background: var(--c-bg-soft); border: 1px solid var(--c-line); border-radius: var(--c-radius);
  padding: 10px 14px; margin-right: 26px; font-size: 13.5px; font-weight: 600; line-height: 1.3; color: var(--c-ink);
}
.flow-chain span:last-child { margin-right: 0; }
.flow-chain span:not(:last-child)::after {
  content: ""; position: absolute; right: -19px; top: 50%; width: 12px; height: 12px;
  border-top: 2px solid var(--c-dark-3); border-right: 2px solid var(--c-dark-3);
  transform: translateY(-50%) rotate(45deg);
}
.eco-block { margin-top: 64px; padding: 40px 44px; background: var(--c-dark-3); color: var(--c-white); border-radius: var(--c-radius); }
.eco-block h2 { color: var(--c-white); font-size: clamp(20px, 2.6vw, 28px); margin: 0 0 16px; }
.eco-block p { font-size: 15px; line-height: 1.8; margin: 0 0 18px; color: rgba(255,255,255,.88); max-width: 860px; }
.eco-block .eco-quote { margin: 24px 0 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--c-white); font-size: 17px; font-weight: 700; color: var(--c-white); }
@media (max-width: 720px) {
  .eco-block { padding: 28px 22px; margin-top: 44px; }
  .flow-chain { flex-direction: column; align-items: flex-start; gap: 18px; }
  .flow-chain span { margin-right: 0; }
  .flow-chain span:not(:last-child)::after { right: auto; left: 18px; top: auto; bottom: -15px; transform: rotate(135deg); }
}

/* ---------- tariffs page: numbered steps + request-form table ---------- */
.tariff-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 28px; }
.tariff-steps > li { display: flex; gap: 16px; align-items: flex-start; }
.tariff-steps .goal-num { flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--c-blue-pale); color: var(--c-dark-3); font-size: 13px; font-weight: 800; display: flex; align-items: center; justify-content: center; margin-top: 2px; }
.tariff-step-body { flex: 1; min-width: 0; }
.tariff-step-body > p { font-size: 15px; line-height: 1.7; color: var(--c-ink); margin: 0 0 16px; }
.tariff-step-body .doc-card-grid { margin-bottom: 0; }
.tariff-form-link { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: var(--c-dark-3); text-decoration: none; }
.tariff-form-link:hover { color: var(--c-blue-2); text-decoration: underline; }
.tariff-form { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; border: 1px solid #cfd8e3; border-radius: 8px; overflow: hidden; }
.tariff-form th, .tariff-form td { padding: 14px 18px; text-align: left; vertical-align: middle; border-bottom: 1px solid #dfe5ed; }
.tariff-form tr:last-child th, .tariff-form tr:last-child td { border-bottom: 0; }
.tariff-form th { width: 55%; font-weight: 600; line-height: 1.45; color: var(--c-ink); background: #f4f6f9; border-right: 1px solid #cfd8e3; }
.tariff-form td { background: var(--c-white); min-height: 48px; height: 48px; }
@media (max-width: 720px) {
  .tariff-form, .tariff-form tbody, .tariff-form tr, .tariff-form th, .tariff-form td { display: block; width: 100%; }
  .tariff-form th { border-right: 0; border-bottom: 0; padding-bottom: 8px; }
  .tariff-form td { height: 44px; }
}

.doc-card.is-disabled { opacity: .55; pointer-events: none; }

/* ---------- document cards — filled, with download affordance ---------- */
.doc-card {
  position: relative; background: var(--c-bg-soft); border: 1px solid transparent; border-radius: 6px;
  padding: 20px 20px 22px; text-decoration: none;
  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.doc-card .doc-card-icon { background: var(--c-white); color: var(--c-dark-3); transition: background .25s ease, color .25s ease; }
.doc-card p { padding-right: 34px; transition: color .25s ease; }
.doc-card .doc-card-size { transition: color .25s ease; }
.doc-card::after {
  content: ""; position: absolute; right: 18px; bottom: 18px; width: 20px; height: 20px;
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d47a1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 11l5 5 5-5M5 20h14'/%3E%3C/svg%3E");
  transition: transform .25s ease;
}
a.doc-card:hover { background: var(--c-dark-3); border-color: var(--c-dark-3); box-shadow: 0 14px 30px rgba(13,71,161,.28); transform: translateY(-2px); }
a.doc-card:hover p { color: var(--c-white); }
a.doc-card:hover .doc-card-size { color: rgba(255,255,255,.75); }
a.doc-card:hover .doc-card-icon { background: rgba(255,255,255,.95); color: var(--c-dark-3); }
a.doc-card:hover::after {
  transform: translateY(2px);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 11l5 5 5-5M5 20h14'/%3E%3C/svg%3E");
}
.doc-card.is-disabled::after { display: none; }

/* ---------- long-form text: justified on wide screens (left-aligned on phones/tablets) ---------- */
@media (min-width: 721px) {
  .page-lead,
  .page-section > p,
  .service-detail > p,
  .tariff-step-body > p,
  .eco-block > p:not(.eco-quote) { text-align: justify; text-align-last: left; }
}

/* two-card document row: full width, split 50/50 */
.doc-card-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 720px) { .doc-card-grid.cols-2 { grid-template-columns: 1fr; } }

/* ---------- announcements archive ---------- */
.ann-filter { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 34px; }
.ann-filter-btn {
  padding: 9px 20px; font: inherit; font-size: 13.5px; font-weight: 700; color: var(--c-dark-3);
  background: var(--c-white); border: 1.5px solid #cfd8e3; border-radius: 999px; cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.ann-filter-btn:hover { border-color: var(--c-dark-3); }
.ann-filter-btn.is-active { background: var(--c-dark-3); border-color: var(--c-dark-3); color: var(--c-white); }
.ann-list { display: flex; flex-direction: column; }
.ann-item { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 28px; padding: 30px 0; border-top: 1px solid #dfe5ed; }
.ann-item:first-child { border-top: 0; padding-top: 0; }
.ann-item[hidden] { display: none; }
.ann-date { display: flex; flex-direction: column; gap: 4px; }
.ann-date-day { font-size: 28px; font-weight: 800; line-height: 1; color: var(--c-dark-3); letter-spacing: -.01em; }
.ann-date-year { font-size: 13px; font-weight: 700; color: var(--c-grey); letter-spacing: .04em; }
.ann-body h3 { font-size: 18px; font-weight: 700; text-transform: none; letter-spacing: 0; line-height: 1.4; color: var(--c-ink); margin: 0 0 12px; }
.ann-body p { font-size: 15px; line-height: 1.75; color: var(--c-ink); margin: 0 0 12px; overflow-wrap: anywhere; }
.ann-body p:last-child { margin-bottom: 0; }
.ann-body a { color: var(--c-dark-3); text-decoration: underline; }
.ann-more { margin-top: 28px; text-align: center; }
.ann-more .btn[hidden] { display: none; }
@media (min-width: 721px) { .ann-body p { text-align: justify; text-align-last: left; } }
@media (max-width: 720px) {
  .ann-item { grid-template-columns: 1fr; gap: 12px; padding: 24px 0; }
  .ann-date { flex-direction: row; align-items: baseline; gap: 10px; }
  .ann-date-day { font-size: 22px; }
}

/* menu entries that are shown as plain text (not clickable) */
.mega-col .mega-link-static { font-size: 14px; color: var(--c-grey); cursor: default; }
.footer-col .footer-link-static { font-size: 13.5px; color: rgba(255,255,255,.65); cursor: default; }

.page-section p:empty { display: none; }

.fin-panel[hidden] { display: none; }

/* ---------- procurement list pagination + single procurement ---------- */
.tender-pagination { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 36px 0 0; }
.tender-pagination .page-numbers {
  min-width: 40px; height: 40px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700; color: var(--c-dark-3); background: var(--c-white); border: 1.5px solid #cfd8e3; border-radius: 999px; text-decoration: none;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.tender-pagination a.page-numbers:hover { border-color: var(--c-dark-3); }
.tender-pagination .page-numbers.current { background: var(--c-dark-3); border-color: var(--c-dark-3); color: var(--c-white); }
.tender-pagination .page-numbers.dots { border-color: transparent; }
.tender-single-title { font-size: clamp(19px, 2.4vw, 26px); text-transform: none; letter-spacing: 0; line-height: 1.35; margin: 0 0 28px; }
.tender-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; margin: 0 0 40px; }
.tender-meta > div { background: var(--c-bg-soft); border-radius: 6px; padding: 16px 20px; display: flex; flex-direction: column; gap: 6px; }
.tender-meta span { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--c-grey); }
.tender-meta strong { font-size: 15px; line-height: 1.4; color: var(--c-ink); }
.tender-single-text p { font-size: 15px; line-height: 1.75; color: var(--c-ink); margin: 0 0 14px; }
.doc-card .doc-card-date { font-size: 12.5px; color: var(--c-grey); margin-top: -10px; padding-right: 34px; }
a.doc-card:hover .doc-card-date { color: rgba(255,255,255,.75); }

/* procurement sidebar: active entries; main column holds the swapped-in content */
.zakupki-nav-title.is-active, .zakupki-nav-group li a.is-active { color: var(--c-dark-3); }
.zakupki-nav-group li a.is-active { font-weight: 700; }
.zakupki-nav-group li a.is-active { border-left-color: var(--c-dark-3); }
.zakupki-main .doc-card-grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.zakupki-main .tender-pagination { justify-content: flex-start; }
@media (max-width: 900px) { .zakupki-nav-group ul { display: block; } }

/* procurement section: long titles stay on one line */
.page-hero-zakupki h1 { font-size: min(30px, 2.6vw); white-space: nowrap; }
@media (max-width: 720px) { .page-hero-zakupki h1 { font-size: 22px; white-space: normal; } }
.zakupki-main .zakupki-item__title { font-size: min(22px, 1.9vw); line-height: 1.3; }
@media (max-width: 720px) { .zakupki-main .zakupki-item__title { font-size: 18px; } }

/* every page title (hero h1): one size, chosen so the longest title on the site fits on one line */
html body .page-hero h1, html body .page-hero-zakupki h1 { font-size: min(21px, calc((100vw - 48px) * .0176)); line-height: 1.25; white-space: nowrap; }
@media (max-width: 720px) { html body .page-hero h1, html body .page-hero-zakupki h1 { font-size: 22px; white-space: normal; } }

/* page titles: sized so a ~45-character title (e.g. "Корпоративтік оқиғалар туралы ақпарат") fits on one line; the three very long service titles may wrap */
html body .page-hero h1 { font-size: min(30px, calc((100vw - 48px) * .0295)); line-height: 1.2; white-space: normal; }
html body .page-hero-zakupki h1 { font-size: min(30px, calc((100vw - 48px) * .0295)); white-space: nowrap; }
@media (max-width: 720px) { html body .page-hero h1, html body .page-hero-zakupki h1 { font-size: 22px; white-space: normal; } }

/* page titles: sized so "КОРПОРАТИВТІК ОҚИҒАЛАР ТУРАЛЫ АҚПАРАТ" spans the full content width; longer titles wrap */
html body .page-hero h1, html body .page-hero-zakupki h1 { font-size: min(45.5px, calc((100vw - 48px) * .0382)); line-height: 1.15; white-space: normal; max-width: none; }
@media (max-width: 720px) { html body .page-hero h1, html body .page-hero-zakupki h1 { font-size: 24px; } }

/* procurement sidebar anchors scroll smoothly to the section, below the fixed header */
html { scroll-behavior: smooth; }
.zakupki-item { scroll-margin-top: 110px; }
.zakupki-archive-block { scroll-margin-top: 110px; }

/* procurement tables: a clearly visible grid with a coloured header row */
.tender-list-title { font-size: min(22px, 1.9vw); text-transform: uppercase; line-height: 1.3; margin: 0 0 20px; }
.tender-table { border: 1px solid #c3cedc; border-radius: 8px; overflow: hidden; background: var(--c-white); }
.tender-table .tender-row { grid-template-columns: minmax(0, 1fr) 150px 150px; gap: 0; align-items: stretch; padding: 0; border-top: 1px solid #d5dde8; }
.tender-table .tender-row > * { padding: 16px 18px; border-left: 1px solid #d5dde8; display: flex; align-items: center; }
.tender-table .tender-row > *:first-child { border-left: 0; }
.tender-table .tender-row.tender-row-head { background: var(--c-dark-3); border-top: 0; padding: 0; }
.tender-table .tender-row.tender-row-head > * { color: var(--c-white); font-size: 12.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 14px 18px; border-left-color: rgba(255,255,255,.28); }
.tender-table .tender-row:not(.tender-row-head):nth-child(even) { background: #f4f7fb; }
.tender-table .tender-row:not(.tender-row-head):hover { background: #e8f0fb; }
.tender-table .tender-row-date { color: var(--c-ink); font-weight: 600; justify-content: center; }
.tender-table .tender-row.tender-row-head > span:not(:first-child) { justify-content: center; }
@media (max-width: 720px) {
  .tender-table .tender-row { grid-template-columns: 1fr; }
  .tender-table .tender-row > * { border-left: 0; padding: 8px 16px; }
  .tender-table .tender-row-title { padding-top: 14px; }
  .tender-table .tender-row-date { justify-content: flex-start; }
}

/* procurement sidebar: wide enough for every entry to stay on one line (width follows the longest entry) */
@media (min-width: 901px) {
  .zakupki-sidebar { flex: 0 0 auto; width: max-content; max-width: 46%; }
  .zakupki-sidebar .zakupki-nav-title, .zakupki-sidebar .zakupki-nav-group li a { white-space: nowrap; }
}

/* ---------- news: list grid + single article ---------- */
.news-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.news-grid.cols-3 .news-card p { font-size: 15px; }
@media (max-width: 1024px) { .news-grid.cols-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .news-grid.cols-3 { grid-template-columns: 1fr; } }
.news-article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; align-items: start; }
.news-article-date { display: flex; align-items: baseline; gap: 8px; margin-bottom: 14px; }
.news-article-date .d { font-size: 32px; font-weight: 800; color: var(--c-dark-3); line-height: 1; }
.news-article-date .m { font-size: 12px; font-weight: 700; letter-spacing: .06em; color: var(--c-grey); }
.news-article-date .y { font-size: 14px; color: var(--c-grey); }
.news-article-title { font-size: clamp(22px, 2.6vw, 32px); text-transform: none; letter-spacing: 0; line-height: 1.3; margin: 0 0 26px; }
.news-article-img { width: 100%; height: auto; max-height: 520px; object-fit: cover; border-radius: 8px; display: block; margin: 0 0 28px; background: var(--c-line); }
.news-article-body { font-size: 16px; line-height: 1.8; color: var(--c-ink); }
.news-article-body p { margin: 0 0 18px; }
.news-article-body img { max-width: 100%; height: auto; border-radius: 6px; }
.news-article-body figure { margin: 0 0 22px; }
.news-article-body a { color: var(--c-dark-3); text-decoration: underline; }
.news-article-body ul, .news-article-body ol { margin: 0 0 18px; padding-left: 22px; }
.news-article-body h2, .news-article-body h3 { text-transform: none; letter-spacing: 0; margin: 28px 0 14px; }
.news-aside { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 18px; }
.news-aside h3 { font-size: 15px; letter-spacing: .05em; margin: 0 0 4px; }
.news-aside-item { display: flex; flex-direction: column; gap: 8px; padding-bottom: 18px; border-bottom: 1px solid #dfe5ed; text-decoration: none; color: inherit; }
.news-aside-item:last-child { border-bottom: 0; }
.news-aside-item img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 6px; display: block; }
.news-aside-item .t { font-size: 14.5px; font-weight: 600; line-height: 1.45; color: var(--c-ink); }
.news-aside-item:hover .t { color: var(--c-dark-3); }
.news-aside-item .dt { font-size: 12.5px; color: var(--c-grey); }
@media (max-width: 980px) { .news-article-layout { grid-template-columns: 1fr; gap: 40px; } .news-aside { position: static; } }

/* ---------- contacts page ---------- */
.contact-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0 0 54px; }
.contact-card { background: var(--c-bg-soft); border-radius: 6px; padding: 26px 24px; display: flex; flex-direction: column; gap: 8px; }
.contact-card-icon { width: 34px; height: 34px; color: var(--c-dark-3); margin-bottom: 6px; }
.contact-card-icon svg { width: 34px; height: 34px; display: block; }
.contact-card h3 { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--c-grey); margin: 0 0 4px; }
.contact-card a, .contact-card p { font-size: 16px; font-weight: 700; line-height: 1.45; color: var(--c-ink); margin: 0; text-decoration: none; }
.contact-card a:hover { color: var(--c-dark-3); }
.req-table { margin: 0; border: 1px solid #cfd8e3; border-radius: 8px; overflow: hidden; }
.req-row { display: grid; grid-template-columns: 340px minmax(0, 1fr); border-top: 1px solid #dfe5ed; }
.req-row:first-child { border-top: 0; }
.req-row dt { margin: 0; padding: 16px 20px; background: #f4f6f9; font-size: 14px; font-weight: 600; color: var(--c-ink); border-right: 1px solid #cfd8e3; }
.req-row dd { margin: 0; padding: 16px 20px; font-size: 15px; line-height: 1.55; color: var(--c-ink); display: flex; flex-direction: column; gap: 4px; }
.req-row dd a { color: var(--c-dark-3); font-weight: 600; }
.hotline-card { background: var(--c-dark-3); color: var(--c-white); border-radius: 6px; padding: 34px 38px; }
.hotline-card h2 { color: var(--c-white); font-size: clamp(18px, 2vw, 24px); margin: 0 0 20px; }
.hotline-card ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 40px; }
.hotline-card li { display: flex; align-items: center; gap: 14px; font-size: 15px; line-height: 1.4; }
.hotline-card li svg { width: 24px; height: 24px; flex-shrink: 0; opacity: .9; }
@media (max-width: 1024px) { .contact-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) {
  .contact-cards { grid-template-columns: 1fr; }
  .req-row { grid-template-columns: 1fr; }
  .req-row dt { border-right: 0; padding-bottom: 8px; }
  .req-row dd { padding-top: 8px; }
  .hotline-card { padding: 26px 22px; }
  .hotline-card ul { grid-template-columns: 1fr; }
}

/* ---------- partners page ---------- */
.partner-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.partner-card { display: flex; flex-direction: column; border: 1px solid #d5dde8; border-radius: 6px; overflow: hidden; background: var(--c-white); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.partner-card:hover { border-color: var(--c-dark-3); box-shadow: 0 12px 28px rgba(6,24,47,.1); transform: translateY(-2px); }
.partner-card-logo { height: 140px; display: flex; align-items: center; justify-content: center; padding: 22px; background: var(--c-white); border-bottom: 1px solid #e3e9f1; }
.partner-card-logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.partner-card p { margin: 0; padding: 16px 18px 18px; font-size: 14.5px; font-weight: 700; line-height: 1.4; color: var(--c-ink); text-align: center; background: var(--c-bg-soft); flex: 1; display: flex; align-items: center; justify-content: center; }
@media (max-width: 520px) { .partner-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .partner-card-logo { height: 110px; padding: 14px; } }
