/*
Theme Name: Isle of Man Marathon
Theme URI: https://www.figma.com/design/9Cyb9PYJEyYeOuStkahQof/isleofmanmarathon.com
Author: Andrii Solovienko
Author URI: mailto:muchatnik@gmail.com
Description: Isle of Man Marathon
Requires at least: 6.7
Tested up to: 6.7
Requires PHP: 7.2
Version: 1.0
Text Domain: isleofmanmarathon
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
/*@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');*/
html, body {
    min-height: 100vh;
    width: 100%;
    overflow-x: hidden;
}
body {
    padding: 0;
    margin: 0;
	font-family: 'Helvetica Neue', Helvetica, Arial, Sans-Serif;
	color: #121212;
	letter-spacing: 0em;
	font-size: 0;
}
header {
    position: fixed;
    width: 100%;
    box-sizing: border-box;
    padding: 20px 106px;
    background: #00A7DA;
    z-index: 103;
}
header > * {
	display: inline-block;
    vertical-align: middle;
}
header img.logo {
    margin-right: 33px;
}
nav {
	margin: 0 60px;
}
nav ul {
	display: block;
	margin: 0;
	padding: 0;
}
nav li {
	display: inline-block;
	margin: 0;
	padding: 0;
}
nav a, nav span, .nav > * {
	font-size: 20px;
	margin: 0;
	padding: 20px;
	text-transform: capitalize;
	text-decoration: none;
	color: #FFF;
}
nav li.active > a {
	text-decoration: underline;
}
nav span, nav a:hover {
	color: #121212;
}
.nav span, .nav a:hover {
	color: #00A7DA;
}
nav ul li {
	position: relative;
}
nav ul ul {
	display: none;
	position: absolute;
	top: 40px;
	left: 20px;
    border: 1px solid #00A7DA;
    border-top: none;
}
nav ul li:hover ul {
	display: block;
}
nav ul li ul li {
    background-color: #FFF;
}
nav ul li ul li > * {
    display: block;
	width: 170px;
    color: #000;
    text-decoration: none;
    border-top: 1px solid #00A7DA;
}
nav ul li ul li > span {
    color: #FFF;
    background-color: #00A7DA;
}
nav ul li ul li > a:hover {
	background-color: rgba(0, 167, 218, 0.05);
}
.mobile {
	display: none;
}
header .burger {
    padding: 20px;
	cursor: pointer;
}
header > .button-3 {
    margin: 26px 0;
	float: right;
}
main {
    min-height: calc(100vh - 692px);
    margin-top: 140px;
}
.blog main {
    min-height: calc(100vh - 332px);
}
.home main {
	margin-top: 0;
}
.container {
    width: 1228px;
    margin: 0 auto;
    padding: 120px 0;
}
div.left, div.right {
	display: inline-block;
	width: 50%;
	vertical-align: top;
	position: relative;
	box-sizing: border-box;
}
div.left {
	padding-right: 10px;
}
div.right {
	padding-left: 10px;
}
.button-1, .button-2, .button-3, .button-4 {
    display: inline-block;
	width: 227px;
	box-sizing: border-box;
	margin: 0;
	text-align: center;
    font-weight: 500;
    font-size: 15px;
    line-height: 47px;
    text-decoration: none;
}
.button-1 {
    color: #FFF;
    background-color: #00A7DA;
}
.button-2 {
    color: #00A7DA;
	outline: 2px solid #00A7DA;
    outline-offset: -2px;
}
.button-3 {
    color: #FFF;
    background-color: #000;
}
.button-4 {
    color: #121212;
	outline: 2px solid #121212;
    outline-offset: -2px;
}
.button-1:hover, .button-2:hover, .button-3:hover, .button-4:hover {
	background-color: #000;
	color: #FFF;
	outline: 2px solid #FFF;
    outline-offset: -2px;
}
.last-screen {
	position: relative;
	height: 360px;
    overflow: hidden;
    background-color: #000;
}
.last-screen video {
    position: absolute;
    left: 0;
    bottom: 0;
    min-width: 100%;
    opacity: 0.25;
    z-index: 0;
}
.last-screen > div {
    position: absolute;
	top: 123.5px;
	width: 100%;
	text-align: center;
}
.last-screen a {
	width: 227px;
	margin-top: 40px;
}
footer {
    background-color: #050505;
}
footer div {
    display: inline-block;
    text-align: center;
    vertical-align: middle;
}
footer > div {
    border-top: 1px solid #FFF;
}
footer div.logo {
    width: 20%;
    border-right: 1px solid #FFF;
    margin-right: -1px;
}
footer div.logo img {
    padding: 20px;
}
footer > div.menu {
    width: 80%;
}
footer > div.menu > div:first-child {
    width: 25%;
    border-right: 1px solid #FFF;
    margin-right: -1px;
}
footer > div.menu > div:first-child img {
    padding: 35.5px 0;
}
footer > div.menu > div:nth-child(2) {
    width: 75%;
}
.nav > * {
    padding: 48px 44px;
    white-space: nowrap;
}
footer > div.menu > div:nth-child(3) {
	width: 50%;
    border-top: 1px solid #FFF;
    margin-top: -2px;
    border-right: 1px solid #FFF;
    margin-right: -1px;
}
footer > div.menu > div:nth-child(3) a {
    display: inline-block;
	font-weight: 400;
	font-size: 16px;
	line-height: 16px;
	text-transform: capitalize;
	text-decoration: none;
	color: #8A8A8A;
}
footer > div.menu > div:nth-child(3) a:first-child {
	float: left;
	padding: 28px 0 28px 82px;
}
footer > div.menu > div:nth-child(3) a:last-child {
	float: right;
	padding: 28px 82px 28px 0;
}
footer > div.menu > div:nth-child(3) a:hover {
	color: #00A7DA;
}
footer > div.menu > div:last-child {
	width: 50%;
    border-top: 1px solid #FFF;
    margin-top: -1px;
}
footer > div.menu > div:last-child a {
    display: inline-block;
	color: #00A7DA;
}
footer > div.menu > div:last-child a {
    font-weight: 400;
    font-size: 20px;
    line-height: 14px;
    color: #00A7DA;
    vertical-align: middle;
	text-decoration: none;
}
footer > div.menu > div:last-child a:first-child {
	float: left;
	padding: 20px 0 20px 106px;
}
footer > div.menu > div:last-child a:last-child {
	float: right;
	padding: 29px 106px 29px 0;
}
footer > div.menu > div:last-child a:hover {
	text-decoration: underline;
}
.searchform label {
    position: relative;
}
.searchform label input {
	display: block;
	width: 100%;
    height: 65px;
	margin: 0;
	padding: 0 0 0 40px;
	box-sizing: border-box;
	font-family: inherit;
	font-weight: 700;
	font-size: 18px;
	color: #121212;
	border: none;
    background: transparent;
}
.searchform label input::placeholder {
	text-transform: uppercase;
	color: #B5EEFF;
}
.searchform label input:focus {
	border-color: #FFF;
	outline: none;
}
.searchform label input:focus::placeholder {
	color: #B5EEFF;
}
.searchform label img {
	position: absolute;
	display: block;
    padding: 18px 16px 21px 0;
    vertical-align: bottom;
	cursor: pointer;
}
.searchform label:focus-within img {
	filter: invert(100%) sepia(14%) saturate(626%) hue-rotate(69deg) brightness(112%) contrast(86%);
}
.home .searchform label:focus-within img {
	filter: invert(51%) sepia(49%) saturate(1008%) hue-rotate(151deg) brightness(96%) contrast(105%);
}
header .searchform label {
    display: block;
    width: 24px;
    overflow: hidden;
}
header .searchform label:focus-within {
    width: fit-content;
}
header .searchform label input:focus {
	border-bottom: 2px solid #FFF;
}
.home header .burger:hover, .home header .searchform img:hover, .home nav .burger:hover, .time-and-place > div.right > div.active > span:before, .last-result:after {
    filter: invert(51%) sepia(49%) saturate(1008%) hue-rotate(151deg) brightness(96%) contrast(105%);
}
.home header .burger:target {
    filter: none;
}
header .burger:hover, header .searchform img:hover {
	filter: invert(100%);
}
.container.title {
	padding: 0 0 120px 0;
}
.container.title > ul {
	display: block;
	margin: 0;
	padding: 0;
}
.container.title > ul > li {
	position: relative;
	display: inline-block;
}
.container.title > ul > li:before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    margin: 0 2px 0 -5px;
    border-top: 2px solid #888888;
    border-right: 2px solid #888888;
    transform: rotate(45deg);
}
.container.title > ul > li:first-child {
	margin-left: -15px;
}
.container.title > ul > li:first-child:before {
	display: none;
}
.container.title > ul > li span {
    display: inline-block;
    margin: 0;
    padding: 20px 15px;
    font-weight: 500;
    font-size: 14px;
    line-height: 24px;
}
.container.title > ul > li > span {
	color: #00A7DA;
}
.container.title > ul > li > a {
	text-decoration: none;
	color: #252B42;
}
.container.title > ul > li > a:hover {
	color: #00A7DA;
}
.container.title h1 {
    position: relative;
    font-weight: 700;
    font-size: 48px;
    line-height: 53px;
    text-transform: uppercase;
    color: #00A7DA;
    margin: 140px 0 110px 0;
}
.container.title h1 span {
    text-transform: none;
}
.container.title:before {
    content: attr(data-title);
    display: block;
    position: absolute;
    left: 0;
    top: 121px;
    width: 100%;
    height: 100vh;
    font-size: 230px;
    line-height: 210px;
    font-weight: 700;
    text-transform: uppercase;
    z-index: -1;
    color: rgba(18, 18, 18, 0.02);
    overflow: hidden;
}
.container.text {
	padding-top: 0;
}
/* Common END */

/* Home BEGIN */
.home {
	background-color: #00A7DA;
}
.home header {
    background: linear-gradient(rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0));
}
.home header.opened {
	background: rgba(0, 0, 0, 0.7);
}
.home header nav span, .home header nav a:hover {
	color: #00A7DA;
}
.first-screen {
	position: relative;
    width: 100%;
    height: calc(100 * var(--vh, 1vh));
    overflow: hidden;
    background-color: #000;
}
.first-screen video {
    width: 100%;
    height: 100%;
    min-width: 100vw;
    min-height: calc(100 * var(--vh, 1vh));
    object-fit: cover;
    opacity: 0.6;
    z-index: 0;
}
.lead {
	position: absolute;
	left: 106px;
	bottom: 100px;
	width: 600px;
	z-index: 1;
}
.lead h1 {
	margin: 0 0 60px 0;
	font-weight: 700;
	font-size: 60px;
	line-height: 1.1em;
	text-transform: uppercase;
	color: #FFF;
}
.lead a {
	width: fit-content;
	padding: 26px 46.5px;
	font-size: 30px;
    line-height: 1em;
}
.banner {
    position: absolute;
    top: calc(-4 * var(--vh, 1vh));
    right: calc(-36 * var(--vh, 1vh));
    width: calc(158 * var(--vh, 1vh));
    font-size: calc(45 * var(--vh, 1vh));
    line-height: calc(35 * var(--vh, 1vh));
    font-weight: 900;
    color: #00A7DA;
    text-transform: uppercase;
    transform: skewX(-31.7deg) scale(0.5, 1);
}
/*
.banner {
    position: absolute;
    top: 1.2vh;
    right: -69vh;
    width: 158vh;
    font-size: 43.8vh;
    line-height: 34vh;
    font-weight: 900;
    color: #00A7DA;
    text-transform: uppercase;
    transform: skewX(-31.7deg) scale(0.9, 1);
}
*/
.banner div {
    display: inline-block;
	vertical-align: top;
}
.banner span {
    display: block;
    white-space: nowrap;
}
.banner span:first-child {
	z-index: 1;
}
.banner > span > div {
    padding-top: calc(2 * var(--vh, 1vh));
    margin: calc(0.5 * var(--vh, 1vh)) -122px 0 calc(8 * var(--vh, 1vh));
}
.banner > span > div:first-child {
    margin: 0;
	padding: 0;
}
.banner > span > img {
    display: inline-block;
    width: calc(13 * var(--vh, 1vh));
    height: calc(15 * var(--vh, 1vh));
    transform: skewX(231.7deg) scale(2, 1);
    vertical-align: top;
    margin: calc(2.8 * var(--vh, 1vh)) calc(-24 * var(--vh, 1vh)) 0 calc(-1 * var(--vh, 1vh));
}
.banner > span > div > span {
    font-size: calc(10 * var(--vh, 1vh));
    line-height: calc(7.6 * var(--vh, 1vh));
    color: #FFF;
}
.banner > span > div > span > div {
    padding-top: calc(1.2 * var(--vh, 1vh));
    margin: calc(-0.9 * var(--vh, 1vh)) 0 calc(-0.2 * var(--vh, 1vh)) calc(-3 * var(--vh, 1vh));
}
.banner > span > div > span > div:first-child {
    margin: 0;
	padding: 0;
}
.banner > span > div > span > div > span {
    font-size: calc(4.6 * var(--vh, 1vh));
    line-height: calc(3.8 * var(--vh, 1vh));
    color: #00A7DA;
}
/*.first-screen > img {
    position: absolute;
    right: calc(38.5 * var(--vh, 1vh));
    bottom: calc(14.5 * var(--vh, 1vh));
    width: calc(13 * var(--vh, 1vh));
    height: calc(20 * var(--vh, 1vh));
}*/
.pattern {
	position: relative;
	background-color: transparent;
}
.pattern:before, .pattern:after {
    content: "";
    display: block;
	position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}
.pattern:after {
    background-image: url(assets/svg/pattern.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 120%;
}
.pattern.separator {
    height: 152px;
}
.pattern.wrapper:after {
    opacity: 0.2;
    background-color: rgba(255, 255, 255, 0.5);
}
.home h3, .last-screen h3 {
	margin: 0;
	font-weight: 700;
	font-size: 36px;
    line-height: 25px;
	text-transform: uppercase;
	color: #FFF;
}
.home .time-and-place {
	margin-top: 60px;
}
.home .time-and-place * {
	margin: 0;
	padding: 0;
}
.home .time-and-place div.left, .home .time-and-place div.right {
	padding: 0;
}
.home .time-and-place h4 {
	font-weight: 700;
	font-size: 58px;
    line-height: 43px;
	text-transform: uppercase;
}
.home .time-and-place > div.left h4 {
	padding: 40px 0;
	border-top: 2px solid #FFF;
	border-bottom: 2px solid #FFF;
}
div.left img.background {
	position: absolute;
	width: 100%;
	z-index: -1;
}
.home .time-and-place > div.right > div {
	border: 2px solid #FFF;
	padding: 55px 40px;
}
.home .time-and-place > div.right > div:hover {
	background-color: rgba(255, 255, 255, 0.1);
}
.home .time-and-place p {
	margin: 45px 0 15px 0;
	font-family: Inter, system-ui;
	font-weight: 800;
	font-size: 40px;
	line-height: 40px;
	text-transform: uppercase;
}
.home .time-and-place span {
	font-family: Inter;
	font-weight: 500;
	font-size: 30px;
	line-height: 33px;
}
.home .time-and-place span:before {
	content: '';
	display: inline-block;
	margin-right: 13px;
	width: 22px;
	height: 22px;
	vertical-align: baseline;
	background-image: url(assets/svg/location.svg);
	background-position: center;
	background-repeat: no-repeat;
}
.home .time-and-place > div.right > div {
	color: #FFF;
	cursor: pointer;
}
.home .time-and-place > div.right > div > p {
    width: fit-content;
    padding: 1px 5px 0;
	color: #00A7DA;
	background-color: #FFF;
}
.home .time-and-place > div.right > div.active {
	color: #00A7DA;
	background-color: #FFF;
	cursor: default;
}
.home .time-and-place > div.right > div.active > p {
	color: #FFF;
	background-color: #00A7DA;
}
.home .time-and-place > div.right > a {
	width: fit-content;
    margin: 55px 0 0 0;
    padding: 0 40.5px;
}
.home .time-and-place > div.right > a:before {
    content: '';
    display: inline-block;
    margin-right: 10px;
    width: 21px;
    height: 15px;
    vertical-align: text-bottom;
    background-image: url(assets/svg/arrow.svg);
    background-position: center;
    background-repeat: no-repeat;
}
.wrapper.pattern > div > div.left {
    font-size: 16px;
    line-height: 22px;
}
.wrapper.pattern > div > div h3 {
	margin-bottom: 60px;
}
.wrapper.pattern > div > div p {
    margin: 20px 20px 0 0;
}
.wrapper.pattern > div > div > img {
    width: 100%;
	height: auto;
    margin: -40px 0;
    box-sizing: border-box;
}
.last-result:before {
    background-color: #121212;
}
.last-result:after {
    background-size: 350%;
	opacity: 0.15;
}
.last-result .left, .last-result .right {
	vertical-align: middle;
}
.last-result img {
    display: block;
    margin: -55px auto 0 auto;
    height: 355px;
}
.last-result .right {
    padding-right: 130px;
    box-sizing: border-box;
}
.last-result h3 {
	margin-bottom: 40px;
}
.last-result a {
	width: calc(50% - 10px);
}
.last-result a:last-child {
	margin-left: 20px;
}
.wrapper.gallery {
	position: relative;
    background-color: #121212;
}
.wrapper.gallery h3 {
	margin-bottom: 80px;
}
.wrapper.gallery > div {
	position: relative;
}
.wrapper.gallery > div.shade {
    position: absolute;
    bottom: 121px;
    right: 0;
    width: calc(50vw - 514px);
    height: 942px;
    background: linear-gradient(to left, rgba(18, 18, 18, 1), rgba(18, 18, 18, 0));
}
.wrapper.gallery > div.shade.left {
    left: 0;
    background: linear-gradient(to right, rgba(18, 18, 18, 1), rgba(18, 18, 18, 0));
}
.wrapper.gallery > div > div {
    width: 100%;
    white-space: nowrap;
    box-sizing: border-box;
    margin: -1px;
}
.wrapper.gallery > div > div:nth-child(3) {
    padding-left: 315px;
    margin-top: 1px;
}
.wrapper.gallery > div > div.pattern {
    position: relative;
    width: 317px;
    height: 474px;
    position: absolute;
    left: -1px;
    bottom: 119px;
    background-color: #121212;
    overflow: hidden;
    border: 2px solid #121212;
}
.wrapper.gallery > div > div.pattern:before {
    background-color: rgba(18, 18, 18, 0.9);
    z-index: 2;
}
.wrapper.gallery > div > div.pattern:after {
    left: -689%;
    width: 800%;
    z-index: 1;
}
.wrapper.gallery > div > div.pattern > div {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 40px;
	box-sizing: border-box;
    z-index: 3;
}
.wrapper.gallery > div > div.pattern p {
	font-size: 20px;
	line-height: 24px;
	color: #FFF;
}
.wrapper.gallery > div > div.pattern a {
	width: 100%;
}
.wrapper.gallery > div > div.arrow {
    position: absolute;
    bottom: 559px;
    width: 64px;
    height: 64px;
	z-index: 4;
	cursor: pointer;
}
.wrapper.gallery > div > div.arrow:before {
	content: "";
	display: block;
	width: 48px;
	height: 48px;
	margin: 8px;
	background-color: #00A7DA;
	border-radius: 24px;
}
.wrapper.gallery > div > div.arrow:after {
    content: "";
    display: block;
    width: 18px;
    height: 18px;
    margin: -43px 0 0 26px;
    border-top: 4px solid #FFF;
    border-right: 4px solid #FFF;
    transform: rotate(225deg);
}
.wrapper.gallery > div > div.right:after {
    transform: rotate(45deg);
    margin-left: 16px;
}
.wrapper.gallery > div > div.arrow.left {
    left: -112px;
}
.wrapper.gallery > div > div.arrow.right {
    right: -112px;
}
.wrapper.gallery > div > div.arrow:hover:before {
	background-color: #000;
}
.wrapper.gallery img {
	display: inline-block;
	width: 313px;
	height: 470px;
    object-fit: cover;
    margin: 1px;
}
.wrapper.gallery img.double {
	width: 708px;
	height: 470px;
}
/* Home end */

/* Gallery begin */
#bwg_container1_0 #bwg_container2_0 .bwg-container-0.bwg-album-thumbnails {
    width: 1252px !important;
    padding-left: 20px !important;
    padding-top: 20px !important;
}
#bwg_container1_0 #bwg_container2_0 .bwg-container-0.bwg-album-thumbnails .bwg-item a {
    margin-right: 20px !important;
    margin-bottom: 20px !important;
	position: relative;
}
#bwg_container1_0 #bwg_container2_0 .bwg-container-0.bwg-album-thumbnails .bwg-title2 {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 10px 16px !important;
    font-family: inherit !important;
    font-weight: 700 !important;
    font-size: 32px !important;
    line-height: 1.1em;
    text-transform: uppercase;
    color: #FFF !important;
    background: #00A7DA;
    z-index: 102;
}
#bwg_container1_0 #bwg_container2_0 .bwg-container-0.bwg-masonry-thumbnails .bwg-item, #bwg_container1_0 #bwg_container2_0 .bwg-container-temp0.bwg-masonry-thumbnails .bwg-item {
    padding: calc(20px / 2) !important;
}
#bwg_container1_0 #bwg_container2_0 .bwg_masonry_thumbnails_0 {
	width: 1248px !important;
}
#bwg_container1_0 #bwg_container2_0 .bwg_back_0 {
	display: none !important;
}
#bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 {
	margin: 70px auto 0 auto !important;
}
.bwg_load_more_ajax_loading {
	display: none !important;
}
#bwg_load_0 {
	font-size: 0 !important;
}
#bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a {
    display: inline-block;
	width: 227px !important;
	margin: 0 10px !important;
	text-align: center;
    font-weight: 500;
    font-size: 15px !important;
	font-family: 'Helvetica Neue', Helvetica, Arial, Sans-Serif !important;
    line-height: 47px;
    text-decoration: none;
    color: #FFF !important;
    background-color: #121212 !important;
	border: none !important;
	transition: none !important;
}
#bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a:first-child {
    background-color: transparent !important;
    color: #121212 !important;
	outline: 2px solid #121212;
    outline-offset: -2px;
}
#bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a:hover {
    color: #FFF !important;
	border: none !important;
	background-color: #00A7DA !important;
	outline: none;
    outline-offset: 0;
}
.bwg_load_more_ajax_loading {
	display: none !important;
}
.bwg_load_more_ajax_loading.bwg-hidden {
    padding-top: 0;
}
/* Gallery end */

/* Results begin */
.results div {
	margin-top: 30px;
	padding: 30px 0;
	border-top: 1px solid #00A7DA;
    text-align: right;
    line-height: 40px;
}
.results div span {
    font-weight: 700;
    font-size: 36px;
    color: #00A7DA;
    float: left;
}
.results div a {
    display: inline-block;
    margin-left: 60px;
    font-size: 24px;
    color: #121212;
}
.results div a:hover {
	text-decoration: underline;
	color: #003DDA;
}
/* Results end */

/* Contact begin */
.wp-block-contact-form-7-contact-form-selector .left, .wp-block-contact-form-7-contact-form-selector .right {
	font-size: 24px;
	line-height: 31px;
}
.wp-block-contact-form-7-contact-form-selector input, .wp-block-contact-form-7-contact-form-selector textarea {
    width: 100%;
	padding: 0;
	font-size: 18px;
	line-height: 23px;
	border: none;
	border-bottom: 1px solid #121212;
}
.wp-block-contact-form-7-contact-form-selector textarea {
	height: 89px;
    font-family: inherit;
}
.wp-block-contact-form-7-contact-form-selector .left {
	padding-right: 20px;
	box-sizing: border-box;
}
.wp-block-contact-form-7-contact-form-selector .right p {
	margin: 20px 0;
    line-height: 12px;
}
.wp-block-contact-form-7-contact-form-selector input:focus, .wp-block-contact-form-7-contact-form-selector textarea:focus {
	border-color: #00A7DA;
	outline: none;
}
.wpcf7 .wpcf7-response-output {
    margin: 5px 0 0 0 !important;
    padding: 20px 30px !important;
    font-size: 14px;
    line-height: 18px;
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
    color: #FF3F47;
    border-color: #FF3F47;
}
.wp-block-contact-form-7-contact-form-selector label {
	font-size: 14px;
	line-height: 18px;
	color: #888888;
}
.wpcf7-not-valid-tip {
	font-size: 14px;
	line-height: 18px;
	color: #FF3F47;
}
.wp-block-contact-form-7-contact-form-selector input.wpcf7-submit {
	width: 227px;
    padding: 12px;
    border: none;
	cursor: pointer;
}
/* Contact end */

/* Race begin */
.page-template-page-race .container.title h1 {
    margin-bottom: 10px;
}
.race > a {
    display: block;
    font-size: 24px;
    line-height: 47px;
    color: #121212;
    text-decoration: none;
}
.race > a:hover {
    text-decoration: underline;
}
.race > a:before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    margin: 0 12px 3px -4px;
    border-top: 2px solid #121212;
    border-right: 2px solid #121212;
    transform: rotate(45deg);
}
.block {
    border-top: 1px solid #00A7DA;
    margin-top: 80px;
    scroll-margin-top: 138px;
	position: relative;
}
.race > div#description, .race > div#program {
    margin-top: 120px;
    scroll-margin-top: 139px;
}
#program.block div.right h2 {
    margin-top: 0;
}
#program > div {
	padding-top: 56px;
}
#program > div:first-child {
	padding-top: 0;
}
#program.block > div:first-child > div.right > h2 {
	margin-top: 56px;
}
.block div.left p {
	margin-top: 30px;
	font-weight: 700;
	font-size: 14px;
	line-height: 14px;
	letter-spacing: 0%;
	text-transform: uppercase;
	color: #00A7DA;
}
.block div.left p span, .block div.left p a {
	margin-right: 48px;
	text-transform: none;
}
.block div.left p a {
	color: inherit;
}
.block div.left p a:hover {
	color: #121212;
}
.block div.right h2 {
	margin: 30px 0 50px 0;
	font-weight: 700;
	font-size: 36px;
	line-height: 40px;
	text-transform: uppercase;
    color: #121212;
}
.block div.right h3 {
	font-weight: 700;
	font-size: 20px;
	line-height: 22px;
	text-transform: uppercase;
	color: #00A7DA;
}
.block div.right, .block div.right p {
	font-weight: 400;
	font-size: 18px;
	line-height: 23px;
}
.block div.right a {
	color: #003DDA;
}
.block div.right a:hover {
	color: #00A7DA;
}
.block div.right em {
    display: block;
    margin: -5px 0;
	font-weight: 400;
	font-style: italic;
	font-size: 16px;
	line-height: 22px;
	color: #888888;
}
.block div.right img {
	display: block;
	width: 100%;
	margin: 56px 0;
}
.block div.right img.left {
	position: absolute;
	right: 100%;
	margin: 0;
	padding-right: 10px;
    box-sizing: border-box;
}
#register a.button-1 {
    display: block;
    margin: 50px 0 0 0;
	color: #FFF;
	text-decoration: underline;
}
#register.container.title p {
	font-size: 24px;
	line-height: 31px;
}
/* Race end */

/* News begin */
.container.title.news > img {
	margin-top: 140px;
}
.container.title.news h1 {
	margin-top: 80px;
	margin-bottom: 56px;
}
.news .searchform label img {
    padding: 22px 16px 22px 0;
	filter: invert(23%) sepia(9%) saturate(1411%) hue-rotate(148deg) brightness(91%) contrast(91%);
    z-index: -1;
}
.news .searchform label:focus-within img {
	filter: invert(51%) sepia(49%) saturate(1008%) hue-rotate(151deg) brightness(96%) contrast(105%);
}
.news .searchform label input {
    height: 70px;
	font-size: 20px;
	border-bottom: 2px solid #7CBDD1;
}
.news .searchform label input:focus {
	border-color: #00A7DA;
}
.news .searchform label input::placeholder {
	color: #7CBDD1;
}
.news p.count {
    margin: 56px 0 0 0;
    font-weight: 700;
    font-size: 20px;
    line-height: 22px;
    text-transform: uppercase;
}
.news .items {
	margin: 28px -10px;
}
.news .items > a {
    display: inline-block;
	width: 396px;
	margin: 28px 10px;
	vertical-align: top;
	text-decoration: none;
	color: #121212;
	border-radius: 2px 2px 0 0;
    outline: 1px solid rgba(25, 117, 144, 0.1);
    outline-offset: -1px;
}
.news .items > a > img {
	border-radius: 2px;
}
.news .items > a > span {
    display: block;
    height: 132px;
    margin: 0 16px;
    font-size: 18px;
    line-height: 23px;
    overflow: hidden;
}
.news .items > a > span.date {
    height: auto;
    margin: 24px 16px 24px 16px;
    font-weight: 700;
    font-size: 20px;
    line-height: 22px;
    color: #00A7DA;
}
.news .items > a > span > strong {
	margin: 16px 0;
	font-weight: 700;
	text-transform: uppercase;
}
.news .items > a > em {
    display: block;
    margin: 24px 16px 24px 16px;
    font-weight: 400;
    font-size: 16px;
    line-height: 22px;
    color: #888888;
    font-style: normal;
}
.news .items > a:hover {
    background-color: rgba(25, 117, 144, 0.05);
}
.news .items > a:hover em {
    color: #00A7DA;
}
.navigation {
	text-align: center;
}
.navigation > a {
	margin: 0 10px;
}
/* News end */

/* Author begin */
.author .block {
    clear: both;
}
.author .block img.avatar {
    float: left;
	margin: 56px 48px 56px 0;
}
.author.container.title h1 {
    font-size: 36px;
    line-height: 40px;
    margin: 56px 0 28px 0;
}
.author .block p {
	font-weight: 400;
	font-size: 18px;
	line-height: 23px;
}
.author h2 {
    margin: 56px 0 0 0;
	font-weight: 700;
	font-size: 36px;
	line-height: 40px;
	text-transform: uppercase;
}
/* Author end */

/* 404 Begin */
.page-not-found > img {
	display: block;
	margin: 140px auto 0 auto;
}
.page-not-found > a {
    width: 475px;
    display: block;
    margin: 20px auto;
    font-size: 14px;
    line-height: 40px;
    font-weight: 500;
    color: #00A7DA;
    text-decoration: none;
}
.page-not-found > a:before {
    content: '';
    display: inline-block;
    margin-right: 10px;
    width: 21px;
    height: 15px;
    vertical-align: text-bottom;
    background-image: url(assets/svg/arrow.svg);
    background-position: center;
    background-repeat: no-repeat;
    filter: invert(51%) sepia(49%) saturate(1008%) hue-rotate(151deg) brightness(96%) contrast(105%);
}
.page-not-found > a:hover {
	color: #121212;
}
.page-not-found > a:hover:before {
    filter: invert(100%);
}
/* 404 End */

@media screen and (max-width: 1659px) {
	header {
		padding: 16px 24px;
	}
	header img.logo {
        width: auto;
		height: 67px;
		margin: 0 16px 0 0;
	}
    .mobile {
        display: block;
        position: absolute;
        left: 50%;
        top: 50%;
        margin: -32px 0 0 -32.5px;
    }
    header nav {
        display: none;
        position: absolute;
        left: 0;
        top: 99px;
        width: 100%;
        height: 100vh;
        margin: 0;
        padding: 60px 0;
        background-color: #00A7DA;
    }
	.home header nav {
        background-color: rgba(0, 0, 0, 0.7);
	}
	header nav ul {
		width: fit-content;
		margin: auto;
	}
	header nav ul li {
		display: block;
	}
	header nav a, header nav span {
		display: block;
		padding: 28px;
		font-size: 24px;
        line-height: 18px;
		text-align: center;
	}
	header nav ul ul {
		left: 100%;
		top: 0;
	}
	nav ul li:hover ul {
		display: none;
	}
	header nav.active {
        display: block;
	}
	header .searchform {
        float: right;
        margin: 1px 11px;
	}
	header > .button-3 {
		margin: 10px 0;
	}
	main {
		margin-top: 99px;
	}
	.lead {
		left: 24px;
		bottom: 80px;
		width: 370px;
	}
	.lead h1 {
		font-size: 40px;
		margin: 0 0 40px 0;
	}
	.lead a {
		padding: 16px 62.5px;
		font-size: 16px;
	}
	.pattern.separator {
		height: 94px;
	}
	.pattern:after {
		background-size: 110%;
	}
	.container {
		width: calc(100% - 48px);
		box-sizing: border-box;
		padding: 88px 0;
	}
	.container.title {
		padding-bottom: 96px;
	}
	.container.title h1 {
		margin-top: 88px;
		margin-bottom: 80px;
	}
	.container.title:before {
		top: 86px;
		font-size: 178px;
		line-height: 158px;
	}
	.race > div#description, .race > div#program {
		scroll-margin-top: 79px;
		margin-top: 80px;
	}
	.block {
		scroll-margin-top: 78px;
	}
	.block div.right h2 {
		margin: 24px 0 40px 0;
	}
	.home .time-and-place > div.left h4 {
		font-size: 48px;
	}
	.home .time-and-place > div.right h4 {
		font-size: 40px;
	}
	.last-result .right {
		padding-right: 83px;
	}
	.last-result img {
		width: 100%;
		height: auto;
		padding: 0 40px;
		box-sizing: border-box;
	}
	.wrapper.gallery img {
		width: 232px;
		height: 348px;
	}
	.wrapper.gallery img.double {
		width: 522px;
		height: 348px;
	}
	.wrapper.gallery > div > div:nth-child(3) {
		padding-left: 230px;
	}
	.wrapper.gallery > div > div.pattern {
		width: 232px;
		height: 352px;
		left: 23px;
		bottom: 87px;
	}
	.wrapper.gallery > div > div.pattern p {
		font-size: 16px;
	}
	.wrapper.gallery > div.shade {
		bottom: 88px;
		width: 309px;
		height: 698px;
	}
	.wrapper.gallery > div > div.arrow {
		bottom: 406px;
	}
	.wrapper.gallery > div > div.arrow.left {
		left: 80px;
	}
	.wrapper.gallery > div > div.arrow.right {
		right: 80px;
	}
	.last-screen {
		height: 260px;
	}
	.last-screen > div {
		top: 76px;
	}
	.home h3, .last-screen h3 {
		font-size: 36px;
	}
    footer div.logo img {
        width: auto;
        height: 144px;
        padding: 22px;
        box-sizing: border-box;
	}
	footer > div.menu > div:first-child img {
		padding: 11px 0;
        max-width: calc(100% - 44px);
	}
	.nav > * {
		font-size: 16px;
		padding: 20px;
	}
	footer > div.menu > div:nth-child(3) {
		margin-top: -3px;
	}
	footer > div.menu > div:nth-child(3) a, footer > div.menu > div:last-child a {
		font-size: 14px;
	}
	.page-not-found > img {
		margin-top: 88px;
	}
	.news .items > a {
		width: calc(33.3333% - 20px);
	}
	.news .items > a > img {
		width: 100%;
	}
}

@media screen and (max-width: 1023px) {
	header {
		padding: 16px;
	}
	header nav {
		padding-top: 138px;
	}
	header .searchform {
		display: none;
	}
	header.opened .searchform {
		width: 100%;
		margin: 0;
		padding: 0;
		box-sizing: border-box;
		position: absolute;
		top: 146px;
		left: 0;
		display: block;
		text-align: center;
	}
	header .searchform label {
		display: inline-block;
	}
    .mobile {
        display: inline-block;
        position: static;
        margin: 0 -16px 0 -16px;
        float: right;
    }
	header > .button-3 {
		display: none;
	}
	.banner {
		display: none;
	}
	.first-screen > img {
		display: none;
	}
	.lead {
		left: 16px;
		bottom: 40px;
		width: calc(100% - 32px);
	}
	.lead h1 {
		font-size: 36px;
	}
	.lead a {
		width: 100%;
	}
	.pattern.separator {
		height: 68px;
	}
	.pattern:after {
        background-size: 800%;
	}
	.container {
        padding: 80px 16px;
    }
	div.left, div.right {
		display: block;
		width: 100%;
		padding: 0;
	}
	.home h3, .last-screen h3 {
		font-size: 24px;
	}
	.home .time-and-place {
		margin-top: 32px;
	}
	.home .time-and-place > div.right {
		position: relative;
		padding-top: 100px;
	}
    .home .time-and-place > div.right > a {
        position: absolute;
        top: 16px;
        width: 100%;
        margin: 0;
    }
	.home .time-and-place > div.right > div {
		padding: 24px 16px;
	}
    .home .time-and-place h4 {
        padding: 0;
        font-size: 32px;
    }
	.home .time-and-place p {
		margin: 24px 0 21px 0;
		font-size: 24px;
		line-height: 1.1em;
	}
	.home .time-and-place span {
		font-size: 20px;
		line-height: 1.1em;
	}
	.pattern .container {
        padding: 48px 16px;
    }
	.wrapper.pattern > div > div h3 {
		margin-bottom: 32px;
	}
	.wrapper.pattern > div > div p {
		margin: 4px 0 0 0;
	}
	.wrapper.pattern > div > div > img {
		margin: 16px 0 0 0;
	}
	.pattern.last-result:after {
        background-size: 600%;
	}
	.last-result .left {
        padding-top: 220px;
	}
	.last-result .right {
		position: absolute;
		width: calc(100% - 32px);
		padding: 0;
		top: 24px;
		left: 16px;
	}
    .last-result h3 {
        margin: 16px 0 28px 0;
    }
	.last-result a {
		display: block;
		width: 100%;
		margin: 16px 0 0 0;
	}
	.last-result a:last-child {
		margin: 16px 0 0 0 ;
	}
	.last-result img {
        width: calc(100% + 24px);
        margin: 0 -12px;
        padding: 0;
    }
	.wrapper.gallery h3 {
		margin-bottom: 32px;
	}
	.wrapper.gallery > div > div.arrow, .wrapper.gallery > div.shade {
		display: none;
	}
	.wrapper.gallery > div > div {
		white-space: normal;
	}
	.wrapper.gallery img, .wrapper.gallery img.double {
        width: 100%;
        height: auto;
    }
	.wrapper.gallery > div > div:nth-child(3) {
		padding: 0;
	}
    .wrapper.gallery > div > div.pattern {
        position: relative;
        left: 0;
        top: 2px;
        width: 100%;
        height: 228px;
        border: none;
    }
	.wrapper.gallery > div > div.pattern:after {
		left: 0;
		top: 0;
	}
	.wrapper.gallery > div > div.pattern > div {
		padding: 16px;
	}
	footer {
		position: relative;
        padding-bottom: 300px;
        overflow: hidden;
	}
	.last-screen {
        height: 458px;
    }
	.last-screen > div {
        top: 173px;
    }
	footer > div {
		border-top: none;
	}
	footer div.logo {
		width: 50%;
		border: none;
	}
	footer div.logo:before {
		content: "";
		position: absolute;
		bottom: 680px;
		display: block;
		width: 100%;
		border-top: 1px solid #FFF;
	}
	footer > div.menu {
		width: 50%;
	}
    footer > div.menu > div:first-child, footer > div.menu > div:nth-child(3), footer > div.menu > div:last-child {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 100px;
        border-top: 1px solid #FFF;
        box-sizing: border-box;
        border-right: none;
    }
	footer > div.menu > div:first-child img {
        height: 100px;
		padding: 32px;
		box-sizing: border-box;
	}
	footer > div.menu > div:nth-child(3) {
		bottom: 100px;
        padding: 18px 0;
	}
	footer > div.menu > div:last-child {
		bottom: 200px;
        text-align: center;
        padding: 7px 0;
	}
	footer > div.menu > div:nth-child(2) {
		width: 100%;
        border-left: 1px solid #FFF;
	}
	footer > div.menu > div:last-child a:first-child, footer > div.menu > div:last-child a:last-child, footer > div.menu > div:nth-child(3) a:first-child, footer > div.menu > div:nth-child(3) a:last-child {
		padding: 24px;
		float: none;
	}
	.nav {
		padding: 20px 0;
	}
	.nav > * {
		display: block;
		width: 100%;
		padding: 20px 16px;
		box-sizing: border-box;
        font-size: 24px;
        text-align: left;
	}
	.news .items > a {
		width: calc(100% - 20px);
	}
	.container.title.news > img {
		width: 100%;
		margin-top: 88px;
	}
	.container.title.news h1 {
		margin-top: 48px;
		margin-bottom: 0;
	}
	.block div.right img.left {
		position: static;
	}
	.author .block img.avatar {
		width: 100%;
		height: auto;
		margin: 40px 0 24px 0;
	}
	#program > div {
		position: relative;
	}
	#program > div > div.left {
		position: absolute;
		top: 120px;
	}
	#program > div > div.right > h2 {
		margin-bottom: 70vw;
	}
	#program > div:first-child {
		position: static;
	}
	#program > div:first-child > div.left {
		position: static;
	}
	#program.block > div:first-child > div.right > h2 {
		margin-bottom: 40px;
	}
	.block div.right h2 {
        margin: 56px 0 32px 0;
    }
	.block div.left p {
        margin-bottom: -40px;
	}
	.results div span {
		font-size: 24px;
	}
	.results div a {
		font-size: 16px;
	}
	.results div {
		margin-top: 0;
		padding: 24px 0;
	}
	.container.title h1 {
		font-size: 40px;
		margin: 64px 0 80px 0;
	}
	.container.title:before {
        top: 89px;
        font-size: 57px;
        line-height: 1.1em;
	}
	.news .block div.left p {
        margin: 16px 0 24px 0;
    }
	.news .block div.left p > * {
		display: block;
		margin: 8px 0;
    }
}