@keyframes a {
    0% {
        width: 0;
        opacity: 0;
        left: 10px
    }
    to {
        width: 100%;
        opacity: 1;
        left: 0
    }
}

@keyframes b {
    0% {
        width: 100%;
        opacity: 1;
        left: 0
    }
    to {
        width: 0;
        opacity: 0;
        left: 10px
    }
}

@keyframes c {
    0% {
        width: 0;
        opacity: 0
    }
    to {
        width: 100%;
        opacity: 1
    }
}

@keyframes d {
    0% {
        width: 100%;
        opacity: 1
    }
    to {
        width: 0;
        opacity: 0
    }
}

.clearfix {
    clear: both
}

.year {
    position: absolute;
    top: 0;
    right: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: end;
    align-items: flex-end;
    cursor: pointer;
    z-index: 3
}

.year__list {
    margin: 0;
    display: none;
    padding-left: 0;
    list-style: none;
    position: absolute;
    top: -7px;
    right: -28px;
    width: 109px;
    border-radius: 4px;
    background: #fff;
    z-index: 2
}

.year__list_visible {
    display: block
}

.year__item {
    margin: 0 1%;
    padding-right: 18px;
    width: 98%;
    height: 28px;
    font-size: 24px;
    color: #000;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
    justify-content: flex-end;
    -ms-flex-align: center;
    align-items: center
}

.year__item:first-child {
    margin-top: 1%;
    border-radius: 4px 4px 0 0
}

.year__item:last-child {
    margin-bottom: 1%;
    border-radius: 0 0 4px 4px
}

.year__item a {
    width: 100%;
    text-align: right
}

.year__active {
    background: #181818;
    position: relative;
    color: #fff
}

.year__active:before {
    content: "";
    position: absolute;
    left: 10px;
    top: 6px;
    box-sizing: border-box;
    height: 10px;
    width: 10px;
    border-style: solid;
    border-color: #fff;
    border-width: 0 1px 1px 0;
    transform: rotate(45deg);
    transition: border-width .15s ease-in-out
}

.year__selected {
    font-size: 24px;
    position: relative;
    z-index: 1
}

.year__selected:before {
    content: "";
    position: absolute;
    bottom: -6px;
    left: 0;
    width: 100%;
    height: 1px;
    background-image: linear-gradient(90deg, #fff 63%, hsla(0, 0%, 100%, 0) 0);
    background-position: bottom;
    background-size: 11px 1px;
    background-repeat: repeat-x
}

.year__switch {
    position: absolute;
    top: 22px;
    right: 0;
    width: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
    justify-content: flex-end;
    font-size: 22px
}

.year__prev {
    margin-left: 17px;
    position: relative;
    opacity: .5
}

.year__prev:before {
    display: none;
    content: "";
    position: absolute;
    top: 45%;
    left: -17px;
    transform: translateY(-45%);
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff
}

.year__next {
    position: relative;
    margin-left: 20px;
    opacity: .5
}

.year__next:after {
    display: none;
    content: "";
    position: absolute;
    top: 45%;
    right: -17px;
    transform: translateY(-45%);
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff
}

.year__curr {
    margin-left: 20px
}

.calendars {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -ms-flex-pack: justify;
    justify-content: space-between
}

.calendars__item {
    margin-bottom: 121px;
    width: 32%
}

.calendars__item:nth-child(3n+3) {
    margin-right: -2.6%
}

.calendars__month {
    display: inline-block;
    margin-bottom: 28px;
    font-size: 14px;
    text-transform: uppercase
}

.calendars__month>a {
    position: relative
}

.calendars__month>a:after {
    content: "";
    position: absolute;
    bottom: -5px;
    left: 10px;
    width: 100%;
    height: 1px;
    background: #fff;
    opacity: 0;
    animation: b .3s ease;
    animation-fill-mode: forwards
}

.calendars__month:hover>a:after {
    animation: a .3s ease;
    animation-fill-mode: forwards
}

.calendars__table {
    padding: 10px 0;
    border-collapse: separate;
    border-spacing: 13px 4px;
    margin-left: -5%
}

.calendars__table tr th {
    padding-top: 15px;
    padding-bottom: 15px;
    font-weight: 400;
    font-size: 14px
}

.calendars__table tr td:last-child,
.calendars__table tr td:nth-child(6),
.calendars__table tr th:last-child,
.calendars__table tr th:nth-child(6) {
    font-weight: 700
}

.calendars__table td {
    width: 30px;
    height: 30px;
    text-align: center
}

.calendars__table td.event {
    position: relative;
    border: 1px solid #fff;
    cursor: pointer
}

.calendars__table td.event:hover .calendars__date:after {
    animation: c .5s ease;
    animation-fill-mode: forwards
}

.calendars__table td.event .calendars__event {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    cursor: pointer
}

.calendars__table td.event .calendars__event_second {
  position: absolute;
  top: 20%;
  left: 25%;
  width: 100%;
  height: 100%;
  border: 1px solid #fff;
}

.calendars__table td.current {
    position: relative
}

.calendars__table td.current:before {
    content: "";
    position: absolute;
    bottom: 1px;
    left: 50%;
    transform: translate(-50%);
    width: 6px;
    height: 6px;
    background: #fff;
    border-radius: 50%
}

.calendars__date {
    position: relative;
    font-size: 14px;
    display: inline-block
}

.calendars__date:after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 1px;
    background: #fff;
    animation: d .5s ease
}

.calendars [data-aos=show-border] {
    border: 1px solid transparent;
    transition: border 2s ease
}

.calendars [data-aos=show-border].aos-animate {
    border: 1px solid hsla(0, 0%, 100%, .3);
    transition: border 2s ease
}

@media (min-width:1920px) {
    .year__selected:before {
        background-size: .688vw .078vw!important
    }
}

@media (min-width:1281px) {
    .year__list {
        top: -.547vw;
        right: -2.188vw;
        width: 8.516vw;
        border-radius: .313vw
    }
    .year__item {
        padding-right: 1.406vw;
        height: 2.188vw;
        font-size: 1.875vw
    }
    .year__item:first-child {
        border-radius: .313vw .313vw 0 0
    }
    .year__item:last-child {
        border-radius: 0 0 .313vw .313vw
    }
    .year__active:before {
        left: .781vw;
        top: .469vw;
        height: .781vw;
        width: .781vw;
        border-width: 0 .078vw .078vw 0
    }
    .year__selected {
        font-size: calc(24px + (100vw - 1280px) / 3000 * 24)
    }
    .year__selected:before {
        bottom: -.469vw;
        height: .078vw;
        background-size: .859vw .078vw
    }
    .year__switch {
        top: calc(22px + (100vw - 1280px) / 3000 * 22);
        font-size: calc(22px + (100vw - 1280px) / 3000 * 22)
    }
    .year__prev {
        margin-left: calc(17px + (100vw - 1280px) / 3000 * 17)
    }
    .year__prev:before {
        left: calc(-17px + (100vw - 1280px) / 3000 * -17);
        width: calc(6px + (100vw - 1280px) / 3000 * 6);
        height: calc(6px + (100vw - 1280px) / 3000 * 6)
    }
    .year__next {
        margin-left: calc(20px + (100vw - 1280px) / 3000 * 20)
    }
    .year__next:after {
        right: calc(-17px + (100vw - 1280px) / 3000 * -17);
        width: calc(6px + (100vw - 1280px) / 3000 * 6);
        height: calc(6px + (100vw - 1280px) / 3000 * 6)
    }
    .year__curr {
        margin-left: calc(20px + (100vw - 1280px) / 3000 * 20)
    }
    .calendars__item {
        margin-bottom: 9.453vw
    }
    .calendars__month {
        padding: .781vw 0;
        margin-bottom: 2.188vw;
        font-size: calc(14px + (100vw - 1280px) / 3000 * 14)
    }
    .calendars__month>a:after {
        bottom: -.391vw;
        left: .781vw;
        height: .078vw
    }
    .calendars__table {
        padding: 1.172vw .391vw;
        border-spacing: 1.016vw .313vw;
        border: 1px solid transparent
    }
    .calendars__table tr th {
        font-size: calc(14px + (100vw - 1280px) / 3000 * 14)
    }
    .calendars__table td {
        width: 2.344vw;
        height: 2.344vw
    }
    .calendars__table td.event {
        border: .078vw solid #fff
    }
    .calendars__table td.current:before {
        bottom: .078vw;
        width: .469vw;
        height: .469vw
    }
    .calendars [data-aos=show-border] {
        border: .078vw solid transparent
    }
    .calendars [data-aos=show-border].aos-animate {
        border: .078vw solid hsla(0, 0%, 100%, .3)
    }
    .calendars__date {
        font-size: calc(14px + (100vw - 1280px) / 3000 * 14)
    }
    .calendars__table td.event .calendars__event_second {
      border: 0.078vw solid #fff;
    }
}

@media (min-width:981px) and (max-width:1200px) {
    .calendars__table {
        border-spacing: 7px 4px
    }
}

@media (min-width:481px) and (max-width:1100px) {
    .calendars__month {
        margin-bottom: 5px
    }
    .calendars__item {
        margin-bottom: 41px;
        width: 49%
    }
    .calendars__item:nth-child(3n+3) {
        margin-right: 0
    }
    .calendars__item:nth-child(2n) {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-pack: end;
        justify-content: flex-end;
        margin-right: -2.6%
    }
    .calendars__item:nth-child(odd) {
        transition-delay: 0s!important
    }
    .calendars__item:nth-child(2n) {
        transition-delay: .15s!important
    }
    .calendars__table {
        margin-left: -1.5%
    }
}

@media (max-width:980px) {
    .year {
        top: -2px
    }
    .year__item,
    .year__selected,
    .year__switch {
        font-size: 20px
    }
    .year__switch {
        top: 21px
    }
}

@media (min-width:481px) and (max-width:700px) {
    .calendars__month {
        font-size: 12px
    }
    .calendars__table {
        border-spacing: 7px 4px
    }
    .calendars__table tr th {
        font-size: 13px
    }
    .calendars__table td {
        width: 20px;
        height: 20px
    }
    .calendars__table td.current:before {
        width: 4px;
        height: 4px
    }
    .calendars__date {
        font-size: 12px
    }
    .year__switch {
        margin: 30px 0;
        position: static
    }
}

@media (max-width:480px) {
    .year {
        top: 60px;
        right: unset;
        left: 50%;
        transform: translate(-50%)
    }
    .year__selected {
        display: none
    }
    .year__switch {
        margin-top: 50px;
        position: static;
        width: 100%;
        -ms-flex-pack: justify;
        justify-content: space-between;
        font-size: 20px
    }
    .year__prev {
        opacity: 1
    }
    .year__prev_wr {
        min-width: 61px
    }
    .year__prev:before {
        display: block
    }
    .year__next {
        margin-right: 17px;
        margin-left: 0;
        opacity: 1
    }
    .year__next_wr {
        min-width: 61px
    }
    .year__next:after {
        display: block
    }
    .year__curr {
        margin-left: 0
    }
    .calendars__item {
        width: 100%;
        margin-bottom: 21px;
        text-align: center;
        transition-delay: 0s!important
    }
    .calendars__item:first-child {
        margin-top: 60px
    }
    .calendars__month {
        margin-bottom: 22px
    }
    .calendars__table {
        margin: 0 auto
    }
}

@media (max-width:350px) {
    .year {
        top: 80px
    }
    .calendars__table {
        border-spacing: 7px 4px
    }
}

