@charset "UTF-8";
/* CSS Document */

/*/// ページ内共通 ///*/
.subHeading {
	/* PC時の最大45px 〜 画面幅に応じて滑らかに縮小 〜 SP時の22pxで止まる指定 */
	font-size: clamp(22px, 3.2vw, 45px); 
	line-height: 1.444;
	letter-spacing: 0.2em;
}

.subHeading02 {
	/* PC時の最大45px 〜 画面幅に応じて滑らかに縮小 〜 SP時の18pxで止まる指定 */
	font-size: clamp(18px, 3.2vw, 24px); 
	line-height: 1.444;
	letter-spacing: 0.2em;
	margin-bottom: 6.07142857%;
}

.subHeading03 {
	/* PC時の最大36px 〜 画面幅に応じて滑らかに縮小 〜 SP時の22pxで止まる指定 */
	font-size: clamp(22px, 3.2vw, 36px); 
	line-height: 1.444;
	letter-spacing: 0.2em;
	margin-bottom: 6.07142857%;
}

.read {
	/* PC時の最大15px 〜 画面幅に応じて滑らかに縮小 〜 SP時の12pxで止まる指定 */
  	font-size: clamp(14px, 1.1vw, 18px);
	line-height: 1.933;
	letter-spacing: 0.2em;
}

/* 各段落の制御 */
.access .read-paragraph {
  display: block; /* 縦に並べる（spanタグなどのインライン対策） */
}

/* 2つ目以降の段落の頭に、可変する空行（マージン）をつくる */
.access .read-paragraph + .read-paragraph {
  margin-top: clamp(14px, 2.1vw, 30px); 
}


.page-header-access {
  width: 100%;
  height: 620px;
  background-image: url("../images/h1-bg.jpg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.page-header-access h1 {
  font-family: 'EB Garamond', serif;
  font-size: calc((50 / var(--font-base)) * 1rem);
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.15em;
  line-height: 1;
  text-align: center;
  z-index: 2;
}


/*
//TRAIN ACCESS//
*/
.trainaccess {
	background-image: url("../images/trainaccess-bg.jpg");
	background-repeat: no-repeat;
	background-position: right top;
	background-size: auto 900px;
	position: relative;
	width: 100%;
	padding-top: 100px;
}

.trainaccess .inner02 {
	position: relative;
	padding-right: 20px;
	box-sizing: border-box;
}

.trainaccess h2 {
	position: absolute;
	top: 0;
	left: 0;
	width: 8.28571429%;
}

.trainaccess h3 {
	position: relative;
	max-width: 650px;
	font-size: calc((32 / var(--font-base)) * 1rem); 
	line-height: 1.806;
	letter-spacing: 0.22em;
	text-align: center;
	margin: 0 auto 50px;
}

.trainaccess h3 span {
	font-size: 120%;
}

.trainaccess h4 {
	position: relative;
	margin-top: 0;
	margin-bottom: 30px;
	max-width: 650px;
	font-size: calc((22 / var(--font-base)) * 1rem); 
	line-height: 1.806;
	letter-spacing: 0.22em;
}

.trainaccess h4::before {
	content: "";
	border-left: solid 5px #65889a;
	padding-right: 0.5em;
}

.trainaccess-annotation {
	font-size: calc((14 / var(--font-base)) * 1rem);
	vertical-align: super;
}

.trainaccess-routMap {
	width: 100%;
	max-width: 931px;
	margin: calc((90 / var(--font-base)) * 1rem) auto calc((50 / var(--font-base)) * 1rem);
}


/*
///通勤時・日中時///
*/
.trainaccess-content {
	width: 100%;
	max-width: 880px;
	margin: 0 auto;
}

.trainaccess-textCaption {
	color: #fff;
	background-color: #65889a;
	font-size: clamp(16px, 3.2vw, 24px); 
	line-height: 1.75;
	text-align: center;
}

.trainaccess-textCaption span {
	font-size: 75%;
}

.trainaccess-contentFlex {
	width: 100%;
	max-width: 880px; 
	margin: 30px auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
}

.trainaccess-contentFlex .timeRequired {
	display: inline-flex;
	vertical-align: top;       /* 隣のハコと上端を揃える保険 */
	align-items: center;       /* これで中の文字や数字がすべて「ど真ん中の一本の水平線」に揃います！ */
	flex-wrap: wrap;           /* 注釈（.train-annotation）を下に回り込ませるために必須 */
	box-sizing: border-box;
	font-size: clamp(12px, 3.2vw, 15px); 
	line-height: 1.4;
	letter-spacing: 0.05em;
	margin: 0;
	padding-bottom: 20px;
}

.trainaccess-contentFlex p:nth-of-type(odd) {
	width: 55%;
}

.trainaccess-contentFlex p:nth-of-type(even) {
	width: 45%;
}

.station {
	font-size: clamp(18px, 3.2vw, 24px); 
}

.commute {
	font-size: clamp(9px, 3.2vw, 11px); 
	margin: 0 2px 0 2px;
	padding: calc((3 / var(--font-base)) * 1rem);
	background-color: #e0e7eb;
	box-sizing: border-box;
}

.minits {
	font-size: clamp(21px, 3.2vw, 32px); 
	font-weight: 600;
	color: #65889a;
}

.day {
	font-size: clamp(9px, 3.2vw, 11px); 
	margin: 0 calc((2 / var(--font-base)) * 1rem);
	padding: calc((3 / var(--font-base)) * 1rem);
	background-color: #e7cfbe;
	box-sizing: border-box;
}

.dot {
	font-size: 8px;
	letter-spacing: 0em;
}


.train-annotation {
	display: block;
	width: 100%;
	font-size: 10px;
	line-height: 1.4;
	letter-spacing: 0em;
	padding-left: 1em;
}

.train-annotation02 {
	display: block;
	width: 100%;
	font-size: 10px;
	line-height: 1.4;
	letter-spacing: 0em;
	padding-left: 1em;
}

.train-annotation02 span {
	display: block;
	text-indent: 1em;
}

/*
///スライダー///
*/
.slider {
	width: 100%;
	overflow: hidden;
	position: relative;
	margin: 90px auto 120px;
	z-index: 5;
}

.slider .slick-slide {
	margin: 0;
}

.slider .slick-track {
	display: flex !important;
	align-items: center;
}

.slider img {
	width: auto !important;
	height: 240px !important;
	display: block;
}

/*
///時刻表///
*/
.trainaccess-timetable {
	width: 100%;
	max-width: 880px;
	margin: 30px auto;
}

.timetable-figure {
	width: 100%;
	margin: 40px auto 0;
	padding: 0;
	box-sizing: border-box;
}

.timetable-title {
	font-size: 14px;
	font-weight: 400;
	text-align: left;
	margin-bottom: 15px;
}

.timetable-img {
	width: 100%;
	height: auto;
	margin-bottom: 15px;
}

.timetable-caption {
	width: 100%;
	font-size: 11px;
	line-height: 1.5;
	color: #3e3a39;
	text-align: right;
}

.timetable-caption .date {
	display: block;
	font-size: 10px;
}

/*
///シミュレーション///
*/
.trainaccess-simulation {
	width: 100%;
	max-width: 880px;
	margin: 90px auto;
}

.simulation-figure {
	width: 100%;
	margin: 40px auto;
	padding: 0;
	box-sizing: border-box;
}

.simulation-img {
	width: 100%;
	height: auto;
	margin-bottom: 15px;
}

/* sp */
@media (max-width: 768px) {
/* 文章の行間（スマホ用に少し詰める） */
.access .read-paragraph + .read-paragraph {
	margin-top: 20px; 
}

.page-header-access {
 	height: 340px;
}

.trainaccess {
	background-image: none;
	padding-top: 40px;
	padding-bottom: 40px;
}

.trainaccess .inner02 {
	padding-left: 20px; /* スマホ時は左右一律20pxの余白にして中央に流す */
	padding-right: 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.trainaccess h2 {
	position: static;
	width: 100%;
	max-width: 212px;
	margin: 0 auto 30px;
}

.trainaccess h3 {
	text-align: center;
	max-width: 100%;
	font-size: calc((22 / var(--font-base)) * 1rem);
}

.trainaccess h4 {
	margin-bottom: 15px;
}

.trainaccess-routMap {
	margin: calc((15 / var(--font-base)) * 1rem) auto calc((30 / var(--font-base)) * 1rem);
}

/*
///通勤時・日中時///
*/
.trainaccess-timetable {
	margin: 15px auto;
}

.trainaccess-contentFlex {
	flex-direction: column;
	justify-content: center;
	max-width: 451px;
	margin: 15px auto;
}

.trainaccess-contentFlex .timeRequired {
	padding-bottom: 24px;
}

.trainaccess-contentFlex p:nth-of-type(odd),
.trainaccess-contentFlex p:nth-of-type(even) {
	width: 100%;
}

.train-annotation,
.train-annotation02 {
	font-size: 9px;
	padding-left: 0;
}

.train-annotation02 span {
	display: inline;
	text-indent: 0;
}

/*
///スライダー///
*/
.slider {
  margin: 60px auto 90px;
}

}

/* 調整 */
@media (max-width: 430px) {
.page-header-access h1 {
  font-size: calc((23 / var(--font-base)) * 1rem);
}

.page-header-access {
  height: 200px;
}

/*
///スライダー///
*/
.slider {
  margin: 30px auto 45px;
}

.slider img {
    height: 150px !important; /* SP画面でちょうどいい高さにリサイズ（適宜調整） */
}

/*
///時刻表///
*/
.timetable-title {
	margin-bottom: 10px;
}

.timetable-img {
	margin-bottom: 10px;
}

/*
///シミュレーション///
*/
.trainaccess-simulation {
	margin: 40px auto;
}
}