@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Josefin+Sans:ital,wght@0,100..700;1,100..700&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Oswald:wght@200..700&display=swap");
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
}

html {
  line-height: 1;
}

ol, ul, li {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle;
}

q, blockquote {
  quotes: none;
}

q:before, q:after, blockquote:before, blockquote:after {
  content: "";
  content: none;
}

a img {
  border: none;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
  display: block;
}

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

a,
button,
input[type=submit],
input[type=button] {
  text-decoration: none;
  -webkit-transition: opacity 0.3s ease, color 0.3s ease, background-color 0.3s ease, background-image 0.3s ease, background 0.3s ease;
  transition: opacity 0.3s ease, color 0.3s ease, background-color 0.3s ease, background-image 0.3s ease, background 0.3s ease;
}
a:hover,
button:hover,
input[type=submit]:hover,
input[type=button]:hover {
  opacity: 0.6;
}
@media (min-width: 1px) and (max-width: 767px) {
  a:hover,
  button:hover,
  input[type=submit]:hover,
  input[type=button]:hover {
    opacity: 1;
  }
}

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
@media screen and (max-width: 767px) {
  img {
    width: 100%;
  }
}

table {
  width: 100%;
}

input[type=text],
input[type=email],
input[type=tel],
textarea {
  -webkit-appearance: none;
  border: none;
  font-family: inherit;
  border-radius: 0;
}

input[type=text]:focus,
input[type=email]:focus,
input[type=tel]:focus {
  outline: 0;
}

textarea {
  resize: vertical;
}
textarea:focus {
  outline: none;
}

main {
  display: block;
}

/* ---------------------------------------
  html , body
-----------------------------------------*/
html {
  font-size: 62.5%;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  html {
    font-size: 2.6666666667vw;
  }
}

body {
  -webkit-text-size-adjust: 100%;
  overflow: auto;
  position: relative;
  font-size: 1.6rem;
}
@media screen and (min-width: 768px) {
  body {
    min-width: 1450px;
  }
}
@media screen and (max-width: 767px) {
  body {
    overflow-x: hidden;
  }
}
body.active {
  overflow: hidden;
}

/* ---------------------------------------
  font
-----------------------------------------*/
.font_josefin {
  font-family: "Josefin Sans", sans-serif;
}

.font_oswald {
  font-family: "Oswald", sans-serif;
}

.font_notoserif {
  font-family: "Noto Serif JP", serif;
}

/* ---------------------------------------
  .wrap
-----------------------------------------*/
.wrap {
  width: 75%;
  max-width: 1200px;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .wrap {
    width: 89.3%;
    max-width: none;
  }
}

/* ---------------------------------------
  header
-----------------------------------------*/
header {
  background-color: #27B4A6;
  padding: 2.4rem 0;
}
@media screen and (max-width: 767px) {
  header {
    padding: 0;
    height: 6rem;
    position: relative;
    z-index: 2;
  }
}
header .wrap {
  width: 100%;
  max-width: none;
  padding: 0 10rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media screen and (max-width: 767px) {
  header .wrap {
    padding: 0;
  }
}
@media screen and (max-width: 767px) {
  header .logo {
    padding: 1.31rem 1.7rem 1.31rem 1.2rem;
    width: 100%;
    background-color: #27B4A6;
    position: relative;
    z-index: 2;
  }
}
header .logo a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (max-width: 767px) {
  header .logo a {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
  }
}
header .logo img {
  width: 5.2rem;
  margin-right: 0.9rem;
}
@media screen and (max-width: 767px) {
  header .logo img {
    width: 3.4rem;
    margin-right: 1rem;
  }
}
header .logo .txt {
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
}
@media screen and (max-width: 767px) {
  header .logo .txt {
    font-size: 1.4rem;
  }
}
header nav {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  margin-left: 10.5rem;
}
header .nav_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (max-width: 767px) {
  header .nav_list {
    position: fixed;
    top: -100vh;
    left: 0;
    background-color: #9FD8D2;
    width: 100%;
    display: block;
    padding: 2.6rem 2.1rem;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    z-index: 1;
  }
}
header .nav_list li a {
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  header .nav_list li a {
    color: #2A2A2A;
    font-weight: 700;
  }
}
@media screen and (min-width: 768px) {
  header .nav_list li:nth-of-type(n+2) {
    margin-left: min(2.7777777778vw, 40px);
  }
}
@media screen and (max-width: 767px) {
  header .nav_list li:nth-of-type(n+2) {
    margin-top: 1.9rem;
  }
}
@media screen and (max-width: 767px) {
  header .nav_list li:nth-last-of-type(1) a {
    padding-bottom: 0;
  }
}
@media screen and (max-width: 767px) {
  header .nav_list.active {
    top: 6rem;
  }
}
@media screen and (max-width: 767px) {
  header .btn_hamburger {
    width: 2.4rem;
    height: 1.7rem;
    position: absolute;
    right: 1.7rem;
    z-index: 2;
  }
  header .btn_hamburger span {
    background-color: #fff;
    width: 1.8rem;
    height: 0.3rem;
    position: absolute;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
  }
  header .btn_hamburger span:nth-of-type(1) {
    top: 0;
  }
  header .btn_hamburger span:nth-of-type(2) {
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
  header .btn_hamburger span:nth-of-type(3) {
    bottom: 0;
  }
  header .btn_hamburger.active span:nth-of-type(1) {
    top: 0.7rem;
    -webkit-transform: translateX(-50%) rotate(45deg);
            transform: translateX(-50%) rotate(45deg);
  }
  header .btn_hamburger.active span:nth-of-type(2) {
    display: none;
  }
  header .btn_hamburger.active span:nth-of-type(3) {
    bottom: 0.7rem;
    -webkit-transform: translateX(-50%) rotate(-45deg);
            transform: translateX(-50%) rotate(-45deg);
  }
}
header .tel_box p {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.4583333333;
  color: #fff;
}
header .tel_box p .tel {
  font-size: 2.4rem;
}

/* ---------------------------------------
  footer
-----------------------------------------*/
footer {
  background-color: #2A2A2A;
  position: relative;
  padding: 30px;
}
@media screen and (max-width: 767px) {
  footer {
    padding: 1.5rem;
  }
}
footer #pagetop {
  position: absolute;
  right: 27px;
  top: -34.5px;
  width: 69px;
  cursor: pointer;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 767px) {
  footer #pagetop {
    right: 0.9rem;
    top: -1.9rem;
    width: 4.3rem;
  }
}
@media screen and (min-width: 768px) {
  footer #pagetop:hover {
    opacity: 0.6;
  }
}
footer .copyright {
  color: rgba(255, 255, 255, 0.5);
  font-size: 1.4rem;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  footer .copyright {
    text-align: center;
    letter-spacing: 0.1em;
  }
}
@media screen and (max-width: 767px) {
  footer .copyright {
    font-size: 1rem;
  }
}

/* ---------------------------------------
  #mv
-----------------------------------------*/
#mv {
  position: relative;
}
#mv::before {
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.22);
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}
#mv .mv_txt {
  position: absolute;
  left: 50%;
  bottom: 72px;
  z-index: 2;
}
@media screen and (min-width: 768px) {
  #mv .mv_txt {
    width: 75%;
    max-width: 1200px;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@media screen and (max-width: 767px) {
  #mv .mv_txt {
    bottom: 3.7rem;
    left: 1.7rem;
  }
}
#mv .mv_txt .txt_mv {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: solid 0.5px #fff;
  display: inline-block;
}
#mv .mv_txt .txt_mv p {
  font-size: 5.8rem;
  color: #fff;
  letter-spacing: 0.36em;
}
@media screen and (max-width: 767px) {
  #mv .mv_txt .txt_mv p {
    font-size: 2.4rem;
  }
}
#mv .mv_txt .txt_mv p span {
  font-size: 4.4rem;
}
@media screen and (max-width: 767px) {
  #mv .mv_txt .txt_mv p span {
    font-size: 2.4rem;
  }
}
#mv .mv_txt .txt_mv p:nth-of-type(n+2) {
  margin-top: 0.25em;
  letter-spacing: 0.192em;
}
@media screen and (max-width: 767px) {
  #mv .mv_txt .txt_mv p:nth-of-type(n+2) {
    margin-top: 1rem;
  }
}
#mv .mv_txt .font_oswald {
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.205em;
  color: #fff;
}
@media screen and (max-width: 767px) {
  #mv .mv_txt .font_oswald {
    font-size: 1rem;
    letter-spacing: 0.187em;
  }
}

/* ---------------------------------------
  #about
-----------------------------------------*/
#about {
  margin-top: 100px;
}
@media screen and (max-width: 767px) {
  #about {
    margin-top: 4rem;
  }
}
#about .wrap {
  background-color: #27B4A6;
}
@media screen and (min-width: 768px) {
  #about .wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
#about .img_box {
  width: 41.6%;
}
@media screen and (min-width: 768px) {
  #about .img_box {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
  }
}
@media screen and (max-width: 767px) {
  #about .img_box {
    width: 100%;
  }
}
@media screen and (min-width: 768px) {
  #about .img_box img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
#about .txt_box {
  padding: 56px 60px 72px 60px;
  background: url(../images/bg_about.png) no-repeat right 31px bottom 38px;
}
@media screen and (max-width: 767px) {
  #about .txt_box {
    padding: 2.8rem 1.8rem 2rem;
    background-size: 13.8rem auto;
    background-position: right 1.8rem top 1.5rem;
  }
}
#about .txt_box .lead {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.8333333333;
  letter-spacing: 0.2em;
  color: #fff;
}
@media screen and (max-width: 767px) {
  #about .txt_box .lead {
    font-size: 1.6rem;
    line-height: 1.875;
  }
}
#about .txt_box .ttl_about {
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  padding: 13px 18px;
  border: solid 3px #fff;
  display: inline-block;
  letter-spacing: 0.2em;
  margin-top: 30px;
}
@media screen and (max-width: 767px) {
  #about .txt_box .ttl_about {
    font-size: 1.4rem;
    padding: 1rem;
    letter-spacing: 0.1em;
    margin-top: 3.4rem;
  }
}
#about .txt_box .txt_about {
  font-size: 1.5rem;
  line-height: 2.2666666667;
  margin-top: 1.5rem;
  color: #fff;
}
@media screen and (max-width: 767px) {
  #about .txt_box .txt_about {
    font-size: 1.4rem;
    line-height: 1.8571428571;
  }
}

/* ---------------------------------------
  .bg_content
-----------------------------------------*/
.bg_content {
  background: url(../images/bg_content.png) no-repeat top/cover;
  margin-top: 100px;
  padding-bottom: 100px;
}
@media screen and (max-width: 767px) {
  .bg_content {
    background-image: url(../images/bg_content_sp.png);
    background-size: 100% auto;
    background-repeat: repeat;
    margin: 4rem 0;
    padding-bottom: 4rem;
  }
}

/* ---------------------------------------
  .sec_ttl
-----------------------------------------*/
.sec_ttl {
  background-color: #27B4A6;
  border: solid 5px #27B4A6;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-left: 60px;
  background-position: center right;
  background-repeat: no-repeat;
  height: 156px;
}
@media screen and (max-width: 767px) {
  .sec_ttl {
    border-width: 3px;
    padding-left: 2.1rem;
    height: 8rem;
    background-size: auto 100%;
  }
}
.sec_ttl .txt_box {
  margin-left: 17px;
}
@media screen and (max-width: 767px) {
  .sec_ttl .txt_box {
    margin-left: 0.73rem;
  }
}
.sec_ttl .txt_box .ja {
  font-size: 3rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 767px) {
  .sec_ttl .txt_box .ja {
    font-size: 1.8rem;
  }
}
.sec_ttl .txt_box .en {
  font-size: 1.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #fff;
  margin-top: 1em;
}
@media screen and (max-width: 767px) {
  .sec_ttl .txt_box .en {
    font-size: 1.2rem;
    margin-top: 0.5rem;
  }
}

/* ---------------------------------------
  .com_table
-----------------------------------------*/
.com_table {
  background-color: #fff;
}
@media screen and (min-width: 768px) {
  .com_table {
    border-top: solid 2px #27B4A6;
  }
}
.com_table th, .com_table td {
  font-size: 1.6rem;
  padding: 18px 30px;
  line-height: 1.9375;
}
@media screen and (max-width: 767px) {
  .com_table th, .com_table td {
    display: block;
    padding: 1.2rem;
    font-size: 1.3rem;
  }
}
@media screen and (min-width: 768px) {
  .com_table tbody {
    border-bottom: solid 1px #27B4A6;
  }
}
.com_table tbody th, .com_table tbody td {
  letter-spacing: 0.1em;
  border-bottom: solid 1px rgba(39, 180, 166, 0.25);
}
.com_table tbody th {
  background-color: rgba(39, 180, 166, 0.3);
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .com_table tbody th {
    width: 280px;
  }
}
@media screen and (max-width: 767px) {
  .com_table tbody th {
    padding: 0.6rem 1.2rem;
  }
}

/* ---------------------------------------
  .btn
-----------------------------------------*/
.btn a,
.btn button,
.btn input[type=submit],
.btn input[type=button] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 300px;
  height: 60px;
  background-color: #FFDC2D;
  border-radius: 5px;
  color: #343434;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-left: auto;
  margin-right: auto;
  cursor: pointer;
  border: none;
}
@media screen and (max-width: 767px) {
  .btn a,
  .btn button,
  .btn input[type=submit],
  .btn input[type=button] {
    width: 26rem;
    height: 5rem;
    font-size: 1.4rem;
  }
}
.btn a.back,
.btn button.back,
.btn input[type=submit].back,
.btn input[type=button].back {
  background-color: #ccc;
}

/* ---------------------------------------
  #works
-----------------------------------------*/
#works {
  padding-top: 100px;
}
@media screen and (max-width: 767px) {
  #works {
    padding-top: 4rem;
  }
}
#works .sec_ttl {
  background-image: url(../images/bg_works.png);
}
@media screen and (max-width: 767px) {
  #works .sec_ttl {
    background-image: url(../images/bg_works_sp.png);
  }
}
@media screen and (max-width: 767px) {
  #works .sec_ttl .icon_box {
    width: 3.6rem;
  }
}
#works .wrap {
  background-color: rgba(39, 180, 166, 0.4);
}
#works .table_box {
  padding: 60px;
}
@media screen and (max-width: 767px) {
  #works .table_box {
    padding: 2rem 1.5rem;
  }
}
@media screen and (min-width: 768px) {
  #works table {
    background-color: #fff;
  }
}
#works table th, #works table td {
  font-size: 1.6rem;
  padding: 18px 30px;
}
@media screen and (max-width: 767px) {
  #works table th, #works table td {
    padding: 0;
    font-size: 1.3rem;
  }
}
@media screen and (max-width: 767px) {
  #works table th span, #works table td span {
    padding: 1.2rem;
    display: block;
  }
}
@media screen and (max-width: 767px) {
  #works table thead {
    display: none;
  }
}
#works table thead th {
  background-color: #2A2A2A;
  text-align: center;
  color: #fff;
  letter-spacing: 0.2em;
  font-weight: 700;
}
#works table thead th:nth-of-type(1) {
  width: 280px;
}
@media screen and (max-width: 767px) {
  #works table tbody tr {
    display: block;
  }
}
@media screen and (min-width: 768px) {
  #works table tbody tr:nth-last-of-type(1) th, #works table tbody tr:nth-last-of-type(1) td {
    border-bottom: solid 1px #27B4A6;
  }
}
@media screen and (max-width: 767px) {
  #works table tbody tr:nth-of-type(n+2) {
    margin-top: 2rem;
  }
}
#works table tbody th, #works table tbody td {
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  #works table tbody th, #works table tbody td {
    border-bottom: solid 1px rgba(39, 180, 166, 0.25);
  }
}
@media screen and (max-width: 767px) {
  #works table tbody th, #works table tbody td {
    display: block;
    width: 100%;
    background-color: #fff;
    line-height: 1.6153846154;
  }
}
@media screen and (max-width: 767px) {
  #works table tbody th::before, #works table tbody td::before {
    background-color: #2A2A2A;
    color: #fff;
    display: block;
    padding: 1.2rem;
  }
}
#works table tbody th {
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  #works table tbody th {
    background-color: rgba(39, 180, 166, 0.3);
  }
}
@media screen and (max-width: 767px) {
  #works table tbody th::before {
    content: "施工経験年数";
  }
}
@media screen and (max-width: 767px) {
  #works table tbody td::before {
    content: "現場名";
  }
}

/* ---------------------------------------
  #company
-----------------------------------------*/
#company {
  padding-top: 100px;
}
@media screen and (max-width: 767px) {
  #company {
    padding-top: 4rem;
  }
}
#company .sec_ttl {
  background-image: url(../images/bg_company.png);
}
@media screen and (max-width: 767px) {
  #company .sec_ttl {
    background-image: url(../images/bg_company_sp.png);
  }
}
@media screen and (max-width: 767px) {
  #company .sec_ttl .icon_box {
    width: 3.2rem;
  }
}
#company .wrap {
  background-color: rgba(39, 180, 166, 0.4);
}
#company .table_box {
  padding: 60px;
}
@media screen and (max-width: 767px) {
  #company .table_box {
    padding: 2rem 1.5rem;
  }
}

/* ---------------------------------------
  #recruit
-----------------------------------------*/
#recruit {
  background: #27B4A6 url(../images/bg_recruit.png) no-repeat center top/100%;
  padding: 70px 0 100px;
}
@media screen and (max-width: 767px) {
  #recruit {
    background-image: url(../images/bg_recruit_sp.png);
    padding: 2.5rem 0 3rem;
    width: 89.3%;
    margin: 0 auto;
  }
}
#recruit .ttl_box .ja {
  font-size: 3.6rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.2em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  #recruit .ttl_box .ja {
    font-size: 1.8rem;
  }
}
#recruit .ttl_box .en {
  margin-top: 18px;
  font-size: 1.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-align: center;
  color: #fff;
}
@media screen and (max-width: 767px) {
  #recruit .ttl_box .en {
    font-size: 1.2rem;
    margin-top: 1rem;
  }
}
#recruit .wrap {
  padding: 60px;
  background-color: #E9F7F6;
  margin-top: 40px;
}
@media screen and (max-width: 767px) {
  #recruit .wrap {
    padding: 0;
  }
}
#recruit .txt_catch {
  margin-top: 43px;
  text-align: center;
  color: #fff;
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  #recruit .txt_catch {
    margin-top: 1.5rem;
    font-size: 1.4rem;
    line-height: 1.7142857143;
  }
}
#recruit .btn {
  margin-top: 33px;
}
@media screen and (max-width: 767px) {
  #recruit .btn {
    margin-top: 1.5rem;
  }
}

/* ---------------------------------------
  #contact
-----------------------------------------*/
#contact {
  background-color: #BDE8E4;
  padding: 100px 0;
}
@media screen and (max-width: 767px) {
  #contact {
    margin-top: 4rem;
    padding: 3.7rem 0 10rem;
  }
}
@media screen and (max-width: 767px) {
  #contact.confirm, #contact.thanks {
    margin-top: 0;
  }
}
#contact .ttl_box .ja {
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #27B4A6;
  text-align: center;
}
@media screen and (max-width: 767px) {
  #contact .ttl_box .ja {
    font-size: 1.8rem;
  }
}
#contact .ttl_box .en {
  font-size: 1.7rem;
  font-weight: 500;
  margin-top: 1em;
  text-align: center;
  color: #27B4A6;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  #contact .ttl_box .en {
    font-size: 1.2rem;
  }
}
#contact table {
  margin-top: 45px;
}
@media screen and (max-width: 767px) {
  #contact table {
    margin-top: 3.6rem;
  }
}
@media screen and (max-width: 767px) {
  #contact table tr {
    display: block;
    padding: 1.5rem 0;
    border-bottom: solid 1px rgba(39, 180, 166, 0.4);
  }
}
#contact table tr th, #contact table tr td {
  padding: 30px 0;
  border-bottom: solid 1px rgba(39, 180, 166, 0.4);
  vertical-align: middle;
}
@media screen and (max-width: 767px) {
  #contact table tr th, #contact table tr td {
    display: block;
    font-size: 1.4rem;
    padding: 0;
    border-bottom: none;
  }
}
#contact table tr th {
  width: 340px;
}
@media screen and (max-width: 767px) {
  #contact table tr th {
    padding-bottom: 0;
  }
}
@media screen and (max-width: 767px) {
  #contact table tr td {
    padding-top: 1rem;
  }
}
#contact table input[type=text],
#contact table input[type=email],
#contact table input[type=tel],
#contact table textarea {
  width: 100%;
  padding: 1rem;
  font-size: 1.6rem;
}
@media screen and (max-width: 767px) {
  #contact table input[type=text],
  #contact table input[type=email],
  #contact table input[type=tel],
  #contact table textarea {
    font-size: 1.4rem;
  }
}
#contact table input[type=radio] {
  margin-left: 0;
}
#contact table input[type=radio]:nth-of-type(n+2) {
  margin-left: 3.5rem;
}
@media screen and (max-width: 767px) {
  #contact table input[type=radio]#radio_other {
    margin-left: 0;
    margin-top: 1.2rem;
  }
}
#contact table input[type=radio] + label {
  cursor: pointer;
}
#contact table textarea {
  height: 200px;
}
@media screen and (max-width: 767px) {
  #contact table textarea {
    height: 18.3rem;
  }
}
#contact table .req {
  padding: 3px 15px 4px 18px;
  background-color: #2A2A2A;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 500;
  display: inline-block;
  margin-left: 1.5rem;
}
@media screen and (max-width: 767px) {
  #contact table .req {
    padding: 0.3rem 1rem;
  }
}
#contact table.confirm tr th, #contact table.confirm tr td {
  line-height: 1.5625;
}
@media screen and (max-width: 767px) {
  #contact table.confirm tr th, #contact table.confirm tr td {
    line-height: 1.4285714286;
  }
}
#contact .btn {
  margin-top: 40px;
}
@media screen and (max-width: 767px) {
  #contact .btn {
    margin-top: 2rem;
  }
}
@media screen and (min-width: 768px) {
  #contact .btn.confirm {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
@media screen and (min-width: 768px) {
  #contact .btn.confirm input {
    margin-left: 0;
    margin-right: 0;
  }
}
@media screen and (min-width: 768px) {
  #contact .btn.confirm input:nth-of-type(n+2) {
    margin-left: 20px;
  }
}
@media screen and (max-width: 767px) {
  #contact .btn.confirm input:nth-of-type(n+2) {
    margin-top: 2rem;
  }
}
#contact .thanks {
  line-height: 1.5625;
  text-align: center;
  padding: 5rem 0;
}
@media screen and (max-width: 767px) {
  #contact .thanks {
    font-size: 1.4rem;
    line-height: 1.4285714286;
  }
}

/* ---------------------------------------
  表示・非表示処理
-----------------------------------------*/
.sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .sp {
    display: block;
  }
}

@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }
}