@charset "utf-8";
/*
Theme Name: kozai-yamada
Version: 1.0
*/
/* COMMON
-------------------------------------------------------------- */
html {
  font-size: 62.5%;
}
body {
  position: relative;
  overflow-x: hidden;
  color: #333;
  line-height: 1.75;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: .1rem;
}
.mincho {
  font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif;
}
main {
  position: relative;
  margin-top: 119px;
  z-index: 1;
}
.wrapper {
  overflow: hidden;
}
.bg {
  background: #00479d;
}
a {
  color: inherit;
  text-decoration: none;
  transition: all 0.5s ease-in-out;
}
a:hover {
  color: inherit;
  opacity: .7;
}
a:focus {
  text-decoration: none;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
.container {
  max-width: 1150px;
  width: 90%;
  margin: auto;
}
.container.wide {
  max-width: 100%;
  width: 95%;
}
.invisible {
  visibility: hidden;
}
.hidden_pc {
  display: none;
}
.hidden_sp {
  display: block;
}
.txtRed {
  color: #ff0000;
}
.flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media (min-width:768px) {
  a[href^="tel:"] {
    pointer-events: none;
    cursor: auto;
  }
}
@media (max-width:767px) {
  body {
    font-size: 1.4rem;
  }
  main {
     margin-top: 92px;
  }
  .hidden_pc {
    display: block;
  }
  .hidden_sp {
    display: none;
  }
}
/* HEADER
-------------------------------------------------------------- */
header {
  position: fixed;
  top: 0;
  left: 0;
  background: #fff;
  width: 100%;
  z-index: 999;
}
header .headWrap {
  padding: 5px 10px;
  background: #149a4d;
  color: #fff;
}
header .catch {
  font-size: 1.4rem;
}
header .flex {
  position: relative;
  padding: 10px 0;
  align-items: center;
}
header .logo a {
  display: block;
}
.hamburger {
  display: none;
}
.global-nav {
  width: calc(100% - 410px);
}
.global-nav ul {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.global-nav li {
  padding: 0 20px;
  border-right: 1px solid #333;
}
.global-nav li:nth-child(4) {
  border: none;
}
.global-nav a {
  position: relative;
  display: block;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.5;
}
.global-nav a::after {
  position: absolute;
  bottom: -5px;
  left: 50%;
  content: '';
  width: 0;
  height: 3px;
  background-color: #149a4d;
  transition: .3s;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}
.global-nav a:hover {
  opacity: 1;
}
.global-nav a:hover::after {
  width: 100%;
}
.global-nav .contact {
  padding-left: 15px;
  border: none;
}
.global-nav .contact a {
  padding: 8px 30px;
  width: 215px;
  box-sizing: border-box;
  border-radius: 30px;
  text-align: center;
  color: #fff;
  z-index: 0;
  overflow: hidden;
}
.global-nav .contact a::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, #1ca98a, #38accc);
  z-index: -2;
}
.global-nav .contact a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, #1ca98a, #1ca98a);
  opacity: 0;
  transform: inherit;
  transition: opacity 0.6s ease;
  z-index: -1;
}
.global-nav .contact a:hover::after {
  opacity: 1;
}
@media (max-width: 1300px) {
  header .catch {
    font-size: 1.2rem;
  }
  header .flex {
    padding: 27px 0;
  }
  header .logo {
    width: 200px;
  }
  .global-nav {
    width: calc(100% - 200px);
  }
  .global-nav a {
    font-size: 1.4rem;
  }
  .global-nav .contact a {
    width: 150px;
    font-size: 1.2rem;
  }
}
@media (max-width: 950px) {
  header .catch {
    font-size: 1rem;
  }
  header .flex {
    padding: 30px 0;
  }
  header .logo {
    width: 150px;
  }  
  .global-nav {
    width: calc(100% - 150px);
  }
  .global-nav li {
    padding: 0 10px;
  }
  .global-nav a {
    font-size: 1.2rem;
  }
  .global-nav .contact {
    padding-left: 10px;
  }
  .global-nav .contact a {
    padding: 8px 10px;
    width: 120px;
    font-size: 1rem;
  }
}
@media (max-width: 767px) {
  header .flex {
    padding: 10px 0;
  }
  header .logo {
    width: 170px;
  }
  header .tel {
    position: absolute;
    top: 7px;
    right: 55px;
    max-width: 25px;
  }
  .global-nav {
    position: fixed;
    right: 0;
    top: 92px;
    width: 100%;
    height: 100vh;
    background-color: #fff;
    z-index: 200;
    overflow-y: auto;
    display: none;
  }
  .hamburger {
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    width: 50px;
    height: 50px;
    text-align: center;
    font-size: 3rem;
    line-height: 1;
    cursor: pointer;
    z-index: 300;
    transition: all 0.5s ease-in-out;
  }
  .global-nav ul {
    display: block !important;
    padding: 0 15px;
  }
  .global-nav li {
    padding: 0;
    width: 100%;
    border-right: none;
    border-bottom: 1px solid #ccc;
  }
  .global-nav a {
    position: relative;
    padding: 20px;
    font-size: 1.6rem;
    line-height: 1.5;
    color: #000;
  }
  .global-nav .contact {
    padding: 20px;
    border-bottom: none;
  }
  .global-nav .contact a {
    margin: auto;
    padding: 10px;
    font-size: 1.8rem;
    width: 80%;
  }
  .hamburger__line {
    position: absolute;
    left: 10px;
    width: 30px;
    height: 3px;
    background-color: #149a4d;
    transition: all .6s;
  }
  .hamburger__line--1 {
    top: 14px;
  }
  .hamburger__line--2 {
    top: 22px;
  }
  .hamburger__line--3 {
    top: 30px;
  }
  /* 表示された時用のCSS */
  .nav-open .global-nav {
    display: block;
  }
  .nav-open .hamburger::before {
    content: "";
  }
  .nav-open .black-bg {
    opacity: .8;
    visibility: visible;
  }
  .nav-open .hamburger__line--1 {
    transform: rotate(45deg);
    top: 22px;
  }
  .nav-open .hamburger__line--2 {
    width: 0;
    left: 50%;
  }
  .nav-open .hamburger__line--3 {
    transform: rotate(-45deg);
    top: 22px;
  }
}
/* common style
-------------------------------------------------------------- */
.btnMore a {
  display: block;
  padding: 10px 20px;
  margin: auto;
  max-width: 272px;
  box-sizing: border-box;
  background: #22868a;
  border-radius: 18px;
  color: #fff;
  text-align: center;
  line-height: 1;
}
.btnBack a {
  align-items: center;
  width: 90px;
  color: #2e9965;
}
.btnBack a span {
  font-size: 1.8rem;
  font-weight: 700;
}
#sv {
  position: relative;
  height: 265px;
  background: url(images/common/sv.jpg) no-repeat center / cover;
}
#sv h1 {
  position: absolute;
  top: 50%;
  left: 50%;
  padding: 15px 150px;
  min-width: 800px;
  color: #fff;
  font-size: 3.6rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.2;
  letter-spacing: .3rem;
  background: linear-gradient(90deg, rgba(29,154,91,0) 0%, rgba(29,154,91,1) 50%, rgba(29,154,91,0) 100%);
  transform: translate(-50%,-50%);
  z-index: 10;
}
.outline #sv h1 {
  min-width: 1000px;
}
.breadcrumbs {
  padding: 5px 0;
  background: #f3f4f6;
}
.breadcrumbs a {
  padding-right: 10px;
}
.breadcrumbs a.post-page,
.breadcrumbs a.category {
  padding-left: 10px;
}
.breadcrumbs .current-item {
  padding-left: 10px;
}
.styleh2 {
  padding-bottom: 10px;
  margin-bottom: 40px;
  border-bottom: 1px solid #000;
  font-size: 2.5rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.5;
}
.grayBox {
  padding: 30px;
  background: #f4f4f4;
}
.txtLink a {
  display: inline-block;
  position: relative;
  padding-left: 30px;
  font-weight: 700;
}
.txtLink a::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "→"
}
@media (max-width: 767px) {
  .btnBack a {
    width: 70px;
  }
  .btnBack a img {
    width: 30px;
  }
  .btnBack a span {
    font-size: 1.5rem;
  }
  .breadcrumbs {
    padding: 10px 0;
    font-size: 1.2rem;
  }
  .breadcrumbs a {
    padding-right: 5px;
  }
  .breadcrumbs .current-item {
    padding-left: 5px;
  }
  #sv {
    height: 150px;
  }
  #sv h1 {
    padding: 15px 50px;
    font-size: 2.4rem;
    width: 100%;
    min-width: 100%;
  }
  aside {
    width: 100%;
  }
  aside h3 {
    padding: 20px 15px;
    font-size: 1.8rem;
  }
  aside > ul {
    padding: 20px 30px 10px;
  }
  aside > ul > li {
    padding: 0 0 15px 25px;
    font-size: 1.5rem;
  }
  aside > ul > li::before {
    width: 15px;
    height: 6px;
  }
  .styleh2 {
    margin-bottom: 30px;
    font-size: 1.8rem;
  }
  .grayBox {
    padding: 20px;
  }
  .txtLink a {
    padding-left: 20px;
  }
}
/* MV
-------------------------------------------------------------- */
#mv {
  position: relative;
}
#mv h2 {
  position: absolute;
  top: 65%;
  left: 50%;
  padding: 15px;
  color: #fff;
  font-size: 5.2rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.2;
  letter-spacing: .3rem;
  width: 100%;
  background: linear-gradient(90deg, rgba(1,125,131,0) 0%, rgba(1,125,131,1) 50%, rgba(1,125,131,0) 100%);
  transform: translate(-50%,-50%);
  z-index: 10;
}
#mv img {
  width: 100%;
}
.bx-wrapper {
  margin-bottom: 0;
  box-shadow: none;
  border: none;
}
@media (max-width: 1000px) {
  #mv h2 {
    font-size: 4.5rem;
  }
}
@media (max-width: 767px) {
  #mv h2 {
    padding: 10px;
    font-size: 1.8rem;
    letter-spacing: 0;
  }
}

/* strong
-------------------------------------------------------------- */
#strong {
  padding: 60px 0 100px;
}
#strong h2 {
  padding-bottom: 30px;
  text-align: center;
  font-size: 3.8rem;
  font-weight: 700;
}
#strong h3 {
  padding-bottom: 50px;
  color: #017d83;
  text-align: center;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.4;
}
#strong figure {
  width: 41%;
}
#strong figure img {
  width: 100%;
}
#strong .txtArea {
  padding: 0 4%;
  width: 59%;
}
#strong .txtArea p {
  padding-bottom: 30px;
  font-size: 2rem;
}
#strong li {
  position: relative;
  padding: 0 0 20px 50px;
  color: #017d83;
  font-size: 3.6rem;
  font-weight: 900;
  line-height: 1.4;
}
#strong li i {
  position: absolute;
  top: 0;
  left: 0;
  font-weight: 500;
}
@media (max-width: 767px) {
  #strong {
    padding: 30px 0;
  }
  #strong h2 {
    padding-bottom: 20px;
    font-size: 2.4rem;
  }
  #strong h3 {
    padding-bottom: 30px;
    font-size: 1.5rem;
  }
  #strong figure {
    width: 100%;
  }
  #strong .txtArea {
    padding: 20px 5% 0;
    width: 100%;
  }
  #strong .txtArea p {
    padding-bottom: 20px;
    font-size: 1.6rem;
  }
  #strong li {
    padding: 0 0 15px 30px;
    font-size: 2.2rem;
  }
}

/* service
-------------------------------------------------------------- */
#service {
  padding: 80px 0;
  background: #f3f3f3;
}
#service h2 {
  padding-bottom: 50px;
  text-align: center;
  font-size: 3.8rem;
  font-weight: 700;
}
#service .serviceBox {
  margin-bottom: 80px;
  width: 50%;
}
#service .serviceBox figure img {
  width: 100%;
}
#service .serviceBox dt {
  padding: 20px 0 10px;
  text-align: center;
  font-size: 3.3rem;
  font-weight: 600;
  line-height: 1.4;
}
#service .serviceBox dd {
  padding: 0 30px;
  line-height: 1.4;
}
@media (max-width: 767px) {
  #service {
    padding: 40px 0 10px;
  }
  #service h2 {
    padding-bottom: 20px;
    font-size: 2.4rem;
  }
  #service .serviceBox {
    margin-bottom: 40px;
    width: 100%;
  }
  #service .serviceBox dt {
    font-size: 2rem;
  }
  #service .serviceBox dd {
    padding: 0 20px;
  }
}

/* flow
-------------------------------------------------------------- */
#flow {
  padding: 80px 0 150px;
  background: url(images/index/bg_flow_pc.jpg) no-repeat center / cover;
  text-align: center;
}
#flow h2 {
  padding-bottom: 40px;
  text-align: center;
  font-size: 3.8rem;
  font-weight: 700;
}
@media (max-width: 767px) {
  #flow {
    padding: 40px 0;
    background: url(images/index/bg_flow_sp.jpg) no-repeat center / cover;
  }
  #flow h2 {
    padding-bottom: 20px;
    font-size: 2.4rem;
  }
}

/* link
-------------------------------------------------------------- */
#link {
  padding: 80px 0;
  background: #f3f3f3;
}
#link .box {
  display: block;
  width: 47%;
  background: #fff;
}
#link dt img {
  width: 100%
}
#link dd {
  padding: 20px 40px 80px;
  font-size: 1.8rem;
  line-height: 1.5;
}
#link dd strong {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 3.4rem;
  font-weight: 900;
}
#link dd a {
  color: #1a6db9;
}
@media (max-width: 767px) {
  #link {
    padding: 30px 10px 10px;
  }
  #link .box {
    margin-bottom: 20px;
    width: 100%;
  }
  #link span {
    padding: 0 10px;
  }
  #link dd {
    padding: 10px 15px 30px;
    font-size: 1.4rem;
  }
  #link dd strong {
    font-size: 2rem;
  }
}

/* faq
-------------------------------------------------------------- */
#faq {
  padding: 80px 0 40px;
  background: #caebeb;
}
#faq h2 {
  padding-bottom: 40px;
  text-align: center;
  font-size: 3.8rem;
  font-weight: 700;
}
#faq dt {
  position: relative;
  padding: 15px 20px 10px 50px;
  border-bottom: 1px solid #11979d;
}
#faq dt span {
  position: absolute;
  top: 0;
  left: 0;
  color: #11979d;
  font-size: 3rem;
  font-weight: 600;
}
#faq dt p {
  font-size: 2rem;
  font-weight: 500;
}
#faq dd {
  padding: 15px 20px 40px 50px;
  font-size: 1.9rem;
}
@media (max-width: 767px) {
  #faq {
    padding: 40px 0;
  }
  #faq h2 {
    padding-bottom: 20px;
    font-size: 2.4rem;
  }
  #faq dt {
    padding: 10px 10px 10px 40px;
  }
  #faq dt span {
    font-size: 2.4rem;
  }
  #faq dt p {
    font-size: 1.6rem;
  }
  #faq dd {
    padding: 10px 20px 30px 40px;
    font-size: 1.4rem;
  }
}

/* infoTop
-------------------------------------------------------------- */
#infoTop {
  padding: 80px 0;
}
#infoTop h2 {
  padding-bottom: 50px;
  font-size: 3.8rem;
  font-weight: 700;
  text-align: center;
}
#infoTop .infoList {
  padding-bottom: 30px;
}
#infoTop .infoList li {
  position: relative;
  border-bottom: 1px dashed #b5b5b5;
  font-size: 1.4rem;
}
#infoTop .infoList a {
  padding: 10px 5px;
  justify-content: flex-start;
  align-items: flex-start;
}
#infoTop .infoList .time {
  display: inline-block;
  width: 110px;
  color: #333;
}
#infoTop .infoList .cat {
  display: inline-block;
  padding: 5px 10px;
  box-sizing: border-box;
  margin-right: 20px;
  background: #bf0416;
  width: 120px;
  line-height: 1;
  text-align: center;
  color: #fff;
}
#infoTop .infoList h3 {
  width: calc(100% - 250px);
}
@media (max-width: 767px) {
  #infoTop {
    padding: 40px 0 50px;
  }
  #infoTop h2 {
    padding-bottom: 20px;
    font-size: 2.4rem;
  }
  #infoTop .infoList {
    padding-bottom: 30px;
  }
  #infoTop .infoList .time {
    width: 110px;
    font-size: 1.4rem;
  }
  #infoTop .infoList .cat {
    font-size: 1.3rem;
  }
  #infoTop .infoList h3 {
    margin-top: 10px;
    width: 100%;
    font-size: 1.3rem;
  }
}

/* calendar
-------------------------------------------------------------- */
#calendar {
  padding: 50px 0 150px;
}
#calendar h2 {
  padding-bottom: 50px;
  font-size: 3.8rem;
  font-weight: 700;
  text-align: center;
}
.xo-event-calendar {
    margin: 0 auto;
}
.xo-months {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.xo-month-wrap {
    width: 47%;
}
.month-prev {
  position: absolute;
  left: 0;
}
.month-next {
  position: absolute;
  right: 0;
}
@media (max-width: 767px) {
  #calendar {
    padding: 30px 0 50px;
  }
  #calendar h2 {
    padding-bottom: 20px;
    font-size: 2.4rem;
  }
  .xo-event-calendar {
      width: 70%;
  }
  .xo-months {
      display: block;
  }
  .xo-month-wrap {
      width: 100%;
  }
  .xo-month-wrap:last-child {
      display: none;
  }
}

/* recruit
-------------------------------------------------------------- */
#recruit {
  padding: 60px 0;
  background: #aee3fe url(images/common/bg_recruit.jpg) no-repeat center right / auto 100%;
}
#recruit .container {
  max-width: 1200px;
}
#recruit .txtArea {
  position: relative;
}
#recruit h2 {
  font-size: 3.8rem;
  font-weight: 700;
  line-height: 1.2;
}
#recruit p {
  padding: 20px 0;
  font-size: 2rem;
  font-weight: 700;
  max-width: 70%;
}
#recruit .btn a {
  display: block;
  padding: 15px 80px;
  width: 410px;
  height: 54px;
  box-sizing: border-box;
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: .3rem;
  line-height: 1;
  background: url(images/common/btn_recruit.png) no-repeat bottom right;
  color: #fff;
}
@media (max-width: 767px) {
  #recruit {
    padding: 30px 0 50%;
    background: #aee3fe url(images/common/bg_recruit.jpg) no-repeat right bottom / auto 40%;
  }
  #recruit .txtArea {
    padding-bottom: 30px;
    text-align: center;
  }
  #recruit .txtArea:before { 
    left: -30px;
  }
  #recruit .txtArea:after{
    right: -5px;
    bottom: 10px;
  }
  #recruit h2 {
    font-size: 2.4rem;
  }
  #recruit p {
    padding: 15px 0;
    max-width: 100%;
    font-size: 1.5rem;
  }
  #recruit .btn a {
    margin: auto;
    padding: 10px 30px 20px;
    width: 260px;
    height: auto;
    font-size: 1.6rem;
  }
}

/* contact
-------------------------------------------------------------- */
#contact {
  padding: 50px 0 60px;
  background: #149a4d;
}
#contact .container {
  max-width: 1200px;
}
#contact h2  {
  margin-bottom: 50px;
  font-size: 3.8rem;
  font-weight: 700;
  text-align: center;
  color: #fff;
}
#contact .number {
  padding: 5px 0 10px;
  width: calc(100% - 450px);
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  font-weight: 700;
  color: #fff;
}
#contact .tel a,
#contact .fax {
  justify-content: flex-start;
  align-items: center;
}
#contact .number small {
  width: 80px;
  font-size: 2.8rem;
  font-weight: 700;
}
#contact .number strong {
  padding-right: 30px;
  font-size: 3.8rem;
}
#contact .number span {
  line-height: 1.2;
}
#contact .mail {
  width: 374px;
}
#contact .mail a {
  padding: 20px 50px;
  background: #fff;
  box-shadow: -10px 8px 0px 0px rgba(51, 51, 51, 0.26);
  font-size: 2rem;
}
@media (max-width: 767px) {
  #contact {
    padding: 30px 0 40px;
  }
  #contact h2  {
    margin-bottom: 20px;
    font-size: 2.4rem;
  }
  #contact .number {
    padding: 5px 0 20px;
    width: 100%;
  }
  #contact .number small {
    width: 60px;
    font-size: 2.4rem;
  }
  #contact .number strong {
    padding: 0;
    font-size: 3rem;
  }
  #contact .number span {
    font-size: 1.2rem;
  }
  #contact p {
    margin: auto;
    max-width: 300px;
  }
  #contact .mail  {
    margin: 30px auto 0;
    max-width: 910%;
  }
  #contact .mail a {
    padding: 15px 30px;
  }
}
/* service_page
-------------------------------------------------------------- */
.service #sv {
  background: url(images/service/sv.jpg) no-repeat center / cover;
}
#service_page .pagelink {
  padding-bottom: 80px;
  justify-content: center;
}
#service_page .pagelink li {
  padding: 0 20px 0 0;
  line-height: 1;
  font-size: 1.8rem;
}
#service_page .pagelink li:last-child {
  padding: 0;
}
#service_page .pagelink li::after {
  margin-left: 20px;
  content: "／";
}
#service_page .pagelink li:last-child::after {
  content: none;
}
#service_page h2 {
  font-size: 3rem;
}
#service_page h3 {
  padding-bottom: 50px;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
}
#service_page h3 sub {
  font-size: 50%;
  font-weight: 700;
  vertical-align: 0;
}
#service_page h4 {
  padding: 50px 0 10px;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
}
#service_page p {
  padding-bottom: 30px;  
  font-size: 1.8rem;
}
#service_page .photo {
  padding-bottom: 30px;
}
#service_page .photo figure {
  width: 49.8%;
}
#service_page figure img {
  width: 100%;
}
#service_page .clmSet {
  margin-bottom: 50px;
}
#service_page .clmSet figure {
  width: 50%;
}
#service_page .clmSet .txtArea {
  width: 47%;
}
#service_page table {
  margin-bottom: 30px;
  width: 100%;
}
#service_page th {
  padding: 15px 20px;
  width: 33%;
  border: 1px solid #d8d8d8;
  background: #f8f8f9;
  font-size: 2.2rem;
  font-weight: 700;
}
#service_page td {
  padding: 15px 30px;
  border: 1px solid #d8d8d8;
  font-size: 1.8rem;
}
#service_page .map {
  margin-bottom: 50px;
}
#service_page #service05 p {
  margin: -30px 0 30px;
}
@media (max-width: 767px) {
  #service_page .pagelink {
    padding-bottom: 30px;
  }
  #service_page .pagelink li {
    padding: 0 5px 10px;
    font-size: 1.3rem;
  }
  #service_page .pagelink li::after {
    margin-left: 10px;
  }
  #service_page h2 {
    font-size: 2rem;
  }
  #service_page h3 {
    padding-bottom: 20px;
    font-size: 1.8rem;
  }
  #service_page h4 {
    padding: 30px 0 10px;
    font-size: 1.8rem;
  }
  #service_page p {
    padding-bottom: 20px;
    font-size: 1.5rem;
  }
  #service_page .photo {
    padding-bottom: 20px;
  }
  #service_page .photo figure {
    margin-bottom: 3px;
    width: 100%;
  }
  #service_page .clmSet {
    margin-bottom: 30px;
  }
  #service_page .clmSet figure {
    width: 100%;
  }
  #service_page .clmSet .txtArea {
    padding-top: 10px;
    width: 100%;
  }
  #service_page table {
    margin-bottom: 20px;
  }
  #service_page th {
    padding: 10px;
    font-size: 1.6rem;
  }
  #service_page td {
    padding: 10px;
    font-size: 1.4rem;
  }
  #service_page .map {
    margin-bottom: 30px;
  }
  #service_page #service05 p {
    margin: -10px 0 20px;
  }
}
/* equipment_page
-------------------------------------------------------------- */
.equipment #sv {
  background: url(images/equipment/sv.jpg) no-repeat center / cover;
}
#equipment_page p {
  padding-bottom: 80px;
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
}
#equipment_page figure {
  width: 49.9%;
}
#equipment_page figure.wide {
  width: 100%;
}
#equipment_page figure img {
  width: 100%;
}
#equipment_page figure figcaption {
  padding: 20px 0 80px;
  text-align: center;
  line-height: 1.5;
}
#equipment_page figure figcaption strong {
  font-weight: 500;
}
#equipment_page figure figcaption strong sub {
  font-size: 50%;
  font-weight: 500;
  vertical-align: 0;
}
#equipment_page .otherBox {
  width: 49.9%;
}
#equipment_page .otherBox figure {
  margin-bottom: 60px;
  width: 100%;
}
#equipment_page table {
  border-bottom: 1px solid #b7b7b7;
  width: 95%;
  font-size: 1.7rem;
}
#equipment_page .otherBox:first-of-type table {
  margin-right: 5%;
}
#equipment_page .otherBox:last-of-type table {
  margin-left: 5%;
}
#equipment_page th {
  padding: 10px 20px;
  background: #f5f5f5;
  font-weight: 700;
}
#equipment_page td {
  padding: 10px 50px;
  border-top: 1px solid #b7b7b7;
}
#equipment_page .number {
  width: 40%;
  text-align: center;
}
#equipment_page td.number {
  padding: 10px 30px;
}
@media (max-width: 1200px) {
  #equipment_page td {
    padding: 10px 30px;
  }
  #equipment_page .number {
    width: 30%;
  }
}
@media (max-width: 767px) {
  #equipment_page p {
    padding-bottom: 40px;
    font-size: 1.6rem;
  }
  #equipment_page figure {
    width: 100%;
  }
  #equipment_page figure figcaption {
    padding: 10px 0 30px;
    font-size: 1.4rem;
  }
  #equipment_page .otherBox {
    width: 100%;
  }
  #equipment_page .otherBox figure {
    margin-bottom: 30px;
  }
  #equipment_page table {
    width: 100%;
    font-size: 1.5rem;
  }
  #equipment_page .otherBox:first-of-type table,
  #equipment_page .otherBox:last-of-type table {
    margin: 0 0 30px;
  }
  #equipment_page td {
    padding: 10px;
  }
  #equipment_page th:first-child {
    padding: 10px 30px;
  }
  #equipment_page td {
    padding: 10px 20px;
  }
  #equipment_page td:first-child {
    padding: 10px 30px;
  }
}

/* company_page
-------------------------------------------------------------- */
.greeting #sv,
.outline #sv {
  background: url(images/company/sv.jpg) no-repeat center / cover;
}
#company_page .pagelink {
  padding-bottom: 80px;
  justify-content: center;
}
#company_page .pagelink li {
  padding: 0 20px;
  line-height: 1;
  font-size: 1.8rem;
  color: #017d83;
}
#company_page .pagelink li:first-child::after {
  margin-left: 20px;
  content: "／";
}
#company_page .pagelink li:before {
  content: none;
}
#company_page .pagelink li:last-child {
  padding: 0 20px 0 0;
}
#company_page .pagelink li a {
  color: #333;
}
#company_page .greetingBox .txtArea {
  width: 50%;
}
#company_page .greetingBox h2 {
  padding-bottom: 40px;
  color: #017d83;
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1.6;
}
#company_page .greetingBox p {
  padding-bottom: 30px;
  font-size: 1.7rem;
}
#company_page .greetingBox .name {
  color: #017d83;
  font-size: 2.2rem;
  font-weight: 700;
}
#company_page .greetingBox figure {
  width: 47%;
}
#company_page .greetingBox figure img {
  width: 100%;
}
#company_page .txt {
  font-size: 1.7rem;
}
#company_page table {
  border-bottom: 1px solid #d8d8d8;
  width: 100%;
}
#company_page th {
  padding: 15px 20px;
  width: 180px;
  border-top: 1px solid #d8d8d8;
  background: #f8f8f9;
  text-align: left;
}
#company_page td {
  padding: 15px 30px;
  border-top: 1px solid #d8d8d8;
}
#company_page .profileTable td p:first-of-type {
  padding-bottom: 20px;
}
#company_page .leadtxt {
  margin: 0 auto 100px;
  max-width: 900px;
  color: #017d83;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.4;
}
#company_page .photoArea dl:nth-child(3) {
  width: 34%;
}
#company_page .photoArea dl:nth-child(4) {
  width: 33.5%;
}
#company_page .photoArea dl:nth-child(5) {
  width: 32.1%;
}
#company_page .photoArea dl.half {
  width: 50%;
}
#company_page .photoArea img {
  width: 100%;
}
#company_page .photoArea dd {
  padding: 10px 0 40px;
  font-size: 2rem;
  font-weight: 400;
  text-align: center;
}
#company_page li {
  position: relative;
  padding: 0 0 5px 15px;
}
#company_page li::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "・";
}
#company_page h3 {
  padding-bottom: 20px;
  font-size: 2rem;
  font-weight: 600;
}
#company_page .accessBox {
  margin-bottom: 50px;
}
#company_page .accessBox iframe {
  margin-bottom: 30px;
}
#company_page .accessBox .txtArea {
  width: calc(100% - 300px);
}
#company_page .accessBox address {
  padding-bottom: 30px;
  font-style: inherit;
}
#company_page .accessBox figure {
  width: 290px;
}
#company_page .accessBox figcaption {
  padding-top: 10px;
  font-size: 1.5rem;
  letter-spacing: 0;
  line-height: 1.6;
}
#company_page .accessBox dt {
  font-weight: 700;
}
@media (max-width: 767px) {
  #company_page .pagelink {
    padding-bottom: 30px;
  }
  #company_page .pagelink li {
    padding: 0 10px;
    font-size: 1.3rem;
  }
  #company_page .pagelink li:first-child::after {
    margin-left: 10px;
  }
  #company_page .greetingBox .txtArea {
    margin: auto;
    width: 90%;
  }
  #company_page .greetingBox h2 {
    padding-bottom: 20px;
    font-size: 1.8rem;
  }
  #company_page .greetingBox p {
    padding-bottom: 20px;
    font-size: 1.5rem;
  }
  #company_page .greetingBox .name {
    font-size: 1.7rem;
  }
  #company_page .greetingBox figure {
    margin: 0 auto 20px;
    width: 90%;
  }
  #company_page .txt {
    font-size: 1.5rem;
  }
  #company_page th, #company_page td {
    padding: 15px;
    width: 100% !important;
    display: list-item;
  }
  #company_page .leadtxt {
    margin: 0 auto 30px;
    font-size: 1.8rem;
  }
  #company_page h3 {
    padding-bottom: 10px;
    font-size: 1.6rem;
  }
  #company_page .photoArea dl.half {
    width: 100%;
  }
  #company_page .photoArea dd {
    padding: 5px 0 20px;
    font-size: 1.5rem;
    letter-spacing: 0;
  }
  #company_page .accessBox iframe {
    height: 250px;
  }
  #company_page .accessBox .txtArea {
    width: 100%;
  }
  #company_page .accessBox address {
    padding-bottom: 20px;
  }
  #company_page .accessBox figure {
    margin: 20px auto 0;
    width: 70%;
  }
  #company_page .accessBox figcaption {
    padding-top: 5px;
    font-size: 1.2rem;
  }
}

/* policy_page
-------------------------------------------------------------- */
.policy #sv {
  background: url(images/policy/sv.jpg) no-repeat center / cover;
}
#policy_page #quality h2 {
  padding-bottom: 10px;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
}
#policy_page #quality p {
  font-size: 2.2rem;
  line-height: 1.5;
}
#policy_page #environmental {
  font-size: 1.8rem;
}
#policy_page li {
  margin-bottom: 10px;
}
#policy_page li span {
  width: 30px;
}
#policy_page li p {
  width: calc(100% - 30px);
  line-height: 1.5;
}
#policy_page figure {
  padding-top: 50px;
}
@media (max-width: 767px) {
  #policy_page #quality h2 {
    font-size: 2rem;
  }
  #policy_page #quality p {
    font-size: 1.5rem;
  }
  #policy_page #environmental {
    font-size: 1.4rem;
  }
  #policy_page figure {
    padding-top: 30px;
  }
}

/* recruit_page
-------------------------------------------------------------- */
.recruit #sv {
  background: url(images/recruit/sv.jpg) no-repeat center / cover;
}
#recruit_page .message {
  padding-top: 100px;
}
#recruit_page .message h2 {
  padding-bottom: 80px;
  color: #017d83;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
#recruit_page .message .flex {
  position: relative;
  margin-left: calc((100% - 1150px) / 2 );
}
#recruit_page .message figure {
  position: absolute;
  top: 0;
  right: 0;
  width: 45%;
}
#recruit_page .message h3 {
  padding-bottom: 50px;
  font-size: 2.4rem;
  font-weight: 700;
}
#recruit_page .message p {
  padding-bottom: 30px;
  font-size: 1.8rem;
}
#recruit_page table {
  border-bottom: 1px solid #d8d8d8;
  width: 100%;
}
#recruit_page th {
  padding: 15px 20px;
  border-top: 1px solid #d8d8d8;
  width: 180px;
  background: #f8f8f9;
  text-align: left;
  vertical-align: top;
}
#recruit_page td {
  padding: 15px 30px;
  border-top: 1px solid #d8d8d8;
}
#recruit_page a {
  font-weight: 700;
  color: #0033ff;
}
@media (max-width: 767px) {
  #recruit_page .message {
    padding-top: 50px;
  }
  #recruit_page .message h2 {
    padding-bottom: 30px;
    font-size: 2rem;
  }
  #recruit_page .message .flex {
    position: relative;
    margin: 0 5%;
  }
  #recruit_page .message figure {
    margin-bottom: 20px;
    position: static;
    width: 100%;
    order: -1;
  }
  #recruit_page .message h3 {
    padding-bottom: 30px;
    font-size: 1.8rem;
  }
  #recruit_page .message p {
    padding-bottom: 20px;
    font-size: 1.4rem;
  }
  #recruit_page th, #recruit_page td {
    padding: 15px;
    width: 100% !important;
    display: list-item;
  }
  #recruit_page td {
    padding: 15px 0;
  }
  #recruit_page a {
    display: block;
    margin-bottom: -10px;
  }
}

/* contact_page
-------------------------------------------------------------- */
.contact #sv,
.confirm #sv,
.thanks #sv {
  background: url(images/contact/sv.jpg) no-repeat center / cover;
}
#contact_page h2 {
  padding-bottom: 30px;
  color: #017d83;
  text-align: center;
  font-size: 2.8rem;
  font-weight: 700;
}
#contact_page .infoArea {
  padding: 0 120px;
  margin-bottom: 80px;
  background: #e9ffed;
  color: #017d83;
  text-align: center;
  line-height: 1.2;
}
#contact_page .infoBox {
  padding: 30px 10px;
  width: 50%;
  max-width: 370px;
  text-align: center;
}
#contact_page .infoBox h2 {
  padding-bottom: 20px;
  font-size: 2.6rem;
}
#contact_page .infoBox span {
  display: block;
  font-size: 1.4rem;
  text-align: left;
}
#contact_page .infoBox strong {
  font-size: 3.6rem;
  white-space: nowrap;
}
#contact_page .infoBox small {
  padding-right: 10px;
  font-size: 2.4rem;
  font-weight: 700;
}
#contact_page table {
  width: 100%;
  font-size: 1.5rem;
}
#contact_page th {
  padding: 10px;
  width: 20%;
  border: 1px solid #dfdfdf;
  background: #f5f5f5;
  text-align: left;
  font-weight: 700;
}
#contact_page td {
  padding: 10px;
  border: 1px solid #bfbfbf;
}
#contact_page .txtRed {
  color: #ff0000;
}
::placeholder {
  color: #bcbec0;
}
#contact_page input[type="text"], #contact_page input[type="number"], #contact_page input[type="email"], #contact_page input[type="tel"] {
  padding: 5px 10px;
  border-radius: 3px;
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #dfdfdf;
}
#contact_page .form_tel .tel-input {
  display: flex;
  gap: 10px;
  align-items: center;
}
#contact_page .form_tel .tel-input input {
  width: 80px;
}
#contact_page textarea {
  padding: 5px 10px;
  border-radius: 2px;
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #dfdfdf;
}
#contact_page .form_other .wpcf7-list-item {
  margin: 0 2em 0 0; 
}
#contact_page input[type="checkbox"] {
  width: 17px;
  height: 17px;
  vertical-align: -.3rem;
}
#contact_page .form_other strong {
  margin: 5px 0 -20px;
  display: block;
  white-space: inherit;
}
#contact_page .captcha {
  padding: 50px 0 30px;
  font-size: 0;
  text-align: center;
}
#contact_page .captcha p {
  padding-bottom: 10px;
  font-size: 1.5rem;
}
#contact_page .captcha input[type="text"] {
  margin-top: 20px;
  display: inline-block;
  font-size: 1.5rem;
  width: 200px;
}
#contact_page .btn_submit {
  padding-bottom: 30px;
}
#contact_page .btn_submit p {
  display: flex;
  justify-content: center;
}
#contact_page .btn_submit p input.wpcf7-form-control {
  margin: 80px 5% 0;
  width: 45%;
}
#contact_page .wpcf7-spinner {
  display: none;
}
#contact_page .btn_submit input {
  position: relative;
  margin-top: 80px;
  padding: 20px 30px;
  background: #017d83;
  width: 90%;
  max-width: 537px;
  border: none;
  box-shadow: -10px 10px 0px 0px rgba(1, 125, 131, 0.86);
  color: #fff;
  font-size: 2.2rem;
  font-weight: 700;
  transition: all 0.5s ease-in-out;
}
#contact_page .btn_submit input.wpcf7-previous {
  background: #ccc;
  box-shadow: -10px 10px 0px 0px rgba(204, 204, 204, 0.5);
}
#contact_page .btn_submit input:hover {
  opacity: 1;
  box-shadow: none;
}
#contact_page .btn_submit li {
  margin: 0 2%;
  width: 46%;
}
#contact_page .mw_wp_form_confirm .btnArea li:last-child input {
  background: #666;
  box-shadow: 10px 12px 0px 0px rgba(0, 0, 0, 0.2);
}
.confirm_area,
.thanks_area {
    display: none;
}
.wpcf7-response-output {
    display: none;
}
.grecaptcha-badge { visibility: hidden; }
@media (max-width: 1100px) {
  #contact_page .infoArea {
    padding: 0 30px;
  }
  #contact_page .infoBox h2 {
    font-size: 2.4rem;
  }
  #contact_page .infoBox small {
    font-size: 2rem;
  }
  #contact_page .infoBox strong {
    font-size: 3.2rem;
  }
  #contact_page .infoBox {
    max-width: 365px;
  }
}
@media (max-width: 850px) {
  #contact_page .infoArea {
    padding: 0 20px;
  }
  #contact_page .infoBox {
    padding: 30px 20px;
  }
}
@media (max-width: 767px) {
  #contact_page h2 {
    padding-bottom: 20px;
    font-size: 2rem;
  }
  #contact_page .infoArea {
    padding: 30px;
    margin-bottom: 40px;
  }
  #contact_page .infoBox {
    margin: auto;
    padding: 0;
    width: 100%;
    max-width: 310px;
  }
  #contact_page .infoBox:first-of-type {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid #ced6cf;
  }
  #contact_page .infoBox h2 {
    padding-bottom: 10px;
    font-size: 1.8rem;
  }
  #contact_page .infoBox span {
    font-size: 1.2rem;
  }
  #contact_page .infoBox strong {
    font-size: 3rem;
  }
  #contact_page .infoBox small {
    font-size: 2rem;
  }
  #contact_page table {
    border-bottom: 1px solid #bfbfbf;
    font-size: 1.4rem;
  }
  #contact_page th, #contact_page td {
    width: 100% !important;
    display: list-item;
  }
  #contact_page td {
    border-top: none;
    border-bottom: none;
  }
  #contact_page .captcha {
    padding: 20px 0 30px;
  }
  #contact_page .captcha p {
    padding-bottom: 10px;
    font-size: 1.4rem;
  }
  #contact_page .btn_submit {
    padding-bottom: 20px;
  }
  #contact_page .btn_submit p input.wpcf7-form-control {
    margin: 40px 5% 0;
  }
  #contact_page .btn_submit input {
    margin-top: 40px;
    padding: 15px 10px;
    box-shadow: -5px 5px 0px 0px rgba(1, 125, 131, 0.86);
    font-size: 1.5rem;
  }
  #contact_page .btn_submit input.wpcf7-previous {
    box-shadow: -5px 5px 0px 0px rgba(204, 204, 204, 0.56);
  }
}
/* privacy
-------------------------------------------------------------- */
.privacy #sv {
  background: url(images/privacy/sv.jpg) no-repeat center / cover;
}
#privacy_page h2 {
  color: #017d83;
  font-size: 2.4rem;
  font-weight: 700;
  padding-bottom: 50px;
}
#privacy_page li {
  padding-bottom: 40px;
}
#privacy_page h3 {
  position: relative;
  margin-bottom: 10px;
  padding-left: 30px;
  font-size: 1.6rem;
  font-weight: 700;
}
#privacy_page h3 span {
  position: absolute;
  top: 0;
  left: 0;
  font-weight: 700;
}
#privacy_page a {
  color: #055fab;
}
@media (max-width: 767px) {
  #privacy_page h2 {
    font-size: 1.8rem;
    padding-bottom: 30px;
  }
  #privacy_page li {
    padding-bottom: 30px;
  }
  #privacy_page h3 {
    padding-left: 20px;
    font-size: 1.4rem;
  }
}

/* sitemap
-------------------------------------------------------------- */
#sitemap_page a {
  display: inline-block;
}
#sitemap_page .menu > li {
  position: relative;
  padding: 0 0 20px 30px;
  font-size: 2rem;
  line-height: 1.2;
}
#sitemap_page .menu > li::before {
  position: absolute;
  top: 0;
  left: 0;
  color: #149a4d;
  content: "■";
}
#sitemap_page .menu ul.sub-menu li {
  padding: 20px 0 0 0;
}
#sitemap_page .menu ul.sub-menu li::before {
  top: 20px;
  content: "・";
}
@media (max-width: 767px) {
  #sitemap_page .menu > li {
    padding: 0 0 10px 20px;
    font-size: 1.5rem;
  }
  #sitemap_page .menu ul.sub-menu li {
    padding: 10px 0 0 0;
  }
  #sitemap_page .menu ul.sub-menu li::before {
    top: 10px;
  }
}

/* archive
-------------------------------------------------------------- */
#information {
  margin: 40px 0 150px;
}
#information .infoList a {
  color: #333;
}
#information .infoList {
  padding-bottom: 100px;
}
#information .infoList li {
  position: relative;
  border-bottom: 1px dashed #333;
}
#information .infoList a {
  padding: 20px 5px;
  align-items: flex-start;
}
#information .infoList .time {
  display: inline-block;
  width: 100px;
  font-size: 1.4rem;
}
#information .infoList .cat {
  display: inline-block;
  padding: 5px 10px;
  box-sizing: border-box;
  margin-right: 10px;
  background: #7da2d2;
  width: 100px;
  line-height: 1;
  font-size: 1.4rem;
  text-align: center;
  color: #fff;
}
#information .infoList .new {
  display: inline-block;
  padding: 5px 10px;
  box-sizing: border-box;
  background: #f00;
  width: 60px;
  line-height: 1;
  font-size: 1.4rem;
  text-align: center;
  color: #fff;
}
#information .infoList h3 {
  width: calc(100% - 250px);
  font-size: 1.6rem;
}
@media (max-width: 767px) {
  #information {
    margin: 20px 0 80px;
  }
  #information .infoList {
    padding-bottom: 50px;
  }
  #information .infoList .time {
    font-size: 1.3rem;
  }
  #information .infoList .cat {
    margin-right: 10px;
    font-size: 1.3rem;
  }
  #information .infoList h3 {
    width: 100%;
    font-size: 1.4rem;
  }
}
/* single
-------------------------------------------------------------- */
#information .ttlheader {
  justify-content: flex-start;
  align-items: flex-start;
  padding-bottom: 10px;
  margin-bottom: 30px;
  position: relative;
  border-bottom: 1px dashed #333;
  color: #333;
}
#information .ttlheader .time {
  display: inline-block;
  width: 100px;
}
#information .ttlheader .cat {
  display: inline-block;
  padding: 5px 10px;
  box-sizing: border-box;
  margin-right: 10px;
  background: #7da2d2;
  width: 100px;
  line-height: 1;
  font-size: 1.4rem;
  text-align: center;
  color: #fff;
}
#information .ttlheader .new {
  display: inline-block;
  padding: 5px 10px;
  box-sizing: border-box;
  background: #f00;
  width: 60px;
  line-height: 1;
  font-size: 1.4rem;
  text-align: center;
  color: #fff;
}
#information .ttlheader h3 {
  margin-top: 10px;
  width: 100%;
  font-size: 2.2rem;
  line-height: 1.5;
}
.freetxt a {
  color: #017d83;
}
.freetxt p {
  margin-bottom: 30px;
  font-size: 1.8rem;
  line-height: 2;
}
.freetxt img {
  padding: 20px 0;
  vertical-align: top;
}
.freetxt blockquote {
  background: #efefef;
  padding: 20px;
}
.freetxt .aligncenter {
  display: block;
  margin: 0 auto;
}
.freetxt .alignleft {
  float: left;
}
.freetxt .alignright {
  float: right;
}
.freetxt ul, .freetxt ol {
  margin: 0 20px;
}
.freetxt ul li {
  list-style: square;
  margin-bottom: 15px;
}
.freetxt ol li {
  list-style: decimal;
  margin-bottom: 15px;
}
.freetxt h2 {
  margin-bottom: 30px;
  padding: 10px 20px;
  background: #eee;
  font-size: 2.2rem;
}
.freetxt h3 {
  padding: 10px 15px;
  margin-bottom: 30px;
  border-left: 5px solid #149a4d;
  border-bottom: 1px dashed #ccc;
  font-size: 1.8rem;
  line-height: 1.5;
}
.freetxt table {
  border-bottom: 1px solid #bfbfbf;
  width: 100%;
}
.freetxt table th {
  padding: 10px 20px;
  border-top: 1px solid #bfbfbf;
  background: #eee;
  text-align: left;
}
.freetxt table td {
  padding: 10px 20px;
  border-top: 1px solid #bfbfbf;
}
.freetxt .youtube {
  margin-bottom: 20px;
}
.freetxt .youtube iframe {
  width: 100%;
  height: 550px;
}
@media (max-width: 767px) {
  .single #information article {
    margin: 15px auto;
  }
  #information .ttlheader .cat {
    font-size: 1.2rem;
  }
  #information .ttlheader .new {
    width: 50px;
    font-size: 1.2rem;
  }
  #information .ttlheader h3 {
    font-size: 1.8rem;
  }
  .freetxt p {
    font-size: 1.5rem;
  }
  .freetxt h2 {
    font-size: 1.8rem;
  }
  .freetxt h3 {
    font-size: 1.6rem;
  }
  .freetxt .youtube iframe {
    height: 200px;
  }
}
/* ページネーション
-------------------------------------------------------------- */
.paging {
  text-align: center;
  position: relative;
  margin-bottom: 100px;
}
.paging .back {
  position: absolute;
  left: 50%;
  margin-left: -100px;
}
.paging .back a {
  display: block;
  position: relative;
  width: 200px;
  padding: 20px 30px;
  border: 1px solid #0097d7;
  color: #0097d7;
  font-size: 1.4rem;
  box-sizing: border-box;
  outline: none;
  overflow: hidden;
}
.paging a::before,
.paging a::after{
  position: absolute;
  top: 0;
  right: 0;
  margin: auto;
  content: "";
  vertical-align: middle;
}
.paging a::after{
  top: calc(50% - 4px);
  right: 15px;
  width: 8px;
  height: 8px;
  border-top: 1px solid #0097d7;
  border-right: 1px solid #0097d7;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
.paging .next a, .paging .prev a {
  display: block;
  position: relative;
  width: 180px;
  padding: 20px 30px;
  border: 1px solid #0097d7;
  color: #0097d7;
  font-size: 1.4rem;
  box-sizing: border-box;
  letter-spacing: .1rem;
}
.paging .prev a::after{
  top: calc(50% - 4px);
  left: 15px;
  right: auto;
  width: 8px;
  height: 8px;
  border-top: 1px solid #0097d7;
  border-right: 1px solid #0097d7;
  -webkit-transform: rotate(45deg);
  transform: rotate(-135deg);
}
.paging a:hover {
  color: #fff;
  background: #0097d7;
  opacity: 1;
}

.paging .prev {
  float: left;
}
.paging .next {
  float: right;
}
.pagination {
  text-align: center;
  font-size: 2rem;
  width: 100%;
  font-weight: 700;
}
a.page-numbers, .pagination .current {
  padding: 3px 10px;
  margin: 0 5px;
  border: 1px solid #b3b3b3;
  background: #11979d;
  color: #fff;
  text-decoration: none;
}
.prev.page-numbers {
  margin: 0 0 5px 0;
  padding: 0;
  float: left;
}
.next.page-numbers {
  margin: 0 0 0 5px;
  padding: 0;
  float: right;
}
.pagination .current {
  background: transparent;
  color: #000;
}
@media (max-width: 767px) {
  .paging {
    margin-bottom: 50px;
  }
  .paging .back {
    margin-left: -51px;
  }
  .paging .back a, .paging .prev a, .paging .next a {
    padding: 10px;
    width: 100px;
    font-size: 1.3rem;
    text-align: center;
  }
  .paging .back a::after, .paging .prev a::after, .paging .next a::after {
    content: none;
  }
  .pagination {
    padding: 30px auto 50px;
    font-size: 1.2rem;
  }
  a.page-numbers, .pagination .current {
    padding: 3px 6px;
    margin: 0;
  }
}
/* footer
-------------------------------------------------------------- */
footer {
  position: relative;
  padding-top: 50px;
  letter-spacing: 0;
  z-index: 1;
}
footer .flex {
  align-items: flex-start;
}
footer .info {
  width: 38%;
}
footer p {
  font-weight: 500;
}
footer .info address {
  padding-bottom: 30px;
  font-style: normal;
  line-height: 1.7;
}
footer nav.flex {
  padding-bottom: 30px;
  justify-content: flex-end;
  width: 60%;
  border-left: 1px solid #000;
}
footer nav > ul {
  padding-left: 30px;
}
footer nav li {
  position: relative;
  padding: 0 0 20px 20px;
  font-weight: 700;
  letter-spacing: 0;
}
footer nav li::before {
  position: absolute;
  top: 0;
  left: 0;
  color: #149a4d;
  content: "■";
}
footer nav .sub-menu {
  margin: 10px 0 0 -5px;
  font-size: 1.5rem;
}
footer nav .sub-menu li {
  padding: 0 0 5px 15px;
  font-weight: 400;
}
footer nav .sub-menu li::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "・";
}
footer nav .recruit {
  padding-top: 30px;
}
footer .copy {
  margin-top: 40px;
  padding: 5px;
  background: #149a4d;
  color: #fff;
  font-size: 1.4rem;
  text-align: center;
}
/*page-top*/
#Pagetop {
  position: fixed;
  bottom: 50px;
  right: 3%;
  cursor: pointer;
  z-index: 999;
}
@media (max-width: 767px) {
  footer {
    padding-top: 30px;
  }
  footer .info {
    width: 100%;
    text-align: center;
  }
  footer .info p {
    font-size: 1.3rem;
  }
  footer .info address {
    font-size: 1.3rem;
    padding-bottom: 20px;
  }
  footer nav.flex {
    display: none;
  }
  footer .copy {
    margin-top: 20px;
    font-size: 1rem;
  }
}
/* 404
-------------------------------------------------------------- */
#errormsg {
  padding-bottom: 100px;
}
#errormsg p {
  margin-bottom: 30px;
}
#errormsg .txt {
  font-weight: 700;
  line-height: 1.4;
}
#errormsg a {
  padding: 20px 70px 20px 0;
  width: 120px;
}
@media (max-width: 767px) {
  #errormsg {
    padding-bottom: 50px;
  }
  #errormsg p {
    margin-bottom: 20px;
  }
  #errormsg a {
    padding: 20px 40px 20px 0;
    width: 100px;
  }
}