@charset "utf-8";

/*---------------------------------
	service
---------------------------------*/

/* parts
-------------------------------- */
.company-heading {
	margin: 0 0 40px;
	text-align: center;
	font-size: 2em;
	font-weight: bold;
}


/* greeting
-------------------------------- */
.company-greeting-wrapper {
	margin: 0 0 95px;
	padding: 60px 70px;
	border: 1px solid #000;
	border-radius: 5px;
}

.company-greeting-wrapper .heading {
	margin: 0 0 30px;
	font-size: 1.625em;
}

.company-greeting-wrapper .text {
	margin: 0 0 50px;
	line-height: 2.1;
	font-size: 1.125em;
}

.company-greeting-wrapper .name {
	font-size: 1.25em;
	font-weight: bold;
}

/* info
-------------------------------- */
.company-info-list {
	width: 100%;
	max-width: 800px;
	margin: 90px auto 120px;
}

.company-info-list > li:not(:last-child) {
	margin: 0 0 35px;
}

.company-info-list > li .list-inner {
	display: flex;
	width: 100%;
}

.company-info-list > li .list-inner .heading {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 112px;
	padding: 10px;
	border-bottom: 1px solid #000;
	border-right: 1px solid #000;
	font-size: 1.15em;
	box-sizing: border-box;
}

.company-info-list > li .list-inner .text {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding: 10px 40px;
	width: calc(100% - 112px);
	border-bottom: 1px solid #000;
	font-size: 1.025em;
	box-sizing: border-box;
}

.company-info-list > li .list-inner .text .address-table th {
	font-weight: normal;
	padding: 0 1em 0 0;
}

/* gallery
-------------------------------- */
.company-gallery-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: -80px 0 0;
}

.company-gallery-list > li {
	position: relative;
	margin: 80px 0 0;
	width: 44.6%;
}

.company-gallery-list > li::before {
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
	width: calc(100% - 2px);
	height: calc(100% - 260px - 25px);
	border: 1px solid #000;
	border-top: none;
	border-radius: 0 0 5px 5px;
	content: "";
}

.company-gallery-list > li .image img {
	width: 100%;
	height: 260px;
	object-fit: cover;
	border-radius: 5px 5px 0 0;
}

.company-gallery-list > li .image .caption {
	padding: 25px 25px 20px;
	font-size: 1.15em;
	font-weight: 500;
}

/* history
-------------------------------- */
.company-history-image {
	display: flex;
	width: 100%;
	max-width: 825px;
	margin: 0 auto 90px;
}

.company-history-image > li {
	position: relative;
	width: calc(100% / 3);
	display: flex;
	flex-wrap: wrap;
}

.company-history-image > li::before {
	position: absolute;
	left: 0;
	bottom: 0;
	width: calc(100% - 1px);
	height: calc(100% - 180px - 12px);
	border-left: 1px solid #000;
	border-bottom: 1px solid #000;
	content: "";
}

.company-history-image > li:first-child::before {
	border-bottom-left-radius: 5px;
}

.company-history-image > li:last-child::before {
	border-right: 1px solid #000;
	border-bottom-right-radius: 5px;
	width: calc(100% - 2px);
}

.company-history-image > li > .image {
	position: relative;
	width: 100%;
}

.company-history-image > li > .image img {
	width: calc(100% - 1px);
	height: 180px;
	object-fit: cover;
	border-left: 1px solid transparent;
}

.company-history-image > li:first-child > .image img {
	border-top-left-radius: 5px;
	border-left: none;
	width: 100%;
}

.company-history-image > li:last-child > .image img {
	border-top-right-radius: 5px;
}

.company-history-image > li > .image .caption {
	position: relative;
	width: 100%;
	padding: 15px;
	box-sizing: border-box;
}

.comapny-history-text {
	max-width: 825px;
	width: 100%;
	margin: 0 auto;
}

.comapny-history-text > li {
	position: relative;
	margin: 0 0 55px;
}

.comapny-history-text > li:not(:last-child)::before {
	display: block;
	position: absolute;
	left: 50%;
	bottom: -39px;
	width: 1px;
	height: 26px;
	background: #000;
	content: "";
}

.comapny-history-text > li:last-child {
	margin: 0;
}

.comapny-history-text > li .list-inner {
	display: flex;
	width: 100%;
}

.comapny-history-text > li .list-inner .date {
	display: flex;
	align-items: center;
	min-width: 268px;
	padding: 5px 20px;
	background: #000;
	color: #fff;
	font-size: 1.05em;
	font-weight: 500;
	box-sizing: border-box;
	border-radius: 5px 0 0 5px;
}

.comapny-history-text > li .list-inner .text {
	position: relative;
	display: flex;
	align-items: center;
	width: calc(100% - 298px);
	padding: 5px 10px 5px 50px;
	font-size: 1.15em;
	box-sizing: border-box;
}

.comapny-history-text > li .list-inner .text::before {
	display: block;
	position: absolute;
	right: 0;
	top: 0;
	width: calc(100% - 13px);
	height: calc(100% - 2px);
	border: 1px solid #000;
	border-left: none;
	border-radius: 0 5px 5px 0;
	content: "";
}

/* access
-------------------------------- */
.company-access-wrapper {
	display: flex;
	width: 100%;
	margin: 0 0 60px;
}

.company-access-wrapper:last-child {
	margin: 0;
}

.company-access-wrapper .map-wrapper {
	position: relative;
	height: 0;
	width: 52.5%;
	padding-bottom: 52.5%;
	
}

.company-access-wrapper iframe {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	border-radius: 5px 0 0 5px;
}

.company-access-wrapper .text-wrapper {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	width: 47.5%;
	padding: 40px 10px 40px 46px;
	box-sizing: border-box;
}

.company-access-wrapper .text-wrapper::before {
	display: block;
	position: absolute;
	right: 0;
	top: 0;
	z-index: -1;
	width: calc(100% - 46px);
	height: calc(100% - 2px);
	border: 1px solid #000;
	border-left: none;
	border-radius: 0 5px 5px 0;
	content: "";
}

.company-access-wrapper .text-wrapper .address-wrapper {
	width: 100%;
	margin: 0 0 10px;
}

.company-access-wrapper .text-wrapper .address-wrapper .office {
	margin: 0 0 15px;
	font-weight: bold;
	font-size: 1.625em;
}

.company-access-wrapper .text-wrapper .address-wrapper .address {
	font-size: 1.025em;
}

.company-access-wrapper .text-wrapper .transportation-wrapper {
	align-self: flex-end;
	width: 100%;
}

.company-access-wrapper .text-wrapper .transportation-wrapper .transportation-list {
	font-size: 1.025em;
}

.company-access-wrapper .text-wrapper .transportation-wrapper .transportation-list dt:not(:first-child) {
	margin: 28px 0 0;
}

.company-access-wrapper .text-wrapper .transportation-wrapper .transportation-list dd.parking {
	margin: 28px 0 0 ;
}

.company-access-wrapper .text-wrapper .transportation-wrapper .transportation-list dd.parking span {
	padding: 6px 12px ;
	border: 1px solid #333;
	border-radius: 4px;
}


.company-access-wrapper .text-wrapper .transportation-wrapper .transportation-list .notes {
	display: block;
	width: 100%;
	margin: 24px 0 0;
}





/*---------------------------------
	Tablet / SP
---------------------------------*/
@media only screen and (max-width: 767px) {
	
	/* parts
	-------------------------------- */
	.company-heading {
		margin: 0 0 20px;
		font-size: 2em;
	}

	/* greeting
	-------------------------------- */
	.company-greeting-wrapper {
		margin: 0 0 30px;
		padding: 20px 25px;
	}

	.company-greeting-wrapper .heading {
		margin: 0 0 15px;
		font-size: 1.429em;
	}

	.company-greeting-wrapper .text {
		margin: 0 0 15px;
		font-size: 1em;
	}

	.company-greeting-wrapper .name {
		font-size: 1.143em;
	}

	/* info
	-------------------------------- */
	.company-info-list {
		width: auto;
		margin: 0 auto 25px;
	}

	.company-info-list > li:not(:last-child) {
		margin: 0 0 18px;
	}

	.company-info-list > li .list-inner .heading {
		width: 70px;
		padding: 5px;
		font-size: 1.143em;
	}

	.company-info-list > li .list-inner .text {
		padding: 5px 20px;
		width: calc(100% - 70px);
		font-size: 1em;
	}

	.company-info-list > li .list-inner .text .address-table th {
		display: block;
		font-weight: normal;
		padding: 0;
	}

	.company-info-list > li .list-inner .text .address-table td {
		display: block;
		font-weight: normal;
		padding: 0;
	}
	
	/* gallery
	-------------------------------- */
	.company-gallery-list {
		margin: -20px 15px 0;
	}

	.company-gallery-list > li {
		margin: 20px 0 0;
		width: 100%;
	}

	.company-gallery-list > li::before {
		display: none;
	}

	.company-gallery-list > li .image img {
		height: auto;
	}

	.company-gallery-list > li .image .caption {
		position: relative;
		padding: 12px 12px 10px;
		font-size: 1.143em;
	}
	
	.company-gallery-list > li .image .caption::before {
		display: block;
		position: absolute;
		left: 0;
		bottom: 0;
		width: calc(100% - 2px);
		height: calc(100% - 12px);
		border: 1px solid #000;
		border-top: none;
		border-radius: 0 0 5px 5px;
		content: "";
	}

	/* history
	-------------------------------- */
	.company-history-image {
		display: block;
		width: auto;
		margin: 0 15px 30px;
	}

	.company-history-image > li {
		position: relative;
		width: 100%;
		display: block;
	}

	.company-history-image > li::before {
		display: none;
	}

	.company-history-image > li > .image {
		position: relative;
		width: 100%;
		display: flex;
	}

	.company-history-image > li > .image img {
		width: 77.5%;
		height: auto;
		object-fit: cover;
		border-top: 1px solid transparent;
	}

	.company-history-image > li:first-child > .image img {
		border-top-left-radius: 5px;
		border-top: none;
		width: 77.5%;
	}

	.company-history-image > li:last-child > .image img {
		border-top-right-radius: 5px;
	}

	.company-history-image > li > .image .caption {
		position: relative;
		width: 22.5%;
		padding: 8px 16px;
		box-sizing: border-box;
		writing-mode: vertical-lr;
	}
	
	.company-history-image > li .image .caption::before {
		position: absolute;
		right: 0;
		top: 0;
		width: calc(100% - 16px);
		height: calc(100% - 1px);
		border-top: 1px solid #000;
		border-right: 1px solid #000;
		content: "";
	}

	.company-history-image > li:first-child .image .caption::before {
		border-top-right-radius: 5px;
	}

	.company-history-image > li:last-child .image .caption::before {
		border-bottom: 1px solid #000;
		border-bottom-right-radius: 5px;
		height: calc(100% - 2px);
	}

	.comapny-history-text {
		width: auto;
		margin: 0 15px;
	}

	.comapny-history-text > li {
		margin: 0 0 20px;
	}

	.comapny-history-text > li:not(:last-child)::before {
		bottom: -17px;
		height: 13px;
	}

	.comapny-history-text > li:last-child {
		margin: 0;
	}

	.comapny-history-text > li .list-inner {
		display: block;
	}

	.comapny-history-text > li .list-inner .date {
		display: block;
		text-align: center;
		min-width: 1px;
		padding: 5px 10px;
		font-size: 1.143em	;
		border-radius: 5px 5px 0 0;
	}

	.comapny-history-text > li .list-inner .text {
		display: block;
		text-align: center;
		width: 100%;
		padding: 7px 10px 5px;
		font-size: 1.143em	;
	}

	.comapny-history-text > li .list-inner .text::before {
		top: auto;
		bottom: 0;
		width: calc(100% - 2px);
		height: calc(100% - 5px);
		border: 1px solid #000;
		border-top: none;
		border-radius: 0 0 5px 5px;
	}

	/* access
	-------------------------------- */
	.company-access-wrapper {
		display: block;
		margin: 0 0 30px;
	}

	.company-access-wrapper .map-wrapper {
		padding: 0 0 62%;
		width: 100%;
	}

	.company-access-wrapper iframe {
		border-radius: 0;
	}

	.company-access-wrapper .text-wrapper {
		display: block;
		width: 100%;
		padding: 15px;
	}

	.company-access-wrapper .text-wrapper::before {
		top: auto;
		bottom: 0;
		width: calc(100% - 2px);
		height: calc(100% - 16px);
		border: 1px solid #000;
		border-top: none;
		border-radius: 0 0 5px 5px;
	}

	.company-access-wrapper .text-wrapper .address-wrapper .office {
		margin: 0 0 5px;
		font-size: 1.571em;
	}

	.company-access-wrapper .text-wrapper .address-wrapper .address {
		font-size: 1em;
	}

	.company-access-wrapper .text-wrapper .transportation-wrapper .transportation-list {
		font-size: 1em;
	}

	.company-access-wrapper .text-wrapper .transportation-wrapper .transportation-list dt:not(:first-child) {
		margin: 10px 0 0;
	}

	.company-access-wrapper .text-wrapper .transportation-wrapper .transportation-list .notes {
		display: inline-block;
		margin: 0;
	}
}