﻿@charset "UTF-8";

:root {
  --cl-lbl: #27a6c5;
  --cl-lbl-bg: #edf9fc;
  --cl-txt-bk: #383c40;
  --cl-btn-bg-lbl-txt: #ffffff;
  --cl-btn-bg-lbl-bg: var(--cl-lbl);
  --cl-btn-bg-lbl-bg-hover: #2e7486;
  --cl-btn-bdr-txt: var(--cl-lbl);
  --cl-btn-bdr-bdr: var(--cl-lbl);
  --cl-btn-bdr-bg: #ffffff;
  --cl-btn-bdr-bg-hover: var(--cl-lbl-bg);
  --cl-bdr: #d0d1d2;
  --cl-gy-bg: #fafafc;
  --shdw-10: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
  --shdw-20: drop-shadow(0 3px 8px rgba(0, 0, 0, 0.2));
  --shdw-30: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.2));
  --shdw-40: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.2));
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
}

body {
  color: var(--cl-txt-bk);
  font-family: Inter, Noto Sans JP, "Hiragino Kaku Gothic Pro", " ヒラギノ角ゴ Pro W3", " メイリオ ", Meiryo, "MS Pゴシック ", sans-serif;
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.cl-lbl {
  color: var(--cl-lbl);
}

a {
  position: relative;
  color: var(--cl-lbl);
  font-weight: 500;
  text-decoration: underline;

  &:hover {
    text-decoration: none;
  }

  &.link-underline {
    text-decoration: underline !important;

    &:hover {
      text-decoration: none !important;
    }
  }

  &.link-outer,
  &.link-pdf {
    &::after {
      content: "";
      display: inline-block;
      position: relative;
      top: 4px;
      width: 21px;
      height: 21px;
      margin-left: 5px;
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
    }
  }

  &.link-outer {
    &::after {
      background-image: url(../img/common/link_outer.png);
    }
  }

  &.link-pdf {
    &::after {
      background-image: url(../img/common/link_pdf.png);
    }
  }
}

button,
input,
select,
textarea {
  color: var(--cl-txt-bk);
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="address"],
input[type="password"],
textarea,
select {
  max-width: 100%;
  height: 41px;
  padding: 0 11px;
  border: 1px solid var(--cl-bdr);
  border-radius: 4px;

  &::placeholder {
    color: #adafb0;
  }

  &:focus {
    border-color: #165d96;
    outline: none;
    filter: drop-shadow(2px 2px 0px #ddedfa) drop-shadow(-2px -2px 0px #ddedfa) drop-shadow(-2px 2px 0px #ddedfa) drop-shadow(2px -2px 0px #ddedfa);
  }

  &:invalid {
    border: 1px solid #ff334b;
    background-color: #ffeaec;
  }
}

textarea {
  display: block;
  padding: 5px 11px;
}

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

  & + label {
    display: block;
    position: relative;
    padding-left: 29px;
    font-weight: 500;
    cursor: pointer;

    &::before {
      content: "";
      display: block;
      position: absolute;
      top: 2px;
      left: 0;
      width: 21px;
      height: 21px;
      background-image: url(../img/common/icon_cb.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      transition: background-image 0.15s;
    }

    &:hover {
      &::before {
        background-image: url(../img/common/icon_cb_hover.png);
      }
    }
  }

  &:checked {
    & + label {
      &::before {
        background-image: url(../img/common/icon_cb_checked.png);
      }

      &:hover {
        &::before {
          background-image: url(../img/common/icon_cb_checked_hover.png);
        }
      }
    }
  }

  &:invalid {
    & + label {
      &::before {
        background-image: url(../img/common/icon_cb_invalid.png);
      }

      &:checked {
        &::before {
          background-image: url(../img/common/icon_cb_invalid_checked.png);
        }
      }
    }
  }
}

input[type="radio"] {
  display: none;

  & + label {
    display: block;
    position: relative;
    padding-left: 26px;
    font-weight: 500;
    cursor: pointer;

    &::before {
      content: "";
      display: block;
      position: absolute;
      top: 3px;
      left: 0;
      width: 18px;
      height: 18px;
      background-image: url(../img/common/icon_rb.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      transition: background-image 0.15s;
    }

    &:hover {
      &::before {
        background-image: url(../img/common/icon_rb_hover.png);
      }
    }
  }

  &:checked {
    & + label {
      &::before {
        background-image: url(../img/common/icon_rb_checked.png);
      }

      &:hover {
        &::before {
          background-image: url(../img/common/icon_rb_checked_hover.png);
        }
      }
    }
  }
}

.block-container {
  padding: 0 32px;
}

@media screen and (max-width: 767px) {
  .block-container {
    padding: 0 16px;
  }
}

@media screen and (min-width: 1024px) {
  .tb-only {
    display: none !important;
  }

  .tb_sp-only {
    display: none !important;
  }

  .sp-only {
    display: none !important;
  }
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
  .pc-only {
    display: none !important;
  }

  .sp-only {
    display: none !important;
  }
}

@media screen and (max-width: 767px) {
  .pc-only {
    display: none !important;
  }

  .tb-only {
    display: none !important;
  }

  .pc_tb-only {
    display: none !important;
  }
}

/* パンくず */

.block-breadcrumb {
  padding: 16px 0 20px;

  ul {
    max-width: 1200px;
    margin: 0 auto;
    color: #737678;
    font-size: 1.4rem;

    li {
      display: inline;
      position: relative;

      a {
        color: var(--cl-lbl);
        text-decoration: underline;

        &:hover {
          text-decoration: none;
        }
      }

      &:first-child {
        a {
          position: relative;

          &::before {
            content: "";
            display: inline-block;
            position: relative;
            top: 3px;
            width: 18px;
            height: 18px;
            margin-right: 2px;
            background-image: url(../img/common/icon_breadcrumb_home.png);
            background-position: center;
            background-repeat: no-repeat;
            background-size: contain;
          }
        }
      }

      & + li {
        margin-left: 29px;

        &::before {
          content: "";
          display: inline-block;
          position: relative;
          top: 0;
          left: -16px;
          width: 6px;
          height: 9px;
          margin-top: -4px;
          background-image: url(../img/common/arw_breadcrumb.png);
          background-position: center;
          background-repeat: no-repeat;
          background-size: contain;
        }
      }
    }
  }
}

/* ボタン */

.btn {
  display: flex;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 4px;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: border 0.3s, background-color 0.3s, color 0.3s;

  &.btn-bdr-lbl {
    border-color: var(--cl-btn-bdr-bdr);
    background-color: var(--cl-btn-bdr-bg);
    color: var(--cl-btn-bdr-txt);

    &:hover {
      background-color: var(--cl-btn-bdr-bg-hover);
    }
  }

  &.btn-bg-lbl {
    background-color: var(--cl-btn-bg-lbl-bg);
    color: var(--cl-btn-bg-lbl-txt);

    &:hover {
      background-color: var(--cl-btn-bg-lbl-bg-hover);
    }
  }

  &.btn-bg-gy {
    background-color: #8a8d8f;
    color: #ffffff;
    transition: opacity 0.3s;

    &:hover {
      opacity: 0.7;
    }
  }

  &.btn-bdr-gy {
    border-color: var(--cl-bdr);
    color: var(--cl-txt-bk);
    background-color: #ffffff;

    &:hover {
      border-color: var(--cl-lbl);
      color: var(--cl-lbl);
    }
  }

  &.btn-arw {
    position: relative;

    &::after {
      content: "";
      display: block;
      position: absolute;
      top: 50%;
      right: 24px;
      width: 21px;
      height: 21px;
      margin-top: -11px;
      background-image: url(../img/common/arw_link_gr.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      transition: right 0.3s;
    }

    &:hover {
      &::after {
        right: 16px;
      }
    }
  }

  &.btn-arw-center {
    position: relative;
    justify-content: center;
    padding-left: 6px;

    &::after {
      content: "";
      display: inline-block;
      position: relative;
      right: 0;
      width: 21px;
      height: 21px;
      margin-left: 8px;
      background-image: url(../img/common/arw_link_gr.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      transition: right 0.3s;
    }

    &:hover {
      &::after {
        right: -8px;
      }
    }
  }

  &.btn-dl {
    position: relative;
    justify-content: center;

    &::after {
      content: "";
      display: inline-block;
      position: relative;
      width: 21px;
      height: 21px;
      margin-left: 8px;
      background-image: url(../img/common/icon_btn_download.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
    }
  }

  &.btn-secondary {
    justify-content: center;
    border-color: var(--cl-bdr);
    background-color: #ffffff;
    color: var(--cl-txt-bk);
    font-size: 1.6rem;
    font-weight: 500;

    &:hover {
      border-color: var(--cl-lbl);
      color: var(--cl-lbl);
    }
  }

  &.btn-primary {
    justify-content: center;
    background-color: #27a6c5;
    color: #ffffff;
    font-size: 1.6rem;
    font-weight: 500;

    &:hover {
      background-color: #2e7486;
    }
  }

  &.btn-negative {
    justify-content: center;
    background-color: #8a8d8f;
    color: #ffffff;
    font-size: 1.6rem;
    font-weight: 500;

    &:hover {
      background-color: rgba(138, 141, 143, 0.7);
    }
  }

  &.btn-low {
    height: 42px;
    padding: 0 31px;
  }

  &.btn-high {
    height: 56px;
    padding: 0 31px;
  }
}

.block-common-btn {
  li {
    display: flex;
    gap: 32px;

    & + li {
      margin-top: 32px;
    }
  }
}

.block-contact-btns {
  a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    border-radius: 4px;
    font-size: 2rem;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    filter: var(--shdw-10);
    transition: background-color 0.3s;

    &::after {
      content: "";
      display: block;
      position: absolute;
      top: 50%;
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
    }

    &.btn-contact {
      background-color: var(--cl-btn-bg-lbl-bg-hover);
      color: #ffffff;

      &::after {
        right: 12px;
        width: 32px;
        height: 32px;
        margin-top: -16px;
        background-image: url(../img/common/icon_btn_contact.png);
      }

      &:hover {
        background-color: #1f4e59;
      }
    }

    &.btn-download {
      background-color: #ffffff;
      color: var(--cl-lbl);

      span:first-child {
        font-weight: 500;
        font-size: 1.4rem;
      }

      &::after {
        right: 16px;
        width: 28px;
        height: 28px;
        margin-top: -14px;
        background-image: url(../img/common/icon_btn_download.png);
      }

      &:hover {
        background-color: #d4f0f7;
      }
    }
  }
}

/* タイトル */

.block-header-h1 {
  padding: 56px 0 48px;
  text-align: center;

  .block-container {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
  }

  h1 {
    margin: 0;
    padding: 0;
    color: var(--cl-lbl);
    font-size: 3.6rem;
    font-weight: 700;
  }

  .item-subttl {
    margin-bottom: 3px;
    font-size: 2.4rem;
    font-weight: 700;
  }

  .item-comment {
    margin-top: 32px;
    font-size: 1.6rem;
  }

  &.has-bot_btn {
    padding-bottom: 71px;

    .block-contact-btns {
      position: absolute;
      bottom: -117px;
      left: 50%;
      width: 416px;
      margin-left: -208px;

      .btn-download {
        height: 76px;
        background-color: var(--cl-lbl);
        color: #ffffff;
        transition: opacity 0.3s;

        &::after {
          background-image: url(../img/common/icon_btn_download_wt.png);
        }

        &:hover {
          opacity: 0.7;
        }
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .block-header-h1 {
    padding: 32px 0 56px;

    h1 {
      font-size: 3.2rem;
    }

    .item-commnet {
      margin-top: 24px;
    }

    &.has-bot_btn {
      padding-bottom: 96px;

      .block-contact-btns {
        position: absolute;
        bottom: -96px;
        left: 16px;
        width: calc(100% - 32px);
        margin-left: 0;

        .btn-download {
          height: 64px;
          transition: opacity 0.3s;
        }
      }
    }
  }
}

.block-header-h2 {
  padding: 80px 0 64px;
  text-align: center;

  &.margin-tight {
    padding: 48px 0 32px;
  }

  &.bg-lbl {
    background-color: var(--cl-lbl-bg);
  }

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }

  h2 {
    margin: 0;
    padding: 0;
    font-size: 3.2rem;
    font-weight: 700;
  }

  .item-comment {
    margin-top: 16px;
    font-size: 1.6rem;
  }
}

@media screen and (max-width: 767px) {
  .block-header-h2 {
    padding: 48px 0;

    &.margin-tight {
      padding: 32px 0;
    }

    h2 {
      font-size: 2.8rem;
    }

    .item-comment {
      margin-top: 24px;

      &.sp-align_left {
        text-align: left;
      }
    }
  }
}

.block-common-h1 {
  padding: 56px 0 48px;

  &.h1-news_detail {
    padding: 88px 0 56px;
  }

  &.ttl-center {
    text-align: center;
  }

  .block-container {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
  }

  h1 {
    margin: 0;
    padding: 0;
    font-size: 3.6rem;
    font-weight: 700;

    &.ttl-center {
      text-align: center;
    }
  }

  .item-comment {
    margin-top: 32px;
    font-size: 1.6rem;
  }

  .item-date_tag {
    display: flex;
    align-items: center;
    margin-top: 30px;

    .item-date {
      font-size: 1.4rem;
    }

    .item-tag {
      display: flex;
      align-items: center;
      margin-left: 16px;

      span {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 24px;
        padding: 0 13px;
        border: 1px solid var(--cl-lbl);
        border-radius: 24px;
        color: var(--cl-lbl);
        font-size: 1.2rem;
        text-align: center;
        line-height: 1;
        letter-spacing: 0;
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .block-common-h1 {
    padding: 32px 0 56px;

    &.h1-news_detail {
      padding: 48px 0 56px;
    }

    h1 {
      font-size: 3.2rem;
    }

    .item-commnet {
      margin-top: 24px;
    }
  }
}

.block-common-h2 {
  padding: 80px 0 64px;

  &.ttl-center {
    text-align: center;
  }

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }

  h2 {
    margin: 0;
    padding: 0;
    font-size: 3.2rem;
    font-weight: 700;
  }

  .item-comment {
    margin-top: 16px;
    font-size: 1.6rem;
  }
}

@media screen and (max-width: 767px) {
  .block-common-h2 {
    padding: 48px 0;

    h2 {
      font-size: 2.8rem;
    }

    .item-comment {
      margin-top: 24px;
    }
  }
}

.block-common-h3 {
  padding: 32px 0;

  &.ttl-center {
    text-align: center;
  }

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }

  h3 {
    margin: 0;
    padding: 0;
    font-size: 2.4rem;
    font-weight: 700;
  }

  .item-comment {
    margin-top: 16px;
    font-size: 1.6rem;
  }
}

@media screen and (max-width: 767px) {
  .block-common-h3 {
    padding: 48px 0;

    h3 {
      font-size: 2rem;
    }

    .item-comment {
      margin-top: 24px;
    }
  }
}

.block-common-h4 {
  padding: 32px 0;

  &.ttl-center {
    text-align: center;
  }

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }

  h4 {
    margin: 0;
    padding: 0;
    font-size: 2rem;
    font-weight: 700;
  }

  .item-comment {
    margin-top: 16px;
    font-size: 1.6rem;
  }
}

@media screen and (max-width: 767px) {
  .block-common-h4 {
    padding: 26px 0 16px;

    h4 {
      font-size: 1.8rem;
    }

    .item-comment {
      margin-top: 24px;
    }
  }
}

.ttl-top-h2 {
  margin: 0 0 30px;
  padding: 0;
  font-size: 3.6rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.333;

  sup {
    font-size: 3.2rem;
    vertical-align: super;
  }
}

.ttl-top-h2-sub {
  margin-bottom: 3px;
  font-size: 2.4rem;
  font-weight: 700;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .ttl-top-h2 {
    margin-bottom: 24px;
    font-size: 2.4rem;
    line-height: 1.5;
  }

  .ttl-top-h2-sub {
    margin-bottom: 4px;
    font-size: 2rem;
  }
}

.block-top-h2-comment {
  font-size: 1.6rem;
  text-align: center;
  line-height: 1.75;
}

/* アンカー */

.block-anchor-link {
  padding: 40px 0 64px;
  background-color: var(--cl-gy-bg);

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }

  a {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    height: 72px;
    border: 1px solid var(--cl-bdr);
    border-radius: 4px;
    background-color: #ffffff;
    color: var(--cl-txt-bk);
    font-size: 1.8rem;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.3s;

    &::after {
      content: "";
      display: inline-block;
      position: relative;
      top: 0;
      width: 21px;
      height: 21px;
      margin-left: 8px;
      background-image: url(../img/common/arw_link_gr.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      transform: rotate(90deg);
      transition: top 0.15s;
    }

    &:hover {
      background-color: var(--cl-lbl-bg);
      text-decoration: underline;

      &::after {
        top: 4px;
      }
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-anchor-link {
    ul {
      display: flex;
      justify-content: center;
      gap: 32px;

      &.list-3col {
        li {
          width: calc((100% - 64px) / 3);
          max-width: 357px;
        }
      }

      &.list-4col {
        li {
          width: calc((100% - 96px) / 4);
          max-width: 260px;
        }
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-anchor-link {
    ul {
      max-width: 500px;
      margin: 0 auto;

      li {
        & + li {
          margin-top: 16px;
        }
      }
    }
  }
}

@media screen and (min-width: 768px) {
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

@media screen and (max-width: 767px) {
  .block-anchor-link {
    ul {
      width: 100%;
    }
  }
}

/* ヘッダー */

.header {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  height: 72px;
  background-color: #ffffff;
  border-bottom: 1px solid var(--cl-bdr);
  z-index: 99;

  .block-container {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    height: 100%;
  }

  .header-logo {
    flex-shrink: 0;
    margin: 0;
    padding: 0;

    a {
      display: block;
      width: 189px;
      height: 31px;
      background-image: url(../img/common/logo.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      text-indent: -999999px;
      transition: background-image 0.3s;

      &:hover {
        background-image: url(../img/common/logo_on.png);
      }
    }
  }
}

@media screen and (min-width: 1180px) {
  .header-nav-wrapper {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 1;
    width: 100%;
    margin-left: 56px;
  }

  .header-nav-list {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 24px;
  }

  .header-nav-item-btn,
  .header-nav-item-link {
    display: flex;
    align-items: center;
    height: 71px;
    position: relative;
    margin: 0;
    padding: 0;
    border: none;
    background-color: transparent;
    color: var(--cl-txt-bk);
    font-size: 1.4rem;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    line-height: 1;
    transition: color 0.3s;

    &::before {
      content: "";
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 3px;
      background-color: var(--cl-lbl);
      transform: scaleX(0);
      transition: transform 0.3s;
      transform-origin: left;
    }

    &:hover {
      color: var(--cl-lbl);

      &::before {
        transform: scaleX(1);
      }
    }
  }

  .header-nav-item-btn {
    &::after {
      content: "";
      display: inline-block;
      position: relative;
      top: 1px;
      width: 12px;
      height: 7px;
      margin-left: 4px;
      background-image: url(../img/common/arw_nav.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      transition: margin 0.05s, transform 0.16s;
    }

    &:hover {
      &::after {
        margin-top: 3px;
      }
    }

    &.is-active {
      &::before {
        transform: scaleX(1);
      }

      &::after {
        transform: rotate(180deg);
      }
    }
  }

  .header-nav-item-content {
    display: none;
    position: absolute;
    top: 72px;
    left: 0;
    width: 100%;
    background-color: #ffffff;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.2);
  }

  .header-nav-item-content-body {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    background-color: #f3f8fc;

    &::before {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      left: calc((100vw - 1200px) / 2 * -1);
      width: calc((100vw - 1200px) / 2);
      height: 100%;
      background-color: #f3f8fc;
    }

    .item-header {
      background-color: #f3f8fc;

      .item-main-ttl {
        display: flex;
        align-items: center;
        width: 100%;
        height: 45px;
        font-size: 2rem;
        font-weight: 700;
        line-height: 1;
      }
    }

    .item-link-list {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 32px;

      li {
        a {
          display: flex;
          align-items: center;
          position: relative;
          width: 100%;
          height: 45px;
          padding: 0 52px 0 12px;
          border-bottom: 1px solid var(--cl-bdr);
          border-top-right-radius: 4px;
          border-top-left-radius: 4px;
          background-color: #ffffff;
          color: var(--cl-txt-bk);
          font-size: 1.4rem;
          font-weight: 500;
          text-decoration: none;
          line-height: 1;
          transition: background-color 0.3s;

          &::before {
            content: "";
            display: block;
            position: absolute;
            bottom: -1px;
            left: 0;
            width: 100%;
            height: 1px;
            background-color: var(--cl-lbl);
            transform: scaleX(0);
            transition: transform 0.3s;
            transform-origin: left;
          }

          &::after {
            content: "";
            display: block;
            position: absolute;
            top: 50%;
            right: 16px;
            width: 21px;
            height: 21px;
            margin-top: -11px;
            background-image: url(../img/common/arw_link_gr.png);
            background-position: center;
            background-repeat: no-repeat;
            background-size: contain;
            transition: right 0.3s;
          }

          &:hover {
            background-color: var(--cl-btn-bdr-bg-hover);

            &::before {
              transform: scaleX(1);
            }

            &::after {
              right: 8px;
            }
          }
        }
      }
    }

    &.layer-1-nav {
      display: flex;

      .item-header {
        width: 215px;
        padding: 32px 0 48px;
      }

      .item-content {
        width: calc(100% - 215px);
        padding: 32px 0 48px 32px;
        background-color: #ffffff;
      }

      .item-link-list {
        li {
          width: calc((100% - 32px * 2) / 3);
        }
      }
    }

    &.layer-2-nav {
      .item-header {
        display: flex;
        align-items: center;
        width: 378px;
        padding: 32px 0 0 0;

        .item-main-ttl {
          width: auto;
        }

        .item-view-list-btn {
          margin-left: auto;

          a {
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            height: 28px;
            padding: 0 38px 0 16px;
            border-radius: 2px;
            color: var(--cl-txt-bk);
            font-size: 1.4rem;
            font-weight: 500;
            text-decoration: none;
            transition: background-color 0.3s;

            &::after {
              content: "";
              display: block;
              position: absolute;
              top: 50%;
              right: 14px;
              width: 21px;
              height: 21px;
              margin-top: -11px;
              background-image: url(../img/common/arw_link_gr.png);
              background-position: center;
              background-repeat: no-repeat;
              background-size: contain;
              transition: right 0.3s;
            }

            &:hover {
              background-color: #ddedfa;

              &::after {
                right: 6px;
              }
            }
          }
        }
      }

      .item-layer-list {
        width: 378px;
        padding: 8px 0 48px;
        background-color: #f3f8fc;

        .layer-1st-item {
          & + .layer-1st-item {
            margin-top: 8px;
          }

          .layer-1st-item-btn {
            display: flex;
            align-items: center;
            position: relative;
            width: 100%;
            height: 45px;
            padding: 0 24px;
            border: none;
            border-top-left-radius: 4px;
            border-bottom-left-radius: 4px;
            background-color: transparent;
            font-size: 1.4rem;
            font-weight: 500;
            cursor: pointer;
            transition: background-color 0.3s;
          }

          &.is-active .layer-1st-item-btn {
            background-color: #ffffff;
          }

          &:not(.is-active) .layer-1st-item-btn {
            transition: background-color 0.3s;

            &::after {
              content: "";
              display: block;
              position: absolute;
              top: 50%;
              right: 16px;
              width: 10px;
              height: 16px;
              margin-top: -8px;
              background-image: url(../img/common/arw_nav_sub.png);
              background-position: center;
              background-repeat: no-repeat;
              background-size: contain;
              transition: right 0.3s;
            }

            &:hover {
              background-color: #ddedfa;

              &::after {
                right: 8px;
              }
            }
          }

          .layer-2nd {
            display: none;
            position: absolute;
            top: 0;
            left: 378px;
            width: calc(100% - 378px);
            min-height: 100%;
            padding: 32px 0 48px 32px;
            background-color: #ffffff;
          }

          &.is-active .layer-2nd {
            display: block;
          }
        }
      }

      .item-link-list {
        li {
          width: calc((100% - 32px) / 2);
        }
      }
    }
  }

  .header-nav-btns {
    margin-left: auto;

    .header-nav-btns-list {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      gap: 12px;

      .btn {
        justify-content: center;
        width: 128px;
        height: 36px;
        border-radius: 2px;
        font-size: 1.4rem;
      }
    }
  }

  .header-nav-login {
    position: relative;
    margin-left: 16px;
  }

  .header-nav-login-btn {
    display: flex;
    align-items: center;
    position: relative;
    margin: 0;
    padding: 0;
    border: none;
    background-color: transparent;
    color: var(--cl-txt-bk);
    font-size: 1.4rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 0.3s;

    &::before {
      content: "";
      display: block;
      position: relative;
      width: 21px;
      height: 21px;
      margin-right: 8px;
      background-image: url(../img/common/icon_login.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      transition: background-image 0.3s;
    }

    &.is-active,
    &:hover {
      color: var(--cl-lbl);
      text-decoration: underline;

      &::before {
        background-image: url(../img/common/icon_login_on.png);
      }
    }
  }

  .header-nav-login-content {
    display: none;
    position: absolute;
    top: 38px;
    right: 0;
    width: 208px;
    border: 1px solid var(--cl-bdr);
    border-radius: 4px;
    padding: 12px 0;
    background-color: #ffffff;
    filter: var(--shdw-30);
  }

  .header-nav-login-content-item {
    a {
      display: flex;
      align-items: center;
      width: 100%;
      height: 32px;
      padding: 0 16px;
      color: var(--cl-txt-bk);
      font-size: 1.6rem;
      text-decoration: none;
      transition: background-color 0.3s;

      &:hover {
        background-color: var(--cl-btn-bdr-bg-hover);
      }
    }
  }
}

@media screen and (max-width: 1259px) and (min-width: 1024px) {
  .header-nav-item-content-body {
    &.layer-1-nav {
      .item-header {
        padding-left: 32px;
      }
    }

    &.layer-2-nav {
      .item-header {
        padding-left: 32px;
      }

      .item-layer-list {
        padding-left: 32px;
      }
    }
  }

  .header-menu-trigger {
    display: none;
  }
}

@media screen and (max-width: 1179px) {
  .header-nav-wrapper {
    display: none;
  }

  .header-menu-trigger {
    display: block;
    position: relative;
    width: 34px;
    height: 23px;
    margin-left: auto;
    cursor: pointer;

    span {
      display: block;
      position: absolute;
      left: 0;
      width: 100%;
      height: 3px;
      background-color: var(--cl-txt-bk);
      transition: transform 0.3s, top 0.3s, bottom 0.3s, opacity 0.3s;

      &:nth-child(1) {
        top: 0;
      }

      &:nth-child(2) {
        bottom: 0;
      }

      &:nth-child(3) {
        top: 50%;
        margin-top: -2px;
      }
    }

    &.is-active {
      span {
        &:nth-child(1) {
          top: 10px;
          transform: rotate(45deg);
        }

        &:nth-child(2) {
          bottom: 10px;
          transform: rotate(-45deg);
        }

        &:nth-child(3) {
          opacity: 0;
        }
      }
    }
  }

  .header-nav-wrapper {
    position: fixed;
    top: 72px;
    left: 0;
    width: 100%;
    height: calc(100vh - 72px);
    height: calc(100dvh - 72px);
    padding-bottom: 40px;
    background-color: #ffffff;
    z-index: 99;
    overflow: auto;
  }

  .header-nav-item {
    border-bottom: 1px solid var(--cl-bdr);
  }

  .header-nav-item-btn,
  .header-nav-item-link {
    display: flex;
    align-items: center;
    position: relative;
    width: 100%;
    min-height: 48px;
    padding: 10px 60px 10px 32px;
    border: none;
    background-color: transparent;
    color: var(--cl-txt-bk);
    font-size: 1.4rem;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: color 0.3s;

    &.is-active,
    &:hover {
      color: var(--cl-lbl);
    }
  }

  .header-nav-item-btn {
    &::after {
      content: "";
      display: block;
      position: absolute;
      top: 50%;
      right: 34px;
      width: 17px;
      height: 10px;
      margin-top: -5px;
      background-image: url(../img/common/arw_hm_down.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      transition: margin 0.3s, transform 0.16s;
    }

    &:hover {
      &::after {
        margin-top: -1px;
      }
    }

    &.is-active {
      &::after {
        transform: rotate(180deg);
      }
    }
  }

  .header-nav-item-link {
    &::after {
      content: "";
      display: block;
      position: absolute;
      top: 50%;
      right: 32px;
      width: 21px;
      height: 21px;
      margin-top: -11px;
      background-image: url(../img/common/arw_link_gr.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      transition: right 0.3s;
    }

    &:hover {
      &::after {
        right: 24px;
      }
    }
  }

  .header-nav-item-content {
    display: none;
    position: relative;
    padding: 15px 0 24px;
    border-top: 3px solid var(--cl-lbl);
    background-color: #f3f8fc;
  }

  .header-nav-item-content-body {
    .item-header {
      display: flex;
      align-items: center;
      width: 100%;
      height: 45px;
      padding: 0 32px;
      border-bottom: 1px solid var(--cl-bdr);

      .item-main-ttl {
        font-size: 2rem;
        font-weight: 700;
      }

      .item-view-list-btn {
        margin-left: auto;

        a {
          display: flex;
          align-items: center;
          position: relative;
          color: var(--cl-txt-bk);
          font-size: 1.4rem;
          font-weight: 500;
          text-decoration: none;

          &::after {
            content: "";
            display: inline-block;
            position: relative;
            right: 0;
            width: 21px;
            height: 21px;
            margin-left: 4px;
            background-image: url(../img/common/arw_link_gr.png);
            background-position: center;
            background-repeat: no-repeat;
            background-size: contain;
            transition: right 0.3s;
          }

          &:hover {
            &::after {
              right: -8px;
            }
          }
        }
      }
    }

    .item-content,
    .item-layer-list {
      padding-left: 32px;
    }

    .item-layer-list {
      .layer-1st-item + .layer-1st-item {
        margin-top: 16px;
      }

      .layer-1st-item-btn {
        display: flex;
        align-items: center;
        width: 100%;
        height: 45px;
        margin: 0;
        padding: 0 12px;
        border: none;
        background-color: transparent;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 1;
      }
    }

    .item-link-list {
      li {
        border-bottom: 1px solid var(--cl-bdr);

        a {
          display: flex;
          align-items: center;
          position: relative;
          width: 100%;
          height: 45px;
          padding: 0 52px 0 12px;
          color: var(--cl-txt-bk);
          font-size: 1.4rem;
          font-weight: 500;
          text-decoration: none;

          &::after {
            content: "";
            display: block;
            position: absolute;
            top: 50%;
            right: 45px;
            width: 21px;
            height: 21px;
            margin-top: -11px;
            background-image: url(../img/common/arw_link_gr.png);
            background-position: center;
            background-repeat: no-repeat;
            background-size: contain;
            transition: right 0.3s;
          }

          &:hover {
            &::after {
              right: 37px;
            }
          }
        }
      }
    }
  }

  .header-nav-btns {
    margin-top: 23px;
    padding: 0 32px;
  }

  .header-nav-btns-list {
    display: flex;
    justify-content: space-between;

    li {
      width: calc((100% - 15px) / 2);

      .btn {
        justify-content: center;
        height: 48px;
        border-radius: 2px;
        font-size: 1.4rem;
      }
    }
  }
}

@media screen and (max-width: 1279px) {
  .header-nav-login {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .header {
    height: 66px;
  }

  .header-nav-wrapper {
    top: 66px;
    height: calc(100vh - 66px);
    height: calc(100dvh - 66px);
  }

  .header-nav-item-btn,
  .header-nav-item-link {
    padding: 10px 60px 10px 16px;
  }

  .header-nav-item-btn {
    &::after {
      right: 16px;
    }
  }

  .header-nav-item-link {
    &::after {
      right: 16px;
    }

    &:hover {
      &::after {
        right: 8px;
      }
    }
  }

  .header-nav-item-content-body {
    .item-header {
      padding: 0 16px;
    }

    .item-content,
    .item-layer-list {
      padding-left: 16px;
    }

    .item-link-list {
      li {
        a {
          &::after {
            right: 24px;
          }

          &:hover {
            &::after {
              right: 16px;
            }
          }
        }
      }
    }
  }

  .header-nav-btns {
    padding: 0 16px;
  }
}

/* フッター */

.footer {
  background-color: #f0f2f6;
}

.footer-bot {
  background-color: var(--cl-txt-bk);
}

@media screen and (min-width: 1024px) {
  .footer {
    padding-top: 80px;
  }

  .footer-top {
    max-width: 1200px;
    margin: 0 auto;

    .block-container {
      display: flex;
    }

    .footer-nav {
      width: calc(100% - 216px);
      padding-bottom: 104px;
    }

    .footer-nav-list {
      display: flex;

      &.nav-1st {
        .footer-nav-item {
          width: calc(100% / 4);
        }
      }

      .item-ttl {
        font-size: 1.6rem;
        font-weight: 700;
      }

      .item-link-list {
        display: flex;
        flex-wrap: wrap;
        margin-top: 12px;

        li {
          width: 100%;
          margin-top: 8px;

          a {
            color: var(--cl-txt-bk);
            font-size: 1.4rem;
            font-weight: 500;
            text-decoration: none;
            transition: color 0.3s;

            .txt-s {
              font-size: 1rem;
            }

            &.link-outer::after {
              content: "";
              display: inline-block;
              position: relative;
              top: 0;
              width: 12px;
              height: 12px;
              margin-left: 8px;
              background-image: url(../img/common/icon_link_outer.png);
              background-position: center;
              background-repeat: no-repeat;
              background-size: contain;
              transition: background-image 0.3s;
            }

            &:hover {
              color: var(--cl-lbl);
              text-decoration: underline;

              &.link-outer::after {
                background-image: url(../img/common/icon_link_outer_on.png);
              }
            }
          }
        }
      }

      &.nav-2nd {
        margin-top: 48px;
        padding-top: 32px;
        border-top: 1px solid var(--cl-bdr);

        .footer-nav-item {
          width: 100%;
        }

        .item-link-list {
          width: 100%;
          padding-right: calc(100% / 4);

          li {
            width: calc(100% / 3);
          }
        }
      }
    }

    .footer-info {
      display: flex;
      flex-direction: column;
      width: 216px;
    }

    .footer-info-logo {
      a {
        display: block;
        width: 213px;
        height: 34px;
        background-image: url(../img/common/logo_footer.png);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
        text-indent: -999999px;
        transition: background-image 0.3s;

        &:hover {
          background-image: url(../img/common/logo_footer_on.png);
        }
      }
    }

    .footer-info-tel {
      margin-top: 24px;

      a {
        display: flex;
        align-items: center;
        position: relative;
        width: 100%;
        color: var(--cl-lbl);
        font-size: 2.4rem;
        font-weight: 700;
        text-decoration: none;

        &::before {
          content: "";
          display: inline-block;
          position: relative;
          width: 22px;
          height: 22px;
          margin-right: 10px;
          background-image: url(../img/common/icon_tel.png);
          background-position: center;
          background-repeat: no-repeat;
          background-size: contain;
        }
      }

      a[href^="tel:"] {
        pointer-events: none;
        cursor: default;
      }
    }

    .footer-info-time {
      margin-top: 12px;
      font-size: 1.4rem;
    }

    .footer-info-address {
      margin-top: 8px;
      font-size: 1.4rem;
    }

    .footer-info-sns {
      margin-top: 32px;

      ul {
        display: flex;
        align-items: center;

        li + li {
          margin-left: 30px;
        }

        a {
          display: block;
          width: 25px;
          background-position: center;
          background-repeat: no-repeat;
          background-size: contain;
          text-indent: -999999px;
          transition: background-image 0.3s;

          &.icon-fb {
            height: 25px;
            background-image: url(../img/common/icon_sns_fb.png);

            &:hover {
              background-image: url(../img/common/icon_sns_fb_on.png);
            }
          }

          &.icon-x {
            height: 26px;
            background-image: url(../img/common/icon_sns_x.png);

            &:hover {
              background-image: url(../img/common/icon_sns_x_on.png);
            }
          }

          &.icon-ig {
            height: 26px;
            background-image: url(../img/common/icon_sns_ig.png);

            &:hover {
              background-image: url(../img/common/icon_sns_ig_on.png);
            }
          }
        }
      }
    }

    .footer-info-privacy {
      margin-top: auto;

      ul {
        display: flex;
        justify-content: flex-end;

        a {
          display: block;
          transition: opacity 0.3s;

          &:hover {
            opacity: 0.7;
          }
        }

        img {
          display: block;
          height: auto;
        }
      }
    }
  }

  .footer-bot {
    margin-top: 16px;

    .block-container {
      display: flex;
      align-items: center;
      max-width: 1200px;
      height: 89px;
      margin: 0 auto;
    }

    .footer-bot-top {
      display: flex;
      align-items: center;
    }
  }

  .footer-bot-yamazkura {
    a {
      display: block;
      transition: opacity 0.3s;

      &:hover {
        opacity: 0.7;
      }

      img {
        display: block;
        height: auto;
      }
    }
  }

  .footer-bot-nav {
    margin-left: 40px;

    ul {
      display: flex;
      align-items: center;
      gap: 24px;

      a {
        color: #ffffff;
        font-size: 1.4rem;
        text-decoration: none;

        &.link-outer::after {
          content: "";
          display: inline-block;
          position: relative;
          top: 1px;
          width: 12px;
          height: 12px;
          margin-left: 8px;
          background-image: url(../img/common/icon_link_outer_wt.png);
          background-position: center;
          background-repeat: no-repeat;
          background-size: contain;
          transition: background-image 0.3s;
        }

        &:hover {
          text-decoration: underline;
        }
      }
    }
  }

  .footer-bot-copyright {
    margin-left: auto;
    color: #ffffff;
    font-size: 1rem;
    letter-spacing: 0.05em;
  }
}

@media screen and (max-width: 1023px) {
  .footer-top {
    .block-container {
      padding: 8px 0 0;
    }
  }

  .footer-nav-item {
    .item-ttl {
      display: flex;
      align-items: center;
      position: relative;
      min-height: 54px;
      padding: 10px 32px;
      border-bottom: 1px solid var(--cl-bdr);
      font-size: 1.6rem;
      font-weight: 700;
      cursor: pointer;
      transition: color 0.3s;

      &::after {
        content: "";
        display: block;
        position: absolute;
        top: 50%;
        right: 32px;
        width: 16px;
        height: 10px;
        margin-top: -5px;
        background-image: url(../img/common/arow_footer_nav.png);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
        transition: margin 0.3s, transform 0.16s;
      }

      &:hover {
        color: var(--cl-lbl);
        text-decoration: underline;

        &::after {
          margin-top: -1px;
        }
      }

      &.is-active {
        &::after {
          transform: rotate(180deg);
        }
      }
    }

    .item-link-list {
      display: none;
      padding: 12px 0 0 32px;

      a {
        display: flex;
        align-items: center;
        width: 100%;
        min-height: 45px;
        padding: 0 10px;
        color: var(--cl-txt-bk);
        font-size: 1.4rem;
        font-weight: 500;
        text-decoration: underline;

        &.link-outer::after {
          content: "";
          display: inline-block;
          position: relative;
          width: 12px;
          height: 12px;
          margin-left: 8px;
          background-image: url(../img/common/icon_link_outer.png);
          background-position: center;
          background-repeat: no-repeat;
          background-size: contain;
          transition: background-image 0.3s;
        }

        &:hover {
          text-decoration: none;
        }
      }
    }
  }

  .footer-info {
    padding: 65px 0 48px;
  }

  .footer-info-top {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: center;
  }

  .footer-info-logo {
    a {
      display: block;
      width: 213px;
      height: 34px;
      background-image: url(../img/common/logo_footer.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      text-indent: -999999px;
      transition: background-image 0.3s;

      &:hover {
        background-image: url(../img/common/logo_footer_on.png);
      }
    }
  }

  .footer-info-contact {
    margin-left: 48px;
  }

  .footer-info-tel {
    a {
      display: flex;
      align-items: center;
      position: relative;
      color: var(--cl-lbl);
      font-size: 2.4rem;
      font-weight: 700;
      text-decoration: none;

      &::before {
        content: "";
        display: inline-block;
        position: relative;
        width: 22px;
        height: 22px;
        margin-right: 10px;
        background-image: url(../img/common/icon_tel.png);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
      }
    }
  }

  .footer-info-time {
    margin-top: 6px;
    font-size: 1.4rem;
    line-height: 1;
  }

  .footer-info-address {
    margin-top: 16px;
    font-size: 1.4rem;
    text-align: center;
  }

  .footer-info-sns {
    margin-top: 24px;

    ul {
      display: flex;
      align-items: center;
      justify-content: center;

      li + li {
        margin-left: 30px;
      }

      a {
        display: block;
        width: 25px;
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
        text-indent: -999999px;
        transition: background-image 0.3s;

        &.icon-fb {
          height: 25px;
          background-image: url(../img/common/icon_sns_fb.png);

          &:hover {
            background-image: url(../img/common/icon_sns_fb_on.png);
          }
        }

        &.icon-x {
          height: 26px;
          background-image: url(../img/common/icon_sns_x.png);

          &:hover {
            background-image: url(../img/common/icon_sns_x_on.png);
          }
        }

        &.icon-ig {
          height: 26px;
          background-image: url(../img/common/icon_sns_ig.png);

          &:hover {
            background-image: url(../img/common/icon_sns_ig_on.png);
          }
        }
      }
    }
  }

  .footer-info-privacy {
    margin-top: 32px;

    ul {
      display: flex;
      justify-content: center;

      li + li {
        margin-left: 10px;
      }

      img {
        display: block;
        height: auto;
      }
    }
  }

  .footer-bot {
    padding: 48px 0 32px;
  }

  .footer-bot-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
  }

  .footer-bot-yamazkura {
    a {
      display: block;
      transition: opacity 0.3s;

      &:hover {
        opacity: 0.7;
      }

      img {
        display: block;
        height: auto;
      }
    }
  }

  .footer-bot-nav {
    margin-left: 40px;

    ul {
      display: flex;
      align-items: center;
      gap: 24px;

      a {
        color: #ffffff;
        font-size: 1.4rem;
        text-decoration: none;

        &.link-outer::after {
          content: "";
          display: inline-block;
          position: relative;
          width: 12px;
          height: 12px;
          margin-left: 8px;
          background-image: url(../img/common/icon_link_outer_wt.png);
          background-position: center;
          background-repeat: no-repeat;
          background-size: contain;
          transition: background-image 0.3s;
        }

        &:hover {
          text-decoration: underline;
        }
      }
    }
  }

  .footer-bot-copyright {
    margin-top: 48px;
    color: #ffffff;
    font-size: 1rem;
    text-align: center;
    letter-spacing: 0.05em;
  }
}

@media screen and (max-width: 767px) {
  .footer-bot-nav {
    width: 100%;
    margin: 16px 0 0;

    ul {
      justify-content: center;
    }
  }
}

@media screen and (max-width: 767px) {
  .footer-info-contact {
    margin: 32px 0 0;
  }

  .footer-info-time {
    margin-top: 8px;
    text-align: center;
  }

  .footer-info-address {
    margin-top: 24px;
  }

  .footer-bot-nav {
    margin-top: 32px;

    ul {
      display: block;

      li {
        text-align: center;

        & + li {
          margin-top: 8px;
        }
      }
    }
  }

  .footer-info-top {
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .footer-bot-copyright {
    margin-top: 56px;
  }
}

/* トップページ */

/* MV */

.block-top-mv {
  background: linear-gradient(to bottom, rgba(78, 195, 224, 1) 0%, rgba(39, 166, 197, 1) 100%);
  overflow: hidden;
}

.block-top-mv-container {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;

  h1 {
    margin: 0;
    padding: 0;
    color: #ffffff;
    font-size: 4.8rem;
    font-weight: 700;
    line-height: 1.479;
  }

  .item-img {
    img {
      display: block;
      width: 100%;
      height: auto;
    }
  }

  .block-contact-btns {
    a {
      height: 76px;

      & + a {
        margin-top: 16px;
      }
    }
  }
}

@media screen and (min-width: 1280px) {
  .block-top-mv {
    padding: 56px 0 66px;
  }

  .block-top-mv-container {
    .item-img {
      top: 0;
      left: 556px;
      width: 708px;
    }
  }
}

@media screen and (max-width: 1279px) {
  .block-top-mv-container {
    .item-img {
      top: 0;
      left: 578px;
      width: 605px;
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-top-mv {
    padding: 56px 0 66px 32px;
  }

  .block-top-mv-container {
    .item-img {
      position: absolute;
    }

    .block-contact-btns {
      width: 416px;
      margin-top: 54px;
    }
  }
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
  .block-top-mv {
    padding: 56px 0 100px;
  }

  .block-top-mv-container {
    padding: 0 32px;

    h1 {
      text-align: center;
    }

    .item-img {
      width: 689px;
      margin: 30px auto 0;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-top-mv {
    padding: 32px 0;
  }

  .block-top-mv-container {
    padding: 0 16px;

    h1 {
      font-size: 2.8rem;
      text-align: center;
    }

    .item-img {
      width: 100vw;
      margin: 14px 0 0;
    }
  }
}

/* バナー */

.block-top-mv-bnrs {
  background-color: var(--cl-gy-bg);

  ul {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    gap: 32px;

    li {
      flex-shrink: 1;

      a {
        display: block;
        width: 100%;

        img {
          display: block;
          width: 100%;
          height: auto;
        }
      }
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-top-mv-bnrs {
    padding: 24px 0;

    ul {
      max-width: 1200px;
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-top-mv-bnrs {
    padding: 32px 0;

    ul {
      flex-direction: column;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-top-mv-bnrs {
    ul {
      gap: 16px;

      li {
        width: 100%;
      }
    }
  }
}

/* スクロールバナー */

.block-top-scroll-bnrs {
  position: relative;
}

.block-top-scroll-bnrs-warpper {
  display: flex;
  overflow: hidden;

  ul {
    display: flex;
    flex-shrink: 0;
    animation: scroll-left 90s infinite linear 0.5s both;

    li {
      flex-shrink: 0;
      width: auto;
      margin-right: 10px;

      img {
        display: block;
        width: auto;
        height: 80px;
      }
    }
  }
}

@keyframes scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

.block-top-scroll-bnrs:has(#scroll-bnrs:checked) {
  .block-top-scroll-bnrs-warpper {
    ul {
      animation-play-state: paused;
    }
  }
}

.block-top-scroll-bnrs-btn {
  position: absolute;
  right: 16px;
  bottom: -11px;

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

    & + label {
      display: block;
      width: 24px;
      height: 24px;
      background-image: url(../img/common/btn_slider_stop.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      text-indent: -999999px;
      cursor: pointer;
      transition: background-image 0.15s;

      &::before,
      &::after {
        content: none;
      }
    }
  }

  input[type="checkbox"]:checked + label {
    background-image: url(../img/common/btn_slider_play.png);
  }
}

@media screen and (min-width: 1024px) {
  .block-top-intro_company {
    padding: 12px 0 32px;
  }
}

@media screen and (max-width: 1023px) {
  .block-top-intro_company {
    padding: 24px 0 44px;
  }
}

@media screen and (max-width: 767px) {
  .block-top-intro_company {
    padding-bottom: 32px;
  }
}

/* 導入実績 */

.block-top-intro_company-content {
  .item-main {
    ul {
      display: flex;
      align-items: center;
      gap: 24px;

      li {
        height: 74px;
        background-position: center bottom;
        background-repeat: no-repeat;
        background-size: 100% 72px;
        text-align: center;

        &:nth-child(1) {
          width: 207px;
          background-image: url(../img/top/achievements/achievements_1.png);
        }

        &:nth-child(2) {
          width: 207px;
          background-image: url(../img/top/achievements/achievements_1.png);
        }

        &:nth-child(3) {
          width: 169px;
          background-image: url(../img/top/achievements/achievements_3.png);
        }

        p:nth-child(1) {
          font-size: 1.5rem;
          font-weight: 500;
        }

        p:nth-child(2) {
          position: relative;
          line-height: 1.3;

          b {
            color: var(--cl-lbl);
            font-size: 3.9rem;
            font-weight: 700;
            letter-spacing: -0.03em;
          }

          span {
            display: inline-block;
            position: relative;
            margin-left: 3px;
            font-size: 1.9rem;
            font-weight: 500;
          }

          sup {
            position: absolute;
            right: 0;
            top: -12px;
            color: var(--cl-lbl);
            font-size: 0.9rem;
            font-weight: 500;
          }
        }
      }
    }
  }

  .item-annotation {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.6;
  }
}

@media screen and (min-width: 1024px) {
  .block-top-intro_company-content {
    max-width: 1200px;
    margin: 0 auto;
    margin-top: 24px;

    .block-container {
      display: flex;
      align-items: flex-end;
      justify-content: center;
    }

    .item-annotation {
      margin-left: 48px;
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-top-intro_company-content {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 32px;

    .item-annotation {
      margin-top: 28px;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-top-intro_company-content {
    .item-main {
      ul {
        flex-direction: column;
        gap: 16px;
      }
    }

    .item-annotation {
      margin-top: 16px;
    }
  }
}

/* サービス概要 */

.block-top-service_overview {
  background-color: var(--cl-lbl-bg);

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }

  .item-img {
    img {
      display: block;
      max-width: 100%;
      height: auto;
      margin: 0 auto;
    }
  }
}

@media screen and (min-width: 768px) {
  .block-top-service_overview {
    padding: 88px 0 104px;

    .item-img {
      margin-top: 64px;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-top-service_overview {
    padding: 48px 0 67px;

    .item-img {
      margin-top: 48px;

      img {
        width: 100%;
      }
    }
  }
}

/* 活用シーン */

.block-top-usage {
  max-width: 1200px;
  margin: 0 auto;
  padding: 88px 0 104px;
}

.block-top-usage-list {
  max-width: 1136px;
  margin: 64px auto 0;

  ul {
    display: flex;
    flex-wrap: wrap;

    li {
      a {
        width: 100%;
        padding: 22px 40px 22px 24px;
        font-size: 1.6rem;
        font-weight: 500;
        text-align: left;
      }
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-top-usage-list {
    ul {
      gap: 32px 16px;

      li {
        width: calc((100% - 32px) / 3);

        a {
          min-height: 128px;
        }
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-top-usage-list {
    ul {
      flex-direction: column;
      gap: 16px;

      li {
        width: 100%;

        a {
          min-height: 72px;
        }
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .block-top-usage-list {
    margin-top: 32px;
  }
}

/* NAMEROOMサービスエリア */

.block-top-sevice {
  background-color: var(--cl-lbl-bg);
  overflow: hidden;

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }
}

.block-top-sevice-content {
  max-width: 1200px;
  margin: 0 auto;
}

.block-top-sevice-content-item {
  position: relative;
  background-color: #ffffff;
}

@media screen and (min-width: 1024px) {
  .block-top-sevice-content-item {
    padding: 80px 32px;
    height: 601px;

    &.content-bio {
      padding-top: 70px;
    }

    &::before,
    &::after {
      content: "";
      position: absolute;
      top: 0;
      height: 100%;
      background-color: #ffffff;
    }

    &::before {
      width: calc((100vw - 1136px) / 2);
    }

    &::after {
      width: 50px;
    }

    .item-main {
      position: relative;
      z-index: 9;

      h3 {
        margin: 0;
        padding: 0;

        img {
          display: block;
          height: auto;
        }
      }
    }

    .item-subttl {
      margin: 32px 0 0;
      padding: 0;
      font-size: 2.4rem;
      font-weight: 500;
    }

    .item-comment {
      margin-top: 12px;
      font-size: 1.6rem;
      line-height: 1.75;
    }

    .item-link,
    .item-link-list {
      width: 530px;
    }

    .item-link {
      margin-top: 16px;

      a {
        justify-content: center;
        width: 170px;
        height: 42px;
      }
    }

    .item-link-list {
      margin-top: 64px;

      .item-link-list-ttl {
        font-size: 1.6rem;
        font-weight: 500;
      }

      ul {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 16px;
        margin-top: 8px;

        li {
          width: calc((100% - 16px) / 2);

          a {
            width: 100%;
            height: 45px;
            padding: 0 30px 0 12px;
            font-size: 1.4rem;

            &::after {
              right: 16px;
            }

            &:hover {
              &::after {
                right: 8px;
              }
            }
          }
        }
      }
    }

    .item-img {
      position: absolute;
      top: 0;
    }

    &:nth-child(odd) {
      &::before {
        right: calc((100vw - 1136px) / 2 * -1);
      }

      &::after {
        left: -50px;
        border-top-left-radius: 8px;
        border-bottom-left-radius: 8px;
      }

      .item-img {
        left: 530px;
      }
    }

    &:nth-child(even) {
      &::before {
        left: calc((100vw - 1136px) / 2 * -1);
      }

      &::after {
        right: -50px;
        border-top-right-radius: 8px;
        border-bottom-right-radius: 8px;
      }

      .item-main {
        width: 530px;
        margin-left: auto;
      }

      .item-img {
        right: 530px;
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-top-sevice-content-item {
    padding: 80px 32px 0;

    .item-main {
      h3 {
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        padding: 0;

        img {
          display: block;
          height: auto;
        }
      }
    }

    .item-subttl {
      margin: 32px 0 0;
      padding: 0;
      font-size: 2.4rem;
      font-weight: 500;
      text-align: center;
    }

    .item-comment {
      margin-top: 12px;
      font-size: 1.6rem;
      text-align: center;
      line-height: 1.75;
    }

    .item-link,
    .item-link-list {
      max-width: 704px;
      margin: 0 auto;
    }

    .item-link {
      margin-top: 16px;

      a {
        justify-content: center;
        width: 100%;
        height: 42px;
        padding-right: 28px;
      }
    }

    .item-link-list {
      margin-top: 64px;

      .item-link-list-ttl {
        font-size: 1.6rem;
        font-weight: 500;
      }

      ul {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 32px;
        margin-top: 8px;

        li {
          width: calc((100% - 32px) / 2);

          a {
            width: 100%;
            height: 45px;
            padding: 0 30px 0 12px;
            font-size: 1.4rem;

            &::after {
              right: 16px;
            }

            &:hover {
              &::after {
                right: 8px;
              }
            }
          }
        }
      }
    }

    .item-img {
      max-width: 704px;
      margin: 0 auto;

      img {
        display: block;
        width: 100%;
        height: auto;
      }
    }
  }
}

@media screen and (min-width: 768px) {
  .block-top-sevice {
    padding: 88px 0 104px;
  }

  .block-top-sevice-content {
    margin-top: 86px;
  }

  .block-top-sevice-content-item {
    & + .block-top-sevice-content-item {
      margin-top: 56px;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-top-sevice {
    padding: 32px 0;
  }

  .block-top-sevice-content {
    margin-top: 20px;
  }

  .block-top-sevice-content-item {
    padding: 32px 16px 0;

    & + .block-top-sevice-content-item {
      margin-top: 32px;
    }

    .item-main {
      h3 {
        img {
          display: block;
          width: auto;
          height: 22px;
        }
      }
    }

    &.content-bio {
      .item-main {
        h3 {
          img {
            height: 33px;
          }
        }
      }
    }

    .item-subttl {
      margin: 24px 0 0;
    }

    .item-comment {
      margin-top: 24px;
    }

    .item-link,
    .item-link-list {
      width: 100%;
    }

    .item-link {
      margin-top: 24px;

      a {
        padding-right: 0;
      }
    }

    .item-link-list {
      margin-top: 24px;

      .item-link-list-ttl {
        font-size: 1.6rem;
        font-weight: 500;
      }

      ul {
        gap: 16px;
        margin-top: 16px;

        li {
          width: 100%;
        }
      }
    }
  }
}

/* お問い合わせ */

.block-contact-area {
  padding: 72px 0 80px;
  background: linear-gradient(to bottom, #45bcda 0%, #3eb7d5 50%, #27a6c5 100%);

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }

  h2 {
    margin: 0;
    padding: 0;
    color: #ffffff;
    font-size: 2.8rem;
    font-weight: 700;
    text-align: center;

    sup {
      font-size: 1.8rem;
      vertical-align: super;
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-contact-area {
    .block-contact-btns {
      display: flex;
      justify-content: center;
      margin-top: 48px;

      a {
        width: 416px;
        height: 76px;

        & + a {
          margin-left: 34px;
        }
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-contact-area {
    .block-contact-btns {
      margin-top: 55px;

      a {
        width: 100%;
        height: 76px;

        & + a {
          margin-top: 16px;
        }
      }
    }
  }
}

@media screen and (min-width: 768px) {
  .block-contact-area {
    padding-bottom: 95px;
  }
}

@media screen and (max-width: 767px) {
  .block-contact-area {
    padding: 30px 0 48px;

    h2 {
      font-size: 2.4rem;

      &:not(.sp-only) {
        display: none !important;
      }
    }
  }
}

/* 導入事例スライダーエリア */

.block-top-case {
  padding: 88px 0 104px;
  overflow: hidden;

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }
}

.block-top-case-list {
  margin-top: 56px;
  overflow: hidden;

  .list-items {
    display: flex;
    justify-content: center;
    margin: 0 auto;
    gap: 32px;
  }

  .list-item {
    flex-shrink: 0;
    width: calc((100% - 64px) / 3);
    height: auto;
    padding-left:1px;
    padding-right:1px;

    a {
      display: block;
      position: relative;
      height: 100%;
      background-color: #ffffff;
      color: var(--cl-txt-bk);
      text-decoration: none;
      overflow: hidden;
      transition: color 0.3s;

      &::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: 1px solid var(--cl-bdr);
        border-radius: 8px;
        transition: border 0.3s;
      }

      &:hover {
        color: var(--cl-lbl);

        &::before {
          border: 2px solid var(--cl-lbl);
        }
      }

      .list-img {
        img {
          display: block;
          width: 100%;
          height: auto;
          border-top-right-radius: 8px;
          border-top-left-radius: 8px;
          aspect-ratio: 357 / 187;
          object-fit: cover;
        }
      }

      .list-detail {
        padding: 24px 32px 48px;
      }

      .list-ttl {
        font-size: 1.6rem;
        font-weight: 500;
      }

      .list-company {
        margin-top: 24px;
        font-size: 1.4rem;
      }

      .list-tag {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 8px;

        span {
          display: flex;
          align-items: center;
          justify-content: center;
          height: 20px;
          padding: 1px 8px 0;
          border: 1px solid var(--cl-lbl);
          border-radius: 20px;
          color: var(--cl-lbl);
          font-size: 1.2rem;
          line-height: 1;
        }
      }
    }
  }
}

.block-top-case-list-slider {
  position: relative;

  .list-items {
    justify-content: flex-start;
    gap: 0;
  }

  .list-ctrl {
    .swiper-pagination-wrapper {
      position: absolute;
      bottom: -60px;
      left: 0;
      width: 100%;
      height: 12px;
    }

    .swiper-pagination {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;

      .swiper-pagination-bullet {
        display: block;
        width: 12px;
        height: 12px;
        border-radius: 12px;
        background-color: var(--cl-bdr);
        cursor: pointer;
        transition: background-color 0.15s;

        &.swiper-pagination-bullet-active {
          background-color: var(--cl-lbl);
        }
      }
    }

    .swiper-button-prev,
    .swiper-button-next {
      display: block;
      position: relative;
      width: 52px;
      height: 52px;
      cursor: pointer;

      &::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-image: url(../img/common/arw_slider.png);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
      }

      &.swiper-button-next {
        &::before {
          transform: rotate(180deg);
        }
      }
    }
  }
}

.block-top-case-more {
  display: flex;
  align-items: center;
  justify-content: center;

  .btn {
    justify-content: center;
    width: 245px;
    height: 42px;
    padding-right: 29px;
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 1024px) {
  .block-top-case-list-slider {
    .list-ctrl {
      .swiper-button-prev,
      .swiper-button-next {
        position: absolute;
        top: 50%;
        margin-top: -26px;
        z-index: 9;
      }

      .swiper-button-prev {
        left: -64px;
      }

      .swiper-button-next {
        right: -64px;
      }
    }
  }

  .block-top-case-more {
    margin-top: 116px;
  }
}

@media screen and (max-width: 1280px) {
  .block-top-case-list-slider {
    .list-ctrl {
      .swiper-button-prev {
        left: -42px;
      }

      .swiper-button-next {
        right: -42px;
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-top-case-list {
    max-width: 704px;

    .list-item {
      flex-shrink: 0;
      width: 100%;

      a {
        .list-ttl {
          font-size: 1.8rem;
          text-align: center;
        }

        .list-company {
          display: flex;
          flex-wrap: wrap;
          justify-content: center;
          gap: 1em;
          font-size: 1.6rem;
        }

        .list-tag {
          justify-content: center;
        }
      }
    }
  }

  .block-top-case-list-slider {
    .list-ctrl {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      margin-top: 48px;

      .swiper-pagination-wrapper {
        position: relative;
        bottom: auto;
        width: auto;
      }
      .swiper-button-prev {
        left: auto;
      }

      .swiper-button-next {
        right: auto;
      }
    }
  }

  .block-top-case-more {
    margin-top: 56px;
  }
}

@media screen and (max-width: 767px) {
  .block-top-case {
    padding: 32px 0 18px;
  }

  .block-top-case-list-slider {
    .list-ctrl {
      margin-top: 24px;
    }
  }

  .block-top-case-more {
    margin-top: 24px;
  }
}

/* 導入までの流れ */

.block-top-flow_implementation {
  background-color: var(--cl-lbl-bg);
  overflow: hidden;

  .block-container {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
  }
}

.block-top-flow_implementation-list {
  position: relative;
  background-color: #ffffff;

  .list-items {
    display: flex;
    gap: 16px;
  }

  .list-item {
    display: flex;
    position: relative;
    padding: 22px 16px;
    border: 2px solid var(--cl-lbl);
    border-radius: 4px;
    background-color: #ffffff;

    .list-step {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 108px;
      height: 32px;
      border-radius: 32px;
      background-color: #4ec3e0;
      color: #ffffff;
      font-size: 1.6rem;
      font-weight: 500;
      text-align: center;
    }

    .list-ttl {
      font-size: 1.6rem;
      font-weight: 500;
    }

    .list-comment {
      margin-top: 12px;
      font-size: 1.4rem;
    }

    &.item-first {
      border-color: #597487;
      background-color: #597487;
      color: #ffffff;
    }

    &.item-last {
      background-color: var(--cl-lbl);
      color: #ffffff;

      .list-step {
        background-color: #ffe033;
        color: var(--cl-lbl);
      }
    }

    & + .list-item {
      &::before {
        content: "";
        display: block;
        position: absolute;
        background-color: #b2e5f2;
      }
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-top-flow_implementation-list {
    position: relative;
    padding: 48px 0;

    &::before,
    &::after {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      width: 80px;
      height: 100%;
      background-color: #ffffff;
    }

    &::before {
      left: -80px;
      border-top-left-radius: 4px;
      border-bottom-left-radius: 4px;
    }

    &::after {
      right: -80px;
      border-top-right-radius: 4px;
      border-bottom-right-radius: 4px;
    }

    .list-items {
      justify-content: space-between;
    }

    .list-item {
      flex-direction: column;
      align-items: center;
      width: calc((100% - 80px) / 6);

      .list-ttl {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-top: 14px;
        text-align: center;
      }

      & + .list-item {
        &::before {
          top: 50%;
          left: -18px;
          margin-top: -20px;
          width: 29px;
          height: 41px;
          clip-path: polygon(29px 50%, 0% 0%, 0% 41px);
        }
      }
    }
  }
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
  .block-top-flow_implementation-list {
    margin: 32px -32px 0;
    padding: 48px 32px;

    .list-items {
      flex-direction: column;
    }

    .list-item {
      align-items: center;

      .list-detail {
        width: calc(100% - 108px);
        padding-left: 32px;
      }

      & + .list-item {
        &::before {
          left: 50%;
          top: -18px;
          width: 41px;
          height: 29px;
          margin-left: -20px;
          clip-path: polygon(50% 29px, 0% 0%, 41px 0%);
        }
      }
    }
  }
}

@media screen and (min-width: 768px) {
  .block-top-flow_implementation {
    padding: 88px 0 104px;
  }

  .block-top-flow_implementation-list {
    margin-top: 32px;
  }
}

@media screen and (max-width: 767px) {
  .block-top-flow_implementation {
    padding: 70px 0 48px;
  }

  .block-top-flow_implementation-list {
    margin: 24px -16px 0;
    padding: 48px 16px;

    .list-items {
      flex-direction: column;
    }

    .list-item {
      flex-direction: column;
      align-items: center;
      padding-right: 56px;
      padding-left: 56px;

      .list-ttl {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-top: 14px;
        text-align: center;
      }

      & + .list-item {
        &::before {
          left: 50%;
          top: -18px;
          width: 41px;
          height: 29px;
          margin-left: -20px;
          clip-path: polygon(50% 29px, 0% 0%, 41px 0%);
        }
      }
    }
  }
}

/* 充実のサポート体制 */

.block-top-support {
  padding: 88px 0 104px;
  overflow: hidden;

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }
}

.block-top-support-list {
  .list-items {
    display: flex;
    gap: 32px;
  }

  .list-item {
    position: relative;
    border-radius: 8px;
    overflow: hidden;

    &::before {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      border: 1px solid var(--cl-bdr);
      border-radius: 8px;
    }

    .list-img {
      img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: 357 / 187;
      }
    }

    .list-detail {
      background-color: #ffffff;
    }

    .list-ttl {
      position: relative;
      font-size: 1.8rem;
      font-weight: 500;
      text-align: center;
    }

    .list-comment {
      position: relative;
      margin-top: 24px;
      font-size: 1.6rem;
    }

    .list-btn {
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      margin-top: 24px;

      .btn {
        justify-content: center;
        width: 170px;
        height: 42px;
        font-size: 1.6rem;
      }
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-top-support-list {
    margin-top: 56px;

    .list-items {
      justify-content: center;
    }

    .list-item {
      width: calc((100% - 64px) / 3);

      .list-detail {
        padding: 32px 26px;
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-top-support-list {
    max-width: 704px;
    margin: 56px auto 0;

    .list-items {
      flex-direction: column;
    }

    .list-item {
      .list-detail {
        padding: 48px 50px 52px;
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .block-top-support {
    padding: 32px 0 48px;
  }

  .block-top-support-list {
    margin-top: 24px;

    .list-item {
      .list-detail {
        padding: 24px 16px 36px;
      }
    }
  }
}

/* お知らせ */

.block-top-topics {
  padding: 56px 0 104px;
  background-color: var(--cl-gy-bg);

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }
}

.block-top-topics {
  .list-item {
    display: flex;
    position: relative;
    border: 1px solid var(--cl-bdr);
    border-radius: 4px;
    background-color: #ffffff;
    color: var(--cl-txt-bk);
    text-decoration: none;
    transition: border 0.3s, color 0.3s;

    &::after {
      content: "";
      display: block;
      position: absolute;
      top: 50%;
      right: 24px;
      width: 21px;
      height: 21px;
      margin-top: -11px;
      background-image: url(../img/common/arw_link_gr.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      transition: right 0.3s;
    }

    &:hover {
      border-color: var(--cl-lbl);
      color: var(--cl-lbl);

      &::after {
        right: 16px;
      }
    }

    & + .list-item {
      margin-top: 16px;
    }

    dt {
      display: flex;
      align-items: center;
      flex-shrink: 0;

      .list-date {
        font-size: 1.4rem;
      }

      .list-tag {
        margin-left: 16px;

        span {
          display: flex;
          align-items: center;
          justify-content: center;
          width: 100px;
          height: 20px;
          border: 1px solid var(--cl-lbl);
          border-radius: 20px;
          background-color: #ffffff;
          color: var(--cl-lbl);
          font-size: 1.2rem;
          line-height: 1;
        }
      }
    }

    dd {
      flex-shrink: 1;
      font-size: 1.6rem;
      font-weight: 500;
    }
  }
}

.block-top-topics-more {
  display: flex;
  align-items: center;
  justify-content: center;

  .btn {
    justify-content: center;
    width: 245px;
    height: 42px;
    padding-right: 29px;
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 1024px) {
  .block-top-topics {
    .list-item {
      min-height: 64px;
      padding: 18px 72px 18px 23px;

      dd {
        padding-left: 32px;
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-top-topics {
    .list-item {
      flex-direction: column;
      justify-content: center;
    }
  }
}

@media screen and (min-width: 768px) {
  .block-top-topics {
    margin-top: 54px;
  }

  .block-top-topics-more {
    margin-top: 56px;
  }
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
  .block-top-topics {
    .list-item {
      min-height: 112px;
      padding: 24px 50px 24px 23px;

      dd {
        margin-top: 8px;
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .block-top-topics {
    margin-top: 24px;
    padding: 36px 0 48px;
  }

  .block-top-topics {
    .list-item {
      min-height: 134px;
      padding: 24px 50px 24px 23px;

      &::after {
        right: 16px;
      }

      &:hover {
        &::after {
          right: 8px;
        }
      }

      dd {
        margin-top: 8px;
      }
    }
  }

  .block-top-topics-more {
    margin-top: 32px;
  }
}

/* 下層ページ */

/* 部品 */

/* ページャー */

.pager {
  max-width: 1200px;
  margin: 0 auto;
  overflow: hidden;

  ul {
    display: flex;
    align-items: center;
    justify-content: center;

    li {
      & + li {
        margin-left: 12px;
      }

      &.pager-prev + li,
      &.pager-next {
        margin-left: 24px;
      }
    }

    a,
    span {
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      width: 45px;
      height: 45px;
      border: 1px solid transparent;
      border-radius: 45px;
      color: var(--cl-txt-bk);
      font-size: 2rem;
      font-weight: 500;
      text-align: center;
      text-decoration: none;
      line-height: 1;
    }

    a {
      border-color: var(--cl-bdr);
      background-color: #ffffff;
      transition: background-color 0.3s;

      &:hover {
        background-color: var(--cl-btn-bdr-bg-hover);
      }
    }

    span {
      border-color: var(--cl-lbl);
      background-color: var(--cl-lbl);
      color: #ffffff;
    }

    .pager-prev,
    .pager-next {
      a {
        width: 12px;
        border: none;
        background-color: transparent;
        text-indent: -999999px;
      }
    }

    .pager-prev {
      a::before {
        content: "";
        display: inline-block;
        position: relative;
        width: 12px;
        height: 22px;
        background-image: url(../img/common/pager_arw.png);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
      }
    }

    .pager-next {
      a::after {
        content: "";
        display: inline-block;
        position: relative;
        width: 12px;
        height: 22px;
        background-image: url(../img/common/pager_arw.png);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
        transform: rotate(180deg);
      }
    }
  }
}

@media screen and (min-width: 768px) {
  .pager {
    padding: 56px 32px 104px;
  }
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

@media screen and (max-width: 767px) {
  .pager {
    padding: 32px 16px 156px;

    ul {
      li {
        & + li {
          margin-left: 10px;
        }

        &.pager-prev + li,
        &.pager-next {
          margin-left: 20px;
        }
      }

      a,
      span {
        width: 38px;
        height: 38px;
        border-radius: 38px;
        font-size: 1.7rem;
      }
    }
  }
}

/* アコーディオンパネル */

.block-accordion_panel {
  padding: 56px 0;
  background-color: var(--cl-gy-bg);
}

.block-accordion_panel-wrapper {
  max-width: 1136px;
  margin: 0 auto;
  border-radius: 4px;
  background-color: #ffffff;
}

.block-accordion_panel-ttl {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  height: 56px;
  border: 1px solid var(--cl-bdr);
  border-radius: 4px;
  font-size: 2rem;
  font-weight: 500;
  cursor: pointer;
  transition: border 0.3s, background-color 0.3s;

  &::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 26px;
    width: 24px;
    height: 24px;
    margin-top: -12px;
    background-image: url(../img/common/refine_search_plus.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    transition: background-image 0.15s;
  }

  &.is-active {
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;

    &::after {
      background-image: url(../img/common/refine_search_minus.png);
    }
  }

  &:hover {
    border-color: var(--cl-lbl);
    background-color: var(--cl-btn-bdr-bg-hover);
  }
}

.block-accordion_panel-content {
  display: none;
  padding: 32px 56px 48px;
  border: 1px solid var(--cl-bdr);
  border-top: none;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
}

.block-refine_search-list {
  .list-item {
    display: flex;

    & + .list-item {
      margin-top: 48px;
    }

    dt {
      width: 86px;
      font-size: 1.6rem;
      font-weight: 700;
    }

    dd {
      width: calc(100% - 86px);

      ul {
        display: flex;
        flex-wrap: wrap;
        gap: 16px;
      }
    }
  }

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

    & + label {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 39px;
      padding: 0 11px;
      border: 1px solid var(--cl-bdr);
      border-radius: 4px;
      background-color: #ffffff;
      font-size: 1.4rem;
      cursor: pointer;
      transition: border 0.15s, background-color 0.15s, color 0.15s;

      &:hover {
        background-color: var(--cl-btn-bdr-bg-hover);
      }

      &::before,
      &::after {
        content: none;
      }
    }

    &:checked {
      & + label {
        border-color: var(--cl-lbl);
        background-color: var(--cl-lbl);
        color: #ffffff;
        font-weight: 500;
      }
    }
  }
}

.block-refine_search-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 48px;

  button {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 147px;
    height: 42px;
    border: 1px solid var(--cl-bdr);
    border-radius: 4px;
    background-color: #ffffff;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    transition: border 0.3s, color 0.3s;

    &::after {
      content: "";
      display: inline-block;
      position: relative;
      width: 15px;
      height: 15px;
      margin-left: 4px;
      background-image: url(../img/common/refine_search_submit.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      transition: background-image 0.3s;
    }

    &:hover {
      border-color: var(--cl-lbl);
      color: var(--cl-lbl);

      &::after {
        background-image: url(../img/common/refine_search_submit_on.png);
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .block-accordion_panel-content {
    padding: 24px 16px 32px;
  }
}

/* スライダーエリア */

.block-slider {
  position: relative;
  background-color: var(--cl-lbl-bg);
  overflow: hidden;
}

.block-slider-list {
  .list-items {
    display: flex;
    justify-content: center;
  }

  .list-item {
    max-width: 1136px;

    a {
      display: flex;
      flex-shrink: 0;
      position: relative;
      max-width: 100%;
      height: auto;
      margin: 0 38px;
      padding: 48px 48px 32px;
      border-radius: 8px;
      background-color: #ffffff;
      color: var(--cl-txt-bk);
      text-decoration: none;
      overflow: hidden;
      transition: color 0.3s;

      &::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: 1px solid var(--cl-bdr);
        border-radius: 8px;
        transition: border 0.3s;
      }

      &:hover {
        color: var(--cl-lbl);

        &::before {
          border: 2px solid var(--cl-lbl);
        }

        .btn-bdr-gy {
          border-color: var(--cl-lbl);
          color: var(--cl-lbl);
        }

        .btn-arw-center {
          &::after {
            right: -8px;
          }
        }
      }
    }

    .list-img {
      img {
        display: block;
        width: 100%;
        height: auto;
      }
    }

    .list-ttl {
      display: -webkit-box;
      font-size: 2.4rem;
      font-weight: 700;
      -webkit-box-orient: vertical;
      overflow: hidden;
      text-overflow: ellipsis;
      -webkit-line-clamp: 3;
      line-clamp: 3;
    }

    .list-company {
      margin-top: 24px;
      font-size: 1.8rem;
      line-height: 1.25;
    }

    .list-tag {
      display: flex;
      flex-wrap: wrap;
      margin-top: 24px;
      gap: 8px 14px;

      span {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 24px;
        padding: 0 12px;
        border: 1px solid var(--cl-lbl);
        border-radius: 24px;
        color: var(--cl-lbl);
        font-size: 1.4rem;
      }
    }

    .list-btn {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      margin-top: 37px;

      .btn {
        justify-content: center;
        width: 147px;
        height: 42px;
        font-size: 1.4rem;
      }
    }
  }

  &.swiper {
    .list-items {
      justify-content: flex-start;
    }

    .list-item {
      margin: 0;
    }
  }
}

.block-slider-list-wrapper {
  position: relative;

  .list-ctrl {
    .swiper-pagination-wrapper {
      position: absolute;
      bottom: -44px;
      left: 0;
      width: 100%;
      height: 12px;
    }

    .swiper-pagination {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;

      .swiper-pagination-bullet {
        display: block;
        width: 12px;
        height: 12px;
        border-radius: 12px;
        background-color: var(--cl-bdr);
        cursor: pointer;
        transition: background-color 0.15s;

        &.swiper-pagination-bullet-active {
          background-color: var(--cl-lbl);
        }
      }
    }

    .swiper-button-prev,
    .swiper-button-next {
      display: block;
      position: relative;
      width: 52px;
      height: 52px;
      cursor: pointer;

      &::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-image: url(../img/common/arw_slider.png);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
      }

      &.swiper-button-next {
        &::before {
          transform: rotate(180deg);
        }
      }
    }
  }
}

@media screen and (max-width: 1199px) {
  .block-slider-list-wrapper {
    padding: 0 32px;
  }
}

@media screen and (min-width: 1024px) {
  .block-slider {
    padding: 80px 0 133px;
  }

  .block-slider-list {
    .list-item {
      .list-img {
        width: calc(100% - 480px);
        padding-right: 48px;
      }

      .list-detail {
        width: 480px;
      }
    }
  }

  .block-slider-list-wrapper {
    .list-ctrl {
      .swiper-button-prev,
      .swiper-button-next {
        position: absolute;
        top: 50%;
        margin-top: -26px;
        z-index: 9;
      }

      .swiper-button-prev {
        left: calc(50% - 632px);
      }

      .swiper-button-next {
        right: calc(50% - 632px);
      }
    }
  }
}

@media screen and (max-width: 1230px) {
  .block-slider-list-wrapper {
    .list-ctrl {
      .swiper-button-prev {
        left: -10px;
      }

      .swiper-button-next {
        right: -10px;
      }
    }
  }

  .block-slider {
    padding: 80px 0 75px;
  }
}

@media screen and (max-width: 1023px) {
  .block-slider-list {
    max-width: 704px;
    margin: 0 auto;

    .list-item {
      flex-direction: column;
      max-width: 704px;
      margin: 0;
      padding: 48px 32px;

      .list-detail {
        margin-top: 24px;
      }

      .list-btn {
        justify-content: center;
        margin-top: 48px;
      }
    }
  }

  .block-slider-list-wrapper {
    .list-ctrl {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      margin-top: 48px;

      .swiper-pagination-wrapper {
        position: relative;
        bottom: auto;
        width: auto;
      }

      .swiper-button-prev {
        left: auto;
      }

      .swiper-button-next {
        right: auto;
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .block-slider {
    padding: 50px 0 56px;
  }

  .block-slider-list-wrapper {
    padding: 0 16px;
  }

  .block-slider-list {
    width: 100%;
    margin: 0 auto;

    .list-item {
      width: 100%;
      padding: 32px 16px 42px;

      .list-detail {
        margin-top: 24px;
      }

      .item-ttl {
        font-size: 1.8rem;
      }

      .item-company {
        font-size: 1.6rem;
      }

      .list-btn {
        justify-content: center;
        margin-top: 36px;
      }

      .list-tag {
        gap: 4px 8px;

        span {
          height: 20px;
          padding: 0 8px;
          border-radius: 20px;
          font-size: 1.2rem;
        }
      }
    }
  }
}

/* 3列カードタイプ */

.block-3col_card {
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 0 0;
}

.block-1col_card + .block-3col_card {
  padding-top: 32px;
}

.block-header-h2 + .block-3col_card,
.block-common-h2 + .block-3col_card,
.block-function-intro + .block-3col_card {
  padding-top: 0;
}

.block-3col_card-list {
  .list-items {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
  }

  .list-item {
    position: relative;
    border-radius: 8px;
    background-color: #ffffff;
    overflow: hidden;

    &:not(.full-link) {
      &::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: 1px solid var(--cl-bdr);
        border-radius: 8px;
      }
    }

    &.full-link {
      a {
        display: block;
        position: relative;
        width: 100%;
        height: 100%;
        color: var(--cl-txt-bk);
        text-decoration: none;
        transition: color 0.3s;

        &::before {
          content: "";
          display: block;
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          border: 1px solid var(--cl-bdr);
          border-radius: 8px;
          transition: border 0.3s;
        }

        &:hover {
          color: var(--cl-lbl);

          &::before {
            border: 2px solid var(--cl-lbl);
          }

          .btn-bdr-gy {
            border-color: var(--cl-lbl);
            color: var(--cl-lbl);
          }

          .btn-arw-center {
            &::after {
              right: -8px;
            }
          }
        }
      }
    }

    .list-img {
      img {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 357 / 187;
        object-fit: cover;
      }
    }

    .list-icon {
      padding-top: 48px;

      img {
        display: block;
        width: 56px;
        height: 56px;
        margin: 0 auto;
        object-fit: cover;
      }
    }

    .list-ttl {
      position: relative;
      font-size: 1.8rem;
      font-weight: 700;

      &.ttl-center {
        text-align: center;
      }

      &.fw-m {
        font-weight: 500;
      }
    }

    &:has(.list-icon) {
      .list-ttl {
        text-align: center;
      }
    }

    .list-comment {
      position: relative;
      margin-top: 24px;
      font-size: 1.6rem;
    }

    .list-company {
      position: relative;
      margin-top: 8px;
      font-size: 1.6rem;
    }

    .list-tag {
      position: relative;
      display: flex;
      flex-wrap: wrap;
      gap: 4px 8px;
      margin-top: 12px;

      span {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 20px;
        padding: 0 8px;
        border: 1px solid var(--cl-lbl);
        border-radius: 20px;
        background-color: #ffffff;
        color: var(--cl-lbl);
        font-size: 1.2rem;
      }
    }

    .list-date {
      position: relative;
      font-size: 1.4rem;
    }

    .list-date_tag {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: 16px;

      .list-tag {
        margin-top: 0;
      }
    }

    .list-btn {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-top: 24px;

      .btn {
        width: 178px;
        height: 42px;
        font-size: 1.4rem;
      }
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-3col_card-list {
    .list-item {
      width: calc((100% - 64px) / 3);
    }

    .list-detail {
      padding: 26px 32px 56px;

      &:has(.list-btn) {
        padding-bottom: 32px;
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-3col_card-list {
    max-width: 704px;
    margin: 0 auto;

    .list-item {
      width: 100%;
    }

    .list-detail {
      padding: 48px 32px 74px;

      &:has(.list-btn) {
        padding-bottom: 52px;
      }
    }

    .list-ttl.ttl-center {
      text-align: center;
    }

    .list-btn {
      .btn {
        width: 170px;
      }
    }
  }
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
  .block-3col_card-list {
    .list-item {
      &:has(.list-icon) {
        display: flex;
        justify-content: space-between;
        padding: 32px;

        .list-icon {
          padding: 0;
        }

        .list-detail {
          width: calc(100% - 88px);
          padding: 0;
        }

        .list-ttl {
          text-align: left;
        }

        .list-comment {
          margin-top: 16px;
        }
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .block-3col_card-list {
    .list-item {
      .list-detail {
        padding: 26px 32px 32px;
      }

      .list-icon {
        padding-top: 32px;
      }

      .list-comment {
        margin-top: 10px;
      }
    }
  }

  .block-1col_card + .block-3col_card {
    padding-top: 24px;
  }
}

/* 1列カードタイプ */

.block-1col_card {
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 0 0;
}

.block-header-h2 + .block-1col_card {
  padding-top: 0;
}

.block-1col_card-list {
  .list-items {
    display: flex;
    flex-direction: column;
    gap: 32px;
  }

  .list-item {
    position: relative;
    border-radius: 8px;
    background-color: #ffffff;
    overflow: hidden;

    &::before {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      border: 1px solid var(--cl-bdr);
      border-radius: 8px;
    }

    .list-img {
      img {
        display: block;
        width: 100%;
        height: auto;
      }
    }

    .list-ttl {
      position: relative;
      font-size: 2.4rem;
      font-weight: 700;
    }

    .list-comment {
      position: relative;
      margin-top: 16px;
      font-size: 1.6rem;
    }

    .list-spec {
      position: relative;
      margin-top: 16px;
      font-size: 1.6rem;
      line-height: 1.75;

      .list-spec-item {
        display: flex;

        dt {
          flex-shrink: 0;
        }

        dd {
          flex-shrink: 1;
        }
      }
    }

    .list-disc {
      position: relative;
      margin-top: 16px;
      font-size: 1.8rem;
      line-height: 1.25;

      & > li {
        position: relative;
        padding-left: 20px;

        & + li {
          margin-top: 6px;
        }

        &::before {
          content: "";
          display: block;
          position: absolute;
          top: 4px;
          left: 0;
          width: 12px;
          height: 12px;
          border-radius: 12px;
          background-color: var(--cl-lbl);
        }
      }
    }

    .list-btn-dl {
      display: flex;
      position: relative;
      margin-top: 24px;

      a {
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        min-width: 313px;
        height: 56px;
        padding: 0 38px;
        border-radius: 4px;
        background-color: var(--cl-btn-bg-lbl-bg);
        color: #ffffff;
        font-size: 1.6rem;
        font-weight: 500;
        text-align: center;
        text-decoration: none;
        transition: background-color 0.3s;

        &::after {
          content: "";
          display: inline-block;
          position: relative;
          width: 28px;
          height: 28px;
          margin-left: 16px;
          background-image: url(../img/common/icon_btn_download_wt.png);
          background-position: center;
          background-repeat: no-repeat;
          background-size: contain;
        }

        &:hover {
          background-color: var(--cl-btn-bg-lbl-bg-hover);
        }
      }
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-1col_card-list {
    .list-item {
      display: flex;
      gap: 32px;
      padding: 32px 32px 48px;

      &.img-large {
        .list-img {
          width: 480px;
        }

        .list-detail {
          width: calc(100% - 536px);
        }
      }

      &.img-small {
        .list-img {
          width: 298px;
        }

        .list-detail {
          width: calc(100% - 330px);
        }
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-1col_card-list {
    max-width: 704px;
    margin: 0 auto;

    .list-item {
      padding: 48px 32px 56px;

      .list-img {
        width: 100%;
      }

      .list-ttl {
        margin-top: 58px;
      }

      .list-btn-dl {
        justify-content: center;
      }
    }
  }
}

@media screen and (min-width: 768px) {
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

@media screen and (max-width: 767px) {
  .block-1col_card-list {
    width: 100%;

    .list-items {
      gap: 24px;
    }

    .list-item {
      padding: 32px 16px 48px;

      .list-ttl {
        margin-top: 24px;
        font-size: 2rem;
      }

      .list-comment {
        margin-top: 24px;
      }
    }
  }
}

/* グレー背景 */

.block-bg_gy-content {
  padding: 0 0 104px;
  background-color: var(--cl-gy-bg);
}

.block-bg_gy-content-item {
  margin-top: 104px;
  padding-bottom: 104px;

  & + .block-bg_gy-content-item {
    margin-top: 0;
  }
}

@media screen and (max-width: 767px) {
  .block-bg_gy-content {
    padding: 0 0 56px;
  }

  .block-bg_gy-content-item {
    margin-top: 56px;
    padding-bottom: 56px;
  }
}

/* 白背景コンテンツ */

.block-wt_bg-content-item {
  padding-bottom: 104px;
  background-color: #ffffff;

  & + .block-wt_bg-content-item {
    margin-top: 72px;
  }

  .block-container {
    max-width: 1200px;
    margin: 0 auto;
  }
}

@media screen and (max-width: 1023px) {
  .block-wt_bg-content-item {
    & + .block-wt_bg-content-item {
      margin-top: 72px;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-wt_bg-content-item {
    & + .block-wt_bg-content-item {
      margin-top: 32px;
    }
  }
}

/* 白背景ボックスコンテンツ */

.block-wt_box-content-item {
  & + .block-wt_box-content-item {
    margin-top: 104px;
  }

  .item-box-list {
    .list-item {
      max-width: 1200px;
      margin: 0 auto;
      padding: 64px 56px;
      border-radius: 8px;
      background-color: #ffffff;

      & + .list-item {
        margin-top: 32px;
      }

      .list-top {
        h3 {
          margin: 0;
          padding: 0;
          font-size: 3.6rem;
          font-weight: 700;
        }

        .list-comment {
          margin-top: 30px;
          font-size: 1.6rem;
        }

        .list-btn {
          display: flex;
          margin-top: 32px;

          .btn {
            width: 260px;
            height: 42px;
            font-size: 1.4rem;
          }
        }

        .list-img {
          img {
            display: block;
            width: 100%;
            height: auto;
          }
        }
      }

      .list-bot {
        margin-top: 54px;

        ul {
          display: flex;
          justify-content: space-between;
          gap: 32px;

          li {
            width: calc((100% - 96px) / 4);
            padding: 32px 26px;
            background-color: #fef7e5;

            .list-bot-ttl {
              font-size: 1.8rem;
              font-weight: 500;
              text-align: center;
            }

            .list-bot-comment {
              margin-top: 30px;
              font-size: 1.6rem;
            }
          }
        }
      }
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-wt_box-content-item {
    .item-box-list {
      .list-item {
        .list-top {
          display: flex;
          justify-content: space-between;

          .list-detail {
            width: 480px;
          }

          .list-img {
            width: 492px;
          }
        }
      }
    }
  }
}

@media screen and (max-width: 1199px) and (min-width: 1024px) {
  .block-wt_box-content-item {
    .item-box-list {
      .list-item {
        .list-top {
          .list-detail {
            width: calc(100% - 560px);
          }

          .list-img {
            width: 480px;
          }
        }
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-wt_box-content-item {
    & + .block-wt_box-content-item {
      margin-top: 64px;
    }

    .item-box-list {
      .list-item {
        padding: 56px 32px;

        .list-top {
          h3 {
            text-align: center;
          }

          .list-img {
            max-width: 480px;
            margin: 48px auto 0;
          }

          .list-btn {
            justify-content: center;
          }
        }

        .list-bot {
          margin-top: 48px;

          ul {
            flex-direction: column;

            li {
              width: 100%;

              .list-bot-comment {
                text-align: center;
              }
            }
          }
        }
      }
    }
  }
}

@media screen and (min-width: 768px) {
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

@media screen and (max-width: 767px) {
  .block-wt_box-content-item {
    & + .block-wt_box-content-item {
      margin-top: 56px;
    }

    .item-box-list {
      .list-item {
        padding: 48px 16px 56px;

        & + .list-item {
          margin-top: 24px;
        }

        .list-top {
          h3 {
            font-size: 3.2rem;
          }

          .list-img {
            margin-top: 32px;
          }

          .list-btn {
            .btn {
              width: 100%;
            }
          }
        }

        .list-bot {
          margin-top: 32px;

          ul {
            gap: 24px;

            li {
              padding: 32px 16px;

              .list-bot-comment {
                margin-top: 24px;
                text-align: left;
              }
            }
          }
        }
      }
    }
  }
}

/* ステッパー */

.block-stepper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 0 48px;

  ul {
    li {
      display: flex;
      flex-direction: column;
      position: relative;
      color: #737678;

      &::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 24px;
        height: 24px;
        background-color: var(--cl-gy-bg);
        background-image: url(../img/common/stepper_u.png);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
      }

      & + li {
        &::after {
          content: "";
          display: block;
          position: absolute;
          background-color: #adafb0;
        }
      }

      .step {
        font-size: 1.2rem;
        font-weight: 500;
      }

      .txt {
        margin-top: 2px;
        font-size: 1.4rem;
        font-weight: 700;
      }

      &.is-current {
        color: var(--cl-lbl);

        &::before {
          background-image: url(../img/common/stepper_i.png);
        }

        &::after {
          background-color: var(--cl-lbl);
        }

        .step {
          font-weight: 700;
        }
      }

      &.is-done {
        &::before {
          background-image: url(../img/common/stepper_c.png);
        }

        &::after {
          background-color: var(--cl-lbl);
        }

        .step {
          font-weight: 700;
        }
      }
    }
  }
}

@media screen and (min-width: 1024px) {
}

@media screen and (max-width: 1023px) {
}

@media screen and (min-width: 768px) {
  .block-stepper {
    ul {
      display: flex;
      justify-content: center;

      li {
        padding-top: 28px;

        &:not(:last-child) {
          width: 171px;
        }

        & + li {
          &::after {
            top: 11px;
            left: -147px;
            width: 147px;
            height: 3px;
          }
        }
      }
    }
  }
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

@media screen and (max-width: 767px) {
  .block-stepper {
    padding-bottom: 32px;

    ul {
      li {
        height: 74px;
        padding-left: 30px;

        &:last-child {
          height: auto;
        }

        & + li {
          &::after {
            top: -50px;
            left: 11px;
            width: 3px;
            height: 50px;
          }
        }
      }
    }
  }
}

/* タブ */

.block-tab-switch {
  padding: 32px 0 48px;

  .block-container {
    ul {
      display: flex;
      max-width: 1200px;
      margin: 0 auto;

      .list-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        position: relative;
        width: calc(100% / 4);
        height: 100px;
        border-top-right-radius: 4px;
        border-top-left-radius: 4px;
        background-color: #ffffff;
        color: #737678;
        text-align: center;
        cursor: pointer;

        &::before,
        &::after {
          content: "";
          display: block;
          position: absolute;
          bottom: 0;
          left: 0;
          width: 100%;
        }

        &::before {
          height: 1px;
          background-color: var(--cl-bdr);
        }

        &::after {
          height: 5px;
          background-color: #27a6c5;
          opacity: 0;
          transition: opacity 0.15s;
        }

        &.is-active {
          background-color: #edf9fc;
          color: var(--cl-txt-bk);

          &::after {
            opacity: 1;
          }
        }

        &:hover {
          color: var(--cl-txt-bk);

          &::after {
            opacity: 1;
          }
        }

        .main {
          font-size: 2.4rem;
          font-weight: 700;
        }

        .sub {
          font-size: 1.6rem;
        }
      }
    }
  }
}

@media screen and (max-width: 1199px) {
  .block-tab-switch {
    .block-container {
      ul {
        .list-item {
          .main {
            font-size: 2rem;
          }
        }
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-tab-switch {
    .block-container {
      ul {
        .list-item {
          .main {
            font-size: 1.6rem;
          }

          .sub {
            margin-top: 7px;
            font-size: 1.2rem;
          }
        }
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .block-tab-switch {
    .block-container {
      ul {
        .list-item {
          height: 120px;

          p {
            display: flex;
            align-items: center;
            justify-content: center;
          }

          .main {
            height: 36px;
            font-size: 1.2rem;
          }

          .sub {
            height: 30px;
            margin-top: 6px;
            font-size: 1rem;
          }
        }
      }
    }
  }
}

.block-tab-target {
  max-width: 1200px;
  margin: 0 auto;
  padding-bottom: 104px;
}

.block-tab-target-item {
  display: none;

  &.is-active {
    display: block;
  }
}

@media screen and (max-width: 767px) {
  .block-tab-target {
    padding-bottom: 64px;
  }
}

/* NAMEROOMとは */

.block-about-container {
  padding: 103px 0 104px;
  background-color: var(--cl-gy-bg);
}

@media screen and (max-width: 767px) {
  .block-about-container {
    padding: 43px 0 56px;
  }
}

.block-about-section-1,
.block-common-l_img-article {
  background-color: #ffffff;

  &.bg-grd {
    background: linear-gradient(to bottom, rgba(78, 195, 224, 1) 0%, rgba(39, 166, 197, 1) 100%);
    color: #ffffff;
  }

  h2 {
    font-size: 3.6rem;
    font-weight: 700;
  }

  .item-comment {
    margin-top: 30px;
    font-size: 1.6rem;
    line-height: 1.725;

    p + p {
      margin-top: 30px;
    }
  }

  .item-img {
    img {
      display: block;
      height: auto;
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-about-section-1,
  .block-common-l_img-article {
    .block-container {
      display: flex;
      align-items: center;
      justify-content: space-between;
      position: relative;
      max-width: 1152px;
      min-height: 574px;
      margin: 0 auto;
      padding: 0 32px;
    }

    .item-detail {
      width: calc(100% - 542px);
      max-width: 512px;
    }

    .item-img {
      display: block;
      position: absolute;
      top: 0;
      right: 0;
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-about-section-1,
  .block-common-l_img-article {
    padding: 64px 0 104px;

    .item-detail {
      max-width: 448px;
      margin: 0 auto;
    }

    .item-img {
      max-width: 492px;
      margin: 56px auto 0;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-about-section-1,
  .block-common-l_img-article {
    padding: 48px 0 56px;

    .item-detail {
      width: 100%;
    }

    .item-img {
      max-width: 100%;
      margin-top: 48px;

      img {
        max-width: 100%;
        margin: 0 auto;
      }
    }
  }
}

.block-about-section-2 {
  padding: 88px 0 104px;
  background-color: var(--cl-lbl-bg);

  .block-container {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
  }

  h2 {
    margin: 0;
    padding: 0;
    font-size: 3.2rem;
    font-weight: 700;
    text-align: center;
  }

  .item-comment {
    margin-top: 30px;
    font-size: 1.6rem;
    text-align: center;
  }

  .item-img {
    display: flex;
    justify-content: center;
    margin-top: 56px;

    img {
      display: block;
      max-width: 100%;
      height: auto;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-about-section-2 {
    padding: 48px 16px 56px;

    h2 {
      font-size: 2.4rem;
    }

    .item-comment {
      margin-top: 24px;
      text-align: left;
    }

    .item-img {
      margin-top: 48px;
    }
  }
}

.block-about-section-3 {
  h2 {
    max-width: 1200px;
    margin: 0 auto;
    padding: 77px 0 59px;
    font-size: 3.6rem;
    font-weight: 700;
    text-align: center;

    sup {
      font-size: 3.2rem;
      vertical-align: super;
    }
  }

  .list-items {
    max-width: 1200px;
    margin: 0 auto;
  }

  .list-item {
    .list-detail {
      position: relative;
      background-color: #ffffff;
    }

    .list-no {
      position: absolute;
      color: var(--cl-lbl);
      font-weight: 700;
      line-height: 1.2;
    }

    .list-ttl {
      margin: 0;
      padding: 0;
      font-weight: 700;
    }

    .list-btn {
      margin-top: 32px;

      .btn {
        width: 170px;
        height: 42px;
      }
    }

    .list-img {
      img {
        display: block;
        width: 100%;
        height: auto;
      }
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-about-section-3 {
    .list-item {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;

      &:nth-child(even) {
        flex-direction: row-reverse;
      }

      & + .list-item {
        margin-top: 156px;
      }

      .list-detail {
        width: 601px;
        padding: 56px 56px 64px;
      }

      .list-no {
        top: -43px;
        left: 16px;
        font-size: 7.2rem;
      }

      .list-ttl {
        font-size: 3.2rem;
      }

      .list-comment {
        margin-top: 47px;
        font-size: 1.6rem;
        line-height: 1.75;

        p + p {
          margin-top: 24px;
        }
      }

      .list-img {
        width: calc(100% - 652px);
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-about-section-3 {
    h2 {
      padding: 48px 0 55px;
      font-size: 2.8rem;

      sup {
        font-size: 2.4rem;
      }
    }

    .list-items {
      max-width: 601px;
      margin: 0 auto;
    }

    .list-item {
      & + .list-item {
        margin-top: 99px;
      }

      .list-detail {
        padding: 40px 16px 32px;
      }

      .list-no {
        top: -27px;
        left: 16px;
        font-size: 5.6rem;
      }

      .list-ttl {
        font-size: 2.4rem;
      }

      .list-comment {
        margin-top: 30px;
        font-size: 1.6rem;
        line-height: 1.75;

        p + p {
          margin-top: 16px;
        }
      }

      .list-btn {
        display: flex;
        justify-content: center;
      }

      .list-img {
        width: 100%;
        margin-top: 32px;
      }
    }
  }
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

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

/* 名刺作成事例 */

.block-creation_example {
  padding-bottom: 104px;
}

@media screen and (max-width: 767px) {
  .block-creation_example {
    padding-bottom: 56px;
  }
}

/* セキュリティ */

.block-security-white_paper-btn {
  max-width: 746px;
  margin: 0 auto;
  padding-bottom: 87px;

  .btn {
    position: relative;
    justify-content: center;
    width: 100%;
    height: 64px;
    font-size: 1.6rem;

    &::after {
      content: "";
      display: block;
      position: absolute;
      top: 50%;
      right: 16px;
      width: 28px;
      height: 28px;
      margin-top: -14px;
      background-image: url(../img/common/icon_btn_download.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-security-white_paper-btn {
    .btn {
      height: 82px;
      padding-right: 14px;
      font-size: 1.5rem;
    }
  }
}

/* 機能一覧 */
.block-function-intro {
  .item-detail {
    .item-subttl {
      font-weight: 700;
    }

    h3 {
      margin: 0;
      padding: 0;

      img {
        display: block;
      }
    }

    .item-btn {
      .btn {
        width: 147px;
        height: 42px;
        font-size: 1.4rem;
      }
    }
  }

  .item-img {
    img {
      display: block;
      width: 100%;
      height: auto;
    }
  }
}

@media screen and (min-width: 1280px) {
  .block-function-intro {
    padding: 53px 70px 56px;
  }
}

@media screen and (min-width: 1024px) {
  .block-function-intro {
    display: flex;
    justify-content: space-between;
    margin-top: 43px;
    margin-bottom: 16px;
    padding: 53px 0 56px;

    .item-detail {
      width: calc(100% - 540px);

      .item-subttl {
        font-size: 2rem;
      }

      h3 {
        margin-top: 16px;

        img {
          display: block;
          height: auto;
        }
      }

      .item-comment {
        margin-top: 48px;
        font-size: 1.6rem;
      }

      .item-btn {
        margin-top: 24px;
      }
    }

    .item-img {
      max-width: 480px;
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-function-intro {
    padding: 0 0 56px;

    .item-detail {
      .item-subttl {
        text-align: center;
      }

      h3 {
        margin-top: 16px;

        img {
          height: auto;
          margin: 0 auto;
        }
      }

      .item-comment {
        margin-top: 48px;
      }

      .item-btn {
        display: flex;
        justify-content: center;
        margin-top: 24px;
      }
    }

    .item-img {
      max-width: 480px;
      margin: 48px auto 0;
    }
  }
}

@media screen and (min-width: 768px) {
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

@media screen and (max-width: 767px) {
  .block-function-intro {
    .item-detail {
      .item-subttl {
        font-size: 1.6rem;
      }

      h3 {
        margin-top: 12px;

        img {
          width: auto;
          height: 22px;
        }

        &.ttl-bio {
          img {
            height: 38px;
          }
        }
      }
    }
  }
}

/* FAQ */

.block-faq-content-item {
  overflow: hidden;

  & + .block-faq-content-item {
    margin-top: 64px;
  }
}

.block-faq-list {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 32px 64px;
  background-color: #ffffff;

  .list-item {
    border: 1px solid var(--cl-bdr);
    border-radius: 4px;
    overflow: hidden;

    & + .list-item {
      margin-top: 12px;
    }

    > dt {
      display: flex;
      align-items: center;
      position: relative;
      min-height: 54px;
      padding: 12px 76px 11px;
      font-size: 1.6rem;
      font-weight: 500;
      cursor: pointer;
      transition: border 0.3s, background-color 0.3s;

      &::after {
        content: "";
        display: block;
        position: absolute;
        top: 50%;
        right: 25px;
        width: 24px;
        height: 24px;
        margin-top: -12px;
        background-image: url(../img/common/refine_search_plus.png);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
        transition: background-image 0.15s;
      }

      &.is-active {
        border-bottom-right-radius: 0;
        border-bottom-left-radius: 0;

        &::after {
          background-image: url(../img/common/refine_search_minus.png);
        }
      }

      &:hover {
        border-color: var(--cl-lbl);
        background-color: var(--cl-btn-bdr-bg-hover);
      }

      > div {
        position: relative;

        &::before {
          content: "Q";
          display: flex;
          align-items: center;
          position: absolute;
          top: 50%;
          left: -46px;
          width: 1em;
          height: 56px;
          margin-top: -28px;
          font-size: 2.4rem;
          font-weight: 500;
          color: var(--cl-lbl);
        }
      }
    }

    > dd {
      display: none;
      padding: 12px 32px 24px 76px;

      > div {
        position: relative;
        font-size: 1.6rem;

        &::before {
          content: "A";
          display: block;
          position: absolute;
          top: -8px;
          left: -46px;
          width: 1em;
          font-size: 2.4rem;
          font-weight: 500;
          color: #ff5b6f;
        }

        p {
          & + p {
            margin-top: 1em;
          }
        }

        .list-btn {
          display: flex;
          margin-top: 16px;

          .btn {
            min-width: 147px;
            height: 42px;
            padding: 0 20px 0 26px;
            font-size: 1.4rem;
          }
        }
      }
    }
  }
}

@media screen and (min-width: 1024px) {
}

@media screen and (max-width: 1023px) {
  .block-faq-list {
    padding: 32px 16px 48px;

    .list-item {
      > dt {
        padding: 13px 66px 12px 53px;
        line-height: 1.2;

        > div {
          &::before {
            left: -38px;
          }
        }
      }

      > dd {
        padding: 12px 16px 24px 53px;

        > div {
          &::before {
            left: -38px;
          }
        }
      }
    }
  }
}

@media screen and (min-width: 768px) {
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

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

/* サポート体制 */

.block-support-mv {
  max-width: 1200px;
  margin: 0 auto;
  padding-bottom: 56px;

  .block-container {
    display: flex;
  }

  .item-comment {
    font-size: 1.6rem;
    line-height: 1.75;
  }

  .item-badge {
    ul {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 24px;
      margin-top: 32px;

      li {
        height: 74px;
        background-position: center bottom;
        background-repeat: no-repeat;
        background-size: 100% 72px;
        text-align: center;

        &:nth-child(1) {
          width: 207px;
          background-image: url(../img/top/achievements/achievements_1.png);
        }

        &:nth-child(2) {
          width: 169px;
          background-image: url(../img/top/achievements/achievements_3.png);
        }

        p:nth-child(1) {
          font-size: 1.5rem;
          font-weight: 500;
        }

        p:nth-child(2) {
          position: relative;
          line-height: 1.3;

          b {
            color: var(--cl-lbl);
            font-size: 3.9rem;
            font-weight: 700;
            letter-spacing: -0.03em;
          }

          span {
            display: inline-block;
            position: relative;
            margin-left: 3px;
            font-size: 1.9rem;
            font-weight: 500;
          }

          sup {
            position: absolute;
            right: 0;
            top: -12px;
            color: var(--cl-lbl);
            font-size: 0.9rem;
            font-weight: 500;
          }
        }
      }
    }
  }

  .item-annotation {
    margin-top: 32px;

    ul {
      font-size: 1rem;
      font-weight: 500;

      li {
        display: inline;

        & + li {
          margin-left: 2em;
        }
      }
    }
  }

  .item-img {
    img {
      display: block;
      height: auto;
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-support-mv {
    .block-container {
      justify-content: space-between;
    }

    .item-detail {
      width: calc(100% - 609px);
    }

    .item-img {
      width: 529px;
    }
  }
}

@media screen and (max-width: 1199px) and (min-width: 1024px) {
  .block-support-mv {
    .item-detail {
      width: calc(100% - 561px);
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-support-mv {
    .block-container {
      flex-direction: column-reverse;
      max-width: 604px;
      margin: 0 auto;
    }

    .item-img {
      display: flex;
      justify-content: center;

      img {
        max-width: 100%;
      }
    }

    .item-detail {
      margin-top: 48px;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-support-mv {
    .item-badge {
      ul {
        flex-direction: column;
        gap: 16px;
      }
    }

    .item-annotation {
      margin-top: 24px;
    }
  }
}

/* テンプレート */

.block-common-container {
  max-width: 1200px;
  margin: 0 auto;

  &:last-child {
    padding-bottom: 104px;
  }

  hr {
    width: 100%;
    height: 1px;
    margin: 0;
    padding: 0;
    border: none;
    background-color: var(--cl-bdr);
  }
}

.block-common-img-1col {
  img {
    display: block;
    max-width: 100%;
    height: auto;
  }
}

.block-common-gy-box,
.block-common-lbl-box {
  padding: 32px 32px 24px;
  border-radius: 4px;

  &.box-toc {
    padding-bottom: 56px;
  }

  .item-ttl {
    margin-bottom: 16px;
    font-size: 2rem;
    font-weight: 700;
  }
}

.block-common-gy-box {
  background-color: #f0f2f6;
}

.block-common-lbl-box {
  background-color: var(--cl-lbl-bg);
}

.block-common-lbl_disc-list {
  font-size: 1.6rem;
  line-height: 1.75;

  > li {
    position: relative;
    padding-left: 1em;

    &::before {
      content: "⚫︎";
      position: absolute;
      top: 0;
      left: 0;
      color: var(--cl-lbl);
    }
  }
}

.block-common-toc {
  font-size: 1.6rem;
  line-height: 1.75;
  counter-reset: listnum;

  > li {
    display: flex;
    position: relative;

    &::before {
      content: "";
      display: block;
      flex-shrink: 0;
      margin-right: 0.5em;
      color: var(--cl-lbl);
      counter-increment: listnum;
      content: counter(listnum) ".";
    }
  }
}

.block-common-comment {
  font-size: 1.6rem;
  line-height: 1.75;

  a {
    text-decoration: none;

    &:hover {
      text-decoration: underline;
    }
  }

  p {
    & + p {
      margin-top: 24px;
    }
  }
}

.block-common-annotation {
  font-size: 1.2rem;
}

.block-common-sns-box {
  padding: 32px 0 104px;

  > dl {
    display: flex;
    align-items: center;

    dt {
      flex-shrink: 0;
      font-size: 1.6rem;
    }

    dd {
      display: flex;
      flex-wrap: wrap;
      flex-shrink: 1;
      gap: 16px;
      width: 100%;
      margin-left: 16px;

      a {
        width: 32px;
        height: 32px;
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
        text-indent: -999999px;
        transition: opacity 0.3s;

        &.icon-fb {
          background-image: url(../img/common/icon_sns_fb_cl.png);
        }

        &.icon-x {
          background-image: url(../img/common/icon_sns_x_cl.png);
        }

        &:hover {
          opacity: 0.7;
        }
      }
    }
  }
}

.block-common-gallery {
  ul {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;

    & + ul {
      margin-top: 48px;
    }

    li {
      img {
        display: block;
        width: 100%;
        height: auto;
      }
    }

    &.col-1 {
      li {
        width: 100%;
      }
    }

    &.col-2 {
      li {
        width: calc((100% - 32px) / 2);
      }
    }

    &.col-3 {
      li {
        width: calc((100% - 64px) / 3);
      }
    }

    &.col-4 {
      li {
        width: calc((100% - 96px) / 4);
      }
    }
  }
}

.block-common-btn-list {
  padding: 64px 0 104px;

  ul {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;

    li {
      a {
        width: 100%;
        height: 100%;
        padding: 0 50px 0 24px;
        text-align: left;
      }
    }
  }
}

.block-common-3col-list {
  ul {
    display: flex;
    gap: 32px;

    li {
      position: relative;
      padding: 16px 26px;
      width: calc((100% - 64px) / 3);

      & + li {
        &::before {
          content: "";
          display: block;
          position: absolute;
          top: 0;
          left: -16px;
          width: 1px;
          height: 100%;
          background-color: var(--cl-bdr);
        }
      }

      .list-ttl {
        font-size: 3.2rem;
        font-weight: 700;
        text-align: center;
      }

      .list-comment {
        margin-top: 48px;
        font-size: 1.6rem;
      }
    }
  }
}

.block-common-box {
  padding: 47px 31px 63px;
  border: 1px solid transparent;
  border-radius: 4px;

  h2 {
    font-size: 3.2rem;
    font-weight: 700;
  }

  .item-comment {
    margin-top: 24px;
    font-size: 1.6rem;

    p + p {
      margin-top: 24px;
    }
  }

  &.box-bdr-gy {
    border-color: var(--cl-bdr);
    background-color: #ffffff;
  }

  &.box-bg-gy {
    background-color: #f0f2f6;
  }

  &.box-bg-lbl {
    background-color: var(--cl-lbl-bg);
  }

  &.box-bg-yl {
    background-color: #fef7e5;
  }

  &.box-bg-rd {
    border-color: #ff334b;
    background-color: #ffeaec;

    h2 {
      color: #ff334b;
    }
  }
}

.block-common-tbl {
  border: 1px solid var(--cl-bdr);
  border-radius: 4px;
  overflow: hidden;

  p + p {
    margin-top: 24px;
  }

  table {
    th,
    td {
      padding: 24px;
      border: 1px solid var(--cl-bdr);
      font-size: 1.6rem;
      vertical-align: middle;
    }

    th {
      width: 240px;
      border-left: none;
      background-color: #f3f3f3;
      font-weight: 500;
      text-align: center;
    }

    td {
      border-right: none;
    }

    tr:first-child {
      th,
      td {
        border-top: none;
      }
    }

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

  dl {
    display: flex;

    div {
      width: 50%;

      &:last-child {
        border-left: 1px solid var(--cl-bdr);
      }

      dt,
      dd {
        padding: 24px;
        font-size: 1.6rem;
      }

      dt {
        border-bottom: 1px solid var(--cl-bdr);
        background-color: #f3f3f3;
        font-weight: 500;
        text-align: center;
      }
    }
  }
}

.block-common-h1-img {
  display: flex;
  justify-content: space-between;

  h1 {
    margin: 0;
    padding: 0;
    font-size: 3.6rem;
    font-weight: 700;
  }

  .item-comment {
    margin-top: 30px;
    font-size: 1.6rem;

    p + p {
      margin-top: 24px;
    }
  }

  .item-img {
    img {
      display: block;
      width: 100%;
      height: auto;
    }
  }
}

@media screen and (min-width: 1264px) {
  .block-common-h1-img {
    .item-detail {
      width: 511px;
    }

    .item-img {
      width: 600px;

      &:first-child {
        margin-left: -32px;
      }

      &:last-child {
        margin-right: -32px;
      }
    }
  }
}

@media screen and (max-width: 1263px) {
  .block-common-h1-img {
    .item-detail {
      width: 47%;
    }

    .item-img {
      width: 47%;
    }
  }
}

@media screen and (min-width: 1024px) {
  .block-common-btn-list {
    ul {
      &.col-3 {
        li {
          width: calc((100% - 64px) / 3);
          height: 128px;
        }
      }

      &.col-2 {
        li {
          width: calc((100% - 32px) / 2);
          height: 100px;
        }
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-common-gallery {
    ul {
      & + ul {
        margin-top: 32px;
      }

      &.col-1,
      &.col-2,
      &.col-3,
      &.col-4 {
        li {
          width: 100%;
        }
      }
    }
  }

  .block-common-btn-list {
    ul {
      &.col-3,
      &.col-2 {
        li {
          width: 100%;
          height: 80px;
        }
      }
    }
  }

  .block-common-3col-list {
    ul {
      flex-direction: column;
      align-items: center;

      li {
        padding: 16px 26px 32px;
        width: 100%;
        max-width: 336px;

        & + li {
          &::before {
            top: -16px;
            left: 0;
            width: 100%;
            height: 1px;
          }
        }
      }
    }
  }

  .block-common-h1-img {
    flex-direction: column;

    .item-detail {
      width: 100%;
      order: 10;
    }

    .item-img {
      width: 100%;
      margin-top: 56px;
      order: 20;
    }
  }
}

@media screen and (min-width: 768px) {
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

@media screen and (max-width: 767px) {
  .block-common-gallery {
    ul {
      gap: 16px;
    }
  }

  .block-common-gy-box,
  .block-common-lbl-box {
    padding: 24px 16px;

    &.box-toc {
      padding-bottom: 48px;
    }
  }

  .block-common-sns-box {
    padding-bottom: 64px;
  }

  .block-common-btn-list {
    padding: 32px 0;

    ul {
      gap: 16px;
    }
  }

  .block-common-3col-list {
    ul {
      li {
        padding: 16px 16px 32px;

        .list-ttl {
          font-size: 2.8rem;
        }
      }
    }
  }

  .block-common-box {
    padding: 31px;

    h2 {
      font-size: 2.8rem;
    }
  }

  .block-common-tbl {
    table,
    tbody,
    tr,
    th,
    td {
      display: block;
    }

    table {
      th {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: auto;
        min-height: 52px;
        padding: 10px 0;
        border-right: none;
      }

      td {
        border-top: none;
        border-bottom: none;
        border-left: none;
      }

      tr:last-child {
        th {
          border-bottom: 1px solid var(--cl-bdr);
        }
      }
    }

    dl {
      display: block;

      div {
        width: 100%;

        &:last-child {
          border-top: 1px solid var(--cl-bdr);
          border-left: none;
        }

        dt {
          display: flex;
          align-items: center;
          justify-content: center;
          min-height: 52px;
          padding: 10px 0;
        }
      }
    }
  }

  .block-common-h1-img {
    flex-direction: column;

    h1 {
      font-size: 3.2rem;
    }

    .item-img {
      margin-top: 48px;
    }
  }
}

/* 導入事例詳細 */

.block-case_detail {
  max-width: 1200px;
  padding-top: 64px;
  margin: 0 auto;
}

.block-case_detail-top {
  .block-case_detail-main,
  .block-case_detail-side {
    background-color: #ffffff;
  }

  .block-case_detail-main {
    padding: 0 32px;
  }

  .block-case_detail-side {
    padding: 0 24px 64px;
    border-radius: 8px;
  }
}

.block-case_detail-bot {
  margin-top: 104px;
  padding-bottom: 104px;
  background-color: #ffffff;
}

.block-case_detail-bot-btn {
  display: flex;
  justify-content: center;
  margin-top: 56px;

  .btn {
    padding: 0 36px 0 42px;
    height: 42px;
  }
}

.block-case_detail-co-logo {
  display: flex;
  justify-content: center;
  margin: 0 auto;

  img {
    display: block;
    max-width: 100%;
    height: auto;
  }
}

.block-case_detail-co-info {
  padding: 24px 16px 56px;
  border-radius: 4px;
  background-color: #f0f2f6;

  .item-name {
    padding: 0 16px;
    font-size: 1.8rem;
    font-weight: 700;
  }

  .item-list {
    margin-top: 16px;
    padding: 16px 16px 0;
    border-top: 1px solid var(--cl-bdr);
    font-size: 1.4rem;

    > div {
      display: flex;
      line-height: 1.75;

      dt {
        flex-shrink: 0;
        width: 6em;
        font-weight: 700;
      }

      dd {
        display: flex;
        flex-direction: column;
        width: calc(100% - 6em);
      }
    }
  }
}

@media screen and (min-width: 1200px) {
  .block-case_detail-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    position: relative;

    .block-case_detail-main {
      width: calc(100% - 420px);
    }

    .block-case_detail-side {
      width: 388px;
      position: sticky;
      top: 95px;
    }
  }
}

@media screen and (max-width: 1199px) {
  .block-case_detail-top {
    max-width: 780px;
    margin: 0 auto;

    .block-case_detail-main,
    .block-case_detail-side {
      width: 100%;
    }

    .block-case_detail-side {
      margin-top: 32px;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-case_detail {
    padding-top: 16px;
  }

  .block-case_detail-top {
    .block-case_detail-main {
      padding: 0 16px;
    }
  }

  .block-case_detail-bot {
    margin-top: 64px;
    padding-bottom: 56px;
  }
}

/* お知らせ詳細 */

.block-bg_gy-content:has(.block-news_detail) {
  padding-top: 64px;
  padding-bottom: 104px;
}

.block-news_detail {
  max-width: 1200px;
  margin: 0 auto;
  border-radius: 8px;
  background-color: #ffffff;
}

.block-news_detail-wrapper,
.block-news_detail-back {
  max-width: 832px;
  margin: 0 auto;
  padding: 0 32px;
}

.block-news_detail-back {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 104px;

  .btn {
    height: 42px;
    padding: 0 23px 0 29px;
    font-size: 1.6rem;
  }
}

@media screen and (max-width: 1263px) {
  .block-news_detail {
    max-width: 780px;
  }
}

@media screen and (min-width: 1024px) {
}

@media screen and (max-width: 1023px) {
}

@media screen and (min-width: 768px) {
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

@media screen and (max-width: 767px) {
  .block-bg_gy-content:has(.block-news_detail) {
    padding-top: 16px;
    padding-bottom: 56px;
  }

  .block-news_detail-wrapper,
  .block-news_detail-back {
    padding: 0 16px;
  }

  .block-news_detail-back {
    padding-bottom: 56px;

    .btn {
      padding: 0 61px 0 67px;
    }
  }
}

/* お問い合わせフォーム用 */

.block-contact-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 0 104px;
  border-radius: 8px;
  background-color: #ffffff;

  .block-common-h1 {
    padding-top: 0;
  }

  &.contact-result {
    padding-bottom: 0;
  }
}

.block-contact-form {
  border: 1px solid var(--cl-bdr);
  border-radius: 4px;
  overflow: hidden;

  > dl {
    > dt {
      background-color: #f3f3f3;

      .form-ttl {
        font-size: 1.6rem;
        font-weight: 500;
      }

      .form-required {
        margin-left: 0.5em;
        color: #ff334b;
        font-size: 1.2rem;
        font-weight: 700;
      }
    }

    > dd {
      background-color: #ffffff;
    }
  }
}

.block-contact-form-privacy {
  margin-top: 32px;
  font-size: 1.4rem;

  .link-outer {
    position: relative;
    margin-right: 2px;

    &::after {
      content: "";
      display: inline-block;
      position: relative;
      top: 3px;
      width: 18px;
      height: 18px;
      background-image: url(../img/common/icon_link_outer_small.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
    }
  }
}

.block-contact-form-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 48px;

  .btn {
    justify-content: center;
    font-size: 1.6rem;

    & + .btn {
      margin: 0 0 0 32px;
    }

    &.btn-confirm {
      width: 314px;
      height: 56px;
    }

    &.btn-back {
      width: 160px;
      height: 42px;
    }

    &.btn-submit {
      width: 200px;
      height: 56px;
    }
  }
}

.block-contact-back-top {
  max-width: 1200px;
  margin: 64px auto 0;

  .block-container {
    display: flex;
    justify-content: center;
  }

  .btn {
    width: 220px;
    height: 42px;
  }
}

@media screen and (min-width: 1024px) {
  .block-contact-form {
    & + .block-contact-form {
      margin-top: 32px;
    }

    > dl {
      display: flex;

      &:not(:last-child) {
        border-bottom: 1px solid var(--cl-bdr);
      }

      > dt {
        display: flex;
        align-items: center;
        width: 240px;
        padding: 12px 15px;
        border-right: 1px solid var(--cl-bdr);
      }

      > dd {
        width: calc(100% - 240px);
        padding: 12px 23px;

        &:has(.form-name-input),
        &:has(.form-mail-input),
        &:has(.form-tel-input),
        &:has(.form-cancel-input),
        &:has(.form-checkbox),
        &:has(.form-textarea),
        &:has(.form-privacy) {
          padding: 15px 23px;
        }

        .form-large-input {
          input {
            max-width: 408px;
          }
        }

        .form-name-input {
          display: flex;
          align-items: center;

          & + .form-name-input {
            margin-top: 16px;
          }

          & p {
            width: 48px;
          }

          & input {
            width: 192px;

            & + p {
              margin-left: 64px;
            }
          }
        }

        .form-mail-input {
          display: flex;
          align-items: center;

          & + .form-mail-input {
            margin-top: 16px;
          }

          & p:first-child {
            flex-shrink: 0;
            width: 224px;
          }

          & input {
            flex-shrink: 1;
            width: 100%;
            max-width: 408px;
          }

          & .form-example {
            flex-shrink: 0;
            margin-left: 16px;
          }
        }

        .form-tel-input {
          display: flex;
          align-items: center;

          &input {
            width: 240px;
          }

          & .form-example {
            flex-shrink: 0;
            margin-left: 16px;
          }
        }

        .form-cancel-input {
          display: flex;
          flex-wrap: wrap;
          align-items: center;

          & p:first-child {
            width: 100%;
            margin-bottom: 8px;
          }

          &input {
            width: 240px;
          }

          & .form-example {
            flex-shrink: 0;
            margin-left: 16px;
          }
        }

        .form-checkbox {
          display: flex;
          flex-wrap: wrap;

          & p:first-child {
            width: 100%;
            margin-bottom: -4px;
          }

          & label {
            margin: 12px 48px 0 0;
          }
        }

        .form-textarea {
          & textarea {
            width: 100%;
            height: 141px;
          }
        }

        .form-privacy {
          display: flex;
          align-items: center;
          min-height: 44px;
          height: 100%;
        }

        .form-confirm {
          p + p {
            margin-top: 8px;
          }
        }
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-contact-form {
    & + .block-contact-form {
      margin-top: 32px;
    }

    > dl {
      &:not(:last-child) {
        border-bottom: 1px solid var(--cl-bdr);
      }

      > dt {
        > div {
          display: flex;
          align-items: center;
          justify-content: center;
          width: 100%;
          height: 56px;
          border-bottom: 1px solid var(--cl-bdr);
        }
      }

      > dd {
        padding: 12px 15px 20px;

        .form-name-input {
          & + .form-name-input {
            margin-top: 8px;
          }

          & input {
            margin-top: 8px;

            & + p {
              margin-top: 8px;
            }
          }
        }

        .form-mail-input {
          & + .form-mail-input {
            margin-top: 8px;
          }

          & input {
            margin-top: 8px;
          }
        }

        .form-cancel-input {
          & p:first-child {
            margin-bottom: 8px;
          }
        }

        .form-checkbox {
          & p:first-child {
            margin-bottom: 16px;
          }

          & label {
            margin: 12px 0 0;
          }
        }

        .form-textarea {
          & textarea {
            width: 100%;
            height: 192px;
          }
        }

        .form-example {
          margin-top: 4px;
          text-align: right;
        }

        input[type="text"],
        input[type="email"],
        input[type="tel"],
        input[type="address"],
        input[type="password"],
        textarea,
        select {
          width: 100%;
        }
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .block-contact-wrapper {
    padding-top: 32px;
  }

  .block-contact-form-submit {
    display: flex;
    flex-direction: column-reverse;

    .btn {
      & + .btn {
        margin: 0 0 32px;
      }
    }
  }
}

/* お問い合わせ（Salesforce埋め込み） */

.block-inqury {
  max-width: 1200px;
  margin: 80px auto 0;
  padding-bottom: 104px;
}

.block-inqury-ttl {
  display: flex;
  align-items: center;
  justify-content: space-between;

  h1 {
    font-size: 3.6rem;
    font-weight: 700;
  }

  .item-btn {
    .btn {
      width: 170px;
      height: 42px;
      font-size: 1.6rem;
    }
  }
}

.block-inqury-comment {
  margin-top: 16px;
}

.block-inqury-img {
  display: flex;
  justify-content: center;
  margin: 32px 32px 0;

  img {
    display: block;
    width: 100%;
    height: auto;
  }
}

.block-inqury-tel {
  margin: 16px 32px 0;
  text-align: center;

  > p {
    font-size: 1.6rem;
  }

  .tel {
    margin-top: 8px;

    a {
      color: var(--cl-lbl);
      font-size: 3.9rem;
      font-weight: 700;
      text-decoration: none;

      &::before {
        content: "";
        display: inline-block;
        position: relative;
        top: 5px;
        width: 37px;
        height: 37px;
        margin-right: 16px;
        background-image: url(../img/inqury/icon_tel.png);
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
      }
    }
  }

  .hour {
    margin-top: 4px;
    font-size: 1.4rem;
  }
}

.block-inqury-help {
  margin: 48px 32px 0;
  padding: 32px 26px 48px;
  border: 1px solid var(--cl-bdr);
  border-radius: 4px;

  h2 {
    font-size: 2.4rem;
    font-weight: 700;
    text-align: center;
  }

  .item-btn {
    margin-top: 32px;

    .btn {
      width: 100%;
      height: 42px;
      font-size: 1.4rem;
    }
  }

  .item-comment {
    margin-top: 32px;
  }
}

@media screen and (min-width: 1024px) {
  .block-inqury {
    .block-container {
      display: flex;
      justify-content: space-between;
      max-width: 1136px;
      margin: 0 auto;
    }
  }

  .block-inqury-left {
    flex-shrink: 1;
    width: 543px;
  }

  .block-inqury-form {
    flex-shrink: 0;
    width: 472px;
    margin-left: 16px;
  }
}

@media screen and (max-width: 1023px) {
  .block-inqury-img {
    margin-right: 0;
    margin-left: 0;
  }

  .block-inqury-tel {
    margin-right: 0;
    margin-left: 0;
  }

  .block-inqury-help {
    margin-right: 0;
    margin-left: 0;

    .item-btn {
      max-width: 388px;
      margin-right: auto;
      margin-left: auto;
    }

    .item-comment {
      max-width: 415px;
      margin-right: auto;
      margin-left: auto;
    }
  }

  .block-inqury-form {
    margin-top: 64px;
  }
}

@media screen and (min-width: 768px) {
  .block-inqury-tel {
    a[href^="tel:"] {
      pointer-events: none;
      cursor: default;
    }
  }
}

@media screen and (max-width: 767px) {
  .block-inqury {
    margin-top: 37px;
  }

  .block-inqury-ttl {
    flex-direction: column;

    h1 {
      font-size: 3.2rem;
    }

    .item-btn {
      margin-top: 15px;
    }
  }

  .block-inqury-comment {
    margin-top: 24px;
  }

  .block-inqury-help {
    margin-top: 32px;
    padding: 31px 18px 31px;

    h2 {
      font-size: 2rem;
      white-space: nowrap;
    }

    .item-btn {
      margin-top: 16px;
    }

    .item-comment {
      margin-top: 24px;
    }
  }

  .block-inqury-form {
    margin-top: 32px;
  }
}

/* 料金プラン */

.block-priceing-content {
  & + .block-priceing-content {
    margin-top: 104px;
  }
}

.block-priceing-structure {
  ul {
    display: flex;
    justify-content: center;
    gap: 91px;

    li {
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      width: 250px;
      height: 250px;
      border-radius: 250px;
      color: #ffffff;
      font-size: 2.4rem;
      font-weight: 500;
      text-align: center;

      &:nth-child(1) {
        background-color: #6fcde5;
      }

      &:nth-child(2) {
        background-color: #3795e1;
      }

      &:nth-child(3) {
        background-color: #27a6c5;
      }

      & + li {
        &::before {
          content: "";
          display: block;
          position: absolute;
          top: 50%;
          left: -100px;
          width: 107px;
          height: 107px;
          margin-top: -53px;
          background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDciIGhlaWdodD0iMTA3Ij48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDEwN3YxMDdIMHoiLz48cGF0aCBkPSJNNTAuNDc3IDU2LjE5aC0yMy44MXYtNS43MTRoMjMuODF2LTIzLjgxaDUuNzE0djIzLjgxaDIzLjgxdjUuNzE0aC0yMy44MVY4MGgtNS43MTRaIiBmaWxsPSIjNTk3NDg3Ii8+PC9zdmc+");
          background-position: center;
          background-repeat: no-repeat;
          background-size: contain;
        }
      }
    }
  }
}

.block-priceing-plan {
  margin-top: 32px;
}

.block-priceing-plan-list {
  ul {
    li {
      display: flex;
      flex-direction: column;
      align-items: center;
      position: relative;
      padding: 43px 25px 55px;
      border: 1px solid var(--cl-bdr);
      border-radius: 8px;
      overflow: hidden;

      &::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 12px;
      }

      .list-ttl {
        font-size: 2.8rem;
        font-weight: 700;
        text-align: center;
      }

      .list-subttl {
        margin-top: 7px;
        font-size: 1.8rem;
        font-weight: 700;
        text-align: center;
      }

      .list-price {
        margin-top: 47px;
        line-height: 1.25;

        > div {
          display: flex;
          align-items: center;

          & + div {
            margin-top: 8px;
          }

          dt {
            width: 104px;
            font-size: 1.6rem;

            span {
              display: block;
              font-size: 1.2rem;
              line-height: 1;
            }
          }

          dd {
            width: calc(100% - 104px);
            font-size: 1.9rem;

            b {
              margin: 0 2px 0 3px;
              font-size: 3.8rem;

              &.txt-ja {
                font-size: 2.8rem;
              }
            }
          }
        }
      }

      .list-comment {
        width: 100%;
        margin-top: 48px;
        font-size: 1.6rem;
      }

      &:nth-child(1) {
        &::before {
          background-color: #91d9eb;
        }

        .list-ttl,
        .list-subttl,
        .list-price b {
          color: #27a6c5;
        }
      }

      &:nth-child(2) {
        &::before {
          background-color: #27a6c5;
        }

        .list-ttl,
        .list-subttl,
        .list-price b {
          color: #27a6c5;
        }
      }

      &:nth-child(3) {
        &::before {
          background-color: #8aa6b9;
        }

        .list-ttl,
        .list-subttl,
        .list-price b {
          color: #8aa6b9;
        }
      }
    }
  }
}

.block-priceing-faq {
  .block-faq-list {
    padding: 0;

    & + .block-common-h3 {
      margin-top: 32px;
    }
  }

  .block-common-h3 {
    padding: 32px 0;
  }
}

.block-priceing-faq-btn {
  display: flex;
  justify-content: center;
  margin-top: 64px;

  .btn {
    justify-content: center;
    width: 416px;
    height: 76px;
    font-size: 2rem;
    font-weight: 700;
    filter: var(--shdw-10);

    &::after {
      content: "";
      display: block;
      position: absolute;
      top: 50%;
      right: 12px;
      width: 32px;
      height: 32px;
      margin-top: -16px;
      background-image: url(../img/common/icon_btn_contact.png);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
    }
  }
}

@media screen and (min-width: 1200px) {
  .block-priceing-plan-list {
    ul {
      display: flex;
      gap: 32px;

      li {
        width: calc((100% - 64px) / 3);
      }
    }
  }
}

@media screen and (max-width: 1199px) {
  .block-priceing-plan-list {
    ul {
      li {
        & + li {
          margin-top: 32px;
        }
      }
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-priceing-content {
    & + .block-priceing-content {
      margin-top: 54px;
    }
  }

  .block-priceing-structure {
    ul {
      gap: 68px;

      li {
        width: 188px;
        height: 188px;
        border-radius: 188px;
        font-size: 1.8rem;

        & + li {
          &::before {
            left: -74px;
            width: 80px;
            height: 80px;
            margin-top: -40px;
          }
        }
      }
    }
  }
}

@media screen and (min-width: 768px) {
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

@media screen and (max-width: 767px) {
  .block-priceing-structure {
    ul {
      gap: 36px;

      li {
        width: calc((100vw - 104px) / 3);
        max-width: 188px;
        height: calc((100vw - 104px) / 3);
        max-height: 188px;
        border-radius: 188px;
        font-size: 1.2rem;

        & + li {
          &::before {
            left: -38px;
            width: 41px;
            height: 41px;
            margin-top: -20px;
          }
        }
      }
    }
  }

  .block-priceing-faq-btn {
    margin-top: 48px;

    .btn {
      width: 100%;
    }
  }
}

.block-priceing-plan-tbl {
  margin-top: 48px;
  overflow: auto;

  table {
    width: 1136px;
    table-layout: fixed;

    th,
    td {
      padding: 3px 15px;
      height: 32px;
      border: 1px solid var(--cl-bdr);
      vertical-align: middle;
    }

    th {
      width: 236px;
      background-color: #f3f3f3;
      font-size: 1.6rem;
      font-weight: 700;
    }

    td {
      width: 187px;
      font-size: 1.6rem;
      font-weight: 500;
    }

    tr:first-child {
      th {
        height: 47px;
        text-align: center;
        width: 187px;

        &:nth-child(1) {
          width: 574px;
        }
      }
    }

    th + td,
    tr:not(:has(th)) td:first-child {
      width: 338px;
    }

    .yes,
    .no {
      position: relative;
      width: 100%;
      height: 100%;

      &::after {
        content: "";
        display: block;
        position: absolute;
        top: 50%;
        left: 50%;
        background-color: var(--cl-txt-bk);
      }
    }

    .yes {
      &::after {
        width: 13px;
        height: 13px;
        border-radius: 13px;
        margin: -6px 0 0 -6px;
      }
    }

    .no {
      &::after {
        width: 10px;
        height: 3px;
        margin: -1px 0 0 -5px;
      }
    }
  }
}

@media screen and (max-width: 1199px) {
  .block-priceing-plan-tbl {
    padding-bottom: 33px;

    &::-webkit-scrollbar {
      width: 14px;
      height: 14px;
    }

    &::-webkit-scrollbar-thumb {
      border-radius: 14px;
      background: #8a8d8f;
    }

    &::-webkit-scrollbar-track {
      background: transparent;
    }
  }
}

@media screen and (max-width: 1023px) {
  .block-priceing-plan-tbl {
    margin-top: 32px;
  }
}

/* margin */

@media screen and (min-width: 768px) {
  .mt-0 {
    margin-top: 0 !important;
  }

  .mt-4 {
    margin-top: 4px !important;
  }

  .mt-8 {
    margin-top: 8px !important;
  }

  .mt-16 {
    margin-top: 16px !important;
  }

  .mt-24 {
    margin-top: 24px !important;
  }

  .mt-32 {
    margin-top: 32px !important;
  }

  .mt-40 {
    margin-top: 40px !important;
  }

  .mt-48 {
    margin-top: 48px !important;
  }

  .mt-56 {
    margin-top: 56px !important;
  }

  .mt-64 {
    margin-top: 64px !important;
  }

  .mt-72 {
    margin-top: 72px !important;
  }

  .mt-80 {
    margin-top: 80px !important;
  }

  .mt-96 {
    margin-top: 96px !important;
  }

  .mt-104 {
    margin-top: 104px !important;
  }

  .mt-m4 {
    margin-top: -4px !important;
  }

  .mt-m8 {
    margin-top: -8px !important;
  }

  .mt-m16 {
    margin-top: -16px !important;
  }

  .mt-m24 {
    margin-top: -24px !important;
  }

  .mt-m32 {
    margin-top: -32px !important;
  }

  .mt-m40 {
    margin-top: -40px !important;
  }

  .mt-m48 {
    margin-top: -48px !important;
  }

  .mt-m56 {
    margin-top: -56px !important;
  }

  .mt-m64 {
    margin-top: -64px !important;
  }

  .mt-m72 {
    margin-top: -72px !important;
  }

  .mt-m80 {
    margin-top: -80px !important;
  }

  .mt-m96 {
    margin-top: -96px !important;
  }

  .mt-m104 {
    margin-top: -104px !important;
  }
  .mt-m112 {
    margin-top: -112px !important;
  }
  .mt-m120 {
    margin-top: -120px !important;
  }


  .mb-104 {
    margin-bottom: 104px !important;
  }
  .mb-m64 {
    margin-bottom: -64px !important;
  }
  .mb-m104 {
    margin-bottom: -104px !important;
  }
  .mb-m120 {
    margin-bottom: -120px !important;
  }

}

@media screen and (max-width: 767px) {
  .mts-0 {
    margin-top: 0 !important;
  }

  .mts-4 {
    margin-top: 4px !important;
  }

  .mts-8 {
    margin-top: 8px !important;
  }

  .mts-16 {
    margin-top: 16px !important;
  }

  .mts-24 {
    margin-top: 24px !important;
  }

  .mts-32 {
    margin-top: 32px !important;
  }

  .mts-40 {
    margin-top: 40px !important;
  }

  .mts-48 {
    margin-top: 48px !important;
  }

  .mts-56 {
    margin-top: 56px !important;
  }

  .mts-64 {
    margin-top: 64px !important;
  }

  .mts-72 {
    margin-top: 72px !important;
  }

  .mts-80 {
    margin-top: 80px !important;
  }

  .mt-96 {
    margin-top: 96px !important;
  }

  .mts-104 {
    margin-top: 104px !important;
  }

  .mts-m4 {
    margin-top: -4px !important;
  }

  .mts-m8 {
    margin-top: -8px !important;
  }

  .mts-m16 {
    margin-top: -16px !important;
  }

  .mts-m24 {
    margin-top: -24px !important;
  }

  .mts-m32 {
    margin-top: -32px !important;
  }

  .mts-m40 {
    margin-top: -40px !important;
  }

  .mts-m48 {
    margin-top: -48px !important;
  }

  .mts-m56 {
    margin-top: -56px !important;
  }

  .mts-m64 {
    margin-top: -64px !important;
  }

  .mts-m72 {
    margin-top: -72px !important;
  }

  .mts-m80 {
    margin-top: -80px !important;
  }

  .mt-m96 {
    margin-top: -96px !important;
  }

  .mts-m104 {
    margin-top: -104px !important;
  }

  .mts-m112 {
    margin-top: -112px !important;
  }

  .mts-m120 {
    margin-top: -120px !important;
  }

  .mbs-104 {
    margin-bottom: 104px !important;
  }
  .mbs-m32 {
    margin-bottom: -32px !important;
  }
  .mbs-m64 {
    margin-bottom: -64px !important;
  }
  .mbs-m80 {
    margin-bottom: -80px !important;
  }
  .mbs-m104 {
    margin-bottom: -104px !important;
  }

}

/* base */

@media screen and (min-width: 1024px) {
}

@media screen and (max-width: 1023px) {
}

@media screen and (min-width: 768px) {
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
}

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

/* フォントサイズ */

.text-12 {
  font-size: 12px !important;
}
.text-14 {
  font-size: 14px !important;
}
.text-16 {
  font-size: 16px !important;
}
.text-18 {
  font-size: 18px !important;
}
.text-20 {
  font-size: 20px !important;
}
.text-24 {
  font-size: 24px !important;
}
.text-28 {
  font-size: 28px !important;
}
.text-32 {
  font-size: 32px !important;
}
.text-36 {
  font-size: 36px !important;
}
.text-40 {
  font-size: 40px !important;
}
.text-48 {
  font-size: 48px !important;
}
.text-56 {
  font-size: 56px !important;
}

/* フォント太さ */

.fwl-300 {
  font-weight: 300 !important;
}
.fwr-400 {
  font-weight: 400 !important;
}
.fwm-500 {
  font-weight: 500 !important;
}
.fwb-700 {
  font-weight: 700 !important;
}


/* padding */

@media screen and (min-width: 768px) {
  .pd-64 {
    padding-top: 64px !important;
  }
  .pd-80 {
    padding-top: 80px !important;
  }
  .pd-104 {
    padding-top: 104px !important;
  }
  .pd-b80 {
    padding-bottom: 80px !important;
  }
  .pd-b104 {
    padding-bottom: 104px !important;
  }

  .pt-64 {
    padding-top: 64px !important;
  }
  .pt-80 {
    padding-top: 80px !important;
  }
  .pt-104 {
    padding-top: 104px !important;
  }

  .pb-64 {
    padding-bottom: 64px !important;
  }
  .pb-80 {
    padding-bottom: 80px !important;
  }
  .pb-104 {
    padding-bottom: 104px !important;
  }
  .pb-m120 {
    padding-bottom: -120px !important;
  }
}

@media screen and (max-width: 767px) {
  .pds-64 {
    padding-top: 64px !important;
  }
  .pds-80 {
    padding-top: 80px !important;
  }
  .pds-104 {
    padding-top: 104px !important;
  }
  .pds-b80 {
    padding-bottom: 80px !important;
  }
  .pds-b104 {
    padding-bottom: 104px !important;
  }

  .pts-64 {
    padding-top: 64px !important;
  }
  .pts-80 {
    padding-top: 80px !important;
  }
  .pts-104 {
    padding-top: 104px !important;
  }

  .pbs-64 {
    padding-bottom: 64px !important;
  }
  .pbs-80 {
    padding-bottom: 80px !important;
  }
  .pbs-104 {
    padding-bottom: 104px !important;
  }
  .pbs-m120 {
    padding-bottom: -120px !important;
  }
}


hr {
  border-top: 1px solid #d0d1d2;
}

/* センター合わせ */
.center {
    margin: 0 auto !important;
  }

/* tag */
.tag {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;

    span {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 20px;
      padding: 1px 8px 0;
      border: 1px solid var(--cl-lbl);
      border-radius: 20px;
      color: var(--cl-lbl);
      font-size: 1.2rem;
      line-height: 1;
    }
}


