/*!
style
 ______________________________*/

/*

text
_________*/
.tR {
  text-align: right !important;
}

.tL {
  text-align: left !important;
}

.tC {
  text-align: center !important;
}

.font70 {
  font-size: 70%;
}

.font80 {
  font-size: 80%;
}

.font130 {
  font-size: 130%;
}

.font150 {
  font-size: 150%;
}

.font170 {
  font-size: 170%;
}

.mb50 {
  margin-bottom: 50px !important;
}

.mb70 {
  margin-bottom: 70px !important;
}

.mb100 {
  margin-bottom: 100px !important;
}

.greeting {
  display: block;
  width: 100%;
  background-image:
    linear-gradient(to bottom, transparent 50%, white 50%),
    url(../img/main_transbox.png);
  background-repeat: no-repeat, no-repeat;
  background-size: 100%, 100%;
  background-position: top center, top center;
  margin: 350px 0 0;
  overflow: hidden;
  min-height: 156vh;
  padding: 20vw 0 0;

}

.greeting .container {
  max-width: 790px;
}

.greeting article {
  padding: 70px 0 30px;
}

h3 {
  font-size: 3.4rem;
  text-align: center;
  padding: 0 0 15px;
  margin: 0 0 45px;
  background-image: url(../img/h3bar_bg.png);
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: 166px 2px;
}

.greeting_company p {
  margin-bottom: 40px;
}

.greeting_ceo {
  background-color: #fff;
}

.ceo {
  text-align: right;
}

.ceo span {
  font-size: 2.2rem;
}

.facility {
  background-color: #01a785;
  background-image: url(../img/bg2-1.png);
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 100%;
  padding: 8vw 0 0;

}

.facility h3 {
  color: #fff;
}

.facility .half_img {
  display: flex;
  list-style-type: none;
  margin: 0;
  padding: 0;
  background-color: #fff;
  margin-right: calc(50% - 50vw);
}



.facility .half_img img {
  margin-bottom: 50px;
}

.facility .half_img li {
  width: 50%;
}

.facility .half_img li:nth-child(2) {
  padding: 0 0 0 100px;
  display: flex;
  align-items: center;
  font-size: 2rem;
}

.facility .half_img.rev {
  margin-right: inherit;
  margin-left: calc(50% - 50vw);
}

.facility .half_img.rev li:nth-child(1) {
  order: 2;
}

.facility .half_img.rev li:nth-child(2) {
  order: 1;
}

.facility .img_3col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 1fr;
  grid-column-gap: 15px;
  padding: 100px 0;
  margin: 0;
  list-style-type: none;
}

.case {
  background-color: #fff;
  padding: 120px 0;
}

.case .container {
  max-width: 1025px;
}

.case h3 {
  margin-bottom: 60px;
}

.case .img_4col {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: 1fr;
  grid-column-gap: 15px;
  padding: 0 0;
  margin: 0;
  list-style-type: none;
}

.facility2,
.access {
  background-color: #fff;
  padding: 8vw 0 65px;
}

.facility2 .container,
.access .container,
.contact .container {
  max-width: 770px;
}

.facility2 table,
.access table,
.contact table .contact dl {
  border: 1px solid #d0ede8;
  margin: 0 0 30px;
}

.contact dl {
  display: flex;
  flex-wrap: wrap;
}

.facility2 table th,
{
background-color: #e6f6f3;
width: 80%;
}

.facility2 table th,
.facility2 table td,
.access table th,
.access table td,
.contact table th,
.contact table td,
.contact dl dt,
.contact dl dd {
  padding: 20px;
  border: 1px solid #d0ede8;
}

.access table th,
.contact table th,
.contact dl dt {
  background-color: #e6f6f3;
}

.access table {
  margin-bottom: 100px;
}

.td_nopad {
  padding: 0 !important;
}

.tbl_company_in th {
  background-color: #f5f5f5 !important;
}

.tbl_company_in {
  margin-bottom: 0 !important;
  border: inherit !important;
}


/* 最初の行（代表取締役）の th, td */
.tbl_company_in tr:first-child th {
  border-top: inherit !important;
  border-left: inherit !important;
}

.tbl_company_in tr:first-child td {
  border-top: inherit !important;
  border-right: inherit !important;
}

/* 最後の行（監査役）の th, td */
.tbl_company_in tr:last-child th {
  border-bottom: inherit !important;
  border-left: inherit !important;
}

.tbl_company_in tr:last-child td {

  border-bottom: inherit !important;
  border-right: inherit !important;
}

.contact {
  background-color: #fff;
  padding: 120px 0;
}



.contact th,
.contact dt {
  position: relative;
  width: 15em;
  vertical-align: top;
}

.contact dd {
  width: calc(100% - 15em);
  margin: 0;
}

.contact th span,
.contact dt span.req {
  border: 1px solid #ff0100;
  color: #ff0100;
  padding: 2px 4px;
  font-size: 1.5rem;
  position: absolute;
  top: 20px;
  right: 10px;
}

.p-postal-code {
  width: 8em !important;
  display: inline-block !important;
  margin: 0 0 10px 10px;
}

footer {
  background-color: #00352a;
  color: #00a683;
  text-align: center;
  padding: 50px 0 0;
}

footer h2 {
  margin: 0;
  padding: 0;
}

footer img {
  width: 120px;
  height: auto;
  margin: 0 auto 50px;
}

.copy {
  background-color: #00352a;
  color: #00a683;
  font-size: 1rem;
  font-family: Arial, Helvetica, sans-serif;
  text-align: center;
  padding: 5px 0;
}

.pagetop {
  position: fixed;
  right: 10px;
  bottom: 20px;
}

.pagetop img {
  width: 50px;
  height: auto;
}