@charset "utf-8";

/* ************************************************ 
*	ページ上部タイトル
* ************************************************ */	
.page-toptitle-box {
margin: 80px auto 0 auto;
padding: 0;
height: 200px;
text-align:center;
position: relative;
background: linear-gradient(
    -45deg,
    #dbf1ef 25%, #fff 25%,
    #fff 50%, #dbf1ef 50%,
    #dbf1ef 75%, #fff 75%,
    #fff
  );
background-size: 12px 12px;
z-index:999;
-moz-box-shadow: 0px 3px 3px rgba(0,0,0,0.1);
-webkit-box-shadow: 0px 3px 3px rgba(0,0,0,0.1);
-o-box-shadow: 0px 3px 3px rgba(0,0,0,0.1);
-ms-box-shadow: 0px 3px 3px rgba(0,0,0,0.1);
box-shadow: 0px 3px 3px rgba(0,0,0,0.1);
}
.page-toptitle {
font-weight:700;
letter-spacing: 0.05em;
padding: 0;
margin: 0;
color: #333;
text-align:center;
width:100%;
position: absolute;
top: 48%;
left: 50%;
-webkit-transform: translate(-50%,-50%);
-moz-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
-o-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
z-index:999;
font-size: min(3.6vw,36px);
line-height: 120%;
}

.page-toptitle span{
font-size: min(2.4vw,24px);
}


/* ************************************************ 
*	各ページ共通タイトルなど
* ************************************************ */
.title-box {
margin: 0 auto 80px auto;
text-align: center;
}
.title {
font-family: 'Noto Sans JP';
font-size: min(3.6vw,36px);
margin: 0;
padding: 0;
letter-spacing: 0.02em;
font-weight: 600;
position: relative;
line-height: 120%;
}
.title::after {
content: '';
width: 50px;
height: 5px;
background-color: #48b9ae;
position: absolute;
top: 60px;
left: 50%;
-webkit-transform: translate(-50%,-50%);
-moz-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
-o-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}


/* ************************************************ 
*   見出し
* ************************************************ */
.htitle {
  position: relative;
  padding: 0 0 15px 0;
  margin: 0;
  font-size: min(2.1vw,21px);
  font-weight: 500;
  line-height: 150%;
  display: block;
}
.htitle:after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 10px;
  content: '';
  background-image: -webkit-repeating-linear-gradient(135deg, #999, #999 1px, transparent 2px, transparent 5px);
  background-image: repeating-linear-gradient(-45deg, #999, #999 1px, transparent 2px, transparent 5px);
  background-size: 7px 7px;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.htitle2 {
  position: relative;
  padding: 0 0 10px 0;
  margin: 0;
  font-size: min(2.4vw,24px);
  font-weight: 500;
  line-height: 150%;
  display: block;
}
.htitle2:after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 10px;
  content: '';
  background-image: -webkit-repeating-linear-gradient(135deg, #999, #999 1px, transparent 2px, transparent 5px);
  background-image: repeating-linear-gradient(-45deg, #999, #999 1px, transparent 2px, transparent 5px);
  background-size: 7px 7px;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}


/* ************************************************ 
*	会社案内
* ************************************************ */
.rinen-box{
margin: 80px 0;
padding: 0;
text-align: center;
}
.rinen-box h2{
margin: 0 0 30px 0;
padding: 0;
font-size: min(4.0vw,48px);
font-family: 'Sawarabi Mincho';
font-weight: 700;
letter-spacing: 0.15em;
}

.greeting-box{
margin: 0;
padding: 0 0 100px 0;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.greeting-imgbox{
width: 32%;
max-width: 360px;
text-align: center;
margin: 0;
}
.greeting-imgbox img{
border-radius: 50vh; /* CSS3 */
 -webkit-border-radius: 50vh; /* Firefox */
 -moz-border-radius: 50vh; /* Safari,Chrome */
}
.greeting-imgbox p{
line-height: 170%;
font-family: 'Sawarabi Mincho';
}
.greeting-imgbox p span{
font-size: 18px;
}
.greeting-textbox{
width: 65%;
margin: 0 auto;
}
.greeting-textbox h3{
margin: 0 0 30px 0;
padding: 0;
font-size: min(3.0vw,30px);
font-family: 'Sawarabi Mincho';
font-weight: 700;
letter-spacing: 0.05em;
line-height: 160%;
}
.greeting-textbox p{
line-height: 200%;
font-size: min(1.8vw,17px);
font-family: 'Sawarabi Mincho';
}
.greeting-textbox p.name{
margin: 50px 0 0 0;
text-align: right;
}
.greeting-textbox p span{
text-align: right;
font-size: min(2.1vw,21px);
}


.company-box {
margin: 0;
padding: 0 0 115px 0;
}
.company-imgbox {
margin: 0 auto 70px auto;
padding: 0;
text-align: center;
width: 60%;
}
table.company {
width: 100%;
margin: 0;
padding: 0;
border-collapse: collapse;
border-spacing: 0;
border-top: 1px #999 solid;
}
table.company tr {
border-bottom: 1px #999 solid;
}
table.company th {
font-weight: normal;
text-align: left;
padding: 20px;
white-space: nowrap; 
width:20%;
background-color: #efefef;
}
table.company td {
text-align: left;
padding: 20px;
white-space: normal;
vertical-align: middle;
}


.access-box {
margin: 0;
padding: 0 0 115px 0;
}
.access-block-inner{
margin: 0;
padding: 0;
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

.history-box {
margin: 0;
padding: 0 0 115px 0;
}
table.history {
width: 100%;
margin: 0;
padding: 0;
border-collapse: collapse;
border-spacing: 0;
border-top: 1px #999 solid;
}
table.history tr {
border-bottom: 1px #999 solid;
}
table.history th {
font-weight: normal;
text-align: left;
padding: 20px;
white-space: nowrap; 
vertical-align: middle;
width:20%;
}
table.history td {
text-align: left;
padding: 20px;
white-space: normal;
vertical-align: middle;
}
table.history td img{
height: 50px;
vertical-align: middle;
margin-left: 15px;
position: relative;
top: -3px;
}


/* ************************************************ 
*	事業紹介
* ************************************************ */
.business-box {
margin: 0;
padding: 100px 0 115px 0;
}
.business-box-inner {
margin: 0;
padding: 30px 0 0 0;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.business-box-inner-left {
margin: 0;
padding: 0;
width: 35%;
}
.business-box-inner-right {
margin: 0;
padding: 0;
width: 60%;
}

.business-box-inner-left__img{
margin: 0;
padding: 0;
position: relative;
z-index:0;
overflow: hidden;
}
.business-box-inner-left__img img{
vertical-align: bottom;
}
.business-box-inner-left__img:before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background:rgba(26,168,154,0.3);
}

.business-box-inner-right-inner {
margin: 0 0 40px 0;
padding: 0;
width: 100%;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
align-items: center;
}
.business-box-inner-right-inner h3{
margin: 0;
padding: 0;
display: inline-block;
font-size: min(4.5vw,60px);
color: #48b9ae;
font-weight: 400;
width: 10%;
}
.business-box-inner-right-inner__border {
margin: 0;
padding: 0 0 0 20px;
width: calc(87% - 20px);
border-left: 2px solid #48b9ae;
}
.business-box-inner-right-inner__border2 {
margin: 0;
padding: 10px 0 10px 20px;
width: calc(87% - 20px);
border-left: 2px solid #48b9ae;
}
.business-box-inner-right-inner p{
margin: 0;
padding: 0;
font-size: min(2.0vw,20px);
line-height: 1.6;
font-weight: 500;
}


.business-seizoubox {
margin: 0;
padding: 0 0 115px 0;
}
.business-subtitle {
text-align: center;
margin: 0 auto 50px auto;
padding: 0;
font-size: min(2.4vw,24px);
color:#48b9ae;
}
.business-seizoubox-inner {
margin: 0 0 50px 0;
padding: 0;
width: 100%;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
align-items: center;
}
.business-seizoubox-inner__img {
margin: 0;
padding: 0;
width: 30%;
}
.business-listbox {
margin: 0 0 50px 0;
padding: 0;
}
.business-listbox p{
margin: 15px 0 0 0;
padding: 0;
font-size: min(1.6vw,16px);
}
.business-listbox li{
margin: 15px 0 0 0;
padding: 0;
font-size: min(1.6vw,16px);
}


/* ************************************************ 
*	設備紹介
* ************************************************ */
.facility-box {
margin: 0;
padding: 100px 0 115px 0;
}
.facility-box-inner {
margin: 30px 0 0 0;
padding: 0;
width: 100%;
display: flex;
justify-content: start;
flex-wrap: wrap;
}
li.facility-box-inner-box {
margin: 0 5% 60px 0;
padding: 0;
width: 30%;
text-align: center;
}
li:nth-child(3n).facility-box-inner-box {
margin: 0 0 60px 0;
padding: 0;
width: 30%;
text-align: center;
}
li.facility-box-inner-box p,
li:nth-child(3n).facility-box-inner-box p{
font-size: min(1.8vw,18px);
line-height: 140%;
}
li .facility-box-inner__img {
margin: 0 0 10px 0;
padding: 0;
width: 100%;
position: relative;
z-index:0;
overflow: hidden;
}
li:nth-child(2n) .facility-box-inner__img{
margin: 0 0 10px 0;
padding: 0;
width: 100%;
position: relative;
z-index:0;
overflow: hidden;
}
li .facility-box-inner__img img{
vertical-align: bottom;
}
li .facility-box-inner__img:before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background:rgba(26,168,154,0.3);
}
li:nth-child(2n) .facility-box-inner__img:before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background:rgba(0,0,0,0.3);
}
.facility-listbox {
margin: 0 0 50px 0;
padding: 0;
}
.facility-listbox li{
margin: 15px 0 0 0;
padding: 0;
font-size: min(1.6vw,16px);
}
.facility-listbox-inner {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.htitle-facility__left {
width: 85%;
}
.htitle-facility__right {
width: 10%;
}



/* ************************************************ 
*	採用情報
* ************************************************ */
.recruit-box {
margin: 0;
padding: 100px 0 60px 0;
}
.recruit-toptitlebox {
margin: 0 0 30px 0;
padding: 0;
}
.recruit-top {
margin: 0 0 30px 0;
padding: 0;
font-size: min(1.8vw,18px);
line-height: 1.5;
}
table.recruit {
width: 100%;
margin: 0;
padding: 0;
border-collapse: collapse;
border-spacing: 0;
border-top: 1px #999 solid;
}
table.recruit tr {
border-bottom: 1px #999 solid;
}
table.recruit th {
font-weight: normal;
text-align: left;
padding: 20px;
white-space: nowrap; 
width:20%;
background-color: #efefef;
}
table.recruit td {
text-align: left;
padding: 20px;
white-space: normal;
vertical-align: middle;
}

.recruit-contactbox{
margin: 0;
padding: 0 0 115px 0;
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.recruit-telbox,
.recruit-mailbox{
width: 47.5%;
height: 90px;
margin: 0;
padding: 30px 0;
text-align: center;
position: relative;
border-top: 5px solid #48b9ae;
border-bottom: 5px solid #48b9ae;
}
.recruit-telbox h4,
.recruit-mailbox h4{
font-size: min(2.4vw,24px);
font-weight: 500;
margin: 0 0 20px 0;
}
.recruit-telicon img{
width: 298px;
vertical-align: bottom;
}
.recruit-mailicon img{
width: 44px;
vertical-align: bottom;
}



/* ************************************************ 
*	お問い合わせ
* ************************************************ */
.contact-box {
margin: 0;
padding: 100px 0 0 0;
}
.contact-line{
margin: 0 0 50px 0;
padding:15px 20px;
border:2px solid #333;
}
.contact-line p{
font-size: min(1.8vw,16px);
}
.contact-line a{
text-decoration: underline;
color: #48b9ae;
}
.contact-line a:hover{
text-decoration: none;
color: #000;
}

table.contact {
width: 100%;
margin: 0 0 25px 0;
padding: 0;
border-collapse: collapse;
border-spacing: 0;
border-top: 1px #999 solid;
}
table.contact tr {
border-bottom: 1px #999 solid;
}
table.contact th {
font-weight: normal;
text-align: left;
padding: 20px;
white-space: nowrap; 
width:25%;
vertical-align: middle;
background-color: #efefef;
}
table.contact th.last {
vertical-align: top;
}
table.contact td {
text-align: left;
padding: 20px;
white-space: normal;
vertical-align: middle;
}
table.contact td select {
padding: 8px;
}
table.contact td input[type="text"],
table.contact td textarea {
width: 98%!important;
}

.width10{ width: 10%!important; }
.width20{ width: 20%!important; }
.contact-red { color: #c20018; font-size: 80%; }
input[type="checkbox"] {
position: relative;
top: 1px;
font-size: 110%;
}

.contact-check{
margin: 0;
padding: 0;
width: 100%;
text-align: center;
}


.contactlink-box {
margin: 50px auto 100px auto;
padding: 0;
text-align:center;
}
.contactlink {
margin: 0 auto;
padding: 0;
text-align:center;
width: 25%;
font-size: 18px;
background-color:#333;
color: #fff;
padding: 15px 0;
border: none;
}
.contactlink:hover{
color: #fff;
background-color:#48b9ae;
border: none;
	transition: 0.5s;
	-webkit-transition: 0.5s;
	-moz-transition: 0.5s;
	-o-transition: 0.5s;
	-ms-transition: 0.5s;
}


.contact-end{
margin: 0;
padding: 0 0 115px 0;
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: center;
}

.privacy-box{
margin: 0 0 0 0;
padding:0 0 115px 0;
}
.privacy-box p{
font-size: min(1.8vw,16px);
}
.privacy-box p span{
font-size: min(2.1vw,21px);
}
.privacy-box-inner{
margin: 0 0 0 0;
padding: 15px 0 35px 0;
}
.privacypolicy-endbox{
text-align: right;
}


/* ************************************************ 
*   レスポンシブ
* ************************************************ */
/* PC 画面の横幅が960px以上 */
@media only screen and (min-width: 960px){
#privacy {
margin-top: -100px;
padding-top: 100px;
}
}

/* Tablet (Portrait) 画面の横幅が768px〜959pxまで */
@media only screen and (min-width: 768px) and (max-width: 959px) {
.page-toptitle { font-size: 24px; }
.page-toptitle span{ font-size: 18px; }

.greeting-textbox{ width: 85%; }

.business-box { padding: 70px 0 70px 0; }
.business-box-inner { padding: 0 0 0 0; }
.business-seizoubox { padding: 0 0 70px 0; }

.facility-box { padding: 70px 0 70px 0; }
.recruit-box { padding: 70px 0 70px 0; }
.recruit-telbox,
.recruit-mailbox {
height: 80px;
padding: 25px 0;
}
.recruit-telicon img{ width: 250px; }
.recruit-mailicon img{ width: 40px; }

.contact-box { padding: 70px 0 0 0; }

}


/* Mobile (Portrait) 画面の横幅が767pxまで */
@media only screen and (max-width: 767px) {
p { font-size: 4vw; }
.page-toptitle-box {
margin: 0 0 0 0;
height: 120px;
}
.page-toptitle {
top: 50%;
left: 50%;
font-size: 6.5vw;
}
.page-toptitle span { font-size: 5vw; }
.htitle { font-size: 4.5vw; }
.htitle2 { font-size: 5vw; }

.title-box { margin: 0 auto 50px auto; }
.title { font-size: 6vw; }
.title::after {
width: 50px;
height: 5px;
top: 40px;
}

.rinen-box { margin: 50px 0 35px 0; }
.rinen-box h2 {
margin: 0 0 15px 0;
font-size: 6vw;
}
.greeting-box { padding: 0 0 70px 0; }
.greeting-imgbox {
width: 100%;
max-width: 100%;
margin: 0 0 30px 0;
}
.greeting-imgbox img { width: 65%; }
.greeting-imgbox p span { font-size: 5vw; }
.greeting-textbox {
width: 100%;
max-width: 100%;
}
.greeting-textbox h3 {
margin: 0 0 30px 0;
font-size: 5vw;
line-height: 160%;
letter-spacing: 0;
}
.greeting-textbox p { font-size: 4vw; }
.greeting-textbox p span{ font-size: 5vw; }

.company-imgbox {
margin: 0 auto 30px auto;
width: 100%;
}

.company-box { padding: 0 0 70px 0; }
table.company th {
display:block;
width: calc(100% - 20px);
text-align: left;
padding: 15px 10px;
font-weight:bold;
}
table.company td {
display:block;
width: calc(100% - 20px);
text-align: left;
padding: 15px 10px;
}

.access-box { padding: 0 0 70px 0; }
.history-box { padding: 0 0 70px 0; }
table.history th {
display:block;
padding: 15px 0 5px 0;
width: 100%;
}
table.history td {
display:block;
padding: 5px 0 15px 0;
width: 100%;
}
table.history td img{
height: 35px;
top: -3px;
}


.business-box { padding: 35px 0 45px 0; }
.business-box-inner { padding: 0 0 0 0; }
.business-box-inner-left {
margin: 0 0 25px 0;
width: 100%;
}
.business-box-inner-right {
margin: 0;
width: 100%;
}
.business-box-inner-right-inner { margin: 0 0 25px 0; }
.business-box-inner-right-inner h3 {
font-size: 7vw;
width: 10%;
}
.business-box-inner-right-inner p { font-size: 4.5vw; }

.business-subtitle {
margin: 0 auto 30px auto;
font-size: 5vw;
}
.business-seizoubox {
padding: 0 0 40px 0;
}
.business-seizoubox-inner__img {
margin: 0 0 25px 0;
width: 100%;
}
.business-seizoubox-inner { margin: 0 0 0 0; }
.business-listbox { margin: 0 0 30px 0; }
.business-listbox p {
margin: 15px 0 0 0;
font-size: 4vw;
line-height: 1.6;
}
.business-listbox li {
margin: 15px 0 0 0;
font-size: 4vw;
line-height: 1.6;
}

.facility-box {
margin: 0;
padding: 35px 0 30px 0;
}
.facility-box-inner { margin: 0 0 0 0; }
li.facility-box-inner-box,
li:nth-child(3n).facility-box-inner-box {
margin: 0 0 40px 0;
width: 100%;
}
li.facility-box-inner-box p,
li:nth-child(3n).facility-box-inner-box p{
font-size: 4.5vw;
}
.facility-listbox { margin: 0 0 30px 0;  }
.facility-listbox li{
margin: 15px 0 0 0;
font-size: 4vw;
line-height: 1.6;
}
.htitle-facility__left,
.htitle-facility__right {
width: 100%;
}

.recruit-box {
margin: 0;
padding: 35px 0 50px 0;
}
.recruit-toptitlebox { margin: 0 0 20px 0; }
.recruit-top {
margin: 0 0 20px 0;
font-size: 4vw;
line-height: 1.8;
}
table.recruit th {
display:block;
width: calc(100% - 20px);
text-align: left;
padding: 15px 10px;
font-weight:bold;
}
table.recruit td {
display:block;
width: calc(100% - 20px);
text-align: left;
padding: 15px 10px;
}

.recruit-contactbox { padding: 0 0 50px 0; }
.recruit-telbox,
.recruit-mailbox {
width: 100%;
height: auto;
margin: 0 0 30px 0;
padding: 20px 0 25px 0;
}
.recruit-telbox h4,
.recruit-mailbox h4 {
font-size: 5vw;
margin: 0 0 15px 0;
}
.recruit-telicon img { width: 70%; }
.recruit-mailicon img { width: 40px; }


.contact-box { padding: 50px 0 0 0; }
.contact-line p{ font-size: 4vw; }
table.contact th {
display:block;
width: calc(100% - 20px);
text-align: left;
padding: 15px 10px;
font-weight:bold;
}
table.contact td {
display:block;
width: 100%;
text-align: left;
padding: 15px 0;
}
table.contact td textarea {
margin: 0 0 15px 0;
}

.contactlink-box { margin: 0 auto 50px auto; }
.contactlink { width: 100%; }

.width20{ width: 50%!important; }
.contact-end{ padding: 0 0 50px 0; }

.privacy-box{ padding:0 0 60px 0; }
.privacy-box p{ font-size: 4vw; }
.privacy-box p span{ font-size: 5vw; }

#privacy {
margin-top: -10px;
padding-top: 10px;
}

}
