@charset "UTF-8";
/* コピペ用 */
/* background: rgba(0,0,0,0.2); */
/* シンプルリンクホバー */
/* @include link-hover-simple; */
/* @include incSmooth(); */
/* @include btm(); */
/* @include top(); */
/* 基準フォントサイズ（PC） */
/* px → rem変換関数 */
/* フォントサイズ用Mixin（汎用）

  font-size のみ
  @include fs(16);
  この場合、line-heightは自動的に適用される
  例）
  @include fs(95);  → font-size: 5.9375rem; line-height: 1.2;
  @include fs(25);  → font-size: 1.5625rem; line-height: 1.4;
  @include fs(16);  → font-size: 1rem;      line-height: 1.8;
  @include fs(12);  → font-size: 0.75rem;   line-height: 2.0;

  手動指定1
  font-size + line-height
  @include fs(16, 1.8);

  手動指定2
  font-size + line-height + letter-spacing
  @include fs(16, 1.8, 0.04em);
*/
/* clamp フォントサイズ用Mixin

  大見出し（vw手動指定）
  .head01Main {
    @include fsc(44, 6.25, 100);
  }
  → font-size: clamp(44px, 6.25vw, 100px);
  SP(375px):    44px  ← min が下限として効く
  PC(1280px):   80px  ← vw が効く
  大画面(1600px): 100px ← max が上限として効く

  vw の値の求め方
  vw = max ÷ デザイン基準幅(px) × 100
  例）PC最大100px、基準幅1600px の場合
  100 ÷ 1600 × 100 = 6.25vw
*/
/* clamp フォントサイズ用Mixin2（vw自動計算）

  大見出し2（min・max を入れると vw を自動計算）
  .head01Main {
    @include fsc2(44, 100);
  }
  → font-size: clamp(44px, 6.25vw, 100px);  ※基準幅1600pxで自動計算

  基準幅を変えたい場合
  @include fsc2(44, 100, 1440);
*/
/* パディング生成（null安全＋レスポンシブ対応）
  .section {
    @include responsive-padding(70px, 40px);
  }
  PC: padding: 70px 40px;
  SP: padding: 52.5px 30px;
*/
/* マージンボトム汎用クラス吐き出し */
/* 幅設定汎用クラス吐き出し */
/*

.sampleClass {

$font-base: "Noto Sans JP", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, sans-serif;
$font-min:  "Noto Serif JP", "Yu Mincho", "游明朝", YuMincho, serif;
$font-en: "EB Garamond", serif;

背景色
background: rgba(0,0,0,0.2);

通常テキスト（SPはhtmlのフォントサイズに追従）
@include fs(16);

大見出し
@include fsc(44, 6.25, 100);

大見出し2（min・max を入れると vw を自動計算）
@include fsc2(44, 100);

マージン（SPは60%）
@include btm();
@include top();

パディング
@include responsive-padding(70px, 40px); 

シンプルホバー
@include link-hover-simple;

フォントスムーズ
@include incSmooth();

}


*/
.ftCv {
  display: none; }

.contact01 {
  margin-bottom: 0;
  padding: 0 40px 100px; }
  .contact01 .inr {
    margin: 0 auto;
    max-width: 1360px; }
    .contact01 .inr .btnBox {
      background: #E4E7F2;
      border-radius: 8px;
      margin-top: 44px;
      padding: 48px; }
      .contact01 .inr .btnBox .ftBtnList {
        display: flex;
        justify-content: space-between;
        max-width: 680px;
        margin: 0 auto; }
        .contact01 .inr .btnBox .ftBtnList li {
          width: 47.5%; }
          .contact01 .inr .btnBox .ftBtnList li a {
            background: #0B73CF;
            border: 1px solid #0B73CF;
            border-radius: 6px;
            color: #FFF;
            display: flex;
            justify-content: center;
            align-items: center;
            font-weight: 600;
            min-height: 64px;
            position: relative;
            text-decoration: none;
            transition: 0.2s; }
            .contact01 .inr .btnBox .ftBtnList li a:after {
              background: #FFF;
              border-radius: 100%;
              content: '';
              display: inline-block;
              height: 9px;
              width: 9px;
              position: absolute;
              top: calc(50% - 3px);
              right: 16px;
              transition: 0.2s; }
            .contact01 .inr .btnBox .ftBtnList li a:hover {
              background-color: #FFF;
              color: #0B73CF; }
              .contact01 .inr .btnBox .ftBtnList li a:hover:after {
                background: #0B73CF; }

@media only screen and (max-width: 960px) {
  .contact01 {
    padding: 0 5vw 60px; }
    .contact01 .inr .btnBox {
      margin-top: 36px;
      padding: 20px 5vw; }
      .contact01 .inr .btnBox .ftBtnList {
        display: block;
        max-width: 100%;
        margin: 0 auto; }
        .contact01 .inr .btnBox .ftBtnList li {
          width: 100%; }
          .contact01 .inr .btnBox .ftBtnList li:first-child {
            margin-bottom: 16px; }
          .contact01 .inr .btnBox .ftBtnList li a {
            min-height: 52px; }
            .contact01 .inr .btnBox .ftBtnList li a:after {
              height: 7px;
              width: 7px;
              right: 20px; } }
.contact02 {
  margin-bottom: 0;
  padding: 0 40px; }
  .contact02 .inr {
    margin: 0 auto;
    max-width: 1360px; }

@media only screen and (max-width: 960px) {
  .contact02 {
    padding: 0; }
    .contact02 .inr {
      padding: 0 5vw; } }
.cmnTbl01 {
  background: #FFF;
  border-radius: 8px;
  margin: 0 auto;
  max-width: 1360px;
  margin-top: 48px;
  padding: 40px 24px 100px; }
  .cmnTbl01 table {
    border-collapse: collapse;
    margin: 0 auto;
    max-width: 1200px;
    width: 100%; }
    .cmnTbl01 table tr {
      border-bottom: 1px solid #E6E6E6; }
    .cmnTbl01 table th, .cmnTbl01 table td {
      padding: 36px 0;
      text-align: left;
      vertical-align: middle;
      word-break: break-word; }
    .cmnTbl01 table th {
      font-size: 1rem;
      line-height: 1.8;
      font-weight: 600;
      position: relative;
      vertical-align: top;
      padding-top: 48px;
      width: 38%; }
      .cmnTbl01 table th .hissu {
        margin-left: 8px; }
    .cmnTbl01 table td {
      font-weight: normal; }
  .cmnTbl01.sizeS table th, .cmnTbl01.sizeS table td {
    font-size: 0.75rem;
    line-height: 2;
    line-height: 1.6;
    padding: 10px 15px; }

@media only screen and (max-width: 960px) {
  .cmnTbl01 {
    border-radius: 0;
    margin-top: 40px;
    padding: 28px 5vw 40px; }
    .cmnTbl01 table th, .cmnTbl01 table td {
      padding: 12px;
      vertical-align: top; }
    .cmnTbl01 table th {
      width: 30%; }

  .responsiveTbl.cmnTbl01 table tr, .responsiveTbl.cmnTbl01 table th, .responsiveTbl.cmnTbl01 table td {
    display: block;
    width: 100%; }
  .responsiveTbl.cmnTbl01 table th {
    font-weight: 600;
    padding: 12px 12px 6px; }
  .responsiveTbl.cmnTbl01 table td {
    padding: 0 12px 12px; } }
.radios .wpcf7-list-item {
  display: block; }

.radios label {
  display: inline-block;
  vertical-align: middle;
  width: 100%; }

.radios label span {
  margin-left: .25em; }

.submit-failed-msg, .wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(20px);
  border: 2px solid #dc3232 !important;
  color: #dc3232;
  font-size: 20px;
  font-weight: 600;
  margin: 0 5%;
  padding: 12px;
  position: fixed;
  top: 100px;
  left: 0;
  width: 90%;
  text-align: center; }
  .submit-failed-msg:empty, .wpcf7 form.invalid .wpcf7-response-output:empty, .wpcf7 form.unaccepted .wpcf7-response-output:empty, .wpcf7 form.payment-required .wpcf7-response-output:empty {
    display: none; }

.validation {
  color: #dc3232;
  font-weight: 700; }

.attListBox {
  background: #FFF;
  border-radius: 12px;
  box-shadow: 0px 12px 12px 0px rgba(0, 0, 0, 0.03);
  display: flex;
  justify-content: center;
  max-width: 1000px;
  margin: 0 auto;
  padding: 36px 16px 32px; }
  .attListBox ul li {
    margin-bottom: 4px;
    padding-left: 24px;
    position: relative; }
    .attListBox ul li:before {
      background: #0B73CF;
      border-radius: 100%;
      display: inline-block;
      content: '';
      height: 6px;
      width: 6px;
      position: absolute;
      top: 12px;
      left: 0; }

.makerList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }
  .makerList li {
    margin-bottom: 32px;
    width: 47.5%; }
    .makerList li a {
      background: url("/assets/img/common/icon_arrow_diagonal_red.svg") right 20px center no-repeat #FFF;
      background-size: 16px auto;
      border-radius: 12px;
      box-shadow: 0px 12px 12px 0px rgba(0, 0, 0, 0.03);
      color: #000;
      display: flex;
      align-items: center;
      min-height: 108px;
      padding: 20px 50px 20px 32px;
      text-decoration: none;
      transition: 0.3s; }
      .makerList li a .img {
        width: 32%; }
        .makerList li a .img img {
          height: 30px;
          width: auto; }
      .makerList li a .txt {
        letter-spacing: 0; }
      .makerList li a:hover {
        opacity: 0.5;
        transform: scale(1.06); }
    .makerList li:nth-child(1) a .img img {
      height: 36px; }
    .makerList li:nth-child(3) a .img img {
      height: 36px; }

.hissu {
  background: #C30100;
  border-radius: 6px;
  color: #FFF;
  display: inline;
  font-size: 0.8125rem;
  line-height: 2;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.1em;
  margin: 0 6px;
  padding: 2px 8px 3px;
  text-align: center;
  min-width: 42px;
  vertical-align: 1px; }

.contents button,
.contents input,
.contents textarea {
  background-color: #FAFAFA;
  border: 1px solid #B2BCCB;
  border-radius: 4px;
  color: inherit;
  font-size: 1.125rem;
  line-height: 1.8;
  padding: 12px 24px;
  ime-mode: active; }
.contents textarea {
  height: 160px; }

select {
  background-color: #FFF;
  border: 1px solid #EEE;
  border-radius: 4px;
  color: inherit;
  padding: 8px 24px 8px 24px;
  min-width: 150px; }

.inputL {
  width: 100%;
  max-width: 700px; }

.inputM {
  width: 100%;
  max-width: 500px; }

.inputS {
  width: 100%;
  max-width: 200px; }

.imeOff {
  ime-mode: disabled; }

.error {
  color: red;
  font-size: 12px;
  margin-left: 10px; }

.formRadioBox .vertical-item,
.formCheckBox .vertical-item {
  display: block;
  padding: 2px 0; }
  .formRadioBox .vertical-item label:hover,
  .formCheckBox .vertical-item label:hover {
    color: #0B73CF;
    cursor: pointer;
    transition: 0.2s; }
  .formRadioBox .vertical-item input,
  .formCheckBox .vertical-item input {
    margin-right: 8px; }

.formRadioBox.flwxWrap {
  display: flex;
  flex-wrap: wrap; }
  .formRadioBox.flwxWrap span {
    width: 50%; }

.imageBox {
  text-align: center; }
  .imageBox h2 span {
    color: #1b3659;
    display: inline-block;
    font-size: 26px;
    font-weight: 500;
    letter-spacing: 0.1em;
    margin-bottom: 34px;
    position: relative; }
    .imageBox h2 span:before {
      background: #1b3659;
      content: '';
      display: inline-block;
      margin-right: 34px;
      height: 30px;
      vertical-align: -6px;
      width: 2px;
      transform: rotate(-30deg); }
    .imageBox h2 span:after {
      background: #1b3659;
      content: '';
      display: inline-block;
      margin-left: 34px;
      height: 30px;
      vertical-align: -6px;
      width: 2px;
      transform: rotate(30deg); }
  .imageBox .txt01 {
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.06em;
    margin-bottom: 16px; }
  .imageBox .txt02 {
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.06em;
    margin-bottom: 32px; }
  .imageBox dl {
    border-bottom: 1px solid #1b3659;
    border-top: 1px solid #1b3659;
    color: #1b3659;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 110px;
    max-width: 800px;
    padding: 40px; }
    .imageBox dl dt {
      font-size: 22px;
      font-size: 2.2rem;
      line-height: 1;
      padding-right: 12px; }
    .imageBox dl dd {
      font-family: "trajan-pro-3", serif;
      font-size: 38px;
      font-size: 3.8rem;
      font-weight: 600;
      line-height: 1;
      padding-left: 12px; }
      .imageBox dl dd i {
        font-size: 32px;
        font-size: 3.2rem;
        margin-right: 8px;
        transform: rotate(10deg); }
      @media (min-width: 960px) {
        .imageBox dl dd a[href*="tel:"] {
          pointer-events: none;
          cursor: default;
          text-decoration: none; } }

.submitArea {
  color: #000000;
  margin: 48px auto 0;
  max-width: 1200px;
  padding: 30px 0 0;
  text-align: center; }
  .submitArea h3 {
    font-size: 1.5625rem;
    line-height: 1.4;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 24px;
    text-align: center; }
  .submitArea .submitBtn {
    background: #000000;
    border-radius: 12px;
    color: #FFF;
    font-size: 1.125rem;
    line-height: 1.8;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.01em;
    padding: 24px 60px;
    min-width: 320px;
    transition: 0.3s; }
    .submitArea .submitBtn.prev {
      background: #B2BCCB;
      color: #FFF;
      margin-right: 24px; }
    .submitArea .submitBtn:hover {
      opacity: 0.7; }
  .submitArea .submitAreaWhiteBox {
    background: #F1F3F6;
    border-radius: 12px;
    margin-bottom: 44px;
    padding: 44px; }
    .submitArea .submitAreaWhiteBox h3 {
      margin-bottom: 28px; }
    .submitArea .submitAreaWhiteBox label {
      display: block;
      border-top: 1px solid #DDD;
      cursor: pointer;
      font-size: 1.125rem;
      line-height: 1.8;
      font-weight: 600;
      text-align: center;
      margin-top: 28px;
      padding-top: 28px;
      transition: 0.2s; }
      .submitArea .submitAreaWhiteBox label:hover {
        opacity: 0.7; }
      .submitArea .submitAreaWhiteBox label input {
        margin-right: 8px; }
    .submitArea .submitAreaWhiteBox a {
      color: #0B73CF; }

.thanksArea {
  padding: 0;
  text-align: center; }
  .thanksArea .head01 {
    margin-bottom: 60px;
    text-align: center; }
    .thanksArea .head01:before {
      margin: 0 auto 36px; }
    .thanksArea .head01 .ja {
      font-size: 3.125rem;
      line-height: 1.2;
      padding-top: 0; }
  .thanksArea p {
    line-height: 2.2;
    margin-bottom: 24px; }

.inputConfArea {
  background: #FFF;
  border: 1px solid #EEE;
  margin-top: 24px;
  padding: 24px;
  text-align: center; }
  .inputConfArea label {
    cursor: pointer;
    font-weight: 600;
    transition: 0.2s; }
    .inputConfArea label:hover {
      opacity: 0.7; }
  .inputConfArea input {
    margin-right: 8px; }

.confirmTbl .hissu {
  display: none !important; }

.arrowBtn01 {
  font-size: 1.125rem;
  line-height: 1.8; }

@media only screen and (max-width: 960px) {
  .wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
    font-size: 16px;
    line-height: 1.5; }

  .attListBox {
    padding: 28px 7.5vw 24px; }
    .attListBox ul li {
      line-height: 1.6;
      margin-bottom: 12px;
      padding-left: 20px; }
      .attListBox ul li:before {
        height: 5px;
        width: 5px;
        top: 10px; }

  .makerList {
    display: block; }
    .makerList li {
      margin-bottom: 16px;
      width: 100%; }
      .makerList li a {
        border-radius: 8px;
        min-height: 88px;
        padding: 12px 50px 12px 32px;
        transition: 0; }
        .makerList li a .img {
          width: 50%; }
          .makerList li a .img img {
            height: 30px;
            width: auto; }
        .makerList li a .txt {
          line-height: 1.4; }
        .makerList li a:hover {
          opacity: 1;
          transform: scale(1); }
      .makerList li:nth-child(1) a .img img {
        height: 36px; }
      .makerList li:nth-child(3) a .img img {
        height: 36px; }

  .cmnTbl01 table th {
    padding: 16px 12px 6px 0 !important; }
  .cmnTbl01 table td {
    padding: 0 12px 20px 0 !important; }
  .cmnTbl01 table th {
    font-size: 1.125rem;
    line-height: 1.8;
    position: relative;
    width: 35%; }
    .cmnTbl01 table th .hissu {
      margin-left: 8px; }

  .contents button,
  .contents input {
    font-size: 15px;
    padding: 8px 16px; }
  .contents textarea {
    font-size: 15px;
    padding: 16px 16px;
    height: 200px; }
  .contents select {
    font-size: 15px;
    padding: 8px 16px; }

  .inputS {
    width: 100%;
    max-width: 120px; }

  .formRadioBox .vertical-item,
  .formCheckBox .vertical-item {
    padding: 2px 0 2px 12px; }
    .formRadioBox .vertical-item span,
    .formCheckBox .vertical-item span {
      font-size: 15px; }
    .formRadioBox .vertical-item input,
    .formCheckBox .vertical-item input {
      margin-right: 4px; }

  .formRadioBox.flwxWrap {
    display: block; }
    .formRadioBox.flwxWrap span {
      width: 100%; }

  .error {
    display: block;
    font-size: 10px;
    margin-left: 0;
    padding-top: 7px; }

  .submitArea {
    padding: 12px 0 0; }
    .submitArea h3 {
      font-size: 18px;
      margin-bottom: 20px; }
    .submitArea .submitBtn {
      font-size: 15px;
      font-weight: 500;
      letter-spacing: 0;
      padding: 28px 12px;
      min-width: 100%; }
      .submitArea .submitBtn.prev {
        margin: 0 0 24px; }
    .submitArea .submitAreaWhiteBox {
      margin-bottom: 24px;
      padding: 28px 4vw; }
      .submitArea .submitAreaWhiteBox h3 {
        margin-bottom: 16px; }
      .submitArea .submitAreaWhiteBox p {
        font-size: 14px;
        text-align: left; }
      .submitArea .submitAreaWhiteBox label {
        margin-top: 24px;
        padding-top: 24px;
        transition: 0; }
        .submitArea .submitAreaWhiteBox label:hover {
          opacity: 1; }

  .thanksArea {
    padding: 0;
    text-align: left; }
    .thanksArea .head01 {
      margin-bottom: 32px;
      text-align: center; }
      .thanksArea .head01:before {
        margin: 0 auto 24px; }
      .thanksArea .head01 .ja {
        font-size: 24px;
        line-height: 1.45;
        padding-top: 0; }
    .thanksArea p {
      line-height: 2.2;
      margin-bottom: 28px; }
    .thanksArea p {
      letter-spacing: 0.04em;
      line-height: 1.8;
      margin-bottom: 20px; }

  .inputConfArea {
    margin-top: 0;
    padding: 24px 10px; }
    .inputConfArea label {
      transition: 0s; }
      .inputConfArea label:hover {
        opacity: 1; } }
.arrowBtnTop {
  font-family: "Noto Serif JP", "Yu Mincho", "游明朝", YuMincho, serif;
  font-size: 1rem;
  line-height: 1.8;
  line-height: 1;
  font-weight: 400;
  letter-spacing: 0.04em;
  margin-top: 40px; }
  .arrowBtnTop a {
    border-bottom: 1px solid;
    border-image: linear-gradient(90deg, #313A3F 0%, #BFBFBF 50%, #313A3F 100%) 1;
    display: inline-block;
    text-decoration: none;
    min-width: 350px;
    padding: 16px 50px 18px 8px;
    text-align: left;
    position: relative;
    transition: 0.2s; }
    .arrowBtnTop a:before {
      background: linear-gradient(90deg, #BFBFBF 0%, #313A3F 50%, #BFBFBF 100%);
      content: '';
      display: inline-block;
      height: 1px;
      width: 0;
      position: absolute;
      bottom: -1px;
      left: 0;
      transition: 0.2s; }
    .arrowBtnTop a .arrow {
      overflow: hidden;
      position: absolute;
      top: 0;
      right: 8px;
      bottom: 0;
      width: 30px;
      margin: 0;
      line-height: 1; }
    .arrowBtnTop a .arrow:before,
    .arrowBtnTop a .arrow:after {
      content: "→";
      position: absolute;
      top: 40%;
      right: 0;
      animation-fill-mode: forwards;
      animation-duration: 0.3s;
      letter-spacing: 0 !important; }
    .arrowBtnTop a .arrow:after {
      transform: translateX(-100%);
      opacity: 0; }
    @media only screen and (min-width: 960px) {
      .arrowBtnTop a:hover {
        color: #666; }
        .arrowBtnTop a:hover:before {
          width: 100%; }
        .arrowBtnTop a:hover .arrow:before {
          animation-name: transformRightLeft;
          /* 修正: hover時のアニメーションを指定 */
          animation-delay: 0s;
          letter-spacing: 0 !important; }
        .arrowBtnTop a:hover .arrow:after {
          animation-name: transformLeftRight;
          /* 修正: hover時のアニメーションを指定 */
          animation-delay: 0.2s;
          letter-spacing: 0 !important; } }

@media only screen and (max-width: 960px) {
  .arrowBtnTop {
    padding: 0; }
    .arrowBtnTop a {
      display: flex;
      margin: 0 auto;
      padding: 16px 50px 22px 8px;
      min-width: auto;
      min-width: none;
      max-width: 320px;
      width: 100%; } }
.blueS {
  color: #516989;
  font-size: 0.75rem;
  line-height: 2;
  line-height: 1.4;
  font-weight: 400;
  margin-top: 12px; }

.longAtt {
  background: #FFF8F8;
  color: #C30200;
  font-size: 1.125rem;
  line-height: 1.8;
  font-weight: 600;
  line-height: 1.55;
  padding: 24px;
  text-align: center; }

@media only screen and (max-width: 960px) {
  .longAtt {
    font-size: 14px;
    line-height: 1.65;
    padding: 20px;
    text-align: left; } }
.submitAreaWhiteBox2 {
  background-color: #FFF8F8 !important; }

@media only screen and (max-width: 960px) {
  .submitAreaWhiteBox2 label {
    font-size: 14px !important; } }
