@charset "UTF-8";

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Yu Gothic", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
}

.wrapper{
    width: 600px;
    max-width: 100%; /* スマホ対応 */
    margin: 0 auto;  /* 中央寄せ */
    background: #fff; /* 中身は白 */
    box-shadow: 0 0 20px rgba(75, 112, 177, 0.349);
}
body{
    margin: 0;
    min-height: 100vh;
    background-image: url("../img/back.jpg"); /* ← 余白に表示したい画像 */
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover; /* 画面いっぱい */
    background-attachment: fixed; /* ★ これ */
}


/*header-------------------------------------------------------------------------------*/
.site-header {
    width: 600px;
    margin: 0 auto; /* 中央寄せ */
    padding: 3% 0;
  }

  @media screen and (max-width: 772px){
    .site-header {
      width: 100%;
      margin: 0 auto; /* 中央寄せ */
      padding: 3% 0;
    }
  }
  
  .header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  
  .header-left img {
    display: block;
  }
  
  .header-right {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  
  .header-right img {
    display: block;
  }

  .logo{
    width: 200px;
    margin-left: 20px;
  }

  @media screen and (max-width: 772px){
    .logo{
      width: 126px;
    }
  }

  .line{
    height: 50px;

  }

  .tel{
    height: 50px;
  }

  @media screen and (max-width: 772px){
    .line{
      height: 32px;
    }
  
    .tel{
      height: 32px;
    }
  }

  /*ハンバーガー-------------------------------------------------------------------------------*/  
  .hamburger {
    width: 38px;
    height: 21px;
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    padding-right: 14px;
    padding-left: 0px;
  }

  .hamburger span {
    display: block;
    width: 100%;        /* 幅を明示 */
    height: 3px;
    background-color: #2a4be0; /* Safariでも確実 */
    border-radius: 2px;
    transition: 0.3s;
  }
  
/* × 変形（21px版） */
.hamburger.active span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}
  
  /* ドロワーメニュー（右から出す） */
  .drawer-menu {
    position: fixed;
    top: 0;
    right: -250px;
    width: 250px;
    height: 100vh;
    margin-top: 55px; /* ← ヘッダー分 */
    background: #fff;
    transition: 0.3s;
    z-index: 1000;
  }

  @media screen and (min-width: 768px){
    .drawer-menu {
      margin-top: 0px; /* ← ヘッダー分 */
    }
  
  }
  
  .drawer-menu.active {
    right: 0;
  }
  
  .drawer-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  
  .drawer-menu li {
    border-bottom: 1px solid #eee;
  }
  
  .drawer-menu a {
    display: block;
    padding: 15px 20px;
    text-decoration: none;
    color: #0333d1;
    font-weight: bold;
    font-size: 16px;
  }

  .close-btn {
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 30px;
    background: none;
    border: none;
    cursor: pointer;
    line-height: 1;
  }

  /*fv-------------------------------------------------------------------------------*/  
  .fv{
    position: relative;
  }

  .fukidasi{
    position: absolute;
    top: 12%;
    left: 3%;
    width: 144px;
    animation: pulse 1.6s ease-in-out infinite;
  }
  @media screen and (max-width: 768px){
    .fukidasi{
      position: absolute;
      top: 12%;
      left: 3%;
      width: 24%;
    }
  }

  /*cta-------------------------------------------------------------------------------*/

  .cta-content{
    position: relative;
  }

  .cta-area{
    position: absolute;
    top: 0%;
    left: 2%;
  }
  

  .cta-area2{
    position: absolute;
    top: 83%;
    left: 4%;
  }

  .cta-back{
    width: 98%;
    filter: drop-shadow(4px 4px 14px rgba(90, 123, 172, 0.6));
  }

  .cta-btn{
    position: absolute;
    top: 39%;
    left: 8%;
    width: 62%;
    filter: drop-shadow(4px 4px 8px rgba(90, 172, 124, 0.6));
    animation: pulse 1.6s ease-in-out infinite;
}

/* 拡大・縮小アニメーション */
@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.08);
    }
    100% {
        transform: scale(1);
    }
}

/* 時間*/
#time {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center; 
  position: absolute;
  top: 16%;
  left: 1%;
  width: 100%;
}

#time002{
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center; 
  position: absolute;
  top: 16%;
  left: 1%;
  width: 100%;
}

#time003{
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center; 
  position: absolute;
  top: 16%;
  left: 1%;
  width: 100%;
}

.blinking {
  color: #fff;
  font-weight: bold;
  font-size: 24px;
  text-align: center;
  line-height: 1.5;
  animation: blink 1.2s infinite;
}

@media screen and (max-width: 768px){
  .blinking {
    font-size: 15px;
    font-weight: 400;
  }
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

.highlight-time{
  color: #ffcc00;
}

  /*slider-------------------------------------------------------------------------------*/
  .slider {
    width: 80%;
    margin: 0 auto;
  }
  
  .slider img {
    width: 100%;
    display: block;
  }
  
  /* 矢印共通 */
  .slick-prev,
  .slick-next {
    width: 30px;
    height: 60px;
    z-index: 10;
  }
  
  /* デフォルト矢印を消す */
  .slick-prev:before,
  .slick-next:before {
    content: "";
  }
  
  /* 前へ */
  .slick-prev {
    left: -26px;
    background: url("../img/prev.png") no-repeat center / contain;
  }
  
  /* 次へ */
  .slick-next {
    right: -26px;
    background: url("../img/next.png") no-repeat center / contain;
  }

  .slider .slick-slide {
    margin: 0 10px; /* 余白の量を調整 */
  }
  
  /* はみ出た分を内側に戻す */
  .slider .slick-list {
    margin: 0 -10px;
  }

  .slide-content {
    position: relative; /* ← 基準を作る */
  }
  
  .slide-wrap {
    position: absolute;
    top: 20%;            /* ← 上から5% */
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    z-index: 10;        /* ← 画像より前面に */
  }

  .slick-dots li button:before{
    font-size: 10px;
    color: #0b369b;
  }
  .slick-dots li.slick-active button:before{
    color: #0b369b;
  }
  .slick-dots{
    bottom: -30px;
  }

  /* 前へ */
.slick-prev,
.slick-prev:hover,
.slick-prev:focus {
  left: -26px;
  background: url("../img/prev.png") no-repeat center / contain;
  outline: none;
}

/* 次へ */
.slick-next,
.slick-next:hover,
.slick-next:focus {
  right: -26px;
  background: url("../img/next.png") no-repeat center / contain;
  outline: none;
}

/*slider2-----------------------------*/

  .slide-wrap2 {
    position: absolute;
    top: 16%;            /* ← 上から5% */
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    z-index: 10;        /* ← 画像より前面に */
  }

  .slide-content2 {
    position: relative; /* ← 基準を作る */
  }

  .slide-wrap2 .slider img{
    padding-right: 6px;
  }

  /* 前へ */
  .slide-wrap2 .slick-prev {
    left: -30px;
    background: url("../img/prev.png") no-repeat center / contain;
  }
  
  /* 次へ */
  .slide-wrap2 .slick-next {
    right: -30px;
    background: url("../img/next.png") no-repeat center / contain;
  }

  .slide-wrap2 .slick-dots li button:before{
    font-size: 10px;
    color: #ffffff;
  }
  .slide-wrap2 .slick-dots li.slick-active button:before{
    color: #ffffff;
  }
  
/*slider3-----------------------------*/
  
.slide-wrap3 {
    position: absolute;
    top: 0%;            /* ← 上から5% */
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    z-index: 10;        /* ← 画像より前面に */
  }

  .slide-content3 {
    position: relative; /* ← 基準を作る */
  }

  .slide-wrap3 .slider img{
    padding: 10px;
    filter: drop-shadow(4px 4px 5px rgba(45, 75, 119, 0.2));
  }

    /* 前へ */
  .slide-wrap3 .slick-prev {
    left: -32px;
    background: url("../img/prev.png") no-repeat center / contain;
  }
  
  /* 次へ */
  .slide-wrap3 .slick-next {
    right: -32px;
    background: url("../img/next.png") no-repeat center / contain;
  }

  .slide-wrap3 .slick-prev,
  .slide-wrap3 .slick-next {
    width: 30px;
    height: 30px;
    z-index: 10;
  }

  /*cta3-----------------------------------------------------*/
  .cta3-area{
    position: relative;
  }




  /*QA-----------------------------------------------------*/
.qa{
    background-color: #e9f2ff;
  }

  .qattl{
    width: 50%;
    padding: 7% 0 2% 0;
    margin: 0 auto;
  }
  
  .accordion {
    overflow: hidden;
    padding: 2% 3% 9% 3%;
  }

  
  .accordion-item {
    border-top: 1px solid #767676;
  }
  
  .accordion-item:first-child {
    border-top: none;
  }
  
  .accordion-header {
    padding: 1rem;
    cursor: pointer;
    transition: background 0.3s;
    display: flex;
    align-items: center;
    font-weight: 600;
    font-size: 1.1rem;
  }
  
  .answer-text {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    line-height: 1.6;
}

.answer-text span{
  background-color: #fff;
  padding: 5%;
}
  
  .accordion-header::after {
    content: '＋';
    margin-left: auto;
    transition: transform 0.3s;
    font-weight: bold;
    padding-left: 8px;
  }
  
  .accordion-item.active .accordion-header::after {
    content: '－';
  }
  
  .q-icon {
      width: 9%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-right: 0.75rem;
      flex-shrink: 0;
          margin-top: 5px;
  }
  
  .accordion-content {
    max-height: 0;
    overflow: hidden;
    padding: 0 1rem;
    color: #444;
    transition: max-height 0.4s ease, padding 0.3s ease;
    font-weight: bold;
    font-size: 1rem;
  }
  
  .accordion-item.active .accordion-content {
    max-height: 300px; /* 適宜調整 */
    padding: 1rem;
  }
  
  .a-icon {
      width: 9%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-right: 0.75rem;
      flex-shrink: 0;
          margin-top: 5px;
  }

    /*footer-----------------------------------------------------*/
    footer{
      background: linear-gradient(90deg, #3ea6e4, #0049ee);
      padding: 20px;
    }
    footer a{
      color: #fff !important;
      font-size: 16px;
      text-decoration: none;
      padding: 1rem;
      display: block;
      text-align: center;
    }


/*tuiju-----------------------------------------------------*/
/*tuiju-----------------------------------------------------*/
.fixed-button {
  position: fixed;
  bottom: 0;
  width: 100%;
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(10px);
  padding: 10px 10px 4px 10px;
  justify-content: center;
  gap: 5px;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.25);
  transition: opacity 0.3s ease;
  z-index: 1000;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

@media screen and (min-width: 768px){
.fixed-button {
  background: none;
  backdrop-filter: none;
  box-shadow: none;
  left:39%;
}}

.fixed-button img {
transition: transform 0.2s ease;
}

.fixed-button img:hover {
transform: scale(1.1);
cursor: pointer;
}

.hidden {
opacity: 0;
pointer-events: none;
}

@media screen and (min-width:768px){
   .fixed-button {
      text-align: center;
      margin: 0 auto;
      gap: 23px;
      padding: 12px 43px;
   }
   .fixed-button img {
   }
}

.image{
  width: 66%;
  display: block;
  margin: 0 auto;
  padding-bottom: 4%;
}

@media screen and (min-width:768px){
.image{
  width: 16%;
  margin: 0 auto;
  padding-bottom: 2%;
}}

/*info-----------------------------------------------------*/
    .wrapper-info{
      width: 600px;
      max-width: 100%; /* スマホ対応 */
      margin: 0 auto;  /* 中央寄せ */
      background: #fff; /* 中身は白 */
  }

  h1{
    background: linear-gradient(90deg, #3ea6e4, #0049ee);
    color: #fff;
    text-align: center;
    padding: 5%;
    margin-bottom: 5%;
    font-size: 30px;
  }

  h3{
    color: #0049ee;
    font-weight: bold;
    font-size: 20px;
    background-color: #edf3ff;
    padding: 10px;
  }

  .text{
    padding: 10px 2%;
    margin: 0 0 4% 0;
    font-size: 16px;
    font-weight: bold;
    color: #444;
  }

  .info{
    padding: 4%;
  }

