/* Homepage geometry follows the 1135px-wide reference, scaling up to 1600px. */
:root { --intro-blue: #007aff; --intro-ink: #082568; --intro-muted: #51689b; --intro-line: #dcecff; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 16px; }
body.home-page { --u: clamp(.86px, .088106vw, 1.4px); margin: 0; color: var(--intro-ink); background: radial-gradient(ellipse at 50% 26%, #eaf7ff 0, #fff 73%); font: 400 calc(12 * var(--u))/1.45 'Nunito', Tahoma, Arial, sans-serif; }
.home-page :is(button, input) { font: inherit; }
.home-page button { cursor: pointer; }
.home-page a { text-decoration: none; }
.home-page img { display: block; max-width: 100%; }
.home-page :is(h1,h2,h3,p) { margin: 0; }
.home-page :is(button,a):focus-visible { outline: 3px solid #66b6ff; outline-offset: 4px; }
.home-page [hidden] { display: none !important; }
.container, .hero, .header-inner { width: 80%; max-width: 1280px; margin-inline: auto; }
main { position: relative; z-index: 1; }
.skip-link { position: fixed; top: -100px; left: 15px; z-index: 30; padding: 10px; background: #fff; }
.skip-link:focus { top: 10px; }
.site-header { position: relative; padding-block: 16px; border-top: 4px solid var(--intro-blue); background: #ffffffee; }
.header-inner { min-height: calc(38 * var(--u)); display: flex; align-items: center; gap: calc(28 * var(--u)); }
.brand { display: flex; flex-shrink: 0; align-items: center; gap: calc(6 * var(--u)); color: var(--intro-ink); }
.brand img { width: calc(29 * var(--u)); height: calc(33 * var(--u)); object-fit: contain; }
.brand span { font-size: calc(10 * var(--u)); font-weight: 800; line-height: 1.15; }
.brand strong { display: block; font-size: calc(9 * var(--u)); }
#main-nav { display: flex; align-self: stretch; align-items: stretch; gap: calc(24 * var(--u)); margin-left: auto; }
#main-nav a { display: flex; align-items: center; color: #344e91; font-size: calc(10 * var(--u)); font-weight: 800; white-space: nowrap; border-bottom: 2px solid transparent; }
#main-nav a:hover, #main-nav .active { color: var(--intro-blue); border-color: var(--intro-blue); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: calc(12 * var(--u)); border: 0; border-radius: calc(4 * var(--u)); background: linear-gradient(110deg,#0088ff,#0071f6); color: #fff; padding: calc(7 * var(--u)) calc(16 * var(--u)); font-size: calc(10 * var(--u)); font-weight: 800; box-shadow: 0 3px 8px #0077ef19; }
.button:hover { filter: brightness(1.06); }
.login-button { flex-shrink: 0; padding: calc(7 * var(--u)) calc(11 * var(--u)); gap: calc(4 * var(--u)); font-size: calc(9 * var(--u)); }
.login-button svg { width: 10px; height: 10px; fill: currentColor; }
.menu-toggle { display: none; }
.hero { position: relative; isolation: isolate; min-height: calc(252 * var(--u)); margin: calc(8 * var(--u)) auto 0; border: 1px solid #ade0ff; border-radius: calc(12 * var(--u)); background-size: cover; background-position: center; }
.hero::before, .hero::after { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; }
.hero::before { z-index: -1; background: linear-gradient(120deg,#004272ee,#006fa9d9); clip-path: polygon(0 0,35% 0,40.2% 100%,0 100%); }
.hero::after { z-index: -2; background: linear-gradient(90deg,#003d6e55,transparent 62%); }
.hero-inner { position: relative; width: 88%; min-height: calc(252 * var(--u)); padding: calc(25 * var(--u)) 0 calc(29 * var(--u)); }
.hero-copy { width: 36%; max-width: 460px; color: #fff; }
.hero-eyebrow { display: flex; align-items: center; gap: calc(10 * var(--u)); font-size: calc(10 * var(--u)); letter-spacing: 1.5px; margin-bottom: calc(10 * var(--u)) !important; }
.hero-eyebrow span { width: calc(72 * var(--u)); height: 1px; background: #ffffff8a; }
.hero h1 { font-size: calc(28 * var(--u)); font-weight: 800; line-height: 1.02; letter-spacing: -.4px; margin-bottom: calc(10 * var(--u)); }
.hero-description { font-size: calc(12 * var(--u)); line-height: 1.45; }
.hero-slogan { position: absolute; width: 23%; height: auto; right: -3%; bottom: calc(24 * var(--u)); }
.stats { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin-top: calc(8 * var(--u)); padding: calc(12 * var(--u)) calc(14 * var(--u)); min-height: calc(66 * var(--u)); border: 1px solid #e0f1ff; border-radius: calc(13 * var(--u)); background: #fff; box-shadow: 0 4px 18px #0085e514; }
.stats > div { display: flex; align-items: center; justify-content: center; gap: calc(12 * var(--u)); border-right: 1px solid #bedfff; }
.stats > div:last-child { border: 0; }
.stats img { width: calc(40 * var(--u)); height: calc(40 * var(--u)); object-fit: contain; }
.stats strong { display: block; font-size: calc(18 * var(--u)); line-height: 1.2; font-weight: 800; }
.stats span { font-size: calc(10 * var(--u)); white-space: nowrap; }
.about { display: grid; grid-template-columns: 1.46fr 1.1fr .68fr; gap: calc(13 * var(--u)); align-items: stretch; padding: calc(12 * var(--u)); margin-top: calc(12 * var(--u)); border: 1px solid #ddf0ff; border-radius: calc(12 * var(--u)); background: #fff; box-shadow: 0 4px 18px #0085e514; }
.about-copy { min-width: 0; padding-left: calc(6 * var(--u)); display: flex; flex-direction: column; align-items: flex-start; }
.eyebrow { color: var(--intro-blue); font-size: calc(11 * var(--u)); letter-spacing: .9px; line-height: 1.35; margin-bottom: calc(4 * var(--u)) !important; }
.about h2 { font-size: calc(23 * var(--u)); line-height: 1.12; font-weight: 800; letter-spacing: -.5px; margin-bottom: calc(7 * var(--u)); }
.about-copy > p:not(.eyebrow) { font-size: calc(12 * var(--u)); line-height: 1.3; color: #334e91; }
.about .button { margin-top: calc(8 * var(--u)); }
.building { width: 100%; height: 100%; min-height: calc(212 * var(--u)); object-fit: cover; border-radius: calc(7 * var(--u)); }
.values { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); width: 100%; gap: calc(9 * var(--u)); padding-top: calc(10 * var(--u)); margin-top: auto; }
.values button { padding: 0; border: 0; background: none; color: #29468d; font-size: calc(9 * var(--u)); line-height: 1.35; }
.values img { width: calc(26 * var(--u)); height: calc(26 * var(--u)); object-fit: contain; margin: 0 auto calc(5 * var(--u)); }
blockquote { margin: 0; border-radius: calc(8 * var(--u)); padding: calc(13 * var(--u)) calc(16 * var(--u)); background: #e5f4ff url('../web/mountain-illustration.png') center bottom/100% auto no-repeat; }
.quote-mark { display: block; height: calc(36 * var(--u)); color: #159aff; font: 900 calc(62 * var(--u))/1 Georgia,serif; }
blockquote p { font-size: calc(14 * var(--u)); font-weight: 800; line-height: 1.27; }
blockquote cite { display: block; margin-top: calc(11 * var(--u)); color: var(--intro-blue); font-size: calc(8 * var(--u)); font-weight: 800; font-style: normal; }
.soums-band { margin-top: calc(10 * var(--u)); padding: calc(24 * var(--u)) 0; color: #fff; background: #0879d0 url('../img/sum.png') center bottom/100% 100% no-repeat; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: calc(6 * var(--u)); }
.section-heading h2 { font-size: calc(21 * var(--u)); font-weight: 800; letter-spacing: -.4px; line-height: 1.15; }
.section-heading .eyebrow { margin-bottom: 0 !important; }
.text-link { display: inline-flex; align-items: center; gap: calc(9 * var(--u)); border: 0; padding: 0; background: none; color: var(--intro-blue); font-size: calc(11 * var(--u)); font-weight: 700; }
.section-heading > .text-link { flex-shrink: 0; }
.text-link:hover { color: #004f99; }
.soums-band .eyebrow, .soums-band .section-heading > .text-link { color: #fff; }
.carousel { position: relative; }
.card-track { display: flex; gap: calc(7 * var(--u)); overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; padding: 0 calc(2 * var(--u)) calc(4 * var(--u)); }
.card-track::-webkit-scrollbar { display: none; }
.card-track > article { flex: 0 0 calc((100% - 35 * var(--u))/6); min-width: 0; scroll-snap-align: start; overflow: hidden; border: 1px solid #e1efff; border-radius: calc(5 * var(--u)); background: #fff; color: var(--intro-ink); box-shadow: 0 3px 7px #0085e512; }
.soum-card > img { width: 100%; height: calc(69 * var(--u)); object-fit: contain; padding: calc(4 * var(--u)); background: url('../web/hero-bg.png') center/cover; }
.card-copy { padding: calc(6 * var(--u)) calc(7 * var(--u)); }
.card-copy h3 { font-size: calc(10 * var(--u)); font-weight: 800; line-height: 1.25; }
.card-copy p { font-size: calc(9 * var(--u)); color: var(--intro-muted); line-height: 1.25; margin-top: calc(4 * var(--u)); }
.soum-card .card-copy, .person-card .card-copy { text-align: center; }
.soum-card .text-link, .outline-button { display: inline-flex; align-items: center; justify-content: center; gap: calc(8 * var(--u)); padding: calc(2 * var(--u)) calc(8 * var(--u)); margin-top: calc(5 * var(--u)); border: 1px solid #8fc7ff; border-radius: 2px; color: var(--intro-blue); font-size: calc(9 * var(--u)); line-height: 1.15; }
.carousel-arrow { position: absolute; z-index: 2; top: 46%; transform: translateY(-50%); display: grid; place-items: center; width: calc(33 * var(--u)); height: calc(33 * var(--u)); padding: 0; border: 1px solid #cee8ff; border-radius: 50%; background: #fff; color: var(--intro-blue); font-size: calc(25 * var(--u)); line-height: 1; box-shadow: 0 2px 12px #1488df20; }
.previous { left: calc(-28 * var(--u)); }
.next { right: calc(-28 * var(--u)); }
.carousel-arrow:disabled { opacity: .5; cursor: default; }
.carousel-dots { display: flex; justify-content: center; gap: calc(6 * var(--u)); margin-top: calc(6 * var(--u)); min-height: calc(8 * var(--u)); }
.carousel-dots button { width: calc(6 * var(--u)); height: calc(6 * var(--u)); padding: 0; border: 0; border-radius: 50%; background: #b6d9f5; }
.carousel-dots button.active { background: var(--intro-blue); }
.soums-band .carousel-dots button { background: #ffffff60; }
.soums-band .carousel-dots button.active { background: #fff; }
#people { margin-top: clamp(24px, 3vw, 40px); }
.person-card > img { width: 100%; height: calc(80 * var(--u)); object-fit: cover; object-position: center 20%; background: #e5f3ff; }
.news-section { margin-top: calc(13 * var(--u)); margin-bottom: calc(12 * var(--u)); }
.news-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: calc(10 * var(--u)); }
.news-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid #deefff; border-radius: calc(5 * var(--u)); background: #fff; box-shadow: 0 3px 9px #0085e512; }
.news-picture { position: relative; }
.news-picture img { width: 100%; height: calc(75 * var(--u)); object-fit: cover; }
.news-picture span { position: absolute; bottom: calc(5 * var(--u)); left: calc(7 * var(--u)); border-radius: 4px; padding: calc(2 * var(--u)) calc(7 * var(--u)); background: #fff; font-size: calc(9 * var(--u)); font-weight: 800; }
.news-card .card-copy { display: flex; flex-direction: column; flex: 1; padding: calc(7 * var(--u)) calc(13 * var(--u)) calc(10 * var(--u)); }
.news-card h3 { font-size: calc(11 * var(--u)); font-weight: 800; line-height: 1.2; }
.news-card p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: calc(8 * var(--u)); line-height: 1.4; margin: calc(5 * var(--u)) 0; }
.news-card .text-link { margin-top: auto; padding-top: calc(3 * var(--u)); font-size: calc(9 * var(--u)); }
.demo-note { grid-column: 1/-1; flex: 1; padding: 22px; color: var(--intro-muted); border: 1px dashed #c8e3f9; border-radius: 6px; background: #ffffffeb; }
footer { position: relative; isolation: isolate; margin-top: calc(12 * var(--u)); padding-top: calc(12 * var(--u)); color: #fff; font-family: inherit; font-size: 12px; font-weight: 400; line-height: 1.5; background: linear-gradient(100deg,#005a9c,#003f7a 60%,#0064a7); }
footer::before { content: ''; position: absolute; z-index: -2; inset: calc(-190 * var(--u)) 0 0; background: url('../img/footer.png') center bottom/100% auto no-repeat; clip-path: polygon(0 0,10% 0,10% calc(190 * var(--u)),90% calc(190 * var(--u)),90% 0,100% 0,100% 100%,0 100%); pointer-events: none; }
footer::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,transparent 0,#004579eb 15%,#004579f5 83%,transparent 100%); pointer-events: none; }
.footer-grid { display: grid; grid-template-columns: 1.5fr .62fr .92fr 1.15fr; gap: calc(25 * var(--u)); padding-bottom: calc(10 * var(--u)); }
.footer-grid > div + div { border-left: 1px solid #ffffff12; padding-left: calc(18 * var(--u)); }
.footer-motto { font: italic calc(17 * var(--u))/1.4 Georgia,serif; margin: calc(11 * var(--u)) 0 0 calc(8 * var(--u)) !important; }
footer h2 { font: inherit; font-weight: 700; margin-bottom: calc(7 * var(--u)) !important; }
footer nav { display: flex; flex-direction: column; gap: calc(3 * var(--u)); }
footer a { color: #fff; font: inherit; }
footer .nav-link:hover, footer .nav-link:focus-visible { color: #80c7ff; }
.site-header .brand:hover, .site-header .brand:focus-visible { color: var(--intro-blue); }
.contacts > p, .contacts > a { display: flex; align-items: center; gap: calc(7 * var(--u)); margin-bottom: calc(4 * var(--u)); font: inherit; }
.contact-icon { display: block; flex: 0 0 12px; width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.map { position: relative; display: block; border-radius: 4px; overflow: hidden; }
.map img { width: 100%; height: calc(69 * var(--u)); object-fit: cover; }
.map span { position: absolute; bottom: 6px; left: 6px; padding: 2px 5px; border: 1px solid #b5dcff; border-radius: 3px; background: #fff; color: var(--intro-blue); font: inherit; }
.footer-bottom { padding: calc(7 * var(--u)) 0; border-top: 1px solid #ffffff18; font: inherit; }
.footer-bottom .container { display: flex; justify-content: space-between; gap: 16px; }
dialog { width: min(650px,calc(100% - 32px)); max-height: 85vh; padding: 32px; border: 1px solid #d3eaff; border-radius: 14px; color: var(--intro-ink); box-shadow: 0 20px 90px #08234b44; }
dialog::backdrop { background: #09244488; backdrop-filter: blur(4px); }
.dialog-close { position: absolute; top: 5px; right: 12px; border: 0; background: none; color: var(--intro-muted); font-size: 28px !important; }
dialog h2 { font-size: 24px; margin-bottom: 18px !important; }
dialog p { margin: 12px 0 !important; font-size: 14px; }
.dialog-photo { width: 100%; max-height: 300px; object-fit: cover; border-radius: 8px; }
.dialog-portrait { height: 200px; width: auto; border-radius: 8px; }
.result-list { display: grid; gap: 10px; margin-top: 18px; }
.result-list a { display: block; padding: 12px; border: 1px solid #ddeafa; background: #f2f8ff; border-radius: 6px; font-size: 14px; }
.video-frame { width: 100%; aspect-ratio: 16/9; border: 0; }
@media (max-width: 900px) {
 body.home-page { --u: 1px; }
 .container, .hero, .header-inner { width: calc(100% - 48px); }
 .header-inner { min-height: 44px; gap: 16px; }
 .menu-toggle { display: block; border: 0; background: none; color: var(--intro-blue); font-size: 24px !important; margin-left: auto; }
 #main-nav { display: none; position: absolute; z-index: 20; top: 100%; left: 0; right: 0; padding: 15px 24px; background: #fff; box-shadow: 0 8px 15px #15365b15; }
 #main-nav.open { display: flex; flex-wrap: wrap; }
 #main-nav a { padding: 8px 0; font-size: 13px; }
 .hero { min-height: 300px; }
 .hero-inner { min-height: 300px; padding-block: 26px; }
 .hero-copy { width: 52%; }
 .hero::before { clip-path: polygon(0 0,48% 0,58% 100%,0 100%); }
 .hero h1 { font-size: 31px; }
 .hero-slogan { width: 25%; right: 0; }
 .about { grid-template-columns: 1.25fr 1fr; gap: 16px; padding: 16px; }
 .about blockquote { display: none; }
 .building { min-height: 225px; }
 .card-track > article { flex-basis: calc((100% - 21px)/4); }
 .person-card > img { height: 110px; }
 .soums-band { padding-block: 24px; background-size: cover; }
 .news-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .news-picture img { height: 145px; }
 .news-card h3 { font-size: 13px; }
 .news-card p { font-size: 11px; }
 .footer-grid { grid-template-columns: 1.3fr .7fr 1fr; gap: 18px; }
 .footer-grid > div:last-child { grid-column: 1/-1; padding-left: 0; border-left: 0; }
 .map img { height: 120px; }
 footer { padding-top: 20px; margin-top: 24px; }
 footer::before { background-size: auto 380px; }
 footer::after { background: #004579c9; }
}
@media (max-width: 540px) {
 .container, .hero, .header-inner { width: calc(100% - 36px); }
 .header-inner { gap: 10px; }
 .brand span { font-size: 9px; }.brand strong { font-size: 7px; }
 .brand img { width: 28px; height: 34px; }
 .login-button { font-size: 10px; padding: 8px; }
 .hero-inner { min-height: 355px; padding: 25px 0 100px; }
 .hero-copy { width: 100%; max-width: 325px; }
 .hero::before { clip-path: none; background: linear-gradient(90deg,#004572ed,#0066998a); }
 .hero h1 { font-size: 32px; }.hero-description { font-size: 13px; }
 .hero-slogan { width: 165px; bottom: 20px; }
 .stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px 0; padding: 15px 8px; }
 .stats > div { justify-content: flex-start; padding-left: 12px; gap: 10px; }
 .stats > div:nth-child(2n) { border: 0; }.stats img { width: 36px; height: 36px; }
 .stats span { font-size: 10px; }.stats strong { font-size: 20px; }
 .about { grid-template-columns: minmax(0,1fr); padding: 14px; }
 .about-copy { padding: 0; }.about h2 { font-size: 24px; }
 .about-copy > p:not(.eyebrow) { font-size: 14px; line-height: 1.45; }
 .values { padding-top: 18px; gap: 10px; }.values button { font-size: 10px; }
 .building { height: 225px; min-height: 0; }
 .about blockquote { display: block; min-height: 170px; background-size: 180px auto; background-position: right bottom; }
 blockquote p { max-width: 220px; }
 .section-heading { align-items: center; gap: 10px; }.section-heading h2 { font-size: 20px; }
 .section-heading > .text-link { max-width: 100px; font-size: 10px; text-align: right; }
 .card-track > article { flex-basis: calc((100% - 7px)/2); }
 .soum-card > img { height: 85px; }.person-card > img { height: 120px; }
 .card-copy h3 { font-size: 11px; }.card-copy p { font-size: 10px; }
 .previous { left: -15px; }.next { right: -15px; }
 .carousel-arrow { width: 30px; height: 30px; }
 .news-grid { gap: 10px; }.news-picture img { height: 100px; }
 .news-card .card-copy { padding: 8px; }.news-card h3 { font-size: 12px; }
 .footer-grid { grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 20px 14px; }
 .footer-grid > div:first-child, .footer-grid > div:last-child { grid-column: 1/-1; }
 .footer-grid > div + div { padding: 0; border: 0; }
 .footer-bottom .container { flex-direction: column; gap: 5px; }.footer-bottom { padding-block: 12px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
