main {
	& section {
		background: var(--color-darkgray);
		color: var(--color-white);

		& > div {
			max-width: var(--container-width);
			margin: auto;
			padding: var(--gap-huge) var(--gap-small);

			@media (max-width: 1024px) {
				padding: var(--gap-large) var(--gap-small) var(--gap-normal) var(--gap-small);

			}
		}

		& h2, & h3 {
			font-size: var(--font-size-huge);
			font-weight: 600;
			margin: var(--gap-tiny) auto var(--gap-small) auto;

			& b {
				text-transform: uppercase;
				color: var(--color-equimo);
			}

			@media (max-width: 600px) {
				& {
					font-size: var(--font-size-large);
				}
			}
		}

		a.button:hover {
			background-color: var(--color-white);
			color: var(--color-equimo);
			box-shadow: 0 0 1em var(--color-white);
		}

		&.light a.button:hover {
			box-shadow: 0 0 1em var(--color-equimo);
		}

		& p {
			color: var(--color-light);
			margin: var(--gap-rel-normal) 0 var(--gap-rel-normal) 0;

			&.mid {
				text-align: center;
			}

			&.large {
				padding: var(--gap-rel-large);
			}

			& a.button {
				display: inline-block;
				padding: .7lh 2lh;
				background: var(--color-equimo);
				color: var(--color-white);
				border-radius: 2lh;
				text-decoration: none;


			}
		}

		& blockquote {
			padding-left: var(--gap-small);
			border-left: 2px solid var(--color-equimo);
		}

		& h2:after {
			content: '.';
			color: var(--color-equimo);
		}

		& h3 {
			font-size: var(--font-size-large);
			font-weight: 400;
		}

		& div.sep {
			border-bottom: 1px solid var(--color-equimo);
			margin-bottom: var(--gap-large);

			& > * {
				display: inline-block;
				background: var(--color-darkgray);
				padding-right: var(--gap-rel-small);
				position: relative;
				top: .5lh;
				text-transform: uppercase;
				color: var(--color-equimo);
			}

			&.right {
				text-align: right;

				& > * {
					padding: 0 0 0 var(--gap-rel-small);
				}
			}

			&.mid {
				text-align: center;

				& > * {
					padding-left: var(--gap-rel-small);
				}
			}
		}

		&.light {
			background: var(--color-light);
			color: var(--color-gray);

			& h2, & h3 {
				color: var(--color-gray);
			}

			& p {
				color: var(--color-gray);
			}

			& div.sep {
				border-color: var(--color-equimo);

				& > * {
					color: var(--color-equimo);
					background-color: var(--color-light);
				}
			}
		}

		&.gray {
			background: var(--color-gray);
			color: var(--color-white);

			& .sep span {
				background-color: var(--color-gray);
			}
		}


		&.disciplines {

			& h2, & h3 {
				text-align: center;
			}

			& h3 {
				font-size: var(--font-size-base);
			}

			& div.tiles {
				display: grid;
				grid-template-columns: repeat(4, 1fr);
				grid-gap: var(--gap-small);
				margin-top: var(--gap-huge);

				@media (max-width: 1024px) {
					& {
						grid-template-columns: repeat(2, 1fr);
					}
				}
				@media (max-width: 600px) {
					& {
						display: block;
					}
				}

				& a {
					text-decoration: none;
					color: var(--color-white);
					text-align: center;
					background: var(--color-darkgray) no-repeat center top/cover;
					display: flex;
					flex-direction: column;
					justify-content: space-between;
					padding: 0 var(--gap-rel-small) var(--gap-rel-normal) var(--gap-rel-small);
					border: 2px solid var(--color-darkgray);
					position: relative;
					--gradient-offset: 30%;

					&:hover {

						&.jumping p b {
							background-color: var(--color-jumping);
							box-shadow: 0 0 1em var(--color-jumping);

						}

						&.endurance p b {
							background-color: var(--color-endurance);
							box-shadow: 0 0 1em var(--color-endurance);
						}

						&.racing p b {
							background-color: var(--color-racing);
							box-shadow: 0 0 1em var(--color-racing);

						}

						&.veterinary p b {
							background-color: var(--color-veterinary);
							box-shadow: 0 0 1em var(--color-veterinary);
						}
					}

					& h3 {
						font-size: var(--font-size-large);
						font-weight: 600;
						margin: 0 0 var(--gap-normal) 0;


						& span.icon {
							background: var(--color-equimo);
							display: block;
							margin: -.6lh auto var(--gap-rel-large) auto;
							font-size: var(--font-size-huge);
							width: 1lh;
							height: 1lh;
							padding: .1lh;
							border-radius: 2lh;
							box-sizing: content-box;

							@media (max-width: 1024px) {
								margin-bottom: var(--gap-rel-tiny);
							}

							&:after {
								filter: var(--color-filter-white)
							}

							&.jumping {
								background-color: var(--color-jumping);
							}

							&.endurance {
								background-color: var(--color-endurance);
							}

							&.racing {
								background-color: var(--color-racing);
							}

							&.veterinary {
								background-color: var(--color-veterinary);
							}
						}

					}

					& p {
						margin: var(--gap-rel-small) 0;
						color: var(--color-light);

						& b {
							display: inline-block;
							padding: .7lh 2lh;
							background: var(--color-equimo);
							color: var(--color-white);
							border-radius: 2lh;
							text-decoration: none;
						}
					}

					&:first-of-type {
						border-radius: var(--border-radius) 0 0 var(--border-radius);
					}

					&:last-of-type {
						border-radius: 0 var(--border-radius) var(--border-radius) 0;
					}

					@media (max-width: 1024px) {
						& {
							--gradient-offset: 0%;
							margin-bottom: var(--gap-normal);
						}

						&:nth-of-type(2) {
							border-radius: 0 var(--border-radius) 0 0;
						}

						&:last-of-type {
							border-radius: 0;
						}

					}

					@media (max-width: 600px) {
						& {
							border-radius: 0 !important;
						}
					}

					&.jumping {
						background-image: linear-gradient(to bottom, transparent var(--gradient-offset), var(--color-darkgray) 60%), url(../../image/web/graphic/tile-jumping.jpg);
					}

					&.endurance {
						background-image: linear-gradient(to bottom, transparent var(--gradient-offset), var(--color-darkgray) 60%), url(../../image/web/graphic/tile-endurance.jpg);
					}

					&.racing {
						background-image: linear-gradient(to bottom, transparent var(--gradient-offset), var(--color-darkgray) 60%), url(../../image/web/graphic/tile-racing.jpg);
					}

					&.veterinary {
						background-image: linear-gradient(to bottom, transparent var(--gradient-offset), var(--color-darkgray) 60%), url(../../image/web/graphic/tile-veterinary.jpg);
					}
				}
			}
		}

		&.array {

			& div.multicol > div {
				display: flex;
				flex-direction: column;
				justify-content: start;
				margin: var(--gap-normal) 0;

				& h3 {
					flex-basis: 2.5em;
					margin: 0 auto;
					text-align: center;
				}

				& figure {
					background: var(--color-gray);
					margin: var(--gap-small) 0;
					overflow: hidden;

					& img {
						width: 100%;
						height: auto;
						display: block;
					}
				}

				&:first-child figure {
					border-radius: var(--border-radius) 0 0 0;
				}

				&:last-child figure {
					border-radius: 0 var(--border-radius) 0 0;
				}

				& div.icon {

					margin: 0 auto var(--gap-small) auto;
					border-radius: 50%;
					width: 1.3lh;
					height: 1.3lh;
					display: flex;
					align-items: center;
					justify-content: center;
					background: var(--color-equimo);
					text-align: center;
					font-size: var(--font-size-xlarge);
				}
			}

		}

		&.figure {

			& > div {
				display: flex;

				& > * {
					flex: 50%;

					&:first-child {
						margin-right: var(--gap-large);
					}

					&.large {
						flex-basis: 70%;
					}
				}

				@media (max-width: 1024px) {
					& {
						display: block;
					}

					& > *:first-child {
						margin-right: 0;
					}
				}

				&.large {
					flex-basis: 70%;
				}
			}


			& figure {
				background: var(--color-gray);
				border-radius: 0 var(--border-radius) var(--border-radius) 0;
				overflow: hidden;
				display: flex;
				flex-direction: column;
				justify-content: center;
				position: relative;

				&.transparent {
					background: transparent;
				}

				&:first-child {
					border-radius: var(--border-radius) 0 0 var(--border-radius);
				}

				@media (max-width: 1024px) {
					& {
						border-radius: 0 0 var(--border-radius) var(--border-radius);
					}

					&:first-child {
						border-radius: var(--border-radius) var(--border-radius) 0 0;
					}
				}

				& img {
					width: 100%;
					height: auto;
					display: block;
				}

				&.chart {
					padding: var(--gap-normal) var(--gap-small);

					& > p {
						text-align: center;
						margin: 0;

						& > span {
							white-space: nowrap;
						}
					}
				}

				& div.chart-map-status {
					position: absolute;
					left: 50%;
					bottom: 50%;
					transform: translate(-50%, -30px);
					background: var(--color-darkgray);
					border-radius: var(--border-radius);
					padding: var(--gap-small);

					&:after {
						content: '';
						position: absolute;
						left: 50%;
						bottom: calc(-30px - 0.5em - 4px);
						transform: translateX(-50%);
						width: 1em;
						height: 1em;
						border-radius: 50%;
						background: var(--color-darkgray);
						border: 4px solid var(--color-equimo);
					}

					& div.name {

						font-weight: 600;
						padding: 0 0 0 4lh;
						color: var(--color-white);
						position: relative;
						margin-bottom: 1.5em;

						&:before, &:after {
							content: '';
							background: url(../../image/web/photo/horse-profile.jpg) no-repeat center center/cover;
							width: 1.5lh;
							height: 1.5lh;
							border-radius: 50%;
							border: 2px solid var(--color-equimo);
							position: absolute;
							left: 0;
							top: 50%;
							transform: translateY(-50%);
						}

						&:after {
							left: 2lh;
							background-image: url(../../image/web/photo/balance-chart.png);
							border: none;
						}
					}

					& div.status {
						min-width: 16em;
						font-size: var(--font-size-small);
						color: var(--color-light);
						display: grid;
						grid-template-columns: repeat(2, 1fr);
						grid-gap: var(--gap-rel-tiny) var(--gap-rel-small);
						align-items: center;

						& em.icon {
							filter: var(--color-filter-equimo);
						}

						& span {
							color: var(--color-silver);
						}
					}

				}
			}


		}

		&.headline {
			& figure {
				background: var(--color-gray);
				border-radius: var(--border-radius) var(--border-radius) 0 0;
				overflow: hidden;
				margin: var(--gap-normal) 0;

				& img {
					width: 100%;
					height: auto;
				}

				&.third {
					display: grid;
					align-items: center;
					grid-template-columns: 2fr 1fr;
					grid-gap: var(--gap-normal);
					padding: var(--gap-normal);
				}
			}
		}

		&.matrix {

			&.light {
				& div.grid p {
					color: var(--color-gray);
				}
			}

			& div.grid {

				margin: var(--gap-huge) 0;

				display: grid;
				grid-template-columns: repeat(2, 1fr);
				grid-gap: var(--gap-large);

				@media (max-width: 1024px) {
					& {
						display: block;
						margin: var(--gap-normal) 0;
					}
				}

				& > div {
					display: grid;
					grid-template-columns: repeat(2, 1fr);
					grid-template-rows: repeat(2, 1fr);
					align-items: stretch;
					text-align: center;
					margin-left: calc(-1 * var(--gap-normal));

					@media (max-width: 600px) {
						margin-left: 0;
					}


					& > div {
						padding: var(--gap-normal);
						display: flex;
						flex-direction: column;
						justify-content: space-between;


						&:first-child {
							border-image: linear-gradient(to bottom right, transparent 70%, var(--color-equimo) 94%, transparent 95%) 1 / 1px;
						}

						&:last-child {
							border-image: linear-gradient(to top left, transparent 70%, var(--color-equimo) 94%, transparent 95%) 1 / 1px;
						}

						@media (max-width: 600px) {
							& {
								border-image: none !important;
								padding: var(--gap-tiny);
							}

						}
					}

					& p {
						color: var(--color-lightblue);
					}

					& h3 {

						font-weight: 600;

						& span.icon {
							background: var(--color-equimo);
							display: block;
							margin: 0 auto var(--gap-small) auto;
							font-size: var(--font-size-huge);
							width: 1lh;
							height: 1lh;
							padding: .1lh;
							border-radius: 2lh;
							box-sizing: content-box;

							@media (max-width: 600px) {
								font-size: var(--font-size-large);
							}


							&:after {
								filter: var(--color-filter-white)
							}
						}
					}

					@media (max-width: 600px) {
						display: block;

					}

				}

				& > figure {

					display: grid;
					grid-template-columns: 1fr;
					grid-gap: var(--gap-normal);

					& img {
						width: 100%;
						height: auto;
						display: block;

						&:first-child {
							border-top-right-radius: var(--border-radius);
						}

						&:last-child {
							border-bottom-right-radius: var(--border-radius);
						}

						@media (max-width: 1024px) {
							&:first-child {
								border-top-right-radius: 0;

							}

							&:last-child {
								border-bottom-left-radius: var(--border-radius);
							}


						}
					}
				}
			}
		}

		&.shop {

			background: linear-gradient(to bottom, white 50%, transparent 60%), var(--color-white) url(../../image/web/graphic/store-bg.jpg) no-repeat center bottom/100% auto;

			padding-bottom: 300px;

			@media (max-width: 600px) {
				& {
					padding-bottom: 5em;
				}
			}

			& div.sep span {
				background-color: var(--color-white);
			}

			& h2 {
				text-align: center;
				margin: var(--gap-normal) 0;
			}

			& div.lineup {

				display: grid;
				grid-template-columns: repeat(3, 1fr);
				grid-gap: var(--gap-large);
				overflow-x: auto;
				scroll-snap-type: x mandatory;

				& > div {

					display: flex;
					flex-direction: column;
					justify-content: space-between;
					min-width: 20em;
					scroll-snap-align: start;

					& > * {
						flex-grow: 0;
					}

					& > ul {
						flex-grow: 1;

						& li.warning {
							color: var(--color-equimo);
						}
					}

					& h3 {
						text-align: center;
						margin: var(--gap-normal) 0;

						& b {
							text-transform: none;
						}

						@media (max-width: 600px) {
							& {
								margin: var(--gap-small) 0;
							}
						}
					}

					& img {
						max-width: 100%;
						width: auto;
						height: auto;
						max-height: 240px;
						display: block;
						margin: var(--gap-small) auto;
						border-radius: var(--border-radius) var(--border-radius) 0 0;

						@media (max-width: 600px) {
							& {
								max-height: 180px;
							}
						}
					}

					& > p {
						text-align: center;

						& a, & span.warning {
							display: inline-block;
							padding: .7lh 2lh;
							margin: 0 1em;
							background: var(--color-equimo);
							color: var(--color-white);
							border-radius: 2lh;
							text-decoration: none;
						}

						& a:hover {
							background-color: var(--color-white);
							color: var(--color-equimo);
							box-shadow: 0 0 1em var(--color-equimo);
						}

						& span.warning {
							background-color: var(--color-warning);
						}
					}

					& ul {

						margin: var(--gap-tiny) 0;

						@media (max-width: 600px) {
							& {
								margin: var(--gap-small) 0;
							}
						}

						& li {
							list-style: none;
							padding: .5em 0 .5em 3em;
							position: relative;
							margin: var(--gap-rel-small) 0;

							&.icon:after {
								position: absolute;
								left: 0;
								top: 0;
								font-size: 220%;
							}
						}
					}
				}

				&.full {
					display: grid;
					grid-template-columns: repeat(auto-fit, minmax(20em, 1fr));
					grid-gap: var(--gap-large);
					overflow-x: visible;

					& > div {
						margin-bottom: var(--gap-huge);
					}
				}
			}
		}

		&.features {

			& h2 {
				text-align: center;
				margin: var(--gap-normal) 0;
			}

			& ul.anchors {
				display: flex;
				flex-wrap: wrap;
				justify-content: center;
				margin: var(--gap-normal) 0 var(--gap-huge) 0;

				& li {
					list-style: none;
					margin-bottom: var(--gap-normal);
					flex: 0 1 auto;

					& a {
						display: flex;
						align-items: center;
						font-weight: bold;
						font-size: var(--font-size-plus);

						&:hover {
							color: var(--color-equimo);

						& span.icon {
							background: var(--color-white);

							&:after {
								filter: var(--color-filter-equimo);
							}
						}
					}
					}

					& span.icon {
						background: var(--color-equimo);
						display: block;
						margin: 0 var(--gap-small);
						font-size: var(--font-size-xlarge);
						width: 1lh;
						height: 1lh;
						padding: .1lh;
						border-radius: 2lh;
						box-sizing: content-box;
						text-align: center;
						flex: 0 0 auto;

						&:after {
							filter: var(--color-filter-white);
						}
					}
				}

				@media (max-width: 600px) {
					& {
						flex-direction: column;

						& li a {
							font-size: var(--font-size-base);

							& span.icon {
								font-size: var(--font-size-large);
							}
						}
					}

				}
			}

			& div.grid {
				display: grid;
				grid-template-columns: repeat(3, 1fr);
				grid-gap: var(--gap-large);

				& > div.sep {
					grid-column: span 3;
				}

				@media (max-width: 1024px) {
					& {
						grid-template-columns: repeat(2, 1fr);
					}

					& > div.sep {
						grid-column: span 2;
					}
				}

				@media (max-width: 600px) {
					& {
						display: block;
					}
				}


				& div.feature {

					&.large {
						grid-column: span 3;
						display: grid;
						grid-template-columns: repeat(3, 1fr);
						grid-gap: var(--gap-large);


						& > div {

							&:first-child {
								grid-column: span 1;
							}

							&:last-child {
								grid-column: span 2;
							}
						}

						@media (max-width: 1024px) {
							& {
								grid-column: span 2;
								grid-template-columns: repeat(2, 1fr);
							}

							& > div:last-child {
								grid-column: span 1;
							}
						}

						@media (max-width: 600px) {
							& {
								display: block;
							}
						}

						& .multicol {
							@media (max-width: 1024px) {
								& {
									display: block;
								}
							}
						}
					}

					& h2 {
						text-align: left;
					}

					& .sides {
						margin-bottom: var(--gap-normal);
					}

					& .sides p {
						margin: 0 0 var(--gap-small) 0;
					}

					& .badges {
						font-size: 2.7em;

						& span.icon:after {
							display: inline-block;
							width: 1em;
							height: 1em;
							background-color: var(--color-equimo);
							border-radius: 50%;
							background-position: center center !important;
						}
					}

					& figure {
						background-color: var(--color-gray);
						border-radius: var(--border-radius) var(--border-radius) 0 0;
						overflow: hidden;
						margin-bottom: var(--gap-normal);


						&[data-label] {
							position: relative;

							&:after {
								content: attr(data-label);
								position: absolute;
								top: 50%;
								left: 50%;
								transform: translate(-50%, -50%);
								background: var(--color-warning);
								color: var(--color-white);
								padding: var(--gap-rel-tiny) var(--gap-rel-small);
								border-radius: 2lh;
							}
						}


						& img {
							width: 100%;
							height: auto;
							display: block;
						}

						&.chart {
							padding: var(--gap-normal) var(--gap-small);
						}
					}
				}
			}
		}
	}
}
