.Tag {display: inline-flex; align-items: center; padding: 10px 21px; border: 1px solid var(--font-color); border-radius: 999px; background: var(--yellow); color: var(--font-color); font-size: 23.47px; font-weight: 700; line-height: 34px;}

:root {
	--interaction-duration: 180ms;
	--interaction-easing: cubic-bezier(0.2, 0.65, 0.3, 1);
	--interaction-distance: 3px;
	--interaction-image-scale: 1.025;
}

.Button, .ButtonInverse {transition: background-color var(--interaction-duration) ease, color var(--interaction-duration) ease;}
.Button svg, .ButtonInverse svg {transition: transform var(--interaction-duration) var(--interaction-easing);}
.SlidingUnderline, .ArticleBack, .Text a:not(.Button, .ButtonInverse) {transition: background-size var(--interaction-duration) var(--interaction-easing);}

@media (hover: hover) {
	:is(.Button, .ButtonInverse):hover {background: var(--yellow); color: var(--font-color); text-decoration: none;}
	:is(.Button, .ButtonInverse):hover svg {transform: translateX(var(--interaction-distance));}
	.SlidingUnderline:hover, .ArticleBack:hover, .Text a:not(.Button, .ButtonInverse):hover {background-size: 100% 2px;}
}

:is(.Button, .ButtonInverse):focus-visible {background: var(--yellow); color: var(--font-color); outline: 2px solid var(--font-color); outline-offset: 3px;}
:is(.Button, .ButtonInverse):focus-visible svg {transform: translateX(var(--interaction-distance));}
.SlidingUnderline:focus-visible, .ArticleBack:focus-visible, .Text a:not(.Button, .ButtonInverse):focus-visible {background-size: 100% 2px; outline: 2px solid var(--font-color); outline-offset: 3px;}
:is(.Button, .ButtonInverse):active {background: var(--purple); color: var(--font-color);}

@media (prefers-reduced-motion: reduce) {
	:root {--interaction-duration: 0ms; --interaction-distance: 0px; --interaction-image-scale: 1;}
}
.SiteFooter > .Container {margin-left: auto; margin-right: auto;}
.FooterBottom a {display: inline-flex; align-items: center; min-height: 44px; color: var(--font-color); text-decoration: none;}
.SiteFooter {padding: 48px 0 20px; background: var(--bg-color);}
.FooterLogos {display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 32px; padding-bottom: 32px;}
.FooterLogos img {display: block; max-width: 100%; object-fit: contain;}
.FooterLogo {flex: 0 1 180px;}
.FooterLogo a {display: block;}
.FooterLogo img {width: auto; height: auto; max-height: 68px;}
.FooterProjectLogo {flex-basis: 271px;}
.FooterBottom {display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--gray); padding-top: 12px; font-size: 13px;}
.FooterBottom small {font-size: inherit;}

html {scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 20px);}

.SiteNavigation a {position: relative;}
.SiteNavigation a::after {content: ""; position: absolute; left: 12px; right: 12px; bottom: calc(50% - 14px); height: 2px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform var(--interaction-duration) var(--interaction-easing);}
.FooterLogo img {transition: opacity var(--interaction-duration) ease;}
.SiteNavigationToggle {transition: background-color var(--interaction-duration) ease;}
.SiteNavigationToggle path {transform-origin: 12px 12px; transition: transform var(--interaction-duration) var(--interaction-easing), opacity var(--interaction-duration) ease;}
.SiteNavigationToggle[aria-expanded="true"] path:first-child {transform: rotate(45deg) translateY(6px);}
.SiteNavigationToggle[aria-expanded="true"] path:nth-child(2) {opacity: 0;}
.SiteNavigationToggle[aria-expanded="true"] path:last-child {transform: rotate(-45deg) translateY(-6px);}
.SiteNavigationToggle:focus-visible {outline: 2px solid var(--font-color); outline-offset: 3px;}

@media (hover: hover) {
	.SiteNavigation a:hover::after {transform: scaleX(1);}
	.SiteNavigationToggle:hover {background: var(--yellow);}
	.SiteBrand:hover .SlidingUnderline {background-size: 100% 2px;}
	.FooterLogo a:hover img {opacity: 0.7;}
}

:is(.SiteHeader, .SiteFooter) a:focus-visible {outline: 2px solid var(--font-color); outline-offset: 3px;}
.SiteNavigation a:focus-visible {outline-offset: -3px;}
.SiteNavigation a:focus-visible::after {transform: scaleX(1);}
.SiteBrand:focus-visible .SlidingUnderline {background-size: 100% 2px;}
.FooterLogo a:focus-visible img {opacity: 0.7;}

@media (max-width: 800px) {
	.SiteNavigationToggle[aria-expanded="true"] + .SiteNavigation {display: flex;}
	.SiteFooter {padding-top: 32px;}
	.SiteNavigation a::after {left: 0; right: auto; bottom: 8px; width: 28px;}
}

@media (prefers-reduced-motion: reduce) {
	html {scroll-behavior: auto;}
}
.NewsList {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px;}
.NewsCard {display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--font-color); border-radius: 18px; background: var(--bg-color); color: inherit; text-decoration: none;}
.NewsCardMedia, .NewsCardMedia picture {display: block;}
.NewsCardImage {display: block; width: 100%; height: auto; aspect-ratio: 771 / 460; object-fit: cover;}
.NewsCardContent {display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: 16px; padding: 30px; font-size: 16px; line-height: 1.45; overflow-wrap: anywhere;}
.NewsCardContent > :is(h3, p) {margin: 0;}
.NewsCardContent h3 {font-size: 30px; font-weight: 700; line-height: 1.05;}
.NewsCardLink {display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 64px; color: inherit; font-size: 15px; font-weight: 700; line-height: 1.4; text-decoration: underline; text-underline-offset: 0.2em;}
.NewsCardLink svg {flex-shrink: 0;}

@media (min-width: 801px) {
	.NewsCard:first-child {border-top-left-radius: 70px;}
	.NewsCard:nth-child(3), .NewsCard:last-child:nth-child(-n+3) {border-top-right-radius: 70px;}
	.NewsCard:nth-child(3n+1):nth-last-child(-n+3):nth-child(n+4) {border-bottom-left-radius: 70px;}
	.NewsCard:last-child:nth-child(3n):nth-child(n+4) {border-bottom-right-radius: 70px;}
}

@media (min-width: 521px) and (max-width: 800px) {
	.NewsCard:first-child {border-top-left-radius: 70px;}
	.NewsCard:nth-child(2), .NewsCard:last-child:nth-child(-n+2) {border-top-right-radius: 70px;}
	.NewsCard:nth-child(2n+1):nth-last-child(-n+2):nth-child(n+3) {border-bottom-left-radius: 70px;}
	.NewsCard:last-child:nth-child(2n):nth-child(n+3) {border-bottom-right-radius: 70px;}
}

@media (max-width: 1100px) {
	.NewsCardContent {padding: 24px;}
	.NewsCardContent h3 {font-size: 26px;}
}

@media (max-width: 800px) {
	.NewsList {grid-template-columns: repeat(2, minmax(0, 1fr));}
	.NewsCardLink {padding-top: 40px;}
}

@media (max-width: 520px) {
	.NewsList {grid-template-columns: minmax(0, 1fr); gap: 24px;}
	.NewsCardLink {padding-top: 24px;}
}

.NewsCard {transition: background-color var(--interaction-duration) ease;}
.NewsCardMedia {overflow: hidden;}
.NewsCardImage {transition: transform calc(var(--interaction-duration) * 1.5) var(--interaction-easing);}
.NewsCardLink svg {transition: transform var(--interaction-duration) var(--interaction-easing);}

@media (hover: hover) {
	.NewsCard:hover {background-color: var(--yellow);}
	.NewsCard:hover .NewsCardImage {transform: scale(var(--interaction-image-scale));}
	.NewsCard:hover h3 .SlidingUnderline {background-size: 100% 2px;}
	.NewsCard:hover .NewsCardLink svg {transform: translateX(var(--interaction-distance));}
}

.NewsCard:focus-visible {background-color: var(--yellow); outline: 2px solid var(--font-color); outline-offset: 4px;}
.NewsCard:focus-visible .NewsCardImage {transform: scale(var(--interaction-image-scale));}
.NewsCard:focus-visible h3 .SlidingUnderline {background-size: 100% 2px;}
.NewsCard:focus-visible .NewsCardLink svg {transform: translateX(var(--interaction-distance));}
.Homepage .SectionHeader {display: flex; align-items: center; gap: 24px 80px; margin-bottom: 48px;}
.Homepage .SectionHeader > * {margin: 0;}
.Homepage .SectionHeader > .Tag {flex-shrink: 0; letter-spacing: normal;}
.Homepage .SectionHeader > .SectionHeading {flex: 1;}
.Homepage .SectionHeader:last-child {margin-bottom: 0;}

.PageSpline.PageSplineDebug {z-index: 3;}
.PageSplineDebug text {fill: #e3195a; stroke: white; stroke-width: 3px; paint-order: stroke; font: 12px sans-serif;}

.Homepage .Place {padding: 48px 0 80px; background: var(--gray);}
.Homepage .Place .SectionHeader {gap: 24px;}
.PlaceIntroduction, .PlaceArea {display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px; align-items: start;}
.PlaceIntroduction {margin-bottom: 32px;}
.PlaceLead {max-width: 650px; margin: 0; font-size: 36px; line-height: 1.22; letter-spacing: -0.025em;}
.PlaceBuilding {display: block; width: 100%; aspect-ratio: 49 / 33; overflow: hidden; border: 1px solid var(--font-color); border-radius: 100px 18px 18px;}
.PlaceBuilding picture, .PlaceBuilding img {display: block; width: 100%; height: 100%; object-fit: cover;}
.PlaceMap {min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--font-color); border-radius: 18px 100px 18px 18px; background: var(--bg-color);}
.PlaceMap img {display: block; width: 100%; height: auto;}
.PlaceMap picture {display: block;}
.PlaceMap figcaption {padding: 12px 16px; font-size: 13px; line-height: 18px;}
.PlaceDetails {display: flex; flex-direction: column; align-self: stretch; gap: 32px; padding-top: 100px;}
.PlaceDetails .Text {--font-size: 18px; line-height: 1.45;}
.PlaceLegend {display: block; align-self: flex-start; width: 100%; max-width: 334px; height: auto; margin-top: auto; border-radius: 18px;}
.PlaceLegend img {display: block; width: 100%; height: auto; border-radius: inherit;}

@media (max-width: 1100px) {
	.PlaceLead {font-size: 30px;}
	.PlaceDetails {padding-top: 48px;}
}

@media (max-width: 800px) {
	.Homepage .Place {padding: 40px 0 48px;}
	.PlaceIntroduction, .PlaceArea {grid-template-columns: 1fr; gap: 32px;}
	.PlaceIntroduction {margin-bottom: 32px;}
	.PlaceLead {max-width: none; font-size: 26px; line-height: 1.3;}
	.PlaceBuilding {max-width: 600px; justify-self: end; border-top-left-radius: 70px;}
	.PlaceMap {border-top-right-radius: 70px;}
	.PlaceDetails {padding-top: 0;}
	.PlaceLegend {order: -1; margin-top: 0;}
}
.Homepage .Competition {container-type: inline-size; background: var(--blue); padding: clamp(48px, 8vw, 120px) 0;}
.CompetitionOverview {display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 32px; align-items: start; margin-bottom: 48px;}
.CompetitionParameters h3 {margin-bottom: 24px; font-size: 36px; font-weight: 500; line-height: 1.2; letter-spacing: -0.025em;}
.CompetitionParameterCards {display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start;}
.CompetitionParameterColumn {display: flex; flex-direction: column; align-items: flex-start; gap: 24px; flex: 0 0 auto; max-width: 100%;}
.CompetitionParameter {max-width: 100%; margin: 0; padding: 24px; border: 1px solid var(--font-color); border-radius: 18px; font-size: 20px; line-height: 1.4;}
.CompetitionRules {width: 260px; border-top-left-radius: 70px; background: var(--peach);}
.CompetitionPhases {width: 334px; border-bottom-right-radius: 70px; background: #d9d9d9;}
.CompetitionWorkshop {width: 270px; border-bottom-left-radius: 70px; background: var(--purple);}
.CompetitionSelection {width: 290px; border-bottom-right-radius: 70px; background: var(--bg-color);}
.CompetitionInvestor {width: 188px; border-bottom-right-radius: 70px; background: var(--yellow);}
.CompetitionAside {display: flex; flex-direction: column; align-self: stretch; align-items: flex-start; gap: 24px;}
.CompetitionRunner {display: block; width: 100%; height: auto; margin-top: auto; transform: translateX(max(15px, calc((100cqw - 1200px) / 2))) scaleX(-1);}
.CompetitionActions {display: flex; flex-direction: column; align-items: flex-start; gap: 12px; width: 100%;}
.CompetitionActions :is(.Button, .ButtonInverse) {max-width: 100%;}
.CompetitionActions svg {flex-shrink: 0;}
.CompetitionPlanning {display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px; align-items: stretch;}
.CompetitionSchedule {min-width: 0; padding: 24px; border: 1px solid var(--font-color); border-radius: 18px; background: var(--bg-color); min-height: 100%;}
.CompetitionScheduleHeader {display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 12px; border-bottom: 2px solid var(--font-color);}
.CompetitionScheduleHeader h3 {margin: 0; font-size: 30px;}
.CompetitionSchedule table {width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.4; text-align: left;}
.CompetitionSchedule :is(th, td) {padding: 13px 0; border-bottom: 1px solid #777; vertical-align: top;}
.CompetitionSchedule th {width: 39%; padding-right: 20px; font-weight: 700;}
.CompetitionSchedule td strong, .CompetitionSchedule td span {display: block;}
.CompetitionSchedule td span {margin-top: 4px; font-size: 12px;}
.CompetitionSchedule tr:last-child > * {border-bottom: 0;}
.CompetitionJury {display: flex; flex-direction: column; align-self: start; gap: 24px; min-width: 0; padding: 32px 32px 40px; border: 1px solid var(--font-color); border-radius: 70px 18px 70px 18px; background: var(--purple); min-height: 100%;}
.CompetitionJury h3 {margin: 0; font-size: 30px;}
.CompetitionJuryGroups {display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.14fr); align-items: start; gap: 24px;}
.CompetitionJuryColumn {display: flex; flex-direction: column; align-self: stretch; gap: 24px; min-width: 0;}
.CompetitionJuryGroup {padding: 16px; border-radius: 24px; background: var(--yellow); font-size: 12px; line-height: 1.75;}
.CompetitionJuryGroup h4 {margin: 0 0 8px; font-size: 15px; line-height: 1.2;}
.CompetitionJuryMembers + .CompetitionJuryMembers {margin-top: 16px;}
.CompetitionJuryMembers h5 {margin: 0 0 4px; border-bottom: 1px solid var(--font-color); font-size: 12px; font-weight: 500; line-height: 1.4;}
.CompetitionJuryMembers ul {margin: 0; padding: 0; list-style: none;}
.CompetitionJuryMemberColumns {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));}
.CompetitionJuryMemberColumns .CompetitionJuryMembers + .CompetitionJuryMembers {margin-top: 0; padding-left: 5px; border-left: 1px solid var(--font-color);}
.CompetitionJuryMemberColumns .CompetitionJuryMembers:first-child {padding-right: 5px;}
.CompetitionJuryMemberColumns h5 {border-bottom: 0;}
.CompetitionJuryNotice {margin: auto 0 16px; font-size: 11px; line-height: 1.4;}
.Competition .Partners {margin-top: 72px; background: #d9d9d9;}

@media (max-width: 1100px) {
	.CompetitionOverview {grid-template-columns: minmax(0, 1fr);}
	.CompetitionAside {display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end;}
	.CompetitionRunner {grid-column: 2; grid-row: 1; max-width: 340px; justify-self: end;}
	.CompetitionActions {grid-column: 1; grid-row: 1;}
	.CompetitionPlanning {grid-template-columns: 1fr;}
}

@media (max-width: 800px) {
	.CompetitionParameters h3 {font-size: 28px;}
	.CompetitionParameter {font-size: 18px;}
	.CompetitionJury {padding: 24px; border-top-left-radius: 48px; border-bottom-right-radius: 48px;}
	.Competition .Partners {margin-top: 48px;}
}

@media (max-width: 520px) {
	.CompetitionAside {display: flex;}
	.CompetitionRunner {align-self: flex-end; max-width: 280px;}
	.CompetitionSchedule {padding: 20px;}
	.CompetitionScheduleHeader {flex-direction: column; align-items: flex-start; gap: 8px;}
	.CompetitionScheduleHeader h3 {font-size: 26px;}
	.CompetitionSchedule table {font-size: 14px;}
	.CompetitionSchedule th {width: 40%; padding-right: 12px; overflow-wrap: anywhere;}
	.CompetitionJuryGroups {grid-template-columns: 1fr; gap: 16px;}
}
.Homepage .Participation {container-type: inline-size; overflow: clip; padding: 60px 0 40px; background: var(--yellow);}
.ParticipationLayout {display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px; align-items: start;}
.Homepage .Participation .SectionHeader {gap: 40px;}
.Homepage .Participation .SectionHeading {line-height: 1.15143; letter-spacing: -0.054em;}
.ParticipationLead {margin-bottom: 24px; font-size: 36px; line-height: 1.21944; letter-spacing: -0.02em;}
.ParticipationSummary {margin-bottom: 32px; font-size: 20px; line-height: 1.305;}
.ParticipationAside {display: flex; flex-direction: column; align-items: flex-end; gap: 16px; min-width: 0;}
.ParticipationCard {display: block; max-width: 100%; padding: 32px; border: 1px solid var(--font-color); border-radius: 18px; background: var(--bg-color); color: var(--font-color); font-size: 15px; line-height: 1.6; text-decoration: none;}
.ParticipationCard h3 {margin-bottom: 12px; font-size: 26px; font-weight: 700; line-height: 1.3; letter-spacing: -0.015em;}
.ParticipationCard p {margin-bottom: 12px;}
.ParticipationCard > :last-child {margin-bottom: 0;}
.ParticipationMeeting {width: 100%; border-top-left-radius: 70px;}
.ParticipationCard .ParticipationMeetingDetails {font-size: 18px; font-weight: 700; line-height: 1.5;}
.ParticipationQuestionnaire {display: flow-root; width: 420px; border-bottom-right-radius: 70px;}
.ParticipationQuestionnaireIcon {float: right; width: 110px; height: auto; margin: 8px 0 16px 16px; border-radius: 14%;}
.ParticipationQuestionnaireIcon img {display: block; width: 100%; height: auto; border-radius: inherit;}
.ParticipationCard .ParticipationQuestionnaireDates {margin-bottom: 16px; font-size: 18px; line-height: 1.4;}
.ParticipationLaptop {display: block; width: 465px; max-width: 100%; height: auto; margin-top: 16px; transform: translateX(max(15px, calc((100cqw - 1200px) / 2)));}

@media (max-width: 1100px) {
	.ParticipationLead {font-size: 30px;}
	.ParticipationCard {padding: 24px;}
	.ParticipationCard h3 {font-size: 24px;}
	.ParticipationQuestionnaireIcon {width: 88px;}
}

@media (max-width: 800px) {
	.Homepage .Participation {padding: 48px 0 32px;}
	.ParticipationLayout {grid-template-columns: minmax(0, 1fr); gap: 40px;}
	.ParticipationLead {font-size: 26px;}
	.ParticipationSummary {font-size: 18px;}
	.ParticipationAside {width: 100%; max-width: 520px; justify-self: end;}
}

@media (max-width: 520px) {
	.ParticipationMeeting {border-top-left-radius: 48px;}
	.ParticipationQuestionnaire {border-bottom-right-radius: 48px;}
	.ParticipationQuestionnaireIcon {width: 72px; margin-left: 12px;}
	.ParticipationQuestionnaire h3 {font-size: 22px;}
}
.Homepage .History {background: var(--bg-color);}
.HistoryTimeline {--history-image-size: clamp(130px, 17vw, 226px); display: grid; gap: 48px; margin: 0; padding: 0; list-style: none;}
.HistoryItem {--history-color: var(--blue); --history-card-width: 50%; --history-point: 33.333333%; --history-line-start: var(--history-image-size); --history-line-end: var(--history-card-width); position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, var(--history-card-width)); grid-template-areas: "media card"; align-items: center;}
.HistoryIllustrations {position: relative; z-index: 1; grid-area: media; display: flex; align-items: center; gap: 24px; width: max-content;}
.HistoryIllustrations picture {display: block; flex-shrink: 0; width: var(--history-image-size);}
.HistoryIllustrations img {display: block; width: 100%; height: auto; aspect-ratio: 1; border-radius: 50%; object-fit: cover;}
.HistoryCard {position: relative; z-index: 1; grid-area: card; min-width: 0; padding: 24px; border: 1px solid var(--font-color); border-radius: 16px; background: var(--history-color);}
.HistoryPeriod {margin: 0 0 12px; font-size: 20px; font-weight: 700; line-height: 1.4;}
.HistoryCard h3 {margin: 0 0 14px; font-size: 26px; line-height: 1.2;}
.HistoryText {font-size: 14px; line-height: 1.45;}
.HistoryText p {margin: 0 0 16px;}
.HistoryText > :last-child {margin-bottom: 0;}
.HistoryConnector {position: absolute; top: 50%; left: var(--history-line-start); right: var(--history-line-end); height: 1px; background: var(--font-color);}
.HistoryPoint {position: absolute; z-index: 2; top: 50%; left: var(--history-point); width: 36px; height: 36px; border: 1px solid var(--font-color); border-radius: 50%; background: var(--history-color); transform: translate(-50%, -50%);}
.HistorySport {--history-color: var(--peach); --history-card-width: 41.666667%; --history-point: 48.333333%; --history-line-start: var(--history-image-size);}
.HistorySoviet {--history-color: var(--purple); --history-card-width: 45%; --history-point: 55%; --history-line-start: var(--history-card-width); --history-line-end: var(--history-image-size);}
.HistoryAfter1990 {--history-color: var(--gray); --history-card-width: 64.166667%; --history-point: 75%; --history-line-start: var(--history-card-width); --history-line-end: var(--history-image-size);}
.HistorySoviet, .HistoryAfter1990 {grid-template-columns: minmax(0, var(--history-card-width)) minmax(0, 1fr); grid-template-areas: "card media";}
.HistorySoviet .HistoryIllustrations, .HistoryAfter1990 .HistoryIllustrations {justify-self: end;}

@media (max-width: 800px) {
	.Homepage .History .SectionHeader {flex-direction: column; align-items: flex-start;}
	.HistoryTimeline {--history-image-size: clamp(110px, 23vw, 180px); position: relative; gap: 40px;}
	.HistoryTimeline::before {content: ""; position: absolute; top: calc(var(--history-image-size) / 2); bottom: 0; left: 16px; width: 1px; background: var(--font-color);}
	.HistoryItem {grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "card"; gap: 24px; padding-left: 48px;}
	.HistoryIllustrations, .HistorySoviet .HistoryIllustrations, .HistoryAfter1990 .HistoryIllustrations {justify-self: start; gap: 16px; width: min(100%, calc(2 * var(--history-image-size) + 16px)); margin-right: 0;}
	.HistoryIllustrations picture {width: min(var(--history-image-size), calc((100% - 16px) / 2)); max-width: 100%;}
	.HistoryIllustrations picture:only-child {width: var(--history-image-size);}
	.HistoryConnector {display: none;}
	.HistoryPoint {grid-area: media; position: relative; align-self: center; top: auto; left: -32px; width: 28px; height: 28px; transform: translateX(-50%);}
}

@media (max-width: 520px) {
	.HistoryCard {padding: 20px;}
	.HistoryCard h3 {font-size: 24px;}
	.HistoryPeriod {font-size: 18px;}
}
.Homepage .News {padding: 40px 0 130px; background: var(--peach);}
.Homepage .News .SectionHeader {margin-bottom: 60px;}
@media (max-width: 800px) {
	.Homepage .News {padding: 40px 0 64px;}
	.Homepage .News .SectionHeader {margin-bottom: 32px;}
}
.Homepage .Contact {background: var(--purple); padding: 32px 0;}
.Homepage .Contact .SectionHeader {margin-bottom: 16px;}
.ContactDetails {max-width: 522px; border-top: 1px solid var(--font-color); padding-top: 20px; font-style: normal;}
.ContactRole {margin-bottom: 8px; font-size: 13px; font-weight: 700; text-transform: uppercase;}
.ContactName {margin-bottom: 4px; font-size: 24px; font-weight: 700;}
.ContactDetails a {display: block; width: fit-content; max-width: 100%; overflow-wrap: anywhere;}
.ContactPhone {margin-top: 24px;}

.Homepage :is(.Place, .Participation) .SectionHeader {flex-direction: column; align-items: flex-start;}
.Homepage .Participation .SectionHeading {max-width: 690px;}
.Homepage :is(.Competition, .Participation) .Tag {background: var(--bg-color);}

.Partners {max-width: 1020px; padding: 32px; border: 1px solid var(--font-color); border-radius: 18px 70px 18px 18px; background: var(--gray);}
.PartnersList {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px;}
.PartnerLogo {display: flex; align-items: center; height: 100px; margin-bottom: 20px;}
.PartnerLogo img {display: block; max-width: 100%; width: auto; height: auto; max-height: 100%;}
.PartnerRole {margin-bottom: 8px;}
.Partner h4 {margin: 0 0 16px; font-size: 24px; font-weight: 700; line-height: 1.2;}
.Partner .Text {--font-size: 15px;}

@media (max-width: 800px) {
	.Homepage .SectionHeader {flex-direction: column; align-items: flex-start; gap: 20px; margin-bottom: 32px;}
	.Partners {padding: 24px;}
	.PartnersList {grid-template-columns: 1fr;}
}

.PartnerLogo img {transition: opacity var(--interaction-duration) ease;}
.ParticipationQuestionnaire {transition: background-color var(--interaction-duration) ease;}

@media (hover: hover) {
	.Partner:has(> a.PartnerLogo:hover, > h4 a:hover) h4 .SlidingUnderline {background-size: 100% 2px;}
	.Partner:has(> a.PartnerLogo:hover, > h4 a:hover) .PartnerLogo img {opacity: 0.7;}
	.ParticipationQuestionnaire:hover, .ParticipationContent > .Button:hover {background-color: var(--blue);}
	.ParticipationQuestionnaire:hover .SlidingUnderline {background-size: 100% 2px;}
}

a.PartnerLogo:focus-visible {outline: 2px solid var(--font-color); outline-offset: 3px;}
.Partner:has(> a.PartnerLogo:focus-visible, > h4 a:focus-visible) h4 .SlidingUnderline {background-size: 100% 2px;}
.Partner:has(> a.PartnerLogo:focus-visible, > h4 a:focus-visible) .PartnerLogo img {opacity: 0.7;}
.ParticipationQuestionnaire:focus-visible {background-color: var(--blue); outline: 2px solid var(--font-color); outline-offset: 4px;}
.ParticipationQuestionnaire:focus-visible .SlidingUnderline {background-size: 100% 2px;}
.ParticipationContent > .Button:focus-visible {background-color: var(--blue);}
