/*Theme Name: PRESNS*/
@import url("https://fonts.googleapis.com/css2?family=Alata&family=Noto+Sans+JP:wght@100..900&family=Zen+Kaku+Gothic+Antique&display=swap");
@media (min-width: 768px) {
  html {
    font-size: 100%;
    scroll-padding-top: 90px;
  }
  body {
    font-family: "Noto Sans JP", sans-serif;
    margin: 0 auto;
    min-width: 1440px;
    width: 100%;
    line-height: 1.6;
    color: #222;
    background: #f5f5f5;
  }
  body img {
    height: auto;
  }
  body .imgleft {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  body .imgleft > div {
    width: 100%;
    margin-left: 80px;
  }
  body .imgleft > div p:not(:last-of-type) {
    margin-bottom: 30px;
  }
  body .imgright {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  body .imgright > div {
    width: 100%;
    margin-right: 80px;
  }
  body .imgright > div p:not(:last-of-type) {
    margin-bottom: 30px;
  }
  body .inner {
    width: 1280px;
    margin: 0 auto;
  }
  body .inner.narrow {
    width: 1200px;
  }
  body .inner.mdl {
    width: 1100px;
  }
  body .inner.mini {
    width: 1000px;
  }
  body .main_title {
    font-family: "Alata", sans-serif;
    font-size: 0.875rem;
    line-height: 1.4;
    margin-bottom: 80px;
  }
  body .main_title span {
    display: block;
    font-size: 4rem;
  }
  body .main_title.white {
    color: #fff;
  }
  body .main_title.center {
    text-align: center;
  }
  body .sub_title {
    font-size: 3rem;
    font-weight: 500;
    margin-bottom: 40px;
    line-height: 1;
  }
  body .sub_title.center {
    text-align: center;
  }
  body .sub_title.white {
    color: #fff;
  }
  body .sub_title span {
    display: block;
    font-size: 1rem;
    font-weight: normal;
    padding-top: 20px;
  }
  body .mdl_title {
    font-size: 2rem;
    font-weight: 500;
    margin-bottom: 40px;
    line-height: 1.4;
  }
  body .mdl_title.center {
    text-align: center;
  }
  body .mdl_title span {
    color: #d3060a;
  }
  body .btn {
    position: relative;
    display: block;
    font-size: 1.25rem;
    border-radius: 100px;
    text-align: center;
    width: 320px;
    color: #fff;
    padding: 12px;
    background: -webkit-gradient(linear, left top, right top, from(#3c3c3c), to(#222));
    background: linear-gradient(90deg, #3c3c3c 0%, #222 100%);
    -webkit-box-shadow: 0 4px 10px 0 rgba(255, 255, 255, 0.1) inset;
            box-shadow: 0 4px 10px 0 rgba(255, 255, 255, 0.1) inset;
  }
  body .btn:hover {
    background: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
    background: linear-gradient(180deg, #3c3c3c 0%, #222 100%);
  }
  body .btn.dot {
    background: #222;
    padding-right: 20px;
    font-weight: 500;
  }
  body .btn.dot.red {
    background: #d3060a;
    -webkit-box-shadow: 0 4px 10px 0 #f66469 inset;
            box-shadow: 0 4px 10px 0 #f66469 inset;
  }
  body .btn.dot:after {
    position: absolute;
    content: "";
    width: 8px;
    height: 8px;
    background: #fff;
    border-radius: 100px;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    right: 40px;
  }
  body .btn.dot:hover {
    -webkit-box-shadow: none;
            box-shadow: none;
  }
  body .btn.icon {
    font-weight: 500;
    width: 280px;
    padding: 16px;
  }
  body .btn.icon img {
    margin-right: 15px;
  }
  body .btn.red {
    background: #d53439;
  }
  body .btn.red:hover {
    -webkit-box-shadow: none;
            box-shadow: none;
  }
  body .view_all {
    font-size: 1.25rem;
    font-family: "Alata", sans-serif;
    color: #d53439;
    position: relative;
    display: block;
    width: 140px;
  }
  body .view_all:after {
    position: absolute;
    content: "";
    width: 8px;
    height: 8px;
    background: #d53439;
    border-radius: 100px;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    right: 0;
  }
  body .view_all:hover {
    color: #d3060a;
  }
  body .dec {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 25px;
    font-size: 0.875rem;
    margin-top: auto;
  }
  body .dec .cat {
    color: #d53439;
    border: 1px solid #d53439;
    text-align: center;
    display: block;
    border-radius: 4px;
    min-width: 100px;
    padding: 0 10px;
  }
  body .dec .cat:hover {
    background: #d53439;
    color: #fff;
  }
  body .news_list li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
    gap: 40px;
    border-bottom: 1px solid #222;
    padding-bottom: 15px;
  }
  body .news_list li:not(:last-child) {
    margin-bottom: 35px;
  }
  body .news_list li .title {
    width: 73%;
  }
  body .news_list li .title a {
    display: block;
  }
  body .news_list li .title a:hover {
    color: #d53439;
  }
  body .column_list {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[3];
        grid-template-columns: repeat(3, 1fr);
    gap: 80px 30px;
  }
  body .column_list li {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  body .column_list .thumb {
    display: block;
    max-width: 406px;
    width: 100%;
    position: relative;
  }
  body .column_list .thumb:before {
    content: "";
    display: block;
    padding-top: 56.2%;
  }
  body .column_list .thumb > img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 10px;
  }
  body .column_list .link {
    position: absolute;
    content: "";
    bottom: 10px;
    right: 10px;
    z-index: 1;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff;
    text-align: center;
  }
  body .column_list .link:hover {
    background: #d53439;
  }
  body .column_list .title a {
    display: block;
    font-weight: 500;
    margin: 10px 0;
  }
  body .column_list .title a:hover {
    color: #d53439;
  }
  body .column_list .cat {
    background: #222;
    border: 1px solid #222;
    color: #fff;
  }
  body .column_list .cat:hover {
    background: #fff;
    color: #222;
  }
  body .subnav {
    background: url("images/common/bg_subnav.svg") no-repeat;
    background-size: 100%;
    padding: 80px 0;
  }
  body .subnav ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
    gap: 40px;
  }
  body .subnav ul li {
    background: rgba(255, 255, 255, 0.8);
    border-radius: 20px;
    position: relative;
  }
  body .subnav ul li > a {
    padding: 20px;
    display: block;
    border-radius: 20px;
  }
  body .subnav ul li > a:hover {
    background: #fff;
  }
  body .subnav ul .main_title {
    font-size: 1rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    gap: 15px;
  }
  body .subnav ul .main_title span {
    line-height: 1;
    font-size: 2.5rem;
  }
  body .subnav .link {
    display: block;
    position: absolute;
    content: "";
    bottom: 20px;
    right: 20px;
    z-index: 1;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: #d3060a;
    text-align: center;
    padding: 8px 0;
  }
  body .subnav .link:hover {
    background: #d53439;
  }
  body .grecaptcha-badge {
    display: none;
  }
  header .h_blc {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99;
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 20px 0 20px 20px;
  }
  header .h_blc.active {
    background: #d3060a;
  }
  header .logo a {
    display: block;
  }
  header .h_nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    gap: 30px;
    margin-right: 110px;
  }
}

@media screen and (min-width: 768px) and (max-width: 1000px) {
  header .h_nav {
    gap: 10px;
    margin-right: 90px;
    font-size: 0.8rem;
  }
}

@media (min-width: 768px) {
  header .h_nav a {
    color: #fff;
    display: block;
    font-weight: 500;
    position: relative;
  }
  header .h_nav a:hover:after {
    position: absolute;
    content: "";
    width: 90%;
    height: 1px;
    background: #fff;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
  }
  header .menu-btn {
    position: fixed;
    top: 20px;
    right: 0;
    width: 80px;
    height: 48px;
    border-radius: 28px 0 0 28px;
    z-index: 100;
    background: #fff;
    -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1);
            box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1);
    -webkit-transition: 0.7s;
    transition: 0.7s;
  }
  header .menu-btn:hover {
    cursor: pointer;
  }
  header .menu-btn span,
  header .menu-btn span:after {
    content: "";
    display: block;
    height: 2px;
    width: 24px;
    background: #d20107;
    border-radius: 10px;
    position: absolute;
    top: 20px;
    left: 0;
    right: 0;
    margin: auto;
  }
  header .menu-btn span:after {
    top: 8px;
  }
  header #menu-btn-check:checked ~ .menu-btn span {
    top: 25px;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  header #menu-btn-check:checked ~ .menu-btn span::after {
    top: 0;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
  }
  header #menu-btn-check {
    display: none;
  }
  header #menu-btn-check:checked ~ .menu-content {
    top: 20px;
  }
  header .menu-content {
    background: #fff;
    border-radius: 20px 0 0 20px;
    width: 99%;
    max-height: 780px;
    height: 100%;
    color: #fff;
    position: fixed;
    right: 0;
    top: -100%;
    -webkit-transition: 0.7s;
    transition: 0.7s;
    padding: 20px 0 60px 20px;
    font-weight: 500;
    z-index: 99;
    -webkit-box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.1);
            box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.1);
  }
  header .menu-content nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    overflow: scroll;
    background: url("images/common/bg_nav.webp") no-repeat;
    background-size: cover;
    border-radius: 20px;
    height: 100%;
  }
  header .menu-content .big_logo {
    width: 65%;
    text-align: center;
  }
  header .menu-content .big_logo p {
    width: 400px;
    margin: 0 auto;
  }
  header .menu-content .big_logo span {
    display: block;
    font-weight: 500;
    margin: -10px 0 0 60px;
  }
  header .menu-content .nav_right {
    width: 35%;
  }
  header .menu-content .nav_right .nav {
    padding-left: 50px;
    margin-bottom: 40px;
  }
  header .menu-content .nav_right .nav li {
    margin-bottom: 20px;
  }
  header .menu-content .nav_right .nav li a {
    display: inline-block;
    font-weight: 500;
    position: relative;
  }
  header .menu-content .nav_right .nav li a:hover:after {
    position: absolute;
    content: "";
    width: 90%;
    height: 1px;
    background: #fff;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
  }
  header .menu-content .nav_right .btnarea .btn {
    width: 240px;
    font-size: 1rem;
    padding: 12px;
    margin-bottom: 15px;
  }
  header .menu-content .nav_right .btnarea .red {
    background: #e42e33;
  }
  header .menu-content .nav_right .btnarea img {
    width: 24px;
  }
  header .fv {
    position: relative;
    margin-bottom: 160px;
  }
  header .fv .bg_fv,
  header .fv .bg_fv_sub {
    width: 100%;
  }
  header .fv .copy {
    position: absolute;
    top: 35%;
    -webkit-transform: translateY(-35%);
            transform: translateY(-35%);
    color: #fff;
  }
  header .fv .copy strong {
    font-size: 4rem;
    font-weight: bold;
    line-height: 1.4;
  }
  header .fv .copy p {
    font-size: 1.5rem;
    font-weight: bold;
    margin: 20px auto 60px;
  }
  header .fv .copy ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 25px;
  }
  header .fv .fv_img {
    position: absolute;
    top: 140px;
    right: 30px;
  }
  header .fv .main_title {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    left: 80px;
    color: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    gap: 20px;
    font-size: 1.25rem;
    margin-bottom: 0;
  }
  header .fv .main_title span {
    line-height: 1;
    text-transform: uppercase;
  }
  header .fv .breadcrumbs {
    position: absolute;
    bottom: 80px;
    right: 80px;
    font-size: 0.875rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 5px;
  }
  header .fv .breadcrumbs span {
    display: block;
    max-width: 300px;
  }
  header .fv .breadcrumbs a {
    text-decoration: underline;
  }
  header .fv .breadcrumbs a:hover {
    color: #d3060a;
  }
  header.company .active {
    background: #222;
  }
  header.company .menu-btn span,
  header.company .menu-btn span:after {
    background: #222;
  }
  header.company nav {
    background: #222;
  }
  header.company .fv {
    color: #fff;
  }
  header.company .fv .gaiyo {
    position: absolute;
    bottom: 80px;
  }
  header.company .fv .gaiyo h1 {
    font-size: 2.5rem;
    margin-bottom: 40px;
  }
  header.company .fv .gaiyo li {
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 30px;
  }
  header.company .fv .gaiyo li:not(:last-child) {
    margin-bottom: 15px;
  }
  header.company .fv .gaiyo h2 {
    background: #474747;
    width: 200px;
    text-align: center;
    font-weight: 500;
    padding: 2px;
  }
  main {
    margin-bottom: 240px;
  }
  main.top .philosophy {
    margin-bottom: -40px;
  }
  main.top .philosophy h2 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    font-weight: 500;
    margin-bottom: 60px;
  }
  main.top .philosophy h2 span {
    font-family: "Alata", sans-serif;
    font-size: 3rem;
    line-height: 1;
    display: block;
  }
  main.top .philosophy h2 > span {
    margin: 0 20px 25px;
  }
  main.top .philosophy h2 div {
    text-align: center;
  }
  main.top .philosophy h2 div span {
    font-size: 8rem;
  }
  main.top .philosophy .blc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  main.top .philosophy .blc ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  main.top .philosophy .blc ul li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
    width: 200px;
    height: 200px;
    border: 1px solid #222;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.7);
    -webkit-filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
  }
  main.top .philosophy .blc ul li:not(:first-child) {
    margin-left: -20px;
  }
  main.top .philosophy .blc ul li span {
    color: #d3060a;
    font-family: "Alata", sans-serif;
    font-size: 1.5rem;
    display: block;
  }
  main.top .philosophy .blc h3 {
    font-size: 2.25rem;
    font-weight: bold;
  }
  main.top .philosophy .blc h3 span {
    font-size: 2rem;
  }
  main.top .philosophy .blc h3 strong {
    display: inline-block;
    text-align: center;
    font-weight: 500;
    color: #fff;
    background: url("images/top/bg_philosophy.svg") no-repeat;
    background-size: 100%;
    width: 160px;
    height: 51px;
    margin-right: 15px;
    line-height: 1.3;
  }
  main.top .strength {
    margin-bottom: 200px;
  }
  main.top .strength .txt {
    position: relative;
    z-index: -1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    overflow: hidden;
    white-space: nowrap;
  }
  main.top .strength .txt p {
    font-size: 16.25rem;
    font-family: "Alata", sans-serif;
    color: rgba(178, 178, 178, 0.1);
    line-height: 0.8;
    display: inline-block;
    padding-right: 100px;
    -webkit-animation: marquee 20s linear infinite;
            animation: marquee 20s linear infinite;
  }
  @-webkit-keyframes marquee {
    0% {
      -webkit-transform: translateX(0);
              transform: translateX(0);
    }
    100% {
      -webkit-transform: translateX(-100%);
              transform: translateX(-100%);
    }
  }
  @keyframes marquee {
    0% {
      -webkit-transform: translateX(0);
              transform: translateX(0);
    }
    100% {
      -webkit-transform: translateX(-100%);
              transform: translateX(-100%);
    }
  }
  main.top .strength .blc {
    background: url("images/top/bg_strength.svg") no-repeat;
    background-size: 100%;
    border-radius: 30px;
    color: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    padding: 50px;
    position: relative;
    z-index: 1;
    height: 480px;
  }
  main.top .strength .blc div {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  main.top .strength .blc div h2 {
    font-size: 3rem;
    line-height: 1.4;
  }
  main.top .strength .blc div strong {
    display: block;
    width: 385px;
    color: #222;
    font-size: 1.5rem;
    font-weight: 500;
    background: #fff;
    text-align: center;
    margin: 20px 0;
  }
  main.top .strength .blc div p {
    margin-top: auto;
  }
  main.top .strength .blc img {
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
  }
  main.top .strength .blc .btn {
    position: absolute;
    bottom: 25px;
    right: 25px;
  }
  main.top .about {
    background: url("images/top/bg_about.svg") no-repeat;
    background-size: 100%;
    padding: 280px 0 310px;
    position: relative;
    z-index: 1;
  }
}

@media screen and (min-width: 768px) and (min-width: 1441px) {
  main.top .about {
    padding: 280px 0 33vw;
  }
}

@media (min-width: 768px) {
  main.top .about:after {
    position: absolute;
    content: "";
    background: url("images/top/deco_about.svg") no-repeat;
    background-size: 100%;
    top: 52%;
    -webkit-transform: translateY(-52%);
            transform: translateY(-52%);
    left: 0;
    width: 100%;
    height: 23vw;
    z-index: -1;
  }
}

@media screen and (min-width: 768px) and (min-width: 1441px) {
  main.top .about:after {
    top: 40%;
    -webkit-transform: translateY(-40%);
            transform: translateY(-40%);
  }
}

@media (min-width: 768px) {
  main.top .about h2 {
    margin-bottom: 80px;
    font-weight: bold;
    color: #fff;
    text-align: center;
    font-size: 1.25rem;
  }
  main.top .about h2 span {
    font-size: 2.5rem;
    display: block;
  }
  main.top .about ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 40px;
    margin-bottom: 100px;
  }
  main.top .about ul li {
    width: 32%;
  }
  main.top .about ul li:not(:nth-child(2)) {
    margin-top: 40px;
  }
  main.top .about ul div {
    border-radius: 20px;
    background: #f9f9f9;
    -webkit-box-shadow: 0 10px 4px 0 #fff inset;
            box-shadow: 0 10px 4px 0 #fff inset;
    -webkit-filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
    padding: 15px;
    text-align: center;
    font-weight: 500;
    font-size: 1.25rem;
    position: relative;
  }
  main.top .about ul div:after {
    position: absolute;
    content: "";
    width: 30px;
    height: 4px;
    background: #f9f9f9;
    -webkit-box-shadow: 0 10px 4px 0 #fff inset;
            box-shadow: 0 10px 4px 0 #fff inset;
    -webkit-filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
    -webkit-transform: rotate(56deg);
            transform: rotate(56deg);
    bottom: -10px;
    left: 40px;
    z-index: -1;
  }
  main.top .about ul img {
    display: block;
    margin: 40px auto 0;
  }
  main.top .about p {
    color: #fff;
    text-align: center;
    font-size: 1.5rem;
    font-weight: 500;
    margin-bottom: 80px;
  }
  main.top .about .btn {
    margin: 0 auto;
  }
  main.top .service {
    padding: 100px 0 200px;
  }
  main.top .service .blc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 130px;
  }
  main.top .service .blc ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
    -ms-grid-rows: (1fr)[2];
        grid-template-rows: repeat(2, 1fr);
    gap: 25px;
    position: relative;
  }
  main.top .service .blc ul:after {
    position: absolute;
    content: "";
    background: url("images/top/bg_service.webp") no-repeat;
    background-size: 100%;
    width: 356px;
    height: 356px;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    left: 0;
    right: 0;
    margin: auto;
    z-index: -1;
  }
  main.top .service .blc ul li {
    width: 240px;
    height: 240px;
    border-radius: 50%;
    border: 1px solid #222;
    background: #f9f9f9;
    stroke-width: 1px;
    stroke: #222;
    -webkit-filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    position: relative;
  }
  main.top .service .blc ul li:first-child {
    grid-column: span 2 / span 2;
    margin: 0 auto;
  }
  main.top .service .blc ul li:nth-child(2) {
    -ms-grid-column: 2;
        grid-column-start: 2;
  }
  main.top .service .blc ul li:not(:first-child) {
    -ms-grid-row: 2;
        grid-row-start: 2;
    margin-top: -40px;
  }
  main.top .service .blc ul li span {
    position: absolute;
    top: 40px;
    font-family: "Alata", sans-serif;
    font-size: 2rem;
    color: #959595;
  }
  main.top .service .blc ul li p {
    font-weight: bold;
    font-size: 1.25rem;
    padding-top: 20px;
  }
  main.top .service .blc > div {
    font-weight: 500;
  }
  main.top .service .blc > div > span {
    display: block;
    width: 250px;
    border-radius: 4px;
    background: #d53439;
    color: #fff;
    text-align: center;
    font-weight: bold;
    position: relative;
    margin-bottom: 20px;
  }
  main.top .service .blc > div > span:after {
    position: absolute;
    content: "";
    width: 20px;
    height: 2px;
    background: #d53439;
    -webkit-transform: rotate(47deg);
            transform: rotate(47deg);
    bottom: -5px;
    left: 30px;
    z-index: -1;
  }
  main.top .service .blc > div h3 {
    font-size: 2.25rem;
    font-weight: bold;
    margin-bottom: 40px;
  }
  main.top .service .blc > div h3 span {
    color: #959595;
  }
  main.top .service .blc > div h3 span.red {
    color: #d3060a;
  }
  main.top .service .blc > div .btn {
    margin: 80px 0 0 auto;
  }
  main.top .bg_black {
    background: url("images/top/bg_black.svg") no-repeat;
    background-size: cover;
    border-radius: 40px;
    padding: 200px 0 280px;
    margin-bottom: 240px;
    overflow-x: hidden;
  }
  main.top .works {
    margin-bottom: 160px;
  }
  main.top .works ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[5];
        grid-template-columns: repeat(5, 1fr);
    gap: 50px;
    margin-bottom: 40px;
  }
  main.top .works li {
    color: #fff;
    position: relative;
    font-size: 0.875rem;
  }
  main.top .works li:first-child {
    margin-top: 40px;
  }
  main.top .works li:nth-child(2) {
    margin-top: 20px;
  }
  main.top .works li:nth-child(4) {
    margin-top: -20px;
  }
  main.top .works li:nth-child(5) {
    margin-top: -40px;
  }
  main.top .works .thumb {
    max-width: 160px;
    width: 100%;
    position: relative;
    margin-bottom: 20px;
  }
  main.top .works .thumb:before {
    content: "";
    display: block;
    padding-top: 206.25%;
  }
  main.top .works .thumb img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  main.top .works .btn {
    position: absolute;
    right: -40px;
    bottom: -10px;
    width: 64px;
    height: 64px;
    font-size: 0.75rem;
    -webkit-box-shadow: none;
            box-shadow: none;
    padding: 10px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  main.top .works .btn:after {
    width: 4px;
    height: 4px;
    right: 10px;
  }
  main.top .works .btn:hover {
    -webkit-box-shadow: 0 4px 10px 0 #f66469 inset;
            box-shadow: 0 4px 10px 0 #f66469 inset;
  }
  main.top .works h3 a {
    display: block;
    margin-bottom: 10px;
  }
  main.top .works .cat {
    display: inline-block;
    background: #555;
    border-radius: 4px;
    text-align: center;
    min-width: 120px;
  }
  main.top .works .cat:hover {
    background: #959595;
  }
  main.top .works .view_all {
    margin-left: auto;
    color: #fff;
  }
  main.top .works .view_all:after {
    background: #fff;
  }
  main.top .works .view_all:hover {
    color: #d3060a;
  }
  main.top .voice .swiper {
    position: relative;
    overflow: inherit;
  }
  main.top .voice .swiper-slide {
    border-radius: 10px;
    background: #fff;
    -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.25);
            box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.25);
    padding: 20px;
    font-weight: 500;
    height: auto;
  }
  main.top .voice .swiper-slide.swiper-slide-prev, main.top .voice .swiper-slide.swiper-slide-next {
    opacity: 0.8;
  }
  main.top .voice .swiper-slide img {
    position: absolute;
    top: -20px;
    left: 20px;
  }
  main.top .voice .swiper-slide h3 {
    width: 80%;
    margin-left: auto;
    border-bottom: 1px solid #9e9e9e;
    margin-bottom: 30px;
    padding-bottom: 20px;
  }
  main.top .voice .swiper-slide span {
    color: #d3060a;
  }
  main.top .voice .swiper-button-prev,
  main.top .voice .swiper-button-next {
    top: 45%;
  }
  main.top .voice .swiper-button-prev:after,
  main.top .voice .swiper-button-next:after {
    position: absolute;
    content: "";
    width: 48px;
    height: 48px;
  }
  main.top .voice .swiper-button-prev {
    left: 27%;
  }
  main.top .voice .swiper-button-prev:after {
    background: url("images/top/icon_prev.svg");
  }
  main.top .voice .swiper-button-next {
    right: 27%;
  }
  main.top .voice .swiper-button-next:after {
    background: url("images/top/icon_next.svg");
  }
  main.top .voice .swiper-pagination {
    position: relative;
    bottom: 0;
    padding-top: 40px;
  }
  main.top .voice .swiper-pagination-bullet {
    width: 6px;
    height: 6px;
    margin: 0 5px !important;
    background: #d9d9d9;
    opacity: 1;
  }
  main.top .voice .swiper-pagination-bullet-active {
    background: #d3060a;
  }
  main.top .news {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    position: relative;
    margin-bottom: 160px;
  }
  main.top .news .news_list {
    width: 900px;
  }
  main.top .news .view_all {
    position: absolute;
    bottom: 0;
    left: 0;
  }
  main.top .column {
    position: relative;
    margin-bottom: 240px;
  }
  main.top .column .main_title {
    margin-bottom: 40px;
  }
  main.top .column .view_all {
    position: absolute;
    top: 60px;
    right: 0;
  }
  main.top .faq {
    background: #d3060a;
    padding: 40px 0 80px;
    border-radius: 30px;
  }
  main.top .faq .main_title {
    margin-bottom: 40px;
  }
  main.top .faq li:not(:last-child) {
    margin-bottom: 25px;
  }
  main.top .faq h3 {
    cursor: pointer;
    position: relative;
    padding: 8px 15px;
    background: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 30px;
    border-radius: 8px;
    margin-bottom: 10px;
  }
  main.top .faq h3:before, main.top .faq h3:after {
    content: "";
    position: absolute;
    right: 20px;
    width: 22px;
    height: 2px;
    border-radius: 8px;
    background: #222;
    -webkit-transition: 0.3s;
    transition: 0.3s;
  }
  main.top .faq h3:before {
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  main.top .faq h3:after {
    top: 47%;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
  }
  main.top .faq h3.open:after {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  main.top .faq h3 .q {
    font-size: 2rem;
    line-height: 1;
    font-family: "Alata", sans-serif;
    color: #d3060a;
  }
  main.top .faq h3 .title {
    width: 89%;
    font-weight: bold;
  }
  main.top .faq .cont {
    display: none;
    padding: 15px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    color: #fff;
  }
  main.top .faq .cont .wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 30px;
  }
  main.top .faq .cont .wrap .a {
    font-family: "Alata", sans-serif;
    font-size: 2rem;
    line-height: 1;
  }
  main.top .faq .cont .wrap .txt {
    width: 85%;
    font-weight: bold;
  }
  main.sub .about .mission {
    gap: 80px;
    margin-bottom: 240px;
  }
  main.sub .about .mission img {
    border-radius: 10px;
  }
  main.sub .about .sns {
    margin-bottom: 200px;
    position: relative;
  }
  main.sub .about .sns:after {
    position: absolute;
    content: "";
    bottom: -120px;
    left: 0;
    right: 0;
    margin: auto;
    width: 50px;
    height: 45px;
    background: url("images/common/icon_arrow_big.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .about .sns .sub_title {
    margin-bottom: 80px;
  }
  main.sub .about .sns > ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[3];
        grid-template-columns: repeat(3, 1fr);
    gap: 30px;
  }
  main.sub .about .sns > ul > li {
    background: #fff;
    border-radius: 20px;
    padding: 40px 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  main.sub .about .sns > ul h3 {
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
    margin-bottom: 20px;
  }
  main.sub .about .sns > ul h3 span {
    color: #d53439;
    font-size: 2rem;
  }
  main.sub .about .sns > ul img {
    display: block;
    margin: 0 auto 20px;
  }
  main.sub .about .sns > ul ul {
    padding-left: 40px;
    font-size: 0.875rem;
    position: relative;
    margin: auto auto 60px;
  }
  main.sub .about .sns > ul ul:after {
    position: absolute;
    content: "";
    bottom: -40px;
    left: 0;
    right: 0;
    margin: auto;
    width: 26px;
    height: 16px;
    background: url("images/common/icon_arrow.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .about .sns > ul ul li {
    position: relative;
  }
  main.sub .about .sns > ul ul li:not(:last-child) {
    margin-bottom: 5px;
  }
  main.sub .about .sns > ul ul li:after {
    position: absolute;
    content: "";
    top: 5px;
    left: -25px;
    width: 16px;
    height: 13px;
    background: url("images/about/icon_check.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .about .sns > ul h4 {
    color: #d3060a;
    border: 2px solid #d3060a;
    border-radius: 10px;
    text-align: center;
    font-size: 1.25rem;
    font-weight: bold;
    padding: 10px;
  }
  main.sub .about .outgoing {
    position: relative;
    margin-bottom: 70px;
  }
  main.sub .about .outgoing img {
    position: absolute;
    top: -60px;
    right: 40px;
  }
  main.sub .about .outgoing > p {
    text-align: center;
  }
  main.sub .about .outgoing > p span {
    color: #d3060a;
  }
  main.sub .about .outgoing .bg {
    background: url("images/about/bg_outgoing.svg") no-repeat;
    background-size: 100%;
    padding: 80px 80px 250px;
  }
}

@media screen and (min-width: 768px) and (min-width: 1441px) {
  main.sub .about .outgoing .bg {
    padding: 80px 80px 27vw;
  }
}

@media (min-width: 768px) {
  main.sub .about .outgoing .bg > ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
    gap: 60px;
  }
  main.sub .about .outgoing .bg > ul > li {
    background: #fff;
    border-radius: 20px;
    padding: 60px 20px 40px;
    position: relative;
  }
  main.sub .about .outgoing .bg > ul > li:last-child h3 {
    background: #50878e;
  }
  main.sub .about .outgoing .bg > ul > li:last-child h3:after {
    background: #50878e;
  }
  main.sub .about .outgoing .bg > ul > li:last-child span {
    color: #50878e;
  }
  main.sub .about .outgoing .bg > ul > li h3 {
    display: block;
    width: 400px;
    border-radius: 4px;
    background: #d53439;
    color: #fff;
    text-align: center;
    font-weight: bold;
    font-size: 1.5rem;
    padding: 5px;
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    margin: auto;
  }
  main.sub .about .outgoing .bg > ul > li h3:after {
    position: absolute;
    content: "";
    width: 30px;
    height: 4px;
    background: #d53439;
    -webkit-transform: rotate(47deg);
            transform: rotate(47deg);
    bottom: -8px;
    left: 30px;
  }
  main.sub .about .outgoing .bg > ul > li li {
    border-bottom: 2px solid #f2f2f2;
    padding-bottom: 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 20px;
  }
  main.sub .about .outgoing .bg > ul > li li:not(:last-child) {
    margin-bottom: 20px;
  }
  main.sub .about .outgoing .bg > ul > li li span {
    font-family: "Alata", sans-serif;
    color: #d3060a;
    font-size: 2.25rem;
    line-height: 1;
  }
  main.sub .about .outgoing .bg > ul > li li h4 {
    font-size: 1.5rem;
    font-weight: 500;
    margin-bottom: 10px;
  }
  main.sub .about .reason {
    margin-bottom: 240px;
  }
  main.sub .about .reason .sub_title {
    margin-bottom: 100px;
  }
  main.sub .about .reason li {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  main.sub .about .reason li:not(:last-child) {
    margin-bottom: 100px;
  }
  main.sub .about .reason li img {
    border-radius: 10px;
  }
  main.sub .about .reason li h3 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 20px;
    margin-bottom: 40px;
  }
  main.sub .about .reason li h3 .numb {
    color: #d3060a;
    font-family: "Alata", sans-serif;
  }
  main.sub .about .reason li h3 .numb em {
    display: block;
    font-size: 4rem;
    line-height: 1;
  }
  main.sub .about .reason li h3 .mdl_title {
    margin-bottom: 0;
  }
  main.sub .about .continue {
    margin-bottom: 180px;
  }
  main.sub .about .continue > p {
    text-align: center;
  }
  main.sub .about .continue .bg {
    background: url("images/about/bg_continue.svg") no-repeat;
    background-size: 100%;
    padding: 100px 80px 220px;
  }
}

@media screen and (min-width: 768px) and (min-width: 1441px) {
  main.sub .about .continue .bg {
    padding: 80px 80px 26vw;
  }
}

@media (min-width: 768px) {
  main.sub .about .continue .bg ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[3];
        grid-template-columns: repeat(3, 1fr);
    gap: 70px;
  }
  main.sub .about .continue .bg ul li {
    font-weight: 500;
    background: #fff;
    border-radius: 10px;
    padding: 60px 20px 40px;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  main.sub .about .continue .bg ul li:first-child h3 {
    background: url("images/about/bg_continue01.svg") no-repeat;
    background-size: cover;
    width: 160px;
  }
  main.sub .about .continue .bg ul li:nth-child(2) h3 {
    background: url("images/about/bg_continue02.svg") no-repeat;
    background-size: cover;
    width: 160px;
  }
  main.sub .about .continue .bg ul li:last-child h3 {
    background: url("images/about/bg_continue03.svg") no-repeat;
    background-size: cover;
    width: 235px;
  }
  main.sub .about .continue .bg ul li:not(:last-child):after {
    position: absolute;
    content: "";
    background: url("images/about/continue_arrow.svg") no-repeat;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    right: -50px;
    width: 27px;
    height: 66px;
  }
  main.sub .about .continue .bg ul li h3 {
    display: block;
    border-radius: 4px;
    color: #fff;
    text-align: center;
    font-size: 2rem;
    height: 50px;
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    margin: auto;
  }
  main.sub .about .continue .bg ul li h4 {
    text-align: center;
    font-size: 1.5rem;
    margin-bottom: 20px;
  }
  main.sub .about .continue .bg ul li h4 span {
    color: #d3060a;
  }
  main.sub .about .continue .bg ul li img {
    display: block;
    margin: 0 auto 20px;
  }
  main.sub .about .continue .bg ul li p {
    margin-top: auto;
  }
  main.sub .service .gaiyo {
    margin-bottom: 100px;
  }
  main.sub .service .gaiyo p {
    text-align: center;
  }
  main.sub .service .gaiyo .bg {
    background: url("images/service/bg_gaiyo.svg") no-repeat;
    background-size: 100%;
    padding: 120px 0 240px;
  }
}

@media screen and (min-width: 768px) and (min-width: 1441px) {
  main.sub .service .gaiyo .bg {
    padding: 120px 0 25vw;
  }
}

@media (min-width: 768px) {
  main.sub .service .gaiyo .bg > ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[3];
        grid-template-columns: repeat(3, 1fr);
    gap: 30px;
  }
  main.sub .service .gaiyo .bg > ul > li {
    font-weight: 500;
    background: #fff;
    border-radius: 10px;
    padding: 70px 20px 40px;
    position: relative;
  }
  main.sub .service .gaiyo .bg > ul > li span {
    display: block;
    border-radius: 4px;
    color: #fff;
    background: #d3060a;
    text-align: center;
    font-size: 2.5rem;
    border-radius: 50%;
    font-family: "Alata", sans-serif;
    font-weight: bold;
    width: 80px;
    height: 80px;
    padding: 8px;
    position: absolute;
    top: -40px;
    left: 0;
    right: 0;
    margin: auto;
  }
  main.sub .service .gaiyo .bg > ul > li img {
    display: block;
    margin: 0 auto 25px;
  }
  main.sub .service .gaiyo .bg > ul > li h3 {
    color: #d3060a;
    font-size: 1.625rem;
    font-weight: bold;
    text-align: center;
    margin-bottom: 20px;
  }
  main.sub .service .gaiyo .bg > ul > li ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 8px;
    font-size: 0.875rem;
    font-weight: 500;
  }
  main.sub .service .gaiyo .bg > ul > li ul li {
    border-radius: 4px;
    text-align: center;
    background: #f2f2f2;
    padding: 2px 15px;
  }
  main.sub .service .point {
    background: #fff;
    border-radius: 30px;
    padding: 100px 140px 80px;
    margin-bottom: 240px;
    position: relative;
  }
  main.sub .service .point .sub_title {
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
  }
  main.sub .service .point p {
    text-align: center;
  }
  main.sub .service .point ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin: 40px auto 160px;
    position: relative;
  }
  main.sub .service .point ul:after {
    position: absolute;
    content: "";
    bottom: -120px;
    left: 0;
    right: 0;
    margin: auto;
    width: 50px;
    height: 45px;
    background: url("images/common/icon_arrow_big.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .service .point ul li {
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: rgba(242, 242, 242, 0.8);
    text-align: center;
    padding: 60px 0;
  }
  main.sub .service .point ul li:not(:last-child) {
    margin-right: -20px;
  }
  main.sub .service .point ul img {
    margin: 0 auto 30px;
  }
  main.sub .service .point > img {
    position: absolute;
    top: 310px;
    right: 120px;
  }
  main.sub .service .point table {
    width: 100%;
    text-align: center;
    font-size: 1.25rem;
    font-weight: 500;
    border-collapse: separate;
    border-spacing: 4px;
    margin: 80px auto 0;
    position: relative;
  }
  main.sub .service .point table:after {
    position: absolute;
    content: "";
    border: 4px solid #ffbc04;
    width: 99.2%;
    height: 172px;
    top: 76px;
    left: 4px;
  }
  main.sub .service .point table tr:last-child td:first-child {
    border-radius: 0 0 0 8px;
  }
  main.sub .service .point table tr:last-child td:last-child {
    border-radius: 0 0 8px 0;
  }
  main.sub .service .point table th {
    background: #4f4f4f;
    color: #fff;
    padding: 20px;
    border-radius: 8px 8px 0 0;
    width: 30%;
  }
  main.sub .service .point table th:first-child {
    width: 100px;
  }
  main.sub .service .point table th:nth-child(2) {
    background: #d86365;
  }
  main.sub .service .point table th:nth-child(3) {
    background: #d63f42;
  }
  main.sub .service .point table th:last-child {
    background: #d3060a;
  }
  main.sub .service .point table td {
    background: #f8f8f8;
    padding: 20px;
  }
  main.sub .service .point table td:first-child {
    background: #e1e1e1;
  }
  main.sub .service .strategy {
    margin-bottom: 240px;
  }
  main.sub .service .strategy p {
    text-align: center;
    margin-bottom: 40px;
  }
  main.sub .service .strategy p span {
    color: #d3060a;
  }
  main.sub .service .design {
    margin-bottom: 240px;
  }
  main.sub .service .design > p {
    text-align: center;
    margin-bottom: 20px;
  }
  main.sub .service .design .blc .line {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin: 80px auto 40px;
  }
  main.sub .service .design .blc .line p {
    width: 33%;
    position: relative;
    color: #fff;
    text-align: center;
    font-weight: 500;
    font-size: 1.25rem;
    padding: 8px;
    background: #d86365;
  }
  main.sub .service .design .blc .line p:after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    margin: auto;
    top: 0;
    right: -20px;
    border-style: solid;
    border-color: transparent transparent transparent #d86365;
    border-width: 24px 0 24px 20px;
    z-index: 10;
  }
  main.sub .service .design .blc .line p:nth-child(2) {
    background: #d63f42;
  }
  main.sub .service .design .blc .line p:nth-child(2):after {
    border-color: transparent transparent transparent #d63f42;
  }
  main.sub .service .design .blc .line p:nth-child(3) {
    background: #d3060a;
  }
  main.sub .service .design .blc .line p:nth-child(3):after {
    border-color: transparent transparent transparent #d3060a;
  }
  main.sub .service .design .blc ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[3];
        grid-template-columns: repeat(3, 1fr);
    gap: 40px;
  }
  main.sub .service .design .blc ul .balloon {
    position: relative;
    background: #fff;
    border-radius: 8px;
    padding: 10px;
    text-align: center;
    font-size: 1.25rem;
    -webkit-filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
    margin-bottom: 30px;
  }
  main.sub .service .design .blc ul .balloon:before {
    position: absolute;
    content: "";
    top: 100%;
    left: 50%;
    margin-left: -10px;
    border: 8px solid transparent;
    border-top: 10px solid #fff;
  }
  main.sub .service .design .blc ul img {
    margin: 0 auto 40px;
  }
  main.sub .service .effect {
    margin-bottom: 50px;
  }
  main.sub .service .effect > p {
    text-align: center;
    margin-bottom: -30px;
  }
  main.sub .service .effect .bg {
    background: url("images/service/bg_effect.svg") no-repeat;
    background-size: 100%;
    padding: 110px 0 190px;
  }
}

@media screen and (min-width: 768px) and (min-width: 1441px) {
  main.sub .service .effect .bg {
    padding: 110px 0 21vw;
  }
}

@media (min-width: 768px) {
  main.sub .service .effect .bg > ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
    gap: 60px;
  }
  main.sub .service .effect .bg > ul > li {
    background: #fff;
    border-radius: 20px;
    padding: 40px 20px;
    position: relative;
  }
  main.sub .service .effect .bg > ul .blc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 20px;
    font-weight: 500;
    margin-bottom: 60px;
  }
  main.sub .service .effect .bg > ul .blc h3 {
    color: #fff;
    text-align: center;
    font-size: 2rem;
    background: url("images/service/bg_effect01.svg") no-repeat;
    background-size: cover;
    width: 200px;
    height: 50px;
    border-radius: 4px;
  }
  main.sub .service .effect .bg > ul .blc h3.green {
    background: url("images/service/bg_effect02.svg") no-repeat;
    background-size: cover;
  }
  main.sub .service .effect .bg > ul .blc p {
    font-size: 1.125rem;
  }
  main.sub .service .effect .bg > ul .box {
    background: #f2f2f2;
    border-radius: 4px;
    padding: 30px 10px 20px;
    position: relative;
  }
  main.sub .service .effect .bg > ul .box.gray {
    margin-bottom: 80px;
  }
  main.sub .service .effect .bg > ul .box.gray:after {
    position: absolute;
    content: "";
    bottom: -45px;
    left: 0;
    right: 0;
    margin: auto;
    width: 40px;
    height: 26px;
    background: url("images/common/icon_arrow.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .service .effect .bg > ul .box.red h4 {
    background: #db9092;
  }
  main.sub .service .effect .bg > ul .box.red h4 span {
    background: #d3060a;
  }
  main.sub .service .effect .bg > ul .box.red h4 span:after {
    border-color: transparent transparent transparent #d3060a;
  }
  main.sub .service .effect .bg > ul .box.red li:after {
    background: url("images/service/icon_check_red.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .service .effect .bg > ul .box h4 {
    color: #fff;
    background: #818181;
    border-radius: 4px;
    text-align: center;
    padding: 5px 0;
    width: 540px;
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    margin: auto;
  }
  main.sub .service .effect .bg > ul .box h4 span {
    display: block;
    width: 80px;
    height: 100%;
    padding: 5px;
    background: #4f4f4f;
    border-radius: 4px 0 0 4px;
    position: absolute;
    top: 0;
    left: 0;
  }
  main.sub .service .effect .bg > ul .box h4 span:after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    margin: auto;
    top: 0;
    right: -10px;
    border-style: solid;
    border-color: transparent transparent transparent #4f4f4f;
    border-width: 18px 0 18px 10px;
    z-index: 10;
  }
  main.sub .service .effect .bg > ul .box ul {
    padding-left: 30px;
    margin-bottom: 10px;
  }
  main.sub .service .effect .bg > ul .box ul li {
    position: relative;
  }
  main.sub .service .effect .bg > ul .box ul li:after {
    position: absolute;
    content: "";
    background: url("images/service/icon_check.svg") no-repeat;
    background-size: 100%;
    width: 16px;
    height: 16px;
    top: 5px;
    left: -25px;
  }
  main.sub .service .effect .bg > ul .box strong {
    display: block;
    text-align: right;
    color: #d3060a;
    line-height: 1.2;
  }
  main.sub .service .effect .bg > ul .box strong div {
    display: inline-block;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(80%, transparent), color-stop(80%, #ffde4d));
    background: linear-gradient(transparent 80%, #ffde4d 80%);
  }
  main.sub .service .effect .bg > ul .box strong span {
    font-size: 1.25rem;
  }
  main.sub .service .different {
    margin-bottom: 240px;
  }
  main.sub .service .different table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 4px;
    margin: 80px auto 0;
    position: relative;
  }
  main.sub .service .different table:after {
    position: absolute;
    content: "";
    border: 2px solid #d3060a;
    border-radius: 8px;
    width: 197px;
    height: 98%;
    top: 5px;
    left: 230px;
  }
  main.sub .service .different table tr:nth-child(2) td:first-child {
    border-radius: 8px 0 0 0;
  }
  main.sub .service .different table tr:last-child td:first-child {
    border-radius: 0 0 0 8px;
  }
  main.sub .service .different table tr:last-child td:last-child {
    border-radius: 0 0 8px 0;
  }
  main.sub .service .different table th {
    background: #808080;
    color: #fff;
    text-align: center;
    vertical-align: middle;
    border-radius: 8px 8px 0 0;
    padding: 20px 0;
    width: 20%;
  }
  main.sub .service .different table th:first-child {
    opacity: 0;
  }
  main.sub .service .different table th.red {
    background: #d3060a;
    font-weight: 500;
    font-size: 1.25rem;
  }
  main.sub .service .different table td {
    padding: 20px 15px;
    text-align: center;
    background: #fff;
  }
  main.sub .service .different table td:first-child {
    background: #4f4f4f;
    color: #fff;
    font-weight: 500;
    text-align: left;
    width: 23%;
  }
  main.sub .plan .price {
    margin-bottom: 30px;
  }
  main.sub .plan .price .bg {
    background: url("images/plan/bg_price.svg") no-repeat;
    background-size: 100%;
    padding: 30px 0 60px;
  }
}

@media screen and (min-width: 768px) and (min-width: 1441px) {
  main.sub .plan .price .bg {
    padding: 30px 0 17vw;
  }
}

@media (min-width: 768px) {
  main.sub .plan .price .js-scrollable {
    padding-top: 20px;
  }
  main.sub .plan .price table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 4px;
    font-size: 1.25rem;
    margin-bottom: 20px;
  }
  main.sub .plan .price table tr:nth-child(2) td:first-child {
    border-radius: 8px 0 0 0;
  }
  main.sub .plan .price table tr:last-child td:first-child {
    border-radius: 0 0 0 8px;
  }
  main.sub .plan .price table tr:last-child td:last-child {
    border-radius: 0 0 8px 0;
  }
  main.sub .plan .price table th {
    color: #fff;
    text-align: center;
    vertical-align: middle;
    border-radius: 8px 8px 0 0;
    padding: 15px 0;
    width: 27%;
    font-weight: 500;
    position: relative;
  }
  main.sub .plan .price table th:first-child {
    opacity: 0;
    width: 14%;
  }
  main.sub .plan .price table th.m_red {
    background: #d86365;
  }
  main.sub .plan .price table th.m_red span {
    background: -webkit-gradient(linear, left bottom, left top, color-stop(21.63%, #ac7623), color-stop(50.31%, #c7a168), color-stop(78.37%, #a5752c));
    background: linear-gradient(0deg, #ac7623 21.63%, #c7a168 50.31%, #a5752c 78.37%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  main.sub .plan .price table th.md_red {
    background: #d63f42;
  }
  main.sub .plan .price table th.main_red {
    background: #d3060a;
  }
  main.sub .plan .price table th div {
    position: absolute;
    top: -18px;
    left: 0;
    right: 0;
    margin: auto;
    width: 240px;
    background: #fff;
    border-radius: 15px;
    text-align: center;
    font-size: 0.875rem;
    color: #222;
    -webkit-filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
  }
  main.sub .plan .price table th div:before {
    position: absolute;
    content: "";
    top: 100%;
    left: 50%;
    margin-left: -6px;
    border: 6px solid transparent;
    border-top: 6px solid #fff;
  }
  main.sub .plan .price table td {
    padding: 15px;
    text-align: center;
    background: #fff;
  }
  main.sub .plan .price table td:first-child {
    background: #4f4f4f;
    color: #fff;
    font-weight: 500;
    text-align: left;
    font-size: 1rem;
  }
  main.sub .plan .price table td span {
    font-size: 0.875rem;
  }
  main.sub .plan .price p {
    font-size: 0.75rem;
  }
  main.sub .plan .option {
    margin-bottom: 260px;
  }
  main.sub .plan .option ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
  main.sub .plan .option ul li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: center;
  }
  main.sub .plan .option ul h3 {
    width: 36%;
    color: #fff;
    background: #4f4f4f;
    font-weight: 500;
    border-radius: 8px 0 0 8px;
    padding: 19px;
  }
  main.sub .plan .option ul p {
    width: 64%;
    background: #fff;
    border-radius: 0 8px 8px 0;
    font-size: 0.875rem;
    padding: 15px;
  }
  main.sub .plan .option ul p span {
    font-size: 1.25rem;
  }
  main.sub .plan .bg_white {
    border-radius: 30px;
    background: #fff;
    padding: 100px 140px 80px;
    position: relative;
    margin-bottom: 220px;
  }
  main.sub .plan .cost {
    margin-bottom: 200px;
    position: relative;
  }
  main.sub .plan .cost:after {
    position: absolute;
    content: "";
    bottom: -120px;
    left: 0;
    right: 0;
    margin: auto;
    width: 50px;
    height: 45px;
    background: url("images/common/icon_arrow_big.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .plan .cost .sub_title {
    position: absolute;
    top: -120px;
    left: 0;
    right: 0;
    margin: auto;
  }
  main.sub .plan .cost p {
    text-align: center;
    margin-bottom: 40px;
  }
  main.sub .plan .cost table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 4px;
    font-size: 1.25rem;
    font-weight: 500;
  }
  main.sub .plan .cost table tr:last-child td:first-child {
    border-radius: 0 0 0 8px;
  }
  main.sub .plan .cost table tr:last-child td:last-child {
    border-radius: 0 0 8px 0;
  }
  main.sub .plan .cost table tr td:nth-child(2) {
    border: 2px solid #d86365;
  }
  main.sub .plan .cost table th {
    background: #4f4f4f;
    color: #fff;
    text-align: center;
    vertical-align: middle;
    border-radius: 8px 8px 0 0;
    padding: 10px 0;
    width: 25%;
  }
  main.sub .plan .cost table th:first-child {
    width: 20%;
  }
  main.sub .plan .cost table th.m_red {
    background: #d86365;
  }
  main.sub .plan .cost table th.md_red {
    background: #d63f42;
  }
  main.sub .plan .cost table th.main_red {
    background: #d3060a;
  }
  main.sub .plan .cost table th span {
    display: block;
    font-size: 0.875rem;
  }
  main.sub .plan .cost table td {
    padding: 20px;
    text-align: center;
    background: #f9f9f9;
  }
  main.sub .plan .cost table td:first-child {
    background: #e1e1e1;
  }
  main.sub .plan .investment p {
    text-align: center;
    margin-bottom: 40px;
  }
  main.sub .plan .investment ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[3];
        grid-template-columns: repeat(3, 1fr);
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    gap: 50px;
  }
  main.sub .plan .investment ul li {
    position: relative;
  }
  main.sub .plan .investment ul li:first-child:after {
    background: url("images/plan/icon_cross.svg") no-repeat;
    background-size: 100%;
    width: 80px;
    height: 80px;
    top: 100px;
    right: -80px;
  }
  main.sub .plan .investment ul li:nth-child(2):after {
    background: url("images/plan/icon_equal.svg") no-repeat;
    background-size: 100%;
    width: 60px;
    height: 23px;
    top: 120px;
    right: -60px;
  }
  main.sub .plan .investment ul li:after {
    position: absolute;
    content: "";
  }
  main.sub .plan .investment ul img {
    display: block;
    margin: 0 auto 30px;
  }
  main.sub .plan .investment ul h3 {
    height: 80px;
    color: #fff;
    text-align: center;
    border-radius: 10px;
    background: #222;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    font-size: 1.25rem;
    font-weight: 500;
  }
  main.sub .plan .investment ul h3 span {
    color: #ffde4d;
  }
  main.sub .plan .flow {
    background: url("images/plan/bg_flow.svg") no-repeat;
    background-size: cover;
    background-position: center;
    padding: 260px 0 400px;
    margin-bottom: 200px;
  }
}

@media screen and (min-width: 768px) and (min-width: 1441px) {
  main.sub .plan .flow {
    padding: 260px 0 47vw;
    margin-bottom: 150px;
  }
}

@media (min-width: 768px) {
  main.sub .plan .flow .inner > p {
    text-align: center;
    font-weight: 500;
    color: #fff;
    margin-bottom: 80px;
  }
  main.sub .plan .flow .inner ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[5];
        grid-template-columns: repeat(5, 1fr);
    gap: 80px 45px;
  }
  main.sub .plan .flow .inner ul li:nth-child(5) .circle:after,
  main.sub .plan .flow .inner ul li:nth-child(10) .circle:after {
    display: none;
  }
  main.sub .plan .flow .inner ul .circle {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: #fff;
    margin-bottom: 15px;
    padding: 20px 0;
    position: relative;
  }
  main.sub .plan .flow .inner ul .circle:after {
    position: absolute;
    content: "";
    background: url("images/plan/icon_arrow.svg") no-repeat;
    background-size: 100%;
    width: 14px;
    height: 35px;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    right: -30px;
  }
  main.sub .plan .flow .inner ul span {
    display: block;
    text-align: center;
    color: #eb3223;
    font-weight: 500;
  }
  main.sub .plan .flow .inner ul span em {
    font-size: 1.25rem;
  }
  main.sub .plan .flow .inner ul img {
    display: block;
    margin: 30px auto 20px;
  }
  main.sub .plan .flow .inner ul h3 {
    font-size: 1.25rem;
    font-weight: 500;
    text-align: center;
  }
  main.sub .plan .flow .inner ul p {
    color: #fff;
    text-align: center;
    font-size: 0.875rem;
  }
  main.sub .plan .assets {
    gap: 80px;
    margin-bottom: 240px;
  }
  main.sub .plan .assets img {
    border-radius: 10px;
  }
  main.sub .company .greet {
    position: relative;
  }
  main.sub .company .greet:after {
    position: absolute;
    content: "";
    top: 80px;
    right: 0;
    background: url("images/company/bg_logo.svg") no-repeat;
    width: 420px;
    height: 600px;
    z-index: -1;
  }
  main.sub .company .greet .inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    gap: 80px;
  }
  main.sub .company .greet .pic {
    width: 28%;
    font-size: 0.875rem;
  }
  main.sub .company .greet .pic p {
    margin: 20px auto;
  }
  main.sub .company .greet .pic p span {
    display: block;
    font-size: 1.25rem;
  }
  main.sub .company .greet .pic a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 10px;
  }
  main.sub .company .greet .cont {
    width: 64%;
  }
  main.sub .company .greet .cont h3 {
    margin-bottom: 40px;
  }
  main.sub .company .greet .cont p:not(:last-child) {
    margin-bottom: 25px;
  }
  main.sub .privacy .lead {
    margin-bottom: 80px;
  }
  main.sub .privacy > ul {
    margin-bottom: 80px;
  }
  main.sub .privacy > ul > li:not(:last-child) {
    margin-bottom: 80px;
  }
  main.sub .privacy > ul p:not(:last-of-type) {
    margin-bottom: 20px;
  }
  main.sub .privacy .right {
    text-align: right;
  }
  main.sub .contact img,
  main.sub .download img {
    margin: 0 auto 80px;
  }
  main.sub .contact > p,
  main.sub .download > p {
    text-align: center;
    margin-bottom: 80px;
  }
  main.sub .contact .wpcf7-form > ul > li,
  main.sub .download .wpcf7-form > ul > li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 80px;
  }
  main.sub .contact .wpcf7-form > ul > li:not(:last-child),
  main.sub .download .wpcf7-form > ul > li:not(:last-child) {
    margin-bottom: 20px;
  }
  main.sub .contact .wpcf7-form > ul .title,
  main.sub .download .wpcf7-form > ul .title {
    width: 27%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 15px;
  }
  main.sub .contact .wpcf7-form > ul .title span,
  main.sub .download .wpcf7-form > ul .title span {
    display: block;
    color: #fff;
    text-align: center;
    font-size: 0.875rem;
    line-height: 1.3;
    border-radius: 100px;
    width: 48px;
    background: #333;
  }
  main.sub .contact .wpcf7-form > ul .wpcf7-form-control-wrap,
  main.sub .download .wpcf7-form > ul .wpcf7-form-control-wrap {
    width: 100%;
  }
  main.sub .contact .wpcf7-form > ul .select,
  main.sub .download .wpcf7-form > ul .select {
    overflow: hidden;
    width: 100%;
    vertical-align: middle;
    color: #a8a8a8;
    position: relative;
  }
  main.sub .contact .wpcf7-form > ul .select:before,
  main.sub .download .wpcf7-form > ul .select:before {
    position: absolute;
    content: "";
    top: 0;
    right: 15px;
    bottom: 0;
    margin: auto;
    width: 7px;
    height: 7px;
    border: 0;
    border-bottom: 2px solid #c8c8c8;
    border-right: 2px solid #c8c8c8;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    pointer-events: none;
    z-index: 1;
  }
  main.sub .contact .wpcf7-form > ul select,
  main.sub .download .wpcf7-form > ul select {
    font-family: "Noto Sans JP", sans-serif;
    background: #fff;
    border-radius: 4px;
    border: none;
    width: 100%;
    font-size: 1rem;
    height: 50px;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    padding: 10px;
  }
  main.sub .contact .wpcf7-form > ul input[type="text"],
  main.sub .contact .wpcf7-form > ul input[type="tel"],
  main.sub .contact .wpcf7-form > ul input[type="email"],
  main.sub .download .wpcf7-form > ul input[type="text"],
  main.sub .download .wpcf7-form > ul input[type="tel"],
  main.sub .download .wpcf7-form > ul input[type="email"] {
    font-family: "Noto Sans JP", sans-serif;
    width: 100%;
    height: 50px;
    padding: 10px;
    outline: none;
    background: #fff;
    border-radius: 4px;
  }
  main.sub .contact .wpcf7-form > ul textarea,
  main.sub .download .wpcf7-form > ul textarea {
    font-family: "Noto Sans JP", sans-serif;
    width: 100%;
    height: 200px;
    padding: 10px;
    font-size: 1rem;
    background: #fff;
    border-radius: 4px;
    outline: none;
  }
  main.sub .contact .wpcf7-form > ul ::-webkit-input-placeholder,
  main.sub .download .wpcf7-form > ul ::-webkit-input-placeholder {
    color: #a8a8a8;
  }
  main.sub .contact .wpcf7-form > ul :-ms-input-placeholder,
  main.sub .download .wpcf7-form > ul :-ms-input-placeholder {
    color: #a8a8a8;
  }
  main.sub .contact .wpcf7-form > ul ::-ms-input-placeholder,
  main.sub .download .wpcf7-form > ul ::-ms-input-placeholder {
    color: #a8a8a8;
  }
  main.sub .contact .wpcf7-form > ul ::placeholder,
  main.sub .download .wpcf7-form > ul ::placeholder {
    color: #a8a8a8;
  }
  main.sub .contact .agree,
  main.sub .download .agree {
    text-align: center;
    margin: 80px auto 20px;
  }
  main.sub .contact .agree a,
  main.sub .download .agree a {
    text-decoration: underline;
  }
  main.sub .contact .agree a:hover,
  main.sub .download .agree a:hover {
    color: #d3060a;
  }
  main.sub .contact .agree .wpcf7-form-control.wpcf7-acceptance span.wpcf7-list-item,
  main.sub .download .agree .wpcf7-form-control.wpcf7-acceptance span.wpcf7-list-item {
    position: relative;
    width: 100%;
    margin: 0;
  }
  main.sub .contact .agree .wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label,
  main.sub .download .agree .wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label {
    cursor: pointer;
    position: relative;
  }
  main.sub .contact .agree .wpcf7-form-control.wpcf7-acceptance input[type="checkbox"],
  main.sub .download .agree .wpcf7-form-control.wpcf7-acceptance input[type="checkbox"] {
    position: absolute;
    opacity: 0;
  }
  main.sub .contact .agree .wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label:before,
  main.sub .download .agree .wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label:before {
    content: "";
    border: 1px solid #c8c8c8;
    border-radius: 4px;
    background: #fff;
    display: inline-block;
    width: 16px;
    height: 16px;
    position: relative;
    top: 0;
    margin-right: 10px;
    vertical-align: middle;
    cursor: pointer;
    text-align: center;
  }
  main.sub .contact .agree .wpcf7-form-control.wpcf7-acceptance input[type="checkbox"]:checked + .wpcf7-list-item-label:after,
  main.sub .download .agree .wpcf7-form-control.wpcf7-acceptance input[type="checkbox"]:checked + .wpcf7-list-item-label:after {
    content: "";
    display: block;
    position: absolute;
    top: 10px;
    left: 2px;
    width: 10px;
    height: 6px;
    border-left: 2px solid #d3060a;
    border-bottom: 2px solid #d3060a;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  main.sub .contact .wpcf7-spinner,
  main.sub .download .wpcf7-spinner {
    display: none;
  }
  main.sub .contact input[type="submit"],
  main.sub .download input[type="submit"] {
    font-family: "Noto Sans JP", sans-serif;
    outline: none;
    -webkit-appearance: none;
    margin: 20px auto 0;
    -webkit-transition: 0.7s;
    transition: 0.7s;
  }
  main.sub .news .title {
    width: 76%;
  }
  main.sub .column .column_list {
    margin-bottom: 160px;
  }
  main.sub .pagination .nav-links {
    font-family: "Alata", sans-serif;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 40px;
    padding-top: 80px;
  }
  main.sub .pagination .page-numbers {
    display: block;
    text-decoration: none;
    border-radius: 50%;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
    border: none;
  }
  main.sub .pagination .page-numbers.current {
    color: #d3060a !important;
  }
  main.sub .pagination .page-numbers:not(.prev):not(.next) {
    color: #333;
  }
  main.sub .pagination .page-numbers:not(.prev):not(.next):hover {
    color: #d3060a;
  }
  main.sub .pagination .prev,
  main.sub .pagination .next {
    position: relative;
    width: 40px;
    height: 40px;
    background: #222;
    border-radius: 50%;
    color: transparent;
  }
  main.sub .pagination .prev::before,
  main.sub .pagination .next::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 12px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
  main.sub .pagination .prev:hover,
  main.sub .pagination .next:hover {
    background: #d3060a;
  }
  main.sub .pagination .prev::before {
    -webkit-transform: translate(-30%, -50%) rotate(-135deg);
            transform: translate(-30%, -50%) rotate(-135deg);
  }
  main.sub .pagination .next::before {
    -webkit-transform: translate(-70%, -50%) rotate(45deg);
            transform: translate(-70%, -50%) rotate(45deg);
  }
  main.sub .single .content .dec {
    margin-bottom: 20px;
  }
  main.sub .single .content > p:not(:last-child) {
    margin-bottom: 40px;
  }
  main.sub .single .content > p a {
    text-decoration: underline;
    word-break: break-all;
    color: #d3060a;
    font-weight: 500;
  }
  main.sub .single .content > p strong {
    font-weight: 500;
  }
  main.sub .single .content > p em {
    font-style: italic;
  }
  main.sub .single .content img,
  main.sub .single .content .wp-video {
    margin: 80px auto;
    display: block;
  }
  main.sub .single .content iframe {
    width: 100%;
    display: block;
    margin: 40px auto;
    height: auto;
    aspect-ratio: 16 / 9;
  }
  main.sub .single .content blockquote {
    padding: 20px 40px;
    position: relative;
    margin: 80px 0;
    background: #f7f7f7;
  }
  main.sub .single .content blockquote:before {
    position: absolute;
    content: "\f10d";
    font-family: "FontAwesome";
    font-weight: bold;
    font-size: 20px;
    color: #d3060a;
    top: 10px;
    left: 10px;
  }
  main.sub .single .content blockquote:after {
    position: absolute;
    font-family: "FontAwesome";
    content: "\f10e";
    font-size: 20px;
    color: #d3060a;
    right: 10px;
    bottom: 10px;
  }
  main.sub .single .content blockquote p:last-child {
    margin-bottom: 0;
  }
  main.sub .single .content ul:not([class]) {
    padding-left: 40px;
    margin: 40px auto;
  }
  main.sub .single .content ul:not([class]) li {
    list-style: disc;
  }
  main.sub .single .content ul:not([class]) li:not(:last-child) {
    margin-bottom: 5px;
  }
  main.sub .single .content h1,
  main.sub .single .content h2 {
    font-size: 2rem;
    margin: 20px 0;
  }
  main.sub .single .content h3 {
    margin: 40px 0;
    font-size: 1.5rem;
    padding: 2px 15px;
    border-left: 4px solid #d3060a;
  }
  main.sub .single .content h4 {
    font-size: 1.25rem;
    margin: 40px 0;
    color: #d3060a;
    font-weight: 500;
  }
  main.sub .single .content table {
    width: 100%;
    margin: 80px 0;
  }
  main.sub .single .content table th {
    background: #222;
    padding: 10px 15px;
    vertical-align: middle;
    color: #fff;
    text-align: left;
  }
  main.sub .single .content table td {
    background: #f7f7f7;
    padding: 10px 15px;
    vertical-align: middle;
  }
  main.sub .single .content dl {
    margin: 80px auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
  main.sub .single .content dl dt {
    background: #222;
    color: #fff;
    padding: 10px 15px;
    width: 30%;
    vertical-align: middle;
  }
  main.sub .single .content dl dd {
    width: calc(100% - 30%);
    background: #f7f7f7;
    padding: 10px 15px;
    vertical-align: middle;
  }
  main.sub .pagenavi {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding-top: 200px;
  }
  main.sub .pagenavi .btn {
    width: 240px;
    font-size: 1rem;
  }
  main.sub .error,
  main.sub .thnaks {
    text-align: center;
    padding-top: 60px;
  }
  main.sub .error h2,
  main.sub .thnaks h2 {
    font-size: 1.25rem;
    font-weight: 500;
    margin-bottom: 30px;
  }
  main.sub .error p:not(:last-child),
  main.sub .thnaks p:not(:last-child) {
    margin-bottom: 30px;
  }
  main.sub .error .btn,
  main.sub .thnaks .btn {
    width: 240px;
    margin: 80px auto 0;
  }
  footer .contact {
    margin-bottom: 160px;
  }
  footer .contact .main_title {
    margin-bottom: 40px;
  }
  footer .contact ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  footer .contact ul li {
    overflow: hidden;
    border-radius: 20px;
    position: relative;
  }
  footer .contact ul li:first-child {
    width: 800px;
  }
  footer .contact ul li:last-child {
    width: 460px;
  }
  footer .contact ul li a {
    display: block;
  }
  footer .contact ul img {
    -webkit-transition: 1s all;
    transition: 1s all;
  }
  footer .contact ul img:hover {
    -webkit-transform: scale(1.2, 1.2);
            transform: scale(1.2, 1.2);
  }
  footer .contact ul h3 {
    position: absolute;
    top: 40px;
    left: 40px;
    color: #fff;
    font-size: 0.875rem;
    font-weight: 500;
  }
  footer .contact ul h3 span {
    display: block;
    font-size: 2.25rem;
    margin-bottom: 10px;
  }
  footer .contact ul .link {
    display: block;
    position: absolute;
    content: "";
    bottom: 20px;
    right: 20px;
    z-index: 1;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: #fff;
    text-align: center;
    padding: 10px 0;
  }
  footer .contact ul .link:hover {
    background: #959595;
  }
  footer .f_blc {
    background: url("images/common/bg_footer.svg") no-repeat;
    background-size: cover;
    padding: 160px 0 30px;
  }
  footer .f_blc .inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    margin-bottom: 150px;
  }
  footer .f_blc .f_logo a {
    display: block;
  }
  footer .f_blc .f_nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 80px;
  }
  footer .f_blc .f_nav a {
    font-size: 0.875rem;
    font-weight: 500;
    color: #fff;
    display: inline-block;
    margin-bottom: 10px;
    position: relative;
  }
  footer .f_blc .f_nav a:hover:after {
    position: absolute;
    content: "";
    width: 90%;
    height: 1px;
    background: #fff;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
  }
  footer .f_blc small {
    display: block;
    text-align: center;
    font-size: 0.75rem;
    color: #fff;
  }
  footer .pagetop {
    display: none;
    position: fixed;
    bottom: 20px;
    right: 20px;
    background: #222;
    color: #fff;
    width: 50px;
    height: 50px;
    font-size: 1.8rem;
    border-radius: 5px;
    text-align: center;
    -webkit-transition: 0.7s;
    transition: 0.7s;
    z-index: 10;
  }
  footer .pagetop:hover {
    cursor: pointer;
    background: #d3060a;
  }
  footer .fixbtn {
    display: none !important;
  }
  footer.company .contact {
    background: url("images/common/bg_contact_hayabusa.svg") no-repeat;
    background-size: cover;
    color: #fff;
    padding: 80px 0;
    margin-bottom: 0;
  }
  footer.company .contact h2 {
    font-size: 2.25rem;
    margin-bottom: 30px;
  }
  footer.company .contact .btn {
    font-size: 1rem;
    padding: 15px 45px;
    text-align: left;
    background: #474747;
    -webkit-box-shadow: none;
            box-shadow: none;
    margin: 80px 0 0 auto;
  }
  footer.company .contact .btn:hover {
    background: #808080;
  }
  footer.company .f_blc {
    background: #222;
    padding: 80px 0 30px;
  }
  .smonly {
    display: none;
  }
}

@media (max-width: 767px) {
  html {
    font-size: 87.5%;
    scroll-padding-top: 70px;
  }
  body {
    font-family: "Noto Sans JP", sans-serif;
    margin: 0 auto;
    width: 100%;
    line-height: 1.6;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
    color: #222;
    background: #f5f5f5;
  }
  body img {
    height: auto;
  }
  body .imgleft img,
  body .imgright img {
    display: block;
    margin: 0 auto 20px;
  }
  body .imgleft > div p:not(:last-child),
  body .imgright > div p:not(:last-child) {
    margin-bottom: 20px;
  }
  body .main_title {
    font-family: "Alata", sans-serif;
    line-height: 1.4;
    margin-bottom: 40px;
  }
  body .main_title span {
    display: block;
    font-size: 3rem;
  }
  body .main_title.white {
    color: #fff;
  }
  body .main_title.center {
    text-align: center;
  }
  body .sub_title {
    font-size: 1.6rem;
    font-weight: 500;
    margin-bottom: 20px;
    line-height: 1.4;
  }
  body .sub_title.center {
    text-align: center;
  }
  body .sub_title.white {
    color: #fff;
  }
  body .sub_title span {
    display: block;
    font-size: 1rem;
    font-weight: normal;
  }
  body .mdl_title {
    font-size: 1.4rem;
    font-weight: 500;
    margin-bottom: 20px;
    line-height: 1.4;
  }
  body .mdl_title.center {
    text-align: center;
  }
  body .mdl_title span {
    color: #d3060a;
  }
  body .btn {
    position: relative;
    display: block;
    font-size: 1.2rem;
    border-radius: 100px;
    text-align: center;
    width: 100%;
    color: #fff;
    padding: 10px;
    background: -webkit-gradient(linear, left top, right top, from(#3c3c3c), to(#222));
    background: linear-gradient(90deg, #3c3c3c 0%, #222 100%);
    -webkit-box-shadow: 0 4px 10px 0 rgba(255, 255, 255, 0.1) inset;
            box-shadow: 0 4px 10px 0 rgba(255, 255, 255, 0.1) inset;
  }
  body .btn.dot {
    background: #222;
    padding-right: 20px;
    font-weight: 500;
  }
  body .btn.dot.red {
    background: #d3060a;
    -webkit-box-shadow: 0 4px 10px 0 #f66469 inset;
            box-shadow: 0 4px 10px 0 #f66469 inset;
  }
  body .btn.dot:after {
    position: absolute;
    content: "";
    width: 8px;
    height: 8px;
    background: #fff;
    border-radius: 100px;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    right: 40px;
  }
  body .btn.icon {
    font-weight: 500;
  }
  body .btn.icon img {
    width: 25px;
    margin-right: 10px;
  }
  body .btn.red {
    background: #d53439;
  }
  body .view_all {
    font-size: 1.25rem;
    font-family: "Alata", sans-serif;
    color: #d53439;
    position: relative;
    display: block;
    width: 140px;
  }
  body .view_all:after {
    position: absolute;
    content: "";
    width: 8px;
    height: 8px;
    background: #d53439;
    border-radius: 100px;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    right: 0;
  }
  body .dec {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 20px;
    font-size: 0.8rem;
    margin-bottom: 10px;
  }
  body .dec .cat {
    color: #d53439;
    border: 1px solid #d53439;
    text-align: center;
    display: block;
    border-radius: 4px;
    min-width: 80px;
    padding: 0 10px;
  }
  body .news_list li {
    border-bottom: 1px solid #222;
    padding-bottom: 10px;
  }
  body .news_list li:not(:last-child) {
    margin-bottom: 20px;
  }
  body .news_list li .title a {
    display: block;
  }
  body .column_list li {
    position: relative;
    max-width: 340px;
    margin: 0 auto 30px;
  }
  body .column_list .thumb {
    display: block;
    width: 100%;
    position: relative;
  }
  body .column_list .thumb:before {
    content: "";
    display: block;
    padding-top: 56.2%;
  }
  body .column_list .thumb > img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 10px;
  }
  body .column_list .link {
    position: absolute;
    content: "";
    bottom: 10px;
    right: 10px;
    z-index: 1;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    background: #fff;
    text-align: center;
  }
  body .column_list .title a {
    display: block;
    font-weight: 500;
    margin: 10px 0;
  }
  body .column_list .cat {
    background: #222;
    border: 1px solid #222;
    color: #fff;
  }
  body .subnav {
    background: url("images/common/bg_subnav.svg") no-repeat;
    background-size: cover;
    background-position: center;
    padding: 40px 20px;
  }
  body .subnav li {
    background: rgba(255, 255, 255, 0.8);
    border-radius: 20px;
    position: relative;
  }
  body .subnav li:not(:last-child) {
    margin-bottom: 20px;
  }
  body .subnav li > a {
    padding: 20px;
    display: block;
    border-radius: 20px;
  }
  body .subnav .main_title {
    font-size: 1rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    gap: 10px;
  }
  body .subnav .main_title span {
    line-height: 1;
    font-size: 2rem;
  }
  body .subnav .link {
    display: block;
    position: absolute;
    content: "";
    bottom: 20px;
    right: 20px;
    z-index: 1;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #d3060a;
    text-align: center;
    padding: 6px 0;
  }
  body .grecaptcha-badge {
    display: none;
  }
  header .h_blc {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99;
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 10px 0 10px 10px;
  }
  header .h_blc.active {
    background: #d3060a;
  }
  header .logo a {
    display: block;
  }
  header .menu-btn {
    position: fixed;
    top: 10px;
    right: 0;
    width: 60px;
    height: 40px;
    border-radius: 20px 0 0 20px;
    z-index: 100;
    background: #fff;
    -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1);
            box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1);
    -webkit-transition: 0.7s;
    transition: 0.7s;
  }
  header .menu-btn span,
  header .menu-btn span:after {
    content: "";
    display: block;
    height: 2px;
    width: 24px;
    background: #d20107;
    border-radius: 10px;
    position: absolute;
    top: 15px;
    left: 0;
    right: 0;
    margin: auto;
  }
  header .menu-btn span:after {
    top: 8px;
  }
  header #menu-btn-check:checked ~ .menu-btn span {
    top: 20px;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  header #menu-btn-check:checked ~ .menu-btn span::after {
    top: 0;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
  }
  header #menu-btn-check {
    display: none;
  }
  header #menu-btn-check:checked ~ .menu-content {
    left: 0;
  }
  header .menu-content {
    background: #fff;
    border-radius: 10px 0 0 10px;
    width: 100%;
    height: 100%;
    color: #fff;
    position: fixed;
    top: 0;
    left: 100%;
    -webkit-transition: 0.7s;
    transition: 0.7s;
    padding: 10px 0 10px 10px;
    font-weight: 500;
    z-index: 99;
    -webkit-box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.1);
            box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.1);
    overflow: scroll;
  }
  header .menu-content nav {
    background: url("images/common/bg_nav.webp") no-repeat;
    background-size: cover;
    border-radius: 10px;
    padding: 40px 40px 20px;
  }
  header .menu-content .big_logo {
    text-align: center;
  }
  header .menu-content .big_logo p {
    margin: 0 auto 40px;
  }
  header .menu-content .big_logo span {
    display: block;
    font-weight: 500;
    margin: -10px 0 0 60px;
    font-size: 0.9rem;
  }
  header .menu-content .nav_right .nav {
    margin-bottom: 20px;
  }
  header .menu-content .nav_right .nav li {
    margin-bottom: 20px;
  }
  header .menu-content .nav_right .nav li a {
    display: block;
    font-weight: 500;
    position: relative;
  }
  header .menu-content .nav_right .nav li a:after {
    position: absolute;
    content: "";
    border: 0;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    display: inline-block;
    width: 8px;
    height: 8px;
    top: 50%;
    right: 10px;
    -webkit-transform: translateY(-50%) rotate(45deg);
            transform: translateY(-50%) rotate(45deg);
  }
  header .menu-content .nav_right .btnarea .btn {
    margin-bottom: 10px;
  }
  header .menu-content .nav_right .btnarea .red {
    background: #e42e33;
  }
  header .menu-content .nav_right .btnarea img {
    width: 25px;
  }
  header .fv {
    position: relative;
  }
  header .fv .bg_fv,
  header .fv .bg_fv_sub {
    width: 100%;
    height: 850px;
    -o-object-fit: cover;
       object-fit: cover;
  }
  header .fv .bg_fv_sub {
    height: 400px;
  }
  header .fv .copy {
    position: absolute;
    top: 140px;
    left: 0;
    right: 0;
    margin: auto;
    width: 90%;
    color: #fff;
  }
  header .fv .copy strong {
    font-size: 2.5rem;
    font-weight: bold;
    line-height: 1.4;
  }
  header .fv .copy p {
    font-size: 1.2rem;
    font-weight: bold;
    margin: 10px auto 20px;
  }
  header .fv ul.smonly {
    position: absolute;
    display: flex;
    bottom: 160px;
    left: 0;
    right: 0;
    margin: auto;
    max-width: 350px;
  }
  header .fv ul.smonly li {
    margin: 0 auto 15px;
  }
  header .fv ul.smonly .btn {
    font-size: 0.9rem;
    padding: 15px;
    width: 160px;
  }
  header .fv ul.smonly .btn.icon img {
    width: 15px;
  }
  header .fv .fv_img {
    position: absolute;
    top: 55%;
    -webkit-transform: translateY(-55%);
            transform: translateY(-55%);
    right: 0;
    left: 0;
    margin: auto;
    max-width: 350px;
    width: 100%;
  }
  header .fv .main_title {
    position: absolute;
    top: 40%;
    -webkit-transform: translateY(-40%);
            transform: translateY(-40%);
    left: 20px;
    color: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    gap: 10px;
    font-size: 1.2rem;
    margin-bottom: 0;
  }
  header .fv .main_title span {
    line-height: 1;
    text-transform: uppercase;
  }
  header .fv .main_title.mini {
    font-size: 0.9rem;
  }
  header .fv .main_title.mini span {
    font-size: 2rem;
  }
  header .fv .breadcrumbs {
    position: absolute;
    bottom: 30px;
    right: 20px;
    font-size: 0.8rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 5px;
    padding-left: 20px;
  }
  header .fv .breadcrumbs span {
    display: block;
    max-width: 160px;
  }
  header .fv .breadcrumbs a {
    text-decoration: underline;
  }
  header.company .active {
    background: #222;
  }
  header.company .menu-btn span,
  header.company .menu-btn span:after {
    background: #222;
  }
  header.company nav {
    background: #222;
  }
  header.company .fv {
    color: #fff;
  }
  header.company .fv .gaiyo {
    position: absolute;
    bottom: 55px;
    left: 0;
    right: 0;
    margin: auto;
    font-size: 0.7rem;
    width: 90%;
  }
  header.company .fv .gaiyo h1 {
    font-size: 1.2rem;
    margin-bottom: 10px;
  }
  header.company .fv .gaiyo li {
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 10px;
  }
  header.company .fv .gaiyo li:not(:last-child) {
    margin-bottom: 5px;
  }
  header.company .fv .gaiyo h2 {
    background: #474747;
    width: 70px;
    text-align: center;
    font-weight: 500;
    font-size: 0.8rem;
  }
  main {
    margin-bottom: 60px;
  }
  main.top .philosophy {
    padding: 0 20px;
    margin-bottom: -20px;
  }
  main.top .philosophy h2 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    font-weight: 500;
    margin-bottom: 40px;
  }
  main.top .philosophy h2 span {
    font-family: "Alata", sans-serif;
    font-size: 2rem;
    line-height: 1;
    display: block;
  }
  main.top .philosophy h2 > span {
    margin: 0 10px 20px;
  }
  main.top .philosophy h2 div {
    text-align: center;
    font-size: 0.8rem;
  }
  main.top .philosophy h2 div span {
    font-size: 5rem;
  }
  main.top .philosophy .blc ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  main.top .philosophy .blc ul li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
    width: 120px;
    height: 120px;
    border: 1px solid #222;
    font-size: 0.9rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.7);
    -webkit-filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
  }
  main.top .philosophy .blc ul li:not(:first-child) {
    margin-left: -20px;
  }
  main.top .philosophy .blc ul li span {
    color: #d3060a;
    font-family: "Alata", sans-serif;
    font-size: 1.2rem;
    display: block;
  }
  main.top .philosophy .blc img {
    display: block;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    width: 50px;
    margin: 40px auto;
  }
  main.top .philosophy .blc h3 {
    font-size: 1.4rem;
    font-weight: bold;
    text-align: center;
  }
  main.top .philosophy .blc h3 span {
    font-size: 1.2rem;
  }
  main.top .philosophy .blc h3 strong {
    display: inline-block;
    text-align: center;
    font-weight: 500;
    color: #fff;
    background: url("images/top/bg_philosophy.svg") no-repeat;
    background-size: 100%;
    width: 100px;
    height: 28px;
    border-radius: 3px;
    margin-right: 10px;
    line-height: 1.3;
  }
  main.top .strength .txt {
    position: relative;
    z-index: -1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    overflow: hidden;
    white-space: nowrap;
  }
  main.top .strength .txt p {
    font-size: 8rem;
    font-family: "Alata", sans-serif;
    color: rgba(178, 178, 178, 0.1);
    line-height: 0.8;
    display: inline-block;
    padding-right: 60px;
    -webkit-animation: marquee 20s linear infinite;
            animation: marquee 20s linear infinite;
  }
  @-webkit-keyframes marquee {
    0% {
      -webkit-transform: translateX(0);
              transform: translateX(0);
    }
    100% {
      -webkit-transform: translateX(-100%);
              transform: translateX(-100%);
    }
  }
  @keyframes marquee {
    0% {
      -webkit-transform: translateX(0);
              transform: translateX(0);
    }
    100% {
      -webkit-transform: translateX(-100%);
              transform: translateX(-100%);
    }
  }
  main.top .strength .blc {
    background: url("images/top/bg_strength.svg") no-repeat;
    background-size: cover;
    border-radius: 30px;
    color: #fff;
    padding: 20px;
    position: relative;
    z-index: 1;
    margin: 0 20px 60px;
  }
  main.top .strength .blc h2 {
    font-size: 1.4rem;
    line-height: 1.4;
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.8);
  }
  main.top .strength .blc strong {
    display: block;
    color: #222;
    font-weight: 500;
    background: #fff;
    text-align: center;
    margin: 20px 0;
  }
  main.top .strength .blc p {
    margin-bottom: 20px;
  }
  main.top .strength .blc img {
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
    border-radius: 30px 30px 0 0;
  }
  main.top .about {
    background: url("images/top/bg_about.svg") no-repeat;
    background-size: cover;
    background-position: center;
    padding: 80px 20px 120px;
    position: relative;
    z-index: 1;
  }
  main.top .about:after {
    position: absolute;
    content: "";
    background: url("images/top/deco_about.svg") no-repeat;
    background-size: 100%;
    top: 45%;
    -webkit-transform: translateY(-45%);
            transform: translateY(-45%);
    left: 0;
    width: 100%;
    height: 23vw;
    z-index: -1;
  }
  main.top .about h2 {
    margin-bottom: 40px;
    font-weight: bold;
    color: #fff;
    text-align: center;
    font-size: 1.2rem;
  }
  main.top .about h2 span {
    font-size: 1.8rem;
    display: block;
  }
  main.top .about ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 10px;
    margin-bottom: 20px;
  }
  main.top .about ul li {
    width: 32%;
  }
  main.top .about ul li:not(:nth-child(2)) {
    margin-top: 30px;
  }
  main.top .about ul div {
    border-radius: 10px;
    background: #f9f9f9;
    -webkit-box-shadow: 0 10px 4px 0 #fff inset;
            box-shadow: 0 10px 4px 0 #fff inset;
    -webkit-filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
    padding: 5px;
    text-align: center;
    font-weight: 500;
    font-size: 0.7rem;
    position: relative;
  }
  main.top .about ul div:after {
    position: absolute;
    content: "";
    width: 20px;
    height: 3px;
    background: #f9f9f9;
    -webkit-box-shadow: 0 10px 4px 0 #fff inset;
            box-shadow: 0 10px 4px 0 #fff inset;
    -webkit-filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
    -webkit-transform: rotate(56deg);
            transform: rotate(56deg);
    bottom: -8px;
    left: 10px;
    z-index: -1;
  }
  main.top .about ul img {
    display: block;
    margin: 20px auto 0;
    width: 80%;
  }
  main.top .about p {
    color: #fff;
    text-align: center;
    font-size: 1.2rem;
    font-weight: 500;
    margin-bottom: 40px;
  }
  main.top .service {
    padding: 20px 20px 60px;
  }
  main.top .service .blc ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
    -ms-grid-rows: (1fr)[2];
        grid-template-rows: repeat(2, 1fr);
    gap: 20px;
    position: relative;
    max-width: 340px;
    margin: 0 auto 20px;
  }
  main.top .service .blc ul:after {
    position: absolute;
    content: "";
    background: url("images/top/bg_service.webp") no-repeat;
    background-size: 100%;
    width: 300px;
    height: 300px;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    left: 0;
    right: 0;
    margin: auto;
    z-index: -1;
  }
  main.top .service .blc ul li {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    border: 1px solid #222;
    background: #f9f9f9;
    stroke-width: 1px;
    stroke: #222;
    -webkit-filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.1));
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    position: relative;
  }
  main.top .service .blc ul li:first-child {
    grid-column: span 2 / span 2;
    margin: 0 auto;
  }
  main.top .service .blc ul li:nth-child(2) {
    -ms-grid-column: 2;
        grid-column-start: 2;
  }
  main.top .service .blc ul li:not(:first-child) {
    -ms-grid-row: 2;
        grid-row-start: 2;
    margin-top: -40px;
  }
  main.top .service .blc ul li span {
    position: absolute;
    top: 10px;
    font-family: "Alata", sans-serif;
    font-size: 1.6rem;
    color: #959595;
  }
  main.top .service .blc ul li p {
    font-weight: bold;
    padding-top: 20px;
    font-size: 1.2rem;
  }
  main.top .service .blc > div {
    font-weight: 500;
  }
  main.top .service .blc > div > span {
    display: block;
    width: 250px;
    border-radius: 4px;
    background: #d53439;
    color: #fff;
    text-align: center;
    font-weight: bold;
    position: relative;
    margin-bottom: 20px;
  }
  main.top .service .blc > div > span:after {
    position: absolute;
    content: "";
    width: 20px;
    height: 2px;
    background: #d53439;
    -webkit-transform: rotate(47deg);
            transform: rotate(47deg);
    bottom: -5px;
    left: 30px;
    z-index: -1;
  }
  main.top .service .blc > div h3 {
    font-size: 1.8rem;
    font-weight: bold;
    margin-bottom: 20px;
  }
  main.top .service .blc > div h3 span {
    color: #959595;
  }
  main.top .service .blc > div h3 span.red {
    color: #d3060a;
  }
  main.top .service .blc > div .btn {
    margin: 40px auto 0;
  }
  main.top .bg_black {
    background: url("images/top/bg_black.svg") no-repeat;
    background-size: cover;
    border-radius: 20px;
    padding: 60px 20px;
    margin-bottom: 60px;
    overflow-x: hidden;
  }
  main.top .works {
    margin-bottom: 60px;
  }
  main.top .works ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 40px 20px;
    margin-bottom: 20px;
  }
  main.top .works li {
    color: #fff;
    position: relative;
    width: 46%;
    font-size: 0.9rem;
  }
  main.top .works .thumb {
    max-width: 140px;
    width: 100%;
    position: relative;
    margin: 0 auto 10px;
  }
  main.top .works .thumb:before {
    content: "";
    display: block;
    padding-top: 206.25%;
  }
  main.top .works .thumb img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  main.top .works .btn {
    position: absolute;
    right: -20px;
    bottom: 0;
    width: 50px;
    height: 50px;
    font-size: 0.7rem;
    -webkit-box-shadow: none;
            box-shadow: none;
    padding: 5px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  main.top .works .btn:after {
    width: 4px;
    height: 4px;
    right: 5px;
  }
  main.top .works h3 a {
    display: block;
    margin-bottom: 10px;
  }
  main.top .works .cat {
    display: inline-block;
    background: #555;
    border-radius: 4px;
    text-align: center;
    min-width: 100px;
  }
  main.top .works .view_all {
    margin-left: auto;
    color: #fff;
  }
  main.top .works .view_all:after {
    background: #fff;
  }
  main.top .voice .swiper {
    position: relative;
    overflow: inherit;
  }
  main.top .voice .swiper-slide {
    border-radius: 10px;
    background: #fff;
    -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.25);
            box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.25);
    padding: 20px;
    font-weight: 500;
    height: auto;
  }
  main.top .voice .swiper-slide.swiper-slide-prev, main.top .voice .swiper-slide.swiper-slide-next {
    opacity: 0.8;
  }
  main.top .voice .swiper-slide img {
    position: absolute;
    top: -10px;
    left: 10px;
    width: 60px;
  }
  main.top .voice .swiper-slide h3 {
    width: 80%;
    margin-left: auto;
    border-bottom: 1px solid #9e9e9e;
    margin-bottom: 20px;
    padding-bottom: 10px;
  }
  main.top .voice .swiper-slide span {
    color: #d3060a;
  }
  main.top .voice .swiper-button-prev,
  main.top .voice .swiper-button-next {
    top: 45%;
  }
  main.top .voice .swiper-button-prev:after,
  main.top .voice .swiper-button-next:after {
    position: absolute;
    content: "";
    width: 40px;
    height: 40px;
  }
  main.top .voice .swiper-button-prev {
    left: 0;
  }
  main.top .voice .swiper-button-prev:after {
    background: url("images/top/icon_prev.svg");
    background-size: 100%;
  }
  main.top .voice .swiper-button-next {
    right: 0;
  }
  main.top .voice .swiper-button-next:after {
    background: url("images/top/icon_next.svg");
    background-size: 100%;
  }
  main.top .voice .swiper-pagination {
    position: relative;
    bottom: 0;
    padding-top: 20px;
  }
  main.top .voice .swiper-pagination-bullet {
    width: 6px;
    height: 6px;
    margin: 0 5px !important;
    background: #d9d9d9;
    opacity: 1;
  }
  main.top .voice .swiper-pagination-bullet-active {
    background: #d3060a;
  }
  main.top .news {
    position: relative;
    padding: 0 20px 60px;
  }
  main.top .news .view_all {
    margin: 20px 0 0 auto;
  }
  main.top .column {
    position: relative;
    padding: 0 20px 60px;
  }
  main.top .column .view_all {
    margin: 0 0 0 auto;
  }
  main.top .faq {
    background: #d3060a;
    padding: 60px 20px;
    border-radius: 20px;
  }
  main.top .faq li:not(:last-child) {
    margin-bottom: 20px;
  }
  main.top .faq h3 {
    cursor: pointer;
    position: relative;
    padding: 10px;
    background: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 10px;
    border-radius: 8px;
    margin-bottom: 10px;
  }
  main.top .faq h3:before, main.top .faq h3:after {
    content: "";
    position: absolute;
    right: 10px;
    width: 15px;
    height: 2px;
    border-radius: 8px;
    background: #222;
    -webkit-transition: 0.3s;
    transition: 0.3s;
  }
  main.top .faq h3:before {
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  main.top .faq h3:after {
    top: 47%;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
  }
  main.top .faq h3.open:after {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  main.top .faq h3 .q {
    font-size: 1.4rem;
    line-height: 1;
    font-family: "Alata", sans-serif;
    color: #d3060a;
  }
  main.top .faq h3 .title {
    width: 82%;
    font-weight: bold;
  }
  main.top .faq .cont {
    display: none;
    padding: 10px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    color: #fff;
  }
  main.top .faq .cont .wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 10px;
  }
  main.top .faq .cont .wrap .a {
    font-family: "Alata", sans-serif;
    font-size: 1.4rem;
    line-height: 1;
  }
  main.top .faq .cont .wrap .txt {
    width: 88%;
    font-weight: bold;
  }
  main.sub .about .mission {
    padding: 40px 20px;
  }
  main.sub .about .mission img {
    border-radius: 10px;
    max-width: 260px;
  }
  main.sub .about .sns {
    padding: 40px 20px;
    position: relative;
  }
  main.sub .about .sns:after {
    position: absolute;
    content: "";
    bottom: -20px;
    left: 0;
    right: 0;
    margin: auto;
    width: 50px;
    height: 45px;
    background: url("images/common/icon_arrow_big.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .about .sns > ul > li {
    background: #fff;
    border-radius: 20px;
    padding: 20px;
  }
  main.sub .about .sns > ul > li:not(:last-child) {
    margin-bottom: 30px;
  }
  main.sub .about .sns > ul h3 {
    font-size: 1.2rem;
    font-weight: bold;
    text-align: center;
    margin-bottom: 20px;
  }
  main.sub .about .sns > ul h3 span {
    color: #d53439;
    font-size: 1.6rem;
  }
  main.sub .about .sns > ul img {
    display: block;
    margin: 0 auto 20px;
  }
  main.sub .about .sns > ul ul {
    padding-left: 30px;
    font-size: 0.8rem;
    position: relative;
    margin-bottom: 40px;
  }
  main.sub .about .sns > ul ul:after {
    position: absolute;
    content: "";
    bottom: -30px;
    left: 0;
    right: 0;
    margin: auto;
    width: 26px;
    height: 16px;
    background: url("images/common/icon_arrow.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .about .sns > ul ul li {
    position: relative;
  }
  main.sub .about .sns > ul ul li:not(:last-child) {
    margin-bottom: 5px;
  }
  main.sub .about .sns > ul ul li:after {
    position: absolute;
    content: "";
    top: 2px;
    left: -20px;
    width: 16px;
    height: 13px;
    background: url("images/about/icon_check.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .about .sns > ul h4 {
    color: #d3060a;
    border: 2px solid #d3060a;
    border-radius: 10px;
    text-align: center;
    font-size: 1.2rem;
    font-weight: bold;
    padding: 10px;
  }
  main.sub .about .outgoing {
    position: relative;
    padding: 40px 0;
  }
  main.sub .about .outgoing img {
    display: block;
    margin: 0 auto;
    width: 200px;
  }
  main.sub .about .outgoing > p {
    padding: 0 20px;
  }
  main.sub .about .outgoing > p span {
    color: #d3060a;
  }
  main.sub .about .outgoing .bg {
    background: url("images/about/bg_outgoing.svg") no-repeat;
    background-size: cover;
    background-position: center;
    padding: 60px 20px 0;
  }
  main.sub .about .outgoing .bg > ul > li {
    background: #fff;
    border-radius: 20px;
    padding: 40px 20px 40px;
    position: relative;
  }
  main.sub .about .outgoing .bg > ul > li:not(:last-child) {
    margin-bottom: 60px;
  }
  main.sub .about .outgoing .bg > ul > li:last-child h3 {
    background: #50878e;
  }
  main.sub .about .outgoing .bg > ul > li:last-child h3:after {
    background: #50878e;
  }
  main.sub .about .outgoing .bg > ul > li:last-child span {
    color: #50878e;
  }
  main.sub .about .outgoing .bg > ul > li h3 {
    display: block;
    width: 250px;
    border-radius: 4px;
    background: #d53439;
    color: #fff;
    text-align: center;
    font-weight: bold;
    font-size: 1.2rem;
    padding: 5px;
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    margin: auto;
  }
  main.sub .about .outgoing .bg > ul > li h3:after {
    position: absolute;
    content: "";
    width: 30px;
    height: 4px;
    background: #d53439;
    -webkit-transform: rotate(47deg);
            transform: rotate(47deg);
    bottom: -8px;
    left: 30px;
  }
  main.sub .about .outgoing .bg > ul > li li {
    border-bottom: 2px solid #f2f2f2;
    padding-bottom: 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 10px;
  }
  main.sub .about .outgoing .bg > ul > li li:not(:last-child) {
    margin-bottom: 20px;
  }
  main.sub .about .outgoing .bg > ul > li li span {
    font-family: "Alata", sans-serif;
    color: #d3060a;
    font-size: 1.8rem;
    line-height: 1;
  }
  main.sub .about .outgoing .bg > ul > li li div {
    width: 85%;
  }
  main.sub .about .outgoing .bg > ul > li li h4 {
    font-size: 1.2rem;
    font-weight: 500;
    margin-bottom: 10px;
  }
  main.sub .about .reason {
    padding: 40px 20px;
  }
  main.sub .about .reason li {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  main.sub .about .reason li:not(:last-child) {
    margin-bottom: 40px;
  }
  main.sub .about .reason li img {
    border-radius: 10px;
  }
  main.sub .about .reason li h3 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 10px;
    margin-bottom: 20px;
  }
  main.sub .about .reason li h3 .numb {
    color: #d3060a;
    font-family: "Alata", sans-serif;
  }
  main.sub .about .reason li h3 .numb em {
    display: block;
    font-size: 2.6rem;
    line-height: 1;
  }
  main.sub .about .reason li h3 .mdl_title {
    margin-bottom: 0;
  }
  main.sub .about .continue {
    padding: 40px 0;
  }
  main.sub .about .continue > p {
    padding: 0 20px;
  }
  main.sub .about .continue .bg {
    background: url("images/about/bg_continue.svg") no-repeat;
    background-size: cover;
    background-position: center;
    padding: 60px 20px 20px;
  }
  main.sub .about .continue .bg li {
    font-weight: 500;
    background: #fff;
    border-radius: 10px;
    padding: 40px 20px 20px;
    position: relative;
  }
  main.sub .about .continue .bg li:first-child h3 {
    background: url("images/about/bg_continue01.svg") no-repeat;
    background-size: cover;
    width: 160px;
  }
  main.sub .about .continue .bg li:nth-child(2) h3 {
    background: url("images/about/bg_continue02.svg") no-repeat;
    background-size: cover;
    width: 160px;
  }
  main.sub .about .continue .bg li:last-child h3 {
    background: url("images/about/bg_continue03.svg") no-repeat;
    background-size: cover;
    width: 235px;
  }
  main.sub .about .continue .bg li:not(:last-child) {
    margin-bottom: 80px;
  }
  main.sub .about .continue .bg li:not(:last-child):after {
    position: absolute;
    content: "";
    background: url("images/about/continue_arrow.svg") no-repeat;
    bottom: -65px;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    right: 0;
    left: 0;
    margin: auto;
    width: 27px;
    height: 66px;
  }
  main.sub .about .continue .bg li h3 {
    display: block;
    border-radius: 4px;
    color: #fff;
    text-align: center;
    font-size: 1.6rem;
    height: 40px;
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    margin: auto;
  }
  main.sub .about .continue .bg li h4 {
    text-align: center;
    font-size: 1.4rem;
    margin-bottom: 20px;
  }
  main.sub .about .continue .bg li h4 span {
    color: #d3060a;
  }
  main.sub .about .continue .bg li img {
    display: block;
    margin: 0 auto 20px;
  }
  main.sub .service .gaiyo {
    padding: 40px 0;
  }
  main.sub .service .gaiyo p {
    padding: 0 20px;
  }
  main.sub .service .gaiyo .bg {
    background: url("images/service/bg_gaiyo.svg") no-repeat;
    background-size: cover;
    background-position: center;
    padding: 60px 20px 0;
  }
  main.sub .service .gaiyo .bg > ul > li {
    font-weight: 500;
    background: #fff;
    border-radius: 10px;
    padding: 50px 20px 20px;
    position: relative;
  }
  main.sub .service .gaiyo .bg > ul > li:not(:last-child) {
    margin-bottom: 60px;
  }
  main.sub .service .gaiyo .bg > ul > li span {
    display: block;
    border-radius: 4px;
    color: #fff;
    background: #d3060a;
    text-align: center;
    font-size: 2rem;
    border-radius: 50%;
    font-family: "Alata", sans-serif;
    font-weight: bold;
    width: 60px;
    height: 60px;
    padding: 8px;
    position: absolute;
    top: -30px;
    left: 0;
    right: 0;
    margin: auto;
  }
  main.sub .service .gaiyo .bg > ul > li img {
    display: block;
    margin: 0 auto 20px;
  }
  main.sub .service .gaiyo .bg > ul > li h3 {
    color: #d3060a;
    font-size: 1.4rem;
    font-weight: bold;
    text-align: center;
    margin-bottom: 20px;
  }
  main.sub .service .gaiyo .bg > ul > li ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 8px;
    font-size: 0.8rem;
    font-weight: 500;
  }
  main.sub .service .gaiyo .bg > ul > li ul li {
    border-radius: 4px;
    text-align: center;
    background: #f2f2f2;
    padding: 5px 10px;
  }
  main.sub .service .point {
    background: #fff;
    border-radius: 30px;
    padding: 40px 20px;
    margin: 40px 20px;
    position: relative;
  }
  main.sub .service .point .sub_title {
    position: absolute;
    top: -15px;
    left: 0;
    right: 0;
  }
  main.sub .service .point ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin: 20px auto 100px;
    position: relative;
  }
  main.sub .service .point ul:after {
    position: absolute;
    content: "";
    bottom: -80px;
    left: 0;
    right: 0;
    margin: auto;
    width: 50px;
    height: 45px;
    background: url("images/common/icon_arrow_big.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .service .point ul li {
    width: 105px;
    height: 105px;
    border-radius: 50%;
    background: rgba(242, 242, 242, 0.8);
    text-align: center;
    padding: 15px 0;
  }
  main.sub .service .point ul li:not(:last-child) {
    margin-right: -10px;
  }
  main.sub .service .point ul img {
    margin: 0 auto 10px;
    width: 25px;
  }
  main.sub .service .point ul p {
    font-size: 0.5rem;
  }
  main.sub .service .point > img {
    position: absolute;
    top: 220px;
    right: 20px;
    width: 60px;
  }
  main.sub .service .point table {
    min-width: 450px;
    width: 100%;
    text-align: center;
    font-weight: 500;
    border-collapse: separate;
    border-spacing: 4px;
    margin: 40px auto 0;
    position: relative;
    font-size: 0.8rem;
  }
  main.sub .service .point table:after {
    position: absolute;
    content: "";
    border: 4px solid #ffbc04;
    width: 99%;
    height: 112px;
    top: 42px;
    left: 4px;
  }
  main.sub .service .point table tr:last-child td:first-child {
    border-radius: 0 0 0 8px;
  }
  main.sub .service .point table tr:last-child td:last-child {
    border-radius: 0 0 8px 0;
  }
  main.sub .service .point table th {
    background: #4f4f4f;
    color: #fff;
    padding: 10px;
    border-radius: 8px 8px 0 0;
    vertical-align: middle;
  }
  main.sub .service .point table th:first-child {
    width: 50px;
  }
  main.sub .service .point table th:nth-child(2) {
    background: #d86365;
  }
  main.sub .service .point table th:nth-child(3) {
    background: #d63f42;
  }
  main.sub .service .point table th:last-child {
    background: #d3060a;
  }
  main.sub .service .point table td {
    background: #f8f8f8;
    padding: 10px;
    vertical-align: middle;
  }
  main.sub .service .point table td:first-child {
    background: #e1e1e1;
  }
  main.sub .service .strategy {
    padding: 40px 20px;
  }
  main.sub .service .strategy p {
    margin-bottom: 20px;
  }
  main.sub .service .strategy p span {
    color: #d3060a;
  }
  main.sub .service .design {
    padding: 40px 20px;
  }
  main.sub .service .design > p {
    margin-bottom: 20px;
  }
  main.sub .service .design .blc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 20px;
    margin: 40px auto 0;
  }
  main.sub .service .design .blc .line p {
    width: 30px;
    height: 33%;
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
    position: relative;
    color: #fff;
    text-align: center;
    font-size: 1.2rem;
    letter-spacing: 5px;
    padding: 2px;
    font-weight: 500;
    background: #d86365;
  }
  main.sub .service .design .blc .line p:after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    margin: auto;
    bottom: -15px;
    right: 0;
    border-style: solid;
    border-color: #d86365 transparent transparent transparent;
    border-width: 15px 15px 0 15px;
    z-index: 10;
  }
  main.sub .service .design .blc .line p:nth-child(2) {
    background: #d63f42;
  }
  main.sub .service .design .blc .line p:nth-child(2):after {
    border-color: #d63f42 transparent transparent transparent;
  }
  main.sub .service .design .blc .line p:nth-child(3) {
    background: #d3060a;
  }
  main.sub .service .design .blc .line p:nth-child(3):after {
    border-color: #d3060a transparent transparent transparent;
  }
  main.sub .service .design .blc li:not(:last-child) {
    margin-bottom: 40px;
  }
  main.sub .service .design .blc li .balloon {
    position: relative;
    background: #fff;
    border-radius: 8px;
    padding: 10px;
    text-align: center;
    font-size: 1.2rem;
    -webkit-filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
    margin-bottom: 20px;
  }
  main.sub .service .design .blc li .balloon:before {
    position: absolute;
    content: "";
    top: 100%;
    left: 50%;
    margin-left: -10px;
    border: 8px solid transparent;
    border-top: 10px solid #fff;
  }
  main.sub .service .design .blc li img {
    display: block;
    width: 300px;
    margin: 0 auto 20px;
  }
  main.sub .service .effect {
    padding: 40px 0;
  }
  main.sub .service .effect > p {
    padding: 0 20px;
  }
  main.sub .service .effect .bg {
    background: url("images/service/bg_effect.svg") no-repeat;
    background-size: cover;
    background-position: center;
    padding: 40px 20px 0;
  }
  main.sub .service .effect .bg > ul > li {
    background: #fff;
    border-radius: 20px;
    padding: 20px;
    position: relative;
  }
  main.sub .service .effect .bg > ul > li:not(:last-child) {
    margin-bottom: 40px;
  }
  main.sub .service .effect .bg > ul .blc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 10px;
    font-weight: 500;
    margin-bottom: 40px;
  }
  main.sub .service .effect .bg > ul .blc h3 {
    color: #fff;
    text-align: center;
    font-size: 1.4rem;
    background: url("images/service/bg_effect01.svg") no-repeat;
    background-size: cover;
    width: 100px;
    height: 35px;
    border-radius: 4px;
  }
  main.sub .service .effect .bg > ul .blc h3.green {
    background: url("images/service/bg_effect02.svg") no-repeat;
    background-size: cover;
  }
  main.sub .service .effect .bg > ul .box {
    background: #f2f2f2;
    border-radius: 4px;
    padding: 30px 10px 20px;
    position: relative;
  }
  main.sub .service .effect .bg > ul .box.gray {
    margin-bottom: 60px;
  }
  main.sub .service .effect .bg > ul .box.gray:after {
    position: absolute;
    content: "";
    bottom: -32px;
    left: 0;
    right: 0;
    margin: auto;
    width: 40px;
    height: 26px;
    background: url("images/common/icon_arrow.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .service .effect .bg > ul .box.red h4 {
    background: #db9092;
  }
  main.sub .service .effect .bg > ul .box.red h4 span {
    background: #d3060a;
  }
  main.sub .service .effect .bg > ul .box.red h4 span:after {
    border-color: transparent transparent transparent #d3060a;
  }
  main.sub .service .effect .bg > ul .box.red li:after {
    background: url("images/service/icon_check_red.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .service .effect .bg > ul .box h4 {
    color: #fff;
    background: #818181;
    border-radius: 4px;
    text-align: center;
    padding: 5px 0;
    position: absolute;
    top: -10px;
    left: 0;
    right: 0;
    margin: auto;
    font-size: 0.85rem;
  }
  main.sub .service .effect .bg > ul .box h4 span {
    display: block;
    width: 50px;
    height: 100%;
    padding: 5px;
    background: #4f4f4f;
    border-radius: 4px 0 0 4px;
    position: absolute;
    top: 0;
    left: 0;
  }
  main.sub .service .effect .bg > ul .box h4 span:after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    margin: auto;
    top: 0;
    right: -6px;
    border-style: solid;
    border-color: transparent transparent transparent #4f4f4f;
    border-width: 14px 0 14px 6px;
    z-index: 10;
  }
  main.sub .service .effect .bg > ul .box ul {
    padding-left: 30px;
    margin-bottom: 10px;
  }
  main.sub .service .effect .bg > ul .box ul li {
    position: relative;
  }
  main.sub .service .effect .bg > ul .box ul li:after {
    position: absolute;
    content: "";
    background: url("images/service/icon_check.svg") no-repeat;
    background-size: 100%;
    width: 16px;
    height: 16px;
    top: 3px;
    left: -25px;
  }
  main.sub .service .effect .bg > ul .box strong {
    display: block;
    text-align: right;
    color: #d3060a;
    line-height: 1.2;
  }
  main.sub .service .effect .bg > ul .box strong div {
    display: inline-block;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(80%, transparent), color-stop(80%, #ffde4d));
    background: linear-gradient(transparent 80%, #ffde4d 80%);
  }
  main.sub .service .effect .bg > ul .box strong span {
    font-size: 1.2rem;
  }
  main.sub .service .different {
    padding: 40px 20px 60px;
  }
  main.sub .service .different table {
    min-width: 645px;
    width: 100%;
    border-collapse: separate;
    border-spacing: 4px;
    margin: 20px auto 0;
    position: relative;
    font-size: 0.9rem;
  }
  main.sub .service .different table:after {
    position: absolute;
    content: "";
    border: 2px solid #d3060a;
    border-radius: 8px;
    width: 19.8%;
    height: 97%;
    top: 5px;
    left: 20.2%;
  }
  main.sub .service .different table tr:nth-child(2) td:first-child {
    border-radius: 8px 0 0 0;
  }
  main.sub .service .different table tr:last-child td:first-child {
    border-radius: 0 0 0 8px;
  }
  main.sub .service .different table tr:last-child td:last-child {
    border-radius: 0 0 8px 0;
  }
  main.sub .service .different table th {
    background: #808080;
    color: #fff;
    text-align: center;
    vertical-align: middle;
    border-radius: 8px 8px 0 0;
    padding: 5px;
    width: 20%;
  }
  main.sub .service .different table th:first-child {
    opacity: 0;
  }
  main.sub .service .different table th.red {
    background: #d3060a;
    font-weight: 500;
    font-size: 1rem;
  }
  main.sub .service .different table td {
    padding: 5px;
    text-align: center;
    background: #fff;
  }
  main.sub .service .different table td:first-child {
    background: #4f4f4f;
    color: #fff;
    font-weight: 500;
    text-align: left;
  }
  main.sub .plan .price {
    padding: 40px 0;
  }
  main.sub .plan .price .bg {
    background: url("images/plan/bg_price.svg") no-repeat;
    background-size: 100%;
    padding: 20px 20px 0;
  }
  main.sub .plan .price .js-scrollable {
    padding-top: 20px;
    margin-bottom: 10px;
  }
  main.sub .plan .price table {
    min-width: 600px;
    width: 100%;
    border-collapse: separate;
    border-spacing: 4px;
  }
  main.sub .plan .price table tr:nth-child(2) td:first-child {
    border-radius: 8px 0 0 0;
  }
  main.sub .plan .price table tr:last-child td:first-child {
    border-radius: 0 0 0 8px;
  }
  main.sub .plan .price table tr:last-child td:last-child {
    border-radius: 0 0 8px 0;
  }
  main.sub .plan .price table th {
    color: #fff;
    text-align: center;
    vertical-align: middle;
    border-radius: 8px 8px 0 0;
    padding: 5px 0;
    width: 25%;
    font-weight: 500;
    position: relative;
  }
  main.sub .plan .price table th:first-child {
    opacity: 0;
    width: 15%;
  }
  main.sub .plan .price table th.m_red {
    background: #d86365;
  }
  main.sub .plan .price table th.m_red span {
    background: -webkit-gradient(linear, left bottom, left top, color-stop(21.63%, #ac7623), color-stop(50.31%, #c7a168), color-stop(78.37%, #a5752c));
    background: linear-gradient(0deg, #ac7623 21.63%, #c7a168 50.31%, #a5752c 78.37%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  main.sub .plan .price table th.md_red {
    background: #d63f42;
  }
  main.sub .plan .price table th.main_red {
    background: #d3060a;
  }
  main.sub .plan .price table th div {
    position: absolute;
    top: -18px;
    left: 0;
    right: 0;
    margin: auto;
    width: 90%;
    background: #fff;
    border-radius: 15px;
    text-align: center;
    font-size: 0.8rem;
    color: #222;
    -webkit-filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
            filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
  }
  main.sub .plan .price table th div:before {
    position: absolute;
    content: "";
    top: 100%;
    left: 50%;
    margin-left: -6px;
    border: 6px solid transparent;
    border-top: 6px solid #fff;
  }
  main.sub .plan .price table td {
    padding: 5px;
    text-align: center;
    background: #fff;
  }
  main.sub .plan .price table td:first-child {
    background: #4f4f4f;
    color: #fff;
    font-weight: 500;
    text-align: left;
  }
  main.sub .plan .price table td span {
    font-size: 0.8rem;
  }
  main.sub .plan .price p {
    font-size: 0.7rem;
  }
  main.sub .plan .option {
    padding: 40px 20px;
  }
  main.sub .plan .option li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    text-align: center;
  }
  main.sub .plan .option li:not(:last-child) {
    margin-bottom: 10px;
  }
  main.sub .plan .option h3 {
    width: 36%;
    color: #fff;
    background: #4f4f4f;
    font-weight: 500;
    border-radius: 8px 0 0 8px;
    padding: 10px;
  }
  main.sub .plan .option p {
    width: 64%;
    background: #fff;
    border-radius: 0 8px 8px 0;
    font-size: 0.8rem;
    padding: 8px;
  }
  main.sub .plan .option p span {
    font-size: 1.2rem;
  }
  main.sub .plan .bg_white {
    border-radius: 30px;
    background: #fff;
    padding: 40px 20px;
    position: relative;
    margin: 60px 20px 0;
  }
  main.sub .plan .cost {
    margin-bottom: 100px;
    position: relative;
  }
  main.sub .plan .cost:after {
    position: absolute;
    content: "";
    bottom: -80px;
    left: 0;
    right: 0;
    margin: auto;
    width: 50px;
    height: 45px;
    background: url("images/common/icon_arrow_big.svg") no-repeat;
    background-size: 100%;
  }
  main.sub .plan .cost .sub_title {
    position: absolute;
    top: -55px;
    left: 0;
    right: 0;
    margin: auto;
  }
  main.sub .plan .cost p {
    margin-bottom: 40px;
  }
  main.sub .plan .cost table {
    min-width: 600px;
    width: 100%;
    border-collapse: separate;
    border-spacing: 4px;
    font-weight: 500;
  }
  main.sub .plan .cost table tr:last-child td:first-child {
    border-radius: 0 0 0 8px;
  }
  main.sub .plan .cost table tr:last-child td:last-child {
    border-radius: 0 0 8px 0;
  }
  main.sub .plan .cost table tr td:nth-child(2) {
    border: 2px solid #d86365;
  }
  main.sub .plan .cost table th {
    background: #4f4f4f;
    color: #fff;
    text-align: center;
    vertical-align: middle;
    border-radius: 8px 8px 0 0;
    padding: 10px 0;
    width: 25%;
  }
  main.sub .plan .cost table th:first-child {
    width: 20%;
  }
  main.sub .plan .cost table th.m_red {
    background: #d86365;
  }
  main.sub .plan .cost table th.md_red {
    background: #d63f42;
  }
  main.sub .plan .cost table th.main_red {
    background: #d3060a;
  }
  main.sub .plan .cost table th span {
    display: block;
    font-size: 0.8rem;
  }
  main.sub .plan .cost table td {
    padding: 20px;
    text-align: center;
    background: #f9f9f9;
  }
  main.sub .plan .cost table td:first-child {
    background: #e1e1e1;
  }
  main.sub .plan .investment p {
    margin-bottom: 40px;
  }
  main.sub .plan .investment li {
    position: relative;
  }
  main.sub .plan .investment li:not(:last-child) {
    margin-bottom: 100px;
  }
  main.sub .plan .investment li:first-child:after {
    background: url("images/plan/icon_cross.svg") no-repeat;
    background-size: 100%;
    width: 50px;
    height: 50px;
    bottom: -80px;
    left: 0;
    right: 0;
    margin: auto;
  }
  main.sub .plan .investment li:nth-child(2):after {
    background: url("images/plan/icon_equal.svg") no-repeat;
    background-size: 100%;
    width: 60px;
    height: 23px;
    bottom: -60px;
    left: 0;
    right: 0;
    margin: auto;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
  }
  main.sub .plan .investment li:after {
    position: absolute;
    content: "";
  }
  main.sub .plan .investment img {
    display: block;
    margin: 0 auto 20px;
  }
  main.sub .plan .investment h3 {
    color: #fff;
    text-align: center;
    border-radius: 10px;
    background: #222;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    font-size: 1.2rem;
    font-weight: 500;
    padding: 10px;
  }
  main.sub .plan .investment h3 span {
    color: #ffde4d;
  }
  main.sub .plan .flow {
    background: url("images/plan/bg_flow.svg") no-repeat;
    background-size: cover;
    background-position: center;
    padding: 140px 20px 180px;
  }
  main.sub .plan .flow .inner > p {
    font-weight: 500;
    color: #fff;
    margin-bottom: 40px;
  }
  main.sub .plan .flow .inner ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
    gap: 40px 20px;
    max-width: 355px;
    margin: 0 auto;
  }
  main.sub .plan .flow .inner ul li {
    max-width: 160px;
  }
  main.sub .plan .flow .inner ul li:last-child .circle:after {
    display: none;
  }
  main.sub .plan .flow .inner ul .circle {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: #fff;
    margin: 0 auto 10px;
    padding: 10px 0;
    position: relative;
  }
  main.sub .plan .flow .inner ul .circle:after {
    position: absolute;
    content: "";
    background: url("images/plan/icon_arrow.svg") no-repeat;
    background-size: 100%;
    width: 14px;
    height: 35px;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    right: -25px;
  }
  main.sub .plan .flow .inner ul span {
    display: block;
    text-align: center;
    color: #eb3223;
    font-weight: 500;
  }
  main.sub .plan .flow .inner ul span em {
    font-size: 1.2rem;
  }
  main.sub .plan .flow .inner ul img {
    width: 40px;
    display: block;
    margin: 10px auto;
  }
  main.sub .plan .flow .inner ul h3 {
    font-weight: 500;
    text-align: center;
  }
  main.sub .plan .flow .inner ul p {
    color: #fff;
    text-align: center;
    font-size: 0.75rem;
  }
  main.sub .plan .assets {
    padding: 0 20px 60px;
  }
  main.sub .plan .assets img {
    border-radius: 10px;
    max-width: 260px;
  }
  main.sub .company .greet {
    position: relative;
    padding: 40px 20px 0;
  }
  main.sub .company .greet:after {
    position: absolute;
    content: "";
    top: 120px;
    right: 0;
    background: url("images/company/bg_logo.svg") no-repeat;
    background-size: 100%;
    width: 200px;
    height: 280px;
    z-index: -1;
  }
  main.sub .company .greet .pic {
    font-size: 0.8rem;
    max-width: 200px;
    margin: 0 auto 40px;
  }
  main.sub .company .greet .pic p {
    margin: 20px auto 10px;
  }
  main.sub .company .greet .pic p span {
    display: block;
    font-size: 1.2rem;
  }
  main.sub .company .greet .pic a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 10px;
  }
  main.sub .company .greet .cont h3 {
    margin-bottom: 20px;
    text-align: center;
  }
  main.sub .company .greet .cont p:not(:last-child) {
    margin-bottom: 20px;
  }
  main.sub .privacy {
    padding: 40px 20px;
  }
  main.sub .privacy .lead {
    margin-bottom: 40px;
  }
  main.sub .privacy > ul {
    margin-bottom: 40px;
  }
  main.sub .privacy > ul > li:not(:last-child) {
    margin-bottom: 40px;
  }
  main.sub .privacy > ul p:not(:last-of-type) {
    margin-bottom: 20px;
  }
  main.sub .privacy .right {
    text-align: right;
  }
  main.sub .contact,
  main.sub .download {
    padding: 40px 20px;
  }
  main.sub .contact img,
  main.sub .download img {
    margin: 0 auto 20px;
  }
  main.sub .contact > p,
  main.sub .download > p {
    margin-bottom: 40px;
  }
  main.sub .contact .wpcf7-form > ul > li:not(:last-child),
  main.sub .download .wpcf7-form > ul > li:not(:last-child) {
    margin-bottom: 30px;
  }
  main.sub .contact .wpcf7-form > ul .title,
  main.sub .download .wpcf7-form > ul .title {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 10px;
    margin-bottom: 10px;
  }
  main.sub .contact .wpcf7-form > ul .title span,
  main.sub .download .wpcf7-form > ul .title span {
    display: block;
    color: #fff;
    text-align: center;
    font-size: 0.8rem;
    line-height: 1.3;
    border-radius: 100px;
    width: 48px;
    background: #333;
  }
  main.sub .contact .wpcf7-form > ul .select,
  main.sub .download .wpcf7-form > ul .select {
    overflow: hidden;
    width: 100%;
    vertical-align: middle;
    color: #a8a8a8;
    position: relative;
  }
  main.sub .contact .wpcf7-form > ul .select:before,
  main.sub .download .wpcf7-form > ul .select:before {
    position: absolute;
    content: "";
    top: 0;
    right: 15px;
    bottom: 0;
    margin: auto;
    width: 7px;
    height: 7px;
    border: 0;
    border-bottom: 2px solid #c8c8c8;
    border-right: 2px solid #c8c8c8;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    pointer-events: none;
    z-index: 1;
  }
  main.sub .contact .wpcf7-form > ul select,
  main.sub .download .wpcf7-form > ul select {
    font-family: "Noto Sans JP", sans-serif;
    background: #fff;
    border-radius: 4px;
    border: none;
    width: 100%;
    font-size: 1rem;
    height: 50px;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    padding: 10px;
  }
  main.sub .contact .wpcf7-form > ul input[type="text"],
  main.sub .contact .wpcf7-form > ul input[type="tel"],
  main.sub .contact .wpcf7-form > ul input[type="email"],
  main.sub .download .wpcf7-form > ul input[type="text"],
  main.sub .download .wpcf7-form > ul input[type="tel"],
  main.sub .download .wpcf7-form > ul input[type="email"] {
    font-family: "Noto Sans JP", sans-serif;
    width: 100%;
    height: 50px;
    padding: 10px;
    outline: none;
    background: #fff;
    border-radius: 4px;
  }
  main.sub .contact .wpcf7-form > ul textarea,
  main.sub .download .wpcf7-form > ul textarea {
    font-family: "Noto Sans JP", sans-serif;
    width: 100%;
    height: 200px;
    padding: 10px;
    font-size: 1rem;
    background: #fff;
    border-radius: 4px;
    outline: none;
  }
  main.sub .contact .wpcf7-form > ul ::-webkit-input-placeholder,
  main.sub .download .wpcf7-form > ul ::-webkit-input-placeholder {
    color: #a8a8a8;
  }
  main.sub .contact .wpcf7-form > ul :-ms-input-placeholder,
  main.sub .download .wpcf7-form > ul :-ms-input-placeholder {
    color: #a8a8a8;
  }
  main.sub .contact .wpcf7-form > ul ::-ms-input-placeholder,
  main.sub .download .wpcf7-form > ul ::-ms-input-placeholder {
    color: #a8a8a8;
  }
  main.sub .contact .wpcf7-form > ul ::placeholder,
  main.sub .download .wpcf7-form > ul ::placeholder {
    color: #a8a8a8;
  }
  main.sub .contact .agree,
  main.sub .download .agree {
    text-align: center;
    margin: 40px auto 20px;
  }
  main.sub .contact .agree a,
  main.sub .download .agree a {
    text-decoration: underline;
  }
  main.sub .contact .agree .wpcf7-form-control.wpcf7-acceptance span.wpcf7-list-item,
  main.sub .download .agree .wpcf7-form-control.wpcf7-acceptance span.wpcf7-list-item {
    position: relative;
    width: 100%;
    margin: 0;
  }
  main.sub .contact .agree .wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label,
  main.sub .download .agree .wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label {
    cursor: pointer;
    position: relative;
  }
  main.sub .contact .agree .wpcf7-form-control.wpcf7-acceptance input[type="checkbox"],
  main.sub .download .agree .wpcf7-form-control.wpcf7-acceptance input[type="checkbox"] {
    position: absolute;
    opacity: 0;
  }
  main.sub .contact .agree .wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label:before,
  main.sub .download .agree .wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label:before {
    content: "";
    border: 1px solid #c8c8c8;
    border-radius: 4px;
    background: #fff;
    display: inline-block;
    width: 16px;
    height: 16px;
    position: relative;
    top: 0;
    margin-right: 10px;
    vertical-align: middle;
    cursor: pointer;
    text-align: center;
  }
  main.sub .contact .agree .wpcf7-form-control.wpcf7-acceptance input[type="checkbox"]:checked + .wpcf7-list-item-label:after,
  main.sub .download .agree .wpcf7-form-control.wpcf7-acceptance input[type="checkbox"]:checked + .wpcf7-list-item-label:after {
    content: "";
    display: block;
    position: absolute;
    top: 8px;
    left: 3px;
    width: 10px;
    height: 6px;
    border-left: 2px solid #d3060a;
    border-bottom: 2px solid #d3060a;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  main.sub .contact .wpcf7-spinner,
  main.sub .download .wpcf7-spinner {
    display: none;
  }
  main.sub .contact input[type="submit"],
  main.sub .download input[type="submit"] {
    font-family: "Noto Sans JP", sans-serif;
    outline: none;
    -webkit-appearance: none;
    margin: 20px auto 0;
  }
  main.sub .news,
  main.sub .column {
    padding: 40px 20px;
  }
  main.sub .pagination .nav-links {
    font-family: "Alata", sans-serif;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 20px;
    padding-top: 40px;
  }
  main.sub .pagination .page-numbers {
    display: block;
    text-decoration: none;
    border-radius: 50%;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
    border: none;
  }
  main.sub .pagination .page-numbers.current {
    color: #d3060a !important;
  }
  main.sub .pagination .page-numbers:not(.prev):not(.next) {
    color: #333;
  }
  main.sub .pagination .prev,
  main.sub .pagination .next {
    position: relative;
    width: 30px;
    height: 30px;
    background: #222;
    border-radius: 50%;
    color: transparent;
  }
  main.sub .pagination .prev::before,
  main.sub .pagination .next::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
  main.sub .pagination .prev::before {
    -webkit-transform: translate(-30%, -50%) rotate(-135deg);
            transform: translate(-30%, -50%) rotate(-135deg);
  }
  main.sub .pagination .next::before {
    -webkit-transform: translate(-70%, -50%) rotate(45deg);
            transform: translate(-70%, -50%) rotate(45deg);
  }
  main.sub .single {
    padding: 40px 20px;
  }
  main.sub .single .content .dec {
    margin-bottom: 20px;
  }
  main.sub .single .content > p:not(:last-child) {
    margin-bottom: 20px;
  }
  main.sub .single .content > p a {
    text-decoration: underline;
    word-break: break-all;
    color: #d3060a;
    font-weight: 500;
  }
  main.sub .single .content > p strong {
    font-weight: 500;
  }
  main.sub .single .content > p em {
    font-style: italic;
  }
  main.sub .single .content img,
  main.sub .single .content .wp-video {
    margin: 40px auto;
    display: block;
  }
  main.sub .single .content iframe {
    width: 100%;
    display: block;
    margin: 40px auto;
    height: auto;
    aspect-ratio: 16 / 9;
  }
  main.sub .single .content blockquote {
    padding: 20px 40px;
    position: relative;
    margin: 40px 0;
    background: #f7f7f7;
  }
  main.sub .single .content blockquote:before {
    position: absolute;
    content: "\f10d";
    font-family: "FontAwesome";
    font-weight: bold;
    font-size: 20px;
    color: #d3060a;
    top: 10px;
    left: 10px;
  }
  main.sub .single .content blockquote:after {
    position: absolute;
    font-family: "FontAwesome";
    content: "\f10e";
    font-size: 20px;
    color: #d3060a;
    right: 10px;
    bottom: 10px;
  }
  main.sub .single .content blockquote p:last-child {
    margin-bottom: 0;
  }
  main.sub .single .content ul:not([class]) {
    padding-left: 20px;
    margin: 40px auto;
  }
  main.sub .single .content ul:not([class]) li {
    list-style: disc;
  }
  main.sub .single .content ul:not([class]) li:not(:last-child) {
    margin-bottom: 5px;
  }
  main.sub .single .content h1,
  main.sub .single .content h2 {
    font-size: 1.4rem;
    margin: 20px 0;
  }
  main.sub .single .content h3 {
    margin: 20px 0;
    font-size: 1.2rem;
    padding: 2px 10px;
    border-left: 4px solid #d3060a;
  }
  main.sub .single .content h4 {
    font-size: 1.2rem;
    margin: 20px 0;
    color: #d3060a;
    font-weight: 500;
  }
  main.sub .single .content table {
    width: 100%;
    margin: 20px 0;
  }
  main.sub .single .content table th {
    background: #222;
    padding: 10px;
    vertical-align: middle;
    color: #fff;
    text-align: left;
  }
  main.sub .single .content table td {
    background: #f7f7f7;
    padding: 10px;
    vertical-align: middle;
  }
  main.sub .single .content dl {
    margin: 40px auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
  main.sub .single .content dl dt {
    background: #222;
    color: #fff;
    padding: 10px;
    width: 40%;
    vertical-align: middle;
  }
  main.sub .single .content dl dd {
    width: calc(100% - 40%);
    background: #f7f7f7;
    padding: 10px;
    vertical-align: middle;
  }
  main.sub .pagenavi {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding-top: 40px;
  }
  main.sub .pagenavi li {
    width: 32%;
  }
  main.sub .pagenavi .btn {
    font-size: 1rem;
  }
  main.sub .error,
  main.sub .thnaks {
    padding: 40px 20px;
    text-align: center;
  }
  main.sub .error h2,
  main.sub .thnaks h2 {
    font-size: 1.2rem;
    font-weight: 500;
    margin-bottom: 20px;
  }
  main.sub .error p:not(:last-child),
  main.sub .thnaks p:not(:last-child) {
    margin-bottom: 20px;
  }
  main.sub .error .btn,
  main.sub .thnaks .btn {
    margin: 40px auto 0;
  }
  footer .contact {
    padding: 0 20px 40px;
  }
  footer .contact li {
    border-radius: 20px;
    position: relative;
  }
  footer .contact li:not(:last-child) {
    margin-bottom: 20px;
  }
  footer .contact li a:first-child img {
    width: 100%;
    height: 150px;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 20px;
  }
  footer .contact li a {
    display: block;
  }
  footer .contact h3 {
    position: absolute;
    top: 20px;
    left: 20px;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 500;
  }
  footer .contact h3 span {
    display: block;
    font-size: 1.6rem;
    margin-bottom: 10px;
  }
  footer .contact .link {
    display: block;
    position: absolute;
    content: "";
    bottom: 20px;
    right: 20px;
    z-index: 1;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff;
    text-align: center;
    padding: 5px 0;
  }
  footer .f_blc {
    background: url("images/common/bg_footer.svg") no-repeat;
    background-size: cover;
    background-position: center;
    padding: 80px 20px 20px;
  }
  footer .f_blc .f_logo a {
    display: block;
    text-align: center;
    margin: 0 auto 40px;
  }
  footer .f_blc .f_nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 20px;
    margin-bottom: 40px;
  }
  footer .f_blc .f_nav a {
    font-weight: 500;
    color: #fff;
    display: inline-block;
    margin-bottom: 10px;
  }
  footer .f_blc small {
    display: block;
    text-align: center;
    font-size: 0.8rem;
    color: #fff;
  }
  footer .pagetop {
    display: none;
    position: fixed;
    bottom: 50px;
    right: 10px;
    background: #222;
    color: #fff;
    width: 40px;
    height: 40px;
    font-size: 1.6rem;
    border-radius: 5px;
    text-align: center;
    -webkit-transition: 0.7s;
    transition: 0.7s;
    z-index: 10;
  }
  footer .fixbtn {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    display: none;
    z-index: 10;
  }
  footer .fixbtn li {
    width: 50%;
  }
  footer .fixbtn .btn {
    border-radius: 0;
    font-size: 1rem;
  }
  footer.company .contact {
    background: url("images/common/bg_contact_hayabusa.svg") no-repeat;
    background-size: cover;
    background-position: center;
    color: #fff;
    padding: 40px 20px;
    margin-bottom: 0;
  }
  footer.company .contact h2 {
    font-size: 1.6rem;
    margin-bottom: 20px;
  }
  footer.company .contact .btn {
    font-size: 1rem;
    padding: 10px 40px;
    text-align: left;
    background: #474747;
    -webkit-box-shadow: none;
            box-shadow: none;
    margin: 40px auto 0;
  }
  footer.company .f_blc {
    background: #222;
    padding: 40px 20px 20px;
  }
  .pconly {
    display: none;
  }
}
/*# sourceMappingURL=style.css.map */