/* =========================
   DESIGN TOKENS
   ========================= */
:root {
  --blue:        #0095ff;
  --blue-dark:   #1fb8be;
  --blue-light:  #7de8ec;
  --blue-pale:   rgba(0,149,255,0.10);
  --blue-border: rgba(0,149,255,0.28);

  --orange:      #ff6b35;
  --orange-dark: #e85520;
  --orange-glow: rgba(255,107,53,0.42);

  --gold:        #f5c842;
  --gold-dark:   #c99a10;
  --gold-pale:   rgba(245,200,66,0.15);

  --black:   #111111;
  --gray-dk: #444444;
  --gray-md: #888888;
  --gray-lt: #aaaaaa;
  --border:  #e8edf2;
  --white:   #ffffff;
  --bg-soft: #f4f8ff;
}

/* =========================
   RESET
   ========================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 1vw; scroll-behavior: smooth; overflow-x: hidden; }
body {
  font-family: "LINE Seed JP", sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--black);
  background: var(--white);
  overflow-x: hidden;
}
a { text-decoration: none; color: inherit; }
img { display: block; width: 100%; object-fit: cover; }
ul, ol, li { list-style: none; }

/* =========================
   ANIMATIONS
   ========================= */
@keyframes fadeUp    { from { opacity:0; transform:translateY(1.5rem); } to { opacity:1; transform:translateY(0); } }
@keyframes lineIn    { to { transform:scaleX(1); } }
@keyframes float     { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-0.5rem);} }
@keyframes floatMid  { 0%,100%{transform:translateY(-50%);} 50%{transform:translateY(calc(-50% - 0.5rem));} }
@keyframes revealUp  { from{opacity:0;transform:translateY(2rem);} to{opacity:1;transform:translateY(0);} }
@keyframes gradShift { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
@keyframes shimmer   { 0%{background-position:-200% center;} 100%{background-position:200% center;} }
@keyframes floatStar { 0%,100%{transform:translateY(0) rotate(0deg);opacity:.6;} 50%{transform:translateY(-0.8rem) rotate(20deg);opacity:1;} }
@keyframes lightFlow { 0%{left:-80%;} 100%{left:130%;} }

/* =========================
   UTILITIES
   ========================= */
.visible { opacity:1 !important; transform:none !important; }
.section-inner { max-width: 88rem; margin: 0 auto; padding: 0 4rem; }
.section-tag {
  display:inline-block; background:var(--blue); color:#fff;
  font-size:.75rem; font-weight:700; letter-spacing:.14em;
  padding:.2rem .8rem; border-radius:.2rem;
}
.badge { display:inline-flex; align-items:center; gap:.3rem; font-size:.95rem; font-weight:700; padding:.25rem .75rem; border-radius:.3rem; }
.badge-good { background:#e8f8ee; color:#1a9e4a; }
.badge-mid  { background:#fff8e0; color:#c4820a; }
.badge-bad  { background:#f0f0f0; color:#999; }

/* CTA共通ボタン */
.btn-orange {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  background:var(--orange); color:#fff;
  padding:1rem 2rem; border-radius:.3rem;
  font-size:.95rem; font-weight:700; letter-spacing:.06em;
  box-shadow:0 .25rem 1rem var(--orange-glow);
  transition:background .2s, transform .15s, box-shadow .2s;
  position:relative; overflow:hidden;
}
.btn-orange::before {
  content:''; position:absolute; top:-50%; left:-80%;
  width:40%; height:200%;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);
  transform:skewX(-15deg); animation:lightFlow 2.8s ease-in-out infinite; pointer-events:none;
}
.btn-orange:hover { background:var(--orange-dark); transform:translateY(-2px); box-shadow:0 .5rem 1.5rem var(--orange-glow); }
.btn-ghost {
  display:inline-flex; align-items:center; gap:.25rem;
  color:var(--blue); font-size:.9rem; font-weight:500;
  border-bottom:1px solid rgba(0,149,255,.45); padding-bottom:.1rem; transition:border-color .2s;
}
.btn-ghost:hover { border-color:var(--blue); }

/* =========================
   HEADER
   ========================= */
.header {
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:4.5rem; background:var(--white); border-bottom:1px solid var(--border);
  display:flex; align-items:center; padding:0 2.8rem;
}
.header-logo { display:flex; flex-direction:column; line-height:1; margin-right:auto; }
.header-logo-ja { font-size:.75rem; color:var(--gray-md); letter-spacing:.08em; margin-bottom:.2rem; }
.header-logo-en { font-size:1.35rem; font-weight:900; color:var(--black); letter-spacing:.04em; }
.header-logo-en span { color:var(--blue); }
.header-nav { display:flex; align-items:center; gap:2rem; margin-right:2rem; }
.header-nav a { font-size:.85rem; font-weight:700; letter-spacing:.04em; transition:color .2s; }
.header-nav a:hover { color:var(--blue); }
.header-tel { text-align:right; margin-right:1.5rem; line-height:1.4; }
.header-tel-label { display:block; font-size:.65rem; color:var(--gray-lt); letter-spacing:.06em; }
.header-tel-num   { display:block; font-size:1.25rem; font-weight:900; letter-spacing:.04em; }
.header-tel-hours { display:block; font-size:.65rem; color:var(--gray-lt); }
.header-cta {
  display:inline-flex; align-items:center; gap:.4rem;
  background:var(--orange); color:#fff;
  padding:0 1.6rem; height:2.9rem; border-radius:.3rem;
  font-size:.85rem; font-weight:700; letter-spacing:.06em;
  box-shadow:0 .2rem .8rem var(--orange-glow);
  transition:background .2s, transform .15s, box-shadow .2s;
}
.header-cta::after { content:'›'; font-size:1.1rem; font-weight:300; }
.header-cta:hover { background:var(--orange-dark); transform:translateY(-1px); }

/* =========================
   HERO
   ========================= */
.hero {
  margin-top:4.5rem; min-height:calc(100vh - 4.5rem);
  position:relative; overflow:hidden; display:flex; align-items:center;
}
.hero-bg {
  position:absolute; inset:0;
  background:url('https://doukon.shereer-tiara.co.jp/img/fv2.jpg') center center / cover no-repeat;
  z-index:0;
}
.hero-overlay {
  position:absolute; inset:0; z-index:1;
}
.hero-content {
  position:relative; z-index:2;
  padding:3rem 0 5rem 5.5rem; width:52%;
  opacity:0; transform:translateY(1.5rem);
  animation:fadeUp .75s .15s ease forwards;
}
.hero-badge {
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--blue); border-radius:10rem; padding:.45rem 1.8rem; margin-bottom:1.6rem;
}
.hero-badge-text { font-size:1rem; font-weight:700; color:#fff; letter-spacing:.1em; }
.hero-catch { font-size:1rem; font-weight:700; color:var(--black); letter-spacing:.04em; margin-bottom:.5rem; }
.hero-main { font-size:3.5rem; font-weight:900; line-height:1.4; margin-bottom:.1rem; }
.hero-main .uw { position:relative; display:inline-block; }
.hero-main .uw::after {
  content:''; position:absolute; bottom:.1rem; left:0; right:0;
  height:.3rem; background:linear-gradient(90deg,var(--blue),var(--blue-light));
  border-radius:.2rem; transform:scaleX(0); transform-origin:left;
  animation:lineIn .55s .85s ease forwards;
}
.hero-main2 { font-size:2.2rem; font-weight:900; line-height:1.4; margin-bottom:1.6rem; }
.hero-main2 .ac { color:var(--blue); }
.hero-sub { font-size:1rem; font-weight:700; line-height:1.8; margin-bottom:2.2rem; }
.hero-btns { display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; }
.hero-stats {
  display:flex; margin-top:2.8rem; padding-top:1.8rem;
  border-top:1px solid rgba(0,149,255,.25); max-width:42rem;
}
.hs { flex:1; padding-right:1.4rem; border-right:1px solid rgba(0,149,255,.18); }
.hs:nth-child(2) { padding-left:1.4rem; }
.hs:last-child   { border-right:none; padding-right:0; padding-left:1.4rem; }
.hs-n { display:block; font-size:2.8rem; font-weight:900; color:var(--blue); line-height:1; }
.hs-u { font-size:.9rem; font-weight:500; }
.hs-l { display:block; font-size:.9rem; font-weight:500; margin-top:.5rem; letter-spacing:.04em; }

/* チップ */
.chip {
  position:absolute; z-index:2; background:var(--white);
  border-radius:.5rem; padding:.65rem 1rem;
  box-shadow:0 .25rem 1.2rem rgba(0,0,0,.1);
  display:flex; align-items:center; gap:.5rem;
  font-size:.95rem; font-weight:700; white-space:nowrap;
}
.chip-dot { width:.5rem; height:.5rem; border-radius:50%; flex-shrink:0; }
.chip-a { top:14%; right:38%; animation:float 3.2s ease-in-out infinite; }
.chip-b { top:18%; right:12%; animation:floatMid 3.2s 1.1s ease-in-out infinite; }
.chip-c { bottom:42%; right:17%; animation:float 3.2s 2.2s ease-in-out infinite; }

/* ターゲットバー */
.hero-target-bar {
  margin-top:2rem;
  display:inline-flex; flex-wrap:wrap; gap:.6rem .8rem; align-items:center;
  background:var(--gold-pale); border:1.5px solid var(--gold);
  border-radius:.5rem; padding:.7rem 1.2rem;
}
.hero-target-bar-label {
  font-size:.75rem; font-weight:700; color:var(--gold-dark);
  background:var(--gold); padding:.15rem .6rem; border-radius:.2rem;
}
.hero-target-bar-item { font-size:.9rem; font-weight:700; color:var(--black); }
.hero-target-bar-sep  { color:var(--gray-lt); }

/* =========================
   PROBLEM
   ========================= */
.problem { background:var(--blue); padding:8rem 0; }
.problem-inner { max-width:88rem; margin:0 auto; padding:0 4rem; }
.problem-header { text-align:center; margin-bottom:4rem; }
.problem-lead { display:inline-flex; align-items:center; gap:.5rem; font-size:1rem; font-weight:700; color:#fff; letter-spacing:.08em; margin-bottom:1rem; }
.problem-lead-tag { display:inline-block; background:rgba(255,255,255,.25); color:#fff; font-size:.75rem; font-weight:700; letter-spacing:.1em; padding:.2rem .8rem; border-radius:.2rem; }
.problem-title { font-size:3rem; font-weight:900; color:#fff; letter-spacing:.02em; line-height:1.4; }
.problem-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-bottom:4rem; }
.problem-card {
  background:var(--white); border-radius:1rem; padding:2rem 1.6rem 1.6rem;
  display:flex; flex-direction:column; align-items:center; text-align:center; position:relative;
  box-shadow:0 .4rem 1.6rem rgba(0,0,0,.08);
  opacity:0; transform:translateY(2rem); transition:opacity .6s ease, transform .6s ease, box-shadow .25s;
}
.problem-card.visible { opacity:1; transform:none; }
.problem-card:hover { box-shadow:0 .8rem 2.4rem rgba(0,0,0,.14); transform:translateY(-.3rem); }
.problem-card:nth-child(2){transition-delay:.1s} .problem-card:nth-child(3){transition-delay:.2s} .problem-card:nth-child(4){transition-delay:.3s}
.problem-case { position:absolute; top:0; left:0; right:0; background:var(--blue); border-radius:1rem 1rem 0 0; padding:.5rem 1rem; display:flex; align-items:center; gap:.6rem; }
.problem-case-num { font-size:.9rem; font-weight:700; color:rgba(255,255,255,.8); letter-spacing:.12em; background:rgba(255,255,255,.2); padding:.15rem .5rem; border-radius:.2rem; }
.problem-case-title { font-size:1rem; font-weight:900; color:#fff; letter-spacing:.04em; }
.problem-illust { width:10rem; height:12rem; margin:1.5rem auto 1rem; object-fit:contain; }
.problem-text { font-size:1rem; font-weight:700; color:var(--black); line-height:1.4; letter-spacing:.02em; }
.problem-sub  { font-size:.875rem; font-weight:500; color:#2d2d2d; margin-top:.6rem; line-height:1.6; }
.problem-close {
  background:rgba(255,255,255,.15); border:2px solid rgba(255,255,255,.4);
  border-radius:.8rem; padding:2rem 3rem; text-align:center; backdrop-filter:blur(4px);
  opacity:0; transform:translateY(1.5rem); transition:opacity .6s ease .4s, transform .6s ease .4s;
}
.problem-close.visible { opacity:1; transform:none; }
.problem-close-text { font-size:1.6rem; font-weight:900; color:#fff; letter-spacing:.03em; line-height:1.6; }
.problem-close-text em { font-style:normal; border-bottom:3px solid rgba(255,255,255,.7); padding-bottom:.1rem; }

/* =========================
   TARGET STRIP（新規追加）
   ========================= */
.target-strip {
  background:linear-gradient(135deg,#0a0a0a 0%,#1a2b4a 100%);
  padding:3.5rem 0;
}
.target-strip-inner { max-width:88rem; margin:0 auto; padding:0 4rem; display:flex; align-items:center; gap:3rem; flex-wrap:wrap; }
.target-strip-label {
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--gold); color:var(--black);
  font-size:.8rem; font-weight:700; letter-spacing:.12em;
  padding:.3rem .9rem; border-radius:.2rem; white-space:nowrap;
}
.target-strip-items { display:flex; flex-wrap:wrap; gap:1.5rem 3rem; flex:1; }
.target-strip-item { display:flex; flex-direction:column; }
.target-strip-num { font-size:2.4rem; font-weight:900; color:var(--gold); line-height:1; letter-spacing:-.01em; }
.target-strip-num span { font-size:1rem; font-weight:500; color:rgba(255,255,255,.7); }
.target-strip-desc { font-size:.85rem; font-weight:500; color:rgba(255,255,255,.75); margin-top:.3rem; }

/* =========================
   WHY
   ========================= */
.why { background:var(--bg-soft); padding:8rem 0; }
.why-inner { max-width:88rem; margin:0 auto; padding:0 4rem; }
.why-header { text-align:center; margin-bottom:5rem; }
.why-tag-line { display:inline-flex; align-items:center; gap:.6rem; font-size:1rem; font-weight:700; color:var(--gray-md); letter-spacing:.08em; margin-bottom:1.2rem; }
.why-title { font-size:3rem; font-weight:900; line-height:1.4; letter-spacing:.02em; }
.why-title-ac { color:var(--blue); }
.why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-bottom:4rem; }
.why-card {
  background:var(--white); border-radius:1rem; overflow:hidden;
  box-shadow:0 .3rem 1.6rem var(--blue-pale);
  display:flex; flex-direction:column; align-items:center; text-align:center;
  opacity:0; transform:translateY(2rem); transition:opacity .6s ease, transform .6s ease, box-shadow .25s;
}
.why-card.visible { opacity:1; transform:none; }
.why-card:hover { box-shadow:0 .8rem 2.8rem rgba(0,149,255,.14); transform:translateY(-.3rem); }
.why-card:nth-child(2){transition-delay:.12s} .why-card:nth-child(3){transition-delay:.24s}
.why-card-top { width:100%; background:var(--blue); padding:.9rem 1.2rem; display:flex; align-items:center; justify-content:center; }
.why-card-label { font-size:1.2rem; font-weight:900; color:#fff; letter-spacing:.06em; }
.why-card-illust { width:12rem; height:12rem; margin:1.8rem auto .5rem; display:flex; align-items:center; justify-content:center; }
.why-card-illust img { width:100%; height:100%; object-fit:contain; }
.why-card-body { padding:.5rem 1.6rem 2rem; }
.why-card-text { font-size:1.2rem; font-weight:900; line-height:1.5; margin-bottom:.6rem; }
.why-card-sub  { font-size:.9rem; font-weight:500; color:var(--gray-dk); line-height:1.8; }
.why-message {
  text-align:center; background:var(--white); border-radius:.8rem; padding:2.4rem 3rem; margin-bottom:3rem;
  opacity:0; transform:translateY(1.5rem); transition:opacity .6s ease .2s, transform .6s ease .2s;
}
.why-message.visible { opacity:1; transform:none; }
.why-message-main   { font-size:2.5rem; font-weight:700; color:var(--black); margin-bottom:.8rem; line-height:1.2; }
.why-message-strong { font-size:1.2rem; font-weight:900; line-height:1.7; letter-spacing:.02em; }
.why-close {
  background:#292929; border-radius:1rem; padding:2.5rem 3rem; text-align:center;
  opacity:0; transform:translateY(1.5rem); transition:opacity .6s ease .3s, transform .6s ease .3s;
}
.why-close.visible { opacity:1; transform:none; }
.why-close-row { display:flex; align-items:center; justify-content:center; gap:1rem; flex-wrap:wrap; }
.why-close-badge { background:rgba(255,255,255,.25); color:#fff; font-size:1.2rem; font-weight:700; letter-spacing:.1em; padding:.25rem .8rem; border-radius:.2rem; }
.why-close-item  { font-size:1.4rem; font-weight:700; color:rgba(255,255,255,.9); letter-spacing:.04em; }
.why-close-item strong { color:#fff; font-weight:900; }
.why-arrow   { color:rgba(255,255,255,.6); font-size:1.2rem; }
.why-close-cta { font-size:2.5rem; font-weight:900; color:#fff; letter-spacing:.04em; }

/* =========================
   SOLUTION
   ========================= */
.solution { background:var(--white); padding:8rem 0; }
.solution-inner { max-width:88rem; margin:0 auto; padding:0 4rem; text-align:center; }
.solution-tag-line { display:inline-flex; align-items:center; gap:.6rem; font-size:1rem; font-weight:700; color:var(--gray-md); letter-spacing:.08em; margin-bottom:1.2rem; }
.solution-lead  { font-size:1.6rem; font-weight:700; margin-bottom:.6rem; }
.solution-title { font-size:2.8rem; font-weight:900; color:#fff; background:var(--blue); display:inline-block; padding:.2rem 2rem; border-radius:.4rem; letter-spacing:.04em; margin-bottom:5rem; }
.solution-visual { position:relative; display:flex; align-items:center; justify-content:center; margin-bottom:5rem; }
.solution-illust { width:32rem; height:32rem; object-fit:contain; position:relative; z-index:1; }
.sol-bubble {
  position:absolute; background:var(--white); border:3px solid var(--blue); border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; z-index:2;
  opacity:0; transform:scale(.8); transition:opacity .6s ease, transform .6s ease;
}
.sol-bubble.visible { opacity:1; transform:scale(1); }
.sol-bubble:nth-child(2){transition-delay:.1s} .sol-bubble:nth-child(3){transition-delay:.2s} .sol-bubble:nth-child(4){transition-delay:.3s}
.sol-bubble-label { font-size:1rem; font-weight:700; color:var(--blue); line-height:1.3; }
.sol-bubble-value { font-size:2.4rem; font-weight:900; color:var(--blue); line-height:1.2; }
.sol-bubble-a { width:12rem; height:12rem; top:0; left:8%; transition-delay:.1s; }
.sol-bubble-b { width:12rem; height:12rem; top:0; right:8%; transition-delay:.2s; }
.sol-bubble-c { width:12rem; height:12rem; bottom:0; left:5%; transition-delay:.3s; }
.sol-bubble-d { width:12rem; height:12rem; bottom:0; right:5%; transition-delay:.4s; }
.solution-message {
  background:var(--bg-soft); border-radius:1rem; padding:3rem 4rem;
  opacity:0; transform:translateY(1.5rem); transition:opacity .6s ease .4s, transform .6s ease .4s;
}
.solution-message.visible { opacity:1; transform:none; }
.solution-message-text { font-size:1.8rem; font-weight:900; line-height:1.6; letter-spacing:.04em; }
.solution-message-text .ac { color:var(--blue); }
.solution-message-sub { font-size:1rem; font-weight:500; color:var(--gray-dk); margin-top:1rem; line-height:1.8; }

/* =========================
   FLOW
   ========================= */
.flow { background:var(--bg-soft); padding:8rem 0; }
.flow-inner { max-width:88rem; margin:0 auto; padding:0 4rem; }
.flow-header { text-align:center; margin-bottom:6rem; }
.flow-tag-line { display:inline-flex; align-items:center; gap:.6rem; font-size:1rem; font-weight:700; color:var(--gray-md); letter-spacing:.08em; margin-bottom:1.2rem; }
.flow-title { font-size:3rem; font-weight:900; letter-spacing:.02em; line-height:1.4; margin-bottom:.8rem; }
.flow-lead  { font-size:1rem; font-weight:700; color:var(--gray-dk); letter-spacing:.04em; }
.flow-steps { display:flex; flex-direction:column; }
.flow-step {
  display:grid; grid-template-columns:14rem 1fr; gap:1rem; align-items:center; padding:2rem 0;
  opacity:0; transform:translateY(2rem); transition:opacity .6s ease, transform .6s ease;
}
.flow-step.visible { opacity:1; transform:none; }
.flow-step:nth-child(2){transition-delay:.1s} .flow-step:nth-child(3){transition-delay:.2s} .flow-step:nth-child(4){transition-delay:.3s}
.flow-step-num { position:relative; align-self:stretch; display:flex; flex-direction:column; align-items:center; }
.flow-step:not(:last-child) .flow-step-num::after {
  content:''; display:block; width:3px; background:var(--blue); border-radius:0 0 2px 2px;
  position:absolute; top:7rem; bottom:-4rem; left:50%;
  transform:translateX(-50%) scaleY(0); transform-origin:top center;
  transition:transform .9s cubic-bezier(.4,0,.2,1) .3s;
}
.flow-step:not(:last-child).visible .flow-step-num::after { transform:translateX(-50%) scaleY(1); }
.flow-step-circle {
  width:7rem; height:7rem; border-radius:50%; background:var(--blue); color:#fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center; flex-shrink:0;
}
.flow-step-circle-step { font-size:.85rem; font-weight:700; letter-spacing:.12em; line-height:1.4; }
.flow-step-circle-n    { font-size:2rem; font-weight:900; line-height:1; }
.flow-step-content { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.flow-step.no-photo .flow-step-content { grid-template-columns:1fr; }
.flow-step-title { font-size:1.5rem; font-weight:900; letter-spacing:.02em; margin-bottom:1rem; line-height:1.4; }
.flow-step-point {
  display:inline-flex; align-items:center; gap:.5rem; background:var(--blue); color:#fff;
  font-size:.9rem; font-weight:700; padding:.4rem 1.2rem; border-radius:.3rem; margin-bottom:1rem; letter-spacing:.04em;
}
.flow-step-desc { font-size:.95rem; font-weight:500; color:var(--black); line-height:1.8; }
.flow-step-photo { border-radius:.8rem; overflow:hidden; box-shadow:0 .4rem 1.6rem rgba(0,0,0,.1); aspect-ratio:4/3; }
.flow-step-photo img { width:100%; height:100%; object-fit:cover; display:block; }

/* =========================
   MERIT
   ========================= */
.merit { background:var(--bg-soft); padding:8rem 0; }
.merit-inner { max-width:88rem; margin:0 auto; padding:0 4rem; }
.merit-header { text-align:center; margin-bottom:5rem; }
.merit-tag-line { display:inline-flex; align-items:center; gap:.6rem; font-size:1rem; font-weight:700; color:var(--gray-md); letter-spacing:.08em; margin-bottom:1.2rem; }
.merit-title { font-size:3rem; font-weight:900; letter-spacing:.02em; line-height:1.4; margin-bottom:.6rem; }
.merit-lead  { font-size:1rem; font-weight:700; color:var(--gray-dk); }
.merit-list { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; margin-bottom:5rem; }
.merit-card {
  background:var(--white); border-radius:1.2rem; overflow:hidden;
  box-shadow:0 .3rem 1.6rem var(--blue-pale);
  display:flex; flex-direction:column; position:relative;
  opacity:0; transform:translateY(2rem); transition:opacity .6s ease, transform .6s ease, box-shadow .25s;
}
.merit-card.visible { opacity:1; transform:none; }
.merit-card:hover { box-shadow:0 .8rem 2.8rem rgba(0,149,255,.16); transform:translateY(-.3rem); }
.merit-card:nth-child(2){transition-delay:.1s} .merit-card:nth-child(3){transition-delay:.2s} .merit-card:nth-child(4){transition-delay:.3s}
.merit-card-illust { background:#e8f4ff; display:flex; align-items:center; justify-content:center; padding:2.5rem 2rem 2rem; position:relative; min-height:16rem; }
.merit-card-illust img { width:11rem; height:11rem; object-fit:contain; }
.merit-card-num { position:absolute; top:0; left:0; width:3.5rem; height:3.5rem; background:var(--blue); color:#fff; border-radius:0 0 1.2rem 0; display:flex; align-items:center; justify-content:center; font-size:1.4rem; font-weight:900; line-height:1; }
.merit-card-body { padding:1.5rem 1.8rem 2rem; flex:1; border-top:.3rem solid var(--blue); }
.merit-card-title { font-size:1.2rem; font-weight:900; letter-spacing:.02em; margin-bottom:1rem; line-height:1.5; text-align:center; }
.merit-card-desc { font-size:.9rem; font-weight:500; color:var(--gray-dk); line-height:2; }
.merit-card-desc .point { display:inline-flex; align-items:center; gap:.3rem; background:var(--blue); color:#fff; font-weight:700; font-size:.85rem; padding:.25rem .9rem; border-radius:.3rem; margin:.4rem 0; }
.merit-card-desc .strong { font-size:1.4rem; font-weight:900; color:var(--blue); display:block; text-align:center; margin:.6rem 0; }
.merit-card-desc ul li { padding:.15rem 0 .15rem 1.2rem; position:relative; font-size:.9rem; color:var(--gray-dk); }
.merit-card-desc ul li::before { content:'・'; position:absolute; left:0; color:var(--blue); font-weight:700; }

/* MERIT CLOSE */
.merit-close {
  background:linear-gradient(135deg,#588dc7 0%,#4496ef 30%,#0095ff 60%,#00c4ff 100%);
  background-size:300% 300%; animation:gradShift 6s ease infinite;
  border-radius:1rem; padding:3.5rem 4rem; text-align:center;
  position:relative; overflow:hidden;
  opacity:0; transform:translateY(1.5rem); transition:opacity .6s ease .4s, transform .6s ease .4s;
}
.merit-close.visible { opacity:1; transform:none; }
.merit-close::before, .merit-close::after {
  content:''; position:absolute; top:-50%; left:-80%;
  height:200%; transform:skewX(-15deg); pointer-events:none;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.2) 50%,transparent 70%);
}
.merit-close::before { width:50%; animation:lightFlow 3s ease-in-out infinite; }
.merit-close::after  { width:25%; animation:lightFlow 3s ease-in-out infinite .6s; }
.merit-close-star { position:absolute; color:rgba(255,255,255,.55); pointer-events:none; animation:floatStar 3s ease-in-out infinite; }
.merit-close-star:nth-child(1){font-size:1.4rem;top:1rem;left:6%;animation-delay:0s}
.merit-close-star:nth-child(2){font-size:.9rem;top:2.5rem;left:22%;animation-delay:.5s}
.merit-close-star:nth-child(3){font-size:1.1rem;top:.8rem;right:18%;animation-delay:1s}
.merit-close-star:nth-child(4){font-size:.7rem;top:3rem;right:7%;animation-delay:1.5s}
.merit-close-star:nth-child(5){font-size:1rem;bottom:1rem;left:16%;animation-delay:.7s}
.merit-close-star:nth-child(6){font-size:.8rem;bottom:1.2rem;right:22%;animation-delay:1.3s}
.merit-close-row { display:flex; align-items:center; justify-content:center; gap:1.2rem; margin-bottom:2rem; position:relative; z-index:1; flex-wrap:wrap; }
.merit-close-item {
  display:inline-flex; align-items:center; gap:.5rem;
  background:rgba(255,255,255,.2); border:1.5px solid rgba(255,255,255,.5);
  backdrop-filter:blur(4px); padding:.6rem 1.6rem; border-radius:3rem;
  font-size:1.4rem; font-weight:900; color:#fff; letter-spacing:.04em; transition:background .3s;
}
.merit-close-item:hover { background:rgba(255,255,255,.32); }
.merit-close-item .arrow { font-size:1.2rem; }
.merit-close-sep   { font-size:1.8rem; color:rgba(255,255,255,.35); font-weight:300; }
.merit-close-title { position:relative; z-index:1; font-size:1.8rem; font-weight:900; color:#fff; letter-spacing:.04em; line-height:1.7; }
.merit-close-title .ac {
  background:linear-gradient(90deg,#fff 0%,#ffe066 25%,#fff 50%,#ffe066 75%,#fff 100%);
  background-size:200% auto; -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text; animation:shimmer 3s linear infinite;
}

/* =========================
   COMPARE
   ========================= */
.compare { background:var(--white); padding:8rem 0; }
.compare-inner { max-width:88rem; margin:0 auto; padding:0 4rem; }
.compare-header { text-align:center; margin-bottom:4rem; }
.compare-tag-line { display:inline-flex; align-items:center; gap:.6rem; font-size:1rem; font-weight:700; color:var(--gray-md); letter-spacing:.08em; margin-bottom:1.2rem; }
.compare-title { font-size:3rem; font-weight:900; line-height:1.4; letter-spacing:.02em; margin-bottom:.6rem; }
.compare-lead  { font-size:1rem; font-weight:700; color:var(--gray-dk); }
.compare-table-wrap {
  overflow-x:auto; border-radius:1rem; box-shadow:0 .3rem 2rem rgba(0,149,255,.1);
  opacity:0; transform:translateY(2rem); transition:opacity .7s ease, transform .7s ease;
}
.compare-table-wrap.visible { opacity:1; transform:none; }
.compare-table { width:100%; border-collapse:collapse; min-width:70rem; font-size:1rem; }
.compare-table thead tr { background:var(--bg-soft); }
.compare-table thead th { padding:1.6rem 1.4rem; font-weight:700; font-size:1rem; text-align:center; border-bottom:2px solid #e0eaf5; letter-spacing:.04em; }
.compare-table thead th:first-child { text-align:left; width:14rem; }
.compare-table thead th.col-doukon { background:var(--blue); color:#fff; font-size:1.1rem; }
.compare-table tbody tr { border-bottom:1px solid #e8f0f8; transition:background .2s; }
.compare-table tbody tr:last-child { border-bottom:none; }
.compare-table tbody tr:hover { background:#f7faff; }
.compare-table tbody td { padding:1.4rem; text-align:center; font-size:1rem; font-weight:500; color:var(--gray-dk); vertical-align:middle; }
.compare-table tbody td:first-child { text-align:left; font-weight:700; color:var(--black); background:var(--bg-soft); border-right:2px solid #e0eaf5; }
.compare-table tbody td.col-doukon { background:#e8f4ff; font-weight:700; color:var(--black); border-left:2px solid var(--blue); border-right:2px solid var(--blue); }
.compare-table tbody tr:last-child td.col-doukon { border-bottom:2px solid var(--blue); }
.compare-close { margin-top:3rem; text-align:center; opacity:0; transform:translateY(1.5rem); transition:opacity .6s ease .3s, transform .6s ease .3s; }
.compare-close.visible { opacity:1; transform:none; }
.compare-close-text { display:inline-block; font-size:1.6rem; font-weight:900; color:var(--black); letter-spacing:.04em; border-bottom:4px solid var(--blue); padding-bottom:.4rem; }
/* compare visual */
.compare-visual { margin-top:6rem; display:grid; grid-template-columns:1fr 1.3fr; gap:6rem; align-items:center; opacity:0; transform:translateY(2rem); transition:opacity .7s ease .2s, transform .7s ease .2s; }
.compare-visual.visible { opacity:1; transform:none; }
.compare-visual-intro { font-size:1.5rem; font-weight:900; line-height:1.5; letter-spacing:.02em; margin-bottom:.5rem; }
.compare-visual-intro .ac { color:var(--blue); }
.compare-visual-sub { font-size:1rem; font-weight:500; color:var(--gray-dk); margin-bottom:3.5rem; line-height:1.8; }
.compare-visual-items { display:flex; flex-direction:column; gap:3rem; }
.compare-visual-item { display:flex; flex-direction:column; align-items:flex-start; gap:.8rem; }
.compare-visual-icon { width:4.5rem; height:4.5rem; background:#e8f4ff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:2rem; flex-shrink:0; }
.compare-visual-item-title { font-size:1.1rem; font-weight:900; color:var(--blue); letter-spacing:.04em; line-height:1.4; }
.compare-visual-item-body  { font-size:.9rem; color:var(--gray-dk); line-height:1.9; }
.compare-visual-photo { border-radius:1.2rem; overflow:hidden; box-shadow:0 .6rem 2.4rem rgba(0,149,255,.12); aspect-ratio:3/4; position:relative; }
.compare-visual-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.compare-visual-badge {
  position:absolute; bottom:1.8rem; right:1.8rem;
  width:7.5rem; height:7.5rem; background:var(--orange); border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  color:#fff; font-size:.85rem; font-weight:700; line-height:1.6; letter-spacing:.04em;
  box-shadow:0 .4rem 1.4rem var(--orange-glow);
  cursor:pointer; transition:transform .3s, box-shadow .3s; text-decoration:none;
}
.compare-visual-badge:hover { transform:scale(1.08); box-shadow:0 .6rem 2rem var(--orange-glow); }

/* =========================
   EVIDENCE
   ========================= */
.evidence { background:var(--bg-soft); padding:8rem 0; }
.evidence-inner { max-width:88rem; margin:0 auto; padding:0 4rem; }
.evidence-header { text-align:center; margin-bottom:5rem; }
.evidence-tag-line { display:inline-flex; align-items:center; gap:.6rem; font-size:1rem; font-weight:700; color:var(--gray-md); letter-spacing:.08em; margin-bottom:1.2rem; }
.evidence-title { font-size:3rem; font-weight:900; line-height:1.4; letter-spacing:.02em; margin-bottom:.6rem; }
.evidence-lead  { font-size:1rem; font-weight:500; color:var(--gray-dk); line-height:2; }
.evidence-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.evidence-text-title { font-size:2rem; font-weight:900; line-height:1.5; margin-bottom:0; letter-spacing:.02em; }
.evidence-text-title .ac { color:var(--blue); }
.evidence-text-body { font-size:1rem; font-weight:700; color:var(--black); line-height:2.2; margin-bottom:2rem; }
.evidence-list { display:flex; flex-direction:column; gap:.8rem; margin-bottom:2rem; }
.evidence-list li { display:flex; align-items:center; gap:.8rem; font-size:1.1rem; font-weight:700; letter-spacing:.2rem; }
.evidence-list li::before { content:'✓'; color:var(--blue); font-weight:900; font-size:1.1rem; flex-shrink:0; }
.evidence-doubt { background:#fff8e0; border:1.5px solid #ffc107; border-radius:.6rem; padding:1.2rem 1.6rem; font-size:1rem; font-weight:700; color:#856404; line-height:1.9; }
.evidence-video-wrap { border-radius:1rem; overflow:hidden; box-shadow:0 .5rem 2.4rem rgba(0,149,255,.15); opacity:0; transform:translateX(2rem); transition:opacity .7s ease .2s, transform .7s ease .2s; }
.evidence-video-wrap.visible { opacity:1; transform:none; }
.evidence-step-nav { display:flex; align-items:center; justify-content:center; gap:0; padding:1.4rem 1.6rem; background:var(--white); border-bottom:1px solid #e0eaf5; }
.evidence-step-item { display:flex; flex-direction:column; align-items:center; gap:.4rem; position:relative; padding:0 1.2rem; }
.evidence-step-item:not(:last-child)::after { content:''; position:absolute; right:-.6rem; top:1.4rem; width:1.2rem; height:1px; background:#cce4f7; }
.evidence-step-circle { width:3.2rem; height:3.2rem; border-radius:50%; background:#e0eaf5; color:var(--gray-md); display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:.55rem; font-weight:700; line-height:1.3; }
.evidence-step-circle.active { background:var(--blue); color:#fff; }
.evidence-step-circle-step { font-size:.5rem; letter-spacing:.08em; opacity:.8; }
.evidence-step-circle-num  { font-size:1rem; font-weight:900; line-height:1; }
.evidence-step-label { font-size:.75rem; font-weight:500; color:var(--gray-md); text-align:center; line-height:1.4; }
.evidence-step-item.active-item .evidence-step-label { color:var(--blue); font-weight:700; }
.evidence-thumb { width:100%; aspect-ratio:16/9; background:linear-gradient(135deg,#003d80,#0095ff); display:flex; align-items:center; justify-content:center; position:relative; cursor:pointer; overflow:hidden; }
.evidence-thumb-img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.evidence-thumb-overlay { position:absolute; inset:0; background:rgba(0,60,120,.35); }
.evidence-play-btn { position:relative; z-index:2; width:7rem; height:7rem; background:rgba(255,255,255,.95); border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; border:none; transition:transform .3s, box-shadow .3s; box-shadow:0 .4rem 1.6rem rgba(0,0,0,.25); }
.evidence-play-btn:hover { transform:scale(1.1); box-shadow:0 .6rem 2.4rem rgba(0,0,0,.3); }
.evidence-play-icon { width:0; height:0; border-style:solid; border-width:1.4rem 0 1.4rem 2.4rem; border-color:transparent transparent transparent var(--blue); margin-left:.4rem; }
.evidence-video-label { background:var(--blue); color:#fff; text-align:center; padding:1rem 1.4rem; font-size:1rem; font-weight:700; letter-spacing:.06em; display:flex; align-items:center; justify-content:center; gap:.6rem; }
.evidence-video-label::before { content:'▶'; font-size:.85rem; }
.evidence-iframe-wrap { display:none; width:100%; aspect-ratio:16/9; }
.evidence-iframe-wrap iframe { width:100%; height:100%; border:none; display:block; }
.evidence-caption { margin-top:4rem; font-size:2.2rem; font-weight:900; text-align:center; letter-spacing:.04em; }
.evidence-caption .ac { color:var(--blue); }

/* =========================
   CTA
   ========================= */
.cta-sec { background:linear-gradient(180deg,var(--bg-soft) 0%,#e8f4ff 100%); padding:8rem 0; }
.cta-inner { max-width:88rem; margin:0 auto; padding:0 4rem; }
.cta-header { text-align:center; margin-bottom:5rem; }
.cta-tag-line { display:inline-flex; align-items:center; gap:.6rem; font-size:1rem; font-weight:700; color:var(--gray-md); letter-spacing:.08em; margin-bottom:1.2rem; }
.cta-title { font-size:3rem; font-weight:900; line-height:1.4; letter-spacing:.02em; }
.cta-title .ac { color:var(--blue); }
.cta-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem; margin-bottom:5rem; }
.cta-card {
  background:var(--white); border-radius:1rem; overflow:hidden;
  box-shadow:0 .3rem 1.6rem var(--blue-pale); display:flex; flex-direction:column;
  opacity:0; transform:translateY(2rem); transition:opacity .6s ease, transform .6s ease, box-shadow .25s;
}
.cta-card.visible { opacity:1; transform:none; }
.cta-card:hover { box-shadow:0 .8rem 2.8rem rgba(0,149,255,.16); transform:translateY(-.3rem); }
.cta-card:nth-child(2){transition-delay:.1s} .cta-card:nth-child(3){transition-delay:.2s} .cta-card:nth-child(4){transition-delay:.3s}
.cta-card-head { padding:1rem 1.4rem; display:flex; align-items:center; justify-content:center; }
.cta-card-head-label { display:inline-block; color:#fff; font-size:1rem; font-weight:900; padding:.5rem 1.8rem; border-radius:3rem; letter-spacing:.06em; text-align:center; }
.cta-card:nth-child(1) .cta-card-head-label { background:#3bb88a; }
.cta-card:nth-child(2) .cta-card-head-label { background:#2abcce; }
.cta-card:nth-child(3) .cta-card-head-label { background:var(--blue); }
.cta-card:nth-child(4) .cta-card-head-label { background:var(--orange); }
.cta-card-body { padding:1.6rem 1.8rem 2rem; flex:1; display:flex; flex-direction:column; gap:.8rem; }
.cta-card-price { font-size:1.8rem; font-weight:900; color:var(--blue); line-height:1.2; }
.cta-card-price-sub { font-size:.85rem; font-weight:500; color:var(--gray-md); display:block; margin-top:.2rem; }
.cta-card-desc  { font-size:.9rem; font-weight:500; color:var(--gray-dk); line-height:1.9; }
.cta-card-list li { display:flex; align-items:flex-start; gap:.6rem; font-size:.9rem; font-weight:500; color:var(--gray-dk); line-height:1.7; }
.cta-card-list li::before { content:'✓'; color:var(--blue); font-weight:900; font-size:.9rem; flex-shrink:0; margin-top:.1rem; }
.cta-card-note { font-size:.85rem; font-weight:700; color:var(--black); margin-top:.6rem; padding-top:.8rem; border-top:1px solid #e8f0f8; line-height:1.7; }
.cta-final {
  background:var(--white); border-radius:1.2rem; padding:5rem; text-align:center;
  box-shadow:0 .4rem 2rem var(--blue-pale);
  opacity:0; transform:translateY(2rem); transition:opacity .7s ease .3s, transform .7s ease .3s;
}
.cta-final.visible { opacity:1; transform:none; }
.cta-final-question { font-size:1.1rem; font-weight:700; color:var(--gray-md); letter-spacing:.04em; margin-bottom:1rem; }
.cta-final-title { font-size:2.2rem; font-weight:900; line-height:1.6; letter-spacing:.02em; margin-bottom:.8rem; }
.cta-final-title .ac { color:var(--blue); }
.cta-final-sub { font-size:1rem; font-weight:500; color:var(--gray-dk); line-height:2; margin-bottom:3rem; }
.cta-btn-wrap { display:flex; flex-direction:column; align-items:center; gap:1.2rem; }
.cta-btn-main {
  display:inline-flex; align-items:center; justify-content:center; gap:.8rem;
  background:var(--orange); color:#fff; text-decoration:none;
  font-size:1.5rem; font-weight:900; letter-spacing:.06em;
  padding:1.6rem 0; width:80%; border-radius:6rem;
  box-shadow:0 .5rem 2rem var(--orange-glow);
  transition:background .2s, transform .2s, box-shadow .2s;
  position:relative; overflow:hidden;
}
.cta-btn-main::before {
  content:''; position:absolute; top:-50%; left:-80%;
  width:40%; height:200%;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);
  transform:skewX(-15deg); animation:lightFlow 2.8s ease-in-out infinite; pointer-events:none;
}
.cta-btn-main:hover { background:var(--orange-dark); transform:translateY(-3px); box-shadow:0 .8rem 2.8rem var(--orange-glow); }
.cta-btn-main-arrow { font-size:1.4rem; font-weight:300; }
.cta-btn-note { font-size:1rem; font-weight:500; color:var(--gray-md); letter-spacing:.04em; }
.cta-btn-note .red { color:#e83535; font-weight:700; }

/* =========================
   FOOTER
   ========================= */
.footer { background:#111; color:rgba(255,255,255,.55); text-align:center; padding:2rem; font-size:.85rem; }



/* CTA電話番号 */
.cta-tel {
  display:flex; flex-direction:column; align-items:center; gap:.3rem;
  margin-top:.8rem;
  padding-top:1.2rem;
  border-top:1px solid var(--border);
}
.cta-tel-label {
  font-size:.7rem; color:var(--gray-lt); letter-spacing:.06em;
}
.cta-tel-num {
  font-size:2rem; font-weight:900; color:var(--black); letter-spacing:.04em;
  line-height:1.2; text-decoration:none;
  transition:color .2s;
}
.cta-tel-num:hover { color:var(--blue); }
.cta-tel-hours {
  font-size:.7rem; color:var(--gray-lt); letter-spacing:.04em;
}



/* =========================
   SP ( max-width: 960px )
   ========================= */
@media screen and (max-width:960px) {

  html { font-size: 3.24vw; }

  .section-inner { padding:0 1.2rem; }

  /* Header */
  .header { height:3.8rem; padding:0 1.2rem; }
  .header-nav, .header-tel { display:none; }
  .header-cta { padding:0 1rem; height:2.4rem; }

  /* Hero */
  .hero { margin-top:3.8rem; min-height:calc(100vh - 3.8rem); align-items:flex-start; padding-top:0; }
  .hero-bg {
    background:url('https://doukon.shereer-tiara.co.jp/img/fv2.jpg') center top / cover no-repeat;
  }
  .hero-overlay {
    background:linear-gradient(to bottom,
      rgba(225,242,246,.98) 0%,
      rgba(225,242,246,.94) 55%,
      rgba(225,242,246,.75) 80%,
      rgba(225,242,246,.4) 100%
    );
  }
  .hero-content { padding:2rem 1.2rem 3rem; width:100%; }
  .hero-badge { padding:.4rem 1.2rem; margin-bottom:1rem; }
  .hero-catch { margin-bottom:.3rem; }
  .hero-main2 { margin-bottom:1rem; }
  .hero-sub   { margin-bottom:1.4rem; }
  .hero-btns  { gap:.8rem; }
  .btn-orange { padding:.85rem 1.5rem; }
  .hero-stats { margin-top:1.6rem; padding-top:1rem; }
  .hs-l { margin-top:.3rem; }
  .hero-target-bar { margin-top:1.4rem; padding:.6rem 1rem; gap:.4rem .6rem; }
  .chip { display:none; }

  /* Target strip */
  .target-strip { padding:2.5rem 0; }
  .target-strip-inner { padding:0 1.2rem; flex-direction:column; gap:1.5rem; }
  .target-strip-items { gap:1.2rem 2rem; }

  /* Problem */
  .problem { padding:4rem 0; }
  .problem-inner { padding:0 1.2rem; }
  .problem-grid { grid-template-columns:1fr 1fr; gap:.9rem; }
  .problem-card { border-radius:.8rem; padding:1.2rem 1rem 1rem; }
  .problem-case { border-radius:.8rem .8rem 0 0; padding:.4rem .8rem; }
  .problem-illust { width:7rem; height:8rem; margin:2.8rem auto .8rem; }
  .problem-close { padding:1.5rem; }

  /* Why */
  .why { padding:4rem 0; }
  .why-inner { padding:0 1.2rem; }
  .why-grid { grid-template-columns:1fr; gap:1.2rem; }
  .why-card-illust { 
        width: 12rem;
        height: 12rem;
        margin: 1.2rem auto .4rem;
}
  .why-message { padding:1.4rem; }
  .why-close { padding:1.6rem 1.2rem; }
  .why-close-row { flex-direction:column; gap:.5rem; }

  /* Solution */
  .solution { padding:4rem 0; }
  .solution-inner { padding:0 1.2rem; }
  .solution-title { padding:.2rem 1.2rem; margin-bottom:2.5rem; }
  .solution-visual { min-height:24rem; }
  .solution-illust { width:18rem; height:18rem; }
  .sol-bubble { border:2px solid var(--blue); }
  .sol-bubble-a { width:7rem; height:7rem; top:0; left:0; }
  .sol-bubble-b { width:7rem; height:7rem; top:0; right:0; }
  .sol-bubble-c { width:7rem; height:7rem; bottom:0; left:0; }
  .sol-bubble-d { width:7rem; height:7rem; bottom:0; right:0; }
  .solution-message { padding:1.8rem 1.4rem; }

  /* Flow */
  .flow { padding:4rem 0; }
  .flow-inner { padding:0 1.2rem; }
  .flow-step { grid-template-columns:1fr; gap:0; padding:2.5rem 0; border-bottom:1px solid var(--border); }
  .flow-step:first-child { border-top:1px solid var(--border); }
  .flow-step:not(:last-child) .flow-step-num::after { display:none; }
  .flow-step-num { flex-direction:row; align-items:center; gap:1rem; margin-bottom:1.2rem; }
  .flow-step-circle { width:4.5rem; height:4.5rem; }
  .flow-step-content { grid-template-columns:1fr; gap:1.2rem; }
  .flow-step-title { margin-bottom:.6rem; }

  /* Merit */
  .merit { padding:4rem 0; }
  .merit-inner { padding:0 1.2rem; }
  .merit-list { grid-template-columns:1fr 1fr; gap:1.2rem; }
  .merit-card-illust { min-height:12rem; padding:2rem 1.2rem 1.5rem; }
  .merit-card-illust img { 
width: 12rem;
        height: 12rem;
   }
  .merit-card-num { width:2.8rem; height:2.8rem; border-radius:0 0 .8rem 0; }
  .merit-card-body { padding:1rem 1.2rem 1.4rem; }
  .merit-close { padding:2rem 1.4rem; }
  .merit-close-row { flex-direction:column; gap:.6rem; }
  .merit-close-item { padding:.4rem 1.2rem; }
  .merit-close-star:nth-child(n+5) { display:none; }

  /* Compare */
  .compare { padding:4rem 0; }
  .compare-inner { padding:0 1.2rem; }
  .compare-table { min-width:52rem; }
  .compare-table thead th { padding:1rem .8rem; }
  .compare-table tbody td { padding:.9rem .8rem; }
  .badge { padding:.18rem .5rem; }
  .compare-visual { grid-template-columns:1fr; gap:2.5rem; margin-top:3rem; }
  .compare-visual-items { gap:1.6rem; }
  .compare-visual-photo { aspect-ratio:4/3; }

  /* Evidence */
  .evidence { padding:4rem 0; }
  .evidence-inner { padding:0 1.2rem; }
  .evidence-grid { grid-template-columns:1fr; gap:2.5rem; }
  .evidence-list li { letter-spacing:.05rem; }
  .evidence-step-nav { padding:1rem; }
  .evidence-step-item { padding:0 .8rem; }
  .evidence-step-circle { width:2.4rem; height:2.4rem; }
  .evidence-play-btn { width:5rem; height:5rem; }
  .evidence-play-icon { border-width:1rem 0 1rem 1.7rem; }
  .evidence-caption { margin-top:1.5rem; }

  /* CTA */
  .cta-sec { padding:4rem 0; }
  .cta-inner { padding:0 1.2rem; }
  .cta-cards { grid-template-columns:1fr 1fr; gap:1rem; }
  .cta-card-head-label { 
padding: .35rem 0.5rem;
        display: block;
        font-size: 0.9rem;
        text-align: center;
   }
  .cta-final { padding:2.5rem 1.5rem; }
  .cta-btn-main { padding:1.2rem 0; width:95%; }


  /* ── SP追加スタイル（doc4より正式移行） ── */
  .hero-target-bar-label { color:#fff; background:#000; padding:.15rem .6rem .05rem; }
  .hero-target-bar-item  { line-height:1; }
  .hero-stats            { margin-top:2.6rem; padding-top:2rem; }
  .problem-lead          { display:block; }
  .problem-lead-tag      { display:block; margin-bottom:.5rem; }
  .problem-case          { display:block; }
  .why-header            { margin-bottom:1rem; }
  .why-title             { font-size:1.8rem; }
  .why-message-main      { font-size:2rem; }
  .why-close-cta         { font-size:1.8rem; }
  .compare-close-text    { font-size:1.5rem; }
  .evidence-lead         { font-size:.9rem; }
  .evidence-caption      { font-size:1.6rem; }
  .solution-title        { display:block; }
  .flow-title            { font-size:2.2rem; }
  .merit-card-desc .point { display:block; text-align:center; font-size:.75rem; padding:.25rem .5rem; margin-top:1rem; }
  .cta-card-head         { display:block; }
  .cta-card-body         { padding:1rem 1rem 2rem; }
  .cta-card-note         { font-size:.8rem; text-align:center; }
  .cta-final-title       { font-size:2rem; }
  .cta-final-sub         { font-size:.8rem; }
  .cta-btn-main          {         font-size: 1rem;
        width: 80%; }
  .cta-btn-note .red     { display:block; }
  
  
.hero-main {
    font-size: 3rem;
    font-weight: 900;
    line-height: 1.4;
    margin-bottom: .1rem;
}.hs-n {
    display: block;
    font-size: 1.6rem;
    font-weight: 900;
    color: var(--blue);
    line-height: 1;
}.hero-target-bar-item {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--black);
}.target-strip-num {
    font-size: 3.3rem;
    font-weight: 900;
    color: var(--gold);
    line-height: 1;
    letter-spacing: -.01em;
}.problem-case-num {
        font-size: .9rem;
        font-weight: 700;
        color: rgba(255, 255, 255, .8);
        letter-spacing: .12em;
        background: rgba(255, 255, 255, .2);
        padding: .15rem .5rem;
        border-radius: .2rem;
        display: block;
        margin-bottom: 0.5rem;
}.problem-illust {
        width: 9rem;
        height: 10rem;
        margin: 3.8rem auto 1rem;
}.problem-sub {
    font-size: .75rem;
    font-weight: 500;
    color: #2d2d2d;
    margin-top: .6rem;
    line-height: 1.6;
}p.merit-close-title {
    font-size: 1.7rem;
}.cta-card-price {
    font-size: 1.8rem;
    font-weight: 900;
    color: var(--blue);
    line-height: 1.2;
    text-align: center;
}
  
  

}