@charset "utf-8";

/* ==========================================================================
   lp.css / subscriptionLp.css の後に読み込む
   案件ごとに変わる値は :root の変数で上書きすること
     :root{
       --lp-bg:        url(/img/www/lp/{ 画像名 });　背景
       --lp-cta-img:   url(/img/www/lp/{ 画像名 });　mobile固定ボタン
     }
   ========================================================================== */

:root{
  /* 全体 */
  --lp-width: 600px; /* コンテンツ幅 もっと狭くと言われたら調整する*/
  --lp-bg: none;

  /* スマホ固定ボタン */
  --lp-cta-img: none;
  --lp-cta-width: 46%;
  --lp-cta-max: 220px;
  --lp-cta-right: 12px;
  --lp-cta-bottom: 10px;

  /* 挙動 */
  --lp-fade: .3s;

  /* FAQ配色 */
  --faq-bg-top:    #061d43;
  --faq-bg-bottom: #03142f;
  --faq-panel:     #102745;
  --faq-border:    #294867;
  --faq-accent:    #18a9ec;
  --faq-icon:      #64c7f6;
  --faq-text:      #ffffff;
  --faq-answer:    #c1d1e2;
}

/* ==========================================================================
   ベース
   ========================================================================== */

html{
  scroll-behavior: smooth;
}

body{
  background-image: var(--lp-bg);
  background-attachment: fixed;
  background-size: cover;
  background-position: center;
}

/* ==========================================================================
   コンテンツ幅
   ========================================================================== */

.container-lp,
.customer_input{
  max-width: var(--lp-width);
  margin-left: auto;
  margin-right: auto;
}
.container-lp{
  padding: 0;
  position: relative;
  z-index: 1;
}
.container-lp h1,
.container-lp p{
  margin: 0;
}
.container-lp img{
  display: block;
  width: 100%;
  height: auto;
}

/* ==========================================================================
    サイド画像 PCのみ
   ========================================================================== */
.hero{
  position: fixed;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
  transition: opacity .3s ease, visibility .3s;
}
.hero.is-hidden{
  opacity: 0;
  visibility: hidden;
}

.hero__side{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: calc((100vw - var(--lp-width)) / 2);
  display: flex;
  justify-content: center;
  align-items: center;
}
.hero__side--left{
  left: 0;
}
.hero__side--right{
  right: 0;
}

.hero__side--left img{
  display: block;
  width: 46%;
  max-width: 240px;
  height: auto;
}
.hero__card{
  position: relative;
  width: 92%;
  max-width: 480px;
}
.hero__card img{
  display: block;
  width: 100%;
  height: auto;
}

.hero__btn{
  position: absolute;
  left:   13.98%;
  top:    65.37%;
  width:  71.33%;
  height: 17.41%;
  pointer-events: auto;
  cursor: pointer;
  border-radius: 999px;
}

@media (max-width: 1239px){
  .hero{ display: none; }
}
/* 座標合わせ用。ページ側で .hero__btn に付けると形が見える
   .hero__btn.is-debug{ background: rgba(255,0,0,.35); } */

/* ==========================================================================
   スマホ固定ボタン画像
   ========================================================================== */

.mobile-cta{
  display: none;
}

@media (max-width: 767px){
  .hero{
    display: none;
  }
  .totop-area{
    display: none !important;
  }

  .mobile-cta{
    display: block;
    position: fixed;
    right: var(--lp-cta-right);
    bottom: calc(var(--lp-cta-bottom) + env(safe-area-inset-bottom));
    width: var(--lp-cta-width);
    max-width: var(--lp-cta-max);
    z-index: 100;
    transition: opacity var(--lp-fade) ease, visibility var(--lp-fade);
  }
  .mobile-cta img{
    display: block;
    width: 100%;
    height: auto;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,.25));
  }
  .mobile-cta.is-hidden{
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

/* ==========================================================================
   FAQ アコーディオン
   ========================================================================== */

.faq-section{
  background: linear-gradient(180deg, var(--faq-bg-top) 0%, var(--faq-bg-bottom) 100%);
  padding: 28px 14px 26px;
  color: var(--faq-text);
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Noto Sans JP", Arial, sans-serif;
}
.faq-head{
  margin: 0 10px 26px;
}
.faq-index{
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 12px;
}
.faq-index .num{
  color: var(--faq-accent);
  font-size: 31px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: .02em;
}
.faq-index .label{
  color: var(--faq-accent);
  font-size: 12px;
  letter-spacing: .04em;
}
.faq-title{
  margin: 0;
  font-size: 30px;
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: .01em;
  color: var(--faq-text);
}
.faq{
  display: grid;
  gap: 9px;
}
.faq details{
  background: var(--faq-panel);
  border: 1px solid var(--faq-border);
  border-radius: 11px;
  overflow: hidden;
}
.faq summary{
  list-style: none;
  cursor: pointer;
  position: relative;
  padding: 17px 46px 17px 18px;
  font-size: 13px;
  line-height: 1.45;
  font-weight: 800;
}
.faq summary::-webkit-details-marker{
  display: none;
}
.faq summary::after{
  content: "+";
  position: absolute;
  right: 17px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--faq-icon);
  font-size: 27px;
  line-height: 1;
  font-weight: 500;
}
.faq details[open] summary::after{
  content: "−";
}
.faq .answer{
  padding: 0 18px 16px;
  color: var(--faq-answer);
  font-size: 11px;
  line-height: 1.8;
}

@media (prefers-reduced-motion: reduce){
  html{
    scroll-behavior: auto;
  }
  .hero,
  .mobile-cta{
    transition: none;
  }
}
/* ==========================================================================
   オファーブロック
   ========================================================================== */

.offer-wrap{
  background: #031530;
  padding: 3.3% 0 4%;
}

.offer-wrap-first{
  background: linear-gradient(to bottom, #01071f, #00000a);
  padding: 3.3% 0 4%;
}

.offer{
  width: 92.5%;
  margin: 0 auto;
  background: #eef5ff;
  border-radius: 14px;
  overflow: hidden;
  padding-bottom: 2.6%;
}
.offer__top{
  display: block;
  width: 100%;
  height: auto;
}
.offer__cta{
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 88.3%;
  aspect-ratio: 817 / 121;
  margin: 0 auto;
  border-radius: 2.9%/19.8%;
  background: linear-gradient(90deg,#00b5fc 0%,#0073f0 40%,#0b57e9 75%,#0b57e9 100%);
  color: #fff;
  text-decoration: none;
  font-size: 25px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1;
  white-space: nowrap;
}
.offer__cta strong{
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: 1.52em;
  font-weight: 501;
  letter-spacing: .01em;
  margin-right: .1em;
}
.offer__cta:hover,
.offer__cta:focus{
  color: #fff;
  text-decoration: none;
}
.offer__arrow{
  position: absolute;
  right: 4.9%;
  font-size: 1.3em;
  font-weight: 400;
  animation: offerArrow 1.4s ease-in-out infinite;
}
.offer__cta::before{
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: -32%;
  width: 24%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.32), transparent);
  transform: skewX(-24deg);
  animation: offerShine 3.6s ease-in-out infinite;
}
.offer__notes{
  margin-top: 1.8%;
  text-align: center;
  color: #29405d;
  font-size: 14px;
  line-height: 1.55;
}
@keyframes offerArrow{
  0%,100%{ transform: translateX(0); }
  50%    { transform: translateX(4px); }
}
@keyframes offerShine{
  0%,14% { left: -32%; }
  38%    { left: 110%; }
  100%   { left: 110%; }
}
@media (max-width: 767px){
  .offer__cta{ font-size: 4.9vw; }
  .offer__notes{ font-size: 2.4vw; }
}
@media (prefers-reduced-motion: reduce){
  .offer__cta::before,
  .offer__arrow{ animation: none; }
}