/*
Theme Name: お店のDX診断ナビ
Theme URI: https://omise-dx.jp/
Author: 株式会社エスプロダクト
Author URI: https://omise-dx.jp/
Description: 小規模店舗向けDXサービスのカード選択式診断に特化した、スマートフォン優先のオリジナルテーマです。
Version: 1.0.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: omise-dx
*/

:root {
  --navy-950: #071526;
  --navy-900: #0b1f36;
  --navy-800: #123451;
  --navy-700: #1a4968;
  --ink: #112338;
  --muted: #536579;
  --line: #dce4eb;
  --surface: #ffffff;
  --soft: #f3f7f9;
  --lime: #d8ff3e;
  --lime-strong: #c7f21d;
  --yellow: #ffd84d;
  --cyan: #48d7cd;
  --success: #0f8c64;
  --danger: #b42318;
  --shadow-sm: 0 8px 24px rgba(6, 25, 43, 0.08);
  --shadow-lg: 0 24px 64px rgba(6, 25, 43, 0.18);
  --radius-sm: 12px;
  --radius: 20px;
  --radius-lg: 30px;
  --content: 1120px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--surface);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", Meiryo, sans-serif;
  font-size: 16px;
  line-height: 1.75;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.menu-open { overflow: hidden; }

a { color: var(--navy-700); }
a:hover { color: var(--navy-950); }

img { display: block; height: auto; max-width: 100%; }

button,
input,
textarea,
select { font: inherit; }

button { cursor: pointer; }

:focus-visible {
  outline: 3px solid #ffb800;
  outline-offset: 3px;
}

.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.skip-link:focus {
  clip: auto !important;
  clip-path: none;
  height: auto;
  left: 16px;
  top: 16px;
  width: auto;
  z-index: 10000;
  background: #fff;
  border-radius: 8px;
  color: var(--navy-950);
  padding: 10px 16px;
}

.site-shell { overflow: hidden; }

.container {
  margin-inline: auto;
  max-width: calc(var(--content) + 40px);
  padding-inline: 20px;
  width: 100%;
}

.narrow { max-width: 820px; }

.site-header {
  background: rgba(7, 21, 38, 0.97);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  color: #fff;
  position: relative;
  z-index: 100;
}

.header-inner {
  align-items: center;
  display: flex;
  justify-content: space-between;
  min-height: 70px;
}

.brand {
  align-items: center;
  color: #fff;
  display: inline-flex;
  font-size: 16px;
  font-weight: 850;
  gap: 10px;
  letter-spacing: -0.03em;
  line-height: 1.25;
  text-decoration: none;
}

.brand:hover { color: #fff; }

.brand-mark {
  align-items: center;
  background: var(--lime);
  border-radius: 10px;
  color: var(--navy-950);
  display: inline-flex;
  font-size: 14px;
  height: 40px;
  justify-content: center;
  letter-spacing: -0.06em;
  transform: rotate(-3deg);
  width: 40px;
}
.brand-mark img { border-radius:10px; height:40px; width:40px; }

.header-nav { display: none; }

.header-nav ul {
  align-items: center;
  display: flex;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.header-nav a {
  color: rgba(255, 255, 255, 0.86);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.header-nav a:hover { color: var(--lime); }

.header-cta {
  align-items: center;
  background: var(--lime);
  border: 0;
  border-radius: 999px;
  color: var(--navy-950) !important;
  display: none;
  font-size: 14px !important;
  font-weight: 900 !important;
  min-height: 44px;
  padding: 10px 18px;
}

.menu-toggle {
  align-items: center;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 10px;
  color: #fff;
  display: inline-flex;
  font-size: 13px;
  font-weight: 700;
  min-height: 44px;
  padding: 8px 13px;
}

.mobile-menu {
  background: var(--navy-950);
  display: none;
  padding: 2px 20px 22px;
}

.mobile-menu.is-open { display: block; }

.mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.mobile-menu li { border-top: 1px solid rgba(255, 255, 255, 0.1); }
.mobile-menu a { color: #fff; display: block; font-weight: 700; padding: 14px 4px; text-decoration: none; }
.pr-notice { background:#fff8d9; color:#493b00; font-size:10px; font-weight:700; line-height:1.4; padding:5px 12px; text-align:center; }
.pr-notice span { background:#5b4a00; border-radius:3px; color:#fff; font-size:9px; margin-right:5px; padding:1px 4px; }

.hero {
  background:
    radial-gradient(circle at 88% 12%, rgba(72, 215, 205, 0.18), transparent 30%),
    linear-gradient(135deg, var(--navy-950) 0%, var(--navy-800) 100%);
  color: #fff;
  padding: 42px 0 62px;
  position: relative;
}

.hero::after {
  background-image: radial-gradient(rgba(255,255,255,.17) 1px, transparent 1px);
  background-size: 18px 18px;
  content: "";
  inset: 0;
  opacity: .18;
  pointer-events: none;
  position: absolute;
}

.hero-grid {
  display: grid;
  gap: 30px;
  position: relative;
  z-index: 1;
}

.eyebrow {
  align-items: center;
  color: var(--navy-700);
  display: inline-flex;
  font-size: 13px;
  font-weight: 900;
  gap: 8px;
  letter-spacing: .06em;
  margin: 0 0 14px;
}

.eyebrow::before {
  background: var(--lime-strong);
  border-radius: 99px;
  content: "";
  height: 8px;
  width: 8px;
}

.hero .eyebrow { color: var(--lime); }

.hero h1 {
  font-size: clamp(32px, 9.3vw, 62px);
  letter-spacing: -.055em;
  line-height: 1.12;
  margin: 0;
}

.hero h1 .accent {
  color: var(--lime);
  display: inline-block;
  position: relative;
  white-space: nowrap;
}

.hero-copy {
  color: rgba(255,255,255,.84);
  font-size: 16px;
  margin: 18px 0 0;
  max-width: 650px;
}

.hero-copy strong { color: #fff; }

.hero-points {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  list-style: none;
  margin: 18px 0 24px;
  padding: 0;
}

.hero-points li {
  align-items: center;
  display: flex;
  font-size: 13px;
  font-weight: 700;
  gap: 7px;
}

.hero-points li::before {
  align-items: center;
  background: rgba(216,255,62,.17);
  border-radius: 50%;
  color: var(--lime);
  content: "✓";
  display: inline-flex;
  font-size: 12px;
  height: 22px;
  justify-content: center;
  width: 22px;
}

.primary-cta,
.secondary-cta {
  align-items: center;
  border-radius: 14px;
  display: inline-flex;
  font-weight: 900;
  justify-content: center;
  min-height: 58px;
  padding: 14px 22px;
  text-align: center;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.primary-cta {
  background: linear-gradient(135deg, var(--lime), var(--yellow));
  box-shadow: 0 12px 28px rgba(216,255,62,.22);
  color: var(--navy-950);
}

.primary-cta:hover {
  box-shadow: 0 16px 34px rgba(216,255,62,.32);
  color: var(--navy-950);
  transform: translateY(-2px);
}

.primary-cta .arrow { font-size: 22px; margin-left: 10px; }

.cta-note {
  color: rgba(255,255,255,.65);
  font-size: 12px;
  margin: 8px 0 0;
  text-align: center;
}

.hero-card {
  background: #fff;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  color: var(--ink);
  overflow: hidden;
  padding: 24px 20px;
  position: relative;
}

.hero-card::before {
  background: var(--lime);
  content: "";
  height: 7px;
  inset: 0 0 auto;
  position: absolute;
}

.mini-progress { display: grid; gap: 7px; grid-template-columns: repeat(7,1fr); margin: 10px 0 20px; }
.mini-progress i { background: var(--line); border-radius: 99px; height: 5px; }
.mini-progress i:first-child { background: var(--lime-strong); }

.hero-card-kicker { color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .05em; margin: 0; }
.hero-card h2 { font-size: 23px; letter-spacing: -.04em; line-height: 1.4; margin: 5px 0 16px; }

.sample-options { display: grid; gap: 9px; }
.sample-option {
  align-items: center;
  border: 2px solid var(--line);
  border-radius: 13px;
  display: flex;
  font-size: 14px;
  font-weight: 800;
  gap: 10px;
  padding: 11px 12px;
}
.sample-option:first-child { background: #f7ffe1; border-color: var(--lime-strong); }
.sample-icon { align-items:center; background: var(--soft); border-radius: 9px; display:inline-flex; height: 34px; justify-content:center; width:34px; }
.sample-option:first-child .sample-icon { background: var(--lime); }

.trust-strip {
  background: var(--soft);
  border-bottom: 1px solid var(--line);
}

.trust-list {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(3,1fr);
  list-style: none;
  margin: 0;
  padding: 17px 0;
}

.trust-list li {
  color: var(--navy-800);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
}

.trust-list li + li { border-left: 1px solid var(--line); }
.trust-list b { display: block; font-size: 17px; }

.section { padding: 64px 0; }
.section-soft { background: var(--soft); }
.section-dark { background: var(--navy-950); color: #fff; }

.section-head { margin-bottom: 28px; max-width: 720px; }
.section-head.center { margin-inline: auto; text-align: center; }
.section-head h2 { font-size: clamp(28px, 6vw, 42px); letter-spacing: -.045em; line-height: 1.25; margin: 0; }
.section-head p { color: var(--muted); margin: 12px 0 0; }
.section-dark .section-head p { color: rgba(255,255,255,.7); }

.problem-grid,
.step-grid,
.article-grid { display: grid; gap: 16px; }

.info-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 24px 20px;
}

.info-card .icon-box {
  align-items: center;
  background: #effcc8;
  border-radius: 14px;
  display: inline-flex;
  font-size: 24px;
  height: 50px;
  justify-content: center;
  margin-bottom: 12px;
  width: 50px;
}

.info-card h3 { font-size: 19px; letter-spacing: -.02em; margin: 0 0 7px; }
.info-card p { color: var(--muted); font-size: 14px; margin: 0; }

.step-card { position: relative; }
.step-number { color: var(--lime-strong); font-size: 12px; font-weight: 950; letter-spacing: .08em; }

.diagnosis-section { padding: 62px 0; scroll-margin-top: 20px; }

.diagnosis-shell {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  margin-inline: auto;
  max-width: 850px;
  overflow: hidden;
}

.diagnosis-top {
  background: var(--navy-950);
  color: #fff;
  padding: 18px 18px 17px;
}

.diagnosis-meta { align-items: center; display: flex; justify-content: space-between; }
.diagnosis-label { color: var(--lime); font-size: 12px; font-weight: 900; letter-spacing: .06em; }
.progress-text { color: rgba(255,255,255,.72); font-size: 12px; font-weight: 800; }
.progress-track { background: rgba(255,255,255,.14); border-radius: 99px; height: 7px; margin-top: 10px; overflow: hidden; }
.progress-fill { background: linear-gradient(90deg,var(--lime),var(--yellow)); border-radius: inherit; height: 100%; transition: width .28s ease; width: 0; }

.diagnosis-body { min-height: 460px; padding: 25px 18px 22px; }
.question-number { color: var(--success); font-size: 12px; font-weight: 900; letter-spacing: .05em; margin: 0 0 5px; }
.question-title { font-size: clamp(22px, 6vw, 30px); letter-spacing: -.04em; line-height: 1.4; margin: 0 0 6px; }
.question-help { color: var(--muted); font-size: 13px; margin: 0 0 20px; }

.answer-grid { display: grid; gap: 10px; }

.answer-card {
  align-items: center;
  background: #fff;
  border: 2px solid var(--line);
  border-radius: 15px;
  color: var(--ink);
  display: grid;
  gap: 11px;
  grid-template-columns: 42px 1fr 22px;
  min-height: 68px;
  padding: 10px 12px;
  text-align: left;
  transition: border .15s ease, background .15s ease, transform .15s ease;
  width: 100%;
}

.answer-card:hover { background: #fbfff0; border-color: #b8df22; transform: translateY(-1px); }
.answer-card[aria-checked="true"] { background: #f5ffd4; border-color: var(--lime-strong); }
.answer-card-icon { align-items:center; background:var(--soft); border-radius:11px; display:inline-flex; font-size:20px; height:42px; justify-content:center; width:42px; }
.answer-card strong { display:block; font-size:15px; line-height:1.4; }
.answer-card small { color:var(--muted); display:block; font-size:11px; font-weight:500; line-height:1.5; margin-top:2px; }
.answer-check { align-items:center; border:2px solid #b9c5ce; border-radius:50%; display:inline-flex; height:20px; justify-content:center; width:20px; }
.answer-card[aria-checked="true"] .answer-check { background:var(--navy-900); border-color:var(--navy-900); color:#fff; }
.answer-card[aria-checked="true"] .answer-check::after { content:"✓"; font-size:11px; font-weight:900; }

.diagnosis-actions { align-items:center; display:flex; gap:10px; justify-content:space-between; margin-top:20px; }
.back-button,
.restart-button { background:transparent; border:0; color:var(--muted); font-size:13px; font-weight:800; min-height:44px; padding:9px 6px; text-decoration:underline; text-underline-offset:3px; }
.back-button[hidden] { display:none; }
.answer-next { background:var(--navy-900); border:0; border-radius:12px; color:#fff; font-size:14px; font-weight:900; min-height:48px; padding:10px 20px; }
.answer-next:hover { background:var(--navy-700); }
.answer-next:disabled { background:#d7dee4; color:#75828d; cursor:not-allowed; }
.answer-limit { color:var(--success); font-size:12px; font-weight:850; margin:10px 0 0; }
.diagnosis-security { color:var(--muted); font-size:11px; margin:14px 0 0; text-align:center; }

.loading-panel { align-items:center; display:flex; flex-direction:column; justify-content:center; min-height:370px; text-align:center; }
.loading-ring { border:5px solid var(--line); border-radius:50%; border-top-color:var(--lime-strong); height:58px; margin-bottom:18px; width:58px; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

.results-intro { text-align:center; }
.results-badge { background:#effcc8; border-radius:999px; color:#486600; display:inline-flex; font-size:12px; font-weight:900; padding:6px 12px; }
.results-pr { color:#745f00 !important; font-size:11px !important; font-weight:800; margin:8px 0 0 !important; }
.results-intro h2 { font-size:clamp(25px,7vw,36px); letter-spacing:-.045em; line-height:1.35; margin:10px 0 7px; }
.results-intro p { color:var(--muted); font-size:13px; margin:0 auto 24px; max-width:560px; }
.result-list { display:grid; gap:14px; }

.result-card {
  border:2px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  position:relative;
}
.result-card-pr { background:#fff8d9; color:#6f5b00; display:block; font-size:10px; font-weight:900; padding:4px 14px; text-align:right; }
.result-card:first-child { border-color:var(--lime-strong); box-shadow:0 12px 28px rgba(32,51,18,.11); }
.result-rank { align-items:center; background:var(--navy-950); color:#fff; display:flex; font-size:12px; font-weight:900; justify-content:space-between; padding:7px 14px; }
.result-card:first-child .result-rank { background:linear-gradient(90deg,#bde527,#ffd84d); color:var(--navy-950); }
.result-content { padding:16px 15px; }
.result-title-row { align-items:center; display:flex; gap:12px; justify-content:space-between; }
.result-name { font-size:20px; letter-spacing:-.03em; margin:0; }
.match-score { color:var(--success); font-size:12px; font-weight:900; white-space:nowrap; }
.result-tagline { color:var(--muted); font-size:13px; margin:4px 0 11px; }
.pricing-note { background:#fff8d9; border:1px solid #f0d567; border-radius:10px; color:#5d4b00; font-size:12px; font-weight:800; line-height:1.55; margin:0 0 11px; padding:9px 10px; }
.reason-list { background:var(--soft); border-radius:12px; list-style:none; margin:0 0 13px; padding:10px 12px; }
.reason-list li { font-size:12px; font-weight:700; padding:2px 0 2px 20px; position:relative; }
.reason-list li::before { color:var(--success); content:"✓"; font-weight:900; left:2px; position:absolute; }
.result-caution { border-left:3px solid #d2dae0; color:var(--muted); font-size:11px; line-height:1.55; margin:8px 0; padding-left:9px; }
.result-caution strong { color:var(--ink); }
.official-source { display:inline-block; font-size:11px; font-weight:800; margin:5px 0 12px; text-underline-offset:3px; }
.result-cta { align-items:center; background:var(--navy-900); border-radius:11px; color:#fff; display:flex; font-size:14px; font-weight:900; justify-content:center; min-height:48px; padding:10px 15px; text-decoration:none; width:100%; }
.result-cta:hover { background:var(--navy-700); color:#fff; }
.result-cta.is-disabled { background:#e4e9ed; color:#647380; cursor:not-allowed; }
.results-notice { color:var(--muted); font-size:11px; line-height:1.6; margin:14px 0 0; }

.faq-list { display:grid; gap:10px; margin-inline:auto; max-width:820px; }
.faq-item { background:#fff; border:1px solid var(--line); border-radius:15px; overflow:hidden; }
.faq-item summary { cursor:pointer; font-weight:850; list-style:none; padding:17px 48px 17px 17px; position:relative; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"＋"; font-size:22px; position:absolute; right:17px; top:12px; }
.faq-item[open] summary::after { content:"−"; }
.faq-answer { border-top:1px solid var(--line); color:var(--muted); font-size:14px; padding:15px 17px 17px; }
.faq-answer p { margin:0; }

.article-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.article-card-link { color:inherit; display:block; padding:22px; text-decoration:none; }
.article-card-label { color:var(--success); font-size:11px; font-weight:900; letter-spacing:.06em; }
.article-card h3 { font-size:18px; line-height:1.5; margin:7px 0; }
.article-card p { color:var(--muted); font-size:13px; margin:0; }
.comparison-grid { display:grid; gap:16px; }
.comparison-table-wrap { margin:0 0 30px; max-width:100%; overflow-x:auto; }
.comparison-table { border-collapse:separate !important; border-spacing:0; display:table !important; font-size:12px; min-width:1850px; width:100%; }
.comparison-table th,.comparison-table td { background:#fff; border-bottom:1px solid var(--line); border-right:1px solid var(--line); line-height:1.55; min-width:145px; padding:12px; vertical-align:top; }
.comparison-table thead th { background:var(--navy-900); color:#fff; position:sticky; top:0; }
.comparison-table tbody th { background:#f5ffd4; color:var(--navy-950); left:0; min-width:145px; position:sticky; z-index:1; }
.comparison-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); padding:20px; }
.comparison-card h2 { border:0; font-size:23px; margin:0 0 5px; padding:0; }
.comparison-card .result-cta { margin-top:14px; }
.comparison-notice { background:#fff8d9; border:1px solid #eed66d; border-radius:12px; font-size:13px; padding:14px; }

.final-cta { background:linear-gradient(135deg,var(--navy-900),var(--navy-700)); border-radius:var(--radius-lg); color:#fff; overflow:hidden; padding:35px 22px; position:relative; text-align:center; }
.final-cta::before { background:var(--lime); border-radius:50%; content:""; filter:blur(4px); height:150px; opacity:.1; position:absolute; right:-35px; top:-65px; width:150px; }
.final-cta h2 { font-size:clamp(26px,6vw,40px); letter-spacing:-.045em; line-height:1.35; margin:0 0 9px; position:relative; }
.final-cta p { color:rgba(255,255,255,.75); font-size:14px; margin:0 0 19px; position:relative; }

.page-hero { background:var(--navy-950); color:#fff; padding:44px 0; }
.page-hero h1 { font-size:clamp(30px,7vw,46px); letter-spacing:-.045em; line-height:1.3; margin:0; }
.page-hero p { color:rgba(255,255,255,.72); margin:10px 0 0; }
.page-content { padding:50px 0 76px; }
.entry-content h2 { border-left:5px solid var(--lime-strong); font-size:25px; line-height:1.45; margin:44px 0 17px; padding-left:14px; }
.entry-content h3 { font-size:20px; margin:30px 0 12px; }
.entry-content p, .entry-content li { color:#364a5d; }
.entry-content a { font-weight:700; text-underline-offset:3px; }
.entry-content table { border-collapse:collapse; display:block; overflow-x:auto; width:100%; }
.entry-content th,.entry-content td { border:1px solid var(--line); min-width:140px; padding:10px; text-align:left; }
.entry-content th { background:var(--soft); }

.contact-box { background:var(--soft); border:1px solid var(--line); border-radius:var(--radius); padding:22px; }
.contact-box code { background:#fff; border-radius:6px; display:inline-block; padding:2px 6px; }

.contact-form { background:var(--soft); border:1px solid var(--line); border-radius:var(--radius); padding:22px; }
.form-field { margin-bottom:18px; }
.form-field label { display:block; font-size:14px; font-weight:850; margin-bottom:6px; }
.form-field label span { background:#ffe7e4; border-radius:4px; color:var(--danger); font-size:10px; margin-left:5px; padding:2px 5px; }
.form-field input,.form-field textarea { background:#fff; border:2px solid #cdd8e0; border-radius:10px; color:var(--ink); min-height:50px; padding:10px 12px; width:100%; }
.form-field textarea { min-height:180px; resize:vertical; }
.form-field input:focus,.form-field textarea:focus { border-color:var(--navy-700); outline:3px solid rgba(72,215,205,.25); }
.form-privacy { align-items:flex-start; color:var(--muted); display:flex; font-size:12px; gap:8px; margin:0 0 18px; }
.form-privacy input[type="checkbox"] { flex:0 0 auto; height:18px; margin-top:1px; width:18px; }
.form-privacy span { color:var(--danger); font-size:10px; font-weight:800; }
.form-notice { border-radius:12px; margin:0 0 22px; padding:15px; }
.form-notice.is-success { background:#e7f8f0; border:1px solid #9ed9c3; color:#086242; }
.form-notice.is-error { background:#fff0ee; border:1px solid #f0b7b0; color:#8b241b; }
.honeypot { height:1px; left:-10000px; overflow:hidden; position:absolute; width:1px; }

.site-footer { background:#06111e; color:rgba(255,255,255,.68); padding:44px 0 92px; }
.footer-grid { display:grid; gap:27px; }
.footer-brand { color:#fff; font-size:18px; font-weight:900; margin:0 0 8px; }
.footer-copy { font-size:12px; margin:0; max-width:460px; }
.footer-nav { display:grid; gap:9px; list-style:none; margin:0; padding:0; }
.footer-nav a { color:rgba(255,255,255,.75); font-size:13px; text-decoration:none; }
.footer-nav a:hover { color:var(--lime); }
.copyright { border-top:1px solid rgba(255,255,255,.1); font-size:11px; margin:30px 0 0; padding-top:18px; }

.mobile-sticky-cta {
  background:rgba(7,21,38,.96);
  bottom:0;
  box-shadow:0 -8px 26px rgba(7,21,38,.22);
  left:0;
  padding:9px 12px calc(9px + env(safe-area-inset-bottom));
  position:fixed;
  right:0;
  z-index:99;
}
.mobile-sticky-cta .primary-cta { min-height:51px; width:100%; }

.not-found { min-height:62vh; padding:80px 0; text-align:center; }
.not-found-code { color:var(--lime-strong); font-size:72px; font-weight:950; letter-spacing:-.07em; line-height:1; }

@media (min-width: 600px) {
  .hero { padding:58px 0 76px; }
  .hero-card { padding:30px; }
  .problem-grid,.step-grid,.article-grid { grid-template-columns:repeat(3,1fr); }
  .diagnosis-body { padding:32px 34px 30px; }
  .answer-grid { grid-template-columns:repeat(2,1fr); }
  .result-content { padding:20px; }
  .footer-grid { grid-template-columns:2fr 1fr 1fr; }
  .comparison-grid { grid-template-columns:repeat(2,1fr); }
}

@media (min-width: 860px) {
  .header-inner { min-height:78px; }
  .brand { font-size:18px; }
  .header-nav { display:block; }
  .header-cta { display:inline-flex !important; }
  .menu-toggle,.mobile-menu { display:none !important; }
  .hero-grid { align-items:center; grid-template-columns:1.18fr .82fr; }
  .hero-card { transform:rotate(1deg); }
  .hero-copy { font-size:18px; }
  .primary-cta { min-width:330px; }
  .trust-list li { font-size:13px; }
  .trust-list b { display:inline; font-size:18px; margin-right:5px; }
  .section { padding:88px 0; }
  .diagnosis-section { padding:88px 0; }
  .mobile-sticky-cta { display:none; }
  .site-footer { padding-bottom:45px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
}

@media print {
  .site-header,.mobile-sticky-cta,.site-footer,.primary-cta { display:none !important; }
  body { color:#000; }
}
