@charset "utf-8";

@import url(ress.css);
@import url(base.css);
@import url(normalize.css);
@import url(roading.css);

/* --------------------------------ボックスモデル-------------------------------- */
html {
  height: 100%;
}
body {
  height: 100vh;
  width: 100%;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}
div.main {
  background-color: #FFFFFF;
  flex: 1 0 auto;
}
header,
div.main,
footer {
  -webkit-transition: 0.5s ease-in-out;
     -moz-transition: 0.5s ease-in-out;
       -o-transition: 0.5s ease-in-out;
          transition: 0.5s ease-in-out;
}
div.main .inner {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  height: auto;
  margin: 30px auto;
}
div.main section:not(#access) {
  margin-bottom: 60px;
}
div.main section:first-child {
  margin-top: 60px;
}
header,
footer {
  /* color: #FFFFFF; */
}
/* tab */
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
  div.main .inner {
    margin: 20px auto 0 auto;
  }
}
/* sp */
@media screen and (max-width : 767px) {
  div.main section:not(#access) {
    margin-bottom: 40px;
  }
  div.main section:first-child {
    margin-top: 40px;
  }
  div.main .inner {
    margin: 20px auto 0 auto;
  }
}

/* --------------------------------ヘッダー-------------------------------- */
header {
  background-color: #FFFFFF;
  background-image: url(../images/bg_header.svg);
  background-position: top center;
  background-repeat: repeat-x;
  display: block;
  width: 100%;
  height: auto;
  padding: 0 20px;
  position: relative;
}
header h1 {
  color: #000000;
  display: block;
  width: auto;
  height: 35px;
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 35px;
  width: auto;
}
header #head_main {
  margin: 15px 0 7px 0;
}
header .logo a,
header .logo a #logotype {
  display: block;
  width: 317px;
  height: 70px;
  overflow: hidden;
}
header .logo #logotype img {
  width: 100%;
  height: auto;
}
header #telephone {
  background-color: #FFFFFF;
  border-radius: 0 0 0 8px;
  box-shadow: 0 2px 6px 0 rgba(0,0,0,0.50);
  padding: 10px;
  position: absolute;
  right: 0;
  top: 0;
}
header #telephone a {
  /* background: url(../images/icon_tel.svg) 0 center no-repeat; */
  background: url(../images/icon_phone.svg) 0 center no-repeat;
  display: block;
  width: auto;
  height: auto;
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1em;
  padding: 0 0 0 20px;
  margin-bottom: 3px;
}
header #telephone p {
  font-size: 1.2rem;
  line-height: 1em;
}
/* tab */
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
}
/* sp */
@media screen and (max-width : 767px) {
  header {
    background-size: 300%;
    padding: 0 10px;
    position: relative;
  }
  header h1 {
    height: 30px;
    line-height: 30px;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  header #head_main {
    margin: 15px 0;
  }
  header .logo {
    margin: 0 auto !important;
  }
  header .logo a,
  header .logo a #logotype {
    display: block;
    width: 200px;
    height: 45px;
    overflow: hidden;
  }
  header .logo #logotype img {
    width: 100%;
    height: auto;
  }
  header #telephone {
    background-color: #FFFFFF;
    border: 2px solid #FFFFFF;
    border-radius: 100%;
    padding: 0;
    position: absolute;
    right: 10px;
    top: calc(30px + 15px + ((45px - 39px) / 2));
  }
  header #telephone a {
    background: url(../images/icon_tel_blue_oval.svg) center no-repeat;
    background-size: 35px;
    display: block;
    width: 35px;
    height: 35px;
    padding: 0 0 0 35px;
    margin-bottom: 0;
    overflow: hidden;
  }
  header #telephone p {
    display: none;
  }
}
/* --------------------------------gnav-------------------------------- */
nav#gnav {
  width: 880px;
  height: 80px;
  margin: 0 0 0 auto;
}
nav#gnav ul {
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
}
nav#gnav ul li {
  width: calc(100% / 7);
  height: 30px;
  text-align: center;
  margin: 30px 0;
  white-space: nowrap;
}
nav#gnav ul li a,
nav#gnav ul li a strong {
  color: #666666;
  display: block;
  font-size: 1.4rem;
  font-weight: 800;
  line-height: 30px;
  width: 100%;
  height: 30px;
  text-transform: uppercase;
}
nav#gnav ul li a:hover,
nav#gnav ul li a:active,
nav#gnav ul li a strong {
  color: #409AD5;
}
/* tab */
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
  nav#gnav {
    width: 100%;
    height: 60px;
    margin: 0 0 0 auto;
  }
}
/* sp */
@media screen and (max-width : 767px) {
  .nav-button {
    display: block !important;
    cursor: pointer;
  }
  nav#gnav,
  nav#gnav.fixed {
    background: #15377B;
    box-shadow: inherit;
    border-radius: 0;
    width: calc(100% - 30px - 30px);
    height: 100vh;
    margin: 0;
    /* transform: translate(0, -50%); */
    position: fixed;
    left: calc(10px + 30px + 20px);
    top: 0;
    z-index: 10;
  }
  nav#gnav ul {
    margin-left: inherit;
    margin-bottom: inherit;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  nav#gnav ul li {
    border-bottom: 1px solid #FFFFFF;
    width: 100%;
    height: calc((100vh - 100px) / 7);
    text-align: center;
    margin: inherit;
  }
  nav#gnav ul li a,
  nav#gnav ul li a strong {
    background: url(../images/arrow_oval.svg) calc(100% - 10px) center no-repeat;
    background-size: 16px;
    color: inherit;
    display: inline-flex;
    display: -webkit-inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    font-size: 1.8rem;
    font-weight: 800;
    line-height: 100%;
    text-align: left;
    width: 100%;
    height: 100%;
  }
  nav#gnav ul li:not(:last-child) {
    /* border-right: 1px solid #C8C8C8; */
  }
  nav#gnav ul li a:hover,
  nav#gnav ul li a:active,
  nav#gnav ul li a strong {
    background-color: #4A90E2;
    color: #FFFFFF;
  }
  .gmenu {
    display: none;
    transform: translate(100%, 0) !important;
    transition: all .4s;
  }
  .gmenu.open {
    display: block;
    box-shadow:-12px 0px 11px 0px rgba(0,0,0,0.5);
    top: 110px;
    width: 100%;
    transform: translate(0, 0) !important;
    /* transform: translateY(0) ; */
  }
  .gmenu.close {
    box-shadow:none;
    display: block;
    transform: translateX(100%);
  }
  .gmenu {
    position: fixed;
    left: 0;
    top: 0;
    display: none;
    z-index: 99;
    background-color: rgba(0, 0, 0, 1);
    width: 100%;
    height: 100%;
  }
  .gmenu ul.nav {
      height: 100vh;
      position: relative;
      overflow-x: hidden;
      overflow-y: auto;
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      padding-top: 110px;
  }
  .gmenu ul li {
      display: block;
      margin: 0;
      width: 100% !important;
  }
  .gmenu ul li a {
        color: #fff !important;;
        font-size: 2rem;
        text-indent: 1em;
  }
  /*メニューボタンのエフェクト*/
  .nav-button,
  .nav-button span {
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box;
  }
  .nav-button {
    background-color: #15377B;
    border-radius: 5px;
    z-index: 100;
    padding: 3px;
    position: fixed;
    width: 36px;
    height: 36px;
    left: 10px;
    transform: translate(0, 0);
    top: calc(30px + 15px + ((45px - 36px) / 2));
  }
  .nav-button span {
    position: absolute;
    left: 4px;
    width: calc(100% - 8px);
    height: 4px;
    background-color: #FFFFFF;
    border-radius: 4px;
  }
  .nav-button span:nth-of-type(1) {
    top: 6px;
  }
  .nav-button span:nth-of-type(2) {
    top: 16px;
  }
  .nav-button span:nth-of-type(3) {
    bottom: 6px;
  }
  .nav-button.active {
    /* right: 10px; */
    transform: rotateY(180deg);
  }
  .nav-button.active span {
    /* background-color: #409AD5; */
  }
  .nav-button.active span:nth-of-type(1),
  .nav-button.active span:nth-of-type(3) {
    width: 12px;
  }
  .nav-button.active span:nth-of-type(1) {
    -webkit-transform: translate(0px,5px) rotate(-45deg);
    transform: translate(0px,5px) rotate(-45deg);
  }
  .nav-button.active span:nth-of-type(3) {
    -webkit-transform: translate(0px,-5px) rotate(45deg);
    transform: translate(0px,-5px) rotate(45deg);
  }
}


/* --------------------------------コンテンツエリア-------------------------------- */
/* 共通項目-見出し */
section h2 {
  color: #15377B;
  font-size: 3.6rem;
  line-height: 1em;
  margin-bottom: 10px;
  text-align: center;
}
body section h3 {
  color: #4A4A4A;
  font-size: 3rem;
  line-height: 1em;
  text-align: center;
  margin-bottom: 10px;
}
body#step section article h3,
body#works section article h3 {
  color: #3F70D2;
  font-size: 2rem;
  line-height: 1em;
  text-align: left;
  margin-bottom: 10px;
}
/*tab*/
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
  section h2 {
  }
}
/*sp*/
@media screen and (max-width : 767px) {
  section h2 span.title {
    border-bottom: 3px solid #FF9932;
  }
}
/* 共通項目-文字揃え */
.center {
  text-align: center;
  margin: 0 auto;
}
.left {
  text-align: left;
  margin: 0 auto 0 0;
}
.right {
  text-align: right;
  margin: 0 0 0 auto;
}

/* 共通項目-位置揃え 他 */
.align_right {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  width: 100%;
  height: auto;
}
.align_right .marign_right {
  margin: 0 20px 0 0;
}
.align_right .marign_right:last-child {
  margin: 0;
}

/* 特殊文字サイズ */
.size120 {
  font-size: 120%;
}
.size150 {
  font-size: 150%;
}
.size200 {
  font-size: 200%;
}

/*sp*/
@media screen and (max-width : 767px) {
  .align_right .marign_right {
    margin: 0 10px 0 0;
  }
}

/* 共通項目-背景色 */
.bg_orange {
  background-color: #FCF2D8;
}
.radius {
  border-radius: 10px;
}
.radius25 {
  border-radius: 25px;
}
.radius100 {
  border-radius: 100%;
}

/* 共通項目-ボタン */
.button {
  height: 50px;
  font-size: 2rem;
  font-weight: bold;
  line-height: 46px;
}
#btn_sns {
  margin-bottom: 20px;
}
#btn_sns li:not(:last-child) {
  margin-right: 5px;
}
#btn_sns li a img {
  width: 30px;
  height: 30px;
}

/* 共通項目-ボタン色 */
.orange {
  background-color: #FF9932;
  color: #FFF;
}
.text_orange {
  color: #FF9932 !important;
}
.blue {
  background-color: #4A90E2;
  color: #FFF;
}
.text_white {
  color: #FFF !important;
}
.text_blue {
  color: #4A90E2 !important;
}
.text_indigo {
  color: #15377B !important;
}
.text_glay {
  color: #4A4A4A !important;
}
.white {
  background-color: #FFF;
}
.red {
  background-color: #F00;
  color: #FFF;
}
.indigo {
  background-color: #15377B;
  color: #FFFFFF !important;
}
.green {
  background-color: #A5D471;
  color: #FFF !important;
}
.border_white {
  border: 2px solid #FFF;
}
.border_orange {
  border: 2px solid #FF9932;
}
.border_blue {
  border: 2px solid #4A90E2;
}
.border_glay {
  border: 2px solid #4A4A4A;
}
.border_red {
  border: 2px solid #FF0000;
}
.border_bottom.dot_blue {
  border-bottom: 2px dotted #4A90E2;
  padding-bottom: 10px;
}
.arrow_blue {
  background-image: url(../images/arrow_blue.svg);
  background-position: calc(100% - 10px) center;
  background-repeat: no-repeat;
}
.arrow_blue_left {
  background-image: url(../images/arrow_blue_left.svg);
  background-position: 10px center;
  background-repeat: no-repeat;
}
.arrow_white {
  background-image: url(../images/arrow_white.svg);
  background-position: calc(100% - 10px) center;
  background-repeat: no-repeat;
}
.arrow_orange {
  background-image: url(../images/arrow_orange.svg);
  background-position: 10px center;
  background-repeat: no-repeat;
}
.arrow_glay {
  background-image: url(../images/arrow_glay.svg);
  background-position: 10px center;
  background-repeat: no-repeat;
}
.shadow {
  box-shadow: 0 2px 6px 0 rgba(0,0,0,0.50);
}
.text_shadow {
  text-shadow: 0 2px 4px rgba(0,0,0,0.50);
}

/* 共通項目-リスト */
body:not(#home) ul.list {
  margin: 0.25em auto 0.25em 0;
  list-style: none;
}
body:not(#home) ul.list li {
  padding-left: calc(1em + 3px);
}
body:not(#home) ul.list li::before {
  background-color: #4A90E2;
  border-radius: 100%;
  content: '';
  display: inline-block;
  line-height: 1.2em;
  width: 1em;
  height: 1em;
  margin-left: -1em;
  transform: translate(-3px, 2px);
}
body#news ul.list li::before {
  content: none;
}
body:not(#home) ul.list li:not(:last-child) {
  margin-bottom: 5px;
}
ul.list li ul {
  margin-left: 1em;
  margin-top: 5px;
}
ul.list li ul li {
  list-style-type: disc;
  padding-left: 0 !important;
}
ul.list li ul li::before {
  content: none !important;
}
ul.list.arrow_orange {
  background: none;
}
ul.list.arrow_orange li {
  background-image: url(../images/arrow_orange.svg);
  background-position: left center;
  background-repeat: no-repeat;
  background-size: auto;
}
ul.list.arrow_orange li::before {
  content: none !important;
}
/* tab */
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
  body:not(#home) ul.list {
    /* margin: 0.25em auto 0.25em calc(1rem + 10px); */
    list-style: none;
  }
  body:not(#home) ul.list li {
    background-size: 14px;
    padding-left: 18px;
  }
  table ul.list li {
    background-size: 12px;
    padding-left: 0 !important;
  }
}
/*sp*/
@media screen and (max-width : 767px) {
  body:not(#home) ul.list {
    margin: 0.25em auto 0.25em calc(1rem + 10px);
    list-style: none;
  }
  body:not(#home) ul.list li {
    background-size: 14px;
    padding-left: 18px;
  }
  table ul.list li {
    background-size: 12px;
    padding-left: 0 !important;
  }
}

/* 共通項目-その他装飾 */
.bordertop_gray {
  border-top: 1px dotted #979797;
}
.blur {
  text-shadow: 0 4px 8px #000000, 0 -4px 8px #000000, 4px 0 8px #000000, -4px 0 8px #000000;
}
.radius100 {
  border-radius: 100%;
}
.img_max {
  max-width: 100%;
  height: auto;
}

.margin_none {
  margin: 0 !important;
}
.margin_top10 {
  margin-top: 10px !important;
}
.margin_top20 {
  margin-top: 20px !important;
}
.margin_top30 {
  margin-top: 30px !important;
}
.margin_top40 {
  margin-top: 40px !important;
}
.margin_top60 {
  margin-top: 60px !important;
}


.padding_top20 {
  padding-top: 20px !important;
}
.padding_top30 {
  padding-top: 30px !important;
}
.padding_top40 {
  padding-top: 40px !important;
}
.padding_top60 {
  padding-top: 60px !important;
}

/* 共通項目-アイコン */
.icon_tel {
  background-image: url(../images/icon_tel.svg);
  background-position: 10px center;
  background-repeat: no-repeat;
}
a.icon_tel {
  background-position: 0 center;
  padding-left: 35px;
}

/* 共通項目-FLEXBOX */
.flex_box {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  -webkit-box-align: start;
  align-items: flex-start;
  list-style: none;
  margin: 0;
}
.flex_center {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  list-style: none;
  margin: 0;
}
.flex_end {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  list-style: none;
  margin: 0;
}

ul.flex_box
ul.flex_center {
  margin: 0 !important;
}
.flex_box li {
  /* margin-bottom: 30px; */
}
.flex_column {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
}

/* 文字サイズなど */
.caption {
  font-size: 1.2rem;
  line-height: 1em;
}

/* 共通項目-pager */
nav#pager li {
  color: #FFFFFF;
  background-color: #4A90E2;
  border: 1px solid #4A90E2;
  border-radius: 100%;
  font-size: 1.4rem;
  line-height: 28px;
  text-align: center;
  display: block;
  width: 30px;
  height: 30px;
  white-space: nowrap;
  overflow: hidden;
}
nav#pager li:not(:last-child) {
  margin-right: 5px;
}
nav#pager li a {
  background-color: #FFFFFF;
  border-radius: 100%;
  display: block;
  font-size: 1.4rem;
  line-height: 28px;
  width: 28px;
  height: 28px;
}
nav#pager li.btn_prev a,
nav#pager li.btn_next a {
  background: url(../images/arrow_oval.svg) center no-repeat;
  background-size: cover;
  padding-left: 30px;
}
nav#pager li.btn_prev {
  transform: rotateY(180deg);
}

/*sp*/
@media screen and (max-width : 767px) {
  .flex_box {
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-justify-content: center;
    justify-content: center;
  }
  .flex_box > div:not(:last-child),
  .flex_box > li:not(:last-child),
  .flex_box > img:not(:last-child) {
    margin-bottom: 20px;
  }
}

/* --------------------------------スライダー-------------------------------- */
#slide {
  /* margin-top: 80px; */
}
#slide h2,
#slide p,
#slide p.caption {
  margin: 0 auto 5px auto;
  width: 1024px;
}
#slide h2 {
  font-weight: bold;
  font-size: 3.6rem;
  line-height: 1em;
}
#slide p {
  color: #000000;
  font-weight: bold;
  font-size: 1.8rem;
  line-height: 1em;
}
#slide p.caption {
  color: #000000;
  font-size: 1.4rem;
  line-height: 1em;
}
#slide a.button {
  /* font-size: 1.8rem;
  line-height: 50px;
  height: 50px;
  padding: 0; */
  margin: 40px auto 0 calc((100% - 1024px) / 2);
}
/* tab */
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
  #slide h2,
  #slide p,
  #slide p.caption {
    margin: 0 40px 5px 40px;
    width: 1024px;
  }
  #slide h2 {
    font-weight: bold;
    font-size: 3.6rem;
    line-height: 1em;
  }
  #slide p {
    color: #000000;
    font-weight: bold;
    font-size: 1.8rem;
    line-height: 1em;
  }
  #slide p.caption {
    color: #000000;
    font-size: 1.4rem;
    line-height: 1em;
  }
  #slide a.button {
    font-size: 1.8rem;
    line-height: 36px;
    height: 40px;
    padding: 0;
    margin: 30px auto 0 40px;
  }
}
/* sp */
@media screen and (max-width : 767px) {
  #slide {
    /* margin: auto 10px; */
  }
  #slide h2,
  #slide p,
  #slide p.caption {
    /* color: #FFF; */
    font-weight: bold;
    margin: 0 10px;
  }
  #slide h2 {
    font-size: 2.2rem;
    line-height: 1.2em;
    width: 100%;
    /* margin: 10px 0 50px 10px;
    padding-top: 10px; */
  }
  #slide p {
    font-size: 1.2rem;
    line-height: 1.2em;
    /* padding-top: 20px;
    margin-bottom: 50px; */
  }
  #slide a.button {
    font-size: 1.6rem;
    line-height: 30px;
    height: 34px;
    /* padding: 0; */
    margin: 20px auto 0 auto;
    width: calc(100% - 20px);
  }
}


/* --------------------------------トップページ-------------------------------- */
.main.top section:nth-child(even) {
  background-color: #EBF6FF;
  padding: 50px 0;
}
/* サービス一覧 */
.main.top section#service_list ul#servicies {
  margin-top: 20px !important;
}
.main.top section#service_list ul#servicies li {
  position: relative;
  margin-bottom: 30px;
}
.main.top section#service_list ul#servicies li a {
  transition: transform 0.2s linear;
  background-color: #FFFFFF;
  box-shadow: 0 2px 6px 0 rgba(0,0,0,0.50);
  border-radius: 10px;
  padding: 30px;
  display: block;
}
.main.top section#service_list ul#servicies li:hover a {
  box-shadow: 0 6px 19px 7px rgba(0,0,0,0.50);
  transform: scale(1.1) translateY(-30px);
  opacity: 1;
  position: absolute;
  left: 0px;
  top: 0px;
  z-index: 1;
}
.main.top section#service_list ul#servicies h3 {
}
.main.top section#service_list ul#servicies a p {
  transition: transform 0.2s linear;
  display: none;
}
.main.top section#service_list ul#servicies a:hover p,
.main.top section#service_list ul#servicies a:active p {
  display: block;
}
article#kasai #bnr_hoken {
  background-color: #15377B;
  border:1px solid #15377B;
  width: 100%;
  height: auto;
  margin-top: 20px;
}
article#kasai #bnr_hoken img {
  border-radius: 10px 0 0 10px;
  width: 50%;
  height: auto;
}
article#kasai #bnr_hoken #hoken_text {
  background: url(../images/arrow_white.svg) calc(100% - 10px) center no-repeat;
  width: 50%;
  height: auto;
  padding: 20px;
}
article#kasai #bnr_hoken #hoken_text p,
article#kasai #bnr_hoken #hoken_text h2 span {
  color: #FFFFFF !important;
}
article#kasai #bnr_hoken #hoken_text p {
  font-size: 2rem;
  font-weight: bold;
  line-height: 1em;
  margin-bottom: 0;
}
article#kasai #bnr_hoken #hoken_text h2 {
  color: #FFEE00;
  font-size: 3rem;
  line-height: 1em;
  /* margin-bottom: 5px; */
  text-align: left;
}
article#kasai #bnr_hoken #hoken_text h2 span {
  display: block;
  font-size: 1.6rem;
  line-height: 1em;
}
article#kasai #bnr_hoken #hoken_text ul {
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  margin-left: 0;
}
article#kasai #bnr_hoken #hoken_text ul li {
  background-color: #FFEE00;
  display: block;
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 100px;
  width: 100px;
  height: 100px;
}
article#kasai #bnr_hoken #hoken_text ul li.center {
  margin: 0 10px 0 0;
}

/* 施工実績 */
ul#works_list {
  margin-top: 20px !important;
}
ul#works_list li a {
  display: block;
  background-color: #FFFFFF;
  /* box-shadow: 0 2px 6px 0 rgba(0,0,0,0.50); */
  border-radius: 10px;
  margin-bottom: 30px;
}
ul#works_list li a .works_thum {
  border-radius: 10px 10px 0 0;
  display: block;
  width: 100%;
  height: 157px;
  position: relative;
  overflow: hidden;
}
ul#works_list li a .works_thum img {
  width: 100%;
  height: auto;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  position: absolute;
}
ul#works_list li a .text {
  padding: 20px;
}
ul#works_list li a .text .label {
  background-color: #15377B;
  border-radius: 9px;
  color: #FFFFFF;
  display: inline-block;
  font-size: 1.2rem;
  line-height: 1em;
  margin-bottom: 5px;
  padding: 3px 1em;
  width: auto;
  height: auto;
}
ul#works_list li a .text h3 {
  font-size: 1.8rem;
  line-height: 1.2em;
  text-align: left;
}
ul#works_list li a .text p.more {
  background: url(../images/arrow_oval.svg) 0 center no-repeat;
  background-size: 12px;
  color: #4A90E2;
  font-size: 1.2rem;
  line-height: 1em;
  padding-left: 15px;
}

/* 受付から作業完了までの流れ */
.main.top section#step ol.flex_box {
  margin: 30px 0 !important;
  counter-reset:stepcount;
  list-style:none;
}
.main.top section#step ol.flex_box li {
  position: relative;
}
.main.top section#step ol.flex_box li::before {
  counter-increment: stepcount;
  content: counter(stepcount);
  color: #FFFFFF;
  background-image: url(../images/icon_dropwater.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  left: 0;
  top: -10px;
  width: 70px;
  height: 99px;
  display: block;
  font-size: 3.6rem;
  font-family: "Helvetica Neue Condensed Bold", "Helvetica Bold", sans-serif;
  line-height: 1em;
  font-weight: bold;
  padding: 40px 5px 0 40px;
}
.main.top section#step ol.flex_box li::after {
  content: 'STEP';
  color: #FFFFFF;
  font-size: 1.2rem;
  line-height: 1em;
  font-weight: bold;
  position: absolute;
  left: 5px;
  top: 50px;
}

/* 対応エリア */
.main.top section#area #arealists {
  margin-top: 20px !important;
}
.main.top section#area #arealists form {
  background-color: #FFFFFF;
  padding: 20px;
  -webkit-box-align: center;
     -ms-flex-align: center;
        align-items: center;
  margin-top: 30px;
}
.main.top section#area #arealists .col2 img {
  width: 100%;
  height: auto;
}
.main.top section#area #arealists form label {
  font-weight: bold;
}
.main.top section#area #arealists form input[type=text] {
  width: 500px;
}
.main.top section#area #arealists ul.target-area {
  list-style: none;
  margin-left: 0;
}
.main.top section#area #arealists ul.target-area li {
  float: left;
}
.main.top section#area #arealists ul.target-area li:not(:first-child)::before {
  content: '/';
}
.main.top section#area #arealists h4 {
  color: #15377B;
  clear: both;
  font-size: 1.6rem;
  line-height: 1em;
}
.main.top section#area #arealists h4:not(:first-child) {
  padding: 10px 0 5px 0;
}
.main.top section#area #arealists h4::before {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 100%;
  background-color: #15377B;
  margin-right: 3px;
  transform: translateY(1px);
}
.search-result {
  margin-top: 20px;
}
.search-result__hit-num span {
  color: #FF0000;
  font-weight: bold;
}
#search-result__list {
  margin-top: 15px;
}
#search-result__list span {
  color: #FFFFFF;
  display: inline-block;
  margin: 0 5px 5px 0;
  padding: 5px;
  background: #15377B;
  border-radius: 5px;
}
.target-area {
  /* margin-top: 50px; */
}

/* インフォメーション */
section#information ul.list {
  display: flex;
  display: -webkit-flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  list-style: none;
  width: 100%;
  margin: 20px 0 30px 0;
}
section#information ul.list li {
  display: flex;
  display: -webkit-flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 1.6rem;
  line-height: 1.2em;
  margin-bottom: 0;
  padding: 20px 10px;
  width: 100%;
}
section#information ul.list li:nth-child(odd) {
  background-color: #EBF6FF;
}
section#information ul.list li .date {
  width: calc(1024px - 10px - ((1024px - 20px) / 3 * 2 + 30px));
  height: auto;
  white-space: nowrap;
}
section#information ul.list li .body a {
  background: url(../images/arrow_oval.svg) calc(100% - 10px) center no-repeat;
  background-size: 16px;
  display: block;
}

/* tab */
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
  .main.top section:nth-child(even) {
    padding: 40px 0;
  }
  /* サービス一覧 */
  .main.top section#service_list ul#servicies {
    margin-top: 10px !important;
  }
  .main.top section#service_list ul#servicies li {
    margin-bottom: 20px;
  }
  .main.top section#service_list ul#servicies li a {
    padding: 20px;
  }
  .main.top section#service_list ul#servicies li:hover a {
    box-shadow: 0 2px 6px 0 rgba(0,0,0,0.50);
    transform: inherit;
    position: relative;
  }
  .main.top section#service_list ul#servicies h3 {
  }
  .main.top section#service_list ul#servicies a p {
    display: block;
  }
  .main.top section#service_list ul#servicies a:hover p,
  .main.top section#service_list ul#servicies a:active p {
  }
  .main.top section#service_list ul#servicies a img {
    width: 180px;
    height: 180px;
  }
  article#kasai #bnr_hoken {
  }
  article#kasai #bnr_hoken img {
    border-radius: 10px 0 0 10px;
    width: 50%;
    height: auto;
  }
  article#kasai #bnr_hoken #hoken_text {
    padding: 10px;
  }
  article#kasai #bnr_hoken #hoken_text p,
  article#kasai #bnr_hoken #hoken_text h2 span {
  }
  article#kasai #bnr_hoken #hoken_text p {
    font-size: 1.8rem;
  }
  article#kasai #bnr_hoken #hoken_text h2 {
    font-size: 2.6rem;
  }
  article#kasai #bnr_hoken #hoken_text h2 span {
    font-size: 1.4rem;
  }
  article#kasai #bnr_hoken #hoken_text ul {
  }
  article#kasai #bnr_hoken #hoken_text ul li {
    font-size: 2rem;
    line-height: 70px;
    width: 70px;
    height: 70px;
  }
  article#kasai #bnr_hoken #hoken_text ul li.center {
    margin: 0 10px 0 0;
  }
  /* 施工実績 */
  ul#works_list {
    margin-top: 10px !important;
  }
  ul#works_list li a {
    margin-bottom: 20px;
  }
  ul#works_list li a .works_thum {
    height: 100px;
  }
  ul#works_list li a .works_thum img {
  }
  ul#works_list li a .text {
    padding: 20px;
  }
  ul#works_list li a .text h3 {
    font-size: 1.6rem;
  }
  ul#works_list li a .text p.more {
    background-size: auto;
    font-size: 1.4rem;
  }
  /* 受付から作業完了までの流れ */
  .main.top section#step ol.flex_box {
    margin: 20px 0 !important;
  }
  .main.top section#step ol.flex_box li {
  }
  .main.top section#step ol.flex_box li img {
    width: 100%;
    height: auto;
  }
  .main.top section#step ol.flex_box li::before {
    top: -10px;
    width: 50px;
    height: 70px;
    font-size: 3rem;
    padding: 30px 0px 0 28px;
  }
  .main.top section#step ol.flex_box li::after {
    font-size: 1rem;
    left: 5px;
    top: 35px;
  }
}
/* sp */
@media screen and (max-width : 767px) {
  .main.top section:nth-child(even) {
    padding: 10px 0;
  }
  .main.top section:nth-child(even) div.inner {
    padding-bottom: 30px;
  }
  /* サービス一覧 */
  .main.top section#service_list ul#servicies {
    margin-top: 10px !important;
  }
  .main.top section#service_list ul#servicies li {
    margin-bottom: 10px;
  }
  .main.top section#service_list ul#servicies li a {
    padding: 20px;
  }
  .main.top section#service_list ul#servicies li:hover a {
    box-shadow: 0 2px 6px 0 rgba(0,0,0,0.50);
    transform: inherit;
    position: relative;
  }
  .main.top section#service_list ul#servicies h3 {
  }
  .main.top section#service_list ul#servicies a p {
    display: block;
  }
  .main.top section#service_list ul#servicies a:hover p,
  .main.top section#service_list ul#servicies a:active p {
  }
  .main.top section#service_list ul#servicies a img {
    width: 180px;
    height: 180px;
  }
  article#kasai #bnr_hoken {
    background-color: #15377B;
    border:1px solid #15377B;
    width: 100%;
    height: auto;
    margin-top: 20px;
  }
  article#kasai #bnr_hoken img {
    border-radius: 10px 10px 0 0;
    width: 100%;
    height: auto;
    margin-bottom: 0;
  }
  article#kasai #bnr_hoken #hoken_text {
    background: none;
    width: 100%;
    height: auto;
    padding: 20px;
  }
  article#kasai #bnr_hoken #hoken_text p,
  article#kasai #bnr_hoken #hoken_text h2 span {
    color: #FFFFFF !important;
  }
  article#kasai #bnr_hoken #hoken_text p {
    font-size: 2rem;
    font-weight: bold;
    line-height: 1em;
    margin-bottom: 0;
  }
  article#kasai #bnr_hoken #hoken_text h2 {
    color: #FFEE00;
    font-size: 3rem;
    line-height: 1em;
    text-align: left;
  }
  article#kasai #bnr_hoken #hoken_text h2 span {
    display: block;
    font-size: 1.6rem;
    line-height: 1em;
  }
  article#kasai #bnr_hoken #hoken_text ul {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    margin-left: 0;
  }
  article#kasai #bnr_hoken #hoken_text ul li {
    background-color: #FFEE00;
    display: block;
    font-size: 2rem;
    font-weight: bold;
    line-height: 70px;
    width: 70px;
    height: 70px;
  }
  article#kasai #bnr_hoken #hoken_text ul li.center {
    margin: 0 0 10px 0 !important;
  }
  /* 施工実績 */
  ul#works_list {
    margin-top: 10px !important;
  }
  ul#works_list li {
    border-radius: 10px !important;
    margin-bottom: 10px;
  }
  ul#works_list li a {
    display: block;
    background-color: #FFFFFF;
    border-radius: 10px;
    margin-bottom: 0;
  }
  ul#works_list li a .works_thum {
    border-radius: 10px 10px 0 0;
    display: block;
    width: 100%;
    height: 157px;
    position: relative;
    overflow: hidden;
  }
  ul#works_list li a .works_thum img {
    width: 100%;
    height: auto;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    position: absolute;
  }
  ul#works_list li a .text {
    padding: 20px;
  }
  ul#works_list li a .text h3 {
    font-size: 1.8rem;
    line-height: 1.2em;
    text-align: left;
  }
  ul#works_list li a .text p.more {
    background: url(../images/arrow_oval.svg) 0 center no-repeat;
    background-size: 12px;
    color: #4A90E2;
    font-size: 1.6rem;
    line-height: 1em;
    padding-left: 15px;
  }

  /* 受付から作業完了までの流れ */
  .main.top section#step ol.flex_box {
    margin: 30px 0 !important;
    counter-reset:stepcount;
    list-style:none;
  }
  .main.top section#step ol.flex_box li {
    position: relative;
  }
  .main.top section#step ol.flex_box li::before {
    counter-increment: stepcount;
    content: counter(stepcount);
    color: #FFFFFF;
    background-image: url(../images/icon_dropwater.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    left: calc((100% - 234px) / 2);
    top: -10px;
    width: 70px;
    height: 99px;
    display: block;
    font-size: 3.6rem;
    font-family: "Helvetica Neue Condensed Bold", "Helvetica Bold", sans-serif;
    line-height: 1em;
    font-weight: bold;
    padding: 45px 5px 0 40px;
  }
  .main.top section#step ol.flex_box li::after {
    content: 'STEP';
    color: #FFFFFF;
    font-size: 1.4rem;
    line-height: 1em;
    font-weight: bold;
    position: absolute;
    left: calc((100% - 234px) / 2 + 10px);
    top: 48px;
  }

  /* 対応エリア */
  .main.top section#area #arealists {
    margin-top: 10px !important;
  }
  .main.top section#area #arealists form {
    background-color: #FFFFFF;
    padding: 20px;
    -webkit-box-align: center;
       -ms-flex-align: center;
          align-items: center;
    margin-top: 30px;
  }
  .main.top section#area #arealists .col2 img {
    width: 100%;
    height: auto;
  }
  .main.top section#area #arealists form label {
    font-weight: bold;
  }
  .main.top section#area #arealists form input[type=text] {
    width: 100%;
  }
  .main.top section#area #arealists ul.target-area {
    list-style: none;
    margin-left: 0;
  }
  .main.top section#area #arealists ul.target-area li {
    float: left;
  }
  .main.top section#area #arealists ul.target-area li:not(:first-child)::before {
    content: '/';
  }
  .main.top section#area #arealists h4 {
    color: #15377B;
    clear: both;
    font-size: 1.6rem;
    line-height: 1em;
  }
  .main.top section#area #arealists h4:not(:first-child) {
    padding: 10px 0 5px 0;
  }
  .main.top section#area #arealists h4::before {
    width: 12px;
    height: 12px;
  }
  .search-result {
    margin-top: 20px;
  }
  .search-result__hit-num span {
    color: #FF0000;
    font-weight: bold;
  }
  #search-result__list {
    margin-top: 15px;
  }
  #search-result__list span {
    color: #FFFFFF;
    display: inline-block;
    margin: 0 5px 5px 0;
    padding: 5px;
    background: #15377B;
    border-radius: 5px;
  }
  /* インフォメーション */
  section#information ul.list {
    display: flex;
    display: -webkit-flex;
    -webkit-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    list-style: none;
    width: 100%;
    margin: 20px 0 30px 0;
  }
  section#information ul.list li {
    display: flex;
    display: -webkit-flex;
    -webkit-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    font-size: 1.6rem;
    line-height: 1.2em;
    margin-bottom: 0;
    padding: 20px 10px;
    width: 100%;
  }
  section#information ul.list li:nth-child(odd) {
    background-color: #EBF6FF;
  }
  section#information ul.list li .date {
    width: calc(100% - 10px - ((100% - 40px) / 3 * 2 + 30px));
    height: auto;
    white-space: nowrap;
  }
  section#information ul.list li .body a {
    background: url(../images/arrow_oval.svg) right center no-repeat;
    background-size: 16px;
    display: block;
    padding-right: 20px;
  }
}

/* --------------------------------下層ページ共通-------------------------------- */
/* ページタイトル */
body section#pagetitle {
  background-color: #DAE9F6;
  background-image: url(../images/bg_pagetitle.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  display: block;
  height: 200px;
  width: 100%;
  margin: 0 !important;
  padding: 0 20px;
}
body section#pagetitle h1 {
  color: #15377B;
  font-size: 4.2rem;
  font-weight: bold;
  line-height: 200px;
}
/* tab */
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
  body section#pagetitle {
    height: 150px;
    width: 100%;
    padding: 0 10px;
  }
  body section#pagetitle h1 {
    font-size: 3.6rem;
    line-height: 150px;
  }
}
/* sp */
@media screen and (max-width : 767px) {
  body section#pagetitle {
    height: 100px;
    padding: 0 10px;
  }
  body section#pagetitle h1 {
    font-size: 3.6rem;
    line-height: 100px;
  }
}
/* ボックスモデル */
body:not(#home) .main main .inner {
}
body:not(#home) .main main {
  margin-top: 30px;
}
body:not(#home) .main main section article:not(:last-child) {
  margin-bottom: 20px;
}
/* sp */
@media screen and (max-width : 767px) {
}
/* パンくず */
nav#pannavi {
  background-color: #F5F5F5;
  margin: 0 auto;
  padding: 20px;
}
nav#pannavi ul {
  background: url(../images/icon_home.svg) 0 center no-repeat;
  background-size: auto;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-box-align: baseline;
  -ms-flex-align: baseline;
  align-items: baseline;
  list-style: none;
  width: 100%;
  height: auto;
  margin: 0 auto 0 0;
  padding-left: 20px;
}
nav#pannavi ul li:not(:first-child) {
  background: url(../images/icon_arrow_glay.svg) 0 center no-repeat;
  background-size: 9px;
  color: #666666;
  font-size: 1.6rem;
  line-height: 1em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-left: 10px;
  padding-left: 20px;
  position: relative;
}
nav#pannavi ul li a {
  font-size: 1.6rem;
  line-height: 1em;
  white-space: nowrap;
}
/* SNSボタン */
ul#btn_sns.flex_box {
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
}
/* ul#btn_sns.flex_box li {
  margin-right: 10px;
  width: 40px;
  height: 40px;
}
ul#btn_sns.flex_box a,
ul#btn_sns.flex_box a img {
  display: block;
  width: 100%;
  height: 100%;
} */

/* tab */
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
}
/* sp */
@media screen and (max-width : 767px) {
  nav#pannavi {
    display: none;
  }
}

/* --------------------------------サービス一覧-------------------------------- */
@media all and (-ms-high-contrast: none) {
}
main.service .half img {
  width: 100%;
  height: auto;
}
main.service #example_list h4,
main.service .price h2 {
  font-size: 2rem;
  line-height: 1em;
  margin-bottom: 10px;
  text-align: left;
}
main.service .bg_chara_w01 {
  background-position: right bottom;
  background-repeat: no-repeat;
  background-image: url(../images/character_w01.svg);
  background-size: auto;
}

main.service .price table {
  margin: 20px 0;
}

/* tab */
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
  main.service .bg_chara_w01 {
    background-size: 80px;
  }
}
/* sp */
@media screen and (max-width : 767px) {
  main.service .bg_chara_w01 {
    background-size: 80px;
  }
}

/* --------------------------------作業の流れ-------------------------------- */
@media all and (-ms-high-contrast: none) {
}
main.step article.step:not(:last-child) {
  margin-bottom: 0 !important;
}
main.step article.step:not(:last-child)::after {
  background: url(../images/arrow_blue.svg) bottom center no-repeat;
  background-size: cover;
  content: '';
  display: block;
  width: 30px;
  height: 47px;
  margin: 10px auto;
  transform: rotate(90deg);
}
/* sp */
@media screen and (max-width : 767px) {
}

/* --------------------------------施工実績-------------------------------- */
nav#categories_tab {
  margin-top: 20px;
}
nav#categories_tab ul li {
  -webkit-box-flex: 1;
 -ms-flex-positive: 1;
         flex-grow: 1;
}
nav#categories_tab ul li a {
  background-color: #88BDFF;
  border-radius: 10px 10px 0 0;
  display: block;
  font-weight: bold;
  width: 100%;
  height: auto;
  padding: 10px;
}
nav#categories_tab ul li strong a {
  background-color: #4A90E2;
  display: block;
  width: 100%;
  height: 100%;
  text-shadow: none;
}
article#example {
  margin: 30px 0;
}
article#example h3 {
  margin-bottom: 30px;
}
article#example #beforeafter #bf_slide .sp-slides-container {
  border-radius: 10px;
  box-shadow: 0 2px 6px 0 rgba(0,0,0,0.50);
  margin-bottom: 20px;
}
article#example #beforeafter #bf_slide img.sp-image {
  max-width: calc(100% - 80px);
  max-height: calc(100% - 40px);
}
article#example #beforeafter #bf_slide .sp-layer {
  background-color: #4A90E2;
  border-radius: 0 10px 0 0;
  color: #FFFFFF;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1em;
  padding: 10px;
}
article#example #beforeafter #bf_slide .sp-bottom-thumbnails {
  margin: 0;
}
article#example #beforeafter #bf_slide .sp-bottom-thumbnails .sp-thumbnail-container {
  border-radius: 10px !important;
  box-shadow: 0 2px 6px 0 rgba(0,0,0,0.50) !important;
  margin-right: 10px;
  margin-left: 0;
}
article#example #beforeafter #bf_slide .sp-bottom-thumbnails .sp-thumbnail-container img {
  /* border-radius: 10px !important; */
}
article#example #beforeafter #bf_slide .sp-thumbnails-container {
  /*overflow: visible !important;*/
	/*20230722下記追加*/
	width: 100% !important;
	overflow: hidden !important;
    padding: 15px;
}
article#example #beforeafter #bf_slide .sp-selected-thumbnail {
  border: 4px solid #4A90E2;
  border-radius: 10px;
}
article#example #comment h4 {
  color: #15377B;
  text-transform: uppercase;
}
article#example #comment h4::before {
  background-color: #15377B;
  border-radius: 100%;
  content: '';
  display: inline-block;
  width: 1rem;
  height: 1rem;
  margin-right: 3px;
}
/* sp */
@media screen and (max-width : 767px) {
}

/* --------------------------------水回りリフォーム-------------------------------- */
@media all and (-ms-high-contrast: none) {
}
main.reform #example_list h4,
main.reform .price h2 {
  font-size: 2rem;
  line-height: 1em;
  margin-bottom: 10px;
  text-align: left;
}
/* sp */
@media screen and (max-width : 767px) {
}

/* --------------------------------よくあるQ&A-------------------------------- */
@media all and (-ms-high-contrast: none) {
}
article.question {
  margin: 30px 0 0 0 !important;
}
article.question dl {
  display: inherit !important;
  width: 100%;
  height: auto;
}
article.question dl dt,
article.question dl dd {
  display: block;
  width: 100%;
  height: auto;
  padding: 20px 40px;
  position: relative;
  white-space: normal;
}
article.question dl dt {
  background-color: #F3F3F3;
  cursor: pointer;
  color: #4A90E2;
  border-bottom: 1px dotted #C8C8C8;
}
article.question dl dt::before {
  content: 'Q';
  color: #4A90E2;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1em;
  margin-right: 0.5em;
  position: absolute;
  left: 20px;
  top: calc((100% - 1em) / 2);
}
article.question dl dt::after {
  content: '';
  background: url(../images/arrow_oval.svg) center no-repeat;
  background-size: cover;
  display: inline-block;
  width: 1em;
  height: 1em;
  position: absolute;
  right: 20px;
  top: calc((100% - 1em) / 2);
  transform: rotate(90deg);
}
article.question dl dt.opened::after {
  transform: rotate(-90deg);
  transition-duration: 100ms;
}
article.question dl dd::before {
  content: 'A';
  color: #FF9932;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1em;
  margin-right: 0.5em;
  position: absolute;
  left: 20px;
  top: calc((100% - 1em) / 2);
}

/* sp */
@media screen and (max-width : 767px) {
}

/* --------------------------------お問い合わせ-------------------------------- */
body#contact .main form label::after {
  content: none;
}
body#contact form table tbody tr:nth-child(odd) {
  background-color: #FFFFFF;
}
span.hissu {
  background-color: #4A90E2;
  border-radius: 10px;
  color: #FFF;
  display: inline-block;
  float: right;
  width: auto;
  height: auto;
  font-size: 1.2rem;
  /* font-weight: bold; */
  line-height: 1em;
  margin-top: 3px;
  padding: 3px 10px;
}
input#zip1,
input#zip2 {
  display: inline-block;
  width: 5em;
}
/* sp */
@media screen and (max-width : 767px) {
  body#contact form table td {
    border-bottom: none;
    /* height: 55px; */
    padding: 10px 0 !important;
  }
}

/*-------------オーバーレイ（同意文など）-------------*/
#overlay {
  z-index:200;
  display: -webkit-flex;
	display:flex;
  -webkit-justify-content: center;
  justify-content: center;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background-color:rgba(0,0,0,0.75);
}
#overlay .douibun {
  background-color: #FFFFFF;
  border-radius: 10px;
  margin: 20px;
  padding: 40px;
  max-width: 1000px;
  height: auto;
  overflow: scroll;
}
#overlay .douibun h2 {
  color: #000000;
  text-align: center;
}
#overlay .douibun h3 {
  color: #4A90E2;
  font-size: 2.4rem !important;
  font-weight: bold;
  line-height: 1em;
  margin-top: 30px;
}
#overlay .douibun ul.flex_box {
  -webkit-flex-direction: row-reverse;
  flex-direction: row-reverse;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 0;
}
#overlay .douibun ul.flex_box li {
  /* width: 100%; */
}
#overlay .douibun ul.flex_box li:last-child {
  margin-right: 30px;
}
/* sp */
@media screen and (max-width : 767px) {
  #overlay .douibun {
    background-color: #FFFFFF;
    margin: 20px;
    padding: 20px;
    max-width: calc(100% - 20px);
    height: auto;
    overflow: scroll;
  }
  #overlay .douibun ul.flex_box {
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-justify-content: center;
    justify-content: center;
  }
  #overlay .douibun ul.flex_box li {
    width: 100%;
    margin-bottom: 0;
  }
  #overlay .douibun ul.flex_box li:first-child {
    margin-bottom: 20px;
  }
  #overlay .douibun ul.flex_box li:last-child {
    margin-right: 0;
  }
}


/* --------------------------------下層ページ共通-------------------------------- */
@media all and (-ms-high-contrast: none) {
}
/* 問い合わせバナー */
article.bnr_inq {
  width: 100%;
  height: auto;
  overflow: hidden;
}
article.bnr_inq h2 {
  font-size: 2.1rem;
  line-height: 1em;
  text-align: left;
  margin-bottom: 5px;
}
article.bnr_inq strong.icon_tel {
  background-position: left center;
  background-size: 55px;
  font-size: 4.8rem;
  line-height: 1em;
  padding-left: 60px;
}
article.bnr_inq p {
  margin-top: 5px;
}
article.bnr_inq .half {
  width: 50% !important;
  -ms-flex-item-align: stretch;
  -ms-grid-row-align: stretch;
  align-self: stretch;
}
article.bnr_inq .half:first-child {
  padding: 20px;
}
article.bnr_inq .half img {
  display: block;
  height: 110%;
  width: auto;
  overflow: hidden;
}
article.bnr_inq div {
  line-height: inherit !important;
}
/* tab */
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
  article.bnr_inq strong.icon_tel {
    background-position: left center;
    background-size: 45px;
    font-size: 4rem;
    line-height: 1em;
    padding-left: 50px;
  }
}
/* sp */
@media screen and (max-width : 767px) {
  /* 問い合わせバナー */
  article.bnr_inq {
    width: 100%;
    height: auto;
    overflow: hidden;
  }
  article.bnr_inq h2 {
    font-size: 2.1rem;
  }
  article.bnr_inq strong.icon_tel {
    background-position: left center;
    background-size: 32px;
    font-size: 3rem;
    line-height: 1em;
    padding-left: 35px;
  }
  article.bnr_inq p {
    margin-top: 5px;
  }
  article.bnr_inq .half {
    width: 100% !important;
  }
  article.bnr_inq .half:first-child {
    padding: 10px;
  }
  article.bnr_inq .half img {
    display: block;
    height: auto;
    width: 100%;
    overflow: hidden;
  }
  article.bnr_inq div {
    line-height: inherit !important;
  }
}


/* --------------------------------フッター-------------------------------- */
footer {
  background-color: #4A4A4A;
  color: #FFF;
  display: block;
  width: 100%;
  padding: 20px;
  position: relative;
}
footer p#pagetop {
  margin: 0;
}
footer p#pagetop a {
  background-image: url(../images/icon_dropwater.svg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  color: #FFFFFF;
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1em;
  text-align: center;
  -webkit-filter:drop-shadow(1px 3px 5px rgba(0, 0, 0, 0.5));
  -moz-filter:drop-shadow(1px 3px 5px rgba(0, 0, 0, 0.5));
  -ms-filter:drop-shadow(1px 3px 5px rgba(0, 0, 0, 0.5));
  filter:drop-shadow(1px 3px 5px rgba(0, 0, 0, 0.5));
  display: block;
  opacity: .7;
  width: 50px;
  height: 71px;
  padding-top: 25px;
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 3;
}
footer p#pagetop a:hover,
footer p#pagetop a:active {
  opacity: 1;
}
footer address {
  font-size: 1.4rem;
  font-style: normal;
  line-height: 1em;
}
footer .info {
  /* width: 100%; */
}
footer .info h2 {
  color: #FFF !important;
}
footer .info h2 div,
footer .info h2 span {
  color: #FFF !important;
  font-weight: normal;
  line-height: 1em;
  margin-top: 5px;
}
footer .info #logomark {
  height: 60px;
  width: 272px;
  display: block;
  overflow: hidden;
}
footer #contactinfo {
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  height: 118px;/*56px*/
  width: auto;
  margin-top: 10px;
}
footer .numbers {
  background-color: #4A90E2;
  border: 1px solid#FFFFFF;
  border-radius: 4px;
  color: #FFFFFF !important;
  display: inline-block;
  width: 240px;/*170px*/
  height: 66px;/*56px*/
  margin-right: 10px;
  padding: 5px;
  text-align: center;
}
footer .numbers span {
  height: 1.2em;
}
footer .numbers span a[href^=tel] {
  color: #FFFFFF !important;
  /* background: url(../images/icon_tel_white.svg) 0 center no-repeat; */
  background: url(../images/icon_phone_white.svg) 0 center no-repeat;
  /* background-size: 27px; */
  display: -webkit-inline-flex;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 2.4rem;
  line-height: 1em;
  padding-left: 17px;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}
footer .numbers time {
  color: #FFF !important;
  font-size: 1.2rem !important;
  line-height: 1.2em;
  display: block;
  width: 100%;
  height: auto;
}
footer a.line {
  display: inline-block;
  height: 56px;
  width: 56px;
}
footer a#bnr_linkup {
  display: block;
  margin-top: 10px;
}
footer .links {
  /* width: calc(100% - 30%); */
}
footer nav[role=navigation] {
  width: 100%;
}
footer nav[role=navigation] ul {
  -webkit-box-pack: justify;
     -ms-flex-pack: justify;
   justify-content: space-between;
  list-style: none;
}
footer nav[role=navigation] ul li {
  line-height: 1em;
  white-space: nowrap;
  width: calc((100% - 40px) / 5);
  margin-bottom: 20px;
}
footer nav[role=navigation] ul li a {
  font-weight: bold !important;
}
footer nav[role=navigation] ul li ul li {
  margin-bottom: 0;
}
footer nav[role=navigation] ul li ul li a {
  background: url(../images/arrow_white.svg) 0 center no-repeat;
  background-size: 7px;
  font-weight: normal !important;
  padding-left: 10px;
}
footer nav[role=navigation] ul li a {
  color: #FFFFFF;
  font-size: 1.4rem;
  line-height: 1.4rem;
}
footer #maker ul.flex_box {
  width: 100%;
}
footer #maker ul li {
  color: #FFFFFF;
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1.4rem;
}
footer #maker ul li ul.flex_box {
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  width: 100%;
}
footer #maker ul li ul.flex_box li {
  display: block;
  margin: 5px 10px 0 0;
  width: calc((100% - 40px) / 5);
  height: auto;
}
footer #maker ul li ul.flex_box li:last-child {
  margin: 5px 0 0 0;
}
footer #maker ul li ul.flex_box li a img {
  display: block;
  width: 100%;
  height: auto;
}
footer #copyright {
  border-top: 1px solid #979797;
  margin-top: 20px;
}
footer #copyright,
footer #copyright span {
  color: #C8C8C8;
  font-size: 1.2rem;
  line-height: 1em;
  text-align: center;
  padding: 20px 0 0 0;
  width: 100%;
}
footer #copyright span {
  padding: 0;
}
/* tab */
@media screen and (min-width : 768px) and (max-width : 1024px), print  {
  footer .flex_box {
    -webkit-flex-wrap: nowrap;
    flex-wrap: nowrap;
  }
  footer address {
    font-size: 1.2rem;
    font-style: normal;
    line-height: 1em;
  }
  footer .info {
    /* width: 100%; */
  }
  footer .info h2 {
    color: #FFF !important;
  }
  footer .info h2 div,
  footer .info h2 span {
    color: #FFF !important;
    font-size: 1.2rem;
    font-weight: normal;
    line-height: 1em;
    margin-top: 5px;
  }
  footer .info #logomark {
    height: auto;
    width: 100%;
    display: block;
    overflow: hidden;
  }
  footer #contactinfo {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    height: 118px;/*56px*/
    width: auto;
    margin-top: 10px;
  }
  footer .numbers {
    background-color: #4A90E2;
    border: 1px solid#FFFFFF;
    border-radius: 4px;
    color: #FFFFFF !important;
    display: inline-block;
    width: 230px;/*170px*/
    height: 55px;/*45px*/
    margin-right: 5px;
    padding: 5px;
    text-align: center;
  }
  footer .numbers span {
    height: 1.2em;
  }
  footer .numbers span a[href^=tel] {
    color: #FFFFFF !important;
    background: url(../images/icon_tel_white.svg) 0 center no-repeat;
    background-size: 20px;
    display: -webkit-inline-flex;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    font-size: 2rem;
    line-height: 1em;
    padding-left: 25px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
  }
  footer .numbers time {
    color: #FFF !important;
    font-size: 1.1rem !important;
    line-height: 1.2em;
    display: block;
    width: 100%;
    height: auto;
  }
  footer a.line {
    display: inline-block;
    height: 45px;
    width: 45px;
  }
  footer a.line img {
    width: 100%;
    height: auto;
  }
  footer a#bnr_linkup {
    display: block;
    margin-top: 0;
    width: 100%;
    height: auto;
  }
  footer a#bnr_linkup img {
    width: 100%;
    height: auto;
  }
  footer .links {
    /* width: calc(100% - 30%); */
  }
  footer nav[role=navigation] {
    width: 100%;
  }
  footer nav[role=navigation] ul.flex_box {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
       -ms-flex-pack: justify;
     justify-content: space-between;
    list-style: none;
  }
  footer nav[role=navigation] ul li {
    line-height: 1em;
    white-space: nowrap;
    width: calc((100% - 20px) / 4);
    margin-bottom: 20px;
  }
  footer nav[role=navigation] ul li a {
    font-weight: bold !important;
  }
  footer nav[role=navigation] ul li ul li {
    margin-bottom: 0;
  }
  footer nav[role=navigation] ul li ul li a {
    background: url(../images/arrow_white.svg) 0 center no-repeat;
    background-size: 7px;
    font-weight: normal !important;
    padding-left: 10px;
  }
  footer nav[role=navigation] ul li a {
    color: #FFFFFF;
    font-size: 1.4rem;
    line-height: 1.4rem;
  }
  footer #maker ul li {
    color: #FFFFFF;
    font-size: 1.4rem;
    font-weight: bold;
    line-height: 1.4rem;
  }
  footer #maker ul li ul.flex_box {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  footer #maker ul li ul li {
    width: calc(100% / 5);
    height: auto;
  }
  footer #maker ul li ul li a {
    display: block;
    margin: 5px 10px 0 0;
  }
  footer #maker ul li ul li a img {
    width: 100%;
    height: auto;
  }
  footer #copyright {
    border-top: 1px solid #979797;
    margin-top: 20px;
  }
  footer #copyright,
  footer #copyright span {
    color: #C8C8C8;
    font-size: 1.2rem;
    line-height: 1em;
    text-align: center;
    padding: 20px 0 0 0;
    width: 100%;
  }
  footer #copyright span {
    padding: 0;
  }
}
/* sp */
@media screen and (max-width : 767px) {
  footer {
    /* background-color: #4A90E2;
    color: #FFF; */
    display: block;
    width: 100%;
    position: relative;
  }
  footer p#pagetop {
    margin: 0;
  }
  footer p#pagetop a {
  }
  footer p#pagetop a:hover,
  footer p#pagetop a:active {
  }
  footer address {
    font-size: 1.4rem;
    font-style: normal;
    line-height: 1em;
  }
  footer .inner {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    margin: 0 auto 40px auto;
  }
  footer .info {
    width: 100%;
  }
  footer .info h2 {
    color: #FFF !important;
    display: -webkit-flex;
    display: flex;
    font-size: 1.6rem;
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    align-items: center;
  }
  footer .info h2 div,
  footer .info h2 span {
    color: #FFF !important;
    font-size: 1.4rem;
    font-weight: normal;
    line-height: 1em;
    margin-top: 5px;
  }
  footer .info #logomark {
    height: auto;
    width: 100%;
  }
  footer #contactinfo {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-flex-direction: inherit;
    flex-direction: inherit;
    height: 56px;
    width: auto;
    margin-top: 10px;
  }
  footer .numbers {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    color: #FFF !important;
    font-size: 1.2rem;
    height: auto;
  }
  footer .numbers span a[href^=tel] {
    color: #FFFFFF;
    font-size: 2.8rem;
    font-weight: bold;
    text-decoration: none;
  }
  footer .numbers span {
    color: #FFF !important;
  }
  footer a.line,
  footer a.line img {
    display: inline-block;
    height: 47px;
    width: 47px;
  }
  footer a#bnr_linkup {
    display: block;
    margin-top: 10px;
    text-align: center;
  }
  footer .links {
    width: 100%;
  }
  footer nav[role=navigation] {
    margin-bottom: 10px;
  }
  footer nav[role=navigation] ul {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-box-pack: space-between;
    -ms-flex-pack: space-between;
    justify-content: space-between;
    list-style: none;
    width: 100%;
  }
  footer nav[role=navigation] ul li {
    line-height: 1em;
    white-space: nowrap;
    width: calc(100% / 2);
    margin-bottom: 0 !important;
  }
  footer nav[role=navigation] ul li a {
    display: block;
    background-color: #666666;
    border: 1px solid #4A4A4A;
    color: #FFFFFF;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.4em;
    text-align: center;
    padding: 5px;
    width: 100%;
    height: auto;
  }
  footer #maker ul li {
    color: #FFFFFF;
    font-size: inherit;
    font-weight: bold;
    line-height: 1.4rem;
  }
  footer #maker ul li ul.flex_box {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  footer #maker ul li ul li a {
    display: block;
    margin: 0;
  }
  ul.flex_box,
  ul.flex_box li ul.flex_box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-box-pack: space-between;
    -ms-flex-pack: space-between;
    justify-content: space-between;
    margin: 0 !important;
  }
  ul.flex_box li ul.flex_box {
    padding-top: 5px;
  }
  ul.flex_box li ul.flex_box li {
    width: calc((100% - 5px) / 2);
    height: auto;
    margin-bottom: 0;
  }
  ul.flex_box li ul.flex_box li a img {
    width: 100%;
    height: auto;
  }
  footer #copyright,
  footer #copyright span {
    color: #FFF;
    font-size: 1.4rem;
    line-height: 1em;
    text-align: center;
    padding: 10px 10px 0 10px;
    width: 100%;
  }
  footer #copyright span {
    padding: 0;
  }
}
