.home-page {
    background: #f2f5f6;
    color: #21343f;
    font-family: "Segoe UI", Arial, sans-serif;
    padding: 30px 0 45px;
}

.home-page, .home-page * { box-sizing: border-box; }
.home-page [hidden] { display: none !important; }
.home-visually-hidden { clip: rect(0, 0, 0, 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.home-page h1, .home-page h2, .home-page h3 { font-family: inherit; text-transform: none; }
.home-page a, .home-page button, .home-page li { font-family: inherit; }
:where(.home-page) span { color: inherit; font-family: inherit; line-height: inherit; margin: 0; }
.home-page .home-sections__list li::before { content: none; display: none; }
.home-shell { width: calc(100% - 40px); max-width: 1320px; margin: 0 auto; }
.home-kicker { display: block; color: #168a93; font-size: 11px; font-weight: 700; letter-spacing: .14em; line-height: 1.4; text-transform: uppercase; }
.home-hero { display: grid; grid-template-columns: 268px minmax(0, 1fr); gap: 20px; align-items: stretch; }

.home-sections {
    background: #fff;
    border: 1px solid #e5ecee;
    border-radius: 20px;
    box-shadow: 0 12px 36px rgba(19, 48, 62, .055);
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
}
.home-sections__heading { padding: 28px 26px 19px; }
.home-sections__heading h2 { color: #203641; font-size: 23px; font-weight: 700; line-height: 1.2; margin: 7px 0 0; }
.home-sections__list { display: flex; flex: 1; flex-direction: column; list-style: none; margin: 0; padding: 0 13px 14px; }
.home-sections__list li { flex: 1; margin: 0; padding: 0; }
.home-sections__list a {
    align-items: center;
    border-radius: 9px;
    color: #27404b;
    display: flex;
    gap: 12px;
    height: 100%;
    min-height: 49px;
    padding: 9px 12px;
    text-decoration: none;
    transition: background .2s, color .2s, transform .2s;
}
.home-sections__list a:hover, .home-sections__list a:focus-visible { background: #edf7f6; color: #087c83; transform: translateX(2px); }
.home-sections__number { color: #8ba1a9; flex: 0 0 23px; font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.home-sections__label { flex: 1; font-size: 14px; font-weight: 600; line-height: 1.3; }
.home-sections__arrow { color: #15969d; font-size: 17px; line-height: 1; }

.home-feature { min-width: 0; }
.home-carousel, .home-feature__empty {
    background: #183b4d;
    border-radius: 20px;
    box-shadow: 0 16px 38px rgba(19, 48, 62, .13);
    height: clamp(560px, 44vw, 640px);
    overflow: hidden;
    position: relative;
}
.home-carousel__slides, .home-slide { inset: 0; position: absolute; }
.home-slide { background: #183b4d; display: grid; grid-template-rows: minmax(0, 1fr) 190px; }
.home-slide__media { background: #183b4d; min-height: 0; overflow: hidden; position: relative; }
.home-slide__backdrop { filter: blur(24px) brightness(.6); height: 100%; inset: 0; object-fit: cover; position: absolute; transform: scale(1.15); width: 100%; }
.home-slide__image { display: block; height: 100%; object-fit: contain; object-position: center; position: relative; width: 100%; }
.home-slide--placeholder .home-slide__media { background: radial-gradient(circle at 75% 18%, #315f69, transparent 42%), linear-gradient(130deg, #244c59, #112c3e); }
.home-slide--placeholder .home-slide__image { display: none; }
.home-slide__content { background: #123344; min-width: 0; padding: 18px 32px 30px; position: relative; z-index: 1; }
.home-slide__category { background: #42b9bb; border-radius: 100px; color: #092d3a; display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: .08em; margin-right: 13px; padding: 6px 10px; text-transform: uppercase; }
.home-slide time { color: #d8e7e9; font-size: 12px; font-weight: 600; letter-spacing: .07em; }
.home-slide h2 { color: #fff; display: -webkit-box; font-size: clamp(22px, 2vw, 28px); font-weight: 700; line-height: 1.16; margin: 10px 0 12px; max-width: 820px; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.home-slide__link, .home-feature__empty a { align-items: center; background: #fff; border-radius: 8px; color: #173743; display: inline-flex; font-size: 12px; font-weight: 700; gap: 16px; min-height: 36px; padding: 8px 13px; text-decoration: none; transition: background .2s, transform .2s; }
.home-slide__link:hover, .home-slide__link:focus-visible, .home-feature__empty a:hover, .home-feature__empty a:focus-visible { background: #c7f1ef; color: #173743; transform: translateY(-2px); text-decoration: none; }
.home-slide__link span, .home-feature__empty a span { color: #0c858c; font-size: 18px; line-height: .7; }
.home-carousel__controls { align-items: center; bottom: 18px; display: flex; gap: 13px; position: absolute; right: 25px; z-index: 2; }
.home-carousel__arrow { align-items: center; background: rgba(255, 255, 255, .15); border: 1px solid rgba(255, 255, 255, .42); border-radius: 50%; color: #fff; display: flex; font-size: 29px; font-weight: 300; height: 39px; justify-content: center; line-height: 1; padding: 0 0 4px; transition: background .2s; width: 39px; }
.home-carousel__arrow:hover, .home-carousel__arrow:focus-visible { background: #fff; color: #173743; }
.home-carousel__count { color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .08em; min-width: 47px; text-align: center; }
.home-carousel__dots { display: flex; gap: 7px; left: 28px; position: absolute; top: 21px; z-index: 2; }
.home-carousel__dots button { background: rgba(255, 255, 255, .45); border: 0; border-radius: 5px; height: 5px; padding: 0; transition: background .2s, width .2s; width: 12px; }
.home-carousel__dots button[aria-current="true"] { background: #55d5d1; width: 28px; }
.home-feature__empty { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 45px; }
.home-feature__empty .home-kicker { color: #80dfdb; }
.home-feature__empty h2 { color: #fff; font-size: clamp(28px, 3vw, 38px); line-height: 1.2; margin: 16px 0 27px; max-width: 620px; }

.home-page a:focus-visible, .home-page button:focus-visible, .home-carousel:focus-visible { outline: 3px solid #69d7d4; outline-offset: 3px; }

@media (max-width: 950px) {
    .home-hero { grid-template-columns: 1fr; }
    .home-sections__heading { padding-bottom: 12px; }
    .home-sections__list { display: grid; flex: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-sections__list li { flex: none; }
    .home-sections__list a { height: auto; }
    .home-carousel, .home-feature__empty { height: 560px; }
}

@media (max-width: 650px) {
    .home-page { padding: 16px 0 45px; }
    .home-shell { width: calc(100% - 28px); }
    .home-sections, .home-carousel, .home-feature__empty { border-radius: 15px; }
    .home-sections__heading { padding: 20px 19px 9px; }
    .home-sections__heading h2 { font-size: 20px; }
    .home-sections__list { padding: 0 8px 10px; }
    .home-sections__list a { gap: 7px; min-height: 51px; padding: 8px; }
    .home-sections__number { flex-basis: 19px; font-size: 10px; }
    .home-sections__label { font-size: 12px; }
    .home-sections__arrow { font-size: 14px; }
    .home-hero { gap: 14px; }
    .home-carousel, .home-feature__empty { height: 500px; }
    .home-slide { grid-template-rows: minmax(0, 1fr) 220px; }
    .home-slide__content { padding: 18px 20px 30px; }
    .home-slide h2 { font-size: clamp(20px, 5vw, 24px); margin: 11px 0 12px; -webkit-line-clamp: 3; }
    .home-slide__category { font-size: 9px; margin-right: 7px; padding: 6px 9px; }
    .home-slide time { font-size: 10px; }
    .home-carousel__dots { left: 18px; top: 18px; }
    .home-carousel__controls { bottom: 20px; gap: 6px; right: 15px; }
    .home-carousel__arrow { height: 34px; width: 34px; }
    .home-carousel__count { min-width: 40px; }
    .home-feature__empty { padding: 28px; }
}

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

@media (max-width: 380px) {
    .home-carousel { height: 540px; }
    .home-slide { grid-template-rows: minmax(0, 1fr) 260px; }
    .home-sections__list a { gap: 5px; }
    .home-sections__label { font-size: 11px; }
    .home-slide__category { display: table; margin-bottom: 8px; }
    .home-carousel__dots { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .home-page *, .home-page *::before, .home-page *::after { transition-duration: .01ms !important; }
}
