:root {
  --refresh-ink: #10263d;
  --refresh-blue: #1269b2;
  --refresh-blue-dark: #082c4b;
  --refresh-gold: #d7b977;
  --refresh-muted: #607184;
  --body-font-family: "Segoe UI", Arial, sans-serif;
}

html { scroll-behavior: smooth; scroll-padding-top: 92px; max-width: 100%; overflow-x: clip; }
body { width: 100%; max-width: 100%; overflow-x: clip; color: var(--refresh-ink); font-family: var(--body-font-family); font-size: 16px; line-height: 1.65; }
main, section, .container, .row, .roow, .swiper, .swiper-wrapper, .swiper-slide { min-width: 0; }
h1, h2, h3, h4, h5, h6 { font-family: var(--body-font-family); letter-spacing: -.02em; }
.navbar { background: rgba(7, 22, 37, .96); }
.logo img { width: 76px; height: 58px; object-fit: contain; }
.logo-text { max-width: 230px; }
.navbar-nav { align-items: center; gap: 3px; }
.navbar-nav > a.nav-item { padding: 0; }
.navbar-nav .nav-link { padding: 10px 11px; }
.navbar-expand-lg .navbar-nav .nav-link { min-height: 44px; font-family: var(--body-font-family); font-size: 14px; letter-spacing: 0; }
.hero-section { height: min(100vh, 900px); min-height: 600px; }
.hero-section .roow { display: block; width: 100%; }
.hero-copy { position: relative; z-index: 2; max-width: 760px; }
.hero-section h1 { max-width: 760px; line-height: 1.16; letter-spacing: -.035em; }
.custom-btn, .course-btn, .show-more-btn { min-height: 44px; border-radius: 10px; font-family: var(--body-font-family); font-weight: 700; letter-spacing: 0; }
.custom-btn:focus-visible, .course-btn:focus-visible, .show-more-btn:focus-visible, .course-contact:focus-visible { outline: 3px solid var(--refresh-gold); outline-offset: 3px; }
.section-padding1 { padding-top: 92px; padding-bottom: 92px; }
.focus-section { background: #f4f7fa; }
.section-intro { max-width: 780px; margin: 0 auto 38px; text-align: center; }
.section-intro h2 { margin: 10px 0 16px; color: var(--refresh-ink); }
.section-intro p { max-width: 720px; margin: 0 auto; color: var(--refresh-muted); font-size: 18px; line-height: 1.7; }
.eyebrow { display: inline-block; color: var(--refresh-blue); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.focus-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.focus-card { min-height: 220px; padding: 28px; border: 1px solid #e1e8ef; border-radius: 18px; background: #fff; box-shadow: 0 12px 34px rgba(16, 38, 61, .06); }
.focus-card__number { display: block; margin-bottom: 24px; color: var(--refresh-blue); font-size: 13px; font-weight: 700; letter-spacing: .12em; }
.focus-card h3 { margin-bottom: 12px; color: var(--refresh-ink); font-size: 22px; }
.focus-card p { margin: 0; color: var(--refresh-muted); line-height: 1.7; }
.course-section { overflow: hidden; background: radial-gradient(ellipse at 12% 0%, #174e78 0, transparent 48%), linear-gradient(135deg, #071d31 0%, #0a2c49 55%, #0c3659 100%); }
.section-intro--light h2, .section-intro--light p { color: #fff; }
.section-intro--light p { color: #d0dce8; }
.section-intro--light .eyebrow { color: var(--refresh-gold); }
.course-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr); gap: 44px; align-items: center; }
.course-content { color: #eaf2f8; }
.course-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 30px; }
.course-stat { padding: 15px 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; background: rgba(255,255,255,.06); }
.course-stat strong, .course-stat span { display: block; }
.course-stat strong { color: var(--refresh-gold); font-size: 17px; }
.course-stat span { margin-top: 4px; color: #d0dce8; font-size: 12px; }
.course-subtitle { margin-bottom: 14px; color: #fff; font-size: 21px; }
.course-list { margin: 0; padding: 0; }
.course-list li { position: relative; margin: 0; padding: 11px 0 11px 28px; border-bottom: 1px solid rgba(255,255,255,.12); color: #e2eaf1; line-height: 1.55; }
.course-list li::before { position: absolute; top: 12px; left: 2px; color: var(--refresh-gold); content: "✓"; font-weight: 700; }
.course-note { margin-top: 16px; color: #becddb; font-size: 14px; line-height: 1.6; }
.course-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 24px; }
.course-btn { padding: 13px 18px; border-radius: 8px; background: #fff; color: var(--refresh-blue-dark); font-size: 13px; font-weight: 700; }
.course-btn:hover { background: var(--refresh-gold); color: #10263d; }
.course-contact { color: #fff; font-size: 14px; font-weight: 700; }
.course-contact:hover { color: var(--refresh-gold); }
.course-poster { display: block; width: 100%; border: 1px solid rgba(255,255,255,.22); border-radius: 16px; box-shadow: 0 20px 54px rgba(0,0,0,.24); }
.registration-card { margin-top: 14px; padding: 18px; border: 1px solid rgba(255,255,255,.17); border-radius: 14px; background: rgba(255,255,255,.08); }
.registration-card > div:first-child { display: flex; gap: 12px; align-items: flex-start; color: #fff; }
.registration-card strong, .registration-card small { display: block; }
.registration-card strong { font-size: 14px; line-height: 1.45; }
.registration-card small { margin-top: 5px; color: #c9d7e3; }
.registration-mark { color: var(--refresh-gold); font-size: 24px; }
.certificate-thumbs { display: flex; gap: 12px; margin-top: 14px; }
.certificate-thumb { display: flex; min-width: 0; align-items: center; gap: 9px; color: #e2eaf1; font-size: 11px; line-height: 1.3; }
.certificate-thumb img { width: 42px; height: 42px; border-radius: 5px; object-fit: cover; object-position: top; }
.certificate-thumb:hover { color: var(--refresh-gold); }
.image-link { overflow: hidden; border-radius: 12px; cursor: zoom-in; }
.image-link img { display: block; border-radius: inherit; transition: transform .25s ease; }
.image-link:hover img, .image-link:focus-visible img { transform: scale(1.025); }
.container-gallery { width: min(100% - 32px, 1160px); max-width: 1160px; overflow: visible; }
#section_3 { padding: 72px 0 64px; }
.gallery-slider { position: relative; width: 100%; max-width: 100%; overflow: hidden; }
.gallery-slider .swiper-slide { height: auto; padding: 0 2px 8px; }
.gallery-slider .image-link { display: flex; height: 230px; align-items: center; justify-content: center; padding: 10px; background: #f3f6f9; }
.gallery-slider .image-link img { width: 100%; height: 100%; object-fit: contain; }
.gallery-caption { display: block; min-height: 40px; padding: 10px 8px 0; color: var(--refresh-muted); font-size: 13px; line-height: 1.4; text-align: center; }
.gallery-controls { display: flex; min-height: 48px; align-items: center; justify-content: center; gap: 16px; margin-top: 14px; }
.gallery-control { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border: 1px solid #d9e2eb; border-radius: 50%; background: #fff; color: var(--refresh-blue-dark); cursor: pointer; }
.gallery-control:hover, .gallery-control:focus-visible { border-color: var(--refresh-blue); background: var(--refresh-blue); color: #fff; }
.gallery-pagination { display: flex; max-width: min(55vw, 280px); flex-wrap: wrap; align-items: center; justify-content: center; gap: 7px; }
.gallery-pagination .swiper-pagination-bullet { width: 8px; height: 8px; margin: 0; background: #9eacb9; opacity: .55; }
.gallery-pagination .swiper-pagination-bullet-active { background: var(--refresh-blue); opacity: 1; }
.team-member { margin-bottom: 24px; }
.team-member { cursor: default; }
.team-member .member-content { min-width: 0; line-height: 1.75; }
.team-member .member-content p.bio-text--collapsed { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
.bio-toggle { padding: 0; border: 0; background: none; color: var(--refresh-blue); cursor: pointer; font: inherit; font-size: 14px; font-weight: 700; }
.bio-toggle:hover { color: var(--refresh-blue-dark); text-decoration: underline; }
.contact .info-item a { color: inherit; }
.contact .info-item a:hover { text-decoration: underline; text-underline-offset: 3px; }
.contact-route { display: none; min-height: 46px; align-items: center; justify-content: center; gap: 9px; padding: 10px 16px; border: 1px solid rgba(255,255,255,.38); border-radius: 10px; color: #fff; font-weight: 700; }
.contact-route:hover { background: #fff; color: var(--refresh-blue-dark); }
.row__footer { width: 100%; flex-wrap: wrap; gap: 24px; }
.row__footer > * { min-width: 0; }
.team-member .member { min-width: 0; }
@media (max-width: 991px) {
  .navbar-nav { align-items: stretch; }
  .course-layout { grid-template-columns: 1fr; gap: 32px; }
  .course-visual { max-width: 720px; margin: 0 auto; }
  .contact-route { display: flex; width: 100%; }
  .team-member .member img { max-width: 100%; }
}
@media (max-width: 767px) {
  .section-padding1 { padding-top: 64px; padding-bottom: 64px; }
  .section-intro { margin-bottom: 26px; }
  .section-intro h2 { font-size: 30px; }
  .section-intro p { font-size: 16px; }
  .focus-grid { grid-template-columns: 1fr; gap: 13px; }
  .focus-card { min-height: 0; padding: 22px; }
  .focus-card__number { margin-bottom: 14px; }
  .course-layout { gap: 26px; }
  .course-stats { gap: 7px; }
  .course-stat { padding: 12px 9px; }
  .course-stat strong { font-size: 14px; }
  .course-stat span { font-size: 10px; }
  .course-actions { align-items: flex-start; flex-direction: column; gap: 14px; }
  .navbar .logo-text { max-width: 185px; font-size: 11px; }
  .hero-section { height: auto; min-height: min(100svh, 780px); padding: 108px 0 64px; }
  .hero-section h1 { font-size: clamp(30px, 8vw, 42px); }
  .custom-btn, .course-btn, .show-more-btn { min-height: 46px; }
  .container-gallery { width: calc(100% - 28px); }
  #section_3 { padding: 58px 0 48px; }
  .gallery-slider .image-link { height: min(62vw, 300px); min-height: 190px; }
  .gallery-caption { min-height: 36px; font-size: 12px; }
  .gallery-controls { gap: 10px; margin-top: 8px; }
  .gallery-control { width: 40px; height: 40px; flex-basis: 40px; }
  .gallery-pagination { gap: 5px; }
  .team-member .member-content { padding: 16px 8px 8px; }
  .team-member .member-content p.bio-text--collapsed { -webkit-line-clamp: 4; }
  .contact .info-container { border-radius: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
