/* Your Package & Your Price */
.pp-intro-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 72px); align-items: center; padding-bottom: clamp(48px, 7vw, 96px); }
.pp-get { background: var(--white); padding: clamp(22px, 3vw, 34px); box-shadow: 0 24px 50px -32px rgba(18, 20, 16, .55); }
.pp-get ol { margin: 0; padding-left: 22px; }
.pp-get li { padding: 7px 0; border-top: 1px solid var(--line); }
.pp-get li:first-child { border-top: 0; }
.pp-worth { margin: 16px 0 0; font-family: var(--serif); font-style: italic; font-size: 19px; color: var(--azure); }
@media (max-width: 860px) { .pp-intro-grid { grid-template-columns: 1fr; } }

.pp-tool { padding: clamp(28px, 4vw, 56px) 0 clamp(64px, 8vw, 110px); min-height: 80vh; }
.pp-progress { display: flex; align-items: center; gap: 16px; margin-bottom: clamp(24px, 4vw, 40px); }
.pp-track { flex: 1; height: 6px; background: rgba(18, 20, 16, .1); border-radius: 999px; overflow: hidden; }
.pp-bar { height: 100%; width: 0; background: var(--azure); border-radius: 999px; transition: width .45s cubic-bezier(.3, .7, .2, 1); }
.pp-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(24px, 4vw, 56px); align-items: start; }
.pp-done .pp-layout { grid-template-columns: 1fr; }
.pp-done .pp-side, .pp-done .pp-progress { display: none; }
@media (max-width: 900px) { .pp-layout { grid-template-columns: 1fr; } .pp-side { order: -1; } }

@keyframes ppIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.pp-in { animation: ppIn .45s cubic-bezier(.3, .7, .2, 1); }
@media (prefers-reduced-motion: reduce) { .pp-in { animation: none; } .pp-bar { transition: none; } }

.pp-q { border: 0; margin: 0; padding: 0; min-width: 0; }
.pp-title { font-size: clamp(36px, 5vw, 64px); font-weight: 900; font-stretch: 62%; text-transform: uppercase; line-height: .92; padding: 0; margin: 0 0 10px; }
.pp-hint { font-family: var(--serif); font-style: italic; font-size: 19px; margin: 0 0 6px; color: var(--muted); }
.pp-opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 22px; }
.pp-opt { font: inherit; font-size: 17px; font-weight: 700; text-align: left; min-height: 64px; padding: 16px 20px; background: var(--white); color: var(--ink); border: 1px solid rgba(18, 20, 16, .18); border-radius: 6px; cursor: pointer; transition: transform .15s ease, border-color .15s, background .15s, color .15s; position: relative; }
.pp-opt:hover { border-color: var(--ink); transform: translateY(-2px); }
.pp-opt[aria-pressed="true"] { background: var(--azure); border-color: var(--azure); color: var(--white); }
.pp-opt:focus-visible { outline: 3px solid var(--azure); outline-offset: 3px; }
@media (max-width: 560px) { .pp-opts { grid-template-columns: 1fr; } }
.pp-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 26px; min-height: 48px; }
.pp-nav .link { background: none; border: 0; font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; padding: 10px 0; }
.btn[disabled] { opacity: .35; cursor: not-allowed; }

.pp-side { background: var(--forest); color: var(--white); padding: 24px; border-radius: 6px; position: sticky; top: 88px; }
.bp-row { display: flex; flex-direction: column; gap: 2px; padding: 10px 0; border-top: 1px solid rgba(255, 255, 255, .14); }
.bp-row span { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; opacity: .6; }
.bp-row b { font-size: 17px; color: rgba(255, 255, 255, .35); transition: color .3s; }
.bp-row.on b { color: var(--white); }

.pp-gate, .pp-plan { max-width: 980px; }
.pp-big { font-size: clamp(44px, 7vw, 96px); font-weight: 900; font-stretch: 62%; text-transform: uppercase; line-height: .9; margin: 10px 0 0; }
.pp-lead { font-family: var(--serif); font-size: clamp(21px, 2.4vw, 28px); line-height: 1.35; margin: 14px 0 0; max-width: 40ch; }
.pp-locked { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 28px 0; }
.pp-locked div { background: var(--white); padding: 18px; border-radius: 6px; filter: blur(.4px); }
.pp-locked span { display: block; font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.pp-locked b { display: block; font-size: 24px; margin-top: 6px; color: rgba(18, 20, 16, .25); letter-spacing: .1em; }
@media (max-width: 640px) { .pp-locked { grid-template-columns: 1fr; } }
.pp-form { background: var(--white); padding: clamp(20px, 3vw, 32px); border-radius: 6px; box-shadow: 0 24px 50px -32px rgba(18, 20, 16, .55); }
.pp-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.pp-fields label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 700; }
.pp-fields input { font: inherit; font-size: 17px; min-height: 52px; padding: 0 14px; border: 1px solid rgba(18, 20, 16, .3); border-radius: 6px; background: var(--white); }
.pp-fields input:focus-visible { outline: 3px solid var(--azure); outline-offset: 1px; border-color: var(--azure); }
@media (max-width: 560px) { .pp-fields { grid-template-columns: 1fr; } }
.pp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; }
.pp-fine { font-size: 13px; color: var(--muted); margin: 12px 0 0; }
.pp-err { color: #B3261E; font-weight: 700; margin: 8px 0 0; min-height: 1em; }

.pp-sent { display: inline-block; background: var(--forest); color: var(--white); padding: 8px 14px; border-radius: 999px; font-size: 14px; font-weight: 700; margin: 0 0 18px; }
.pp-sent.preview { background: var(--ground); color: var(--ink); border: 1px dashed var(--clay); }
.pp-price { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 24px; align-items: center; background: var(--azure); color: var(--white); padding: clamp(22px, 3vw, 36px); border-radius: 6px; margin: 28px 0 14px; }
.pp-price > div b { display: block; font-size: clamp(64px, 10vw, 128px); font-weight: 900; font-stretch: 62%; line-height: .85; }
.pp-price em { font-style: normal; font-family: var(--mono); font-size: 13px; opacity: .85; }
.pp-ladder { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pp-ladder li { background: rgba(255, 255, 255, .12); padding: 14px; border-radius: 6px; display: flex; flex-direction: column; gap: 2px; }
.pp-ladder li.on { background: var(--white); color: var(--ink); }
.pp-ladder span { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; opacity: .75; }
.pp-ladder b { font-size: 28px; font-weight: 900; font-stretch: 62%; }
.pp-ladder em { font-size: 12px; }
@media (max-width: 720px) { .pp-price { grid-template-columns: 1fr; } }
.pp-flag { background: var(--white); border-left: 4px solid var(--clay); padding: 14px 18px; margin: 0 0 8px; font-weight: 600; }
.pp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.pp-grid section, .pp-wide { background: var(--white); padding: clamp(18px, 2.4vw, 28px); border-radius: 6px; }
.pp-plan h3 { font-size: 13px; font-family: var(--mono); font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--azure); margin: 0 0 12px; }
.pp-plan ul { margin: 0; padding-left: 18px; }
.pp-plan li { margin-bottom: 8px; }
.pp-mathbig { font-size: 56px; font-weight: 900; font-stretch: 62%; line-height: .9; margin: 0 0 6px; text-transform: uppercase; }
.pp-quote { font-family: var(--serif); font-style: italic; font-size: 24px; line-height: 1.3; margin: 0 0 10px; }
.pp-wide { margin-top: 14px; }
.pp-scripts { margin: 0; padding-left: 20px; }
.pp-scripts li { margin-bottom: 14px; }
.pp-scripts p { margin: 4px 0 0; font-family: var(--serif); font-size: 18px; }
@media (max-width: 760px) { .pp-grid { grid-template-columns: 1fr; } }
.pp-actions { display: flex; gap: 20px; align-items: center; margin: 22px 0; }
.pp-actions .link { background: none; border: 0; font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.pp-next2 { display: grid; grid-template-columns: minmax(0, 1.3fr) auto; gap: 24px; align-items: center; background: var(--forest); color: var(--white); padding: clamp(24px, 3.4vw, 40px); border-radius: 6px; }
.pp-n2t { font-size: clamp(32px, 4vw, 52px); font-weight: 900; font-stretch: 62%; text-transform: uppercase; line-height: .95; margin: 6px 0 10px; }
.pp-n2a { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
@media (max-width: 760px) { .pp-next2 { grid-template-columns: 1fr; } }

@media print {
  .site-head, .foot, .pp-actions, .pp-next2 .pp-n2a, #pp-intro, .bar, .pp-sent { display: none !important; }
  body { background: #fff; }
  .pp-price { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .pp-grid section, .pp-wide { break-inside: avoid; border: 1px solid #ddd; }
}

/* v2 */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }
.pp-progress { flex-wrap: wrap; }
.pp-secs { display: flex; gap: 6px; width: 100%; }
.pp-secs span { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; padding: 6px 10px; border-radius: 999px; border: 1px solid rgba(18, 20, 16, .18); color: var(--muted); transition: all .3s; }
.pp-secs span.on { background: var(--ink); color: var(--white); border-color: var(--ink); }
@media (max-width: 560px) { .pp-secs span { font-size: 12px; padding: 5px 8px; } }
.pp-text textarea { width: 100%; font: inherit; font-family: var(--serif); font-size: 20px; line-height: 1.5; padding: 16px 18px; margin-top: 20px; border: 1px solid rgba(18, 20, 16, .25); border-radius: 6px; background: var(--white); resize: vertical; min-height: 140px; }
.pp-text textarea:focus-visible { outline: 3px solid var(--azure); outline-offset: 1px; border-color: var(--azure); }
.pp-ai { display: inline-flex; align-items: center; gap: 8px; color: var(--azure); margin: 14px 0 0; }
.pp-ai::before { content: ""; width: 10px; height: 10px; background: var(--azure); clip-path: polygon(50% 0, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0 50%, 40% 40%); }
.pp-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 26px; }
.pp-pkg { padding: clamp(20px, 3vw, 32px); border-radius: 6px; display: flex; flex-direction: column; gap: 8px; }
.pp-pkg.quick { background: var(--white); border: 2px solid var(--ink); }
.pp-pkg.long { background: var(--forest); color: var(--white); }
.pp-pkg h3 { font-size: clamp(30px, 3.4vw, 46px); font-weight: 900; font-stretch: 62%; text-transform: uppercase; line-height: .92; margin: 4px 0; font-family: var(--sans); letter-spacing: 0; color: inherit; }
.pp-pkg .mono { color: var(--azure); }
.pp-pp { font-size: clamp(44px, 5vw, 64px); font-weight: 900; font-stretch: 62%; line-height: .9; margin: 4px 0 6px; }
.pp-pp em { font-style: normal; font-family: var(--mono); font-size: 13px; font-weight: 400; margin-left: 8px; opacity: .8; }
.pp-pkg ul { margin: 0; padding-left: 18px; }
@media (max-width: 760px) { .pp-two { grid-template-columns: 1fr; } }
.pp-challenge { display: grid; grid-template-columns: minmax(0, 1.3fr) auto; gap: 24px; align-items: center; background: var(--azure); color: var(--white); padding: clamp(24px, 3.4vw, 40px); border-radius: 6px; margin-top: 14px; }
.pp-challenge .btn { background: var(--ink); }
.pp-cmsg { margin: 8px 0 0; font-weight: 700; min-height: 1em; }
@media (max-width: 760px) { .pp-challenge { grid-template-columns: 1fr; } }
@media print { .pp-challenge { display: none !important; } }
.pp-per { font-family: var(--mono); font-size: 13px; margin: 0 0 6px; opacity: .85; }
.pp-opts2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 6px 0 8px; }
.pp-opts2 > div { border-top: 1px solid rgba(255, 255, 255, .25); padding-top: 8px; }
.pp-opts2 .pp-pp { font-size: clamp(34px, 3.6vw, 48px); }
.pp-up { background: var(--ink); color: var(--white); }
.pp-up h3 { color: #6E9BFF; }
.pp-uptitle { font-size: clamp(32px, 4vw, 54px); font-weight: 900; font-stretch: 62%; text-transform: uppercase; line-height: .92; margin: 0 0 14px; }
.pp-up p:last-child { font-family: var(--serif); font-size: clamp(18px, 1.9vw, 21px); line-height: 1.55; max-width: 64ch; margin: 0; }
.pp-check { margin-top: 14px; background: var(--white); border: 2px solid var(--azure); border-radius: 6px; padding: clamp(20px, 3vw, 34px); }
.pp-say { font-family: var(--serif); font-style: italic; font-size: clamp(34px, 4.6vw, 60px); line-height: 1.05; margin: 4px 0 12px; color: var(--azure); }
.pp-checkq { font-weight: 700; margin: 0 0 12px; }
.pp-checkopts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.pp-checkout .pp-checkopts { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 520px; margin-top: 10px; }
.pp-checkout { margin-top: 16px; }
.pp-checkout:empty { display: none; }
.pp-checkout p { margin: 0 0 10px; max-width: 70ch; }
.pp-nextl { font-family: var(--mono); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--azure); margin-top: 14px !important; }
.pp-focus { outline: 4px solid var(--azure); outline-offset: 6px; }
@media (max-width: 760px) { .pp-checkopts { grid-template-columns: 1fr; } }
.pp-mirror { font-family: var(--serif); font-style: italic; font-size: clamp(19px, 2vw, 23px); color: var(--azure); margin: 14px 0 0; max-width: 54ch; }
.pp-yours { margin: 22px 0 0; padding: 18px 22px; background: var(--white); border-left: 4px solid var(--azure); border-radius: 0 6px 6px 0; }
.pp-yours .mono { color: var(--azure); }
.pp-yours p { margin: 8px 0 0; font-family: var(--serif); font-size: clamp(19px, 2vw, 22px); line-height: 1.45; }
.pp-yours2 { font-size: 18px !important; color: #33352F; }
.pp-yours3 { font-family: var(--sans) !important; font-weight: 800; font-size: 16px !important; }
.pp-opts .pp-opt { min-height: 56px; }
.pp-teach { margin-top: 14px; background: var(--white); border-radius: 6px; padding: clamp(20px, 3vw, 34px); border-top: 4px solid var(--azure); }
.pp-teach h3 { margin-bottom: 16px; }
.pp-teachgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.pp-teachgrid .mono { color: var(--ink); font-weight: 500; }
.pp-teachgrid p { margin: 8px 0 0; font-size: 15.5px; line-height: 1.55; }
@media (max-width: 860px) { .pp-teachgrid { grid-template-columns: 1fr; } }
.pp-obj details { border-top: 1px solid var(--line); padding: 4px 0; }
.pp-obj summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; font-weight: 700; font-size: 17px; }
.pp-obj summary::-webkit-details-marker { display: none; }
.pp-obj summary::after { content: "+"; font-family: var(--mono); color: var(--azure); font-size: 20px; }
.pp-obj details[open] summary::after { content: "–"; }
.pp-obj details p { margin: 0 0 14px; max-width: 68ch; }
.pp-note { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 24px; align-items: center; margin: 14px 0; background: var(--white); border-radius: 6px; padding: clamp(20px, 3vw, 30px); }
.pp-note img { width: 160px; height: 160px; object-fit: cover; object-position: 50% 25%; border-radius: 50%; filter: grayscale(1); }
.pp-note .mono { color: var(--azure); }
.pp-note p { margin: 8px 0 0; font-family: var(--serif); font-size: 19px; line-height: 1.5; }
.pp-sig { font-style: italic; font-size: 24px !important; }
@media (max-width: 600px) { .pp-note { grid-template-columns: 1fr; } .pp-note img { width: 110px; height: 110px; } }
.pp-need { color: #B3261E; font-weight: 700; margin: 8px 0 0; }

/* "What do you do?" answers */
.pp-onelead { margin: 0 0 16px; }
.pp-onegrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 0 18px; }
.pp-onegrid > div { border: 1px solid var(--line); border-radius: 6px; padding: 18px; display: flex; flex-direction: column; }
.pp-onegrid .pp-quote { font-size: 21px; flex: 1; }
.pp-onewhen { margin: 0; font-size: 15px; opacity: .78; }
.pp-coffee { background: var(--azure); color: var(--white); border-radius: 6px; padding: clamp(18px, 2.4vw, 26px); margin: 0 0 18px; }
.pp-coffee .mono { display: block; margin: 0 0 10px; color: rgba(255, 255, 255, .85); }
.pp-coffee p { margin: 0 0 10px; }
.pp-coffee p:last-child { margin: 0; }

/* Curiosity: what each answer builds */
.pp-builds { color: var(--azure); font-size: 13px; letter-spacing: .04em; margin: -4px 0 14px; }
.bp-parts { list-style: none; margin: 0; padding: 0; }
.bp-parts li { display: flex; gap: 10px; align-items: baseline; padding: 8px 0; border-top: 1px solid rgba(255, 255, 255, .14); color: rgba(255, 255, 255, .5); font-weight: 700; font-size: 15px; }
.bp-parts li span { width: 14px; color: var(--azure); }
.bp-parts li em { margin-left: auto; font-style: normal; font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.bp-parts li.on { color: var(--white); }
.bp-parts li.on em { color: var(--azure); }
.pp-inside { list-style: none; margin: 18px 0 24px; padding: 0; }
.pp-inside li { padding: 10px 0 10px 28px; border-top: 1px solid var(--line); position: relative; }
.pp-inside li::before { content: "✓"; position: absolute; left: 4px; color: var(--azure); font-weight: 700; }
.pp-typo { margin: 0 0 10px; font-weight: 700; }
.pp-typo:empty { display: none; }
@media (max-width: 900px) {
  .pp-side { position: static; padding: 16px; }
  .bp-ans, .bp-row { display: none; }
  .bp-parts { display: grid; grid-template-columns: 1fr 1fr; column-gap: 14px; }
  .bp-parts li { font-size: 13px; padding: 6px 0; }
  .bp-parts li em { display: none; }
}

/* Floor, range, and the number */
.pp-floor { display: grid; grid-template-columns: 1.2fr 1fr; gap: 14px; margin: 24px 0 14px; padding: 0; }
.pp-floor > div { background: var(--white); border-radius: 6px; padding: clamp(18px, 2.4vw, 26px); }
.pp-floor > div:first-child { border-left: 4px solid var(--azure); }
.pp-floor .mono { display: block; color: var(--azure); margin: 0 0 8px; }
.pp-floor p { margin: 0 0 8px; }
.pp-floor .pp-mathbig { font-weight: 800; font-size: 20px; }
.pp-range { margin: 4px 0 0; font-family: var(--mono); font-size: 12px; letter-spacing: .04em; opacity: .8; }
.pp-solo { margin: 10px 0 0; font-size: 15px; }
@media (max-width: 760px) { .pp-floor { grid-template-columns: 1fr; } }

/* Optional 30-day plan */
.pp-thirty { border-left: 4px solid var(--azure); }
.pp-thirtyfix { font-size: 18px; }
.pp-thirtyw { list-style: none; margin: 14px 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.pp-thirtyw li { border: 1px solid var(--line); border-radius: 6px; padding: 14px; }
.pp-thirtyw .mono { display: block; color: var(--azure); margin: 0 0 6px; }
.pp-thirtynext { font-weight: 700; }

.pp-stakes { margin: 24px 0 0; border-left: 4px solid var(--ink); }

/* Plan rhythm: one spacing scale, real section headings (audit 2026-10-09) */
.pp-plan > * + * { margin-top: clamp(36px, 4.4vw, 56px); }
.pp-plan > .pp-sent + * { margin-top: 20px; }
.pp-plan > .pp-big { margin-top: 6px; }
.pp-plan > .pp-lead { margin-top: 14px; }
.pp-plan > .pp-yours { margin-top: 28px; }
.pp-plan > .pp-flag { margin-top: 12px; }
.pp-plan > .pp-next2 { margin-top: 14px; }
.pp-plan > .pp-floor { margin-bottom: 0; }
.pp-plan > .pp-two { margin-top: 14px; }
.pp-plan h3 { font-family: var(--sans); font-size: clamp(28px, 3.2vw, 40px); font-weight: 900; font-stretch: 64%; letter-spacing: 0; line-height: .95; text-transform: uppercase; color: var(--ink); margin: 0 0 18px; }
.pp-plan .pp-grid h3 { font-size: clamp(22px, 2.2vw, 28px); margin-bottom: 12px; }
.pp-plan .pp-up h3 { font-family: var(--mono); font-size: 13px; font-weight: 500; letter-spacing: .1em; color: #6E9BFF; margin-bottom: 12px; }
.pp-thirty .pp-thirtyfix { margin-top: 0; }
@media (max-width: 640px) { .pp-onegrid { grid-template-columns: 1fr; } }

/* On phones the question comes first; the plan tracker sits under it */
@media (max-width: 900px) { .pp-side { order: 1; } }

/* Package cards keep their own heading color (the long-term card is dark) */
.pp-plan .pp-pkg h3 { color: inherit; font-size: clamp(30px, 3.4vw, 46px); margin: 4px 0; }
.pp-plan .pp-next2 h3, .pp-plan .pp-challenge h3, .pp-plan .pp-price h3 { color: inherit; }
.pp-plan .pp-pkg.long .mono { color: #8FB1FF; }

/* Starting-rate switcher */
.pp-rates { display: flex; gap: 8px; flex-wrap: wrap; margin: 8px 0 14px; }
.pp-rates .pp-opt { min-height: 0; padding: 12px 22px; font-size: 22px; font-weight: 900; font-stretch: 64%; }
