@charset "UTF-8";
/* ----------------------------------------------------------------
共通
---------------------------------------------------------------- */
h3.company_h3 {
    font-size:clamp(2.5rem, 0.341rem + 4.55vw, 3.75rem);
    font-weight: 600;
    font-family: "Poppins", sans-serif;
    color: #808080;
	    line-height: 1;
}
@media screen and (max-width: 767px) {
	#contents {
    margin-bottom: 0;
}
h3.company_h3 {
    font-size: 2.3em;
    margin-bottom: 20px;
}
}
@media screen and (min-width: 1026px) {
#outline {
    margin-top: -20px !important;
    padding-top: 50px;
}
	#equipment .btn_area a:hover{
		border: solid 1px #fff;
	}
}
@media screen and (max-width: 1025px) {
#outline{
    margin-top: -50px !important;
    padding-top: 50px;
}
}
/* ----------------------------------------------------------------
outline
---------------------------------------------------------------- */
#outline {
    max-width: 1200px;
    width: 90%;
    margin: 60px auto;
}
.outline_area dt{
	    font-weight: 600;
}
.outline_area dd{
	font-weight: 500;
}
.outline_area dd li{
	padding-left: 1em;
	text-indent: -1em;
	    font-weight: 500;
}
.outline_area dd li p {
    margin-bottom: 10px;
    text-indent: 0;
	    font-weight: 400;
}
@media screen and (min-width: 768px) {
	#outline > .inner .flex_box{
		display: flex;
		justify-content: space-between;
	}
#outline > .inner .flex_box .box_l {
    padding-right: 40px;
    width: 30%;
}
		#outline > .inner .flex_box .box_r{
		        max-width: 780px;
        width: 70%;
	}
		.outline_area dl{
	display: flex;
			justify-content: space-between;
	}
.outline_area dt {
    max-width: 215px;
    width: calc(30% - 40px);
    margin-right: 40px;
    border-top: solid 1px #b3b3b3;
    line-height: 1.5;
    padding: 30px 20px;
    text-align: center;
}
	.outline_area dd{
	        width: 70%;    
		 border-top: solid 1px #b3b3b3;
		 padding: 30px;
		font-size: 0.95em;
}
		.outline_area dl:last-child dt,
	.outline_area dl:last-child dd{
		border-bottom: solid 1px #b3b3b3;
	}
}
@media screen and (max-width: 767px) {
.outline_area dl {
    border-top: solid 1px #b3b3b3;
    padding: 15px 10px;
}
.outline_area dl:last-child {
    border-bottom: solid 1px #b3b3b3;
}
#outline {
    margin: 20px auto 50px;
}
.outline_area dt {
    margin-bottom: 5px;
}
.outline_area dd,
	.outline_area dd li{
    font-weight: 400;
    font-size: 0.9em;
}
	.outline_area dd .tel_link{
		text-decoration: underline;
	}
}
.outline_area dd .fax{
	pointer-events: none !important;
	text-decoration: none !important;
}
/* ----------------------------------------------------------------
history
---------------------------------------------------------------- */
#history{
	background: #000;
	color: #fff;
}
#history > .inner {
    max-width: 1200px;
    width: 90%;
    margin: 0 auto;
	padding: 90px 0 ;
}
#history h3.company_h3{
	color: #fff;
}
@media screen and (min-width: 768px) {
	
		#history > .inner .flex_box{
		display: flex;
		justify-content: space-between;
	}
#history > .inner .flex_box .box_l {
    padding-right: 40px;
    width: 30%;
}
		#history > .inner .flex_box .box_r{
		        max-width: 780px;
        width: 70%;
	}
	#history dd{
		font-weight: 400;
	}
}
@media screen and (max-width: 767px) {
	#history > .inner {
    padding: 50px 0;
}
}
/* ----------------------------------------------------------------
location
---------------------------------------------------------------- */
#location{
	    max-width: 1200px;
    width: 90%;
    margin: 0 auto;
	padding: 90px 0 ;
}
#location h3.company_h3{
	margin-bottom: 30px;
}
#location .img_area {
    text-align: center;
    display: flex;
    justify-content: center;
    margin-bottom: 50px;
	    padding: 0 30px;
}
#location .company_img_area ul {
    text-align: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
}
#location .company_img_area li{
	    width: 23%;
}
#location .company_img_area ul p {
    margin: 10px 0 15px;
}
@media screen and (max-width: 767px) {
#location {
    padding: 50px 0 30px;
}
	#location .company_img_area ul{
		        gap: 4%;
		    justify-content: left;
	}
		#location .company_img_area li{
		        width: 48%;
	}
	#location .company_img_area ul p {
    margin: 5px 0 20px;
    font-size: 0.9em;
}
}
/* ----------------------------------------------------------------
equipment
---------------------------------------------------------------- */
#equipment{
	background: url("../img/equipment.jpg")center center no-repeat;
	background-size:cover;
	position: relative;
}
#equipment:before{
	position: absolute;
	content: "";
	background: #000000bf;
	width: 100%;
	top: 0;
	height: 100%;
}
#equipment > .inner{
	position: relative;
	z-index: 1;
		    max-width: 1200px;
    width: 90%;
    margin: 0 auto;
	padding: 90px 0 ;
}
#equipment h3.company_h3{
	margin-bottom: 40px;
	color: #fff;
}
/* =========================
  hoge-list
========================= */
.list {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  flex-wrap: wrap;
}

.list > li {
    width: calc(94% / 4);
    margin-bottom: 30px;
}

.list > li:not(:nth-child(4n)) {
  margin-right: 2%;
}

.list .item {
  cursor: pointer;
}
.list .item .img-box {
    width: 100%;
    overflow: hidden;
    border-radius: 10px;
}

.list .item .img-box > img {
  transition: 0.3s;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.list .item .ttl {
  font-weight: bold;
  text-align: center;
}

.list .item:hover .img-box > img {
  transform: scale(1.05);
}

/* =========================
  modal-block
========================= */
body.modal-open {
  overflow: hidden;
}
.modal-block {
  display: none;
  position: fixed;
  justify-content: center;
  align-items: center;
  z-index: 99999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.8);
}

.modal-block .img-section {
    width: 60vw;
    max-width: 800px;
    position: relative;
    margin: 0 auto;
    background: #fff;
    padding: 50px;
}

.modal-block .img-section span {
  position: absolute;
  transform: translate(50%, -50%);
  top: 0;
  right: 0;
  cursor: pointer;
}

.modal-block .img-section span::before {
  content: "";
  width: 36px;
  height: 36px;
  background: #999999;
  border-radius: 50%;
  display: block;
}
.modal-block .img-section span::after {
    content: "×";
    color: #fff;
    font-size: 25px;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
	line-height: 1;
}
.modal-block .img-section img {
    width: 100%;
    height: auto;
}

.modal-block .caption {
  margin-top: 10px;
	font-size: 1.5em;
  text-align: center;
}
/* =========================
  modal navigation
========================= */

.modal-prev, .modal-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 80px;
    border: none;
    cursor: pointer;
}

.modal-prev {
  left: -70px;
}

.modal-next {
  right: -70px;
}

/* 矢印 */
.modal-prev::before,
.modal-next::before {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  border-style: solid;
  border-top: 40px solid transparent;
  border-bottom: 40px solid transparent;
  border-left: 30px solid #999999;
  border-right: 0;
  margin: auto;
}

.modal-prev::before {
  transform: rotate(-180deg);
}

@media screen and (max-width: 767px) {
	#equipment h3.company_h3{
		    margin-bottom: 20px;
	}
	#equipment > .inner {
    padding: 50px 0 30px;
}
.list {
gap:4%;
}
	.list > li{
		width: 48%;
		margin-bottom: 20px;
	}
	.list > li:not(:nth-child(4n)){
		margin-right: 0;
	}
.modal-block .img-section {
    width: 80vw;
    padding: 20px;
}
.modal-block .caption {
    font-size: 1em;
}
.modal-prev::before, .modal-next::before {
    content: "";
    display: block;
    width: 12px;
    height: 12px;
    border-style: solid;
    border-top: 24px solid transparent;
    border-bottom: 24px solid transparent;
    border-left: 19px solid #999999;
    border-right: 0;
    margin: auto;
}
.modal-prev, .modal-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 19px;
    height: 48px;
    border: none;
    cursor: pointer;
}
.modal-prev {
    left: -28px;
}
.modal-next {
    right: -28px;
}
}