/* ========================================
   名工ハウジング LP2
   WordPress テーマ用 CSS
   Figma 375px SP準拠 - 固定幅レイアウト
   ======================================== */

/* --- リセット・ベース（.lp スコープ / :where で詳細度を抑える） --- */
:where(.lp) *,
:where(.lp) *::before,
:where(.lp) *::after { margin: 0; padding: 0; box-sizing: border-box; }
:where(.lp) img { max-width: 100%; height: auto; display: block; }
:where(.lp) a { text-decoration: none; }
:where(.lp) ul { list-style: none; }

/* --- WordPress テーマ干渉防止 --- */
html, body {
  width: 100%;
  margin: 0;
  padding: 0;
}
body {
  background: #d6d6d6;
  font-family: 'Noto Sans JP', sans-serif;
  color: #1A1A1A;
  line-height: 1.55;
}

/* --- LPコンテナ（常にSP表示） --- */
.lp {
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
  overflow: hidden;
  background: #fff;
  font-size: 14px;
  font-family: 'Noto Sans JP', sans-serif;
  color: #1A1A1A;
  line-height: 1.55;
  -webkit-text-size-adjust: 100%;
}

/* ========================================
   1. FV（ファーストビュー）- 画像ベース
   ======================================== */
.fv {
  position: relative;
  overflow: hidden;
  aspect-ratio: 375 / 530;
}
.fv__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 0;
}
.fv__bg-img { width: 100%; display: block; }
.fv__bubbles {
  position: absolute;
  z-index: 3;
  top: 1%;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  gap: 2%;
  padding: 0 1%;
}
.fv__bubble { width: 100%; display: block; }
.fv__bubbles picture { width: 31%; }
.fv__person {
  position: absolute;
  z-index: 2;
  right: 0;
  top: 16%;
  width: 57.33%;
  margin: 0;
}
.fv__person-img { width: 100%; display: block; }
.fv__copy {
  position: absolute;
  z-index: 1;
  top: 24%;
  left: 0;
  width: 150%;
  margin: 0;
}
.fv__copy-img { width: 100%; display: block; }
.fv__catch {
  position: absolute;
  z-index: 2;
  top: 63%;
  left: 0;
  width: 84%;
}
.fv__catch-img { width: 100%; display: block; }
.fv__badge {
  position: absolute;
  z-index: 2;
  bottom: 0;
  left: 0;
  width: 100%;
}
.fv__badge-img { width: 100%; display: block; }

/* --- FV オープニングアニメーション --- */
@keyframes fv-bubble-in {
  0%   { opacity: 0; transform: scale(0.3) translateY(40px); filter: blur(4px); }
  40%  { opacity: 1; filter: blur(0); }
  50%  { transform: scaleX(1.18) scaleY(0.85) translateY(0); }
  65%  { transform: scaleX(0.9) scaleY(1.12) translateY(-5px); }
  78%  { transform: scaleX(1.06) scaleY(0.95) translateY(0); }
  88%  { transform: scaleX(0.98) scaleY(1.03) translateY(-1px); }
  100% { opacity: 1; transform: scale(1) translateY(0); filter: blur(0); }
}
@keyframes fv-slide-right {
  from { opacity: 0; transform: translateX(30%); filter: blur(4px); }
  to   { opacity: 1; transform: translateX(0); filter: blur(0); }
}
@keyframes fv-slide-left {
  from { opacity: 0; transform: translateX(-20%); filter: blur(4px); }
  to   { opacity: 1; transform: translateX(0); filter: blur(0); }
}
@keyframes fv-slide-up {
  from { opacity: 0; transform: translateY(30px); filter: blur(4px); }
  to   { opacity: 1; transform: translateY(0); filter: blur(0); }
}

.fv__bubbles picture:nth-child(1) {
  animation: fv-bubble-in 0.9s ease-out 1.0s both;
}
.fv__bubbles picture:nth-child(2) {
  animation: fv-bubble-in 0.9s ease-out 1.13s both;
}
.fv__bubbles picture:nth-child(3) {
  animation: fv-bubble-in 0.9s ease-out 1.26s both;
}
.fv__person {
  animation: fv-slide-right 0.7s cubic-bezier(0.22,1,0.36,1) 1.5s both;
}
.fv__copy {
  animation: fv-slide-left 0.6s cubic-bezier(0.22,1,0.36,1) 1.7s both;
}
.fv__catch {
  animation: fv-slide-left 0.55s cubic-bezier(0.22,1,0.36,1) 1.9s both;
}
.fv__badge {
  animation: fv-slide-up 0.55s cubic-bezier(0.22,1,0.36,1) 2.1s both;
}

/* ========================================
   2. 成功実績カード（無限スライド）
   ======================================== */
.cards {
  background: #FFFFFF;
  overflow: hidden;
  padding: 10px 0;
  animation: fv-slide-up 0.4s cubic-bezier(0.22,1,0.36,1) 2.65s both;
}
.cards__track {
  display: flex;
  gap: 12px;
  width: max-content;
  animation: cards-slide 20s linear infinite;
}
@keyframes cards-slide {
  0% { transform: translateX(0); }
  100% { transform: translateX(calc(-50% - 6px)); }
}
@keyframes cards-slide-pc {
  0% { transform: translateX(0); }
  100% { transform: translateX(calc(-50% - 12px)); }
}
.success-card {
  flex: 0 0 auto;
  width: 145px;
  background: #2A3E53;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 6px;
  overflow: hidden;
  text-align: center;
}
.success-card__top {
  padding: 4px 6px 8px;
  border-bottom: none;
}
.success-card__divider {
  width: 100%;
  height: 1px;
  background: rgba(255,255,255,0.8);
  margin-bottom: 8px;
}
.success-card__lead {
  font-weight: 900;
  font-size: 17px;
  color: #FFFB0E;
  line-height: 1.35;
  letter-spacing: 0.02em;
  display: block;
}
.success-card__lead-line1 {
  white-space: nowrap;
}
.success-card__num {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 26px;
  color: #FFFB0E;
  display: inline;
}
.success-card__info {
  background: #fff;
  font-weight: 700;
  font-size: 12px;
  color: #2A3E53;
  padding: 2px 10px;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.success-card__detail {
  font-weight: 500;
  font-size: 12px;
  color: #fff;
  line-height: 1.2;
  padding: 4px 4px 8px;
}

/* ========================================
   3. CTA（白背景）- 画像ベース
   ======================================== */
.cta {
  background: #fff;
  padding: 16px 12px 32px;
}
.cta__link {
  display: block;
  animation: cta-pulse 1.4s ease-in-out infinite;
}
.cta__img { width: 100%; display: block; }

/* --- CTA（ダーク背景）- 画像ベース --- */
.cta-dark {
  position: relative;
  overflow: hidden;
}
.cta-dark__bg {
  width: 100%;
  display: block;
}
.cta-dark__link {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 0 12px 28px;
  animation: cta-pulse 1.4s ease-in-out infinite;
}
.cta-dark__btn {
  width: 100%;
  max-width: 351px;
  display: block;
}

@keyframes cta-pulse {
  0%   { transform: scale(1, 1) rotate(0deg); }
  12%  { transform: scale(1.05, 0.95) rotate(-0.5deg); }
  24%  { transform: scale(0.97, 1.04) rotate(0.4deg); }
  36%  { transform: scale(1.03, 0.97) rotate(-0.3deg); }
  48%  { transform: scale(0.99, 1.02) rotate(0.2deg); }
  60%  { transform: scale(1.01, 0.99) rotate(-0.1deg); }
  72%  { transform: scale(1, 1) rotate(0deg); }
  100% { transform: scale(1, 1) rotate(0deg); }
}

/* (4. これまでに → 画像に差し替え済み) */

/* ========================================
   5. こんなお悩みありませんか？
   ======================================== */
.worry {
  position: relative;
  z-index: 10;
  padding: 32px 16px 20px;
}
.worry__bg {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0.15;
}
.worry__content { position: relative; z-index: 1; }
.worry__title {
  font-weight: 900;
  font-size: 38px;
  color: #1A1A1A;
  text-align: center;
  margin-bottom: 20px;
  line-height: 1.4;
}
.worry__title-hl {
  color: #2A3E53;
  font-size: 52px;
  background: linear-gradient(transparent 60%, #FFFB0E 60%);
}
.worry__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.worry__item {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.worry__check {
  flex-shrink: 0;
  width: 28px; height: 28px;
  background: #0BA26B;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
}
.worry__item p {
  font-weight: 700;
  font-size: 15px;
  color: #1A1A1A;
  line-height: 1.5;
}
.worry__arrow {
  width: 0; height: 0;
  margin: 20px auto -40px;
  position: relative;
  z-index: 2;
  border-left: 90px solid transparent;
  border-right: 90px solid transparent;
  border-top: 32px solid #0BA26B;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.2));
}

/* (6. 高金利の悪循環 → 画像に差し替え済み) */

/* ========================================
   6.5. 金利カード（消費者金融・ショッピングローン） Figma 760-2111
   ======================================== */
.interest-card-wrap {
  padding: 0 16px 48px;
  margin-top: -20px;
  position: relative;
  z-index: 2;
}
.interest-card {
  position: relative;
  background: #fff;
  border-radius: 12px;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.24));
  overflow: visible;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 24px 8px 8px;
}
.interest-card__icon {
  position: relative;
  z-index: 2;
  width: 56px;
  height: auto;
  margin-bottom: -20px;
  flex-shrink: 0;
}
.interest-card__banner {
  position: relative;
  z-index: 1;
  background: #2A3E53;
  color: #fff;
  font-weight: 700;
  font-size: 18px;
  text-align: center;
  padding: 16px 20px;
  border-radius: 1000px;
  line-height: 1.2;
  letter-spacing: 0.02em;
  margin-bottom: -8px;
  width: fit-content;
  white-space: nowrap;
}
.interest-card__rate-wrap {
  position: relative;
  display: inline-flex;
  align-items: flex-start;
}
.interest-card__rate {
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: 52px;
  color: #FE1000;
  text-align: center;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.interest-card__rate-note {
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: 12px;
  color: #5B5B5B;
  line-height: 1.2;
  margin-top: 4px;
}
.interest-card__footnote {
  font-size: 10px;
  color: #5B5B5B;
  line-height: 1.75;
  letter-spacing: 0.02em;
  text-align: left;
  width: 100%;
}
.interest-card__body {
  background: #F4F4F4;
  padding: 10px;
  border-radius: 12px;
  width: 100%;
}
.interest-card__body p {
  font-size: 15px;
  color: #1A1A1A;
  line-height: 1.55;
  text-align: center;
  letter-spacing: 0.02em;
  margin-bottom: 1.55em;
}
.interest-card__body p:last-child {
  margin-bottom: 0;
}
.interest-card__chevron {
  position: absolute;
  bottom: -22px;
  left: 50%;
  transform: translateX(-50%);
  width: 66px;
  height: 24px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

/* ========================================
   7. おまとめ住宅ローン
   ======================================== */
.matome {
  position: relative;
  margin-bottom: 0;
  padding-bottom: 0;
}
.matome__header {
  position: relative; z-index: 3;
  background: #ED6E34;
  padding: 12px 20px;
  border-radius: 4px;
  width: fit-content;
  margin: -10px auto 0;
}
.matome__header p {
  font-weight: 700;
  font-size: 26px;
  color: #fff;
  text-align: center;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.matome__header-deco {
  position: relative; z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.matome__header-deco-line {
  display: block;
  width: 2px;
  height: 20px;
  background: #ED6E34;
  margin-top: -0.3px;
}
.matome__header-deco-dot {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ED6E34;
}
.matome__case-title {
  position: relative; z-index: 2;
  text-align: center;
  background: #fff;
  margin-top: 10px;
  padding: 20px 10px 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.24);
}
.matome__case-title p {
  font-weight: 900;
  font-size: 32px;
  color: #0BA26B;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.matome__case-tri {
  position: relative; z-index: 2;
  width: 100%;
  height: 16px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  border: none;
  margin-top: -0.3px;
  margin-bottom: -16px;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.12));
}
.matome__compare {
  position: relative; z-index: 1;
  background: #0BA26B;
  padding: 44px 12px 66px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr auto;
  gap: 0 24px;
}
.matome__before,
.matome__after {
  display: contents;
}
.matome__before > .matome__label { grid-column: 1; grid-row: 1; }
.matome__before > .matome__content { grid-column: 1; grid-row: 2; }
.matome__before > .matome__total { grid-column: 1; grid-row: 3; }
.matome__after > .matome__label { grid-column: 2; grid-row: 1; }
.matome__after > .matome__content { grid-column: 2; grid-row: 2; }
.matome__after > .matome__total { grid-column: 2; grid-row: 3; }
.matome__label {
  position: relative;
  text-align: center;
  font-weight: 700;
  font-size: 18px;
  padding: 6px 10px;
  border-radius: 1000px;
  line-height: 1.2;
  letter-spacing: 0.02em;
  margin-bottom: 16px;
}
.matome__label::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 0; height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
}
.matome__label--dark { background: #1A1A1A; color: #fff; }
.matome__label--dark::after { border-top: 8px solid #1A1A1A; }
.matome__label--yellow { background: #FFFBB8; color: #0BA26B; }
.matome__label--yellow::after { border-top: 8px solid #FFFBB8; }
.matome__content {
  display: flex;
  flex-direction: column;
}
.matome__debt-item {
  background: #7C7C7C;
  padding: 4px 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.matome__debt-item--rent { background: #5E5E5E; }
.matome__debt-item--after { background: #7C7C7C; }
.matome__debt-item--after + .matome__debt-item--after { background: #5E5E5E; }
.matome__debt-name {
  font-weight: 500;
  font-size: 14px;
  color: #fff;
  text-decoration: underline;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.matome__debt-amount {
  font-weight: 500;
  font-size: 14px;
  color: #fff;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.matome__debt-detail {
  font-weight: 500;
  font-size: 12px;
  color: #fff;
  display: flex;
  justify-content: space-between;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.matome__debt-detail span { font-weight: 500; }
.matome__deal {
  background: #FFFB0E;
  border: 1px dashed #fff;
  padding: 8px 4px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex: 1;
}
.matome__deal-title {
  background: #fff;
  display: inline-block;
  padding: 2px 4px;
  font-weight: 900;
  font-size: 14px;
  color: #0BA26B;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.matome__deal-save {
  font-weight: 900;
  font-size: 18px;
  color: #0BA26B;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.matome__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-top: 12px;
}
.matome__total-label {
  font-weight: 500;
  font-size: 14px;
  color: #fff;
  text-decoration: underline;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.matome__total-amount {
  font-weight: 500;
  font-size: 16px;
  color: #fff;
  line-height: 1.2;
}
.matome__total-amount--hl { color: #FFFB0E; }
.matome__total--after {
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.matome__total--after .matome__total-label {
  color: #FFFB0E;
  font-weight: 900;
}
.matome__total--after .matome__total-amount { color: #FFFB0E; }
.matome__total-sub {
  font-weight: 900;
  font-size: 12px;
  color: #FFFB0E;
  width: 100%;
  display: flex;
  justify-content: space-between;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.matome__total-sub span { font-weight: 900; color: #FFFB0E; }
.matome__graph {
  text-align: center;
}
.matome__graph img {
  width: 100%;
  height: auto;
}
.matome__graph-pc {
  display: none;
}
.matome__graph-sp {
  display: block;
}
.matome__explanation {
  position: relative; z-index: 2;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.24);
  width: 351px;
  max-width: calc(100% - 24px);
  margin: -30px auto 0;
  padding: 20px 12px;
}
.matome__explanation p {
  font-size: 16px;
  font-weight: 400;
  color: #5B5B5B;
  line-height: 1.55;
  text-align: center;
  letter-spacing: 0.02em;
}

/* ========================================
   8. Question
   ======================================== */
.question {
  padding: 0 16px 32px;
  text-align: center;
  background: #fff url('../../images/question-bg.png') center / cover no-repeat;
}
.question__title {
  font-family: 'Inter', sans-serif;
  font-weight: 100;
  font-size: 44px;
  color: #2A3E53;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.question__divider {
  width: 351px;
  max-width: 100%;
  height: 14px;
  flex-shrink: 0;
  margin: 32px 0 12px;
}
.question__person-img {
  width: 140px; height: 140px;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 12px;
}
.question__text {
  font-family: 'Noto Serif JP', serif;
  font-weight: 900;
  font-size: 28px;
  color: #2A3E53;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

/* ========================================
   9. Answer
   ======================================== */
.answer {
  background: #2A3E53;
  padding: 24px 12px 32px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.answer__title {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 44px;
  color: #fff;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.answer__divider {
  width: 351px;
  max-width: 100%;
  height: 14px;
  flex-shrink: 0;
}
.answer__person-img {
  width: 140px; height: 140px;
  border-radius: 50%;
  object-fit: cover;
}
.answer__lead {
  font-weight: 900;
  font-size: 24px;
  color: #fff;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.answer__highlight {
  font-weight: 900;
  font-size: 32px;
  color: #FFFB0E;
  line-height: 1.2;
  letter-spacing: 0.02em;
  margin-top: -16px;
}
.answer__card {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.24);
  padding: 12px;
  text-align: center;
  width: 100%;
}
.answer__card p {
  font-size: 14px;
  font-weight: 400;
  color: #2A3E53;
  line-height: 1.55;
  letter-spacing: 0.02em;
  margin-bottom: 1.55em;
}
.answer__card p:last-child { margin-bottom: 0; }

/* ========================================
   10. 実績紹介ヘッダー
   ======================================== */
.track-header {
  background: #fff;
  padding: 32px 15px 0;
  padding-left: 24px;
  text-align: center;
  position: relative;
  z-index: 2;
}
.track-header__sub {
  font-weight: 900;
  font-size: 24px;
  color: #1A1A1A;
  line-height: 1.2;
  white-space: nowrap;
  text-align: center;
}
.track-header__main1 {
  font-weight: 900;
  font-size: 26px;
  color: #ED6E34;
  line-height: 1.2;
  margin-top: 12px;
}
.track-header__main2 {
  font-weight: 900;
  font-size: 38px;
  color: #ED6E34;
  line-height: 1.2;
  margin-bottom: -8px;
}
.track-header__badge-wrap {
  margin-top: -8px;
  margin-bottom: -95px;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 3;
}
.track-header__badge {
  background: #ED6E34;
  padding: 8px 12px;
  margin-top: 20px;
  margin-bottom: -30px;
  position: relative;
  z-index: 3;
}
.track-header__badge p {
  font-weight: 900;
  font-size: 26px;
  color: #fff;
}
.track-header__tri {
  position: absolute;
  left: 50%;
  bottom: -15px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 14px solid transparent;
  border-right: 14px solid transparent;
  border-top: 16px solid #ED6E34;
  z-index: 3;
}

/* ========================================
   11. お客様の声
   ======================================== */
.voices {
  background: #0BA26B;
  margin-top: -30px;
  padding: 160px 8px 44px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.voices__img {
  display: block;
}
.voices__img img {
  width: 100%;
  height: auto;
  display: block;
}

/* --- Name badge --- */
.voice-card__name-badge {
  position: relative;
  z-index: 2;
  background: #fff;
  border: 1px solid #0BA26B;
  border-radius: 11px;
  width: 316px;
  max-width: 100%;
  height: 47px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: -20px;
  padding: 13px 12px 13px;
}
.voice-card__name-badge p {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  width: 100%;
  color: #0BA26B;
  white-space: nowrap;
}
.voice-card__name-badge p > span {
  flex-shrink: 0;
  line-height: 1.2;
}
.vn-initial { font-weight: 700; font-size: 22px; }
.vn-rest    { font-weight: 700; font-size: 17px; }
.vn-meta    { font-weight: 400; font-size: 15px; letter-spacing: 0.02em; }
.vn-income  { font-weight: 700; font-size: 17px; margin-left: 4px; }
.vn-income-num { font-weight: 700; font-size: 22px; font-family: 'Inter', sans-serif; }

/* --- Main card wrapper --- */
.voice-card__main {
  position: relative;
  z-index: 1;
  width: 100%;
  border: 2px solid #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 0 12px rgba(0,0,0,0.25);
  background: #fff;
}

/* --- Green header --- */
.voice-card__header {
  background: #0BA26B;
  padding: 38px 12px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
}
.voice-card__header-label {
  font-weight: 500;
  font-size: 18px;
  color: #fff;
  text-align: center;
  line-height: 1.2;
}
.voice-card__header-amount {
  display: flex;
  align-items: baseline;
  gap: 2px;
}
.voice-card__header-num {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 44px;
  color: #fff;
  line-height: 1;
}
.voice-card__header-unit {
  font-weight: 700;
  font-size: 24px;
  color: #fff;
}

/* --- Body (white wrapper) --- */
.voice-card__body {
  background: #fff;
  padding: 0 8px 24px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.24);
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.voice-card__gray-area {
  background: #F1F1F1;
  border-radius: 0 0 8px 8px;
  padding: 0 8px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.voice-card__banner-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  line-height: 0;
  font-size: 0;
}

/* --- Red banner --- */
.voice-card__red-banner {
  background: #FF3301;
  padding: 8px 8px;
  text-align: center;
  width: 100%;
  line-height: 1.2;
  font-size: 14px;
}
.voice-card__red-banner p {
  font-weight: 700;
  color: #FFFB0E;
  line-height: 1.2;
}
.rb-sm { font-size: 22px; }
.rb-lg { font-size: 32px; }
.voice-card__red-tri {
  width: 100%;
  height: 26px;
  background: #FF3301;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  display: block;
  margin-top: -0.3px;
}

/* --- Compare columns --- */
.voice-card__compare {
  display: flex;
  align-items: stretch;
  padding: 0;
  width: 100%;
  position: relative;
}
.voice-card__before {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.voice-card__before-header {
  text-align: center;
  margin-bottom: 11px;
}
.voice-card__before-header p {
  font-weight: 700;
  font-size: 19px;
  color: #5E5E5E;
  white-space: nowrap;
}
.voice-card__before-items {
  background: #5E5E5E;
  padding: 7px 6px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}
.voice-card__debt-divider { display: none; }
.voice-card__debt-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.voice-card__debt-name {
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  font-size: 11px;
  color: #fff;
  white-space: nowrap;
  flex: 1 1 auto;
  min-width: 0;
}
.voice-card__debt-amount {
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  font-size: 11px;
  color: #fff;
  white-space: nowrap;
  text-align: right;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}
.voice-card__debt-row--total {
  border-top: 1px solid #fff;
  padding-top: 6px;
}
.voice-card__debt-row--total .voice-card__debt-name {
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  font-size: 11px;
}
.voice-card__debt-row--total .voice-card__debt-amount {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 11px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.voice-card__debt-row--total .da-num {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.voice-card__debt-row--total .da-unit {
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  font-size: 11px;
  color: #fff;
}
.voice-card__car-loan {
  background: #C8C8C8;
  padding: 7px 6px;
}
.voice-card__car-loan .voice-card__debt-row {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.voice-card__car-loan .voice-card__debt-name {
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  font-size: 14px;
  color: #5E5E5E;
}
.voice-card__car-loan .voice-card__debt-amount {
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  font-size: 14px;
  color: #5E5E5E;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.voice-card__car-loan .da-num {
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: 20px;
  color: #5E5E5E;
  font-variant-numeric: tabular-nums;
}
.voice-card__car-loan .da-unit {
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  font-size: 14px;
  color: #5E5E5E;
}

/* --- Arrow between columns --- */
.voice-card__compare-arrow {
  flex-shrink: 0;
  width: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.voice-card__compare-arrow::after {
  content: '';
  display: block;
  width: 0; height: 0;
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-left: 14px solid #999;
}

/* --- AFTER column --- */
.voice-card__after {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.voice-card__after-title {
  font-weight: 700;
  font-size: 19px;
  color: #FF3301;
  text-align: center;
  margin-bottom: 11px;
  white-space: nowrap;
}
.voice-card__after-omatome {
  border: 1px dashed #FF3301;
  padding: 7px 6px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 11px;
  flex-shrink: 0;
}
.voice-card__after-label {
  font-weight: 500;
  font-size: 13px;
  white-space: nowrap;
}
.voice-card__after-omatome .voice-card__after-label { color: #FF3301; }
.voice-card__after-amount {
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.voice-card__after-amount--red {
  color: #FF3301;
  font-size: 13px;
  font-family: 'Noto Sans JP', sans-serif;
}
.voice-card__after-amount--red .aa-int {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 32px;
}
.voice-card__after-amount--red .aa-dec {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 22px;
}
.voice-card__after-amount--red .aa-unit {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 13px;
}
.voice-card__after-amount--green,
.voice-card__after-amount--darkgreen {
  color: #fff;
  font-size: 13px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
}
.voice-card__after-amount--green .aa-num,
.voice-card__after-amount--darkgreen .aa-num {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 22px;
}
.voice-card__after-amount--green .aa-unit,
.voice-card__after-amount--darkgreen .aa-unit {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 13px;
}
.voice-card__after-loan {
  background: #0BA26B;
  padding: 6px;
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 0;
}
.voice-card__after-loan .voice-card__after-label { color: #fff; }
.voice-card__after-car {
  background: #0A885A;
  padding: 6px;
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 0;
}
.voice-card__after-car .voice-card__after-label { color: #fff; }

/* --- Circles comparison --- */
.voice-card__circles {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0;
  width: 100%;
  box-sizing: border-box;
}
.voice-card__circle {
  width: 128px;
  height: 128px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 5px;
  box-sizing: border-box;
}
.voice-card__circle--before { background: #C8C8C8; gap: 13px; }
.voice-card__circle--after  { background: linear-gradient(to bottom, #F55686, #FA6B45); gap: 8px; }
.voice-card__circle-label {
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1;
  text-align: center;
}
.voice-card__circle--before .voice-card__circle-label { color: #5E5E5E; }
.voice-card__circle--after  .voice-card__circle-label { color: #FFFB0E; font-family: 'Noto Sans JP', sans-serif; }
.voice-card__circle-num {
  font-weight: 700;
  line-height: 1;
}
.voice-card__circle--before .voice-card__circle-num {
  font-family: 'Noto Serif JP', serif;
  font-size: 36px;
  color: #5E5E5E;
}
.voice-card__circle--after .voice-card__circle-num {
  font-family: 'Inter', sans-serif;
  font-size: 42px;
  color: #fff;
}
.voice-card__circle-decimal { font-weight: 700; line-height: 1; }
.voice-card__circle--before .voice-card__circle-decimal {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  color: #5E5E5E;
}
.voice-card__circle--after .voice-card__circle-decimal {
  font-family: 'Inter', sans-serif;
  font-size: 28px;
  color: #fff;
}
.voice-card__circle-value {
  display: flex;
  align-items: baseline;
  justify-content: center;
}
.voice-card__circle-unit { font-weight: 500; font-size: 16px; }
.voice-card__circle--before .voice-card__circle-unit {
  font-family: 'Noto Serif JP', serif;
  color: #5E5E5E;
}
.voice-card__circle--after .voice-card__circle-unit {
  font-family: 'Noto Sans JP', sans-serif;
  color: #FFFB0E;
}
.voice-card__circles-arrow {
  flex-shrink: 0;
  width: 43px;
  max-height: 50px;
  height: auto;
  object-fit: contain;
  align-self: center;
}

/* --- Success banner --- */
.voice-card__success-banner {
  background: linear-gradient(to bottom, #F55686, #FA6B45);
  border-radius: 8px;
  padding: 20px 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.voice-card__success-icon {
  flex-shrink: 0;
  width: 25px; height: 25px;
}
.voice-card__success-banner p {
  font-weight: 700;
  font-size: 24px;
  color: #fff;
  line-height: 1.2;
}

/* --- Profile area --- */
.voice-card__profile {
  background: #fff;
  padding: 20px 8px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.voice-card__profile-header {
  position: relative;
  min-height: 146px;
}
.voice-card__profile-photo {
  position: absolute;
  top: 8px;
  right: 16px;
  width: 139px;
  height: 139px;
  border-radius: 50%;
  object-fit: cover;
}
.voice-card__profile-info {
  position: relative;
}
.voice-card__profile-name {
  font-weight: 700;
  font-size: 24px;
  color: #1A1A1A;
  letter-spacing: 0.48px;
  margin-bottom: 24px;
}

/* --- Details rows --- */
.voice-card__details {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 172px;
}
.voice-card__detail-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #1A1A1A;
  padding-bottom: 4px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 17px;
  color: #1A1A1A;
  line-height: 1.2;
  letter-spacing: 0.35px;
}
.voice-card__detail-row--wide {
  width: 283px;
}

/* --- Divider & Testimonial --- */
.voice-card__divider {
  height: 1px;
  background: #1A1A1A;
}

/* Testimonial */
.voice-card__testimonial {
  font-weight: 400;
  font-size: 14px;
  color: #5B5B5B;
  line-height: 1.8;
  font-family: 'Noto Sans JP', sans-serif;
}

/* Testimonial image */
.voice-card__testimonial-img {
  display: block;
}
.voice-card__testimonial-img img {
  width: 100%;
  height: auto;
  display: block;
}

/* Note */
.voices__note {
  font-size: 12px;
  color: #fff;
  text-align: center;
  font-family: 'Noto Sans JP', sans-serif;
}

/* (12. 当社ポリシー → 画像に差し替え済み) */

/* ========================================
   14. 2つの理由
   ======================================== */
.reasons {
  padding: 32px 0 48px;
  text-align: center;
}
.reasons__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 351px;
  max-width: calc(100% - 24px);
  margin: 0 auto;
}
.reasons__header-text {
  position: relative;
  text-align: center;
  isolation: isolate;
}
.reasons__header-sub {
  font-weight: 900;
  font-size: 32px;
  color: #0BA26B;
  text-align: center;
  line-height: 1.55;
  letter-spacing: 0.64px;
  white-space: nowrap;
}
.reasons__header-main {
  font-weight: 700;
  font-size: 20px;
  color: #2A3E53;
  line-height: 1.55;
  letter-spacing: 0.64px;
}
.reasons__header-highlight {
  width: 351px;
  max-width: 100%;
  height: 12px;
  background: #FFFB0E;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
.reasons__badge-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.reasons__badge {
  display: inline-block;
  background: #ED6E34;
  padding: 12px 20px;
  border-radius: 4px;
}
.reasons__badge p {
  font-weight: 700;
  font-size: 32px;
  color: #fff;
  letter-spacing: 0.64px;
  line-height: 1.2;
  font-feature-settings: 'palt';
}
.reasons__badge-deco {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.reasons__badge-deco-line {
  display: block;
  width: 2px;
  height: 20px;
  background: #ED6E34;
  margin-top: -0.3px;
}
.reasons__badge-deco-dot {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ED6E34;
}
.reasons__cards {
  display: flex;
  flex-direction: column;
  gap: 44px;
  margin-top: 32px;
}
.reason-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 28px;
}
.reason-card__banner {
  position: relative;
  background: #0BA26B;
  width: 100%;
  padding: 12px 10px 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: -28px;
}
.reason-card__banner h3 {
  font-weight: 900;
  font-size: 28px;
  color: #fff;
  text-align: center;
  line-height: 1.2;
  letter-spacing: 0.56px;
  white-space: nowrap;
}
.reason-card__badge {
  position: absolute;
  top: -23px;
  left: 8px;
  z-index: 2;
  width: 66px; height: 66px;
  background: #ED6E34;
  border-radius: 100px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-bottom: 4px;
  color: #fff;
}
.reason-card__badge-label {
  font-weight: 700;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0.36px;
}
.reason-card__badge-num {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 32px;
  line-height: 1;
  letter-spacing: 0.64px;
}
.reason-card__body {
  position: relative;
  z-index: 1;
  width: 351px;
  max-width: calc(100% - 24px);
  background: #fff;
  border-radius: 24px 24px 0 0;
  box-shadow: 0 2px 12px rgba(0,45,29,0.24);
  padding: 8px 8px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  margin-bottom: -28px;
}
.reason-card__photo {
  width: 100%;
  height: 124px;
  border-radius: 12px 12px 0 0;
  overflow: hidden;
}
.reason-card__photo img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.reason-card__text {
  width: 100%;
}
.reason-card__text p {
  font-size: 14px;
  font-weight: 400;
  color: #5B5B5B;
  line-height: 1.55;
  letter-spacing: 0.28px;
  text-align: center;
  margin-bottom: 0;
}

/* ========================================
   14.5 不動産会社の信頼
   ======================================== */
.company-trust {
  background: #E2F4ED;
  padding: 32px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.company-trust__title {
  font-weight: 900;
  font-size: 28px;
  color: #0BA26B;
  text-align: center;
  line-height: 1.2;
  letter-spacing: 0.48px;
}
.company-trust__card {
  width: 100%;
  max-width: 351px;
}
.company-trust__img {
  width: 100%;
  height: auto;
  display: block;
}

/* ========================================
   15. 審査通過実績
   ======================================== */
.achievements {
  padding-bottom: 0;
}
.achievements__header {
  background: #2A3E53;
  padding: 12px;
  text-align: center;
}
.achievements__header-sub {
  font-weight: 900;
  font-size: 23px;
  color: #fff;
  line-height: 1.2;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.achievements__header-main {
  font-weight: 900;
  font-size: 32px;
  color: #fff;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.achievements__header-tri {
  width: 0; height: 0;
  margin: 0 auto 24px;
  margin-top: -0.4px;
  border-left: 16px solid transparent;
  border-right: 16px solid transparent;
  border-top: 16px solid #2A3E53;
}
.achievements__grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 351px;
  max-width: calc(100% - 24px);
  margin: 0 auto;
  padding-bottom: 28px;
}
.achievements__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.achievements__row--center {
  justify-content: center;
  gap: 10px;
}
.achievements__item {
  width: 110px; height: 110px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(0,0,0,0.12);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px;
  gap: 4px;
  text-align: center;
}
.achievements__icon-wrap {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}
.achievements__icon-wrap img {
  width: 120%;
  height: 120%;
  max-width: none;
  margin: -10%;
  display: block;
}
.achievements__icon-wrap--large img {
  width: 160%;
  height: 160%;
  margin: -30%;
}
.achievements__icon-wrap--medium img {
  width: 158%;
  height: 158%;
  margin: -29%;
}
.achievements__icon-wrap--circle img {
  width: 170%;
  height: 170%;
  margin: -35%;
}
.achievements__icon-wrap--kojin img {
  width: 185%;
  height: 185%;
  margin: -42.5%;
}
.achievements__item p {
  font-weight: 700;
  font-size: 14px;
  color: #2A3E53;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.achievements__wave {
  height: 32px;
  position: relative;
  background: #E2F4ED;
}
.achievements__wave::before {
  content: '';
  position: absolute;
  inset: 0;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

/* ========================================
   16. 事例紹介
   ======================================== */
.cases {
  background: #E2F4ED;
  padding: 24px 0 48px;
}
.cases__header {
  display: flex;
  justify-content: center;
}
.cases__header span {
  background: #0BA26B;
  font-weight: 700;
  font-size: 24px;
  color: #fff;
  padding: 12px 20px;
  border-radius: 4px;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.cases__header-deco {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 32px;
}
.cases__header-deco-line {
  display: block;
  width: 2px;
  height: 20px;
  background: #0BA26B;
  margin-top: -0.3px;
}
.cases__header-deco-dot {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #0BA26B;
}
.cases__cards {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
/* -- Case card -- */
.case-card {
  position: relative;
  background: #fff;
  box-shadow: 0 4px 16px rgba(0,0,0,0.12), 0 2px 6px rgba(0,0,0,0.08);
}
.case-card--left {
  margin-right: 12px;
  border-radius: 0 24px 24px 0;
}
.case-card--right {
  margin-left: 12px;
  border-radius: 24px 0 0 24px;
}
/* -- Top (white) area -- */
.case-card__top {
  position: relative;
  background: #fff;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.case-card--left .case-card__top {
  border-radius: 0 24px 0 0;
}
.case-card--right .case-card__top {
  border-radius: 24px 0 0 0;
  align-items: flex-end;
}
/* -- Tag with triangle -- */
.case-card__tag-wrap {
  display: flex;
  align-items: center;
}
.case-card--right .case-card__tag-wrap {
  flex-direction: row-reverse;
}
.case-card__tag {
  position: relative;
  background: #2A3E53;
  color: #fff;
  font-weight: 700;
  font-size: 18px;
  padding: 6px 4px;
  line-height: 1.2;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.case-card__tag::after {
  content: "";
  position: absolute;
  top: 0;
  width: 9px;
  height: 100%;
  background: #2A3E53;
}
.case-card--left .case-card__tag::after {
  right: -8.5px;
  clip-path: polygon(0 0, 0 100%, 100% 50%);
}
.case-card--right .case-card__tag::after {
  left: -8.5px;
  clip-path: polygon(100% 0, 100% 100%, 0 50%);
}
.cases__cards .case-card:nth-child(3).case-card--left .case-card__tag::after {
  right: -8.9px;
}
/* -- Title -- */
.case-card__title {
  font-weight: 900;
  font-size: 25px;
  color: #0BA26B;
  line-height: 1.2;
  letter-spacing: 0.02em;
  padding: 0;
  position: relative;
  z-index: 1;
}
.case-card__title::after { display: none; }
.case-card__title span {
  background: linear-gradient(transparent 60%, #FFFB0E 60%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.case-card--right .case-card__title {
  text-align: right;
}
/* -- CASE badge -- */
.case-card__badge {
  position: absolute;
  top: -20px;
  width: 66px; height: 66px;
  background: #0BA26B;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-bottom: 4px;
  color: #fff;
  line-height: 1.2;
}
.case-card--left .case-card__badge {
  right: 0;
}
.case-card--right .case-card__badge {
  left: 0;
}
.case-card__badge span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.case-card__badge strong {
  font-family: 'Inter', sans-serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}
/* -- Body (gray) area -- */
.case-card__body {
  background: #F4F4F4;
  padding: 12px;
  display: flex;
  gap: 8px;
  align-items: center;
}
.case-card--left .case-card__body {
  border-radius: 0 0 24px 0;
}
.case-card--right .case-card__body {
  border-radius: 0 0 0 24px;
  flex-direction: row-reverse;
}
/* -- Staff icon -- */
.case-card__staff-icon {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.case-card__staff-icon svg {
  width: 44px; height: 44px;
}
.case-card__staff-icon span {
  font-size: 13px;
  font-weight: 400;
  color: #1A1A1A;
  letter-spacing: 0.02em;
  line-height: 1.55;
}
/* -- Bracket -- */
.case-card__bracket {
  flex-shrink: 0;
}
.case-card__bracket svg {
  display: block;
}
@media (max-width: 1023px) {
  .cases__cards .case-card:nth-child(2).case-card--right .case-card__bracket {
    transform: scaleX(-1);
  }
}
/* -- Body text -- */
.case-card__text {
  flex: 1;
  min-width: 0;
}
.case-card__text p {
  font-size: 14px;
  font-weight: 400;
  color: #1A1A1A;
  line-height: 1.55;
  letter-spacing: 0.02em;
}
.case-card--right .case-card__text p {
  font-size: 13px;
}

/* (17. 諦めていた → 画像に差し替え済み) */

/* ========================================
   19. 物件購入から支払い削減までの流れ
   ======================================== */
.flow {
  background: #E2F4ED;
  padding: 28px 16px;
}
.flow__header {
  display: flex;
  justify-content: center;
}
.flow__header p {
  background: #0BA26B;
  font-weight: 700;
  font-size: 18px;
  color: #fff;
  padding: 12px 24px;
  border-radius: 4px;
  text-align: center;
  line-height: 1.4;
}
.flow__header-deco {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 20px;
}
.flow__header-deco-line {
  display: block;
  width: 2px;
  height: 20px;
  background: #0BA26B;
  margin-top: -0.3px;
}
.flow__header-deco-dot {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #0BA26B;
}
.flow__steps {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.flow__step {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(0,86,55,0.15);
  padding: 16px;
  width: 100%;
  position: relative;
}
.flow__step-num {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 24px;
  color: #0BA26B;
  position: absolute;
  top: 16px; left: 16px;
}
.flow__step-circle {
  width: 72px; height: 72px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid #0BA26B;
  margin: 0 auto 12px;
}
.flow__step-circle img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.flow__step-title {
  font-weight: 700;
  font-size: 18px;
  color: #0BA26B;
  text-align: center;
  margin-bottom: 8px;
  line-height: 1.35;
}
.flow__step-desc {
  font-size: 13px;
  font-weight: 400;
  color: #1A1A1A;
  line-height: 1.7;
  text-align: center;
}
.flow__connector {
  width: 2px;
  height: 24px;
  background: #0BA26B;
}

/* ========================================
   20. 運営方針・想い
   ======================================== */
.philosophy {
  padding: 28px 16px;
}
.philosophy__header {
  display: flex;
  justify-content: center;
}
.philosophy__header p {
  background: #2A3E53;
  font-weight: 700;
  font-size: 18px;
  color: #fff;
  padding: 12px 24px;
  border-radius: 4px;
  text-align: center;
  line-height: 1.4;
}
.philosophy__header-deco {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 20px;
}
.philosophy__header-deco-line {
  display: block;
  width: 2px;
  height: 20px;
  background: #2A3E53;
  margin-top: -0.3px;
}
.philosophy__header-deco-dot {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #2A3E53;
}
.philosophy__card {
  background: #F2F6FB;
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.12);
  padding: 20px 16px;
}
.philosophy__card p {
  font-weight: 400;
  font-size: 13px;
  color: #2A3E53;
  line-height: 1.7;
  text-align: center;
  margin-bottom: 16px;
}
.philosophy__card p:last-child { margin-bottom: 0; }
.philosophy__card p br.philosophy__br-pc { display: none; }
.philosophy__card strong { font-weight: 700; }
.philosophy__list {
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(0,0,0,0.08);
  padding: 12px 16px;
  margin: 16px 0;
}
.philosophy__list ul {
  list-style: disc;
  padding-left: 1.2em;
}
.philosophy__list li {
  font-size: 13px;
  font-weight: 400;
  color: #2A3E53;
  line-height: 1.7;
  margin-bottom: 6px;
}
.philosophy__list li:last-child { margin-bottom: 0; }

/* ========================================
   21. FAQ アコーディオン
   ======================================== */
.faq {
  background: #E2F4ED;
  padding: 32px 16px;
}
.faq__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 24px;
}
.faq__title {
  background: #0ba26b;
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02em;
  padding: 10px 24px;
  border-radius: 4px;
}
.faq__deco {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.faq__deco-line {
  display: block;
  width: 2px;
  height: 14px;
  background: #0ba26b;
  margin-top: -0.3px;
}
.faq__deco-dot {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #0ba26b;
}
.faq__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.faq__item {
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.faq__q {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  background: #0ba26b;
  border: none;
  border-radius: 4px;
  color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.02em;
  text-align: left;
  padding: 16px 12px;
  cursor: pointer;
  transition: border-radius 0.05s ease 0.35s;
}
.faq__item.is-open .faq__q {
  border-radius: 4px 4px 0 0;
  transition: border-radius 0s;
}
.faq__q-text { flex: 1 0 0; min-width: 0; }
.faq__icon {
  position: relative;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
}
.faq__icon::before,
.faq__icon::after {
  content: "";
  position: absolute;
  background: #fff;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.35s ease, opacity 0.35s ease;
}
.faq__icon::before { width: 14px; height: 2px; }
.faq__icon::after { width: 2px; height: 14px; }
.faq__item.is-open .faq__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}
.faq__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s ease;
}
.faq__item.is-open .faq__body { grid-template-rows: 1fr; }
.faq__a { overflow: hidden; }
.faq__a p {
  background: #fff;
  color: #1a1a1a;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.75;
  padding: 16px 12px;
  border-radius: 0 0 4px 4px;
}

/* ========================================
   フッター FV（1枚画像）
   ======================================== */
.footer .fv {
  aspect-ratio: auto;
  overflow: visible;
}
.fv__img { width: 100%; display: block; }

/* ========================================
   コピーライト
   ======================================== */
.copyright {
  background: #000;
  padding: 10px 12px;
}
.copyright__inner {
  width: min(100%, 1024px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 12px;
  align-items: end;
}
.copyright__company {
  display: grid;
  gap: 4px;
}
.copyright__line {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  row-gap: 2px;
}
.copyright__item {
  color: #fff;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.01em;
}
.copyright__item + .copyright__item {
  position: relative;
  margin-left: 8px;
  padding-left: 8px;
}
.copyright__item + .copyright__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 0.95em;
  background: rgba(255, 255, 255, 0.65);
}
.copyright__item--tel {
  display: block;
  width: 100%;
  margin-left: 0;
  padding-left: 0;
}
.copyright__item + .copyright__item.copyright__item--tel {
  margin-left: 0;
  padding-left: 0;
}
.copyright__item--tel::before {
  display: none;
}
.copyright__text {
  margin: 0;
  color: #fff;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.02em;
  text-align: right;
  white-space: nowrap;
}

/* ========================================
   画像セクション共通
   ======================================== */
.section-img img {
  width: 100%;
  display: block;
}
.worry + .section-img {
  position: relative;
  z-index: 2;
}

/* ========================================
   PC レスポンシブ対応 (min-width: 1024px)
   ======================================== */
@media (min-width: 768px) {

  /* --- 1. コンテナ --- */
  .lp {
    width: 100%;
    max-width: none;
    margin: 0 auto;
  }
  body {
    overflow-x: hidden;
  }

  /* --- FV エリア（FV + カード + CTA を重ねる） --- */
  .fv-area {
    position: relative;
  }

  /* --- 2. FV --- */
  .fv {
    position: relative;
    z-index: 1;
    aspect-ratio: 1440 / 855;
    overflow: hidden;
  }
  .fv__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 0;
  }
  .fv__person {
    position: absolute;
    right: 0;
    top: 0;
    width: 55%;
    margin: 0;
    z-index: 1;
  }
  .fv__bubbles {
    position: absolute;
    z-index: 3;
    top: 2%;
    left: 21%;
    display: flex;
    justify-content: center;
    gap: 2%;
    width: 30%;
    padding: 0;
  }
  .fv__bubbles picture { width: 30%; }
  .fv__copy {
    position: absolute;
    z-index: 3;
    top: 17%;
    left: 15.4%;
    width: 41%;
    margin: 0;
  }
  .fv__catch {
    position: absolute;
    z-index: 3;
    top: 39%;
    left: 15.4%;
    width: 41%;
  }
  .fv__badge {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 15.4%;
    width: 41%;
  }

  /* --- 3. 成功カード（FV上にオーバーレイ） --- */
  .fv-area > .cards {
    position: absolute;
    bottom: 160px;
    left: 0;
    width: 100%;
    z-index: 2;
    background: transparent;
    padding: 0;
  }
  .fv-area > .cards .cards__track,
  .footer .cards .cards__track {
    gap: 24px;
    animation-name: cards-slide-pc;
    animation-duration: 25s;
  }
  .fv-area > .cards .success-card,
  .footer .cards .success-card {
    width: 310px;
    background: url('../../images/cards-slide_pc.png') center / 100% 100% no-repeat;
    border: none;
    border-radius: 10px;
    box-shadow: 0 0 15px rgba(0,0,0,0.25);
    padding: 10px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
  }
  .fv-area > .cards .success-card__top,
  .footer .cards .success-card__top {
    padding: 0;
    width: 100%;
  }
  .fv-area > .cards .success-card__lead,
  .footer .cards .success-card__lead {
    font-size: 20px;
    display: flex;
    align-items: baseline;
    justify-content: center;
    flex-wrap: nowrap;
    white-space: nowrap;
    line-height: 1.2;
    margin-top: -8px;
  }
  .fv-area > .cards .success-card__lead br,
  .footer .cards .success-card__lead br {
    display: none;
  }
  .fv-area > .cards .success-card__num,
  .footer .cards .success-card__num {
    font-size: 40px;
  }
  .fv-area > .cards .success-card__divider,
  .footer .cards .success-card__divider {
    margin-bottom: 0;
  }
  .fv-area > .cards .success-card__info,
  .footer .cards .success-card__info {
    font-size: 20px;
    padding: 4px 8px;
    width: 100%;
    margin-top: -15px;
  }
  .fv-area > .cards .success-card__detail,
  .footer .cards .success-card__detail {
    font-size: 16px;
    padding: 0;
    line-height: 1.2;
  }

  /* --- 4. CTA（FV上にオーバーレイ） --- */
  .fv-area > .cta {
    position: absolute;
    bottom: 15px;
    left: 0;
    width: 100%;
    z-index: 3;
    background: transparent;
    padding: 0;
    display: flex;
    justify-content: center;
  }
  .fv-area > .cta .cta__link {
    width: 762px;
    max-width: calc(100% - 48px);
  }
  .copyright {
    padding: 12px 24px;
  }
  .copyright__inner {
    width: min(100%, 1440px);
    gap: 12px 24px;
  }
  .copyright__company {
    gap: 2px;
  }
  .copyright__item {
    font-size: 12px;
    line-height: 1.55;
    white-space: nowrap;
  }
  .copyright__item + .copyright__item {
    margin-left: 12px;
    padding-left: 12px;
  }
  .copyright__item--tel {
    display: inline;
    width: auto;
    margin-left: 12px;
    padding-left: 12px;
  }
  .copyright__item + .copyright__item.copyright__item--tel {
    margin-left: 12px;
    padding-left: 12px;
  }
  .copyright__item--tel::before {
    display: block;
  }
  .copyright__text {
    font-size: 11px;
  }

  /* --- 5. お悩みセクション --- */
  .worry {
    padding: 48px 40px 32px;
  }
  .worry__title {
    font-size: 48px;
  }
  .worry__title br {
    display: none;
  }
  .worry__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    max-width: 960px;
    margin: 0 auto;
  }
  .worry__item p {
    font-size: 18px;
  }
  .worry__item p br {
    display: none;
  }

  /* --- 6. 高金利の悪循環 / 金利カード --- */
  /* 上の画像（高金利の悪循環）を金利カードの上に重ねる */
  .section-img:has(+ .interest-card-wrap) {
    position: relative;
    z-index: 2;
  }
  .interest-card-wrap {
    padding: 0 40px 48px;
    margin-top: -140px;
    position: relative;
    z-index: 1;
  }
  .interest-card {
    margin: 0 auto;
    padding: 48px 120px 16px;
    filter: drop-shadow(0 2px 12px rgba(0,0,0,0.24));
  }
  .interest-card__icon {
    width: 92px;
    margin-bottom: -24px;
  }
  .interest-card__banner {
    font-size: 36px;
    width: fit-content;
  }
  .interest-card__rate {
    font-size: 104px;
  }
  .interest-card__rate-note {
    font-size: 16px;
  }
  .interest-card__footnote {
    text-align: center;
  }
  .interest-card__body p {
    font-size: 20px;
  }
  .interest-card__chevron {
    width: 132px;
    height: 48px;
    bottom: -32px;
  }

  /* --- 7. おまとめ住宅ローン --- */
  .matome {
    margin-top: 32px;
  }
  .matome__header p {
    font-size: 32px;
  }
  .matome__header p br {
    display: none;
  }
  .matome__graph-pc {
    display: block;
  }
  .matome__graph-sp {
    display: none;
  }
  .matome__explanation {
    width: 800px;
    max-width: calc(100% - 48px);
  }
  .matome__explanation p {
    font-size: 20px;
  }

  /* --- 8. Question --- */
  .question {
    position: relative;
    z-index: 0;
    margin-top: 0;
    padding: 48px 40px;
    background: #fff url('../../images/question-bg_pc.png') center / 100% 100% no-repeat;
  }
  .question::before {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 1440px;
    height: 100%;
    top: 0;
    background: #fff url('../../images/question-bg_pc.png') center / 100% 100% no-repeat;
    z-index: -1;
  }
  .question__text {
    font-size: 36px;
  }
  .question__text br {
    display: none;
  }

  /* --- 9. Answer --- */
  .answer {
    padding: 36px 40px 48px;
  }
  .answer__lead {
    font-size: 28px;
  }
  .answer__highlight {
    font-size: 40px;
  }
  .answer__highlight br {
    display: none;
  }
  .answer__card {
    max-width: 800px;
  }

  /* --- 10. 実績紹介ヘッダー --- */
  .track-header__sub {
    font-size: 32px;
  }
  .track-header__main1 {
    font-size: 36px;
  }
  .track-header__main2 {
    font-size: 48px;
  }
  .track-header__badge {
    padding-left: 72px;
    padding-right: 72px;
  }

  /* --- 11. お客様の声 --- */
  .voices {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    padding: 160px 120px 44px;
  }

  /* --- 12. 当社ポリシー --- */
  /* picture タグで画像切替済み */

  /* --- 14. 2つの理由 2列横並び --- */
  .reasons {
    padding: 48px 120px;
  }
  .reasons__header {
    width: auto;
    max-width: none;
  }
  .reasons__header-sub {
    font-size: 48px;
  }
  .reasons__header-main {
    font-size: 30px;
  }
  .reasons__header-highlight {
    width: 421px;
  }
  .reasons__badge p {
    font-size: 48px;
  }
  .reasons__cards {
    flex-direction: row;
    gap: 44px;
    padding: 0;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    align-items: stretch;
  }
  .reason-card {
    flex: 1;
  }
  .reason-card__banner h3 {
    font-size: 42px;
  }
  .reason-card__badge {
    width: 99px;
    height: 99px;
    top: -39.5px;
    left: -8.5px;
  }
  .reason-card__badge-label {
    font-size: 27px;
  }
  .reason-card__badge-num {
    font-size: 48px;
  }
  .reason-card__body {
    flex: 1;
    width: auto;
    max-width: calc(100% - 64px);
    padding: 16px 24px 24px;
  }
  .reason-card__photo {
    height: 184px;
  }
  .reason-card__text p {
    font-size: 18px;
  }

  /* --- 14.5 不動産会社の信頼 --- */
  .company-trust__title {
    font-size: 36px;
  }
  .company-trust__card {
    max-width: 1100px;
  }

  /* --- 15. 審査通過実績 5列×2行 --- */
  .achievements__grid {
    display: grid;
    grid-template-columns: repeat(5, auto);
    gap: 12px;
    max-width: 900px;
    width: auto;
    justify-content: center;
    justify-items: center;
  }
  .achievements__item {
    width: 130px;
    height: 130px;
    padding: 12px;
    gap: 6px;
  }
  .achievements__icon-wrap {
    width: 44px;
    height: 44px;
  }
  .achievements__item p {
    font-size: 16px;
  }
  .achievements__row {
    display: contents;
  }
  .achievements__row--center {
    display: contents;
  }

  /* --- 16. 事例紹介 3列 --- */
  .cases {
    padding: 72px 120px 48px;
    gap: 32px;
  }
  .cases__header span {
    font-size: 44px;
  }
  .cases__cards {
    flex-direction: row;
    gap: 24px;
    padding: 0;
    align-items: stretch;
  }
  .case-card {
    flex: 1;
    display: flex;
    flex-direction: column;
    box-shadow: 0 2px 12px rgba(0,45,29,0.24);
  }
  .case-card--left,
  .case-card--right {
    margin: 0;
    border-radius: 0 24px 24px 0;
  }
  .case-card__tag {
    font-size: 20px;
  }
  .case-card__title {
    font-size: 32px;
    min-height: 77px;
  }
  .case-card__title br {
    display: none;
  }
  .case-card--left .case-card__top,
  .case-card--right .case-card__top {
    border-radius: 0 24px 0 0;
    align-items: flex-start;
  }
  .case-card--right .case-card__tag-wrap {
    flex-direction: row;
  }
  .case-card--right .case-card__tag::after {
    left: auto;
    right: -8.5px;
    clip-path: polygon(0 0, 0 100%, 100% 50%);
  }
  .case-card--right .case-card__title {
    text-align: left;
  }
  .case-card--right .case-card__badge {
    left: auto;
    right: 0;
  }
  .case-card__body {
    flex: 1;
  }
  .case-card--left .case-card__body,
  .case-card--right .case-card__body {
    border-radius: 0 0 24px 0;
    flex-direction: row;
  }
  .case-card--right .case-card__text p {
    font-size: 14px;
  }

  /* --- CTA（ダーク背景）PC --- */
  .cta-dark {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 12px;
  }
  .cta-dark__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .cta-dark__link {
    position: relative;
    width: auto;
    padding: 0;
  }
  .cta-dark__btn {
    max-width: 762px;
  }

  /* --- 17. 諦めていた --- */
  /* picture タグで画像切替済み */

  /* --- 19. フロー 4列横並び --- */
  .flow {
    background: #f0fffa;
    padding: 44px 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
  }
  .flow__header-deco {
    margin-top: -32px;
    margin-bottom: 0;
  }
  .flow__header p {
    font-size: 36px;
    line-height: 1.2;
  }
  .flow__header p br {
    display: none;
  }
  .flow__steps {
    flex-direction: row;
    gap: 0;
    align-items: stretch;
    width: 100%;
  }
  .flow__step {
    flex: 1;
    gap: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 2px 12px rgba(0,86,55,0.25);
    overflow: hidden;
  }
  .flow__step-num {
    font-size: 32px;
    top: 12px;
    left: 12px;
  }
  .flow__step-circle {
    width: 88px;
    height: 88px;
  }
  .flow__step-title {
    font-size: 24px;
  }
  .flow__step-desc {
    font-size: 15px;
    line-height: 1.75;
    text-align: left;
  }
  .flow__connector {
    width: 32px;
    height: 2px;
    background: #0BA26B;
    flex-shrink: 0;
    align-self: center;
  }

  /* --- 20. 運営方針・想い --- */
  .philosophy {
    padding: 44px 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
  }
  .philosophy__header p {
    font-size: 32px;
    line-height: 1.2;
  }
  .philosophy__header p br {
    display: none;
  }
  .philosophy__header-deco {
    margin-top: -24px;
    margin-bottom: 0;
  }
  .philosophy__card {
    max-width: none;
    width: 100%;
    padding: 32px 44px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.24);
  }
  .philosophy__card p {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.55;
    margin-bottom: 28px;
  }
  .philosophy__card p:last-child {
    margin-bottom: 0;
  }
  .philosophy__card p br {
    display: none;
  }
  .philosophy__card p br.philosophy__br-pc {
    display: block;
  }
  .philosophy__list {
    padding: 16px 24px;
    box-shadow: 0 0 12px rgba(0,0,0,0.12);
    margin: 0 0 28px;
    width: 100%;
  }
  .philosophy__list ul {
    padding-left: 30px;
  }
  .philosophy__list li {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.75;
    margin-bottom: 4px;
  }

  /* --- 21. FAQ --- */
  .faq {
    padding: 48px 40px;
  }
  .faq__heading {
    margin-bottom: 32px;
  }
  .faq__title {
    font-size: 36px;
    padding: 14px 40px;
    border-radius: 6px;
  }
  .faq__deco-line {
    height: 24px;
    width: 3px;
  }
  .faq__deco-dot {
    width: 10px;
    height: 10px;
  }
  .faq__list {
    max-width: 800px;
    margin: 0 auto;
  }
  .faq__q-text br {
    display: none;
  }

  /* --- 22. フッター --- */
  /* FV と同じ構造（.fv-area でカード・CTA をオーバーレイ） */

  /* --- フローティングCTA PC --- */
  .floating-cta__link {
    max-width: 762px;
    margin: 0 auto;
  }
}

/* ========================================
   フローティング追従CTA
   ======================================== */
.floating-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background: rgba(255,255,255,0.7);
  box-shadow: 0 -4px 12px rgba(0,0,0,0.1);
  padding: 10px 12px;
  opacity: 0;
  pointer-events: none;
  transform: translateY(100%);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.floating-cta.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.floating-cta__link {
  display: block;
  animation: floating-cta-jelly 1.4s ease-in-out infinite;
}
@keyframes floating-cta-jelly {
  0%   { transform: scale(1, 1) rotate(0deg); }
  12%  { transform: scale(1.05, 0.95) rotate(-0.5deg); }
  24%  { transform: scale(0.97, 1.04) rotate(0.4deg); }
  36%  { transform: scale(1.03, 0.97) rotate(-0.3deg); }
  48%  { transform: scale(0.99, 1.02) rotate(0.2deg); }
  60%  { transform: scale(1.01, 0.99) rotate(-0.1deg); }
  72%  { transform: scale(1, 1) rotate(0deg); }
  100% { transform: scale(1, 1) rotate(0deg); }
}
.floating-cta__img {
  width: 100%;
  display: block;
}
