@charset "UTF-8";
/* Scss Document */
/******************************************
[utility]
******************************************/
@media (min-width: 991px) {
  .mb {
    margin-bottom: 48px;
  }

  .mb2 {
    margin-bottom: 36px;
  }

  .mb3 {
    margin-bottom: 24px;
  }

  .mb-lg {
    margin-bottom: 60px;
  }

  .mb-xl {
    margin-bottom: 72px;
  }

  .mb-xxl {
    margin-bottom: 84px;
  }

  .mb-xxxl {
    margin-bottom: 96px;
  }
}
@media (max-width: 991px) {
  .mb {
    margin-bottom: 36px;
  }

  .mb2 {
    margin-bottom: 24px;
  }

  .mb3 {
    margin-bottom: 12px;
  }

  .mb-sp {
    margin-bottom: 36px;
  }

  .mb2-sp {
    margin-bottom: 24px;
  }

  .mb3-sp {
    margin-bottom: 12px;
  }

  .mb-lg {
    margin-bottom: 40px;
  }

  .mb-xl {
    margin-bottom: 48px;
  }

  .mb-xxl {
    margin-bottom: 60px;
  }

  .mb-xxxl {
    margin-bottom: 72px;
  }

  .mb-lg-sp {
    margin-bottom: 40px;
  }

  .mb-xl-sp {
    margin-bottom: 48px;
  }

  .mb-xxl-sp {
    margin-bottom: 60px;
  }

  .mb-xxxl-sp {
    margin-bottom: 72px;
  }

  .secBg {
    padding: 60px 0;
  }

  .sec {
    background: #fff;
    border: 1px solid #e9edf0;
    padding: 24px;
  }

  .sec-noBorder {
    background: #fff;
    padding: 24px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .mb-tab {
    margin-bottom: 36px;
  }

  .mb2-tab {
    margin-bottom: 24px;
  }

  .mb3-tab {
    margin-bottom: 12px;
  }
}
@media screen and (min-width: 992px) {
  .secBg {
    padding: 120px 0;
  }

  .sec {
    background: #fff;
    border: 1px solid #e9edf0;
    padding: 36px;
  }

  .sec-noBorder {
    background: #fff;
    padding: 36px;
  }
}
@media (max-width: 767px) {
  .sp-mail-icon a {
    position: fixed;
    top: 10px;
    right: 150px;
    z-index: 201;
    display: inline-block;
    float: right;
    clear: right;
    width: 60px;
    height: 60px;
    background: #e60011;
    text-align: center;
    line-height: 56px;
    color: #231815;
    border-radius: 30px;
  }
  .sp-mail-icon a:hover {
    color: #231815;
  }
  .sp-mail-icon a:active {
    color: #231815;
  }
  .sp-mail-icon a > div {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
  }
  .sp-mail-icon a > div img {
    width: 26px;
    height: auto;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .sp-mail-icon a {
    position: fixed;
    top: 0;
    right: 80px;
    z-index: 201;
    display: inline-block;
    float: right;
    clear: right;
    margin-top: 0;
    width: 60px;
    height: 60px;
    background: #e60011;
    text-align: center;
    line-height: 56px;
    color: #231815;
    border-radius: 30px;
  }
  .sp-mail-icon a:hover {
    color: #231815;
  }
  .sp-mail-icon a:active {
    color: #231815;
  }
  .sp-mail-icon a > div {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
  }
}
.sp-tel-icon a {
  position: fixed;
  top: 10px;
  right: 80px;
  z-index: 201;
  display: inline-block;
  float: right;
  clear: right;
  width: 60px;
  height: 60px;
  text-align: center;
  color: #231815;
  border-radius: 30px;
}
.sp-tel-icon a:hover {
  color: #231815;
}
.sp-tel-icon a:active {
  color: #231815;
}
.sp-tel-icon a > div {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 60px;
  height: 60px;
}
.sp-tel-icon a > div img {
  width: 24px;
  height: auto;
}

.icon-ttl {
  position: absolute;
  display: block;
  width: auto;
  font-weight: bold;
  letter-spacing: normal;
  line-height: 1em;
  font-size: 10px;
  color: #231815;
  bottom: 9px;
  left: 50%;
  transform: translateX(-50%);
}

/* ドロワー　バーガーナビ　PC表示　ここから */
@media (min-width: 992px) {
  /*ドロワー*/
  .l-drawer {
    position: relative;
    height: auto;
  }
  .l-drawer__checkbox {
    display: none;
  }
  .l-drawer__icon {
    cursor: pointer;
    display: block;
    width: 80px;
    height: 80px;
    position: fixed;
    top: 0;
    right: 0;
    /*
    background: rgba(242,242,242,1);
    */
    background: #fff;
  }
  .l-drawer__icon-parts, .l-drawer__icon-parts:before, .l-drawer__icon-parts:after {
    background-color: #231815;
    display: block;
    width: 30px;
    height: 3px;
    position: absolute;
    top: 21px;
    right: 0;
    left: 0;
    bottom: 0;
    margin: auto;
  }
  .l-drawer__icon-parts:before, .l-drawer__icon-parts:after {
    content: " ";
  }
  .l-drawer__icon-parts:before {
    top: -20px;
    left: -1px;
    background: #e60011;
  }
  .l-drawer__icon-parts:after {
    top: -40px;
    left: -1px;
  }
  .l-drawer__overlay {
    background: #231815;
    opacity: 0;
    pointer-events: none;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    right: 0;
  }
  .l-drawer__menu {
    display: grid;
    place-content: center;
    background: rgba(255, 255, 255, 0.93);
    color: #231815;
    /*
    max-width: 100%;
    width: calc( 100% - 13.88vw );//180px
    height: calc( 100vh - 13.88vw );//180px
    */
    width: 100vw;
    height: 100vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    position: fixed;
    /*
    top: 6.94vw;//13.88vw/2
    */
    top: 0;
    left: -100%;
    /*
    border-radius: 60px; 
    */
  }
  .l-drawer__icon {
    z-index: 4;
  }
  .l-drawer__menu {
    z-index: 3;
  }
  .l-drawer__overlay {
    z-index: 2;
  }
  .l-drawer__checkbox:checked ~ .l-drawer__icon .l-drawer__icon-parts {
    background: transparent;
  }
  .l-drawer__checkbox:checked ~ .l-drawer__icon .l-drawer__icon-parts:before {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    top: -20px;
  }
  .l-drawer__checkbox:checked ~ .l-drawer__icon .l-drawer__icon-parts:after {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    top: -20px;
  }
  .l-drawer__checkbox:checked ~ .l-drawer__overlay {
    opacity: 0.3;
    pointer-events: auto;
  }
  .l-drawer__checkbox:checked ~ .l-drawer__menu {
    /*
    left: 3.47vw;
    */
    left: 0;
    opacity: 1;
  }
  .l-drawer__icon-parts, .l-drawer__icon-parts:after, .l-drawer__icon-parts:before, .l-drawer__overlay, .l-drawer__menu {
    -webkit-transition: all 0.7s;
    transition: all 0.7s;
  }

  .l-drawer--navi {
    display: grid;
    grid-template-columns: 25vw 25vw;
    column-gap: 2.5vw;
    font-size: 1.2rem;
    font-weight: bold;
  }

  .l-drawer--navi > li > a {
    position: relative;
    display: block;
    padding: 1.95em;
    border-bottom: 1px solid #cbd3da;
  }

  .l-drawer--navi > li > a:after {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 5%;
    display: block;
    content: "";
    background: url("../img/icon_arrow_right_line.svg");
    background-size: cover;
    width: 12px;
    height: 9px;
  }

  .l-drawer--navi > li:last-child > a {
    border-right: none;
  }

  .l-drawer--navi > li:nth-last-child(1), .l-drawer--navi > li:nth-last-child(2) {
    border-bottom: none;
  }

  .l-drawer--navi > li > a:hover {
    color: #e60011;
  }
}
/* ドロワー　バーガーナビ　PC表示　ここまで */
/* ドロワー　バーガーナビ　SP表示　ここから */
@media (max-width: 991px) {
  /*ドロワー*/
  .l-drawer {
    position: relative;
  }
  .l-drawer__checkbox {
    display: none;
  }
  .l-drawer__icon {
    cursor: pointer;
    display: block;
    width: 60px;
    height: 60px;
    position: fixed;
    right: 10px;
    top: 10px;
    border-radius: 30px;
    /*
    background: rgba(242,242,242,1);
    */
  }
  .l-drawer__icon-parts, .l-drawer__icon-parts:before, .l-drawer__icon-parts:after {
    background-color: #fff;
    display: block;
    width: 26px;
    height: 2px;
    position: absolute;
    top: 16px;
    right: 0;
    left: 0;
    bottom: 0;
    margin: auto;
  }
  .l-drawer__icon-parts:before, .l-drawer__icon-parts:after {
    content: " ";
  }
  .l-drawer__icon-parts:before {
    top: -16px;
    background: #e60011;
  }
  .l-drawer__icon-parts:after {
    top: -32px;
  }
  .l-drawer__overlay {
    background: #231815;
    opacity: 0;
    pointer-events: none;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    right: 0;
  }
  .l-drawer__menu {
    background: #fff;
    max-width: 100%;
    width: 100vw;
    height: 100vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    position: fixed;
    top: 0;
    left: -100%;
  }
  .l-drawer__icon {
    z-index: 4;
  }
  .l-drawer__menu {
    z-index: 3;
  }
  .l-drawer__overlay {
    z-index: 2;
  }
  .l-drawer__checkbox:checked ~ .l-drawer__icon .l-drawer__icon-parts {
    background: transparent;
  }
  .l-drawer__checkbox:checked ~ .l-drawer__icon .l-drawer__icon-parts:before {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    top: -16px;
  }
  .l-drawer__checkbox:checked ~ .l-drawer__icon .l-drawer__icon-parts:after {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    top: -16px;
  }
  .l-drawer__checkbox:checked ~ .l-drawer__overlay {
    opacity: 0.3;
    pointer-events: auto;
  }
  .l-drawer__checkbox:checked ~ .l-drawer__menu {
    left: 0;
  }
  .l-drawer__icon-parts, .l-drawer__icon-parts:after, .l-drawer__icon-parts:before, .l-drawer__overlay, .l-drawer__menu {
    -webkit-transition: all 0.7s;
    transition: all 0.7s;
  }
  .l-drawer .l-drawer__title {
    position: absolute;
    z-index: 4;
    top: 42px;
    left: 14px;
    font-weight: bold;
    letter-spacing: normal;
    line-height: 1em;
    font-size: 10px;
    color: #231815;
  }
  .l-drawer .l-drawer--box {
    margin-top: 80px;
    padding-left: 5px;
    padding-right: 5px;
  }
  .l-drawer .l-drawer--navi {
    display: flex;
    flex-direction: column;
  }
  .l-drawer .l-drawer--navi > li > a {
    position: relative;
    display: block;
    padding: 1.1em;
    border-top: 1px solid #e9edf0;
    text-align: center;
    font-weight: bold;
  }
  .l-drawer .l-drawer--navi > li > a:after {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 5%;
    display: block;
    content: "";
    background: url("../img/icon_arrow_right_line.svg");
    background-size: cover;
    width: 12px;
    height: 9px;
  }
  .l-drawer .l-drawer--navi > li:nth-child(even) > a {
    border-right: none;
  }
  .l-drawer .l-drawer--navi > li:last-child > a {
    border-bottom: 1px solid #e9edf0;
  }
  .l-drawer .l-drawer--navi > li > a:hover {
    background: #f8f9fa;
  }
}
/* ドロワー　バーガーナビ　SP表示　ここまで */
/* ドロップダウンメニューPC　バーガーナビ　ここから */
@media (min-width: 992px) {
  .l-drawer--dropdown-title {
    display: block;
    color: #231815;
    border-bottom: 1px solid #e9edf0;
  }

  .l-drawer--dropdown {
    display: none;
  }

  .l-drawer--dropdown > li a {
    display: block;
    padding: 1em 1.95em;
  }

  .l-drawer--dropdown > li {
    position: relative;
    border-bottom: 1px solid #e9edf0;
  }

  .l-drawer--dropdown > li:hover a {
    background: #f8f9fa;
  }

  .l-drawer--dropdown > li:first-child a {
    border-top: 1px solid #e9edf0;
  }

  .l-drawer--dropdown > li:last-child a {
    border-bottom: none;
  }

  label.l-drawer--dropdown-lavel {
    position: relative;
    transition: .7s;
  }

  label.l-drawer--dropdown-lavel:hover {
    background: #f8f9fa;
    transition: .7s;
  }

  .l-drawer--dropdown > li:last-child {
    border-bottom: none;
  }

  .l-drawer--dropdown > li:after {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 5%;
    display: block;
    content: "";
    background: url("../img/icon_arrow_right_line.svg");
    background-size: cover;
    width: 12px;
    height: 9px;
  }

  /*
  label.l-drawer--dropdown-lavel,
  .l-drawer--dropdown >li:last-child{
    padding: 1em 0 1.95em 0;
  }
  */
  label.l-drawer--dropdown-lavel[for="drop--menu"]::before {
    content: "";
    display: block;
    position: absolute;
    top: calc( 50% - 0.25em );
    right: 5%;
    transform: translateY(-50%);
    width: .5em;
    height: .5em;
    border-top: #e60011 2px solid;
    border-left: #e60011 2px solid;
    transform: rotate(-135deg);
  }

  input[type="checkbox"] {
    display: none;
  }

  label.l-drawer--dropdown-lavel[for="drop--menu"] {
    display: block;
    padding: 1.95em;
  }

  #drop--menu:checked + label.l-drawer--dropdown-lavel[for="drop--menu"] + .l-drawer--dropdown {
    display: block;
  }

  #drop--menu:checked + label.l-drawer--dropdown-lavel[for="drop--menu"]::before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: calc( 5% - 2px );
    transform: translateY(-50%);
    width: 12px;
    height: 2px;
    background: #e60011;
    transform: rotate(45deg);
  }

  #drop--menu:checked + label.l-drawer--dropdown-lavel[for="drop--menu"]::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: calc( 5% - 2px );
    transform: translateY(-50%);
    width: 12px;
    height: 2px;
    background: #e60011;
    transform: rotate(-45deg);
  }
}
/* ドロップダウンメニューPC　バーガーナビ　ここまで */
/* ドロップダウンメニューSP　バーガーナビ　ここから */
@media (max-width: 991px) {
  .l-drawer--dropdown-title {
    display: block;
    border-top: 1px solid #e9edf0;
  }

  .l-drawer--dropdown {
    display: none;
  }

  .l-drawer--dropdown > li a {
    display: block;
  }

  .l-drawer--dropdown > li {
    position: relative;
    padding: 1.95em;
    border-bottom: 1px solid #e9edf0;
    transition: .7s;
  }

  .l-drawer--dropdown > li:hover {
    background: #f8f9fa;
    transition: .7s;
  }

  label.l-drawer--dropdown-lavel {
    position: relative;
    transition: .7s;
  }

  label.l-drawer--dropdown-lavel:hover {
    background: #f8f9fa;
    transition: .7s;
  }

  .l-drawer--dropdown > li:first-child {
    border-top: 1px solid #e9edf0;
  }

  .l-drawer--dropdown > li:last-child {
    border-bottom: none;
  }

  .l-drawer--dropdown > li:after {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 5%;
    display: block;
    content: "";
    background: url("../img/icon_arrow_right_line.svg");
    background-size: cover;
    width: 12px;
    height: 9px;
  }

  /*
  label.l-drawer--dropdown-lavel,
  .l-drawer--dropdown >li:last-child{
    padding: 1em 0 1.95em 0;
  }
  */
  label.l-drawer--dropdown-lavel[for="drop--menu"]::before {
    content: "";
    display: block;
    position: absolute;
    top: calc( 50% - 0.25em );
    right: 5%;
    transform: translateY(-50%);
    width: .5em;
    height: .5em;
    border-top: #e60011 2px solid;
    border-left: #e60011 2px solid;
    transform: rotate(-135deg);
  }

  input[type="checkbox"] {
    display: none;
  }

  label.l-drawer--dropdown-lavel[for="drop--menu"] {
    display: block;
    padding: 1.95em;
  }

  #drop--menu:checked + label.l-drawer--dropdown-lavel[for="drop--menu"] + .l-drawer--dropdown {
    display: block;
  }

  #drop--menu:checked + label.l-drawer--dropdown-lavel[for="drop--menu"]::before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: calc( 5% - 2px );
    transform: translateY(-50%);
    width: 12px;
    height: 2px;
    background: #e60011;
    transform: rotate(45deg);
  }

  #drop--menu:checked + label.l-drawer--dropdown-lavel[for="drop--menu"]::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: calc( 5% - 2px );
    transform: translateY(-50%);
    width: 12px;
    height: 2px;
    background: #e60011;
    transform: rotate(-45deg);
  }
}
/* ドロップダウンメニューSP　バーガーナビ　ここまで */
@keyframes drop-down-fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* ヘッダーグローバルナビ　ドロップダウンメニューPC　ここから */
@media (min-width: 992px) {
  .dropdown--list {
    display: none;
    border: 1px solid #e9edf0;
    animation-name: drop-down-fadein;
    animation-duration: .5s;
    animation-timing-function: ease-out;
    animation-fill-mode: forwards;
  }

  .dropdown--list--wrap:hover .dropdown--list {
    display: block;
  }

  .dropdown--list_inner {
    position: relative;
    background: #fff;
    transition: all .3s;
  }

  .dropdown--list_inner:not(:first-child)::before {
    content: "";
    width: 100%;
    height: 1px;
    background: #e9edf0;
    position: absolute;
    top: 0;
    left: 0;
  }

  .dropdown--list_inner:hover {
    background: #f8f9fa;
  }

  .dropdown--list_inner a {
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
  }

  @keyframes drop-down-fadein {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
}
/* ヘッダーグローバルナビ　ドロップダウンメニューPC　ここまで */
.background50lr {
  background: linear-gradient(90deg, #f9f6ef 0%, #f9f6ef 50%, #fff 50%, #fff 100%);
}

.background50rl {
  background: linear-gradient(-90deg, #f9f6ef 0%, #f9f6ef 50%, #fff 50%, #fff 100%);
}

.backgroundY50tb {
  background: linear-gradient(180deg, #f9f6ef 0%, #f9f6ef 50%, #fff 50%, #fff 100%);
}

.backgroundY50bt {
  background: linear-gradient(-180deg, #f9f6ef 0%, #f9f6ef 50%, #fff 50%, #fff 100%);
}

.bnrBox {
  position: relative;
  width: 100%;
  height: auto;
}
.bnrBox > div:first-child {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}
.bnrBox > div:last-child {
  overflow: hidden;
}
.bnrBox > div:last-child img {
  width: 100%;
  height: auto;
  -webkit-transition: all 1s ease;
  transition: all 1s ease;
}
.bnrBox > div:last-child img:hover {
  -webkit-transform: scale(1.2, 1.2);
  transform: scale(1.2, 1.2);
}

@media (min-width: 768px) {
  .infoBnr {
    border: 3px double #231815;
    padding: 1rem;
    text-align: center;
  }
  .infoBnr div:nth-child(1) {
    border-right: 1px solid #231815;
    padding: 1rem;
    font-weight: bold;
  }
  .infoBnr div:nth-child(2) a {
    padding: 1rem;
    color: #231815;
  }
  .infoBnr div:nth-child(2) a:hover {
    color: #231815;
    text-decoration: none;
  }
  .infoBnr div:nth-child(2) small {
    display: block;
  }
  .infoBnr div:nth-child(3) a {
    position: relative;
    display: block;
    background: #333333;
    padding: 1.5rem;
    color: #fff;
  }
  .infoBnr div:nth-child(3) a:after {
    position: absolute;
    display: block;
    content: ">";
    top: 50%;
    transform: translateY(-50%);
    right: 1rem;
  }
  .infoBnr div:nth-child(3) a:hover {
    background: rgba(51, 51, 51, 0.7);
  }

  .priceTbl {
    display: table;
  }
  .priceTbl li {
    display: table-cell;
    vertical-align: middle;
    line-height: 1em;
    border-bottom: 1px solid #e9edf0;
    padding-bottom: 1em;
  }
  .priceTbl li:nth-child(1) {
    width: 50%;
    height: auto;
  }
  .priceTbl li:nth-child(1) span {
    display: block;
    margin-top: 10px;
    font-size: 0.75em;
  }
  .priceTbl li:nth-child(2) {
    width: 50%;
    height: auto;
    text-align: right;
  }

  .companyTbl {
    width: 100%;
  }
  .companyTbl th {
    width: 30%;
    padding: 1em 0;
    border-bottom: 1px solid #e9edf0;
    box-sizing: border-box;
  }
  .companyTbl th div {
    background: #e60011;
    padding: 0.615em 1em;
    color: #fff;
    font-weight: bold;
  }
  .companyTbl td {
    width: 70%;
    padding: 1em;
    border-bottom: 1px solid #e9edf0;
    box-sizing: border-box;
  }
  .companyTbl td p {
    margin-bottom: 15px;
    border-bottom: 1px solid #e9edf0;
    padding-bottom: 15px;
  }
  .companyTbl td p:last-child {
    margin-bottom: 0;
    border-bottom: none;
    padding-bottom: 0;
  }
  .companyTbl a:link {
    text-decoration: underline;
  }

  .companyTbl2 {
    width: 100%;
  }
  .companyTbl2 th {
    width: 30%;
    padding: 1em;
    border-bottom: 1px solid #e9edf0;
    box-sizing: border-box;
  }
  .companyTbl2 th div {
    font-weight: bold;
  }
  .companyTbl2 td {
    width: 70%;
    padding: 1em;
    border-bottom: 1px solid #e9edf0;
    box-sizing: border-box;
  }
  .companyTbl2 td p {
    margin-bottom: 15px;
    border-bottom: 1px solid #e9edf0;
    padding-bottom: 15px;
  }
  .companyTbl2 td p:last-child {
    margin-bottom: 0;
    border-bottom: none;
    padding-bottom: 0;
  }
  .companyTbl2 a:link {
    text-decoration: underline;
  }

  .titleBoxBig {
    width: 100%;
    min-width: 750px;
    height: auto;
    min-height: 540px;
    background: url("https://placehold.jp/cfcfcf/ffffff/1920x1080.jpg") no-repeat center center;
    background-size: cover;
    background-attachment: fixed;
  }
  .titleBoxBig div {
    height: 540px;
  }
  .titleBoxBig h3 {
    color: #fff;
    position: relative;
    text-align: center;
    text-shadow: 0 0 6px rgba(0, 0, 0, 0.9);
  }

  .shadowBox-l,
  .shadowBox-r {
    position: relative;
  }

  .shadowBox-l:after {
    display: block;
    position: absolute;
    content: "";
    width: 100%;
    top: 30px;
    bottom: -30px;
    left: -30px;
    background: rgba(0, 0, 0, 0.05);
  }

  .shadowBox-r:after {
    display: block;
    position: absolute;
    content: "";
    width: 100%;
    top: 30px;
    bottom: -30px;
    left: 30px;
    background: rgba(0, 0, 0, 0.05);
  }

  .shadowBox-l-inner,
  .shadowBox-r-inner {
    position: relative;
    z-index: 1;
    overflow: hidden;
  }

  a:hover .shadowBox-l-inner img,
  a:hover .shadowBox-r-inner img {
    transform: scale(1.1);
    transration: 1s;
    filter: alpha(opacity=100);
    -moz-opacity: 1;
    opacity: 1;
  }

  .shadowBox-l-inner img,
  .shadowBox-r-inner img {
    transition-duration: 1s;
  }

  .shadowBox-inner-box {
    position: absolute;
    background: rgba(254, 254, 254, 0.8);
    padding: 30px;
    right: 30px;
    bottom: -30px;
    left: 30px;
    box-sizing: border-box;
    z-index: 2;
    text-align: center;
  }
  .shadowBox-inner-box h4 {
    border-bottom: 1px solid #231815;
    padding-bottom: 15px;
    margin-bottom: 15px;
  }

  .titleLarge-box {
    position: relative;
    display: block;
    text-align: center;
  }
  .titleLarge-box p {
    position: relative;
    display: block;
    width: 100%;
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 5.5rem;
    line-height: 4.4rem;
    background: linear-gradient(120deg, rgba(245, 245, 245, 0.7) 0%, rgba(234, 234, 234, 0.7) 100%);
    -webkit-background-clip: text;
    color: transparent;
    font-weight: 600;
    overflow-wrap: break-word;
  }
  .titleLarge-box h3 {
    display: block;
    width: 100%;
    font-weight: bold;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    margin-top: 2px;
  }

  .centerLine-title {
    position: relative;
    text-align: center;
    padding-top: 9rem;
  }

  .centerLine-title:before {
    content: "";
    display: block;
    width: .07143rem;
    height: 7.14286rem;
    position: absolute;
    top: 0px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    background: #000;
  }

  .recruit--bnr a {
    display: block;
    width: 100%;
    height: 520px;
    background-image: url("https://placehold.jp/cfcfcf/ffffff/750x464.png");
    background-size: cover;
    background-position: center center;
    /*
    filter: grayscale(100%);
    */
    color: #fff;
  }

  .recruit--bnr a:hover .recruit--bnr--inner {
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    border: 1px solid #000;
    color: #fff;
    transition: 1s;
  }

  .recruit--bnr--inner {
    width: 60%;
    height: auto;
    padding: 30px;
    border: 1px solid #fff;
    transition: 1s;
    background: rgba(255, 255, 255, 0.7);
    color: #231815;
  }

  .recruit--bnr--inner p {
    line-height: 1em;
  }

  .recruit--bnr--inner p:first-child {
    letter-spacing: .5rem;
    margin-bottom: 15px;
  }

  .recruit--bnr--inner p:nth-child(2) {
    letter-spacing: .5rem;
  }

  .number--4column {
    padding: 0 15px;
  }

  .number--4column-number {
    display: inline-block;
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 4.5rem;
    line-height: 3.5rem;
    padding-top: 30px;
    border-top: 1px solid #231815;
  }
}
@media (max-width: 767px) {
  .infoBnr {
    border: 3px double #231815;
    padding: 1rem;
    text-align: center;
    margin-left: 0;
    margin-right: 0;
  }
  .infoBnr div:nth-child(1) {
    border-right: none;
    padding: 0 1rem 1rem 1rem;
    font-weight: bold;
  }
  .infoBnr div:nth-child(2) {
    border-top: 1px solid #231815;
    padding-top: 1rem;
  }
  .infoBnr div:nth-child(2) a {
    display: block;
    width: 100%;
    padding: 0 1rem 1rem 1rem;
    color: #231815;
  }
  .infoBnr div:nth-child(2) a:hover {
    color: #231815;
    text-decoration: none;
  }
  .infoBnr div:nth-child(2) small {
    display: block;
  }
  .infoBnr div:nth-child(3) a {
    position: relative;
    display: block;
    background: #333333;
    padding: 1.5rem;
    color: #fff;
  }
  .infoBnr div:nth-child(3) a:after {
    position: absolute;
    display: block;
    content: ">";
    top: 50%;
    transform: translateY(-50%);
    right: 1rem;
  }
  .infoBnr div:nth-child(3) a:hover {
    background: rgba(51, 51, 51, 0.7);
  }

  .priceTbl {
    display: table;
  }
  .priceTbl li {
    display: table-cell;
    vertical-align: middle;
    line-height: 1em;
    border-bottom: 1px solid #e9edf0;
    padding-bottom: 1em;
  }
  .priceTbl li:nth-child(1) {
    width: 50%;
    height: auto;
  }
  .priceTbl li:nth-child(1) span {
    display: block;
    margin-top: 5px;
    font-size: 0.75em;
  }
  .priceTbl li:nth-child(2) {
    width: 50%;
    height: auto;
    text-align: right;
  }

  .companyTbl {
    width: 100%;
  }
  .companyTbl th {
    display: block;
    padding: 1em 0 0 0;
    box-sizing: border-box;
  }
  .companyTbl th div {
    border-left: 3px solid #e60011;
    padding: 0 0 0 .3rem;
    font-weight: bold;
  }
  .companyTbl td {
    display: block;
    padding: 1em 0;
    border-bottom: 1px solid #e9edf0;
    box-sizing: border-box;
  }
  .companyTbl td p {
    margin-bottom: 10px;
    border-bottom: 1px solid #e9edf0;
    padding-bottom: 10px;
  }
  .companyTbl td p:last-child {
    margin-bottom: 0;
    border-bottom: none;
    padding-bottom: 0;
  }
  .companyTbl a:link {
    text-decoration: underline;
  }

  .companyTbl2 {
    width: 100%;
  }
  .companyTbl2 th {
    display: block;
    padding: 1em 0 0 0;
    box-sizing: border-box;
  }
  .companyTbl2 th div {
    padding: 0;
    font-weight: bold;
  }
  .companyTbl2 td {
    display: block;
    padding: .5em 0 1em 0;
    border-bottom: 1px solid #e9edf0;
    box-sizing: border-box;
  }
  .companyTbl2 td p {
    margin-bottom: 10px;
    border-bottom: 1px solid #e9edf0;
    padding-bottom: 10px;
  }
  .companyTbl2 td p:last-child {
    margin-bottom: 0;
    border-bottom: none;
    padding-bottom: 0;
  }
  .companyTbl2 a:link {
    text-decoration: underline;
  }

  .titleBoxBig {
    width: 100%;
    min-width: 320px;
    height: auto;
    min-height: 232px;
    background: url(https://placehold.jp/cfcfcf/ffffff/1920x1080.jpg) no-repeat center center;
    background-size: cover;
  }
  .titleBoxBig div {
    height: 232px;
  }
  .titleBoxBig h3 {
    color: #fff;
    position: relative;
    text-align: center;
    text-shadow: 0 0 3px rgba(0, 0, 0, 0.8);
  }

  .loopSliderWrap {
    top: 0;
    left: 0;
    height: 116px;
    overflow: hidden;
    position: absolute;
  }

  .loopSlider {
    margin: 0 auto;
    width: 100vw;
    height: 116px;
    text-align: left;
    position: relative;
    overflow: hidden;
  }

  .loopSlider ul {
    height: 116px;
    float: left;
    overflow: hidden;
  }

  .loopSlider ul li {
    width: auto;
    height: 116px;
    float: left;
    display: inline;
    overflow: hidden;
  }

  .shadowBox-l, .shadowBox-r {
    position: relative;
  }

  .shadowBox-l:after {
    display: block;
    position: absolute;
    content: "";
    width: 100%;
    top: 10px;
    bottom: -10px;
    left: -10px;
    background: rgba(0, 0, 0, 0.05);
  }

  .shadowBox-r:after {
    display: block;
    position: absolute;
    content: "";
    width: 100%;
    top: 10px;
    bottom: -10px;
    left: 10px;
    background: rgba(0, 0, 0, 0.05);
  }

  .shadowBox-l-inner,
  .shadowBox-r-inner {
    position: relative;
    z-index: 1;
    overflow: hidden;
  }

  a:hover .shadowBox-l-inner img,
  a:hover .shadowBox-r-inner img {
    transform: scale(1.1);
    transration: 1s;
    filter: alpha(opacity=100);
    -moz-opacity: 1;
    opacity: 1;
  }

  .shadowBox-l-inner img,
  .shadowBox-r-inner img {
    transition-duration: 1s;
  }

  .shadowBox-inner-box {
    position: absolute;
    background: rgba(254, 254, 254, 0.8);
    padding: 10px;
    right: 10px;
    bottom: -10px;
    left: 10px;
    box-sizing: border-box;
    z-index: 2;
    text-align: center;
  }
  .shadowBox-inner-box h4 {
    border-bottom: 1px solid #231815;
    padding-bottom: 10px;
    margin-bottom: 10px;
  }

  .imgBox03, .imgBox04 {
    margin-left: -10px;
    margin-right: -10px;
  }

  .imgBox03 div:first-child, .imgBox04 div:first-child {
    padding: 0 !important;
  }

  .imgBox03 div:last-child, .imgBox04 div:last-child {
    padding-right: 5px !important;
    padding-left: 5px !important;
  }

  .titleLarge-box {
    position: relative;
    display: block;
    text-align: center;
  }
  .titleLarge-box p {
    position: relative;
    display: block;
    width: 100%;
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 3.5rem;
    line-height: 2.8rem;
    background: linear-gradient(120deg, rgba(245, 245, 245, 0.7) 0%, rgba(234, 234, 234, 0.7) 100%);
    -webkit-background-clip: text;
    color: transparent;
    font-weight: 600;
    overflow-wrap: break-word;
  }
  .titleLarge-box h3 {
    display: block;
    width: 100%;
    font-weight: bold;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    margin-top: 2px;
  }

  .centerLine-title {
    position: relative;
    text-align: center;
    padding-top: 4.5rem;
  }

  .centerLine-title:before {
    content: "";
    display: block;
    width: .07143rem;
    height: 3.57143rem;
    position: absolute;
    top: 0px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    background: #000;
  }

  .recruit--bnr a {
    display: block;
    width: 100%;
    height: 232px;
    background-image: url("https://placehold.jp/cfcfcf/ffffff/1920x1080.png");
    background-size: cover;
    background-position: center center;
    /*
    filter: grayscale(100%);
    */
    color: #fff;
  }

  .recruit--bnr a:hover .recruit--bnr--inner {
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    border: 1px solid #000;
    transition: 1s;
  }

  .recruit--bnr--inner {
    width: 80%;
    height: 40%;
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid #fff;
    color: #231815;
    transition: 1s;
  }

  .recruit--bnr--inner p {
    line-height: 1em;
  }

  .recruit--bnr--inner p:first-child {
    letter-spacing: .5rem;
    margin-bottom: 5px;
  }

  .recruit--bnr--inner p:nth-child(2) {
    letter-spacing: .5rem;
  }

  .number--4column-number {
    display: inline-block;
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-weight: 500;
    font-size: 3rem;
    line-height: 1.5rem;
    padding-top: 20px;
    border-top: 1px solid #231815;
  }
}
.answer-box {
  margin-top: 12px;
}

@media screen and (max-width: 991px) and (min-width: 768px) {
  .infoBnr {
    border: 3px double #231815;
    padding: 1rem;
    text-align: center;
  }
  .infoBnr div:nth-child(1) {
    border-right: none;
    padding: 0 1rem 1rem 1rem;
    font-weight: bold;
  }
  .infoBnr div:nth-child(2) {
    border-top: 1px solid #231815;
    padding-top: 1rem;
  }
  .infoBnr div:nth-child(2) a {
    display: block;
    width: 100%;
    padding: 0 1rem 1rem 1rem;
    color: #231815;
  }
  .infoBnr div:nth-child(2) a:hover {
    color: #231815;
    text-decoration: none;
  }
  .infoBnr div:nth-child(2) small {
    display: block;
  }
  .infoBnr div:nth-child(3) a {
    position: relative;
    display: block;
    background: #333333;
    padding: 1.5rem;
    color: #fff;
  }
  .infoBnr div:nth-child(3) a:after {
    position: absolute;
    display: block;
    content: ">";
    top: 50%;
    transform: translateY(-50%);
    right: 1rem;
  }
  .infoBnr div:nth-child(3) a:hover {
    background: rgba(51, 51, 51, 0.7);
  }

  .recruit--bnr a {
    height: 420px;
  }
}
@media (min-width: 992px) {
  .imgBox01 {
    position: relative;
  }

  .imgBox01-img {
    position: absolute;
    top: 0;
    right: 0;
  }

  .imgBox01-textBox {
    position: relative;
    margin-top: 50%;
    background: #f9f6ef;
    padding: 30px;
    z-index: 1;
  }

  .imgBox02 {
    position: relative;
  }

  .imgBox02-img {
    position: absolute;
    top: 0;
    left: 0;
  }

  .imgBox02-textBox {
    position: relative;
    margin-top: 50%;
    background: #f9f6ef;
    padding: 30px;
    z-index: 1;
  }

  .imgBox03-bg, .imgBox04-bg {
    padding: 33px 0;
  }

  .imgBox03:after {
    content: "";
    position: absolute;
    background: #f9f6ef;
    top: -10%;
    right: 0;
    width: 60%;
    height: 120%;
    z-index: -1;
  }

  .imgBox03-inner {
    padding-right: 30px;
  }

  .imgBox04:after {
    content: "";
    position: absolute;
    background: #f9f6ef;
    top: -10%;
    left: 0;
    width: 60%;
    height: 120%;
    z-index: -1;
  }

  .imgBox04-inner {
    text-align: right;
    padding-left: 30px;
  }
}
.second h3,
.second .h3 {
  position: relative;
  width: 100%;
  padding-bottom: 12px;
}

.second h3::before,
.second .h3::before {
  display: block;
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 280px;
  height: 2px;
  background: #e60011;
}

.second h3::after,
.second .h3::after {
  display: block;
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: calc(  100% - 280px );
  height: 2px;
  background: #e9edf0;
}

@media (max-width: 767px) {
  .second h3::before,
  .second .h3::before {
    width: 135px;
  }

  .second h3::after,
  .second .h3::after {
    width: calc(  100% - 135px );
  }
}
.second h4,
.second .h4 {
  border-left: 4px solid #e60011;
  padding-left: 20px;
}

@media (max-width: 767px) {
  .second h4,
  .second .h4 {
    border-left: 4px solid #e60011;
    padding-left: 12px;
  }
}
.second h5,
.second .h5 {
  position: relative;
  padding-left: 22px;
}

.second h5::before,
.second .h5::before {
  display: block;
  position: absolute;
  content: "";
  width: 12px;
  height: 2px;
  background: #e60011;
  top: 12px;
  left: 0;
}

.titleBox01 {
  border-left: 4px solid #e60011;
  padding-left: 1em;
}

.titleBox01 p {
  display: block;
  line-height: 1em;
  margin-top: 0.615em;
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
}

.titleBox02 {
  display: inline-block;
  text-align: center;
}

.titleBox02 h4,
.titleBox02 h3 {
  display: block;
  border-bottom: 2px solid #e60011;
  line-height: 0.85em;
  margin-bottom: 15px;
  padding-bottom: 15px;
}

.titleBox02 p {
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  line-height: 0.9em;
}

.titleBox03 {
  display: block;
  text-align: center;
}

.titleBox03 h3 {
  line-height: 1em;
  margin-bottom: 15px;
}

.titleBox03 p {
  display: inline-block;
  line-height: 1em;
  border-bottom: 2px solid #e60011;
  padding-bottom: 10px;
}

.titleBox04 {
  position: relative;
  display: block;
  text-align: center;
  color: #e60011;
  padding-bottom: 30px;
}

.titleBox04:after {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  width: 80px;
  content: '';
  border-bottom: 2px solid #e60011;
}

.titleBox04 span {
  display: block;
  font-size: 1rem;
  margin-top: 0.625rem;
}

.ttlSlash {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.ttlSlash:before,
.ttlSlash:after {
  content: '';
  width: 3px;
  height: 40px;
  background-color: #e60011;
}

.ttlSlash:before {
  margin-right: 30px;
  transform: rotate(-35deg);
}

.ttlSlash:after {
  margin-left: 30px;
  transform: rotate(35deg);
}

.ttlLine {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.ttlLine:before,
.ttlLine:after {
  content: '';
  width: 70px;
  height: 3px;
  background-color: #e60011;
}

.ttlLine:before {
  margin-right: 20px;
}

.ttlLine:after {
  margin-left: 20px;
}

.ttlArrow {
  position: relative;
  display: inline-block;
  padding-bottom: 0.5em;
  border-bottom: 2px solid #e60011;
}

.ttlArrow::before,
.ttlArrow::after {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  content: '';
  border: 15px solid transparent;
}

.ttlArrow::before {
  border-top: 15px solid #e60011;
}

.ttlArrow::after {
  margin-top: -3px;
  border-top: 15px solid #fff;
}

.ttlBrackets {
  position: relative;
  display: inline-block;
  padding: 0.26666em 1em;
}

.ttlBrackets::before {
  position: absolute;
  content: '';
  top: 0;
  right: 0.615em;
  width: 0.615em;
  height: 100%;
  border: solid 2px #e60011;
  border-left: none;
}

.ttlBrackets::after {
  position: absolute;
  content: '';
  top: 0;
  left: 0;
  width: 0.615em;
  height: 100%;
  border: solid 2px #e60011;
  border-right: none;
}

@media (max-width: 767px) {
  .titleBox04 {
    position: relative;
    display: block;
    text-align: center;
    color: #e60011;
    padding-bottom: 15px;
  }

  .titleBox04:after {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    display: block;
    width: 80px;
    content: '';
    border-bottom: 2px solid #e60011;
  }

  .titleBox04 span {
    display: block;
    font-size: 0.875rem;
    margin-top: 0.625rem;
  }
}
.title01::after {
  display: block;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  content: "";
  width: 78px;
  border-bottom: 2px solid #e60011;
}

@media (max-width: 767px) {
  .title01 {
    position: relative;
    display: block;
    text-align: center;
    padding-bottom: 15px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .title01 {
    position: relative;
    display: block;
    text-align: center;
    padding-bottom: 20px;
  }
}
@media (min-width: 992px) {
  .title01 {
    position: relative;
    display: block;
    text-align: center;
    padding-bottom: 30px;
  }
}
@media (max-width: 767px) {
  .title02::after {
    content: '';
    display: block;
    margin: 15px 0 0 0;
    width: 78px;
    height: 2px;
    background-color: #e60011;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .title02::after {
    content: '';
    display: block;
    margin: 20px 0 0 0;
    width: 78px;
    height: 2px;
    background-color: #e60011;
  }
}
@media (min-width: 992px) {
  .title02::after {
    content: '';
    display: block;
    margin: 30px 0 0 0;
    width: 78px;
    height: 2px;
    background-color: #e60011;
  }
}
.title-bdb {
  display: inline-block;
  border-bottom: 2px solid #e60011;
  padding-bottom: 15px;
}

.btnStyle-01-bg,
.btnStyle-01-bg::after {
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}

.btnStyle-01-bg {
  min-width: 220px;
  height: 46px;
  background: none;
  border: 2px solid #000;
  cursor: pointer;
  color: #000;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 0 1em;
  position: relative;
}

.btnStyle-01-bg::before,
.btnStyle-01-bg::after {
  background: #000;
  content: '';
  position: absolute;
  z-index: -1;
}

.btnStyle-01-bg:hover {
  color: #fff;
}

.btnStyle-01::after {
  height: 100%;
  left: 0;
  top: 0;
  width: 0;
}

.btnStyle-01:hover:after {
  width: 100%;
}

.btnStyle-02 {
  max-width: 270px;
  text-align: center;
  padding: 1em;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  margin: 0 auto;
}

.btnStyle-02:before {
  content: "";
  position: absolute;
  width: 0;
  background: #000;
  left: 45%;
  height: 2px;
  bottom: 0;
  transition: all .3s;
  opacity: 0.7;
}

.btnStyle-02:hover:before {
  width: 100%;
  left: 0;
}

.btnStyle-03-bg {
  min-width: 270px;
  text-align: center;
  display: block;
  position: relative;
  text-decoration: none;
  color: #fff;
  text-transform: capitalize;
  padding: 1em;
  overflow: hidden;
  background: #000;
  margin: auto;
  border-radius: 5px;
}

.btnStyle-03-bg.btnStyle-03 {
  transition: all 0.2s linear 0s;
}
.btnStyle-03-bg.btnStyle-03:before {
  content: "\f30b";
  font-family: "Font Awesome 5 Free";
  font-size: 15px;
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  right: 0;
  top: 0;
  opacity: 0;
  height: 100%;
  width: 40px;
  transition: all 0.2s linear 0s;
}
.btnStyle-03-bg.btnStyle-03:hover {
  text-indent: -20px;
  color: #fff;
}
.btnStyle-03-bg.btnStyle-03:hover:before {
  opacity: 1;
  text-indent: 0px;
}

.btn-arrow a {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  height: 46px;
  color: #fff;
  text-align: center;
  background-color: #e60011;
  border: 2px solid #e60011;
  transform: rotate(0.04deg);
  letter-spacing: .1em;
  margin-left: auto;
  margin-right: auto;
  border-radius: 3em;
  transition: 1s;
}

.btn-arrow a span {
  padding: 0 1.5em;
}

.btn-arrow a:hover {
  color: #e60011;
  background-color: #fff;
  transition: 1s;
}

.btn-arrow a:hover::after {
  right: 1em;
  border-top: 2px solid #e60011;
  border-right: 2px solid #e60011;
}

.btn-arrow a::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 1.5em;
  margin: auto;
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  transition: all .4s ease-out;
}

.btn-arrow-border a {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  height: 46px;
  color: #e60011;
  text-align: center;
  background-color: #fff;
  border: 2px solid #e60011;
  transform: rotate(0.04deg);
  letter-spacing: .1em;
  margin-left: auto;
  margin-right: auto;
  border-radius: 3em;
  transition: 1s;
}

.btn-arrow-border a span {
  padding: 0 1.5em;
}

.btn-arrow-border a:hover {
  color: #fff;
  background-color: #e60011;
  transition: 1s;
}

.btn-arrow-border a:hover::after {
  right: 1em;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}

.btn-arrow-border a::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 1.5em;
  margin: auto;
  width: 10px;
  height: 10px;
  border-top: 2px solid #e60011;
  border-right: 2px solid #e60011;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  transition: all .4s ease-out;
}

.pill-button {
  font-weight: 600;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  min-width: 220px;
  height: 46px;
  padding: 0 23px;
  border-radius: 46px;
  border: 2px solid #e60011;
  background: #e60011;
  color: #fff;
  transition: 1s;
}
.pill-button > a {
  font-weight: bold;
  color: #fff;
}
.pill-button:hover {
  background: #fff;
  color: #e60011;
  transition: 1s;
}
.pill-button:hover a {
  color: #e60011;
}
.pill-button span {
  display: block;
  width: 100%;
  text-align: center;
}

.pill-button-border {
  font-weight: 600;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  min-width: 220px;
  height: 46px;
  padding: 0 23px;
  border-radius: 46px;
  border: 2px solid #e60011;
  color: #e60011;
  transition: 1s;
}
.pill-button-border span {
  display: block;
  width: 100%;
  text-align: center;
}

.pill-button-border:hover {
  background: #e60011;
  color: #fff;
  transition: 1s;
}

.square-button {
  font-weight: 600;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  height: 46px;
  padding: 0 23px;
  border: 2px solid #e60011;
  background: #e60011;
  color: #fff;
}
.square-button:hover {
  background: #fff;
  color: #e60011;
}

.square-button-border {
  font-weight: 600;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  height: 46px;
  padding: 0 23px;
  border: 2px solid #e60011;
  color: #e60011;
}
.square-button-border :hover {
  background: #e60011;
  color: #fff;
}

a.btn-longArrow {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 260px;
  height: 62px;
  background: #e60011;
  color: #fff;
  transition: 1s;
}

a:hover.btn-longArrow {
  background: #e60011;
  color: #fff;
  transition: 1s;
}

a.btn-longArrow::after {
  display: block;
  content: "";
  background: url("../img/btn-arrow01.svg") no-repeat;
  background-size: contain;
  width: 34px;
  height: 6px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 16px;
  transition: .5s;
}

a:hover.btn-longArrow::after {
  display: block;
  content: "";
  background: url("../img/btn-arrow01.svg") no-repeat;
  background-size: contain;
  width: 34px;
  height: 6px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 6px;
  transition: .5s;
}

.lineDot-yellow {
  position: relative;
  width: 2px;
  height: 60px;
  background: #fecb79;
}

.lineDot-yellow::before {
  display: block;
  position: absolute;
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 3px;
  background: #fecb79;
  top: 0;
  left: -2px;
}

.lineDot-yellow::after {
  display: block;
  position: absolute;
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 3px;
  background: #fecb79;
  bottom: 0;
  left: -2px;
}

@media (max-width: 767px) {
  .column3--percent--box {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
  }

  .column3--percent--box img {
    border-radius: 10px 10px 0 0;
  }

  .column3--percent--box p:nth-child(2) {
    padding: 0 10px;
  }

  .column3--percent--box p:nth-child(3) {
    padding: 0 10px 10px 10px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .column3--percent--box {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
  }

  .column3--percent--box img {
    display: none;
  }

  .column3--percent--box p:nth-child(2) {
    padding: 0 20px;
  }

  .column3--percent--box p:nth-child(3) {
    padding: 0 20px 20px 20px;
  }
}
@media (min-width: 992px) {
  .column3--percent li {
    padding-right: 45px;
    padding-left: 45px;
  }

  .column3--percent--box {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
  }

  .column3--percent--box img {
    border-radius: 10px 10px 0 0;
  }

  .column3--percent--box p:nth-child(2) {
    padding: 0 20px;
  }

  .column3--percent--box p:nth-child(3) {
    padding: 0 20px 20px 20px;
  }
}
@media (max-width: 767px) {
  .img-2col-01 > div:last-child {
    padding: 0 12px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .img-2col-01 > div:last-child {
    padding: 0 15px;
  }
}
@media (min-width: 992px) {
  .img-2col-01 > div:last-child {
    width: calc( 50vw - 180px );
    margin-right: 90px;
    margin-left: 90px;
  }
}
.bg-grad-blk-wht--45 {
  background: linear-gradient(-45deg, #fff 0%, #fff 50%, #000 50%, #000 100%);
}

.btn--grad {
  position: relative;
  display: inline-block;
  background-image: linear-gradient(90deg, #45aaff 0%, #005daa 100%);
  padding: 1.75rem 3.5rem;
  border-radius: 2.75rem;
  transition: 1s;
  overflow: hidden;
}
.btn--grad > span {
  position: relative;
  z-index: 2;
}
.btn--grad > span:first-child {
  margin-right: 10px;
}

.btn--grad::after {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  transition: 1s;
  opacity: 0;
  background-image: linear-gradient(90deg, #005daa 0%, #45aaff 100%);
  border-radius: 2.75rem;
}

a.btn--grad span, a:hover.btn--grad span, a:visited.btn--grad span {
  color: #fff;
  text-decoration: none;
}

.btn--grad:hover::after {
  opacity: 1;
}

@media (max-width: 991px) {
  .btn--grad {
    display: block;
    padding: 1.75rem;
    border-radius: 4.107rem;
  }
  .btn--grad > span:first-child {
    margin-right: 0;
    margin-bottom: 5px;
  }
  .btn--grad > span {
    display: block;
  }

  .btn--grad::after {
    border-radius: 4.107rem;
  }
}
.banner01 {
  position: relative;
  display: block;
  text-align: center;
}

.banner01 > div:first-child {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

.banner01--innner {
  width: 60%;
  height: auto;
  padding: 30px;
  background: rgba(255, 255, 255, 0.8);
  color: #231815;
}

.banner01--innner p:first-child {
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  letter-spacing: .5rem;
  margin-bottom: 15px;
  text-transform: uppercase;
}

.banner01 img {
  filter: grayscale(0%);
  transition: 1s;
}

.banner01:hover img {
  filter: grayscale(100%);
  transition: 1s;
}

@media (max-width: 767px) {
  .banner01--innner {
    padding: 15px;
  }
}
/* お問い合わせ　電話番号 / フォームボタン */
@media (max-width: 767px) {
  .top-sec07-btn-bg {
    margin-left: 5px;
    margin-right: 5px;
  }

  .top-sec07-btn {
    display: block;
    width: 100%;
    height: 90px;
    background: #e60011;
    border-radius: 90px;
    color: #fff;
  }

  a:hover.top-sec07-btn {
    color: #fff;
  }

  a:hover.top-sec07-btn-hover {
    background: #ff3443;
  }

  a:hover.top-sec07-btn-hover > .top-sec07-btn-inner > .top-sec07-btn-icon {
    color: #ff3443;
    transition: 1s;
  }

  .top-sec07-btn-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    line-height: 44px;
    background: #fff;
    color: #e60011;
    text-align: center;
    font-size: 20px;
    margin-right: 7px;
    transition: 1s;
  }

  .top-sec07-btn-icon img {
    width: 24px;
    height: 24px;
  }

  .top-sec07-btn-inner-text01 {
    font-size: .75rem;
    letter-spacing: .09em;
    margin-bottom: 1px;
  }

  .top-sec07-btn-inner-tel {
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 2rem;
    line-height: 1em;
  }

  .top-sec07-btn-inner-text02 {
    font-size: .75rem;
    letter-spacing: .05em;
    margin-bottom: 5px;
  }

  .top-sec07-btn-inner-form {
    font-size: 1.2rem;
    line-height: 1em;
    font-weight: bold;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .top-sec07-btn {
    display: block;
    width: 100%;
    height: 140px;
    background: #e60011;
    border-radius: 30px;
    color: #fff;
  }

  a:hover.top-sec07-btn {
    color: #fff;
  }

  a:hover.top-sec07-btn-hover {
    background: #ff3443;
  }

  a:hover.top-sec07-btn-hover > .top-sec07-btn-inner > .top-sec07-btn-icon {
    color: #ff3443;
    transition: 1s;
  }

  .top-sec07-btn-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    line-height: 56px;
    background: #fff;
    color: #e60011;
    text-align: center;
    font-size: 28px;
    margin-right: 10px;
    transition: 1s;
  }

  .top-sec07-btn-icon img {
    width: 36px;
    height: 36px;
  }

  .top-sec07-btn-inner-text01 {
    letter-spacing: .08em;
    margin-bottom: 1px;
  }

  .top-sec07-btn-inner-tel {
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 2.875rem;
    line-height: 1em;
  }

  .top-sec07-btn-inner-text02 {
    margin-bottom: 5px;
  }

  .top-sec07-btn-inner-form {
    font-size: 1.75rem;
    line-height: 1em;
    font-weight: bold;
    letter-spacing: .06em;
  }
}
@media (min-width: 992px) {
  .top-sec07-btn-bg li:first-child {
    padding-right: 5px;
  }

  .top-sec07-btn-bg li:last-child {
    padding-left: 5px;
  }

  .top-sec07-btn {
    display: block;
    width: 100%;
    height: 140px;
    background: #e60011;
    border-radius: 30px;
    color: #fff;
  }

  a:hover.top-sec07-btn {
    color: #fff;
  }

  a:hover.top-sec07-btn-hover {
    background: #ff3443;
  }

  a:hover.top-sec07-btn-hover > .top-sec07-btn-inner > .top-sec07-btn-icon {
    color: #ff3443;
    transition: 1s;
  }

  .top-sec07-btn-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    line-height: 56px;
    background: #fff;
    color: #e60011;
    text-align: center;
    font-size: 28px;
    margin-right: 10px;
    transition: 1s;
  }

  .top-sec07-btn-icon img {
    width: 36px;
    height: 36px;
  }

  .top-sec07-btn-inner-text01 {
    letter-spacing: .1em;
    margin-bottom: 1px;
  }

  .top-sec07-btn-inner-tel {
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 2.875rem;
    line-height: 1em;
  }

  .top-sec07-btn-inner-text02 {
    margin-bottom: 5px;
  }

  .top-sec07-btn-inner-form {
    font-size: 1.75rem;
    line-height: 1em;
    font-weight: bold;
    letter-spacing: .1em;
  }
}
@media (max-width: 767px) {
  .bdb-over-bg-r {
    margin-right: -5px !important;
    margin-left: -5px !important;
  }

  .bdb-over-r:before {
    display: block;
    content: "";
    width: 1px;
    height: 40px;
    background: #000;
    margin: -20px auto 10px;
  }

  .bdb-over-r {
    text-align: center;
  }
}
@media (min-width: 768px) {
  .bdb-over-r:after {
    display: block;
    content: "";
    width: 100%;
    width: calc( 100% + 30px);
    height: 1px;
    background: #000;
    margin: 30px 0 0 -30px;
  }

  .bdb-over-r {
    display: block;
    width: 70%;
    text-align: right;
  }
}
@media (max-width: 767px) {
  .bdb-over-bg-l {
    margin-right: -5px !important;
    margin-left: -5px !important;
  }

  .bdb-over-l:before {
    display: block;
    content: "";
    width: 1px;
    height: 40px;
    background: #000;
    margin: -20px auto 10px;
  }

  .bdb-over-l {
    text-align: center;
  }
}
@media (min-width: 768px) {
  .bdb-over-l:after {
    display: block;
    content: "";
    width: 100%;
    width: calc( 100% + 30px);
    height: 1px;
    background: #000;
    margin: 30px 0 0;
  }

  .bdb-over-l {
    display: block;
    width: 70%;
    margin-left: 30%;
  }
}
.sec-box01-bg {
  padding-top: 48px;
}

.sec-box01 {
  position: relative;
  padding: 30px 30px 48px;
}

.sec-box01::after {
  display: block;
  content: "";
  width: 100%;
  height: auto;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #f2f2f2;
  z-index: -1;
}

.sec-box01-img {
  margin-top: -78px;
}

@media (max-width: 767px) {
  .companyTbl3 {
    width: 100%;
  }

  .companyTbl3 tr th {
    display: block;
    width: 38.4%;
  }

  .companyTbl3 tr td {
    display: block;
    width: 100%;
    margin-bottom: 1em;
  }

  .companyTbl3 tr th div {
    position: relative;
    display: block;
    color: #e60011;
    border-bottom: 2px solid #e60011;
    padding: 0 1em 1em 1em;
  }

  .companyTbl3 tr th div::after {
    display: block;
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 2px;
    height: 38.4%;
    background: #e60011;
  }

  .companyTbl3 td {
    padding: 1em;
    border-bottom: 1px solid #e9edf0;
  }
}
@media (min-width: 768px) {
  .companyTbl3 {
    width: 100%;
  }

  .companyTbl3 tr th {
    width: 30%;
  }

  .companyTbl3 tr td {
    width: 70%;
  }

  .companyTbl3 tr {
    display: flex;
    align-items: stretch;
  }

  .companyTbl3 tr th div {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
    color: #e60011;
    padding: 1em;
    border-bottom: 2px solid #e60011;
    margin-right: 1em;
  }

  .companyTbl3 tr th div::after {
    display: block;
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 2px;
    height: 38.4%;
    background: #e60011;
  }

  .companyTbl3 td {
    display: flex;
    align-items: center;
    padding: 1em;
    border-bottom: 1px solid #e9edf0;
  }
}
/* yes no chart ここから*/
@media (min-width: 992px) {
  .yesno {
    height: 400px;
    position: relative;
    background: #fff;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.07);
    margin: 0 0 40px;
    clear: both;
    overflow: hidden;
  }

  .yesno ul {
    overflow: hidden;
    padding: 0 0 0 25px;
  }

  .yesno ul li {
    list-style: none;
    float: left;
    text-align: center;
    display: block;
    color: #fff;
    background-color: #066;
    line-height: 200px;
    font-size: 120%;
    width: 320px;
    margin: 0 20px 0 0;
  }

  .positionFit {
    position: absolute;
    left: 0px;
    top: 70px;
    width: 710px;
  }

  .positionFit p {
    background: #eee none repeat scroll 0 0;
    padding: 10px 25px;
    margin: 0 25px;
  }

  .yesno ul li a {
    background-color: #3498db;
    color: #fff;
    display: block;
    height: 100%;
    text-decoration: none;
    width: 100%;
    font-size: 28px;
  }

  .no-bg {
    background: #48cc83 !important;
  }

  .yesno ul li a:hover {
    background-color: #298dcf;
  }

  .yesno .material-icons {
    background: rgba(0, 0, 0, 0.1) none repeat scroll 0 0;
    border-radius: 50%;
    font-size: 30px;
    padding: 10px 10px 8px;
    vertical-align: middle;
    margin: 0 10px 0 0;
  }
}
/* yes no chart ここまで*/
/* スタッフ紹介　ここから */
@media (min-width: 768px) {
  .staff-box-bg {
    background: #fff;
    box-shadow: 0 0 18px #ccc;
  }

  .staff-position {
    position: absolute;
    background: #231815;
    color: #fff;
    top: 0;
    left: 0;
    padding: 6px 12px;
  }

  .staff-box-inner {
    padding: 24px;
  }

  .staffTbl {
    width: 100%;
  }

  .staff-tbl-bg {
    background: #f2f2f2;
    padding: 24px;
  }

  .staffTbl tr th {
    width: 9em;
  }

  .staffTbl tr th div {
    display: inline-block;
    width: 9em;
    text-align: center;
    font-weight: 400 !important;
    background: #231815;
    color: #fff;
    border-radius: 1em;
    padding: 0 1em;
    line-height: 2em;
  }

  .staffTbl tr td {
    padding: 1em;
  }

  .staffTbl tr {
    border-bottom: 1px dashed #231815;
    margin-bottom: 1em;
  }
}
@media (max-width: 767px) {
  .staff-box-bg {
    background: #fff;
    box-shadow: 0 0 18px #ccc;
  }

  .staff-position {
    position: absolute;
    background: #231815;
    color: #fff;
    top: 0;
    left: 0;
    padding: 6px 12px;
  }

  .staff-box-inner {
    padding: 12px;
  }

  .staff-tbl-bg {
    background: #f2f2f2;
    padding: 12px;
  }

  .staffTbl {
    width: 100%;
  }

  .staffTbl tr th {
    display: block;
  }

  .staffTbl tr th div {
    display: block;
    width: 9em;
    margin: 0 auto;
    text-align: center;
    font-weight: 400 !important;
    background: #231815;
    color: #fff;
    border-radius: 1em;
    padding: 0 1em;
    line-height: 2em;
  }

  .staffTbl tr td {
    display: block;
    padding: 1em 0;
    text-align: center;
  }

  .staffTbl tr {
    display: block;
    border-bottom: 1px dashed #231815;
    margin-bottom: 1em;
  }

  .staffTbl tr:last-child {
    margin-bottom: 0;
  }
}
/* スタッフ紹介　ここまで */
/* flow-box　ここから */
@media (max-width: 767px) {
  .flow-line-box {
    position: relative;
    background: #fff;
    border: 1px solid #e9edf0;
    padding: 24px 12px 12px;
    border-radius: 6px;
    box-shadow: 0 0 18px #ccc;
  }

  .flow-line {
    border-right: 5px dotted #e9edf0;
    width: 5px;
    height: 48px;
    margin: 0 auto;
  }

  .flow-line-title {
    position: absolute;
    top: -21px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 180px;
    height: 42px;
    border-radius: 21px;
    background: #e60011;
    color: #fff;
    padding: 0 .7em;
    font-size: 1.2rem;
  }
}
@media (min-width: 768px) {
  .flow-line-box {
    position: relative;
    background: #fff;
    border: 1px solid #e9edf0;
    padding: 36px;
    border-radius: 6px;
    box-shadow: 0 0 18px #ccc;
  }

  .flow-line {
    border-right: 5px dotted #e9edf0;
    width: 5px;
    height: 72px;
    margin: 0 auto;
  }

  .flow-line-title {
    position: absolute;
    top: -21px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 180px;
    height: 42px;
    border-radius: 21px;
    background: #e60011;
    color: #fff;
    padding: 0 1em;
    font-size: 1.5rem;
  }
}
/* flow-box　ここまで */
/* snsシェアボタン　ここから */
@media (max-width: 991px) {
  .sns-share-btn li {
    width: 80%;
    margin: 0 auto 12px;
  }

  .sns-share-btn li:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 992px) {
  .sns-share-btn {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
  }

  .sns-share-btn li {
    width: 20%;
  }
}
.sns-share-btn li a {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 48px;
  color: #fff;
}

.sns-share-btn-facebook {
  background: #3b579d;
  border-radius: 6px;
}

.sns-share-btn-twitter {
  background: #1da1f2;
  border-radius: 6px;
}

.sns-share-btn-note {
  background: #49c8b3;
  border-radius: 6px;
}

.sns-share-btn-instagram {
  background: #CF2E92;
  border-radius: 6px;
}

.sns-share-btn-line {
  background: #00B900;
  border-radius: 6px;
}

.sns-share-btn-icon img {
  width: 24px;
  height: 24px;
}

.sns-share-btn li a span {
  padding-right: 10px;
}

/* snsシェアボタン　ここまで */
@media (max-width: 991px) {
  .bg-cont01 {
    background: url("http://placehold.jp/cfcfcf/ffffff/2000x520.jpg") top center no-repeat;
    background-size: 160% auto;
    background-color: #e8e0d1;
    padding: 30% 0 60px;
  }

  .box-right {
    width: 95%;
    margin-left: auto;
  }

  .box-right-inner {
    width: 100%;
    height: auto;
    background: #fff;
    padding: 50px 18px;
    box-shadow: 0 0 18px #ccc;
  }

  .box-left {
    width: 95%;
  }

  .box-left-inner {
    width: 100%;
    height: auto;
    background: #fff;
    padding: 50px 18px;
    box-shadow: 0 0 18px #ccc;
  }
}
@media (min-width: 992px) {
  .bg-cont01 {
    background: url("http://placehold.jp/cfcfcf/ffffff/2000x520.jpg") top center no-repeat;
    background-size: 100% auto;
    background-color: #e8e0d1;
    padding: 15% 0 100px;
  }

  .box-right {
    width: calc( 50vw + 555px);
    margin-left: auto;
  }

  .box-right-inner {
    width: 100%;
    height: auto;
    background: #fff;
    padding: 36px;
    box-shadow: 0 0 18px #ccc;
  }

  .box-left {
    width: calc( 50vw + 555px);
  }

  .box-left-inner {
    width: 100%;
    height: auto;
    background: #fff;
    padding: 36px;
    box-shadow: 0 0 18px #ccc;
  }
}
@media (min-width: 768px) {
  .bg01 {
    background: url("../img/bg01.png") no-repeat left bottom;
    background-size: 100% auto;
  }
}
@media (max-width: 767px) {
  .bg01 {
    background: url("../img/bg01.png") no-repeat left bottom;
    background-size: 200%;
  }
}
/* table01ここから */
@media (max-width: 767px) {
  .table01 {
    width: 100%;
  }

  .table01 th {
    display: block;
    font-weight: normal;
    padding: 1em;
    border-bottom: 2px solid #e60011;
  }

  .table01 td {
    display: block;
    padding: 1em;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .table01 {
    width: 100%;
  }

  .table01 th {
    display: block;
    font-weight: normal;
    padding: 1em;
    border-bottom: 2px solid #e60011;
  }

  .table01 td {
    display: block;
    padding: 1em;
    border-bottom: 1px solid #e60011;
  }
}
@media (min-width: 992px) {
  .table01 {
    width: 100%;
    border-collapse: separate !important;
    border-spacing: 5px !important;
  }

  .table01 th {
    width: 30%;
    font-weight: normal;
    padding: 1em;
    border-bottom: 2px solid #e60011;
  }

  .table01 td {
    width: 70%;
    padding: 1em;
    border-bottom: 1px solid #e60011;
  }
}
/* table01ここまで */
/* btn01ここから */
.btn01-bg {
  display: inline-block;
  width: 300px;
}

a.btn01 {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 50px;
  background: repeating-linear-gradient(45deg, #fff, #fff 3px, #f2c643 3px, #f2c643 30px);
  color: #efb813;
  font-weight: bold;
  letter-spacing: 0.1em;
  position: relative;
}

a.btn01 span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 50px;
  background: #fff;
  border: 1px solid #f2c643;
  position: absolute;
  top: -6px;
  left: -6px;
  transition-duration: 0.2s;
}

a.btn01:hover span {
  left: 0;
  top: 0;
}

a:hover.btn01 {
  color: #efb813;
}

/* btn01ここまで */
/* btn02ここから */
.btn02 a {
  display: inline-block;
  position: relative;
  padding: 1em 1em 1em 50px;
  color: #231815;
  transition: 0.3s;
}

.btn02 a::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  border: 1px solid #231815;
  border-radius: 50vh;
  transition: 0.3s;
}

.btn02 a::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 12px;
  transform: translateY(-50%) rotate(45deg);
  width: 6px;
  height: 6px;
  border-top: 1px solid #231815;
  border-right: 1px solid #231815;
  transition: 0.3s;
}

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

.btn02 a:hover::before {
  background-color: #231815;
}

.btn02 a:hover::after {
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}

/* btn02ここまで */
/* heading01ここから */
.heading01 span {
  display: flex;
  align-items: center;
  color: #e60011;
  font-size: .5em;
  text-transform: uppercase;
  margin-bottom: 30px;
}

.heading01 span::before {
  content: '';
  display: inline-block;
  margin-right: 20px;
  width: 40px;
  height: 5px;
  background-color: #e60011;
}

/* heading01ここまで */
/* header-tpl01ここから */
@media (max-width: 991px) {
  .header-tpl01-bg {
    position: fixed;
    z-index: 3;
    top: 0;
    width: 100%;
  }

  .header-tpl01 {
    display: flex;
    align-items: center;
    width: 100%;
    height: 80px;
    padding: 0 0 0 10px;
    background: #fff;
  }

  .header-tpl01-logo img {
    width: auto;
    height: 45px;
  }
}
@media (max-width: 320px) {
  .header-tpl01-logo img {
    width: auto;
    height: 35px;
  }
}
@media (min-width: 992px) {
  .header-tpl01-bg {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 3;
    background: #fff;
  }

  .header-tpl01 {
    width: 100%;
    height: 80px;
  }

  .header-tpl01-logo {
    padding-left: 10px;
  }

  a.header-tpl01-contact {
    background: #e60011;
    height: 80px;
    padding: 0 30px;
    color: #fff;
  }

  a:hover.header-tpl01-contact {
    color: #fff;
    background: #b3000d;
  }

  .header-tpl01-contact-icon {
    margin-right: 6px;
  }

  a.header-tpl01-contact > span > .header-tpl01-contact-icon {
    color: #f2c643;
    transition: 1s;
  }

  a:hover.header-tpl01-contact > span > .header-tpl01-contact-icon {
    color: #efb813;
    transition: 1s;
  }

  .header-tpl01-contact > span:last-child {
    font-weight: bold;
  }

  a.header-tpl01-contact02 {
    background: #06c755;
    height: 80px;
    padding: 0 30px;
    color: #fff;
  }

  a.header-tpl01-contact02 span {
    font-weight: bold;
  }

  a:hover.header-tpl01-contact02 {
    color: #fff;
    background: #059540;
  }

  .header-tpl01-contact-icon img {
    width: 24px;
    height: auto;
  }

  a:hover.header-tpl01-contact02 > span > .header-tpl01-contact-icon {
    color: #ec4340;
    transition: 1s;
  }

  .header-tpl01-contact > span:last-child {
    font-weight: bold;
  }

  a.header-tpl01-tel {
    color: #231815;
    margin-right: 24px;
  }

  a:hover.header-tpl01-tel {
    color: #231815;
  }

  .header-tpl01-tel-icon img {
    width: 24px;
    height: auto;
  }

  .header-tpl01-tel > span:last-child {
    font-size: 24px;
    font-weight: bold;
  }

  .header-tpl01-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #fff;
  }

  .header-tpl01-nav li {
    flex: 1 1 auto;
  }

  .header-tpl01-nav li a {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 60px;
  }

  .header-tpl01-nav li a {
    position: relative;
    text-decoration: none;
  }

  .header-tpl01-nav li a::after {
    position: absolute;
    bottom: 0;
    left: 0;
    content: '';
    width: 100%;
    height: 3px;
    background: #e60011;
    transform: scale(0, 1);
    transform-origin: left top;
    transition: transform .3s;
  }

  .header-tpl01-nav li a:hover::after {
    transform: scale(1, 1);
  }
}
.header-tpl01_mv_slide_image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  animation: header-tpl01-slider 24s linear infinite;
}

.header-tpl01_mv_slide_image:nth-child(1) {
  background-image: url("../img/top-mv01.jpg");
  animation-delay: -2s;
}

.header-tpl01_mv_slide_image:nth-child(2) {
  background-image: url("../img/top-mv02.jpg");
  animation-delay: 6s;
}

.header-tpl01_mv_slide_image:nth-child(3) {
  background-image: url("../img/top-mv03.jpg");
  animation-delay: 14s;
}

.header-tpl01_mv_slide_image:nth-child(4) {
  background-image: url("../img/top-mv04.jpg");
  animation-delay: 22s;
}

.header-tpl01_mv_slide_image:nth-child(5) {
  background-image: url("../img/top-mv05.jpg");
  animation-delay: 30s;
}

@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-tpl01_mv_ttl {
    padding-left: 24px;
  }
}
@media (max-width: 991px) {
  .header-tpl01_mv_slide {
    position: relative;
    width: 100%;
    height: calc( 100dvh - 80px );
    overflow: hidden;
    margin-top: 80px;
  }

  .header-tpl01_mv_slide_image_ttl {
    display: flex;
    align-items: center;
    height: calc( 100dvh - 80px );
    padding-left: 12px;
  }
}
@media (min-width: 992px) {
  .header-tpl01_mv_slide {
    position: relative;
    width: 100%;
    height: calc( 100dvh - 140px );
    overflow: hidden;
    margin-top: 140px;
  }

  .header-tpl01_mv_slide_image_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: calc( 100dvh - 140px );
    width: 50vw;
  }
}
@keyframes header-tpl01-slider {
  0% {
    opacity: 0;
  }
  4.16% {
    opacity: 1;
  }
  33.33% {
    opacity: 1;
  }
  41.66% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@media (max-width: 991px) {
  .header-tpl01_mv {
    width: auto;
    height: calc( 100dvh - 80px );
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
    margin-top: 80px;
  }

  .header-tpl01_mv_ttl {
    display: flex;
    align-items: center;
    height: calc( 100dvh - 80px );
    padding-left: 12px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-tpl01_mv_ttl {
    padding-left: 24px;
  }
}
@media (min-width: 992px) {
  .header-tpl01_mv {
    width: auto;
    height: calc( 100dvh - 130px );
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
    margin-top: 130px;
  }

  .header-tpl01_mv_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: calc( 100dvh - 130px );
    width: 50vw;
  }
}
/* header-tpl01ここまで */
/* header-tpl02ここから */
@media (max-width: 767px) {
  .header-tpl02-bg {
    position: fixed;
    top: 0;
    width: 100%;
    height: 80px;
    padding: 0 12px;
    background: #fff;
    z-index: 3;
  }

  .header-tpl02 {
    height: 80px;
    display: flex;
    align-items: center;
  }

  .header-tpl02-logo img {
    width: auto;
    height: 50px;
  }
}
@media (max-width: 320px) {
  .header-tpl02-logo img {
    width: auto;
    height: 30px;
  }
}
@media (min-width: 992px) {
  .header-tpl02-bg {
    position: fixed;
    top: 0;
    width: 100%;
    height: 130px;
    padding: 10px;
    background: #fff;
    z-index: 1;
  }

  .header-tpl02 {
    display: flex;
    align-items: center;
    margin: 10px 0 24px 0;
  }

  .header-tpl02-logo {
    position: absolute;
    top: 35px;
    left: 10px;
  }

  .header-tpl02-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  .header-tpl02-nav li a {
    position: relative;
    display: block;
    font-weight: bold;
    margin-right: 24px;
  }

  .header-tpl02-nav li a::after {
    position: absolute;
    bottom: -4px;
    left: 0;
    content: '';
    width: 100%;
    height: 2px;
    background: #e60011;
    transform: scale(0, 1);
    transform-origin: left top;
    transition: transform .3s;
  }

  .header-tpl02-nav li a:hover::after {
    transform: scale(1, 1);
  }

  a.header-tpl02-contact {
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #e60011;
    color: #fff;
    padding: 0 1.5em;
    margin-right: 24px;
    border-radius: 20px;
    font-weight: 600;
    margin-left: auto;
  }

  a:hover.header-tpl02-contact {
    color: #fff;
    opacity: .5;
  }

  a.header-tpl02-contact > span:first-child {
    margin-right: 6px;
  }

  .header-tpl02-contact-icon img {
    width: 20px;
    height: auto;
  }

  .header-tpl02-tel {
    display: flex;
    align-items: flex-end;
    font-size: 1.5rem;
    font-weight: 600;
    margin-right: 14px;
    line-height: 1em;
    height: 40px;
  }

  .header-tpl02-tel-icon img {
    width: 24px;
    height: auto;
  }

  .header-tpl02-tel small {
    display: block;
    font-size: 10px;
    margin-top: -6px;
    margin-bottom: -5px;
  }
}
.header-tpl02_mv_slide_image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  animation: header-tpl02-slider 24s linear infinite;
}

.header-tpl02_mv_slide_image:nth-child(1) {
  background-image: url("../img/top-mv01.jpg");
  animation-delay: -2s;
}

.header-tpl02_mv_slide_image:nth-child(2) {
  background-image: url("../img/top-mv02.jpg");
  animation-delay: 6s;
}

.header-tpl02_mv_slide_image:nth-child(3) {
  background-image: url("../img/top-mv03.jpg");
  animation-delay: 14s;
}

.header-tpl02_mv_slide_image:nth-child(4) {
  background-image: url("../img/top-mv04.jpg");
  animation-delay: 22s;
}

.header-tpl02_mv_slide_image:nth-child(5) {
  background-image: url("../img/top-mv05.jpg");
  animation-delay: 30s;
}

@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-tpl02_mv_ttl {
    padding-left: 24px;
  }
}
@media (max-width: 991px) {
  .header-tpl02_mv_slide {
    position: relative;
    width: 100%;
    height: calc( 100dvh - 80px );
    overflow: hidden;
    margin-top: 80px;
  }

  .header-tpl02_mv_slide_image_ttl {
    display: flex;
    align-items: center;
    height: calc( 100dvh - 80px );
    padding-left: 12px;
  }
}
@media (min-width: 992px) {
  .header-tpl02_mv_slide {
    position: relative;
    width: 100%;
    height: calc( 100dvh - 130px );
    overflow: hidden;
    margin-top: 130px;
  }

  .header-tpl02_mv_slide_image_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: calc( 100dvh - 130px );
    width: 50vw;
  }
}
@keyframes header-tpl02-slider {
  0% {
    opacity: 0;
  }
  4.16% {
    opacity: 1;
  }
  33.33% {
    opacity: 1;
  }
  41.66% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@media (max-width: 991px) {
  .header-tpl02_mv {
    width: auto;
    height: calc( 100dvh - 80px );
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
    margin-top: 80px;
  }

  .header-tpl02_mv_ttl {
    display: flex;
    align-items: center;
    height: calc( 100dvh - 80px );
    padding-left: 12px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-tpl02_mv_ttl {
    padding-left: 24px;
  }
}
@media (min-width: 992px) {
  .header-tpl02_mv {
    width: auto;
    height: calc( 100dvh - 130px );
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
    margin-top: 130px;
  }

  .header-tpl02_mv_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: calc( 100dvh - 130px );
    width: 50vw;
  }
}
/* header-tpl02ここまで */
/* header-tpl03ここから */
@media (max-width: 991px) {
  .header-tpl03-bg {
    position: fixed;
    top: 0;
    width: 100%;
    height: 80px;
    padding: 0 12px;
    background: #231815;
    z-index: 3;
  }

  .header-tpl03 {
    height: 80px;
    display: flex;
    align-items: center;
  }

  .header-tpl03-logo img {
    width: auto;
    height: 45px;
  }
}
@media (max-width: 320px) {
  .header-tpl03-logo img {
    width: auto;
    height: 35px;
  }
}
@media (min-width: 992px) {
  .header-tpl03-bg {
    position: fixed;
    top: 0;
    width: 100%;
    height: 80px;
    padding: 10px;
    background: #231815;
    border-radius: 0 0 12px 0;
    z-index: 3;
  }

  .header-tpl03 {
    display: flex;
    align-items: center;
  }

  .header-tpl03-logo {
    margin-right: auto;
  }

  .header-tpl03-nav {
    display: flex;
    align-items: center;
  }

  .header-tpl03-nav li a {
    position: relative;
    margin-right: 18px;
  }

  .header-tpl03-nav li a::after {
    position: absolute;
    bottom: -4px;
    left: 0;
    content: '';
    width: 100%;
    height: 2px;
    background: #e60011;
    transform: scale(0, 1);
    transform-origin: left top;
    transition: transform .3s;
  }

  .header-tpl03-nav li a:hover::after {
    transform: scale(1, 1);
  }

  a.header-tpl03-contact {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 50px;
    background: #e60011;
    color: #fff;
    padding: 0 1.5em;
    margin-right: 24px;
    border-radius: 25px;
    font-weight: 600;
  }

  a:hover.header-tpl03-contact {
    color: #fff;
    opacity: .5;
  }

  .header-tpl03-contact-icon {
    margin-right: 6px;
  }

  .header-tpl03-contact-icon img {
    width: 24px;
    height: auto;
  }

  .header-tpl03-tel {
    display: flex;
    align-items: center;
    font-size: 1.5rem;
    font-weight: 600;
    margin-right: 14px;
    line-height: 1em;
    height: 40px;
    margin-right: 100px;
  }

  .header-tpl03-tel-icon {
    margin-right: 3px;
  }

  .header-tpl03-tel-icon img {
    width: 24px;
  }
}
.header-tpl03_mv_slide_image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  animation: header-tpl03-slider 24s linear infinite;
}

.header-tpl03_mv_slide_image:nth-child(1) {
  background-image: url("../img/top-mv01.jpg");
  animation-delay: -2s;
}

.header-tpl03_mv_slide_image:nth-child(2) {
  background-image: url("../img/top-mv02.jpg");
  animation-delay: 6s;
}

.header-tpl03_mv_slide_image:nth-child(3) {
  background-image: url("../img/top-mv03.jpg");
  animation-delay: 14s;
}

.header-tpl03_mv_slide_image:nth-child(4) {
  background-image: url("../img/top-mv04.jpg");
  animation-delay: 22s;
}

.header-tpl03_mv_slide_image:nth-child(5) {
  background-image: url("../img/top-mv05.jpg");
  animation-delay: 30s;
}

@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-tpl03_mv_ttl {
    padding-left: 24px;
  }
}
@media (max-width: 991px) {
  .header-tpl03_mv_slide {
    position: relative;
    width: 100%;
    height: calc( 100dvh - 80px );
    overflow: hidden;
    margin-top: 80px;
  }

  .header-tpl03_mv_slide_image_ttl {
    display: flex;
    align-items: center;
    height: calc( 100dvh - 80px );
    padding-left: 12px;
  }
}
@media (min-width: 992px) {
  .header-tpl03_mv_slide {
    position: relative;
    width: 100%;
    height: 100dvh;
    overflow: hidden;
    margin-top: -80px;
  }

  .header-tpl03_mv_slide_image_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100dvh;
    width: 50vw;
  }
}
@keyframes header-tpl03-slider {
  0% {
    opacity: 0;
  }
  4.16% {
    opacity: 1;
  }
  33.33% {
    opacity: 1;
  }
  41.66% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@media (max-width: 991px) {
  .header-tpl03_mv {
    width: auto;
    height: calc( 100dvh - 80px );
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
    margin-top: 80px;
  }

  .header-tpl03_mv_ttl {
    display: flex;
    align-items: center;
    height: calc( 100dvh - 80px );
    padding-left: 12px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-tpl03_mv_ttl {
    padding-left: 24px;
  }
}
@media (min-width: 992px) {
  .header-tpl03_mv {
    width: auto;
    height: 100dvh;
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
    margin-top: -80px;
  }

  .header-tpl03_mv_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100dvh;
    width: 50vw;
  }
}
/* header-tpl03ここまで */
/* service-contentここから */
.wrapper-container {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}

.wrapper-container .service-content-bg:nth-child(2n+1) {
  flex-direction: row-reverse;
}

.service-content-bg {
  position: relative;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 0 0 250px 0;
}

.service-content-img {
  position: relative;
  z-index: 1;
  width: 50%;
}

.service-content {
  position: relative;
  z-index: 1;
  width: 45%;
  background: #fff;
  box-shadow: 0 0 18px #ccc;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  top: 150px;
}

.service-content-area {
  padding: 40px;
}

.service-content-bg::after {
  content: '';
  position: absolute;
  width: 70%;
  height: 23em;
  background: #f3f3f3;
  right: 10%;
  top: 20%;
  z-index: 0;
}

@media (max-width: 767px) {
  .service-content-bg {
    margin: 0 0 50px 0;
  }

  .service-content-img {
    width: 100%;
  }

  .service-content {
    width: 100%;
    top: 0;
  }
}
/* service-content ここまで */
/* visual-img-bg ここから */
.visual-img-bg {
  position: relative;
  height: 55vh;
  background: url("https://placehold.jp/cfcfcf/ffffff/1076x432.jpg") no-repeat center;
  background-size: cover;
  margin: 0 0 200px 25%;
}

.visual-img-bg::after {
  content: '';
  position: absolute;
  top: 20%;
  left: -32%;
  width: 100%;
  height: 55vh;
  background: #f3f3f3;
  z-index: -1;
}

@media (max-width: 767px) {
  .visual-img-bg, .visual-img-bg::after {
    height: 20vh;
  }

  .visual-img-bg {
    margin: 0 0 100px 25%;
  }
}
/* visual-img-bg ここまで */
/* リクルートバナー　ここから */
@media (max-width: 991px) {
  .top-recruit-banner a {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    height: 232px;
    background: url("https://placehold.jp/cfcfcf/ffffff/1920x540.jpg") no-repeat center center;
    background-size: cover;
    color: #fff;
    text-decoration: none;
  }

  .top-recruit-banner a:hover {
    color: #fff;
  }

  .top-recruit-banner a::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    background-color: black;
    opacity: 0;
    z-index: 0;
    transition: 1s;
  }

  .top-recruit-banner a:hover::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    opacity: 1;
    z-index: 1;
    transition: 1s;
  }

  .top-recruit-banner-title {
    position: relative;
    z-index: 2;
  }

  .top-recruit-banner-title h3 {
    font-size: 2rem;
  }

  .top-recruit-banner-title p {
    font-weight: bold;
  }
}
@media (min-width: 992px) {
  .top-recruit-banner a {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    height: 540px;
    background: url("https://placehold.jp/cfcfcf/ffffff/1920x540.jpg") no-repeat center center;
    background-size: cover;
    color: #fff;
    text-decoration: none;
  }

  .top-recruit-banner a:hover {
    color: #fff;
  }

  .top-recruit-banner a::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    background-color: black;
    opacity: 0;
    z-index: 0;
    transition: 1s;
  }

  .top-recruit-banner a:hover::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    opacity: 1;
    z-index: 1;
    transition: 1s;
  }

  .top-recruit-banner-title {
    position: relative;
    z-index: 2;
  }

  .top-recruit-banner-title h3 {
    font-size: 4.5rem;
  }

  .top-recruit-banner-title p {
    font-weight: bold;
  }
}
/* リクルートバナー　ここまで */
/* フッターバナー SP TAB ここから */
@media (max-width: 991px) {
  .footer-banner-sp-bg {
    position: fixed;
    bottom: 0;
    z-index: 3;
  }

  .footer-banner-sp {
    display: flex;
  }

  .footer-banner-sp a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100vw;
    height: 60px;
    color: #fff;
    font-size: 12px;
  }

  .footer-banner-sp img {
    display: block;
    width: 22px;
    margin: 0 auto;
  }

  .footer-banner-sp a:nth-child(1) {
    background: #F4B5CA;
  }

  .footer-banner-sp a:nth-child(2) {
    background: #fff;
    color: #231815;
    font-size: 14px;
    font-weight: 600;
  }

  .footer-banner-sp a:hover:nth-child(2) {
    color: #231815;
  }

  .footer-banner-sp a:nth-child(2) img {
    width: 30px;
    margin-bottom: 3px;
  }

  .footer-banner-sp a:nth-child(3) {
    background: #00b900;
  }

  .footer-banner-sp a:hover {
    color: #fff;
  }
}
/* フッターバナー SP TAB ここまで */
/* ポイントボックス　ここから */
@media (min-width: 768px) {
  .point-box-bg {
    display: flex;
    justify-content: center;
  }

  .point-box-bg > div {
    width: 30%;
    margin-right: 5%;
  }

  .point-box-bg > div:nth-child(3n) {
    margin-right: 0;
  }

  .point-box {
    position: relative;
    padding: 0 18px 18px;
    box-shadow: 0 0 18px #ccc;
    border-radius: 6px;
  }

  .point-circle {
    position: absolute;
    top: -60px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 120px;
    height: 120px;
    background: #f2c643;
    color: #fff;
    border-radius: 60px;
  }

  .point-circle > span:last-child {
    font-size: 2.3rem;
    font-weight: bold;
    margin-left: 6px;
  }

  .point-img {
    margin-right: -18px;
    margin-left: -18px;
    border-radius: 6px 6px 0 0;
    overflow: hidden;
  }

  .point-img img {
    width: 100%;
  }
}
@media (max-width: 767px) {
  .point-box-bg {
    padding-right: 12px;
    padding-left: 12px;
  }

  .point-box-bg > div {
    margin-bottom: 52px;
  }

  .point-box-bg > div:last-child {
    margin-bottom: 0;
  }

  .point-box {
    position: relative;
    padding: 0 12px 12px;
    box-shadow: 0 0 18px #ccc;
    border-radius: 6px;
  }

  .point-circle {
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 80px;
    height: 80px;
    background: #f2c643;
    color: #fff;
    border-radius: 40px;
  }

  .point-circle > span:last-child {
    font-size: 1.5rem;
    font-weight: bold;
    margin-left: 6px;
  }

  .point-img {
    margin-right: -12px;
    margin-left: -12px;
    border-radius: 6px 6px 0 0;
    overflow: hidden;
  }
}
.point-title {
  text-align: center;
}

/* ポイントボックス　ここまで */
/* twobanner ここから */
@media (min-width: 768px) {
  .two-banner-bg {
    display: flex;
  }

  .two-banner {
    width: 50%;
  }

  .two-banner img {
    width: 100%;
  }

  .two-banner a {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
  }

  .two-banner a span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    color: #fff;
  }

  .two-banner a:hover span {
    color: #fff;
  }

  .two-banner a::before {
    position: absolute;
    content: "";
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0;
    background: black;
    transition: 1s;
  }

  .two-banner a:hover::before {
    position: absolute;
    content: "";
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 1;
    background: rgba(0, 0, 0, 0.5);
    transition: 1s;
  }
}
@media (max-width: 767px) {
  .two-banner-bg {
    display: block;
  }

  .two-banner-bg > div {
    margin-bottom: 10px;
  }

  .two-banner-bg > div:last-child {
    margin-bottom: 0;
  }

  .two-banner {
    width: 100%;
  }

  .two-banner a {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
  }

  .two-banner a span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    color: #fff;
  }

  .two-banner a:hover span {
    color: #fff;
  }

  .two-banner a::before {
    position: absolute;
    content: "";
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0;
    background: black;
    transition: 1s;
  }

  .two-banner a:hover::before {
    position: absolute;
    content: "";
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 1;
    background: rgba(0, 0, 0, 0.5);
    transition: 1s;
  }
}
/* twobanner ここまで */
/* CSSタブ切り替え　ここから */
.tab_container {
  background-color: #fff;
  margin: 0 auto;
}

.tab_item {
  width: calc(100%/2);
  padding: 18px 0;
  font-size: 1.2em;
  background-color: #fff;
  text-align: center;
  color: #e60011;
  display: block;
  float: left;
  text-align: center;
  font-weight: bold;
  transition: all 0.2s ease;
  cursor: pointer;
}

.tab_item:hover {
  opacity: 0.75;
}

input[name="tab_item"] {
  display: none;
}

.tab_content {
  display: none;
  clear: both;
  overflow: hidden;
}

#tab1:checked ~ #tab1_content,
#tab2:checked ~ #tab2_content,
#tab3:checked ~ #tab3_content,
#tab4:checked ~ #tab4_content {
  display: block;
}

.tab_container input:checked + .tab_item {
  position: relative;
}

.tab_container input:checked + .tab_item::after {
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  content: "";
  width: 100%;
  height: 3px;
  background: #e60011;
}

.tab_container label {
  margin-bottom: 0 !important;
}

@media (max-width: 767px) {
  .tab_content_description {
    margin-top: 36px;
  }
}
@media (min-width: 992px) {
  .tab_content_description {
    margin-top: 48px;
  }
}
/* CSSタブ切り替え　ここまで */
.parts-mv-2nd-04 {
  position: relative;
  width: 100%;
  background: url("../img/swiper-img02.jpg") no-repeat center center;
  background-size: cover;
}

@media (max-width: 767px) {
  .parts-mv-2nd-04 {
    height: 232px;
    margin-top: 80px;
  }

  .parts-mv-2nd-04 h1 {
    position: absolute;
    right: 12px;
    bottom: 12px;
    font-size: 10px;
    color: #fff;
  }

  .parts-mv-2nd-04 h2 {
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    padding: 6px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .parts-mv-2nd-04 {
    height: 348px;
    margin-top: 80px;
  }

  .parts-mv-2nd-04 h1 {
    position: absolute;
    right: 24px;
    bottom: 24px;
    font-size: 12px;
    color: #fff;
  }

  .parts-mv-2nd-04 h2 {
    left: 24px;
    bottom: 24px;
    padding: 24px;
  }
}
@media (min-width: 992px) {
  .parts-mv-2nd-04 {
    height: 540px;
  }

  .parts-mv-2nd-04 h1 {
    position: absolute;
    right: 36px;
    bottom: 36px;
    font-size: 12px;
    color: #fff;
  }

  .parts-mv-2nd-04 h2 {
    left: 72px;
    bottom: 72px;
    padding: 36px;
  }
}
.parts-mv-2nd-04 h2 {
  position: absolute;
  color: #fff;
  background: rgba(0, 0, 0, 0.2);
  font-weight: bold;
}

@media (max-width: 767px) {
  .parts-mv-2nd-02-box {
    width: 100%;
    height: 232px;
    margin-top: 80px;
  }

  .parts-mv-2nd-02-box h1 {
    position: absolute;
    top: 12px;
    right: 12px;
    color: #fff;
    font-size: 10px;
  }

  .parts-mv-2nd-02-title {
    position: absolute;
    left: 12px;
    bottom: 12px;
    background: rgba(255, 255, 255, 0.7);
    padding: 1rem 1.6rem;
    border-radius: 6px;
  }

  .parts-mv-2nd-02-title h2 {
    font-weight: bold;
    margin-bottom: 10px;
  }

  .parts-mv-2nd-02-title h2::after {
    display: block;
    content: "";
    width: 75px;
    border-bottom: 1px solid #e60011;
    padding-bottom: 10px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .parts-mv-2nd-02-box {
    width: 100%;
    height: 475px;
    margin-top: 80px;
  }

  .parts-mv-2nd-02-box h1 {
    position: absolute;
    top: 24px;
    right: 24px;
    color: #fff;
    font-size: 12px;
  }

  .parts-mv-2nd-02-title {
    position: absolute;
    left: 10%;
    bottom: 20%;
    background: rgba(255, 255, 255, 0.7);
    padding: 1rem 1.6rem;
    border-radius: 6px;
  }

  .parts-mv-2nd-02-title h2 {
    font-weight: bold;
    margin-bottom: 15px;
  }

  .parts-mv-2nd-02-title h2::after {
    display: block;
    content: "";
    width: 75px;
    border-bottom: 1px solid #e60011;
    padding-bottom: 15px;
  }
}
@media (min-width: 991px) {
  .parts-mv-2nd-02-box {
    width: 100%;
    height: 660px;
    padding: 0 80px;
  }

  .parts-mv-2nd-02-box h1 {
    position: absolute;
    right: 24px;
    bottom: 24px;
    color: #fff;
    font-size: 12px;
  }

  .parts-mv-2nd-02-title {
    position: absolute;
    left: 10%;
    bottom: 20%;
    background: rgba(255, 255, 255, 0.7);
    padding: 1rem 1.6rem;
    border-radius: 6px;
  }

  .parts-mv-2nd-02-title h2 {
    font-weight: bold;
    margin-bottom: 15px;
  }

  .parts-mv-2nd-02-title h2::after {
    display: block;
    content: "";
    width: 75px;
    border-bottom: 1px solid #e60011;
    padding-bottom: 15px;
  }
}
.parts-mv-2nd-02-box {
  position: relative;
  background: url("../img/top-mv02.jpg") no-repeat center center;
  background-size: cover;
}

.checkList {
  width: 100%;
}

.checkList li {
  position: relative;
  padding-bottom: 1em;
  border-bottom: 1px dashed #e60011;
  margin-bottom: 1em;
  padding-left: 1.5em;
}

@media (min-width: 992px) {
  .checkList li::before {
    position: absolute;
    content: "";
    background: url("../img/icon-check.svg") no-repeat center;
    background-size: cover;
    width: 20px;
    height: 14px;
    margin-left: -1.5em;
    top: calc( 1em - 14px );
  }
}
@media (max-width: 991px) {
  .checkList li::before {
    position: absolute;
    content: "";
    background: url("../img/icon-check.svg") no-repeat center;
    background-size: cover;
    width: 14px;
    height: 10px;
    margin-left: -1.5em;
    top: calc( 1em - 10px );
  }
}
.checkList li:last-child {
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .title-h3 {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .title-h3 {
    font-size: 1.75rem;
  }
}
@media (min-width: 992px) {
  .title-h3 {
    font-size: 2rem;
  }
}
.title-h3 > h3 {
  display: inline-block;
  position: relative;
  background: #FF5F6D;
  background: -webkit-linear-gradient(to right, #FFC371, #FF5F6D);
  background: linear-gradient(to right, #FFC371, #FF5F6D);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  line-height: 1.4em;
  padding-bottom: 24px;
}

.title-h3 {
  text-align: center;
}

.title-h3 > h3::after {
  position: absolute;
  display: block;
  content: "";
  width: 90px;
  height: 2px;
  background: #f4c57a;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

a.container-btn01 {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: #fff;
  text-decoration: none !important;
  width: 100%;
  height: 80px;
  background: #e60011;
  transition: 1s;
  border-radius: 40px;
}

a.container-btn01::before {
  display: block;
  position: absolute;
  content: url("../img/btn-arrow01.svg");
  top: 45%;
  transform: translateY(-45%);
  right: 24px;
  z-index: 1;
  transition: 1s;
}

button:hover.container-btn01::before {
  display: block;
  position: absolute;
  content: url("../img/btn-arrow01.svg");
  top: 45%;
  transform: translateY(-45%);
  right: 12px;
  z-index: 1;
  transition: 1s;
}

a.container-btn01::after {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  transition: 1s;
  opacity: 0;
  background: #b3000d;
  border-radius: 40px;
}

a.container-btn01:hover::after {
  opacity: 1;
}

a.container-btn01 > span {
  position: relative;
  z-index: 1;
  color: #fff;
}

button:hover.container-btn01 > span {
  color: #fff;
}

a.container-btn01 > span > span:first-child {
  display: block;
  font-size: 1rem;
}

a.container-btn01 > span > span:last-child {
  display: block;
  font-size: 1.4rem;
  font-weight: bold;
}

@media (max-width: 991px) {
  a.foot-btn01 > span > span:first-child,
  a.foot-btn02 > span > span:first-child {
    display: block;
    font-size: 12px;
  }

  a.foot-btn01 > span > span:last-child,
  a.foot-btn02 > span > span:last-child {
    display: block;
    font-size: 1.2rem;
    font-weight: bold;
  }
}
@media (max-width: 320px) {
  a.foot-btn01 > span > span:first-child,
  a.foot-btn02 > span > span:first-child {
    font-size: 10px;
  }
}
@media (min-width: 992px) {
  .footer-banner a {
    text-decoration: none;
    height: 80px !important;
  }

  a.foot-btn01 > span > span:first-child,
  a.foot-btn02 > span > span:first-child {
    display: block;
    font-size: 1rem;
  }

  a.foot-btn01 > span > span:last-child,
  a.foot-btn02 > span > span:last-child {
    display: block;
    font-size: 1.4rem;
    font-weight: bold;
  }
}
.footer-banner {
  display: flex;
  position: fixed;
  bottom: -80px;
  z-index: 3;
}

.footer-banner a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50vw;
  height: 80px;
  color: #fff;
  text-align: center;
}

.footer-banner a:hover {
  color: #fff;
}

.footer-banner a span {
  position: relative;
  z-index: 2;
}

a.foot-btn01 {
  background-image: linear-gradient(90deg, #F0B14B 0%, #f5d473 100%);
  transition: 1s;
}

a.foot-btn01::after {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 50vw;
  height: 100%;
  content: "";
  transition: 1s;
  opacity: 0;
  background-image: linear-gradient(90deg, #f5d473 0%, #F0B14B 100%);
}

a.foot-btn02 {
  background-image: linear-gradient(90deg, #f4a77a 0%, #f0884b 100%);
  transition: 1s;
}

a.foot-btn02::after {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  width: 50vw;
  height: 100%;
  content: "";
  transition: 1s;
  opacity: 0;
  background-image: linear-gradient(90deg, #f0884b 0%, #f4a77a 100%);
}

a.foot-btn01:hover::after,
a.foot-btn02:hover::after {
  opacity: 1;
}

@media (max-width: 767px) {
  .support-box {
    display: block;
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
  }

  .support-box > div:last-child {
    padding: 12px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .support-box {
    display: block;
    margin-left: 9px;
    margin-right: 9px;
    border-radius: 24px;
    overflow: hidden;
  }

  .support-box > div:last-child {
    padding: 24px;
  }
}
@media (min-width: 992px) {
  .support-box {
    display: flex;
    width: 100%;
    border-radius: 18px;
    overflow: hidden;
  }

  .support-box > div:first-child {
    width: 25%;
  }

  .support-box > div:last-child {
    width: 75%;
  }

  .support-box > div:last-child {
    padding: 24px;
  }
}
.support-box > div:last-child > h4 {
  color: #e60011;
  margin-bottom: 12px;
}

@media (max-width: 767px) {
  .option-box-bg {
    display: block;
  }

  .option-box-bg > div {
    position: relative;
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    margin-bottom: 24px;
  }

  .option-box-bg > div:last-child {
    margin-bottom: 0;
  }

  .option-box h4 {
    position: absolute;
    display: inline-block;
    top: 0;
    left: 0;
    background: #e60011;
    color: #fff;
    text-align: center;
    padding: 12px;
    border-radius: 0 0 12px 0;
    z-index: 2;
  }

  .option-box p {
    padding: 12px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .option-box-bg {
    display: block;
    padding: 0 12px;
  }

  .option-box-bg > div {
    position: relative;
    width: 100%;
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    margin-bottom: 24px;
  }

  .option-box-bg > div:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 768px) {
  .option-box h4 {
    position: absolute;
    display: inline-block;
    top: 0;
    left: 0;
    background: #e60011;
    color: #fff;
    text-align: center;
    padding: 24px;
    border-radius: 0 0 18px 0;
    z-index: 2;
    overflow: hidden;
  }

  .option-box img {
    width: 100%;
  }

  .option-box p {
    padding: 24px;
  }
}
@media (min-width: 992px) {
  .option-box-bg {
    display: flex;
    flex-wrap: wrap;
  }

  .option-box-bg > div {
    position: relative;
    width: calc( ( 100% - 15% ) / 2 );
    margin-right: 5%;
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
  }

  .option-box-bg > div:first-child,
  .option-box-bg > div:nth-child(3) {
    margin-left: 5%;
  }

  .option-box-bg > div:nth-child(1),
  .option-box-bg > div:nth-child(2) {
    margin-bottom: 5%;
  }
}
.sp-fix-sns {
  display: flex;
  width: 100%;
  position: fixed;
  bottom: 0;
  left: 0;
}

.sp-fix-sns > a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 33.333%;
  height: 50px;
  color: #fff;
  box-sizing: border-box;
  text-align: center;
  line-height: 1.2em;
  background: #da0000;
  padding: 2px;
  transition: 1s;
}

.sp-fix-sns > a:hover {
  opacity: .8;
  transition: 1s;
}

a.sp-fix-sns-btn01 {
  background: #00acee;
  border-right: 1px solid #fff;
}

a.sp-fix-sns-btn02 {
  background: #3b5998;
  border-right: 1px solid #fff;
}

a.sp-fix-sns-btn03 {
  background: -webkit-linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;
  background: linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;
}

.sp-fix-sns a,
.sp-fix-sns a:hover,
.sp-fix-sns a:link {
  color: #fff;
}

.sp-fix-sns img {
  display: block;
  margin-right: 6px;
  width: 24px;
  height: auto;
}

@media (max-width: 991px) {
  .banner-box {
    display: block;
  }

  .banner-box > div {
    text-align: center;
    border-bottom: 1px solid #e9edf0;
    padding-bottom: 24px;
    margin-bottom: 24px;
  }

  .banner-box > div:last-child {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
  }
}
@media (min-width: 992px) {
  .banner-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
  }

  .banner-box > div:nth-child(3n)::after {
    border-right: none;
  }

  .banner-box > div {
    position: relative;
    width: calc( ( 100% - 144px ) / 3 );
    margin-right: 72px;
    margin-top: 72px;
  }

  .banner-box > div:nth-child(3n),
  .banner-box > div:last-child {
    margin-right: 0;
  }

  .banner-box > div:nth-child(1),
  .banner-box > div:nth-child(2),
  .banner-box > div:nth-child(3) {
    margin-top: 0;
  }

  .banner-box > div::before {
    position: absolute;
    content: "";
    top: -36px;
    right: 0;
    left: 0;
    border-top: 1px solid #e9edf0;
  }

  .banner-box > div:nth-child(1)::before,
  .banner-box > div:nth-child(2)::before,
  .banner-box > div:nth-child(3)::before {
    border-top: none;
  }

  .banner-box > div::after {
    position: absolute;
    content: "";
    top: 0;
    right: -36px;
    bottom: 0;
    border-right: 1px solid #e9edf0;
  }
}
@media (max-width: 767px) {
  .blk-and-wht-bg {
    margin-top: 80px;
  }

  .blk-and-wht-title {
    position: absolute;
    width: calc( 100vw - 60px );
    top: 50%;
    left: 30px;
    transform: translateY(-50%);
    color: #fff;
    font-weight: bold;
  }

  .blk-and-wht-title::before {
    content: attr(data-title);
    width: calc( 30vw - 30px);
    white-space: nowrap;
    overflow: hidden;
    position: absolute;
    top: 0px;
    left: 0px;
    color: #231815;
  }

  .blk-and-wht-bg h1 {
    position: absolute;
    top: 12px;
    right: 12px;
    font-size: 10px;
    color: #fff;
  }
}
@media (max-width: 320px) {
  .blk-and-wht-title {
    position: absolute;
    width: calc( 100vw - 30px );
    top: 50%;
    left: 15px;
    transform: translateY(-50%);
    color: #fff;
    font-weight: bold;
  }

  .blk-and-wht-title::before {
    content: attr(data-title);
    width: calc( 30vw - 15px);
    white-space: nowrap;
    overflow: hidden;
    position: absolute;
    top: 0px;
    left: 0px;
    color: #231815;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .blk-and-wht-title {
    position: absolute;
    width: calc( 100vw - 120px );
    top: 50%;
    left: 60px;
    transform: translateY(-50%);
    color: #fff;
    font-weight: bold;
  }

  .blk-and-wht-title::before {
    content: attr(data-title);
    width: calc( 30vw - 60px);
    white-space: nowrap;
    overflow: hidden;
    position: absolute;
    top: 0px;
    left: 0px;
    color: #231815;
  }
}
@media (min-width: 992px) {
  .blk-and-wht-title {
    position: absolute;
    width: calc( 100vw - 240px );
    top: 50%;
    left: 120px;
    transform: translateY(-50%);
    color: #fff;
    font-weight: bold;
  }

  .blk-and-wht-title::before {
    content: attr(data-title);
    width: calc( 30vw - 120px);
    white-space: nowrap;
    overflow: hidden;
    position: absolute;
    top: 0px;
    left: 0px;
    color: #231815;
  }

  .blk-and-wht-bg h1 {
    position: absolute;
    top: 24px;
    right: 24px;
    font-size: 12px;
    color: #fff;
  }
}
.blk-and-wht-bg {
  position: relative;
  width: 100%;
  display: flex;
}

.blk-and-wht-img {
  width: 70vw;
  margin-left: auto;
}

.blk-and-wht-img img {
  width: 100%;
}

.balloon-01 {
  position: relative;
  display: inline-block;
  background: #e60011;
  border-radius: 6px;
  padding: 1em;
  font-weight: bold;
  color: #fff;
}

.balloon-01:before {
  content: "";
  border: 10px solid transparent;
  border-top: 10px solid #e60011;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
}

.balloon-02 {
  position: relative;
  display: inline-block;
  background: #fff;
  border-radius: 6px;
  padding: 1em;
  font-weight: bold;
  color: #e60011;
  border: 2px solid #e60011;
  box-sizing: border-box;
}

.balloon-02:before {
  content: "";
  position: absolute;
  bottom: -14px;
  left: 50%;
  transform: translateX(-50%);
  border: 7px solid transparent;
  border-top: 7px solid #fff;
  z-index: 2;
}

.balloon-02:after {
  content: "";
  position: absolute;
  bottom: -18px;
  left: 50%;
  transform: translateX(-50%);
  border: 8px solid transparent;
  border-top: 8px solid #e60011;
  z-index: 1;
}

.color-inversion-bg {
  position: relative;
  width: 100%;
  display: flex;
}

.color-inversion-title {
  position: absolute;
  width: calc( 100vw - 240px );
  top: 50%;
  left: 120px;
  transform: translateY(-50%);
  filter: invert(100%);
  mix-blend-mode: exclusion;
  z-index: 2;
  color: #000;
}

.color-inversion-img {
  width: 70%;
  margin-left: auto;
}

.color-inversion-img img {
  width: 100%;
}

@media (max-width: 767px) {
  .header-tpl05-slide-bg {
    position: relative;
    width: 100%;
    height: calc( 100dvh - 80px );
  }

  .header-tpl05-slide-bg h1 {
    position: absolute;
    top: 12px;
    right: 12px;
    color: #fff;
    font-size: 12px;
    z-index: 1;
    font-weight: normal;
  }

  .header-tpl05-slide-image h2 {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 12px;
    color: #fff;
    font-weight: bold;
    z-index: 1;
    font-weight: normal;
    text-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
  }

  .header-tpl05-bg {
    position: relative;
    width: 100%;
    height: calc( 100dvh - 80px );
  }

  .header-tpl05-bg h1 {
    position: absolute;
    top: 12px;
    right: 12px;
    color: #fff;
    font-size: 12px;
    z-index: 1;
    font-weight: normal;
  }

  .header-tpl05-image h2 {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 12px;
    color: #fff;
    font-weight: bold;
    z-index: 1;
    font-weight: normal;
    text-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-tpl05-slide-bg {
    position: relative;
    width: 100%;
    height: calc( 100dvh - 80px );
  }

  .header-tpl05-slide-bg h1 {
    position: absolute;
    top: 12px;
    right: 12px;
    color: #fff;
    font-size: 12px;
    z-index: 1;
    font-weight: normal;
  }

  .header-tpl05-slide-image h2 {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 24px;
    color: #fff;
    font-weight: bold;
    z-index: 1;
    font-weight: normal;
    text-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
  }

  .header-tpl05-bg {
    position: relative;
    width: 100%;
    height: calc( 100dvh - 80px );
  }

  .header-tpl05-bg h1 {
    position: absolute;
    top: 12px;
    right: 12px;
    color: #fff;
    font-size: 12px;
    z-index: 1;
    font-weight: normal;
  }

  .header-tpl05-image h2 {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 24px;
    color: #fff;
    font-weight: bold;
    z-index: 1;
    font-weight: normal;
    text-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
  }
}
@media (max-width: 991px) {
  .header-tpl05-header {
    position: relative;
    width: 100%;
    height: 80px;
    display: flex;
    align-items: center;
    background: #fff;
    padding-left: 12px;
  }

  .header-tpl05-logo {
    position: relative;
    z-index: 3;
  }

  .header-tpl05-logo img {
    width: auto;
    height: 40px;
  }

  .header-tpl05-navi {
    display: none;
  }

  .header-tpl05-logo-scroll {
    display: none;
  }

  .mail-icon-btn {
    display: none;
  }
}
@media (max-width: 320px) {
  .header-tpl05-logo img {
    width: auto;
    height: 30px;
  }
}
@media (min-width: 992px) {
  .header-tpl05-header {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    height: 90px;
    padding-left: 15px;
    background: #fff;
  }

  .header-tpl05-logo a {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: 30px;
    padding-left: 30px;
    width: 192px;
    height: 192px;
    border-radius: 0 0 18px 0;
    background: #fff;
    border: 1px solid #ececec;
    z-index: 3;
  }

  .header-tpl05-logo img {
    width: auto;
    height: 40px;
  }

  .header-tpl05-navi {
    display: flex;
    align-items: center;
    margin-left: auto;
  }

  .header-tpl05-nav-inner {
    display: flex;
  }

  .header-tpl05-nav-inner li {
    margin-right: 18px;
  }

  .header-tpl05-nav-inner li a {
    font-weight: bold;
  }

  .header-tpl05-tel {
    margin-right: 100px;
    margin-left: 10px;
  }

  .header-tpl05-tel > span:first-child {
    display: block;
    font-size: 12px;
  }

  .header-tpl05-tel > span:nth-child(2) {
    font-size: 24px;
    font-weight: bold;
  }

  .header-tpl05-slide-bg {
    position: relative;
    width: 100%;
    height: calc( 100dvh - 95px );
    background: #000;
  }

  .header-tpl05-slide-bg h1 {
    position: absolute;
    top: 24px;
    right: 24px;
    color: #fff;
    font-size: 12px;
    z-index: 1;
    font-weight: normal;
  }

  .header-tpl05-slide-image h2 {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 24px;
    color: #fff;
    font-weight: bold;
    z-index: 1;
    font-weight: normal;
    text-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
  }

  .header-tpl05-bg {
    position: relative;
    width: 100%;
    height: calc( 100dvh - 95px );
    background: #000;
  }

  .header-tpl05-bg h1 {
    position: absolute;
    top: 24px;
    right: 24px;
    color: #fff;
    font-size: 12px;
    z-index: 1;
    font-weight: normal;
  }

  .header-tpl05-image h2 {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 24px;
    color: #fff;
    font-weight: bold;
    z-index: 1;
    font-weight: normal;
    text-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
  }

  a.mail-icon-btn {
    position: fixed;
    right: 24px;
    bottom: 24px;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #e60011;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 3;
  }

  a:hover.mail-icon-btn {
    opacity: .8;
  }

  a.mail-icon-btn img {
    width: 30px;
    height: 30px;
  }

  .header-tpl05-logo-scroll img {
    width: auto;
    height: 60px;
  }
}
.header-tpl05-slide {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.header-tpl05-slide-image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  animation: slider-1 24s linear infinite;
}

.header-tpl05-slide-image:nth-child(1) {
  background-image: url("../img/top-mv01.jpg");
  animation-delay: -2s;
}

.header-tpl05-slide-image:nth-child(2) {
  background-image: url("../img/top-mv02.jpg");
  animation-delay: 6s;
}

.header-tpl05-slide-image:nth-child(3) {
  background-image: url("../img/top-mv03.jpg");
  animation-delay: 14s;
}

.header-tpl05-slide-image:nth-child(4) {
  background-image: url("../img/top-mv04.jpg");
  animation-delay: 22s;
}

.header-tpl05-slide-image:nth-child(5) {
  background-image: url("../img/top-mv05.jpg");
  animation-delay: 30s;
}

@keyframes slider-1 {
  0% {
    opacity: 0;
    transform: scale(1);
  }
  4.16% {
    opacity: 1;
  }
  33.33% {
    opacity: 1;
  }
  41.66% {
    opacity: 0;
    transform: scale(1);
  }
  100% {
    opacity: 0;
  }
}
.header-tpl05 {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.header-tpl05-image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("../img/top-mv01.jpg");
}

.display-none {
  display: none;
}

.footer-tpl01 {
  position: relative;
}

.footer-tpl01 a {
  text-decoration: none;
}

.footer-tpl01 a:hover {
  text-decoration: underline;
}

.footer-tpl01 .footer-tpl01-primary {
  padding: 42px 24px;
  background: #f2f2f2;
}

.footer-tpl01 .footer-tpl01-secondary {
  padding: 42px 0;
  background: #f8f9fa;
}

@media screen and (max-width: 767px) {
  .footer-tpl01 .footer-tpl01-primary {
    padding: 24px 12px;
    background: #f2f2f2;
  }

  .footer-tpl01 .footer-tpl01-secondary {
    display: block;
    padding: 24px 12px;
    background: #f8f9fa;
  }
}
/* footer-logo */
.footer-tpl01 .footer-tpl01-logo {
  position: relative;
  padding: 0;
  margin: 0;
  width: 100%;
  font-size: 24px;
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  .footer-tpl01 .footer-tpl01-logo {
    font-size: 16px;
  }
}
/* address */
.footer-tpl01-address {
  margin: 12px 0 36px;
  padding: 0;
}

@media screen and (max-width: 767px) {
  .footer-tpl01-address {
    margin-bottom: 24px;
  }
}
/* navi */
.footer-tpl01-navi-row {
  display: flex;
}

.footer-tpl01 .footer-tpl01-navi {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
}

.footer-tpl01 .footer-tpl01-navi li {
  margin-right: 24px;
}

.footer-tpl01 .footer-tpl01-navi li:last-child {
  margin-right: 0;
}

.footer-tpl01 .footer-tpl01-navi li a {
  text-decoration: none;
}

@media screen and (max-width: 767px) {
  .footer-tpl01-navi-row {
    display: block;
    margin-top: 6px;
  }

  .footer-tpl01 .footer-tpl01-navi {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
  }

  .footer-tpl01 .footer-tpl01-navi li {
    width: 33.333%;
    margin-top: 18px;
    margin-right: 0;
  }
}
/* sns-navi */
.footer-tpl01-sns-navi {
  display: flex;
  justify-content: flex-end;
}

.footer-tpl01-sns-navi li {
  margin-right: 24px;
}

.footer-tpl01-sns-navi li:last-child {
  margin-right: 0;
}

.footer-tpl01-sns-navi a img {
  width: auto;
  height: 36px;
}

@media screen and (max-width: 991px) {
  .footer-tpl01-sns-navi {
    justify-content: center;
  }

  .footer-tpl01-sns-navi a img {
    width: auto;
    height: 45px;
  }
}
/* sitenavi */
.footer-tpl01 .footer-tpl01-sitenavi {
  width: 50%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-tpl01 .footer-tpl01-sitenavi li {
  display: inline-block;
  margin: 0 0 0 24px;
  padding: 0;
}

.footer-tpl01 .footer-tpl01-sitenavi li:first-child {
  margin-left: 0;
}

@media screen and (max-width: 767px) {
  .footer-tpl01 .footer-tpl01-sitenavi {
    width: 100%;
    text-align: center;
  }
}
/* copyright */
.footer-tpl01 .footer-tpl01-copyright {
  width: 100%;
  margin: 0;
  padding: 0;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .footer-tpl01 .footer-tpl01-copyright {
    width: 100%;
    text-align: center;
    font-size: 12px;
  }
}
a.footer-tpl01-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 260px;
  height: 62px;
  background: #e60011;
  color: #fff;
  transition: 1s;
  border-radius: 6px;
}

a:hover.footer-tpl01-btn {
  background: #e60011;
  color: #fff;
  transition: 1s;
  text-decoration: none;
}

a.footer-tpl01-btn::after {
  display: block;
  content: "";
  background: url("../img/btn-arrow01.svg") no-repeat;
  background-size: contain;
  width: 34px;
  height: 6px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 16px;
  transition: .5s;
}

a:hover.footer-tpl01-btn::after {
  display: block;
  content: "";
  background: url("../img/btn-arrow01.svg") no-repeat;
  background-size: contain;
  width: 34px;
  height: 6px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 6px;
  transition: .5s;
}

@media (max-width: 768px) {
  .fix--footer-bg {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
  }

  .fix--footer {
    width: 100%;
    height: 90px;
    padding: 10px;
    background: #e60011;
    color: #fff;
    text-align: center;
    box-sizing: border-box;
  }

  .fix--footer-inner {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
  }

  .fix--footer-inner > div {
    width: 100%;
  }

  .fix--footer-inner > a {
    width: calc( ( 100% - 10px) / 2 );
    margin-right: 10px;
  }

  .fix--footer-inner > a:last-child {
    margin-right: 0;
  }

  .fix--footer-text {
    margin-bottom: 5px;
  }

  .fix--footer-text p:first-child {
    line-height: 1em;
    margin-bottom: 5px;
  }

  .fix--footer-text p:last-child {
    font-size: 1rem;
    line-height: 1em;
    font-weight: bold;
  }

  a.fix--footer-btn01 {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: calc( ( 100% - 10px) / 2 );
    height: 30px;
    border-radius: 15px;
    color: #fff;
    transition: 1s;
    text-decoration: none;
    background: #ff6347;
    font-weight: bold;
  }

  a.fix--footer-btn01:after {
    display: block;
    position: absolute;
    content: "";
    top: 11px;
    right: 12px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(45deg);
  }

  a.fix--footer-btn02 {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: calc( ( 100% - 10px) / 2 );
    height: 30px;
    border-radius: 15px;
    background: #fff;
    transition: 1s;
    text-decoration: none;
    color: #e60011;
    font-weight: bold;
  }

  a.fix--footer-btn02:after {
    display: block;
    position: absolute;
    content: "";
    top: 11px;
    right: 12px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #e60011;
    border-right: 2px solid #e60011;
    transform: rotate(45deg);
  }

  a:hover.fix--footer-btn01,
  a:hover.fix--footer-btn02 {
    opacity: 0.8;
    transition: 1s;
  }
}
@media (min-width: 769px) {
  .fix--footer-bg {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
  }

  .fix--footer {
    width: 100%;
    height: 80px;
    padding: 10px 0;
    background: #e60011;
    color: #fff;
    box-sizing: border-box;
  }

  .fix--footer-inner {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .fix--footer-inner > div {
    margin-right: 12px;
  }

  .fix--footer-inner > a {
    margin-right: 12px;
  }

  .fix--footer-inner > a:last-child {
    margin-right: 0;
  }

  .fix--footer-text p:first-child {
    font-size: 1rem;
  }

  .fix--footer-text p:last-child {
    font-size: 1.2rem;
    font-weight: bold;
  }

  a.fix--footer-btn01 {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 200px;
    height: 60px;
    border-radius: 30px;
    color: #fff;
    transition: 1s;
    text-decoration: none;
    background: #ff6347;
    font-weight: bold;
  }

  a.fix--footer-btn01:after {
    display: block;
    position: absolute;
    content: "";
    top: 27px;
    right: 15px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(45deg);
  }

  a.fix--footer-btn02 {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 200px;
    height: 60px;
    border-radius: 30px;
    background: #fff;
    transition: 1s;
    text-decoration: none;
    color: #e60011;
    font-weight: bold;
  }

  a.fix--footer-btn02:after {
    display: block;
    position: absolute;
    content: "";
    top: 27px;
    right: 15px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #e60011;
    border-right: 2px solid #e60011;
    transform: rotate(45deg);
  }

  a:hover.fix--footer-btn01,
  a:hover.fix--footer-btn02 {
    opacity: 0.8;
    transition: 1s;
  }
}
@media (max-width: 991px) {
  .l-footer__foot, .l-footer__widgetArea {
    padding-bottom: 0;
  }

  .mobilepay-footer-bg {
    background: #404040;
    padding-right: 15px !important;
    padding-left: 15px !important;
  }

  .mobilepay-foorer {
    display: block;
    color: #fff;
    margin-bottom: 30px;
  }

  .mobilepay-foorer > div {
    margin-bottom: 30px;
  }

  .mobilepay-foorer > div:last-child {
    margin-bottom: 0;
  }

  .mobilepay-foorer a {
    color: #fff;
    text-decoration: none;
  }

  .mobilepay-foorer a:hover {
    text-decoration: underline;
  }

  .mobilepay-foorer-title {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 18px;
  }

  .mobilepay-foorer-company {
    margin-bottom: 12px;
  }

  .mobilepay-foorer-branch {
    padding-left: 0 !important;
  }

  .mobilepay-foorer-branch li {
    list-style: none !important;
    display: block;
    margin-bottom: 12px;
  }

  .mobilepay-foorer-branch li > span:first-child {
    display: block;
    margin-bottom: 6px;
  }

  .mobilepay-foorer-branch li > span:last-child {
    font-size: 12px;
    color: #cbd3d8;
  }

  .mobilepay-foorer-branch li:last-child {
    margin-bottom: 0;
  }

  .mobilepay-foorer-link {
    padding-left: 0 !important;
  }

  .mobilepay-foorer-link li {
    list-style: none !important;
    margin-bottom: 12px;
  }

  .mobilepay-foorer-btn-bg {
    display: block;
  }

  a.mobilepay-foorer-btn-dcument {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 90%;
    height: 60px;
    border-radius: 30px;
    background: #e60011;
    border: 2px solid #e60011;
    font-weight: bold;
    color: #fff;
    text-decoration: none;
    margin: 0 auto 24px auto;
  }

  a:hover.mobilepay-foorer-btn-dcument {
    background: #fff;
    border: 2px solid #e60011;
    font-weight: bold;
    color: #e60011;
    text-decoration: none;
  }

  a.mobilepay-foorer-btn-contact {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 90%;
    height: 60px;
    border-radius: 30px;
    background: #d55b58;
    border: 2px solid #d55b58;
    font-weight: bold;
    color: #fff;
    text-decoration: none;
    margin: 0 auto;
  }

  a:hover.mobilepay-foorer-btn-contact {
    background: #fff;
    border: 2px solid #d55b58;
    font-weight: bold;
    color: #d55b58;
    text-decoration: none;
  }

  .mobilepay-foorer-link-second {
    display: flex;
    justify-content: center;
    margin-bottom: 18px;
  }

  .mobilepay-foorer-link-second li:first-child {
    margin-right: 12px;
  }

  .mobilepay-foorer-link-second a {
    color: #fff;
    text-decoration: none;
  }

  .mobilepay-foorer-link-second a:hover {
    color: #fff;
    text-decoration: underline;
  }

  .mobilepay-foorer-copy {
    font-size: 12px;
    text-align: center;
    color: #fff;
  }
}
@media (min-width: 992px) {
  .mobilepay-footer-bg {
    width: 100%;
    background: #404040;
  }

  .mobilepay-foorer {
    display: flex;
    justify-content: center;
    align-items: stretch;
    margin-bottom: 18px;
    color: #fff;
  }

  .mobilepay-foorer > div {
    margin-right: 5.263%;
  }

  .mobilepay-foorer > div:last-child {
    margin-right: 0;
  }

  .mobilepay-foorer a {
    color: #fff;
    text-decoration: none;
  }

  .mobilepay-foorer a:hover {
    text-decoration: underline;
  }

  .mobilepay-foorer-title {
    font-size: 1.4rem;
    font-weight: 600;
    margin-bottom: 30px;
  }

  .mobilepay-foorer-company {
    margin-bottom: 18px;
  }

  .mobilepay-foorer-branch {
    padding-left: 0 !important;
  }

  .mobilepay-foorer-branch li {
    list-style: none !important;
    display: flex;
    margin-bottom: 18px;
  }

  .mobilepay-foorer-branch li > span:first-child {
    margin-right: 12px;
  }

  .mobilepay-foorer-branch li > span:last-child {
    font-size: 0.875rem;
    color: #cbd3d8;
  }

  .mobilepay-foorer-branch li:last-child {
    margin-bottom: 0;
  }

  .mobilepay-foorer-link {
    padding-left: 0 !important;
  }

  .mobilepay-foorer-link li {
    list-style: none !important;
    margin-bottom: 18px;
  }

  .mobilepay-foorer-btn-bg {
    display: flex;
    margin-left: auto;
    align-items: center;
  }

  a.mobilepay-foorer-btn-dcument {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 270px;
    height: 60px;
    border-radius: 30px;
    background: #e60011;
    border: 2px solid #e60011;
    font-weight: bold;
    color: #fff;
    text-decoration: none;
    margin-bottom: 18px;
  }

  a:hover.mobilepay-foorer-btn-dcument {
    background: #fff;
    border: 2px solid #e60011;
    font-weight: bold;
    color: #e60011;
    text-decoration: none;
  }

  a.mobilepay-foorer-btn-contact {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 270px;
    height: 60px;
    border-radius: 30px;
    background: #d55b58;
    border: 2px solid #d55b58;
    font-weight: bold;
    color: #fff;
    text-decoration: none;
  }

  a:hover.mobilepay-foorer-btn-contact {
    background: #fff;
    border: 2px solid #d55b58;
    font-weight: bold;
    color: #d55b58;
    text-decoration: none;
  }

  .mobilepay-foorer-link-second {
    display: flex;
    justify-content: center;
    margin-bottom: 18px;
  }

  .mobilepay-foorer-link-second li:first-child {
    margin-right: 12px;
  }

  .mobilepay-foorer-link-second a {
    color: #fff;
    text-decoration: none;
  }

  .mobilepay-foorer-link-second a:hover {
    color: #fff;
    text-decoration: underline;
  }

  .mobilepay-foorer-copy {
    font-size: 0.875rem;
    text-align: center;
    color: #fff;
  }
}
.w-footer__box {
  padding: 0 !important;
}

.l-footer__foot, .l-footer__widgetArea {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.modal_wrap input {
  display: none;
}

.modal_overlay {
  display: flex;
  justify-content: center;
  overflow: auto;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  transition: opacity 0.5s, transform 0s 0.5s;
  transform: scale(0);
  padding: 30px 0 60px;
}

.modal_trigger {
  position: absolute;
  width: 100%;
  height: 100%;
}

.modal_content {
  width: 40%;
  padding: 45px 30px 30px;
  box-sizing: border-box;
  background: #fff;
  transition: 0.5s;
  overflow: scroll;
  border-radius: 18px;
}

.modal_content p {
  padding-top: 0;
}

.close_button {
  display: block;
  position: absolute;
  top: 12px;
  right: 12px;
  width: 24px;
  height: 24px;
  border: 1px solid #231815;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}

.close_button::before, .close_button::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2px;
  height: 16px;
  background: #231815;
}

.close_button::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.close_button::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.modal_wrap input:checked ~ .modal_overlay {
  opacity: 1;
  transform: scale(1);
  transition: opacity 0.5s;
}

.modal_wrap input:checked ~ .modal_overlay .modal_content {
  transform: translateY(20px);
}

.open_button {
  font-weight: bold;
  text-align: center;
  text-decoration: underline;
}

@media (max-width: 991px) {
  .modal_content {
    width: 90%;
    box-sizing: border-box;
    border-radius: 12px;
  }
}
.heading06 {
  position: relative;
  padding-top: 50px;
  padding-bottom: 50px;
  text-align: center;
}

.heading06 span {
  position: relative;
  z-index: 2;
}

.heading06::before {
  content: attr(data-en);
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(224, 66, 114, 0.2);
  font-size: 90px;
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
}

.heading06::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%) rotate(30deg);
  width: 1px;
  height: 40px;
  background-color: #e04272;
}

.heading07 {
  position: relative;
  padding-top: 50px;
  padding-left: 30px;
}

.heading07 span {
  position: relative;
  z-index: 2;
}

.heading07::before {
  content: attr(data-en);
  position: absolute;
  transform: rotate(-5deg);
  top: -20px;
  left: 0;
  color: rgba(224, 66, 114, 0.2);
  font-size: 90px;
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
}

.heading12 {
  position: relative;
}

.heading12::before {
  content: attr(data-number);
  display: inline-block;
  margin-right: 20px;
  color: #e60011;
  font-size: 30px;
  border-bottom: 5px solid #e60011;
  padding-bottom: .8em;
}

.heading13 {
  position: relative;
  padding-top: 0.8em;
}

.heading13::before {
  content: attr(data-number);
  display: block;
  color: #e60011;
  font-size: 30px;
}

.heading13::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100px;
  height: 5px;
  background-color: #e60011;
}

.heading18 {
  position: relative;
  padding-bottom: 10px;
}

.heading18::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-image: repeating-linear-gradient(90deg, #e60011 0, #e60011 8px, rgba(0, 0, 0, 0) 8px, rgba(0, 0, 0, 0) 11px);
}

.heading19 {
  position: relative;
  padding-bottom: 18px;
}

.heading19::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 8px;
  background-image: repeating-linear-gradient(45deg, #e60011 0px, #e60011 1px, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 50%);
  background-size: 8px 8px;
}

.titleBgColor {
  text-align: center;
}

.titleBgColor span {
  background: linear-gradient(transparent 70%, #e60011 70%);
}

.titleBgColor2 {
  text-align: center;
}

.titleBgColor2 span {
  background: #e60011;
}

.first-line {
  text-align: center;
}

.first-line::first-line {
  color: #e60011;
  font-size: 1rem;
  line-height: 2em;
}

.pagenation ul {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: -20px;
}

.pagenation ul li {
  margin-top: 20px;
}

.pagenation ul li:not(:last-child) {
  margin-right: 20px;
}

.pagenation ul li a,
.pagenation ul li span {
  display: block;
  padding: 20px;
  line-height: 1;
  background-color: #fff;
  border: 1px solid #e60011;
  color: #e60011;
}

.pagenation ul li span {
  color: #fff;
  background-color: #e60011;
}

@media (max-width: 991px) {
  .pagenation ul li:not(:last-child) {
    margin-right: 12px;
  }

  .pagenation ul li a,
  .pagenation ul li span {
    display: block;
    padding: 12px;
    line-height: 1;
    background-color: #fff;
    border: 1px solid #e60011;
    color: #e60011;
  }

  .pagenation ul li span {
    color: #fff;
    background-color: #e60011;
  }
}
@media (min-width: 992px) {
  .arrow-tbl {
    width: 100%;
  }

  .arrow-tbl th,
  .arrow-tbl td {
    padding: 1em;
  }

  .arrow-tbl th {
    position: relative;
    width: 30%;
    background: #e9edf0;
    border-bottom: 1px solid #fff;
  }

  .arrow-tbl th::after {
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: -16px;
    content: "";
    background: #e9edf0;
    width: 16px;
    height: 20px;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
  }

  .arrow-tbl td {
    padding-left: 1.5em;
    background: #f8f9fa;
    border-bottom: 1px solid #fff;
  }

  .arrow-tbl tr:last-child th,
  .arrow-tbl tr:last-child td {
    border-bottom: none;
  }
}
@media (max-width: 991px) {
  .arrow-tbl {
    width: 100%;
  }

  .arrow-tbl th,
  .arrow-tbl td {
    display: block;
    padding: .5em;
  }

  .arrow-tbl th {
    position: relative;
    width: 100%;
    background: #e9edf0;
  }

  .arrow-tbl th::after {
    display: block;
    position: absolute;
    bottom: -8px;
    left: 1em;
    content: "";
    background: #e9edf0;
    width: 16px;
    height: 20px;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
  }

  .arrow-tbl td {
    background: #f8f9fa;
  }

  .arrow-tbl tr:last-child th,
  .arrow-tbl tr:last-child td {
    border-bottom: none;
  }

  .arrow-tbl tr:not(:last-child) {
    display: block;
    margin-bottom: 3px;
  }
}
@media (min-width: 992px) {
  .bg-naname,
  .bg-naname02 {
    position: relative;
    background: #f8f9fa;
    margin: 120px 0;
    padding: 72px 0;
  }

  .bg-naname::before {
    position: absolute;
    top: -120px;
    left: 0;
    right: 0;
    width: 100%;
    height: 120px;
    background: #f8f9fa;
    display: block;
    content: "";
    clip-path: polygon(100% 0%, 100% 100%, 0% 100%);
  }

  .bg-naname02::before {
    position: absolute;
    top: -120px;
    left: 0;
    right: 0;
    width: 100%;
    height: 120px;
    background: #f8f9fa;
    display: block;
    content: "";
    clip-path: polygon(100% 100%, 0% 100%, 0% 0%);
  }

  .bg-naname::after {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -120px;
    width: 100%;
    height: 120px;
    background: #f8f9fa;
    display: block;
    content: "";
    clip-path: polygon(0% 0%, 100% 0%, 0% 100%);
  }

  .bg-naname02::after {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -120px;
    width: 100%;
    height: 120px;
    background: #f8f9fa;
    display: block;
    content: "";
    clip-path: polygon(100% 0%, 100% 100%, 0% 0%);
  }
}
@media (max-width: 991px) {
  .bg-naname {
    position: relative;
    background: #f8f9fa;
    margin: 60px 0;
    padding: 48px 0;
  }

  .bg-naname::before {
    position: absolute;
    top: -60px;
    left: 0;
    right: 0;
    width: 100%;
    height: 60px;
    background: #f8f9fa;
    display: block;
    content: "";
    clip-path: polygon(100% 0%, 100% 100%, 0% 100%);
  }

  .bg-naname::after {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -60px;
    width: 100%;
    height: 60px;
    background: #f8f9fa;
    display: block;
    content: "";
    clip-path: polygon(0 0, 100% 0%, 0% 100%);
  }
}
@media (max-width: 991px) {
  .contact-cont-bg {
    width: 100%;
    background: #f8f9fa;
  }

  .contact-cont {
    width: 100%;
    border-top: 5px solid #e60011;
    padding: 48px 0;
  }

  .contact-cont_title {
    text-align: center;
    margin-bottom: 24px;
  }

  .contact-cont_text {
    line-height: 2em;
    margin-bottom: 36px;
  }

  .contact-cont_inner {
    display: block;
  }

  .contact-cont_inner > a {
    width: 100%;
  }

  .contact-cont_inner > a:first-child {
    margin-bottom: 24px;
  }

  a.contact-cont_form {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.2rem;
    widht: 100%;
    height: 90px;
    background: #e60011;
    color: #fff;
    cursor: pointer;
    font-weight: 900;
  }

  a:hover.contact-cont_form {
    color: #fff;
    opacity: .8;
  }

  a.contact-cont_form::before {
    display: block;
    content: "";
    background: url("../img/icon-mail.svg");
    width: 24px;
    height: 24px;
    background-size: cover;
    margin-right: 6px;
  }

  a.contact-cont_form::after {
    display: block;
    content: "";
    background: url("../img/arrrow_white.svg");
    width: 15px;
    height: 4px;
    margin-left: 6px;
    background-size: cover;
  }

  a.contact-cont_tel {
    display: flex;
    justify-content: center;
    align-items: center;
    widht: 100%;
    height: 90px;
    background: #fff;
    border: 1px solid #e60011;
  }

  a.contact-cont_tel > span > span:first-child {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #e60011;
    font-size: 2rem;
    font-weight: 900;
    line-height: 1em;
    margin-bottom: 6px;
  }

  a.contact-cont_tel > span > span:first-child::before {
    display: block;
    content: "";
    background: url("../img/icon-tel.svg");
    width: 24px;
    height: 24px;
    background-size: cover;
    margin-right: 6px;
  }

  a.contact-cont_tel > span > span:last-child {
    display: block;
    text-align: center;
    line-height: 1em;
    font-size: .75rem;
  }
}
@media (min-width: 992px) {
  .contact-cont-bg {
    width: 100%;
    background: #f8f9fa;
  }

  .contact-cont {
    width: 100%;
    border-top: 5px solid #e60011;
    padding: 90px 0;
  }

  .contact-cont_title {
    text-align: center;
    margin-bottom: 36px;
  }

  .contact-cont_text {
    line-height: 2em;
    text-align: center;
    margin-bottom: 42px;
  }

  .contact-cont_inner {
    display: flex;
  }

  .contact-cont_inner > a {
    width: calc( ( 100% - 36px ) / 2 );
  }

  .contact-cont_inner > a:first-child {
    margin-right: 36px;
  }

  a.contact-cont_form {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2rem;
    widht: 100%;
    height: 120px;
    background: #e60011;
    color: #fff;
    cursor: pointer;
    font-weight: 900;
  }

  a:hover.contact-cont_form {
    color: #fff;
    opacity: .8;
  }

  a.contact-cont_form::before {
    display: block;
    content: "";
    background: url("../img/icon-mail.svg");
    width: 30px;
    height: 30px;
    background-size: cover;
    margin-right: 12px;
  }

  a.contact-cont_form::after {
    display: block;
    content: "";
    background: url("../img/arrrow_white.svg");
    width: 30px;
    height: 8px;
    margin-left: 12px;
  }

  a.contact-cont_tel {
    display: flex;
    justify-content: center;
    align-items: center;
    widht: 100%;
    height: 120px;
    background: #fff;
    border: 1px solid #e60011;
  }

  a.contact-cont_tel > span > span:first-child {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #e60011;
    font-size: 3rem;
    font-weight: 900;
    line-height: 1em;
    margin-bottom: 6px;
  }

  a.contact-cont_tel > span > span:first-child::before {
    display: block;
    content: "";
    background: url("../img/icon-tel.svg");
    width: 34px;
    height: 34px;
    background-size: cover;
    margin-right: 12px;
  }

  a.contact-cont_tel > span > span:last-child {
    display: block;
    text-align: center;
    line-height: 1em;
    font-size: .875rem;
  }
}
@media (min-width: 992px) {
  .card-banner {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
  }

  .card-banner > a {
    border: 1px solid #e9edf0;
    border-radius: 24px;
  }

  .card-banner_btn {
    display: none;
  }

  .card-banner_img {
    overflow: hidden;
    border-radius: 24px 24px 0 0;
    overflow: hidden;
    margin-bottom: 36px;
  }

  a .card-banner_img img {
    transition: .5s;
  }

  a:hover .card-banner_img img {
    transform: scale(1.1);
    transition: .5s;
  }

  .card-banner_title {
    padding: 0 48px;
    margin-bottom: 24px;
    font-weight: 900;
  }

  .card-banner_title span {
    border-bottom: 1px solid #231815;
  }

  .card-banner_text {
    padding: 0 48px 48px;
  }
}
@media (max-width: 991px) {
  .card-banner {
    display: block;
  }

  .card-banner > a {
    width: 100%;
  }

  .card-banner_img {
    border-radius: 24px;
    overflow: hidden;
    margin-bottom: 24px;
  }

  a .card-banner_img img {
    transition: .5s;
  }

  a:hover .card-banner_img img {
    transform: scale(1.1);
    transition: .5s;
  }

  .card-banner_title {
    padding: 0 36px;
    margin-bottom: 18px;
    font-weight: 900;
  }

  .card-banner_title span {
    border-bottom: 1px solid #231815;
  }

  .card-banner_text {
    padding: 0 36px 36px;
  }

  .card-banner_btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    text-align: end;
    line-height: 1em;
    color: #e60011;
    text-decoration: underline;
    margin-top: 1em;
  }

  .card-banner_btn::after {
    content: "";
    width: 10px;
    height: 10px;
    clip-path: polygon(0 0, 100% 50%, 0% 100%);
    background: #e60011;
    margin-left: 6px;
  }
}
.title-top-line {
  position: relative;
  padding-top: .7em;
}

.title-top-line::before {
  display: block;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 24px;
  height: 2px;
  background: #e60011;
}

.title-top-line::after {
  display: block;
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: calc( 100% - 28px );
  height: 2px;
  background: #e9edf0;
}

@media (min-width: 768px) {
  .flowBox-inner_arrow {
    position: absolute;
    width: 60px;
    top: 50%;
    transform: translateY(-50%);
    right: -12px;
    z-index: 1;
  }
}
@media (max-width: 767px) {
  .flowBox {
    display: block;
  }

  .flowBox li {
    width: 100%;
    margin-bottom: 18px;
  }

  .flowBox li:last-child {
    margin-bottom: 0;
  }

  .flowBox li:last-child .flowBox-inner_arrow {
    display: none;
  }

  .flowBox-inner_arrow {
    position: absolute;
    width: 48px;
    bottom: -24px;
    left: calc( 50% - 24px );
    transform: translateX(-50%);
    transform: rotate(90deg);
    z-index: 1;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .flowBox {
    display: flex;
    flex-wrap: wrap;
  }

  .flowBox li {
    width: calc( ( 100% - 18px ) / 2 );
    margin-right: 18px;
    margin-bottom: 18px;
  }

  .flowBox li:nth-child(2),
  .flowBox li:nth-child(4),
  .flowBox li:nth-child(6),
  .flowBox li:nth-child(8),
  .flowBox li:last-child {
    margin-right: 0;
  }

  .flowBox li:last-child {
    margin-bottom: 0;
  }

  .flowBox li:last-child .flowBox-inner_arrow {
    display: none;
  }
}
@media (min-width: 992px) {
  .flowBox {
    display: flex;
    flex-wrap: wrap;
  }

  .flowBox li {
    width: calc( ( 100% - 36px ) / 3 );
    margin-right: 18px;
    margin-bottom: 18px;
  }

  .flowBox li:nth-child(3),
  .flowBox li:nth-child(6),
  .flowBox li:nth-child(9),
  .flowBox li:last-child {
    margin-right: 0;
  }

  .flowBox li:nth-last-child(1),
  .flowBox li:nth-last-child(2),
  .flowBox li:nth-last-child(3) {
    margin-bottom: 0;
  }

  .flowBox li:last-child .flowBox-inner_arrow {
    display: none;
  }
}
.flowBox-inner {
  position: relative;
  border: 1px solid #e9edf0;
}

.flowBox-inner_box {
  padding: 24px;
}

.flowBox-inner_box_title {
  margin-bottom: 24px;
}

.flowBox li a .flowBox-inner {
  transition: 1s;
}

.flowBox li a:hover .flowBox-inner {
  background: #231815;
  color: #fff;
  transition: 1s;
}

/* number-box　ここから */
@media (min-width: 768px) {
  .number-box_inner {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 12px;
    border: 1px solid #e9edf0;
    border-radius: 42px;
  }

  .number-box_inner_circle {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    border-radius: 30px;
    background: #e60011;
    font-size: 1.5em;
    font-weight: bold;
    color: #fff;
    margin-right: 12px;
  }

  .number-box_inner_text {
    width: calc( 100% - 72px );
  }
}
@media (max-width: 767px) {
  .number-box_inner {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 6px;
    border: 1px solid #e9edf0;
    border-radius: 26px;
  }

  .number-box_inner_circle {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border-radius: 20px;
    background: #e60011;
    font-size: 1.5em;
    font-weight: bold;
    color: #fff;
    margin-right: 6px;
  }

  .number-box_inner_text {
    width: calc( 100% - 46px );
  }
}
.number-box > div {
  margin-bottom: 12px;
}

.number-box > div:last-child {
  margin-bottom: 0;
}

/* number-box　ここまで */
/* mv2nd-tpl02　ここから */
@media (min-width: 768px) {
  .mv2nd-tpl02 {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 540px;
    background: url("../img/swiper-img01.jpg") no-repeat center;
    background-size: cover;
  }

  .mv2nd-tpl02 h1 {
    position: absolute;
    top: 24px;
    right: 24px;
    font-size: 12px;
  }

  .mv2nd-tpl02 h2 {
    font-weight: bold;
    background: rgba(255, 255, 255, 0.7);
    padding: 0.6195em 1em;
    border-radius: 6px;
  }
}
@media (max-width: 767px) {
  .mv2nd-tpl02 {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 232px;
    background: url("../img/swiper-img01.jpg") no-repeat center;
    background-size: cover;
    padding: 0 24px;
    margin-top: 80px;
  }

  .mv2nd-tpl02 h1 {
    position: absolute;
    top: 12px;
    right: 12px;
    font-size: 10px;
  }

  .mv2nd-tpl02 h2 {
    font-weight: bold;
    background: rgba(255, 255, 255, 0.7);
    padding: 0.6195em 1em;
    border-radius: 6px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .mv2nd-tpl02 {
    height: 475px;
  }
}
/* mv2nd-tpl02　ここまで */
/* checkList-2col　ここから */
@media (min-width: 992px) {
  .checkList-2col {
    display: flex;
    flex-wrap: wrap;
  }

  .checkList-2col li {
    width: calc( ( 100% - 36px ) / 2 );
    margin-right: 36px;
  }

  .checkList-2col li:nth-child(2n) {
    margin-right: 0;
  }
}
/* checkList-2col　ここまで */
/* form-Box　ここから */
.form-Box_inner_input_radio {
  display: flex;
  flex-wrap: wrap;
}

@media (max-width: 767px) {
  .form-Box_inner_input_radio {
    margin-bottom: -12px;
  }

  .form-Box_inner_input_radio li {
    margin-bottom: 12px;
  }
}
@media (max-width: 991px) {
  .form-Box_inner {
    display: block;
    margin-bottom: 24px;
  }

  .form-Box_inner_label {
    width: 100%;
    margin-bottom: 18px;
  }

  .form-Box_inner_input {
    width: 100%;
  }
}
@media (min-width: 992px) {
  .form-Box_inner {
    display: block;
    max-width: 1000px;
    margin: 0 auto 50px;
  }

  .form-Box_inner_label {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 20px;
  }

  .form-Box_inner_input {
    width: 100%;
  }
}
.form-Box_inner_input textarea {
  min-height: 150px;
}

.form-Box_inner_label label {
  display: flex;
  align-items: center;
}

.form-Box_inner_input_control {
  width: 100%;
  height: 55px;
  padding: 0.625rem 1rem;
  line-height: 1.42857143rem;
  background-color: #f8f9fa;
  background-image: none;
  border: none;
  border-radius: 3px;
}

.zipcodeBox {
  font-size: 16px;
  height: 38px;
  padding: 0.625rem 1rem;
  line-height: 1.42857143rem;
  background-color: #f8f9fa;
  background-image: none;
  border: 1px solid #e9edf0;
  border-radius: 6px;
}

.form-send-check {
  display: block;
  width: 100%;
  font-weight: bold;
}

input.btn-formbox {
  display: block;
  width: 100%;
  height: 70px;
  background: #e60011;
  color: #fff;
  padding: 1em;
  border-radius: 6px;
}

@media (min-width: 992px) {
  input.btn-formbox {
    width: 300px;
    margin-right: auto;
    margin-left: auto;
  }
}
input.btn-formbox:hover {
  background: #ff3443;
  color: #fff;
}

.btn-formbox.disabled, .btn-formbox:disabled, fieldset:disabled .btn-formbox {
  background: #e60011;
  color: #fff;
  opacity: .5;
}

input.form-Box_inner_input_control {
  font-size: 16px;
}

select.form-Box_inner_input_control {
  font-size: 16px;
}

textarea.form-Box_inner_input_control {
  font-size: 16px;
}

.form-file-input {
  position: relative;
  width: 100%;
  padding: 0.5rem 0;
  border: none;
  cursor: pointer;
}

.form-file-input::before {
  display: none !important;
}

.form-file-input::after {
  content: "ファイル添付";
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.625rem 1rem;
  line-height: 1.42857143rem;
  background-color: #f8f9fa;
  background-image: none;
  border: 1px solid #e9edf0;
  border-radius: 6px;
  font-size: 1rem;
}

@media (max-width: 991px) {
  .form-file-input::after {
    font-size: .875rem;
  }
}
/* form-Box　ここまで */
/* header-motion　ここから */
@media (max-width: 991px) {
  .header-motion {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    height: 80px;
    background: #fff;
    z-index: 1;
  }

  .header-motion_inner_logo img {
    display: block;
    width: auto;
    height: 50px;
    margin-left: 12px;
  }

  .header-motion_inner_box {
    display: none;
  }

  .header-motion_mv {
    width: auto;
    height: 100dvh;
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
  }

  .header-motion_mv_ttl {
    display: flex;
    align-items: center;
    height: 100dvh;
    padding-left: 12px;
  }
}
@media (max-width: 320px) {
  .header-motion_inner_logo img {
    display: block;
    width: auto;
    height: 35px;
    margin-left: 12px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-motion_mv_ttl {
    padding-left: 24px;
  }
}
@media (min-width: 992px) {
  .header-motion {
    width: 100%;
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    height: 90px;
    padding: 0 0 0 10px;
    z-index: 1;
  }

  .header-motion_on_scroll {
    background: #fff;
    transition: .5s;
  }

  .header-motion_inner {
    display: flex;
    align-items: center;
    height: 90px;
  }

  .header-motion_inner_box {
    display: flex;
    align-items: center;
    margin-left: auto;
  }

  .header-motion_inner_box_navi {
    display: flex;
    align-items: center;
    height: 70px;
  }

  .header-motion_inner_box_navi li {
    margin-right: 24px;
  }

  .header-motion_inner_box_navi li a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    border-bottom: 2px solid rgba(0, 0, 0, 0);
    transition: .5s;
    color: #fff;
    font-weight: bold;
  }

  .header-motion_inner_box_navi li a:hover {
    border-bottom: 2px solid #e60011;
    transition: .5s;
  }

  a.header-motion_inner_box_form {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #e60011;
    color: #fff;
    height: 90px;
    padding: 0 24px 0 51px;
  }

  a:hover.header-motion_inner_box_form {
    color: #fff;
    background: #b3000d;
  }

  a.header-motion_inner_box_form:after {
    position: absolute;
    content: "";
    top: 50%;
    transform: translateY(-50%);
    left: 21px;
    background: url("../img/icon-mail.svg");
    width: 24px;
    height: 24px;
    background-size: cover;
  }

  .header-motion_inner_box_tel {
    display: flex;
    align-items: center;
    height: 70px;
    margin-right: 24px;
    color: #fff;
  }

  .header-motion_inner_box_tel_text {
    font-size: 0.75rem;
    line-height: 1em;
    margin-bottom: 6px;
  }

  .header-motion_inner_box_tel_number {
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1em;
  }

  .header-motion_inner_box_tel_number i {
    font-size: .8em;
    margin-right: 4px;
  }

  .header-motion_inner_box_navi_on_scroll li a {
    color: #231815 !important;
  }

  .header-motion_inner_box_tel_on_scroll {
    color: #231815 !important;
  }

  .header-motion_mv {
    width: auto;
    height: 100dvh;
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
  }

  .header-motion_mv_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100dvh;
    width: 50vw;
  }
}
/* header-motion　ここまで */
/* Contactform7 ここから */
input.wpcf7-form-control,
textarea.wpcf7-form-control,
select.wpcf7-form-control {
  width: 100%;
  padding: 0.625rem 1rem;
  line-height: 1.42857143rem;
  background-color: #f8f9fa;
  background-image: none;
  border: 1px solid #e9edf0;
  border-radius: 6px;
}

.wpcf7-list-item > label > input[type=checkbox] {
  display: none;
}

.wpcf7-list-item > label > .wpcf7-list-item-label {
  position: relative;
  padding-left: 30px;
  margin-right: 18px;
  z-index: 1;
}

.wpcf7-list-item > label > .wpcf7-list-item-label::before {
  content: "";
  display: block;
  position: absolute;
  top: -3px;
  left: 0;
  width: 25px;
  height: 25px;
  border: 1px solid #dae0e5;
  background: #f8f9fa;
}

.wpcf7-list-item > label > input[type=checkbox]:checked + .wpcf7-list-item-label {
  color: #343a40;
}

.wpcf7-list-item > label > input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  content: "";
  display: block;
  position: absolute;
  top: -10px;
  left: 7px;
  width: 14px;
  height: 22px;
  transform: rotate(40deg);
  border-bottom: 4px solid #343a40;
  border-right: 4px solid #343a40;
}

@media screen and (max-width: 767px) {
  .wpcf7-list-item > label > .wpcf7-list-item-label::before {
    top: -5px;
  }
}
.wpcf7-list-item > label > input[type=radio] {
  display: none;
}

.wpcf7-list-item > label > input[type=radio] + span {
  position: relative;
  padding-left: 29px;
  margin-right: 18px;
  line-height: 1em;
  z-index: 1;
}

.wpcf7-list-item > label > input[type=radio] + span::before {
  content: "";
  display: block;
  position: absolute;
  top: -2px;
  left: 0;
  width: 24px;
  height: 24px;
  border: 1px solid #ced4da;
  border-radius: 50%;
  background: #f8f9fa;
}

.wpcf7-list-item > label > input[type=radio]:checked + span {
  color: #231815;
}

.wpcf7-list-item > label > input[type=radio]:checked + span::after {
  content: "";
  display: block;
  position: absolute;
  top: 1px;
  left: 3px;
  width: 18px;
  height: 18px;
  background: #231815;
  border-radius: 50%;
}

@media screen and (max-width: 767px) {
  .wpcf7-list-item > label > input[type=radio] + span::before {
    top: -4px;
  }

  .wpcf7-list-item > label > input[type=radio]:checked + span::after {
    top: -1px;
  }
}
@media screen and (max-width: 767px) {
  .wpcf7-list-item {
    margin-bottom: 12px !important;
  }

  .wpcf7-list-item:last-child {
    margin-bottom: 0 !important;
  }
}
input[type=file] {
  position: relative;
}

input[type=file]:focus {
  outline: none;
}

input[type=file]::before {
  content: "添付ファイル";
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 144px;
  height: 29px;
  background: #cfcfcf;
  border-radius: 6px;
}

@media screen and (max-width: 767px) {
  input[type=file]::before {
    width: 116px;
  }
}
input.wpcf7-submit {
  width: 240px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #e60011;
  color: #fff;
  margin-right: auto;
  margin-left: auto;
  transition: 1s;
}

input.wpcf7-submit:hover {
  background: #b3000d;
  transition: 1s;
}

.wpcf7-acceptance > .wpcf7-list-item > label > input[type=checkbox] {
  display: none;
}

.wpcf7-acceptance > .wpcf7-list-item > label > .wpcf7-list-item-label {
  position: relative;
  padding-left: 30px;
  margin-right: 18px;
  z-index: 1;
}

.wpcf7-acceptance > .wpcf7-list-item > label > .wpcf7-list-item-label::before {
  content: "";
  display: block;
  position: absolute;
  top: -3px;
  left: 0;
  width: 25px;
  height: 25px;
  border: 1px solid #dae0e5;
  background: #f8f9fa;
}

.wpcf7-acceptance > .wpcf7-list-item > label > input[type=checkbox]:checked + .wpcf7-list-item-label {
  color: #343a40;
}

.wpcf7-acceptance > .wpcf7-list-item > label > input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  content: "";
  display: block;
  position: absolute;
  top: -10px;
  left: 7px;
  width: 14px;
  height: 22px;
  transform: rotate(40deg);
  border-bottom: 4px solid #343a40;
  border-right: 4px solid #343a40;
}

@media screen and (max-width: 767px) {
  .wpcf7-acceptance > .wpcf7-list-item > label > .wpcf7-list-item-label::before {
    top: -5px;
  }
}
/* Contactform7 ここまで */
/* big-contents　ここから */
@media (min-width: 992px) {
  .big-contents {
    display: flex;
    align-items: center;
  }

  .big-contents_img {
    width: 55%;
  }

  .big-contents_img img {
    width: 100%;
    height: auto;
  }

  .big-contents_text {
    width: 35%;
    margin-left: auto;
    margin-right: 5%;
  }
}
@media (max-width: 991px) {
  .big-contents {
    display: block;
    padding: 0 12px;
  }

  .big-contents_img {
    margin-bottom: 24px;
  }
}
/* big-contents　ここまで */
/* .header-motion_mv_slide ここから */
.header-motion_mv_slide {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.header-motion_mv_slide_image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  animation: motion-slider 24s linear infinite;
}

.header-motion_mv_slide_image:nth-child(1) {
  background-image: url("../img/top-mv01.jpg");
  animation-delay: -2s;
}

.header-motion_mv_slide_image:nth-child(2) {
  background-image: url("../img/top-mv02.jpg");
  animation-delay: 6s;
}

.header-motion_mv_slide_image:nth-child(3) {
  background-image: url("../img/top-mv03.jpg");
  animation-delay: 14s;
}

.header-motion_mv_slide_image:nth-child(4) {
  background-image: url("../img/top-mv04.jpg");
  animation-delay: 22s;
}

.header-motion_mv_slide_image:nth-child(5) {
  background-image: url("../img/top-mv05.jpg");
  animation-delay: 30s;
}

@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-motion_mv_ttl {
    padding-left: 24px;
  }
}
@media (max-width: 991px) {
  .header-motion_mv_slide_image_ttl {
    display: flex;
    align-items: center;
    height: 100dvh;
    padding-left: 12px;
  }
}
@media (min-width: 992px) {
  .header-motion_mv_slide_image_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100dvh;
    width: 50vw;
  }
}
@keyframes motion-slider {
  0% {
    opacity: 0;
  }
  4.16% {
    opacity: 1;
  }
  33.33% {
    opacity: 1;
  }
  41.66% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
/* .header-motion_mv_slide　ここまで */
/* order-flow ここから */
@media (min-width: 768px) {
  .order-flow {
    width: 80%;
    margin-right: auto;
    margin-left: auto;
    padding-top: 20px;
  }

  .order-flow_item {
    position: relative;
    width: calc( 100% - 116px );
    height: 100%;
    margin-left: auto;
    counter-increment: mycounter;
  }

  .order-flow_item:not(:last-child) {
    margin-bottom: 32px;
  }

  .order-flow_item:not(:last-child)::before {
    display: block;
    content: "";
    position: absolute;
    bottom: 0;
    left: -76px;
    height: calc( 100% - 72px );
    border-left: 1px solid #aaa;
  }

  .order-flow_item::after {
    display: flex;
    justify-content: center;
    align-items: center;
    content: counter(mycounter,decimal-leading-zero);
    position: absolute;
    top: -20px;
    left: -116px;
    width: 80px;
    height: 80px;
    border-radius: 40px;
    background: #f8f9fa;
    box-shadow: 0 0 18px #ccc;
    font-weight: 600;
    font-size: 1.5rem;
  }

  .order-flow_item:not(:last-child) .order-flow_item_inner {
    display: block;
    margin-bottom: 42px;
  }

  .order-flow_item_inner_title {
    margin-bottom: 36px;
  }
}
@media (max-width: 767px) {
  .order-flow {
    width: 100%;
    padding-top: 10px;
  }

  .order-flow_item {
    position: relative;
    width: calc( 100% - 52px );
    height: 100%;
    margin-left: auto;
    counter-increment: mycounter;
  }

  .order-flow_item:not(:last-child) {
    margin-bottom: 22px;
  }

  .order-flow_item:not(:last-child)::before {
    display: block;
    content: "";
    position: absolute;
    bottom: 0;
    left: -32px;
    height: calc( 100% - 42px );
    border-left: 1px solid #aaa;
  }

  .order-flow_item::after {
    display: flex;
    justify-content: center;
    align-items: center;
    content: counter(mycounter,decimal-leading-zero);
    position: absolute;
    top: -10px;
    left: -52px;
    width: 40px;
    height: 40px;
    border-radius: 20px;
    background: #f8f9fa;
    box-shadow: 0 0 18px #ccc;
    font-weight: 600;
    font-size: 1rem;
  }

  .order-flow_item:not(:last-child) .order-flow_item_inner {
    margin-bottom: 24px;
  }

  .order-flow_item_inner_title {
    margin-bottom: 24px;
  }
}
/* order-flow ここまで */
/* point-area ここから */
.point-area {
  padding: 0 20px 30px;
  background: #f8f9fa;
}

.point-area_title {
  text-align: center;
  transform: translateY(-16px);
  color: #e60011;
}

@media (min-width: 992px) {
  .point-area_inner-col-2 {
    display: flex;
    justify-content: space-around;
  }

  .point-area_inner-col-2 li {
    position: relative;
    width: calc( ( 100% - 10% ) /2 );
  }

  .point-area_inner-col-2 li:not(:last-child)::before {
    position: absolute;
    content: "";
    width: 1px;
    height: 100%;
    background: #e9edf0;
    top: 0;
    right: -5%;
    bottom: 0;
  }

  .point-area_inner-col-3 {
    display: flex;
    justify-content: space-around;
  }

  .point-area_inner-col-3 li {
    position: relative;
    width: calc( ( 100% - 10% ) /3 );
  }

  .point-area_inner-col-3 li:not(:last-child)::before {
    position: absolute;
    content: "";
    width: 1px;
    height: 100%;
    background: #e9edf0;
    top: 0;
    right: -5%;
    bottom: 0;
  }
}
@media (max-width: 991px) {
  .point-area_inner-col-2,
  .point-area_inner-col-3 {
    width: 100%;
    display: block;
  }

  .point-area_inner-col-2 li,
  .point-area_inner-col-3 li {
    position: relative;
    width: 100%;
  }

  .point-area_inner-col-2 li:not(:last-child),
  .point-area_inner-col-3 li:not(:last-child) {
    padding-bottom: 1em;
    margin-bottom: 1em;
  }

  .point-area_inner-col-2 li:not(:last-child)::before,
  .point-area_inner-col-3 li:not(:last-child)::before {
    display: block;
    position: absolute;
    content: "";
    width: 100%;
    height: 1px;
    background: #e9edf0;
    right: 0;
    bottom: 0;
    left: 0;
  }
}
@media (max-width: 767px) {
  .point-area {
    padding: 0 20px 20px;
    background: #f8f9fa;
  }

  .point-area_title {
    transform: translateY(-11px);
  }
}
/* point-area ここまで */
/* pickup-list ここから */
.pickup-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.pickup-list li {
  padding: 10px 20px;
  border: 1px solid #e60011;
  color: #e60011;
  border-radius: 6px;
}

@media (max-width: 767px) {
  .pickup-list {
    font-size: 0.875rem;
  }
}
/* pickup-list ここまで */
/* title-wave ここから */
.title-wave {
  position: relative;
  display: inline-block;
  padding-bottom: 12px;
}

.title-wave::after {
  position: absolute;
  display: block;
  content: "";
  bottom: 0;
  left: 0;
  width: 100%;
  height: 10px;
  background: url("../img/title-wave.svg") repeat-x;
  background-size: contain;
}

/* title-wave ここまで */
/* list-dot ここから */
.list-dot_inner {
  width: 100%;
}

.list-dot_inner li {
  position: relative;
  margin-bottom: 1em;
  padding-left: 20px;
}

.list-dot_inner li:last-child {
  margin-bottom: 0;
}

.list-dot_inner li::after {
  position: absolute;
  content: "";
  top: 6px;
  left: 0;
  width: 10px;
  height: 10px;
  background: #e60011;
  border-radius: 5px;
}

.list-dot {
  display: block;
  background: #f2f2f2;
  border-radius: 6px;
}

@media (min-width: 992px) {
  .list-dot {
    padding: 36px;
  }
}
@media (max-width: 991px) {
  .list-dot {
    padding: 24px;
  }
}
@media (max-width: 767px) {
  .list-dot_inner li::after {
    top: 3px;
  }
}
/* list-dot ここまで */
/* surroundingLine-wrap　ここから */
.surroundingLine-wrap {
  position: relative;
  width: calc( 100% - 4em );
  margin-left: auto;
  padding: .5em 0 .5em 2em;
}

.surroundingLine-wrap::before {
  position: absolute;
  content: "";
  top: 0;
  bottom: 0;
  left: 0;
  width: 6px;
  height: 100%;
  background: #e60011;
}

@media (max-width: 991px) {
  .surroundingLine-wrap {
    width: calc( 100% - 1em );
    padding: .5em 0 .5em 1em;
  }

  .surroundingLine-wrap::before {
    width: 3px;
  }
}
/* surroundingLine-wrap　ここまで */
/* 画像＋片隅ボタン　ここから */
.cornerBtn-wrap {
  display: inline-block;
  background: #f8f9fa;
  border-radius: 12px;
}

.cornerBtn-bg {
  position: relative;
  display: inline-block;
  border-radius: 12px 12px 0 12px;
  overflow: hidden;
}

.cornerBtn-bg_inner {
  position: absolute;
  right: 0;
  bottom: 0;
}

a.cornerBtn {
  position: relative;
  display: block;
  background: #f8f9fa;
  color: #e60011;
  border-radius: 12px 0 0 0;
}

a.cornerBtn::before {
  position: absolute;
  display: block;
  content: "";
  bottom: 0;
  left: -12px;
  width: 12px;
  height: 12px;
  background: url("../img/corner-radius-img.svg") no-repeat;
  background-size: cover;
}

a.cornerBtn::after {
  position: absolute;
  display: block;
  content: "";
  top: -12px;
  right: 0;
  width: 12px;
  height: 12px;
  background: url("../img/corner-radius-img.svg") no-repeat;
  background-size: cover;
}

a.cornerBtn > span {
  display: flex;
  align-items: center;
  position: relative;
  width: 180px;
  height: 60px;
  padding-left: 72px;
}

a.cornerBtn > span::before {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 24px;
  content: "";
  width: 24px;
  height: 24px;
  border-radius: 12px;
  border: 8px solid #e60011;
  transition: .5s;
}

a:hover.cornerBtn > span::before {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 27px;
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 9px;
  background: #e60011;
  transition: .5s;
}

a:hover.cornerBtn {
  color: #e60011;
}

@media (max-width: 767px) {
  .cornerBtn-wrap {
    padding: 12px;
  }

  a.cornerBtn > span {
    display: flex;
    align-items: center;
    position: relative;
    width: 140px;
    height: 40px;
    padding-left: 45px;
  }

  a.cornerBtn > span::before {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 18px;
    content: "";
    width: 18px;
    height: 18px;
    border-radius: 9px;
    border: 6px solid #e60011;
    transition: .5s;
  }

  a:hover.cornerBtn > span::before {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 20px;
    content: "";
    width: 14px;
    height: 14px;
    border-radius: 7px;
    background: #e60011;
    transition: .5s;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .cornerBtn-wrap {
    padding: 24px;
  }
}
@media (min-width: 992px) {
  .cornerBtn-wrap {
    padding: 36px;
  }
}
/* 片隅ボタン　ここまで */
/* circledotBtn　ここから */
a.circledotBtn {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 260px;
  height: 60px;
  background: #fff;
  border: 1px solid #e60011;
  color: #e60011;
  border-radius: 30px;
}

a.circledotBtn::before {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 24px;
  content: "";
  width: 20px;
  height: 20px;
  border-radius: 10px;
  border: 7px solid #e60011;
  transition: .5s;
}

a:hover.circledotBtn::before {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 26px;
  content: "";
  width: 16px;
  height: 16px;
  border-radius: 8px;
  background: #e60011;
  transition: .5s;
}

a:hover.circledotBtn {
  color: #e60011;
}

/* circledotBtn　ここまで */
/* circledotBtn-beta　ここから */
a.circledotBtn-beta {
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 260px;
  height: 60px;
  background: #e60011;
  color: #fff;
  border-radius: 30px;
}

a.circledotBtn-beta::before {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 24px;
  content: "";
  width: 20px;
  height: 20px;
  border-radius: 10px;
  border: 7px solid #fff;
  transition: .5s;
}

a:hover.circledotBtn-beta::before {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 26px;
  content: "";
  width: 16px;
  height: 16px;
  border-radius: 8px;
  background: #fff;
  transition: .5s;
}

a:hover.circledotBtn-beta {
  color: #fff;
}

/* circledotBtn-beta　ここまで */
/* contact-box　ここから */
@media (min-width: 992px) {
  .contact-box {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 93.75vw;
    height: 600px;
    color: #fff;
    border-radius: 0 300px 300px 0;
  }

  .contact-box a,
  .contact-box a:hover,
  .contact-box a:visited {
    color: #fff;
  }

  .contact-box-img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: #ff3443;
    border-radius: 0 300px 300px 0;
    overflow: hidden;
    z-index: -1;
  }

  .contact-box-img img {
    width: 93.75vw;
    height: 600px;
    object-fit: cover;
    opacity: 0.2;
  }

  .contact-box > div > .container {
    max-width: 1240px;
  }

  .contact-box_inner {
    display: flex;
  }

  .contact-box_inner_left {
    width: 35vw;
    padding-top: 5%;
    padding-left: 5%;
  }

  .contact-box_inner_right_tel {
    display: flex;
    align-items: center;
    width: 600px;
    height: 160px;
    border-radius: 80px;
    border: 1px solid #fff;
    padding: 40px;
    margin-bottom: 40px;
  }

  .contact-box_inner_right_tel_icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 72px;
    height: 72px;
    border-radius: 72px;
    background: #fff;
    margin-right: 40px;
  }

  .contact-box_inner_right_tel_icon img {
    height: 36px;
  }

  .contact-box_inner_right_tel_number {
    display: block;
    font-size: 40px;
    font-weight: 700;
  }

  .contact-box_inner_right_tel_text {
    display: block;
    margin-top: 20px;
  }

  .contact-box_inner_right_mail {
    position: relative;
    display: flex;
    align-items: center;
    width: 600px;
    height: 160px;
    border-radius: 80px;
    border: 1px solid #fff;
    padding: 40px;
    transition: 1s;
  }

  .contact-box_inner_right_mail::before {
    position: absolute;
    display: block;
    content: "";
    right: 40px;
    top: 50%;
    transform: translateY(-50%);
    width: 26px;
    height: 23px;
    background: url("../img/icon-arrow.svg") no-repeat;
    background-size: cover;
    transition: 1s;
  }

  a:hover.contact-box_inner_right_mail::before {
    position: absolute;
    display: block;
    content: "";
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 26px;
    height: 23px;
    background: url("../img/icon-arrow.svg") no-repeat;
    background-size: cover;
    transition: 1s;
  }

  a:hover.contact-box_inner_right_mail {
    background: #b3000d;
    transition: 1s;
  }

  .contact-box_inner_right_mail_icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 72px;
    height: 72px;
    border-radius: 72px;
    background: #fff;
    margin-right: 40px;
  }

  .contact-box_inner_right_mail_icon img {
    height: 36px;
  }

  .contact-box_inner_right_mail_text {
    display: block;
    font-size: 32px;
    font-weight: 700;
  }
}
@media (max-width: 991px) {
  .contact-box {
    position: relative;
    width: 100%;
    height: auto;
    color: #fff;
    padding: 40px 0;
  }

  .contact-box a,
  .contact-box a:hover,
  .contact-box a:visited {
    color: #fff;
  }

  .contact-box-img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: #ff3443;
    z-index: -1;
  }

  .contact-box-img img {
    width: auto;
    height: 100%;
    object-fit: cover;
    opacity: 0.2;
  }

  .contact-box_inner {
    display: block;
  }

  .contact-box_inner_left {
    width: 100%;
    margin-bottom: 24px;
  }

  .contact-box_inner_right_tel {
    display: flex;
    align-items: center;
    width: 100%;
    height: 80px;
    border-radius: 40px;
    border: 1px solid #fff;
    padding: 20px;
    margin-bottom: 24px;
  }

  .contact-box_inner_right_tel_icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 36px;
    height: 36px;
    border-radius: 36px;
    background: #fff;
    margin-right: 20px;
  }

  .contact-box_inner_right_tel_icon img {
    height: 18px;
  }

  .contact-box_inner_right_tel_number {
    display: block;
    font-size: 24px;
    font-weight: 700;
  }

  .contact-box_inner_right_tel_text {
    display: block;
    margin-top: 6px;
  }

  .contact-box_inner_right_mail {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    height: 80px;
    border-radius: 40px;
    border: 1px solid #fff;
    padding: 20px;
    transition: 1s;
  }

  .contact-box_inner_right_mail::before {
    position: absolute;
    display: block;
    content: "";
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 18px;
    background: url("../img/icon-arrow.svg") no-repeat;
    background-size: cover;
    transition: 1s;
  }

  a:hover.contact-box_inner_right_mail::before {
    position: absolute;
    display: block;
    content: "";
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 18px;
    background: url("../img/icon-arrow.svg") no-repeat;
    background-size: cover;
    transition: 1s;
  }

  a:hover.contact-box_inner_right_mail {
    background: #b3000d;
    transition: 1s;
  }

  .contact-box_inner_right_mail_icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 36px;
    height: 36px;
    border-radius: 36px;
    background: #fff;
    margin-right: 20px;
  }

  .contact-box_inner_right_mail_icon img {
    height: 18px;
  }

  .contact-box_inner_right_mail_text {
    display: block;
    font-size: 18px;
    font-weight: 700;
  }
}
/* contact-box　ここまで */
/* ellipse-mask　画像マスクここから */
.ellipse-mask01 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask01.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask02 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask02.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask03 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask03.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask04 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask04.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask05 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask05.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask06 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask06.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask07 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask07.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask-rectangle01 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask-rectangle01.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask-rectangle02 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask-rectangle02.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask-rectangle03 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask-rectangle03.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask-rectangle04 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask-rectangle04.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask-rectangle05 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask-rectangle05.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask-rectangle06 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask-rectangle06.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

.ellipse-mask-rectangle07 {
  position: relative;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  mask-image: url(../img/ellipse-mask-rectangle07.svg);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

/* ellipse-mask　画像マスクここまで */
/* 本のような段組みレイアウト　ここから */
.book {
  columns: 3;
  /* カラムの数 */
  column-rule: 2px dashed #ccc;
  /* カラム間の線の太さ・線の種類・線の色 */
  column-gap: 3em;
  /* カラム間の幅 */
  /* 以下任意で見た目の調整 */
  padding: 2em;
  line-height: 1.5em;
  text-align: justify;
  border: 1px solid #ccc;
}

/* 幅が狭いデバイスでは1カラムにする */
@media screen and (max-width: 767px) {
  .book {
    columns: 1;
  }
}
/* 本のような段組みレイアウト　ここまで */
/* テキスト下の二重線　ここから */
.double-line {
  display: inline;
  background-image: linear-gradient(0deg, #e60011 0px, #e60011 2px, transparent 2px, transparent 4px, #e60011 4px, #e60011 6px);
  background-size: 100% 6px;
  background-repeat: no-repeat;
  background-position: left bottom;
  padding-bottom: 5px;
}

/* テキスト下の二重線　ここまで */
/* ulタグの丸が脈動するアニメーション　ここから */
.pulse-ul {
  list-style: none;
}

.pulse-ul li {
  position: relative;
  padding-left: 20px;
  line-height: 2;
}

.pulse-ul li::before,
.pulse-ul li::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  left: 5px;
  top: calc(1em - 4px);
}

/* liタグの丸1のスタイル */
.pulse-ul li::before {
  background-color: #ff3443;
  animation: pulsate 2s infinite;
}

/* liタグの丸2のスタイル */
.pulse-ul li::after {
  background-color: #e60011;
}

@keyframes pulsate {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: scale(2.5);
  }
}
/* ulタグの丸が脈動するアニメーション　ここから */
/* グラデーションボタン　ここから */
a.gradient-btn {
  position: relative;
  z-index: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 260px;
  height: 60px;
  background: transparent;
  border-radius: 6px;
  overflow: hidden;
  cursor: pointer;
  color: #fff;
  font-weight: bold;
  text-align: center;
}

a:hover.gradient-btn {
  color: #fff;
}

a.gradient-btn::before,
a.gradient-btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
}

a.gradient-btn::before {
  transition: all 0.6s;
  z-index: -1;
  background: linear-gradient(135deg, #FBD786 0%, #f7797d 100%);
}

a.gradient-btn::after {
  z-index: -2;
  background: linear-gradient(135deg, #12c2e9 0%, #c471ed 100%);
}

a.gradient-btn:hover::before {
  opacity: 0;
}

a.gradient-btn > span {
  position: relative;
}

a.gradient-btn > span::before {
  position: absolute;
  top: 6px;
  right: -25px;
  display: block;
  content: "";
  background: url("../img/icon-arrow.svg") no-repeat;
  background-size: cover;
  width: 13px;
  height: 11px;
}

/* グラデーションボタン　ここまで */
/* 流体シェイプ　ここから */
.fluid-shape {
  position: relative;
  width: 100%;
  /*横幅*/
  height: 100%;
  /*縦幅*/
  background: #fff;
  /*背景色*/
  animation: fluidrotate 30s ease 0s infinite;
  /*アニメーションの設定*/
  overflow: hidden;
}

@keyframes fluidrotate {
  0%, 100% {
    border-radius: 63% 37% 54% 46%/55% 48% 52% 45%;
  }
  14% {
    border-radius: 40% 60% 54% 46%/49% 60% 40% 51%;
  }
  28% {
    border-radius: 54% 46% 38% 62%/49% 70% 30% 51%;
  }
  42% {
    border-radius: 61% 39% 55% 45%/61% 38% 62% 39%;
  }
  56% {
    border-radius: 61% 39% 67% 33%/70% 50% 50% 30%;
  }
  70% {
    border-radius: 50% 50% 34% 66%/56% 68% 32% 44%;
  }
  84% {
    border-radius: 46% 54% 50% 50%/35% 61% 39% 65%;
  }
}
/* 流体シェイプ　ここまで */
/* header-tpl06　ここから */
@media (max-width: 991px) {
  .header-tpl06-bg {
    position: fixed;
    top: 0;
    width: 100%;
    height: 80px;
    padding: 0 12px;
    background: #fff;
    z-index: 3;
  }

  .header-tpl06 {
    height: 80px;
    display: flex;
    align-items: center;
  }

  .header-tpl06-logo img {
    width: auto;
    height: 50px;
  }
}
@media (max-width: 320px) {
  .header-tpl06-logo img {
    width: auto;
    height: 35px;
  }
}
@media (min-width: 992px) {
  .header-tpl06-bg {
    position: fixed;
    top: -80px;
    width: 100%;
    height: 80px;
    padding: 10px;
    background: #fff;
    box-shadow: 0 0 18px #ccc;
    border-radius: 0 0 12px 0;
    z-index: 3;
    transition: .5s;
  }

  .header-tpl06 {
    display: flex;
    align-items: center;
  }

  .header-tpl06-logo {
    margin-right: auto;
  }

  .header-tpl06-nav {
    display: flex;
    align-items: center;
  }

  .header-tpl06-nav li a {
    position: relative;
    margin-right: 18px;
  }

  .header-tpl06-nav li a::after {
    position: absolute;
    bottom: -4px;
    left: 0;
    content: '';
    width: 100%;
    height: 2px;
    background: #e60011;
    transform: scale(0, 1);
    transform-origin: left top;
    transition: transform .3s;
  }

  .header-tpl06-nav li a:hover::after {
    transform: scale(1, 1);
  }

  a.header-tpl06-contact {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 50px;
    background: #e60011;
    color: #fff;
    padding: 0 1.5em;
    margin-right: 24px;
    border-radius: 25px;
    font-weight: 600;
  }

  a:hover.header-tpl06-contact {
    color: #fff;
    opacity: .5;
  }

  .header-tpl06-contact-icon {
    margin-right: 6px;
  }

  .header-tpl06-contact-icon img {
    width: 24px;
    height: auto;
  }

  .header-tpl06-tel {
    display: flex;
    align-items: center;
    font-size: 1.5rem;
    font-weight: 600;
    margin-right: 14px;
    line-height: 1em;
    height: 40px;
    margin-right: 100px;
  }

  .header-tpl06-tel-icon {
    margin-right: 3px;
  }

  .header-tpl06-tel-icon img {
    width: 24px;
  }
}
.header-tpl06-bg_on_scroll {
  top: 0;
  transition: .5s;
}

@media (max-width: 991px) {
  .header-tpl06-mv {
    display: block;
    width: 100%;
    height: calc( 100dvh - 80px );
    margin-top: 80px;
  }
  .header-tpl06-mv > div:first-child {
    width: 90dvw;
    height: calc( 60dvh - 40px );
    margin: auto;
    padding-top: 30px;
  }
  .header-tpl06-mv > div:last-child {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 90dvw;
    height: calc( 40dvh - 40px );
    margin: auto;
    text-align: center;
  }

  .header-tpl06-mv_logo {
    display: none;
  }
}
@media (min-width: 992px) {
  .header-tpl06-mv {
    display: flex;
    width: 100%;
    height: 100dvh;
    align-items: center;
    margin-top: -80px;
  }
  .header-tpl06-mv > div:first-child {
    width: 45dvw;
    height: 80dvh;
    order: 2;
  }
  .header-tpl06-mv > div:last-child {
    width: 50dvw;
    display: flex;
    justify-content: center;
    order: 1;
  }

  .header-tpl06-mv_logo {
    margin-bottom: 36px;
  }

  .header-tpl06-mv_title {
    font-size: 3.3333vw;
  }
}
/* header-tpl06　ここまで */
/* テキストが流れる　ここから */
/*
.roboto-<uniquifier> {
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}
*/
.text-loop-wrap {
  overflow: hidden;
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 900;
  font-style: normal;
  font-variation-settings: "wdth" 100;
}

.text-loop {
  display: flex;
  width: 100%;
  height: auto;
  overflow: hidden;
  opacity: .05;
}

.text-loop div {
  flex: 0 0 auto;
  white-space: nowrap;
  line-height: 1em;
  overflow: hidden;
}

.text-loop div:nth-child(odd) {
  animation: text-loop01-1 200s -100s linear infinite;
}

.text-loop div:nth-child(even) {
  animation: text-loop01-2 200s linear infinite;
}

@keyframes text-loop01-1 {
  0% {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
}
@keyframes text-loop01-2 {
  0% {
    transform: translateX(0);
  }
  to {
    transform: translateX(-200%);
  }
}
@media (max-width: 767px) {
  .text-loop div {
    font-size: 9rem;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .text-loop div {
    font-size: 14rem;
  }
}
@media (min-width: 992px) {
  .text-loop div {
    font-size: 19rem;
  }
}
/* テキストが流れる　ここまで */
/* テキストが流れるタイトル　ここから */
.title-text-loop {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 304px;
}

.title-text-loop > div {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.title-text-loop > p {
  text-align: center;
  font-weight: bold;
}

@media (max-width: 767px) {
  .title-text-loop > p {
    font-size: 1.4rem;
  }

  .title-text-loop {
    height: 144px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .title-text-loop > p {
    font-size: 1.7rem;
  }

  .title-text-loop {
    height: 224px;
  }
}
@media (min-width: 992px) {
  .title-text-loop > p {
    font-size: 2rem;
  }
}
/* テキストが流れるタイトル　ここまで */
/* 囲い文字の段落　ここから */
@media (max-width: 991px) {
  .headding-enclosed li {
    display: block;
    width: 100%;
    margin-bottom: .5em;
  }

  .headding-enclosed li:last-child {
    margin-bottom: 0;
  }

  .headding-enclosed li span:first-child {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    background: #e60011;
    color: #fff;
    padding: .1em .3em;
    font-weight: normal;
    margin-bottom: .5em;
    border-radius: 3px;
  }

  .headding-enclosed li span:last-child {
    display: block;
  }
}
@media (min-width: 992px) {
  .headding-enclosed li {
    display: flex;
    width: 100%;
    margin-bottom: .5em;
  }

  .headding-enclosed li:last-child {
    margin-bottom: 0;
  }

  .headding-enclosed li span:first-child {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    background: #e60011;
    color: #fff;
    padding: 0 .2em;
    font-weight: normal;
    margin-right: 1em;
    border-radius: 3px;
  }

  .headding-enclosed li span:last-child {
    padding-top: .1em;
  }
}
/* 囲い文字の段落　ここまで */
/* header-tpl07　ここから */
.header-tpl07-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #fff;
  color: #231815;
  padding: 10px 10px 0 10px;
  height: 70px;
}

.header-tpl07-logo {
  height: 60px;
}

.header-tpl07-contact {
  display: flex;
  align-items: center;
}

.header-tpl07-nav {
  background: #fff;
  color: #231815;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 50px;
}

.header-tpl07-nav ul {
  list-style: none;
  display: flex;
}

.header-tpl07-nav ul li {
  margin: 0 10px;
  position: relative;
}

.header-tpl07-nav ul li a {
  color: #231815;
  text-decoration: none;
  display: block;
  padding: 10px;
}

.header-tpl07-dropdown {
  display: none;
  position: absolute;
  background-color: #e9edf0;
  min-width: 100px;
  box-shadow: 0 0 12px #ccc;
  z-index: 1;
}

.header-tpl07-dropdown a {
  color: #231815;
  padding: 10px;
  text-decoration: none;
  display: block;
}

.header-tpl07-nav ul li:hover .header-tpl07-dropdown {
  display: block;
}

a.header-tpl07-contact {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 50px;
  background: #e60011;
  color: #fff;
  padding: 0 1.5em;
  margin-right: 24px;
  border-radius: 25px;
  font-weight: 600;
}

a:hover.header-tpl07-contact {
  color: #fff;
  opacity: .5;
}

.header-tpl07-contact-icon {
  margin-right: 6px;
}

.header-tpl07-contact-icon img {
  width: 24px;
  height: auto;
}

.header-tpl07-tel {
  display: flex;
  align-items: center;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1em;
  height: 40px;
}

.header-tpl07-tel-icon {
  margin-right: 3px;
}

.header-tpl07-tel-icon img {
  width: 24px;
}

/* header-tpl07　ここまで */
/* footer-tpl02　ここから */
@media (max-width: 991px) {
  .footer-tpl02_head {
    width: 100%;
    height: auto;
    background: url("../img/footer-tpl02-head-bg.jpg") no-repeat;
    background-position: top center;
    background-size: cover;
    padding-top: 60px;
    padding-bottom: 30px;
  }

  .footer-tpl02_contact {
    width: 90vw;
    margin-right: auto;
    margin-left: auto;
    padding: 60px 0;
    background: #fff;
    border-radius: 30px 30px 0 0;
  }

  .footer-tpl02_contact-title {
    margin-bottom: 12px;
  }

  .footer-tpl02_contact-text {
    margin-bottom: 36px;
  }

  .footer-tpl02_contact-link {
    display: block;
  }

  .footer-tpl02_contact-link > a {
    margin: 0 auto 24px auto;
  }

  .footer-tpl02_contact-link > a:last-child {
    margin-bottom: 0;
  }

  a.footer-tpl02_contact-link_tel {
    display: flex;
    align-items: center;
    font-size: 1.5rem;
    font-weight: bold;
    text-decoration: none;
    justify-content: center;
  }

  a.footer-tpl02_contact-link_tel img {
    width: auto;
    height: 24px;
    padding-right: 6px;
  }

  .footer-tpl02_foot {
    width: 100%;
    background: #e60011;
    padding: 60px 0;
    border-radius: 30px 30px 0 0;
    margin-top: -30px;
  }

  .footer-tpl02_foot_innder {
    display: block;
  }

  .footer-tpl02_foot_innder_left {
    width: 100%;
    color: #fff;
  }

  .footer-tpl02_foot_innder_left_logo {
    margin-bottom: 24px;
  }

  .footer-tpl02_foot_innder_left_logo img {
    width: 70vw;
    height: auto;
    margin-right: auto;
    margin-left: auto;
  }

  .footer-tpl02_foot_innder_left_add {
    margin-bottom: 24px;
  }

  a.footer-tpl02_foot_innder_left_tel {
    display: flex;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: bold;
    color: #fff;
    margin-bottom: 24px;
  }

  a:hover.footer-tpl02_foot_innder_left_tel {
    color: #fff;
  }

  a.footer-tpl02_foot_innder_left_tel img {
    width: auto;
    height: 24px;
    padding-right: 6px;
  }

  .footer-tpl02_foot_innder_left_copy {
    font-size: .75rem;
    font-weight: bold;
    text-align: center;
  }

  .footer-tpl02_foot_innder_right {
    width: 100%;
    color: #fff;
    margin-bottom: 36px;
  }

  .footer-tpl02_foot_innder_right_navi {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    padding: 0 24px;
    margin-bottom: 36px;
  }

  .footer-tpl02_foot_innder_right_navi li a {
    display: inline-block;
    color: #fff;
    border-bottom: dotted 3px #fff;
    padding-bottom: 6px;
  }

  .footer-tpl02_foot_innder_right_navi li a:hover {
    border-bottom: dotted 3px #ff3443;
  }

  .footer-tpl02_foot_innder_right_btn {
    margin-right: auto;
    margin-left: auto;
  }

  a.footer-tpl02_contact-link_btn,
  .footer-tpl02_contact-link_btn_box,
  a.footer-tpl02_foot_innder_right_btn,
  .footer-tpl02_foot_innder_right_btn_box {
    width: 260px;
  }
}
@media (min-width: 992px) {
  .footer-tpl02_head {
    width: 100%;
    height: auto;
    background: url("../img/footer-tpl02-head-bg.jpg") no-repeat;
    background-position: top center;
    background-size: cover;
    padding-top: 90px;
    padding-bottom: 60px;
  }

  .footer-tpl02_contact {
    width: 70vw;
    margin-right: auto;
    margin-left: auto;
    padding: 90px 0;
    background: #fff;
    border-radius: 30px 30px 0 0;
  }

  .footer-tpl02_contact-title {
    margin-bottom: 12px;
  }

  .footer-tpl02_contact-text {
    margin-bottom: 36px;
  }

  .footer-tpl02_contact-link {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .footer-tpl02_contact-link > a {
    margin-right: 2.5vw;
  }

  .footer-tpl02_contact-link > a:last-child {
    margin-right: 0;
  }

  a.footer-tpl02_contact-link_tel {
    display: flex;
    align-items: center;
    font-size: 1.5rem;
    font-weight: bold;
    text-decoration: none;
  }

  a.footer-tpl02_contact-link_tel img {
    width: auto;
    height: 24px;
    padding-right: 6px;
  }

  .footer-tpl02_foot {
    width: 100%;
    background: #e60011;
    padding: 90px 0;
    border-radius: 60px 60px 0 0;
    margin-top: -60px;
  }

  .footer-tpl02_foot_innder {
    display: flex;
  }

  .footer-tpl02_foot_innder_left {
    width: 40%;
    margin-right: 90px;
    color: #fff;
    order: 1;
  }

  .footer-tpl02_foot_innder_left_logo {
    margin-bottom: 60px;
  }

  .footer-tpl02_foot_innder_left_logo img {
    width: 300px;
    height: auto;
  }

  .footer-tpl02_foot_innder_left_add {
    margin-bottom: 36px;
  }

  a.footer-tpl02_foot_innder_left_tel {
    display: flex;
    font-size: 2rem;
    font-weight: bold;
    color: #fff;
    margin-bottom: 6px;
  }

  a:hover.footer-tpl02_foot_innder_left_tel {
    color: #fff;
  }

  a.footer-tpl02_foot_innder_left_tel img {
    width: auto;
    height: 24px;
    padding-right: 6px;
  }

  .footer-tpl02_foot_innder_left_copy {
    font-size: .75rem;
    font-weight: bold;
  }

  .footer-tpl02_foot_innder_right {
    width: calc( 60% - 90px );
    color: #fff;
    order: 2;
  }

  .footer-tpl02_foot_innder_right_navi {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 36px;
    margin-bottom: 36px;
  }

  .footer-tpl02_foot_innder_right_navi li a {
    display: inline-block;
    color: #fff;
    border-bottom: dotted 3px #fff;
    padding-bottom: 12px;
  }

  .footer-tpl02_foot_innder_right_navi li a:hover {
    border-bottom: dotted 3px #ff3443;
  }

  a.footer-tpl02_contact-link_btn,
  .footer-tpl02_contact-link_btn_box,
  a.footer-tpl02_foot_innder_right_btn,
  .footer-tpl02_foot_innder_right_btn_box {
    width: 20vw;
  }
}
.footer-tpl02_contact-title,
.footer-tpl02_contact-text {
  text-align: center;
}

a.footer-tpl02_contact-link_btn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
  color: #fff;
  border-radius: 30px;
}

a.footer-tpl02_contact-link_btn::before {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 24px;
  content: "";
  width: 20px;
  height: 20px;
  border-radius: 10px;
  border: 7px solid #fff;
  transition: .5s;
}

a:hover.footer-tpl02_contact-link_btn::before {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 26px;
  content: "";
  width: 16px;
  height: 16px;
  border-radius: 8px;
  background: #fff;
  transition: .5s;
}

a.footer-tpl02_btn01 {
  background: #e60011;
}

a.footer-tpl02_btn02 {
  background: #ff3443;
}

a:hover.footer-tpl02_btn01,
a:hover.footer-tpl02_btn02 {
  color: #fff;
}

.footer-tpl02_contact-link_btn_box {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
}

.footer-tpl02_contact-link_btn_box_img {
  display: flex;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 60px;
  height: 60px;
  padding-left: 30px;
}

.footer-tpl02_contact-link_btn_box_img img {
  width: auto;
  height: 24px;
}

a.footer-tpl02_foot_innder_right_btn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
  color: #e60011;
  background: #fff;
  border-radius: 30px;
  margin-left: auto;
}

a.footer-tpl02_foot_innder_right_btn::before {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 24px;
  content: "";
  width: 20px;
  height: 20px;
  border-radius: 10px;
  border: 7px solid #e60011;
  transition: .5s;
}

a:hover.footer-tpl02_foot_innder_right_btn::before {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 26px;
  content: "";
  width: 16px;
  height: 16px;
  border-radius: 8px;
  background: #e60011;
  transition: .5s;
}

.footer-tpl02_foot_innder_right_btn_box {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
}

.footer-tpl02_foot_innder_right_btn_box_img {
  display: flex;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 60px;
  height: 60px;
  padding-left: 30px;
}

.footer-tpl02_foot_innder_right_btn_box_img img {
  width: auto;
  height: 24px;
}

/* footer-tpl02　ここまで */
/* header-tpl08　ここから */
@media (min-width: 992px) {
  .header-tpl08 {
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    width: 100%;
    background: #fff;
    transition: .5s;
    padding: 2.777vw 4.166vw;
    font-size: 1.25vw;
  }

  .header-tpl08.scroll {
    padding: .833vw 4.166vw;
  }

  .header-tpl08_inner {
    display: flex;
    align-items: center;
  }

  .header-tpl08_inner_logo {
    margin-right: auto;
  }

  .header-tpl08_inner_logo img {
    width: auto;
    height: 4.166vw;
  }

  .header-tpl08_inner_nav {
    display: flex;
  }

  .header-tpl08_inner_nav li {
    margin-right: 1.666vw;
  }

  a.header-tpl08_inner_btn {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: auto;
    padding: 0 0.833vw 0 2.916vw;
    height: 2.777vw;
    border-radius: 1.388vw;
    background: #e60011;
    color: #fff;
    margin-right: 1.666vw;
  }

  a:hover.header-tpl08_inner_btn {
    color: #fff;
    background: #ff3443;
  }

  a.header-tpl08_inner_btn::after {
    position: absolute;
    content: "";
    background: url("../img/icon-mail.svg") no-repeat;
    background-size: cover;
    width: 1.666vw;
    height: 1.666vw;
    top: 50%;
    left: .833vw;
    transform: translateY(-50%);
  }

  a.header-tpl08_inner_tel {
    position: relative;
    font-size: 1.666vw;
    font-weight: bold;
    padding-left: 1.875vw;
  }

  a.header-tpl08_inner_tel::after {
    position: absolute;
    content: "";
    background: url("../img/icon-tel-outline.svg") no-repeat;
    width: 1.666vw;
    height: 1.944vw;
    background-size: cover;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
  }
}
@media (max-width: 991px) {
  .header-tpl08 {
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    z-index: 3;
  }

  .header-tpl08_inner {
    display: flex;
    align-items: center;
    width: 100%;
    height: 80px;
    background: #fff;
    padding: 0 12px;
  }

  .header-tpl08_inner_logo img {
    width: auto;
    height: 40px;
  }
}
@media (max-width: 320px) {
  .header-tpl08_inner_logo img {
    width: auto;
    height: 30px;
  }
}
/* メイン画像ここから */
.header-tpl08_mv_slide_image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  animation: header-tpl08-slider 24s linear infinite;
}

.header-tpl08_mv_slide_image:nth-child(1) {
  background-image: url("../img/top-mv01.jpg");
  animation-delay: -2s;
}

.header-tpl08_mv_slide_image:nth-child(2) {
  background-image: url("../img/top-mv02.jpg");
  animation-delay: 6s;
}

.header-tpl08_mv_slide_image:nth-child(3) {
  background-image: url("../img/top-mv03.jpg");
  animation-delay: 14s;
}

.header-tpl08_mv_slide_image:nth-child(4) {
  background-image: url("../img/top-mv04.jpg");
  animation-delay: 22s;
}

.header-tpl08_mv_slide_image:nth-child(5) {
  background-image: url("../img/top-mv05.jpg");
  animation-delay: 30s;
}

@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-tpl08_mv_ttl {
    padding-left: 24px;
  }
}
@media (max-width: 991px) {
  .header-tpl08_mv_slide {
    position: relative;
    width: 100%;
    height: calc( 100vh - 80px );
    overflow: hidden;
    margin-top: 80px;
  }

  .header-tpl08_mv_slide_image_ttl {
    display: flex;
    align-items: center;
    height: calc( 100vh - 80px );
    padding-left: 12px;
  }
}
@media (min-width: 992px) {
  .header-tpl08_mv_slide {
    position: relative;
    width: 100%;
    height: calc( 100vh - 9.72vw );
    overflow: hidden;
    margin-top: 9.72vw;
  }

  .header-tpl08_mv_slide_image_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: calc( 100vh - 9.72vw );
    width: 50vw;
  }
}
@keyframes header-tpl08-slider {
  0% {
    opacity: 0;
  }
  4.16% {
    opacity: 1;
  }
  33.33% {
    opacity: 1;
  }
  41.66% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@media (max-width: 991px) {
  .header-tpl08_mv {
    width: auto;
    height: calc( 100vh - 80px );
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
    margin-top: 80px;
  }

  .header-tpl08_mv_ttl {
    display: flex;
    align-items: center;
    height: calc( 100vh - 80px );
    padding-left: 12px;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-tpl08_mv_ttl {
    padding-left: 24px;
  }
}
@media (min-width: 992px) {
  .header-tpl08_mv {
    width: auto;
    height: calc( 100vh - 9.72vw );
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
    margin-top: 9.72vw;
  }

  .header-tpl08_mv_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: calc( 100vh - 9.72vw );
    width: 50vw;
  }
}
/* header-tpl08　ここまで */
/* form--Btn　ここから */
@media (max-width: 991px) {
  a.form--Btn,
  .form--Btn_box {
    width: 260px;
    margin-right: auto;
    margin-left: auto;
  }
}
@media (min-width: 992px) {
  a.form--Btn,
  .form--Btn_box {
    width: 20vw;
  }
}
a.form--Btn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
  color: #fff;
  background: #e60011;
  border-radius: 30px;
}

a:hover.form--Btn {
  color: #fff;
}

a.form--Btn::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 1.5em;
  margin: auto;
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  transition: all .4s ease-out;
}

a:hover.form--Btn::before {
  right: 1em;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}

.form--Btn_box {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
}

.form--Btn_box_img {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 60px;
  height: 60px;
}

.form--Btn_box_img img {
  width: auto;
  height: 24px;
}

/* form--Btn　ここまで */
/* parts_thumbnail_slick カテゴリー設定　ここから */
.card-Thumbnail li {
  transition: .2s;
  padding: 0 1.25vw;
  margin-bottom: 20px;
}

@media (max-width: 767px) {
  .card-Thumbnail li {
    padding: 0 6px;
  }
}
.card-Thumbnail li a:hover {
  display: block;
  box-shadow: 0 0 18px rgba(0, 0, 0, 0.1) !important;
  transition: .2s;
}

.card--bg {
  border: 1px solid #e9edf0;
  border-radius: 6px;
  overflow: hidden;
}

.card--body {
  padding: 1rem;
}

.card--body_title {
  display: block;
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.card-bottom {
  display: flex;
  align-items: center;
  column-gap: 12px;
}

.card-bottom_category {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: .8em;
  height: 1.5em;
  border: 1px solid #e60011;
  color: #e60011;
  border-radius: .75em;
  padding: 0 .75em;
}

@media (max-width: 320px) {
  .card-bottom {
    display: block;
    column-gap: normal;
  }

  .card-bottom_category {
    display: inline-flex;
  }
}
@media (max-width: 991px) {
  .card--body_title {
    font-size: 1rem;
    margin-bottom: 6px;
  }
}
/* parts_thumbnail_slick カテゴリー設定　ここまで */
/* mv2nd-tpl05　ここから */
@media (max-width: 767px) {
  .mv2nd-tpl05,
  .mv2nd-tpl05_inner {
    height: 144px;
  }

  .mv2nd-tpl05_inner h1 {
    right: 12px;
    top: 12px;
    font-size: 10px;
  }

  .mv2nd-tpl05_inner_title {
    font-size: 1.6rem;
  }

  .mv2nd-tpl05_inner_title {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .mv2nd-tpl05,
  .mv2nd-tpl05_inner {
    height: 224px;
  }

  .mv2nd-tpl05_inner h1 {
    right: 24px;
    top: 24px;
    font-size: 12px;
  }

  .mv2nd-tpl05_inner_title {
    font-size: 2.05rem;
  }
}
@media (min-width: 992px) {
  .mv2nd-tpl05,
  .mv2nd-tpl05_inner {
    height: 304px;
  }

  .mv2nd-tpl05_inner h1 {
    right: 30px;
    top: 30px;
    font-size: 12px;
  }

  .mv2nd-tpl05_inner_title {
    font-size: 2.777vw;
  }
}
.mv2nd-tpl05 {
  position: relative;
  width: 100%;
  background: #fff;
}

.mv2nd-tpl05_inner {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
}

.mv2nd-tpl05_inner h1 {
  position: absolute;
}

.mv2nd-tpl05-text-loop-wrap {
  overflow: hidden;
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
}

.mv2nd-tpl05-text-loop {
  display: flex;
  width: 100%;
  height: auto;
  overflow: hidden;
  opacity: .05;
}

.mv2nd-tpl05-text-loop div {
  flex: 0 0 auto;
  white-space: nowrap;
  line-height: 1em;
  overflow: hidden;
}

.mv2nd-tpl05-text-loop div:nth-child(odd) {
  animation: mv2nd-tpl05-text-loop01-1 200s -100s linear infinite;
}

.mv2nd-tpl05-text-loop div:nth-child(even) {
  animation: mv2nd-tpl05-text-loop01-2 200s linear infinite;
}

@keyframes mv2nd-tpl05-text-loop01-1 {
  0% {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
}
@keyframes mv2nd-tpl05-text-loop01-2 {
  0% {
    transform: translateX(0);
  }
  to {
    transform: translateX(-200%);
  }
}
@media (max-width: 767px) {
  .mv2nd-tpl05-text-loop div {
    font-size: 9rem;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .mv2nd-tpl05-text-loop div {
    font-size: 14rem;
  }
}
@media (min-width: 992px) {
  .mv2nd-tpl05-text-loop div {
    font-size: 19rem;
  }
}
/* mv2nd-tpl05　ここまで */
/* mv2nd-tpl06　ここから */
@media (max-width: 767px) {
  .mv2nd-tpl06,
  .mv2nd-tpl06_inner {
    height: 120px;
    border-radius: 0 0 30px 30px;
  }

  .mv2nd-tpl06_inner h1 {
    right: 12px;
    top: 12px;
    font-size: 10px;
  }

  .mv2nd-tpl06_inner_title {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .mv2nd-tpl06,
  .mv2nd-tpl06_inner {
    height: 180px;
    border-radius: 0 0 45px 45px;
  }

  .mv2nd-tpl06_inner h1 {
    right: 24px;
    top: 24zpx;
    font-size: 12px;
  }

  .mv2nd-tpl06_inner_title {
    font-size: 2.05rem;
  }
}
@media (min-width: 992px) {
  .mv2nd-tpl06,
  .mv2nd-tpl06_inner {
    height: 240px;
    border-radius: 0 0 60px 60px;
  }

  .mv2nd-tpl06_inner h1 {
    right: 30px;
    top: 30px;
    font-size: 12px;
  }

  .mv2nd-tpl06_inner_title {
    font-size: 2.777vw;
  }
}
.mv2nd-tpl06-bg {
  position: relative;
  width: 100%;
  height: 360px;
}

.mv2nd-tpl06 {
  width: 100%;
}

.mv2nd-tpl06_inner {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.mv2nd-tpl06_inner h1 {
  position: absolute;
  color: #fff;
}

.mv2nd-tpl06_inner_title {
  color: #fff;
}

.mv2nd-tpl06 {
  background: linear-gradient(270deg, #48c6ef, #6f86d6);
  background-size: 400% 400%;
  -webkit-animation: AnimationName 30s ease infinite;
  -moz-animation: AnimationName 30s ease infinite;
  animation: AnimationName 30s ease infinite;
}

@-webkit-keyframes AnimationName {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
@-moz-keyframes AnimationName {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
@keyframes AnimationName {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
.mv2nd-tpl06-layer {
  position: relative;
  width: 100%;
  height: auto;
  background: #fff;
  z-index: 1;
}

/* mv2nd-tpl06　ここまで */
/* dive-news　ここから */
.dive-news {
  width: 90%;
  margin-right: auto;
  margin-left: auto;
}

.dive-news li {
  margin-bottom: 1em;
}

.dive-news li:last-child {
  margin-bottom: 0;
}

.dive-news li a {
  display: block;
  width: 100%;
  padding: 1.2em;
  background-image: linear-gradient(120deg, #fdfbfb 0%, #ebedee 100%);
  color: #231815;
  border-radius: 1em;
}

.dive-news_date {
  display: block;
  font-size: .75em;
  color: #cbd3da;
  font-weight: bold;
  margin-bottom: 12px;
}

.dive-news_title {
  display: block;
  width: 100%;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  font-weight: bold;
}

.dive-news li a:hover .dive-news_title {
  color: #e60011;
}

.dive-news_category {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: 2em;
  border: 1px solid #e60011;
  color: #e60011;
  font-size: .75rem;
  border-radius: 1em;
  padding: 0 1em;
  margin-top: 12px;
}

@media (max-width: 991px) {
  .dive-news_date {
    margin-bottom: 6px;
  }

  .dive-news_category {
    margin-top: 6px;
  }
}
@media (min-width: 992px) {
  .dive-news {
    width: 900px;
    margin-right: auto;
    margin-left: auto;
  }
}
/* dive-news　ここまで */
/* hero-news　ここから */
.hero-news {
  width: 90%;
  margin-right: auto;
  margin-left: auto;
}

.hero-news li {
  border-bottom: 1px solid #231815;
}
.hero-news li:first-child {
  border-top: 1px solid #231815;
}

a.hero-news_section {
  display: flex;
  flex-wrap: wrap;
  background: #fff;
  transition: 1s;
  padding: 2em 1em;
}

a:hover.hero-news_section {
  background: #e9edf0;
  transition: 1s;
}

.hero-news_section_category span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: 2em;
  border-radius: 1em;
  padding: 0  1em;
  border: 1px solid #231815;
}

.hero-news_section_title {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

@media (max-width: 991px) {
  .hero-news_section_category {
    width: 50%;
  }

  .hero-news_section_category span {
    font-size: .75rem;
  }

  .hero-news_section_date {
    width: 50%;
    text-align: right;
    margin-left: auto;
    font-size: .75rem;
  }

  .hero-news_section_title {
    display: block;
    width: 100%;
    margin-top: 1em;
  }
}
@media (min-width: 992px) {
  .hero-news {
    width: 900px;
  }

  .hero-news_section_category {
    display: block;
    width: 20%;
    order: 1;
  }

  .hero-news_section_category span {
    font-size: .875rem;
  }

  .hero-news_section_date {
    display: block;
    width: 20%;
    text-align: right;
    font-size: .875rem;
    order: 3;
  }

  .hero-news_section_title {
    display: block;
    width: 60%;
    order: 2;
  }
}
/* hero-news　ここまで */
/* r-banner-wrap　ここから */
.r-banner-wrap_inner_subtitle {
  text-transform: uppercase;
  font-size: .75rem;
  font-weight: bold;
  margin-bottom: 1rem;
}

.r-banner-wrap_inner_title {
  margin-bottom: 1rem;
}

@media (max-width: 991px) {
  .r-banner-wrap {
    display: block;
    width: 90%;
    margin-right: auto;
    margin-left: auto;
    background: #fff;
    box-shadow: 0 0 18px #ccc;
    border-radius: 18px;
    overflow: hidden;
  }

  .r-banner-wrap_img {
    width: 100%;
  }

  .r-banner-wrap_inner {
    width: 100%;
    padding: 1rem;
  }

  .r-banner-wrap_inner_btn {
    text-align: center;
    margin-top: 1rem;
  }
}
@media (min-width: 992px) {
  .r-banner-wrap {
    display: flex;
    align-items: center;
    width: 90%;
    margin-right: auto;
    margin-left: auto;
    background: #fff;
    box-shadow: 0 0 18px #ccc;
    border-radius: 18px;
    overflow: hidden;
  }

  .r-banner-wrap_img {
    width: 50%;
  }

  .r-banner-wrap_img img {
    width: 100%;
    height: auto;
  }

  .r-banner-wrap_inner {
    width: 50%;
    padding: 0 4.2rem;
  }

  .r-banner-wrap_inner_btn {
    margin-top: 2rem;
  }
}
/* r-banner-wrap　ここまで */
/* pagetopボタン　ここから */
@media (min-width: 768px) {
  .pageTop-btn {
    position: fixed;
    display: block;
    right: 30px;
    bottom: 30px !important;
    z-index: 2;
    transition: 1s;
    opacity: 0;
    visibility: hidden;
  }

  .pageTop-btn a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 90px;
    height: 90px;
    background: #e60011;
    color: #fff;
    text-align: center;
    line-height: 1em;
    border-radius: 45px;
  }

  .pageTop-btn a:hover {
    color: #fff;
  }

  .pageTop-btn-active {
    opacity: 1;
    visibility: visible;
  }
}
@media (max-width: 767px) {
  .pageTop-btn {
    position: fixed;
    display: block;
    right: 12px;
    bottom: 12px !important;
    z-index: 100;
    transition: 1s;
    opacity: 0;
    visibility: visible;
  }

  .pageTop-btn a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    background: #e60011;
    color: #fff;
    text-align: center;
    line-height: 1em;
    border-radius: 30px;
  }

  .pageTop-btn a:hover {
    color: #fff;
  }

  .pageTop-btn-active {
    opacity: 1;
    visibility: visible;
  }
}
/* pagetopボタン　ここまで */
/* policy-bg　ここから */
@media (max-width: 991px) {
  .policy-bg {
    width: 100%;
    padding: 24px;
  }
}
@media (min-width: 992px) {
  .policy-bg {
    width: 70vw;
    padding: 36px;
  }
}
.policy-bg {
  height: 30vh;
  margin-right: auto;
  margin-left: auto;
  overflow-y: scroll;
  border: 1px solid #cbd3da;
  border-radius: 6px;
}

/* policy-bg　ここまで */
/*EV カルーセル　ここから*/
.ev-thumbnail li {
  transition: .2s;
  padding: 0 1.25vw;
  margin-bottom: 20px;
}

@media (max-width: 767px) {
  .ev-thumbnail li {
    padding: 0 6px;
  }
}
.ev-thumbnail li a:hover {
  display: block;
  box-shadow: 0 0 18px rgba(0, 0, 0, 0.1) !important;
  transition: .2s;
}

.ev-thumbnail-img img {
  transform: scale(0.8);
  opacity: .6;
  transition: transform .3s;
}

.ev-thumbnail-img.slick-center img {
  opacity: 1;
  transform: scale(1);
}

/*EV カルーセル　ここまで*/
/* header-tpl09　ここから */
@media (max-width: 991px) {
  .header-tpl09 {
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    padding: 0;
    background: #fff;
    z-index: 1;
  }

  .header-tpl09_inner {
    display: flex;
    align-items: center;
    height: 80px;
    padding-left: 10px;
  }

  .header-tpl09_inner_logo img {
    width: auto;
    height: 50px;
  }

  .header-tpl09_inner_navi {
    display: none;
  }

  .header-tpl09_mv_wrap {
    padding: 0 0 6.4vw 0;
  }

  .header-tpl09_mv {
    position: relative;
    width: 100%;
    height: calc( 99vh - 104px );
    background: url("../img/top-mv04.jpg") no-repeat center center;
    background-size: cover;
  }

  .header-tpl09_mv_inner {
    position: absolute;
    width: 70%;
    height: auto;
    bottom: 0;
    left: 0;
    padding: 6.4vw;
    border-radius: 0 40px 0 0;
    background: #fff;
  }

  .header-tpl09_mv_inner::before {
    display: block;
    content: "";
    position: absolute;
    top: -40px;
    left: 0;
    width: 40px;
    height: 40px;
    background: url("../img/radius80-l.svg") no-repeat center;
    background-size: cover;
  }

  .header-tpl09_mv_inner::after {
    display: block;
    content: "";
    position: absolute;
    bottom: 0;
    right: -40px;
    width: 40px;
    height: 40px;
    background: url("../img/radius80-l.svg") no-repeat center;
    background-size: cover;
  }

  .header-tpl09_mv_inner_title {
    font-size: 5.6vw;
    font-weight: bold;
  }
}
@media (max-width: 320px) {
  .header-tpl09_inner_logo img {
    width: auto;
    height: 40px;
  }
}
@media (min-width: 992px) {
  .header-tpl09 {
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    padding: 0 5.55vw;
    background: #fff;
    z-index: 1;
  }

  .header-tpl09_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.694vw 0;
  }

  .header-tpl09_inner_logo img {
    width: auto;
    height: 4.166vw;
  }

  .header-tpl09_inner_navi {
    display: flex;
    align-items: center;
    font-size: 1.25vw;
  }

  .header-tpl09_inner_navi li:not(:last-child) {
    margin-right: 20px;
  }

  .header-tpl09_inner_navi li > a {
    font-weight: bold;
  }

  .header-tpl09_inner_navi li > a:hover {
    color: #e60011;
  }

  a.header-tpl09_inner_btn {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 0;
    height: 2vw;
    border-radius: 1vw;
    background: #e60011;
    color: #fff;
    margin-bottom: 0.416vw;
  }

  a.header-tpl09_inner_btn img {
    width: auto;
    height: 1.458vw;
    padding-right: 0.416vw;
  }

  a:hover.header-tpl09_inner_btn {
    color: #fff;
    background: #ff3443;
  }

  .header-tpl09_inner_navi_tel {
    display: flex;
    align-items: center;
    font-size: 1.666vw;
    font-weight: bold;
  }

  .header-tpl09_inner_navi_tel img {
    width: auto;
    height: 1.458vw;
  }

  .header-tpl09_mv_wrap {
    padding: 0 0 4.166vw;
    margin-top: 5.555vw;
  }

  .header-tpl09_mv {
    position: relative;
    width: 100%;
    width: calc( 100vw - 8.33vw );
    height: calc( 100vh - 9.722vw );
    margin-right: auto;
    margin-left: auto;
    background: url("../img/top-mv04.jpg") no-repeat center center;
    background-size: cover;
    border-radius: 0 0 5.55vw 5.55vw;
  }

  .header-tpl09_mv_inner {
    position: absolute;
    width: 50%;
    height: auto;
    bottom: 0;
    left: 0;
    padding: 5.55vw 5.55vw 4.166vw;
    border-radius: 0 5.55vw 0 0;
    background: #fff;
  }

  .header-tpl09_mv_inner::before {
    display: block;
    content: "";
    position: absolute;
    top: -5.555vw;
    left: 0;
    width: 5.555vw;
    height: 5.555vw;
    background: url("../img/radius80-l.svg") no-repeat center;
    background-size: contain;
  }

  .header-tpl09_mv_inner::after {
    display: block;
    content: "";
    position: absolute;
    bottom: 0;
    right: -5.555vw;
    width: 5.555vw;
    height: 5.555vw;
    background: url("../img/radius80-l.svg") no-repeat center;
    background-size: contain;
  }

  .header-tpl09_mv_inner_title {
    font-size: 3.33vw;
    font-weight: bold;
  }
}
/* header-tpl09　ここまで */
/* header高さ　関数　ここから */
@media (max-width: 991px) {
  :root {
    --header-height: 60px;
  }

  .header-sample {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
    height: var(--header-height);
    background: #000;
    color: #fff;
  }

  #linklink {
    scroll-margin-top: 60px;
  }
}
@media (min-width: 992px) {
  :root {
    --header-height: 80px;
  }

  .header-sample {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
    height: var(--header-height);
    background: #000;
    color: #fff;
  }

  #linklink {
    scroll-margin-top: 80px;
  }
}
/* header高さ　関数　ここまで */
/* 画像背景の台形シェイプ　ここから */
.trapezoid-background {
  position: relative;
}
.trapezoid-background::before {
  content: "";
  position: absolute;
  width: 90%;
  height: 100%;
  top: 0;
  right: 0;
  clip-path: polygon(30% 0%, 100% 0%, 100% 100%, 0% 100%);
  background-color: #e9edf0;
  z-index: -1;
}

.trapezoid-list ul:nth-child(even) li.trapezoid-background {
  position: relative;
}
.trapezoid-list ul:nth-child(even) li.trapezoid-background::before {
  content: "";
  position: absolute;
  width: 90%;
  height: 100%;
  top: 0;
  left: 0;
  clip-path: polygon(0% 0%, 70% 0, 100% 100%, 0% 100%);
  background-color: #e9edf0;
  z-index: -1;
}

.trapezoid-list ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.trapezoid-list ul:not(:last-child) {
  margin-bottom: 72px;
}

.trapezoid-list ul li {
  list-style: none;
  width: 46%;
}

.trapezoid-list ul li img {
  width: 86%;
  margin: 16% auto 16% 0;
}

.trapezoid-list ul:nth-child(even) li img {
  width: 86%;
  margin: 16% 0 16% auto;
}

.trapezoid-title {
  line-height: 1.0;
  margin-bottom: 40px;
}
.trapezoid-title::after {
  content: "";
  display: inline-block;
  width: 60px;
  height: 4px;
  background-color: #e60011;
}
.trapezoid-title .trapezoid-title-en {
  display: block;
  margin-bottom: 6px;
  font-size: 3.2rem;
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  text-transform: uppercase;
}
.trapezoid-title .trapezoid-title-ja {
  margin-bottom: 16px;
  font-size: 1.1rem;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 768px) {
  .trapezoid-list ul {
    flex-direction: column;
  }

  .trapezoid-list ul:not(:last-child) {
    margin-bottom: 40px;
  }

  .trapezoid-list ul li {
    width: 100%;
  }

  .trapezoid-list ul li:not(:last-child) {
    margin-bottom: 40px;
  }

  .trapezoid-list ul li img {
    margin: 16% auto;
  }

  .trapezoid-list ul:nth-child(even) li img {
    margin: 16% auto;
  }
}
@media screen and (min-width: 769px) {
  .trapezoid-list ul:nth-child(odd) li:first-child {
    order: 1;
  }

  .trapezoid-list ul:nth-child(odd) li:last-child {
    order: 0;
  }
}
/* 画像背景の台形シェイプ　ここまで */
/* 連番表示リスト　ここから */
.counter-list {
  position: relative;
  display: flex;
  justify-content: space-between;
  width: 100%;
}

li.counter-item {
  list-style: none;
  flex: 0 1 30%;
}

.counter-item {
  counter-increment: serial-number;
  position: relative;
  padding-top: 70px;
}

.counter-item::before {
  content: counter(serial-number,decimal-leading-zero);
  position: absolute;
  width: 100%;
  height: auto;
  top: 0;
  left: 0;
  font-size: 8.6rem;
  font-weight: bold;
  line-height: 1.0;
  color: #e9edf0;
  z-index: -1;
}

.counter-item:nth-child(1)::after,
.counter-item:nth-child(2)::after {
  content: "";
  position: absolute;
  width: 1px;
  height: 100%;
  top: 0;
  left: 108.33333%;
  background-color: #cbd3da;
}

@media screen and (max-width: 768px) {
  .counter-list {
    flex-direction: column;
  }

  .counter-item:not(:last-child) {
    margin-bottom: 40px;
  }

  .counter-item:nth-child(1)::after,
  .counter-item:nth-child(2)::after {
    width: 100%;
    height: 1px;
    top: calc(100% + 20px);
    left: 0;
  }
}
.counter-item_heading {
  margin-bottom: 24px;
}

.counter-item_heading .en {
  display: block;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.0;
  padding-bottom: 4px;
}

.counter-item_heading .ja {
  font-size: 1.2rem;
  line-height: 1.0;
  letter-spacing: 0.1em;
}

.counter-item_img {
  margin-bottom: 24px;
}

.counter-item_ttl {
  font-size: 1.3rem;
  line-height: 1.3;
  font-weight: bold;
  margin-bottom: 12px;
}

/* 連番表示リスト　ここまで */
/* よくある質問　ここから */
/* よくある質問　ここまで */
/* instagramバナー　ここから */
@media (min-width: 992px) {
  .instagram-btn-bg {
    display: flex;
    justify-content: center;
  }

  .instagram-btn-bg li {
    width: 70%;
  }

  .instagram-btn {
    display: flex;
    justify-content: center;
    width: 100%;
    height: 140px;
    background: linear-gradient(to right, rgba(247, 207, 0, 0.7), rgba(246, 37, 2, 0.7) 45%, rgba(182, 47, 82, 0.7) 75%, rgba(113, 58, 166, 0.7));
    border-radius: 70px;
    color: #fff;
  }

  a:hover.instagram-btn {
    color: #fff;
    opacity: .7;
  }

  .instagram-btn-inner {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .instagram-btn-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #fff;
    margin-right: 10px;
  }

  .instagram-btn-icon img {
    width: 36px;
    height: 36px;
  }

  .instagram-btn-inner-text {
    line-height: 1em;
  }

  .instagram-btn-inner-title {
    font-size: 3rem;
    line-height: 1em;
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
  }
}
@media (max-width: 991px) {
  .instagram-btn-bg {
    display: flex;
    justify-content: center;
  }

  .instagram-btn-bg li {
    width: 100%;
  }

  .instagram-btn {
    display: flex;
    justify-content: center;
    width: 100%;
    height: 90px;
    background: linear-gradient(to right, rgba(247, 207, 0, 0.7), rgba(246, 37, 2, 0.7) 45%, rgba(182, 47, 82, 0.7) 75%, rgba(113, 58, 166, 0.7));
    border-radius: 45px;
    color: #fff;
  }

  a:hover.instagram-btn {
    color: #fff;
    opacity: .7;
  }

  .instagram-btn-inner {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .instagram-btn-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    margin-right: 7px;
  }

  .instagram-btn-icon img {
    width: 24px;
    height: 24px;
  }

  .instagram-btn-inner-text {
    font-size: .75rem;
    line-height: 1em;
  }

  .instagram-btn-inner-title {
    font-size: 2rem;
    line-height: 1em;
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
  }
}
/* instagramバナー　ここまで */
/* kwi-box ここから */
@media (min-width: 992px) {
  .kwi-box {
    display: flex;
    align-items: center;
  }

  .kwi-box_img {
    width: 40vw;
    height: auto;
    border-radius: 0 60px 60px 0;
    overflow: hidden;
  }

  .kwi-box_contents {
    width: 40vw;
    margin-left: 10vw;
  }

  .kwi-box:nth-child(even) .kwi-box_img {
    width: 40vw;
    height: auto;
    border-radius: 60px 0 0 60px;
    overflow: hidden;
    order: 1;
  }

  .kwi-box:nth-child(even) .kwi-box_contents {
    width: 40vw;
    margin-right: 10vw;
  }
}
@media (max-width: 991px) {
  .kwi-box {
    display: flex;
    flex-direction: column;
    margin-bottom: 48px;
  }

  .kwi-box:last-child {
    margin-bottom: 0;
  }

  .kwi-box_img {
    width: 90vw;
    height: auto;
    border-radius: 0 48px 48px 0;
    overflow: hidden;
    margin-bottom: 24px;
  }

  .kwi-box_contents {
    padding: 0 15px;
  }

  .kwi-box:nth-child(even) .kwi-box_img {
    width: 90vw;
    height: auto;
    border-radius: 48px 0 0 48px;
    overflow: hidden;
    margin-left: auto;
    margin-bottom: 24px;
  }
}
/* kwi-box ここまで */
/* kwi-box02 ここから */
@media (min-width: 992px) {
  .kwi-box02 {
    display: flex;
    align-items: center;
  }

  .kwi-box02_img {
    width: 40vw;
    height: auto;
    border-radius: 0 60px 60px 0;
    overflow: hidden;
  }

  .kwi-box02_contents {
    width: 40vw;
    margin-left: 10vw;
  }

  .kwi-box02:nth-child(odd) .kwi-box02_img {
    width: 40vw;
    height: auto;
    border-radius: 60px 0 0 60px;
    overflow: hidden;
    order: 1;
  }

  .kwi-box02:nth-child(odd) .kwi-box02_contents {
    width: 40vw;
    margin-right: 10vw;
  }
}
@media (max-width: 991px) {
  .kwi-box02 {
    display: flex;
    flex-direction: column;
  }

  .kwi-box02:last-child {
    margin-bottom: 0;
  }

  .kwi-box02_img {
    width: 90vw;
    height: auto;
    border-radius: 0 48px 48px 0;
    overflow: hidden;
    margin-bottom: 36px;
  }

  .kwi-box02_contents {
    padding: 0 15px;
  }

  .kwi-box02:nth-child(even) .kwi-box02_img {
    width: 90vw;
    height: auto;
    border-radius: 48px 0 0 48px;
    overflow: hidden;
    margin-left: auto;
    margin-bottom: 36px;
  }
}
/* kwi-box ここまで */
/* header-tpl10 ここから */
@media (min-width: 992px) {
  .header-tpl10 {
    width: 100%;
    height: 120px;
    position: fixed;
    top: 0;
    left: 0;
    padding: 10px;
    z-index: 1;
  }

  .header-tpl10 a {
    font-weight: bold;
  }

  .header-tpl10_inner {
    display: flex;
    align-items: center;
    width: 100%;
    height: 100px;
  }

  .header-tpl10 a:hover {
    color: #e60011;
  }

  .header-tpl10_inner_right {
    display: flex;
    align-items: center;
    height: 80px;
    padding: 10px 1.25vw;
    margin-left: auto;
    background: #fff;
    border-radius: 1.25vw;
  }

  .header-tpl10_inner_navi {
    display: flex;
    align-items: center;
  }

  .header-tpl10_inner_navi li {
    margin-right: 1.25vw;
  }

  .header-tpl10_inner_navi li a {
    font-size: clamp(14px, 1.25vw, 20px);
  }

  .header-tpl10_inner_navi_tel {
    display: flex;
    align-items: center;
    font-size: clamp(18px, 1.4583vw, 24px);
  }

  .header-tpl10_inner_navi_tel img {
    display: block;
    width: auto;
    height: 20px;
    margin-right: 6px;
  }

  .header-tpl010_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 140px;
    right: calc( 10px + 1.25vw );
    width: 90px;
    height: 90px;
    border-radius: 45px;
    background: #e60011;
    color: #fff;
  }

  a:hover.header-tpl010_btn {
    background: #ff3443;
  }

  .header-tpl010_btn img {
    display: block;
    width: auto;
    height: 24px;
    margin: 0 auto;
  }

  .header-tpl010_btn_title {
    font-size: 12px;
    line-height: 1em;
  }

  a.header-tpl010_btn {
    color: #fff;
    font-weight: normal;
  }

  a:hover.header-tpl010_btn {
    color: #fff;
  }
}
@media (max-width: 991px) {
  .header-tpl10 {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #e9edf0;
    padding: 12px;
  }

  .header-tpl10_inner {
    display: flex;
    align-items: center;
    height: 56px;
  }

  .header-tpl10_inner_logo img {
    width: auto;
    height: 36px;
  }

  .header-tpl10_inner_right {
    display: none;
  }

  .header-tpl010_btn {
    display: none;
  }
}
@media (max-width: 320px) {
  .header-tpl10_inner_logo img {
    width: auto;
    height: 22px;
  }
}
/* header-tpl10 メイン画像ここから */
.header-tpl10_mv_slide_image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  animation: header-tpl10-slider 24s linear infinite;
}

.header-tpl10_mv_slide_image:nth-child(1) {
  background-image: url("../img/top-mv01.jpg");
  animation-delay: -2s;
}

.header-tpl10_mv_slide_image:nth-child(2) {
  background-image: url("../img/top-mv02.jpg");
  animation-delay: 6s;
}

.header-tpl10_mv_slide_image:nth-child(3) {
  background-image: url("../img/top-mv03.jpg");
  animation-delay: 14s;
}

.header-tpl10_mv_slide_image:nth-child(4) {
  background-image: url("../img/top-mv04.jpg");
  animation-delay: 22s;
}

.header-tpl10_mv_slide_image:nth-child(5) {
  background-image: url("../img/top-mv05.jpg");
  animation-delay: 30s;
}

@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-tpl10_mv_ttl {
    padding-left: 24px;
  }
}
@media (max-width: 991px) {
  .header-tpl10_mv_slide {
    position: relative;
    width: 100%;
    height: calc( 100svh - 80px );
    overflow: hidden;
    margin-top: 80px;
  }

  .header-tpl10_mv_slide_image_ttl {
    display: flex;
    align-items: center;
    height: calc( 100svh - 80px );
    padding-left: 12px;
    color: #fff;
  }
}
@media (min-width: 992px) {
  .header-tpl10_mv_slide {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
  }

  .header-tpl10_mv_slide_image_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    width: 50vw;
    color: #fff;
  }
}
@keyframes header-tpl10-slider {
  0% {
    opacity: 0;
  }
  4.16% {
    opacity: 1;
  }
  33.33% {
    opacity: 1;
  }
  41.66% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@media (min-width: 992px) {
  .header-tpl10_mv {
    width: auto;
    height: 100vh;
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
  }

  .header-tpl10_mv_ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    width: 50vw;
    color: #fff;
  }

  .header-tpl10_mv_ttl_h2 {
    font-size: clamp(36px, 3.3333vw, 54px);
  }

  .header-tpl10_mv_ttl_p {
    font-size: clamp(14px, 1.25vw, 21px);
  }
}
@media (max-width: 991px) {
  .header-tpl10_mv {
    width: auto;
    height: calc( 100svh - 80px );
    background: url("../img/top-mv.jpg") no-repeat center center;
    background-size: cover;
    margin-top: 80px;
  }

  .header-tpl10_mv_ttl {
    display: flex;
    align-items: center;
    height: calc( 100svh - 80px );
    padding-left: 12px;
    color: #fff;
  }

  .header-tpl10_mv_ttl_h2 {
    font-size: clamp(18px, 6.4vw, 30px);
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .header-tpl10_mv_ttl {
    padding-left: 24px;
  }
}
/* header-tpl10 メイン画像ここまで */
/* header-tpl10 ここまで */
/* サムネイルクリックで切り替わるギャラリー　ここから */
.case--wrap {
  width: 66.6vw;
  margin-right: auto;
  margin-left: auto;
}

.mainImg {
  display: flex;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1.618 / 1;
  /* 横:縦 = 黄金比 */
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 10px;
}

.mainImg img {
  width: 100%;
  height: auto;
}

.subImg {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

.subImg li {
  width: calc( ( 100% - 20px ) / 3 );
}

.subImg li:not(:last-child) {
  margin-right: 10px;
}

.subImg li img {
  width: 100%;
  height: auto;
}

.subImg li img:hover {
  cursor: pointer;
}

@media (max-width: 991px) {
  .case--wrap {
    width: 100%;
  }

  .mainImg {
    width: 100%;
  }

  .subImg {
    width: 100%;
  }
}
/* サムネイルクリックで切り替わるギャラリー　ここまで */
/* カテゴリーリンクボタン　ここから */
.product--btn--bg {
  display: flex;
  justify-content: center;
}

.product--btn:not(:last-child) {
  margin-right: 1em;
}

a.product--btn {
  display: inline-flex;
  padding: 0.5em 1em;
  color: #cc0331;
  border: 2px solid #cc0331;
  border-radius: 2em;
}

a:hover.product--btn {
  background: #cc0331;
  color: #fff;
}

/* カテゴリーリンクボタン　ここまで */
/* 導入実績アコーディオン　ここから */
.achievement-wrap {
  width: 100%;
  text-align: center;
}

.achievement-toggle {
  display: none;
}

.achievement-Label {
  position: relative;
  height: auto;
  font-weight: bold;
}

.achievement-Label::before {
  content: "";
  width: 10px;
  height: 10px;
  border-top: 2px solid #e60011;
  border-right: 2px solid #e60011;
  -webkit-transform: rotate(45deg);
  position: absolute;
  top: calc( 50% - 5px );
  right: -18px;
  transform: rotate(135deg);
}

.achievement-toggle + .achievement-Label + .achievement-content {
  height: 0;
  transition: all .5s;
}

.achievement-Label,
.achievement-content {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
  transition: all 0.5s;
}

.achievement-content {
  position: relative;
  height: 0;
  padding: 0;
  overflow: hidden;
}

.achievement-toggle:checked + .achievement-Label + .achievement-content {
  position: relative;
  height: auto;
  padding: 30px 0 0 0;
  transition: all .5s;
}

.achievement-toggle:checked + .achievement-Label::before {
  transform: rotate(-45deg) !important;
}

/* 導入実績アコーディオン　ここまで */
@media (min-width: 992px) {
  .contact-wrap {
    padding: 50px 0 120px;
  }

  .contact-read {
    text-align: center;
    line-height: 2.14em;
    margin-bottom: 70px;
  }

  .contact-read02 {
    text-align: center;
    line-height: 1em;
    margin-bottom: 40px;
  }

  .contact-section {
    display: flex;
    align-items: center;
    max-width: 1000px;
    height: 300px;
    margin-right: auto;
    margin-left: auto;
    border: 2px solid #e8ecf4;
    border-radius: 5px;
    margin-bottom: 142px;
  }

  .contact-section_phonenumber {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 57%;
  }

  .contact-section_phonenumber::after {
    display: block;
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    width: 1px;
    height: 150px;
    background: #e8ecf4;
  }

  .contact-section_phonenumber_title {
    font-size: 24px;
    line-height: 1em;
    text-align: center;
    margin-bottom: 20px;
  }

  .contact-section_phonenumber_tel {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 16px;
  }

  .contact-section_phonenumber_tel_icon {
    margin-right: 16px;
  }

  .contact-section_phonenumber_tel_icon img {
    width: 44px;
    height: 44px;
  }

  .contact-section_phonenumber_tel_number {
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 50px;
    line-height: 1em;
  }

  .contact-section_phonenumber_text {
    text-align: center;
  }

  .contact-section_line {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 53%;
  }

  a.contact-section_line_btn_line {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 300px;
    height: 65px;
    color: #fff;
    background: #127f42;
    border-radius: 3px;
    padding-right: 50px;
    margin-bottom: 10px;
  }

  a.contact-section_line_btn_line::after {
    display: block;
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 30px;
    background: url("../img/icon_arrow_right_line_white.svg") no-repeat center;
    width: 20px;
    height: 15px;
    background-size: cover;
    transition: .5s;
  }

  a:hover.contact-section_line_btn_line::after {
    right: 23px;
    transition: .5s;
  }

  a:hover.contact-section_line_btn_line {
    color: #fff;
  }

  .contact-section_line_btn_icon_line {
    margin-right: 17px;
  }

  .contact-section_line_btn_icon_line img {
    width: 31px;
    height: auto;
  }

  .contact-section_line_btn_text {
    font-size: 18px;
    line-height: 1em;
    text-align: center;
  }

  .form-privacy-check {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 60px;
  }
}
@media (max-width: 991px) {
  .contact-wrap {
    padding: 48px 0;
  }

  .contact-read {
    text-align: center;
    line-height: 2.14em;
    margin-bottom: 24px;
  }

  .contact-read02 {
    margin-bottom: 24px;
  }

  .contact-section {
    display: block;
    width: 100%;
    height: auto;
    border: 2px solid #e8ecf4;
    border-radius: 5px;
    margin-bottom: 48px;
  }

  .contact-section_phonenumber {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 36px 0;
  }

  .contact-section_phonenumber::after {
    display: block;
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 50%;
    height: 1px;
    background: #e8ecf4;
  }

  .contact-section_phonenumber_title {
    font-size: 18px;
    line-height: 1em;
    text-align: center;
    margin-bottom: 18px;
  }

  .contact-section_phonenumber_tel {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 12px;
  }

  .contact-section_phonenumber_tel_icon {
    margin-right: 6px;
  }

  .contact-section_phonenumber_tel_icon img {
    width: 30px;
    height: 30px;
  }

  .contact-section_phonenumber_tel_number {
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 30px;
    line-height: 1em;
  }

  .contact-section_phonenumber_text {
    text-align: center;
    font-size: 12px;
  }

  .contact-section_line {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 36px 0;
  }

  a.contact-section_line_btn_line {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 280px;
    height: 65px;
    color: #fff;
    background: #127f42;
    border-radius: 3px;
    padding-right: 50px;
    margin-bottom: 10px;
  }

  a.contact-section_line_btn_line::after {
    display: block;
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 30px;
    background: url("../img/icon_arrow_right_line_white.svg") no-repeat center;
    width: 20px;
    height: 15px;
    background-size: cover;
    transition: .5s;
  }

  a:hover.contact-section_line_btn_line::after {
    right: 23px;
    transition: .5s;
  }

  .contact-section_line_btn_icon_line {
    margin-right: 17px;
  }

  .contact-section_line_btn_icon_line img {
    width: 31px;
    height: auto;
  }

  .contact-section_line_btn_text {
    font-size: 18px;
    line-height: 1em;
    text-align: center;
  }

  .form-privacy-check {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 60px;
  }
}
.contact-read02 a {
  color: #e60011;
  text-decoration: underline;
}

.contact-read02 a:hover {
  text-decoration: none;
}

/*　top-title-en　ここから　*/
@media (min-width: 992px) {
  .top-title-en {
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 69px;
    line-height: 1em;
    color: #e60011;
    margin-bottom: 30px;
  }

  .top-title-en_sub {
    margin-bottom: 45px;
  }

  .sec-title-en_sub {
    margin-bottom: 100px;
  }
}
@media (max-width: 991px) {
  .top-title-en {
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 36px;
    line-height: 1em;
    color: #e60011;
    margin-bottom: 15px;
  }

  .top-title-en_sub {
    margin-bottom: 30px;
  }

  .sec-title-en_sub {
    margin-bottom: 50px;
  }
}
.sec-title-en_sub {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.sec-title-en_sub:before,
.sec-title-en_sub:after {
  content: '';
  width: 20px;
  height: 1px;
  background-color: #e60011;
}

.sec-title-en_sub:before {
  margin-right: 20px;
}

.sec-title-en_sub:after {
  margin-left: 20px;
}

.title-center {
  text-align: center;
}

/*　top-title-en　ここまで　*/
/* contact-section-wrap ここから */
@media (min-width: 992px) {
  .contact-section-wrap {
    padding: 132px 0;
  }

  .contact-section_tel {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 22px;
  }

  .contact-section_tel_icon {
    margin-right: 20px;
  }

  .contact-section_tel_icon img {
    width: 55px;
    height: 55px;
  }

  .contact-section_tel_number {
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 65px;
    line-height: 1em;
  }

  .contact-section_text {
    text-align: center;
    margin-bottom: 50px;
  }

  .contact-section_btn {
    display: flex;
    justify-content: center;
  }

  a.contact-section_btn_mail {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 430px;
    height: 100px;
    color: #fff;
    background: #e60011;
    border-radius: 3px;
    margin-right: 60px;
    padding-right: 50px;
  }

  a.contact-section_btn_line {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 430px;
    height: 100px;
    color: #fff;
    background: #127f42;
    border-radius: 3px;
    padding-right: 50px;
  }

  a:hover.contact-section_btn_mail,
  a:hover.contact-section_btn_line {
    color: #fff;
  }

  a.contact-section_btn_mail::after,
  a.contact-section_btn_line::after {
    display: block;
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 30px;
    background: url("../img/icon_arrow_right_line_white.svg") no-repeat center;
    width: 20px;
    height: 15px;
    background-size: cover;
    transition: .5s;
  }

  a:hover.contact-section_btn_mail::after,
  a:hover.contact-section_btn_line::after {
    right: 23px;
    transition: .5s;
  }

  .contact-section_btn_icon_contact {
    margin-right: 24px;
  }

  .contact-section_btn_icon_contact img {
    width: 30px;
    height: auto;
  }

  .contact-section_btn_icon_line {
    margin-right: 24px;
  }

  .contact-section_btn_icon_line img {
    width: 35px;
    height: auto;
  }

  .contact-section_btn_text {
    font-size: 1.375rem;
    line-height: 1.22em;
    text-align: center;
  }

  .contact-section_btn_text > span {
    display: block;
    font-size: 1.25rem;
  }
}
@media (max-width: 991px) {
  .contact-section-wrap {
    padding: 48px 12px;
  }

  .contact-section_tel {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 12px;
  }

  .contact-section_tel_icon {
    margin-right: 10px;
  }

  .contact-section_tel_icon img {
    width: 36px;
    height: 36px;
  }

  .contact-section_tel_number {
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 36px;
    line-height: 1em;
  }
}
@media (max-width: 991px) and (max-width: 320px) {
  .contact-section_tel_number {
    font-size: 30px;
  }
}
@media (max-width: 991px) {
  .contact-section_text {
    text-align: center;
    margin-bottom: 24px;
  }

  .contact-section_btn {
    display: block;
  }

  a.contact-section_btn_mail {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 80px;
    color: #fff;
    background: #e60011;
    padding-right: 50px;
    margin-bottom: 12px;
  }

  a.contact-section_btn_line {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 80px;
    color: #fff;
    background: #127f42;
    padding-right: 50px;
  }

  a.contact-section_btn_mail::after,
  a.contact-section_btn_line::after {
    display: block;
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 30px;
    background: url("../img/icon_arrow_right_line_white.svg") no-repeat center;
    width: 20px;
    height: 15px;
    background-size: cover;
    transition: .5s;
  }

  a:hover.contact-section_btn_mail::after,
  a:hover.contact-section_btn_line::after {
    right: 23px;
    transition: .5s;
  }

  .contact-section_btn_icon_contact {
    margin-right: 24px;
  }

  .contact-section_btn_icon_contact img {
    width: 30px;
    height: auto;
  }

  .contact-section_btn_icon_line {
    margin-right: 24px;
  }

  .contact-section_btn_icon_line img {
    width: 35px;
    height: auto;
  }

  .contact-section_btn_text {
    font-size: 1.25rem;
    line-height: 1.22em;
    text-align: center;
  }

  .contact-section_btn_text > span {
    display: block;
    font-size: 1rem;
  }
}
/* contact-section-wrap ここまで */
@media (min-width: 992px) {
  .privacy-wrap {
    padding: 50px 0 120px;
  }

  .privacy-lead {
    line-height: 2.14em;
    margin-bottom: 72px;
  }

  .privacy-list {
    width: 100%;
  }

  .privacy-list li {
    padding: 60px 0;
    border-bottom: 1px solid #dcdcdc;
  }

  .privacy-list li:first-child {
    border-top: 1px solid #dcdcdc;
  }

  .privacy-list-title {
    font-size: 20px;
    color: #e60011;
    margin-bottom: 30px;
  }

  .privacy-list-text {
    line-height: 2.14em;
  }
}
@media (max-width: 991px) {
  .privacy-wrap {
    padding: 48px 0;
  }

  .privacy-lead {
    line-height: 2.14em;
    margin-bottom: 24px;
  }

  .privacy-list {
    width: 100%;
  }

  .privacy-list li {
    padding: 24px 0;
    border-bottom: 1px solid #dcdcdc;
  }

  .privacy-list li:first-child {
    border-top: 1px solid #dcdcdc;
  }

  .privacy-list-title {
    font-size: 16px;
    color: #e60011;
    margin-bottom: 12px;
  }

  .privacy-list-text {
    line-height: 2.14em;
  }
}
@media (min-width: 992px) {
  .individual-contents-wrap {
    padding: 140px 0 170px;
  }

  .individual-contents {
    display: flex;
    flex-wrap: wrap;
  }

  .individual-contents_img:nth-child(odd) {
    margin-right: 7.29vw;
  }

  .individual-contents_img:not(:nth-last-child(1)):not(:nth-last-child(2)) {
    margin-bottom: 7.27vw;
  }

  .individual-contents_img {
    position: relative;
    width: calc( ( 100% - 7.29vw ) / 2 );
    height: auto;
  }

  .individual-contents_img_inner {
    position: relative;
    padding: 45px;
    margin-top: -60px;
    margin-right: 45px;
    margin-left: 45px;
    background: #fff;
    z-index: 1;
  }

  .individual-contents_img_inner_title {
    font-size: min(1.35vw, 26px);
    line-height: 1em;
    margin-bottom: 1.5625vw;
  }

  .individual-contents_img_inner_text {
    line-height: 2.14em;
    margin-bottom: 2.604vw;
  }
}
@media (max-width: 991px) {
  .individual-contents-wrap {
    padding: 48px 0 48px;
  }

  .individual-contents {
    display: block;
  }

  .individual-contents_img:not(:nth-last-child(1)) {
    margin-bottom: 24px;
  }

  .individual-contents_img {
    position: relative;
    width: 100%;
    height: auto;
  }

  .individual-contents_img_inner {
    position: relative;
    padding: 24px;
    margin-top: -30px;
    margin-right: 24px;
    margin-left: 24px;
    background: #fff;
    z-index: 1;
  }

  .individual-contents_img_inner_title {
    font-size: 18px;
    line-height: 1em;
    margin-bottom: 24px;
  }

  .individual-contents_img_inner_text {
    line-height: 2.14em;
    margin-bottom: 24px;
  }
}
.individual-contents_img_inner_link-wrap {
  text-align: right;
}

a.individual-contents_img_inner_link {
  position: relative;
  display: inline-block;
  padding-right: 32px;
  line-height: 1em;
  color: #e60011;
}

a.individual-contents_img_inner_link::after {
  position: absolute;
  content: "";
  top: 3px;
  right: 0;
  background: url("../img/icon_arrow_right_line.svg") no-repeat center;
  background-size: cover;
  width: 12px;
  height: 9px;
  transition: .5s;
}

a:hover.individual-contents_img_inner_link::after {
  right: -7px;
  transition: .5s;
}

@media (min-width: 992px) {
  .news-list-wrap {
    padding: 50px 0 120px;
  }

  .news-list-contents {
    width: 100%;
    background: #fff;
  }

  .news-list-contents_list {
    margin-bottom: 80px;
  }

  .news-list-contents_list li:first-child a {
    border-top: 1px solid #dcdcdc;
  }

  .news-list-contents_list li a {
    position: relative;
    display: block;
    width: 100%;
    color: #231815;
    padding: 60px 0;
    border-bottom: 1px solid #dcdcdc;
    text-decoration: none;
  }

  .news-list-contents_list li a::after {
    display: block;
    position: absolute;
    content: "";
    top: 50%;
    right: 30px;
    transform: translateY(-50%);
    width: 52px;
    height: 52px;
    background: url("../img/icon-circle-arrow.svg") no-repeat center;
    background-size: cover;
  }

  a span.news-list-contents_list_date {
    display: block;
    color: #cbd3da;
    margin-bottom: 16px;
  }

  a span.news-list-contents_list_text {
    display: block;
    width: 90%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  a:hover span.news-list-contents_list_text {
    text-decoration: underline;
  }

  .news-list-pager {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    line-height: 2.14em;
    font-size: 1.5625rem;
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
  }

  .news-list-pager li:not(:last-child) {
    margin-right: 48px;
  }

  .news-list-pager li a {
    color: #b7b8b8;
  }

  li.news-list-pager_select a {
    color: #e60011;
  }
}
@media (max-width: 991px) {
  .news-list-wrap {
    padding: 48px 0;
  }

  .news-list-contents {
    width: 100%;
  }

  .news-list-contents_list {
    margin-bottom: 36px;
  }

  .news-list-contents_list li:first-child a {
    border-top: 1px solid #dcdcdc;
  }

  .news-list-contents_list li a {
    position: relative;
    display: block;
    width: 100%;
    color: #231815;
    padding: 24px 0;
    border-bottom: 1px solid #dcdcdc;
    text-decoration: none;
  }

  .news-list-contents_list li a::after {
    display: block;
    position: absolute;
    content: "";
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    width: 26px;
    height: 26px;
    background: url("../img/icon-circle-arrow.svg") no-repeat center;
    background-size: cover;
  }

  a span.news-list-contents_list_date {
    display: block;
    color: #cbd3da;
    margin-bottom: 12px;
  }

  a span.news-list-contents_list_text {
    display: block;
    width: 85%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  a:hover span.news-list-contents_list_text {
    text-decoration: underline;
  }

  .news-list-pager {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    line-height: 2.14em;
    font-size: 1.1rem;
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
  }

  .news-list-pager li:not(:last-child) {
    margin-right: 24px;
  }

  .news-list-pager li a {
    color: #b7b8b8;
  }

  li.news-list-pager_select a {
    color: #e60011;
  }
}
@media (min-width: 992px) {
  .column-list-navi {
    display: flex;
    align-items: stretch;
    border-top: 1px solid #dcdcdc;
    border-bottom: 1px solid #dcdcdc;
    margin-bottom: 80px;
  }

  .column-list-navi li {
    padding: 40px 0 39px 0;
    border-bottom: 1px solid #fff;
  }

  .column-list-navi li:not(:last-child) {
    margin-right: 48px;
  }

  .column-list-navi li a {
    text-decoration: none;
  }

  .column-list-navi li:hover {
    border-bottom: 1px solid #e60011;
  }

  li.column-ltst-select {
    border-bottom: 1px solid #e60011;
  }

  .top-column-list {
    display: flex;
    flex-wrap: wrap;
  }

  .top-column-list li {
    width: 28.9%;
    margin-right: 6.6%;
    margin-bottom: 60px;
  }

  .top-column-list li:nth-child(3),
  .top-column-list li:nth-child(6),
  .top-column-list li:nth-child(9) {
    margin-right: 0;
  }

  .top-column-list li:nth-last-child(1),
  .top-column-list li:nth-last-child(2),
  .top-column-list li:nth-last-child(3) {
    margin-bottom: 0;
  }

  .top-column-list_img {
    width: 100%;
    background-image: url("../img/thumbnail-img.jpg");
    /* 画像のURLを指定してください */
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    aspect-ratio: 1.474 / 1;
    margin-bottom: 24px;
    border: 1px solid #e9edf0;
    border-radius: 30px;
    overflow: hidden;
  }

  .top-column-list_datecate {
    display: flex;
    align-items: center;
    margin-bottom: 21px;
  }

  .top-column-list_datecate_date {
    color: #cbd3da;
    margin-right: 21px;
  }

  .top-column-list_datecate_cate {
    color: #e60011;
    padding: 4px 10px;
    border-radius: 20px;
    border: 1px solid #e60011;
    line-height: 1em;
    font-size: 0.874rem;
  }

  .top-column-list_text {
    display: block;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
.top-column-list li a {
  font-weight: 700;
}

.top-column-list li a:hover {
  color: #e60011;
}

@media (max-width: 991px) {
  .column-list-navi {
    width: 100%;
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    border-top: 1px solid #dcdcdc;
    border-bottom: 1px solid #dcdcdc;
    margin-bottom: 48px;
  }

  .column-list-navi li {
    padding: 24px 0 23px 0;
    border-bottom: 1px solid #fff;
  }

  .column-list-navi li:not(:last-child) {
    margin-right: 18px;
  }

  .column-list-navi li a {
    text-decoration: none;
  }

  .column-list-navi li:hover {
    border-bottom: 1px solid #e60011;
  }

  li.column-ltst-select {
    border-bottom: 1px solid #e60011;
  }

  .top-column-list {
    display: block;
    flex-wrap: wrap;
  }

  .top-column-list li {
    width: 100%;
    margin-bottom: 36px;
  }

  .top-column-list li:last-child {
    margin-bottom: 0;
  }

  .top-column-list_img {
    width: 100%;
    background-image: url("../img/thumbnail-img.jpg");
    /* 画像のURLを指定してください */
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    aspect-ratio: 1.474 / 1;
    margin-bottom: 24px;
    border: 1px solid #e9edf0;
    border-radius: 20px;
    overflow: hidden;
  }

  .top-column-list_datecate {
    display: flex;
    align-items: center;
    margin-bottom: 6px;
  }

  .top-column-list_datecate_date {
    color: #cbd3da;
    margin-right: 6px;
  }

  .top-column-list_datecate_cate {
    color: #e60011;
    padding: 4px 10px;
    border-radius: 20px;
    border: 1px solid #e60011;
    line-height: 1em;
    font-size: 0.75rem;
  }

  .top-column-list_text {
    display: block;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
/* message-wrap　ここから */
@media (min-width: 992px) {
  .message-wrap {
    padding: 50px 0 160px;
  }

  .message-container {
    display: flex;
    align-items: center;
  }

  .message-container_box_left {
    position: relative;
    width: 520px;
    height: auto;
    margin-right: 50px;
  }

  .message-container_img {
    position: relative;
  }

  .message-container_img_box {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    width: calc( 100% - 100px );
    height: 130px;
    background: #fff;
    bottom: -65px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    border-radius: 20px;
  }

  .message-container_img_box_title {
    font-size: 0.88vw;
    line-height: 1em;
    margin-bottom: 0.93vw;
  }

  .message-container_img_box_flex {
    display: flex;
    align-items: center;
  }

  .message-container_img_box_flex_jp {
    font-size: 1.56vw;
  }

  .message-container_img_box_flex_en {
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    font-size: 0.93vw;
    color: #e60011;
    margin-left: 22px;
  }

  .message-container_box_right {
    width: calc( 1280px - 570px );
  }

  .message-container_box_title {
    font-size: 38px;
    line-height: 1.578em;
    margin-bottom: 30px;
  }

  .message-container_box_text {
    line-height: 2.3em;
  }
}
@media (max-width: 991px) {
  .message-wrap {
    padding: 24px 0 48px;
  }

  .message-container {
    display: block;
  }

  .message-container_box_left {
    position: relative;
    width: 100%;
    height: auto;
    margin-bottom: 90px;
  }

  .message-container_img {
    position: relative;
  }

  .message-container_img_box {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    width: calc( 100% - 48px );
    height: 110px;
    background: #fff;
    bottom: -55px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    border-radius: 20px;
  }

  .message-container_img_box_title {
    line-height: 1em;
    margin-bottom: 12px;
  }

  .message-container_img_box_flex {
    display: flex;
    align-items: center;
  }

  .message-container_img_box_flex_jp {
    font-size: 1.2em;
  }

  .message-container_img_box_flex_en {
    font-family: "Roboto", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    color: #e60011;
    margin-left: 12px;
  }

  .message-container_box_right {
    width: 100%;
  }

  .message-container_box_title {
    font-size: 21px;
    line-height: 1.578em;
    margin-bottom: 24px;
  }

  .message-container_box_text {
    line-height: 2.14em;
  }
}
@media (min-width: 992px) {
  .overview-bottom {
    display: flex;
  }

  .overview-bottom_inner {
    width: calc( ( 100% - 60px ) / 2 );
  }

  .overview-bottom_inner:first-child {
    margin-right: 60px;
  }

  .overview-bottom_inner_title {
    font-size: 28px;
    font-weight: 700;
    line-height: 1em;
    border-bottom: 1px solid #dcdcdc;
    padding-bottom: 20px;
    margin-bottom: 30px;
  }
}
@media (max-width: 991px) {
  .overview-bottom {
    display: block;
  }

  .overview-bottom_inner {
    width: 100%;
  }

  .overview-bottom_inner:first-child {
    margin-bottom: 24px;
  }

  .overview-bottom_inner_title {
    font-size: 18px;
    font-weight: 700;
    line-height: 1em;
    border-bottom: 1px solid #dcdcdc;
    padding-bottom: 20px;
    margin-bottom: 30px;
  }
}
.overview-bottom_inner_list {
  width: 100%;
}

.overview-bottom_inner_list li {
  position: relative;
  line-height: 2.142em;
  padding-left: 1em;
}

.overview-bottom_inner_list li::after {
  display: block;
  content: "";
  position: absolute;
  top: 14px;
  left: 0;
  width: 4px;
  height: 4px;
  border-radius: 2px;
  background: #231815;
}

/* message-wrap　ここまで */
/* outline-wrap ここから */
@media (min-width: 992px) {
  .outline-wrap {
    padding: 54px 0 170px;
  }

  .outline-list {
    width: 100%;
    margin-bottom: 160px;
  }

  .outline-list li {
    padding: 51px 0;
    border-bottom: 1px solid #dcdcdc;
  }

  .outline-list li:first-child {
    border-top: 1px solid #dcdcdc;
  }

  .outline-list_inner {
    display: flex;
  }

  .outline-list_inner > span:first-child {
    width: 270px;
  }

  .outline-list_inner > span:last-child {
    width: calc( 100% - 270px );
  }

  .outline-list_inner > span {
    padding: 0 30px;
  }

  .outline-img {
    display: flex;
    flex-wrap: wrap;
  }

  .outline-img > div {
    width: calc( ( 100% - 40px ) / 2 );
  }

  .outline-img > div:not(:nth-child(even)) {
    margin-right: 40px;
  }

  .outline-img > div:not(:nth-last-child(1)):not(:nth-last-child(2)) {
    margin-bottom: 40px;
  }

  iframe.map-wrap {
    width: 100%;
    height: 580px;
  }
}
@media (max-width: 991px) {
  .outline-wrap {
    padding: 48px 0;
  }

  .outline-list {
    width: 100%;
    margin-bottom: 36px;
  }

  .outline-list li {
    padding: 24px 0;
    border-bottom: 1px solid #dcdcdc;
  }

  .outline-list li:first-child {
    border-top: 1px solid #dcdcdc;
  }

  .outline-list_inner {
    display: flex;
  }

  .outline-list_inner > span:first-child {
    width: 40%;
  }

  .outline-list_inner > span:last-child {
    width: 60%;
  }

  .outline-list_inner > span {
    padding: 0 12px;
  }

  .outline-img {
    display: block;
  }

  .outline-img > div {
    width: 100%;
  }

  .outline-img > div:not(:last-child) {
    margin-bottom: 12px;
  }

  iframe.map-wrap {
    width: 100%;
    height: 420px;
  }
}
/* footer-tpl03　ここから */
@media (min-width: 992px) {
  .footer-tpl03-wrap {
    width: 100%;
    height: auto;
    background: #231815;
    color: #fff;
    padding: 140px 0 0;
  }

  .footer-tpl03-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .footer-tpl03-add {
    width: 35%;
  }

  .footer-tpl03-logo {
    margin-bottom: 36px;
  }

  .footer-tpl03-logo img {
    width: 200px;
  }

  .footer-tpl03-navi {
    width: 65%;
    display: flex;
    flex-wrap: wrap;
  }

  .footer-tpl03-navi li {
    width: 25%;
    margin-bottom: 36px;
  }

  .footer-tpl03-navi li a {
    font-size: clamp(13px, 1.058vw, 16px);
    color: #fff;
    padding: 1em;
  }

  .footer-tpl03-navi li a:hover {
    color: #e60011;
  }

  .footer-tpl03-copy {
    display: block;
    width: 100%;
    margin-top: 100px;
    padding: 43px 0;
    border-top: 1px solid #fff;
    text-align: center;
  }
}
@media (max-width: 991px) {
  .footer-tpl03-wrap {
    width: 100%;
    height: auto;
    background: #231815;
    color: #fff;
    padding: 60px 0 13.3vw;
  }

  .footer-tpl03-inner {
    display: block;
  }

  .footer-tpl03-logo-wrap {
    margin-bottom: 24px;
  }

  .footer-tpl03-logo {
    width: 40%;
    margin: 0 auto 36px;
  }

  .footer-tpl03-text {
    line-height: 1.5em;
  }

  .footer-tpl03-navi {
    display: flex;
    flex-wrap: wrap;
    margin-top: 36px;
  }

  .footer-tpl03-navi li {
    width: 50%;
    margin-bottom: 36px;
  }

  .footer-tpl03-navi li a {
    font-size: clamp(13px, 3.896vw, 15px);
    color: #fff;
    padding: 1em 0;
  }

  .footer-tpl03-copy {
    display: block;
    width: 100%;
    margin-top: 48px;
    padding: 24px 0;
    border-top: 1px solid #fff;
    text-align: center;
  }
}
.footer-tpl03-wrap a,
.footer-tpl03-wrap a:hover {
  color: #fff;
}

/* footer-tpl03　ここまで */
/* JSでテキスト25文字表示、スマホだとサムネが横に表示　ここから */
.veterinarymedicine-news {
  width: 95%;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 36px;
}

.veterinarymedicine-news li {
  border: 1px solid #ddd;
  padding: 0.5em;
}

.veterinarymedicine-news li a {
  display: flex;
  width: 100%;
  color: #231815;
}

.veterinarymedicine-news_thumbnail {
  position: relative;
  width: 50%;
}

.veterinarymedicine-news_thumbnail {
  position: relative;
  overflow: hidden;
  background: url("https://placehold.jp/cfcfcf/ffffff/960x593.jpg");
  background-size: cover;
  border-right: 1px solid #ddd;
}

.veterinarymedicine-news_thumbnail:before {
  content: '';
  display: block;
  aspect-ratio: 1.618 / 1;
  /* 横1.618:縦1 */
}

.veterinarymedicine-news_thumbnail img {
  position: absolute;
  top: 50%;
  height: auto !important;
  transform: translateY(-50%);
  right: 0;
  left: 0;
  -webkit-transition: all 1s ease;
  transition: all 1s ease;
}

.veterinarymedicine-news_contents {
  width: calc( ( 100% - 30% ) - 18px );
  margin-left: 18px;
}

.veterinarymedicine-news_date {
  display: block;
  font-size: .75em;
  color: #cbd3da;
  font-weight: bold;
  margin-bottom: 12px;
}

.veterinarymedicine-news_title {
  display: block;
  width: 100%;
  font-weight: bold;
  line-height: 1.414em;
}

.veterinarymedicine-news li a:hover .veterinarymedicine-news_title {
  color: #e60011;
}

@media (max-width: 991px) {
  .veterinarymedicine-news li:not(:last-child) {
    margin-bottom: 1em;
  }

  .veterinarymedicine-news_date {
    margin-bottom: 6px;
  }
}
@media (min-width: 992px) {
  .veterinarymedicine-news {
    max-width: 1200px;
    margin-right: auto;
    margin-left: auto;
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 48px;
  }

  .veterinarymedicine-news li {
    width: calc( ( 100% - 72px ) / 3 );
  }

  .veterinarymedicine-news li {
    margin-bottom: 36px;
    margin-right: 36px;
  }

  .veterinarymedicine-news li:nth-child(3n) {
    margin-right: 0;
  }

  .veterinarymedicine-news li:nth-last-child(1),
  .veterinarymedicine-news li:nth-last-child(2),
  .veterinarymedicine-news li:nth-last-child(3) {
    margin-bottom: 0;
  }

  .veterinarymedicine-news li a {
    display: block;
  }

  .veterinarymedicine-news_thumbnail {
    position: relative;
    width: 100%;
    border-right: none;
    border-bottom: 1px solid #ddd;
    margin-bottom: 12px;
  }

  .veterinarymedicine-news_contents {
    width: 100%;
    margin-left: 0;
    padding: 0 0.5em 0.5em;
  }
}
/* JSでテキスト25文字表示、スマホだとサムネが横に表示　ここまで */
.fadeIn-bottom {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 1s ease, transform 1s ease;
}

.fadeIn-bottom.visible {
  opacity: 1;
  transform: translateY(0px);
}

@media (max-width: 768px) {
  .fadeIn-bottom {
    opacity: 1;
  }
}
@media (min-width: 992px) {
  .sp-fix-btn02 {
    display: none;
  }
}
@media (max-width: 991px) {
  .sp-fix-btn02 {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 13.3vw;
    z-index: 3;
  }

  a.sp-fix-btn02_tel {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    text-decoration: none;
    width: 33.33vw;
    height: 13.3vw;
    background: #231815;
  }

  a:hover.sp-fix-btn02_tel {
    color: #fff;
  }

  a.sp-fix-btn02_tel > span:first-child {
    width: 5vw;
    height: auto;
    margin-right: 6px;
  }

  a.sp-fix-btn02_tel > span:last-child {
    font-size: 3.5vw;
    font-weight: bold;
    color: #fff;
  }

  a.sp-fix-btn02_mail {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 33.33vw;
    height: 13.3vw;
    background: #e60011;
    color: #fff;
    text-decoration: none;
  }

  a:hover.sp-fix-btn02_mail {
    color: #fff;
  }

  a.sp-fix-btn02_mail > span:first-child img {
    width: 5vw;
    height: auto;
    margin-right: 6px;
  }

  a.sp-fix-btn02_mail > span:last-child {
    font-size: 3.5vw;
    font-weight: bold;
    line-height: 1em;
  }

  a.sp-fix-btn02_line {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 33.33vw;
    height: 13.3vw;
    background: #127f42;
    color: #fff;
    text-decoration: none;
  }

  a:hover.sp-fix-btn02_line {
    color: #fff;
  }

  a.sp-fix-btn02_line > span:first-child img {
    width: 5vw;
    height: auto;
    margin-right: 6px;
  }

  a.sp-fix-btn02_line > span:last-child {
    font-size: 3.5vw;
    font-weight: bold;
    line-height: 1em;
  }
}
.original-button01 {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  text-decoration: none;
  color: #fff;
  font-size: 18px;
  border-radius: 30px;
  width: 270px;
  height: 60px;
  font-weight: bold;
  border: 2px solid #b3000d;
  transition: 0.3s;
  box-shadow: 5px 5px 0px 0px #b3000d;
  background-color: #e60011;
}

.original-button01:hover {
  box-shadow: 0 0 #b3000d;
  color: #fff;
  background-color: #b3000d;
}

a.faq-btn01 {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 280px;
  height: 60px;
  border: 1px solid #e60011;
  color: #e60011;
  line-height: 1em;
  border-radius: 3px;
}

a.faq-btn01::after {
  display: block;
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 20px;
  width: 9px;
  height: 7px;
  background: url("../img/icon-arrow-down.svg") no-repeat center;
  background-size: cover;
}

a:hover.faq-btn01 {
  background: #e60011;
  border: 1px solid #e60011;
  color: #fff;
}

a:hover.faq-btn01::after {
  background: url("../img/icon-arrow-down-hover.svg") no-repeat center;
}

a.faq-btn02 {
  position: relative;
  display: inline-block;
  border-bottom: 1px solid #231815;
  line-height: 1em;
  padding: 10px 20px 10px 0;
}

a.faq-btn02::after {
  display: block;
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  width: 9px;
  height: 7px;
  background: url("../img/icon-arrow-down.svg") no-repeat center;
  background-size: cover;
}

@media (min-width: 992px) {
  .faq-wrap {
    padding: 50px 0 120px;
  }

  .faq-read {
    text-align: center;
    line-height: 2.14em;
    margin-bottom: 70px;
  }

  .faq-btn-list {
    display: flex;
    justify-content: center;
    margin-bottom: 120px;
  }

  .faq-btn-list li:not(:last-child) {
    margin-right: 40px;
  }

  .faq-anker-btn {
    display: flex;
    justify-content: center;
    margin-bottom: 64px;
  }

  .faq-anker-btn li:not(:last-child) {
    margin-right: 40px;
  }

  .faq-contents-wrap {
    max-width: 1100px;
    margin: 0 auto 80px;
  }

  .faq-contents-title {
    margin-bottom: 40px;
    font-size: 26px;
  }
}
@media (max-width: 991px) {
  .faq-wrap {
    padding: 48px 0;
  }

  .faq-read {
    text-align: center;
    line-height: 2.14em;
    margin-bottom: 24px;
  }

  .faq-btn-list {
    display: block;
    margin-bottom: 24px;
  }

  .faq-btn-list li:not(:last-child) {
    margin-bottom: 12px;
  }

  .faq-anker-btn {
    display: block;
    justify-content: center;
    margin-bottom: 24px;
  }

  .faq-anker-btn li:not(:last-child) {
    margin-bottom: 12px;
  }

  .faq-contents-wrap {
    width: 100%;
    margin: 0 auto 24px;
  }

  .faq-contents-title {
    margin-bottom: 24px;
    font-size: 18px;
  }

  .faq-btn01 {
    margin-right: auto;
    margin-left: auto;
  }

  a.faq-btn02 {
    display: block;
    width: 280px;
    margin-right: auto;
    margin-left: auto;
  }
}
.faq-img {
  text-align: center;
}

.faq-wrap:not(:last-child) {
  margin-bottom: 12px;
}

@media (min-width: 992px) {
  .faq-wrap:not(:last-child) {
    margin-bottom: 36px;
  }

  .faq-wrap {
    width: 80%;
    margin-right: auto;
    margin-left: auto;
  }
}
.faq-summary {
  display: block;
}

.faq-summary::-webkit-details-marker {
  display: none;
}

.faq-summary {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 97px;
  padding: 0 64px;
  background: #fff;
  border-bottom: 1px solid #e9edf0;
}

.faq-box-wrap .faq-details:nth-child(1) .faq-summary {
  border-top: 1px solid #e9edf0;
}

.faq-details[open] + .faq-summary {
  border-bottom: 1px solid #fff;
}

.faq-summary::after {
  position: absolute;
  top: 31px;
  left: 10px;
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  display: flex;
  justify-content: center;
  align-items: center;
  content: "Q";
  width: 35px;
  height: 35px;
  font-size: 20px;
  color: #e60011;
  background: #e2ecf7;
  border-radius: 3px;
}

.faq-summary::before {
  position: absolute;
  content: "";
  width: 20px;
  height: 20px;
  background: url("../img/icon-plus.svg");
  background-size: cover;
  top: 50%;
  transform: translateY(-50%);
  right: 20px;
}

.faq-content::after {
  position: absolute;
  top: 31px;
  left: 10px;
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  display: flex;
  justify-content: center;
  align-items: center;
  content: "A";
  width: 35px;
  height: 35px;
  font-size: 20px;
  color: #fff;
  background: #e60011;
  border-radius: 3px;
}

.faq-content p {
  padding-top: 7px;
}

.faq-content {
  position: relative;
  height: auto;
  padding: 30px 20px 30px 64px;
  background: #fcfcfc;
  background: #fcfcfc;
  border-bottom: 1px solid #e9edf0;
}

.faq-details[open] .faq-summary::before {
  position: absolute;
  content: "";
  width: 20px;
  height: 20px;
  background: url("../img/icon-minas.svg");
  background-size: cover;
  top: 50%;
  transform: translateY(-50%);
  right: 20px;
}

@media (min-width: 992px) {
  .time-table01-01,
  .time-table01-02,
  .time-table01-03 {
    grid-template-columns: 2fr repeat(6, 1fr);
    grid-template-rows: 3.5em;
  }
}
@media (max-width: 991px) {
  .time-table01-01,
  .time-table01-02,
  .time-table01-03 {
    grid-template-columns: 3fr repeat(6, 1fr);
    grid-template-rows: 2.5em;
  }
}
.time-table01-01,
.time-table01-02,
.time-table01-03 {
  display: grid;
  justify-items: center;
  align-items: center;
}

.time-table01-01 {
  background: #e60011;
  color: #fff;
  border-radius: 12px 12px 0 0;
}

.time-table01-02,
.time-table01-03 {
  border-bottom: 2px solid #e9edf0;
}

.time-table01-01 div:first-child,
.time-table01-02 div:first-child,
.time-table01-03 div:first-child {
  font-weight: bold;
}

.circle-title {
  position: relative;
}

@media (min-width: 992px) {
  .circle-title::before {
    display: block;
    content: "";
    position: absolute;
    top: -8px;
    left: -24px;
    width: 12px;
    height: 12px;
    background: #e60011;
    border-radius: 50%;
  }

  .circle-title_l {
    font-size: 2rem;
  }

  .circle-title_s {
    display: block;
    line-height: 1em;
    margin-top: 10px;
  }
}
@media (max-width: 991px) {
  .circle-title::before {
    display: block;
    content: "";
    position: absolute;
    top: -4px;
    left: -15px;
    width: 10px;
    height: 10px;
    background: #e60011;
    border-radius: 50%;
  }

  .circle-title_l {
    font-size: 1.505rem;
  }

  .circle-title_s {
    display: block;
    line-height: 1em;
    margin-top: 6px;
  }
}
.circle-title02 {
  position: relative;
  padding-left: 1.4em;
}

.circle-title02::before {
  display: block;
  content: "";
  position: absolute;
  top: .1em;
  left: 0;
  width: 1em;
  height: 1em;
  background: #e60011;
  border-radius: 50%;
}

/* Scss Document */
.card-thumbnail-img {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: url(https://placehold.jp/cfcfcf/ffffff/750x464.jpg);
  background-size: cover;
}
.card-thumbnail-img:before {
  content: '';
  display: block;
  aspect-ratio: 1.618 / 1;
  /* 横1.618:縦1 */
}
.card-thumbnail-img img {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  left: 0;
  -webkit-transition: all 1s ease;
  transition: all 1s ease;
}

.card-thumbnail-text {
  padding: 0 2px 0 10px;
}

.thumbnailImg {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: url(https://placehold.jp/cfcfcf/ffffff/750x464.jpg);
  background-size: cover;
}
.thumbnailImg:before {
  content: '';
  display: block;
  aspect-ratio: 1.618 / 1;
  /* 横1.618:縦1 */
}
.thumbnailImg img {
  position: absolute;
  top: 50%;
  height: auto !important;
  transform: translateY(-50%);
  right: 0;
  left: 0;
  -webkit-transition: all 1s ease;
  transition: all 1s ease;
}

.topics-news-box > li {
  border-bottom: 1px solid #231815;
  padding-bottom: 30px;
  margin-bottom: 30px;
}

.topics-news-box > li:last-child {
  margin-bottom: 0;
}

.topics-news-date {
  font-size: .75rem;
}

.topics-news-cate {
  display: block;
  font-size: .75rem;
  background-image: linear-gradient(120deg, whitesmoke 0%, #eaeaea 100%);
  padding: .4375rem 0;
}

.topics-news-text a:hover {
  text-decoration: underline;
}

.topics-case-box a:hover {
  text-decoration: underline;
}

.topics-case-date {
  font-size: .75rem;
}

.topics-case-box li:nth-child(2) {
  transition-delay: .2s;
}

.topics-case-box li:nth-child(3) {
  transition-delay: .4s;
}

.thumbnail-img-bg02 li:first-child {
  width: 100px;
  background: #cfcfcf;
}

.thumbnail-img-bg02 li:last-child {
  width: calc(100% - 100px);
  padding-left: 10px;
}

.thumbnail-img02 {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: calc(464 / 750 * 100%);
  background: url("https://placehold.jp/cfcfcf/ffffff/750x464.jpg");
  background-size: cover;
  overflow: hidden;
}

.thumbnail-img02 img {
  position: absolute;
  width: 100%;
  height: auto;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}

@media (min-width: 768px) {
  .topics-box02 li {
    border-bottom: 2px solid #e60011;
    padding: 0 30px 30px 30px;
    margin-bottom: 30px;
  }

  .topics-box02 li:last-child {
    margin-bottom: 0;
  }

  .topics-title02 {
    width: 100%;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
@media (max-width: 767px) {
  .topics-box02 li {
    border-bottom: 2px solid #e60011;
    padding: 0 15px 15px 15px;
    margin-bottom: 15px;
  }

  .topics-box02 li:last-child {
    margin-bottom: 0;
  }

  .topics-date02 {
    display: block;
    margin-bottom: 10px;
  }

  .topics-title02 {
    width: 100%;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
/* vertical-slideNews ここから */
a .vertical-slideNews_flex {
  transition: 1s;
}

a:hover .vertical-slideNews_flex {
  background: #f8f9fa;
  transition: 1s;
}

.vertical-slideNews_flex {
  display: flex;
  align-items: center;
  width: 100%;
  height: 60px;
  background: #fff;
  padding: 0 1em;
  border: 1px solid #e9edf0;
  border-radius: 6px;
}

@media (min-width: 768px) {
  .vertical-slideNews_flex_date {
    width: 140px;
  }

  .vertical-slideNews_flex_text {
    display: block;
    width: calc( 100% - 140px );
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
}
@media (max-width: 767px) {
  .vertical-slideNews_flex {
    height: 40px;
  }

  .vertical-slideNews_flex_date {
    width: 100px;
  }

  .vertical-slideNews_flex_text {
    display: block;
    width: calc( 100% - 100px );
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
}
/* vertical-slideNews ここまで */
.col-white {
  color: #fff;
}

.col-black {
  color: #231815;
}

.col-basic {
  color: #e60011;
}

.boxShadow {
  box-shadow: 0 0 20px #ccc;
}

.dropShadow {
  filter: drop-shadow(0px 0px 20px #ccc);
  transform: translateZ(0px);
}

.text-border-wht {
  text-shadow: #fff 1px 1px 0, #fff -1px -1px 0, #fff -1px 1px 0, #fff 1px -1px 0, #fff 0px 1px 0, #fff -1px 0, #fff -1px 0 0, #fff 1px 0 0;
}

.text-border-wht2 {
  text-shadow: #fff 2px 0px, #fff -2px 0px, #fff 0px -2px, #fff 0px 2px, #fff 2px 2px , #fff -2px 2px, #fff 2px -2px, #fff -2px -2px, #fff 1px 2px, #fff -1px 2px, #fff 1px -2px, #fff -1px -2px, #fff 2px 1px, #fff -2px 1px, #fff 2px -1px, #fff -2px -1px;
}

@media (min-width: 768px) {
  .dn-pc {
    display: none !important;
  }
}
@media (max-width: 767px) {
  .dn-sp {
    display: none !important;
  }

  img {
    width: 100%;
    height: auto;
  }
}
@media screen and (max-width: 991px) and (min-width: 768px) {
  .dn-tab {
    display: none !important;
  }
}
@media (max-width: 991px) {
  .dn-tabsp {
    display: none;
  }
}
@media (min-width: 992px) {
  .dn-lg {
    display: none;
  }
}
a {
  text-decoration: none;
  color: #333;
}

a:hover {
  text-decoration: none;
  color: #333;
}

a,
a:hover {
  transition: 1s;
}

strong {
  background: linear-gradient(transparent 40%, #e60011 40%);
}

a.link {
  text-decoration: underline;
}

a:hover.link {
  text-decoration: none;
}

.h1, h1,
.h2, h2,
.h3, h3,
.h4, h4,
.h5, h5,
.h6, h6,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5 {
  font-weight: bold;
}

.bg-gray {
  background: #f2f2f2;
}

.bg-gradation {
  background-image: linear-gradient(#f2f2f2, #ffffff);
}

.en {
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
}

.bdb {
  border-bottom: 6px double #231815;
}

.lh {
  line-height: 1.5;
}

.lh2 {
  line-height: 2;
}

.triangle-top-gray {
  position: relative;
  padding: 240px 0 240px;
}

.triangle-top-gray::before {
  display: block;
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  height: 120px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}

.triangle-top-gray::after {
  display: block;
  content: "";
  position: absolute;
  right: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 120px;
  background: #fff;
  clip-path: polygon(0 0, 100% 100%, 0 100%);
}

@media (max-width: 991px) {
  .triangle-top-gray {
    position: relative;
    padding: 120px 0 120px;
  }

  .triangle-top-gray::before {
    height: 60px;
  }

  .triangle-top-gray::after {
    height: 60px;
  }
}
/*container 設定 ここから*/
/* ========================================
   モダンコンテナシステム（2025年対応）
   - スマホ・タブレットでは左右に余白
   - PC表示では左右paddingを0に
   - clamp()による柔軟なスケール調整
   - Bootstrap構文互換あり
======================================== */
/* グローバル変数（必要に応じてサイト全体で再利用可） */
:root {
  --container-max: 1560px;
  /* PC最大幅 */
  --container-padding-sp: clamp(16px, 5vw, 32px);
  /* スマホ〜タブレット余白 */
  --gutter-x: 1rem;
  --gutter-y: 0;
}

/* 共通：全デバイス共通の基本構造 */
.container,
.container-fluid {
  width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
}

/* fluidコンテナ（常に100%幅） */
.container-fluid {
  max-width: 100%;
  padding-inline: var(--container-padding-sp);
}

/* 通常コンテナ（デフォルトはスマホ〜タブレット用） */
.container {
  max-width: 100%;
  padding-inline: var(--container-padding-sp);
}

/* 640px以上：小型タブレット */
@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}
/* 1024px以上：中型デバイス（ノートPC） */
@media (min-width: 1024px) {
  .container {
    max-width: 960px;
  }
}
/* 1280px以上：一般的なPC表示 */
@media (min-width: 1280px) {
  .container {
    max-width: 1200px;
  }
}
/* 1440px以上：大型PC／デスクトップ */
@media (min-width: 1440px) {
  .container {
    max-width: 1380px;
  }
}
/* 1600px以上：4Kディスプレイやウルトラワイド環境 */
@media (min-width: 1600px) {
  .container {
    max-width: var(--container-max);
    /* 1560px */
  }
}
/* 992px以上（PC表示）では左右余白なしにしてワイド表示 */
@media (min-width: 992px) {
  .container {
    padding-inline: 70px;
  }
}
/* PCでも左右余白を維持する */
.container--inner {
  padding-inline: var(--container-padding-sp);
}

/*container 設定 ここまで*/
/* ===========================
   Typography Base　ここから
   =========================== */
/* ベース変数 */
:root {
  --font-body: 16px;
  --lh-body: 1.8em;
  /* 和文は広めが読みやすい */
  --ls-body: 0.02em;
  /* 字詰まり防止・可読性向上 */
}

/* HTML標準設定 */
html {
  font-size: 100%;
}

/* 16px基準 */
body {
  font-family: SourceHanSans, "游ゴシック体", "Yu Gothic", YuGothic,"ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro","メイリオ", "Meiryo", sans-serif;
  font-size: var(--font-body);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
  font-feature-settings: "palt";
  /* 和文プロポーショナル */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-smooth: antialiased;
  color: #231815;
  background-color: #fff;
}

/* ===========================
   Headings
   =========================== */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.01em;
}

/* デスクトップ（1024px以上） */
h1, .h1 {
  font-size: clamp(1.77rem, 3rem, 4.14rem);
}

/* 48px */
h2, .h2 {
  font-size: clamp(1.305rem, 2.25rem, 3.172rem);
}

/* 36px */
h3, .h3 {
  font-size: clamp(0.99125rem, 1.625rem, 2.305rem);
}

/* 26px */
h4, .h4 {
  font-size: clamp(0.825rem, 1.375rem, 1.925rem);
}

/* 22px */
h5, .h5 {
  font-size: clamp(0.675rem, 1.125rem, 1.575rem);
}

/* 18px */
h6, .h6 {
  font-size: clamp(0.6825rem, 1rem, 1.3123rem);
}

/* 16px */
/* ===========================
   Mobile / Tablet (〜991px)
   =========================== */
@media (max-width: 991px) {
  body {
    font-size: 15px;
    /* 読みやすさ重視で15px */
    line-height: 1.9em;
    letter-spacing: 0.02em;
  }

  h1, .h1 {
    font-size: clamp(1.1rem, 1.9rem, 2.5875rem);
  }

  /* 30px */
  h2, .h2 {
    font-size: clamp(0.9rem, 1.6rem, 2.2rem);
  }

  /* 25px */
  h3, .h3 {
    font-size: clamp(0.838rem, 1.375rem, 1.95rem);
  }

  /* 22px */
  h4, .h4 {
    font-size: clamp(0.75rem, 1.25rem, 1.75rem);
  }

  /* 20px */
  h5, .h5 {
    font-size: clamp(0.6375rem, 1.125rem, 1.4875rem);
  }

  /* 17px */
  h6, .h6 {
    font-size: clamp(0.6398rem, 0.9375rem, 1.23rem);
  }

  /* 15px */
}
/* ===========================
   Typography Base　ここまで
   =========================== */
/* =========================
   ファーストビュー
========================= */
.top-fv {
  width: 100%;
  height: calc(100vh - 80px);
  margin-top: 80px;
  overflow: hidden;
}

.top-fv picture {
  display: block;
  width: 100%;
  height: 100%;
}

.top-fv img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}

.top-fv-banner {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  z-index: 1;
}

.top-fv-banner a:first-child {
  display: block;
  margin-bottom: 12px;
}

@media screen and (min-width: 992px) {
  .top-fv h1{
    position: absolute;
    top: 100px;
    right: 20px;
    font-size: 10px;
    color: #fff;
    z-index: 1;
  }
}
/* =========================
   SP
========================= */
@media screen and (max-width: 991px) {
  .top-fv {
    height: auto;
    margin-top: 80px;
    overflow: visible;
  }
  
  .top-fv h1{
    position: absolute;
    right: 20px;
    bottom: 25vh;
    font-size: 10px;
    color: #fff;
    z-index: 1;
  }

  .top-fv picture {
    height: auto;
  }

  .top-fv img {
    width: 100%;
    height: auto;
    object-fit: initial;
  }

  .top-fv-banner {
    display: none;
  }
}
.hama--title {
  text-align: center;
}

.news--title h2,
.hama--title h2,
.hama--title02 h2 {
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  font-size: clamp(3.54rem, 6rem, 8.28rem);
  /*96px*/
  text-transform: uppercase;
  color: #e60011;
  line-height: 1em;
}

.news--title p {
  font-weight: bold;
  font-size: clamp(0.825rem, 1.375rem, 1.925rem);
  /* 22px */
}

.hama--title p,
.hama--title02 p {
  font-weight: bold;
  font-size: clamp(1.305rem, 2.25rem, 3.172rem);
  /* 36px */
}

.hama--title-h3 h3 {
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  font-size: clamp(2.61rem, 4.5rem, 6.344rem);
  /*72px*/
  text-transform: uppercase;
  color: #e60011;
  line-height: 1em;
}

.hama--title-h3 p {
  font-weight: bold;
  font-size: clamp(1.365rem, 2rem, 2.6246rem);
  /* 32px */
}

.news--archive {
  display: inline-flex;
  align-items: center;
  gap: 24px;
  padding-bottom: 4px;
  font-size: 16px;
  font-weight: 700;
  white-space: nowrap;
}

.news--archive_icon {
  width: 54px;
  height: 29px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: #fff;
  background: #e60011;
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  font-size: 20px;
  transition: transform .25s ease;
}

.news--archive:hover .news--archive_icon {
  transform: translateX(5px);
}

@media (max-width: 991px) {
  .news--title h2,
  .hama--title h2,
  .hama--title02 h2 {
    font-size: clamp(1.8rem, 3.1rem, 4.4rem);
    /*50px*/
  }

  .news--title p {
    font-size: clamp(0.75rem, 1.25rem, 1.75rem);
    /* 20px */
  }

  .hama--title p,
  .hama--title02 p {
    font-size: clamp(0.9rem, 1.6rem, 2.2rem);
    /* 25px */
  }

  .hama--title-h3 h3 {
    font-size: clamp(1.676rem, 2.75rem, 3.9rem);
    /*44px*/
  }

  .hama--title-h3 p {
    font-size: clamp(0.838rem, 1.375rem, 1.95rem);
    /* 22px */
  }

  .news--archive {
    gap: 10px;
  }
}
/* お知らせ　ここから */
.news--wrap {
  display: flex;
  justify-content: space-around;
}

.mr-auto {
  margin-right: auto;
}

/* お知らせ　ここまで */
/* 濱塾で身に付く5つの力　ここから */
.five_power {
  display: flex;
  justify-content: space-around;
  align-items: center;
}

.five_power-content {
  display: flex;
  justify-content: center;
}

.five_power-img {
  text-align: center;
  width: 40%;
}

@media (min-width: 992px) {
  .pc-img-radius-right {
    border-radius: 0 60px 60px 0;
    overflow: hidden;
  }

  .pc-img-radius-left {
    border-radius: 60px 0 0 60px;
    overflow: hidden;
  }
}
@media (max-width: 991px) {
  .five_power {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .five_power-img {
    width: 90%;
  }

  .text-sp-center {
    text-align: center;
  }

  .pc-img-radius-right {
    border-radius: 20px;
    overflow: hidden;
  }

  .pc-img-radius-left {
    border-radius: 20px;
    overflow: hidden;
  }
}
.hama-driblling-title-h3 h3 {
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  font-size: clamp(3.656rem, 6rem, 8.509rem);
  /* 96px */
  text-transform: uppercase;
  color: #e60011;
  line-height: 1em;
}

.hama-driblling-title-h3-en h3 {
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  font-size: clamp(4.571rem, 7.5rem, 10.636rem);
  /* 120px */
  text-transform: uppercase;
  color: #e60011;
  line-height: 1em;
}

.hama-driblling-title-h3 p,
.hama-driblling-title-h3-en p {
  font-weight: bold;
  font-size: clamp(2.61rem, 4.5rem, 6.344rem);
  /*72px*/
}

.hama-driblling-lead {
  font-weight: bold;
  font-size: clamp(1.676rem, 2.75rem, 3.9rem);
  /*44px*/
}

.hama-driblling-lead02 {
  font-weight: bold;
  font-size: clamp(1.676rem, 2.75rem, 3.9rem);
  /*44px*/
}

@media (max-width: 991px) {
  .hama-driblling-title-h3 h3 {
    font-size: clamp(2.285rem, 3.75rem, 5.318rem);
    /* 60px */
  }

  .hama-driblling-title-h3-en h3 {
    font-size: clamp(2.285rem, 3.75rem, 5.318rem);
    /* 60px */
  }

  .hama-driblling-title-h3 p,
  .hama-driblling-title-h3-en p {
    font-size: clamp(1.676rem, 2.75rem, 3.9rem);
    /*44px*/
  }

  .hama-driblling-lead {
    font-weight: bold;
    font-size: 24px;
  }

  .hama-driblling-lead02 {
    font-weight: bold;
    font-size: 36px;
  }
}
.text-red {
  color: #e60011;
}

/* kwi-box03 ここから */
@media (min-width: 992px) {
  .kwi-box03 {
    display: flex;
    align-items: center;
  }

  .kwi-box03_img {
    width: 40vw;
    height: auto;
    border-radius: 0 60px 60px 0;
    overflow: hidden;
  }

  .kwi-box03_contents {
    width: 60vw;
  }
}
@media (max-width: 991px) {
  .kwi-box03 {
    display: flex;
    flex-direction: column;
  }

  .kwi-box03_img {
    width: 100%;
    height: auto;
    overflow: hidden;
    margin-bottom: 36px;
  }

  .kwi-box03_contents {
    width: 100%;
  }
}
/* kwi-box03 ここまで */
/* 濱塾で身に付く5つの力　ここまで */
/* パートナー　ここから */
.partner-wrap {
  background: #f2f2f2;
  padding: 96px 70px;
  border-radius: 20px;
}

@media (max-width: 991px) {
  .partner-wrap {
    padding: 60px 24px;
  }
}
/* パートナー　ここまで */
/* パートナーバナー　ここから */
.partner-banner-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 36px;
}

.partner-banner-wrap div {
  width: calc( ( 100% - 144px ) / 5 );
}

@media (max-width: 991px) {
  .partner-banner-wrap {
    gap: 10px;
  }

  .partner-banner-wrap div {
    width: calc( ( 100% - 20px ) / 3 );
  }
}
/* パートナーバナー　ここまで */
/* 体験レッスンバナー　ここから */
.trial-banner {
  width: 100%;
  height: auto;
}

.trial-banner picture {
  display: block;
  width: 100%;
  height: auto;
}

.trial-banner img {
  display: block;
  width: 100%;
  height: auto;
}

.trial-banner a:hover {
  opacity: .7;
}

@media (min-width: 992px) {
  .secBg-btm {
    padding-bottom: 120px;
  }
}
@media (max-width: 991px) {
  .secBg-btm {
    padding-bottom: 60px;
  }
}
/* 体験レッスンバナー　ここまで */
/* コンセプトページ　ここから */
.concept-page {
  overflow: hidden;
  color: #1c1c1c;
}

.concept-page *, .concept-page *::before, .concept-page *::after {
  box-sizing: border-box;
}

.concept-page p {
  margin-bottom: 0;
}

.concept-page__hero {
  position: relative;
  min-height: 390px;
  background: #151515;
  color: #fff;
  overflow: hidden;
  margin-top: 80px;
}

.concept-page__hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.69) 0%, rgba(0, 0, 0, 0.22) 56%, transparent 100%), linear-gradient(0deg, rgba(0, 0, 0, 0.67), transparent 60%), url("../img/top-img04.jpg") center 53%/cover no-repeat;
}

.concept-page__hero::after {
  content: 'HAMAJUKU';
  position: absolute;
  right: -.04em;
  bottom: -.27em;
  font: 900 clamp(100px, 16vw, 270px)/1 Roboto, sans-serif;
  letter-spacing: -.07em;
  color: rgba(255, 255, 255, 0.065);
  pointer-events: none;
}

.concept-page__hero-inner {
  position: relative;
  z-index: 1;
  padding-block: clamp(92px, 10vw, 150px) 85px;
}

.concept-page__eyebrow, .concept-page__kicker, .concept-page__power-number, .concept-page__photo-caption {
  font: 800 13px/1.5 Roboto, sans-serif;
  letter-spacing: .16em;
}

.concept-page__eyebrow {
  margin-bottom: 18px !important;
}

.concept-page__hero-title {
  margin: 0 0 25px;
  font: 900 clamp(64px, 10vw, 148px)/0.9 Roboto, sans-serif;
  letter-spacing: -.045em;
}

.concept-page__hero-title span {
  display: block;
  margin-top: 20px;
  font: 700 clamp(16px, 1.5vw, 22px)/1.4 sans-serif;
  letter-spacing: .12em;
}

.concept-page__hero-copy {
  font-size: clamp(25px, 3vw, 43px);
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .04em;
}

.concept-page__hero-copy strong {
  color: #ff3340;
}

.concept-page__hero-line {
  width: 72px;
  height: 5px;
  margin-top: 34px;
  background: #e60011;
}

.concept-page__intro {
  padding-block: clamp(85px, 10vw, 160px);
}

.concept-page__intro-grid {
  display: grid;
  grid-template-columns: 1fr 46%;
  gap: clamp(50px, 7vw, 120px);
  align-items: center;
}

.concept-page__kicker {
  color: #e60011;
  margin-bottom: 28px !important;
}

.concept-page__kicker span {
  font: 700 13px/1.5 sans-serif;
  letter-spacing: .03em;
}

.concept-page__intro-title {
  margin: 0 0 42px;
  font-size: clamp(32px, 3.7vw, 56px);
  font-weight: 800;
  line-height: 1.42;
  letter-spacing: .025em;
}

.concept-page__intro-title em, .concept-page__closing h2 em {
  color: #e60011;
  font-style: normal;
}

.concept-page__intro-copy > p:not(.concept-page__kicker), .concept-page__overview-copy > p, .concept-page__power-copy > p:not(.concept-page__power-number), .concept-page__closing-inner > p:not(.concept-page__kicker):not(.concept-page__closing-choices) {
  margin-top: 20px;
  font-size: clamp(15px, 1.1vw, 17px);
  line-height: 2.1;
}

.concept-page__intro-photo {
  position: relative;
  padding-bottom: 28px;
}

.concept-page__intro-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 4/4.2;
  object-fit: cover;
  object-position: 58% center;
  border-radius: 12px 80px 12px 12px;
}

.concept-page__photo-caption {
  position: absolute;
  right: -14px;
  bottom: 0;
  padding: 15px 20px;
  color: #fff;
  background: #e60011;
}

.concept-page__overview {
  padding-block: clamp(80px, 8vw, 135px) clamp(80px, 8vw, 125px);
  background: #f4f4f4;
}

.concept-page__overview-grid {
  display: grid;
  grid-template-columns: 1fr 47%;
  gap: 5%;
  align-items: center;
}

.concept-page__overview-heading h2 {
  margin: 0 0 20px;
  font-size: clamp(64px, 7.2vw, 112px);
  letter-spacing: -.06em;
}

.concept-page__overview-heading p {
  font-size: clamp(32px, 3.3vw, 52px);
  line-height: 1.4;
}

.concept-page__overview-copy > p:first-of-type {
  margin-top: 32px;
}

.concept-page__overview-visual {
  text-align: center;
}

.concept-page__overview-visual img {
  display: block;
  width: 100%;
  max-width: 630px;
  height: auto;
  margin-inline: auto;
}

.concept-page__jump {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin-top: 75px;
}

.concept-page__jump a {
  display: flex;
  align-items: center;
  gap: 12px;
  border-top: 2px solid #1b1b1b;
  padding: 15px 5px;
  color: #1b1b1b;
  font-weight: 800;
  text-decoration: none;
  transition: color .2s, border-color .2s;
}

.concept-page__jump a:hover, .concept-page__jump a:focus-visible {
  color: #e60011;
  border-color: #e60011;
}

.concept-page__jump small {
  font: 700 14px Roboto, sans-serif;
  color: #e60011;
}

.concept-page__power {
  padding-block: clamp(75px, 8vw, 135px);
  scroll-margin-top: 30px;
}

.concept-page__power:nth-child(even) {
  background: #f7f7f7;
}

.concept-page__power-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(50px, 6vw, 110px);
}

.concept-page__power:nth-child(even) .concept-page__power-image {
  order: 2;
}

.concept-page__power-image {
  position: relative;
  min-width: 0;
}

.concept-page__power-image img {
  display: block;
  width: 100%;
  aspect-ratio: 1.18;
  object-fit: cover;
  border-radius: 12px 65px 12px 12px;
}

.concept-page__power:nth-child(even) .concept-page__power-image img {
  border-radius: 65px 12px 12px 12px;
}

.concept-page__power-image span {
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 12px 17px;
  background: #e60011;
  color: #fff;
  font: 700 12px Roboto, sans-serif;
  letter-spacing: .13em;
}

.concept-page__power:nth-child(even) .concept-page__power-image span {
  right: 0;
  left: auto;
}

.concept-page__power-number {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #e60011;
  font-size: 38px;
}

.concept-page__power-number span {
  color: #888;
  font-size: 12px;
}

.concept-page__power-copy h2 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 25px;
  margin: 12px 0 24px;
  font-size: clamp(43px, 4.2vw, 66px);
  font-weight: 800;
  line-height: 1.25;
}

.concept-page__power-copy h2 small {
  font: 800 clamp(15px, 1.3vw, 20px)/1.3 Roboto, sans-serif;
  letter-spacing: .04em;
  color: #e60011;
}

.concept-page__power-copy h3 {
  margin: 0 0 25px;
  padding-left: 18px;
  border-left: 5px solid #e60011;
  font-size: clamp(21px, 2vw, 30px);
  font-weight: 800;
  line-height: 1.5;
}

.concept-page__closing {
  position: relative;
  isolation: isolate;
  padding-block: clamp(95px, 10vw, 155px);
  color: #fff;
  background: #1a1a1a;
}

.concept-page__closing::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, rgba(12, 12, 12, 0.67), rgba(12, 12, 12, 0.51)), url("../img/concept-img07.jpg") center/cover no-repeat;
}

.concept-page__closing-inner {
  max-width: 1100px;
}

.concept-page__closing h2 {
  margin: 0 0 38px;
  font-size: clamp(32px, 4.5vw, 68px);
  font-weight: 800;
  line-height: 1.45;
}

.concept-page__closing-choices {
  margin-bottom: 35px !important;
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 800;
  line-height: 1.7;
}

.concept-page__closing-choices span {
  margin-inline: .5em;
}

.concept-page__closing-inner > p:not(.concept-page__kicker):not(.concept-page__closing-choices) {
  max-width: 760px;
}

.concept-page__trial {
  padding-top: clamp(60px, 7vw, 110px);
}

@media (min-width: 992px) and (max-width: 1023px) {
  .concept-page .container {
    padding-inline: 24px;
  }
}
@media (max-width: 991px) {
  .concept-page__hero {
    min-height: 380px;
  }

  .concept-page__hero::before {
    background: linear-gradient(90deg, rgba(12, 12, 12, 0.92), rgba(12, 12, 12, 0.58)), url("../img/top-img04.jpg") center/cover no-repeat;
  }

  .concept-page__hero-inner {
    padding-block: 110px 65px;
  }

  .concept-page__hero-title {
    font-size: clamp(53px, 12vw, 90px);
  }

  .concept-page__intro-grid, .concept-page__overview-grid, .concept-page__power-grid {
    grid-template-columns: 1fr;
  }

  .concept-page__intro-grid {
    gap: 38px;
  }

  .concept-page__intro-title {
    margin-bottom: 28px;
  }

  .concept-page__intro-photo {
    max-width: 650px;
    width: 100%;
    margin-inline: auto;
  }

  .concept-page__intro-photo img {
    aspect-ratio: 1.5;
    border-radius: 8px 35px 8px 8px;
  }

  .concept-page__overview-grid {
    gap: 38px;
  }

  .concept-page__overview-heading h2 {
    font-size: clamp(52px, 10vw, 82px);
  }

  .concept-page__overview-heading p {
    font-size: clamp(30px, 5.4vw, 44px);
  }

  .concept-page__overview-visual img {
    max-width: 550px;
  }

  .concept-page__jump {
    margin-top: 40px;
    /*
    grid-template-columns: repeat(3, minmax(105px, 1fr));
    overflow-x: auto;
    */
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding-bottom: 10px;
  }

  .concept-page__power-grid {
    gap: 33px;
  }

  .concept-page__power:nth-child(even) .concept-page__power-image {
    order: 0;
  }

  .concept-page__power-image img, .concept-page__power:nth-child(even) .concept-page__power-image img {
    aspect-ratio: 1.6;
    border-radius: 8px 35px 8px 8px;
  }

  .concept-page__power-copy h2 {
    font-size: clamp(40px, 6vw, 55px);
  }

  .concept-page__power-copy h3 {
    margin-bottom: 18px;
  }

  .concept-page__closing::before {
    background: linear-gradient(90deg, rgba(12, 12, 12, 0.67), rgba(12, 12, 12, 0.51)), url("../img/concept-img07-sp.jpg") calc(50% + 100px) top/cover no-repeat;
  }
}
@media (max-width: 639px) {
  .concept-page__hero {
    min-height: 355px;
  }

  .concept-page__hero-inner {
    padding-block: 105px 55px;
  }

  .concept-page__hero-title {
    font-size: clamp(50px, 14vw, 72px);
  }

  .concept-page__hero-copy {
    font-size: clamp(23px, 5.8vw, 30px);
  }

  .concept-page__intro, .concept-page__overview, .concept-page__power, .concept-page__closing {
    padding-block: 72px;
  }

  .concept-page__intro-title {
    font-size: clamp(29px, 7vw, 38px);
  }

  .concept-page__intro-photo img {
    aspect-ratio: 1.2;
  }

  .concept-page__photo-caption {
    right: 0;
    font-size: 10px;
  }

  .concept-page__overview-heading h2 {
    font-size: clamp(43px, 11vw, 62px);
  }

  .concept-page__overview-heading p {
    font-size: clamp(28px, 6.7vw, 36px);
  }

  .concept-page__power-image img, .concept-page__power:nth-child(even) .concept-page__power-image img {
    aspect-ratio: 1.35;
  }

  .concept-page__power-copy h2 {
    font-size: 42px;
  }

  .concept-page__power-copy h3 {
    font-size: 21px;
  }

  .concept-page__closing h2 {
    font-size: clamp(28px, 7vw, 39px);
  }

  .concept-page__closing-choices span {
    margin-inline: 0;
    display: block;
  }
}
/* コンセプトページ　ここまで */
/* スクール案内　ここから */
.school-page {
  color: #231815;
}

.school-page *, .school-page *::before, .school-page *::after {
  box-sizing: border-box;
}

.school-page strong {
  background: none;
}

.school-page p, .school-page h1, .school-page h2, .school-page h3, .school-page h4 {
  margin-bottom: 0;
}

.school-page a {
  text-decoration: none;
}

.school-page__sp-only {
  display: none;
}

.school-page__hero {
  position: relative;
  min-height: clamp(560px, 51vw, 790px);
  display: flex;
  align-items: flex-end;
  isolation: isolate;
  background: #222;
  color: #fff;
  margin-top: 80px;
}

.school-page__hero > img {
  position: absolute;
  z-index: -2;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0;
}

.school-page__hero-shade {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.69) 0%, rgba(0, 0, 0, 0.22) 56%, transparent 100%), linear-gradient(0deg, rgba(0, 0, 0, 0.67), transparent 60%);
}

.school-page__hero-inner {
  padding-block: 155px 85px;
}

.school-page__hero-overline, .school-page__section-label, .school-page__school-label, .school-page__block-label {
  font: 800 13px/1.4 Roboto, sans-serif;
  letter-spacing: .15em;
}

.school-page__hero-overline {
  color: #ff4c53;
}

.school-page__hero h1 {
  margin: 15px 0 24px;
  font: 900 clamp(85px, 12vw, 186px)/0.83 Roboto, sans-serif;
  letter-spacing: -.065em;
}

.school-page__hero h1 small {
  display: block;
  margin-top: 24px;
  font: 800 clamp(18px, 1.7vw, 27px)/1.4 sans-serif;
  letter-spacing: .08em;
}

.school-page__hero-inner > p {
  font-size: clamp(32px, 3.8vw, 58px);
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: .015em;
}

.school-page__hero em {
  color: #ff3340;
  font-style: normal;
}

.school-page__lead {
  padding-block: clamp(90px, 10vw, 150px);
}

.school-page__section-label {
  color: #e60011;
  margin-bottom: 18px !important;
}

.school-page__lead h2 {
  margin-bottom: 32px;
  font-size: clamp(37px, 4.7vw, 74px);
  line-height: 1.38;
  font-weight: 800;
  letter-spacing: .01em;
}

.school-page__lead h2 span {
  color: #e60011;
}

.school-page__lead .container > p:last-child {
  max-width: 920px;
  font-size: clamp(16px, 1.25vw, 20px);
  line-height: 2.1;
}

.school-page__overview {
  padding-block: clamp(75px, 8vw, 120px);
  background: #f4f4f4;
}

.school-page__section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 32px;
}

.school-page__section-heading h2, .school-page__details-heading h2 {
  font-size: clamp(37px, 4.2vw, 64px);
  line-height: 1.3;
  font-weight: 800;
}

.school-page__section-heading > p {
  line-height: 1.6;
}

.school-page__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  background: #fff;
}

.school-page__table th, .school-page__table td {
  padding: 22px 28px;
  text-align: left;
  border-bottom: 1px solid #e3e3e3;
  font-size: 18px;
  vertical-align: middle;
}

.school-page__table thead th {
  background: #191919;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
}

.school-page__table th:first-child, .school-page__table td:first-child {
  width: 17%;
}

.school-page__table th:nth-child(2) {
  width: 36%;
}

.school-page__table tbody tr {
  cursor: pointer;
}

.school-page__table tbody tr:hover, .school-page__table tbody tr:focus-within {
  background: #fff8f8;
}

.school-page__table tbody th {
  font-weight: 800;
}

.school-page__table tbody th a {
  display: inline-flex;
  gap: 15px;
  align-items: center;
  color: #231815;
}

.school-page__table tbody th a:hover, .school-page__table tbody th a:focus-visible {
  color: #e60011;
}

.school-page__table tbody th a span {
  color: #e60011;
}

.school-page__table tbody td:last-child {
  font-family: Roboto, sans-serif;
  font-weight: 700;
  letter-spacing: .02em;
}

.school-page__table tbody td small {
  display: block;
  margin-top: 5px;
  font: 500 13px/1.4 sans-serif;
  letter-spacing: 0;
}

.school-page__day-pill {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  background: #e60011;
  border-radius: 50%;
  color: #fff;
  font-weight: 800;
}

.school-page__details-heading {
  background: #171717;
  color: #fff;
  padding-block: clamp(70px, 8vw, 115px);
}

.school-page__details-heading p:last-child {
  margin-top: 18px;
  font-size: 17px;
}

.school-page__day-section {
  padding-block: clamp(75px, 8vw, 130px);
}

.school-page__day-section:nth-of-type(even) {
  background: #f7f7f7;
}

.school-page__day-heading {
  display: flex;
  align-items: center;
  gap: 23px;
  padding-bottom: 29px;
  border-bottom: 2px solid #171717;
  margin-bottom: 50px;
}

.school-page__day-symbol {
  display: grid;
  place-items: center;
  width: 81px;
  height: 81px;
  flex: 0 0 81px;
  background: #e60011;
  color: #fff;
  font-size: 38px;
  font-weight: 900;
}

.school-page__day-heading > div > span {
  color: #e60011;
  font: 800 15px Roboto, sans-serif;
  letter-spacing: .12em;
}

.school-page__day-heading h2 {
  font-size: clamp(31px, 3.5vw, 50px);
  font-weight: 800;
}

.school-page__school {
  margin-bottom: 48px;
  padding: clamp(28px, 4.6vw, 70px);
  background: #fff;
  border: 1px solid #dedede;
  border-radius: 12px;
  scroll-margin-top: 20px;
}

.school-page__school:last-child {
  margin-bottom: 0;
}

.school-page__school-head {
  display: flex;
  align-items: center;
  gap: 30px;
}

.school-page__school-day,
.school-page__school-day02 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 105px;
  height: 105px;
  flex: 0 0 105px;
  background: #191919;
  color: #fff;
}

.school-page__school-day strong,
.school-page__school-day02 strong {
  font-size: 39px;
  line-height: 1.2;
}

.school-page__school-day span,
.school-page__school-day02 span {
  font-size: 11px;
}

.school-page__school-label {
  color: #e60011;
  font-size: 12px;
  margin-bottom: 6px !important;
}

.school-page__school-head h3 {
  font-size: clamp(36px, 3.6vw, 58px);
  font-weight: 800;
  line-height: 1.25;
}

.school-page__school-target {
  margin-top: 10px;
  font-size: 16px;
}

.school-page__venue {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 25px;
  margin-top: 35px;
  padding: 24px 0;
  border-top: 1px solid #dedede;
  border-bottom: 1px solid #dedede;
}

.school-page__block-label {
  color: #e60011;
  font-size: 12px;
}

.school-page__venue-name {
  margin-top: 8px;
  font-size: clamp(18px, 2vw, 25px);
  font-weight: 800;
}

.school-page__address {
  margin-top: 5px;
  font-size: 15px;
  line-height: 1.6;
}

.school-page__map {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex: 0 0 auto;
  padding: 10px 0;
  border-bottom: 2px solid #e60011;
  color: #171717;
  font-weight: 800;
  font-size: 14px;
}

.school-page__map:hover, .school-page__map:focus-visible {
  color: #e60011;
}

.school-page__map span {
  color: #e60011;
  font-size: 22px;
  line-height: .8;
}

.school-page__note {
  margin-top: 17px;
  font-size: 14px;
  line-height: 1.7;
  color: #555;
}

.school-page__school-body {
  margin-top: 38px;
}

.school-page__school-body h4, .school-page__fees h4 {
  display: flex;
  align-items: baseline;
  gap: 12px;
  font-size: clamp(21px, 2.2vw, 30px);
  font-weight: 800;
}

.school-page__school-body h4 span, .school-page__fees h4 span {
  color: #e60011;
  font: 800 13px Roboto, sans-serif;
  letter-spacing: .12em;
}

.school-page__classes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  margin: 19px 0 0;
  list-style: none;
}

.school-page__classes:has(> li:nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.school-page__class {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 24px clamp(14px, 2.5vw, 34px);
  background: #f5f5f5;
  border-top: 5px solid #e60011;
}

.school-page__class-name {
  color: #e60011;
  font: 900 clamp(28px, 3vw, 43px)/1.1 Roboto, sans-serif;
}

.school-page__class-age {
  margin-top: 10px;
  font-size: 15px;
  font-weight: 800;
}

.school-page__class-time {
  margin-top: 20px;
  font: 800 clamp(20px, 2vw, 30px)/1.2 Roboto, sans-serif;
  white-space: nowrap;
}

.school-page__class-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
  color: #555;
  font-size: 14px;
}

.school-page__fees {
  display: grid;
  grid-template-columns: 33% 1fr;
  gap: 38px;
  margin-top: 38px;
  padding: 32px clamp(20px, 3vw, 45px);
  background: #f4f4f4;
}

.school-page__fees-title > p {
  margin-top: 17px;
  line-height: 2;
}

.school-page__fees-title strong {
  margin-left: 8px;
  font-size: 19px;
}

.school-page__fees-title small {
  font-size: 12px;
}

.school-page__fees-content ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 0;
  margin: 11px 0 20px;
  list-style: none;
}

.school-page__fees-content li {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 14px;
  background: #fff;
  font-weight: 800;
}

.school-page__fees-content li span {
  color: #e60011;
  font: 900 21px Roboto, sans-serif;
}

.school-page__fees-content li strong {
  font-size: clamp(17px, 1.8vw, 24px);
  white-space: nowrap;
}

.school-page__fees-content li small {
  font-size: 11px;
}

.school-page__fee-extra {
  display: flex;
  gap: 16px;
  margin-top: 7px;
  font-size: 14px;
  line-height: 1.6;
}

.school-page__fee-extra b {
  min-width: 72px;
}

.school-page__verify {
  margin: -10px 0 18px;
  color: #b00010;
  font-size: 13px;
  font-weight: 700;
}

.school-page__friday {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 35px;
  padding: clamp(28px, 4vw, 56px);
  border: 2px solid #e60011;
  border-radius: 12px;
  background: #fff;
}

.school-page__friday h3 {
  margin: 8px 0 12px;
  font-size: clamp(30px, 3vw, 45px);
  font-weight: 800;
}

.school-page__friday h3 span {
  font-size: 18px;
  color: #e60011;
}

.school-page__friday p {
  line-height: 1.75;
}

.school-page__friday-place {
  margin-top: 18px;
  font-weight: 700;
}

.school-page__friday ul {
  padding: 0;
  margin: 0 0 25px;
  list-style: none;
}

.school-page__friday li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  padding: 13px 0;
  border-bottom: 1px solid #ddd;
}

.school-page__friday li b {
  min-width: 65px;
  color: #e60011;
  font: 900 24px Roboto, sans-serif;
}

.school-page__friday li strong {
  margin-left: auto;
  font: 800 19px Roboto, sans-serif;
}

.school-page__friday li small {
  width: 100%;
  color: #555;
}

.school-page__trial {
  padding-top: clamp(70px, 8vw, 115px);
}

@media (min-width: 992px) and (max-width: 1023px) {
  .school-page .container {
    padding-inline: 24px;
  }
}
@media (max-width: 991px) {
  .school-page__sp-only {
    display: initial;
  }

  .school-page__hero {
    min-height: 610px;
  }

  .school-page__hero > img {
    object-position: 48% center;
  }

  .school-page__hero-shade {
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.82), rgba(0, 0, 0, 0.15) 75%);
  }

  .school-page__hero-inner {
    padding-block: 120px 65px;
  }

  .school-page__hero h1 {
    font-size: clamp(73px, 15vw, 130px);
  }

  .school-page__hero-inner > p {
    font-size: clamp(29px, 5vw, 43px);
  }

  .school-page__lead, .school-page__overview, .school-page__day-section, .school-page__details-heading {
    padding-block: 75px;
  }

  .school-page__section-heading {
    align-items: start;
  }

  .school-page__table {
    display: block;
    background: transparent;
  }

  .school-page__table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .school-page__table tbody {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .school-page__table tr {
    display: grid;
    grid-template-columns: 55px 1fr;
    align-items: center;
    gap: 0 10px;
    padding: 14px;
    background: #fff;
  }

  .school-page__table th, .school-page__table td {
    display: block;
    width: auto !important;
    padding: 0;
    border: 0;
    font-size: 16px;
  }

  .school-page__table td:last-child {
    grid-column: 2;
    font-size: 14px;
    margin-top: 4px;
  }

  .school-page__day-pill {
    width: 42px;
    height: 42px;
  }

  .school-page__classes, .school-page__classes:has(> li:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .school-page__fees {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .school-page__friday {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 639px) {
  .school-page__hero {
    min-height: 510px;
  }

  .school-page__hero > img {
    object-position: 51% center;
  }

  .school-page__hero-inner {
    padding-block: 100px 48px;
  }

  .school-page__hero h1 {
    font-size: clamp(68px, 16vw, 100px);
  }

  .school-page__hero h1 small {
    margin-top: 16px;
    font-size: 17px;
  }

  .school-page__hero-inner > p {
    font-size: clamp(28px, 7vw, 38px);
  }

  .school-page__lead, .school-page__overview, .school-page__day-section, .school-page__details-heading {
    padding-block: 65px;
  }

  .school-page__lead h2, .school-page__section-heading h2, .school-page__details-heading h2 {
    font-size: clamp(33px, 8vw, 43px);
  }

  .school-page__lead .container > p:last-child {
    font-size: 15px;
  }

  .school-page__section-heading {
    display: block;
  }

  .school-page__section-heading > p {
    margin-top: 13px;
    font-size: 14px;
  }

  .school-page__table tbody {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .school-page__table tr {
    grid-template-columns: 55px 1fr;
    padding: 13px 16px;
  }

  .school-page__day-heading {
    gap: 14px;
    margin-bottom: 28px;
  }

  .school-page__day-symbol {
    width: 61px;
    height: 61px;
    flex-basis: 61px;
    font-size: 31px;
  }

  .school-page__day-heading h2 {
    font-size: 28px;
  }

  .school-page__school {
    padding: 23px 18px;
    margin-bottom: 22px;
  }

  .school-page__school-head {
    gap: 13px;
    align-items: start;
  }

  .school-page__school-day {
    width: 62px;
    height: 72px;
    flex-basis: 62px;
  }

  .school-page__school-day strong {
    font-size: 26px;
  }

  .school-page__school-day span {
    font-size: 9px;
  }

  .school-page__school-day02 {
    width: 76px;
    height: 72px;
    flex-basis: 76px;
  }

  .school-page__school-day02 strong {
    font-size: 23px;
  }

  .school-page__school-day02 span {
    font-size: 9px;
  }

  .school-page__school-head h3 {
    font-size: clamp(29px, 7.5vw, 39px);
  }

  .school-page__school-target {
    font-size: 13px;
  }

  .school-page__venue {
    display: block;
    margin-top: 22px;
    padding-block: 19px;
  }

  .school-page__venue-name {
    font-size: 19px;
  }

  .school-page__address {
    font-size: 13px;
  }

  .school-page__map {
    margin-top: 10px;
    font-size: 13px;
  }

  .school-page__school-body {
    margin-top: 26px;
  }

  .school-page__classes, .school-page__classes:has(> li:nth-child(2):last-child) {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .school-page__class {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0 6px;
    padding: 15px 18px;
  }

  .school-page__class-name {
    grid-column: 1;
    font-size: 28px;
  }

  .school-page__class-age {
    grid-column: 1;
    margin-top: 3px;
    font-size: 13px;
  }

  .school-page__class-time {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    margin: 0;
    font-size: 21px;
  }

  .school-page__class-meta {
    grid-column: 2;
    grid-row: 2;
    justify-content: end;
    margin: 0;
    font-size: 12px;
  }

  .school-page__fees {
    margin-top: 26px;
    padding: 20px 17px;
  }

  .school-page__fees-content ul {
    grid-template-columns: 1fr;
  }

  .school-page__fees-content li {
    flex-direction: row;
    justify-content: space-between;
    align-items: baseline;
  }

  .school-page__fees-content li strong {
    font-size: 19px;
  }

  .school-page__fee-extra {
    display: block;
  }

  .school-page__fee-extra b {
    display: block;
  }

  .school-page__friday {
    padding: 24px 18px;
    gap: 18px;
  }

  .school-page__friday li strong {
    font-size: 17px;
  }
}
/* スクール案内　ここまで */
/* プライベートレッスン　ここから */
.private-lesson-page {
  color: #1b1b1b;
}

.private-lesson-page *, .private-lesson-page *::before, .private-lesson-page *::after {
  box-sizing: border-box;
}

.private-lesson-page strong {
  background: none;
}

.private-lesson-page p, .private-lesson-page h1, .private-lesson-page h2, .private-lesson-page h3 {
  margin-bottom: 0;
}

.private-lesson-page__hero {
  position: relative;
  isolation: isolate;
  min-height: 480px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #171717;
  color: #fff;
  margin-top: 80px;
}

.private-lesson-page__hero::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: -90px;
  right: -12%;
  width: min(66vw, 950px);
  height: 680px;
  /*
  background: #e60011;
  */
  background: url("../img/private-lesson-fv.jpg");
  transform: rotate(-21deg);
}

.private-lesson-page__hero::after {
  content: 'HAMAjUKU';
  position: absolute;
  z-index: -1;
  right: -2%;
  bottom: -.27em;
  color: rgba(255, 255, 255, 0.09);
  font: 900 clamp(100px, 17vw, 250px)/1 Roboto, sans-serif;
  letter-spacing: -.07em;
  text-transform: uppercase;
  pointer-events: none;
}

.private-lesson-page__hero-inner {
  padding-block: 100px 95px;
}

.private-lesson-page__eyebrow, .private-lesson-page__label, .private-lesson-page__hero-count {
  font: 800 13px/1.5 Roboto, sans-serif;
  letter-spacing: .16em;
}

.private-lesson-page__eyebrow {
  margin-bottom: 20px !important;
  color: #fff;
}

.private-lesson-page__hero h1 {
  font: 900 clamp(66px, 10vw, 150px)/0.87 Roboto, sans-serif;
  letter-spacing: -.055em;
}

.private-lesson-page__hero h1 span {
  display: block;
  margin-top: 26px;
  font: 800 clamp(17px, 1.7vw, 24px)/1.5 sans-serif;
  letter-spacing: .05em;
}

.private-lesson-page__hero-message {
  margin-top: 40px;
  font-size: clamp(26px, 3.2vw, 48px);
  font-weight: 800;
  line-height: 1.5;
}

.private-lesson-page__hero-message em {
  color: #e60011;
  font-style: normal;
}

.private-lesson-page__hero-count {
  position: absolute;
  bottom: 30px;
  right: 4%;
  color: #fff;
}

.private-lesson-page__label {
  margin-bottom: 20px !important;
  color: #e60011;
}

.private-lesson-page__label span {
  font: 700 12px/1.5 sans-serif;
  letter-spacing: .03em;
}

.private-lesson-page__intro, .private-lesson-page__approach {
  padding-block: clamp(85px, 10vw, 155px);
}

.private-lesson-page__intro-grid, .private-lesson-page__approach-grid {
  display: grid;
  grid-template-columns: 1fr 47%;
  align-items: center;
  gap: clamp(50px, 7vw, 130px);
}

.private-lesson-page__intro-copy h2, .private-lesson-page__approach-copy h2 {
  margin-bottom: 38px;
  font-size: clamp(34px, 4.1vw, 62px);
  font-weight: 800;
  line-height: 1.48;
  letter-spacing: .01em;
}

.private-lesson-page__intro-copy h2 span, .private-lesson-page__approach-copy h2 span {
  color: #e60011;
}

.private-lesson-page__intro-copy > p:not(.private-lesson-page__label), .private-lesson-page__approach-copy > p:not(.private-lesson-page__label) {
  max-width: 650px;
  margin-top: 22px;
  font-size: clamp(15px, 1.15vw, 18px);
  line-height: 2.15;
}

.private-lesson-page__intro-image, .private-lesson-page__approach-image {
  position: relative;
  margin: 0;
}

.private-lesson-page__intro-image img, .private-lesson-page__approach-image img {
  display: block;
  width: 100%;
  aspect-ratio: 1/1.13;
  object-fit: cover;
  border-radius: 12px 78px 12px 12px;
}

.private-lesson-page__intro-image img {
  object-position: 57% center;
}

.private-lesson-page__intro-image figcaption {
  position: absolute;
  right: -15px;
  bottom: -18px;
  padding: 13px 20px;
  background: #e60011;
  color: #fff;
  font: 800 12px Roboto, sans-serif;
  letter-spacing: .12em;
}

.private-lesson-page__approach {
  background: #f5f5f5;
}

.private-lesson-page__approach-grid {
  grid-template-columns: 47% 1fr;
}

.private-lesson-page__approach-image img {
  object-position: 53% center;
  border-radius: 78px 12px 12px 12px;
}

.private-lesson-page__features, .private-lesson-page__details, .private-lesson-page__pricing, .private-lesson-page__flow {
  padding-block: clamp(80px, 9vw, 135px);
}

.private-lesson-page__heading {
  margin-bottom: 42px;
}

.private-lesson-page__heading h2, .private-lesson-page__details-heading h2 {
  font-size: clamp(36px, 4.3vw, 65px);
  font-weight: 800;
  line-height: 1.35;
}

.private-lesson-page__heading h2 span, .private-lesson-page__details-heading h2 span {
  color: #e60011;
}

.private-lesson-page__heading > p:last-child {
  margin-top: 18px;
  font-size: 17px;
  line-height: 1.9;
}

.private-lesson-page__feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.private-lesson-page__feature {
  padding: clamp(27px, 3vw, 47px);
  border-top: 5px solid #e60011;
  background: #f4f4f4;
  min-width: 0;
}

.private-lesson-page__feature-number {
  color: #e60011;
  font: 900 clamp(45px, 5.5vw, 78px)/1 Roboto, sans-serif;
  letter-spacing: -.05em;
}

.private-lesson-page__feature h3 {
  min-height: 3.15em;
  margin: 23px 0 21px;
  font-size: clamp(21px, 2vw, 29px);
  font-weight: 800;
  line-height: 1.55;
}

.private-lesson-page__feature > p:last-child {
  font-size: clamp(14px, 1.07vw, 17px);
  line-height: 1.95;
}

.private-lesson-page__details {
  background: #191919;
  color: #fff;
}

.private-lesson-page__details-grid {
  display: grid;
  grid-template-columns: 36% 1fr;
  gap: 6%;
}

.private-lesson-page__details-heading > p:last-child {
  margin-top: 28px;
  max-width: 300px;
  line-height: 1.9;
}

.private-lesson-page__details-list {
  margin: 0;
}

.private-lesson-page__details-list > div {
  display: grid;
  grid-template-columns: 125px 1fr;
  gap: 20px;
  padding: 21px 0;
  border-bottom: 1px solid #555;
}

.private-lesson-page__details-list > div:first-child {
  border-top: 1px solid #555;
}

.private-lesson-page__details-list dt {
  color: #ff4653;
  font-weight: 800;
}

.private-lesson-page__details-list dd {
  margin: 0;
  line-height: 1.75;
}

.private-lesson-page__details-list dd small {
  font-size: 13px;
}

.private-lesson-page__details-note {
  margin-top: 17px;
  color: #ccc;
  font-size: 13px;
  line-height: 1.7;
}

.private-lesson-page__pricing {
  background: #f4f4f4;
}

.private-lesson-page__price-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.private-lesson-page__price-card {
  padding: clamp(27px, 3.4vw, 52px);
  background: #fff;
  border-radius: 12px;
}

.private-lesson-page__price-photo {
  position: relative;
  margin: 0 0 30px;
}

.private-lesson-page__price-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 10/7;
  object-fit: cover;
  background: #ddd;
}

.private-lesson-page__price-photo figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 8px 11px;
  background: #262626;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
}

.private-lesson-page__price-person {
  display: flex;
  align-items: center;
  gap: 22px;
  padding-bottom: 28px;
  border-bottom: 2px solid #231815;
}

.private-lesson-page__price-person > span {
  display: grid;
  place-items: center;
  flex: 0 0 70px;
  width: 70px;
  height: 70px;
  background: #e60011;
  color: #fff;
  font: 900 28px Roboto, sans-serif;
}

.private-lesson-page__price-person p {
  color: #e60011;
  font-size: 14px;
  font-weight: 800;
}

.private-lesson-page__price-person h3 {
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 800;
}

.private-lesson-page__price-card dl {
  margin: 18px 0 0;
}

.private-lesson-page__price-card dl div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding-block: 14px;
  border-bottom: 1px solid #ddd;
}

.private-lesson-page__price-card dt {
  font: 800 clamp(20px, 2vw, 28px) Roboto, sans-serif;
}

.private-lesson-page__price-card dd {
  margin: 0;
  color: #e60011;
  font: 900 clamp(36px, 4vw, 61px)/1.2 Roboto, sans-serif;
  letter-spacing: -.05em;
}

.private-lesson-page__price-card dd small {
  margin-left: 6px;
  font: 800 19px sans-serif;
  letter-spacing: 0;
}

.private-lesson-page__price-note {
  margin-top: 24px;
  font-size: 14px;
  line-height: 1.9;
}

.private-lesson-page__price-note a {
  color: #b1000d;
  text-decoration: underline;
}

.private-lesson-page__flow-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: flow;
}

.private-lesson-page__flow-list li {
  position: relative;
  padding: 26px clamp(18px, 3vw, 43px) 32px;
  border-top: 3px solid #1c1c1c;
}

.private-lesson-page__flow-list li + li {
  border-left: 1px solid #ddd;
}

.private-lesson-page__flow-list li::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 0;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #e60011;
}

.private-lesson-page__flow-list span {
  color: #e60011;
  font: 900 22px Roboto, sans-serif;
}

.private-lesson-page__flow-list h3 {
  margin-top: 14px;
  font-size: clamp(20px, 2vw, 29px);
  font-weight: 800;
}

.private-lesson-page__flow-list p {
  margin-top: 12px;
  line-height: 1.8;
}

.private-lesson-page__apply {
  margin-top: 45px;
  padding: clamp(29px, 5vw, 65px);
  background: #191919;
  color: #fff;
  text-align: center;
}

.private-lesson-page__apply > p {
  max-width: 760px;
  margin-inline: auto;
  font-size: clamp(17px, 1.6vw, 23px);
  font-weight: 800;
  line-height: 1.8;
}

.private-lesson-page__apply-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 13px;
  margin-top: 28px;
}

.private-lesson-page__apply-links a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  min-width: 220px;
  padding: 17px 24px;
  font-weight: 800;
  transition: opacity .2s;
}

.private-lesson-page__apply-links a:hover, .private-lesson-page__apply-links a:focus-visible {
  opacity: .75;
}

.private-lesson-page__apply-links span {
  font-size: 22px;
  line-height: 1;
}

.private-lesson-page__apply-line {
  background: #05c755;
  color: #fff;
}

.private-lesson-page__apply-contact {
  background: #e60011;
  color: #fff;
}

.private-lesson-page__trial {
  padding-top: clamp(70px, 8vw, 115px);
}

@media (min-width: 992px) and (max-width: 1023px) {
  .private-lesson-page .container {
    padding-inline: 24px;
  }
}
@media (max-width: 991px) {
  .private-lesson-page__hero {
    min-height: 430px;
  }

  .private-lesson-page__hero::before {
    width: 65vw;
    right: -30%;
  }

  .private-lesson-page__hero-inner {
    padding-block: 95px 80px;
  }

  .private-lesson-page__hero h1 {
    font-size: clamp(69px, 12vw, 112px);
  }

  .private-lesson-page__intro-grid, .private-lesson-page__approach-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .private-lesson-page__approach-image {
    order: 2;
  }

  .private-lesson-page__intro-image img, .private-lesson-page__approach-image img {
    max-height: 540px;
    aspect-ratio: 1.5;
    border-radius: 12px 42px 12px 12px;
  }

  .private-lesson-page__feature-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .private-lesson-page__feature h3 {
    min-height: 0;
    margin-block: 12px;
  }

  .private-lesson-page__details-grid {
    grid-template-columns: 1fr;
    gap: 35px;
  }

  .private-lesson-page__details-heading > p:last-child {
    max-width: none;
  }

  .private-lesson-page__price-grid {
    gap: 13px;
  }

  .private-lesson-page__flow-list {
    grid-template-columns: 1fr;
  }

  .private-lesson-page__flow-list li {
    border-left: 3px solid #1c1c1c !important;
    border-top: 0;
    padding: 0 0 33px 31px;
  }

  .private-lesson-page__flow-list li::before {
    top: 0;
    left: -8px;
  }
}
@media (max-width: 639px) {
  .private-lesson-page__hero {
    min-height: 370px;
  }

  .private-lesson-page__hero::before {
    right: -42%;
    transform: rotate(-27deg);
  }

  .private-lesson-page__hero-inner {
    padding-block: 90px 55px;
  }

  .private-lesson-page__hero h1 {
    font-size: clamp(55px, 13vw, 75px);
  }

  .private-lesson-page__hero h1 span {
    margin-top: 18px;
    font-size: 17px;
  }

  .private-lesson-page__hero-message {
    margin-top: 27px;
    font-size: clamp(24px, 6vw, 32px);
  }

  .private-lesson-page__hero-count {
    display: none;
  }

  .private-lesson-page__intro, .private-lesson-page__approach, .private-lesson-page__features, .private-lesson-page__details, .private-lesson-page__pricing, .private-lesson-page__flow {
    padding-block: 70px;
  }

  .private-lesson-page__intro-copy h2, .private-lesson-page__approach-copy h2, .private-lesson-page__heading h2, .private-lesson-page__details-heading h2 {
    font-size: clamp(31px, 7.2vw, 42px);
  }

  .private-lesson-page__intro-copy h2, .private-lesson-page__approach-copy h2 {
    margin-bottom: 25px;
  }

  .private-lesson-page__intro-image img, .private-lesson-page__approach-image img {
    aspect-ratio: 1.12;
  }

  .private-lesson-page__intro-image figcaption {
    right: 0;
    font-size: 10px;
  }

  .private-lesson-page__heading {
    margin-bottom: 27px;
  }

  .private-lesson-page__details-list > div {
    grid-template-columns: 92px 1fr;
    gap: 10px;
    font-size: 14px;
  }

  .private-lesson-page__price-grid {
    grid-template-columns: 1fr;
  }

  .private-lesson-page__price-person > span {
    width: 57px;
    height: 57px;
    flex-basis: 57px;
    font-size: 23px;
  }

  .private-lesson-page__price-person h3 {
    font-size: 30px;
  }

  .private-lesson-page__price-card dd {
    font-size: 42px;
  }

  .private-lesson-page__apply-links {
    flex-direction: column;
  }

  .private-lesson-page__apply-links a {
    width: 100%;
  }
}
/* プライベートレッスン　ここまで */
/* コーチ紹介　ここから */
.coach-page {
  color: #1b1b1b;
}

.coach-page *, .coach-page *::before, .coach-page *::after {
  box-sizing: border-box;
}

.coach-page strong {
  background: none;
}

.coach-page p, .coach-page h1, .coach-page h2, .coach-page h3, .coach-page h4 {
  margin-bottom: 0;
}

.coach-page__hero {
  position: relative;
  isolation: isolate;
  min-height: 455px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #231815;
  color: #fff;
}

.coach-page__hero::before {
  content: '';
  position: absolute;
  z-index: -1;
  right: -14%;
  top: -70%;
  width: 65%;
  height: 200%;
  background: #e60011;
  transform: rotate(19deg);
}

.coach-page__hero::after {
  content: 'HAMAJUKU';
  position: absolute;
  z-index: -1;
  right: -2%;
  bottom: -.26em;
  font: 900 clamp(120px, 18vw, 270px)/1 Roboto, sans-serif;
  color: rgba(255, 255, 255, 0.085);
  letter-spacing: -.07em;
  pointer-events: none;
}

.coach-page__hero-inner {
  padding-block: 105px 92px;
}

.coach-page__hero-kicker, .coach-page__label, .coach-page__number, .coach-page__portrait figcaption {
  font: 800 13px/1.5 Roboto, sans-serif;
  letter-spacing: 0.16em;
}

.coach-page__hero-kicker {
  margin-bottom: 18px !important;
}

.coach-page__hero h1 {
  font: 900 clamp(88px, 12vw, 180px)/0.87 Roboto, sans-serif;
  letter-spacing: -0.055em;
}

.coach-page__hero h1 span {
  display: block;
  margin-top: 28px;
  font: 800 clamp(17px, 1.7vw, 25px)/1.5 sans-serif;
  letter-spacing: 0.07em;
}

.coach-page__hero-lead {
  margin-top: 36px;
  font-size: clamp(29px, 3.7vw, 54px);
  font-weight: 800;
  line-height: 1.48;
}

.coach-page__hero-lead em {
  font-style: normal;
}

.coach-page__intro {
  padding-block: clamp(85px, 9vw, 145px);
}

.coach-page__label {
  color: #e60011;
  margin-bottom: 19px !important;
}

.coach-page__intro h2 {
  font-size: clamp(38px, 4.8vw, 72px);
  font-weight: 800;
  line-height: 1.4;
}

.coach-page__intro h2 span {
  color: #e60011;
}

.coach-page__intro-inner > p:last-child {
  margin-top: 24px;
  font-size: clamp(16px, 1.3vw, 20px);
  line-height: 1.95;
}

.coach-page__profile {
  padding-block: clamp(85px, 9vw, 145px);
  border-top: 1px solid #f2f2f2;
  border-bottom: 5px solid #f2f2f2;
}

.coach-page__profile:nth-child(odd):not(.coach-page__profile--lead) {
  /*
  background: #f2f2f2
  */
}

.coach-page__profile--lead {
  /*
  background: #191919;
  */
  background: #f2f2f2;
  color: #fff;
  border-top: 0;
}

.coach-page__profile-grid {
  display: grid;
  grid-template-columns: 43% minmax(0, 1fr);
  gap: clamp(55px, 7vw, 125px);
  align-items: start;
}

.coach-page__profile:nth-child(even) .coach-page__portrait {
  order: 2;
}

.coach-page__portrait {
  position: relative;
  min-width: 0;
  margin: 0;
}

.coach-page__portrait img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3/3.55;
  object-fit: cover;
  object-position: center 22%;
  border-radius: 10px 70px 10px 10px;
  background: #ececec;
}

.coach-page__profile:nth-child(even) .coach-page__portrait img {
  border-radius: 70px 10px 10px 10px;
}

.coach-page__portrait figcaption {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 12px 18px;
  color: #fff;
  background: #e60011;
  font-size: 12px;
}

.coach-page__profile:nth-child(even) .coach-page__portrait figcaption {
  left: auto;
  right: 0;
}

.coach-page__number {
  display: flex;
  align-items: center;
  gap: 15px;
  color: #e60011;
  font-size: 40px;
}

.coach-page__number span {
  color: #777;
  font-size: 12px;
}

.coach-page__profile--lead .coach-page__number span {
  color: #bbb;
}

.coach-page__role {
  margin-top: 27px;
  color: #e60011;
  font-size: 17px;
  font-weight: 800;
}

.coach-page__profile--lead .coach-page__role {
  color: #e60011;
}

.coach-page__profile h3 {
  margin-top: 8px;
  font-size: clamp(43px, 4.8vw, 71px);
  font-weight: 800;
  line-height: 1.25;
}

.coach-page__profile h3 small {
  display: block;
  margin-top: 7px;
  color: #e60011;
  font: 900 clamp(19px, 2vw, 29px)/1.2 Roboto, sans-serif;
  letter-spacing: 0.035em;
}

.coach-page__profile--lead h3 small {
  color: #e60011;
}

.coach-page__home {
  margin-top: 20px;
  color: #666;
  font-weight: 700;
}

.coach-page__profile--lead .coach-page__home {
  color: #bbb;
}

.coach-page__bio {
  margin-top: 36px;
  font-size: clamp(15px, 1.1vw, 17px);
  line-height: 2.1;
}

.coach-page__history {
  margin-top: 43px;
}

.coach-page__history-group {
  padding-block: 21px;
  border-top: 1px solid #d6d6d6;
}

.coach-page__history-group:last-child {
  border-bottom: 1px solid #d6d6d6;
}

.coach-page__profile--lead .coach-page__history-group {
  border-color: #555;
}

.coach-page__history-group h4 {
  margin-bottom: 14px;
  padding-left: 12px;
  border-left: 4px solid #e60011;
  font-size: 18px;
  font-weight: 800;
}

.coach-page__history-group ul {
  margin: 0;
  padding: 0 0 0 16px;
  list-style: none;
}

.coach-page__history-group li {
  position: relative;
  padding-left: 14px;
  font-size: 14px;
  line-height: 1.9;
  overflow-wrap: anywhere;
}

.coach-page__history-group li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .85em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #e60011;
}

.coach-page__trial {
  padding-top: clamp(75px, 8vw, 120px);
}

@media (min-width: 992px) and (max-width: 1023px) {
  .coach-page .container {
    padding-inline: 24px;
  }
}
@media (max-width: 991px) {
  .coach-page__hero {
    min-height: 430px;
  }

  .coach-page__hero::before {
    right: -35%;
    width: 80%;
  }

  .coach-page__hero-inner {
    padding-block: 100px 78px;
  }

  .coach-page__hero h1 {
    font-size: clamp(75px, 14vw, 128px);
  }

  .coach-page__profile-grid {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .coach-page__portrait, .coach-page__profile:nth-child(even) .coach-page__portrait {
    order: 0;
    width: 100%;
    max-width: 620px;
    margin-inline: auto;
  }

  .coach-page__portrait img, .coach-page__profile:nth-child(even) .coach-page__portrait img {
    aspect-ratio: 1.15;
    object-position: center 23%;
    border-radius: 10px 50px 10px 10px;
  }

  .coach-page__role {
    margin-top: 14px;
  }

  .coach-page__bio {
    margin-top: 25px;
  }

  .coach-page__history {
    margin-top: 32px;
  }
}
@media (max-width: 639px) {
  .coach-page__hero {
    min-height: 360px;
  }

  .coach-page__hero::before {
    right: -46%;
    transform: rotate(24deg);
  }

  .coach-page__hero-inner {
    padding-block: 95px 65px;
  }

  .coach-page__hero h1 {
    font-size: clamp(67px, 17vw, 90px);
  }

  .coach-page__hero h1 span {
    margin-top: 16px;
    font-size: 17px;
  }

  .coach-page__hero-lead {
    margin-top: 25px;
    font-size: clamp(25px, 6vw, 34px);
  }

  .coach-page__intro, .coach-page__profile {
    padding-block: 72px;
  }

  .coach-page__intro h2 {
    font-size: clamp(32px, 8vw, 43px);
  }

  .coach-page__portrait img, .coach-page__profile:nth-child(even) .coach-page__portrait img {
    aspect-ratio: 0.88;
  }

  .coach-page__portrait figcaption {
    font-size: 10px;
  }

  .coach-page__profile h3 {
    font-size: 44px;
  }

  .coach-page__profile h3 small {
    font-size: 18px;
  }

  .coach-page__bio {
    font-size: 15px;
  }

  .coach-page__history-group li {
    padding-left: 13px;
    font-size: 13px;
  }
}
/* コーチ紹介　ここまで */
/* 下層ページFV（コンセプトページ以外） */
/*プライベートレッスンFV　ここから*/
.private-lesson-concept-page__hero {
  position: relative;
  min-height: 390px;
  background: #151515;
  color: #fff;
  overflow: hidden;
  margin-top: 80px;
}

.private-lesson-concept-page__hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.69) 0%, rgba(0, 0, 0, 0.22) 56%, transparent 100%), linear-gradient(0deg, rgba(0, 0, 0, 0.67), transparent 60%), url("../img/private-lesson-fv.jpg") center top/cover no-repeat;
  background-position: top, top, calc(50% + 0) top;
}

.private-lesson-concept-page__hero::after {
  content: 'HAMAJUKU';
  position: absolute;
  right: -.04em;
  bottom: -.27em;
  font: 900 clamp(100px, 16vw, 270px)/1 Roboto, sans-serif;
  letter-spacing: -.07em;
  color: rgba(255, 255, 255, 0.065);
  pointer-events: none;
}

@media (max-width: 991px) {
  .private-lesson-concept-page__hero {
    min-height: 380px;
  }

  .private-lesson-concept-page__hero::before {
    background-position: center center, center center, calc(50% + 40px) 53%;
    /* 画像だけ左へ70px */
  }
}
@media (max-width: 639px) {
  .private-lesson-concept-page__hero {
    min-height: 355px;
  }
}
/* パートナーページ　ここから */
.partner-page {
  color: #1b1b1b;
}

.partner-page *, .partner-page *::before, .partner-page *::after {
  box-sizing: border-box;
}

.partner-page strong {
  background: none;
}

.partner-page p, .partner-page h1, .partner-page h2, .partner-page h3 {
  margin-bottom: 0;
}

.partner-page__hero {
  position: relative;
  isolation: isolate;
  min-height: 455px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #231815;
  color: #fff;
}

.partner-page__hero::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: -85%;
  right: -16%;
  width: 66%;
  height: 240%;
  background: #e60011;
  transform: rotate(22deg);
}

.partner-page__hero::after {
  content: 'HAMAJUKU';
  position: absolute;
  z-index: -1;
  right: -3%;
  bottom: -.27em;
  color: rgba(255, 255, 255, 0.09);
  font: 900 clamp(110px, 18vw, 270px)/1 Roboto, sans-serif;
  letter-spacing: -.07em;
  pointer-events: none;
}

.partner-page__hero-inner {
  padding-block: 100px 90px;
}

.partner-page__hero-kicker, .partner-page__label, .partner-page__lead-photo figcaption {
  font: 800 13px/1.5 Roboto, sans-serif;
  letter-spacing: 0.15em;
}

.partner-page__hero-kicker {
  margin-bottom: 18px !important;
}

.partner-page__hero h1 {
  font: 900 clamp(83px, 12vw, 174px)/0.9 Roboto, sans-serif;
  letter-spacing: -0.055em;
}

.partner-page__hero h1 span {
  display: block;
  margin-top: 22px;
  font: 800 clamp(17px, 1.7vw, 25px)/1.5 sans-serif;
  letter-spacing: 0.08em;
}

.partner-page__hero-message {
  margin-top: 35px;
  font-size: clamp(28px, 3.7vw, 53px);
  font-weight: 800;
  line-height: 1.5;
}

.partner-page__hero-message em {
  font-style: normal;
}

.partner-page__label {
  margin-bottom: 22px !important;
  color: #e60011;
}

.partner-page__lead, .partner-page__mission, .partner-page__official, .partner-page__recruit {
  padding-block: clamp(85px, 9vw, 145px);
}

.partner-page__lead-grid, .partner-page__mission-grid {
  display: grid;
  grid-template-columns: 1fr 46%;
  gap: clamp(52px, 7vw, 125px);
  align-items: center;
}

.partner-page__lead-copy h2, .partner-page__mission-copy h2 {
  margin-bottom: 32px;
  font-size: clamp(34px, 3.8vw, 59px);
  font-weight: 800;
  line-height: 1.46;
}

.partner-page__lead-copy h2 span, .partner-page__mission-copy h2 span {
  color: #e60011;
}

.partner-page__lead-copy > p:last-child, .partner-page__mission-copy > p:not(.partner-page__label):not(.partner-page__mission-quote) {
  font-size: clamp(16px, 1.14vw, 18px);
  line-height: 2.1;
}

.partner-page__lead-photo, .partner-page__mission-grid figure {
  position: relative;
  margin: 0;
}

.partner-page__lead-photo img, .partner-page__mission-grid figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1.05;
  object-fit: cover;
  object-position: center center;
  border-radius: 12px 75px 12px 12px;
}

.partner-page__lead-photo figcaption {
  position: absolute;
  right: -14px;
  bottom: -17px;
  padding: 12px 16px;
  background: #e60011;
  color: #fff;
  font-size: 11px;
}

.partner-page__mission {
  background: #f4f4f4;
}

.partner-page__mission-grid {
  grid-template-columns: 46% 1fr;
}

.partner-page__mission-grid figure img {
  border-radius: 75px 12px 12px 12px;
  object-position: center center;
}

.partner-page__mission-copy > p:not(.partner-page__label) {
  margin-top: 20px;
}

.partner-page__mission-quote {
  margin-block: 28px !important;
  padding-left: 20px;
  border-left: 5px solid #e60011;
  font-size: clamp(20px, 2vw, 29px);
  font-weight: 800;
  line-height: 1.8;
}

.partner-page__official-heading {
  margin-bottom: 20px;
}

.partner-page__official-heading h2 {
  font-size: clamp(43px, 6vw, 86px);
  letter-spacing: -.04em;
  margin-bottom: 20px;
}

.partner-page__official-intro {
  text-align: center;
  font-size: 17px;
  line-height: 1.8;
}

.partner-page__logo-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 15px;
  margin: 55px 0 0;
  padding: 0;
  list-style: none;
}

.partner-page__logo-grid li {
  display: grid;
  place-items: center;
  min-width: 0;
  background: #211916;
  border: 1px solid #3e3330;
  aspect-ratio: 2/1;
}

.partner-page__logo-grid img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.partner-page__recruit {
  background: #f2f2f2;
}

.partner-page__recruit-head h2 {
  font-size: clamp(37px, 4.7vw, 72px);
  line-height: 1.4;
  font-weight: 800;
}

.partner-page__recruit-head h2 span {
  color: #e60011;
}

.partner-page__recruit-head > p:last-child {
  max-width: 910px;
  margin-top: 25px;
  font-size: 17px;
  line-height: 2;
}

.partner-page__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px;
  margin: 60px 0 0;
  padding: 0;
  list-style: none;
}

.partner-page__steps li {
  padding: clamp(26px, 3vw, 43px);
  min-width: 0;
  border-top: 4px solid #e60011;
  background: #292929;
}

.partner-page__steps li > span {
  color: #e60011;
  font: 900 clamp(48px, 5vw, 75px)/1 Roboto, sans-serif;
  letter-spacing: -0.04em;
}

.partner-page__steps h3 {
  margin-top: 22px;
  font-size: clamp(21px, 2vw, 29px);
  color: #fff;
  font-weight: 800;
}

.partner-page__steps p {
  margin-top: 14px;
  font-size: 15px;
  line-height: 1.85;
  color: #e0e0e0;
}

.partner-page__contact {
  margin-top: 65px;
  padding-top: 46px;
  border-top: 1px solid #777;
  text-align: center;
}

.partner-page__contact > p {
  font-size: clamp(17px, 1.7vw, 24px);
  font-weight: 800;
  line-height: 1.7;
}

.partner-page__contact-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  max-width: 1000px;
  margin: 31px auto 0;
}

.partner-page__contact-links a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  min-height: 84px;
  padding: 17px clamp(18px, 2.5vw, 34px);
  color: #fff;
  font-size: clamp(15px, 1.2vw, 18px);
  font-weight: 800;
  text-align: left;
  transition: opacity 0.2s;
}

.partner-page__contact-links a:hover, .partner-page__contact-links a:focus-visible {
  opacity: .75;
  color: #fff;
}

.partner-page__contact-tel {
  border: 2px solid #fff;
  background: #212121;
}

.partner-page__contact-tel strong {
  display: inline-block;
  margin-left: 10px;
  font: 800 clamp(20px, 2vw, 28px) Roboto, sans-serif;
}

.partner-page__contact-form {
  background: #e60011;
}

.partner-page__contact-links a > span:last-child {
  font-size: 25px;
  line-height: 1;
}

.partner-page__trial {
  padding-top: clamp(75px, 8vw, 120px);
}

@media (min-width: 992px) and (max-width: 1023px) {
  .partner-page .container {
    padding-inline: 24px;
  }
}
@media (max-width: 991px) {
  .partner-page__hero {
    min-height: 425px;
  }

  .partner-page__hero::before {
    right: -36%;
    width: 80%;
  }

  .partner-page__hero-inner {
    padding-block: 100px 75px;
  }

  .partner-page__hero h1 {
    font-size: clamp(75px, 14vw, 126px);
  }

  .partner-page__lead-grid, .partner-page__mission-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .partner-page__mission-grid figure {
    order: 2;
  }

  .partner-page__lead-photo, .partner-page__mission-grid figure {
    max-width: 690px;
    width: 100%;
    margin-inline: auto;
  }

  .partner-page__lead-photo img, .partner-page__mission-grid figure img {
    aspect-ratio: 1.45;
    border-radius: 12px 45px 12px 12px;
  }

  .partner-page__logo-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .partner-page__steps {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .partner-page__steps li {
    display: grid;
    grid-template-columns: 85px 1fr;
    align-items: start;
    gap: 4px 18px;
  }

  .partner-page__steps h3 {
    margin-top: 7px;
  }

  .partner-page__steps p {
    grid-column: 2;
    margin-top: 0;
  }
}
@media (max-width: 639px) {
  .partner-page__hero {
    min-height: 360px;
  }

  .partner-page__hero::before {
    right: -52%;
    transform: rotate(27deg);
  }

  .partner-page__hero-inner {
    padding-block: 95px 65px;
  }

  .partner-page__hero h1 {
    font-size: clamp(65px, 15vw, 86px);
  }

  .partner-page__hero h1 span {
    margin-top: 16px;
    font-size: 17px;
  }

  .partner-page__hero-message {
    font-size: clamp(25px, 6vw, 34px);
  }

  .partner-page__lead, .partner-page__mission, .partner-page__official, .partner-page__recruit {
    padding-block: 70px;
  }

  .partner-page__lead-copy h2, .partner-page__mission-copy h2, .partner-page__recruit-head h2 {
    font-size: clamp(31px, 7.2vw, 43px);
  }

  .partner-page__lead-photo img, .partner-page__mission-grid figure img {
    aspect-ratio: 1.2;
  }

  .partner-page__lead-photo figcaption {
    right: 0;
    font-size: 10px;
  }

  .partner-page__official-heading h2 {
    font-size: clamp(42px, 10vw, 58px);
  }

  .partner-page__official-intro {
    font-size: 15px;
  }

  .partner-page__logo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 32px;
  }

  .partner-page__steps {
    margin-top: 34px;
  }

  .partner-page__steps li {
    grid-template-columns: 62px 1fr;
    gap: 5px 14px;
    padding: 22px 17px;
  }

  .partner-page__steps li > span {
    font-size: 46px;
  }

  .partner-page__steps h3 {
    font-size: 19px;
  }

  .partner-page__steps p {
    font-size: 14px;
  }

  .partner-page__contact {
    margin-top: 45px;
  }

  .partner-page__contact-links {
    grid-template-columns: 1fr;
  }

  .partner-page__contact-links a {
    min-height: 75px;
  }

  .partner-page__contact-tel strong {
    font-size: 22px;
  }
}
/* パートナーページ　ここまで */
/*コーチ紹介FV　ここから*/
.coach-concept-page__hero {
  position: relative;
  min-height: 390px;
  background: #151515;
  color: #fff;
  overflow: hidden;
  margin-top: 80px;
}

.coach-concept-page__hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.69) 0%, rgba(0, 0, 0, 0.22) 56%, transparent 100%), linear-gradient(0deg, rgba(0, 0, 0, 0.67), transparent 60%), url("../img/coach-fv.jpg") center 53%/cover no-repeat;
}

.coach-concept-page__hero::after {
  content: 'HAMAJUKU';
  position: absolute;
  right: -.04em;
  bottom: -.27em;
  font: 900 clamp(100px, 16vw, 270px)/1 Roboto, sans-serif;
  letter-spacing: -.07em;
  color: rgba(255, 255, 255, 0.065);
  pointer-events: none;
}

@media (max-width: 991px) {
  .coach-concept-page__hero {
    min-height: 380px;
  }

  .coach-concept-page__hero::before {
    background-position: left;
  }
}
@media (max-width: 639px) {
  .coach-concept-page__hero {
    min-height: 355px;
  }
}
/* 無料体験レッスン申込み　ここから */
.trial-lesson-page {
  --trial-red: #e60011;
  --trial-ink: #171718;
  --trial-muted: #626265;
  color: var(--trial-ink);
  background: #fff;
}

.trial-lesson-page :where(h1, h2, h3, h4, p) {
  margin: 0;
}

.trial-lesson-page :where(a, a:hover) {
  text-decoration: none;
}

.trial-lesson-page :where(img) {
  display: block;
  max-width: 100%;
}

.trial-lesson-page :where(strong) {
  background: none;
}

.trial-lesson-page__hero {
  background: #231815;
  color: #fff;
  overflow: hidden;
  margin-top: 80px;
}

.trial-lesson-page__hero-inner {
  min-height: 510px;
  padding-top: 94px;
  padding-bottom: 48px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.trial-lesson-page__eyebrow, .trial-lesson-page__kicker, .trial-lesson-page__hero-index {
  font-family: Roboto, Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
}

.trial-lesson-page__eyebrow {
  color: #b7b7b7;
}

.trial-lesson-page__hero-en {
  font-family: Roboto, Arial, sans-serif;
  font-size: clamp(82px, 13vw, 214px);
  font-weight: 900;
  line-height: .79;
  letter-spacing: -.08em;
  white-space: nowrap;
  transform: translateX(-0.055em);
}

.trial-lesson-page__period {
  color: var(--trial-red);
}

.trial-lesson-page__hero-bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid #555;
  padding-top: 24px;
}

.trial-lesson-page__hero h1 {
  font-size: clamp(23px, 2.7vw, 39px);
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .07em;
}

.trial-lesson-page__hero-index {
  color: #a5a5a5;
}

.trial-lesson-page__kicker {
  display: block;
  margin-bottom: 18px;
  color: var(--trial-red);
}

.trial-lesson-page__intro {
  padding: clamp(82px, 9vw, 136px) 0;
}

.trial-lesson-page__intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  align-items: center;
  gap: clamp(45px, 7vw, 110px);
}

.trial-lesson-page__intro-copy h2 {
  font-size: clamp(34px, 4vw, 60px);
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1.33;
  margin-bottom: 33px;
}

.trial-lesson-page__intro-copy p {
  font-size: 15px;
  line-height: 2.1;
  margin-top: 15px;
}

.trial-lesson-page__intro-copy .trial-lesson-page__intro-lead {
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 800;
}

.trial-lesson-page__intro-visual {
  position: relative;
}

.trial-lesson-page__intro-visual img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  border-radius: 40px;
}

.trial-lesson-page__line {
  padding: clamp(60px, 7vw, 100px) 0;
  background: #efefed;
}

.trial-lesson-page__line-inner {
  display: flex;
  justify-content: space-around;
  align-items: center;
  gap: 48px;
}

.trial-lesson-page__line h2, .trial-lesson-page__section-head h2, .trial-lesson-page__phone h2 {
  font-size: clamp(30px, 3vw, 43px);
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1.4;
}

.trial-lesson-page__line p {
  font-size: 15px;
  line-height: 1.85;
  margin-top: 14px;
}

.trial-lesson-page__line .trial-lesson-page__line-lead {
  font-size: clamp(18px, 2vw, 23px);
  font-weight: 800;
  margin-top: 19px;
}

.trial-lesson-page__action {
  flex: 0 0 min(390px, 42%);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 23px 25px;
  background: #0b8f46;
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.5;
  transition: background .2s ease, transform .2s ease;
}

.trial-lesson-page__action:hover {
  background: #087239;
  color: #fff;
  transform: translateY(-2px);
}

.trial-lesson-page__action span:last-child {
  font-size: 24px;
  font-weight: 400;
}

.trial-lesson-page__form-section {
  padding: clamp(80px, 9vw, 130px) 0 clamp(90px, 10vw, 150px);
}

.trial-lesson-page__section-head {
  max-width: 780px;
  margin: 0 auto 60px;
  text-align: center;
}

.trial-lesson-page__section-head h2 {
  margin-bottom: 15px;
}

.trial-lesson-page__section-head p {
  font-size: 15px;
  line-height: 1.8;
  margin-top: 10px;
}

.trial-lesson-page__section-head .trial-lesson-page__section-lead {
  font-size: 20px;
  font-weight: 800;
}

.trial-lesson-page__section-head .trial-lesson-page__required-note {
  margin-top: 25px;
  font-size: 13px;
  color: var(--trial-muted);
}

.trial-lesson-page__required-note span {
  color: var(--trial-red);
}

.trial-lesson-page__form {
  max-width: 960px;
  margin: 0 auto;
  border-top: 2px solid var(--trial-ink);
}

.trial-lesson-page__field {
  display: grid;
  grid-template-columns: 32% minmax(0, 1fr);
  align-items: start;
  gap: 24px;
  padding: 26px 24px;
  border-bottom: 1px solid #dfdfdf;
}

.trial-lesson-page__field > label {
  padding-top: 15px;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.5;
}

.trial-lesson-page__required {
  display: inline-block;
  margin-left: 8px;
  vertical-align: middle;
  color: var(--trial-red);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.trial-lesson-page__control {
  min-width: 0;
}

.trial-lesson-page__control :is(input, select, textarea) {
  display: block;
  width: 100%;
  min-height: 54px;
  border: 1px solid #c9c9c9;
  border-radius: 0;
  padding: 13px 17px;
  background: #fff;
  color: var(--trial-ink);
  font-size: 16px;
  line-height: 1.5;
  outline-offset: 3px;
}

.trial-lesson-page__control :is(input, select, textarea):focus-visible, .trial-lesson-page__consent input:focus-visible {
  outline: 2px solid var(--trial-red);
}

.trial-lesson-page__control :is(input, textarea)::placeholder {
  color: #777;
  opacity: 1;
}

.trial-lesson-page__control select {
  cursor: pointer;
}

.trial-lesson-page__control select:invalid {
  color: #777;
}

.trial-lesson-page__control textarea {
  min-height: 185px;
  resize: vertical;
}

.trial-lesson-page__privacy {
  padding: 48px 24px 0;
}

.trial-lesson-page__privacy h3 {
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 18px;
}

.trial-lesson-page__policy-box {
  height: 250px;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid #d1d1d1;
  padding: 24px 28px;
  background: #f7f7f7;
  font-size: 13px;
  line-height: 1.9;
  scrollbar-color: #aaa #e8e8e8;
}

.trial-lesson-page__policy-box:focus-visible {
  outline: 2px solid var(--trial-red);
  outline-offset: 2px;
}

.trial-lesson-page__policy-section {
  margin-top: 18px;
}

.trial-lesson-page__policy-section h4 {
  font-size: inherit;
  font-weight: 800;
  margin-bottom: 4px;
}

.trial-lesson-page__policy-section ul {
  padding-left: 1.4em;
  margin-top: 4px;
  list-style: disc;
}

.trial-lesson-page__policy-section address {
  font-style: normal;
  margin-top: 8px;
}

.trial-lesson-page__consent {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 12px;
  padding: 30px 0 0;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.65;
}

.trial-lesson-page__consent input[type="checkbox"] {
  display: block;
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
  margin: 1px 0 0;
  -webkit-appearance: none;
  appearance: none;
  border: 2px solid #777;
  border-radius: 3px;
  background: #fff;
  cursor: pointer;
}

.trial-lesson-page__consent input[type="checkbox"]:checked {
  border-color: var(--trial-red);
  background-color: var(--trial-red);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4 10 4 4 8-9' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 17px 17px;
}

.trial-lesson-page__submit-area {
  margin-top: 37px;
  text-align: center;
}

.trial-lesson-page__submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%, 340px);
  min-height: 66px;
  margin: 0 auto;
  padding: 0 25px;
  border: 0;
  background: var(--trial-red);
  color: #fff;
  font-size: 16px;
  font-weight: 800;
}

.trial-lesson-page__submit:disabled {
  background: #969696;
  cursor: not-allowed;
}

.trial-lesson-page__submit span {
  font-size: 24px;
  font-weight: 400;
}

.trial-lesson-page__unavailable {
  margin-top: 18px !important;
  color: #555;
  font-size: 13px;
  line-height: 1.8;
}

.trial-lesson-page__unavailable a {
  color: #087239;
  text-decoration: underline;
  font-weight: 800;
}

.trial-lesson-page__phone {
  background: #231815;
  color: #fff;
  padding: clamp(70px, 8vw, 110px) 0;
}

.trial-lesson-page__phone-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
}

.trial-lesson-page__phone p {
  font-size: 15px;
  line-height: 1.85;
  margin-top: 19px;
}

.trial-lesson-page__phone-details {
  flex: 0 0 46%;
}

.trial-lesson-page__phone-details a {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid #777;
  color: #fff;
  font-family: Roboto, Arial, sans-serif;
  font-size: clamp(25px, 3.3vw, 48px);
  font-weight: 800;
  white-space: nowrap;
}

.trial-lesson-page__phone-details a:hover {
  color: #f66;
}

.trial-lesson-page__phone-details a small {
  font-size: 13px;
  letter-spacing: .1em;
}

.trial-lesson-page__phone-details a span {
  margin-left: auto;
  font-size: 24px;
  font-weight: 400;
}

.trial-lesson-page__phone-details p {
  color: #c0c0c0;
  font-size: 12px;
}

@media (max-width: 991px) {
  .trial-lesson-page__hero-inner {
    min-height: 400px;
    padding-top: 75px;
    padding-bottom: 32px;
  }

  .trial-lesson-page__hero-en {
    font-size: clamp(61px, 12.8vw, 128px);
  }

  .trial-lesson-page__hero h1 {
    font-size: clamp(22px, 4vw, 34px);
  }

  .trial-lesson-page__intro-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .trial-lesson-page__intro-copy {
    max-width: 740px;
  }

  .trial-lesson-page__intro-visual img {
    border-radius: 20px;
  }

  .trial-lesson-page__line-inner, .trial-lesson-page__phone-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 35px;
  }

  .trial-lesson-page__action, .trial-lesson-page__phone-details {
    flex-basis: auto;
  }

  .trial-lesson-page__phone-details a {
    width: max-content;
    max-width: 100%;
  }
}
@media (max-width: 639px) {
  .trial-lesson-page__hero-inner {
    min-height: 335px;
    padding-top: 65px;
    padding-bottom: 25px;
  }

  .trial-lesson-page__hero-en {
    font-size: clamp(48px, 13vw, 81px);
    white-space: normal;
  }

  .trial-lesson-page__hero-index {
    display: none;
  }

  .trial-lesson-page__hero-bottom {
    padding-top: 16px;
  }

  .trial-lesson-page__hero h1 {
    font-size: 23px;
  }

  .trial-lesson-page__intro {
    padding: 70px 0 80px;
  }

  .trial-lesson-page__intro-copy h2 {
    font-size: 36px;
    margin-bottom: 22px;
  }

  .trial-lesson-page__intro-copy p {
    font-size: 14px;
  }

  .trial-lesson-page__line {
    padding: 66px 0;
  }

  .trial-lesson-page__line p {
    font-size: 14px;
  }

  .trial-lesson-page__action {
    padding: 19px;
    font-size: 14px;
  }

  .trial-lesson-page__form-section {
    padding: 75px 0 100px;
  }

  .trial-lesson-page__section-head {
    text-align: left;
    margin-bottom: 38px;
  }

  .trial-lesson-page__section-head .trial-lesson-page__section-lead {
    font-size: 17px;
  }

  .trial-lesson-page__field {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 20px 0 24px;
  }

  .trial-lesson-page__field > label {
    padding: 0;
    font-size: 14px;
  }

  .trial-lesson-page__privacy {
    padding: 38px 0 0;
  }

  .trial-lesson-page__privacy h3 {
    font-size: 16px;
  }

  .trial-lesson-page__policy-box {
    height: 225px;
    padding: 17px;
    font-size: 12px;
  }

  .trial-lesson-page__consent {
    justify-content: flex-start;
    font-size: 13px;
  }

  .trial-lesson-page__phone-details a {
    gap: 9px;
    font-size: clamp(24px, 7vw, 33px);
  }
}
/* 無料体験レッスン申込み　ここまで */
/*パートナーFV　ここから*/
.partner-concept-page__hero {
  position: relative;
  min-height: 390px;
  background: #151515;
  color: #fff;
  overflow: hidden;
  margin-top: 80px;
}

.partner-concept-page__hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.69) 0%, rgba(0, 0, 0, 0.22) 56%, transparent 100%), linear-gradient(0deg, rgba(0, 0, 0, 0.67), transparent 60%), url("../img/partner-fv.jpg") calc(50% + 100px) top/cover no-repeat;
}

.partner-concept-page__hero::after {
  content: 'HAMAJUKU';
  position: absolute;
  right: -.04em;
  bottom: -.27em;
  font: 900 clamp(100px, 16vw, 270px)/1 Roboto, sans-serif;
  letter-spacing: -.07em;
  color: rgba(255, 255, 255, 0.065);
  pointer-events: none;
}

@media (max-width: 991px) {
  .partner-concept-page__hero {
    min-height: 380px;
  }

  .partner-concept-page__hero::before {
    background-position: left;
  }
}
@media (max-width: 639px) {
  .partner-concept-page__hero {
    min-height: 355px;
  }
}
/*お知らせFV　ここから*/
.news-concept-page__hero {
  position: relative;
  min-height: 390px;
  background: #151515;
  color: #fff;
  overflow: hidden;
  margin-top: 80px;
}

.news-concept-page__hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.69) 0%, rgba(0, 0, 0, 0.22) 56%, transparent 100%), linear-gradient(0deg, rgba(0, 0, 0, 0.67), transparent 60%), url("../img/news-fv.jpg") center 53%/cover no-repeat;
}

.news-concept-page__hero::after {
  content: 'HAMAJUKU';
  position: absolute;
  right: -.04em;
  bottom: -.27em;
  font: 900 clamp(100px, 16vw, 270px)/1 Roboto, sans-serif;
  letter-spacing: -.07em;
  color: rgba(255, 255, 255, 0.065);
  pointer-events: none;
}

@media (max-width: 991px) {
  .news-concept-page__hero {
    min-height: 380px;
  }

  .news-concept-page__hero::before {
    background-position: left;
  }
}
@media (max-width: 639px) {
  .news-concept-page__hero {
    min-height: 355px;
  }
}
/*トライアルレッスンFV　ここから*/
.trial-lesson-concept-page__hero {
  position: relative;
  min-height: 390px;
  background: #151515;
  color: #fff;
  overflow: hidden;
  margin-top: 80px;
}

.trial-lesson-concept-page__hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.69) 0%, rgba(0, 0, 0, 0.22) 56%, transparent 100%), linear-gradient(0deg, rgba(0, 0, 0, 0.67), transparent 60%), url("../img/trial-lesson-fv.jpg") center calc(50% - 20px)/cover no-repeat;
}

.trial-lesson-concept-page__hero::after {
  content: 'HAMAJUKU';
  position: absolute;
  right: -.04em;
  bottom: -.27em;
  font: 900 clamp(100px, 16vw, 270px)/1 Roboto, sans-serif;
  letter-spacing: -.07em;
  color: rgba(255, 255, 255, 0.065);
  pointer-events: none;
}

@media (max-width: 991px) {
  .trial-lesson-concept-page__hero {
    min-height: 380px;
  }

  .trial-lesson-concept-page__hero::before {
    background-position: center center, center center, calc(50% + 70px) 53%;
    /* 画像だけ左へ70px */
  }
}
@media (max-width: 639px) {
  .trial-lesson-concept-page__hero {
    min-height: 355px;
  }
}
/*トライアルレッスンFV　ここまで*/
@media (min-width: 992px) {
  .second--h1{
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 1;
    color: #fff;
    font-size: 10px!important;
  }
}

@media (max-width: 991px) {
  .second--h1{
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 1;
    color: #fff;
    font-size: 10px!important;
    line-height: 1.3em!important;
  }
}

/*recapcha非表示*/
.grecaptcha-badge{
  display: none;
}






