@charset "utf-8";
/* ===================================================
	Access CSS
====================================================== */

/* ---------------------------------------------------
main_img & lead
------------------------------------------------------ */
#main_img h1 { padding: 50px 0 30px;}
#main_img .map { border-top: 1px solid #e4e4e4; border-bottom: 1px solid #e4e4e4;}
#main_img .map iframe { display: block; width: 100%; height: 650px;}

#lead { width: 900px; padding-bottom: 90px;}
#lead .cap { font-size: 28px; text-align: left;}
#lead .cap span { font-size: 14px;}
#lead .cmn_table tr:first-child th,
#lead .cmn_table tr:first-child td { padding-top: 0;}
#lead .cmn_table th { width: 165px; padding-left: 20px;}
#lead .cmn_table td div { display: flex; align-items: flex-start; justify-content: space-between;}
#lead .cmn_table td div p { max-width: calc(100% - 220px); margin: 0 0 10px;}
#lead .txt .btn_google { display: block; margin: 10px 0 0; text-align: right;}
#lead .txt .btn_google a { display: inline-flex; align-items: center; padding: 3px 0; position: relative; border-bottom: 1px solid #2f2f2f;}
#lead .txt .btn_google a::before { content: ''; width: 20px; height: 1px; position: absolute; right: 100%; bottom: -1px; background: #fff;}
#lead .txt .btn_google a img { margin: 0 5px 0 0;}
#lead .img { margin: 65px 0 0;}
#lead .img figcaption { margin: 5px 0 0;}

@media screen and (hover: hover) {
	@keyframes arrow_hover {
		0% { opacity: 1; }
		60% { opacity: 1;}
		80% { right: -15px;}
		100% { right: -15px; opacity: 0;}
	}
	#lead .txt .btn_google a:hover { opacity: 1;}
	#lead .txt .btn_google a:hover::before { animation: arrow_hover 1s;}
}
@media screen and (max-width: 600px) {
	#main_img h1 { padding: 30px 0 20px;}
	#main_img .map iframe { height: 300px;}

	#lead { display: block; padding-bottom: 60px;}
	#lead .cap { font-size: 22px;}
	#lead .cap span { display: block;}
	#lead .cmn_table th { width: 100px; padding-left: 0;}
	#lead .cmn_table td div { flex-wrap: wrap;}
	#lead .cmn_table td div p { max-width: none;}
	#lead .img { width: 100%; max-width: none; margin-top: 25px;}
	#lead .img img { width: 100%;}
}



/* ---------------------------------------------------
section
------------------------------------------------------ */
section { padding: 90px 0 115px;}
#sec01,
#sec03 { background: #f3ede0;}

@media screen and (max-width: 600px) {
	section { padding: 50px 0;}
}


/* ---------------------------------------------------
道のり sec01, sec02
------------------------------------------------------ */
section .route_box { display: flex; justify-content: space-around; margin: 85px 0 0; text-align: center;}
section .route { display: flex; flex-direction: column;}
section .route .tit_col { margin: 0 0 30px; color: #af9337; font-size: 18px; line-height: 1.4;}
section .route .tit_col .icon { display: flex; align-items: flex-end; justify-content: center;}
section .route .tit_col .icon::before { content: ''; align-self: center; width: 26px; height: 26px; margin: 0 5px 0 0; background: no-repeat center center;}
section .route .tit_col .time { font-size: 15px;}

section .route ul { display: flex; flex-direction: column; justify-content: space-between; flex-grow: 1; min-height: 565px; margin: 0 auto; position: relative; z-index: 0; text-align: left;}
section .route ul::before { content: ''; width: 30px; height: calc(100% - 10px); position: absolute; top: 5px; left: 0; z-index: -1; background: url(../../access/img/line_dot.svg) repeat-y center top; background-size: 3px auto;}
section .route li { display: flex; align-items: center; padding-left: 40px;}
section .route li:not(.time) { min-height: 30px; position: relative; font-size: 18px;}
section .route li:not(.time)::before { content: ''; width: 30px; height: 30px; background: #fff; border: 9px solid #000; border-radius: 50%; position: absolute; left: 0; top: 50%; box-sizing: border-box; transform: translateY(-50%);}
section .route li.goal { color: #af9337;}
section .route li.goal span span { font-size: 15px;}
section .route li.goal::before { border-color: #af9337;}
section .route li.time { padding: 35px 0 35px 40px; font-size: 14px; letter-spacing: 0.01em;}

#sec01 .route { width: 270px;}
#sec01 .route .tit_col .icon::before { background-image: url(../../access/img/icon_car.svg);}
#sec01 .route .tit_col .icon span { font-size: 22px;}
#sec01 .route ul { width: 210px;}
#sec01 .route li:not(.time)::before { background: #f3ede0;}
#sec02 .route { width: 250px;}
#sec02 .route .tit_col .icon::before { background-image: url(../../access/img/icon_train.svg);}
#sec02 .route .tit_col .icon span { font-size: 20px;}
#sec02 .route ul { width: 230px;}

@media screen and (max-width: 600px) {
	section .route_box,
	section .route,
	section .route ul,
	section .route li { display: block;}
	section .route,
	section .route ul { width: 100% !important;}
	section .route_box { margin-top: 30px; border-bottom: 1px solid #aaa;}
	section .route { padding: 15px; border-top: 1px solid #aaa;}
	section .route .tit_col { padding: 0 30px 0 35px; margin: 0; position: relative; font-size: 14px; line-height: 1.6; text-align: left;}
	section .route .tit_col::before,
	section .route .tit_col::after { content: ''; position: absolute; background: #aaa; top: 50%; transform: translateY(-50%);}
	section .route .tit_col::before { width: 19px; height: 1px; right: 0px; transition: opacity .5s, transform .5s;}
	section .route .tit_col::after { width: 1px; height: 19px; right: 9px; transition: transform .5s;}
	section .route .tit_col.active::before { opacity: 0; transform: rotate(90deg);}
	section .route .tit_col.active::after { transform: translateY(-50%) rotate(90deg);}
	section .route .tit_col .icon { display: block; align-items: flex-end; justify-content: center;}
	section .route .tit_col .icon::before { margin: 0; position: absolute; left: 0; top: 0;}
	section .route .tit_col .time { font-size: 13px;}
	section .route ul { min-height: 0; margin: 20px 0;}

	#sec01 .route .tit_col .icon span { font-size: 18px;}
}


/* ---------------------------------------------------
sec03, sec04
------------------------------------------------------ */
section .flex_box { display: flex; flex-direction: row-reverse; justify-content: space-between;}
section .flex_box .img { width: 500px; max-width: calc(100% - 680px);}
section .flex_box .txt { flex-shrink: 0; width: 650px;}

@media screen and (max-width: 600px) {
	section .flex_box { display: block;}
	section .flex_box .img { width: auto; max-width: none;}
	section .flex_box .img img { width: 100%;}
	section .flex_box .txt { width: auto; margin: 25px 0 0;}
}


/* sec03 */
#sec03 .cmn_tit_h { margin: 0 0 50px;}
#sec03 .cmn_tit_h .note { display: block; width: 110px; padding: 3px 10px; margin: 0 auto; background: #af9337; color: #fff;}
#sec03 .flex_box .cap { margin: 0 0 20px; font-size: 28px;}
#sec03 .cmn_table { margin: 40px 0 0;}
#sec03 .cmn_table tr:first-child th,
#sec03 .cmn_table tr:first-child td { padding-top: 0;}
#sec03 .cmn_table th { width: 100px; padding-left: 20px; vertical-align: middle;}
#sec03 .cmn_table .time span { color: #93802a; font-size: 20px;}
#sec03 .station { display: flex; justify-content: space-between; margin: 70px 0 0;}
#sec03 .station figure { max-width: calc((100% - 20px) / 2);}
#sec03 .station figcaption { display: block; padding: 10px 0; background: #e1d3b4; font-size: 18px; text-align: center;}
#sec03 .info { display: flex; padding: 40px 55px; margin: 60px 0 0; background: #fff;}
#sec03 .info dt { flex-shrink: 0; display: flex; align-items: center; padding: 10px 50px 10px 0; font-size: 25px;}
#sec03 .info dd { display: flex; align-items: center; padding: 10px 0 10px 60px; border-left: 1px solid #cdcdcd; font-size: 14px;}
#sec03 .info dd .tel { flex-shrink: 0; padding: 0 0 0 30px; margin: 0 50px 0 0; position: relative;}
#sec03 .info dd .tel .tel-link { font-size: 30px; line-height: 1.4;}
#sec03 .info dd .tel .tel-link::before { content: ''; width: 25px; height: 42px; position: absolute; left: 0; top: 0; background: url(../../access/img/icon_tel.svg) no-repeat center center;}

@media screen and (max-width: 600px) {
	#sec03 .cmn_tit_h { margin-bottom: 30px;}
	#sec03 .cmn_tit_h .note { font-size: 14px;}
	#sec03 .flex_box .cap { margin-bottom: 10px; font-size: 18px;}
	#sec03 .cmn_table { margin-top: 20px;}
	#sec03 .cmn_table th { width: 80px; padding-left: 0; vertical-align: top;}
	#sec03 .cmn_table .time span { display: block; font-size: 18px; line-height: 1.4;}
	#sec03 .station { display: block; margin-top: 30px;}
	#sec03 .station figure { max-width: none;}
	#sec03 .station figure + figure { margin: 20px 0 0;}
	#sec03 .station figcaption { font-size: 16px;}
	#sec03 .info { display: block; padding: 20px; margin-top: 30px;}
	#sec03 .info dt { display: block; padding: 0 0 10px 0; font-size: 20px; text-align: center;}
	#sec03 .info dd { display: block; padding: 0; border-left: none; font-size: 14px;}
	#sec03 .info dd .tel { padding: 0; margin: 0 0 15px; text-align: center;}
	#sec03 .info dd .tel .tel-link { display: inline-block; padding: 0 0 0 23px; position: relative; font-size: 20px; line-height: 1.4;}
	#sec03 .info dd .tel .tel-link::before { width: 16px; height: 28px; background-size: 100% auto;}
}


/* sec04 */
#sec04 { padding-bottom: 90px;}
#sec04 .cmn_tit_h { margin: 0 0 45px;}
#sec04 .img figcaption { display: block; padding: 10px 0; background: #f3ede0; text-align: center;}
#sec04 .cmn_table th,
#sec04 .cmn_table td { vertical-align: middle;}
#sec04 .cmn_table thead th:first-child,
#sec04 .cmn_table tbody th { background: #f3ede0; border-color: #cdc6b7; padding: 15px 50px;}
#sec04 .cmn_table thead th:not(:first-child),
#sec04 .cmn_table tbody td { border-color: #aaa;}
#sec04 .cmn_table thead th:first-child { width: 235px;}
#sec04 .cmn_table thead th:not(:first-child) { width: auto;}
#sec04 .cmn_table thead th { font-weight: bold; text-align: center;}
#sec04 .cmn_table tbody td { text-align: center;}

@media screen and (max-width: 600px) {
	#sec04 { padding-bottom: 60px;}
	#sec04 .cmn_tit_h { margin-bottom: 30px;}
	#sec04 .img span { padding: 8px 0;}
	#sec04 .cmn_table thead th:first-child,
	#sec04 .cmn_table tbody th { padding: 10px 5px;}
	#sec04 .cmn_table thead th:first-child { width: 38%;}
}

