/* =====================================================================
   demolition-assessment / style.css
   Luxury real-estate appraisal tool — white / black / gold / navy
   ===================================================================== */

:root {
  --white:        #ffffff;
  --ivory:        #faf7f0;
  --paper:        #f5f1e8;
  --ink-100:      #f3f4f6;
  --ink-200:      #e5e7eb;
  --ink-300:      #d1d5db;
  --ink-500:      #6b7280;
  --ink-700:      #374151;
  --ink-900:      #0a0a0a;
  --navy:         #0e2147;
  --navy-soft:    #1c3160;
  --gold:         #c9a961;
  --gold-light:   #dcc587;
  --gold-deep:    #8b6f3d;
  --gold-bg:      rgba(201,169,97,0.08);

  --good:         #2d8a4e;
  --warn:         #d4a017;
  --danger:       #c0392b;
  --danger-bg:    rgba(192,57,43,0.08);

  --shadow-card:  0 10px 40px -10px rgba(14,33,71,0.18), 0 2px 8px rgba(14,33,71,0.06);
  --shadow-soft:  0 2px 12px rgba(14,33,71,0.08);

  --radius:       2px;
  --radius-card:  4px;

  --font-serif:   "Noto Serif JP", "Cormorant Garamond", "ヒラギノ明朝 ProN", serif;
  --font-sans:    "Noto Sans JP", "Inter", "ヒラギノ角ゴシック", sans-serif;
  --font-display: "Cinzel", "Noto Serif JP", serif;
  --font-num:     "Inter", "Noto Sans JP", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.7;
  color: var(--ink-900);
  background: var(--ivory);
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4 { font-family: var(--font-serif); font-weight: 600; line-height: 1.4; letter-spacing: 0.01em; margin: 0; }
p { margin: 0; }

a { color: inherit; text-decoration: none; transition: color .2s; }
a:hover { color: var(--gold-deep); }

.container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
  position: relative;
  z-index: 1;
}

.hide-sm { display: inline; }
@media (max-width: 720px) { .hide-sm { display: none; } }

/* =================== Background decoration =================== */
.bg-decor {
  position: fixed; inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.bg-grid {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  opacity: 0.45;
}
.bg-skyline {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  width: 100%; height: 200px;
  opacity: 0.05;
}

/* =================== Header =================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--ink-200);
}
.header-inner {
  height: 72px;
  display: flex; align-items: center; justify-content: space-between;
}
.brand-logo { height: 44px; width: auto; display: block; }
.header-nav { display: flex; align-items: center; gap: 24px; }
.nav-link { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--navy); }
.nav-cta {
  display: inline-flex; align-items: center;
  height: 38px; padding: 0 18px;
  background: var(--gold);
  color: var(--ink-900);
  font-size: 12px; font-weight: 600;
  letter-spacing: .15em; text-transform: uppercase;
  transition: all .25s;
}
.nav-cta:hover { background: var(--gold-deep); color: var(--white); }

/* =================== Hero =================== */
.hero {
  padding: 80px 0 48px;
  text-align: center;
}
.hero-eyebrow {
  display: inline-flex; align-items: center; gap: 16px;
  font-family: var(--font-display);
  font-size: 12px; letter-spacing: .35em;
  color: var(--gold-deep);
  margin-bottom: 28px;
}
.dot { width: 4px; height: 4px; background: var(--gold); display: inline-block; }
.hero-title {
  font-family: var(--font-serif);
  font-size: clamp(28px, 5vw, 52px);
  font-weight: 600;
  margin-bottom: 24px;
  letter-spacing: .02em;
}
.title-gold {
  background: linear-gradient(135deg, var(--gold-light), var(--gold), var(--gold-deep));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hero-lead {
  font-size: 16px;
  color: var(--ink-700);
  max-width: 720px;
  margin: 0 auto 36px;
}
.trust-strip {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 28px; justify-content: center;
}
.trust-strip li {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px;
  color: var(--navy);
  font-weight: 500;
}
.trust-strip svg { color: var(--gold); }

/* =================== Steps =================== */
.steps {
  padding: 24px 0;
  border-top: 1px solid var(--ink-200);
  border-bottom: 1px solid var(--ink-200);
  background: rgba(255,255,255,0.6);
}
.step-list {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.step-list li {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 4px;
  font-size: 13px;
}
.step-num {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--gold);
  font-weight: 600;
  border: 1px solid var(--gold);
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  flex: none;
}
.step-text { color: var(--navy); font-weight: 500; }
@media (max-width: 720px) {
  .step-list { grid-template-columns: 1fr 1fr; }
  .step-list li { font-size: 12px; }
}

/* =================== Section heads =================== */
.section-head { margin-bottom: 36px; }
.section-head.center { text-align: center; }
.section-head .eyebrow,
.eyebrow {
  font-family: var(--font-display);
  font-size: 11px; letter-spacing: .35em;
  color: var(--gold-deep);
  text-transform: uppercase;
  margin-bottom: 12px;
  display: inline-block;
}
.section-head h2 {
  font-size: clamp(24px, 3.5vw, 36px);
  color: var(--navy);
  margin-bottom: 12px;
  position: relative;
  display: inline-block;
}
.section-head.center h2::after {
  content: '';
  display: block;
  width: 56px; height: 1px;
  background: var(--gold);
  margin: 18px auto 0;
}
.section-head h2::after {
  content: '';
  display: block;
  width: 48px; height: 1px;
  background: var(--gold);
  margin-top: 14px;
}
.section-lead {
  color: var(--ink-700);
  font-size: 14px;
  max-width: 720px;
  margin: 0 auto;
}

/* =================== Form section =================== */
.form-section { padding: 80px 0; }

.form-card {
  background: var(--white);
  border: 1px solid var(--ink-200);
  border-top: 3px solid var(--gold);
  box-shadow: var(--shadow-card);
  padding: 40px;
}
@media (max-width: 720px) {
  .form-card { padding: 24px 20px; }
}

.fieldset {
  border: 0;
  padding: 0;
  margin: 0 0 36px 0;
}
.fieldset legend {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 600;
  color: var(--navy);
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  width: 100%;
  border-bottom: 1px solid var(--ink-200);
}
.legend-num {
  font-family: var(--font-display);
  font-size: 14px;
  color: var(--gold);
  background: var(--gold-bg);
  border: 1px solid var(--gold);
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  flex: none;
}

/* Form grid + fields */
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.field-wide { grid-column: span 2; }
@media (max-width: 720px) {
  .form-grid { grid-template-columns: 1fr; }
  .field-wide { grid-column: auto; }
}

.field { display: flex; flex-direction: column; gap: 8px; }
.label-text {
  font-size: 13px;
  font-weight: 500;
  color: var(--navy);
  display: flex; align-items: center; gap: 8px;
}
.unit {
  font-size: 11px;
  color: var(--ink-500);
  font-weight: 400;
  background: var(--ink-100);
  padding: 1px 8px;
}
.req {
  font-size: 10px;
  color: var(--danger);
  font-weight: 600;
  background: var(--danger-bg);
  padding: 1px 6px;
  letter-spacing: .1em;
}
.field input,
.field select {
  width: 100%;
  font-family: var(--font-sans);
  font-size: 15px;
  color: var(--ink-900);
  background: var(--white);
  border: 1px solid var(--ink-300);
  padding: 12px 14px;
  transition: all .2s;
  appearance: none;
  -webkit-appearance: none;
}
.field select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%230e2147' d='M6 8L0 0h12z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}
.field input:focus,
.field select:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px var(--gold-bg);
}

/* Radio cards (structure type) */
.radio-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
@media (max-width: 720px) {
  .radio-grid { grid-template-columns: 1fr 1fr; }
}
.radio-card {
  position: relative;
  display: block;
  cursor: pointer;
}
.radio-card input { position: absolute; opacity: 0; pointer-events: none; }
.radio-body {
  border: 1px solid var(--ink-300);
  background: var(--white);
  padding: 16px 14px;
  text-align: center;
  transition: all .25s;
  height: 100%;
}
.radio-card:hover .radio-body { border-color: var(--gold); transform: translateY(-1px); }
.radio-card input:checked + .radio-body {
  border-color: var(--gold);
  background: var(--gold-bg);
  box-shadow: 0 0 0 1px var(--gold) inset;
}
.radio-title { font-family: var(--font-serif); font-size: 16px; font-weight: 600; color: var(--navy); margin-bottom: 4px; }
.radio-sub { font-size: 11px; color: var(--ink-500); margin-bottom: 8px; }
.radio-rate { font-family: var(--font-num); font-size: 12px; color: var(--gold-deep); font-weight: 600; letter-spacing: .02em; }

/* Check cards (risk flags) */
.check-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
@media (max-width: 720px) {
  .check-grid { grid-template-columns: 1fr; }
}
.check-card { position: relative; display: block; cursor: pointer; }
.check-card input { position: absolute; opacity: 0; pointer-events: none; }
.check-body {
  border: 1px solid var(--ink-300);
  background: var(--white);
  padding: 16px;
  display: flex; flex-direction: column;
  height: 100%;
  position: relative;
  transition: all .25s;
}
.check-body::before {
  content: '';
  width: 16px; height: 16px;
  border: 1.5px solid var(--ink-300);
  position: absolute;
  top: 16px; right: 16px;
  transition: all .2s;
}
.check-card input:checked + .check-body::before {
  background: var(--gold);
  border-color: var(--gold);
  box-shadow: inset 0 0 0 3px var(--white);
}
.check-card input:checked + .check-body { border-color: var(--gold); background: var(--gold-bg); }
.check-title { font-weight: 600; color: var(--navy); font-size: 14px; margin-bottom: 4px; padding-right: 28px; }
.check-sub { font-size: 12px; color: var(--ink-500); }

/* Upload zone */
.upload-zone {
  border: 1.5px dashed var(--gold);
  background: var(--paper);
  padding: 36px 20px;
  text-align: center;
  cursor: pointer;
  transition: all .25s;
  position: relative;
}
.upload-zone:hover, .upload-zone.dragover {
  background: var(--gold-bg);
  border-color: var(--gold-deep);
}
.upload-icon { color: var(--gold); margin-bottom: 8px; }
.upload-title { font-weight: 600; color: var(--navy); font-size: 15px; margin-bottom: 6px; }
.upload-hint { font-size: 12px; color: var(--ink-500); }
.upload-list { list-style: none; padding: 0; margin: 14px 0 0 0; display: flex; flex-direction: column; gap: 6px; }
.upload-list li {
  display: flex; align-items: center; justify-content: space-between;
  background: var(--white);
  border: 1px solid var(--gold);
  padding: 8px 14px;
  font-size: 13px;
  color: var(--navy);
}
.upload-list li::before {
  content: '✓ PDFを確認しました';
  font-size: 11px;
  color: var(--good);
  background: rgba(45,138,78,0.08);
  padding: 2px 8px;
  margin-right: 12px;
  letter-spacing: .05em;
}
.upload-list .file-name { flex: 1; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upload-list .file-size { font-size: 11px; color: var(--ink-500); }

/* Form actions */
.form-actions { text-align: center; padding-top: 16px; border-top: 1px solid var(--ink-200); }

/* CTA buttons */
.cta-primary, .cta-secondary, .cta-tertiary {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 12px;
  padding: 16px 36px;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .12em;
  cursor: pointer;
  transition: all .3s;
  border: 0;
  text-align: center;
}
.cta-primary {
  background: linear-gradient(135deg, var(--gold-light) 0%, var(--gold) 50%, var(--gold-deep) 100%);
  color: var(--ink-900);
  box-shadow: 0 6px 24px -8px rgba(201,169,97,.6);
}
.cta-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 32px -10px rgba(201,169,97,.8); color: var(--ink-900); }
.cta-secondary {
  background: var(--navy);
  color: var(--white);
}
.cta-secondary:hover { background: var(--navy-soft); color: var(--white); }
.cta-tertiary {
  background: transparent;
  color: var(--navy);
  border: 1.5px solid var(--navy);
}
.cta-tertiary:hover { background: var(--navy); color: var(--white); }

.btn-arrow { font-size: 18px; transition: transform .25s; }
.cta-primary:hover .btn-arrow { transform: translateX(4px); }

.form-note { font-size: 11px; color: var(--ink-500); margin-top: 14px; letter-spacing: .05em; }

/* =================== Loading =================== */
.loading-section { padding: 80px 0; }
.loading-card {
  background: var(--white);
  border: 1px solid var(--ink-200);
  padding: 60px 40px;
  text-align: center;
  box-shadow: var(--shadow-soft);
}
.loading-spinner { display: flex; justify-content: center; margin-bottom: 24px; }
.loading-text { font-family: var(--font-serif); font-size: 16px; color: var(--navy); letter-spacing: .04em; }

/* =================== Result =================== */
.result-section { padding: 80px 0; }

.result-headline {
  background: linear-gradient(135deg, var(--navy) 0%, #142a55 100%);
  color: var(--white);
  padding: 48px 36px;
  text-align: center;
  margin-bottom: 32px;
  position: relative;
  overflow: hidden;
  border-top: 3px solid var(--gold);
  box-shadow: var(--shadow-card);
}
.result-headline::before {
  content: '';
  position: absolute;
  top: -100px; right: -100px;
  width: 300px; height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,169,97,0.25), transparent 70%);
}
.headline-label {
  font-family: var(--font-display);
  font-size: 11px; letter-spacing: .35em;
  color: var(--gold-light);
  margin-bottom: 16px;
  text-transform: uppercase;
}
.headline-amount {
  font-family: var(--font-serif);
  font-size: clamp(28px, 5vw, 56px);
  font-weight: 600;
  letter-spacing: .01em;
  margin-bottom: 12px;
  display: flex; align-items: baseline; justify-content: center; gap: 12px; flex-wrap: wrap;
}
.headline-amount > span:not(.headline-tilde) {
  background: linear-gradient(135deg, var(--gold-light), var(--gold));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.headline-tilde { color: var(--gold-light); font-size: 0.7em; }
.headline-mid {
  font-size: 13px;
  color: rgba(255,255,255,0.7);
  letter-spacing: .05em;
  margin-bottom: 20px;
}
.headline-mid span { color: var(--gold-light); font-weight: 600; margin-left: 4px; }
.headline-judge {
  display: inline-block;
  border: 1px solid var(--gold);
  padding: 8px 24px;
  font-size: 12px;
  letter-spacing: .2em;
  color: var(--gold-light);
  text-transform: uppercase;
}

/* Cards */
.card {
  background: var(--white);
  border: 1px solid var(--ink-200);
  padding: 32px;
  box-shadow: var(--shadow-soft);
  margin-bottom: 24px;
}
.card-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ink-200);
}
.card-head h3 { font-size: 18px; color: var(--navy); }
.card-tag {
  font-family: var(--font-display);
  font-size: 10px; letter-spacing: .25em;
  color: var(--gold-deep);
  background: var(--gold-bg);
  border: 1px solid var(--gold);
  padding: 4px 10px;
  text-transform: uppercase;
}
.card-tag.warn { color: var(--danger); background: var(--danger-bg); border-color: var(--danger); }
.card-tag.good { color: var(--good); background: rgba(45,138,78,0.08); border-color: var(--good); }

.result-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 24px;
}
@media (max-width: 900px) {
  .result-grid-2 { grid-template-columns: 1fr; }
}

/* Quote table */
.quote-table-wrap { overflow-x: auto; }
.quote-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-num);
  font-size: 13px;
}
.quote-table th, .quote-table td {
  padding: 12px 10px;
  text-align: left;
  border-bottom: 1px solid var(--ink-200);
  vertical-align: top;
}
.quote-table th {
  background: var(--paper);
  color: var(--navy);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.quote-table td.num, .quote-table th.num { text-align: right; font-feature-settings: "tnum"; }
.quote-table tfoot td { font-weight: 600; padding: 14px 10px; border-bottom: 0; }
.quote-subtotal td { background: var(--paper); }
.quote-total td {
  font-family: var(--font-serif);
  font-size: 16px;
  color: var(--navy);
  background: linear-gradient(90deg, var(--paper), rgba(201,169,97,0.18));
  border-top: 2px solid var(--gold);
}
.quote-note { font-size: 11px; color: var(--ink-500); margin-top: 12px; }

/* KV list */
.kv-list { list-style: none; padding: 0; margin: 0 0 18px 0; display: flex; flex-direction: column; gap: 0; }
.kv-list > div {
  display: flex; align-items: baseline; justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--ink-200);
  font-family: var(--font-num);
}
.kv-list dt { font-size: 13px; color: var(--ink-700); }
.kv-list dd { font-size: 18px; font-weight: 600; color: var(--navy); margin: 0; font-feature-settings: "tnum"; }
.kv-list > div:last-child dd { color: var(--danger); font-size: 22px; }
.kv-note { font-size: 11px; color: var(--ink-500); }

/* Bar stack */
.bar-stack { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.bar-row { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--ink-700); }
.bar-row span:first-child { width: 36px; flex: none; }
.bar { flex: 1; height: 10px; background: var(--ink-100); position: relative; }
.bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--gold-light), var(--gold-deep));
  width: 0%;
  transition: width 1s ease-out .2s;
}

/* Meter */
.meter { margin-bottom: 16px; }
.meter-bar { height: 14px; background: var(--ink-100); position: relative; margin-bottom: 6px; }
.meter-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--good) 0%, var(--warn) 50%, var(--danger) 100%);
  width: 0%;
  transition: width 1s ease-out .2s;
}
.meter-labels { display: flex; justify-content: space-between; font-size: 10px; color: var(--ink-500); letter-spacing: .1em; }
.risk-list, .pros-list, .cons-list { list-style: none; padding: 0; margin: 0; }
.risk-list li, .pros-list li, .cons-list li {
  position: relative;
  padding: 10px 0 10px 24px;
  font-size: 13px;
  color: var(--ink-700);
  line-height: 1.6;
  border-bottom: 1px dashed var(--ink-200);
}
.risk-list li:last-child, .pros-list li:last-child, .cons-list li:last-child { border-bottom: 0; }
.risk-list li::before {
  content: '!';
  position: absolute; left: 0; top: 10px;
  width: 16px; height: 16px;
  background: var(--warn);
  color: var(--white);
  font-size: 10px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.pros-list li::before {
  content: '✓';
  position: absolute; left: 0; top: 10px;
  color: var(--good);
  font-size: 14px; font-weight: 700;
}
.cons-list li::before {
  content: '×';
  position: absolute; left: 0; top: 10px;
  color: var(--danger);
  font-size: 16px; font-weight: 700;
}

/* Judgment card */
.judgment-card {
  background: linear-gradient(135deg, var(--white) 0%, var(--paper) 100%);
  border-top: 3px solid var(--gold);
}
.judgment-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  margin-bottom: 18px;
}
.judgment-badge {
  font-family: var(--font-display);
  font-size: 28px; font-weight: 700;
  width: 80px; height: 80px;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--gold);
  color: var(--gold);
  background: var(--white);
}
.judgment-badge.tier-A { color: var(--good); border-color: var(--good); }
.judgment-badge.tier-B { color: var(--gold); border-color: var(--gold); }
.judgment-badge.tier-C { color: var(--warn); border-color: var(--warn); }
.judgment-badge.tier-D { color: var(--danger); border-color: var(--danger); background: var(--danger-bg); }
.judgment-summary { font-size: 15px; color: var(--ink-700); line-height: 1.8; margin-bottom: 24px; }
.judgment-score { padding-top: 18px; border-top: 1px solid var(--ink-200); }
.score-label { font-size: 11px; letter-spacing: .2em; color: var(--ink-500); text-transform: uppercase; margin-bottom: 8px; }
.score-meter { position: relative; height: 28px; background: var(--ink-100); }
.score-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--good) 0%, var(--warn) 50%, var(--danger) 100%);
  width: 0%;
  transition: width 1.2s ease-out .2s;
}
.score-text {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-num);
  font-weight: 700;
  color: var(--white);
  text-shadow: 0 1px 2px rgba(0,0,0,0.3);
  font-size: 14px;
}

/* Report card */
.report-card {
  background: var(--paper);
  border: 1px solid var(--gold);
  padding: 40px;
  position: relative;
}
.report-card::before {
  content: '';
  position: absolute;
  top: 16px; right: 16px;
  width: 40px; height: 40px;
  border: 1px solid var(--gold-deep);
  border-bottom: 0;
  border-right: 0;
}
.report-card::after {
  content: '';
  position: absolute;
  bottom: 16px; left: 16px;
  width: 40px; height: 40px;
  border: 1px solid var(--gold-deep);
  border-top: 0;
  border-left: 0;
}
.report-body {
  font-family: var(--font-serif);
  font-size: 15px;
  line-height: 1.95;
  color: var(--ink-900);
  white-space: pre-line;
}
.report-body h4 {
  font-size: 14px;
  color: var(--gold-deep);
  letter-spacing: .1em;
  margin: 20px 0 8px 0;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--gold);
}
.report-body h4:first-child { margin-top: 0; }

/* CTA block */
.cta-block {
  background: linear-gradient(135deg, var(--navy) 0%, #1a3268 100%);
  color: var(--white);
  padding: 56px 36px;
  text-align: center;
  margin-top: 32px;
  position: relative;
  overflow: hidden;
  border-top: 3px solid var(--gold);
}
.cta-block::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 600px; height: 200px;
  background: radial-gradient(ellipse, rgba(201,169,97,0.18), transparent 70%);
  pointer-events: none;
}
.cta-title {
  font-size: clamp(20px, 3vw, 30px);
  margin-bottom: 14px;
  position: relative;
}
.cta-lead {
  font-size: 14px;
  color: rgba(255,255,255,0.75);
  margin-bottom: 32px;
  position: relative;
}
.cta-buttons {
  display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;
  position: relative;
}
.cta-buttons .cta-tertiary { color: var(--white); border-color: var(--white); }
.cta-buttons .cta-tertiary:hover { background: var(--white); color: var(--navy); }

.rerun-block { text-align: center; margin-top: 24px; }
.rerun-btn {
  background: transparent;
  border: 0;
  color: var(--ink-500);
  font-size: 13px;
  cursor: pointer;
  padding: 8px 16px;
  letter-spacing: .05em;
}
.rerun-btn:hover { color: var(--navy); }

/* =================== Disclaimer =================== */
.disclaimer {
  background: var(--ink-100);
  border-top: 1px solid var(--ink-200);
  padding: 24px 0;
}
.disclaimer p {
  font-size: 11px;
  color: var(--ink-500);
  line-height: 1.8;
  text-align: center;
}

/* =================== Footer =================== */
.site-footer {
  background: var(--ink-900);
  color: rgba(255,255,255,0.6);
  padding: 36px 0 24px;
}
.footer-inner { display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.footer-logo { height: 36px; opacity: 0.8; margin-bottom: 8px; }
.footer-brand p { font-size: 12px; letter-spacing: .1em; }
.footer-nav { display: flex; gap: 24px; }
.footer-nav a { font-size: 12px; letter-spacing: .1em; color: rgba(255,255,255,0.7); }
.footer-nav a:hover { color: var(--gold-light); }
.copy { font-size: 10px; color: rgba(255,255,255,0.4); letter-spacing: .1em; }

/* =================== Animations =================== */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
#result-section:not([hidden]) > .container > * {
  animation: fadeUp .6s ease-out backwards;
}
#result-section:not([hidden]) > .container > *:nth-child(1) { animation-delay: 0.0s; }
#result-section:not([hidden]) > .container > *:nth-child(2) { animation-delay: 0.1s; }
#result-section:not([hidden]) > .container > *:nth-child(3) { animation-delay: 0.2s; }
#result-section:not([hidden]) > .container > *:nth-child(4) { animation-delay: 0.3s; }
#result-section:not([hidden]) > .container > *:nth-child(5) { animation-delay: 0.4s; }
#result-section:not([hidden]) > .container > *:nth-child(6) { animation-delay: 0.5s; }
#result-section:not([hidden]) > .container > *:nth-child(7) { animation-delay: 0.6s; }
#result-section:not([hidden]) > .container > *:nth-child(8) { animation-delay: 0.7s; }
#result-section:not([hidden]) > .container > *:nth-child(9) { animation-delay: 0.8s; }

/* ====================================================================
   PART 2 — Property Risk Total Report
   ==================================================================== */

/* Sub-fieldset lead caption */
.fieldset-lead {
  margin: 0 0 14px;
  color: var(--ink-500);
  font-size: 13px;
}
.form-grid-narrow { gap: 14px 18px; }
.form-grid-narrow .field-wide { grid-column: span 2; }
@media (max-width: 720px) {
  .form-grid-narrow .field-wide { grid-column: span 1; }
}

/* Divider between Part 1 and Part 2 of the result */
.risk-divider {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 60px auto 30px;
  max-width: 700px;
}
.risk-divider-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.risk-divider-label {
  font-family: var(--font-display);
  letter-spacing: 0.35em;
  font-size: 11px;
  color: var(--gold-deep);
  white-space: nowrap;
}
.risk-section-head { margin-bottom: 36px; }

/* Risk overview card (total + radar chart) */
.risk-overview-card {
  padding: 36px 32px;
}
.risk-overview-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(280px, 2fr);
  gap: 36px;
  align-items: center;
}
@media (max-width: 820px) {
  .risk-overview-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.risk-total {
  text-align: center;
  padding: 14px 0;
}
.risk-total-eyebrow {
  margin: 0 0 12px;
  font-family: var(--font-display);
  letter-spacing: 0.35em;
  font-size: 11px;
  color: var(--gold-deep);
}
.risk-total-num {
  font-family: var(--font-num);
  font-weight: 700;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
  margin-bottom: 12px;
}
.risk-total-num > span:first-child {
  font-size: 88px;
  line-height: 1;
  background: linear-gradient(135deg, #dcc587 0%, #c9a961 50%, #8b6f3d 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.risk-total-slash { font-size: 24px; color: var(--ink-500); }
.risk-total-tier {
  display: inline-block;
  padding: 6px 18px;
  border: 1px solid currentColor;
  font-family: var(--font-num);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.risk-total-tier.tier-low    { color: var(--good); }
.risk-total-tier.tier-mid    { color: var(--warn); }
.risk-total-tier.tier-high   { color: #d97706; background: rgba(217,119,6,0.08); }
.risk-total-tier.tier-urgent { color: var(--white); background: var(--danger); border-color: var(--danger); }
.risk-total-formula {
  margin: 0;
  font-size: 12px;
  color: var(--ink-500);
}
.risk-total-note {
  margin: 6px 0 0;
  font-family: var(--font-num);
  font-size: 12px;
  color: var(--ink-700);
}

/* Radar chart */
.radar-chart-wrap {
  background: linear-gradient(135deg, var(--navy) 0%, #122a59 100%);
  border-radius: var(--radius-card);
  padding: 18px;
  position: relative;
}
.radar-chart-wrap::before {
  content: "RADAR CHART";
  position: absolute;
  top: 12px; left: 16px;
  font-family: var(--font-display);
  font-size: 9px;
  letter-spacing: 0.35em;
  color: rgba(220,197,135,0.7);
}
#radar-chart {
  width: 100%;
  height: auto;
  display: block;
}
@media (max-width: 480px) {
  .radar-chart-wrap { padding: 8px; }
}

/* 8 risk cards */
.risk-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  margin-bottom: 32px;
}
@media (max-width: 720px) {
  .risk-cards { grid-template-columns: 1fr; }
}
.risk-card {
  background: var(--white);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-card);
  padding: 20px 22px;
  box-shadow: var(--shadow-soft);
  border-left: 4px solid var(--ink-300);
}
.risk-card.tier-low    { border-left-color: var(--good); }
.risk-card.tier-mid    { border-left-color: var(--warn); }
.risk-card.tier-high   { border-left-color: #d97706; }
.risk-card.tier-urgent { border-left-color: var(--danger); }
.risk-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.risk-card-titles { flex: 1; }
.risk-card-titles h4 {
  margin: 0 0 6px;
  font-family: var(--font-serif);
  font-size: 19px;
  color: var(--navy);
}
.risk-card-desc {
  margin: 0;
  font-size: 13px;
  color: var(--ink-700);
  line-height: 1.55;
}
.risk-card-score {
  text-align: center;
  flex-shrink: 0;
  min-width: 80px;
}
.risk-card-num {
  font-family: var(--font-num);
  font-weight: 700;
  font-size: 32px;
  line-height: 1;
  color: var(--navy);
}
.risk-card-tier {
  display: inline-block;
  margin-top: 4px;
  padding: 2px 10px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
}
.risk-card-tier.tier-low    { color: var(--good); border: 1px solid var(--good); }
.risk-card-tier.tier-mid    { color: var(--warn); border: 1px solid var(--warn); }
.risk-card-tier.tier-high   { color: #fff;        background: #d97706; }
.risk-card-tier.tier-urgent { color: #fff;        background: var(--danger); }
.risk-card-meter {
  height: 4px;
  background: var(--ink-100);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 14px;
}
.risk-card-meter-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--good), var(--warn) 50%, var(--danger));
  transition: width 0.6s ease;
}
.risk-card-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.risk-card-block-label {
  margin: 0 0 4px;
  font-family: var(--font-display);
  font-size: 10px;
  letter-spacing: 0.25em;
  color: var(--gold-deep);
  text-transform: uppercase;
}
.risk-card-block p:not(.risk-card-block-label) {
  margin: 0;
  font-size: 13.5px;
  color: var(--ink-700);
  line-height: 1.65;
}
.risk-card-refs {
  margin-top: 4px;
  border-top: 1px dashed var(--ink-200);
  padding-top: 10px;
  font-size: 12px;
}
.risk-card-refs summary {
  cursor: pointer;
  color: var(--gold-deep);
  font-weight: 600;
  letter-spacing: 0.05em;
}
.risk-card-refs ul {
  margin: 8px 0 0;
  padding-left: 18px;
  color: var(--ink-700);
}
.risk-card-refs li { margin-bottom: 2px; }

/* Future scenario timeline */
.scenario-card { margin-bottom: 24px; }
.scenario-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.scenario-step {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 18px;
  border-left: 2px solid var(--gold);
  padding: 6px 0 6px 18px;
  position: relative;
}
.scenario-step::before {
  content: "";
  position: absolute;
  left: -7px;
  top: 14px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--gold);
  border: 2px solid var(--white);
  box-shadow: 0 0 0 1px var(--gold);
}
.scenario-horizon {
  font-family: var(--font-display);
  font-size: 13px;
  letter-spacing: 0.2em;
  color: var(--gold-deep);
  font-weight: 600;
  padding-top: 6px;
}
.scenario-list {
  margin: 0;
  padding-left: 18px;
  color: var(--ink-700);
  font-size: 14px;
  line-height: 1.7;
}
.scenario-list li { margin-bottom: 4px; }
@media (max-width: 600px) {
  .scenario-step { grid-template-columns: 1fr; gap: 6px; }
  .scenario-horizon { padding-top: 0; }
}

/* Recommended actions */
.actions-card { margin-bottom: 24px; }
.actions-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.action-step {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 18px;
  padding: 16px 0;
  border-bottom: 1px dashed var(--ink-200);
}
.action-step:last-child { border-bottom: 0; padding-bottom: 0; }
.action-priority {
  font-family: var(--font-display);
  letter-spacing: 0.18em;
  font-size: 13px;
  color: var(--gold-deep);
  font-weight: 700;
  border-right: 1px solid var(--gold);
  padding-right: 12px;
  text-align: center;
}
.action-content h4 {
  margin: 0 0 6px;
  font-family: var(--font-serif);
  font-size: 17px;
  color: var(--navy);
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.action-tier {
  display: inline-block;
  padding: 2px 8px;
  font-size: 10px;
  font-family: var(--font-num);
  font-weight: 700;
  letter-spacing: 0.15em;
}
.action-tier.tier-low    { color: var(--good); border: 1px solid var(--good); }
.action-tier.tier-mid    { color: var(--warn); border: 1px solid var(--warn); }
.action-tier.tier-high   { color: #fff; background: #d97706; }
.action-tier.tier-urgent { color: #fff; background: var(--danger); }
.action-content p {
  margin: 0;
  font-size: 14px;
  color: var(--ink-700);
  line-height: 1.7;
}
@media (max-width: 600px) {
  .action-step { grid-template-columns: 1fr; gap: 6px; }
  .action-priority { border-right: 0; border-bottom: 1px solid var(--gold); padding: 0 0 6px; text-align: left; }
}

/* Legal basis */
.legal-card {
  background: linear-gradient(135deg, var(--paper) 0%, var(--ivory) 100%);
  border: 1px solid var(--gold-bg);
  margin-bottom: 24px;
}
.legal-basis {
  margin: 0;
  padding-left: 22px;
  color: var(--ink-700);
  font-size: 14px;
  line-height: 1.85;
}
.legal-basis li { margin-bottom: 4px; }
.legal-note {
  margin: 16px 0 0;
  padding: 12px 16px;
  background: rgba(192,57,43,0.06);
  border-left: 3px solid var(--danger);
  font-size: 13px;
  color: var(--ink-700);
  line-height: 1.7;
}

/* PDF download block */
.pdf-block {
  text-align: center;
  margin: 30px 0;
  padding: 30px 24px;
  background: var(--white);
  border: 1px solid var(--gold-bg);
  border-radius: var(--radius-card);
}
.pdf-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.pdf-btn svg { display: block; }
.pdf-note {
  margin: 12px 0 0;
  font-size: 12px;
  color: var(--ink-500);
}

.cta-block-2 { margin-bottom: 30px; }

/* ===== Print / PDF export ===== */
@media print {
  @page { size: A4; margin: 14mm 12mm; }
  html, body { background: #fff !important; color: #000 !important; }
  body { font-size: 11px !important; line-height: 1.55 !important; }

  .site-header, .site-footer, .hero, .steps, .form-section,
  .loading-section, .bg-decor, .rerun-block, .pdf-block, .nav-link, .nav-cta,
  .cta-block, .cta-block-2 { display: none !important; }

  #result-section { display: block !important; padding: 0 !important; }
  #result-section .container { max-width: 100% !important; padding: 0 !important; }

  *, *::before, *::after { animation: none !important; transition: none !important; }

  .card, .risk-card, .risk-overview-card, .legal-card {
    background: #fff !important;
    border: 1px solid #888 !important;
    box-shadow: none !important;
    page-break-inside: avoid;
    margin-bottom: 12px !important;
    padding: 14px 16px !important;
  }

  .risk-cards { gap: 10px !important; grid-template-columns: 1fr 1fr !important; }
  .radar-chart-wrap {
    background: #fafafa !important;
    border: 1px solid #888;
  }
  .radar-chart-wrap::before { color: #888 !important; }
  .risk-total-num > span:first-child {
    background: none !important;
    -webkit-text-fill-color: initial !important;
    color: #b08f44 !important;
  }
  #radar-chart polygon[fill*="rgba(201"] { fill: rgba(201,169,97,0.35) !important; }
  #radar-chart text { fill: #222 !important; }

  .risk-total-tier, .risk-card-tier, .action-tier {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  h2 { font-size: 18px !important; }
  h3 { font-size: 14px !important; }
  h4 { font-size: 12px !important; }
}

/* ===== Mobile polish ===== */
@media (max-width: 480px) {
  .risk-total-num > span:first-child { font-size: 64px; }
  .risk-overview-card { padding: 24px 18px; }
  .risk-card { padding: 16px 18px; }
  .risk-card-head { gap: 10px; }
  .risk-card-num { font-size: 28px; }
  .risk-divider { margin: 40px auto 22px; gap: 10px; }
  .risk-divider-label { font-size: 9px; letter-spacing: 0.25em; }
}

/* ============================================================
   ZIP CODE LOOKUP（〒検索)
   ============================================================ */
.zip-row{
  display:flex;gap:8px;align-items:stretch;
}
.zip-row input{
  flex:1;min-width:0;
}
.zip-btn{
  flex-shrink:0;
  padding:0 18px;
  font-size:13px;font-weight:600;letter-spacing:.05em;
  color:#0a0a0a;background:#c9a84c;
  border:1px solid #c9a84c;border-radius:6px;
  cursor:pointer;white-space:nowrap;
  transition:background .25s,color .25s,border-color .25s,opacity .25s;
}
.zip-btn:hover{background:#e0c068;border-color:#e0c068}
.zip-btn:disabled{opacity:.55;cursor:wait}
.zip-status{
  display:block;
  margin-top:6px;
  font-size:12px;letter-spacing:.04em;
  min-height:1.1em;
  color:#6b7280;
}
.zip-status.is-error{color:#d97a7a}
.zip-status.is-success{color:#3a8a4a}
@media(max-width:520px){
  .zip-row{flex-direction:column}
  .zip-btn{padding:10px 0;width:100%}
}

/* ============================================================
   PROPERTY TYPE TOGGLE（建物あり / 土地のみ）
   ============================================================ */
.propertyType-fieldset .fieldset-lead{margin-bottom:14px}
.propertyType-toggle{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px;
}
.ptype-card{
  position:relative;display:flex;flex-direction:column;gap:6px;
  padding:18px 22px;
  border:1.5px solid #e5e7eb;border-radius:10px;
  background:#fff;cursor:pointer;
  transition:border-color .25s,box-shadow .25s,background .25s,transform .15s;
}
.ptype-card:hover{transform:translateY(-1px);border-color:#c9a84c}
.ptype-card input{
  position:absolute;left:-9999px;opacity:0;pointer-events:none;
}
.ptype-card:has(input:checked){
  border-color:#c9a84c;
  box-shadow:0 0 0 2px rgba(201,168,76,.20);
  background:linear-gradient(0deg,rgba(201,168,76,.06),rgba(201,168,76,.06)),#fff;
}
.ptype-title{font-size:16px;font-weight:600;color:#0a0a0a;letter-spacing:.02em}
.ptype-desc{font-size:12px;color:#6b7280;line-height:1.55}
@media(max-width:560px){
  .propertyType-toggle{grid-template-columns:1fr}
  .ptype-card{padding:14px 16px}
}

/* ===== モード別 表示制御 =====
   - data-mode="building": 建物関連を表示、土地専用を非表示
   - data-mode="land":     建物関連を非表示、土地専用を表示
*/
form[data-mode="land"]    .b-only{display:none !important}
form[data-mode="building"] .l-only{display:none !important}

/* ===== モード別 表示制御をフォーム外(結果セクション等)にも適用 =====
   form 要素の外側にも作用するよう body[data-mode] を基準に上書き */
body[data-mode="land"]    .b-only{display:none !important}
body[data-mode="building"] .l-only{display:none !important}

/* ============================================================
   PRICE ASSESSMENT BLOCK (Top of report)
   ============================================================ */
.price-block{margin-bottom:48px}
.price-block .section-head{margin-bottom:28px}

/* 1. 市場査定額 ヘッドライン */
.price-headline-card{background:linear-gradient(135deg,#0f1f3a 0%,#0a172e 100%);color:#fff;border:1px solid rgba(201,169,97,.4)}
.price-headline-card .card-head h3{color:#fff}
.price-headline-card .card-tag{background:#c9a961;color:#0a172e;border-color:transparent}
.price-headline{padding:14px 4px 4px}
.price-mainline{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 0 22px;border-bottom:1px solid rgba(201,169,97,.18);margin-bottom:18px}
.price-label{font-size:12px;letter-spacing:.18em;color:rgba(255,255,255,.62);text-transform:uppercase}
.price-amount{font-size:38px;font-weight:600;letter-spacing:.02em;background:linear-gradient(135deg,#e8c878 0%,#c9a961 100%);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}
.price-subline{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}
.price-sub{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:rgba(255,255,255,.04);border-radius:6px}
.price-sub dt{font-size:11px;letter-spacing:.1em;color:rgba(255,255,255,.55)}
.price-sub dd{font-size:16px;font-weight:600;color:#e8c878}
.price-note{font-size:12px;color:rgba(255,255,255,.62);line-height:1.7;margin-top:8px}
@media(max-width:680px){
  .price-amount{font-size:28px}
  .price-subline{grid-template-columns:1fr;gap:8px}
}

/* 2. ギャップ分析 */
.desired-gap-card{margin-top:18px}
.gap-bars{display:flex;flex-direction:column;gap:14px;margin:14px 0 18px}
.gap-row{display:flex;align-items:center;gap:14px}
.gap-row-label{flex-shrink:0;width:100px;font-size:12px;color:#4b5563;font-weight:600;letter-spacing:.04em}
.gap-bar{position:relative;flex:1;height:32px;background:#f3f4f6;border-radius:6px;overflow:hidden}
.gap-fill{position:absolute;left:0;top:0;bottom:0;border-radius:6px;transition:width .8s cubic-bezier(.4,0,.2,1)}
.gap-fill.gap-market{background:linear-gradient(90deg,#3a8a4a 0%,#5cb478 100%)}
.gap-fill.gap-desired{background:linear-gradient(90deg,#c9a961 0%,#e8c878 100%)}
.gap-value{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:13px;font-weight:600;color:#0a0a0a;text-shadow:0 1px 2px rgba(255,255,255,.5);z-index:2}
.gap-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:14px;background:#f9fafb;border-radius:8px;margin-bottom:14px}
.gap-stat{display:flex;flex-direction:column;gap:4px;text-align:center}
.gap-stat-label{font-size:11px;letter-spacing:.1em;color:#6b7280;text-transform:uppercase}
.gap-stat-value{font-size:18px;font-weight:600;color:#0a0a0a}
.gap-tier.tier-low{color:#3a8a4a}
.gap-tier.tier-mid{color:#c9a961}
.gap-tier.tier-high{color:#d97a3a}
.gap-tier.tier-urgent{color:#c0392b}
.gap-comment{font-size:13px;line-height:1.85;color:#4b5563;padding:14px;background:#fff;border-left:3px solid #c9a961;border-radius:4px}
@media(max-width:680px){
  .gap-row{flex-direction:column;align-items:stretch;gap:6px}
  .gap-row-label{width:auto}
  .gap-summary{grid-template-columns:1fr}
}

/* 3. 買取期待度 */
.buyback-card{margin-top:18px}
.buyback-card .meter{margin:14px 0}
.buyback-kv{margin:14px 0}
.buyback-note{font-size:13px;line-height:1.85;color:#4b5563;padding:12px 14px;background:#fff8e6;border-left:3px solid #c9a961;border-radius:4px;margin-top:10px}
.card-tag.tier-low{background:rgba(58,138,74,.12);color:#3a8a4a;border-color:#3a8a4a}
.card-tag.tier-mid{background:rgba(201,169,97,.18);color:#9a7d3a;border-color:#c9a961}
.card-tag.tier-high{background:rgba(217,122,58,.18);color:#a05a2a;border-color:#d97a3a}
.card-tag.tier-urgent{background:rgba(192,57,43,.16);color:#9a2c20;border-color:#c0392b}

/* 4. 出口戦略 */
.exit-strategy-card{margin-top:18px;background:#fafaf7}
.exit-headline{font-size:18px;font-weight:600;color:#0a172e;line-height:1.6;padding:14px 16px;background:#fff;border-radius:6px;border:1px solid #e5e7eb;margin:14px 0 18px}
.exit-headline.is-urgent{border-color:#c0392b;color:#9a2c20;background:#fff5f3}
.exit-headline.is-positive{border-color:#3a8a4a;color:#1f5e2e;background:#f3faf5}
.exit-steps{padding-left:20px;margin:0 0 14px;display:flex;flex-direction:column;gap:12px}
.exit-steps li{font-size:14px;line-height:1.85;color:#1f2937;padding-left:6px}
.exit-steps li strong{display:block;font-size:13px;letter-spacing:.04em;color:#c9a961;margin-bottom:2px}
.exit-warning{font-size:12px;line-height:1.7;color:#a05a2a;padding:10px 14px;background:#fff5e6;border-radius:6px;margin-top:6px;display:none}
.exit-warning.is-shown{display:block}

.field-hint{display:block;font-size:11px;color:#6b7280;margin-top:4px;line-height:1.55}

/* Print: 価格ブロックは保持(モノクロ寄せ) */
@media print {
  .price-headline-card{background:#fff !important;color:#0a0a0a !important;border:1px solid #888 !important}
  .price-headline-card .card-head h3{color:#0a0a0a !important}
  .price-amount{color:#0a0a0a !important;-webkit-text-fill-color:#0a0a0a !important;background:none !important}
  .price-label,.price-sub dt,.price-note{color:#444 !important}
  .price-sub dd{color:#000 !important}
  .price-sub{background:#f5f5f5 !important}
  .gap-fill.gap-market{background:#666 !important}
  .gap-fill.gap-desired{background:#bbb !important}
}

/* ============================================================
   KKHP TONE OVERRIDE — 黒×ゴールドラグジュアリー
   既存スタイルを上書きして karirukikaku.com トップと統一
   ============================================================ */
:root{
  --kk-dark:#070708;
  --kk-dark-2:#0e0e10;
  --kk-dark-3:#14141a;
  --kk-gold:#c9a84c;
  --kk-gold-l:#e0c068;
  --kk-light:#f0ece3;
  --kk-muted:rgba(240,236,227,.62);
  --kk-line:rgba(201,168,76,.18);
}

body{background:var(--kk-dark) !important;color:var(--kk-light) !important;font-family:'Noto Sans JP',sans-serif !important}
.container{color:var(--kk-light)}

/* Hero */
.hero{background:radial-gradient(ellipse at top,rgba(201,168,76,.10),transparent 60%),linear-gradient(180deg,#0a0a0c 0%,#070708 100%) !important;border-bottom:1px solid var(--kk-line)}
.hero-title{font-family:'Noto Serif JP',serif !important;color:var(--kk-light) !important;font-weight:300 !important;letter-spacing:.06em}
.hero-title .title-gold{color:var(--kk-gold) !important;background:none !important;-webkit-text-fill-color:var(--kk-gold) !important}
.hero-lead{color:var(--kk-muted) !important}
.hero-eyebrow,.eyebrow{color:var(--kk-gold) !important;letter-spacing:.3em}
.trust-strip li{color:var(--kk-muted) !important}
.trust-strip svg{color:var(--kk-gold) !important}

/* Steps */
.steps{background:var(--kk-dark-2) !important;border-top:1px solid var(--kk-line);border-bottom:1px solid var(--kk-line)}
.step-list li{color:var(--kk-muted) !important}
.step-num{color:var(--kk-gold) !important;background:rgba(201,168,76,.08) !important;border:1px solid var(--kk-gold) !important}
.step-text{color:var(--kk-light) !important}

/* Form */
.form-section{background:var(--kk-dark) !important}
.form-section h2{color:var(--kk-light) !important;font-family:'Noto Serif JP',serif !important;font-weight:400}
.section-lead,.fieldset-lead{color:var(--kk-muted) !important}
.form-card{background:var(--kk-dark-2) !important;border:1px solid var(--kk-line) !important;color:var(--kk-light)}
.fieldset{border-bottom:1px solid var(--kk-line) !important}
.fieldset legend{color:var(--kk-light) !important;font-family:'Noto Serif JP',serif !important;font-weight:500}
.legend-num{background:linear-gradient(135deg,var(--kk-gold),var(--kk-gold-l)) !important;color:var(--kk-dark) !important;border:none !important}
.label-text{color:var(--kk-light) !important;font-weight:500}
.unit{color:var(--kk-muted) !important}
.req{color:var(--kk-gold) !important;background:rgba(201,168,76,.15) !important;border:1px solid var(--kk-gold) !important}
.field input,.field select,.field textarea{background:rgba(7,7,8,.55) !important;border:1px solid var(--kk-line) !important;color:var(--kk-light) !important}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--kk-gold) !important;box-shadow:0 0 0 2px rgba(201,168,76,.2) !important;outline:none !important}
.field input::placeholder{color:rgba(240,236,227,.35) !important}
.field-hint{color:rgba(240,236,227,.45) !important}

/* Property type toggle */
.ptype-card{background:rgba(7,7,8,.55) !important;border:1.5px solid var(--kk-line) !important}
.ptype-card:hover{border-color:var(--kk-gold) !important}
.ptype-card:has(input:checked){border-color:var(--kk-gold) !important;background:linear-gradient(0deg,rgba(201,168,76,.10),rgba(201,168,76,.05)),rgba(7,7,8,.7) !important;box-shadow:0 0 0 2px rgba(201,168,76,.25) !important}
.ptype-title{color:var(--kk-light) !important}
.ptype-desc{color:var(--kk-muted) !important}

/* Zip lookup button */
.zip-btn{background:linear-gradient(135deg,var(--kk-gold),var(--kk-gold-l)) !important;color:var(--kk-dark) !important;border-color:transparent !important;font-weight:600 !important}
.zip-btn:hover{background:var(--kk-gold-l) !important}
.zip-status{color:var(--kk-muted) !important}
.zip-status.is-success{color:#9ad19b !important}
.zip-status.is-error{color:#e09090 !important}

/* CTA buttons */
.cta-primary,.cta-buttons .cta-primary{background:linear-gradient(135deg,var(--kk-gold),var(--kk-gold-l)) !important;color:var(--kk-dark) !important;border:1px solid var(--kk-gold) !important;font-weight:600 !important;letter-spacing:.18em}
.cta-secondary,.cta-tertiary{background:transparent !important;color:var(--kk-gold) !important;border:1px solid var(--kk-gold) !important}
.cta-secondary:hover,.cta-tertiary:hover{background:rgba(201,168,76,.1) !important}

/* Result section */
.result-section{background:var(--kk-dark) !important}
.result-section h2,.result-section h3{color:var(--kk-light) !important;font-family:'Noto Serif JP',serif !important}
.report-meta{color:var(--kk-muted) !important}
.card{background:var(--kk-dark-2) !important;border:1px solid var(--kk-line) !important;color:var(--kk-light)}
.card-head h3{color:var(--kk-light) !important}
.card-tag{background:rgba(201,168,76,.10) !important;color:var(--kk-gold) !important;border:1px solid var(--kk-gold) !important}
.card-tag.warn{background:rgba(217,122,58,.18) !important;color:#e0a878 !important;border-color:#d97a3a !important}
.card-tag.good{background:rgba(58,138,74,.18) !important;color:#9ad19b !important;border-color:#5cb478 !important}

/* Price block */
.price-headline-card{background:linear-gradient(135deg,rgba(201,168,76,.08) 0%,rgba(7,7,8,.7) 60%,rgba(14,14,16,.9) 100%) !important;border:1px solid var(--kk-gold) !important;color:var(--kk-light) !important}
.price-headline-card .card-head h3{color:var(--kk-light) !important}
.price-headline-card .card-tag{background:var(--kk-gold) !important;color:var(--kk-dark) !important;border-color:transparent !important;font-weight:600}
.price-amount{background:linear-gradient(135deg,#e8c878 0%,#c9a84c 100%) !important;-webkit-background-clip:text !important;background-clip:text !important;color:transparent !important}
.price-label{color:rgba(240,236,227,.55) !important}
.price-sub{background:rgba(7,7,8,.45) !important;border:1px solid var(--kk-line)}
.price-sub dt{color:rgba(240,236,227,.55) !important}
.price-sub dd{color:var(--kk-gold) !important}
.price-note{color:rgba(240,236,227,.55) !important}

/* Gap */
.gap-bar{background:rgba(7,7,8,.55) !important;border:1px solid var(--kk-line)}
.gap-fill.gap-market{background:linear-gradient(90deg,#5cb478 0%,#9ad19b 100%) !important}
.gap-fill.gap-desired{background:linear-gradient(90deg,var(--kk-gold) 0%,var(--kk-gold-l) 100%) !important}
.gap-value{color:var(--kk-light) !important;text-shadow:0 1px 3px rgba(0,0,0,.7) !important}
.gap-row-label{color:var(--kk-muted) !important}
.gap-summary{background:rgba(7,7,8,.45) !important;border:1px solid var(--kk-line) !important}
.gap-stat-label{color:rgba(240,236,227,.45) !important}
.gap-stat-value{color:var(--kk-light) !important}
.gap-comment{background:rgba(7,7,8,.5) !important;color:var(--kk-muted) !important;border-left:3px solid var(--kk-gold) !important}

/* Buyback */
.buyback-note{background:rgba(201,168,76,.06) !important;color:var(--kk-muted) !important;border-left:3px solid var(--kk-gold) !important}
.meter-bar{background:rgba(7,7,8,.55) !important}
.meter-fill{background:linear-gradient(90deg,var(--kk-gold) 0%,var(--kk-gold-l) 100%) !important}
.meter-labels span{color:var(--kk-muted) !important}

/* Tier */
.tier-low{color:#9ad19b !important}
.card-tag.tier-low{background:rgba(90,180,120,.15) !important;color:#9ad19b !important;border-color:#5cb478 !important}
.tier-mid{color:var(--kk-gold) !important}
.card-tag.tier-mid{background:rgba(201,168,76,.15) !important;color:var(--kk-gold) !important;border-color:var(--kk-gold) !important}
.tier-high{color:#e0a878 !important}
.card-tag.tier-high{background:rgba(217,122,58,.18) !important;color:#e0a878 !important;border-color:#d97a3a !important}
.tier-urgent{color:#e09090 !important}
.card-tag.tier-urgent{background:rgba(192,57,43,.20) !important;color:#e09090 !important;border-color:#c0392b !important}

/* Exit */
.exit-strategy-card{background:rgba(14,14,16,.95) !important;border:1px solid var(--kk-gold) !important}
.exit-headline{background:rgba(7,7,8,.55) !important;border:1px solid var(--kk-line) !important;color:var(--kk-light) !important}
.exit-headline.is-positive{border-color:#5cb478 !important;color:#9ad19b !important;background:rgba(90,180,120,.06) !important}
.exit-headline.is-urgent{border-color:#c0392b !important;color:#e09090 !important;background:rgba(192,57,43,.06) !important}
.exit-steps li{color:var(--kk-light) !important}
.exit-steps li strong{color:var(--kk-gold) !important}
.exit-warning{background:rgba(192,57,43,.12) !important;color:#e0a878 !important;border-left:3px solid #c0392b}

/* Risk */
.risk-divider-line{background:var(--kk-gold) !important;height:1px}
.risk-divider-label{color:var(--kk-gold) !important;letter-spacing:.3em}
.kv-list dt{color:rgba(240,236,227,.55) !important}
.kv-list dd{color:var(--kk-light) !important}

/* CTA blocks */
.cta-block{background:linear-gradient(135deg,rgba(201,168,76,.10),rgba(7,7,8,.7)) !important;border:1px solid var(--kk-gold) !important}
.cta-title{color:var(--kk-light) !important;font-family:'Noto Serif JP',serif !important}
.cta-lead{color:var(--kk-muted) !important}

/* Disclaimer */
.disclaimer{background:var(--kk-dark-2) !important;border-top:1px solid var(--kk-line)}
.disclaimer p{color:var(--kk-muted) !important}

/* Loading */
.loading-section{background:var(--kk-dark) !important}
.loading-section p{color:var(--kk-light) !important}

/* Tables */
table th{color:var(--kk-gold) !important;background:rgba(201,168,76,.06) !important}
table td{color:var(--kk-muted) !important}
.kv-note{color:rgba(240,236,227,.45) !important}

/* ============================================================
   KKHP INTERNAL LINKS — 相互リンク導線
   ============================================================ */
.kk-internal-links{background:var(--kk-dark-2);padding:48px 0 36px;border-top:1px solid var(--kk-line);border-bottom:1px solid var(--kk-line)}
.kk-internal-links .container{max-width:1200px;margin:0 auto;padding:0 20px}
.kk-il-eyebrow{font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:.3em;color:var(--kk-gold);text-transform:uppercase;text-align:center;margin-bottom:8px}
.kk-il-title{font-family:'Noto Serif JP',serif;font-size:24px;font-weight:400;color:var(--kk-light);text-align:center;margin-bottom:12px;letter-spacing:.04em}
.kk-il-title em{color:var(--kk-gold);font-style:normal}
.kk-il-bar{width:46px;height:1px;background:var(--kk-gold);margin:0 auto 28px}
.kk-il-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.kk-il-card{display:block;padding:20px 22px;background:rgba(7,7,8,.55);border:1px solid var(--kk-line);border-radius:8px;text-decoration:none;transition:border-color .3s,transform .25s,background .3s}
.kk-il-card:hover{border-color:var(--kk-gold);transform:translateY(-3px);background:rgba(201,168,76,.06)}
.kk-il-card-tag{font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:.24em;color:var(--kk-gold);text-transform:uppercase;margin-bottom:8px}
.kk-il-card-title{font-family:'Noto Serif JP',serif;font-size:15px;color:var(--kk-light);margin-bottom:6px;font-weight:500;letter-spacing:.02em}
.kk-il-card-desc{font-size:12px;color:var(--kk-muted);line-height:1.7}
.kk-il-back-wrap{text-align:center;margin-top:24px}
.kk-il-back{display:inline-flex;align-items:center;gap:8px;font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--kk-gold);text-decoration:none;padding:14px 32px;border:1px solid var(--kk-gold);border-radius:4px;transition:background .3s,color .3s}
.kk-il-back:hover{background:var(--kk-gold);color:var(--kk-dark)}

/* ============================================================
   KKHP HEADER NAV (上部固定 — トップへの帰還リンク)
   ============================================================ */
.kk-topnav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:14px 28px;background:rgba(7,7,8,.85);backdrop-filter:blur(20px);border-bottom:1px solid var(--kk-line)}
.kk-topnav .kk-logo{font-family:'Noto Serif JP',serif;font-size:16px;letter-spacing:.18em;color:var(--kk-light);text-decoration:none}
.kk-topnav .kk-logo em{color:var(--kk-gold);font-style:normal}
.kk-topnav-links{display:flex;gap:24px;list-style:none;margin:0;padding:0}
.kk-topnav-links a{font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--kk-muted);text-decoration:none;transition:color .3s}
.kk-topnav-links a:hover,.kk-topnav-links a.active{color:var(--kk-gold)}
.kk-topnav-cta{font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--kk-dark);background:var(--kk-gold);padding:10px 20px;text-decoration:none;border-radius:3px;font-weight:600}
.kk-topnav-cta:hover{background:var(--kk-gold-l)}
@media(max-width:1100px){.kk-topnav-links{display:none}}
@media(max-width:768px){.kk-topnav{padding:10px 14px}.kk-topnav .kk-logo{font-size:13px}}
body{padding-top:60px}

/* ============================================================
   原野キーワード SEO BLOCK (出口戦略ボトム)
   ============================================================ */
.kk-genya-section{background:var(--kk-dark-2);padding:64px 0;border-top:1px solid var(--kk-line)}
.kk-genya-section .container{max-width:1100px;margin:0 auto;padding:0 24px}
.kk-genya-eyebrow{font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:.3em;color:var(--kk-gold);text-transform:uppercase;text-align:center;margin-bottom:8px}
.kk-genya-title{font-family:'Noto Serif JP',serif;font-size:26px;font-weight:400;color:var(--kk-light);text-align:center;margin-bottom:14px;letter-spacing:.04em;line-height:1.5}
.kk-genya-title em{color:var(--kk-gold);font-style:normal}
.kk-genya-bar{width:46px;height:1px;background:var(--kk-gold);margin:0 auto 28px}
.kk-genya-lead{font-size:14px;color:var(--kk-muted);line-height:2;text-align:center;max-width:820px;margin:0 auto 32px}
.kk-genya-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-bottom:32px}
.kk-genya-card{padding:24px 26px;background:rgba(7,7,8,.5);border:1px solid var(--kk-line);border-radius:8px}
.kk-genya-card h3{font-family:'Noto Serif JP',serif;font-size:16px;color:var(--kk-gold);margin-bottom:10px;font-weight:500;padding-bottom:10px;border-bottom:1px solid var(--kk-line)}
.kk-genya-card p{font-size:13px;color:var(--kk-muted);line-height:1.95}
.kk-genya-faq{margin-top:32px}
.kk-genya-faq details{background:rgba(7,7,8,.4);border:1px solid var(--kk-line);border-radius:8px;margin-bottom:10px;overflow:hidden;transition:border-color .3s}
.kk-genya-faq details[open]{border-color:var(--kk-gold)}
.kk-genya-faq summary{cursor:pointer;padding:18px 22px;font-size:14px;color:var(--kk-light);font-weight:500;letter-spacing:.02em;list-style:none;display:flex;align-items:flex-start;gap:14px}
.kk-genya-faq summary::-webkit-details-marker{display:none}
.kk-genya-faq summary::before{content:'Q';font-family:'Montserrat',sans-serif;color:var(--kk-gold);font-weight:600;flex-shrink:0}
.kk-genya-faq summary::after{content:'+';color:var(--kk-gold);font-size:18px;margin-left:auto;transition:transform .3s}
.kk-genya-faq details[open] summary::after{transform:rotate(45deg)}
.kk-genya-faq .faq-a{padding:0 22px 20px 50px;font-size:13px;color:var(--kk-muted);line-height:1.95;position:relative}
.kk-genya-faq .faq-a::before{content:'A';position:absolute;left:22px;font-family:'Montserrat',sans-serif;color:var(--kk-gold);font-weight:600}

/* ============================================================
   FIX: .unit の白箱問題 / .radio-card 選択パネル不可視問題
   ============================================================ */

/* .unit: 白背景を消してシンプルなインライン表記に */
.label-text .unit{
  background:transparent !important;
  color:var(--kk-gold) !important;
  padding:0 !important;
  margin-left:6px !important;
  font-size:11px !important;
  letter-spacing:.04em;
  border:none !important;
}

/* .req(必須バッジ): ゴールド枠で軽く目立たせる */
.label-text .req{
  background:transparent !important;
  color:var(--kk-gold) !important;
  border:1px solid var(--kk-gold) !important;
  padding:1px 8px !important;
  margin-left:6px !important;
}

/* .radio-card(建物構造選択): 非選択カードもダークテーマ寄せ */
.radio-card .radio-body{
  background:rgba(7,7,8,.55) !important;
  border:1px solid var(--kk-line) !important;
  color:var(--kk-light) !important;
  border-radius:8px;
  transition:all .25s;
}
.radio-card:hover .radio-body{
  border-color:var(--kk-gold) !important;
  background:rgba(7,7,8,.7) !important;
  transform:translateY(-1px);
}

/* 選択時: ゴールドの濃いハイライト + 内側影 */
.radio-card input:checked + .radio-body{
  background:linear-gradient(0deg,rgba(201,168,76,.18),rgba(201,168,76,.10)),rgba(7,7,8,.6) !important;
  border-color:var(--kk-gold) !important;
  box-shadow:0 0 0 2px var(--kk-gold) inset, 0 4px 16px rgba(201,168,76,.15) !important;
}

/* 内部テキスト */
.radio-title{color:var(--kk-light) !important;font-family:'Noto Serif JP',serif !important}
.radio-sub{color:var(--kk-muted) !important}
.radio-rate{color:var(--kk-gold) !important;font-weight:600 !important}

/* 選択時はテキストもゴールド寄せでさらに目立たせる */
.radio-card input:checked + .radio-body .radio-title{color:var(--kk-gold-l) !important}
.radio-card input:checked + .radio-body .radio-rate{color:var(--kk-gold-l) !important}

/* .check-card(チェックボックスカード — アスベスト等)も同様に対応 */
.check-card .check-body{
  background:rgba(7,7,8,.55) !important;
  border:1px solid var(--kk-line) !important;
  color:var(--kk-light) !important;
}
.check-card:hover .check-body{
  border-color:var(--kk-gold) !important;
  background:rgba(7,7,8,.7) !important;
}
.check-card input:checked + .check-body{
  background:linear-gradient(0deg,rgba(201,168,76,.18),rgba(201,168,76,.10)),rgba(7,7,8,.6) !important;
  border-color:var(--kk-gold) !important;
  box-shadow:0 0 0 2px var(--kk-gold) inset !important;
}
.check-title{color:var(--kk-light) !important}
.check-desc{color:var(--kk-muted) !important}

/* ============================================================
   KKHP DARK-MODE FIXES — Report / Scenario / Risk cards / Quote table
   ============================================================ */

/* AI Analyst Report — text was dark on dark card → make light */
.report-card{background:linear-gradient(135deg,rgba(201,168,76,.05) 0%,rgba(14,14,16,.95) 60%,rgba(7,7,8,.98) 100%) !important;border:1px solid var(--kk-gold) !important}
.report-body{color:var(--kk-light) !important;font-family:'Noto Serif JP',serif !important}
.report-body p{color:var(--kk-light) !important;margin:0 0 12px}
.report-body h4{color:var(--kk-gold) !important;border-bottom:1px solid var(--kk-gold) !important;letter-spacing:.14em}
.report-body strong,.report-body b{color:var(--kk-gold-l) !important}

/* Future scenario timeline — all text white on dark card */
.scenario-card{background:var(--kk-dark-2) !important;border:1px solid var(--kk-line) !important}
.scenario-step{border-left:2px solid var(--kk-gold) !important}
.scenario-step::before{background:var(--kk-gold) !important;border:2px solid var(--kk-dark-2) !important;box-shadow:0 0 0 1px var(--kk-gold) !important}
.scenario-horizon{color:#fff !important;font-weight:700 !important;letter-spacing:.22em}
.scenario-list{color:#fff !important}
.scenario-list li{color:#fff !important}
.scenario-list li::marker{color:var(--kk-gold) !important}

/* Risk cards — text colors */
.risk-card{background:rgba(7,7,8,.55) !important;border:1px solid var(--kk-line) !important;border-left-width:4px !important;color:var(--kk-light) !important}
.risk-card.tier-low{border-left-color:#5cb478 !important}
.risk-card.tier-mid{border-left-color:var(--kk-gold) !important}
.risk-card.tier-high{border-left-color:#d97a3a !important}
.risk-card.tier-urgent{border-left-color:#c0392b !important}
.risk-card-titles h4{color:var(--kk-light) !important}
.risk-card-desc{color:var(--kk-muted) !important}
.risk-card-num{color:var(--kk-gold) !important}
.risk-card-meter{background:rgba(7,7,8,.7) !important}
.risk-card-block-label{color:var(--kk-gold) !important}
.risk-card-block p:not(.risk-card-block-label){color:var(--kk-light) !important}
.risk-card-refs summary{color:var(--kk-gold) !important}
.risk-card-refs ul{color:var(--kk-muted) !important}
.risk-card-refs{border-top-color:var(--kk-line) !important}

/* Actions / legal cards */
.actions-card,.legal-card,.cta-block{background:var(--kk-dark-2) !important}
.action-priority{color:var(--kk-gold) !important}
.action-content h4{color:var(--kk-light) !important}
.action-content p{color:var(--kk-muted) !important}
.legal-basis,.legal-basis li{color:var(--kk-muted) !important}
.legal-note{color:rgba(240,236,227,.45) !important}

/* Quote table dark mode */
.quote-table{color:var(--kk-light) !important}
.quote-table th{background:rgba(201,168,76,.08) !important;color:var(--kk-gold) !important;border-bottom:1px solid var(--kk-line) !important}
.quote-table td{color:var(--kk-light) !important;border-bottom:1px solid var(--kk-line) !important}
.quote-subtotal td{background:rgba(201,168,76,.05) !important;color:var(--kk-light) !important}
.quote-total td{background:linear-gradient(90deg,rgba(7,7,8,.6),rgba(201,168,76,.18)) !important;color:var(--kk-gold-l) !important;border-top:2px solid var(--kk-gold) !important}
.quote-note{color:rgba(240,236,227,.5) !important}

/* ============================================================
   MOBILE — Quote table card layout (cost breakdown)
   ============================================================ */
@media (max-width: 600px){
  .quote-table-wrap{overflow-x:visible}
  .quote-table,.quote-table thead,.quote-table tbody,.quote-table tfoot,
  .quote-table tr,.quote-table th,.quote-table td{display:block;width:100%}
  .quote-table thead{display:none}
  .quote-table tr{
    background:rgba(7,7,8,.45) !important;
    border:1px solid var(--kk-line) !important;
    border-radius:8px;
    padding:12px 14px;
    margin-bottom:10px;
  }
  .quote-table td{
    border:0 !important;
    padding:6px 0 !important;
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:12px;
    font-size:13px;
    text-align:right !important;
  }
  .quote-table td::before{
    content:attr(data-label);
    font-family:'Montserrat',sans-serif;
    font-size:11px;
    letter-spacing:.14em;
    color:var(--kk-gold) !important;
    text-transform:uppercase;
    text-align:left;
    flex-shrink:0;
  }
  .quote-table td.num{font-family:var(--font-num);font-weight:600;color:var(--kk-light) !important;font-size:15px}
  .quote-subtotal td,.quote-total td{padding:8px 0 !important}
  .quote-total tr,.quote-subtotal tr{border-color:var(--kk-gold) !important}
  .quote-total td{background:transparent !important;font-size:15px}
  .quote-total td.num{font-size:20px;color:var(--kk-gold-l) !important}
}

/* Mobile — scenario / report readability */
@media (max-width: 600px){
  .report-card{padding:24px 18px !important}
  .report-body{font-size:14px}
  .report-body h4{font-size:13px;margin:16px 0 8px}
  .scenario-horizon{font-size:14px}
  .scenario-list{font-size:14px;padding-left:16px}
}
