@charset "utf-8";

/* ===============================
FV
=============================== */

.fv{
  position: relative;
  padding:160px 0 0px;
  overflow:hidden;
  z-index:10;
}

/* 背景装飾 */
/* PC用 */
.fv__bg_pc {
  position: absolute;
  top: 60px;
  left: calc((100vw - var(--container)) / 2 - 150px);
  width: 651px;
  height: 651px;
  background: url(../img/Decoration.webp) no-repeat center / contain;
  opacity: 1;
  z-index: 5;
}

@media (min-width:769px){
.fv__bg_sp {
    display: none;
}
}

/* レイアウト */
.fv__inner{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

/* 左テキスト */
.fv__content{
  max-width:700px;
}

/* タイトル */
.home .fv__title{
  font-weight:600;
  line-height:150%;
  color:#0186ED;
  font-family:"Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 36px;
}

/* ボタン群 */
.fv__buttons{
  margin-top:30px;
  display:flex;
  gap:20px;
}

/* ===============================
ボタン（共通）
=============================== */

.fv__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:16px 40px;
  border-radius:100px;
  font-weight:600;

  /* アニメーション */
  transition:
    transform 1s cubic-bezier(0.34, 1.56, 0.64, 1),
    box-shadow 1s cubic-bezier(0.34, 1.56, 0.64, 1);

  box-shadow:0 6px 0 rgba(0,0,0,0.15);
}

/* ===============================
青ボタン
=============================== */

.fv__btn--primary{
  background:#0186ED;
  color:#fff;
}

.fv__btn--primary:hover{
  transform:translateY(4px);
  box-shadow:0 2px 0 rgba(0,0,0,0.2);
}

/* ===============================
白ボタン
=============================== */

.fv__btn--outline{
  background:#fff;
  border:2px solid #0186ED;
  color:#0186ED;
}

.fv__btn--outline:hover{
  transform:translateY(4px);
  box-shadow:0 2px 0 rgba(0,0,0,0.2);
}

/* ===============================
右イラスト（Lottie）
=============================== */

.fv__image{
  display:flex;
  align-items:center;
  justify-content:center;
}

.fv__image dotlottie-wc{
  width:460px;
  aspect-ratio:1 / 1;
  height:auto;
}

/* ===============================
1080以下で縮小開始
=============================== */

@media (max-width:1080px) and (min-width:769px){

.home .fv__content h1{
  font-size: clamp(32px, 3.2vw, 40px);
}

  .fv__image dotlottie-wc{
    width:clamp(300px, 32vw, 380px);
  }

}

/* ===============================
SP
=============================== */

@media (max-width:768px){
    
    
.home .fv__content h1{
      font-size: clamp(24px, 5.2vw, 40px);
}
  .fv{
    padding:0;
    margin-top: 15vw;
  }

  .fv__inner{
    flex-direction:column;
  }

  .fv__image{
    order:-1;
  }

  .fv__image dotlottie-wc{
    width:100%;
  }

/* デフォルト（PCでは非表示） */
.fv__bg_pc {
    display: none;
}

/* SPのみ表示 */
    .fv__bg_sp {
        display: block;
        position: absolute;
        top: 5vw;
        left: 0;
        width: 100%;
          height: clamp(
    530px,
    calc(530px + (950 - 530) * ((100vw - 406px) / (768 - 406))),
    950px
  );
        background: url(../img/Decoration_sp.webp) no-repeat center / cover;
        opacity: 1;
        z-index: 5;
    }

.fv__image {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: -40px;
}    
.fv__buttons {
    margin-top: 30px;
    display: block;
    gap: 20px;
    width: 100%;
} 
    
.fv__btn {
    width: 100%;
    margin-bottom: 3%;
    transition: transform 1s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 1s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: none;
}    
  .fv__inner{
    align-items: stretch;
  }   
    
}



/* ===============================
INTRO
=============================== */

.intro{
  position: relative;
  padding: 120px 0;
  overflow: hidden;

  /* グラデーション */
  background: linear-gradient(
    to bottom,
    rgba(255,255,255,0),
    rgba(1,134,237,0.4),
    rgba(1,134,237,0.7),
    rgba(1,134,237,0.9)
  );
}

/* 背景円 */
.intro__bg{
  position: absolute;
  right: calc((100vw - 1080px) / 2 - 140px);
  top: -150px;
  width: 651px;
  height: 651px;
  background: url("../img/Background Illust.svg") no-repeat center / contain;
  z-index: 1;
}

/* 中身 */
.intro__inner{
  position: relative;
  z-index: 2;
}

/* テキスト */
.intro__text{
  max-width: 755px;
}

/* 小テキスト */
.home .intro__text-sm{
  font-size: 20px;
  line-height: 180%;
  letter-spacing: 0.07em;
  color: #0254de;
  font-weight: 600;
  margin-bottom: 24px;
}

/* 大テキスト */
.home .intro__text-lg{
  font-size: 32px;
  line-height: 160%;
  letter-spacing: 0.07em;
  color: #0254de;
  font-weight: 600;
  margin-top: 40px;
}

@media (max-width:768px){

  .intro{
    padding: 80px 0;
  }

.intro__bg{
  top: 50%;
  bottom: auto;
  right: -230px;
  left: auto;
  transform: translateY(-50%);
  width: 487px;
  height: 487px;
  background: url("../img/Background Illust_sp.svg") no-repeat center / contain;
  }

  .intro__text{
    max-width: 100%;
  }

  .home .intro__text-sm{
    font-size: clamp(16px, 2.2vw, 20px);
    line-height: 200%;
    font-weight: 600;
    letter-spacing: 4%;
  }

  .home .intro__text-lg{
    font-size: clamp(18px, 2.8vw, 32px);
    line-height: 180%;
    font-weight: 600;
    letter-spacing: 4%;      
  }

}




/* ===============================
NEWS
=============================== */

.news{
  padding: 120px 0;
}

/* タイトル */
.home .news__title{
  font-family: "Karla", sans-serif;
  font-size: 36px;
  font-weight: 700;
  line-height: 100%;
  color: #484848;
  display: flex;
  align-items: center;
  gap: 12px;
}

/* タイトル横装飾 */
.news__deco {
  width: 32px;
  height: 42px;
  background: url("../img/news_column.svg") no-repeat center / contain;
  position: relative;    
  bottom: 18px;
  right: 10px;
}

/* リスト */
.news__list{
  margin-top: 40px;
}

/* アイテム */
.news__item{
  display: block;
  padding: 24px 0;
  border-bottom: 1px solid #e5e5e5;
  text-decoration: none;
}

/* 上段 */
.news__meta{
  display: flex;
  align-items: center;
  gap: 16px;
}

/* 日付 */
.home .news__date{
  font-family: "Karla", sans-serif;
  font-size: 16px;
  color: #ADADAD;
  transition: 0.3s;
}

/* カテゴリ */
.home .news__cat{
  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  background: #0186ED;
  color: #fff;
  padding: 4px 8px;
  border-radius: 16px;
  font-size: 16px;
  font-weight: 600;
}

/* タイトル */
.home .news__text{
  margin-top: 8px;
  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 16px;
  color: #484848;

  /* 1行省略 */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 22px 0;
  transition: 0.3s;
  font-weight: 600;    
}

/* hover */
.news__item:hover .news__date,
.news__item:hover .news__text{
  color: #0186ED;
}

/* ボタン */
.news__btn{
  margin-top: 40px;
  text-align: right;
}

.news__btn a{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 141px;
  height: 40px;

  border: 1px solid #0186ED;
  background: #fff;

  font-family: "Karla", sans-serif;
  font-size: 16px;
  letter-spacing: 0.1em;
  color: #0186ED;

  text-decoration: none;
  border-radius: 999px;
  font-weight: 600;        
}

.news__btn a:hover{
  background: #ADADAD;
  border-color: #ADADAD;
  color: #fff;
}

/* ===============================
SP
=============================== */

@media (max-width:768px){

  .news{
    padding: 80px 0;
  }

  .home .news__date{
    font-size: 13px;
  }

  .home .news__cat{
    font-size: 12px;
    width: 64px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
  }

  .home .news__text{
    font-size: 16px;
    font-weight: 600;
  }

}


/* ===============================
COLUMN
=============================== */

.column{
  padding: 60px 0;
  position: relative;
}

/* 背景（これが本体） */
.column::before{
  content: "";
  position: absolute;
  top: 0;
  right: 0;

  width: calc((100vw - 1080px) / 2 + 1080px);
  height: 100%;

  background: #10559B;
  border-radius: 80px 0 0 80px;

  z-index: 1;
}

/* 中身（container内） */
.column__inner{
  position: relative;
  z-index: 2;

  padding: 100px 0;
}

/* タイトル */
.home .column__title{
  font-family: "Karla", sans-serif;
  font-size: 36px;
  font-weight: 700;
  color: #fff;

  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
}

/* 装飾 */
.column__deco{
  width: 32px;
  height: 42px;
  background: url("../img/news_column.svg") no-repeat center / contain;
  position: relative;    
  bottom: 18px;
  right: 10px;
}



.column__thumb{
  margin-bottom:16px;
  border-radius: 16px;
  overflow: hidden;    
}

.column__body{
    width:95%;
    margin:0 auto;
}

/* 説明 */
.home .column__lead{
  margin-top: 36px;
  font-size: 16px;
  font-weight: 600;
  line-height: 180%;
  letter-spacing: 0.07em;
  color: #fff;
  text-align: right;
}

/* リスト */
.column__list{
  margin-top: 64px;
  display: flex;
  gap: 15px;
  justify-content: flex-end;    
}

/* カード */
.column__item{
  width: calc(33.333% - 21px);
  background: #fff;
  border-radius: 28px;
  padding: 12px 12px 34px;
}

/* 画像 */
.column__thumb img{
  width: 100%;
  height: 138px;
  object-fit: cover;
}

/* 日付 */
.column__date{
  font-family: "Karla", sans-serif;
  font-size: 16px;
  color: #ADADAD;
  font-weight: 600;
}

/* タイトル */
.column__text{
  margin-top: 8px;
  font-size: 16px;
  line-height: 150%;
  color: #484848;
  font-weight: 600;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ボタン */
.column__btn{
  margin-top: 40px;
  text-align: right;
}

.column__btn a{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 141px;
  height: 40px;

  border: 1px solid #0186ED;
  background: #ffffff;

  font-family: "Karla", sans-serif;
  font-size: 16px;
  line-height: 100%;
  letter-spacing: 0.1em;
  color: #0186ED;

  text-decoration: none;
  border-radius: 999px;
  transition: 0.3s;
}

.column__btn a:hover{
  background: #ADADAD;
  border-color: #ADADAD;
  color: #ffffff;
}

/* ===============================
COLUMN hover
=============================== */

/* 文字色変更 */
.column__item:hover .column__date,
.column__item:hover .column__text {
  color: #0186ED;
}

/* 画像ズーム＋ぼかし */
.column__thumb img {
  transition: transform 0.4s ease, filter 0.4s ease;
}

.column__item:hover .column__thumb img {
  transform: scale(1.05);
  filter: blur(2px);
}

/* ===============================
SP
=============================== */

@media (max-width:768px){

  /* 背景：左余白＋左だけ角丸 */
  .column::before{
    width: calc(100% - 24px);
    right: 0;
    border-radius: 40px 0 0 40px;
  }

  /* 中身：左余白に合わせる（重要） */
  .column__inner{
    width: calc(100% - 24px);
    margin-left: auto;
    padding: 0;
  }


  /* タイトル：右寄せ */
  .home .column__title{
    justify-content: flex-end;
  }

  .home .column__lead{
    text-align: right;
  }

  /* カード：左右余白バランス */
  .column__list{
    flex-direction: column;
  }

  /* ボタン：右寄せ維持 */
  .column__btn{
    text-align: right;
  }

  .column__item{
    width: 100%;
  }

  .column__thumb{
    width: 100%;
    aspect-ratio: 314 / 154;
    overflow: hidden;
  }

  .column__thumb img{
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

}


/* =========================
   SERVICE
========================= */

.service {
  background: #fff;
  position: relative;
  padding-top: 300px;
  overflow: hidden;
}

.service__bg {
}

/* =========================
上カーブ（半円）
========================= */

.service__top-circle {
  position: relative;
  height: 120px;          /* 見せる高さ */
  overflow: hidden;
}

.service__top-circle::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -180px;         /* ←ここが重要 */
  transform: translateX(-50%);

  width: 200%;
  height: 300px;
  background: #0186ED;
  border-radius: 50%;
}

/* =========================
中身
========================= */

.service__main {
  background: #0186ED;
  padding: 80px 0;
}

/* =========================
下カーブ（半円）
========================= */

.service__bottom-circle {
  position: relative;
  height: 0px;
}

.service__bottom-circle::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -180px;            /* ←ここが重要 */
  transform: translateX(-50%);

  width: 200%;
  height: 300px;
  background: #fff;
  border-radius: 50%;
}

/* =========================
画像
========================= */

.service_top_img {
  position: absolute;
  top: 140px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}

/* =========================
   TOP
========================= */
.service__top {
  text-align: center;
  position: relative;
  margin-bottom: 60px;
}

.service .service__jp {
  font-size: 18px;
  font-weight: 600;
  color: #fff;
}
@media (min-width: 1080px) {
.service .service__en {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 167px;
  color: rgba(255,255,255,0.15);
  font-weight: bold;
  white-space: nowrap;
}
}

@media (min-width: 768px) and (max-width: 1079px) {
.service .service__en {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 16vw;
  color: rgba(255,255,255,0.15);
  font-weight: bold;
  white-space: nowrap;
}
}

/* =========================
   SLIDER
========================= */
.service__slider {
  width: 100%;
  overflow: visible;
  margin-top: 100px;
  padding-bottom: 150px;
}

.swiper {
  width: 100%;
}

.swiper-wrapper {
  align-items: stretch;
}


/* =========================
   CARD
========================= */
.service__card {
  width: 348px; /* ←変更（flexやめる） */
  height: 474px;
  background: #fff;
  border-radius: 28px;
  padding: 55px 25px 25px;
  border: 1px solid #0186ED;
  position: relative;
  text-decoration: none;
  text-align: center;
}

/* no */
.service__no {
  font-family: 'Karla', sans-serif;
  font-weight: 600;
  font-size: 20px;
  color: #0186ED;
  display: block;
  margin-bottom: 20px;
}

/* title */
.service__title {
  font-size: 24px;
  font-weight: 600;
  color: #0186ED;
  margin-bottom: 30px;
}

/* img */
.service__img {
  text-align: center;
  margin-bottom: 20px;
}

.service__img img {
  margin: 0 auto;
  height:120px;    
}

/* text */
.service__text {
  font-size: 16px;
  line-height: 2;
  color: #484848;
  letter-spacing: 7%;
}

/* button */
.service__btn {
  position: absolute;
  right: 20px;
  bottom: 20px;
  width: 45px;
  height: 45px;
  background: #0186ED;
  border-radius: 50%;

  display: flex;
  align-items: center;
  justify-content: center;
}

/* 三角（▶） */
.service__btn::before {
  content: "";
  width: 0;
  height: 0;
  border-left: 17px solid #fff;
  border-top: 12px solid transparent;
  border-bottom: 12px solid transparent;
  margin-left: 2px; /* ←これ追加（右に寄る） */    
}

/* =========================
   画像（ぼよーんズーム）
========================= */
.service__card:hover .service__img img {
  animation: scaleBounce 0.5s ease forwards;
}

/* =========================
   タイトル（横ぼよーん）
========================= */
.service__card .service__title {
  display: inline-block;
}

.service__card:hover .service__title {
  animation: scaleXBounce 0.5s ease forwards;
}

/* =========================
   画像用バウンス
========================= */
@keyframes scaleBounce {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.12); }  /* 行きすぎ */
  70%  { transform: scale(1.05); }  /* 戻る */
  100% { transform: scale(1.08); }  /* 着地 */
}

/* =========================
   タイトル用バウンス
========================= */
@keyframes scaleXBounce {
  0%   { transform: scaleX(1); }
  40%  { transform: scaleX(1.12); }
  70%  { transform: scaleX(1.04); }
  100% { transform: scaleX(1.08); }
}



@media (max-width: 767px) {
    
.service {
  margin-top: 0px;
}    
    
  .service__card {
    flex: 0 0 242px;
    height: 383px;
    padding: 24px 12px 12px;
  }

.service .service__no {
    font-size: 12px;
  }

.service .service__title {
    font-size: 20px;
    line-height: 1.4;
  }

.service .service__text {
    font-size: 15px;
    line-height: 1.7;
    letter-spacing: 3%;
  }

  .service__btn {
    width: 28px;
    height: 28px;
  }

.service .service__jp {
    font-size: 12px;
  }
    
/* 上カーブ（SP 半円） */
.service__top-circle {
  position: relative;
  height: 0;
  overflow: visible;
}

.service__top-circle::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -40px;
  transform: translateX(-50%);
  width: 140%;
  height: 200px;
  background: #0186ED;
  border-radius: 50%;
}

/* 下カーブ（SP 半円） */
.service__bottom-circle {
  position: relative;
  height: 0;
  overflow: visible;
  margin-bottom: 0; /* ←これ重要（リセット） */
}

.service__bottom-circle::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -120px;
  transform: translateX(-50%);
  width: 140%;
  height: 200px;
  background: #fff;
  border-radius: 50%;
}  

.service__top {
  text-align: center;
  position: relative;
  margin-bottom: 60px;
  margin-top: clamp(
  0px,
  calc((100vw - 490px) * (160 / 277)),
  80px
);
}    
    
.service_top_img {
  position: absolute;
  top: 90px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  width: 60%;
}  
.service__main {
  padding: 0px 0;
}
.service__slider {
  width: 100%;
  overflow: visible;
  margin-top: 60px;
  padding-bottom: 250px;
}    
.service .service__en {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 16vw;
  color: rgba(255,255,255,0.15);
  font-weight: bold;
  white-space: nowrap;
}
    
.service__btn::before {
  content: "";
  width: 0;
  height: 0;
  border-left: 12px solid #fff;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  margin-left: 2px;
}    
    
.service__img img {
  margin: 0 auto;
  height: 88px;
}   
    
}

/* ===============================
ADVANTAGE
=============================== */

.advantage {
  background: #fff;
  padding: 0 0 120px;
  overflow-x: hidden;
}

.advantage__inner {
}

/* head */
.advantage__head {
  text-align: center;
}

.advantage h2.advantage__en {
  font-family: "Karla", sans-serif;
  font-size: 62px;
  font-weight: 700;
  line-height: 1;
  color: #0186ED;
  margin: 0;
}

.advantage .advantage__jp {
  margin-top: 12px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #0186ED;
}

.advantage .advantage__lead {
  margin-top: 32px;
  margin-bottom:200px;
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0.07em;
  color: #10559B;
}

/* list */
.advantage__list {
  margin-top: 80px;
}

/* item */
.advantage__item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  position: relative;
}

.advantage__item + .advantage__item {
  margin-top: 140px;
}

/* 交互 */
.advantage__item:nth-child(even) {
  flex-direction: row-reverse;
}

/* 偶数だけ右寄せ */
.advantage__item:nth-child(even) .advantage__text {
  text-align: right;
}

/* text */
.advantage__text {
  width: 49%;
  max-width: 520px;
}

.advantage .advantage__title {
  font-size: 36px;
  line-height: 1.6;
  color: #0186ED;
  margin-bottom: 16px;
}

.advantage .advantage__desc {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.07em;
  color: #0186ED;
  max-width: 400px;
}

/* image */
.advantage__img {
  width: 48%;
  text-align: center;
}

.advantage__img img {
  width: 100%;
  max-width: 497px;
}

/* 背景番号 */
.advantage__no {
  position: absolute;
  top: -6%;
  transform: translateY(-50%);
  width: 350px;
  z-index: 1;
}

/* 奇数 */
.advantage__item:nth-child(odd) .advantage__no {
  left: -138px;
}

/* 偶数 */
.advantage__item:nth-child(even) .advantage__no {
  right: -145px;
}

/* PCのみ */
@media (min-width: 768px) {

  /* 画像の中身を寄せる */
  .advantage__img {
    display: flex;
  }

  /* 奇数 → 左寄せ */
  .advantage__item:nth-child(odd) .advantage__img {
    justify-content: flex-end;      
  }

  /* 偶数 → 右寄せ */
  .advantage__item:nth-child(even) .advantage__img {
    justify-content: flex-start;      
  }
.advantage__item:nth-child(even) .advantage__desc {
  margin-left: auto;
}
}
/* ===============================
SP
=============================== */

@media (max-width: 767px) {

  .advantage {
    padding: 0px 0 100px;
  }

  .advantage h2.advantage__en {
    font-size: 36px;
  }

  .advantage .advantage__jp {
    margin-top: 8px;
    font-size: 12px;
  }

  .advantage .advantage__lead {
    margin-top: 20px;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 5%;
    margin-bottom:0;
  }

  .advantage__item {
    flex-direction: column;
    text-align: center;
  }

  .advantage__item:nth-child(even) {
    flex-direction: column;
  }

  .advantage__text {
    width: 100%;
  }

  .advantage .advantage__img {
    width: 100%;
    margin-top: 24px;
  }

  .advantage__img img {
    max-width: 354px;
    margin: 0 auto;  
  }

  .advantage .advantage__title {
    font-size: 24px;
    letter-spacing: 3%;
    text-align: center;
  }

  .advantage .advantage__desc {
    font-size: 16px;
    line-height: 1.8;
    text-align: left;
    letter-spacing: 5%;
    font-weight: 600;  
  }

  .advantage__no {
    width: 80px;
  }
    
.advantage__item:nth-child(odd) .advantage__no {
    left: 0px;
}   
.advantage__item:nth-child(even) .advantage__no {
  right: 10px;
}    
.advantage__item:nth-child(even) .advantage__text {
    text-align: left;
}
.advantage__item + .advantage__item {
    margin-top: 80px;
}    
    
.advantage__text {
  width: fit-content;
  max-width: fit-content;
  margin:0 auto;
}    
    
}


/* =========================
SUCCESS
========================= */

.success {
  background: #fff;
  position: relative;
}

/* カーブ構造 */
.success .success__bg {
  position: relative;
}

/* 上カーブ */
.success .success__top-circle {
  position: relative;
  height: 120px;              /* ←見せる高さ（浅くする） */
  overflow: hidden;
}

.success .success__top-circle::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);

  width: 200%;
  height: 300px;              /* ←円の大きさ（なだらかさ） */
  background: #10559B;
  border-radius: 50%;

  top: 0;                     /* ←上半分だけ見せる */
}

/* 中身 */
.success .success__main {
  background: #10559B;
  padding: 100px 0;
  position: relative;
  z-index: 1;
}

/* 下カーブ */
.success .success__bottom-circle {
  position: relative;
  height: 120px;
  overflow: hidden;
}

.success .success__bottom-circle::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);

  width: 200%;
  height: 300px;
  background: #10559B;
  border-radius: 50%;

  bottom: 0;                  /* ←下半分だけ見せる */
}

/* =========================
HEAD
========================= */

.success .success__head {
  text-align: center;
}

.success h2.success__en {
  font-family: "Karla", sans-serif;
  font-size: 62px;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
}

.success .success__jp {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #ffffff;
  margin-top: 8px;
}

/* =========================
ITEM（外側制御）
========================= */

.success .success__item {
  margin-top: 80px;
  display: flex;
}

/* 奇数（左） */
.success .success__item:not(.is-right) {
  justify-content: flex-start;
}

/* 偶数（右） */
.success .success__item.is-right {
  justify-content: flex-end;
}

/* =========================
BOX（中央軸）
========================= */

.success .success__box {
  width: 100%;
  max-width: 680px;
}

/* 奇数：左寄せ */
.success .success__item:not(.is-right) .success__box {
  margin-right: auto;
}

/* 偶数：右寄せ */
.success .success__item.is-right .success__box {
  margin-left: auto;
}

/* =========================
HEADER
========================= */

.success .success__header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

/* =========================
NO
========================= */

.success .success__no {
  position: relative;
  width: 70px;
  text-align: center;
  flex-shrink: 0;
}

.success .success__no img {
  position: absolute;
  top: -18px;
  left: 85%;
  transform: translateX(-50%);
  width: 32px;
  z-index: 1;
}

.success .success__num {
  display: block;
  font-family: "Karla", sans-serif;
  font-size: 41px;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
  position: relative;
  z-index: 2;
}

.success .success__label {
  display: block;
  font-family: "Karla", sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
  margin-top: 4px;
}

/* =========================
TITLE
========================= */

.success h2.success__title {
  margin-left: 20px;
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.success .success__title-main {
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #ffffff;
}

.success .success__title-sub {
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #ffffff;
}

/* =========================
CIRCLES
========================= */

.success .success__circles {
  display: flex;
  justify-content: center;
  gap: 18px;
  margin-top: 40px;
}

.success .success__circle {
  width: 214px;
  height: 214px;
  border-radius: 50%;
  border: 2px solid;
  background: #ffffff;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  padding: 16px;
  text-align: center;
}

/* 色 */
.success .success__circle.is-blue {
  border-color: #0186ED;
}
.success .success__circle.is-green {
  border-color: #16AD9B;
}
.success .success__circle.is-pink {
  border-color: #FF1C63;
}

/* タグ */
.success .circle__tag {
  display: inline-block;
  margin-bottom: 10px;
  padding: 6px 16px;
  color: #ffffff;
  font-size: 16px;
  font-weight: 600;
  border-radius: 25px;
}

.success .is-blue .circle__tag { background: #0186ED; }
.success .is-green .circle__tag { background: #16AD9B; }
.success .is-pink .circle__tag { background: #FF1C63; }

/* テキスト */
.success .circle__text {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #484848;
}




/* =========================
SP
========================= */

@media (max-width: 767px) {
    
.success .success__item {
  margin-top: 20px;
  display: flex;
}
  /* 上カーブ（上に膨らむ） */
  .success .success__top-circle {
    position: relative;
    height: 80px;
    overflow: hidden;
  }

  .success .success__top-circle::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -120px;              /* ←ここ修正 */
    transform: translateX(-50%);
    width: 140%;
    height: 200px;
    background: #10559B;
    border-radius: 50%;
  }

  /* 下カーブ（下に膨らむ） */
  .success .success__bottom-circle {
    position: relative;
    height: 80px;
    overflow: hidden;
  }

  .success .success__bottom-circle::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -120px;                 /* ←ここ修正 */
    transform: translateX(-50%);
    width: 140%;
    height: 200px;
    background: #10559B;
    border-radius: 50%;
  }

.success .success__main {
  background: #10559B;
  padding: 0px 0;
  position: relative;
  z-index: 1;
}    
    
.success .success__box {
  width: 100%;
  max-width: 100%;
}    
/* =========================
PC外枠 完全打ち消し
========================= */
  .success .success__circle {
    height: auto;
    border: none;
    background: transparent;
    padding: 0;
    display: block;
    flex: none;
    align-items: initial;
    justify-content: initial;
  }    

  .success h2.success__en {
    font-size: 36px;
  }

  .success .success__jp {
    font-size: 12px;
  }

  /* =========================
  HEADER
  ========================= */

  .success .success__header {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .success .success__item.is-right .success__header {
    justify-content: center;
  }

  /* =========================
  TITLE
  ========================= */
.success h2.success__title {
  display: block;
  margin:0;
}
  .success h2.success__title .success__title-main,
  .success h2.success__title .success__title-sub {
    font-size: 24px;
    line-height: 1.4;
    letter-spacing: 0.03em;
    display: block;
  }

  /* =========================
  CIRCLES（レイアウト）
  ========================= */

  .success .success__circles {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
  }

  /* 上1つ */
  .success .success__circle:nth-child(1){
    width: 100%;
    display: flex;
    justify-content: center;
  }

  /* 下2つ */
  .success .success__circle:nth-child(2),
  .success .success__circle:nth-child(3){
    width: calc(50% - 3px);
    display: flex;
    justify-content: center;
    margin-top: -15px;  
  }

  /* =========================
  CIRCLE（サイズ制御はinner）
  ========================= */
.success .success__circle.is-blue .success__circle-inner {
  width: 50%;
}
    
  .success .success__circle-inner {
max-width: 333px;
min-width: 173px;
height: auto;
aspect-ratio: 1 / 1;

    border-radius: 50%;
    border: 2px solid;
    background: #ffffff;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    padding: 12px;
    text-align: center;
    margin:0 auto;
  }

  /* 色（innerに移す） */
  .success .success__circle.is-blue .success__circle-inner {
    border-color: #0186ED;
  }

  .success .success__circle.is-green .success__circle-inner {
    border-color: #16AD9B;
  }

  .success .success__circle.is-pink .success__circle-inner {
    border-color: #FF1C63;
  }

  /* =========================
  TAG / TEXT
  ========================= */

  .success .circle__tag {
    padding: 2px 8px;
    font-size: 12px;
  }

  .success .circle__text {
    font-size: 15px;
    font-weight: 600;
  }


  /* =========================
  NOパート（SP）
  ========================= */

  .success .success__no img {
    width: 24px; /* 32 → 24に調整 */
    top: -10px;  /* 被り量調整 */
  }

  .success .success__num {
    font-size: 19px;   /* ←指定通り */
    line-height: 1;
  }

  .success .success__label {
    font-size: 14px;   /* ←指定通り */
    line-height: 1;
  }

.success .success__no {
    position: relative;
    width: 70px;
    text-align: center;
    flex-shrink: 0;
    align-self: flex-start;
    top: 48px;
}    
    
}


/* ===============================
VOICE（強化版）
=============================== */

.home .voice{
  padding: 120px 0;
}

/* ヘッダ */
.home .voice__head{
  text-align: center;
}

/* タイトル */
.home .voice__title{
  position: relative;
  font-family: "Karla", sans-serif;
  font-size: 62px;
  font-weight: 700;
  color: #FF1C63;

  display: inline-block; /* flexやめる */
}

/* 装飾（自由配置） */
.home .voice__title .voice__deco {
    position: absolute;
    top: 0px;
    right: -36px;
    width: 32px;
    height: 32px;
    background: url(../img/news_column.svg) no-repeat center / contain;
}

/* サブ */
.home .voice__sub{
  margin-top: 8px;
  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 100%;
  color: #FF1C63;
}

/* リード */
.home .voice__lead{
  margin-top: 24px;
  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 200%;
  letter-spacing: 0.07em;
  color: #FF1C63;
}

/* リスト */
.home .voice__list{
  margin-top: 80px;
  display: flex;
  justify-content: center;
  gap: 40px;
}

/* カード */
.home .voice__item{
  width: 327px;
  text-align: center;
}

/* 画像 */
.home .voice__item img{
  width: 100%;
  display: block;
  border-radius: 27px;
}

/* 名前 */
.home .voice__name{
  margin-top: 16px;
  display: inline-block;
  padding: 10px 44px;
  background: #FF1C63;
  border-radius: 25px;

  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 18px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.05em;
  line-height: 100%;
}

/* テキスト */
.home .voice__text{
  margin-top: 20px;
  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 200%;
  letter-spacing: 0.07em;
  color: #484848;
  text-align: center;
}

/* ===============================
SP
=============================== */

@media (max-width:768px){

  .home .voice{
    padding: 80px 0;
  }

  .home .voice__title{
    font-size: 36px;
  }

  .home .voice__title .voice__deco{
    width: 17px;
    height: 17px;
    top: 0px;
    right: -16px;
  }


  .home .voice__sub{
    font-size: 12px;
  }

  .home .voice__lead{
    font-size: 16px;
    line-height: 180%;
    letter-spacing: 0.05em;
  }

  .home .voice__list{
    flex-direction: column;
    align-items: center;
    gap: 48px;
    margin-top: 60px;
  }

  .home .voice__item{
    width: 354px;
  }

  .home .voice__item img{
    border-radius: 20px;
  }

  .home .voice__name{
    padding: 8px 44px;
    font-size: 16px;
  }

  .home .voice__text{
    line-height: 180%;
    letter-spacing: 5%;
    font-size: 16px;
    text-align: center;
  }

}


/* ===============================
FAQ
=============================== */

.home .faq{
  padding: 120px 0;
}

/* ヘッダ */
.home .faq__head{
  text-align: center;
}

/* タイトル */
.home .faq__title{
  font-family: "Karla", sans-serif;
  font-size: 62px;
  font-weight: 700;
  color: #0186ED;
}

/* サブ */
.home .faq__sub{
  margin-top: 8px;
  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #0186ED;
}

/* リード */
.home .faq__lead{
  margin-top: 24px;
  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 200%;
  letter-spacing: 0.07em;
  color: #484848;
}

/* リスト */
.home .faq__list{
  margin-top: 80px;
}

/* アイテム */
.home .faq__item{
  padding: 40px 0;
  border-top: 1px solid #0186ED;
}

/* Q部分 */
.home .faq__q{
  display: flex;
  align-items: center;
  gap: 20px;
}

/* Qアイコン */
.home .faq__q img{
  width: 53px;
  flex: 0 0 53px;
}

/* 質問 */
.home .faq__q h3{
  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #0186ED;
}

/* 回答 */
.home .faq__a{
  margin-top: 16px;
  padding-left: 73px;

  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 200%;
  letter-spacing: 0.07em;
  color: #484848;
}
.home .faq__a span{
  font-size: 18px;
  color: #0186ED;    
  font-weight: 600;
}
/* ===============================
SP
=============================== */

@media (max-width:768px){

  .home .faq{
    padding: 80px 0;
  }

  .home .faq__title{
    font-size: 36px;
  }

  .home .faq__sub{
    font-size: 12px;
  }

  .home .faq__lead{
    font-size: 16px;
    line-height: 180%;
    letter-spacing: 0.05em;
  }

  .home .faq__item{
    padding: 32px 0;
    text-align: center;
  }

  /* Q中央 */
  .home .faq__q{
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .home .faq__q img{
    width: 39px;
    flex: 0 0 39px;  
  }

  .home .faq__q h3{
    font-size: 20px;
    line-height: 140%;
    letter-spacing: 0.03em;
  }

  /* 回答 */
  .home .faq__a{
    padding-left: 0;
    margin-top: 12px;
    text-align: left;
    line-height: 180%;
    letter-spacing: 0.05em;
    text-align: center;
  }
    
    .home .faq__a span {
        font-size: 16px;
        color: #0186ED;
        font-weight: 600;
        text-align: left;
        display: block;
        margin-bottom: -20px;
    } 

}



/* ===============================
MESSAGE
=============================== */

.home .message{
  position: relative;
}

/* 上カーブ */
.home .message__top-circle{
  position: relative;
  height:120px;
  overflow:hidden;
}

.home .message__top-circle::before{
  content:"";
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  width:200%;
  height:300px;
  background:#0186ED;
  border-radius:50%;
  top:0;
}

/* 本体 */
.home .message__main{
  background:#0186ED;
  padding:100px 0;
  text-align:center;
}

/* 下カーブ */
.home .message__bottom-circle{
  position: relative;
  height:120px;
  overflow:hidden;
}

.home .message__bottom-circle::before{
  content:"";
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  width:200%;
  height:300px;
  background:#0186ED;
  border-radius:50%;
  bottom:0;
}

/* リード */
.home .message__lead{
  font-size:22px;
  font-weight:600;
  line-height:200%;
  letter-spacing:0.07em;
  color:#fff;
  max-width:900px;
  margin:0 auto 40px;
}

/* チェック */
.home .message__checks{
  display: grid;
  grid-template-columns: repeat(2, auto);
  justify-content: center;
  gap: 12px 12px; /* 横は少し広めに */
  margin-bottom: 24px;
}

/* ①③（奇数）→ 右寄せ（センターに寄る） */
.home .message__check:nth-child(odd){
  justify-self: end;
}

/* ②④（偶数）→ 左寄せ（センターに寄る） */
.home .message__check:nth-child(even){
  justify-self: start;
}

.home .message__check {
    display: flex;
    align-items: center;
    gap: 5px;
    background: #10559B;
    padding: 12px;
    border-radius: 3px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.07em;
    color: #fff;
    width: fit-content;
}

.home .message__check img{
  width:16px;
}

/* テキスト */
.home .message__text{
  margin-top:24px;
  font-size:16px;
  font-weight:600;
  line-height:200%;
  letter-spacing:0.07em;
  color:#fff;
}

/* タグ共通 */
.home .message__tag{
  display:inline-block;
  background:#10559B;
  padding: 6px 12px;
  border-radius:3px;
  margin:0 3px;

  font-size:16px;
  font-weight:600;
  letter-spacing:0.07em;
  color:#fff;
}

/* タグブロック */
.home .message__tags{
  margin-top:32px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px;
}

/* CTA */
.home .message__cta{
  margin-top:32px;
}

.home .m_mb{
  margin-bottom:64px;    
}

/* ===============================
SP
=============================== */

@media(max-width:768px){
/* 本体 */
.home .message__main{
  background:#0186ED;
  padding:0px 0;
  text-align:center;
}
  .home .message__lead{
    font-size:20px;
    line-height:180%;
    letter-spacing:0.05em;
    font-weight:500;      
  }

  .home .message__checks{
    grid-template-columns: 1fr;
  }

  .home .message__check:nth-child(odd),
  .home .message__check:nth-child(even){
    justify-self: center;
  }    
    
  .home .message__check{
    padding:8px;
    font-size:15px;
    justify-self: center;
  }

  .home .message__tag{
    padding:8px;
    font-size:15px;
  }

  .home .message__text{
    line-height:180%;
    letter-spacing:0.05em;
  }

.home .m_mb {
    margin-bottom: 64px;
}    
    
}


/* ===============================
CONTACT
=============================== */

.home .contact{
  padding:120px 0;
  background:#fff;
}

/* ヘッダ */
.home .contact__head{
  text-align:center;
}

/* タイトル */
.home .contact__title{
  font-family:"Karla", sans-serif;
  font-size:62px;
  font-weight:700;
  color:#10559B;
  position:relative;
  display:inline-block;
}

/* 装飾 */
.home .contact__deco{
  position:absolute;
  top:-6px;
  right:-40px;
  width:32px;
  height:32px;
  background:url("../img/news_column.svg") no-repeat center/contain;
}

/* サブ */
.home .contact__sub{
  margin-top:8px;
  font-size:18px;
  font-weight:600;
  letter-spacing:0.05em;
  color:#10559B;
}

/* リード */
.home .contact__lead{
  margin-top:24px;
  font-size:16px;
  font-weight:600;
  line-height:200%;
  letter-spacing:0.07em;
  color:#10559B;
}

/* ===============================
電話
=============================== */

.home .contact__tel{
  margin-top:40px;
  border-top:2px solid #10559B;
  border-bottom:2px solid #10559B;
  padding:40px 0;
}

.home .contact__tel-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
}

.home .contact__tel-label{
  font-size:18px;
  font-weight:600;
  color:#10559B;
}

.home .contact__tel-main{
  display:flex;
  align-items:center;
  gap:12px;
}

.home .contact__tel-icon{
  width:28px;
}

.home .contact__tel-number{
  font-family:"Karla", sans-serif;
  font-size:51px;
  font-weight:700;
  color:#10559B;
  text-decoration:none;
}

.home .contact__tel-hours{
  text-align:left;
}

.home .contact__tel-hours-label{
  font-size:16px;
  font-weight:600;
  color:#10559B;
}

.home .contact__tel-hours-time{
  font-size:16px;
  font-weight:600;
  line-height:140%;
  color:#10559B;
}

/* ===============================
フォーム見出し
=============================== */

.home .contact__form-head{
  margin-top:40px;
  text-align:center;
}

.home .contact__form-title{
  display:inline-block;
  background:#10559B;
  padding:12px 40px;
  border-radius:4px;
  font-size:24px;
  font-weight:600;
  color:#fff;
  width:100%;
}

/* 説明文 */
.home .contact__form-lead{
  margin-top:24px;
  text-align:center;
  font-size:16px;
  font-weight:600;
  line-height:200%;
  letter-spacing:0.07em;
  color:#10559B;
}

/* ===============================
フォーム本体
=============================== */

.home .contact__form-wrap{
  margin-top:40px;
}

/* フィールド */
.home .contact__field{
  margin-bottom:24px;
}

/* ラベル行 */
.home .contact__label-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}

/* バッジ */
.home .contact__badge{
  display:inline-block;
  padding:3px 6px;
  border-radius:5px;
  font-size:12px;
  color:#fff;
}

.home .contact__badge--required{
  background:#FF0000;
}

.home .contact__badge--optional{
  background:#ADADAD;
}

/* ラベル */
.home .contact__label{
  font-size:14px;
  font-weight:600;
  letter-spacing:0.07em;
  color:#484848;
}

/* 入力枠 */
.home .contact__input-wrap input,
.home .contact__input-wrap select,
.home .contact__input-wrap textarea{
  width:100%;
  padding:16px;
  border-radius:8px;
  background:#DCF0FF;
  border:none;
  font-size:14px;
  font-weight:600;
  color:#ADADAD;
  box-shadow:4px 1px 15px rgba(0,0,0,0.05);
  letter-spacing: 7%;
}

/* placeholder */
.home .contact__input-wrap input::placeholder,
.home .contact__input-wrap textarea::placeholder{
  color:#ADADAD;
}

/* textarea */
.home .contact__input-wrap--textarea textarea{
  height:200px;
  resize:none;
}

/* プルダウン */
.home option:first-child{
  color:#ADADAD;
}

.home .cf7-custom-select {
  position: relative;
}

.home .cf7-custom-select__trigger {
  width: 100%;
  min-height: 56px;
  padding: 16px 48px 16px 16px;
  border: none;
  border-radius: 8px;
  background: #DCF0FF;
  box-shadow: 4px 1px 15px rgba(0,0,0,0.05);
  color: #484848;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-align: left;
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
}

/* 初期表示の「選択」 */
.home .cf7-custom-select__trigger.is-placeholder {
  color: #ADADAD;
}

/* 上の閉じた状態の矢印 */
.home .cf7-custom-select__trigger::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 18px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #ADADAD;
  border-bottom: 2px solid #ADADAD;
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.25s ease;
}

/* 開いた時は上の矢印は非表示 */
.home .cf7-custom-select.is-open .cf7-custom-select__trigger::after {
  opacity: 0;
}

/* リスト本体 */
.home .cf7-custom-select__list {
  display: none;
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  background: #DCF0FF;
  border-radius: 8px;
  box-shadow: 4px 8px 20px rgba(0,0,0,0.08);
  z-index: 100;
  overflow: hidden;
}

/* 開いた時だけ表示 */
.home .cf7-custom-select.is-open .cf7-custom-select__list {
  display: block;
}

.home .cf7-custom-select__option {
  padding: 16px;
  background: #DCF0FF;
  color: #484848;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.07em;
  cursor: pointer;
  line-height: 1.6;
  position: relative;
  transition: background 0.3s ease, color 0.3s ease;
}

.home .cf7-custom-select__option:hover {
  background: #ffffff;
  color: #0186ED;
}

/* 各項目の区切り線 */
.home .cf7-custom-select__option + .cf7-custom-select__option {
  border-top: 1px solid #ffffff;
}

/* リスト内の先頭「選択」 */
.home .cf7-custom-select__option.is-placeholder {
  color: #ADADAD;
}

/* 開いた時、2個目の選択行の右端に閉じる矢印 */
.home .cf7-custom-select__option.is-placeholder::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 18px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #ADADAD;
  border-bottom: 2px solid #ADADAD;
  transform: translateY(-30%) rotate(-135deg);
}

/* hover */
.home .cf7-custom-select__option:hover {
  opacity: 0.85;
}

/* SNS運用だけ個別調整したい場合 */
.home .cf7-custom-select__option.is-sns {
  padding: 16px;
}
/* ===============================
プライバシー
=============================== */

.home .contact__privacy{
  margin-top: 24px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.home .contact__privacy input{
  width: 18px;
  height: 18px;
  border: 1px solid #10559B;
}

.home .contact__privacy-text{
  font-size: 14px;
  font-weight: 600;
  color: #484848;
}

.home .contact__privacy-text a{
  color: #10559B;
  text-decoration: underline;
}

.home .contact__privacy:has(input[type="checkbox"]:checked) .contact__privacy-text{
  color: #10559B;
}

.home .contact__privacy:has(input[type="checkbox"]:checked) .contact__privacy-text a{
  color: #10559B;
}



/* ===============================
送信
=============================== */

.home .contact__submit{
  margin-top:24px;
}

.home .contact__submit input{
  width:100%;
  background:#10559B;
  color:#fff;
  border:none;
  padding:12px;
  border-radius:4px;
  font-size:16px;
  font-weight:600;
  transition: background 0.3s ease, color 0.3s ease;    
}

.home .contact__submit input:hover {
  background:#ADADAD;
  color:#FFFFFF;
}

/* ===============================
SP
=============================== */

@media(max-width:768px){

  .home .contact{
    padding:80px 0;
  }

  .home .contact__title{
    font-size:36px;
  }

  .home .contact__sub{
    font-size:12px;
  }

  .home .contact__lead{
    line-height:180%;
    letter-spacing:0.05em;
  }

  .home .contact__tel{
    border-top:1px solid #10559B;
    border-bottom:1px solid #10559B;
    padding:20px 0;
  }

  .home .contact__tel-inner{
    flex-direction:column;
    align-items:center;
    gap:12px;
    text-align:center;
  }

  .home .contact__tel-number{
    font-size:28px;
  }

  .home .contact__tel-label{
    font-size:14px;
  }

  .home .contact__tel-hours {
    text-align: center;
    display: flex;
    gap: 10px;
  }

  .home .contact__form-title{
    font-size:16px;
    width:100%;
  }

  .home .contact__label{
    font-size:16px;
  }

}


/* ===============================
recapture
=============================== */

/* いったん全ページで非表示 */
.grecaptcha-badge {
  display: none !important;
}

/* トップページだけ表示 */
.home .grecaptcha-badge,
.front-page .grecaptcha-badge {
  display: block !important;
}

  .home .grecaptcha-badge{left:6px!important;width:70px!important;  z-index: 9999 !important; font-size: 11px!important;}
  .home .grecaptcha-badge:hover{left:6px!important;width:256px!important;}
  .home .rc-anchor-invisible-text {font-size: 11px!important;}



