@charset "UTF-8";



/* accessmap
---------------------------------------------------------*/
.accessmap__map {
	position: relative;
	z-index: 1;
}
.accessmap__map::before {
	content: "";
	position: absolute;
	z-index: -1;
	width: 100vw;
	height: 50%;
	left: 50%;
	top: -1px;
	transform: translateX(-50%);
	background: var(--color-bg);
}
.accessmap__map iframe {
	display: block;
	width: 100%;
	height: min(560px,40vw);
}
.accessmap__map .com_btn1 {
	margin-top: var(--gap-40);
}

.accessmap__clinic {
	text-align: center;
}
.accessmap__clinic > dt {
	font-size: var(--fs-35);
	letter-spacing: .05em;
	line-height: 1.4em;
	margin-bottom: .5em;
}

.accessmap__traffic {
	width: min(100%,850px);
	margin-inline: auto;
	font-weight: bold;
	line-height: 1.8em;
	display: grid;
    justify-content: space-between;
	grid-template-columns: 50% 45%;
}
.accessmap__traffic-list > li {
	padding-bottom: 1.5em;
	border-bottom: 1px solid var(--color-border);
	margin-bottom: 1.5em;
}
.accessmap__traffic-list > li:last-child {
	padding-bottom: 0;
	border-bottom: none;
	margin-bottom: 0;
}
.accessmap__traffic-icon {
	padding-left: 4.0em;
	position: relative;
}
.accessmap__traffic-icon::before {
	content: "";
	display: block;
	width: 3.5em;
	aspect-ratio: 1 / 1;
	background: url("../images/access/icon_access1.png") no-repeat center center;
	background-size: contain;
	position: absolute;
	left: 0;
	top: 0;
}
.accessmap__traffic-icon.--parking::before {
	background-image: url("../images/access/icon_access2.png");
}
.accessmap__traffic-icon.--car::before {
	background-image: url("../images/access/icon_access3.png");
}
.accessmap__traffic-icon dl {
	font-size: var(--fs-14);
	line-height: 1.8em;
	display: flex;
    flex-wrap: wrap;
	column-gap: 1.0em;
}
.accessmap__traffic-icon dt {
	padding-left: 1.0em;
	position: relative;
}
.accessmap__traffic-icon dt::before {
	content: "";
	position: absolute;
	width: .5em;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: currentcolor;
	left: 0;
	top: .6em;
}
.accessmap__traffic-icon li {
	padding-left: 1.0em;
	position: relative;
}
.accessmap__traffic-icon li::before {
	content: "・";
	position: absolute;
	left: 0;
	top: 0;
}
.accessmap__traffic-btn a {
	display: block;
	background: #afa49f;
	color: #fff;
	text-align: center;
	font-size: var(--fs-15);
	font-weight: bold;
	letter-spacing: .1em;
	line-height: 1.4em;
	padding: .8em 1.5em;
	border-radius: 100vmax;
	margin-top: 1.5em;
	width: min(100%,300px);
}
.accessmap__traffic-btn a:hover {
	background: #95867f;
}
.accessmap__traffic-btn a span {
	display: inline-block;
	padding-right: 2.5em;
	position: relative;
}
.accessmap__traffic-btn a span::before {
	font-family: 'fontello';
	content: '\e804';
	font-weight: normal;
	font-size: 160%;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-45%) rotate(90deg);
}

.accessmap__parking {
	width: min(100%,1152px);
	margin-inline: auto;
	display: flex;
    justify-content: space-between;
}
.accessmap__parking div {
	width: min(49%,560px);
}

.accessmap .swiper-slide {
	width: min(35vw,480px);
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.accessmap__traffic {
	grid-template-columns: 45% 50%;
}
.accessmap__traffic-icon dl {
	display: block;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
.accessmap__map iframe {
	height: 80vw;
}

.accessmap__clinic > dt {
	font-size: var(--fs-30);
}

.accessmap__traffic {
	line-height: 1.8em;
	display: block;
}
.accessmap__traffic-list > li {
	padding-bottom: 1.0em !important;
	border-bottom: 1px solid var(--color-border) !important;
	margin-bottom: 1.0em !important;
}
.accessmap__traffic-icon dl {
	display: block;
}
.accessmap__traffic-btn a {
	margin-top: .5em;
}

.accessmap__parking {
	display: block;
}
.accessmap__parking div {
	width: 100%;
	margin-top: var(--gap-40);
}

.accessmap .swiper-slide {
	width: 50vw;
}
}



/* info
---------------------------------------------------------*/
.info__layout {
	display: flex;
    justify-content: space-between;
}
.info__layout-clinic {
	width: min(46%,490px);
}
.info__layout-medical {
	width: 50%;
}

.info__clinic-time {
	width: min(100%,490px);
}
.info .com_cta {
	text-align: center;
	font-size: min(2.0rem,1.6vw);	/*「ご予約・お問い合わせ」基準*/
}
.info .com_cta .com_cta_tel {
	margin-bottom: 1.5em;
}

.info__layout-medical {
	background: #f2f2ed;
	padding: var(--gap-40) 3%;
	text-align: center;
}
.info .com_medmenu__ttl {
	color: var(--color-purple);
}
.info__layout-medical .com_medmenu__list {
	width: min(100%,400px);
	margin-inline: auto;
	display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
	gap: min(18px,1.5vw) 4%;
	font-size: min(1.8rem,1.7vw);
}
.info__layout-medical .com_medmenu__list > li {
	width: 48%;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.info__layout-clinic {
	width: 50%;
}
.info__layout-medical {
	width: 46%;
}
.info .com_cta {
	font-size: min(1.8rem,1.8vw);	/*「ご予約・お問い合わせ」基準*/
}
.info__layout-medical .com_medmenu__list {
	font-size: min(1.6rem,1.9vw);
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) { 
.info__layout {
	display: block;
}
.info__layout-clinic {
	width: 100%;
	margin-bottom: var(--gap-80);
}
.info__layout-medical {
	width: 100%;
}

.info__clinic-time {
	width: 100%;
}
.info .com_cta {
	font-size: var(--fs-20);	/*「ご予約・お問い合わせ」基準*/
}
.info .com_cta .com_cta_tel {
	margin-bottom: 1.0em;
}

.info__layout-medical {
	padding: var(--gap-60) 3%;
}
.info__layout-medical .com_medmenu__list {
	width: 100%;
}
}



/* route
---------------------------------------------------------*/
.route .c-ttl__l {
	margin-bottom: 0;
}
.route .c-ttl__under-line {
	margin: 1.5em 0 1.5em;
}
.route__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap-40) 4.1%;
}
.route__txt {
	width: min(100%,310px);
	margin-inline: auto;
	margin-top: 1.2em;	
	font-feature-settings: "halt";
}
.route__txt::before {
	content: "01";
	display: block;
	font: var(--font-en);
	color: var(--color-corporate);
	font-size: var(--fs-30);
	letter-spacing: .08em;
	margin-bottom: .2em;
}
.route__list > li:nth-child(2) .route__txt::before {content: "02";}
.route__list > li:nth-child(3) .route__txt::before {content: "03";}
.route__list > li:nth-child(4) .route__txt::before {content: "04";}
.route__list > li:nth-child(5) .route__txt::before {content: "05";}
.route__list > li:nth-child(6) .route__txt::before {content: "06";}
.route__list > li:nth-child(7) .route__txt::before {content: "07";}
.route__list > li:nth-child(8) .route__txt::before {content: "08";}
.route__list > li:nth-child(9) .route__txt::before {content: "09";}
.route__list > li:nth-child(10) .route__txt::before {content: "10";}
.route__list > li:nth-child(11) .route__txt::before {content: "11";}
.route__list > li:nth-child(12) .route__txt::before {content: "12";}
.route__list > li:nth-child(13) .route__txt::before {content: "13";}
.route__list > li:nth-child(14) .route__txt::before {content: "14";}
.route__list > li:nth-child(15) .route__txt::before {content: "15";}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) { 
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
.route__list {
	grid-template-columns: repeat(2, 1fr);
	gap: var(--gap-60) 5%;
}
.route__txt {
	width: 100%;
	margin-top: 1.0em;	
}
}



/* 
---------------------------------------------------------*/

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) { 
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) { 
}