@charset "UTF-8";
/* =============================================================
   Car Value Japan — Landing Page #2（出張買取特化）
   ベース：buddica-direct.online/01/ 型
   - 縦長1カラム max 750px・オレンジ＋黄マーカー＋LINE緑CTA
   - 固定LINE CTA・5項目悩み・3ステップ・4理由グリッド・10問FAQ
   ============================================================= */

:root {
  --cvj-base:    #243441;
  /* 旧 --cvj-org（橙）を CVJ 青へリブランド。HTMLの.fc_orgクラスもこの値で青く描画される。 */
  --cvj-org:     #176B92;
  --cvj-org-d:   #145F82;
  --cvj-grn:     #5FB85F;
  --cvj-grn-d:   #24703B;
  --cvj-ylw:     #FFD45E;
  --cvj-red:     #C5372B;
  --cvj-line:    #00CB43;
  --cvj-blue:    #176B92;
  --cvj-marker:  linear-gradient(rgba(255, 212, 94, 0) 55%, rgba(255, 212, 94, .9) 55%);
  --cvj-marker-grn: linear-gradient(rgba(95, 184, 95, 0) 55%, rgba(95, 184, 95, .28) 55%);
  --cvj-wall-grn:#EDF7EB;
  --cvj-wall-gry:#F4FAFD;
  --cvj-cream:   #EAF6FC;
  --cvj-ink:     #243441;
  --cvj-mute:    #536571;
  --cvj-stroke:  #E4ECF2;
  --base_fnt:    "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --fnt_yu:      "Yu Gothic", "游ゴシック体", YuGothic, var(--base_fnt);
}

* { box-sizing: border-box; }
html { scroll-behavior: auto; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--base_fnt);
  font-weight: 400;
  width: 100%;
  background: #ededed;
  font-size: 18px;
  color: var(--cvj-base);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  word-break: auto-phrase;
  text-wrap: pretty;
  line-break: strict;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: opacity .3s ease; }
a:hover { opacity: .85; }

.fnt_yu { font-family: var(--fnt_yu); font-weight: 500; }
.fc_ylw { color: var(--cvj-ylw); }
.fc_org { color: var(--cvj-org); }
.fc_grn { color: var(--cvj-grn-d); }
.marker { background: var(--cvj-marker); padding: 0 .15em; }
.marker-grn { background: var(--cvj-marker-grn); padding: 0 .15em; }
.nowrap { white-space: nowrap; word-break: keep-all; }

.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); }

#lp2-container {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  overflow-x: hidden;
  width: min(750px, 100%);
  background: #fff;
  margin: 0 auto;
  box-shadow: -20px 0 20px -15px rgba(0, 0, 0, .25), 20px 0 20px -15px rgba(0, 0, 0, .25);
  position: relative;
}

main { flex: 1; }

.inner {
  padding-left: min(25px, 4vw);
  padding-right: min(25px, 4vw);
}

/* ============ HEADER ============ */
.lp2-header {
  padding: min(15px, 2vw) min(25px, 4vw);
  background: #fff;
  border-bottom: 1px solid var(--cvj-stroke);
}
.head_title {
  margin: 0;
  display: flex;
  flex-direction: column;
}
.head_title .sub {
  margin: 0;
  font-size: min(16px, 2.7vw);
  font-weight: 600;
  color: var(--cvj-ink);
  letter-spacing: .04em;
}
.head_title .logo {
  margin: 0;
  width: min(180px, 42vw);
  margin-top: 4px;
}
.head_title .logo img { width: 100%; }

/* ============ CTA ボタン共通 ============ */
.cta-button {
  width: 100%;
  display: block;
  position: relative;
}
.cta-button a {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 100%;
  background: linear-gradient(180deg, #16D86A 0%, var(--cvj-line) 100%);
  border-radius: min(14px, 1.8vw);
  color: #fff;
  font-size: min(34px, calc(100vw / 21));
  font-weight: 900;
  text-align: center;
  letter-spacing: .04em;
  overflow: hidden;
  padding: .8em 1em;
  box-shadow: 0 8px 16px -8px rgba(0, 203, 67, .55);
  font-family: var(--base_fnt);
}
.cta-button a small {
  display: block;
  font-size: .58em;
  font-weight: 700;
  opacity: .92;
  margin-top: .15em;
}
.cta-button a .cta-btn-icn {
  width: min(40px, 6vw);
  height: auto;
  margin-right: min(10px, 1.6vw);
  flex: 0 0 auto;
}
.cta-button a::before {
  content: "";
  position: absolute;
  top: -50px;
  left: 0;
  width: 15px;
  height: 100%;
  background-color: rgba(255, 255, 255, .9);
  opacity: 0;
  transform: rotate(45deg);
  animation: lp2-shine 3s ease-in-out infinite;
  pointer-events: none;
}
@keyframes lp2-shine {
  0%   { transform: scale(0) rotate(45deg); opacity: 0; }
  80%  { transform: scale(0) rotate(45deg); opacity: .5; }
  81%  { transform: scale(4) rotate(45deg); opacity: 1; }
  100% { transform: scale(50) rotate(45deg); opacity: 0; }
}

/* テル系CTA（青） */
.cta-button.is-tel a {
  background: linear-gradient(180deg, #2EAEEB 0%, var(--cvj-blue) 100%);
  box-shadow: 0 8px 16px -8px rgba(44, 150, 204, .55);
}

/* ============ CTA セクション ============ */
.sec-cta-blc {
  font-weight: 700;
  display: grid;
  justify-items: center;
  gap: min(18px, 2.4vw);
  padding: min(30px, 4vw) min(25px, 4vw) min(45px, 6vw);
}
.cta-text {
  position: relative;
  font-size: min(32px, calc(100vw / 22));
  text-align: center;
  padding: 0 1.1em;
  font-weight: 800;
  color: var(--cvj-ink);
  line-height: 1.4;
}
.cta-text::before,
.cta-text::after {
  content: "";
  position: absolute;
  width: 1px;
  height: 1.15em;
  background: currentColor;
  bottom: 0;
}
.cta-text::before { left: 0; transform: rotate(-30deg); }
.cta-text::after  { right: 0; transform: rotate(30deg); }
.cta-text .hl {
  color: var(--cvj-org);
  background: var(--cvj-marker);
  padding: 0 .15em;
}
.cta-att {
  text-align: center;
  font-weight: 500;
  font-size: min(20px, calc(100vw / 28));
  line-height: 1.5;
  color: var(--cvj-base);
}

/* ============ HERO ============ */
#hero {
  background: linear-gradient(-100deg, #F4F3F1 0%, #FDFDFD 100%);
  padding: min(20px, 3vw) min(20px, 3vw) min(30px, 4vw);
  position: relative;
}
.hero_title {
  text-align: center;
  margin-bottom: min(20px, 3vw);
}
.hero_eyebrow {
  display: inline-block;
  background: var(--cvj-grn-d);
  color: #fff;
  font-weight: 800;
  font-size: min(20px, calc(100vw / 28));
  padding: .35em 1.2em;
  border-radius: 999px;
  margin-bottom: .9em;
  letter-spacing: .06em;
}
.hero_title h1 {
  margin: 0;
  font-size: min(46px, calc(100vw / 14));
  font-weight: 900;
  line-height: 1.3;
  color: var(--cvj-ink);
  letter-spacing: .02em;
}
.hero_title h1 .accent { color: var(--cvj-org); }
.hero_title h1 .hl {
  background: var(--cvj-marker);
  padding: 0 .15em;
}
.hero_contents {
  position: relative;
}
.hero_img {
  position: relative;
  border-radius: min(20px, 3vw);
  overflow: hidden;
  margin: 0 0 min(20px, 3vw);
  box-shadow: 0 20px 36px -16px rgba(0, 0, 0, .3);
}
.hero_img img { width: 100%; display: block; }
.ai-image-note {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 3;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(17, 43, 58, .86);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}

.hero_medal {
  margin: 0;
  padding: 0;
}
.hero_medal ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: min(10px, 1.4vw);
}
.hero_medal li {
  background: #fff;
  border: 2px solid var(--cvj-org);
  border-radius: min(14px, 2vw);
  padding: min(14px, 2vw) min(8px, 1.4vw);
  text-align: center;
  position: relative;
  box-shadow: 0 6px 14px -10px rgba(44, 150, 204, .50);
}
.hero_medal li::before {
  content: "✓";
  position: absolute;
  top: -.6em;
  left: 50%;
  transform: translateX(-50%);
  background: var(--cvj-org);
  color: #fff;
  width: 1.6em; height: 1.6em;
  border-radius: 50%;
  display: grid; place-items: center;
  font-weight: 900;
  font-size: min(18px, 2.8vw);
  line-height: 1;
}
.hero_medal li b {
  display: block;
  font-size: min(22px, calc(100vw / 24));
  font-weight: 900;
  color: var(--cvj-org);
  line-height: 1.3;
  margin-top: .3em;
}
.hero_medal li span {
  display: block;
  font-size: min(13px, calc(100vw / 36));
  color: var(--cvj-ink);
  line-height: 1.4;
  margin-top: .2em;
}

/* ============ #content ============ */
#content { margin-top: 0; }

/* ============ recommend（こんなあなたにおすすめ）============ */
.sec-recommend-blc {
  background: var(--cvj-wall-gry);
  padding-top: min(70px, 9vw);
  padding-bottom: min(80px, 9vw);
}
.recommend_title {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 700;
  font-size: min(30px, calc(100vw / 23));
  line-height: 1.4;
  gap: .35em;
  text-align: center;
}
.recommend_title .hash {
  position: relative;
  padding: 0 1.1em;
  font-weight: 600;
  font-size: min(22px, calc(100vw / 30));
  color: var(--cvj-mute);
}
.recommend_title .hash::before,
.recommend_title .hash::after {
  content: "／";
  position: absolute;
  bottom: 0;
  font-weight: 400;
  color: var(--cvj-mute);
}
.recommend_title .hash::before { left: 0; transform: scale(1, -1); }
.recommend_title .hash::after  { right: 0; }
.recommend_title h2 {
  margin: 0;
  font-size: min(32px, calc(100vw / 19));
  font-weight: 900;
  color: var(--cvj-ink);
}
.recommend_list {
  list-style: none;
  margin: min(48px, 7vw) 0 0;
  padding: 0 min(15px, 2.5vw);
  font-size: min(26px, calc(100vw / 25));
  font-weight: 600;
}
.recommend_list li {
  position: relative;
  padding-left: 1.7em;
  line-height: 1.55;
  color: var(--cvj-ink);
}
.recommend_list li + li { margin-top: .55em; }
.recommend_list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .25em;
  width: 1.2em; height: 1.2em;
  background-color: var(--cvj-grn);
  border-radius: 50%;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M3.5 8.5 L6.5 11.5 L12.5 5' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>");
  background-size: 76% 76%;
  background-position: center;
  background-repeat: no-repeat;
}

/* ============ step（3ステップ）============ */
.sec-step-blc {
  padding-top: min(80px, 9vw);
  padding-bottom: min(80px, 9vw);
  background: #fff;
}
.step-title {
  text-align: center;
  font-weight: 800;
  font-size: min(38px, calc(100vw / 17));
  line-height: 1.4;
  margin: 0 0 min(40px, 6vw);
  color: var(--cvj-ink);
}
.step-title .hl { color: var(--cvj-grn-d); background: var(--cvj-marker); padding: 0 .15em; }
.step-title .num {
  font-size: 1.5em;
  color: var(--cvj-org);
  font-family: "Poppins", system-ui, sans-serif;
  font-weight: 700;
  padding: 0 .15em;
}
.step-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: min(28px, 4vw);
}
.step-card {
  background: #fff;
  border-radius: min(18px, 2.4vw);
  border: 2px solid var(--cvj-org);
  padding: min(22px, 3vw) min(20px, 3vw);
  position: relative;
  box-shadow: 0 12px 22px -16px rgba(44, 150, 204, .50);
}
.step-card .num-title {
  display: grid;
  grid-template-columns: 1.8em 1fr;
  align-items: center;
  gap: .55em;
  font-size: min(28px, calc(100vw / 22));
  font-weight: 800;
  color: var(--cvj-ink);
  margin: 0 0 min(10px, 1.5vw);
}
.step-card .num-title .num {
  width: 1.7em;
  height: 1.7em;
  background: var(--cvj-org);
  color: #fff;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: "Poppins", system-ui, sans-serif;
  font-weight: 700;
  font-size: 1em;
  line-height: 1;
}
.step-card .step-desc {
  font-size: min(20px, calc(100vw / 31));
  line-height: 1.7;
  color: var(--cvj-base);
  margin: 0 0 min(10px, 1.5vw);
  padding-left: 2.3em;
}
.step-card .step-illust {
  background: var(--cvj-wall-gry);
  border-radius: min(12px, 1.6vw);
  padding: min(20px, 3vw);
  text-align: center;
  display: grid;
  place-items: center;
  min-height: min(120px, 18vw);
  margin-left: 2.3em;
}
.step-card .step-illust svg {
  width: min(80px, 14vw);
  height: auto;
}

/* ============ reason（4つの理由 2x2グリッド）============ */
.sec-reason-blc {
  background-color: var(--cvj-wall-gry);
  padding-top: min(70px, 9vw);
  padding-bottom: min(80px, 9vw);
}
.reason-title {
  font-size: min(38px, calc(100vw / 18));
  text-align: center;
  font-weight: 800;
  margin: 0;
  line-height: 1.4;
  color: var(--cvj-ink);
}
.reason-title .logo {
  display: inline;
  color: var(--cvj-org);
  font-weight: 900;
  font-family: "Poppins", system-ui, sans-serif;
  font-size: 1.08em;
  letter-spacing: .02em;
}
.reason-title .num {
  font-size: 1.3em;
  color: var(--cvj-org);
  font-family: "Poppins", system-ui, sans-serif;
  font-weight: 700;
}
.reason-list {
  list-style: none;
  margin: min(40px, 6vw) auto 0;
  padding: 0;
  width: min(620px, 90vw);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: min(50px, 8vw) min(30px, 5vw);
}
.reason-item {
  text-align: center;
}
.reason-item h3 {
  background: var(--cvj-org);
  color: #fff;
  display: grid;
  place-content: center;
  font-size: min(28px, calc(100vw / 22));
  height: 1.8em;
  font-weight: 700;
  border-radius: min(14px, 2vw);
  margin: 0 0 min(16px, 2.4vw);
}
.reason-item .icon {
  width: min(110px, 35%);
  aspect-ratio: 1 / 1;
  background: #fff;
  border-radius: 50%;
  border: 3px solid var(--cvj-org);
  display: grid;
  place-items: center;
  margin: 0 auto min(16px, 2.4vw);
  color: var(--cvj-org);
}
.reason-item .icon svg { width: 55%; height: 55%; }
.reason-item .in-text {
  margin: 0;
  font-size: min(22px, calc(100vw / 27));
  font-family: var(--fnt_yu);
  font-weight: 700;
  line-height: 1.4;
  color: var(--cvj-ink);
  letter-spacing: .02em;
}

/* ============ worry（こんな方もご安心）============ */
.sec-worry-blc {
  background-color: var(--cvj-wall-grn);
  padding-top: min(60px, 8vw);
  padding-bottom: min(70px, 9vw);
}
.worry-title {
  text-align: center;
  font-size: min(40px, calc(100vw / 16));
  font-weight: 800;
  margin: 0 0 min(35px, 5vw);
  color: var(--cvj-ink);
}
.worry-title .hl { background: var(--cvj-marker); padding: 0 .15em; }

.worry_list {
  background: #fff;
  padding: min(40px, 5vw) min(30px, 4vw);
  border-radius: min(14px, 2vw);
  list-style: none;
  margin: 0 0 min(25px, 3.5vw);
  box-shadow: 0 8px 18px -12px rgba(0, 0, 0, .2);
}
.worry_list li {
  position: relative;
  font-size: min(28px, calc(100vw / 22));
  font-weight: 700;
  padding-left: 2.2em;
  line-height: 1.35;
  color: var(--cvj-ink);
}
.worry_list li + li { margin-top: .8em; }
.worry_list li::before {
  content: "車";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1.5em; height: 1.5em;
  background: var(--cvj-grn-d);
  color: #fff;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: .65em;
  font-weight: 900;
}
.worry_list li:nth-child(2)::before { content: "履"; }
.worry_list li:nth-child(3)::before { content: "移"; }

.worry_message {
  display: grid;
  grid-template-columns: 32% 1fr;
  align-items: center;
  gap: min(20px, 3vw);
  background: #fff;
  border-radius: min(14px, 2vw);
  padding: min(18px, 2.5vw) min(22px, 3vw);
  box-shadow: 0 8px 18px -12px rgba(0, 0, 0, .2);
  margin-top: 0;
}
.worry_message .pic {
  border-radius: 50%;
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.worry_message .pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.worry_message .pic img[aria-hidden="true"] {
  object-fit: contain;
  padding: 18%;
  background: #fff;
}
.worry_message p {
  margin: 0;
  font-family: var(--fnt_yu);
  font-weight: 700;
  font-size: min(28px, calc(100vw / 22));
  line-height: 1.4;
  color: var(--cvj-ink);
}
.worry_message p strong { color: var(--cvj-grn-d); font-size: 1.05em; }

/* ============ owner（代表メッセージ）============ */
.sec-owner-blc {
  padding: min(80px, 9vw) min(30px, 4vw) min(70px, 8vw);
  background: #fff;
}
.owner-box {
  display: grid;
  grid-template-columns: 38% 1fr;
  gap: min(22px, 3vw);
  align-items: center;
  background: var(--cvj-cream);
  border-radius: min(18px, 2.4vw);
  padding: min(28px, 4vw);
}
.owner-box .pic {
  margin: 0;
  min-width: 0;
}
.owner-box .pic img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: min(14px, 2vw);
}
.ai-image-caption {
  display: block;
  margin-top: 8px;
  color: var(--cvj-ink);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
}
.owner-box .info { display: grid; gap: .5em; }
.owner-box .label {
  display: inline-block;
  background: var(--cvj-grn-d);
  color: #fff;
  font-size: min(16px, calc(100vw / 36));
  font-weight: 700;
  padding: .25em 1em;
  border-radius: 999px;
  letter-spacing: .04em;
  width: fit-content;
}
.owner-box h3 {
  margin: 0;
  font-size: min(28px, calc(100vw / 22));
  font-weight: 800;
  line-height: 1.4;
  color: var(--cvj-ink);
}
.owner-box .name {
  margin: 0;
  font-size: min(20px, calc(100vw / 30));
  font-weight: 700;
  color: var(--cvj-base);
}
.owner-box .name b { font-size: 1.15em; color: var(--cvj-ink); }
.owner-msg {
  margin: min(28px, 4vw) 0 0;
  font-size: min(22px, calc(100vw / 27));
  line-height: 1.8;
  color: var(--cvj-base);
  font-family: var(--fnt_yu);
}

/* ============ case / voice（買取実績・お客様の声）============ */
.sec-case-blc {
  padding: min(65px, 8vw) min(30px, 4vw) min(80px, 9vw);
  background-color: var(--cvj-wall-gry);
}
.sec-title {
  font-size: min(40px, calc(100vw / 16));
  text-align: center;
  font-weight: 800;
  letter-spacing: .04em;
  margin: 0 0 min(20px, 3vw);
  color: var(--cvj-ink);
}
.box-title {
  font-size: min(28px, calc(100vw / 22));
  font-weight: 800;
  text-align: center;
  color: var(--cvj-grn-d);
  letter-spacing: .03em;
  margin: 0 0 min(30px, 4vw);
}

.case-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(18px, 2.4vw);
}
.case-list li {
  background: #fff;
  border-radius: min(14px, 2vw);
  overflow: hidden;
  padding: min(18px, 2.5vw) min(14px, 2vw) min(20px, 3vw);
  text-align: center;
  box-shadow: 0 8px 18px -12px rgba(0, 0, 0, .2);
}
.case-list .thumb {
  width: 100%;
  aspect-ratio: 16 / 10;
  background: var(--cvj-wall-gry);
  border-radius: min(8px, 1.4vw);
  overflow: hidden;
  margin: 0 0 min(10px, 1.5vw);
}
.case-list .thumb img {
  width: 100%; height: 100%; object-fit: cover;
}
.case-list .price {
  font-family: "Poppins", system-ui, sans-serif;
  font-weight: 700;
  color: var(--cvj-red);
  font-size: min(22px, calc(100vw / 28));
  margin: 0 0 .25em;
  line-height: 1.1;
}
.case-list .price b {
  font-size: 1.7em;
  margin-right: .1em;
  font-weight: 700;
}
.case-list .model {
  margin: 0;
  font-size: min(16px, calc(100vw / 36));
  font-weight: 700;
  color: var(--cvj-ink);
  line-height: 1.4;
}
.case-list .model small {
  display: block;
  font-size: .8em;
  font-weight: 500;
  color: var(--cvj-mute);
  margin-top: .15em;
}

.box-voice_list { margin-top: min(60px, 8vw); }
.voice-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: min(18px, 2.5vw);
}
.voice-item {
  background: #fff;
  border-radius: min(18px, 2.4vw);
  border: 1px solid var(--cvj-stroke);
  padding: min(22px, 3vw) min(24px, 3.4vw);
  display: grid;
  grid-template-columns: 22% 1fr;
  gap: min(16px, 2.4vw);
  align-items: center;
  box-shadow: 0 6px 14px -10px rgba(0, 0, 0, .2);
}
.voice-item .avatar {
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: var(--cvj-blue);
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 900;
  font-size: min(26px, calc(100vw / 24));
  font-family: "Poppins", system-ui, sans-serif;
}
.voice-item.is-family .avatar  { background: var(--cvj-blue); }
.voice-item.is-student .avatar { background: var(--cvj-grn); }
.voice-item.is-biz .avatar     { background: var(--cvj-org-d); }
.voice-item .body { display: grid; gap: .35em; }
.voice-item .name {
  margin: 0;
  font-size: min(18px, calc(100vw / 32));
  color: var(--cvj-grn-d);
  font-weight: 800;
}
.voice-item .text {
  margin: 0;
  font-size: min(20px, calc(100vw / 30));
  line-height: 1.55;
  color: var(--cvj-base);
}

.case-att {
  margin: min(20px, 3vw) 0 0;
  text-align: center;
  font-size: min(14px, calc(100vw / 40));
  color: var(--cvj-mute);
  line-height: 1.5;
}

/* ============ FAQ ============ */
.sec-faq-blc {
  margin-top: min(45px, 6vw);
  padding-bottom: min(90px, 12vw);
  background: #fff;
}
.sec-faq-blc .sec-title { padding-top: min(50px, 7vw); }

.faq-list {
  padding: min(40px, 6vw) min(30px, 4vw) 0;
  margin: 0;
  font-size: min(22px, calc(100vw / 28));
}
.faq-list .faq_item { display: grid; gap: 0; }

.faq_q, .faq_a {
  position: relative;
  padding-left: 2.6em;
  line-height: 1.55;
  font-family: var(--fnt_yu);
}
.faq_q {
  cursor: pointer;
  font-weight: 700;
  color: var(--cvj-ink);
  background: transparent;
  border: none;
  text-align: left;
  font-size: inherit;
  padding: 1em 2.2em 1em 2.6em;
  width: 100%;
  border-top: 1px dashed var(--cvj-stroke);
}
.faq_q:first-of-type { border-top: none; }
.faq_q::before {
  content: "Q";
  position: absolute;
  left: 0;
  top: 1em;
  width: 1.75em;
  height: 1.75em;
  background: var(--cvj-org);
  color: #fff;
  border: 1px solid var(--cvj-org);
  font-family: "Poppins", system-ui, sans-serif;
  font-weight: 700;
  display: grid;
  place-content: center;
  font-size: .92em;
}
.faq_q::after {
  content: "";
  position: absolute;
  right: .5em;
  top: 50%;
  width: .55em;
  height: .55em;
  border-right: 2px solid var(--cvj-org);
  border-bottom: 2px solid var(--cvj-org);
  transform: translateY(-65%) rotate(45deg);
  transition: transform .25s ease;
}
.faq_q.is-open::after {
  transform: translateY(-25%) rotate(-135deg);
}
.faq_a {
  display: block;
  padding: .2em 0 1.2em 2.6em;
  color: var(--cvj-base);
  font-weight: 500;
}
html.js .faq_a { display: none; }
html.js .faq_a.is-open { display: block; }
.faq_a::before {
  content: "A";
  position: absolute;
  left: 0;
  top: 0;
  width: 1.75em;
  height: 1.75em;
  background: #fff;
  color: var(--cvj-org);
  border: 1px solid var(--cvj-org);
  font-family: "Poppins", system-ui, sans-serif;
  font-weight: 700;
  display: grid;
  place-content: center;
  font-size: .92em;
}
.faq_a .hl { color: var(--cvj-org); font-weight: 700; }

/* ============ フッター ============ */
.lp2-footer {
  background-color: #E5E5E5;
  padding: min(50px, 7vw) min(40px, 5vw) min(80px, 10vw);
  color: var(--cvj-ink);
}
.foot-nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: min(15px, 2.5vw) 0;
  font-size: min(20px, calc(100vw / 30));
  font-weight: 600;
}
.foot-nav li {
  position: relative;
  width: calc(100% / 3);
  text-align: center;
}
.foot-nav li:nth-child(n+2)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 1px;
  height: 1em;
  background: var(--cvj-base);
  transform: translateY(-50%);
}
.foot-nav li:nth-child(3n+1)::before { display: none; }
.foot-nav li a { color: var(--cvj-base); padding: 0 .5em; }
.foot-about {
  margin-top: min(40px, 5vw);
  display: grid;
  gap: min(12px, 1.8vw);
  line-height: 1.55;
}
.foot-about .logo {
  width: min(200px, 50%);
  margin: 0;
}
.foot-about .logo img { width: 100%; }
.foot-about .address {
  margin: 0;
  font-size: min(20px, calc(100vw / 30));
  line-height: 1.6;
}
.foot-about .address a { color: var(--cvj-blue); font-weight: 700; }
.lp2-footer .copy {
  font-size: min(14px, 2vw);
  text-align: center;
  padding-top: min(25px, 4vw);
  margin: 0;
  color: var(--cvj-mute);
}

/* ============ 固定LINEボタン（#fix-button）============ */
#fix-button {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 999;
  width: min(100vw, 750px);
  background: rgba(255, 255, 255, .95);
  backdrop-filter: blur(4px);
  padding: min(14px, 2vw) min(20px, 3vw);
  box-shadow: 0 -6px 18px -6px rgba(0, 0, 0, .2);
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease, transform .35s ease;
  transform: translateX(-50%) translateY(12px);
  display: grid;
  gap: min(8px, 1.2vw);
}
#fix-button.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
#fix-button .cta-text {
  font-size: min(20px, calc(100vw / 30));
  padding: 0 1.3em;
}
#fix-button .cta-button a {
  padding: .55em 1em;
  font-size: min(28px, calc(100vw / 24));
  border-radius: min(10px, 1.4vw);
}

/* ============ 装飾 ============ */
.section-eyebrow {
  display: inline-block;
  background: rgba(44, 150, 204, .12);
  color: var(--cvj-org);
  font-weight: 800;
  font-size: min(18px, calc(100vw / 32));
  padding: .25em 1.2em;
  border-radius: 999px;
  margin-bottom: .9em;
  letter-spacing: .12em;
}

/* ============ レスポンシブ：768+ で余白拡大 ============ */
@media (min-width: 540px) {
  #lp2-container { font-size: 18px; }
}

/* ============ アクセシビリティ：reduced motion ============ */
@media (prefers-reduced-motion: reduce) {
  .cta-button a::before { animation: none; }
}

/* ============ 日本語見出しのバランス強化 ============ */
.hero_title h1,
.recommend_title h2,
.step-title,
.reason-title,
.worry-title,
.sec-title,
.owner-box h3 {
  text-wrap: balance;
  word-break: auto-phrase;
}

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

#lp2-container{font-size:inherit}

/* 査定前に送る情報：3カード。入れ子リストは外側カードの装飾を継承させない */
.case-list>li{text-align:left;padding:min(24px,3.5vw);border:1px solid var(--cvj-stroke)}
.case-list>li h3{margin:0 0 .8em;color:var(--cvj-ink);font-size:18px;line-height:1.5;text-align:left}
.case-list>li ul{list-style:none;margin:0;padding:0;display:grid;gap:.55em}
.case-list>li li{
  position:relative;margin:0;padding:0 0 0 1.35em;background:transparent;border:0;
  border-radius:0;box-shadow:none;text-align:left;color:var(--cvj-base);font-size:1em;line-height:1.65;
}
.case-list>li li::before{content:"";position:absolute;left:0;top:.62em;width:.55em;height:.55em;border-radius:50%;background:var(--cvj-grn)}

/* 本文は画面幅に応じて18/17/16pxを継承 */
.step-card .step-desc,.reason-item .in-text,.recommend_list,.worry_list li,
.worry_message p,.owner-box .name,.owner-msg,.faq-list,.faq_a,
.foot-about .address,.case-list>li li{font-size:1em}

/* ナビ・操作要素 */
.cta-button a{font-size:clamp(20px,4.5vw,34px)}
.faq_q,.foot-nav{font-size:16px}
#fix-button .cta-button a{font-size:clamp(18px,4vw,28px)}
html{scroll-padding-bottom:150px}
a,button,input,select,textarea,[tabindex]{scroll-margin-bottom:150px}

/* 補助文・注記・ラベルは14px以上 */
.head_title .sub,.cta-button a small,.cta-att,.hero_eyebrow,
.hero_medal li span,.recommend_title .hash,.owner-box .label,
.voice-item .name,.case-att,.lp2-footer .copy,.section-eyebrow,
#fix-button .cta-text{font-size:14px}
.voice-item .name,.voice-item .text{font-size:1em}
.foot-about .address small{font-size:14px}

/* 固定CTAがフッター情報を覆わない余白 */
.lp2-footer{padding-bottom:150px}

/* 常時点滅は止め、色とサイズでCTAの優先度を示す */
.cta-button a::before{display:none;animation:none}

@media (min-width:768px) and (max-width:1024px){
  body{font-size:17px}
}
@media (max-width:767px){
  body{font-size:16px}
}
@media (max-width:600px){
  .case-list{grid-template-columns:1fr}
  .reason-list{width:min(620px,92vw);gap:32px 18px}
}

/* mobileの一般向け日本語見出し下限 */
@media (max-width:599px){
  .hero_title h1{font-size:30px!important}
  .recommend_title h2,.step-title,.reason-title,.worry-title,.sec-title{font-size:26px!important}
  .step-card h3,.reason-item h3,.owner-box h3,.box-title,.case-list>li h3{font-size:22px!important}
}
