@charset "UTF-8";
/* =========================================================
   イベントLP雛形（SP 750px カンプ基準）
   --u = カンプ上の1px。画面幅375pxなら 0.5px、PCでは最大1px
   寸法はすべて calc(var(--u) * カンプ上のpx) で書く
   配色は :root の変数だけを変える（チラシ・横断幕から色を拾う）
   ========================================================= */
:root {
  --u: calc(min(100vw, 750px) / 750);
  /* ↓テーマ色（キャンペーンごとに差し替え） */
  /* ブラックフライデー（横断幕の黒×金）。名前は雛形のまま、色だけ差し替え */
  --purple: #1f1a10;
  --purple-d: #0d0b07;
  --orange: #f18d00;
  --yellow: #ffe600;
  --pink: #e5007f;
  --cta: #d40000; /* 予約ボタン（赤） */
  --teal: #1fb4c8;
  --red: #e60012;
  --navy: #1d2c7c;
  --ink: #1e1e1e;
  --white: #fff;
  --cream: #fbf1d3;
  --pale-purple: #f6efdc;
  --pale-pink: #fde4ef;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
  font-weight: 700;
  line-height: 1.5;
  font-feature-settings: "palt";
  color: var(--ink);
  background: #0d0b07 radial-gradient(circle at 50% 0, #5c4815 0, #0d0b07 70%) fixed;
}
h1, h2, h3, p, ul, dl, dd { margin: 0; padding: 0; }
[hidden] { display: none !important; }
ul { list-style: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
small { font-size: inherit; }
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.page {
  position: relative;
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
  background: var(--white);
  overflow: clip; /* hidden だとヘッダーの sticky が効かない */
  box-shadow: 0 0 40px rgba(0, 0, 0, .4);
  padding-bottom: calc(var(--u) * 150); /* 追従CTA分 */
}

/* ---------- 共通 ---------- */
.sec-sub {
  font-size: calc(var(--u) * 26);
  color: var(--pink);
  text-align: center;
}
.sec-sub.is-purple { color: var(--purple); }
.sec-title {
  margin-top: calc(var(--u) * 6);
  font-size: calc(var(--u) * 44);
  font-weight: 900;
  line-height: 1.3;
  text-align: center;
}
.sec-title.is-purple { color: var(--purple); }
.sec-title.is-pink { color: var(--pink); }

.cta { padding: 0 calc(var(--u) * 40); position: relative; }
.cta__sub {
  position: relative;
  z-index: 1;
  width: fit-content;
  margin: 0 auto calc(var(--u) * -18);
  padding: calc(var(--u) * 2) calc(var(--u) * 18);
  font-size: calc(var(--u) * 20);
  color: var(--cta);
  background: var(--white);
  border: calc(var(--u) * 3) solid var(--cta);
  border-radius: 999px;
}
.cta__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--u) * 24);
  width: 100%;
  height: calc(var(--u) * 112);
  padding: 0;
  border: 0;
  font: 900 calc(var(--u) * 40) / 1 "Noto Sans JP", sans-serif;
  color: var(--white);
  background: linear-gradient(#ff3b30, #c80000);
  border-radius: 999px;
  box-shadow: 0 calc(var(--u) * 8) 0 #7a0000;
  cursor: pointer;
  transition: transform .15s, box-shadow .15s;
}
.cta__btn:hover { transform: translateY(calc(var(--u) * 4)); box-shadow: 0 calc(var(--u) * 4) 0 #7a0000; }
.cta__btn:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }
.cta__arrow { font-size: calc(var(--u) * 28); }
@media (prefers-reduced-motion: no-preference) {
  .cta__btn { animation: pulse 2.4s ease-in-out infinite; }
}
@keyframes pulse {
  0%, 100% { scale: 1; }
  50% { scale: 1.03; }
}

/* ---------- ヘッダー ---------- */
.header {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(var(--u) * 96);
  padding: 0 calc(var(--u) * 24) 0 calc(var(--u) * 24);
  background: var(--white);
  box-shadow: 0 2px 6px rgba(0, 0, 0, .08);
}
.header__logo img { height: calc(var(--u) * 76); width: auto; }
/* テキストロゴ（ロゴ画像が無いブランド） */
.header__logo.is-text { display: flex; flex-direction: column; line-height: 1.2; }
.header__logo-main { font-size: calc(var(--u) * 30); font-weight: 900; letter-spacing: .02em; }
.header__logo-sub { font-size: calc(var(--u) * 16); font-weight: 500; color: #555; }
.header__btn {
  display: grid;
  place-items: center;
  width: calc(var(--u) * 180);
  height: calc(var(--u) * 60);
  font-size: calc(var(--u) * 24);
  font-weight: 900;
  color: var(--white);
  background: linear-gradient(#ff3b30, #c80000);
  border-radius: 999px;
}

/* ---------- FV（横断幕レイアウト） ---------- */
/* 横断幕の背景書き出しを基準に、タイトルと日程を%で重ねる（値は scripts/fv_position.py で算出） */
.fv { position: relative; background: #0d0b07; }
.fv__bg { width: 100%; }
.fv__date { position: absolute; }
/* 横断幕の日程枠（店舗ごとに縦横比の違う日程画像を、枠に収めて中央に置く） */
.fv__date { left: 74.368%; top: 1.812%; width: 22.727%; height: 15.082%; display: flex; align-items: center; justify-content: center; }
.fv__date img { width: auto; max-width: 100%; max-height: 100%; }

@media (prefers-reduced-motion: no-preference) {
  .fv__date { animation: pop .6s cubic-bezier(.2, 1.4, .4, 1) both .4s; }
}
@keyframes pop { from { opacity: 0; transform: scale(.8); } to { opacity: 1; transform: none; } }

/* ---------- 予約CTA ---------- */
.fv-cta { padding: calc(var(--u) * 30) 0 calc(var(--u) * 56); background: var(--cream); text-align: center; }
.fv-cta__venue { font-size: calc(var(--u) * 24); font-weight: 900; color: var(--purple); }
.fv-cta__label {
  display: inline-block;
  margin-right: calc(var(--u) * 12);
  padding: 0 calc(var(--u) * 18);
  font-size: calc(var(--u) * 22);
  line-height: calc(var(--u) * 38);
  color: var(--white);
  background: var(--purple);
  border-radius: 999px;
}
.fv-cta__note { margin: calc(var(--u) * 10) 0 calc(var(--u) * 40); font-size: calc(var(--u) * 20); font-weight: 500; color: #666; }

/* ---------- 実績 ---------- */
.record { padding: calc(var(--u) * 30) 0; background: var(--purple-d); }
.record img { width: calc(var(--u) * 710); margin: 0 auto; }

/* ---------- 画像ブロック（チラシのデザイン済みブロック） ---------- */
.imgblock { padding: calc(var(--u) * 40) calc(var(--u) * 20); background: var(--white); }
.imgblock.is-pink { padding: calc(var(--u) * 40) 0 calc(var(--u) * 50); background: var(--pale-pink); }
.imgblock__img { margin: 0 auto; }
.imgblock hgroup + .imgblock__img { margin-top: calc(var(--u) * 24); }
.imgblock__img.is-narrow { width: calc(var(--u) * 580); } /* 縦長ブロックは幅を絞る */

/* ---------- イベント ---------- */
.event {
  padding: calc(var(--u) * 40) calc(var(--u) * 24) calc(var(--u) * 50);
  background: linear-gradient(#3d3112, #0d0b07);
}
.event__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: calc(var(--u) * 40);
  font-weight: 900;
  line-height: 1.3;
  color: var(--yellow);
  -webkit-text-stroke: calc(var(--u) * 8) var(--purple-d);
  paint-order: stroke fill;
}
.event__title-l { font-size: calc(var(--u) * 52); }
.event-card {
  position: relative;
  margin-top: calc(var(--u) * 30);
  padding: calc(var(--u) * 80) calc(var(--u) * 20) calc(var(--u) * 24);
  background: var(--white);
  border-radius: calc(var(--u) * 20);
  overflow: hidden;
}
.event-card__label {
  position: absolute;
  top: 0;
  left: 0;
  width: calc(var(--u) * 190);
  padding: calc(var(--u) * 6) 0;
  font-size: calc(var(--u) * 26);
  font-weight: 900;
  color: var(--white);
  text-align: center;
  background: var(--teal);
  border-radius: 0 0 calc(var(--u) * 20) 0;
}
.event-card__head { display: flex; flex-direction: column; align-items: center; margin-bottom: calc(var(--u) * 20); font-weight: 900; line-height: 1.3; text-align: center; }
.event-card__head-main { font-size: calc(var(--u) * 46); font-weight: 900; }
.event-card__head-main.is-orange { color: var(--orange); }
.event-card__head-main.is-pink { color: var(--pink); font-size: calc(var(--u) * 52); }
.event-card__head-sub { font-size: calc(var(--u) * 34); color: var(--purple); }
.event-card__head-lead { margin-top: calc(var(--u) * 6); font-size: calc(var(--u) * 24); font-weight: 700; color: var(--ink); }
.event-card__note { margin-top: calc(var(--u) * 14); font-size: calc(var(--u) * 20); font-weight: 500; color: #666; text-align: center; }
.event__note { margin-top: calc(var(--u) * 24); font-size: calc(var(--u) * 20); font-weight: 500; color: #d8c8f0; text-align: center; }

/* ---------- うれしいポイント ---------- */
.point { padding: calc(var(--u) * 40) calc(var(--u) * 24) calc(var(--u) * 50); background: var(--pale-purple); }
.point__list { display: grid; gap: calc(var(--u) * 20); margin-top: calc(var(--u) * 24); }

/* ---------- 相談会 ---------- */
.consult { padding: calc(var(--u) * 28) calc(var(--u) * 20) calc(var(--u) * 50); background: var(--teal); }
.consult__head { display: flex; align-items: center; gap: calc(var(--u) * 24); }
.consult__circle {
  flex: none;
  display: grid;
  place-items: center;
  width: calc(var(--u) * 170);
  height: calc(var(--u) * 170);
  font-size: calc(var(--u) * 44);
  font-weight: 900;
  line-height: 1.15;
  color: var(--red);
  text-align: center;
  background: var(--white);
  border: calc(var(--u) * 6) solid var(--red);
  border-radius: 50%;
}
.consult__pre { font-size: calc(var(--u) * 22); color: var(--white); }
.consult__free {
  font-size: calc(var(--u) * 76);
  font-weight: 900;
  line-height: 1.2;
  color: var(--yellow);
  -webkit-text-stroke: calc(var(--u) * 6) var(--ink);
  paint-order: stroke fill;
}
.consult__sub { font-size: calc(var(--u) * 28); font-weight: 900; color: var(--white); }
.consult__img { margin-top: calc(var(--u) * 24); border-radius: calc(var(--u) * 16); }

/* ---------- 最終CTA（フォーム版の .form も同梱） ---------- */
.final { padding: calc(var(--u) * 40) 0 calc(var(--u) * 50); background: var(--cream); text-align: center; scroll-margin-top: 0; }
.final__title { font-size: calc(var(--u) * 44); font-weight: 900; color: var(--purple); }
.final__limit {
  width: fit-content;
  margin: calc(var(--u) * 10) auto 0;
  padding: calc(var(--u) * 2) calc(var(--u) * 30);
  font-size: calc(var(--u) * 26);
  font-weight: 900;
  color: var(--white);
  background: var(--pink);
  border-radius: 999px;
}
.final__price { color: var(--pink); font-weight: 900; line-height: 1.1; }
.final__price-sum { font-size: calc(var(--u) * 40); }
.final__price-num { font-size: calc(var(--u) * 120); letter-spacing: -.02em; }
.final__price-unit { font-size: calc(var(--u) * 48); }
.final__gift { font-size: calc(var(--u) * 38); font-weight: 900; }
.final__note { margin-bottom: calc(var(--u) * 40); font-size: calc(var(--u) * 20); font-weight: 500; color: #666; }

.form {
  display: grid;
  gap: calc(var(--u) * 36);
  margin: 0 calc(var(--u) * 24);
  padding: calc(var(--u) * 40) calc(var(--u) * 32) calc(var(--u) * 50);
  background: var(--white);
  border: calc(var(--u) * 4) solid var(--purple);
  border-radius: calc(var(--u) * 24);
  text-align: left;
}
.form__title {
  margin: calc(var(--u) * -40) calc(var(--u) * -32) 0;
  padding: calc(var(--u) * 14) 0;
  font-size: calc(var(--u) * 34);
  font-weight: 900;
  color: var(--white);
  text-align: center;
  background: var(--purple);
}
.form__label { display: flex; align-items: center; gap: calc(var(--u) * 14); font-size: calc(var(--u) * 27); font-weight: 900; }
.form__tag {
  padding: 0 calc(var(--u) * 12);
  font-size: calc(var(--u) * 20);
  font-weight: 700;
  line-height: calc(var(--u) * 36);
  color: var(--white);
  background: var(--red);
  border-radius: calc(var(--u) * 6);
}
.form__tag.is-opt { background: #999; }
.form__input {
  display: block;
  width: 100%;
  height: calc(var(--u) * 92);
  margin-top: calc(var(--u) * 14);
  padding: 0 calc(var(--u) * 26);
  border: 1px solid #ccc;
  border-radius: calc(var(--u) * 12);
  background: #f6f6f8;
  font: 500 max(16px, calc(var(--u) * 28)) "Noto Sans JP", sans-serif; /* 16px未満だとiOSで自動ズーム */
  color: var(--ink);
}
.form__input::placeholder { color: #aaa; }
.form__input:focus { outline: 2px solid var(--pink); outline-offset: 0; border-color: var(--pink); background: var(--white); }
.form__select {
  appearance: none;
  padding-right: calc(var(--u) * 70);
  background: #f6f6f8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%234a1d7a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right calc(var(--u) * 26) center / calc(var(--u) * 30) no-repeat;
}
.form__select:invalid { color: #aaa; }
.form__select option { color: var(--ink); }
.form__textarea { height: auto; min-height: calc(var(--u) * 190); padding: calc(var(--u) * 20) calc(var(--u) * 26); resize: vertical; line-height: 1.6; }
.form__agree { display: flex; align-items: center; justify-content: center; gap: calc(var(--u) * 14); font-size: calc(var(--u) * 25); cursor: pointer; }
.form__agree input { width: calc(var(--u) * 34); height: calc(var(--u) * 34); margin: 0; accent-color: var(--pink); }
.form__agree a { color: #0068b7; text-decoration: underline; }
.form .cta { padding: 0; margin-top: calc(var(--u) * 10); }
/* 先方発行フォーム用：姓・名を横並び、補足、送信エラー、送信中 */
.form__pair { display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--u) * 20); }
.form__hint { margin-top: calc(var(--u) * 8); font-size: calc(var(--u) * 21); font-weight: 500; color: #666; }
.form__error { font-size: calc(var(--u) * 24); color: var(--red); text-align: center; }
.cta__btn:disabled { opacity: .6; cursor: wait; animation: none; }

.tel-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: calc(var(--u) * 96);
  margin: calc(var(--u) * 40) calc(var(--u) * 40) 0;
  color: var(--purple);
  background: var(--white);
  border: calc(var(--u) * 4) solid var(--purple);
  border-radius: 999px;
  line-height: 1.2;
}
.tel-btn__sub { font-size: calc(var(--u) * 20); }
.tel-btn__num { font-size: calc(var(--u) * 38); font-weight: 900; }

/* ---------- 店舗情報 ---------- */
.shop { padding: calc(var(--u) * 40) calc(var(--u) * 40) calc(var(--u) * 60); }
.shop__table { margin-top: calc(var(--u) * 20); }
.shop__table div { display: flex; padding: calc(var(--u) * 16) calc(var(--u) * 10); border-bottom: 2px solid #ddd; font-size: calc(var(--u) * 24); }
.shop__table dt { flex: none; width: calc(var(--u) * 140); font-weight: 900; color: var(--purple); }
.shop__table dd { font-weight: 500; }
.shop__map { height: calc(var(--u) * 420); margin-top: calc(var(--u) * 30); background: #e9e9e9; }
.shop__map iframe { display: block; width: 100%; height: 100%; border: 0; }

/* ---------- フッター ---------- */
.footer { padding: calc(var(--u) * 50) calc(var(--u) * 24) calc(var(--u) * 40); color: var(--white); background: var(--purple-d); text-align: center; }
.footer__logo img {
  width: calc(var(--u) * 200);
  margin: 0 auto;
  padding: calc(var(--u) * 12) calc(var(--u) * 20);
  background: var(--white);
  border-radius: calc(var(--u) * 12);
}
.footer__logo.is-text { font-size: calc(var(--u) * 40); font-weight: 900; }
.footer__sub { margin-top: calc(var(--u) * 16); font-size: calc(var(--u) * 24); font-weight: 700; }
.footer__search {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: calc(var(--u) * 400);
  margin: calc(var(--u) * 24) auto 0;
  padding: calc(var(--u) * 4) calc(var(--u) * 4) calc(var(--u) * 4) calc(var(--u) * 30);
  font-size: calc(var(--u) * 24);
  color: var(--navy);
  background: var(--white);
  border-radius: calc(var(--u) * 6);
}
.footer__search-btn { padding: calc(var(--u) * 6) calc(var(--u) * 20); font-size: calc(var(--u) * 20); color: var(--white); background: var(--navy); border-radius: calc(var(--u) * 4); }
.footer__license { margin-top: calc(var(--u) * 30); font-size: calc(var(--u) * 17); font-weight: 500; line-height: 1.7; color: #d8c8f0; }
.footer__copy { margin-top: calc(var(--u) * 30); font-size: calc(var(--u) * 18); font-weight: 500; color: #b9a6d9; }

/* ---------- 追従CTA ---------- */
.fixed-cta {
  position: fixed;
  left: 50%;
  bottom: 0;
  z-index: 60;
  display: grid;
  grid-template-columns: 360fr 342fr;
  gap: calc(var(--u) * 16);
  width: min(100%, 750px);
  padding: calc(var(--u) * 16) calc(var(--u) * 16) calc(calc(var(--u) * 16) + env(safe-area-inset-bottom));
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 -2px 10px rgba(0, 0, 0, .12);
  transform: translate(-50%, 110%);
  transition: transform .3s ease;
}
.fixed-cta.is-show { transform: translate(-50%, 0); }
.fixed-cta:has(.fixed-cta__tel[hidden]) { grid-template-columns: 1fr; } /* 店舗未特定時は予約ボタンのみ */
.fixed-cta a {
  display: grid;
  place-items: center;
  height: calc(var(--u) * 88);
  font-size: calc(var(--u) * 30);
  font-weight: 900;
  border-radius: 999px;
}
.fixed-cta__reserve { color: var(--white); background: linear-gradient(#ff3b30, #c80000); }
.fixed-cta__tel { color: var(--purple); background: var(--white); border: calc(var(--u) * 4) solid var(--purple); }

/* ---------- スクロールフェードイン ---------- */
@media (prefers-reduced-motion: no-preference) {
  .js-fade { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .6s ease; }
  .js-fade.is-in { opacity: 1; transform: none; }
}

/* ---------- リッチCTA（rcta）：2スクロールおきに置く予約導線。訴求文言はパターンごとに変える ---------- */
.rcta-wrap { padding: calc(var(--u) * 44) calc(var(--u) * 24) calc(var(--u) * 50); background: var(--cream); }
.rcta-wrap.is-dark { background: transparent; padding-left: 0; padding-right: 0; }
.rcta {
  position: relative;
  padding: calc(var(--u) * 46) calc(var(--u) * 30) calc(var(--u) * 34);
  text-align: center;
  color: var(--white);
  background:
    radial-gradient(circle at 50% -10%, rgba(255, 214, 102, .35), transparent 60%),
    linear-gradient(#2a2210, #0d0b07);
  border: calc(var(--u) * 6) solid #e3bd5a;
  border-radius: calc(var(--u) * 28);
  /* 金のふち：明るい金→濃い金の二重線 */
  box-shadow: 0 0 0 calc(var(--u) * 4) #fff3b8, 0 0 0 calc(var(--u) * 9) #8a5c12, 0 calc(var(--u) * 14) calc(var(--u) * 30) rgba(0, 0, 0, .35);
}
.rcta__badge {
  position: absolute;
  top: calc(var(--u) * -34);
  right: calc(var(--u) * -10);
  display: grid;
  place-content: center;
  width: calc(var(--u) * 132);
  height: calc(var(--u) * 132);
  font-size: calc(var(--u) * 20);
  font-weight: 900;
  line-height: 1.15;
  color: var(--white);
  background: radial-gradient(circle at 35% 30%, #ff5a4f, #c80000 70%);
  border: calc(var(--u) * 5) solid #f7e28a;
  border-radius: 50%;
  box-shadow: 0 calc(var(--u) * 6) calc(var(--u) * 12) rgba(0, 0, 0, .35);
  transform: rotate(10deg);
}
.rcta__badge b { font-size: calc(var(--u) * 46); line-height: 1; color: #ffe600; }
.rcta__lead {
  display: inline-block;
  padding: calc(var(--u) * 4) calc(var(--u) * 26);
  font-size: calc(var(--u) * 24);
  font-weight: 900;
  color: #1a1408;
  background: linear-gradient(#fff3b8, #d9b04f);
  border-radius: 999px;
}
.rcta__head {
  margin-top: calc(var(--u) * 18);
  font-size: calc(var(--u) * 40);
  font-weight: 900;
  line-height: 1.35;
}
.rcta__gold {
  font-size: calc(var(--u) * 64);
  line-height: 1.15;
  background: linear-gradient(#fff6c6 10%, #f2c94c 45%, #b8862b 60%, #ffe58a 90%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 calc(var(--u) * 3) 0 #000);
}
.rcta__date {
  margin-top: calc(var(--u) * 16);
  font-size: calc(var(--u) * 24);
  font-weight: 700;
  color: #f7e28a;
}
.rcta__date small { display: block; font-size: calc(var(--u) * 19); color: #ccc; font-weight: 500; }
.rcta__btn {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: calc(var(--u) * 26);
  height: calc(var(--u) * 132);
  color: var(--white);
  background: linear-gradient(#ff3b30, #c80000);
  border: calc(var(--u) * 4) solid #ffd9d6;
  border-radius: 999px;
  box-shadow: 0 calc(var(--u) * 10) 0 #7a0000;
  transition: transform .15s, box-shadow .15s;
}
.rcta__btn:hover { transform: translateY(calc(var(--u) * 5)); box-shadow: 0 calc(var(--u) * 5) 0 #7a0000; }
.rcta__btn:focus-visible { outline: 3px solid var(--yellow); outline-offset: 4px; }
.rcta__btn-sub { font-size: calc(var(--u) * 22); font-weight: 900; color: #ffe600; }
.rcta__btn-main { display: flex; align-items: center; gap: calc(var(--u) * 18); font-size: calc(var(--u) * 42); font-weight: 900; line-height: 1.2; }
.rcta__arrow {
  display: grid;
  place-items: center;
  width: calc(var(--u) * 44);
  height: calc(var(--u) * 44);
  font-size: calc(var(--u) * 20);
  color: #c80000;
  background: var(--white);
  border-radius: 50%;
}
.rcta__note { margin-top: calc(var(--u) * 22); font-size: calc(var(--u) * 19); font-weight: 500; color: #bbb; }
.rcta__tags { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(var(--u) * 10); margin-top: calc(var(--u) * 18); }
.rcta__tags li {
  padding: calc(var(--u) * 4) calc(var(--u) * 16);
  font-size: calc(var(--u) * 21);
  font-weight: 900;
  color: #1a1408;
  background: var(--white);
  border-radius: calc(var(--u) * 8);
}
@media (prefers-reduced-motion: no-preference) {
  .rcta__btn { animation: pulse 2.4s ease-in-out infinite; }
  .rcta__btn::after { /* 光が走る */
    content: "";
    position: absolute;
    top: 0;
    left: -60%;
    width: 40%;
    height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .55), transparent);
    transform: skewX(-20deg);
    animation: shine 3s ease-in-out infinite;
  }
  .rcta__badge { animation: badge 2.4s ease-in-out infinite; }
}
@keyframes shine { 0%, 55% { left: -60%; } 100% { left: 130%; } }
@keyframes badge { 0%, 100% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(10deg) scale(1.08); } }
/* FV下：会場表示とリッチCTA（バッジが上にはみ出す）が重ならないよう間をあける */
.fv-cta.rcta-wrap .fv-cta__venue { margin-bottom: calc(var(--u) * 64); }
/* フォーム下の個人情報・特典条件（先方指定の定型文） */
.form-terms { margin: calc(var(--u) * 36) calc(var(--u) * 24) 0; padding: calc(var(--u) * 30) calc(var(--u) * 30) calc(var(--u) * 34); text-align: left; background: var(--white); border: 1px solid #ddd; border-radius: calc(var(--u) * 16); font-size: calc(var(--u) * 21); font-weight: 500; line-height: 1.7; color: #444; scroll-margin-top: calc(var(--u) * 20); }
.form-terms__title { margin-top: calc(var(--u) * 26); font-size: calc(var(--u) * 26); font-weight: 900; color: var(--ink); }
.form-terms__sub { margin: calc(var(--u) * 16) 0 calc(var(--u) * 4); font-size: calc(var(--u) * 23); font-weight: 900; color: var(--cta); }
.form-terms__notes { margin-top: calc(var(--u) * 16); }
.rcta__note a, .final__note a { text-decoration: underline; }
