:root
{
	font-size: 1px;
	--width: 1280rem;
	--max-width: 92%;
	--red: #a63028;
	--dark: #222;
}

@media all and (min-width: 1921px)
{
	:root
	{
		font-size: calc(0.1px + 0.048vmax);
	}
}

/* common */
@media all
{
	html, body
	{
		width: 100%;
		height: 100%;
		min-height: 100%;
		background: #fff!important;
		position: relative;
		padding: 0;
		margin: 0!important;
		scroll-behavior: smooth;
	}

	body *
	{
		font-style: normal;
		font-weight: normal;
		font-family: Montserrat, Arial, sans-serif!important;
		font-size: 16rem;
		margin: 0;
		line-height: 150%;
		scrollbar-width: thin;
		scrollbar-color: #999 transparent;
	}

	body::-webkit-scrollbar,
	body *::-webkit-scrollbar
	{
		width: 6rem;
		height: 6rem;
	}

	body::-webkit-scrollbar-track,
	body *::-webkit-scrollbar-track
	{
		background: transparent;
	}

	body::-webkit-scrollbar-thumb,
	body *::-webkit-scrollbar-thumb
	{
		background: #999;
	}

	em,
	em *
	{
		font-style: italic;
	}

	strong,
	strong *
	{
		font-weight: 600;
	}

	.fleft,
	*[data-float='left']
	{
		float: left!important;
		margin-right: 30rem;
	}

	.fright,
	*[data-float='right']
	{
		float: right!important;
		margin-left: 30rem;
	}

	a
	{
		text-decoration: none;
	}

	a,
	a:active,
	a:hover,
	a:focus
	{
		-webkit-touch-callout: none;
		-webkit-user-select: none;
		-khtml-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;
		outline: none!important;
		-webkit-tap-highlight-color: transparent;
	}

	.button
	{
		display: inline-block;
		color: #fff;
		background: var(--dark);
		font-weight: 300;
		padding: 9rem 29rem;
		font-size: 14rem;
		line-height: 20rem!important;
		text-decoration: none!important;
		-webkit-transition: all .5s;
		transition: all .5s;
		box-sizing: border-box;
		height: 40rem;
		text-align: center;
		cursor: pointer;
		border-radius: 4rem;
		opacity: 1;
		transform: scale(1);
	}

	.button.middle
	{
		padding: 6rem 20rem;
		font-size: 12.5rem;
		line-height: 18rem!important;
		height: 32rem;
	}

	.button.small
	{
		padding: 3rem 11rem;
		font-size: 11rem;
		line-height: 16rem!important;
		height: 24rem;
	}

	.button *
	{
		color: inherit;
		cursor: inherit;
	}

	.button.w150
	{
		width: 150rem;
	}

	.button.w200
	{
		width: 200rem;
	}

	.button.w250
	{
		width: 200rem;
	}

	.button.w300
	{
		width: 300rem;
	}

	.button.w340
	{
		width: 340rem;
	}

	.button.red
	{
		background: var(--red);
	}

	.button:hover
	{
		opacity: 0.9;
		transform: scale(1.05);
	}
}

/* page */
@media all
{
	page-content
	{
		display: -ms-grid;
		display: grid;
		grid-gap: 0;
		grid-template-columns: 100%;
		grid-template-rows: max-content auto max-content;
		position: relative;
		z-index: 0;
		width: 100%;
		min-height: 100%;
	}
	page-content>page-header
	{
		display: block;
		position: relative;
		padding-top: 96rem;
		z-index: 2;
	}

	page-content:not(.home)>page-header
	{
		padding-top: 136rem;
	}

	@media all and (max-width: 1200px)
	{
		page-content>page-header
		{
			padding-top: 86rem!important;
		}

		@media all and (max-width: 720px)
		{
			page-content>page-header
			{
				padding-top: 66rem!important;
			}
		}
	}

	page-content>page-body
	{
		display: block;
		position: relative;
		z-index: 1;
		min-height: 25vw;
	}

	page-content>page-footer
	{
		display: block;
		position: relative;
		z-index: 1;
	}
}

/* sections */
@media all
{
	section
	{
		display: block;
		position: relative;
		z-index: 1;
		overflow: hidden;
		padding: 0 0 80rem 0;
	}

	section>h2,
	section>.title
	{
		display: block;
		position: relative;
		width: var(--width);
		max-width: var(--max-width);
		margin: 0 auto;
		font-size: 32rem;
		padding-top: 40rem;
		font-weight: 300;
		line-height: 125%;
	}

	@media all and (max-width: 1200px)
	{
		section>h2,
		section>.title
		{
			font-size: 24rem;
		}
	}

	section>div
	{
		display: -ms-grid;
		display: grid;
		position: relative;
		grid-gap: 100rem;
		grid-row-gap: 10rem;
		grid-template-columns: 1fr;
		margin: 0 auto;
		width: var(--width);
		max-width: var(--max-width);
	}

	@media all and (max-width: 1200px)
	{
		section>div
		{
			grid-template-columns: 1fr!important;
		}
	}

	section>div[data-size="1/2"]
	{
		grid-template-columns: 1fr 1fr;
	}

	section>div[data-size="1/3"]
	{
		grid-template-columns: 1fr 1fr 1fr;
	}

	section>div[data-size="2/3+1/3"]
	{
		grid-template-columns: calc(66.66% - 34rem) calc(33.33% - 66rem);
	}

	section>div[data-size="1/3+2/3"]
	{
		grid-template-columns: calc(33.33% - 66rem) calc(66.66% - 34rem);
	}

	section>div>div
	{
		display: block;
		position: relative;
		padding-top: 40rem;
	}

	section h3
	{
		display: block;
		font-weight: 600;
		font-size: 20rem;
	}
}
