/* ============================================
   Japan Stretch LP - Mobile First (376px base)
   ============================================ */

/* ---------- Reset / Base ---------- */
*,*::before,*::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: #fff;
  color: #2A2A2A;
  font-family: "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
  font-weight: 400;
  line-height: 1.7;
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  padding-bottom: 110px; /* 追従フッターCTAの高さ分のスペース確保 */
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; padding: 0; margin: 0; }
button { font-family: inherit; cursor: pointer; }
:root {
  --red: #C8102E;
  --red-dark: #8B1521;
  --red-deep: #6B0F1A;
  --cream: #F5EFE6;
  --cream-light: #FAF6EE;
  --dark: #1F1F1F;
  --dark-gray: #2A2A2A;
  --light-gray: #999;
  --yellow-hl: #F8E27A;
  --serif: "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","Yu Mincho Light",serif;
}

/* Mobile container - 375px per Figma spec */
body { max-width: 375px; margin-inline: auto; }

/* ==================== Desktop Side Panel (PC表示時のみ、左側追従) ==================== */
.desktop-side {
  display: none;       /* mobile / narrow desktop: hidden */
}

/* 768px+ : 背景グラデーション + LP本体への影 だけ適用。
   サイドパネルはまだ表示しない（LPと重なる幅では非表示）。 */
@media (min-width: 768px) {
  html {
    background: radial-gradient(ellipse 90% 70% at center, #ffffff 0%, #fff7e0 60%, #fbeec3 100%);
    background-attachment: fixed;
    min-height: 100%;
  }
  body { box-shadow: 0 0 24px rgba(0,0,0,0.15); }
}

/* 1024px+ : サイドパネルを表示。
   ----------------------------------------
   重ならない条件の計算：
     LP本体: 中央 50%、幅 375px → LP左端 = calc(50% - 187.5px)
     パネル: 幅 280px、left = calc(25% - 93.75px - 140px) = calc(25% - 233.75px)
     パネル右端 = calc(25% + 46.25px)
     重ならない条件: パネル右端 + 余白24px < LP左端
       → calc(25% + 46.25 + 24) < calc(50% - 187.5)
       → 25% > 257.75 + 187.5 = 445.25 …これを満たすvw ≒ 1024px
   ※ 1024px未満のときはパネル非表示でLPだけがフローティング表示。 */
@media (min-width: 1024px) {
  .desktop-side {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    position: fixed;
    top: 50%;
    left: calc(25% - 93.75px - 140px);
    transform: translateY(-50%);
    width: 280px;
    z-index: 100;
  }
  .desktop-side__logo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: #262626;
  }
  .desktop-side__logo-tag {
    font-family: "Noto Serif JP", serif;
    font-weight: 900;
    font-size: 16px;
    color: #262626;
    letter-spacing: 0.3em;
    text-indent: 0.3em;
    line-height: 1.2;
  }
  .desktop-side__logo img {
    width: 200px;
    height: auto;
  }
  .desktop-side__cta {
    position: relative !important;
    width: 280px;
    max-width: 280px;
    transform: none;
    bottom: auto;
    left: auto;
  }
}

/* ============================================
   FV section (Header + Hero) - High fidelity
   Frame: 375px wide per Figma spec
   ============================================ */
.fv {
  position: relative;
  width: 375px;
  /* Figma frame is 636px tall — leaves ~21px breathing room below the badges */
  height: 636px;
  background: #fff;
  overflow: hidden;
}

/* Hero photo - positioned exactly per Figma (overflows frame) */
.fv__photo {
  position: absolute;
  left: -62px;
  top: -26px;
  width: 500px;
  height: 580px;
  pointer-events: none;
}
.fv__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* White gradient fade over hero (per Figma spec) */
.fv__photo-fade {
  position: absolute;
  left: 0;
  top: 329px;
  width: 375px;
  height: 225px;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.87) 32.212%,
    rgba(255,255,255,0.83) 71.635%,
    rgba(255,255,255,1) 100%
  );
  pointer-events: none;
  z-index: 1;
}

/* ----- Header bar ----- */
.fv__header {
  position: absolute;
  inset: 0 0 auto 0;
  height: 53px;
  background: #fff;
  box-shadow: 0 4px 4px rgba(0,0,0,0.05);
  z-index: 10;
}
.fv__logo {
  position: absolute;
  left: 2px;
  top: 4px;
  width: 134px;       /* leave a small gap before WEB予約 button at left:138 */
  height: 44px;
  display: block;
}
.fv__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
}
.fv__cta-web,
.fv__cta-access {
  position: absolute;
  top: 8px;
  width: 108px;
  height: 35.36px;
  /* 3-column grid: icon | text (centered) | arrow — same pattern as the CTA buttons */
  display: grid;
  grid-template-columns: 18px 1fr 14px;
  align-items: center;
  padding: 0 6px;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  font-weight: 500;
  font-size: 12.86px;
  letter-spacing: 0.04em;
  color: #fff;
  text-decoration: none;
  box-sizing: border-box;
}
.fv__cta-web {
  left: 138px;
  background: #19a330;
  border: 0.945px solid #138f28;
  border-radius: 3.149px;
  box-shadow: 0.945px 1.26px 1.26px rgba(0,0,0,0.25), inset 0 1.26px 1.26px #109426;
}
.fv__cta-access {
  left: 252px;
  background: #262626;
  border: 0.967px solid #262626;
  border-radius: 3.223px;
}
.fv__cta-icon {
  display: block;
  justify-self: center;
  width: 14px;
  height: 12px;
  object-fit: contain;
}
.fv__cta-icon--pin {
  width: 10px;
  height: 12px;
}
.fv__cta-text {
  display: inline-block;
  justify-self: center;
  line-height: 1;
  white-space: nowrap;
}
.fv__cta-arrow-img {
  display: block;
  justify-self: center;
  width: 3px;
  height: 6px;
  /* SVG loaded via <img> can't inherit CSS color, so recolor with filter.
     brightness(0) → solid black, invert(1) → solid white. */
  filter: brightness(0) invert(1);
}

/* ----- Headline copy ----- */
.fv__copy {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
}
/* H1 wrapper — semantics only, no visual box (children keep their absolute positioning) */
.fv__h1 {
  display: contents;
}

/* "痛くない、新しいストレッチ" - sub headline with white shadow */
.fv__sub {
  position: absolute;
  left: 50%;
  top: 327px;
  width: 339px;
  height: 64px;
  margin: 0;
  transform: translateX(-50%) rotate(-5deg) skewX(-10deg);
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Gold/yellow gradient banner (per Figma Rectangle 2)
   - Slight parallelogram skew baked into the SVG path; the rotate/skew on .fv__sub
     reproduces the same diagonal effect as Figma. */
.fv__sub-bg {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 330px;
  height: 34px;
  background: linear-gradient(
    90deg,
    #E1C05E 0%,
    #F4E571 56.7%,
    #DFBC5C 100%
  );
  /* Subtle parallelogram cut so left/right edges are slightly diagonal,
     matching the SVG path used in Figma */
  clip-path: polygon(1.5% 0, 100% 0, 98.5% 100%, 0 100%);
  box-shadow: 0 1px 2px rgba(0,0,0,0.18);
}
.fv__sub-text {
  position: relative;
  font-family: "Noto Sans JP","Inter",sans-serif;
  font-weight: 700;
  font-size: 23px;
  color: #350b0b;
  line-height: 1;
  white-space: nowrap;
  /* Strong white halo (Figma: 0 1.319 5.144 white) — single 5px blur is too
     subtle on a saturated gold background, so stack several shadows to
     reproduce the visible glow seen in the design. */
  text-shadow:
    0 0 4px #ffffff,
    0 0 8px #ffffff,
    0 0 14px rgba(255, 255, 255, 0.95),
    0 0 22px rgba(255, 255, 255, 0.7),
    0 1.319px 5.144px #ffffff;
  letter-spacing: -0.01em;
}

/* "デスクワークで固まった体が" */
.fv__main1 {
  position: absolute;
  left: 50%;
  top: 374px;
  width: 345px;
  height: 55px;
  margin: 0;
  transform: translateX(-50%) rotate(-5deg) skewX(-10deg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans JP","Noto Sans",sans-serif;
  font-weight: 700;
  font-size: 24px;
  color: #262626;
  letter-spacing: 0.72px;
  line-height: 1.05;
  text-shadow: 0 4px 4px rgba(0,0,0,0.15);
  white-space: nowrap;
}
.fv__red { color: #d62b2a; }

/* "20秒で変わる。" - main big headline */
.fv__main2 {
  position: absolute;
  left: 50%;
  top: 395px;
  width: 392px;
  height: 119px;
  margin: 0;
  transform: translateX(-50%) rotate(-5deg) skewX(-10deg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans JP","Noto Sans",sans-serif;
  line-height: 1.56;
  text-shadow: 0 4.319px 4.319px rgba(0,0,0,0.25);
  white-space: nowrap;
}
.fv__big-red {
  font-weight: 800;
  font-size: 55px;
  color: #d62b2a;
}
.fv__big-red--lead { letter-spacing: 2.2px; }      /* "20秒" - per Figma */
.fv__big-red--tail { letter-spacing: 0.55px; }     /* "変わる。" - per Figma (tighter) */
.fv__mid {
  font-weight: 700;
  font-size: 35px;
  color: #2d2d2d;
  margin: 0 -2px;
}
/* Optical centering for "20秒で変わる。"
   - Flex/geometric centering puts "20秒で変わる。" ~15px left of where Figma
     places it (measured from screenshot diff). The CJK full-width "。" carries
     ~half-width of blank inside its glyph box, plus the leading "2" digit's
     stem starts inside its em-box. Nudge the whole line right to balance. */
.fv__main2 {
  /* +22px right shift on top of the existing translateX(-50%) centering.
     Calibrated against Figma (visible-text center match within ~1px). */
  transform: translateX(calc(-50% + 22px)) rotate(-5deg) skewX(-10deg);
  padding-left: 0;
}

/* ----- 3 Circular badges ----- */
.fv__badges {
  position: absolute;
  left: 0;
  top: 514px;
  width: 375px;
  display: flex;
  justify-content: flex-start;
  padding: 0;
  margin: 0;
  list-style: none;
  z-index: 6;
}
.fv__badge {
  position: relative;
  width: 101px;
  height: 101px;
  margin-left: 15px;
  border-radius: 50%;
  /* Solid red disk (Ellipse 1) - per Figma #D62B2A */
  background: #D62B2A;
  box-shadow: 0 2px 6px rgba(0,0,0,0.22);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: "Noto Sans JP","Noto Sans",sans-serif;
  font-weight: 700;
  text-align: center;
  line-height: 1.25;
}
/* Thin white inner ring (Ellipse 3) - 95x95, 3px inset, ~0.6px stroke */
.fv__badge::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 3px;
  width: 95px;
  height: 95px;
  border-radius: 50%;
  border: 0.6px solid #ffffff;
  pointer-events: none;
}
.fv__badge:nth-child(2) { margin-left: 21px; }
.fv__badge:nth-child(3) { margin-left: 21px; }

/* Default: badge 1 - all lines stacked & centered */
.fv__badge-line1,
.fv__badge-line2,
.fv__badge-line3 {
  display: block;
  font-size: 17px;
  letter-spacing: 0.07em;
}

/* Badge 2 (KITTE 丸の内 駅直結): all three lines centered as one block */
.fv__badge:nth-child(2) { justify-content: center; padding-top: 0; }
.fv__badge:nth-child(2) .fv__badge-line1 { font-size: 16px; letter-spacing: 0.07em; }
.fv__badge:nth-child(2) .fv__badge-line2 { font-size: 16px; letter-spacing: 0.07em; }
.fv__badge:nth-child(2) .fv__badge-line3 {
  font-size: 18px;
  letter-spacing: 0.08em;
  margin-top: 0;            /* no gap — flow with 丸の内 */
  margin-bottom: 0;
  line-height: 1.2;
}

/* Badge 3 (お昼も 営業中 / ※9時〜21時): note tucked right under 営業中 */
.fv__badge:nth-child(3) { justify-content: center; padding-top: 0; }
.fv__badge-note {
  display: block;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-top: 2px;          /* tight gap, no flex spacer */
  opacity: 0.95;
}

/* ============================================
   CTA section (FV直下) — high fidelity
   Frame: 375 × 250 per Figma (node 1:52)
   ============================================ */
/* ==========================================================================
   CTA — Figma node 1:906 完全コピー版（STEP 1: 背景レイヤーのみ）
   セクション全体: 375 × 269px
   ========================================================================== */
.cta {
  position: relative;
  width: 375px;
  height: 269px;
  overflow: hidden;
  isolation: isolate;
  /* Figma: "Noto Sans Medium" (Noto Sans handles Latin, Noto Sans JP picks up
     Japanese glyphs as fallback). Both loaded from Google Fonts at weight 500. */
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  font-weight: 500;
}

/* Background photo (Figma "cta_bg_1 1": left:0, top:-74, w:375, h:494)
   画像はセクション上端より74px上から始まり、下方向に494pxまで広がる。
   overflow:hidden により可視範囲は y=0〜269 にトリミングされる。 */
.cta__photo {
  position: absolute;
  left: 0;
  top: -74px;
  width: 100%;
  height: 494px;
  z-index: 0;
}
.cta__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  pointer-events: none;
}

/* Translucent red overlay (Figma: rgba(149,16,6,0.8), w:375, h:280)
   高さ280はセクション269を11pxはみ出るが overflow:hidden で隠れる。
   inset:0 でセクション全面を覆う形で実装。 */
.cta__overlay {
  position: absolute;
  inset: 0;
  background: rgba(149, 16, 6, 0.8);
  z-index: 1;
  pointer-events: none;
}

/* ==========================================================================
   CTA ヘッダー (Figma node 1:937) — 黒帯バー + 内訳テキスト
   黒バー: 344 × 64 px, 角丸 上のみ 10px, position(16, 26)
   テキストはセクション原点基準で center(--cx, --cy) に配置。
   ========================================================================== */
.cta__header {
  position: absolute;
  left: 16px;
  top: 26px;
  width: 344px;
  height: 64px;
  background: #000;
  border-radius: 10px 10px 0 0;
  z-index: 2;
}

/* 文字本体 (施術30分 / カウセリング20分 / アフターフォロー10分)
   Figma: Noto Sans Medium / 16.916px / letter-spacing 0.6766px
   ★ 鉄則10: HTMLの --cy で個別に top を実測補正
     Chromium は line-height 1 でも内部 ascender 余白で +17〜18px 下に
     描画される。HTML側で --cy を Figma 値 - 17 で渡し、CSS は素直に
     translateX(-50%) のみで横方向中央寄せだけする。 */
.cta__h-text {
  position: absolute;
  left: var(--cx);
  top: var(--cy);
  transform: translateX(-50%);
  color: #fff;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", "Meiryo", "Noto Sans", sans-serif;
  font-weight: 500;
  font-size: 16.916px;
  letter-spacing: 0.6766px;
  line-height: 1;
  white-space: nowrap;
  text-align: center;
  z-index: 3;
  -webkit-font-smoothing: antialiased;
}

/* 「アフターフォロー10分」の「1」だけ Figma で tracking -0.3383px が指定されている */
.cta__h-tight {
  letter-spacing: -0.3383px;
}

/* ＋ プラス記号 (1:948 / 1:952)
   Figma: Noto Sans SemiBold / 11.277px / letter-spacing 0.4511px
   ★ こちらも HTML側で --cy を実測補正 */
.cta__h-plus {
  position: absolute;
  left: var(--cx);
  top: var(--cy);
  transform: translateX(-50%);
  color: #fff;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", "Meiryo", "Noto Sans", sans-serif;
  font-weight: 600;
  font-size: 11.277px;
  letter-spacing: 0.4511px;
  line-height: 1;
  white-space: nowrap;
  z-index: 3;
  -webkit-font-smoothing: antialiased;
}

/* ==========================================================================
   STEP 3: 白カード (Figma node 1:927 〜 1:935)
   構成:
     - .cta__card        : 白い角丸の本体 344×156 / 角丸全周 10px / (16, 26)
     - .cta__regular     : 「通常価格」(1:931)
     - .cta__regular-amount + .cta__strike : 「8,800円」と取消線 (1:932 + 1:953)
     - .cta__arrow-tri   : 赤い ▶ 三角 (1:936)
     - .cta__price-big   : 大きな赤い「4,400円」(1:934)
     - .cta__tax         : 「（税込）」(1:935)
   フォントは Figma "Medium 混在" = weight 500（鉄則4）。
   フォントスタックは日本語ゴシック優先（鉄則3）。
   ========================================================================== */

/* 白カード背景 (1:928): 344×156 / 角丸全周 10px / 黒帯はこの上に重なる */
.cta__card {
  position: absolute;
  left: 16px;
  top: 26px;
  width: 344px;
  height: 156px;
  background: #ffffff;
  border-radius: 10px;
  z-index: 2;
}

/* 「通常価格」(1:931): center(80.5, 112.75) / 20.008px / tracking 0.8003 / black
   Figma は -translate-x-1/2 のみ（縦は top=線箱の上端） */
.cta__regular {
  position: absolute;
  left: 80.5px;
  top: 112.75px;
  transform: translateX(-50%);
  margin: 0;
  color: #000000;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", "Meiryo", "Noto Sans", sans-serif;
  font-weight: 500;
  font-size: 20.008px;
  letter-spacing: 0.8003px;
  line-height: 1.25;
  white-space: nowrap;
  text-align: center;
  z-index: 3;
  -webkit-font-smoothing: antialiased;
}

/* 「8,800円」(1:932): center(80.5, 135.83) / 21.896px / tracking 0.8758 */
.cta__regular-amount {
  position: absolute;
  left: 80.5px;
  top: 135.83px;
  transform: translateX(-50%);
  margin: 0;
  color: #000000;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", "Meiryo", "Noto Sans", sans-serif;
  font-weight: 500;
  font-size: 21.896px;
  letter-spacing: 0.8758px;
  line-height: 1.25;
  white-space: nowrap;
  text-align: center;
  z-index: 3;
  -webkit-font-smoothing: antialiased;
}

/* 取消線 (1:953): 84.723 × 1px / 元コンテナ(39,143 / 83×17 / flex center)
   → center(80.5, 151.5) で rotate -11.58deg */
.cta__strike {
  position: absolute;
  left: 80.5px;
  top: 151.5px;
  width: 84.723px;
  height: 1px;
  background: #c32f24;
  transform: translate(-50%, -50%) rotate(-11.58deg);
  z-index: 4;
  pointer-events: none;
}

/* 赤い ▶ 三角 (1:936): 元コンテナ(134,125 / 17×22.1 / flex center)
   → center(142.5, 136.05) / 12.75w × 19.1h right-pointing
   ※ Figma の Polygon は元 22.1×17 で apex up、rotate 90deg で apex right。
     可視部は inset[top:0 bottom:25% left:6.7% right:6.7%]
     → 86.6% × 75% = 19.1 × 12.75 → 回転後 12.75w × 19.1h */
.cta__arrow-tri {
  position: absolute;
  left: 142.5px;
  top: 136.05px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 9.55px 0 9.55px 12.75px;
  border-color: transparent transparent transparent #c32f24;
  transform: translate(-50%, -50%);
  z-index: 3;
  pointer-events: none;
}

/* 大きな赤い「4,400円」(1:934): center(249, 135.5)
   親は leading-[0] text-[0px] / 各 span が自前の line-height/size を持つ */
.cta__price-big {
  position: absolute;
  left: 249px;
  top: 135.5px;
  transform: translate(-50%, -50%);
  margin: 0;
  color: #c32f24;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", "Meiryo", "Noto Sans", sans-serif;
  font-weight: 500;
  letter-spacing: 2.5239px;
  line-height: 0;
  font-size: 0;
  white-space: nowrap;
  z-index: 3;
  -webkit-font-smoothing: antialiased;
}
.cta__price-big > span {
  display: inline;
  color: inherit;
  font-family: inherit;
  font-weight: inherit;
  line-height: 1.25;
  vertical-align: baseline;
}
.cta__price-big__4     { font-size: 63.098px; letter-spacing: -1.262px;  }
.cta__price-big__comma { font-size: 40.153px; letter-spacing: -2.8107px; }
.cta__price-big__40    { font-size: 63.098px; }
.cta__price-big__0     { font-size: 63.098px; letter-spacing: -1.262px;  }
.cta__price-big__yen   { font-size: 30.975px; }

/* 「（税込）」(1:935): center(324, 120) / 11px / tracking -0.22 / red */
.cta__tax {
  position: absolute;
  left: 324px;
  top: 120px;
  transform: translateX(-50%);
  margin: 0;
  color: #c32f24;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", "Meiryo", "Noto Sans", sans-serif;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: -0.22px;
  line-height: 1.25;
  white-space: nowrap;
  text-align: center;
  z-index: 3;
  -webkit-font-smoothing: antialiased;
}

/* ==========================================================================
   STEP 4: 50% OFF バッジ (Figma 1:938〜1:943)
   黄色丸 84×84 at (281, 20) + skew された「50%」「OFF」テキスト
   黒帯より前面 (z-index 5以上) で右上に配置
   ========================================================================== */

/* バッジ (Figma 1:938 / 84×84 at (281, 20)) — WebP 画像で配置
   ユーザー提供 WebP を images/cta/badge_50off.webp に保存して使用 */
.cta__badge {
  position: absolute;
  left: 281px;
  top: 20px;
  width: 84px;
  height: 84px;
  z-index: 5;
  display: block;
  pointer-events: none;
  object-fit: contain;
}

/* ==========================================================================
   STEP 5: WEB予約 / 電話予約 ボタン (Figma 1:910〜1:924)
   165 × 51.953 の2ボタン、緑(WEB) と 黄(電話) を section 内 absolute 配置
   ========================================================================== */
.cta__buttons {
  position: absolute;
  left: 15px;
  top: 200px;
  width: 345px;
  display: flex;
  justify-content: space-between;
  z-index: 3;
}
.cta__btn {
  width: 165px;
  height: 51.953px;
  /* 3-column grid: icon | text | arrow */
  display: grid;
  grid-template-columns: 30px 1fr 18px;
  align-items: center;
  padding: 0 8px;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", "Noto Sans", sans-serif;
  font-weight: 500;
  font-size: 20px;
  letter-spacing: 0.8px;
  line-height: 1;
  text-decoration: none;
  position: relative;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
}
.cta__btn-icon { display: block; justify-self: center; }
.cta__btn-text {
  display: inline-block;
  justify-self: center;
  line-height: 1;
  white-space: nowrap;
  text-align: center;
}

/* WEB予約 (緑 1:921): #19a330 / border 1.388 #138f28 / radius 4.627 */
.cta__btn--web {
  background: #19a330;
  border: 1.388px solid #138f28;
  border-radius: 4.627px;
  color: #fff;
  box-shadow:
    1.388px 1.851px 1.851px rgba(0, 0, 0, 0.25),
    inset 0 1.851px 1.851px #109426;
}
/* 電話予約 (黄 1:912): #f7d650 / border 1.421 #f4c400 / radius 4.736 */
.cta__btn--tel {
  background: #f7d650;
  border: 1.421px solid #f4c400;
  border-radius: 4.736px;
  color: #350b0b;
  box-shadow: inset 0 1.894px 1.894px #f1cc36;
}

/* アイコンサイズ */
.cta__btn-icon--web { width: 22px; height: 19px; }   /* タブレット＋指 */
.cta__btn-icon--tel { width: 14px; height: 18px; }   /* 電話受話器 */

/* 右矢印 ›: Figma 7.907×3.347, 緑は白・黄は黒 */
.cta__btn-arrow-img {
  width: 5px;
  height: 9px;
  display: block;
  justify-self: center;
}
.cta__btn--web .cta__btn-arrow-img { filter: brightness(0) invert(1); }
.cta__btn--tel .cta__btn-arrow-img { filter: brightness(0); }

/* ---------- Section common ---------- */
.section-h2 {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 22px;
  line-height: 1.5;
  margin: 0 0 16px;
  color: var(--dark);
}
.section-h2.center { text-align: center; }
.section-eyebrow {
  text-align: center;
  font-size: 12.5px;
  color: var(--dark);
  margin: 0 0 6px;
  line-height: 1.6;
}
.line-emp { color: var(--red); }

/* ============================================
   Problems section (悩みリスト)
   Frame: 375 × 766 per Figma node 1:92
   All children positioned absolutely with Figma-exact coordinates.
   ============================================ */
.problems {
  position: relative;
  width: 375px;
  height: 766px;
  background: #f3f3f3;     /* Figma fallback color */
  overflow: hidden;
  isolation: isolate;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
}

/* Background photo (full bleed) */
.problems__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.problems__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Black pill at top (y=55, w=345, h=46, radius=23) */
.problems__pill {
  position: absolute;
  left: 15px;
  top: 55px;
  width: 345px;
  height: 46px;
  background: #000;
  border-radius: 23px;
  z-index: 2;
}
.problems__pill-text {
  margin: 0;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.04em;
  color: #fff;
  line-height: 1;
}
.problems__pill-emp { color: #e9cc85; }
/* Downward triangle hanging off the pill (Polygon 1: 11.82w × 10.5h, fill black) */
.problems__pill-arrow {
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 10.5px 5.91px 0 5.91px;
  border-color: #000 transparent transparent transparent;
}

/* Heading: 毎日こんな状態で / 仕事していませんか？ — Noto Serif JP Bold, white */
.problems__h {
  position: absolute;
  left: 0;
  top: 114px;
  width: 100%;
  margin: 0;
  z-index: 2;
  text-align: center;
  font-family: "Noto Serif JP","Yu Mincho",serif;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
}
.problems__h-line {
  display: block;
  font-size: 32px;
  letter-spacing: 0.04em;
  line-height: 1.45;
}
.problems__h-line + .problems__h-line {
  margin-top: 7px;
}
.problems__h-base { font-size: 32px; }
.problems__h-emp {
  font-size: 40px;
  color: #f4c400;
  letter-spacing: 0.08em;
}

/* White card (y=236, w=345, h=475, radius=10) */
.problems__card {
  position: absolute;
  left: 15px;
  top: 236px;
  width: 345px;
  height: 475px;
  background: #fff;
  border-radius: 10px;
  z-index: 2;
}

/* Each item — positioned absolutely at Figma's exact coordinates.
   Figma stores all positions section-relative (card starts at x=15, y=236),
   so card-relative we subtract 15 from x and 236 from y. */
.problems__item {
  position: absolute;
  left: 16px;        /* Figma item.x=31 minus card.x=15 */
  top: calc(var(--y) - 236px);
  right: 11px;       /* Figma item right edge ≈ x=349, card right=360 → 11px */
}

/* Checkbox: 18×18 black border, with red checkmark image inside.
   --ct is the section-relative top of the checkbox; offset within item box. */
.problems__check {
  position: absolute;
  left: 0;
  top: calc(var(--ct) - var(--y));
  width: 18px;
  height: 18px;
  border: 1px solid #262626;
  background: transparent;
}
.problems__check::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 3px;
  width: 12px;
  height: 11px;
  background: url("images/problems/check.svg") no-repeat center / contain;
}

/* Text — sits to the right of the checkbox, 18px Noto Sans Medium */
.problems__text {
  margin: 0;
  padding-left: 33px;       /* checkbox(18) + gap(15) */
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 18px;
  color: #2e2e2e;
  letter-spacing: 0.04em;
  line-height: 1.45;
}
.problems__text b {
  font-weight: 700;
  color: #d62b2a;
}

/* ============================================
   Reasons section (Why Massage Fails)
   Frame: 375 × 1002 per Figma node 1:132
   All children positioned absolutely with Figma section-relative
   coordinates (translated to local px values).
   ============================================ */
.reasons {
  position: relative;
  width: 375px;
  height: 1002px;
  background: #fff9ee;
  overflow: hidden;
  isolation: isolate;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color: #262626;
}

/* Decorative bg pentagon (Figma 1:135 Mask group)
   The Figma mask SVG defines: M4 0 H379 V557 L191.5 603 L4 557 Z
   (top rect 4-379 × 0-557, then narrows to a single point at 191.5, 603)
   Note: tried `mask-image: url(svg)` but Chromium failed to render it —
   bg ended up completely invisible. Use clip-path instead, which renders
   the same shape natively and works reliably. */
/* Wrapper carries the drop-shadow filter; inner div carries the clip-path.
   Some browsers fail to combine clip-path + filter on the same element, so
   we split them across nested elements. */
.reasons__bg-wrap {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 603px;
  z-index: 0;
  pointer-events: none;
  /* Drop shadow per Figma SVG filter (dy=4, blur=2, alpha=0.25) */
  filter: drop-shadow(0 4px 2px rgba(0, 0, 0, 0.25));
}
.reasons__bg {
  width: 100%;
  height: 100%;
  clip-path: polygon(
    1.04% 0,           /*    4/383 */
    98.96% 0,          /*  379/383 */
    98.96% 92.41%,     /*  557.086/603 */
    50% 100%,          /*  bottom point at 191.5/383, 603/603 */
    1.04% 92.41%
  );
}
.reasons__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* H1: マッサージが効かなくなった (top=55, w=338, centered) */
.reasons__h1 {
  position: absolute;
  left: 50%;
  top: 55px;
  width: 338px;
  margin: 0;
  transform: translateX(-50%);
  text-align: center;
  font-size: 25px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 2;
  color: #000;
  z-index: 2;
}
.reasons__h1-emp {
  font-weight: 700;
  color: #c32f24;
}

/* H2: 本当の理由。 with yellow underline
   Figma: element center at y=131.5, w=321, h=47 (= top edge y=108) */
.reasons__h2-wrap {
  position: absolute;
  left: 50%;
  top: 108px;
  width: 321px;
  height: 47px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.reasons__h2-underline {
  position: absolute;
  left: 36px;            /* (77 in section) - (41 wrap left) = 36 */
  top: 32px;             /* (140 in section) - (108 wrap top) = 32 */
  width: 225px;
  height: 13px;
  background: #f4e471;
}
.reasons__h2 {
  position: relative;
  margin: 0;
  text-align: center;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #c32f24;
  line-height: 1;
  white-space: nowrap;
}
.reasons__h2-big   { font-size: 40px; line-height: 1; }
.reasons__h2-small { font-size: 35px; line-height: 1; }

/* Body text (top=171, w=345, centered visually at y=261) */
.reasons__body {
  position: absolute;
  left: 15px;
  top: 171px;
  width: 345px;
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.04em;
  color: #262626;
  z-index: 2;
}
.reasons__body b {
  font-weight: 700;
  color: #c32f24;
}

/* Claim 1: 根本的に改善するには / 筋肉の柔軟性そのものを変え (top=395) */
.reasons__claim1 {
  position: absolute;
  left: 50%;
  top: 395px;
  width: 345px;
  margin: 0;
  transform: translateX(-50%);
  text-align: center;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #262626;
  z-index: 2;
}
.reasons__claim1-line1 {
  display: block;
  font-size: 28px;
  line-height: 1.45;
}
.reasons__claim1-line2 {
  display: block;
  font-weight: 700;
  color: #c32f24;
  line-height: 1.45;
  white-space: nowrap;
}
.reasons__claim1-emp { font-size: 28px; }
.reasons__claim1-small { font-size: 22px; }
.reasons__claim1-mid { font-size: 23px; }

/* Claim 2: 姿勢を正す必要がある。 (top=477) */
.reasons__claim2 {
  position: absolute;
  left: 50%;
  top: 477px;
  width: 345px;
  margin: 0;
  transform: translateX(-50%);
  text-align: center;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.04em;
  color: #c32f24;
  z-index: 2;
}

/* Comparison flow chart wrapper */
.reasons__flow {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

/* Vertical separator lines (Vector 11/10 in Figma)
   Vector 11 at x=97 y=654 length 279 (left column)
   Vector 10 at x=278 y=639 length 294 (right column) */
.reasons__line {
  position: absolute;
  width: 1px;
  z-index: 1;
}
/* Vector 11 — left (gray cycle) column line — black */
.reasons__line--left  {
  left: 97px;  top: 654px; height: 279px;
  background: #262626;
}
/* Vector 10 — right (red cycle) column line — red per Figma */
.reasons__line--right {
  left: 278px; top: 639px; height: 294px;
  background: #c32f24;
}

/* Outer loop arrows (Vector 12 at x=10 y=650 / Vector 13 at x=345 y=650, both 20×264) */
.reasons__loop {
  position: absolute;
  width: 20px;
  height: 264px;
  display: block;
  z-index: 2;
}
.reasons__loop--left  { left: 10px;  top: 650px; }
.reasons__loop--right { left: 345px; top: 650px; transform: rotate(180deg); }

/* Red curved arrow at bottom right (Vector at section ~y=908, x=293, w=68 h=30) */
.reasons__arrow-red {
  position: absolute;
  left: 293px;
  top: 908px;
  width: 68px;
  height: 30px;
  display: block;
  z-index: 4;
}

/* Decorative illustrations — Figma uses container + scaled-img with negative
   offset to crop. We replicate exactly with `overflow:hidden` + absolute img. */
.reasons__illust {
  position: absolute;
  overflow: hidden;
  pointer-events: none;
  /* z-index 5 — illustrations sit ABOVE the boxes/lines/arrows per Figma */
  z-index: 5;
}
.reasons__illust img {
  position: absolute;
  max-width: none;
  display: block;
}

/* 1:171 (img1): container 75×86 at (116,672)
   Figma: img w=201.23%, h=262.9%, left=-101.23%, top=-7.8% */
.reasons__illust--1 {
  left: 116px; top: 672px; width: 75px; height: 86px;
}
.reasons__illust--1 img {
  width: 151px;       /* 75 × 2.0123 */
  height: 226px;      /* 86 × 2.629  */
  left: -76px;        /* 75 × -1.0123 */
  top:  -7px;         /* 86 × -0.078 */
}

/* 1:172 (img1): container 68×66 at (10,834)
   Figma: w=270.69%, h=413.16%, left=-22.41%, top=-25% */
.reasons__illust--2 {
  left: 10px; top: 834px; width: 68px; height: 66px;
}
.reasons__illust--2 img {
  width: 184px;       /* 68 × 2.7069 */
  height: 273px;      /* 66 × 4.1316 */
  left: -15px;        /* 68 × -0.2241 */
  top:  -17px;        /* 66 × -0.25 */
}

/* 1:170 (img4): container 53×71 at (318,715)
   Figma: w=332.08%, h=371.83%, left=-232.08%, top=-50.7% */
.reasons__illust--3 {
  left: 318px; top: 715px; width: 53px; height: 71px;
}
.reasons__illust--3 img {
  width: 176px;       /* 53 × 3.3208 */
  height: 264px;      /* 71 × 3.7183 */
  left: -123px;       /* 53 × -2.3208 */
  top:  -36px;        /* 71 × -0.507 */
}

/* 1:169 (img4): container 89×95 — meditation person below 上昇スパイラル box.
   Note: Figma metadata says left=254 but the actual Figma render places the
   visible center at x≈268 (measured from screenshot). Use the visual position
   so the person sits centered with the gold box (box at x=195-345, c=270).
   Figma: w=197.75%, h=277.89%, left=-97.75%, top=-154.74%, scaleX(-1) */
.reasons__illust--4 {
  left: 168px;        /* head sits just before the "上" character (text starts ~x=215) */
  top: 880px;
  width: 89px;
  height: 95px;
  transform: scaleX(-1);
}
.reasons__illust--4 img {
  width: 176px;       /* 89 × 1.9775 */
  height: 264px;      /* 95 × 2.7789 */
  left: -87px;        /* 89 × -0.9775 */
  top: -147px;        /* 95 × -1.5474 */
}

/* 1:168 (img254146121): 39×39 at (146,880), rotated 23.83deg, full image */
.reasons__illust--5 {
  left: 146px; top: 880px; width: 39px; height: 39px;
  transform: rotate(23.83deg);
}
.reasons__illust--5 img {
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}

/* Comparison boxes — common */
.reasons__box {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: 150px;
  min-height: 40px;
  border-radius: 5px;
  padding: 10px 15px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.04em;
  text-align: center;
  line-height: 1.45;
  z-index: 3;
  pointer-events: auto;
  box-sizing: border-box;
}
.reasons__box span { display: block; line-height: 1.15; }

/* Left column variants */
.reasons__box--bad-header {
  background: #d9d9d9;
  color: #262626;
}
.reasons__box--bad-footer {
  background: #d9d9d9;
  color: #262626;
  width: 149px;       /* per Figma 1:147 */
}
.reasons__box--gray {
  background: #f6f6f6;
  border: 1px solid #d7d7d7;
  color: #262626;
}

/* Right column variants */
.reasons__box--good-header {
  background: #c32f24;
  color: #fff;
  height: 40px;
  padding: 10px 15px;
}
.reasons__box--good-footer {
  /* gold gradient + dark text + white shadow */
  background: linear-gradient(to right, #e4c764 0%, #f2e270 50%, #e2c360 100%);
  color: #350b0b;
  text-shadow: 0 0 3px #fff;
}
.reasons__box--red {
  background: #ffe9e6;
  border: 1px solid #c32f24;
  color: #262626;
  /* The "コンプレッション ストレッチ" 2-line box uses py:3 instead of 10 */
}

/* ============================================
   BFR section (コンプレッションストレッチとは？)
   Frame: 375 × 756 per Figma node 1:173
   --------------------------------------------
   Phase 3: 背景のみ（ユーザー提供SVGを<img>でそのまま配置）
   - mask_top.svg     : Mask group 1 (1:174)  → Xパターン背景（マスク内蔵）
   - mask_bottom.svg  : Mask group 2 (1:177)  → ストレッチ写真（マスク内蔵）
   両方ともSVG内に <mask> が閉じているので CSS の mask-image は不要。
   ============================================ */
.bfr {
  position: relative;
  width: 375px;
  height: 756px;
  background: #fff;
  overflow: hidden;
  isolation: isolate;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color: #262626;
}

/* Top X-pattern texture (1:174). 元のFigma座標：
   wrapper 375×751 at (0,0) + 内部rotate(90)+scaleY(-1)+mask 374×507。
   ユーザー提供SVGはマスク適用済み 374×507 の最終形。 */
.bfr__bg-top {
  position: absolute;
  left: 0;
  top: 0;
  width: 374px;
  height: 507px;
  z-index: 0;
  pointer-events: none;
}
.bfr__bg-top img {
  width: 100%;
  height: 100%;
  display: block;
}

/* Bottom stretch photo (1:177). 元のFigma座標：
   wrapper 404.445×581.935 at (-28.81, 341.61) + mask 376×264 at (28.808, 151.387)。
   セクション座標換算：(-28.81+28.808, 341.61+151.387) = (~0, 493) サイズ 376×264。
   ユーザー提供SVGはマスク適用済み 376×263 の最終形。 */
.bfr__bg-bottom {
  position: absolute;
  left: 0;
  top: 493px;
  width: 376px;
  height: 263px;
  z-index: 1;
  pointer-events: none;
}
.bfr__bg-bottom img {
  width: 100%;
  height: 100%;
  display: block;
}

/* Heading: コンプレッション / ストレッチとは？ (1:181)
   Figma: left=50% top=55, translateX(-50%), Noto Serif JP Bold,
   base color #c32f24, base tracking -0.64px (-0.016em on 40px),
   text-align center, white-space nowrap, line-height 1.25 per span. */
.bfr__h {
  position: absolute;
  left: 50%;
  top: 55px;
  margin: 0;
  z-index: 2;
  transform: translateX(-50%);
  font-family: "Noto Serif JP","Yu Mincho",serif;
  font-weight: 700;
  text-align: center;
  letter-spacing: -0.64px;
  white-space: nowrap;
  line-height: 0;            /* outer leading-[0] in Figma */
}
.bfr__h-line {
  display: block;
  margin: 0;
  font-size: 40px;
  line-height: 1.25;
}
.bfr__h-line + .bfr__h-line {
  margin-top: 0;             /* tight stacking */
}
.bfr__h-red   { color: #c32f24; }
.bfr__h-black {
  color: #262626;
  font-size: 32px;
}

/* Body text (1:180): centered at (50%, 348), w=323 h=344
   Figma: 15px Noto Sans Medium (wdth 100), tracking 0.6px (=0.04em on 15px),
   line-height 1.5, text-shadow white halo for legibility on bg images.
   Inline variants:
     .bfr__body-em   = 15px BOLD red (#c32f24, wdth 100)  -- 強調
     .bfr__body-cond = 15px ExtraCondensed Medium (wdth 62.5)
       JP fonts have no width axis, so simulate with transform: scaleX. */
.bfr__body {
  position: absolute;
  left: 50%;
  top: 348px;
  width: 323px;
  height: 344px;
  margin: 0;
  transform: translate(-50%, -50%);
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #262626;
  text-shadow:
    0 0 4px #fff,
    0 0 4px #fff,
    0 0 8px #fff;
}
.bfr__body p { margin: 0; }
.bfr__body-em {
  font-weight: 700;
  color: #c32f24;
}
.bfr__body-cond {
  /* Figmaは Noto Sans の wdth:62.5 軸を指定するが、Noto Sans JP に
     wdth軸はないため、日本語文字は通常幅で描画される（Figma側も同じ）。
     scaleX(0.85) で無理に圧縮すると縦線が異常に細くなり字形が歪むため
     撤去。font-stretch だけ宣言しておく（対応フォントがあれば効く）。 */
  font-stretch: 62.5%;
  white-space: nowrap;
}

/* ============================================
   Solution section (3つの革新)
   Frame: 375 × 2065 per Figma node 1:182
   ============================================ */
.solution {
  position: relative;
  width: 375px;
  height: 2065px;
  background: #fff;
  overflow: hidden;
  isolation: isolate;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color: #fff;
}

/* Section background — single composite PNG taken from Figma render,
   upscaled to 375×2065. This eliminates the complexity of layering photos
   + gradient overlay + texture + masks. */
.solution__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  pointer-events: none;
  display: block;
  max-width: none;
}

/* Black skewed pill: 空気圧×20秒 (parallelogram per Figma SVG path) */
.solution__pill {
  position: absolute;
  left: 50%;
  top: 55px;
  width: 288.438px;
  height: 58.104px;
  transform: translateX(-50%);
  z-index: 3;
}
.solution__pill-bg {
  position: absolute;
  inset: 0;
  background: #000;
  /* SVG path M8.987 0 H288.438 L278.389 57.22 H0 Z (parallelogram cut) */
  clip-path: polygon(
    3.12% 0,             /* 8.987/288.438 */
    100% 0,
    96.51% 100%,         /* 278.389/288.438 */
    0 100%
  );
}
.solution__pill-text {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) skewX(-10deg) scaleY(0.98);
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 40.872px;
  line-height: 1;
  color: #e9cc85;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

/* Heading "身体が変わる新常識" */
.solution__h {
  position: absolute;
  left: 50%;
  top: 114px;
  transform: translateX(-50%);
  z-index: 3;
  margin: 0;
  text-align: center;
  font-family: "Noto Serif JP","Yu Mincho",serif;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #fff;
  white-space: nowrap;
  line-height: 1.45;
}
.solution__h-base { font-size: 35px; }
.solution__h-emp  { font-size: 40px; }

/* Sub heading */
.solution__sub {
  position: absolute;
  left: 50%;
  top: 193px;
  width: 346px;
  transform: translateX(-50%);
  z-index: 3;
  margin: 0;
  text-align: center;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #fff;
}

/* ---------- 3 Cards (sol-card--1/2/3) ---------- */

.sol-card {
  position: absolute;
  left: 15px;
  width: 345px;
  z-index: 4;
  color: #262626;
}
.sol-card--1 { top: 255px;  height: 557px; }
.sol-card--2 { top: 838px;  height: 597px; }
.sol-card--3 { top: 1461px; height: 559px; }

/* Big number 01/02/03 — using Figma-exported PNG directly. The Figma actual
   visible glyph is ~55×44 (the 75.545×76.815 box was the post-skew bbox).
   Display at the natural Figma size for pixel-accurate matching. */
.sol-card__num {
  position: absolute;
  left: 10px;      /* shifted left to match Figma */
  top: 22px;       /* shifted down to match Figma */
  width: 55px;     /* Figma actual rendered "01" width */
  height: auto;
  z-index: 2;
  display: block;
}

/* White tab on top-left — 79×43, top-rounded only */
.sol-card__tab {
  position: absolute;
  left: 0;        /* card-relative: 15-15 = 0 */
  top: 35px;      /* card-relative: 290-255 = 35 (card1), but cards 2/3 differ */
  width: 79px;
  height: 43px;
  background: #fff;
  border-radius: 10px 10px 0 0;
}
.sol-card--2 .sol-card__tab { top: 38px; }      /* 876-838 */
.sol-card--3 .sol-card__tab { top: 35px; }      /* 1496-1461 */

/* Main white card body — top-left CORNER NOT rounded (per Figma)
   Add subtle box-shadow for the "floating" / elevated effect */
.sol-card::before {
  content: "";
  position: absolute;
  left: 0;
  width: 345px;
  background: #fff;
  border-radius: 0 10px 10px 10px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}
.sol-card--1::before { top: 71px;  height: 486px; }       /* 326-255, 486 */
.sol-card--2::before { top: 75px;  height: 522px; }       /* 913-838 */
.sol-card--3::before { top: 72px;  height: 487px; }       /* 1533-1461 */
/* Tab also gets matching shadow on top */
.sol-card__tab {
  box-shadow: 0 -3px 8px rgba(0, 0, 0, 0.12);
}

/* Red pill label on the tab area */
.sol-card__pill {
  position: absolute;
  top: 96px;       /* card1: 351-255=96, card2: 938-838=100, card3: 1557-1461=96 */
  left: 16px;      /* card-rel: 31-15 = 16 */
  width: 65px;
  height: 19px;
  background: #c32f24;
  color: #fff;
  border-radius: 17.798px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 11.607px;
  letter-spacing: 0.04em;
  white-space: nowrap;
  z-index: 1;
}
.sol-card__pill--w94 { width: 94px; }
.sol-card--2 .sol-card__pill { top: 100px; width: 94px; }   /* 938 - 838 */
.sol-card--3 .sol-card__pill { top: 96px;  width: 80px; }    /* 1557 - 1461 */

/* Heading 30px Serif Bold black, 2 lines */
.sol-card__h {
  position: absolute;
  left: 16px;
  top: 116px;     /* card1: 371-255=116 */
  margin: 0;
  font-family: "Noto Serif JP","Yu Mincho",serif;
  font-weight: 700;
  font-size: 30px;
  line-height: 1.45;
  letter-spacing: 0.04em;
  color: #262626;
  z-index: 1;
}
.sol-card__h span { display: block; white-space: nowrap; }
.sol-card--2 .sol-card__h { top: 120px; }    /* 958-838 */
.sol-card--3 .sol-card__h { top: 116px; }    /* 1577-1461 */

/* Body 18px black, with red emphasis */
.sol-card__body {
  position: absolute;
  left: 18px;     /* card-rel: 33-15 */
  width: 306px;
  margin: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #262626;
  z-index: 1;
}
.sol-card__body b {
  font-weight: 700;
  color: #c32f24;
}
.sol-card--1 .sol-card__body { top: 220px; }   /* 475-255 */
.sol-card--2 .sol-card__body { top: 224px; left: 18px; width: 306px; }   /* 1062-838 */
.sol-card--3 .sol-card__body { top: 220px; left: 15px; width: 309px; }   /* 1681-1461, +30 left = 15 + 15? actually card-rel: 30-15=15, w=309 */

/* Photo — plain 315×200 rectangle, no border/shadow per Figma. */
.sol-card__photo {
  position: absolute;
  width: 315px;
  height: 200px;
  overflow: hidden;
  z-index: 1;
}
.sol-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sol-card--1 .sol-card__photo { left: 15px;  top: 337px; }    /* 592-255, card-rel 30-15=15 */
.sol-card--2 .sol-card__photo { left: 26px;  top: 367px; width: 314px; height: 190px; }  /* 1205-838=367, 41-15=26, w=314 h=190 */
.sol-card--3 .sol-card__photo { left: 15px;  top: 339px; }    /* 1800-1461=339 */

/* ============================================
   CTA2 section (Solution直下)
   Frame: 375 × 250 per Figma node 1:232
   ============================================ */
.cta2 {
  position: relative;
  width: 375px;
  height: 250px;
  overflow: hidden;
  isolation: isolate;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color: #fff;
}

/* Background photo (cta_bg_1) extends slightly above section per Figma:
   left=0, top=-74, w=374, h=493 */
.cta2__photo {
  position: absolute;
  left: 0;
  top: -74px;
  width: 374px;
  height: 493px;
  z-index: 0;
  pointer-events: none;
}
.cta2__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Red translucent overlay rgba(149,16,6,0.8) — covers full width × 280 */
.cta2__overlay {
  position: absolute;
  left: -1px;
  top: 0;
  width: 375px;
  height: 280px;
  z-index: 1;
  background: rgba(149, 16, 6, 0.8);
  pointer-events: none;
}

/* Black skewed pill banner (Group 67)
   x=15, y=37, w=345, h=59
   SVG path: M10.7492 0 H345 L332.98 59 L0 59 Z (parallelogram cut) */
.cta2__pill {
  position: absolute;
  left: 15px;
  top: 37px;
  width: 345px;
  height: 59px;
  z-index: 2;
}
.cta2__pill-bg {
  position: absolute;
  inset: 0;
  background: #000;
  clip-path: polygon(
    3.115% 0,             /* 10.7492 / 345 */
    100% 0,
    96.516% 100%,         /* 332.98 / 345 */
    0 100%
  );
}
.cta2__pill-text {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) skewX(-10deg) scaleY(0.98);
  text-align: center;
  white-space: nowrap;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.cta2__pill-text p { margin: 0; line-height: 1.4; }
.cta2__pill-text-line1 {
  font-size: 15.328px;
  color: #fff;
}
.cta2__pill-text-line2 {
  font-size: 19.161px;
  color: #e9cc85;
}

/* "まずは一度、体感してください" sub line + diagonal decorations
   Figma: text at top=119, sides at top=116 with h=26 */
.cta2__sub {
  position: absolute;
  left: 0;
  top: 116px;
  width: 100%;
  height: 26px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.cta2__sub-text {
  margin: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 1.25;
  letter-spacing: 0.04em;
  color: #fff;
  white-space: nowrap;
}
/* Diagonal lines on either side — 10×26 white stroke / shape */
.cta2__sub-deco {
  width: 10px;
  height: 26px;
  display: block;
  flex: 0 0 auto;
}
/* Left side mirrored so the line slopes the other way ( / instead of \ ) */
.cta2__sub-deco--left { transform: scaleX(-1); }

/* Phase 4c: CTA2 buttons */
.cta2__buttons {
  position: absolute;
  left: 15px;
  top: 159px;
  width: 345px;
  height: 55px;
  z-index: 2;
}
.cta2__btn {
  position: absolute;
  top: 0;
  width: 168px;
  height: 55px;
  display: block;
  text-decoration: none;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  font-weight: 500;
  box-sizing: border-box;
}
.cta2__btn--web {
  left: 0;
  background: #19a330;
  border: 1.469px solid #138f28;
  border-radius: 4.898px;
  box-shadow:
    inset 0 1.959px 1.959px #109426,
    1.469px 1.959px 1.959px rgba(0,0,0,0.25);
  color: #fff;
}
.cta2__btn--tel {
  left: 177px;
  background: #f7d650;
  border: 1.504px solid #f4c400;
  border-radius: 5.013px;
  box-shadow: inset 0 2.005px 2.005px #f1cc36;
  color: #350b0b;
}
.cta2__btn-text {
  position: absolute;
  font-size: 20px;
  letter-spacing: 0.04em;   /* tracking 0.8px @ 20px */
  line-height: 1.25;
  text-align: center;
  white-space: nowrap;
  margin: 0;
}
.cta2__btn--web .cta2__btn-text {
  /* Figma section: x=63, y=174, w=90, h=24 → button-local left=48, top=15 */
  left: 48px;
  top: 15px;
  width: 90px;
  height: 24px;
}
.cta2__btn--tel .cta2__btn-text {
  /* Figma section: x=229.87, y=173.73, w=100.02, h=25.54 → button-local left=37.87, top=14.73 */
  left: 37.87px;
  top: 14.73px;
  width: 100.02px;
  height: 25.54px;
}

/* WEB icon (tablet + finger) — single composite PNG (3x retina) provided by user */
.cta2__btn-icon--web {
  position: absolute;
  /* Figma section: x=36, y=177, w=22, h=19.895 → button-local left=21, top=18 */
  left: 21px;
  top: 18px;
  width: 22px;
  height: 19.895px;
  display: block;
  max-width: none;
}

/* Phone icon */
.cta2__btn-icon--phone {
  position: absolute;
  /* Figma section: x=217.25, y=176.68, w=12.624, h=19.643 → button-local left=25.25, top=17.68 */
  left: 25.25px;
  top: 17.68px;
  width: 12.624px;
  height: 19.643px;
  display: block;
  max-width: none;
}

/* Right-side ›  (chevron) */
.cta2__btn-arrow {
  position: absolute;
  /* Figma vector at section x=167.46/344.46, y=182.57, w=3.408, h=8.37 → button-local left=152.46, top=23.57 */
  left: 152.46px;
  top: 23.57px;
  width: 3.408px;
  height: 8.37px;
  display: block;
  max-width: none;
}

/* ==================== Evidence (1:264) ==================== */
.evidence {
  position: relative;
  width: 375px;
  height: 814px;
  background: #fff;
  overflow: hidden;
  isolation: isolate;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color: #262626;
}

/* Phase 3: 背景 */
/* Photo: AdobeStock 509278275 — landscape image, displayed as 375x750 portrait via -90 rotation */
.evidence__photo {
  position: absolute;
  left: 0;
  top: 0;
  width: 375px;
  height: 750px;
  overflow: hidden;
  z-index: 0;
}
.evidence__photo img {
  position: absolute;
  /* natural is landscape (~2:1). After rotate(-90deg)+scaleY(-1) → portrait fitting 375x750 */
  width: 750px;
  height: 375px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-90deg) scaleY(-1);
  max-width: none;
  display: block;
}

/* Red gradient overlay over the photo
   Figma: bg-gradient-to-b from 40.846% red(0.8) to 62.742% transparent, with -scale-y-100 flip.
   Flipped result: transparent at top (0-37%), transition (37-59%), solid red at bottom (59-100%) */
.evidence__overlay {
  position: absolute;
  left: 0;
  top: 29px;
  width: 375px;
  height: 785px;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(47, 5, 2, 0) 0%,
    rgba(47, 5, 2, 0) 37.26%,
    rgba(149, 16, 6, 0.8) 59.15%,
    rgba(149, 16, 6, 0.8) 100%
  );
}

/* Phase 4a: 黒い斜めバナー (Group 67) */
.evidence__pill {
  position: absolute;
  left: 15px;
  top: 54px;
  width: 345px;
  height: 34.468px;
  z-index: 3;
}
.evidence__pill-bg {
  position: absolute;
  inset: 0;
  background: #000;
  /* Path: M10.7492 0H345L332.98 34H0L10.7492 0Z */
  clip-path: polygon(3.115% 0, 100% 0, 96.516% 100%, 0 100%);
}
.evidence__pill-text {
  position: absolute;
  left: calc(50% + 6.54px);
  top: 50%;
  transform: translate(-50%, -50%) skewX(-10deg) scaleY(0.98);
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 25px;
  letter-spacing: 0.04em; /* 1px @ 25px */
  line-height: 1.4;
  color: #fff;
  white-space: nowrap;
  text-align: center;
}
.evidence__pill-squeeze { letter-spacing: -0.0256em; /* -0.64px @ 25px */ }
.evidence__pill-gold { color: #e9cc85; }

/* Phase 4a: 見出し "データが証明する効果。" */
.evidence__heading {
  position: absolute;
  left: 27px;
  top: 102px;
  width: 342px;
  height: 42px;
  margin: 0;
  z-index: 3;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 30px;
  letter-spacing: 0.04em; /* 1.2px @ 30px */
  line-height: 1.4;
  text-align: center;
  color: #262626;
  white-space: nowrap;
}
.evidence__heading-red { color: #d62b2a; }

/* Phase 4b: 白カード領域 (Group 26 / Group 72) */
.evidence__card {
  position: absolute;
  left: 15px;
  top: 189px;
  width: 345px;
  height: 600px;
  z-index: 3;
}
/* Black rounded-top header overlay (Rectangle 17) — y=189..291.5 in section, w=345 */
.evidence__card-head {
  position: absolute;
  left: 0;
  top: 0;
  width: 345px;
  height: 102.506px;
  background: #000;
  border-radius: 10px 10px 0 0;
}
/* White card body (Rectangle 19) — y=275.1..789 in section, w=345 */
.evidence__card-body {
  position: absolute;
  left: 0;
  top: 86.105px; /* 275.105 - 189 */
  width: 345px;
  height: 513.895px;
  background: #fff;
}
/* Title "柔軟性向上の可動域比較" centered in header */
.evidence__card-title {
  position: absolute;
  /* Figma: -translate-x-1/2 left=calc(50%+0.5px) top=212.23 w=290 h=49.2 */
  left: 50%;
  top: 23.235px; /* 212.235 - 189 */
  width: 290px;
  height: 49.203px;
  margin: 0;
  transform: translateX(calc(-50% + 0.5px));
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 25px;
  line-height: 1.45;
  letter-spacing: 0.06em; /* 1.5px @ 25px */
  color: #fff;
  text-align: center;
  white-space: nowrap;
}
.evidence__card-title-gold { color: #e9cc85; }

/* "(自社調査)" subtitle */
.evidence__card-sub {
  position: absolute;
  /* Figma: -translate-x-1/2 left=calc(50%+114px) top=261.44 w=69 h=21.87 */
  left: 50%;
  top: 72.437px; /* 261.437 - 189 */
  width: 69px;
  height: 21.868px;
  margin: 0;
  transform: translateX(calc(-50% + 114px));
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 11px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* 0.44px */
  color: #fff;
  text-align: center;
  white-space: nowrap;
}

/* Body text */
.evidence__card-text {
  position: absolute;
  /* Figma: left=calc(50%-159.5px) top=313 w=321 */
  /* In card-local: section x=28.5, top=313 → card-local left=13.5, top=124 */
  left: 13.5px;
  top: 124px; /* 313 - 189 */
  width: 321px;
  margin: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.09em; /* 1.35px @ 15px */
  color: #262626;
}
.evidence__card-text-red {
  color: #c32f24;
  font-weight: 600;
}

/* Note at bottom */
.evidence__card-note {
  position: absolute;
  /* Figma: left=31 top=743 w=297 h=34 */
  /* In card-local: left=16, top=554 */
  left: 16px;
  top: 554px; /* 743 - 189 */
  width: 297px;
  height: 34px;
  margin: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 12px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* 0.48px */
  color: #262626;
}

/* Phase 4c: チャート画像 (Rectangle 18 + chart + badge + title 全部) */
.evidence__chart {
  position: absolute;
  /* Figma: left=30, top=451, w=315, h=278 */
  left: 30px;
  top: 451px;
  width: 315px;
  height: 278px;
  z-index: 4;
  display: block;
  max-width: none;
}

/* ==================== Supervision (1:301) ==================== */
.supervision {
  position: relative;
  width: 375px;
  height: 1024px;
  background: #fbeded;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color: #262626;
  overflow: hidden;
  isolation: isolate;
}

/* Phase 3: タイトル "監修者の声" */
.supervision__title {
  position: absolute;
  /* Figma: -translate-x-1/2 left=calc(50%+0.5px) top=55 */
  left: 50%;
  top: 55px;
  transform: translateX(calc(-50% + 0.5px));
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 32px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* 1.28px @ 32px */
  color: #262626;
  white-space: nowrap;
  text-align: center;
}

/* Phase 4a: Card 1 - 萩原 三郎 (1:303) */
.supervision__card {
  position: absolute;
  z-index: 2;
}
.supervision__card--1 {
  /* Figma: x=15, y=136, w=345, h=507 */
  left: 15px;
  top: 136px;
  width: 345px;
  height: 507px;
}
.supervision__card-bg {
  position: absolute;
  inset: 0;
  background: #fff;
  border-radius: 10px;
  box-shadow: 2px 4px 4px 0 #c3ab93;
}
.supervision__avatar {
  position: absolute;
  border-radius: 50%;
  overflow: hidden;
  background: #f0f0f0;
  z-index: 1;
}
.supervision__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  max-width: none;
}
.supervision__avatar--1 {
  /* Mask area effective ~88x87 at section x=30, y=155 → card-local left=15, top=19 */
  left: 15px;
  top: 19px;
  width: 88px;
  height: 88px;
}
.supervision__card-name {
  position: absolute;
  /* Figma: x=135, y=168.78, w=62, h=19.84 → card-local left=120, top=32.78 */
  left: 120px;
  top: 32.78px;
  margin: 0;
  width: 62px;
  height: 19.843px;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* 0.56px @ 14px */
  color: #262626;
  white-space: nowrap;
  z-index: 2;
}

/* Red ribbon banner with title */
.supervision__ribbon {
  position: absolute;
  background: #c32f24;
}
.supervision__ribbon--1 {
  /* Figma: x=15, y=191.6, w=345, h=49.6 → card-local left=0, top=55.6 */
  left: 0;
  top: 55.6px;
  width: 345px;
  height: 49.608px;
}
.supervision__ribbon-text {
  position: absolute;
  /* Figma: x=135, y=194.58, w=191, h=44.65 → ribbon-local left=120, top=2.98 */
  left: 120px;
  top: 2.98px;
  margin: 0;
  width: 210px; /* widened from 191 — Chromium renders Japanese slightly wider than Figma */
  height: 44.647px;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 600;
  font-size: 10px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* tightened from 0.08 to fit 3 lines */
  color: #fff;
  white-space: normal;
}

/* Body text */
.supervision__card-body {
  position: absolute;
  margin: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.09em; /* 1.26px @ 14px */
  color: #262626;
}
.supervision__card-body--1 {
  /* Figma: -translate-y-1/2 left=31 top=437.65 w=313 h=361.145 (vertically center)
     center y=437.65, h=361.145 → box top=257.07 → card-local top=121.08 */
  left: 16px;
  top: 121.08px;
  width: 313px;
  height: 361.145px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Phase 4b: Card 2 - 羽藤 泰三 (1:312) */
.supervision__card--2 {
  /* Figma: x=15, y=662, w=345, h=337 */
  left: 15px;
  top: 662px;
  width: 345px;
  height: 337px;
}
.supervision__avatar--2 {
  /* Figma: mask 88x88 at section (30, 676) → card-local left=15, top=14
     But image fills a larger 131x153 container, masked at offset (24, 7).
     So image renders at 131x153, shifted by -24/-7 within the 88x88 circle. */
  left: 15px;
  top: 14px;
  width: 88px;
  height: 88px;
}
.supervision__avatar--2 img {
  width: 131px;
  height: 153px;
  left: -24px;
  top: -7px;
  position: absolute;
  object-fit: cover;
  max-width: none;
}
.supervision__card-name--2 {
  /* Figma: x=135, y=700 → card-local left=120, top=38 */
  left: 120px;
  top: 38px;
  width: auto;
  height: auto;
}
.supervision__ribbon--2 {
  /* Figma: x=15, y=723, w=345, h=30 → card-local left=0, top=61 */
  left: 0;
  top: 61px;
  width: 345px;
  height: 30px;
}
.supervision__ribbon-text--2 {
  /* Figma: x=135, y=731 → ribbon-local left=120, top=8. whitespace-nowrap */
  left: 120px;
  top: 8px;
  width: auto;
  height: auto;
  white-space: nowrap;
}
.supervision__card-body--2 {
  /* Figma: left=31, top=779, w=313 → card-local left=16, top=117 */
  left: 16px;
  top: 117px;
  width: 313px;
}

/* ==================== Testimonials (1:321) ==================== */
.testimonials {
  position: relative;
  width: 375px;
  height: 1557px;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color: #262626;
  overflow: hidden;
  isolation: isolate;
}

/* Phase 3: 背景写真 */
.testimonials__photo {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.testimonials__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Phase 4a: ヘッダー */
.testimonials__eyebrow {
  position: absolute;
  left: 50%;
  top: 55px;
  width: 222px;
  height: 39px;
  transform: translateX(calc(-50% + 0.5px));
  z-index: 2;
}
.testimonials__eyebrow-pill {
  position: absolute;
  inset: 0;
  background: #000;
  border-radius: 23px;
}
.testimonials__eyebrow-text {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(calc(-50% + 5.06px), -50%);
  margin: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* 0.8px @ 20px */
  color: #e2c25f;
  text-align: center;
  white-space: nowrap;
}
.testimonials__eyebrow-arrow {
  position: absolute;
  left: 50%;
  top: 32px; /* 87 - 55 (eyebrow top) */
  width: 8.784px;
  height: 14px;
  transform: translateX(calc(-50% + 0.61px)) rotate(180deg);
  display: block;
  max-width: none;
}
.testimonials__heading {
  position: absolute;
  /* Figma: x=39, y=113, w=297, h=46 */
  left: 39px;
  top: 113px;
  width: 297px;
  height: 46px;
  margin: 0;
  z-index: 2;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 32px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* 1.28px @ 32px */
  color: #262626;
  text-align: center;
  white-space: nowrap;
}

/* Phase 4b-d: Cards */
.testimonials__card {
  position: absolute;
  z-index: 2;
}
.testimonials__card-bg {
  position: absolute;
  background: #fff;
  border-radius: 10px;
  box-shadow: 2px 4px 4px 0 rgba(195, 171, 147, 0.5);
}
.testimonials__avatar {
  position: absolute;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  overflow: hidden;
  background: #f0f0f0;
  z-index: 1;
}
.testimonials__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  max-width: none;
}
.testimonials__card-name {
  position: absolute;
  margin: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* 0.72px @ 18px */
  color: #c32f24;
  z-index: 2;
}
.testimonials__card-name p {
  margin: 0;
  line-height: 1.45;
}
.testimonials__card-body {
  position: absolute;
  margin: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.09em; /* 1.26px @ 14px */
  color: #262626;
  z-index: 2;
}
.testimonials__card-body p {
  margin: 0;
  line-height: 2;
}
.testimonials__highlight {
  color: #b6933c;
  letter-spacing: 0.103em; /* 1.44px @ 14px */
}

/* Card 1 - T.Mさん (1:331) */
.testimonials__card--1 {
  /* Card outer: x=15, y=196, w=345, h=326 */
  left: 15px;
  top: 196px;
  width: 345px;
  height: 326px;
}
.testimonials__card-bg--1 {
  /* Card bg starts at y=225 (29px below avatar top) and is shorter */
  left: 0;
  top: 29px; /* 225 - 196 */
  width: 345px;
  height: 297px;
}
.testimonials__avatar--1 {
  /* Avatar 88x88 at section (31, 196) → card-local (16, 0) */
  left: 16px;
  top: 0;
}
.testimonials__card-name--1 {
  /* Title at section (131, 255) → card-local (116, 59) */
  left: 116px;
  top: 59px;
}
.testimonials__card-body--1 {
  /* Body at section (30, 294) → card-local (15, 98) */
  left: 15px;
  top: 98px;
  width: 313px;
}

/* Card 2 - T.Tさん (1:339) */
.testimonials__card--2 {
  /* x=15, y=554, w=345, h=190 */
  left: 15px;
  top: 554px;
  width: 345px;
  height: 190px;
}
.testimonials__card-bg--2 {
  /* x=15, y=579, w=345, h=165 */
  left: 0;
  top: 25px; /* 579 - 554 */
  width: 345px;
  height: 165px;
}
.testimonials__avatar--2 {
  /* Avatar 88x88 at section (30, 554) → card-local (15, 0).
     PNG provided by user is already pre-masked (264x264 with transparent corners),
     so just display at 88x88. No offset needed. */
  left: 15px;
  top: 0;
}
.testimonials__card-name--2 {
  /* x=128, y=609, w=216 → card-local (113, 55), text-right */
  left: 113px;
  top: 55px;
  width: 216px;
  text-align: right;
}
.testimonials__card-body--2 {
  /* x=31, y=653 → card-local (16, 99) */
  left: 16px;
  top: 99px;
  width: 313px;
}

/* Card 3 - T.Aさん (1:346) */
.testimonials__card--3 {
  /* x=15, y=776, w=345, h=536 */
  left: 15px;
  top: 776px;
  width: 345px;
  height: 536px;
}
.testimonials__card-bg--3 {
  /* x=15, y=788, w=345, h=524 */
  left: 0;
  top: 12px; /* 788 - 776 */
  width: 345px;
  height: 524px;
}
.testimonials__avatar--3 {
  /* Avatar 88x88 at section (30, 776) → card-local (15, 0) */
  left: 15px;
  top: 0;
}
.testimonials__card-name--3 {
  /* Figma: x=141, y=818, w=151, h=52 → card-local (126, 42), whitespace-nowrap, 2 lines */
  left: 126px;
  top: 42px;
  width: 151px;
  white-space: nowrap;
}
.testimonials__card-body--3 {
  /* x=30, y=885 → card-local (15, 109) */
  left: 15px;
  top: 109px;
  width: 313px;
}

/* Phase 4e: 評価バッジ */
.testimonials__badge {
  position: absolute;
  width: 136.35px;
  height: 136.35px;
  display: block;
  max-width: none;
  z-index: 2;
}
.testimonials__badge--hp {
  /* Figma: x=39, y=1345, w=136.35, h=136.35 */
  left: 39px;
  top: 1345px;
}
.testimonials__badge--google {
  /* Figma: x=199.35, y=1345, w=136.35, h=136.35 */
  left: 199.35px;
  top: 1345px;
}
.testimonials__note {
  position: absolute;
  /* Figma: x=18, y=1497, w=343, h=32 */
  left: 18px;
  top: 1497px;
  width: 343px;
  margin: 0;
  z-index: 2;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.04em; /* 0.44px @ 11px */
  color: #262626;
}
.testimonials__note p {
  margin: 0;
  line-height: 1.45;
}

/* ---------- Ratings ---------- */
.ratings {
  background: var(--cream-light);
  padding: 0 18px 24px;
}
.rating-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.rating {
  background: var(--red);
  color: #fff;
  border-radius: 999px;
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}
.rating-stars {
  font-size: 13px;
  letter-spacing: 0.04em;
  color: #FFD25A;
}
.rating-num {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 22px;
  line-height: 1;
}
.rating-source {
  font-size: 9px;
  opacity: 0.95;
}

/* ==================== Flow (1:595) ==================== */
.flow {
  position: relative;
  width: 375px;
  height: 1792px;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color: #262626;
  overflow: hidden;
  isolation: isolate;
}

/* Phase 3: 背景写真 — Figma レンダリング済み 3枚（クロップ異なる）*/
.flow__photo {
  position: absolute;
  left: 0;
  width: 375px;
  display: block;
  z-index: 0;
}
.flow__photo--1 { top: 0;    height: 757px; }  /* Figma 1:596: 375x757 */
.flow__photo--2 { top: 757px;  height: 757px; }  /* Figma 1:597: 374x757 */
.flow__photo--3 { top: 1514px; height: 279px; }  /* Figma 1:598: 374x279 (合計1793 ≈ section 1792) */

/* Phase 4b1: Card - frame + dot bg (完全レンダリング済み PNG) */
.flow__card {
  position: absolute;
  z-index: 2;
  display: block;
  max-width: none;
}
.flow__card--1 {
  /* Figma Group 31: x=15, y=141, w=345, h=349 */
  left: 15px;
  top: 141px;
  width: 345px;
  height: 349px;
}

/* Phase 4b2: ステップ写真 (Figma レンダリング済み 2枚オーバーラップ PNG) */
.flow__photo-step {
  position: absolute;
  z-index: 3;
  display: block;
  max-width: none;
}
.flow__photo-step--1 {
  /* Figma Mask group 1:607: x=32, y=185, w=312, h=148 */
  left: 32px;
  top: 185px;
  width: 312px;
  height: 148px;
}

/* Phase 4b3: 数字バッジ + タイトル + 本文 */
.flow__num {
  position: absolute;
  z-index: 4;
  display: block;
  max-width: none;
}
.flow__num--1 {
  /* Figma 1:611 node bounds: x=44.55, y=147, w=75.55, h=76.82
     PNG natural 188×124 (wider than tall due to skew). User-adjusted: smaller + shifted left+down. */
  left: 35px;
  top: 162px;
  width: 62px;
  height: auto;
}
.flow__card-title {
  position: absolute;
  z-index: 4;
  margin: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  line-height: 1.45;
  color: #262626;
  text-align: center;
  white-space: nowrap;
}
.flow__card-title--1 {
  /* Figma 1:605: -translate-x-1/2 left=188.5 top=353, font-size 25, tracking 1px */
  left: 50%;
  top: 353px;
  width: auto;
  transform: translateX(calc(-50% - 187.5px + 188.5px)); /* shift center to x=188.5 in section, but section is parent so 188.5 = center of section width 375 + 1 */
  font-size: 25px;
  letter-spacing: 0.04em; /* 1px @ 25px */
}
.flow__card-body {
  position: absolute;
  z-index: 4;
  margin: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  line-height: 1.45;
  color: #262626;
  text-align: center;
  white-space: nowrap;
}
.flow__card-body--1 {
  /* Figma 1:606: -translate-x-1/2 left=192.5 top=401, font-size 15, tracking 0.6px */
  left: 50%;
  top: 401px;
  width: auto;
  transform: translateX(calc(-50% - 187.5px + 192.5px));
  font-size: 15px;
  letter-spacing: 0.04em; /* 0.6px @ 15px */
}

/* Phase 4c: Card 2 (Group 51) */
.flow__card--2 {
  /* Figma Group 51: x=15, y=531, w=345, h=349 */
  left: 15px;
  top: 531px;
  width: 345px;
  height: 349px;
}
.flow__photo-step--2 {
  /* Figma Mask group 1:630: x=32, y=575, w=312, h=148 */
  left: 32px;
  top: 575px;
  width: 312px;
  height: 148px;
}
.flow__num--2 {
  /* Figma 1:633: section x=44.55, y=537. Apply same delta as Card 1 (-9.55, +15) */
  left: 35px;
  top: 552px;
  width: 62px;
  height: auto;
}
.flow__card-title--2 {
  /* Figma 1:628: x=46, y=743, w=285, h=36; center=188.5, font-size 25, tracking 1px */
  left: 50%;
  top: 743px;
  width: auto;
  transform: translateX(calc(-50% - 187.5px + 188.5px));
  font-size: 25px;
  letter-spacing: 0.04em; /* 1px @ 25px */
}
.flow__card-body--2 {
  /* Figma 1:629: x=27, y=791, w=327, h=44 (2 lines), text-center, font-size 15, tracking 0.6px
     center = 27+327/2 = 190.5 */
  left: 50%;
  top: 791px;
  width: auto;
  transform: translateX(calc(-50% - 187.5px + 190.5px));
  font-size: 15px;
  letter-spacing: 0.04em;
}
.flow__card-body--2 p {
  margin: 0;
  line-height: 1.45;
  white-space: nowrap;
}

/* Phase 4d: Card 3 (Group 52) */
.flow__card--3 {
  /* Figma Group 52: x=15, y=923, w=346, h=349 */
  left: 15px;
  top: 923px;
  width: 345px;
  height: 349px;
}
.flow__photo-step--3 {
  /* Figma Mask group 1:619: x=32, y=967, w=312, h=148 */
  left: 32px;
  top: 967px;
  width: 312px;
  height: 148px;
}
.flow__num--3 {
  /* Figma 1:622: section x=44.55, y=929. Same delta (-9.55, +15) */
  left: 35px;
  top: 944px;
  width: 62px;
  height: auto;
}
.flow__card-title--3 {
  /* Figma 1:617: x=150, y=1135, w=77, h=36; center=188.5, font-size 25 */
  left: 50%;
  top: 1135px;
  width: auto;
  transform: translateX(calc(-50% - 187.5px + 188.5px));
  font-size: 25px;
  letter-spacing: 0.04em;
}
.flow__card-body--3 {
  /* Figma 1:618: x=24, y=1183, w=337, h=44 (2 lines), text-center, font-size 15
     center = 24+337/2 = 192.5 */
  left: 50%;
  top: 1183px;
  width: auto;
  transform: translateX(calc(-50% - 187.5px + 192.5px));
  font-size: 15px;
  letter-spacing: 0.04em;
}
.flow__card-body--3 p {
  margin: 0;
  line-height: 1.45;
  white-space: nowrap;
}

/* Phase 4e: Card 4 (Group 53) - taller h=403, body wraps multi-line */
.flow__card--4 {
  /* Figma Group 53: x=15, y=1307, w=345, h=403 */
  left: 15px;
  top: 1307px;
  width: 345px;
  height: 403px;
}
.flow__photo-step--4 {
  /* Figma Mask group 1:641: x=32, y=1351, w=312, h=148 */
  left: 32px;
  top: 1351px;
  width: 312px;
  height: 148px;
}
.flow__num--4 {
  /* Figma 1:644: section x=44.55, y=1313. Same delta (-9.55, +15) */
  left: 35px;
  top: 1328px;
  width: 62px;
  height: auto;
}
.flow__card-title--4 {
  /* Figma 1:639: x=72, y=1519, w=233, h=36; center=188.5, font-size 25 */
  left: 50%;
  top: 1519px;
  width: auto;
  transform: translateX(calc(-50% - 187.5px + 188.5px));
  font-size: 25px;
  letter-spacing: 0.04em;
}
.flow__card-body--4 {
  /* Figma 1:640: x=32, y=1567, w=313, h=88 (multi-line wrap, single <p>) — left/top NOT center transform */
  left: 32px;
  top: 1567px;
  width: 313px;
  font-size: 15px;
  letter-spacing: 0.04em;
  line-height: 1.45;
  white-space: normal; /* allow wrapping */
  text-align: left;
}

/* Phase 4f: 注釈 */
.flow__note {
  position: absolute;
  /* Figma 1:645: x=15, y=1758, w=230, h=16, font 11 Medium, tracking 0.77px */
  left: 15px;
  top: 1758px;
  width: 230px;
  margin: 0;
  z-index: 4;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 11px;
  line-height: 1.45;
  letter-spacing: 0.07em; /* 0.77px @ 11px */
  color: #000;
  white-space: nowrap;
}

/* Phase 4a: 見出し「ご来店の流れ」 */
.flow__heading {
  position: absolute;
  /* Figma: x=89, y=55, w=199, h=46 */
  left: 89px;
  top: 55px;
  width: 199px;
  height: 46px;
  margin: 0;
  z-index: 2;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 32px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* 1.28px @ 32px */
  color: #262626;
  text-align: center;
  white-space: nowrap;
}


/* ==================== FAQ (1:646) ==================== */
.faq {
  position: relative;
  width: 375px;
  background: #fceedb;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color: #262626;
  padding-bottom: 40px;
  isolation: isolate;
}

/* Phase 3: 見出し「よくある質問」 */
.faq__heading {
  position: relative;
  margin: 0 0 33px; /* heading bottom to banner top: y=134 - (55+46) = 33 */
  padding: 55px 0 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 32px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* 1.28px @ 32px */
  color: #000;
  text-align: center;
}

/* Phase 4a: 黒バナー */
.faq__banner {
  /* Frame 20: 375×40, bg black, text 16px Medium #fff3de tracking 0.04em */
  width: 375px;
  height: 40px;
  margin: 0 0 23px; /* banner bottom y=174, first item y=197 → gap 23 */
  background: #000;
  color: #fff3de;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 40px;
  letter-spacing: 0.04em;
  text-align: center;
}
/* second section banner has top margin to separate from previous list */
.faq__banner--2 {
  margin-top: 23px;
}

/* FAQ list */
.faq__list {
  list-style: none;
  margin: 0;
  padding: 0 15px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Each item */
.faq__item {
  background: #fff;
  overflow: hidden;
}

/* Question button (closed state header) */
.faq__q {
  display: grid;
  grid-template-columns: 26px 1fr 16px;
  align-items: center;
  gap: 8px; /* match Figma: icon end x=41, text starts x=49 → 8px gap */
  width: 100%;
  padding: 19px 17px 19px 15px;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  font-size: inherit;
  color: inherit;
}

/* Q circle (dark, "Q" cream) */
.faq__q-circle {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #262626;
  color: #fff3de;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 15.85px;
  line-height: 1;
  letter-spacing: 0;
  flex-shrink: 0;
  padding-bottom: 2px; /* visual centering: Q descender makes baseline-center off; lift letter ~1-2px */
  box-sizing: border-box;
}

/* Q text (red) */
.faq__q-text {
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* 0.64px */
  color: #c32f24;
}

/* Toggle: + when closed, − when open */
.faq__toggle {
  width: 16px;
  height: 16px;
  position: relative;
  flex-shrink: 0;
}
.faq__toggle::before,
.faq__toggle::after {
  content: "";
  position: absolute;
  background: #262626;
  transition: transform 0.2s;
}
/* Horizontal bar (always visible) */
.faq__toggle::before {
  left: 0;
  top: 50%;
  width: 16px;
  height: 1.5px;
  transform: translateY(-50%);
}
/* Vertical bar (hidden when open) */
.faq__toggle::after {
  left: 50%;
  top: 0;
  width: 1.5px;
  height: 16px;
  transform: translateX(-50%);
}
/* When expanded, hide vertical bar (so only "−" remains) */
.faq__q[aria-expanded="true"] .faq__toggle::after {
  transform: translateX(-50%) scaleY(0);
}

/* Answer (hidden when closed) */
.faq__a {
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 8px; /* same as Q: icon-end x=41, text x=49 */
  padding: 0 14px 19px 15px; /* right padding 14 → text width 281 to match Figma wrap */
  align-items: flex-start;
}
.faq__a[hidden] {
  display: none;
}
.faq__a-circle {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #c32f24;
  color: #fff3de;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 15.85px;
  line-height: 1;
  flex-shrink: 0;
  padding-bottom: 2px;
  box-sizing: border-box;
}
.faq__a-text {
  margin: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #262626;
}

/* ==================== Access (1:755) ==================== */
.access {
  position: relative;
  width: 375px;
  background: #fff;
  font-family: "Noto Sans","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color: #262626;
  padding: 0 0 40px;
  isolation: isolate;
}

/* Phase 3: 見出し + 店舗名 */
.access__heading {
  margin: 0;
  padding: 55px 0 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 32px;
  line-height: 1.45;
  letter-spacing: 0.04em;
  color: #000;
  text-align: center;
}
.access__name {
  margin: 4px 0 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #262626;
  text-align: center;
}

/* Phase 4a: 画像カルーセル */
.access__carousel {
  margin: 20px 0 0;
}
.access__carousel-track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  cursor: grab;
  user-select: none;
}
.access__carousel-track.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.access__carousel-track::-webkit-scrollbar { display: none; }
/* prevent images from being draggable (so mouse drag scrolls instead) */
.access__carousel-page img { user-drag: none; -webkit-user-drag: none; pointer-events: none; }
.access__carousel-page {
  flex: 0 0 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  padding: 0 15px;
  box-sizing: border-box;
  scroll-snap-align: start;
}
.access__carousel-page img {
  width: 100%;
  aspect-ratio: 483 / 513;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}
.access__carousel-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 12px 0 0;
}
.access__carousel-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #d4c8b8;
  transition: background 0.2s;
}
.access__carousel-dot.is-active {
  background: #262626;
}

/* Phase 4b: 店舗情報テーブル */
.access__info {
  margin: 24px 24px 0;
  padding: 0;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
}
.access__info-row {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 24px;
  padding: 14px 0;
  border-bottom: 1px solid #e5d8c5;
  align-items: start;
}
.access__info-row:first-child {
  border-top: 1px solid #e5d8c5;
}
.access__info-label {
  margin: 0;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #262626;
}
.access__info-value {
  margin: 0;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #262626;
}
.access__info-value a {
  color: inherit;
  text-decoration: none;
}

/* Phase 4c: Google Maps embed */
.access__map {
  margin: 24px 24px 0;
}
.access__map iframe {
  width: 100%;
  height: 230px;
  border: 0;
  display: block;
  border-radius: 4px;
}

/* ---------- Footer ---------- */
/* ==================== 追従フッターCTA (1:954) - 白背景バー＋ボタン ==================== */
.sticky-cta-bar {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  width: 100%;
  max-width: 375px; /* LP コンテンツ幅に揃える */
  background: #fff;
  padding: 0;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.08);
  display: flex;
  justify-content: center;
}
.sticky-cta {
  position: relative;
  z-index: 1;
  width: 332px;
  max-width: calc(100vw - 24px);
  display: block;
  text-decoration: none;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
}
/* Black pill (完全レンダリング済み画像, 677×129 = 226×43 @ 3x) */
.sticky-cta__pill {
  position: relative;
  display: block;
  width: 226px;
  margin: 0 auto;
  z-index: 2;
  line-height: 0;
}
.sticky-cta__pill-bg {
  display: block;
  width: 100%;
  height: auto;
}
.sticky-cta__pill-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  line-height: 1;
}
/* "初回限定" - Figma: 20.056px Noto Sans SemiBold / JP Bold, white, tracking 0.4011px (≈ 0.02em) */
.sticky-cta__pill-label {
  color: #fff;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 600;
  font-size: 20.056px;
  line-height: 1.34;
  letter-spacing: 0.02em;
}
/* "4" "400" - Figma: 31.854px Noto Sans SemiBold, gold #efdc6c, tracking -1.2742px (-0.04em). Shifted up to overflow pill top more. */
.sticky-cta__pill-num {
  color: #efdc6c;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 600;
  font-size: 31.854px;
  line-height: 1.34;
  letter-spacing: -0.04em;
  position: relative;
  top: -4px;
}
/* "," - Figma: 31.854px Noto Sans Medium / JP Bold, gold #efdc6c, tracking -1.2742px */
.sticky-cta__pill-comma {
  color: #efdc6c;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 500;
  font-size: 31.854px;
  line-height: 1.34;
  letter-spacing: -0.04em;
  position: relative;
  top: -4px;
}
/* "円" - Figma: 20.056px gold #efdc6c, with margin from preceding digit */
.sticky-cta__pill-yen {
  color: #efdc6c;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 600;
  font-size: 20.056px;
  line-height: 1.34;
  letter-spacing: 0.02em;
  margin-left: 4px; /* gap between "400" and "円" */
}
/* Red button (画像背景, 332×78) */
.sticky-cta__btn {
  position: relative;
  display: block;
  width: 100%;
  height: 78px;
  margin-top: -18px; /* pill overlaps button more so pill sits deeper */
}
.sticky-cta__btn-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
/* Figma: 29.494px Noto Sans SemiBold / Noto Sans JP Bold, white, tracking 0.5899px, centered in button (78×332). Slightly lower than center to balance with pill above. */
.sticky-cta__btn-text {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) translateY(4px);
  color: #fff;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 600;
  font-size: 29.494px;
  line-height: 1.34;
  letter-spacing: 0.02em; /* 0.5899px @ 29.494 = 0.02em */
  white-space: nowrap;
  text-align: center;
}

/* ==================== Footer / Copyright (1:817) ==================== */
.site-footer {
  /* Figma: bg black, padding 2px 69px, text 11px Noto Sans SemiBold/JP Bold, white, tracking 0.04em, lh 1.45 */
  width: 375px;
  background: #000;
  color: #fff;
  padding: 2px 69px;
  text-align: center;
  font-family: "Noto Sans","Noto Sans JP",sans-serif;
  font-weight: 600;
  font-size: 11px;
  line-height: 1.45;
  letter-spacing: 0.04em; /* 0.44px @ 11px */
  box-sizing: border-box;
}
.site-footer p { margin: 0; white-space: nowrap; }

/* ---------- Larger screens (max 480px wrapper) ---------- */
/* (Removed old dark bg rule — desktop uses cream bg now via @media 768px) */
