/* About */
.guideBoxes {
	margin: 24px 0 0;
	display: flex;
	justify-content: space-between;
}
.guideBoxes .guideBox {
	position: relative;
	width: calc(25% - 8px);
	border: solid 1px #2f40af;
	border-radius: 8px;
	margin: 0;
	padding: 16px 24px 80px;
}
.guideBoxes .guideBox strong {
	color: #2f40af;
	font-size: 1.6rem;
	text-align: center;
	display: block;
}
.associateBox .childBox .guideBox ul {
	margin: 8px 0 0;
}
.guideBoxes .guideBox a {
	position: absolute;
	bottom: 24px;
	left: 50%;
	width: 200px;
	height: 32px;
	color: #fff;
	font-size: 1.4rem;
	text-align: center;
	text-decoration: none;
	line-height: 1;
	background-color: #2f40af;
	border-radius: 16px;
	padding: 9px 0;
	display: block;
	transform: translateX(-50%);
	transition: .3s;
}
.guideBoxes .guideBox a:after {
	position: absolute;
	top: 50%;
	right: 12px;
	width: 16px;
	height: 16px;
	background-image: url(../img/more_icn.png);
	background-size: 100%;
	transform: translateY(-50%);
	transition: .4s;
	content: "";
}
.guideBoxes .guideBox a:hover {
	background-color: #608fff;
}
.guideBoxes .guideBox a:hover:after {
	right: 6px;
}

/* Partner */
.mapBoxes {
	margin: 24px 0 0;
	display: flex;
}
.mapBoxes .mapBox {
	position: relative;
	width: 50%;
	padding: 0 8px;
}
.mapBoxes .mapBox img {
	width: 100%;
}
.mapBox a.city {
	position: absolute;
	width: fit-content;
	height: 24px;
	color: #fff;
	font-size: 1.4rem;
	line-height: 1;
	text-decoration: none;
	background-color: #2f40af;
	border-radius: 12px;
	padding: 6px 12px 0;
	display: block;
	transition: .3s;
	cursor: pointer;
}
.mapBox a:hover {
	background-color: #608fff;
}
/* Gifu */
.mapBox a.city.motosu {
	top: 16px;
	left: 176px;
}
.mapBox a.city.motosugun {
	top: 96px;
	left: 168px;
}
.mapBox a.city.seki {
	top: 56px;
	left: 400px;
}
.mapBox a.city.gifu {
	top: 64px;
	left: 256px;
}
.mapBox a.city.kagamigahara {
	top: 120px;
	left: 384px;
}
.mapBox a.city.hashimagun {
	top: 160px;
	left: 280px;
}
.mapBox a.city.ogaki1 {
	top: 272px;
	left: 24px;
}
.mapBox a.city.ogaki2 {
	top: 176px;
	left: 152px;
}
.mapBox a.city.fuwa {
	top: 136px;
	left: 24px;
}
.mapBox a.city.yoro {
	top: 224px;
	left: 72px;
}
.mapBox a.city.anpachi {
	top: 224px;
	left: 160px;
}
.mapBox a.city.kaizu {
	top: 304px;
	left: 176px;
}
.mapBox a.city.mizuho {
	top: 136px;
	left: 208px;
}
.mapBox a.city.aichi {
	top: 248px;
	left: 384px;
}
.mapBox span {
	position: absolute;
	top: 208px;
	left: 240px;
	width: fit-content;
	height: 24px;
	font-size: 1.4rem;
	line-height: 1;
	border: solid 1px #2f40af;
	border-radius: 12px;
	background-color: #fff;
	padding: 5px 12px 0;
}

/* Hashima */
.mapBox a.city.ajika {
	top: 40px;
	left: 328px;
}
.mapBox a.city.egira {
	top: 128px;
	left: 280px;
}
.mapBox a.city.oguma {
	top: 8px;
	left: 288px;
}
.mapBox a.city.kaminaka {
	top: 160px;
	left: 304px;
}
.mapBox a.city.kuwabara {
	top: 304px;
	left: 224px;
}
.mapBox a.city.shimonaka {
	top: 240px;
	left: 272px;
}
.mapBox a.city.takehana {
	top: 80px;
	left: 296px;
}
.mapBox a.city.fukujyu {
	top: 96px;
	left: 224px;
}
.mapBox a.city.funahashi {
	top: 136px;
	left: 200px;
}
.mapBox a.city.masaki {
	top: 112px;
	left: 368px;
}
/* Facilities List */
.partnerListBox {
	margin: 24px 0 0;
}
.partnerListBox p {
	width: 64%;
	font-size: 1.4rem;
	margin: 0 auto;
}
.partnerListBox table.spTable {
	display: none;
}
.partnerListBox table {
	width: 64%;
	margin: 8px auto 0;
	border-collapse: collapse;
}
.partnerListBox table th,
.partnerListBox table td {
	border-right: solid 1px #afafaf;
	border-bottom: solid 1px #afafaf;
}
.partnerListBox table tr:first-of-type th,
.partnerListBox table tr:first-of-type td {
	border-top: solid 1px #afafaf;
}
.partnerListBox table th {
	width: 160px;
	height: 40px;
	font-size: 1.4rem;
	font-weight: normal;
	background-color: #eff3ff;
}
.partnerListBox table th:first-of-type {
	border-left: solid 1px #afafaf;
}
.partnerListBox table td {
	font-size: 1.4rem;
	font-weight: bold;
	text-align: right; 
	padding: 0 16px;
}

/* Contact */
.contactTable {
	width: 64%;
	margin: 24px auto 0;
}
.contactTable.firstTable {
	margin: 16px auto 0;
}
.contactTable table {
	width: 100%;
	border-top: dotted 1px #afafaf;
	border-collapse: collapse;
}
.contactTable tr {
	border-bottom: dotted 1px #afafaf;
}
.contactTable th {
	position: relative;
	width: 224px;
	height: 64px;
	min-height: 64px;
	font-size: 1.4rem;
	text-align: left;
	padding-left: 40px;
}
.contactTable th:before {
	position: absolute;
	top: 50%;
	left: 24px;
	width: 6px;
	height: 6px;
	border-top: solid 1px #2f40af;
	border-right: solid 1px #2f40af;
	display: inline-block;
	content: "";
	transform: translateY(-50%) rotate(45deg);
}
.contactTable td {
	font-size: 1.4rem;
	line-height: 184%;
	padding: 16px 0;
}
.associateBox .childBox .contactTable td p {
	line-height: 184%;
	margin: 4px 0 0;
}
.contactTable td .workingtime,
.contactTable td .soTel {
	margin: 4px 0 0;
}
.contactTable td .soTel {
	line-height: 200%;
}
.contactTable td .workingtime span {
	width: 120px;
	display: inline-block;
}
.contactTable td .soTel span {
	width: 72px;
	display: inline-block;
}
.contactTable td strong.telNo {
	color: #2f40af;
	font-size: 2.0rem;
	margin: 0;
}
.associateBox .childBox .contactTable td ul {
	margin: 0;
}

/* Reservation */
.reservationBoxes {
	margin: 16px 0 0;
	display: flex;
}
.reservationBox {
	width: calc(100% / 3);
	padding-right: 24px;
}
.reservationBox .innerBox {
	position: relative;
	width: 100%;
	height: 100%;
	font-size: 1.4rem;
	line-height: 168%;
	border: solid 1px #2f40af;
	border-radius: 8px;
	padding: 16px 24px 24px;
}
.reservationBox .innerBox:before {
	position: absolute;
	top: 50%;
	right: -24px;
	border-top: 24px solid transparent;
	border-bottom: 24px solid transparent;
	border-left: 24px solid #2f40af;
	transform: translateY(-50%);
	content: "";
}
.reservationBox .innerBox:after {
	position: absolute;
	top: 50%;
	right: -23px;
	border-top: 24px solid transparent;
	border-bottom: 24px solid transparent;
	border-left: 24px solid #fff;
	transform: translateY(-50%);
	content: "";
}
.reservationBox:last-of-type .innerBox {
	width: 100%;
}
.reservationBox:last-of-type .innerBox:before,
.reservationBox:last-of-type .innerBox:after {
	content: none;
}
.reservationBox .innerBox strong {
	color: #608fff;
	margin: 0 0 6px;
	display: block;
}

/* ConsultationBox */
.consultationBoxes {
	margin: 24px 0 0;
	display: flex;
	flex-wrap: wrap;
}
.consultationBox {
	width: 50%;
	padding: 0 4px 8px;
}
.consultationBox .innerBox {
	height: 100%;
	border: solid 1px #afafaf;
	border-radius: 8px;
	padding: 16px 24px 24px;
}
.consultationBox .innerBox strong {
	color: #608fff;
	font-size: 1.6rem;
	font-weight: normal;
}
.consultationBox .innerBox ul {
	margin: 8px 0 0;
}

/* Primary Doctor */
.primaryDrBox table {
	width: 64%;
	margin: 0 auto;
	border-collapse: collapse;
}
.primaryDrBox th,
.primaryDrBox td {
	border-right: solid 1px #afafaf;
	border-bottom: solid 1px #afafaf;
}
.primaryDrBox th {
	width: calc(100% / 3);
	height: 40px;
	font-size: 1.4rem;
	font-weight: normal;
	border-top: solid 1px #afafaf;
	background-color: #efefef;
}
.primaryDrBox th:first-of-type {
	border-left: solid 1px #afafaf;
}
.primaryDrBox td {
	height: 48px;
	font-size: 1.4rem;
	background-color: #fff;
	padding: 8px 16px;
}
.primaryDrBox td:first-of-type {
	border-left: solid 1px #afafaf;
	background-color: #eff3ff;
}

/* Documents */
.documentsBoxes {
	width: 48%;
	margin: 24px auto 0;
	display: flex;
}
.documentsBox {
	width: 50%;
	padding: 0 4px;
}
.documentsBox a {
	position: relative;
	width: 100%;
	height: 48px;
	color: #2f40af;
	font-size: 1.4rem;
	line-height: 1;
	text-decoration: none;
	border: solid 1px #afafaf;
	border-radius: 8px;
	padding: 17px 0 0 50px;
	display: block;
	transition: .3s;
}
.documentsBox a:before {
	position: absolute;
	top: 50%;
	left: 16px;
	width: 24px;
	height: 32px;
	background-size: 24px 32px;
	transform: translateY(-50%);
	content: "";
}
.documentsBox a.excel:before {
	background-image: url("../img/excel_b_s_icn.png");
}
.documentsBox a.word:before {
	background-image: url("../img/word_b_s_icn.png");
}
.documentsBox a:hover {
	color: #608fff;
	background-color: rgba(96, 143, 255, .1);
}

/* Price */
.priceBox {
	width: 64%;
	margin: 0 auto;
}
.priceBox table {
	width: 100%;
	border-collapse: collapse;
}
.priceBox th,
.priceBox td {
	border-right: solid 1px #afafaf;
	border-bottom: solid 1px #afafaf;
}
.priceBox th {
	width: 50%;
	height: 40px;
	font-size: 1.4rem;
	font-weight: normal;
	border-top: solid 1px #afafaf;
	background-color: #eff3ff;
}
.priceBox th:first-of-type {
	border-left: solid 1px #afafaf;
}
.priceBox td {
	height: 48px;
	font-size: 1.4rem;
	text-align: center;
	padding: 8px 0;
}
.priceBox td:first-of-type {
	border-left: solid 1px #afafaf;
}
.priceBox td strong {
	display: block;
}

/* Consultation Flow */
.consultationFlowBoxes {
	width: 72%;
	margin: 16px auto 0;
}
.consultationFlowBoxes strong {
	height: 40px;
	background-color: rgba(96, 143, 255, .1);
	font-size: 1.4rem;
	line-height: 1;
	margin: 8px 0 0;
	padding: 14px 24px;
	display: block;
}
.consultationFlowBoxes strong:first-of-type {
	margin: 0;
}
.consultationFlowBox {
	margin: 0;
	padding: 0 0 16px 16px;
}
.consultationFlowBox:first-of-type,
.consultationFlowBox:nth-of-type(6),
.consultationFlowBox:last-of-type {
	margin: 16px 0 0;
}
.consultationFlowBox:last-of-type {
	padding: 0 0 0 16px;
}
.consultationFlowBox .innerBox {
	position: relative;
	height: auto;
	min-height: 48px;
	font-size: 1.4rem;
	line-height: 184%;
	border: solid 1px #2f40af;
	border-radius: 8px;
	padding: 16px 16px 16px 32px;
}
.consultationFlowBox .innerBox:before {
	position: absolute;
	top: 100%;
	left: 50%;
	border-top: 16px solid #2f40af;
	border-bottom: 16px solid transparent;
	border-left: 16px solid transparent;
	border-right: 16px solid transparent;
	transform: translateX(-50%);
	content: "";
}
.consultationFlowBox .innerBox:after {
	position: absolute;
	top: calc(100% - 1px);
	left: 50%;
	border-top: 16px solid #fff;
	border-bottom: 16px solid transparent;
	border-left: 16px solid transparent;
	border-right: 16px solid transparent;
	transform: translateX(-50%);
	content: "";
}
.consultationFlowBox .innerBox span {
	position: absolute;
	top: 50%;
	left: -16px;
	width: 32px;
	height: 32px;
	color: #2f40af;
	font-size: 2.0rem;
	font-weight: bold;
	line-height: 1;
	text-align: center;
	background-color: #fff;
	border: solid 1px #2f40af;
	border-radius: 16px;
	padding: 5px 0;
	transform: translateY(-50%);
}
.consultationFlowBox:last-of-type .innerBox:before,
.consultationFlowBox:last-of-type .innerBox:after {
	content: none;
}

@media screen and (max-width: 520px) {
	/* About */
	.guideBoxes {
		margin: 16px 0 0;
		display: block;
	}
	.guideBoxes .guideBox {
		width: 100%;
		margin: 8px 0 0;
		padding: 16px 16px 24px;
	}
	.guideBoxes .guideBox:first-of-type {
		margin: 0;
	}
	.guideBoxes .guideBox a {
		position: relative;
		bottom: auto;
		left: auto;
		margin: 16px auto 0;
		transform: translateX(0%);
		transition: none;
	}
	.guideBoxes .guideBox a:after {
		transition: none;
	}
	.guideBoxes .guideBox a:hover {
		background-color: #2f40af;
	}
	.guideBoxes .guideBox a:hover:after {
		right: 12px;
	}
	
	/* Partner */
	.mapBoxes {
		margin: 16px 0 0;
		display: block;
	}
	.mapBoxes .mapBox {
		width: 100%;
		margin: 16px 0 0;
		padding: 0;
	}
	.mapBoxes .mapBox:first-of-type {
		margin: 0;
	}
	.mapBox a.city {
		height: 16px;
		font-size: 1.0rem;
		border-radius: 8px;
		padding: 3px 8px;
		transition: none;
		cursor: default;
	}
	.mapBox a:hover {
		background-color: #2f40af;
	}
	.mapBox span {
		top: 51%;
		left: 37%;
		height: 16px;
		font-size: 1.0rem;
		border-radius: 8px;
		padding: 2px 8px 0;
	}
	/* Gifu */
	.mapBox a.city.motosu {
		top: 3%;
		left: 26%;
	}
	.mapBox a.city.motosugun {
		top: 21%;
		left: 23%;
	}
	.mapBox a.city.seki {
		top: 14%;
		left: 64%;
	}
	.mapBox a.city.gifu {
		top: 14%;
		left: 40%;
	}
	.mapBox a.city.kagamigahara {
		top: 32%;
		left: 60%;
	}
	.mapBox a.city.hashimagun {
		top: 40%;
		left: 44%;
	}
	.mapBox a.city.ogaki1 {
		top: 40%;
		left: 21%;
	}
	.mapBox a.city.ogaki2 {
		top: 70%;
		left: 2%;
	}
	.mapBox a.city.fuwa {
		top: 32%;
		left: 2%;
	}
	.mapBox a.city.yoro {
		top: 56%;
		left: 7%;
	}
	.mapBox a.city.anpachi {
		top: 57%;
		left: 23%;
	}
	.mapBox a.city.kaizu {
		top: 78%;
		left: 25%;
	}
	.mapBox a.city.mizuho {
		top: 31%;
		left: 31%;
	}
	.mapBox a.city.aichi {
		top: 64%;
		left: 60%;
	}

	/* Hashima */
	.mapBox a.city.ajika {
		top: 12%;
		left: 50%;
	}
	.mapBox a.city.egira {
		top: 38%;
		left: 41%;
	}
	.mapBox a.city.oguma {
		top: 3%;
		left: 45%;
	}
	.mapBox a.city.kaminaka {
		top: 47%;
		left: 45%;
	}
	.mapBox a.city.kuwabara {
		top: 78%;
		left: 35%;
	}
	.mapBox a.city.shimonaka {
		top: 64%;
		left: 42%;
	}
	.mapBox a.city.takehana {
		top: 22%;
		left: 47%;
	}
	.mapBox a.city.fukujyu {
		top: 26%;
		left: 32%;
	}
	.mapBox a.city.funahashi {
		top: 40%;
		left: 26%;
	}
	.mapBox a.city.masaki {
		top: 32%;
		left: 57%;
	}
	/* Facilities List */
	.partnerListBox {
		margin: 16px 0 0;
	}
	.partnerListBox p {
		width: 100%;
	}
	.partnerListBox table.pcTable {
		display: none;
	}
	.partnerListBox table.spTable {
		display: table;
	}
	.partnerListBox table {
		width: 100%;
		border-collapse: separate;
		border-spacing: 0;
	}
	.partnerListBox table th {
		width: 112px;
	}
	.partnerListBox table td {
		width: calc((100% - 112px * 2) / 2);
		padding:  0 8px;
	}
	
	/* Contact */
	.contactTable {
		width: 100%;
	}
	.contactTable tr {
		border-bottom: none;
	}
	.contactTable th,
	.contactTable td {
		display: block;
	}
	.contactTable th {
		width: 100%;
		height: auto;
		min-height: inherit;
		padding: 16px 0 0 16px;
	}
	.contactTable th:before {
		top: auto;
		bottom: 4px;
		left: 0;
	}
	.contactTable td {
		padding: 8px 0 16px;
		border-bottom: dotted 1px #afafaf;
	}
	.contactTable td > span {
		display: block;
	}
	
	/* Reservation */
	.reservationBoxes {
		display: block;
	}
	.reservationBox {
		width: 100%;
		padding: 0 0 16px;
	}
	.reservationBox .innerBox {
		width: 100%;
		height: auto;
		padding: 16px 16px 24px;
	}
	.reservationBox .innerBox:before {
		top: 100%;
		left: 50%;
		right: auto;
		border-top: 16px solid #2f40af;
		border-bottom: 16px solid transparent;
		border-left: 16px solid transparent;
		border-right: 16px solid transparent;
		transform: translate(-50%, 0);
	}
	.reservationBox .innerBox:after {
		top: calc(100% - 1px);
		left: 50%;
		right: auto;
		border-top: 16px solid #fff;
		border-bottom: 16px solid transparent;
		border-left: 16px solid transparent;
		border-right: 16px solid transparent;
		transform: translate(-50%, 0);
	}
	.reservationBox:last-of-type {
		padding: 0;
	}
	.reservationBox .innerBox strong {
		margin: 0 0 4px;
	}
	
	/* ConsultationBox */
	.consultationBoxes {
		display: block;
		flex-wrap: nowrap;
	}
	.consultationBox {
		width: 100%;
		padding: 0 0 8px;
	}
	.consultationBox .innerBox {
		padding: 16px;
	}
	
	/* Primary Doctor */
	.primaryDrBox table {
		width: 100%;
		border-collapse: separate;
		border-spacing: 0;
		margin: 0;
	}
	.primaryDrBox th {
		width: auto;
	}
	.primaryDrBox th:first-of-type {
		width: 104px;
	}
	.primaryDrBox th:nth-of-type(2) {
		width: 104px;
	}
	.primaryDrBox td {
		padding: 8px 0 8px 8px;
	}
	.primaryDrBox td span {
		display: block;
	}
	
	/* Documents */
	.documentsBoxes {
		width: 100%;
		margin: 24px 0 0;
		display: block;
	}
	.documentsBox {
		width: 100%;
		padding: 0;
	}
	.documentsBox:first-of-type {
		padding: 0 0 8px
	}
	.documentsBox a {
		padding: 17px 0 0 40px;
		transition: none;
	}
	.documentsBox a:before {
		left: 8px;
	}
	.documentsBox a:hover {
		color: #2f40af;
		background-color: #fff;
	}
	
	/* Price */
	.priceBox {
		width: 100%;
		margin: 0;
	}
	.priceBox table {
		border-collapse: separate;
		border-spacing: 0;
	}
	.associateBox .childBox .priceBox p {
		line-height: 168%;
	}
	
	/* Consultation Flow */
	.consultationFlowBoxes {
		width: 100%;
	}
	.consultationFlowBox {
		padding: 0 0 14px 14px;
	}
	.consultationFlowBox:first-of-type,
	.consultationFlowBox:nth-of-type(6),
	.consultationFlowBox:last-of-type {
		margin: 8px 0 0;
	}
	.consultationFlowBox .innerBox {
		padding: 8px 8px 8px 22px;
	}
	.consultationFlowBox .innerBox:before {
		border-top: 14px solid #2f40af;
		border-bottom: 14px solid transparent;
		border-left: 14px solid transparent;
		border-right: 14px solid transparent;
	}
	.consultationFlowBox .innerBox:after {
	border-top: 14px solid #fff;
	border-bottom: 14px solid transparent;
	border-left: 14px solid transparent;
	border-right: 14px solid transparent;
	}
	.consultationFlowBox .innerBox span {
		left: -14px;
		width: 28px;
		height: 28px;
		font-size: 1.8rem;
		border-radius: 14px;
	}
}