/* =========================================================
   AIO Insights LP only
========================================================= */

/* =========================================================
   HERO：縦幅（戦略コンサル寄せ）
========================================================= */
.bz-hero{
  padding-top: 100px;
  padding-bottom: 120px;
}
@media (max-width: 960px){
  .bz-hero{
    padding-top: 70px;
    padding-bottom: 80px;
  }
}

/* HERO 2カラム（PC: 左コピー／右モック、SP: 縦積み） */
.bz-hero__grid{
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 22px;
  align-items: start;
}
@media (max-width: 960px){
  .bz-hero__grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .bz-hero__mock{
    margin-top: 10px;
  }
}

/* =========================================================
   HERO：ベース
========================================================= */
.bz-hero__declaration{
  grid-column: 1 / -1;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(215,225,234,.22);
  border-radius: 14px;
  padding: 18px 18px;
  backdrop-filter: blur(2px);
}

.bz-hero__kicker{
  margin: 0 0 10px;
  color: #D7E1EA;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .10em;
  line-height: 1.2;
}

.bz-hero__title{
  margin: 0;
  color: #fff;
  font-weight: 900;
  font-size: 38px;
  line-height: 1.2;
  letter-spacing: .01em;
}

.bz-hero__subTitle{
  margin-top: 14px;
  color: #D7E1EA;
  font-size: 16px;
  line-height: 1.65;
  opacity: .9;
  font-weight: 500;
}
.bz-hero__subTitle strong{
  color: #fff;
  font-weight: 900;
}

@media (max-width: 960px){
  .bz-hero__declaration{
    padding: 16px 16px;
  }
  .bz-hero__title{
    font-size: 32px;
  }
  .bz-hero__subTitle{
    font-size: 15.5px;
  }
}

/* =========================================================
   HERO：コピー周り
========================================================= */
.bz-hero__bullets{
  margin: 10px 0 10px 1.2em;
  padding: 0;
  color: #D7E1EA;
  line-height: 1.9;
}
.bz-hero__bullets li{
  margin: 2px 0;
}

.bz-hero__leadKey{
  display: inline-block;
  font-weight: 900;
  color: #fff;
  opacity: .98;
}

.bz-hero__lead{
  margin: 8px 0 10px;
}
.bz-hero__price{
  margin: 8px 0 12px;
  color: #D7E1EA;
  font-size: 14px;
  line-height: 1.7;
  font-weight: 700;
}
.bz-hero__price strong{
  color: #fff;
  font-weight: 900;
}

.bz-hero__cta{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.bz-hero__cta .btn{
  box-shadow: 0 10px 24px rgba(0,0,0,.16);
}
.bz-hero__cta .btn:active{
  transform: translateY(1px);
}

.bz-hero__purchaseNote{
  margin: 10px 0 0;
  color: #D7E1EA;
  font-size: 12.5px;
  line-height: 1.7;
  opacity: .95;
}

@media (max-width: 960px){
  .bz-hero__leadKey{
    margin-bottom: 2px;
  }
}

/* =========================================================
   右：モック
========================================================= */
.bz-hero__mock{
  background: #ffffff0f;
  border: 1px solid rgba(215,225,234,.22);
  border-radius: 14px;
  padding: 12px;
  backdrop-filter: blur(2px);
}
.bz-hero__mock img{
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
}
.bz-hero__mockTitle{
  margin: 0 0 8px;
  color: #fff;
  font-weight: 900;
  font-size: 14px;
}
.bz-hero__mockTitle small{
  font-size: 12px;
  font-weight: 600;
  opacity: .75;
}
.bz-hero__mockNote{
  margin: 8px 0 0;
  color: #D7E1EA;
  font-size: 12.5px;
  line-height: 1.6;
}
.bz-hero__mockHint{
  margin: 8px 0 0;
  color: #D7E1EA;
  font-size: 12.5px;
  line-height: 1.6;
  opacity: .95;
}

/* =========================================================
   新セクション：まず決める
========================================================= */
.bz-decide{
  padding-top: 8px;
}
.bz-decide__lead{
  color: var(--c-muted);
  line-height: 1.95;
}
.bz-decide__lead strong{
  color: #0F253E;
  font-weight: 900;
}
.bz-decideCard{
  position: relative;
  overflow: hidden;
}
.bz-decideCard__num{
  position: absolute;
  top: 12px;
  right: 14px;
  font-weight: 900;
  font-size: 18px;
  color: rgba(15,37,62,.35);
}
.bz-decideCard__note{
  margin-top: 10px;
  color: #657487;
  font-size: 13.5px;
  line-height: 1.85;
}
.bz-decide__detail{
  background: #f6fbfd;
  border: 1px solid #e2edf2;
  border-radius: 12px;
  padding: 12px 14px;
  box-shadow: 0 6px 14px rgba(16,42,67,.03);
}
.bz-decide__detail summary{
  cursor: pointer;
  font-weight: 900;
  color: #0F253E;
  list-style: none;
}
.bz-decide__detail summary::-webkit-details-marker{
  display: none;
}
.bz-decide__detailBody{
  margin-top: 10px;
  color: var(--c-muted);
  font-size: 14px;
  line-height: 1.9;
}
.bz-decide__detailBody ul{
  margin: 0 0 0 1.2em;
}
.bz-decide__detailBody li{
  margin: 4px 0;
}

/* =========================================================
   Pricing（単発のみ：中央寄せの1カード）
========================================================= */
.bz-price{
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: 12px;
  padding: 18px 18px;
  box-shadow: 0 6px 14px rgba(16,42,67,.04);
}
.bz-price__tag{
  display: inline-block;
  background: #f6fbfd;
  border: 1px solid #e2edf2;
  color: #0F253E;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12.5px;
  font-weight: 900;
}
.bz-price__yen{
  font-size: 26px;
  font-weight: 900;
  color: #0F253E;
  margin: 10px 0 6px;
  letter-spacing: .02em;
}
.bz-price__tax{
  font-size: 13px;
  font-weight: 900;
  color: #0F253E;
  opacity: .85;
  margin-left: 6px;
}
.bz-price__note{
  margin: 0;
  color: var(--c-muted);
  font-size: 14px;
  line-height: 1.9;
}
.bz-priceSingleWrap{
  max-width: 720px;
  margin: 16px auto 0;
}
.bz-price__cta{
  margin-top: 14px;
}
.bz-price__cta .btn{
  margin-right: 8px;
  margin-bottom: 8px;
}
.bz-price__legal{
  margin-top: 10px;
  color: #657487;
  font-size: 12.5px;
  line-height: 1.8;
}
.bz-price__legal a{
  color: #657487;
  text-decoration: underline;
}

/* =========================================================
   noteBox / fit cards
========================================================= */
.bz-noteBox{
  background: #f6fbfd;
  border: 1px solid #e2edf2;
  border-radius: 12px;
  padding: 16px 18px;
  box-shadow: 0 6px 14px rgba(16,42,67,.03);
}
.bz-noteBox h3{
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 900;
  color: #0F253E;
}
.bz-noteBox p{
  margin: 0 0 10px;
  color: var(--c-muted);
  font-size: 14px;
  line-height: 1.85;
}
.bz-noteBox ul,
.bz-noteBox ol{
  margin: 0 0 0 1.2em;
  color: var(--c-muted);
  font-size: 14px;
  line-height: 1.85;
}
.bz-noteBox li{
  margin: 0 0 8px;
}

.bz-fitGrid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 960px){
  .bz-fitGrid{
    grid-template-columns: 1fr;
  }
}
.bz-fitCard{
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: 12px;
  padding: 16px 18px;
  box-shadow: 0 6px 14px rgba(16,42,67,.04);
}
.bz-fitCard h3{
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 900;
  color: #0F253E;
}
.bz-fitCard ul{
  margin: 0 0 0 1.2em;
  color: var(--c-muted);
  font-size: 14px;
  line-height: 1.85;
}
.bz-fitCard--risk{
  border-color: #f1d7d7;
  box-shadow: 0 6px 14px rgba(120,24,24,.06);
}
.bz-fitCard--risk h3{
  color: #6b1a1a;
}

/* =========================================================
   支払い方法のミニ比較
========================================================= */
.bz-payMini{
  max-width: 980px;
  margin: 18px auto 0;
}
.bz-payMini__grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 960px){
  .bz-payMini__grid{
    grid-template-columns: 1fr;
  }
}
.bz-payMini__card{
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: 12px;
  padding: 16px 18px;
  box-shadow: 0 6px 14px rgba(16,42,67,.04);
}
.bz-payMini__card h3{
  margin: 0 0 6px;
  font-size: 15.5px;
  font-weight: 900;
  color: #0F253E;
}
.bz-payMini__badge{
  display: inline-block;
  margin-left: 8px;
  font-size: 12px;
  font-weight: 900;
  padding: 3px 8px;
  border-radius: 999px;
  background: #f6fbfd;
  border: 1px solid #e2edf2;
  color: #0F253E;
  vertical-align: middle;
}
.bz-payMini__lead{
  margin: 0 0 10px;
  color: var(--c-muted);
  font-size: 13.5px;
  line-height: 1.8;
}
.bz-payMini__note{
  margin-top: 10px;
  color: #657487;
  font-size: 12.5px;
  line-height: 1.8;
}
.bz-payMini__key{
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #f6fbfd;
  border: 1px solid #e2edf2;
  color: #0F253E;
  font-size: 13px;
  line-height: 1.75;
  font-weight: 900;
}

/* =========================================================
   Modal (lightbox)
========================================================= */
.bz-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}
.bz-modal.is-open{
  display: block;
}
.bz-modal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.72);
}
.bz-modal__dialog{
  position: relative;
  max-width: min(1100px, 92vw);
  max-height: 86vh;
  margin: 7vh auto 0;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 20px 80px rgba(0,0,0,.35);
}
.bz-modal__img{
  width: 100%;
  height: auto;
  display: block;
  max-height: 86vh;
  object-fit: contain;
}
.bz-modal__close{
  position: absolute;
  top: 10px;
  right: 12px;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 0;
  background: rgba(15,37,62,.92);
  color: #fff;
  font-size: 20px;
  line-height: 36px;
  cursor: pointer;
}
.bz-modalTrigger{
  display: block;
  cursor: zoom-in;
}
.bz-modalTrigger:focus-visible{
  outline: 2px solid rgba(0,176,185,.55);
  outline-offset: 4px;
  border-radius: 12px;
}

/* =========================================================
   放置リスク
========================================================= */
.bz-urgencyLine{
  margin: 18px 0 0;
}
.bz-urgencyLine__box{
  box-sizing: border-box;
  border: 1px solid rgba(11,31,51,.14);
  border-top-width: 6px;
  border-bottom-width: 6px;
  border-left-width: 6px;
  border-left-color: rgba(11,31,51,.28);
  border-right-width: 3px;
  border-right-color: rgba(11,31,51,.22);
  background: rgba(11,31,51,.04);
  border-radius: 14px;
  padding: 18px 18px 14px;
  box-shadow: inset -1px 0 0 rgba(11,31,51,.10);
}
.bz-urgencyLine .bz-wrap{
  overflow: visible;
}
.bz-urgencyLine__kicker{
  margin: 0 0 6px;
  font-weight: 700;
  letter-spacing: .02em;
  color: rgba(11,31,51,.72);
}
.bz-urgencyLine__title{
  margin: 0 0 10px;
  font-size: 20px;
  line-height: 1.4;
  font-weight: 800;
  color: #0b1f33;
}
.bz-urgencyLine__desc{
  margin: 0 0 12px;
  line-height: 1.9;
  color: #2b3a4b;
}
.bz-urgencyLine__note{
  background: #fff;
  border: 1px solid rgba(11,31,51,.12);
  border-radius: 12px;
  padding: 10px 12px;
  line-height: 1.85;
  color: #0b1f33;
}
.bz-urgencyLine__cta{
  margin-top: 12px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.bz-urgencyLine__fine{
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.7;
  color: rgba(11,31,51,.62);
}

/* =========================================================
   HERO：最終版
========================================================= */
.bz-hero__declaration--light{
  background: rgba(245,248,252,.96);
  border: 1px solid rgba(15,37,62,.14);
  border-left: 6px solid rgba(15,37,62,.32);
  border-radius: 16px;
  box-shadow: 0 16px 36px rgba(11,31,51,.16);
  backdrop-filter: none;
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: none;
  justify-self: stretch;
  box-sizing: border-box;
  padding: 28px 30px;
  margin: 0 0 32px 0;
}
.bz-hero__declaration--light::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,.55),
    rgba(255,255,255,0)
  );
  pointer-events: none;
}

.bz-hero__declaration--light .bz-hero__kicker{
  margin-bottom: 10px;
  font-size: 11.5px;
  letter-spacing: .05em;
  font-weight: 700;
  color: rgba(15,37,62,.72);
}

.bz-hero__declaration--light .bz-hero__title{
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  color: #0F253E;
  text-shadow: none;
  font-size: clamp(34px, 3.2vw, 46px);
  line-height: 1.16;
  letter-spacing: -0.03em;
  font-weight: 800;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.bz-hero__declaration--light .bz-hero__title span{
  display: inline;
  color: #0b1f33;
}

.bz-hero__declaration--light .bz-hero__subTitle{
  margin-top: 12px;
  max-width: 72ch;
  font-size: 14px;
  line-height: 1.8;
  color: rgba(15,37,62,.74);
  opacity: 1;
}
.bz-hero__declaration--light .bz-hero__subTitle strong{
  font-weight: 800;
  color: #0F253E;
}

.bz-hero__copy{
  padding-right: 8px;
}
.bz-hero__mock{
  transform: translateY(4px);
  margin-left: 8px;
  box-shadow: 0 12px 28px rgba(11,31,51,.12);
}

.bz-hero__lead{
  margin: 4px 0 10px;
  font-size: 14px;
  line-height: 1.8;
}
.bz-hero__leadKey{
  font-weight: 800;
}

.bz-hero__bullets{
  margin: 8px 0 10px 1.15em;
  font-size: 13px;
  line-height: 1.8;
}
.bz-hero__bullets li{
  margin: 1px 0;
}

.bz-hero__price{
  margin: 8px 0 12px;
  font-size: 12.8px;
  line-height: 1.7;
}

.bz-hero__purchaseNote{
  margin-top: 10px;
  font-size: 11.5px;
  line-height: 1.7;
  opacity: .88;
}

.bz-hero__cta{
  gap: 10px;
}
.bz-hero__cta .btn{
  box-shadow: 0 8px 18px rgba(0,0,0,.14);
}

/* =========================================================
   カード共通
========================================================= */
.card{
  background: #fff;
  border: 1px solid #e2edf2;
  border-radius: 12px;
  padding: 16px 18px;
  box-shadow: 0 6px 14px rgba(16,42,67,.04);
  box-sizing: border-box;
}
.card h3{
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 900;
  color: #0F253E;
  line-height: 1.6;
}
.card p{
  margin: 0;
  color: var(--c-muted);
  font-size: 14px;
  line-height: 1.9;
}

/* =========================================================
   3カラム / 2カラム
========================================================= */
.bz-cards3{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
}
.bz-cards2{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 960px){
  .bz-cards3{
    grid-template-columns: 1fr;
  }
  .bz-cards2{
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   タブレット・SP
========================================================= */
@media (max-width: 960px){
  .bz-hero__declaration--light{
    padding: 20px 16px;
    margin-bottom: 18px;
    border-radius: 14px;
  }

  .bz-hero__declaration--light .bz-hero__title{
    font-size: 30px;
    line-height: 1.22;
    letter-spacing: -0.02em;
    white-space: normal;
    max-width: none;
  }

  .bz-hero__declaration--light .bz-hero__title span{
    display: inline;
  }

  .bz-hero__declaration--light .bz-hero__subTitle{
    max-width: none;
    font-size: 13.5px;
    line-height: 1.75;
  }

  .bz-hero__copy{
    padding-right: 0;
  }

  .bz-hero__mock{
    transform: none;
    margin-left: 0;
  }

  .bz-hero__lead{
    font-size: 13.5px;
  }

  .bz-hero__bullets{
    font-size: 12.5px;
  }

  .bz-hero__price{
    font-size: 12px;
  }
}

/* =========================================================
   AIO Insightsの特徴
========================================================= */
.bz-features__lead{
  margin: 10px 0 0;
  color: var(--c-muted);
  font-size: 16px;
  line-height: 1.9;
}
.bz-features__lead strong{
  color: #0F253E;
  font-weight: 900;
}

.bz-featureList{
  margin-top: 20px;
}

.bz-featureItem{
  padding: 0 0 22px;
  margin: 0 0 22px;
  border-bottom: 1px solid #e2edf2;
}

.bz-featureItem:last-child{
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.bz-featureItem h3{
  margin: 0 0 10px;
  color: #0aa7b8;
  font-size: 24px;
  line-height: 1.5;
  font-weight: 900;
  letter-spacing: -.01em;
}

.bz-featureItem p{
  margin: 0;
  color: var(--c-muted);
  font-size: 16px;
  line-height: 1.95;
}

.bz-features__cta{
  margin-top: 22px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* タブレット */
@media (max-width: 960px){
  .bz-features__lead{
    font-size: 15px;
    line-height: 1.85;
  }

  .bz-featureItem{
    padding: 0 0 18px;
    margin: 0 0 18px;
  }

  .bz-featureItem h3{
    font-size: 19px;
    line-height: 1.55;
  }

  .bz-featureItem p{
    font-size: 14.5px;
    line-height: 1.9;
  }
}

/* スマホ */
@media (max-width: 640px){
  .bz-features__lead{
    font-size: 14px;
    line-height: 1.8;
  }

  .bz-featureItem h3{
    font-size: 17px;
    line-height: 1.55;
  }

  .bz-featureItem p{
    font-size: 14px;
    line-height: 1.85;
  }

  .bz-features__cta{
    gap: 8px;
  }
}

/* =========================================================
   CTA1本化後の微調整
========================================================= */
.bz-hero__cta{
  margin-top: 18px;
  gap: 0;
}

.bz-hero__cta .btn{
  min-width: 280px;
  font-size: 16px;
  padding: 14px 22px;
}

.bz-hero__purchaseNote{
  margin-top: 8px;
}

/* primary / ghost の強弱 */
.btn-primary{
  font-weight: 700;
  letter-spacing: .02em;
}

.btn-ghost{
  opacity: .85;
}

.btn-ghost:hover{
  opacity: 1;
}

/* =========================================================
   summary-value セクション
========================================================= */
#summary-value{
  background: #f8fbff;
  padding: 60px 0;
}

#summary-value h2{
  margin-bottom: 10px;
}

#summary-value .card{
  border: 1px solid #e3edf7;
  transition: all .2s ease;
}

#summary-value .card:hover{
  box-shadow: 0 8px 20px rgba(0,0,0,.05);
  transform: translateY(-2px);
}

/* =========================================================
   APPLYセクションの補足ボックス
========================================================= */
#apply .bz-noteBox{
  background: #f9fbfd;
  border: 1px solid #e3edf7;
  padding: 18px 20px;
  border-radius: 8px;
}

#apply .bz-noteBox h3{
  margin-bottom: 10px;
}

#apply .bz-noteBox div{
  line-height: 1.8;
}

/* =========================================================
   最下部CTA
========================================================= */
.bz-cta{
  background: linear-gradient(135deg, #1e3c72, #2a5298);
  color: #fff;
}

.bz-cta .btn-primary{
  background: #fff;
  color: #1e3c72;
  font-weight: 700;
}

.bz-cta .btn-primary:hover{
  background: #f1f5f9;
}

/* =========================================================
   セクション余白の微調整
========================================================= */
section{
  padding: 60px 0;
}

h2{
  margin-bottom: 12px;
}

/* =========================================================
   SPでの最終調整
========================================================= */
@media (max-width: 960px){
  .bz-hero__cta .btn{
    min-width: 0;
    width: 100%;
  }
}