@charset "UTF-8";

/*top*/
/* 固定メニュー
---------------------------------------------------- */
#navibar {
  width: 100%;
  /* height: 99px; */
  z-index: 100;
}

.cb-header {
  position: fixed;
  /* 固定 */
  top: 0;
  /* 上から0の位置に固定 */
  left: 0;
  /* 左から0の位置に固定 */
  /* display: none; */
}

.sc {
  width: 100%;
  margin: 0 auto;
}

/* main
---------------------------------------------------- */
main {
  padding-bottom: 60px;
  margin-top: 80px;
}

@media (min-width: 768px),
print {
  main {
    margin-top: 90px;
    padding-bottom: 70px;
  }
}

@media (min-width: 1200px),
print {
  main {
    padding-bottom: 30px;
  }
}

.main_logo {
  position: absolute;
  opacity: 0.1;
}

.main_clipt {
  height: 650px;
}

.main_clipt img {
  height: 100%;
}

@media (min-width: 576px),
print {
  .main_logo {
    position: relative;
    opacity: 1;
  }

  .main_clipt {
    height: 100%;
  }

  .main_clipt img {
    height: auto;
  }
}

.main_clipt {
  position: absolute;
  top: -50px;
  left: -10px;
}

.main_web {
  position: absolute;
  left: -10px;
  top: 330px;
  width: 150px;
}

main .catch {
  margin-bottom: 50px;
  font-size: clamp(18px, 6vw, 48px);
  font-weight: 900;
  font-family: 'Noto Sans JP', sans-serif;
  text-align: center;
  line-height: 1.5;
}

main .catch .catch_red {
  font-size: clamp(24px, 8vw, 64px);
  color: #cd1e1e;
}

main .catch .br-catch {
  display: none;
}

@media (min-width: 440px),
print {
  main .catch {
    font-size: calc(48px * 0.55);
  }

  main .catch .catch_red {
    font-size: calc(64px * 0.55);
  }
}

@media (min-width: 576px),
print {

  .main_clipt {
    top: -25px;
    left: -40px;
    right: 40px;
  }

  main .catch {
    margin: 0 0 50px;
    letter-spacing: 0.05em;
    text-align: left;
  }

  main .catch .br-catch {
    display: none;
  }

  .main_web {
    top: 220px;
    width: 80px;
  }
}

@media (min-width: 768px),
print {

  .main_web {
    top: 310px;
    width: 200px;
    left: -20px;
  }

  main .catch {
    margin: 30px 0 60px;
    font-size: calc(48px * 0.8);
    letter-spacing: 0.02em;
  }

  main .catch .catch_red {
    font-size: calc(64px * 0.8);
  }
}

@media (min-width: 992px),
print {
  .main_clipt {
    top: -10px;
    left: 0;
    bottom: 0;
  }

  .main_web {
    top: 540px;
    width: 337px;
    right: 15px;
  }
}

@media (min-width: 1200px),
print {
  main .catch {
    font-size: 48px;
    letter-spacing: 0.05em;
  }

  main .catch .catch_red {
    font-size: 64px;
  }
}

.main_item01 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  background: #d60011;
  position: relative;
  width: 1600px;
  padding: 30px 0 30px 20px;
  color: #fff;
  line-height: 24px;
  margin-left: 20vw;
  margin-bottom: 20px;
}

.main_item01::before {
  content: "";
  position: absolute;
  left: -30px;
  top: 0;
  bottom: 0;
  width: 30px;
  height: auto;
  border-style: none;
  background: #d60011;
  clip-path: polygon(100% 0, 100% 100%, 0 50%);
}

.main_item01 h3 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
  letter-spacing: 0.2em;
  text-align: left;
}

.main_item01 img {
  position: absolute;
  top: 5px;
  left: calc(80vw - 60px);
  width: 50px;
  z-index: 1;
}

.w720 {
  width: 310px;
  align-items: center;
}

.main_item01 .contbox {
  font-size: 13px;
  line-height: 1.7em;
}

@media (min-width: 576px),
print {

  .main_item01 {
    margin-left: 35px;
    padding: 30px 0 30px 30px;
  }

  .main_item01 img {
    top: auto;
    bottom: 30px;
    left: 270px;
    width: 100px;
  }
}

@media (min-width: 768px),
print {
  .main_item01 {
    padding: 30px 0 30px 40px;
    margin-left: 80px;
  }

  .main_item01 h3 {
    font-size: 30px;
    letter-spacing: .2em;
  }

  .main_item01 img {
    top: auto;
    bottom: 140px;
    left: 300px;
    width: 65px;
  }

  .w720 {
    width: 610px;
    position: relative;
    z-index: 10;
  }

  .main_item01 .contbox {
    font-size: 14px;
    line-height: 1.9em;
  }
}

@media (min-width: 992px),
print {
  .main_item01 {
    padding: 30px 0 30px 25px;
    margin-left: 0;
  }

  .main_item01 h3 {
    font-size: 32px;
    letter-spacing: .1em;
    margin-bottom: 0;
    text-align: center;
  }

  .main_item01 img {
    top: auto;
    bottom: 100px;
    left: 160px;
    width: 50px;
  }
}

@media (min-width: 1200px),
print {
  .main_item01 {
    padding: 30px 0 30px 40px;
  }

  .main_item01 h3 {
    font-size: 36px;
    letter-spacing: 0.2em;
  }

  .main_item01 img {
    top: auto;
    bottom: 8px;
    left: 230px;
    width: 150px;
  }

  .w720 {
    width: 720px;
  }
}

.mv_top {
  padding-top: 120px;
  position: relative;
}

.mv_top::after {
  content: "";
  width: 1px;
  height: 0;
  background: #222;
  position: absolute;
  top: 0;
  right: 0;
  animation: tate 1s 0s cubic-bezier(0.73, 0.02, 0.27, 1.01) forwards;
}

@keyframes tate {
  0% {
    height: 0;
  }

  100% {
    height: 100%;
  }
}

.mv_bottom {
  padding-bottom: 80px;
  position: relative;
}

.mv_bottom::after {
  content: "";
  width: 1px;
  height: 0;
  background: #222;
  position: absolute;
  top: 0;
  left: 0;
  animation: tate 1s 1.5s ease-out forwards;
}

.mv .clipt img {
  width: 200px;
  opacity: 0;
  transform: translateX(30px);
  animation: fade2 0.8s 0.5s forwards;
}

@keyframes fade2 {
  0% {
    opacity: 0;
    transform: translateX(30px);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.mv .houjin {
  position: relative;
  z-index: 0;
  color: #fff;
  font-size: 22px;
  letter-spacing: 0.06em;
  margin-top: 15px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  height: 40px;
  line-height: 40px;
}

.mv .houjin::after {
  content: "";
  height: 100%;
  background: #222;
  width: 0;
  position: absolute;
  z-index: -1;
  right: 0;
  top: 0;
  animation: left 1s ease-in forwards;
}

@keyframes left {
  0% {
    width: 0;
  }

  100% {
    width: 100vw;
  }
}

.mv .catch {
  font-size: 55px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: 0px auto;
  display: block;
  width: fit-content;
  font-feature-settings: "palt";
  position: relative;
}

.mv .catch::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  height: 100%;
  background: #fff;
  animation: ttl 1s ease-in-out 1s forwards;
}

@keyframes ttl {
  0% {
    height: 100%;
  }

  100% {
    height: 0;
  }
}

.mv .mv_center {
  position: relative;
  padding: 65px 0;
}

.mv .mv_center::after {
  content: "";
  width: 1px;
  height: 0;
  background: #222;
  position: absolute;
  top: 0;
  right: 0;
  animation: tate 1.5s 1s ease-out forwards;
}

.mv .mv_center::before {
  content: "";
  width: 1px;
  height: 0;
  background: #222;
  position: absolute;
  top: 0;
  left: 0;
  animation: tate 1.5s 0s ease-in forwards;
}

.mv .mv_center .en {
  position: absolute;
  left: -20px;
  top: 50%;
  transform: translate(-100%, -50%);
  height: fit-content;
  font-family: 'Sulphur Point', sans-serif;
  font-weight: bold;
  font-size: 18px;
  color: #cccccc;
  letter-spacing: 0.2em;
  writing-mode: vertical-rl;
  line-height: 1.2;
}

.mv .mv_center .dog {
  position: absolute;
  right: 0;
  bottom: 20px;
  opacity: 0;
  transform: translateX(100%);
  max-width: 209px;
  animation: dog 1s 1s forwards;
}

@keyframes dog {
  0% {
    bottom: 20px;
    opacity: 0;
  }

  100% {
    bottom: 0;
    opacity: 1;
  }
}

.mv .catch .red {
  color: #d60011;
}

.mv .catch .kana {
  font-size: 50px;
}

.mv .line {
  display: block;
  background: #222;
  height: 40px;
  width: 0;
  animation: left 3s cubic-bezier(0.73, 0.02, 0.27, 1.01) forwards;
}

.mv .madein {
  text-align: right;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: 45px;
  font-style: italic;
  margin-top: 15px;
  transform: translateX(-30px);
  opacity: 0;
  animation: fade 0.8s 1s forwards;
}

@keyframes fade {
  0% {
    transform: translateX(-30px);
    opacity: 0;
  }

  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

.mv .madein .red {
  color: #d60011;
}

@media screen and (max-width:1550px) {
  .mv .mv_center .dog {
    max-width: 120px;
  }
}

@media screen and (max-width:1199px) {
  .mv .catch {
    font-size: 45px;
  }

  .mv .catch .kana {
    font-size: 40px;
  }
}

@media screen and (max-width:991px) {
  .mv .catch {
    font-size: 35px;
  }

  .mv .catch .kana {
    font-size: 30px;
  }
}

@media screen and (max-width:767px) {
  .mv .catch {
    font-size: 28px;
  }

  .mv .catch .kana {
    font-size: 20px;
  }

  .mv .clipt img {
    width: 150px;
  }

  .mv .houjin {
    font-size: 18px;
  }

  .mv .madein {
    font-size: 35px;
  }

  .mv .mv_center .dog {
    max-width: 90px;
  }
}

@media screen and (max-width:574px) {
  .mv .mv_center .dog {
    display: none;
  }

  .mv .mv_center .en {
    display: none;
  }

  .mv .catch {
    font-size: 32px;
  }

  .mv .catch .kana {
    font-size: 25px;
  }

  .mv .mv_center {
    padding: 30px 0;
  }
}

.main_item02 a {
  background: #fb9144;
  font-family: 'Noto Sans JP', sans-serif;
  text-align: center;
  height: 140px;
  width: 140px;
  border-radius: 50%;
  padding: 22px 0;
  display: inline-block;
  z-index: 10;
  position: absolute;
  top: 500px;
  right: 15px;
}

.main_item02 img {
  width: 80px;
}

.main_item02 h4 {
  font-size: 28px;
  font-weight: bold;
  color: #fff;
  letter-spacing: -0.05em;
  margin: 10px 0 15px;
}

.main_item02 small {
  font-weight: 24px;
  font-weight: bold;
}

.item02_arrow {
  line-height: 1;
  color: #fff;
}

@media (min-width: 768px),
print {
  .main_item02 a {
    height: 167px;
    width: 167px;
    top: 400px;
    right: 0;
  }

  .main_item02 img {
    width: auto;
  }

  .main_item02 h4 {
    font-size: 32px;
    margin: 18px 0 15px;
  }
}

@media (min-width: 992px),
print {
  .main_item02 a {
    top: 330px;
  }
}

@media (min-width: 1200px),
print {
  .main_item02 a {
    top: 390px;
  }
}

.main_item02 a {
  transition: 0.25s;
}

.main_item02 a:hover,
.main_item02 a:focus {
  border-color: var(--hover);
  color: #fff;
  background: #fb7c44;
}

.main_item03 {
  font-family: 'Noto Sans JP', sans-serif;
  margin: 30px 0 30px;
  font-size: 14px;
}

@media (min-width: 768px),
print {
  .main_item03 {
    margin: 20px 0 30px 20px;
  }
}

.main_item04 {
  border: 3px solid #a4000d;
  text-align: center;
  margin-bottom: 20px;
}

.main_item04 a {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  color: #333;
}

.main_item04 .area01 {
  border-bottom: 2px solid #a4000d;
  padding: 10px 0;
  letter-spacing: 0.15em;
  font-size: 15px;
  font-weight: bold;
  text-align: center;
}

.main_item04 .area01::before {
  content: '';
  position: absolute;
  left: 15px;
  top: 33px;
  display: inline-block;
  width: 15px;
  /*線の長さ*/
  height: 1px;
  background-color: #a4000d;
  /*線の色*/
}

.main_item04 .area01::after {
  content: '';
  position: absolute;
  right: 15px;
  top: 33px;
  display: inline-block;
  width: 15px;
  /*線の長さ*/
  height: 1px;
  background-color: #a4000d;
  /*線の色*/
}

.main_item04 .area01 span {
  display: inline-block;
  text-align: left;
}

.main_item04 .area01 span i {
  color: #d60011;
  margin-right: 3px;
}

.main_item04 .area02 {
  font-size: 15px;
  color: #d60011;
  padding: 5px 10px;
}

.main_item04 .area03 {
  background: #a4000d;
  color: #fff;
  font-size: 18px;
  padding: 10px 5px 10px 10px;
}

@media (min-width: 768px),
print {
  .main_item04 {
    margin-bottom: 0;
  }

  .main_item04 .area01 {
    padding: 12px 0;
    letter-spacing: 0.2em;
    font-size: 16px;
  }

  .main_item04 .area01::before {
    left: 15px;
    top: 68px;
    width: 15px;
    /*線の長さ*/
  }

  .main_item04 .area01::after {
    right: 15px;
    top: 68px;
    width: 15px;
    /*線の長さ*/
  }

  .main_item04 .area02 {
    font-size: 18px;
    padding: 20px 10px;
  }

  .main_item04 .area03 {
    font-size: 16px;
    padding: 16px 5px 16px 10px;
  }
}

@media (min-width: 992px),
print {
  .main_item04 .area01 {
    padding: 12px 0;
  }

  .main_item04 .area01::before {
    top: 72px;
  }

  .main_item04 .area01::after {
    top: 72px;
  }

  .main_item04 .area02 {
    padding: 10px;
    font-size: 24px;
  }

  .main_item04 .area03 {
    padding: 16px 5px 16px 10px;
    font-size: 20px;
  }
}

@media (min-width: 1200px),
print {
  .main_item04 .area01::before {
    width: 30px;
    /*線の長さ*/
  }

  .main_item04 .area01::after {
    width: 30px;
    /*線の長さ*/
  }

  .main_item04 .area02 {
    padding: 10px;
  }

  .main_item04 .area03 {
    padding: 20px 5px 20px 10px;
  }
}

.main_item05>img {
  border: 1px solid #888;
  margin-right: 5px;
  width: 104px;
  float: left;
  display: inline-block;
}

.main_item05 .txt01 {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  line-height: 1.5em;
  margin-bottom: 5px;
}

.main_item05 .txt02 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  line-height: 1.5em;
}

.main_item05 h6 {
  padding: 15px 0 10px;
  border-top: 1px dashed #888;
}

/* index
---------------------------------------------------- */
.idx_ttl {
  font-family: 'Sulphur Point', sans-serif;
  font-weight: bold;
  font-size: 40px;
}

.idx_ttl_sub {
  font-family: 'Sulphur Point', 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: #d60011;
}

/* news
---------------------------------------------------- */

#whatsnew {
  margin-top: 60px;
  margin-bottom: 60px;
}

@media (min-width: 768px),
print {
  #whatsnew {
    margin-top: 90px;
    margin-bottom: 90px;
  }
}

.news_table {
  width: 100%;
  margin-bottom: 10px;
  font-size: 14px;
}

.news_table th {
  width: 50%;
  padding: 20px 15px 5px;
  line-height: 140%;
  display: inline-block;
  color: #555;
  font-weight: 400;
}

.news_table td {
  padding: 5px 15px 20px;
  line-height: 1.7em;
  display: block;
  color: #222;
  text-align: justify;
}

.news_table td+td {
  border-bottom: dashed 1px #888;
}

.news_table>tr>th {
  border-top: dashed 1px #888;
}

.news_table th+td {
  width: 50%;
  padding: 20px 15px 5px;
  display: inline-block;
  text-align: right;
}

@media (min-width: 768px),
print {
  .news_table table {
    width: 100%;
    display: table;
  }

  .news_table th {
    width: 11%;
    padding: 20px 0 20px 20px;
    border-top: dashed 1px #888;
    border-bottom: dashed 1px #888;
    line-height: 140%;
    display: table-cell;
    vertical-align: top;
  }

  .news_table td {
    padding: 20px;
    border-top: dashed 1px #888;
    border-bottom: dashed 1px #888;
    display: table-cell;
    vertical-align: top;
    text-align: left;
  }

  .news_table th+td {
    padding: 20px;
    width: auto;
    display: table-cell;
  }

  .news_table .new {
    width: 11%;
  }
}

.new {
  color: #2458a5;
  text-align: center;
  font-size: 12px;
  background: #fff;
  border: solid 1px #2458a5;
  font-size: 12px;
  margin: 0 0 0 20px;
  padding: 2px 10px;
  line-height: 1em;
}

.news_table tr>th {
  font-family: 'Sulphur Point', sans-serif;
  font-size: 14px;
  color: #888;
}

.news_table tr>th+td {
  font-family: 'Sulphur Point', sans-serif;
  font-weight: bold;
  font-size: 14px;
  color: #d60011;
}

/* feature
---------------------------------------------------- */
.bg_grid_top {
  /* background: url(../images/common/bg_grid.jpg); */
  padding-bottom: 60px;
}

@media (min-width: 678px),
print {
  .bg_grid_top {
    padding-bottom: 100px;
  }
}

@media (min-width: 992px),
print {
  .bg_grid_top {
    /* background: url(../images/top/bg_grid_top.jpg);
    background-position: 50% 0;
    background-repeat: no-repeat; */
  }

}

#feature {
  margin-top: -60px;
  padding-top: 60px;
}

.feature_ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 24px;
  font-weight: bold;
  margin: 0 3px;
  display: inline-block;
}

.feature_ttl02 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 32px;
  font-weight: bold;
  color: #d60011;
}

.feature_ttl02 .big {
  font-size: 44px;
}

@media (min-width: 768px),
print {
  .feature_ttl {
    font-size: 31px;
    margin: 0 3px;
  }

  .feature_ttl02 {
    font-size: 53px;
  }

  .feature_ttl02 .big {
    font-size: 66px;
  }
}

#feature .contbox {
  background: #fff;
  border: 1px solid #eee;
  padding: 30px;
  /* height: 390px; */
}

#feature .itemttl {
  position: relative;
  margin-left: 90px;
  margin-bottom: 20px;
  padding-top: 110px;
}

#feature .itemttl .ttlnum {
  position: absolute;
  left: -90px;
  font-family: 'Sulphur Point', sans-serif;
  font-size: 62px;
  font-weight: bold;
  color: #d60011;
  line-height: 0.8;
}

#feature .itemttl .ttltxt {
  position: relative;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: bold;
  color: #333;
  letter-spacing: 0.1em;
}

#feature .contbox .itemtxt {
  font-size: 14px;
  color: #333;
  /* padding-bottom: 50px; */
}

@media (min-width: 576px),
print {
  #feature .itemttl {
    padding-top: 150px;
  }
}

@media (min-width: 768px),
print {
  #feature .contbox {
    padding: 50px;
  }

  #feature .itemttl {
    padding-top: 160px;
  }
}

#feature .contbox img {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}

#feature .contbox img {
  top: 30px;
  width: 25%;
}

#feature .contbox .img03 {
  top: 12px;
}

@media (min-width: 768px),
print {
  #feature .contbox img {
    top: 56px;
    width: 160px;
  }

  #feature .contbox .img03 {
    top: 27px;
  }
}

#feature .contbox::after {
  content: "";
  position: absolute;
  right: 30px;
  bottom: 10px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent #888 transparent;
  transition: .2s;
}

#feature .contbox::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 138px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 25px 3px;
  border-color: #d60011;
}

@media (min-width: 576px),
print {
  #feature .contbox::before {
    top: 178px;
  }
}

@media (min-width: 768px),
print {
  #feature .contbox::before {
    top: 210px;
  }
}

@media (min-width: 992px),
print {
  #feature a:hover .contbox {
    box-shadow: 0px 0px 20px -6px #888;
    transition: .2s;
  }

  #feature a:hover .contbox::after {
    border-color: transparent transparent #fb9144 transparent;
    transition: .2s;
  }
}

/* contact02
---------------------------------------------------- */
#contact02 {
  background-image: url(../images/top/contact02_bg_new.svg);
  background-size: cover;
  background-position: center center;
  background-color: #1a1a2e;
}

.contact02_ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  text-align: center;
  display: inline-block;
  letter-spacing: 0.2em;
  line-height: 1.7em;
  margin-bottom: 20px;
}

#contact02 .contbox {
  background: rgba(255, 255, 255, 0.9);
  padding: 30px;
  text-align: center;
  margin: 60px auto;
}

#contact02 .contbox .tel {
  font-size: 14px;
  border: 1px solid #222;
  width: 100%;
  padding: 20px 15px;
  margin: 0 auto 20px;
}

#contact02 .contbox .tel .num {
  font-family: 'Sulphur Point', sans-serif;
  font-size: 28px;
  font-weight: bold;
  line-height: 1;
}

#contact02 .contbox .tel i {
  font-size: 20px;
  margin-right: 10px;
}

#contact02 .contbox .btn02 a {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  border: 1px solid #222;
  background: #222;
  width: 100%;
  color: #fff;
  display: block;
  transition: 0.2s;
  padding: 20px;
  margin: 0 auto;
}

#contact02 .contbox .mail i {
  margin-right: 10px;
}

#contact02 .contbox .btn02 a::after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f105";
  position: relative;
  left: 20px;
  margin-top: -10px;
  font-size: 14px;
}

@media (min-width: 768px),
print {
  .contact02_ttl {
    line-height: 1.7em;
    margin-bottom: 40px;
  }

  #contact02 .contbox {
    padding: 60px;
  }

  #contact02 .contbox .tel {
    width: 80%;
    margin: 0 auto 20px;
  }

  #contact02 .contbox .tel .num {
    font-size: 42px;
  }

  #contact02 .contbox .tel i {
    font-size: 26px;
  }

  #contact02 .contbox .btn02 a {
    font-size: 18px;
    width: 80%;
  }

  #contact02 .contbox>img {
    height: 90px;
  }
}

@media (min-width: 992px),
print {
  .contact02_ttl {
    font-size: 24px;
    line-height: 40px;
  }

  #contact02 .contbox .tel {
    width: 310px;
    height: 120px;
    padding-top: 20px;
    display: inline-block;
  }

  #contact02 .contbox .btn02 a {
    width: 310px;
    height: 120px;
    padding: 45px 0;
    display: inline-block;
  }

  #contact02 .contbox .btn02 a:hover {
    background: #d60011;
    border: 1px solid #d60011;
    transition: 0.2s;
  }

  #contact02 .contbox>img {
    height: auto;
  }
}

@media (min-width: 1200px),
print {
  #contact02 .contbox {
    padding: 60px 84px;
  }

  #contact02 .contbox .tel {
    width: 360px;
    height: 106px;
    padding-top: 20px;
  }

  #contact02 .contbox .btn02 a {
    width: 360px;
    height: 106px;
    padding: 38px 0;
  }

  #contact02 .contbox .btn02 a::after {
    left: 30px;
  }
}

@media print {
  #navibar {
    display: none !important;
  }

  .navbar {
    display: block;
  }

  #works .contbox {
    height: auto;
    overflow: visible;
  }
}

/*
homepage
*/


/* 実績紹介
---------------------------------------------------- */
.paging {
  display: block;
  text-align: center;
  margin-bottom: 20px;
}

.paging-text {
  border: 1px solid #d60011;
  display: inline-block;
  margin-bottom: 10px;
  color: #d60011;
}

.paging-text a,
.paging .current {
  color: #333;
  padding: 5px 10px;
  display: inline-block;
}

.paging-text a:hover,
.paging .current {
  color: #d60011;
}

#txt_pg .contbox {
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.7em;
  display: inline-block;
  width: 90%;
}

#hp_works .contbox {
  margin-bottom: 60px;
}

#hp_works figure {
  width: 100%;
}

#hp_works figure img {
  width: 45%;
}

#hp_works figcaption {
  background: rgba(0, 0, 0, .6);
  -webkit-transition: .3s;
  transition: .3s;
  padding: 10px;
  font-size: 14px;
  display: inline-block;
}

#hp_works .thumbnail {
  border: 1px solid #ccc;
  width: 100%;
}

#hp_works .itemdetails {
  width: 100%;
}

#txt_pg {
  margin: 40px 0;
}

@media (min-width: 768px),
print {
  #hp_works figcaption {
    padding: 8px 10px;
  }
}

@media (min-width: 992px),
print {

  #hp_works .thumbnail {
    width: 100%;
  }

  #hp_works figure {
    width: 45%;
    position: relative;
    overflow: hidden;
    margin-bottom: 10px;
    display: inline-block;
  }

  #hp_works figure img {
    width: 100%;
  }

  #hp_works figcaption {
    width: 100%;
    position: absolute;
    bottom: -60px;
    left: 0;
    width: 100%;
    height: 60px;
    padding: 20px 10px;
  }

  #hp_works figcaption a {
    line-height: 1.7em;
    text-decoration: none;
  }

  #hp_works figcaption a:hover {
    color: #fff;
    text-decoration: underline;
  }

  #hp_works figure:hover figcaption {
    bottom: 0;
  }

  #hp_works .itemdetails {
    width: 50%;
    float: right;
  }
}

#hp_works .itemdetails .com_name,
#php_works .itemdetails .com_add {
  text-align: left;
}

/* ポイント01～05
---------------------------------------------------- */
#point .bdd-p0 {
  margin-bottom: 60px;
}

#point .btn02 {
  text-align: center;
}

@media (min-width: 992px),
print {
  #point .btn02 {
    text-align: center;
  }
}

#point .point_img img {
  margin-bottom: 20px;
}

@media (min-width: 992px),
print {
  #point .point_img img {
    margin-bottom: 0;
  }
}

#point .num {
  font-family: 'Sulphur Point', sans-serif;
  font-size: 14px;
  color: #a4000d;
  line-height: 0;
  padding-bottom: 5px;
}

#homepage #point .num {
  display: inline-block;
  margin-bottom: 30px;
  font-size: 20px;
}

#point .num .big {
  font-size: 20px;
  font-weight: bold;
}

#homepage #point .num .big {
  font-size: 36px;
}

#point .point_ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  font-size: 24px;
  line-height: 1.5em;
  border-bottom: 2px solid #333;
  display: inline-block;
}

#point .point_ttl02 {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  font-size: 20px;
  display: inline-block;
}

#point .ttl01 {
  font-size: 18px;
  font-weight: bold;
  margin: 30px 0 20px;
}

#point .ttl02 {
  font-size: 16px;
  margin-bottom: 40px;
  display: inline-block;
  color: #d60011;
  font-weight: bold;
}

#point .ttl03 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  margin-bottom: 20px;
  font-weight: bold;
  /* line-height: 1.7em; */
  border-left: 3px solid #a4000d;
  padding-left: 10px;
}

@media (min-width: 768px),
print {
  #point .point_ttl {
    font-size: 28px;
  }

  #point .point_ttl02 {
    font-size: 28px;
  }

  #point .ttl03 {
    font-size: 20px;
  }
}

.check {
  background: #d60011;
  padding: 5px 10px;
  color: #fff;
  position: relative;
  font-weight: bold;
  margin-right: 30px;
  margin-bottom: 10px;
  display: inline-block;
  font-size: 16px;
}

.check::after {
  content: "";
  position: absolute;
  right: -16px;
  bottom: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 17px 0 17px 16px;
  border-color: transparent transparent transparent #d60011;
}

#campaign .check::after {
  content: "";
  position: absolute;
  right: -16px;
  bottom: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 29px 0 29px 16px;
  border-color: transparent transparent transparent #d60011;
}

#point .txt {
  font-size: 14px;
}

.num_list li {
  list-style: decimal;
  margin-left: 20px;
}

@media (min-width: 768px),
print {
  #campaign .check::after {
    border-width: 17px 0 17px 16px;
  }

  .check {
    margin-bottom: 0;
  }
}

.flow01 {
  background: #f6e5e6;
  position: relative;
}

.flow02 {
  background: #edcccf;
  position: relative;
}

.flow03 {
  background: #e4b2b6;
  position: relative;
}

.flow04 {
  background: #db999e;
  position: relative;
}

.flow05 {
  background: #b61515;
  position: relative;
  color: #fff;
}

.flow01::after,
.flow02::after,
.flow03::after,
.flow04::after,
.flow05::after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border-style: solid;
  z-index: 1;
  top: 18px;
  left: auto;
  right: -20px;
  border-width: 46px 0 46px 20px;
}

.flow ul li {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  width: 18%;
  font-size: 16px;
  text-align: center;
  padding: 20px 10px;
  display: inline-block;
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: lr-tb;
  writing-mode: vertical-lr;
}

#homepage .flow ul li {
  padding: 20px;
}

.flow01::after,
.flow02::after,
.flow03::after,
.flow04::after,
.flow05::after {
  top: 18px;
  left: auto;
  right: -10px;
  border-width: 46px 0 46px 10px;
}

.flow01::after {
  border-color: transparent transparent transparent #f6e5e6;
}

.flow02::after {
  border-color: transparent transparent transparent #edcccf;
}

.flow03::after {
  border-color: transparent transparent transparent #e4b2b6;
}

.flow04::after {
  border-color: transparent transparent transparent #db999e;
}

.flow05::after {
  border-color: transparent transparent transparent #b61515;
  bottom: auto;
}

@media (min-width: 768px),
print {
  .flow ul li {
    padding: 10px 40px;
  }

  #homepage .flow ul li {
    padding: 10px 50px;
  }

  .flow01::after,
  .flow02::after,
  .flow03::after,
  .flow04::after,
  .flow05::after {
    right: -20px;
    border-width: 46px 0 46px 20px;
  }
}

@media (min-width: 992px),
print {

  .flow01::after,
  .flow02::after,
  .flow03::after,
  .flow04::after,
  .flow05::after {
    border-width: 20px 0 20px 20px;
    top: 12px;
  }

  .flow ul li,
  #homepage .flow ul li {
    padding: 20px;
    writing-mode: horizontal-tb;
  }
}

#point .ul_head {
  background: #a4000d;
  color: #fff;
  font-size: 18px;
  text-align: center;
  padding: 20px 20px 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 768px),
print {
  #point .ul_head {
    padding: 60px 20px;
  }
}

@media (min-width: 992px),
print {
  #point .ul_head {
    padding: 50px 20px;
  }
}

#point .ul_head .big {
  font-size: 200%;
  font-weight: bold;
}

#point .point04_ul li {
  background: #eee;
  padding: 10px 20px;
  border-bottom: 1px solid #fff;
}

#point .price {
  background: #a4000d;
  padding: 10px 20px 5px;
  color: #fff;
  font-weight: bold;
  border-radius: 30px 30px 30px 0 / 30px 30px 30px 0;
  text-align: center;
  margin-bottom: 20px;
}

#point .price .big {
  font-size: 200%;
}

.point_relief {
  padding: 40px;
}

@media (min-width: 768px),
print {
  .point_relief {
    padding: 60px;
  }

  .left_sp {
    margin-left: 20px;
  }
}

/* 最後に
---------------------------------------------------- */
.last_ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 20px;
  font-weight: bold;
  color: #a4000d;
  margin-bottom: 10px;
}

@media (min-width: 768px),
print {
  #homepage #respon .contbox {
    z-index: 1;
    margin-bottom: 50px;
    /* margin-bottom: 0px; */
  }

  .last_ttl {
    font-size: 24px;
  }
}

@media (min-width: 992px),
print {
  #homepage .respon_img {
    margin: 180px 0 0 440px;
    display: block;
  }
}

@media (min-width: 1200px),
print {
  #homepage .respon_img {
    margin: 180px 0 0 480px;
    display: block;
  }
}

/*
usability
*/

/* ここが重要
---------------------------------------------------- */
.list_ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 24px;
  font-weight: bold;
  text-align: center;
  display: inline-block;
  color: #a4000d;
  padding: 10px;
  margin-bottom: 20px;
}

.list_ttl02 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 24px;
  font-weight: bold;
  text-align: center;
  color: #fff;
  padding: 10px 40px;
  margin-bottom: 20px;
  background: #a4000d;
  display: inline-block;
  border-radius: 30px;
  width: 100%;
  margin-bottom: 30px;
}

.list_ttl02 img {
  display: inline-block;
  height: 30px;
}

.listbox {
  margin-bottom: 40px;
  background: #fff;
  padding: 40px;
}

.listbox03 {
  background: #fff;
  padding: 40px;
}

.listbox img {
  margin: 0 auto;
}

.listbox02 p {
  font-size: 13px;
}

.listbox_line {
  border: 1px solid #ccc;
  padding: 40px;
}

.contbox02 {
  font-size: 13px;
  background: #fff;
  padding: 40px;
}

@media (min-width:768px),
print {
  .list_ttl {
    margin-bottom: 0;
  }

  .list_ttl02 {
    margin-bottom: 30px;
  }

  .listbox_line {
    padding: 60px;
  }

  .contbox02 {
    margin-top: 60px;
    padding: 60px;
  }

  .contbox02_img {
    position: absolute;
    margin-bottom: 0;
  }
}


#voice .ul_list_disc {
  margin-left: 20px;
  font-weight: bold;
  font-size: 14px;
}

#voice .ul_list_disc li {
  list-style: disc;
}

.listbox_line img {
  display: block;
  margin: 0 auto;
}

/*meeting*/
/* 訪問ヒヤリングにこだわる理由
---------------------------------------------------- */
#t_support .contbox {
  background: #fff;
  padding: 30px;
  margin-bottom: 10px;
}

#t_support .contbox img {
  width: 30%;
  height: auto;
}

#t_support .tsttl {
  font-size: 28px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  margin-bottom: 30px;
  color: #a4000d;
  border-bottom: 3px solid #fff;
  text-align: center;
}

#t_support .tsttl img {
  width: 50%;
  display: block;
  margin: 0 auto 10px;
}

#t_support .contbox .txt {
  background: #fff;
  text-align: left;
  display: inline-block;
  margin-left: 10px;
  width: 65%;
}

@media (min-width:768px),
print {
  #t_support .contbox {
    background: none;
    padding: 0;
  }

  #t_support .contbox {
    position: relative;
    text-align: center;
  }

  #t_support .contbox img {
    position: relative;
    z-index: 2;
    margin-bottom: 140px;
    width: auto;
    float: none;
  }

  #t_support .contbox .txt {
    position: absolute;
    padding: 80px 20px 40px;
    top: 140px;
    z-index: 1;
    display: block;
    width: 100%;
    margin-left: 0;
  }

  #t_support .tsttl {
    font-size: 36px;
  }

  #t_support .tsttl img {
    width: 35%;
    margin: 0 10px 0 0;
    display: inline-block;
  }
}

@media (min-width:992px),
print {
  #t_support .contbox img {
    margin-bottom: 180px;
  }
}

@media (min-width:1200px),
print {
  #t_support .tsttl img {
    width: 40%;
  }

  #t_support .contbox .txt {
    padding: 80px 40px 40px;
    top: 140px;
  }

  #t_support .tsttl {
    font-size: 42px;
  }
}

/*flow*/
.bd_box {
  border: 1px dashed #888;
  padding: 40px;
}

/* step01~05
---------------------------------------------------- */
#step .itemttl {
  position: relative;
  margin-left: 63px;
  margin-bottom: 10px;
}

#step .itemttl .ttlnum {
  position: absolute;
  left: -63px;
  font-family: 'Sulphur Point', sans-serif;
  font-size: 62px;
  font-weight: bold;
  color: #d60011;
  line-height: 0.8;
}

#step .itemttl .ttltxt {
  position: relative;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 24px;
  font-weight: bold;
  color: #333;
  line-height: 2.4em;
}

#step .subttl {
  font-size: 14px;
  padding-left: 10px;
  border-left: 3px solid #333;
  display: inline-block;
  font-weight: bold;
  margin-bottom: 20px;
}

#step .ttl02 {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  font-size: 18px;
  color: #d60011;
  margin-bottom: 10px;
}

@media (min-width:992px),
print {
  #step .itemttl .ttltxt {
    line-height: 2.4em;
  }
}

.check_ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: bold;
  padding: 20px;
  border: 1px solid #333;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.check_item,
.check_item02 {
  font-size: 14px;
  padding: 20px;
  border: 1px solid #333;
  border-top: none;
  line-height: 1.7em;
}

.check_item ul,
.check_item02 ul {
  margin-left: 20px;
}

.check_item ul>li:before,
.check_item02 ul>li:before {
  content: "\f00c";
  position: absolute;
  font-family: "Font Awesome 5 Free";
  margin-right: 10px;
  color: #a4000d;
  margin-left: -25px;
  font-weight: 900;
}

#step .note {
  line-height: 1.3em;
  margin-left: 20px;
  font-size: 14px;
}

#step .note li {
  margin-left: 10px;
  margin-bottom: 5px;
}

#step .note li:before {
  content: "※";
  position: absolute;
  margin-right: 10px;
  color: #a4000d;
  margin-left: -25px;
  font-weight: bold;
}

#step img {
  width: 40%;
  margin-bottom: 30px;
}

.arrow_bottom::after {
  content: "";
  position: relative;
  left: calc(50% - 25px);
  right: 0;
  bottom: -18px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 25px 25px 0 25px;
  border-color: #fb9144 transparent transparent transparent;
}

@media (min-width:768px),
print {

  .check_item,
  .check_item02 {
    padding: 20px 40px;
  }

  #step img {
    width: 90%;
    margin-bottom: 0;
  }

  .check_item,
  .check_item02 {
    border: 1px solid #333;
    border-left: none;
  }

  .arrow_bottom::after {
    left: calc(50% - 50px);
    bottom: -25px;
    border-width: 50px 50px 0 50px;
  }
}

@media (min-width:992px),
print {
  .check_item ul {
    margin-left: 0;
  }

  .check_item02 {
    border-left: 1px solid #333;
    border-top: none;
  }
}

@media (min-width:1200px),
print {
  .check_item02 {
    border-left: none;
    border-top: 1px solid #333;
  }
}

/*support*/

/* プラン内容
---------------------------------------------------- */
#plan .p_box {
  background: #fff;
  padding: 30px 40px 40px 40px;
  border: 1px solid #eee;
  margin-bottom: 10px;
}

#plan .p_box img {
  margin-bottom: 20px;
  width: 80px;
}

#plan .p_box .ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 10px;
  text-align: left;
}

#plan .p_box .txt {
  font-size: 15px;
  text-align: left;
}

@media (min-width:768px),
print {
  #plan .p_box {
    padding: 40px 40px 40px 30px;
  }

  #plan .p_box img {
    margin-right: 20px;
    margin-bottom: 0;
    width: 20%;
  }

  #plan .w80 {
    width: 80%;
  }
}

@media (min-width:992px),
print {
  #plan .p_box {
    margin-bottom: 30px;
  }

}

/* contact02
---------------------------------------------------- */
.contact_bt_ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  text-align: center;
  display: inline-block;
  letter-spacing: 0.2em;
  line-height: 1.7em;
  margin-bottom: 40px;
  margin-top: 15px;
}

#contact_bottom .contbox {
  background: rgba(255, 255, 255, 0.9);
  padding: 30px;
  text-align: center;
  margin: 60px auto;
}

#contact_bottom .contbox .tel {
  font-size: 14px;
  border: 1px solid #222;
  width: 100%;
  padding: 20px 15px;
  margin: 0 auto 20px;
}

#contact_bottom .contbox .tel .num {
  font-family: 'Sulphur Point', sans-serif;
  font-size: 28px;
  font-weight: bold;
  line-height: 1;
}

#contact_bottom .contbox .tel i {
  font-size: 20px;
  margin-right: 10px;
}

#contact_bottom .contbox .btn02 a {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  border: 1px solid #222;
  background: #222;
  width: 100%;
  color: #fff;
  display: block;
  transition: 0.2s;
  padding: 20px;
  margin: 0 auto;
}

#contact_bottom .contbox .mail i {
  margin-right: 10px;
}

#contact_bottom .contbox .btn02 a:hover {
  background: #d60011;
  border: 1px solid #d60011;
  transition: 0.2s;
}

#contact_bottom .contbox .btn02 a::after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f105";
  position: relative;
  left: 20px;
  margin-top: -10px;
  font-size: 14px;
}

@media (min-width: 768px),
print {
  .contact_bt_ttl {
    line-height: 1.7em;
    margin-bottom: 40px;
  }

  #contact_bottom .contbox {
    padding: 60px;
  }

  #contact_bottom .contbox .tel {
    width: 80%;
    margin: 0 auto 20px;
  }

  #contact_bottom .contbox .tel .num {
    font-size: 42px;
  }

  #contact_bottom .contbox .tel i {
    font-size: 26px;
  }

  #contact_bottom .contbox .btn02 a {
    font-size: 18px;
    width: 80%;
  }

  #contact_bottom .contbox>img {
    height: 90px;
  }
}

@media (min-width: 992px),
print {
  .contact_bt_ttl {
    font-size: 24px;
    line-height: 40px;
    margin-top: 0;
  }

  #contact_bottom .contbox .tel {
    width: 310px;
    height: 120px;
    padding-top: 20px;
    display: inline-block;
  }

  #contact_bottom .contbox .btn02 a {
    width: 310px;
    height: 120px;
    padding: 45px 0;
    display: inline-block;
  }

  #contact_bottom .contbox>img {
    height: 80px;
  }
}

@media (min-width: 1200px),
print {
  #contact_bottom .contbox {
    padding: 60px 84px;
  }

  #contact_bottom .contbox .tel {
    width: 360px;
    height: 106px;
    padding-top: 20px;
  }

  #contact_bottom .contbox .btn02 a {
    width: 360px;
    height: 106px;
    padding: 38px 0;
  }

  #contact_bottom .contbox .btn02 a::after {
    left: 30px;
  }
}

/*price*/
/*料金表
---------------------------------------------------- */
#price #price_list .item {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  font-size: 20px;
}

.price_bdb {
  border-bottom: 3px solid #333;
  padding-bottom: 5px;
  margin-bottom: 20px;
}

#price #price_list .price {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  font-size: 36px;
  color: #d60011;
  text-align: right;
}

#price_list .ttl01 {
  font-size: 18px;
  font-weight: bold;
}

#price_list .ttl02 {
  font-size: 36px;
  font-weight: normal;
  margin-top: 20px;
}

#price_list .cont {
  font-size: 16px;
  font-weight: bold;
}

#price_list .cont_list {
  margin-left: 30px;
  font-size: 14px;
}

/*4つのプログラム
---------------------------------------------------- */
.pg4_box {
  background: #fff;
  padding: 40px;
  border: 1px solid #eee;
}

.pg4_box img {
  border: 1px solid #ccc;
  transition: .2s;
}

.pg4_box img:hover {
  box-shadow: 0px 0px 20px -6px #888;
  transition: .2s;
}

@media (min-width: 768px),
print {
  #price_list .ttl01 {
    margin-right: 150px;
  }

  .pg4_box {
    padding: 60px;
  }
}

@media (min-width: 992px),
print {
  .pg4_box {
    padding: 40px;
  }
}

/*responsive*/
/*point
---------------------------------------------------- */
#responsive_page #point .icon {
  width: 50%;
}

@media (min-width: 768px),
print {
  #responsive_page #point .icon {
    width: 80%;
  }
}

@media (min-width: 992px),
print {
  #responsive_page #point .icon {
    width: 60%;
  }
}

/*キャンペーン*/
/*キャンペーンTOP
---------------------------------------------------- */
.cam_item {
  width: 33.3%;
  border-top: 1px solid #eee;
  border-left: 1px solid #eee;
  padding: 20px;
  text-align: center;
  font-size: 14px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
}

.cam_bdr {
  border-right: 1px solid #eee;
}

.cam_bdb {
  border-bottom: 1px solid #eee;
}

.cam_bg_red01 {
  background: #fbe5e7;
}

.cam_bg_red02 {
  background: #f7cccf;
}

.cam_bg_red03 {
  background: #f3b2b7;
}

.cam_bg_red04 {
  background: #ef99a0;
}

.cam_bg_red05 {
  background: #ea7f88;
}

.cam_bg_gray01 {
  background: #efefef;
}

.cam_bg_gray02 {
  background: #e7d6d6;
}

@media (min-width: 992px),
print {
  .cam_item {
    font-size: 16px;
  }
}

/*キャンペーン内容紹介
---------------------------------------------------- */
#campaign .contttl {
  line-height: 1.5em;
  margin-bottom: 0;
}

#com_contents .head {
  width: 30%;
  text-align: center;
  margin-bottom: 20px;
}

#com_contents .ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 20px;
  color: #d60011;
  margin-bottom: 10px;
  font-weight: bold;
}

#com_contents .bdt {
  border-top: 1px solid #ccc;
  padding-top: 20px;
  margin-top: 20px;
}

@media (min-width: 768px),
print {
  #com_contents .head {
    width: 20%;
    margin-right: 20px;
    height: 100%;
  }

  #com_contents .dash_box img {
    width: 30%;
    margin-right: 20px;
    height: auto;
  }
}

@media (min-width: 992px),
print {
  #com_contents .head {
    width: 10%;
    height: 100%;
  }
}

#com_contents .dash_box {
  border: 1px dashed #888;
  padding: 30px;
  background: #fff;
}

#com_contents .pgttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 24px;
  color: #d60011;
  margin-bottom: 20px;
  border-left: 3px solid #d60011;
  padding-left: 10px;
}

.pg_box {
  background: #eee;
  padding: 40px 20px;
}

#com_contents .area {
  line-height: 1.7em;
}

@media (min-width: 768px),
print {
  #com_contents .dash_box {
    padding: 40px;
  }

  .pg_box {
    background: #eee;
    padding: 60px;
  }
}

#com_contents .note {
  font-size: 13px;
  line-height: 1.5em;
}

@media print {
  #homepage #header {
    position: static;
  }
}

/*cms*/
/*
---------------------------------------------------- */
#head_area .contbox {
  margin: 60px 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  line-height: 2em;
}

.cms_reference .reference_ttl {
  background: url(../images/common/bg_grid.jpg);
  padding: 30px 30px 0;
  display: block;
  font-size: 18px;
}

.cms_reference .reference_ttl a {
  font-size: 14px;
}

.cms_reference .reference_cont {
  padding: 20px 30px 30px;
}

.cms_reference .reference_cont .comment {
  margin-top: 20px;
}

.cms_list {
  background: #eee;
  padding: 60px 0;

}

.cms_list .list_ttl,
#grid .grid_ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 30px;
  color: #333;
}

.cms_list .list_box {
  padding: 30px 30px 30px 20px;
  background: #fff;
  border: 1px solid #eee;
}

@media (min-width: 768px),
print {
  .cms_reference .reference_ttl {
    padding: 30px 60px 0;
    display: inline-block;
  }

  .cms_reference .reference_cont {
    padding: 40px 60px 60px;
  }

  .cms_list {
    padding: 60px 0;
    position: relative;
  }

  .cms_list .list_ttl {
    font-size: 32px;
    position: absolute;
    top: -90px;
    margin-bottom: 0;
  }

  #grid .grid_ttl {
    font-size: 32px;
    position: absolute;
    top: -80px;
    margin-bottom: 0;
  }

  .cms_list .list_box {
    padding: 40px;
  }
}

.cms_list .list_in_ttl {
  font-size: 18px;
  font-weight: bold;
  margin-left: 20px;
  margin-bottom: 20px;
}

#cms_footer {
  background: url(../images/cms/cms_bg.jpg);
  background-position: 0 50%
}

#cms_footer img {
  background: #fb7c44;
  padding: 20px;
  border-radius: 50%;
  width: 30%;
  margin-top: 30px;
}

#cms_footer .contbox {
  margin: 30px 0 60px;
  color: #fff;
}

@media (min-width: 768px),
print {
  #cms_footer img {
    width: auto;
    margin-top: 0;
  }

  #cms_footer .contbox {
    margin: 60px 0;
    text-align: left;
  }
}

/*  オリジナルプログラム開発のテーブル
---------------------------------------------------- */
.table_float {
  width: 100%;
  margin-bottom: 10px;
}

.table_float th {
  width: 100%;
  padding: 20px 18px 5px;
  font-weight: bold;
  border-top: solid 1px #ccc;
  line-height: 140%;
  display: block;
}

.table_float td {
  width: 100%;
  padding: 5px 18px 20px;
  line-height: 140%;
  display: block
}

.table_float tr:last-child td {
  border-bottom: solid 1px #ccc;
}

@media (min-width: 768px),
print {
  .table_float table {
    width: 100%;
    display: table;
  }

  .table_float th {
    width: 30%;
    padding: 20px;
    font-weight: bold;
    border-top: solid 1px #ccc;
    border-bottom: solid 1px #ccc;
    line-height: 140%;
    display: table-cell
  }

  .table_float td {
    padding: 20px;
    border-top: solid 1px #ccc;
    border-bottom: solid 1px #ccc;
    line-height: 140%;
    display: table-cell
  }
}

/*CMSプログラム紹介*/
/*  グリッドの用途
---------------------------------------------------- */
#grid {
  position: relative;
  padding: 65px 0 100px;
  margin-top: 80px;
  page-break-before: always;
}

#grid .pg_box {
  background: #fff;
  border: 1px solid #eee;
  padding: 40px;
}

#grid .pg_box img {
  width: 60%;
  height: auto;
  margin-bottom: 20px;
}

@media (min-width: 992px),
print {
  #grid .pg_box img {
    width: 30% !important;
    display: inline-block;
    margin-right: 20px;
    margin-bottom: 0;
  }

  #grid .pg_box .tal {
    width: 70%;
    display: inline-block;
  }

  #grid .pg_box {
    padding: 40px 40px 40px 30px;
  }
}

#grid .pg_box .ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dashed #888;
  color: #d60011;
}

#grid .pg_box::after {
  content: "";
  position: absolute;
  right: 30px;
  bottom: 10px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent #888 transparent;
  transition: .2s;
}

@media (min-width: 992px),
print {
  #grid a:hover .pg_box::after {
    border-color: transparent transparent #fb9144 transparent;
    transition: .2s;
  }

  #grid a:hover .pg_box {
    box-shadow: 0px 0px 20px -6px #888;
    transition: .2s;
    color: #333;
  }
}

/*index*/
/*  pointo
---------------------------------------------------- */
#point .cp01 {
  padding: 40px;
  text-align: center;
  margin-bottom: 60px;
}

#point .cp01 img {
  background: #fff;
  padding: 40px;
}

#point .cp01 p {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
  color: #a4000d;
}

@media (min-width: 768px),
print {
  #point .cp01 {
    padding: 60px;
  }
}

/* works
---------------------------------------------------- */
#page_works_detail .client {
  border-bottom: 3px solid #333;
  margin-bottom: 10px;
}

#page_works_detail .client .ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 10px;
  border-right: 1px solid #333;
  display: inline-block;
  padding-right: 20px;
}

#page_works_detail .client .name {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 20px;
  display: inline-block;
  padding-left: 10px;
}

#page_works_detail .sub .ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: bold;
  display: inline-block;
  border-right: 1px solid #333;
  padding-right: 10px;
}

#page_works_detail .sub .txt {
  font-size: 14px;
  display: inline-block;
  padding-left: 10px;
}

@media (min-width: 768px),
print {
  #page_works_detail .sub .ttl {
    padding-right: 20px;
  }

  #page_works_detail .sub .txt {
    padding-left: 20px;
  }
}

#page_works_detail .bg_pc01 {
  background: url(../images/works/works_pc01.svg);
  background-repeat: no-repeat;
  background-size: contain;
  padding: 18px 18px 130px;
  margin-bottom: 30px;
}

#page_works_detail .bg_pc01 .photo-ofi {
  margin: 0 auto;
  padding-bottom: 56%;
  background: #1f1f1f;
}

#page_works_detail .bg_pc02 {
  background: url(../images/works/works_pc02.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: bottom;
  padding: 30px 45px 23px;
}

#page_works_detail .bg_pc02 .photo-ofi {
  margin: 0 auto;
  padding-bottom: 63%;
  background: #1f1f1f;
}

@media (min-width: 576px),
print {
  #page_works_detail .bg_pc01 {
    background-size: cover;
    padding: 18px 18px 150px;
    background-position: top;
    margin-bottom: 30px;
  }

  #page_works_detail .bg_pc02 {
    background-size: cover;
    padding: 20px 80px 50px;
    background-position: top;
  }
}

@media (min-width: 768px),
print {
  #page_works_detail .bg_pc01 {
    background-size: contain;
    padding: 18px 18px 110px;
    background-position: bottom;
    margin-bottom: 0;
  }

  #page_works_detail .bg_pc02 {
    padding: 120px 45px 23px;
    background-size: contain;
    background-position: bottom;
  }
}

@media (min-width: 992px),
print {
  #page_works_detail .bg_pc01 {
    padding: 25px 25px 150px;
  }

  #page_works_detail .bg_pc02 {
    padding: 160px 61px 33px;
  }
}

@media (min-width: 1200px),
print {
  #page_works_detail .bg_pc01 {
    padding: 30px 30px 180px;
  }

  #page_works_detail .bg_pc02 {
    padding: 190px 74px 40px;
  }
}

.works_table {
  width: 100%;
}

.works_table td {
  width: 33.3%;
  padding: 10px 5px;
  text-align: center;
  vertical-align: middle;
  border-bottom: 1px solid #fff;
  border-right: 1px solid #fff;
  font-size: 90%;
  background: #eee;
}

.works_table_on {
  background: #fb9144 !important;
  color: #fff;
}

/* blog
---------------------------------------------------- */

#blog .thumb img {
  width: 100%;
  height: 100%;
  -webkit-transition: -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: transform 1s cubic-bezier(0.165, 0.84, 0.44, 1),
    -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
}

/* #blog .blog-item-inner {
  border: 1px #bbb solid;

} */

/* #blog .blog-item-inner .blog-item-text {
  padding: 15px;
} */

.blog-item a:hover img {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}

.blog-item a:hover .date {
  color: #d60011;
}

.blog-item a:hover .category {
  color: #d60011;
  border: 1px solid #d60011;
}

.blog-item a:hover {
  color: #d60011;
}

.state-box {
  display: flex;
  margin: 10px 0;
  line-height: 20px;
}

.state-box .date {

  font-family: "Sulphur Point", sans-serif;
  font-weight: bold;
  font-size: 20px;
  margin-right: 20px;
}

.state-box .category {
  font-size: 12px;
  border: 1px solid #888888;
  color: #888888;
  padding: 0 10px;
}

/* =================================================================================
  blog.html 
  ---------------------------------------------------- */
.navi-category-list {
  display: flex;
  /* justify-content: center; */
  flex-wrap: wrap;

}

.navi-category-list {
  border-top: 1px #bbb solid;
  margin-bottom: 40px;
}

.navi-category-list li {
  border-top: 4px #fff solid;
  cursor: pointer;
  padding: 20px 20px 20px;
  font-size: 16px;
  transition: 0.5s;

}

.navi-category-list li a {
  color: #999;
}

.navi-category-list li:hover a {
  color: #333;
}

.navi-category-list li.active {
  border-top: 4px #d60011 solid;
  font-weight: bold;
}

.navi-category-list li.active a {
  color: #333;
}

@media only screen and (max-width: 768px) {
  ul.navi-category-list {
    border-top: none;
    margin-bottom: 10px;
  }

  .navi-category-list li {
    border-top: none;
    margin: 0 20px 20px 0;
    text-align: center;
    padding: 0;
    font-size: 18px;
  }

  .navi-category-list li a {
    /* color: #2458a5; */
  }

  .navi-category-list li.active {
    border-top: none;
  }

  .navi-category-list li.active a {
    border-bottom: 4px #d60011 solid;
  }
}


/*faq*/
/* 3つのカテゴリボタン
---------------------------------------------------- */
.ul_faq,
.ul_sarvice {
  font-family: 'Noto Sans JP', sans-serif;
  margin: 40px 0 60px;
}

.ul_faq li a,
.ul_sarvice li a {
  color: #333;
  transition: .2s;
  padding: 20px;
  display: inline-block;
  width: 100%;
  border: 1px solid #888;
  font-size: 14px;
}

@media (min-width: 768px),
print {

  .ul_faq li a,
  .ul_sarvice li a {
    padding: 20px 0;
  }

  .ul_faq li {
    width: 33.3%;
    text-align: center;
  }

  .ul_sarvice li {
    width: 50%;
    text-align: center;
  }
}

@media (min-width: 992px),
print {

  .ul_faq li a,
  .ul_sarvice li a {
    font-size: 16px;
  }
}

.ul_faq .active a,
.ul_faq a:hover,
.ul_sarvice a:hover {
  background: #333;
  color: #fff;
  transition: .2s;
}

/* 質問リスト
---------------------------------------------------- */
.ul_question {
  padding: 40px;
  background: #eee;
  margin-bottom: 60px;
}

.ul_question li {
  margin-bottom: 10px;
}

.ul_question a {
  font-size: 14px;
  color: #2d52af;
}

.ul_question a:hover {
  text-decoration: underline;
}

.ul_question a::after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f105";
  position: relative;
  left: 10px;
  margin-top: -10px;
  font-size: 14px;
}

@media (min-width: 768px),
print {
  .ul_question li {
    margin-bottom: 0;
  }
}

/* 質問と回答
---------------------------------------------------- */
#faq .contbox {
  margin-top: -60px;
  padding-top: 60px;
}

.qcont {
  position: relative;
  margin-left: 60px;
  font-size: 16px;
  color: #d60011;
  font-weight: bold;
}

.acont {
  position: relative;
  margin-left: 60px;
  font-size: 14px;
  padding-bottom: 20px;
}

.acont-last {
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0;
}

.qhead {
  position: absolute;
  left: -60px;
  font-family: 'Roboto', sans-serif;
  font-weight: bold;
  font-size: 18px;
  color: #d60011;
}

.ahead {
  position: absolute;
  left: -50px;
  font-family: 'Roboto', sans-serif;
  font-weight: bold;
  font-size: 16px;
  color: #333;
}

/*お問い合わせ*/
/* 電話ファックス部分
---------------------------------------------------- */
#contact_top .contbox {
  background: rgba(255, 255, 255, 0.9);
  padding: 30px;
  text-align: center;
  margin: 60px auto;
}

#contact_top .contbox .tel {
  font-size: 14px;
  border: 1px solid #222;
  width: 100%;
  padding: 20px 15px;
  margin: 0 auto 20px;
  display: block;
}

#contact_top .contbox .tel .num {
  font-family: 'Sulphur Point', sans-serif;
  font-size: 28px;
  font-weight: bold;
  line-height: 1.5em;
}

#contact_top .contbox .tel i {
  font-size: 20px;
  margin-right: 10px;
}

@media (min-width: 768px),
print {
  .contact_bt_ttl {
    line-height: 1.7em;
    margin-bottom: 40px;
  }

  #contact_top .contbox {
    padding: 60px 60px 40px;
  }

  #contact_top .contbox .tel {
    width: 80%;
    margin: 0 auto 20px;
  }

  #contact_top .contbox .tel .num {
    font-size: 42px;
  }

  #contact_top .contbox .tel i {
    font-size: 26px;
  }
}

@media (min-width: 992px),
print {
  .contact_bt_ttl {
    font-size: 24px;
    line-height: 40px;
    margin-top: 0;
  }

  #contact_top .contbox .tel {
    width: 310px;
    padding-top: 20px;
  }
}

@media (min-width: 1200px),
print {
  #contact_top .contbox {
    padding: 60px 84px 40px;
  }

  #contact_top .contbox .tel {
    width: 360px;
    padding: 10px;
  }
}

/*IEのみ*/
@media all and (-ms-high-contrast: none) {
  #contact_top .contbox .tel {
    padding: 15px 0 0;
  }
}

/* メール
---------------------------------------------------- */
#contact_mail .red_box {
  padding: 20px;
  border: 1px solid #d60011;
  color: #d60011;
  margin-bottom: 40px;
}

/* table
---------------------------------------------------- */
.table01 {
  width: 100%;
  margin-bottom: 10px;
  font-size: 14px;
}

.table01 th {
  width: 100%;
  padding: 20px 15px 5px;
  line-height: 140%;
  display: block;
  color: #222;
  font-weight: 700;
  background: #fff;
}

.table01 td {
  padding: 5px 15px 20px;
  border-bottom: solid 1px #ccc;
  line-height: 1.7em;
  display: block;
  color: #222;
  text-align: justify;
  background: #fff;
}


@media (min-width: 768px),
print {
  .table01 table {
    width: 100%;
    display: table;
  }

  .table01 th {
    width: 30%;
    padding: 20px 18px;
    border-top: solid 1px #ccc;
    border-bottom: solid 1px #ccc;
    line-height: 140%;
    display: table-cell;
    vertical-align: top;
  }

  .table01 td {
    padding: 20px 15px;
    border-top: solid 1px #ccc;
    border-bottom: solid 1px #ccc;
    display: table-cell;
    letter-spacing: 0;
  }
}

@media (min-width: 992px),
print {
  .table01 th {
    width: 25%;
  }
}

@media (min-width: 1200px),
print {
  .table01 th {
    width: 20%;
  }
}

textarea {
  width: 100%;
}

.need {
  color: #d60011;
  font-size: 12px;
  border-radius: 4px;
  float: right;
  line-height: 1em;
}

.formBtn,
.formBtn_r {
  color: #fff;
  display: block;
  background: #333;
  padding: 22px;
  width: 100%;
  font-size: 14px;
  text-align: center;
  transition: .2s;
  border: none;
}

.formBtn_r {
  background: #888;
}

.formBtn::after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f105";
  position: relative;
  left: 30px;
  margin-top: -10px;
  font-size: 14px;
}

.formBtn_r::after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f104";
  position: relative;
  right: 140px;
  margin-top: -10px;
  font-size: 14px;
}

.formBtn:hover {
  background: #fb7c44;
  transition: .2s;
  color: #fff;
  border-radius: 0;
}

.formBtn_r:hover {
  background: #bbb;
  transition: .2s;
  color: #fff;
}

@media (min-width: 768px),
print {

  .formBtn,
  .formBtn_r {
    display: inline-block;
    width: auto;
    padding: 22px 60px;
  }
}

.ttl_policy {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
}

.privacyBox {
  height: 250px;
  overflow: auto;
  overflow-y: scroll;
  font-size: 90%;
  line-height: normal;
  padding: 0px 10px;
  border: solid 1px #ccc;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #999 inset;
  background: #fff;
}

.privacyBox h4 {
  font-size: 120%;
  font-weight: bold;
  border-bottom: #CCC solid 1px;
  margin-bottom: 10px;
}

.privacyBox p {
  margin-bottom: 1em
}

.privacyBox ul {
  margin-bottom: 1em;
  margin-left: 10px
}

.privacyBox ol {
  margin-bottom: 1em;
  margin-left: 0px;
  padding: 0px;
}

.privacyBox li {
  list-style: decimal outside;
  margin-left: 2em;
  margin-bottom: 5px
}

@media (min-width: 768px),
print {
  .privacyBox ul {
    margin-bottom: 1em;
    margin-left: 20px
  }

}

/*service*/
/*リスティング広告
---------------------------------------------------- */
.lis_ttl {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 10px;
}

#listing .bdl {
  border-left: 1px solid #888;
  margin-left: 5px;
  padding-left: 10px;
}

#listing,
#seo {
  margin-top: -80px;
  padding-top: 80px;
}

#listing .ul_hand {
  font-size: 14px;
  line-height: 1.5em;
  margin-left: 15px;
}

#service .ul_note li:before {
  content: "※";
  position: absolute;
  margin-right: 5px;
  color: #a4000d;
  margin-left: -25px;
  font-weight: bold;
}

#service .ul_note li {
  list-style: none;
}

#service .ul_note {
  font-size: 14px;
  line-height: 1.5em;
  margin-left: 25px;
}

@media (min-width: 768px),
print {
  #service .ul_note {
    margin-left: 25px;
  }
}

#listing .bg_grid {
  padding: 40px;
  margin-bottom: 30px;
}

#industry .ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
  color: #d60011;
}

#industry .contbox,
#seo .contbox {
  background: #fff;
  border: 1px solid #eee;
  padding: 40px;
  position: relative;
  margin-bottom: 30px;
}

#industry .contbox .icon {
  background: #d60011;
  padding: 10px;
  position: absolute;
  top: -10px;
  right: 20px;
}

@media (min-width: 768px),
print {
  #listing .bg_grid {
    padding: 60px;
    margin-bottom: 0;
  }
}

/*SEO
---------------------------------------------------- */
#seo .ttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 20px;
  font-weight: bold;
  color: #d60011;
  margin-bottom: 20px;
}

.schedule ul {
  max-width: 100%;
}

.schedule ul li {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  font-size: 14px;
  text-align: center;
  padding: 40px 0 30px;
  display: block;
  position: relative;
  max-height: 25em;
}

.schedule01 {
  background: #f6e5e6;
}

.schedule02 {
  background: #edcccf;
}

.schedule03 {
  background: #e4b2b6;
}

.schedule04 {
  background: #db999e;
}

.schedule05 {
  background: #d17f86;
}

.schedule06 {
  background: #c8666e;
}

.schedule07 {
  background: #a4000d;
  color: #fff;
}

.schedule01::after,
.schedule02::after,
.schedule03::after,
.schedule04::after,
.schedule05::after,
.schedule06::after {
  content: '';
  position: absolute;
  left: calc(50% - 100px);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 20px 100px 0 100px;
  z-index: 1;
}

.schedule01::after {
  top: 80px;
  border-color: #f6e5e6 transparent transparent transparent;
}

.schedule02::after {
  top: 90px;
  border-color: #edcccf transparent transparent transparent;
}

.schedule03::after {
  top: 90px;
  border-color: #e4b2b6 transparent transparent transparent;
}

.schedule04::after {
  top: 90px;
  border-color: #db999e transparent transparent transparent;
}

.schedule05::after {
  bottom: -20px;
  border-color: #d17f86 transparent transparent transparent;
}

.schedule06::after {
  bottom: -20px;
  border-color: #c8666e transparent transparent transparent;
}

.schedule .note {
  writing-mode: lr-tb;
  font-size: 13px;
  font-weight: normal;
  line-height: 1.5em;
  text-align: left;
  margin: 10px 30px;
  word-break: normal;
}

@media (min-width: 768px),
print {
  #seo .ttl {
    margin-bottom: 0;
  }

  .schedule ul li {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    width: 7%;
    font-size: 16px;
    text-align: center;
    padding: 10px;
    display: inline-block;
    -webkit-writing-mode: vertical-lr;
    -ms-writing-mode: tb-rl;
    -o-writing-mode: vertical-lr;
    writing-mode: vertical-lr;
  }

  .schedule .w20 {
    width: 20%;
  }

  .schedule .w35 {
    width: 40%;
  }

  .schedule01::after,
  .schedule02::after,
  .schedule03::after,
  .schedule04::after,
  .schedule05::after,
  .schedule06::after {
    top: 18px;
    left: auto;
    right: -20px;
    border-width: 54px 0 54px 20px;
  }

  .schedule01::after {
    border-color: transparent transparent transparent #f6e5e6;
  }

  .schedule02::after {
    border-color: transparent transparent transparent #edcccf;
  }

  .schedule03::after {
    border-color: transparent transparent transparent #e4b2b6;
  }

  .schedule04::after {
    border-color: transparent transparent transparent #db999e;
  }

  .schedule05::after {
    border-color: transparent transparent transparent #d17f86;
    bottom: auto;
  }

  .schedule06::after {
    border-color: transparent transparent transparent #c8666e;
    bottom: auto;
  }

  .schedule .note {
    margin: 0 10px;
    max-width: 100%;
  }
}

@media (min-width: 992px),
print {

  .schedule01::after,
  .schedule02::after,
  .schedule03::after,
  .schedule04::after,
  .schedule05::after,
  .schedule06::after {
    border-width: 54px 0 54px 20px;
    top: 18px;
  }

  .schedule ul li {
    padding: 10px 20px;
  }

  .schedule .w35 {
    width: 35%;
  }

  .schedule .note {
    margin: 0 20px;
  }
}

@media (min-width: 1200px),
print {

  .schedule01::after,
  .schedule02::after,
  .schedule03::after,
  .schedule04::after,
  .schedule05::after,
  .schedule06::after {
    border-width: 42px 0 42px 20px;
    top: 30px;
  }

  .schedule ul li {
    height: auto;
  }
}

.schedule .note_img {
  display: none;
}

/*edgeでは、横書き部分が上手く表示されないのでテキスト画像にて対応*/
@supports (-ms-ime-align:auto) {
  .schedule .note {
    display: none;
  }

  .schedule .note_img {
    display: inline-block;
    margin-left: 10px;
  }
}

/*キーワード
---------------------------------------------------- */
#keyword img {
  margin-right: 10px;
}

@media (min-width: 768px),
print {
  #keyword img {
    width: 30%;
  }
}

@media (min-width: 992px),
print {
  #keyword img {
    width: auto;
  }
}

@media (min-width: 1200px),
print {
  #keyword img {
    margin-right: 30px;
  }
}

#keyword .word {
  font-size: 18px;
  font-weight: bold;
}

#keyword .three_m {
  background: #d60011;
  color: #fff;
  text-align: center;
  padding: 10px 10px 0;
  font-size: 18px;
  margin-bottom: 40px;
}

#keyword .three_m p {
  background: #fff;
  color: #333;
  padding: 10px;
}

#keyword .three_m::after {
  content: '';
  position: absolute;
  left: calc(50% - 105px);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 20px 105px 0 105px;
  z-index: 1;
  top: 100px;
  border-color: #d60011 transparent transparent transparent;
}

#keyword .three_m .big {
  font-size: 32px;
  font-weight: bold;
}

#keyword .up {
  font-size: 42px;
  font-weight: bold;
  line-height: 1.5em;
}

#keyword .up02 {
  font-size: 32px;
  font-weight: bold;
  color: #d60011;
}

@media (min-width: 768px),
print {
  #keyword .three_m::after {
    top: 105px;
  }

  #keyword .up {
    font-size: 30px;
  }

  #keyword .up02 {
    font-size: 20px;
  }
}

@media (min-width: 992px),
print {
  #keyword .three_m::after {
    left: calc(50% - 145px);
    border-width: 20px 145px 0 145px;
    top: 107px;
  }

  #keyword .word {
    font-size: 24px;
  }

  #keyword .up {
    font-size: 42px;
  }

  #keyword .up02 {
    font-size: 32px;
  }
}

@media (min-width: 1200px),
print {
  #keyword .three_m::after {
    left: calc(50% - 175px);
    border-width: 20px 175px 0 175px;
  }
}

/* table
---------------------------------------------------- */
.table_container {
  width: 100%;
  /* overflow: auto; */
  overflow-x: scroll;
  -webkit-overflow-scrolling: touch;
  /*慣性スクロール*/
}

.table02 {
  font-size: 13px;
  white-space: nowrap;
}

.table02 th {
  padding: 20px 18px;
  line-height: 140%;
  font-size: 14px;
  background: #a4000d;
  color: #fff;
}

.table02 td {
  padding: 10px 15px;
  border-bottom: solid 1px #ccc;
  line-height: 1.7em;
  text-align: justify;
}

@media (min-width: 768px),
print {
  .table_container {
    overflow-x: auto;
  }

  .table02 {
    width: 100%;
  }

  .table02 th {
    width: auto;
    border-top: solid 1px #ccc;
    border-bottom: solid 1px #ccc;
    line-height: 140%;
    vertical-align: top;
  }

  .table02 td {
    border-top: solid 1px #ccc;
    border-bottom: solid 1px #ccc;
    letter-spacing: 0;
  }
}

.table02 tr td:nth-child(2) {
  font-weight: bold;
}

.table02 tr td:nth-child(4) {
  font-weight: bold;
  color: #d60011;
  font-size: 110%;
}

/*sitemap*/
/* サイトマップ
---------------------------------------------------- */
#menulist {
  font-size: 15px;
  line-height: 2em;
}

#menulist ul {
  margin-left: 20px;
}

#menulist .m0 {
  margin: 0;
}

#menulist .menuttl {
  font-weight: bold;
  color: #bbb;
  margin-top: 20px;
}

#menulist .contbox {
  background: #fff;
  padding: 40px;
  border: 1px solid #eee;
  margin: 80px 0;
  width: 100%;
}

@media (min-width: 768px),
print {
  #menulist .contbox {
    padding: 60px;
  }
}

@media print {
  #header {
    position: static;
  }

  .table_container {
    overflow: auto;
  }

  #keyword .up {
    font-size: 36px;
  }

  #grid .pg_box {
    height: auto !important;
  }

  #page_works_detail .bg_pc01,
  #page_works_detail .bg_pc02 {
    background: #fff !important;
    padding: 0;
  }

  #page_works_detail .bg_pc01 .photo-ofi,
  #page_works_detail .bg_pc02 .photo-ofi {
    padding-bottom: 75% !important;
    background: #eee;
  }
}

/*=================================================================================*/
/*Company
  ---------------------------------------------------- */



.clumb {
  background: rgba(255, 255, 255, 0.9);
  padding: 15px;
  text-align: center;
  margin: 60px auto;
}

@media (min-width: 768px),
print {
  .clumb {
    padding: 30px;
  }
}

.dotList {
  list-style: none;
}

.dotList li {
  padding-left: 1em;
  position: relative
}

.dotList li:before {
  position: absolute;
  content: "";
  width: 3px;
  height: 3px;
  background: #D60011;
  top: 0.6em;
  left: 3px;
}

.Box {
  font-size: 14px;
  border: 1px solid #222;
  width: 100%;
  margin: 0px 8px;
  padding: 20px 15px;
}

.tit01 {
  font-size: 5.9375vw;
}

@media (min-width: 576px),
print {
  .tit01 {
    font-size: 24px;
  }
}

#Map {
  width: 100%;
  height: 400px;
}


.text-center_L {
  text-align: left;
}

@media (min-width: 768px),
print {
  .text-center_L {
    text-align: center;
  }
}

.label {
  background: #A4000D;
  padding: 5px 15px;
  color: #fff;
}


.movie-wrap {
  position: relative;
  padding-bottom: 56.25%;
  /*アスペクト比 16:9の場合の縦幅*/
  height: 0;
  overflow: hidden;
}

.movie-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.video-wrap video {
  width: 100%;
}

.mb-6 {
  margin-bottom: 4em;
}

.mb-7 {
  margin-bottom: 5em;
}

.mb-8 {
  margin-bottom: 7em;
}

/*shop*/
/*必要な機能
---------------------------------------------------- */
#cl_shop .shop_box {
  background: #fff;
  border: 1px solid #eee;
  padding: 40px 20px;
  text-align: center;
  margin-bottom: 30px;
}

#cl_shop .shop_box img {
  margin-bottom: 10px;
}

#cl_shop .shop_box p {
  font-weight: bold;
  font-size: 16px;
}

#cl_shop td img {
  margin-right: 10px;
}

#cl_shop .amazon img {
  height: 30px;
}

#function .contbox {
  background: #fff;
  padding: 40px;
  margin-bottom: 30px;
}

#function .contbox img {
  margin-right: 10px;
}

#function .clttl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: bold;
}

@media (min-width: 992px),
print {
  #cl_shop .shop_box {
    padding: 40px;
  }

  #cl_shop .shop_box p {
    font-size: 18px;
  }
}

a img {
  transition: 0.3s;
}

a img:hover {
  opacity: 0.7;
}

/* =================================================================================
  blog_post
  ---------------------------------------------------- */

#blog-post .state-box {
  display: flex;
  margin: 10px 0;
  line-height: 20px;
}

#blog-post .state-box .date {

  font-family: "Sulphur Point", sans-serif;
  font-weight: bold;
  font-size: 20px;
  margin-right: 20px;
}

#blog-post .state-box .category {
  font-size: 12px;
  border: 1px solid #888888;
  color: #888888;
  padding: 0 10px;
}

.post-main-img {
  margin: 0 auto 30px;
}

.post-text-wrapper h3 {
  margin-bottom: 32px;
  font-size: 22px;
  line-height: 38px;
  font-weight: bold;
  margin-bottom: 32px;

}

.post-text-wrapper .post-text {
  margin-bottom: 36px;
}

#blog-post .btn03 {
  margin-bottom: 100px;
}

@media (max-width: 768px) {
  #blog-post .btn03 {
    margin-bottom: 60px;
  }
}

/*ヘッダーにお知らせを追加するときに、下記のコメントアウトを復活させる*/
/* .summer_info{
  position: absolute;
  left: -60px;
  top: 50px;
  font-size: 12px;
  line-height: 1.2em;
}
@media (min-width: 768px), print {
  .summer_info{
    left: 130px;
    font-size: 12px;
    line-height: 1.2em;
  }
}
@media (min-width: 992px), print {
  .summer_info{
    left: auto;
    right: 430px;
    font-size: 13px;
    top: 0;
    color: #fff;
    margin: 5px 10px 0 0;
  }
}
@media (min-width: 1140px), print {
  #header .nav{
    display: none !important;
  }
}
@media (min-width: 1355px), print {
  .summer_info{
    right: 480px;
  }
}
  @media (min-width: 1520px), print {
    #header .nav{
      display: flex !important;
    }
    .summer_info{
      right: 950px;
      width: 261px;
    }
  }
  @media (min-width: 1690px), print {
    .summer_info{
      position: relative;
      right: 0;
      left: 0;
    }
  } */


.indent-1 {
  padding-left: 1em;
  text-indent: -1em;
}

.conttt-lv2 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 26px;
  font-weight: bold;
  color: #d60011;
}

@media (min-width: 768px),
print {
  .conttt-lv2 {
    font-size: 38px;
  }
}

@media (min-width: 992px),
print {
  .conttt-lv2 {
    font-size: 40px;
  }
}

@media (min-width: 1200px),
print {
  .conttt-lv2 {
    font-size: 48px;
  }
}

.c-E7767F {
  color: #E7767F;
}

.adjust--fearure_img07 {
  width: 55px !important;
}

.adjust--fearure_img09 {
  width: 100px !important;
}

@media (min-width: 576px),
print {
  .adjust--fearure_img07 {
    width: 70px !important;
  }

  .adjust--fearure_img09 {
    width: 125px !important;
  }
}

.contttl-lv1 {
  display: inline-block;
  padding: 5px 10px 7px;
  background: #d60011;
  border-radius: 3px;
  color: #fff;
  font-size: 15px !important;
}

@media (min-width: 576px),
print {
  .contttl-lv1 {
    font-size: 18px !important;
    padding: 5px 18px 7px;
  }
}

#side-content {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  right: 10px;
  z-index: 99;
}

#side-content a.freeconsultation {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  background: #333;
  color: #fff;
  width: 60px;
  padding: 1.25em 0;
  font-size: 22px;
}

#side-content a.freeconsultation i {
  width: 100%;
  text-align: center;
  margin-bottom: 10px;
}

#side-content a.freeconsultation span {
  writing-mode: vertical-rl;
  letter-spacing: .2em;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
}

.nsjp {
  font-family: 'Noto Sans JP', sans-serif !important;
}

.fs-adjust-Arem {
  font-size: 1.25rem !important;
}

.fs-adjust-Brem {
  font-size: 1.5rem !important;
}

.fs-adjust-Crem {
  font-size: 1.75rem !important;
}

.fs-adjust-Drem {
  font-size: 2rem !important;
}

.fs-adjust-Erem {
  font-size: 2.25rem !important;
}

.fs-adjust-Frem {
  font-size: 2.5rem !important;
}

.fs-adjust-Grem {
  font-size: 2.75rem !important;
}

.fs-adjust-Hrem {
  font-size: 3rem !important;
}

.lh-A {
  line-height: 1 !important;
}

.lh-B {
  line-height: 1.5 !important;
}

.lh-C {
  line-height: 2 !important;
}

.lh-D {
  line-height: 2.5 !important;
}

.lh-E {
  line-height: 3 !important;
}










.main_item06 {
  display: block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  background: #fb9144;
  position: relative;
  width: 1600px;
  padding: 30px 0 30px 20px;
  color: #fff !important;
  line-height: 24px;
  margin-left: 20vw;
  margin-bottom: 20px;
  cursor: pointer;
}

.main_item06::before {
  content: "";
  position: absolute;
  left: -30px;
  top: 0;
  bottom: 0;
  width: 30px;
  height: auto;
  border-style: none;
  background: #fb9144;
  clip-path: polygon(100% 0, 100% 100%, 0 50%);
}

.main_item06--box {
  display: flex;
  justify-content: start;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}

.main_item06--box .adjust {
  display: flex;
  flex-wrap: nowrap;
  justify-content: start;
  gap: .5rem;
  width: 100%;
}

.main_item06--box.w720 {
  width: 240px !important;
}

.main_item06 h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  line-height: 1.2;
  font-size: 20px;
  font-weight: bold;
}

.txt-box {
  text-align: center;
}

.img-handshake {
  width: 70px;
}

.txt-view {
  font-size: 12px;
  font-weight: bold;
  color: #222;
  text-align: center;
}

.txt-linkview {
  background: #d60011;
  padding: .75em 1.5em;
  font-size: 18px;
  font-weight: bold;
  line-height: 1;
  text-align: center;
  border-radius: 100vh;
  width: 205px;
  box-shadow: rgba(0, 0, 0, 0.12) 0px 1px 3px, rgba(0, 0, 0, 0.24) 0px 1px 2px;
}

.dots span {
  position: relative;
  /* 基準値とする */
}

.dots span::before {
  content: "・";
  position: absolute;
  top: -.8em;
  left: 50%;
  transform: translateX(-50%);
  font-size: 18px;
  color: #fff;
}


@media (min-width: 576px),
print {
  .main_item06 {
    font-size: 14px;
    width: 1600px;
    padding: 30px 0 30px 30px;
    line-height: 24px;
    margin-left: 35px;
    margin-bottom: 20px;
  }

  .main_item06--box {
    flex-wrap: wrap;
    gap: 1rem;
  }

  .main_item06--box .adjust {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 1rem;
    width: 100%;
  }

  .main_item06--box.w720 {
    width: 400px !important;
  }

  .main_item06 h3 {
    display: flex;
    align-items: center;
    font-size: 34px;
    line-height: 1.2;
  }

  .img-handshake {
    width: 130px;
  }

  .txt-view {
    font-size: 16px;
    text-align: center;
  }

  .txt-linkview {
    padding: .75em 1.5em;
    font-size: 18px;
    width: 230px;
    margin: auto;
  }

  .dots span::before {
    top: -.8em;
    font-size: 20px;
  }
}

@media (min-width: 768px),
print {
  .main_item06 {
    font-size: 14px;
    width: 1600px;
    padding: 30px 0 30px 30px;
    line-height: 24px;
    margin-left: 80px;
    margin-bottom: 20px;
  }

  .main_item06--box {
    gap: 1rem;
  }

  .main_item06--box .adjust {
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 1rem;
    width: auto;
  }

  .main_item06--box.w720 {
    width: 470px !important;
  }

  .main_item06 h3 {
    font-size: 32px;
    font-weight: bold;
    letter-spacing: .1em;
    padding-top: 10px;
  }

  .img-handshake {
    width: 110px;
  }

  .txt-view {
    font-size: 14px;
    text-align: center;
  }

  .txt-linkview {
    padding: .75em 1.5em;
    font-size: 16px;
    width: auto;
    margin: 0;
  }

  .dots span::before {
    top: -.8em;
    font-size: 32px;
  }
}

@media (min-width: 992px),
print {
  .main_item06 {
    font-size: 14px;
    width: 1600px;
    padding: 30px 0 30px 30px;
    line-height: 0;
    margin-left: 0;
    margin-bottom: 20px;
  }

  .main_item06--box {
    gap: 2rem;
  }

  .main_item06--box .adjust {
    gap: 2rem;
  }

  .main_item06--box.w720 {
    width: 570px !important;
  }

  .main_item06 h3 {
    font-size: 32px;
    font-weight: bold;
    letter-spacing: .1em;
    padding-top: 10px;
  }

  .img-handshake {
    width: 110px;
  }

  .txt-view {
    font-size: 14px;
    text-align: center;
  }

  .txt-linkview {
    padding: .75em 1.5em;
    font-size: 20px;
  }

  .dots span::before {
    top: -.8em;
    font-size: 32px;
  }
}

@media (min-width: 1200px),
print {
  .main_item06 {
    padding: 30px 0 30px 40px;
    margin-left: 0;
  }

  .main_item06--box {
    gap: 2rem;
  }

  .main_item06--box.w720 {
    width: 700px !important;
  }

  .main_item06 h3 {
    font-size: 54px;
    font-weight: bold;
    letter-spacing: .1em;
    padding-top: 10px;
  }

  .img-handshake {
    width: 120px;
  }

  .txt-view {
    font-size: 14px;
    font-weight: bold;
    color: #222;
    text-align: center;
  }

  .txt-linkview {
    background: #d60011;
    padding: .75em 1.5em;
    font-size: 22px;
    font-weight: bold;
    border-radius: 100vh;
  }
}

.sub-linkbtn {
  display: inline-flex;
  align-items: center;
  /* background: #efefef; */
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 3px;
  line-height: 1;
  padding: 11px 15px 10px;
  margin-bottom: 10px;
}

.sub-linkbtn h3 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: bold;
  display: inline-block;
  border-right: 1px solid #333;
  padding-right: 10px;
}

.sub-linkbtn span {
  font-size: 14px;
  display: inline-block;
  padding-left: 10px;
}

.sub-linkbtn:hover h3 {
  color: #333;
}

.sub-linkbtn:hover span {
  pointer-events: auto;
  color: #0056b3;
}

@media (min-width: 768px),
print {
  .sub-linkbtn {
    margin-bottom: 0;
  }

  .sub-linkbtn h3 {
    padding-right: 20px;
  }

  .sub-linkbtn span {
    padding-left: 20px;
  }
}