@-ms-viewport{
	width: device-width;
}

:root *, :root *::before, :root *::after {
	box-sizing: border-box;
}

html {
	min-height: 100%;
	margin: 0;
	padding: 0;
	padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
	font-family: system-ui, sans-serif;
	
	text-rendering: optimizeLegibility;
	-webkit-text-size-adjust: none;
	-ms-text-size-adjust: 100%;
	text-size-adjust: none;
	
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body {
	min-height: 100%;
	margin: 0;
	padding: 0;
}

a {
	color: rgb(0,102,204);
	text-decoration: none;
}
a:hover {
	text-decoration: underline;
}

header {
	width: 100%;
	max-width: 1280px;
	height: 160px;
	margin: 0 auto;
	padding: 32px;
	position: sticky;
	top: 0;
	background: #fff;
	z-index: 64;
}

.logotype {
	width: 252px;
	height: 96px;
}

article {
	width: 100%;
	max-width: 1280px;
	margin: 21px auto 53px auto;
	padding: 0 32px;
	text-align: left;
	
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: repeat (2 auto);
}

.site_copy {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: auto auto;
	gap: 16px;
}

.copy {
	display: grid;
	grid-template-columns: 8fr 5fr;
	grid-template-rows: auto;
	gap: 16px;
}

.copy_intro h1 {
	font-size: 21px;
	font-weight: 300;
	margin: 0;
	padding: 0;
	color: rgb(39,39,41);
	line-height: calc(2px + 2ex + 2px);
}

.copy_main p {
	font-size: 21px;
	font-weight: 300;
	margin: 0;
	padding: 0;
	color: rgb(0,0,0);
	line-height: calc(2px + 2ex + 2px);
}
.copy_main p:nth-child(2) {
	text-align: right;
}


.site_mosaic {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	margin: 64px auto;
	
	height: 738px;
	
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	grid-template-rows: 1fr;
	gap: 16px;
}

.element {
	overflow: hidden;
	position: relative;
}

.mosaic.grid_02 {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: 5fr 3fr;
	gap: 16px;
}

.mosaic .grid_03 {
	display: grid;
	grid-template-columns: 2fr 3fr;
	grid-template-rows: 3fr;
	gap: 16px;
}

.element img.element_01 {
	width: auto;
	height: 100%;
	object-fit: cover;
	position: absolute;
	top: 0;
	left: 0;
}
.element img.element_02 {
	width: 100%;
	height: auto;
	object-fit: cover;
	position: absolute;
	bottom: 0;
	left: 0;
}
.element img.element_03 {
	width: 100%;
	height: auto;
	object-fit: cover;
	position: absolute;
	bottom: 0;
	left: 0;
}
.element img.element_04 {
	width: auto;
	height: 100%;
	object-fit: cover;
	position: absolute;
	top: 0;
	left: 0;
}

footer {
	width: 100%;
	height: 48px;
	position: fixed;
	bottom: 0;
	
	font-size: 12px;
	color: rgb(134,134,139);
	line-height: calc(2px + 2ex + 2px);
	
	display: flex;
	align-items: center;
}

footer .copyright {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 32px;
}

@media screen and (max-width: 1120px) {
	article {
		margin: 6px auto 39px auto;
	}
	
	.copy_intro h1 {
		font-size: 18px;
	}
	
	.copy_main p {
		font-size: 18px;
	}
	
	.site_mosaic {
		margin: 48px auto;
	}
}


@media screen and (max-width: 1080px) {
	.site_mosaic {
		height: 640px;
	}
	
	.element img.element_01 {
		width: auto;
		height: 110%;
		object-fit: cover;
	}
	.element img.element_02 {
		width: 110%;
		height: auto;
		object-fit: cover;
	}
	.element img.element_03 {
		width: 110%;
		height: auto;
		object-fit: cover;
	}
	.element img.element_04 {
		width: auto;
		height: 110%;
		object-fit: cover;
	}
}

@media screen and (max-width: 960px) {
	header {
		padding: 32px 24px;
	}
	
	article {
		padding: 0 24px;
	}
	
	.copy {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: auto;
		gap: 16px;
	}
		
	.copy_main p:nth-child(2) {
		text-align: left;
	}
	
	.site_mosaic {
		height: 480px;
	}
	
	footer .copyright {
		padding: 0 24px;
	}
}

@media screen and (max-width: 640px) {
	.site_mosaic {
		height: calc((100vw - 48px) * 1.25);
		
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 1.6fr 1fr;
		gap: 16px;
	}
	
	.mosaic.grid_02 {
		display: grid;
		grid-template-columns: 3fr 5fr;
		grid-template-rows: 1fr;
		gap: 16px;
	}
	
	.mosaic .grid_03 {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr;
		gap: 16px;
	}
	
	.element img.element_03 {
		width: auto;
		height: 100%;
	}
}

@media screen and (max-width: 480px) {
	header {
		height: 112px;
		padding: 24px;
	}
	
	.logotype {
		width: 168px;
		height: 64px;
	}
	
	article {
		margin: 9px auto 41px auto;
	}
	
	.copy_intro h1 {
		font-size: 17px;
	}
	
	.copy_main p {
		font-size: 17px;
	}
	
	.site_mosaic {
		margin: 32px auto;
		gap: 12px;
	}
	
	.mosaic.grid_02 {
		gap: 12px;
	}
	
	.mosaic .grid_03 {
		gap: 12px;
	}
}

@media screen and (max-width: 375px) {
	header {
		padding: 24px 16px;
	}
	
	article {
		padding: 0 16px;
		margin: 1px auto 33px auto;
	}
	
	.site_mosaic {
		margin: 24px auto;
	}
	
	footer .copyright {
		padding: 0 16px;
	}
}

@media screen and (max-width: 350px) {
	.copy_intro h1 {
		font-size: 14px;
	}
	
	.copy_main p {
		font-size: 14px;
	}
}

@media screen and (max-height: 1200px) {
	footer {
		position: relative;
		margin: 0 auto;
	}
}