@charset "utf-8";
/**
 * 店舗ページの LINE 導線（inc/store-line-cta.php とセット）
 * 店舗ページ（LINE URL がある店舗）でのみ読み込まれる
 */

/* ---------- ①② 追加の LINE ボタン ---------- */
.bt-cta-btn {
  width: min(87vw, 435px);
  margin: 0 auto;
}

.bt-cta-btn a {
  width: 100%;
}

/* ① ファーストビュー：既存の「料金プラン」「習える技」の直下
 * 通常の .store-fv は絶対配置で中央寄せのため、ボタンを足すと上下がはみ出す。
 * このCSSは店舗ページでしか読み込まないので、ここで通常配置に戻して
 * カバーの高さを中身に合わせて伸ばす（店舗ページ以外のFVは変わらない）。 */
.store-fv {
  position: relative;
  top: auto;
  left: auto;
  transform: none;
  padding: min(6vw, 40px) 0;
}

.bt-cta-btn--fv {
  margin-top: min(2.941vw, 15px);
}

/* 文言を1行に収める（店舗名は小さく上に） */
.bt-cta-btn .swell-block-button__link {
  font-size: min(4.6vw, 20px);
  white-space: nowrap;
}

.bt-cta-btn .btn-store-name {
  font-size: min(3.2vw, 14px);
}

/* ② お客様の声の直後 */
.bt-cta-btn--voice {
  margin-top: min(8vw, 50px);
}

/* ---------- ③ ポップアップ ---------- */
.bt-cta-popup[hidden] {
  display: none !important;
}

.bt-cta-popup {
  position: fixed;
  inset: 0;
  z-index: 1000; /* 固定バー #fix_bottom_menu より上、QRモーダル(999999)より下 */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.bt-cta-popup__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  opacity: 0;
  transition: opacity 0.2s ease-out;
}

.bt-cta-popup__panel {
  position: relative;
  width: 100%;
  max-width: 460px;
  padding: 2.2em 1.6em 1.6em;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  text-align: center;
  opacity: 0;
  transform: scale(0.94);
  transition: opacity 0.2s ease-out, transform 0.2s ease-out;
}

.bt-cta-popup.is-open .bt-cta-popup__overlay { opacity: 1; }
.bt-cta-popup.is-open .bt-cta-popup__panel { opacity: 1; transform: none; }

.bt-cta-popup__close {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  background: transparent;
  color: #555;
  font-size: 30px;
  line-height: 44px;
  cursor: pointer;
}

.bt-cta-popup__title {
  margin: 0 0 0.3em;
  font-size: 1.15em;
  font-weight: 700;
  line-height: 1.5;
  color: #333;
}

.bt-cta-popup__price {
  color: #e54141;
  white-space: nowrap;
}

.bt-cta-popup__note {
  margin: 0 0 1.1em;
  font-size: 0.85em;
  color: #e54141;
}

.bt-cta-popup .bt-cta-btn {
  width: 100%;
}

/* スマホ：画面下から出るシート（画面全体は覆わない） */
@media screen and (max-width: 959px) {
  .bt-cta-popup {
    align-items: flex-end;
    padding: 0;
  }

  .bt-cta-popup__panel {
    max-width: none;
    max-height: 33vh;
    overflow-y: auto;
    padding: 1.6em 1.2em calc(1.2em + env(safe-area-inset-bottom));
    border-radius: 16px 16px 0 0;
    transform: translateY(100%);
  }
}
