/* ========================================
MAIN VISUAL
======================================== */
.mv{
	position:relative;
	width:100%;
	height:100vh;
	min-height:650px;
	overflow:hidden;
	background:#111;
	animation:mvOpen 1.6s ease forwards;
}
@keyframes mvOpen{
	from{opacity:0;}
	to{opacity:1;}
}

/* ========================================
SLIDER
======================================== */
.slides{
	position:absolute;
	inset:0;
}
.slide{
	position:absolute;
	inset:0;
	opacity:0;
	transition:opacity 1.8s ease;
	overflow:hidden;
}
.slide.active{
	opacity:1;
	z-index:1;
}
.slide-image{
	position:absolute;
	inset:-3%;
	background-position:center;
	background-size:cover;
	transform:scale(1.04);
	transition:transform 8s linear;
}
.slide.active .slide-image{
	transform:scale(1);
}

/* ========================================
MAIN VISUAL OVERLAY
======================================== */
.mv::after{
	content:"";
	position:absolute;
	inset:0;
	z-index:2;
	pointer-events:none;
	background:
		linear-gradient(90deg,rgba(0,0,0,.28) 0%,rgba(0,0,0,.12) 45%,rgba(0,0,0,.10) 70%,rgba(0,0,0,.20) 100%),
		linear-gradient(180deg,rgba(0,0,0,.16) 0%,transparent 35%,rgba(0,0,0,.25) 100%);
}

/* ========================================
MAIN VISUAL CONTENT
======================================== */
.mv-content{
	position:absolute;
	z-index:5;
	left:50%;
	top:50%;
	transform:translate(-50%,-45%);
	width:90%;
	max-width:900px;
	text-align:center;
	color:#fff;
	pointer-events:none;
}
.mv-logo{
	width:400px;
	max-width:58vw;
	margin:0 auto 34px;
	opacity:0;
	transform:translateY(16px);
	animation:mvLogoIn 1.5s ease .6s forwards;
}
.mv-logo img{
	display:block;
	width:100%;
	height:auto;
	filter:drop-shadow(0 2px 10px rgba(0,0,0,.28));
}
.mv-lead{
	font-size:22px;
	font-weight:400;
	line-height:2;
	margin-bottom:0px;
	text-shadow:0 1px 12px rgba(0,0,0,.5);
	opacity:0;
	transform:translateY(12px);
	animation:mvTextIn 1.4s ease 1.05s forwards;
}
.mv-sublead{
	font-size:16px;
	line-height:1.3;
	margin-bottom:10px;
	text-shadow:0 1px 10px rgba(0,0,0,.5);
	opacity:0;
	transform:translateY(10px);
	animation:mvTextIn 1.4s ease 1.3s forwards;
}
.mv-location{
	font-family:"Times New Roman","Times",serif;
	font-size:12px;
	opacity:0;
	animation:mvLocationIn 1.4s ease 1.6s forwards;
}

/* ========================================
MAIN VISUAL ANIMATION
======================================== */
@keyframes mvLogoIn{
	from{
		opacity:0;
		transform:translateY(16px);
	}
	to{
		opacity:1;
		transform:translateY(0);
	}
}
@keyframes mvTextIn{
	from{
		opacity:0;
		transform:translateY(12px);
	}
	to{
		opacity:1;
		transform:translateY(0);
	}
}
@keyframes mvLocationIn{
	from{opacity:0;}
	to{opacity:.85;}
}

/* ========================================
SLIDE NAVIGATION
======================================== */
.slide-nav{
	position:absolute;
	z-index:6;
	right:45px;
	bottom:45px;
	display:flex;
	align-items:center;
	gap:13px;
}
.slide-dot{
	width:36px;
	height:1px;
	padding:0;
	background:rgba(255,255,255,.4);
	border:0;
	cursor:pointer;
	position:relative;
}
.slide-dot::before{
	content:"";
	position:absolute;
	left:0;
	top:0;
	width:0;
	height:1px;
	background:#fff;
}
.slide-dot.active::before{
	width:100%;
	animation:progress 6s linear forwards;
}
@keyframes progress{
	from{width:0;}
	to{width:100%;}
}

/* ========================================
SCROLL
======================================== */
.scroll{
	position:absolute;
	z-index:6;
	left:50%;
	bottom:28px;
	transform:translateX(-50%);
	font-family:Arial,sans-serif;
	font-size:9px;
	text-transform:uppercase;
}
.scroll::after{
	content:"";
	display:block;
	width:1px;
	height:35px;
	margin:10px auto -35px;
	background:#fff;
	opacity:.7;
}


/* ========================================
TABLET
======================================== */
@media(max-width:1280px){
	.mv-content{
		max-width:760px;
	}
	.mv-logo{
		width:340px;
	}
	.mv-lead{
		font-size:22px;
	}
	.mv-sublead{
		font-size:16px;
	}
}

/* ========================================
MOBILE
======================================== */
@media(max-width:768px){
	/* ----------------------------------------
	MAIN VISUAL
	---------------------------------------- */
	.mv{
		min-height:580px;
	}
	.slide-image{
		background-position:center;
	}
	.mv-content{
		top:50%;
		width:86%;
		transform:translate(-50%,-45%);
	}
	.mv-logo{
		width:240px;
		max-width:72vw;
		margin-bottom:24px;
	}
	.mv-lead{
		font-size:16px;
		line-height:1.3;
		margin-bottom:9px;
	}
	.mv-sublead{
		font-size:13px;
		line-height:1.3;
		margin-bottom:18px;
	}
	.mv-location{
		font-size:11px;
	}
	.slide-nav{
		right:20px;
		bottom:28px;
	}
	.slide-dot{
		width:24px;
	}
	.scroll{
		display:none;
	}
}

/* ========================================
SMALL MOBILE
======================================== */
@media(max-width:380px){
	.mv-logo{
		width:215px;
	}
	.mv-lead{
		font-size:16px;
	}
	.mv-sublead{
		font-size:14px;
	}
}

/* ========================================
GREETING
======================================== */
.greeting{
	position:relative;
	padding:70px 0 50px;
	background:#f5f3ee;
	color:#282a27;
	overflow:hidden;
}

/* ----------------------------------------
TITLE
---------------------------------------- */
.greeting-head{
	width:calc(100% - 120px);
	max-width:1280px;
	margin:0 auto 60px;
	text-align:center;
}

.greeting-title{
	font-size:30px;
	font-weight:400;
	line-height:1.8;
	color:#252824;
}

/* ----------------------------------------
BODY
55 : 45
---------------------------------------- */
.greeting-body{
	width:calc(100% - 80px);
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:55% 45%;
	align-items:start;
}

/* ----------------------------------------
IMAGE
---------------------------------------- */
.greeting-image{
	width:100%;
	overflow:hidden;
}

.greeting-image img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
}

/* ----------------------------------------
TEXT
---------------------------------------- */
.greeting-text{
	position:relative;
	z-index:2;
	width:calc(100% + 25px);
	margin-left:-25px;
	padding:0 65px 50px;
}

.greeting-heading{
	margin:-7px 0 30px !important;
	font-size:26px !important;
	font-weight:400;
	line-height:1.6 !important;
}

.greeting-text p{
	margin-bottom:22px;
	font-size:18px;
	font-weight:400;
	line-height:1.8;
}

.greeting-text .greeting-sign{
	margin-top:32px;
	margin-bottom:0;
	font-size:18px;
	text-align:right;
}


/* ========================================
GREETING / TABLET
======================================== */
@media(max-width:1100px){

	.greeting{
		padding:70px 0 50px;
	}

	.greeting-head{
		width:calc(100% - 80px);
		margin-bottom:50px;
	}

	.greeting-title{
		font-size:27px;
	}

	.greeting-body{
		width:calc(100% - 50px);
		grid-template-columns:54% 46%;
		align-items:start;
	}

	.greeting-image{
		height:470px;
	}

	.greeting-text{
		width:calc(100% + 20px);
		margin-left:-20px;
		padding:0 45px 42px;
	}

	.greeting-heading{
		margin:-7px 0 30px !important;
		font-size:24px !important;
	}

	.greeting-text p{
		font-size:18px;
		line-height:1.8;
	}

}


/* ========================================
GREETING / MOBILE
======================================== */
@media(max-width:768px){

	.greeting{
		padding:100px 0 0;
	}

	.greeting-head{
		width:calc(100% - 44px);
		margin-bottom:38px;
	}

	.greeting-title{
		font-size:21px;
		line-height:1.4;
	}

	.greeting-body{
		display:block;
		width:100%;
	}

	.greeting-image{
		width:100%;
		height:58vw;
		min-height:240px;
		max-height:380px;
	}

	.greeting-text{
		width:calc(100% - 44px);
		margin:-18px auto 0;
		padding:38px 28px 35px;
	}

	.greeting-heading{
		margin:0 0 15px !important;
		font-size:22px !important;
		line-height:1.6 !important;
	}

	.greeting-text p{
		margin-bottom:20px;
		font-size:16px;
		line-height:1.8;
	}

	.greeting-text .greeting-sign{
		margin-top:28px;
		font-size:16px;
	}

}


/* ========================================
GREETING / SMALL MOBILE
======================================== */
@media(max-width:380px){

	.greeting{
		padding:55px 0 0;
	}

	.greeting-head{
		margin-bottom:32px;
	}

	.greeting-title{
		font-size:19px;
	}

	.greeting-image{
		height:62vw;
	}

	.greeting-text{
		width:calc(100% - 30px);
		margin-top:-14px;
		padding:32px 22px 30px;
	}

	.greeting-heading{
		margin-top:0 !important;
		font-size:20px !important;
	}

	.greeting-text p{
		font-size:14px;
		line-height:2;
	}

}

/* ========================================
NEWS
======================================== */
.news{
	position:relative;
	padding:50px 0 50px;
	background:#f5f3ee;
	color:#282a27;
}
.news-inner{
	width:calc(100% - 160px);
	max-width:1200px;
	margin:0 auto;
}

/* ----------------------------------------
HEADING
---------------------------------------- */
.news-head{
	margin-bottom:45px;
	text-align:center;
}
.news-heading{
	font-size:30px;
	font-weight:400;
	line-height:1.6;
	letter-spacing:.12em;
}

/* ----------------------------------------
LIST
---------------------------------------- */
.news-list{
	width:100%;
	border-top:1px solid #d5d3cd;
}
.news-item{
	border-bottom:1px solid #d5d3cd;
}
.news-item>a{
	position:relative;
	display:grid;
	grid-template-columns:145px 1fr 40px;
	align-items:center;
	gap:20px;
	min-height:125px;
	padding:25px 10px;
	transition:opacity .3s;
}
.news-item>a:hover{
	opacity:.6;
}

/* ----------------------------------------
DATE
---------------------------------------- */
.news-date{
	align-self:start;
	padding-top:5px;
	font-family:"Times New Roman","Times",serif;
	font-size:18px;
	letter-spacing:.1em;
	color:#444444;
	white-space:nowrap;
}

/* ----------------------------------------
CONTENT
---------------------------------------- */
.news-content{
	min-width:0;
}
.news-title{
	margin-bottom:10px;
	font-size:18px;
	font-weight:500;
	line-height:1.6;
	letter-spacing:.06em;
}
.news-excerpt{
	font-size:16px;
	line-height:1.8;
	color:#444444;
}

/* ----------------------------------------
ARROW
---------------------------------------- */
.news-arrow{
	position:relative;
	display:block;
	width:28px;
	height:1px;
	margin-left:auto;
	background:#77776f;
	transition:width .3s,transform .3s;
}
.news-arrow::after{
	content:"";
	position:absolute;
	right:0;
	top:-3px;
	width:7px;
	height:7px;
	border-top:1px solid #77776f;
	border-right:1px solid #77776f;
	transform:rotate(45deg);
}
.news-item>a:hover .news-arrow{
	width:34px;
	transform:translateX(4px);
}

/* ----------------------------------------
MORE
---------------------------------------- */
.news-more{
	margin-top:35px;
	display:flex;
	justify-content:flex-end;
}
.news-more>a{
	display:flex;
	align-items:center;
	gap:18px;
	font-size:13px;
	letter-spacing:.08em;
	transition:opacity .3s;
}
.news-more>a:hover{
	opacity:.6;
}
.news-more-arrow{
	position:relative;
	display:block;
	width:32px;
	height:1px;
	background:#77776f;
	transition:width .3s,transform .3s;
}
.news-more-arrow::after{
	content:"";
	position:absolute;
	right:0;
	top:-3px;
	width:7px;
	height:7px;
	border-top:1px solid #77776f;
	border-right:1px solid #77776f;
	transform:rotate(45deg);
}
.news-more>a:hover .news-more-arrow{
	width:38px;
	transform:translateX(4px);
}

/* ========================================
NEWS / TABLET
======================================== */
@media(max-width:1100px){

	.news{
		padding:60px 0 60px;
	}
	.news-inner{
		width:calc(100% - 100px);
	}
	.news-head{
		margin-bottom:38px;
	}
	.news-heading{
		font-size:27px;
	}
	.news-item>a{
		grid-template-columns:125px 1fr 35px;
		min-height:115px;
		padding:22px 8px;
	}
.news-date{
	padding-top:4px;
}
	.news-title{
		font-size:18px;
	}
	.news-excerpt{
		font-size:16px;
	}

}

/* ========================================
NEWS / MOBILE
======================================== */
@media(max-width:768px){

	.news{
		padding:50px 0 50px;
	}
	.news-inner{
		width:calc(100% - 44px);
	}
	.news-head{
		margin-bottom:32px;
	}
	.news-heading{
		font-size:22px;
	}
	.news-item>a{
		display:block;
		min-height:0;
		padding:23px 30px 23px 0;
	}
	.news-date{
		display:block;
		margin-bottom:8px;
		font-size:16px;
	}
	.news-title{
		margin-bottom:7px;
		font-size:18px;
		line-height:1.4;
	}
	.news-excerpt{
		display:-webkit-box;
		overflow:hidden;
		font-size:14px;
		line-height:1.8;
		-webkit-box-orient:vertical;
		-webkit-line-clamp:2;
	}
	.news-arrow{
		position:absolute;
		top:50%;
		right:2px;
		width:20px;
		transform:translateY(-50%);
	}
	.news-item>a:hover .news-arrow{
		width:20px;
		transform:translateY(-50%);
	}
	.news-more{
		margin-top:28px;
	}
	.news-more>a{
		font-size:12px;
	}

}

/* ========================================
NEWS / SMALL MOBILE
======================================== */
@media(max-width:380px){

	.news{
		padding:50px 0 50px;
	}
	.news-inner{
		width:calc(100% - 30px);
	}
	.news-heading{
		font-size:20px;
	}
	.news-item>a{
		padding-top:20px;
		padding-bottom:20px;
	}
	.news-title{
		font-size:16px;
	}

}

/* ========================================
GUIDE
======================================== */
.guide{
	position:relative;
	padding:60px 0 60px;
	background:#f5f3ee;
	color:#282a27;
}
.guide-inner{
	width:calc(100% - 120px);
	max-width:1000px;
	margin:0 auto;
}

/* ----------------------------------------
HEADING
---------------------------------------- */
.guide-head{
	margin-bottom:50px;
	text-align:center;
}
.guide-heading{
	font-size:30px;
	font-weight:400;
	line-height:1.6;
}

/* ----------------------------------------
GRID
---------------------------------------- */
.guide-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:34px;
}

/* ----------------------------------------
CARD
---------------------------------------- */
.guide-item{
	min-width:0;
	border:1px solid #ccc9c0;
	background:#fff;
}
.guide-item>a{
	display:block;
	height:100%;
	transition:opacity .3s;
}

/* ----------------------------------------
IMAGE
---------------------------------------- */
.guide-image{
	position:relative;
	margin:20px 20px 0;
	aspect-ratio:8 / 5;
	overflow:hidden;
	background:#eee;
}
.guide-image img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .8s cubic-bezier(.22,1,.36,1);
}
.guide-item>a:hover .guide-image img{
	transform:scale(1.035);
}

/* ----------------------------------------
CONTENT
---------------------------------------- */
.guide-content{
	position:relative;
	min-height:150px;
	padding:26px 58px 28px 28px;
}
.guide-title{
	margin-bottom:13px;
	font-size:20px;
	font-weight:500;
	line-height:1.6;
}
.guide-text{
	font-size:15px;
	line-height:1.7;
	color:#222222;
}

/* ----------------------------------------
ARROW
---------------------------------------- */
.guide-arrow{
	position:absolute;
	right:27px;
	bottom:30px;
	display:block;
	width:27px;
	height:1px;
	background:#77776f;
	transition:width .3s,transform .3s;
}
.guide-arrow::after{
	content:"";
	position:absolute;
	top:-3px;
	right:0;
	width:7px;
	height:7px;
	border-top:1px solid #77776f;
	border-right:1px solid #77776f;
	transform:rotate(45deg);
}
.guide-item>a:hover .guide-arrow{
	width:33px;
	transform:translateX(4px);
}

/* ----------------------------------------
HOVER
---------------------------------------- */
.guide-item>a:hover{
	opacity:.88;
}

/* ========================================
GUIDE / TABLET
======================================== */
@media(max-width:1100px){

	.guide{
		padding:60px 0 60px;
	}
	.guide-inner{
		width:calc(100% - 80px);
	}
	.guide-head{
		margin-bottom:42px;
	}
	.guide-heading{
		font-size:27px;
	}
	.guide-grid{
		grid-template-columns:repeat(2,1fr);
		gap:28px;
	}
	.guide-content{
		min-height:140px;
		padding:24px 52px 25px 25px;
	}
	.guide-title{
		font-size:24px;
	}
	.guide-text{
		font-size:16px;
	}
	.guide-arrow{
		right:24px;
		bottom:27px;
	}

}

/* ========================================
GUIDE / MOBILE
======================================== */
@media(max-width:768px){

	.guide{
		padding:40px 0 50px;
	}
	.guide-inner{
		width:calc(100% - 44px);
	}
	.guide-head{
		margin-bottom:32px;
	}
	.guide-heading{
		font-size:22px;
		line-height:1.7;
	}
	.guide-grid{
		grid-template-columns:1fr;
		gap:22px;
	}
	.guide-image{
		margin:20px 20px 0;
		aspect-ratio:8 / 5;
	}
	.guide-content{
		min-height:0;
		padding:21px 50px 23px 22px;
	}
	.guide-title{
		margin-bottom:8px;
		font-size:20px;
		line-height:1.6;
	}
	.guide-text{
		font-size:15px;
		line-height:1.6;
	}
	.guide-arrow{
		right:21px;
		bottom:25px;
		width:23px;
	}
	.guide-item>a:hover .guide-arrow{
		width:23px;
		transform:none;
	}

}

/* ========================================
GUIDE / SMALL MOBILE
======================================== */
@media(max-width:380px){

	.guide{
		padding:40px 0 40px;
	}
	.guide-inner{
		width:calc(100% - 30px);
	}
	.guide-heading{
		font-size:20px;
	}
	.guide-grid{
		gap:18px;
	}
	.guide-title{
		font-size:18px;
	}
	.guide-content{
		padding:19px 46px 21px 20px;
	}

}

/* ========================================
CELEBRATION
======================================== */
.celebration{
	position:relative;
	padding:60px 0;
	background:#f5f3ee;
	color:#282a27;
	overflow:hidden;
}

.celebration-inner{
	width:calc(100% - 140px);
	max-width:1200px;
	margin:0 auto;
	display:grid;
	grid-template-columns:38% 62%;
	align-items:start;
}

/* ----------------------------------------
CONTENT
---------------------------------------- */
.celebration-content{
	position:relative;
	z-index:2;
	padding:0 70px 20px 0;
}

.celebration-title{
	margin:-8px 0 24px;
	font-size:27px;
	font-weight:400;
	line-height:1.7;
}

.celebration-heading{
	margin-bottom:28px;
	font-size:20px;
	font-weight:400;
	line-height:1.5;
}

.celebration-text{
	max-width:390px;
	font-size:16px;
	line-height:2;
	color:#444444;
}

/* ----------------------------------------
MORE
---------------------------------------- */
.celebration-more{
	display:inline-flex;
	align-items:center;
	gap:22px;
	margin-top:38px;
	padding-bottom:8px;
	font-size:16px;
	border-bottom:1px solid #aaa79f;
	transition:opacity .3s;
}

.celebration-more:hover{
	opacity:.6;
}

.celebration-arrow{
	position:relative;
	display:block;
	width:32px;
	height:1px;
	background:#77776f;
	transition:width .3s,transform .3s;
}

.celebration-arrow::after{
	content:"";
	position:absolute;
	top:-3px;
	right:0;
	width:7px;
	height:7px;
	border-top:1px solid #77776f;
	border-right:1px solid #77776f;
	transform:rotate(45deg);
}

.celebration-more:hover .celebration-arrow{
	width:38px;
	transform:translateX(4px);
}

/* ----------------------------------------
IMAGE
---------------------------------------- */
.celebration-image{
	position:relative;
	width:100%;
	aspect-ratio:16 / 9;
	overflow:hidden;
}

.celebration-image img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center center;
	transition:transform 1.2s cubic-bezier(.22,1,.36,1);
}

.celebration-image:hover img{
	transform:scale(1.025);
}

/* ========================================
CELEBRATION / TABLET
======================================== */
@media(max-width:1100px){

	.celebration{
		padding:60px 0;
	}

	.celebration-inner{
		width:calc(100% - 80px);
		grid-template-columns:40% 60%;
	}

	.celebration-content{
		padding:0 45px 20px 0;
	}

	.celebration-title{
		margin:-7px 0 20px;
		font-size:24px;
	}

	.celebration-heading{
		margin-bottom:22px;
		font-size:20px;
	}

	.celebration-text{
		font-size:16px;
		line-height:1.7;
	}

	.celebration-more{
		margin-top:30px;
	}

}

/* ========================================
CELEBRATION / MOBILE
======================================== */
@media(max-width:768px){

	.celebration{
		padding:50px 0;
	}

	.celebration-inner{
		display:flex;
		width:calc(100% - 44px);
		flex-direction:column-reverse;
	}

	.celebration-image{
		width:100%;
		aspect-ratio:16 / 10;
	}

	.celebration-content{
		width:100%;
		padding:32px 0 0;
	}

	.celebration-title{
		margin:0 0 16px;
		font-size:22px;
		line-height:1.7;
	}

	.celebration-heading{
		margin-bottom:18px;
		font-size:18px;
		line-height:1.7;
	}

	.celebration-text{
		max-width:none;
		font-size:15px;
		line-height:2;
	}

	.celebration-more{
		gap:18px;
		margin-top:27px;
		font-size:15px;
	}

	.celebration-arrow{
		width:27px;
	}

	.celebration-more:hover .celebration-arrow{
		width:27px;
		transform:none;
	}

}

/* ========================================
CELEBRATION / SMALL MOBILE
======================================== */
@media(max-width:380px){

	.celebration{
		padding:40px 0;
	}

	.celebration-inner{
		width:calc(100% - 30px);
	}

	.celebration-content{
		padding-top:27px;
	}

	.celebration-title{
		margin-top:0;
		font-size:20px;
	}

	.celebration-heading{
		font-size:18px;
	}

}
/* ========================================
ACCESS
======================================== */
.access{
	position:relative;
	padding:50px 0 60px;
	background:#f5f3ee;
	color:#282a27;
}
.access-inner{
	width:calc(100% - 120px);
	max-width:1200px;
	margin:0 auto;
}

/* ----------------------------------------
HEADING
---------------------------------------- */
.access-head{
	margin-bottom:45px;
	text-align:center;
}
.access-heading{
	font-size:30px;
	font-weight:400;
	line-height:1.6;
}

/* ----------------------------------------
BODY
---------------------------------------- */
.access-body{
	display:grid;
	grid-template-columns:55% 45%;
	align-items:stretch;
	background:#fff;
}

/* ----------------------------------------
MAP
---------------------------------------- */
.access-map{
	position:relative;
	min-height:440px;
	overflow:hidden;
}
.access-map iframe{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	display:block;
}

/* ----------------------------------------
CONTENT
---------------------------------------- */
.access-content{
	display:flex;
	flex-direction:column;
	justify-content:center;
	padding:55px 55px 50px;
	border:1px solid #d5d3cd;
	border-left:0;
}
.access-name{
	display:flex;
	align-items:baseline;
	flex-wrap:wrap;
	gap:10px;
	margin-bottom:28px;
}
.access-name h3{
	font-size:24px;
	font-weight:400;
	line-height:1.6;
}
.access-kana{
	font-size:16px;
	color:#444444;
}

/* ----------------------------------------
ADDRESS
---------------------------------------- */
.access-address{
	padding:23px 0;
	border-top:1px solid #d5d3cd;
	border-bottom:1px solid #d5d3cd;
}
.access-address>p:first-child{
	display:flex;
	flex-wrap:wrap;
	gap:5px 10px;
	font-size:16px;
	line-height:1.6;
}
.access-tel{
	display:flex;
	align-items:baseline;
	gap:13px;
	margin-top:0px;
}
.access-tel>span{
	font-family:"Times New Roman","Times",serif;
	font-size:18px;
	color:#77776f;
}
.access-tel a{
	font-family:"Times New Roman","Times",serif;
	font-size:24px;
}

/* ----------------------------------------
GUIDE
---------------------------------------- */
.access-guide{
	margin-top:20px;
	font-size:16px;
	line-height:2;
	color:#444444;
}

/* ----------------------------------------
LINKS
---------------------------------------- */
.access-links{
	display:flex;
	flex-wrap:wrap;
	gap:25px 30px;
	margin-top:32px;
}
.access-map-link,
.access-more{
	display:inline-flex;
	align-items:center;
	gap:16px;
	padding-bottom:7px;
	font-size:16px;
	border-bottom:1px solid #aaa79f;
	transition:opacity .3s;
}
.access-map-link:hover,
.access-more:hover{
	opacity:.6;
}
.access-arrow{
	position:relative;
	display:block;
	width:25px;
	height:1px;
	background:#77776f;
	transition:width .3s,transform .3s;
}
.access-arrow::after{
	content:"";
	position:absolute;
	top:-3px;
	right:0;
	width:7px;
	height:7px;
	border-top:1px solid #77776f;
	border-right:1px solid #77776f;
	transform:rotate(45deg);
}
.access-map-link:hover .access-arrow,
.access-more:hover .access-arrow{
	width:30px;
	transform:translateX(3px);
}

/* ========================================
ACCESS / TABLET
======================================== */
@media(max-width:1100px){

	.access{
		padding:50px 0 50px;
	}
	.access-inner{
		width:calc(100% - 80px);
	}
	.access-head{
		margin-bottom:38px;
	}
	.access-heading{
		font-size:28px;
	}
	.access-body{
		grid-template-columns:52% 48%;
	}
	.access-map{
		min-height:400px;
	}
	.access-content{
		padding:42px 38px;
	}
	.access-name{
		margin-bottom:23px;
	}
	.access-name h3{
		font-size:24px;
	}
	.access-address{
		padding:20px 0;
	}
	.access-address>p:first-child{
		font-size:16px;
	}
	.access-tel a{
		font-size:20px;
	}
	.access-guide{
		margin-top:22px;
		font-size:16px;
	}
	.access-links{
		margin-top:27px;
		gap:20px 25px;
	}

}

/* ========================================
ACCESS / MOBILE
======================================== */
@media(max-width:768px){

	.access{
		padding:40px 0 40px;
	}
	.access-inner{
		width:calc(100% - 44px);
	}
	.access-head{
		margin-bottom:32px;
	}
	.access-heading{
		font-size:24px;
	}
	.access-body{
		display:block;
	}
	.access-map{
		min-height:0;
		height:65vw;
		max-height:340px;
	}
	.access-content{
		padding:32px 27px 34px;
		border:1px solid #d5d3cd;
		border-top:0;
	}
	.access-name{
		display:block;
		margin-bottom:10px;
	}
	.access-name h3{
		font-size:20px;
	}
	.access-kana{
		margin-top:3px;
		font-size:14px;
	}
	.access-address{
		padding:10px 0;
	}
	.access-address>p:first-child{
		display:block;
		font-size:16px;
		line-height:1.5;
	}
	.access-address>p:first-child span{
		display:block;
	}
	.access-tel{
		margin-top:0px;
	}
	.access-tel a{
		font-size:20px;
	}
	.access-guide{
		margin-top:20px;
		font-size:16px;
		line-height:1.5;
	}
	.access-links{
		display:block;
		margin-top:27px;
	}
	.access-map-link,
	.access-more{
		display:flex;
		width:100%;
		justify-content:space-between;
		padding:5px 0;
		font-size:16px;
	}
	.access-more{
		margin-top:4px;
	}
	.access-map-link:hover .access-arrow,
	.access-more:hover .access-arrow{
		width:25px;
		transform:none;
	}

}

/* ========================================
ACCESS / SMALL MOBILE
======================================== */
@media(max-width:380px){

	.access{
		padding:40px 0 40px;
	}
	.access-inner{
		width:calc(100% - 30px);
	}
	.access-heading{
		font-size:20px;
	}
	.access-content{
		padding:27px 22px 30px;
	}
	.access-map{
		height:70vw;
	}

}
