/* =================================================================
   enblue Trust LP — モバイル fold-fit / 信頼トーン
   Research backing:
   - Hero 85-100vh で CTA を fold 内に収める
   - Sticky CTA を hero 通過後に追従表示
   - Auto-advance ON SELECT (no timeout pressure)
   - 3問軽量で離脱抑制 (user指定)
   - 色は青(信頼) + 控えめ green CTA 補完
   - 16px+ フォント / 44px+ タップ領域 / 余白広め
   ================================================================= */

:root {
  --c-text: #1a2333;
  --c-text-sub: #5a6473;
  --c-text-muted: #8d96a3;
  --c-bg: #ffffff;
  --c-bg-soft: #f4f7fb;
  --c-bg-section: #fbfcfe;
  --c-border: #e3e8ef;
  --c-border-mid: #cdd5e0;
  --c-brand: #00a2e8;
  --c-brand-deep: #007cb8;
  --c-brand-soft: #e6f6fd;
  --c-success: #06C755;
  --c-success-deep: #04a345;
  --c-amber: #ff8a3d;
  --r-sm: 6px;
  --r-md: 12px;
  --r-lg: 18px;
  --sh-sm: 0 1px 2px rgba(20, 30, 50, 0.05);
  --sh-md: 0 4px 16px rgba(20, 30, 50, 0.06);
  --sh-lg: 0 8px 30px rgba(20, 30, 50, 0.10);
  --font-jp: -apple-system, "Hiragino Sans", "Yu Gothic UI", "Noto Sans JP", "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-jp);
  color: var(--c-text);
  background: var(--c-bg);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overscroll-behavior: none;
}

.lp {
  max-width: 680px;
  margin: 0 auto;
  padding-bottom: 88px;       /* sticky CTA 高さ分の余白 */
  overflow-x: hidden;
}

/* ============== ヘッダー ============== */
.brand {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 20px;
  background: #fff;
  border-bottom: 1px solid var(--c-border);
  position: sticky; top: 0; z-index: 5;
}
.brand__logo { height: 32px; width: auto; }
.brand__sep { width: 1px; height: 22px; background: var(--c-border); }
.brand__service {
  margin: 0;
  font-size: 13px;
  color: var(--c-text-sub);
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* ============== ヒーロー ============== */
.hero {
  padding: 20px 20px 24px;
  min-height: calc(100svh - 60px);  /* ヘッダー除いた fold (svh で URL バー考慮) */
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(circle at 92% 8%, rgba(0,162,232,0.06) 0, transparent 38%),
    radial-gradient(circle at 8% 95%, rgba(0,162,232,0.05) 0, transparent 32%);
}
.hero::before {
  content: "";
  position: absolute; inset: 0;
  z-index: -1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%2300a2e8' stroke-width='0.6' opacity='0.06'%3E%3Cpath d='M0 120 Q40 100 80 120 T160 120'/%3E%3Cpath d='M0 140 Q40 120 80 140 T160 140'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 160px 160px;
  background-position: bottom right;
  background-repeat: no-repeat;
  pointer-events: none;
}
.hero__lead {
  margin-bottom: 22px;
}

.hero__badge {
  display: inline-flex;
  align-items: center; gap: 6px;
  align-self: flex-start;
  padding: 6px 12px;
  margin: 0 0 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--c-brand-deep);
  background: var(--c-brand-soft);
  border-radius: 999px;
  border: 1px solid rgba(0, 162, 232, 0.2);
}
.hero__badge-dot {
  width: 6px; height: 6px;
  background: var(--c-brand);
  border-radius: 50%;
  animation: dotPulse 2s ease-in-out infinite;
}
@keyframes dotPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }

.hero__title {
  margin: 0 0 12px;
  font-size: clamp(21px, 6.2vw, 27px);
  line-height: 1.45;
  font-weight: 700;
  letter-spacing: 0.005em;
}
.hero__title-em {
  display: inline-block;
  background: linear-gradient(180deg, transparent 62%, rgba(0, 162, 232, 0.22) 62%);
  padding: 0 2px;
}
.hero__lead {
  margin: 0 0 20px;
  font-size: 13.5px;
  color: var(--c-text-sub);
  line-height: 1.8;
}

.hero__cta {
  display: block; width: 100%;
  padding: 18px 20px;
  font-family: var(--font-jp);
  color: #fff;
  background: linear-gradient(180deg, #00a8ec 0%, var(--c-brand-deep) 100%);
  border: none;
  border-radius: var(--r-md);
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 124, 184, 0.28), inset 0 1px 0 rgba(255,255,255,0.18);
  transition: transform 0.12s, box-shadow 0.12s;
  margin-bottom: 10px;
  position: relative;
}
.hero__cta:active { transform: translateY(2px); box-shadow: 0 2px 8px rgba(0, 162, 232, 0.3); }
.hero__cta-main {
  display: block;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
}
.hero__cta-sub {
  display: block;
  font-size: 12px;
  font-weight: 500;
  opacity: 0.92;
  margin-top: 4px;
  letter-spacing: 0.01em;
}
.hero__cta-aux {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin: 0 0 4px;
  padding: 8px 4px;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--c-text-sub);
  text-align: center;
  letter-spacing: 0.01em;
}
.hero__cta-aux-mark {
  display: inline-grid; place-items: center;
  width: 14px; height: 14px;
  font-size: 11px;
  font-weight: 800;
  color: var(--c-brand-deep);
  background: var(--c-brand-soft);
  border-radius: 50%;
  line-height: 1;
}

.trust-row {
  list-style: none;
  padding: 0; margin: 10px 0 0;
  display: flex; justify-content: center; gap: 8px;
  flex-wrap: wrap;
}
.trust-row li {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px;
  color: var(--c-text-sub);
  font-weight: 600;
}
.trust-row__icon {
  display: inline-block;
  width: 14px; height: 14px;
  background: var(--c-brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.2 6.5 11l6-6.5'/%3E%3C/svg%3E") center/10px no-repeat;
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(0, 162, 232, 0.12);
}

/* ====== hero micro stats ====== */
.hero__stats {
  list-style: none;
  padding: 12px 8px;
  margin: 16px 0 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  background: var(--c-bg-soft);
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
}
.hero__stats li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  text-align: center;
  position: relative;
}
.hero__stats li + li::before {
  content: "";
  position: absolute; left: 0; top: 18%; bottom: 18%;
  width: 1px;
  background: var(--c-border);
}
.hero__stats strong {
  font-size: 15px;
  font-weight: 800;
  color: var(--c-brand-deep);
  letter-spacing: 0.01em;
  line-height: 1.2;
}
.hero__stats span {
  font-size: 10.5px;
  color: var(--c-text-sub);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.hero__disclaimer {
  margin: 10px 2px 0;
  font-size: 10.5px;
  line-height: 1.55;
  color: var(--c-text-sub);
  letter-spacing: 0.01em;
}

/* ====== trust block kicker ====== */
.trust-block__kicker {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--c-brand-deep);
  text-align: center;
  text-transform: uppercase;
}
.trust-block__title {
  line-height: 1.55;
}
.trust-block__sub {
  margin: 0 0 14px;
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-sub);
  letter-spacing: 0.02em;
}

/* ============== 信頼ブロック ============== */
.trust-block {
  padding: 36px 20px 28px;
  background: var(--c-bg-section);
  border-top: 1px solid var(--c-border);
}
.trust-block__title {
  margin: 0 0 18px;
  font-size: 18px;
  font-weight: 700;
  text-align: center;
  color: var(--c-text);
}
.trust-block__title::after {
  content: ""; display: block;
  width: 32px; height: 3px;
  background: var(--c-brand);
  margin: 12px auto 0;
  border-radius: 3px;
}
.trust-block__tags {
  list-style: none;
  padding: 0; margin: 0 0 20px;
  display: flex; flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}
.trust-block__tags li {
  padding: 6px 14px;
  font-size: 12px;
  color: var(--c-text);
  font-weight: 600;
  background: #fff;
  border: 1px solid var(--c-border-mid);
  border-radius: 999px;
}
.trust-block__tags li::before {
  content: "✓ "; color: var(--c-brand); font-weight: 800;
}
.trust-block__note {
  margin: 0;
  font-size: 13px;
  color: var(--c-text-sub);
  text-align: center;
  line-height: 1.85;
  padding: 0 4px;
}

/* ============== アンケート ============== */
.survey {
  display: none;
  padding: 24px 20px 40px;
  background: var(--c-bg);
}
.survey[aria-hidden="false"] { display: block; }

.survey__progress {
  height: 6px;
  background: var(--c-border);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 8px;
}
.survey__progress-bar {
  height: 100%;
  width: 20%;
  background: linear-gradient(90deg, var(--c-brand), var(--c-brand-deep));
  border-radius: 999px;
  transition: width 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.survey__meta {
  margin: 0 0 22px;
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-muted);
  text-align: right;
  letter-spacing: 0.02em;
}
.survey__meta-sep { margin: 0 6px; opacity: 0.4; }

.q-screen { display: none; animation: qFade 0.35s ease both; }
.q-screen.is-active { display: block; }
@keyframes qFade {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.q-lead {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-brand-deep);
  letter-spacing: 0.04em;
}
.q-text {
  margin: 0 0 10px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.55;
  color: var(--c-text);
}
.q-hint {
  margin: 0 0 18px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--c-brand-deep);
  background: var(--c-brand-soft);
  border-radius: 999px;
  letter-spacing: 0.02em;
}
.q-hint::before {
  content: "ℹ";
  font-size: 11px;
  opacity: 0.8;
}
.q-options {
  display: grid;
  gap: 10px;
  margin-bottom: 18px;
}
.q-option {
  position: relative;
  padding: 18px 18px;             /* 44px+ tap target */
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 600;
  text-align: left;
  color: var(--c-text);
  background: #fff;
  border: 2px solid var(--c-border);
  border-radius: var(--r-md);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, transform 0.1s;
  min-height: 56px;
  display: flex;
  align-items: center;
}
.q-option:hover { border-color: var(--c-brand); background: var(--c-brand-soft); }
.q-option:active { transform: scale(0.985); }
.q-option.is-selected {
  border-color: var(--c-brand);
  background: var(--c-brand-soft);
  color: var(--c-brand-deep);
  font-weight: 700;
  box-shadow: 0 4px 14px rgba(0, 162, 232, 0.18);
  animation: optionPop 0.32s cubic-bezier(0.2, 0.9, 0.3, 1.2) both;
}
@keyframes optionPop {
  0%   { transform: scale(0.985); }
  55%  { transform: scale(1.018); }
  100% { transform: scale(1); }
}
.q-option.is-selected::after {
  content: "";
  position: absolute; right: 18px; top: 50%;
  transform: translateY(-50%);
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--c-brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.2 6.5 11l6-6.5'/%3E%3C/svg%3E") center/14px no-repeat;
}

.q-nav {
  display: flex; justify-content: flex-start; margin-top: 4px;
}
.q-back {
  background: none; border: none;
  padding: 8px 12px;
  font-family: var(--font-jp);
  font-size: 13px;
  color: var(--c-text-muted);
  cursor: pointer;
  font-weight: 500;
}
.q-back:hover { color: var(--c-brand-deep); }

/* ====== Result screen ====== */
.result-screen { text-align: center; }
.result-screen__check {
  list-style: none;
  text-align: left;
  padding: 16px 18px;
  margin: 0 0 18px;
  background: var(--c-bg-soft);
  border-radius: var(--r-md);
  display: grid; gap: 8px;
}
.result-screen__check li {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13px;
  color: var(--c-text);
  line-height: 1.7;
}
.result-screen__check li::before {
  content: "";
  flex-shrink: 0;
  width: 18px; height: 18px;
  margin-top: 3px;
  border-radius: 50%;
  background: var(--c-brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23fff' d='M6.5 10.7L4 8.2l-1 1 3.5 3.5 7-7-1-1z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.result-screen__icon {
  display: flex; justify-content: center;
  margin-bottom: 8px;
  animation: checkPop 0.5s cubic-bezier(0.2, 0.9, 0.3, 1.3) both;
}
@keyframes checkPop {
  0% { transform: scale(0.6); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}
.result-screen__thanks {
  margin: 8px 0 6px;
  font-size: 20px;
  font-weight: 700;
  color: var(--c-text);
  line-height: 1.5;
}
.result-summary {
  margin: 0 0 16px;
  padding: 12px 14px;
  background: var(--c-bg-soft);
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  text-align: left;
}
.result-summary__head {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 700;
  color: var(--c-text-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.result-summary__list {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  gap: 6px;
}
.result-summary__list li {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 10px;
  font-size: 12.5px;
  line-height: 1.5;
}
.result-summary__k {
  color: var(--c-text-muted);
  font-weight: 600;
}
.result-summary__v {
  color: var(--c-text);
  font-weight: 700;
}
.result-screen__sub {
  margin: 0 0 22px;
  font-size: 13px;
  color: var(--c-text-sub);
  line-height: 1.85;
}

/* テストimonial 直上 CTA (CRO +33%) */
.result-voices {
  margin: 0 0 18px;
}
.result-voices__head {
  display: flex; align-items: baseline; justify-content: space-between;
  margin: 0 0 10px;
  padding: 0 4px;
}
.result-voices__rating {
  font-size: 14px;
  font-weight: 800;
  color: #f5a623;
  letter-spacing: 0.02em;
}
.result-voices__rating small {
  font-size: 11px;
  color: var(--c-text-muted);
  font-weight: 600;
}
.result-voices__count {
  font-size: 11px;
  color: var(--c-text-muted);
  font-weight: 600;
}
.result-voice {
  padding: 14px 16px;
  margin: 0 0 10px;
  background: linear-gradient(135deg, var(--c-brand-soft), #fff);
  border-radius: var(--r-md);
  border: 1px solid rgba(0, 162, 232, 0.18);
  text-align: left;
}
.result-voice:last-child { margin-bottom: 0; }
.result-voice__stars {
  color: #ffaa00;
  font-size: 14px;
  letter-spacing: 1px;
  margin-bottom: 6px;
}
.result-voice__text {
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--c-text);
  line-height: 1.75;
}
.result-voice__by {
  margin: 0;
  font-size: 11px;
  color: var(--c-text-muted);
}

.cta-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px 24px;
  font-size: 17px;
  font-weight: 700;
  color: #fff !important;
  background: linear-gradient(135deg, var(--c-success), var(--c-success-deep));
  border-radius: var(--r-md);
  text-decoration: none;
  box-shadow: 0 6px 20px rgba(6, 199, 85, 0.32);
}
.cta-line__icon {
  width: 28px; height: 28px;
  display: inline-block;
  flex-shrink: 0;
  border-radius: 6px;
}
.cta-line__label {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.25;
}
.cta-line__brand {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  opacity: 0.92;
  margin-bottom: 2px;
  text-transform: uppercase;
}
.cta-line__action {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.01em;
}
.cta-line__sub {
  margin: 12px 0 0;
  font-size: 12px;
  color: var(--c-text-muted);
}

/* ============== Footer ============== */
.lp-footer {
  padding: 36px 24px 32px;
  background: var(--c-bg-soft);
  border-top: 1px solid var(--c-border);
  text-align: center;
}
.lp-footer__logo { height: 28px; opacity: 0.6; margin-bottom: 14px; }
.lp-footer__about {
  margin: 0 0 18px;
  font-size: 12px;
  color: var(--c-text-sub);
  line-height: 1.85;
}
.lp-footer__info {
  margin: 0 auto 18px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 14px;
  max-width: 320px;
  text-align: left;
  font-size: 11px;
}
.lp-footer__info dt {
  color: var(--c-text-muted);
  font-weight: 600;
}
.lp-footer__info dd {
  margin: 0;
  color: var(--c-text-sub);
}
.lp-footer__links {
  list-style: none;
  padding: 0; margin: 0 0 14px;
  display: flex; justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}
.lp-footer__links a {
  font-size: 12px;
  color: var(--c-text-sub);
  text-decoration: none;
}
.lp-footer__links a:hover { color: var(--c-brand-deep); }
.lp-footer__copy {
  margin: 0;
  font-size: 11px;
  color: var(--c-text-muted);
}

/* ============== Sticky CTA ============== */
.sticky-cta {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  padding: 12px 16px;
  padding-bottom: calc(env(safe-area-inset-bottom, 0) + 12px);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid var(--c-border);
  z-index: 10;
  transform: translateY(110%);
  transition: transform 0.3s ease;
}
.sticky-cta.is-visible[aria-hidden="false"] { transform: translateY(0); }
.sticky-cta__btn {
  display: block; width: 100%;
  padding: 16px 20px;
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, var(--c-brand), var(--c-brand-deep));
  border: none;
  border-radius: var(--r-md);
  box-shadow: 0 6px 18px rgba(0, 162, 232, 0.35);
  cursor: pointer;
  position: relative;
}
.sticky-cta__btn small {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  background: rgba(255, 255, 255, 0.22);
  border-radius: 999px;
}
.sticky-cta__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}
.sticky-cta__main {
  font-size: 16px;
  font-weight: 700;
}
.sticky-cta__pill {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 3px 9px;
  background: rgba(255, 255, 255, 0.22);
  border-radius: 999px;
}

/* survey 表示中は sticky 非表示 */
.lp.is-survey .sticky-cta { transform: translateY(110%) !important; }

/* survey 表示中はヘッダーを圧縮 */
.lp.is-survey .brand {
  padding: 8px 16px;
  transition: padding 0.25s ease;
}
.lp.is-survey .brand__logo { height: 24px; }
.lp.is-survey .brand__service {
  font-size: 12px;
}
