/* The Doctor-Ready Snapshot: a calm, one-question-at-a-time flow, then a printable one-page summary. */
.snap { background: var(--paper); }
.snap-top { position: sticky; top: 0; z-index: 5; display: grid; gap: .75rem; padding: 1rem var(--margin) .75rem; background: var(--paper); }
.snap-top .mark { font-size: 1.15rem; }
.snap-progress { display: block; height: 4px; border-radius: 999px; background: var(--blush); overflow: hidden; }
.snap-progress span { display: block; height: 100%; background: var(--mulberry); transform-origin: 0 50%; transform: scaleX(0); transition: transform 500ms var(--ease-out); }
.snap-main { max-width: 44rem; margin: 0 auto; padding: 1.5rem var(--margin) 5rem; }
.step { display: none; gap: 1.25rem; }
.step.is-on { display: grid; animation: rise 500ms var(--ease-out); }
.snap-moon { width: 4.5rem; height: 4.5rem; border-radius: 50%; background: var(--saffron); position: relative; overflow: hidden; }
.snap-moon::after { content: ""; position: absolute; inset: -12% -16% 16% 24%; border-radius: 50%; background: var(--paper); }
.lead-s { font-size: 1.15rem; line-height: 1.5; max-width: 36ch; }
.snap-list li { font-weight: 600; }
.muted-s { color: var(--muted); }
.q-k { font-weight: 800; color: var(--mulberry); font-size: var(--s-small); }
.step .sub { font-family: var(--font-display); }
.opts { display: flex; flex-wrap: wrap; gap: .5rem; }
.opts.col { display: grid; }
.opts button { text-align: left; min-height: 3.1rem; padding: .7rem 1.1rem; border-radius: 16px; background: #fff; font-weight: 600; border: 2px solid transparent; transition: background-color 200ms ease, border-color 200ms ease, transform 140ms var(--ease-out); }
.opts:not(.col) button { border-radius: 999px; }
.opts button[aria-pressed="true"] { background: var(--blush); border-color: var(--mulberry); color: var(--mulberry-dk); }
.opts button:active { transform: scale(.98); }
.nav { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: .5rem; }
.nav .pill[disabled] { opacity: .45; pointer-events: none; }
.back { font-weight: 700; color: var(--muted); }
.picks { display: grid; gap: .5rem; margin-top: .5rem; }
.pick { background: #fff; border-radius: 16px; border: 2px solid transparent; overflow: hidden; }
.pick.on { border-color: var(--mulberry); }
.pick-h { width: 100%; text-align: left; display: flex; gap: .75rem; align-items: center; padding: .85rem 1rem; font-weight: 700; }
.tick { width: 1.4rem; height: 1.4rem; border-radius: 50%; background: var(--blush); flex: none; }
.pick.on .tick { background: var(--saffron); }
.pick-d { display: grid; gap: .75rem; padding: 0 1rem 1rem 3.15rem; }
.pick-d label { display: grid; gap: .3rem; font-size: var(--s-small); font-weight: 700; color: var(--muted); }
.pick-d select { min-height: 2.75rem; border-radius: 12px; border: 1px solid #E3CCD7; padding: 0 .75rem; background: var(--paper); font: inherit; color: var(--ink); }
.impacts { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.impacts .small { width: 100%; color: var(--muted); font-weight: 700; }
.impacts button { padding: .4rem .8rem; border-radius: 999px; background: var(--paper); font-weight: 700; font-size: var(--s-small); border: 1px solid #E3CCD7; }
.impacts button[aria-pressed="true"] { background: var(--sage); color: #fff; border-color: var(--sage); }
.lead-form { display: grid; gap: .9rem; }
.lead-form label { display: grid; gap: .35rem; font-weight: 700; font-size: var(--s-small); }
.lead-form input[type=email], .lead-form input[name=first_name] { min-height: 3.2rem; border-radius: 14px; border: 1px solid #E3CCD7; padding: 0 1rem; font: inherit; font-size: 1rem; background: #fff; }
.consent { grid-template-columns: auto 1fr !important; align-items: start; font-weight: 500 !important; }
.consent input { width: 1.25rem; height: 1.25rem; margin-top: .15rem; accent-color: var(--mulberry); }
.err { color: var(--mulberry-dk); font-weight: 700; min-height: 1.2em; }

/* the sheet */
.result-actions { display: grid; gap: .5rem; }
.sheet { background: #fff; border-radius: 22px; padding: clamp(1.25rem, 4vw, 2.25rem); display: grid; gap: 1.1rem; color: #1d1418; }
.sh-h { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; align-items: end; padding-bottom: .8rem; border-bottom: 3px solid var(--mulberry); }
.sh-k { font-size: .8rem; font-weight: 800; color: var(--mulberry); }
.sh-h h3 { font-family: var(--font-display); font-weight: 400; font-size: 2rem; line-height: 1; }
.sh-meta { display: grid; gap: .1rem; font-size: .9rem; }
.sheet h4 { font-weight: 800; font-size: .95rem; color: var(--mulberry-dk); margin-bottom: .4rem; }
.sh-t { width: 100%; border-collapse: collapse; font-size: .95rem; }
.sh-t th { text-align: left; font-size: .8rem; color: var(--muted); padding: .3rem .4rem; background: var(--blush); }
.sh-t td { padding: .5rem .4rem; vertical-align: top; }
.sh-t tr + tr td { background: rgba(242, 228, 234, .35); }
.sh-p { font-size: .95rem; line-height: 1.5; max-width: none; }
.sh-ul { padding-left: 1.1rem; display: grid; gap: .25rem; font-size: .95rem; list-style: disc; }
.sh-say { background: var(--sage-soft); border-radius: 14px; padding: .9rem 1rem; }
.sh-say p { font-style: italic; font-size: 1rem; line-height: 1.5; max-width: none; }
.sh-script { display: grid; gap: .15rem; padding: .6rem .8rem; border-radius: 12px; background: var(--saffron-soft); font-size: .93rem; }
.sh-script + .sh-script { margin-top: .4rem; }
.sh-two { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.sh-red { background: #FBE3E3; border-radius: 14px; padding: .8rem 1rem; }
.sh-red h4 { color: #8A1F1F; }
.sh-f { font-size: .8rem; color: var(--muted); padding-top: .6rem; }
.next { display: grid; gap: .9rem; margin-top: 1.5rem; }
.next-list { display: grid; gap: .4rem; }
.next-list li { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; background: #fff; border-radius: 14px; }
.next-list span { color: var(--muted); font-size: var(--s-small); white-space: nowrap; }
.next-offer { background: var(--mulberry-dk); color: var(--paper); border-radius: 22px; padding: 1.4rem; display: grid; gap: 1rem; }
.no-t { font-family: var(--font-display); font-size: 1.6rem; line-height: 1; }
.next-offer .pill { justify-self: start; }
@media (max-width: 47.99em) { .sh-two { grid-template-columns: 1fr; } .next-list li { flex-direction: column; gap: .1rem; } }

/* print: only the sheet, on one page */
@media print {
  @page { size: letter; margin: 12mm; }
  body * { visibility: hidden; }
  .sheet, .sheet * { visibility: visible; }
  .sheet { position: absolute; left: 0; top: 0; width: 100%; border-radius: 0; padding: 0; gap: .7rem; font-size: 11pt; }
  .sh-say, .sh-script, .sh-red, .sh-t th { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* print: fit the whole sheet on one Letter page */
@media print {
  html, body { background: #fff !important; }
  @page { size: letter; margin: 10mm 12mm; }
  .sheet { font-size: 9.6pt; gap: 2.6mm; line-height: 1.32; }
  .sh-h { padding-bottom: 2mm; }
  .sh-h h3 { font-size: 20pt; }
  .sheet h4 { font-size: 9.6pt; margin-bottom: 1mm; }
  .sh-t { font-size: 9.3pt; } .sh-t td { padding: 1.2mm 1.5mm; } .sh-t th { padding: 1mm 1.5mm; font-size: 8pt; }
  .sh-p, .sh-ul, .sh-say p, .sh-script { font-size: 9.3pt; line-height: 1.32; }
  .sh-say, .sh-red { padding: 2.2mm 3mm; border-radius: 3mm; }
  .sh-script { padding: 1.8mm 2.6mm; } .sh-script + .sh-script { margin-top: 1.4mm; }
  .sh-two { grid-template-columns: 1fr 1fr !important; gap: 4mm; }
  .sh-f { font-size: 7.5pt; padding-top: 1mm; }
}
@media print {
  body * { visibility: visible; }
  .snap-top, .result-actions, .next, .step:not(.result-step) { display: none !important; }
  .snap-main { padding: 0 !important; max-width: none; }
  .sheet { position: static !important; }
}
@media print {
  html, body { height: auto !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
  .result-step { display: block !important; gap: 0 !important; animation: none !important; }
  .sheet { break-after: avoid; page-break-after: avoid; break-inside: avoid; }
  .progress, .buybar, .skip { display: none !important; }
}
