/* Homepage design. All component rules are scoped to .bm. */
.bm {
    --ink:#152330;
    --red:#e53b32;
    --muted:#65717a;
    --line:#e2e6e8;
    --paper:#f5f6f6;
    background:var(--paper);
    color:var(--ink);
    font-size:18px;
    line-height:1.6;
    overflow-wrap:break-word
}
.bm,.bm * {
    box-sizing:border-box;
    font-family:Arial,Helvetica,sans-serif
}
.bm a {
    color:inherit;
    text-decoration:none
}
.bm a:hover {
    text-decoration:none
}
.bm button {
    font:inherit
}
.bm :is(a,button):focus-visible {
    outline:3px solid #e53b32;
    outline-offset:5px
}
.bm p {
    margin:0
}
.bm-container {
    width:calc(100% - 96px);
    max-width:1280px;
    margin:0 auto
}
.bm-skip {
    position:absolute;
    left:20px;
    top:-100px;
    padding:12px;
    background:#fff;
    z-index:30
}
.bm-skip:focus {
    top:10px
}
.bm-header {
    background:#fff;
    position:relative;
    z-index:10
}
.bm-header-inner {
    display:flex;
    align-items:center;
    gap:40px;
    min-height:98px
}
.bm-brand {
    display:flex;
    align-items:center;
    gap:12px;
    font-size:19px;
    font-weight:900;
    letter-spacing:1.4px;
    line-height:1.1
}
.bm-brand-sub {
    display:block;
    color:var(--red);
    font-size:13px;
    letter-spacing:5px;
    margin-top:5px
}
.bm-mark {
    display:flex;
    gap:3px;
    width:51px;
    flex-wrap:wrap;
    transform:skew(-13deg)
}
.bm-mark i {
    display:block;
    border:3px solid var(--ink);
    border-radius:50%;
    width:15px;
    height:15px
}
.bm-mark i:nth-child(4) {
    margin-left:9px
}
.bm-mark i:last-child {
    background:var(--red);
    border-color:var(--red)
}
.bm-navigation {
    display:flex;
    gap:30px;
    margin-left:auto
}
.bm-navigation a {
    font-size:18px;
    font-weight:700;
    padding:35px 0;
    position:relative
}
.bm-navigation a[aria-current] {
    color:var(--red)
}
.bm-navigation a[aria-current]:after {
    content:'';
    position:absolute;
    bottom:22px;
    left:0;
    width:20px;
    height:3px;
    background:var(--red)
}
.bm-navigation a:hover {
    color:var(--red)
}
.bm-header-cta {
    padding:11px 18px;
    border:1px solid var(--line);
    font-size:18px;
    font-weight:700;
    display:flex;
    gap:26px
}
.bm-header-cta:hover {
    background:var(--paper)
}
.bm-menu-toggle {
    display:none
}
.bm-hero {
    position:relative;
    background:#101f2a;
    color:#fff;
    min-height:650px;
    isolation:isolate;
    display:flex;
    flex-direction:column;
    justify-content:center
}
.bm-hero-image {
    position:absolute;
    inset:0;
    background-image:linear-gradient(90deg,rgba(10,24,35,.92) 0%,rgba(10,24,35,.75) 30%,rgba(10,24,35,.12) 72%),url('/r/public/images/biathlon-hero-v2.webp');
    background-size:cover;
    background-position:center;
    z-index:-2
}
.bm-hero:after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,rgba(9,21,31,.8),transparent 25%);
    z-index:-1
}
.bm-hero-content {
    padding-top:65px;
    padding-bottom:95px
}
.bm-eyebrow,.bm-label {
    font-size:14px;
    font-weight:700;
    letter-spacing:2px
}
.bm-eyebrow {
    display:flex;
    align-items:center;
    gap:10px;
    color:#e6eaed;
    margin-bottom:28px;
    text-transform:uppercase
}
.bm-eyebrow>span {
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--red)
}
.bm h1 {
    font-size:clamp(38px,4.7vw,70px);
    font-weight:900;
    line-height:1.05;
    letter-spacing:-2.7px;
    margin:0 0 28px;
    max-width:830px
}
.bm h1 em {
    font-style:normal;
    color:#ff6251
}
.bm-hero-content p {
    font-size:19px;
    line-height:1.8;
    color:#d3dce1
}
.bm-hero-actions {
    display:flex;
    align-items:center;
    gap:32px;
    margin-top:36px
}
.bm-button {
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    min-height:50px;
    padding:14px 23px;
    font-size:17px;
    font-weight:700;
    border:0;
    border-radius:3px;
    transition:background .2s,transform .2s
}
.bm a.bm-button-red {
    color:#fff;
    background:var(--red)
}
.bm a.bm-button-red:hover {
    background:#c72c25;
    transform:translateY(-2px)
}
.bm-button span {
    font-size:19px;
    line-height:1
}
.bm-hero-link {
    font-size:17px;
    font-weight:700
}
.bm-hero-link span {
    margin-left:15px
}
.bm-hero-link:hover {
    color:#ff9b8e
}
.bm-hero-bottom {
    position:absolute;
    bottom:25px;
    left:0;
    right:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:14px;
    letter-spacing:2px
}
.bm-hero-bottom>a {
    color:#d3dce1;
    letter-spacing:.5px
}
.bm-hero-bottom>a>span {
    margin-left:20px;
    font-size:18px
}
.bm-values {
    background:#fff;
    border-bottom:1px solid var(--line)
}
.bm-values>.bm-container {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    min-height:75px;
    font-size:14px;
    font-weight:700;
    letter-spacing:1.7px
}
.bm-values i {
    font-style:normal;
    color:var(--red);
    font-size:26px
}
.bm-content {
    padding-top:70px;
    padding-bottom:65px
}
.bm-calendar {
    scroll-margin-top:25px
}
.bm-label {
    color:var(--muted)
}
.bm-section-top {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:25px
}
.bm h2 {
    font-size:clamp(26px,3vw,38px);
    font-weight:800;
    line-height:1.15;
    letter-spacing:-1.2px;
    margin:12px 0 0
}
.bm-text-link {
    font-size:16px;
    font-weight:700;
    line-height:1.5
}
.bm-text-link span {
    margin-left:14px
}
.bm a.bm-text-link:hover {
    color:var(--red)
}
.bm-section-description {
    color:var(--muted);
    font-size:18px;
    margin-top:16px!important
}
.bm-columns {
    display:grid;
    grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);
    gap:32px;
    align-items:start;
    margin-top:35px
}
.bm .list-view {
    padding:0
}
.bm .list-view .empty {
    background:#fff;
    padding:35px;
    border:1px solid var(--line);
    border-radius:6px
}
.bm-event {
    border:1px solid var(--line);
    background:#fff;
    border-radius:6px;
    overflow:hidden;
    margin-bottom:22px
}
.bm-event-top {
    padding:18px 26px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-bottom:1px solid #edf0f1
}
.bm-status {
    font-size:14px;
    font-weight:700;
    letter-spacing:.3px;
    display:flex;
    align-items:center;
    gap:7px
}
.bm-status i {
    display:inline-block;
    width:6px;
    height:6px;
    border-radius:50%;
    background:#89949b
}
.bm-status-0 {
    color:#29714f
}
.bm-status-0 i {
    background:#34885f
}
.bm-event-year {
    font-size:16px;
    color:var(--muted)
}
.bm-event-body {
    padding:28px 26px;
    display:flex;
    gap:25px
}
.bm-event-date {
    border-right:1px solid var(--line);
    padding-right:25px;
    min-width:77px;
    flex-shrink:0;
    text-align:center
}
.bm-event-date strong {
    display:block;
    font-size:40px;
    line-height:1;
    font-weight:800;
    letter-spacing:-1.5px
}
.bm-event-date>span {
    display:block;
    font-size:14px;
    font-weight:700;
    color:var(--muted);
    margin-top:8px;
    letter-spacing:2px
}
.bm-event-info {
    min-width:0
}
.bm-event-meta {
    font-size:16px;
    color:var(--muted);
    line-height:1.65
}
.bm-event-meta>span {
    margin:0 6px;
    color:#b5bfc4
}
.bm-event h3 {
    font-size:25px;
    line-height:1.2;
    letter-spacing:-.7px;
    font-weight:800;
    margin:12px 0
}
.bm-event-description {
    color:#5e6a73;
    font-size:18px;
    line-height:1.7
}
.bm-event-description p {
    margin:8px 0
}
.bm-event-description img {
    max-width:100%;
    height:auto
}
.bm-event-description a {
    text-decoration:underline
}
.bm-event-description table {
    display:block;
    max-width:100%;
    overflow:auto
}
.bm-event-actions {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:20px;
    padding:0 26px 26px
}
.bm-photo-button {
    border:0;
    padding:0;
    background:none;
    cursor:pointer;
    color:var(--ink)
}
.bm-sidebar {
    min-width:0
}
.bm-rating-intro {
    padding:28px 30px;
    background:#172a38;
    color:#fff;
    border-radius:6px 6px 0 0
}
.bm-rating-intro .bm-label {
    color:#aabcc8;
    font-size:14px
}
.bm-rating-intro h3 {
    font-size:28px;
    font-weight:700;
    line-height:1.15;
    letter-spacing:-.8px;
    margin:16px 0
}
.bm-rating-intro p {
    font-size:17px;
    color:#beccd5;
    line-height:1.7
}
.bm-rating-intro>a {
    display:flex;
    justify-content:space-between;
    font-size:16px;
    font-weight:700;
    border-top:1px solid #354653;
    margin-top:22px;
    padding-top:17px
}
.bm-rating-intro>a:hover {
    color:#ff9b8e
}
.bm #block_cup_list {
    margin:0
}
.bm .block_cup_list_item {
    padding:22px 25px;
    background:#fff;
    border:1px solid var(--line);
    border-top:0;
    margin:0 0 20px;
    border-radius:0 0 6px 6px
}
.bm .table-list-title {
    background:none;
    color:var(--ink);
    font-size:19px;
    line-height:1.3;
    text-align:left;
    margin:0 0 18px;
    padding:0;
    padding-left: 30px;
    font-weight:700
}
.bm .table-list {
    background:none;
    border:0;
    border-radius:0;
    padding:0;
    margin:0
}
.bm .table-item {
    padding:0
}
.bm .table {
    font-size:16px;
    margin-bottom:10px;
    color:var(--ink);
    width:100%
}
.bm .table td {
    padding:9px 3px;
    border-color:#edf0f1
}
.bm .table .text-center {
    font-weight:700
}
.bm .table tr:first-child td {
    border-top:0
}
.bm .season_age_group_link {
    display:inline-block;
    font-size:14px;
    font-weight:700;
    color:var(--muted);
    padding-bottom:12px
}
.bm .slick-dots {
    position:static;
    padding:0;
    margin:8px 0 0
}
.bm .slick-dots li {
    margin:0 4px;
    width:7px;
    height:7px
}
.bm .slick-dots li button {
    width:7px;
    height:7px;
    background:#d0d7dc;
    padding:0;
    border:0;
    border-radius:50%;
    font-size:0
}
.bm .slick-dots .slick-active button {
    background:var(--red)
}
.bm .slick-dots li button:before {
    display:none
}
.bm .slick-arrow {
    position:absolute;
    top:-43px;
    background:none;
    border:0;
    font-size:14px;
    color:var(--muted);
    width:24px;
    height:24px;
    padding:0
}
.bm .slick-prev {
    right:25px;
    left:auto
}
.bm .slick-next {
    right:0
}
.bm .slick-arrow:before {
    display:none
}
.bm-community {
    position:relative;
    overflow:hidden;
    border-radius:6px;
    display:flex;
    gap:32px;
    align-items:center;
    padding:45px;
    margin-top:40px;
    background:#e8edf0
}
.bm-community .bm-label {
    font-size:14px
}
.bm-community h2 {
    font-size:30px;
    margin-top:12px
}
.bm-community p {
    font-size:17px;
    color:var(--muted);
    margin-top:16px;
    line-height:1.7
}
.bm-community>.bm-button {
    margin-left:auto;
    flex-shrink:0;
    position:relative
}
.bm a.bm-button-dark {
    color:#fff;
    background:var(--ink)
}
.bm a.bm-button-dark:hover {
    background:#294452
}
.bm-community-target {
    width:120px;
    height:120px;
    border:1px solid #c0cbd2;
    border-radius:50%;
    display:grid;
    place-items:center;
    flex-shrink:0
}
.bm-community-target:before {
    content:'';
    width:82px;
    height:82px;
    border:1px solid #b1c0ca;
    border-radius:50%;
    position:absolute
}
.bm-community-target i {
    display:block;
    width:40px;
    height:40px;
    border-radius:50%;
    background:var(--red);
    box-shadow:0 0 0 10px #dde5e9
}
.bm-partners {
    margin-top:45px
}
.bm .banner_list {
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:24px;
    margin:0
}
.bm .banner_list>.item {
    margin:0;
    flex:1 1 160px;
    max-width:280px
}
.bm .banner_list img {
    max-width:100%;
    max-height:180px;
    object-fit:contain;
    margin:auto
}
.bm-friends {
    margin-top:55px;
    padding-top:35px;
    border-top:1px solid var(--line)
}
.bm .partner-list {
    margin:0
}
.bm .partner-list h2 {
    font-size:25px;
    margin:10px 0 20px
}
.bm .partner-list .row {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin:0
}
.bm .partner-list .item {
    width:auto;
    padding:12px 17px;
    background:white;
    border:1px solid var(--line);
    border-radius:4px;
    font-size:16px;
    margin:0
}
.bm .partner-list .item a {
    font-size:16px
}
.bm .partner-list .item:hover {
    border-color:var(--ink)
}
.bm-footer {
    background:#11212e;
    color:#a8b7c2;
    padding:45px 0 22px
}
.bm-footer-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    font-size:16px
}
.bm-footer-brand {
    color:white!important;
    font-size:14px;
    font-weight:800;
    letter-spacing:1px
}
.bm-footer-brand>span {
    display:block;
    font-size:10px;
    font-weight:400;
    letter-spacing:0;
    color:#a8b7c2;
    margin-top:7px
}
.bm-copyright {
    font-size:14px;
    margin-top:35px;
    padding-top:20px;
    border-top:1px solid #2c3b47
}
@media(min-width:1600px) {
    .bm-hero {
        min-height:720px
    }
}
@media(max-width:1100px) {
    .bm-container {
        width:calc(100% - 56px)
    }
    .bm-header-inner {
        gap:25px
    }
    .bm-navigation {
        gap:20px
    }
    .bm-columns {
        gap:22px;
        grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)
    }
    .bm-event-body {
        gap:18px
    }
    .bm-event-date {
        padding-right:18px
    }
    .bm-community {
        padding:32px;
        gap:25px
    }
    .bm-community-target {
        width:95px;
        height:95px
    }
    .bm-values>.bm-container {
        font-size:13px;
        letter-spacing:1px
    }
}
@media(max-width:800px) {
    .bm-header-inner {
        min-height:80px;
        gap:20px
    }
    .bm-brand {
        font-size:17px
    }
    .bm-brand-sub {
        font-size:11px
    }
    .bm-header-cta {
        margin-left:auto
    }
    .bm-menu-toggle {
        display:flex;
        gap:8px;
        align-items:center;
        order:3;
        border:0;
        background:none;
        font-size:17px;
        padding:10px 0;
        color:var(--ink)
    }
    .bm-navigation {
        display:none;
        position:absolute;
        top:100%;
        left:0;
        right:0;
        background:white;
        border-top:1px solid var(--line);
        box-shadow:0 12px 20px #10203018;
        padding:10px 28px 20px;
        margin:0
    }
    .bm-navigation.is-open {
        display:flex;
        flex-direction:column;
        gap:0
    }
    .bm-navigation a {
        padding:14px 0
    }
    .bm-navigation a[aria-current]:after {
        display:none
    }
    .bm-hero {
        min-height:590px
    }
    .bm h1 {
        font-size:52px
    }
    .bm-hero-image {
        background-position:62% center;
        background-image:linear-gradient(90deg,rgba(10,24,35,.9),rgba(10,24,35,.5) 65%,rgba(10,24,35,.15)),url('/r/public/images/biathlon-hero-v2.webp')
    }
    .bm-values>.bm-container {
        min-height:66px;
        font-size:12px;
        gap:12px;
        letter-spacing:.6px
    }
    .bm-columns {
        grid-template-columns:1fr
    }
    .bm-sidebar {
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:20px
    }
    .bm-rating-intro {
        border-radius:6px
    }
    .bm .block_cup_list_item {
        border-top:1px solid var(--line);
        border-radius:6px
    }
    .bm-section-top {
        align-items:start
    }
    .bm-section-top>.bm-text-link {
        max-width:150px;
        padding-top:25px
    }
    .bm-content {
        padding-top:45px
    }
    .bm-community {
        flex-wrap:wrap
    }
    .bm-community>.bm-button {
        margin-left:120px
    }
    .bm-footer-inner {
        flex-wrap:wrap
    }
    .bm-footer-inner>span {
        display:none
    }
}
@media(max-width:520px) {
    .bm-container {
        width:calc(100% - 36px)
    }
    .bm-header-inner {
        gap:15px;
        min-height:76px
    }
    .bm-brand {
        font-size:14px;
        gap:8px
    }
    .bm-brand-sub {
        font-size:9px;
        letter-spacing:4px
    }
    .bm-mark {
        transform:scale(.85) skew(-13deg);
        width:51px;
        margin-right:-5px
    }
    .bm-header-cta {
        display:none
    }
    .bm-menu-toggle {
        margin-left:auto
    }
    .bm-hero {
        min-height:610px
    }
    .bm-hero-content {
        padding-top:60px;
        padding-bottom:110px
    }
    .bm-eyebrow {
        font-size:12px;
        letter-spacing:1.1px;
        margin-bottom:26px
    }
    .bm h1 {
        font-size:clamp(31px,8.4vw,44px);
        letter-spacing:-1.4px;
        line-height:1.12;
        margin-bottom:24px
    }
    .bm-hero-content p {
        font-size:18px;
        line-height:1.85
    }
    .bm-hero-actions {
        align-items:flex-start;
        flex-direction:column;
        gap:23px;
        margin-top:30px
    }
    .bm-button {
        min-height:49px;
        padding:14px 20px;
        font-size:16px
    }
    .bm-hero-bottom {
        font-size:12px;
        letter-spacing:.8px;
        bottom:20px
    }
    .bm-hero-bottom>a {
        font-size:13px
    }
    .bm-hero-bottom>a>span {
        margin-left:8px
    }
    .bm-values>.bm-container {
        min-height:60px;
        gap:8px;
        font-size:12px;
        line-height:1.6;
        letter-spacing:.2px
    }
    .bm-values i {
        font-size:18px
    }
    .bm-values span {
        max-width:94px
    }
    .bm-section-top {
        flex-direction:column;
        gap:15px
    }
    .bm-section-top>.bm-text-link {
        max-width:none;
        padding:0
    }
    .bm h2 {
        font-size:28px
    }
    .bm-section-description {
        font-size:17px
    }
    .bm-columns {
        margin-top:25px;
        gap:16px
    }
    .bm-event-top {
        padding:15px 18px
    }
    .bm-status {
        font-size:13px
    }
    .bm-event-body {
        padding:22px 18px;
        gap:14px
    }
    .bm-event-date {
        min-width:54px;
        padding-right:14px
    }
    .bm-event-date strong {
        font-size:30px
    }
    .bm-event-date>span {
        font-size:13px
    }
    .bm-event-meta {
        font-size:14px
    }
    .bm-event h3 {
        font-size:21px
    }
    .bm-event-description {
        font-size:17px
    }
    .bm-event-actions {
        padding:0 18px 22px;
        gap:18px
    }
    .bm-event-actions .bm-button {
        width:100%
    }
    .bm-sidebar {
        display:block
    }
    .bm-rating-intro {
        padding:26px;
        border-radius:6px 6px 0 0
    }
    .bm .block_cup_list_item {
        border-top:0;
        border-radius:0 0 6px 6px
    }
    .bm-community {
        padding:28px 22px;
        margin-top:30px;
        gap:24px
    }
    .bm-community-target {
        display:none
    }
    .bm-community h2 {
        font-size:27px
    }
    .bm-community>.bm-button {
        margin-left:0
    }
    .bm-community p br {
        display:none
    }
    .bm-friends {
        margin-top:35px
    }
    .bm .partner-list .item {
        width:100%
    }
    .bm-footer {
        padding-top:30px
    }
    .bm-footer-inner {
        flex-direction:column;
        align-items:flex-start;
        gap:25px
    }
    .bm-hero-image {
        background-position:66% center
    }
    .bm-content {
        padding-bottom:40px
    }
}
@media(prefers-reduced-motion:reduce) {
    .bm * {
        scroll-behavior:auto;
        transition:none!important
    }
}
/* Slick measures its slides inside grid cells;
cells must be allowed to shrink. */
.bm-sidebar>* {
    min-width:0
}
@media(min-width:521px) and (max-width:800px) {
    .bm-sidebar {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}
.bm .fa {
    font-family:FontAwesome
}
.bm .table-list .slick-dots li {
    border:0;
    text-indent:0;
    background:none
}
.bm .table-list .slick-dots li button {
    display:block
}
.bm .table-list .slick-dots li.slick-active {
    background:none
}
.bm .table-list .slick-arrow {
    opacity:1;
    bottom:auto
}
.bm .table-list .slick-prev {
    left:auto;
    right:25px
}
.bm .partner-list h2 {
    text-align:left
}
@media(max-width:520px) {
    .bm-values>.bm-container>span { min-width:0; flex:1; }
    .bm-values>.bm-container>i { flex-shrink:0; }
}
