﻿@charset "UTF-8";

* {

	margin: 0;
	padding: 0;
	box-sizing: border-box;

}

.clearfix:after {

	content: "";
	display: block;
	clear: both;
	
}

img {
	
	width: 100%;
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
	border: none;
	
}

li {

	list-style: none;
	
}

a {

	color: #333;
	text-decoration: none;

}

::-moz-selection {
	
	color: #fff;
	background: #C8B558;
	
}

::selection {
	
	color: #fff;
	background: #C8B558;
	
}

/* HTML */
html {

	min-width: 320px;
	font-size: 62.5%;
	overflow-x: hidden;
	text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	overflow-x: hidden;
	
}

/* ボディ */
body {

	min-width: 320px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 15.5px;
	line-height: 1.7;
	color: #000;
	letter-spacing: 0.08em;
	-webkit-text-size-adjust: 100%;
	overflow-x: hidden;

/*
	font-family: source-han-sans-japanese, sans-serif;
*/
	font-style: normal;
  font-weight: 400;
  font-family: 'Noto Sans JP', sans-serif;

}

main {
	
	display: block;

}

/* ヘッダー */
header {

	position: absolute;
	top:  0;
	left: 0;
	width: 100%;
	z-index: 2;
	padding-top:  3rem;
	padding-left: 2.6rem;

}

header h1 {

	float: left;
	width: 12.7rem;
	line-height: 1;

}

header .access_bnr {

	float: right;
	display: block;
	width: 23.7rem;
	margin-top: 4.3rem;
	transition: all 0.3s;

}

@media (any-hover: hover) {

	header .access_bnr:hover {
	
		opacity: 0.8;
		transform: scale(1.05);
	
	}

}

.video {

	width: 100%;
	box-shadow: 0 1rem 1rem rgba(0,0,0, 0.4);

}

#greeting {
	
	position: relative;
	padding-top:    32rem;
	padding-bottom: 8rem;

}

#greeting h2 {
	
	opacity: 0;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-size: 3rem;
	font-style: normal;
  font-weight: 900;
  line-height: 1.65;
  color: #fff;
  letter-spacing: 0.64em;
  transform: translateX(8.4rem);

}

#greeting h2.active {
	
	opacity: 1;
	transform: translateX(0.4em);
	transition: all 0.4s;

}

#greeting .solve {
	
	opacity: 0;
	margin-top: 15.8rem;
	margin-left: 6.6rem;
	margin-bottom: 10rem;
	font-family: din-2014, sans-serif;
	font-size: 8.6rem;
	font-style: normal;
  font-weight: 600;
  color: #c8b558;
  letter-spacing: 0.52em;
  transform: translateX(8rem);

}

#greeting .solve.active {

	opacity: 1;
	transform: translateX(0);
	transition: all 0.4s;

}

#greeting .solve .word1 {

	margin-right: 0.28em;

}

#greeting .solve .word2 {

	margin-right: 0.28em;

}

#greeting .solve .word3 {

	letter-spacing: 0.512em;

}

#greeting .bg1 {

	position: absolute;
	top:   -1rem;
	right: 0;
	z-index: -1;
	width:  169.5rem;
	height: 74rem;
	background-image: url('../img/greeting_bg1.webp');
	background-size: cover;
	background-position: center center;
	
}

#greeting .bg2 {

	position: absolute;
	top:  -1rem;
	left: 0;
	z-index: -2;
	width:  100%;
	height: 266.4rem;
	height: calc(100% + 1rem);
	background-image: url('../img/greeting_bg2.webp');
	background-size: cover;
	background-position: center center;
	
}

#greeting .bg3 {

	position: absolute;
	bottom: 0;
	left:   0;
	z-index: -1;
	width:  100%;
	height: 53rem;
	-webkit-clip-path: polygon(0 39%, 100% 0, 100% 100%, 0 100%);
	        clip-path: polygon(0 39%, 100% 0, 100% 100%, 0 100%);
	background: rgba(255,255,255, 0.5);
	
}

#greeting .bnr_wrap {

	width: 120rem;
	margin: 0 auto;
	margin-bottom: 27.6rem;

}

#greeting .bnr_wrap .bnr {
	
	opacity: 0;
	float: left;
	display: block;
	width: 50.2rem;
	transform: translateY(4rem);
	transition: all 0.3s;

}

#greeting .bnr_wrap .bnr.active {
	
	opacity: 1;
	transform: translateY(0);
	transition: all 0.4s;

}

@media (any-hover: hover) {

	#greeting .bnr_wrap .bnr:hover {
	
		transform: scale(1.025);
	
	}

}

#greeting .bnr_wrap .bnr:nth-child(even) {

	float: right;

}

#greeting .bnr_wrap .bnr:nth-child(1), #greeting .bnr_wrap .bnr:nth-child(2) {

	margin-bottom: 5rem;

}

#greeting h3 {
	
	opacity: 0;
	margin-bottom: 1rem;
	text-align: center;
	font-size: 2.4rem;
	font-weight: 900;
	letter-spacing: 0.53em;
	transform: translateX(6rem);

}

#greeting h3.active {

	opacity: 1;
	transform: translateX(0.6em);
	transition: all 0.4s;

}

#greeting h3 span {
	
	display: inline-block;
	margin-left: 0.8em;

}

#greeting .name {
	
	opacity: 0;
	margin-bottom: 6rem;
	text-align: center;
	font-size: 2.4rem;
	font-weight: 900;
	transform: translateY(4rem);

}

#greeting .name.active {

	opacity: 1;
	transform: translateY(0);
	transition: all 0.4s 0.1s;

}

#greeting .name .ja {

	display: block;
	letter-spacing: 0.5em;
	transform: translateX(0.2em);

}

#greeting .name .line {

	display: block;
	width: 11.4rem;
	width: 0;
	height: 0.2rem;
	margin: 0 auto;
	margin-top: 0.2rem;
	margin-bottom: 0.5rem;
	background: #000;

}

#greeting .name.active .line {

	width: 11.4rem;
	transition: all 0.4s 0.5s;

}

#greeting .name .en {

	display: block;
	font-size: 1.6rem;
	letter-spacing: 0.57em;
	transform: translateX(0.4em);
	
}

#greeting .uehara {

	width: 79.2rem;
	margin: 0 auto;
	margin-bottom: 6rem;

}

#greeting .message {
	
	opacity: 0;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 2.1;
	letter-spacing: 0.52em;
	transform: translateX(6rem);

}

#greeting .message.active {
	
	opacity: 1;
	transform: translateX(0.3em);
	transition: all 0.4s;

}

#access {
	
	padding-top: 16rem;
	color: #fefefe;
	background: #393D4C;

}

#access h2 {
	
	opacity: 0;
	margin-bottom: 2.5rem;
	text-align: center;
	font-family: din-2014, sans-serif;
	font-size: 2.4rem;
  letter-spacing: 0.5em;
  transform: translateX(6rem);

}

#access h2.active {

	opacity: 1;
	transform: translateX(0.28em);
	transition: all 0.4s;

}

#access .addr {
	
	opacity: 0;
	margin-bottom: 3.8rem;
	text-align: center;
	font-size: 2rem;
	letter-spacing: 0.16em;
	transform: translateX(6rem);

}

#access .addr.active {

	opacity: 1;
	transform: translateX(0);
	transition: all 0.4s;

}

#access .postal {

	display: inline-block;
	margin-right: 1em;

}

#access .map {

	display: block;
	height: 21.2rem;
	margin-bottom: 4.6rem;
	background-image: url('../img/map.webp');
	background-size: cover;
	background-position: center center;
	transition: all 0.3s;

}

#access .map_btn {

	display: block;
	width: 30.1rem;
	margin: 0 auto;
	transition: all 0.3s;

}

@media (any-hover: hover) {

  #access .map:hover {
		
		opacity: 0.7;
  
  }
  
  #access .map_btn:hover {
  
  	opacity: 0.8;
  	transform: scale(1.05);
  
  }
  
}

footer {

	padding-top: 17.5rem;
	padding-bottom: 2rem;
	text-align: center;
	color: #fefefe;
	background: #393D4C;

}

footer .top_btn {
	
	display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  margin-bottom: 10.9rem;
	text-align: center;
	font-size: 3rem;
	font-weight: 900;
	line-height: 2.2;
	color: #fefefe;
	letter-spacing: 0.2em;
	transform: translateX(0.2em);

}

footer .top_btn img {
	
	display: block;
	width: 4.7rem;
	transform: translateX(0.3em);

}

footer .logo {
	
	width: 16rem;
	margin: 0 auto;
	transform: translateX(-1.3rem);

}

footer .logo img {

	width: 100%;

}

footer .ja {
	
	font-family: toppan-bunkyu-midashi-go-std, sans-serif;
	font-style: normal;
  font-weight: 900;
	font-size: 4.8rem;
	line-height: 1;
	letter-spacing: 0.48em;

}

footer .en {
	
	margin-top: 0.3rem;
	margin-bottom: 4.8rem;
	font-family: din-2014, sans-serif;
	font-style: normal;
  font-weight: 600;
	font-size: 3rem;
	letter-spacing: 0.31em;

}

footer .copy {
	
	font-size: 2.4rem;
	letter-spacing: 0.175em;
	
}

.cursor {

  position: fixed;
  top:  0;
  left: 0;
  z-index: 9999;
  width:  13px;
  height: 13px;
  border-radius: 50%;
  background: #232323;
  pointer-events: none;
  
}

#circle {

  position: fixed;
  top:  0;
  left: 0;
  z-index: 9999;
  font-family: 'Noto Sans JP', sans-serif;
	font-size: 22px;
	font-weight: 500;
  border-radius: 100%;
  pointer-events: none;
  
}

#circle span {

  position: absolute;
  display: inline-block;
  width: 28px;
  text-align: center;
  color: #eee;
  transform-origin: top left;
  
}

/* スマホ改行 */
.sp_break {

	display: none;

}


@media only screen and (max-width: 1820px) {

	html {
		
		font-size: 59.25%;
		
	}

}


/* MacBook Pro16 */
@media only screen and (max-width: 1728px) {

	html {
		
		font-size: 56.25%;
		
	}

}


@media only screen and (max-width: 1670px) {

	html {
		
		font-size: 54.375%;
		
	}

}


@media only screen and (max-width: 1620px) {

	html {
		
		font-size: 52.75%;
		
	}

}


@media only screen and (max-width: 1570px) {

	html {
		
		font-size: 51.125%;
		
	}

}


/* MacBook Pro14 */
@media only screen and (max-width: 1512px) {

	html {
		
		font-size: 49.25%;
		
	}

}


@media only screen and (max-width: 1440px) {

	html {
		
		font-size: 46.875%;
		
	}

}


@media only screen and (max-width: 1400px) {

	html {
		
		font-size: 45.562%;
		
	}

}


/* 中サイズ */
@media only screen and (max-width: 1366px) {

	html {
		
		font-size: 44.4375%;
		
	}

}


@media only screen and (max-width: 1320px) {

	html {
		
		font-size: 43%;
		
	}

}


/* MacBook Air */
@media only screen and (max-width: 1280px) {

	html {
		
		font-size: 41.6875%;
		
	}

}

@media only screen and (max-width: 1240px) {

	html {
		
		font-size: 40.375%;
		
	}

}


@media only screen and (max-width: 1200px) {

	html {
		
		font-size: 39.0625%;
		
	}

}


/* iPad Pro11の横 */
@media only screen and (max-width: 1194px) {

	html {
		
		font-size: 38.875%;
		
	}

}


/* iPad 5th Airの横 */
@media only screen and (max-width: 1180px) {

	html {
		
		font-size: 38.4375%;
		
	}

}


/* iPad 6th Miniの横 */
@media only screen and (max-width: 1133px) {

	html {
		
		font-size: 36.875%;
		
	}

}


@media only screen and (max-width: 1100px) {

	html {
		
		font-size: 35.8125%;
		
	}

}


/* iPad 9thの横 */
@media only screen and (max-width: 1080px) {

	html {
		
		font-size: 35.8125%;
		
	}

}


/* iPadPro */
@media only screen and (max-width: 1024px) {

	html {
		
		font-size: 33.3125%;
		
	}

}


@media only screen and (max-width: 950px) {

	html {
		
		font-size: 30.937%;
		
	}
	
}


/* iPhone14 ProMaxの横 */
@media only screen and (max-width: 932px) {

	html {
		
		font-size: 30.937%;
		
	}
	
}


/* XRの横 */
@media only screen and (max-width: 896px) {

	html {
		
		font-size: 29.2%;
		
	}
	
}


/* AndroidのＬの横 */
@media only screen and (max-width: 854px) {

	html {
		
		font-size: 27.8125%;
		
	}

}


/* iPhone14 Proの横 */
@media only screen and (max-width: 852px) {

	html {
		
		font-size: 27.75%;
		
	}

}


/* iPhone14の横*/
@media only screen and (max-width: 844px) {

	html {
		
		font-size: 27.5%;
		
	}

}


/* iPad Pro11 */
@media only screen and (max-width: 834px) {

	html {
		
		font-size: 27.125%;
		
	}
	
	/* 改行 */
	.sp_break {
		
		display: block;
	
	}
	
	/* ヘッダー */
	header {

		top:  0;
		left: 0;
		z-index: 2;
		padding-top:  5rem;
		padding-left: 4rem;

	}

	header h1 {

		float: left;
		width: 28rem;

	}

	header .access_bnr {

		float: right;
		width: 48rem;
		margin-top: 3rem;

	}

	.video {

		width: 100%;
		box-shadow: 0 1rem 1rem rgba(0,0,0, 0.4);

	}

	#greeting {
		
		padding-top:    32rem;
		padding-bottom: 14rem;

	}

	#greeting h2 {
		
		display: none;
		opacity: 0;
	  width: -moz-fit-content;
	  width: fit-content;
		font-size: 3rem;
	  line-height: 1.65;
	  letter-spacing: 0.64em;
	  transform: translateX(8.4rem);

	}

	#greeting h2.active {
		
		opacity: 1;
		transform: translateX(0.4em);
		transition: all 0.4s;

	}

	#greeting .solve {
		
		opacity: 0;
		margin-top: 15.8rem;
		margin-left: 6.6rem;
		margin-bottom: 10rem;
		font-size: 14rem;
		line-height: 1.43;
	  letter-spacing: 0.52em;
	  transform: translateX(8rem);

	}

	#greeting .solve.active {

		opacity: 1;
		transform: translateX(0);
		transition: all 0.4s;

	}

	#greeting .solve .word1 {
		
		display: block;
		margin-right: 0.28em;

	}

	#greeting .solve .word2 {
		
		display: block;
		margin-right: 0.28em;

	}

	#greeting .solve .word3 {
		
		display: block;
		letter-spacing: 0.512em;

	}

	#greeting .bg1 {

		position: absolute;
		top:   -2rem;
		right: 0;
		z-index: -1;
		width:  100%;
		height: 100rem;
		background-image: url('../img/greeting_bg1.webp');
		background-size: cover;
		background-position: center center;
		
	}

	#greeting .bg2 {

		position: absolute;
		top:  -1rem;
		left: 0;
		z-index: -2;
		width:  100%;
		height: 266.4rem;
		height: calc(100% + 1rem);
		background-image: url('../img/greeting_bg2.webp');
		background-size: cover;
		background-position: top left;
		
	}

	#greeting .bg3 {

		position: absolute;
		bottom: 0;
		left:   0;
		z-index: -1;
		width:  100%;
		height: 130rem;
		-webkit-clip-path: polygon(0 20%, 100% 0, 100% 100%, 0 100%);
		        clip-path: polygon(0 20%, 100% 0, 100% 100%, 0 100%);
		background: rgba(255,255,255, 0.5);
		
	}

	#greeting .bnr_wrap {

		width: 78%;
		margin: 0 auto;
		margin-bottom: 32rem;

	}

	#greeting .bnr_wrap .bnr {
		
		opacity: 0;
		float: none;
		width: 100%;
		margin-bottom: 14rem;
		transform: translateY(4rem);
		transition: all 0.3s;

	}

	#greeting .bnr_wrap .bnr.active {
		
		opacity: 1;
		transform: translateY(0);
		transition: all 0.4s;

	}

	#greeting .bnr_wrap .bnr:nth-child(even) {

		float: none;

	}

	#greeting .bnr_wrap .bnr:nth-child(1), #greeting .bnr_wrap .bnr:nth-child(2) {

		margin-bottom: 14rem;

	}

	#greeting h3 {
		
		opacity: 0;
		margin-bottom: 3rem;
		font-size: 6rem;
		letter-spacing: 0.25em;
		transform: translateX(6rem);

	}

	#greeting h3.active {

		opacity: 1;
		transform: translateX(0.6em);
		transition: all 0.4s;

	}

	#greeting h3 span {
		
		margin-left: 0.8em;

	}

	#greeting .name {
		
		opacity: 0;
		margin-bottom: 12rem;
		text-align: center;
		font-size: 6rem;
		transform: translateY(4rem);

	}

	#greeting .name.active {

		opacity: 1;
		transform: translateY(0);
		transition: all 0.4s 0.1s;

	}

	#greeting .name .ja {

		display: block;
		letter-spacing: 0.4em;
		transform: translateX(0.2em);

	}

	#greeting .name .line {

		width: 0;
		height: 0.4rem;
		margin-top:    1rem;
		margin-bottom: 1rem;

	}

	#greeting .name.active .line {

		width: 20rem;
		transition: all 0.4s 0.5s;

	}

	#greeting .name .en {

		font-size: 4rem;
		letter-spacing: 0.57em;
		transform: translateX(0.4em);
		
	}

	#greeting .uehara {

		width: 78%;
		margin-bottom: 10rem;

	}

	#greeting .message {
		
		opacity: 0;
	  width: -moz-fit-content;
	  width: fit-content;
	  margin: 0 auto;
		font-size: 5rem;
		line-height: 1.7;
		letter-spacing: 0.35em;
		transform: translateX(6rem);

	}

	#greeting .message.active {
		
		opacity: 1;
		transform: translateX(0.3em);
		transition: all 0.4s;

	}

	#access {
		
		padding-top: 20rem;

	}

	#access h2 {
		
		opacity: 0;
		margin-bottom: 3.5rem;
		font-size: 6.4rem;
	  letter-spacing: 0.5em;
	  transform: translateX(6rem);

	}

	#access h2.active {

		opacity: 1;
		transform: translateX(0.28em);
		transition: all 0.4s;

	}

	#access .addr {
		
		opacity: 0;
		margin-bottom: 9rem;
		font-size: 4.8rem;
		letter-spacing: 0.1em;
		transform: translateX(6rem);

	}

	#access .addr.active {

		opacity: 1;
		transform: translateX(0);
		transition: all 0.4s;

	}

	#access .postal {

		margin-right: 1em;

	}

	#access .map {

		height: 48rem;
		margin-bottom: 8rem;
		background-image: url('../img/map.webp');
		background-size: cover;
		background-position: center center;
		transition: all 0.3s;

	}

	#access .map_btn {

		width: 74rem;
		transition: all 0.3s;

	}

	footer {

		padding-top: 22rem;
		padding-bottom: 5rem;

	}

	footer .top_btn {
		
	  width: -moz-fit-content;
	  width: fit-content;
	  margin-bottom: 15rem;
		font-size: 6rem;
		line-height: 2.2;
		letter-spacing: 0.2em;
		transform: translateX(0.2em);

	}

	footer .top_btn img {
		
		width: 9rem;
		transform: translateX(0.4em);

	}

	footer .logo {
		
		width: 28rem;
		transform: translateX(-1.3rem);

	}

	footer .ja {
		
		font-size: 7.6rem;
		letter-spacing: 0.15em;
		white-space: nowrap;

	}

	footer .en {
		
		margin-top: 3rem;
		margin-bottom: 10rem;
		font-size: 5.4rem;
		letter-spacing: 0.35em;
		white-space: nowrap;

	}

	footer .copy {
		
		font-size: 4.2rem;
		letter-spacing: 0.12em;
		white-space: nowrap;
		
	}

}


/* iPad Air */
@media only screen and (max-width: 820px) {

	html {
		
		font-size: 26.687%;
		
	}

}


/* iPhone13 miniの横 */
@media only screen and (max-width: 812px) {

	html {
		
		font-size: 26.437%;
		
	}

}


/* iPad 9th */
@media only screen and (max-width: 810px) {

	html {
		
		
		
	}

}


/* iPad */
@media only screen and (max-width: 768px) {

	html {
		
		font-size: 25%;
		
	}

}


/* iPad 6th Mini */
@media only screen and (max-width: 744px) {

	html {
		
		font-size: 24.25%;
		
	}

}


/* iPhonePlusの横 */
@media only screen and (max-width: 736px) {

	html {
		
		font-size: 23.937%;
		
	}

}


/* iPhone8の横 */
@media only screen and (max-width: 667px) {

	html {
		
		font-size: 21.687%;
		
	}

}


/* iPhone5の横 */
@media only screen and (max-width: 568px) {

	html {
		
		font-size: 18.5%;
		
	}

}


/* AndLoidL */
@media only screen and (max-width: 480px) {

	html {
		
		font-size: 15.625%;
		
	}
	
	header {

		top:  0;
		left: 0;
		z-index: 2;
		padding-top:  5rem;
		padding-left: 4rem;

	}

	header h1 {

		float: left;
		width: 38rem;

	}

	header .access_bnr {

		float: right;
		width: 74rem;
		margin-top: 3rem;

	}

	.video {

		width: 100%;
		box-shadow: 0 1rem 1rem rgba(0,0,0, 0.4);

	}

	#greeting {
		
		padding-top:    31rem;
		padding-bottom: 16rem;

	}

	#greeting h2 {
		
		display: none;
		font-size: 3rem;
	  line-height: 1.65;
	  letter-spacing: 0.64em;
	  transform: translateX(8.4rem);

	}

	#greeting h2.active {
		
		opacity: 1;
		transform: translateX(0.4em);
		transition: all 0.4s;

	}

	#greeting .solve {
		
		opacity: 0;
		margin-top: 15.8rem;
		margin-left: 8rem;
		margin-bottom: 12rem;
		font-size: 15rem;
		line-height: 1.41;
	  letter-spacing: 0.52em;
	  transform: translateX(8rem);

	}

	#greeting .solve.active {

		opacity: 1;
		transform: translateX(0);
		transition: all 0.4s;

	}

	#greeting .solve .word1 {
		
		display: block;
		margin-right: 0.28em;

	}

	#greeting .solve .word2 {
		
		display: block;
		margin-right: 0.28em;

	}

	#greeting .solve .word3 {
		
		display: block;
		letter-spacing: 0.512em;

	}

	#greeting .bg1 {

		top:   -4rem;
		right: 0;
		z-index: -1;
		width:  100%;
		height: 104rem;
		
	}

	#greeting .bg2 {

		top:  -1rem;
		left: 0;
		z-index: -2;
		width:  100%;
		height: 266.4rem;
		height: calc(100% + 1rem);
		
	}

	#greeting .bg3 {

		bottom: 0;
		left:   0;
		z-index: -1;
		width:  100%;
		height: 140rem;
		-webkit-clip-path: polygon(0 18%, 100% 0, 100% 100%, 0 100%);
		        clip-path: polygon(0 18%, 100% 0, 100% 100%, 0 100%);
		background: rgba(255,255,255, 0.6);
		
	}

	#greeting .bnr_wrap {

		width: 78%;
		margin-bottom: 32rem;

	}

	#greeting .bnr_wrap .bnr {
		
		opacity: 0;
		float: none;
		width: 100%;
		margin-bottom: 14rem;
		transform: translateY(4rem);
		transition: all 0.3s;

	}

	#greeting .bnr_wrap .bnr.active {
		
		opacity: 1;
		transform: translateY(0);
		transition: all 0.4s;

	}

	#greeting .bnr_wrap .bnr:nth-child(even) {

		float: none;

	}

	#greeting .bnr_wrap .bnr:nth-child(1), #greeting .bnr_wrap .bnr:nth-child(2) {

		margin-bottom: 14rem;

	}

	#greeting h3 {
		
		opacity: 0;
		margin-bottom: 4rem;
		font-size: 6.8rem;
		letter-spacing: 0.16em;
		transform: translateX(6rem);
		white-space: nowrap;

	}

	#greeting h3.active {

		opacity: 1;
		transform: translateX(0.6em);
		transition: all 0.4s;

	}

	#greeting h3 span {
		
		margin-left: 0.8em;

	}

	#greeting .name {
		
		opacity: 0;
		margin-bottom: 14rem;
		font-size: 7rem;
		transform: translateY(4rem);

	}

	#greeting .name.active {

		opacity: 1;
		transform: translateY(0);
		transition: all 0.4s 0.1s;

	}

	#greeting .name .ja {

		display: block;
		letter-spacing: 0.4em;
		transform: translateX(0.2em);

	}

	#greeting .name .line {

		width: 0;
		height: 0.5rem;
		margin-top:    1.6rem;
		margin-bottom: 1.6rem;

	}

	#greeting .name.active .line {

		width: 31rem;
		transition: all 0.4s 0.5s;

	}

	#greeting .name .en {

		font-size: 5rem;
		letter-spacing: 0.5em;
		transform: translateX(0.4em);
		
	}

	#greeting .uehara {

		width: 78%;
		margin-bottom: 12rem;

	}

	#greeting .message {
		
		opacity: 0;
		font-size: 5.4rem;
		line-height: 1.8;
		letter-spacing: 0.3em;
		transform: translateX(6rem);

	}

	#greeting .message.active {
		
		opacity: 1;
		transform: translateX(0.3em);
		transition: all 0.4s;

	}

	#access {
		
		padding-top: 24rem;

	}

	#access h2 {
		
		opacity: 0;
		margin-bottom: 3.5rem;
		font-size: 8rem;
	  letter-spacing: 0.5em;
	  transform: translateX(6rem);

	}

	#access h2.active {

		opacity: 1;
		transform: translateX(0.28em);
		transition: all 0.4s;

	}

	#access .addr {
		
		opacity: 0;
		margin-bottom: 12rem;
		font-size: 5.4rem;
		letter-spacing: 0.08em;
		transform: translateX(6rem);

	}

	#access .addr.active {

		opacity: 1;
		transform: translateX(0);
		transition: all 0.4s;

	}

	#access .postal {

		margin-right: 1em;

	}

	#access .map {

		height: 56rem;
		margin-bottom: 12rem;
		background-image: url('../img/map.webp');
		transition: all 0.3s;

	}

	#access .map_btn {

		width: 90rem;
		transition: all 0.3s;

	}

	footer {

		padding-top: 24rem;
		padding-bottom: 6rem;

	}

	footer .top_btn {
		
	  margin-bottom: 16rem;
		font-size: 8rem;
		line-height: 2.2;
		letter-spacing: 0.2em;
		transform: translateX(0.2em);

	}

	footer .top_btn img {
		
		width: 11rem;
		transform: translateX(0.4em);

	}

	footer .logo {
		
		width: 32rem;
		transform: translateX(-1.3rem);

	}

	footer .ja {
		
		font-size: 8rem;
		letter-spacing: 0.16em;

	}

	footer .en {
		
		margin-top: 3.4rem;
		margin-bottom: 12rem;
		font-size: 6rem;
		letter-spacing: 0.4em;

	}

	footer .copy {
		
		font-size: 4.8rem;
		letter-spacing: 0.06em;
		
	}

}


/* Iphone13 Pro Max */
@media only screen and (max-width: 430px) {

	html {
		
		font-size: 14%;
		
	}

}


/* Iphone12 Pro Max */
@media only screen and (max-width: 428px) {

	html {
		
		
		
	}

}


/* iPhonePlus */
@media only screen and (max-width: 414px) {

	html {
		
		font-size: 13.5%;
		
	}

}


/* iPhone14 Pro */
@media only screen and (max-width: 393px) {

	html {
		
		font-size: 12.812%;
		
	}

}


/* iPhone12 Pro */
@media only screen and (max-width: 390px) {

	html {
		
		font-size: 12.687%;
		
	}

}


/* iPhone8 */
@media only screen and (max-width: 375px) {

	html {
		
		font-size: 12.187%;
		
	}

}


/* Galaxy */
@media only screen and (max-width: 360px) {

	html {
		
		font-size: 11.75%;
		
	}

}


/* iPhone5 */
@media only screen and (max-width: 320px) {

	html {
		
		font-size: 10.437%;
		
	}

}