/* =============================================================
   Car Value Japan — Landing Page
   ベース：buddica.online 型・縦長1カラム・max 750px
   依存：なし（バニラ）
   ============================================================= */

:root {
  --cvj-blue:    #176B92;
  --cvj-blue-d:  #145F82;
  --cvj-blue-pale:#EAF6FC;
  --cvj-green:   #5FB85F;
  --cvj-green-d: #46A24F;
  --cvj-green-pale:#EDF7EB;
  --cvj-accent-r:#D6322C;  /* ご成約スタンプ専用（伝統的印影） */
  --cvj-yellow:  #FFD45E;
  --cvj-line:    #06C755;
  --cvj-cream:   #F4FBF4;
  --cvj-bg:      #F5F8F6;
  --cvj-ink:     #243441;
  --cvj-ink-2:   #46586A;
  --cvj-mute:    #5E7180;
  --cvj-stroke:  #E4ECF2;
  --cvj-shadow:  0 18px 40px -22px rgba(20, 70, 110, .28);
}

* { box-sizing: border-box; }

html { font-size: 62.5%; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
  font-size: 1.8rem;
  line-height: 1.6;
  color: var(--cvj-ink-2);
  background: #E9ECEF;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a   { color: var(--cvj-blue-d); text-decoration: none; transition: opacity .3s ease; }
a:hover { opacity: .85; }

.skip-link {
  position: fixed;
  z-index: 10000;
  top: 8px;
  left: 8px;
  padding: 12px 18px;
  border-radius: 8px;
  background: #fff;
  color: #064f77;
  font-size: 16px;
  font-weight: 700;
  box-shadow: 0 4px 18px rgba(0, 0, 0, .22);
  transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }

#lp-container {
  max-width: 750px;
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  background: #fff;
  box-shadow: -20px 0 20px -15px rgba(0,0,0,.3), 20px 0 20px -15px rgba(0,0,0,.3);
}

/* ============ 共通ユーティリティ ============ */
.eyebrow {
  display: inline-block;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--cvj-blue);
  padding: .4rem 1.4rem;
  background: rgba(44, 150, 204, .10);
  border-radius: 999px;
  margin-bottom: 1.2rem;
}

.section-title {
  font-size: 2.8rem;
  font-weight: 900;
  color: var(--cvj-ink);
  line-height: 1.35;
  margin: 0 0 1.2rem;
  letter-spacing: .02em;
}
.section-title .hl {
  background: linear-gradient(transparent 60%, rgba(255, 218, 71, .8) 60%);
  padding: 0 .2rem;
}
.section-lead {
  font-size: 1.5rem;
  color: var(--cvj-ink-2);
  line-height: 1.85;
  margin: 0;
}

.nowrap { white-space: nowrap; }

/* ============================================
   1. FV（ファーストビュー）
   ============================================ */
.fv {
  position: relative;
  padding: 3.4rem 2.6rem 2.4rem;
  background:
    radial-gradient(120% 80% at 10% 0%, rgba(44, 150, 204, .14) 0%, transparent 60%),
    radial-gradient(100% 70% at 90% 100%, rgba(95, 184, 95, .14) 0%, transparent 60%),
    #FFFFFF;
  overflow: hidden;
}
.fv-brand {
  width: 16rem;
  margin-bottom: 1.8rem;
}
.fv-eyebrow {
  display: inline-block;
  background: var(--cvj-yellow);
  color: var(--cvj-ink);
  font-size: 1.4rem;
  font-weight: 800;
  padding: .5rem 1.2rem;
  border-radius: .6rem;
  margin-bottom: 1.4rem;
  letter-spacing: .04em;
}
.fv-title {
  font-size: 3.4rem;
  font-weight: 900;
  line-height: 1.32;
  color: var(--cvj-ink);
  margin: 0 0 1.6rem;
  letter-spacing: .01em;
}
.fv-title .hl {
  background: linear-gradient(transparent 58%, rgba(255, 218, 71, .85) 58%);
  padding: 0 .2rem;
}
.fv-title .accent { color: var(--cvj-blue); }
.fv-sub {
  font-size: 1.6rem;
  line-height: 1.85;
  color: var(--cvj-ink-2);
  margin: 0 0 2.2rem;
}
.fv-photo {
  position: relative;
  border-radius: 2rem;
  overflow: hidden;
  box-shadow: 0 24px 40px -18px rgba(44, 150, 204, .35);
}
.fv-photo img { width: 100%; }
.ai-image-note {
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  z-index: 4;
  padding: .6rem 1rem;
  border-radius: 999px;
  background: rgba(17, 43, 58, .86);
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.4;
}

/* バッジ（フォト上） */
.fv-badge {
  position: absolute;
  background: #fff;
  border-radius: 1.4rem;
  padding: 1rem 1.4rem;
  box-shadow: 0 14px 24px -12px rgba(0, 0, 0, .25);
  display: flex;
  align-items: center;
  gap: .9rem;
  font-size: 1.3rem;
  line-height: 1.3;
}
.fv-badge b { font-size: 1.5rem; color: var(--cvj-ink); display: block; }
.fv-badge span { font-size: 1.15rem; color: var(--cvj-mute); }
.fv-badge .ic {
  width: 3.6rem; height: 3.6rem; border-radius: 50%;
  background: var(--cvj-blue); color: #fff;
  display: grid; place-items: center;
  font-weight: 900; font-size: 1.6rem;
}
.fv-badge-1 { top: -1.4rem; left: -1rem; }
.fv-badge-2 { bottom: 1.2rem; right: -1.2rem; }
.fv-badge-2 .ic { background: var(--cvj-green); }

/* ============================================
   2. 相談前に知っておきたいこと
   ============================================ */
.car-section {
  position: relative;
  background: linear-gradient(180deg, #F3FAFE 0%, #EDF7EB 100%);
  padding: 3.8rem 0 3.4rem;
  overflow: hidden;
}
.car-head { text-align: center; padding: 0 2.4rem 2rem; }
.car-head .eyebrow { background: rgba(95, 184, 95, .14); color: var(--cvj-green-d); }
.car-head .section-title { font-size: 2.6rem; }
.car-head .section-title em { color: var(--cvj-green-d); font-style: normal; }

.car-scene {
  position: relative;
  height: 22rem;
  margin: 0 auto;
  /* 地面の道路ライン */
  background:
    /* 道路 */
    linear-gradient(180deg, transparent 70%, #595D66 70%, #595D66 100%),
    /* 黄色ライン */
    linear-gradient(180deg, transparent 78%, #FFC93C 78%, #FFC93C 80%, transparent 80%);
  overflow: hidden;
}
@media (max-width: 767px) { .car-scene { height: 14rem; } }

/* お店アイコン（右端の建物） */
.car-shop {
  position: absolute;
  right: 1.6rem;
  bottom: 5.6rem;
  width: 12rem;
  text-align: center;
  z-index: 1;
  pointer-events: none;
}
@media (max-width: 767px) { .car-shop { width: 8.4rem; bottom: 4.2rem; right: 1rem; } }
.car-shop-roof {
  background: var(--cvj-blue);
  color: #fff;
  font-weight: 900;
  font-size: 1.1rem;
  padding: .4rem 0;
  border-radius: .8rem .8rem 0 0;
  letter-spacing: .06em;
}
.car-shop-body {
  background: #fff;
  border: 2px solid var(--cvj-blue);
  border-top: none;
  border-radius: 0 0 .8rem .8rem;
  padding: .5rem .3rem .6rem;
  font-size: 1rem;
  color: var(--cvj-ink);
  font-weight: 700;
}
.car-shop-flag {
  position: absolute;
  top: -1.6rem; left: 50%;
  transform: translateX(-50%);
  width: .3rem; height: 1.6rem;
  background: #9CA0AB;
}
.car-shop-flag::before {
  content: ""; position: absolute; left: .3rem; top: 0;
  width: 1.4rem; height: 1rem;
  background: var(--cvj-green-d);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 50%);
}

/* 車本体 */
.car {
  position: absolute;
  bottom: 4.4rem;
  width: 18rem;
  left: -30%;
  animation-name: car-loop;
  animation-duration: 7s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  z-index: 2;
}
@media (max-width: 767px) {
  .car { bottom: 3rem; width: 12rem; }
}

.car__img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 .4rem .6rem rgba(0, 0, 0, .2));
}

/* ご成約スタンプ（SVG inline） */
.car__stamp {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7.2rem;
  height: 7.2rem;
  transform: translate(-50%, -50%) rotate(-12deg) scale(1);
  opacity: 0;
  filter: drop-shadow(0 .6rem .8rem rgba(0, 0, 0, .35));
  animation-name: stamp-pop;
  animation-duration: 7s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  pointer-events: none;
}
@media (max-width: 767px) {
  .car__stamp { width: 5.4rem; height: 5.4rem; }
}

/* 1台目は最初の周回だけ非表示 → JS で表示切替 */
.car01, .car01 .car__stamp { opacity: 0; }

/* 準備中はアニメ停止 */
.car, .car__stamp { animation-play-state: paused; }
html.is-anim-ready .car,
html.is-anim-ready .car__stamp { animation-play-state: running; }

/* 4台を 7s を 4 等分 */
.car01, .car01 .car__stamp { animation-delay: -5.25s; }
.car02, .car02 .car__stamp { animation-delay: -3.5s;  }
.car03, .car03 .car__stamp { animation-delay: -1.75s; }
.car04, .car04 .car__stamp { animation-delay:  0s;    }

@keyframes car-loop {
  0%   { left: -60%; }
  80%  { left:  80%; }
  100% { left: 200%; }
}
@keyframes stamp-pop {
  0%, 61% { opacity: 0; transform: translate(-50%, -50%) rotate(-12deg) scale(2.0); filter: blur(1px); }
  64%     { opacity: 1; transform: translate(-50%, -50%) rotate(-12deg) scale(.92); filter: blur(0); }
  67%     {              transform: translate(-50%, -50%) rotate(-12deg) scale(1.08); }
  72%     {              transform: translate(-50%, -50%) rotate(-12deg) scale(1.00); }
  100%    { opacity: 1; }
}

.car-note {
  text-align: center;
  font-size: 1.25rem;
  color: var(--cvj-ink);
  font-weight: 700;
  margin: 1.8rem 2rem 0;
  line-height: 1.6;
}
.car-note strong { color: var(--cvj-green-d); font-size: 1.4rem; }

/* ============================================
   3. CTA セクション（共通）
   ============================================ */
.cta-section {
  text-align: center;
  margin: 0 auto;
  width: 90%;
  padding: 2.4rem 0 1rem;
}
.cta-lead {
  display: inline-block;
  position: relative;
  background: #fff;
  border: 2px dashed var(--cvj-green);
  color: var(--cvj-ink);
  font-weight: 800;
  font-size: 1.5rem;
  padding: .9rem 2.2rem;
  border-radius: 999px;
  margin-bottom: 1.4rem;
}
.cta-lead::after {
  content: "";
  position: absolute;
  left: 50%; bottom: -1rem;
  width: 0; height: 0;
  margin-left: -.8rem;
  border-left: .9rem solid transparent;
  border-right: .9rem solid transparent;
  border-top: 1rem solid var(--cvj-green);
}
.cta-buttons { display: grid; gap: 1.2rem; }

.cta-btn {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .9rem;
  padding: 1.8rem 1.6rem;
  border-radius: 1.2rem;
  font-weight: 900;
  font-size: 1.9rem;
  text-decoration: none;
  box-shadow: 0 12px 22px -10px rgba(0, 0, 0, .35);
  animation: cta-float 1.8s ease-in-out infinite;
  transform-origin: center center;
  letter-spacing: .02em;
}
.cta-btn small { font-size: 1.15rem; font-weight: 700; opacity: .9; display: block; }
.cta-btn .ic { width: 2.6rem; height: 2.6rem; flex: 0 0 auto; }

.cta-tel  { background: linear-gradient(180deg, #2EAEEB 0%, var(--cvj-blue) 100%); color: #fff; }
.cta-line { background: linear-gradient(180deg, #16D86A 0%, var(--cvj-line) 100%);  color: #fff; }
.cta-form { background: linear-gradient(180deg, #7BCB7B 0%, var(--cvj-green-d) 100%); color: #fff; }

/* キラーンと光るシャイン */
.cta-btn::before {
  content: "";
  position: absolute;
  top: 0; left: -60%;
  width: 40%; height: 100%;
  background: linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.7) 50%, rgba(255,255,255,0) 100%);
  animation: cta-shine 2.5s infinite;
  pointer-events: none;
}
@keyframes cta-shine {
  0%   { left: -60%; opacity: 0; }
  10%  { opacity: 1; }
  40%  { left: 120%; opacity: 1; }
  60%  { opacity: 0; }
  100% { left: 120%; opacity: 0; }
}
@keyframes cta-float {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.04); }
}

/* ============================================
   4. ご相談続出セクション（実績）
   ============================================ */
.demand {
  background: var(--cvj-cream);
  padding: 3.6rem 2.4rem;
  text-align: center;
}
.demand .section-title { font-size: 2.8rem; }
.demand .section-title em { color: var(--cvj-green-d); font-style: normal; }
.demand-grid {
  margin: 2.4rem 0 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.demand-card {
  background: #fff;
  border-radius: 1.2rem;
  padding: 1.6rem .6rem 1.4rem;
  box-shadow: var(--cvj-shadow);
}
.demand-card b {
  display: block;
  font-size: 3rem;
  font-weight: 900;
  color: var(--cvj-blue);
  line-height: 1.1;
  font-feature-settings: "tnum";
}
.demand-card b small { font-size: 1.4rem; color: var(--cvj-ink); margin-left: .2rem; white-space: nowrap; display: inline-block; }
.demand-card span {
  display: block;
  font-size: 1.15rem;
  color: var(--cvj-ink-2);
  margin-top: .4rem;
  line-height: 1.4;
}
@media (max-width: 380px) {
  .demand-card b { font-size: 2.6rem; }
}

/* ============================================
   5. サービス
   ============================================ */
.svc-sec { background: #fff; padding: 4rem 2.4rem; }
.svc-sec .section-head { text-align: center; margin-bottom: 2.4rem; }
.svc-grid { display: grid; gap: 1.4rem; }
.svc-card {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding: 1.6rem;
  background: linear-gradient(180deg, #fff 0%, #F7FBFD 100%);
  border: 1px solid var(--cvj-stroke);
  border-radius: 1.2rem;
  box-shadow: 0 8px 18px -14px rgba(0, 0, 0, .25);
}
.svc-card .ic {
  flex: 0 0 auto;
  width: 6.4rem; height: 6.4rem;
  background: rgba(44, 150, 204, .10);
  border-radius: 50%;
  display: grid; place-items: center;
}
.svc-card .ic img { width: 4.4rem; height: 4.4rem; object-fit: contain; }
.svc-card h3 {
  font-size: 1.7rem;
  font-weight: 900;
  margin: 0 0 .4rem;
  color: var(--cvj-ink);
  line-height: 1.4;
}
.svc-card p { font-size: 1.35rem; color: var(--cvj-ink-2); margin: 0; line-height: 1.6; }

/* ============================================
   6. 選ばれる理由
   ============================================ */
.reasons {
  background: linear-gradient(180deg, #F7FBFD 0%, #ECF4F8 100%);
  padding: 4rem 2.4rem;
}
.reasons .section-head { text-align: center; margin-bottom: 2.6rem; }
.reason-list { display: grid; gap: 1.6rem; }
.reason-card {
  position: relative;
  background: #fff;
  border-radius: 1.2rem;
  padding: 2rem 1.8rem 1.8rem;
  box-shadow: 0 10px 20px -14px rgba(0, 0, 0, .25);
}
.reason-no {
  position: absolute;
  top: -1.2rem; left: 1.6rem;
  background: var(--cvj-blue);
  color: #fff;
  font-family: "Poppins", system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.3rem;
  padding: .4rem 1.2rem;
  border-radius: 999px;
  letter-spacing: .08em;
}
.reason-card h3 {
  font-size: 1.85rem;
  font-weight: 900;
  margin: 0 0 .8rem;
  color: var(--cvj-ink);
  line-height: 1.45;
}
.reason-card h3 em { font-style: normal; color: var(--cvj-blue); }
.reason-card p { font-size: 1.35rem; color: var(--cvj-ink-2); margin: 0; line-height: 1.75; }

/* ============================================
   7. 代表メッセージ
   ============================================ */
.owner-sec {
  background: #FFF;
  padding: 4rem 2.4rem;
}
.owner-photo {
  position: relative;
  border-radius: 1.4rem;
  overflow: hidden;
  margin-bottom: 1.8rem;
  box-shadow: 0 16px 32px -18px rgba(0, 0, 0, .35);
}
.owner-photo .ai-image-note { top: auto; bottom: 1.2rem; }
.owner-sec .section-title { font-size: 2.4rem; line-height: 1.4; }
.owner-sec p { font-size: 1.4rem; line-height: 1.95; margin: 0 0 1.2rem; }
.owner-sec p strong { color: var(--cvj-ink); }

/* ============================================
   8. ご利用の流れ
   ============================================ */
.flow-sec {
  background: var(--cvj-cream);
  padding: 4rem 2.4rem;
}
.flow-sec .section-head { text-align: center; margin-bottom: 2.4rem; }
.flow-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 1.6rem;
}
.flow-step {
  position: relative;
  background: #fff;
  border-radius: 1.2rem;
  padding: 1.8rem 1.8rem 1.6rem 6.2rem;
  box-shadow: 0 10px 18px -14px rgba(0, 0, 0, .25);
}
.flow-step .no {
  position: absolute;
  left: 1.4rem; top: 1.6rem;
  width: 3.8rem; height: 3.8rem;
  background: linear-gradient(135deg, var(--cvj-green), var(--cvj-green-d));
  color: #fff;
  font-family: "Poppins", system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.7rem;
  border-radius: 50%;
  display: grid; place-items: center;
  box-shadow: 0 6px 12px -6px rgba(95, 184, 95, .55);
}
.flow-step b {
  display: block;
  font-size: 1.6rem;
  color: var(--cvj-ink);
  font-weight: 900;
  margin-bottom: .3rem;
  line-height: 1.5;
}
.flow-step p { margin: 0; font-size: 1.3rem; line-height: 1.7; }
.flow-step + .flow-step::before {
  content: "";
  position: absolute;
  left: 3.3rem; top: -1.4rem;
  width: 0; height: 0;
  border-left: 1rem solid transparent;
  border-right: 1rem solid transparent;
  border-top: 1.2rem solid #E0D5C8;
}

/* ============================================
   9. お客様の声
   ============================================ */
.voice-sec { background: #fff; padding: 4rem 2.4rem; }
.voice-sec .section-head { text-align: center; margin-bottom: 2.4rem; }
.voice-list { display: grid; gap: 1.4rem; }
.voice-card {
  position: relative;
  background: var(--cvj-bg);
  border-left: 4px solid var(--cvj-blue);
  border-radius: .8rem;
  padding: 1.6rem 1.6rem 1.4rem;
}
.voice-card .q { font-size: 4rem; line-height: .8; color: rgba(44, 150, 204, .25); font-family: "Poppins", serif; margin-bottom: -.6rem; }
.voice-card blockquote {
  margin: 0 0 .8rem;
  font-size: 1.4rem;
  line-height: 1.8;
  color: var(--cvj-ink);
}
.voice-card cite {
  font-style: normal;
  font-size: 1.2rem;
  color: var(--cvj-mute);
  display: block;
  position: relative;
  padding-left: 3.6rem;
  min-height: 2.8rem;
  line-height: 1.6;
}
.voice-card cite::before {
  content: "";
  position: absolute;
  left: 0;
  top: .1rem;
  width: 2.8rem; height: 2.8rem;
  border-radius: 50%;
  background: var(--cvj-blue);
  color: #fff;
  text-align: center;
  line-height: 2.8rem;
  font-weight: 800;
  font-size: 1.2rem;
}
.voice-card.is-family cite::before { content: "F"; }
.voice-card.is-student cite::before { content: "S"; background: var(--cvj-green); }
.voice-card.is-biz cite::before     { content: "B"; background: var(--cvj-blue-d); }

/* ============================================
   10. FAQ
   ============================================ */
.faq-sec {
  background: var(--cvj-bg);
  padding: 4rem 2.4rem;
}
.faq-sec .section-head { text-align: center; margin-bottom: 2.4rem; }
.faq-list { display: grid; gap: 1.2rem; }
.faq-item {
  background: #fff;
  border-radius: .8rem;
  border: 1px solid var(--cvj-stroke);
  overflow: hidden;
}
.faq-item.is-open { box-shadow: 0 8px 18px -12px rgba(0, 0, 0, .2); }
.faq-question {
  width: 100%;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  font-weight: 800;
  font-size: 1.5rem;
  color: var(--cvj-ink);
  display: flex;
  align-items: flex-start;
  gap: .9rem;
  padding: 1.8rem 4.2rem 1.8rem 1.8rem;
  position: relative;
  line-height: 1.55;
  font-family: inherit;
}
.faq-question .mark {
  flex: 0 0 auto;
  width: 2.6rem; height: 2.6rem;
  background: var(--cvj-blue);
  color: #fff;
  border-radius: 50%;
  font-family: "Poppins", system-ui, sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  display: grid; place-items: center;
  line-height: 1;
}
.faq-question::after {
  content: "+";
  position: absolute;
  right: 1.8rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--cvj-green-d);
  font-size: 2.6rem;
  line-height: 1;
  font-weight: 400;
  transition: transform .25s ease;
}
.faq-item.is-open .faq-question::after { content: "−"; }

.faq-answer {
  display: block;
  padding: 0 1.8rem 1.8rem 5.3rem;
  font-size: 1.4rem;
  line-height: 1.85;
  color: var(--cvj-ink-2);
  position: relative;
}
html.js .faq-answer { display: none; }
html.js .faq-item.is-open .faq-answer { display: block; }
.faq-answer::before {
  content: "A";
  position: absolute;
  left: 1.8rem; top: 0;
  width: 2.6rem; height: 2.6rem;
  background: var(--cvj-green-d);
  color: #fff;
  border-radius: 50%;
  font-family: "Poppins", system-ui, sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  display: grid; place-items: center;
  line-height: 1;
}

/* ============================================
   11. 会社情報
   ============================================ */
.company-sec {
  background: #fff;
  padding: 4rem 2.4rem;
}
.company-sec .section-head { text-align: center; margin-bottom: 2rem; }
.company-table {
  background: var(--cvj-bg);
  border-radius: 1rem;
  padding: 1.6rem 1.8rem;
  margin: 0;
}
.company-table div {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: .8rem;
  padding: .9rem 0;
  border-bottom: 1px dashed var(--cvj-stroke);
}
.company-table div:last-child { border-bottom: none; }
.company-table dt {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--cvj-mute);
  margin: 0;
  letter-spacing: .03em;
}
.company-table dd {
  font-size: 1.4rem;
  color: var(--cvj-ink);
  margin: 0;
  line-height: 1.6;
  word-break: break-word;
}
.company-table dd a { color: var(--cvj-blue); font-weight: 700; }

/* ============================================
   12. フローティングCTA（下部固定）
   ============================================ */
.float-cta {
  position: fixed;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%) translateY(12px);
  width: min(100vw, 750px);
  display: flex;
  align-items: stretch;
  gap: 0;
  background: rgba(255, 255, 255, .98);
  backdrop-filter: blur(4px);
  box-shadow: 0 -8px 22px -8px rgba(0, 0, 0, .25);
  z-index: 998;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.float-cta.is-show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.float-cta a {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.2rem .6rem;
  font-size: 1.25rem;
  font-weight: 800;
  text-decoration: none;
  color: #fff;
  text-align: center;
  line-height: 1.2;
}
.float-cta a .ic { width: 2.4rem; height: 2.4rem; margin-bottom: .3rem; }
.float-cta .fc-tel  { background: var(--cvj-blue); }
.float-cta .fc-line { background: var(--cvj-line); }
.float-cta .fc-form { background: var(--cvj-green-d); }

html { scroll-padding-bottom: 9rem; }
a, button, input, select, textarea, [tabindex] { scroll-margin-bottom: 9rem; }

/* ============================================
   13. フッター
   ============================================ */
.lp-footer {
  background: #191B20;
  color: #B7BAC2;
  text-align: center;
  padding: 2.4rem 2rem calc(8.8rem + env(safe-area-inset-bottom));
  font-size: 1.2rem;
}
.lp-footer .logo {
  width: 16rem;
  margin: 0 auto 1.4rem;
  padding: .8rem 1rem;
  border-radius: .8rem;
  background: #fff;
}
.lp-footer-nav {
  display: flex;
  justify-content: center;
  gap: 1.6rem;
  flex-wrap: wrap;
  margin-bottom: 1.4rem;
}
.lp-footer-nav a {
  color: #B7BAC2;
  font-size: 1.2rem;
}
.lp-footer small { display: block; font-size: 1rem; color: #858791; }

/* SR only */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* ============================================
   日本語テキストレイアウト最適化（ja-text-layout-quality 標準）
   - line-break: strict 行頭/行末禁則を厳格化
   - text-wrap: pretty/balance  孤立行・1〜2文字泣き別れ抑制
   - word-break: auto-phrase   日本語の文節境界で改行（Chromium 119+）
   ============================================ */
body { line-break: strict; }

.fv-title,
.section-title,
.svc-card h3,
.reason-card h3,
.flow-step b {
  text-wrap: balance;
  word-break: auto-phrase;
}

.fv-sub,
.fv-eyebrow,
.section-lead,
.cta-lead,
.cta-btn span,
.demand-card span,
.svc-card p,
.reason-card p,
.owner-sec p,
.voice-card blockquote,
.voice-card p,
.voice-card cite,
.flow-step p,
.faq-question span,
.faq-answer,
.company-table dd,
.car-note {
  text-wrap: pretty;
  word-break: auto-phrase;
  line-break: strict;
}

/* 実績カードの電話番号など、数字＋small は分割禁止 */
.demand-card b {
  display: inline-block;
  white-space: nowrap;
}

/* =============================================================
   2026-07 事業実態・UI/UX刷新
   ============================================================= */

/* 販売量アニメーションの代わりに、相談条件を3カードで提示 */
.consult-start-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;
  padding:0 2.4rem;
}
.consult-start-card{
  background:#fff;border:1px solid var(--cvj-stroke);border-radius:1.2rem;
  padding:1.8rem 1.6rem;box-shadow:var(--cvj-shadow);text-align:left;
}
.consult-start-card>span{display:inline-flex;align-items:center;justify-content:center;width:3.4rem;height:3.4rem;border-radius:50%;background:#176B92;color:#fff;font-family:"Poppins",sans-serif;font-size:1.4rem;font-weight:700}
.demand>.eyebrow{color:#176B92}
.consult-start-card h3{margin:1rem 0 .6rem;color:var(--cvj-ink);font-size:1.8rem;line-height:1.45}
.consult-start-card p{margin:0;color:var(--cvj-ink-2);font-size:1em;line-height:1.75}

/* 相談例カード */
.voice-card h3{margin:.2rem 0 .6rem;color:var(--cvj-ink);font-size:1.8rem;line-height:1.5}
.voice-card p{margin:0;color:var(--cvj-ink-2);font-size:1em;line-height:1.8}
.voice-card .q{font-size:2.8rem;margin-bottom:0}

/* 読みやすい本文サイズ：desktop 18px / tablet 17px / mobile 16px */
.fv-sub,.section-lead,.car-note,.svc-card p,.reason-card p,.owner-sec p,
.flow-step p,.voice-card blockquote,.voice-card p,.faq-answer,.company-table dd{font-size:1em}

/* ナビ・CTA・質問ボタンは16px以上 */
.cta-lead,.faq-question,.float-cta a,.lp-footer-nav a{font-size:1.6rem}

/* 注記・ラベルは14px以上 */
.eyebrow,.fv-eyebrow,.fv-badge span,.cta-btn small,.demand-card span,
.demand-card b small,.reason-no,.voice-card cite,.company-table dt,
.company-table small,.lp-footer,.lp-footer small{font-size:1.4rem}
.fv-badge{font-size:1.4rem}

.cta-btn{animation:none}
.cta-btn::before{display:none}

@media (min-width:768px) and (max-width:1024px){
  body{font-size:1.7rem}
}
@media (max-width:767px){
  html{font-size:62.5%}
  body{font-size:1.6rem}
}
@media (max-width:600px){
  .consult-start-grid{grid-template-columns:1fr;padding:0 2rem}
  .consult-start-card{padding:1.8rem}
}

/* 390/768pxでは人物・手・端末を隠さないよう、写真上のバッジを下へ出す */
@media (max-width:820px){
  .fv-photo{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1rem;
    overflow:visible;
    border-radius:0;
    box-shadow:none;
  }
  .fv-photo>img{
    display:block;
    grid-column:1/-1;
    border-radius:2rem;
    box-shadow:0 24px 40px -18px rgba(44,150,204,.35);
  }
  .fv-badge{position:static;min-width:0}
}
@media (max-width:560px){
  .fv-photo{grid-template-columns:1fr}
}

/* 一般向け日本語見出しの下限 */
.fv-title{font-size:40px!important}
.section-title{font-size:32px!important}
.svc-card h3,.reason-card h3,.consult-start-card h3,.voice-card h3{font-size:24px!important}
@media (min-width:600px) and (max-width:1023px){
  .fv-title{font-size:36px!important}
  .section-title{font-size:29px!important}
  .svc-card h3,.reason-card h3,.consult-start-card h3,.voice-card h3{font-size:23px!important}
}
@media (max-width:599px){
  .section-title{font-size:26px!important}
  .svc-card h3,.reason-card h3,.consult-start-card h3,.voice-card h3{font-size:22px!important}
}
