/* All landing-page tokens and selectors are isolated to this main element. */
main.offer {
  --offer-font-body: 'Avenir Next', Avenir, 'Segoe UI', sans-serif;
  --offer-font-display: Georgia, 'Times New Roman', serif;
  --offer-text-xs: .75rem;
  --offer-text-sm: .875rem;
  --offer-text-base: 1rem;
  --offer-text-lg: clamp(1.05rem, 1.5vw, 1.2rem);
  --offer-text-h1: clamp(2.7rem, 5.1vw, 4.7rem);
  --offer-text-h2: clamp(2rem, 3.6vw, 3.2rem);
  --offer-text-h3: 1.5rem;
  --offer-text-panel: clamp(1.7rem, 3vw, 2.4rem);
  --offer-paper: #faf6ef;
  --offer-white: #fffcf7;
  --offer-ink: #382f3c;
  --offer-muted: #665c64;
  --offer-green: #514052;
  --offer-green-hover: #382c3b;
  --offer-sage: #eee9de;
  --offer-peach: #efcfaa;
  --offer-accent: #9b4b2e;
  --offer-line: #d8cfc4;
  --offer-line-strong: #afa295;
  --offer-input-border: #aa9c92;
  --offer-backdrop: #2e233499;
  --offer-note-shadow: 0 8px 15px #382f3c10;
  --offer-text-monogram: clamp(6rem, 14vw, 11rem);
  --offer-focus: #9b4b2e;
  --offer-radius: 1.25rem;
  --offer-control-radius: .5rem;
  --offer-font-mono: ui-monospace, SFMono-Regular, Consolas, monospace;
  --offer-error: #9a302b;
  --offer-success: #346143;
  --offer-shadow: 0 24px 70px #382f3c14;
  --offer-space-section: clamp(3.5rem, 7vw, 6rem);
  --offer-width: 1160px;
  --offer-leading: 1.65;
  color-scheme: light;
  font: var(--offer-text-base)/var(--offer-leading) var(--offer-font-body);
  color: var(--offer-ink);
  background: var(--offer-paper);
  /* Paint the browser's default body gutter without styling body globally. */
  box-shadow: 0 0 0 8px var(--offer-paper);
  overflow-wrap: break-word;
}
main.offer *, main.offer *::before, main.offer *::after { box-sizing: border-box; }
main.offer :where(h1,h2,h3,p,figure,ul,ol) { margin: 0; }
main.offer :where(button,input) { font: inherit; }
main.offer :where(a,button,input,summary):focus-visible { outline: 3px solid var(--offer-focus); outline-offset: 5px; }
main.offer a { color: inherit; text-underline-offset: .25em; }
main.offer button, main.offer summary { cursor: pointer; }
main.offer button:disabled { cursor: wait; opacity: .65; }
main.offer .offer-wrap { width: min(var(--offer-width), calc(100% - 48px)); margin-inline: auto; }
main.offer .masthead { display: flex; justify-content: space-between; align-items: center; padding-block: 26px; border-bottom: 1px solid var(--offer-line); }
main.offer .masthead > span { font-size: var(--offer-text-sm); color: var(--offer-muted); }
main.offer .wordmark { font-size: var(--offer-text-lg); font-weight: 800; letter-spacing: -.07em; text-decoration: none; }
main.offer .wordmark span { font-weight: 400; }
main.offer .wordmark i { font-style: normal; color: var(--offer-accent); padding-left: 8px; }
main.offer .hero { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: clamp(2rem, 5vw, 5rem); padding-block: var(--offer-space-section); }
main.offer .eyebrow { font-size: var(--offer-text-xs); font-weight: 700; letter-spacing: .13em; margin-bottom: 20px; }
main.offer .dot { display: inline-block; width: 7px; height: 7px; background: var(--offer-accent); border-radius: 50%; margin-right: 5px; }
main.offer h1, main.offer h2 { font-family: var(--offer-font-display); font-weight: 400; letter-spacing: -.045em; line-height: 1.08; text-wrap: balance; }
main.offer h1 { font-size: var(--offer-text-h1); margin-bottom: 25px; }
main.offer h1 em { font-weight: 400; color: var(--offer-accent); }
main.offer h2 { font-size: var(--offer-text-h2); margin-bottom: 24px; }
main.offer h3 { font-size: var(--offer-text-h3); line-height: 1.25; letter-spacing: -.03em; margin-bottom: 12px; }
main.offer p { max-width: 65ch; }
main.offer .lead { font-size: var(--offer-text-lg); color: var(--offer-muted); }
main.offer .hero-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; margin-block: 30px 22px; }
main.offer .button { display: inline-flex; justify-content: center; align-items: center; gap: 18px; min-height: 52px; border: 1px solid transparent; border-radius: var(--offer-control-radius); padding: 14px 22px; background: var(--offer-green); color: var(--offer-white); font-size: var(--offer-text-base); font-weight: 650; line-height: 1.35; text-align: center; text-decoration: none; transition: background .15s; }
main.offer .button:hover { background: var(--offer-green-hover); }
main.offer .text-link { font-size: var(--offer-text-sm); font-weight: 650; }
main.offer .micro { color: var(--offer-muted); font-size: var(--offer-text-xs); }
main.offer .video-card { transform: rotate(1deg); }
main.offer .video-placeholder { aspect-ratio: 4 / 3; position: relative; border: 1px solid var(--offer-line); border-radius: var(--offer-radius); background: var(--offer-sage); overflow: hidden; padding: 28px; }
main.offer .video-kicker { font-family: var(--offer-font-display); font-size: var(--offer-text-h3); }
main.offer .video-art { position: absolute; inset: 28% 10% 28%; }
main.offer .note { display: inline-block; padding: 18px 23px; box-shadow: var(--offer-note-shadow); font-family: var(--offer-font-display); font-size: var(--offer-text-lg); }
main.offer .note-one { background: var(--offer-white); transform: rotate(-9deg); }
main.offer .note-two { position: absolute; right: 0; bottom: 0; background: var(--offer-peach); transform: rotate(5deg); }
main.offer .sketch-arrow { position: absolute; left: 49%; top: -4%; font-size: var(--offer-text-h2); color: var(--offer-accent); }
main.offer .play-mark { position: absolute; bottom: 25px; width: 42px; height: 42px; display: grid; place-items: center; background: var(--offer-green); color: var(--offer-white); border-radius: 50%; font-size: var(--offer-text-sm); }
main.offer .video-label { position: absolute; bottom: 24px; left: 83px; font-weight: 650; font-size: var(--offer-text-sm); }
main.offer .video-label small { display: block; font-weight: 400; color: var(--offer-muted); font-size: var(--offer-text-xs); }
main.offer figcaption { font-size: var(--offer-text-xs); margin-top: 14px; color: var(--offer-muted); text-align: center; }
main.offer .promise-strip { border-block: 1px solid var(--offer-line); }
main.offer .promise-strip > div { display: flex; justify-content: space-between; gap: 20px; padding-block: 21px; font-size: var(--offer-text-sm); }
main.offer .promise-strip span::before { content: '↗'; color: var(--offer-accent); margin-right: 12px; }
main.offer .section { padding-block: var(--offer-space-section); }
main.offer .split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 7vw, 7rem); }
main.offer .split p + p { margin-top: 18px; }
main.offer .split > div > p:not(.eyebrow) { color: var(--offer-muted); }
main.offer .friction-list p { display: flex; gap: 20px; padding-block: 20px; border-bottom: 1px solid var(--offer-line); font-size: var(--offer-text-lg); }
main.offer .friction-list p:first-child { padding-top: 0; }
main.offer .friction-list p span { color: var(--offer-accent); font-size: var(--offer-text-xs); padding-top: 5px; }
main.offer .friction-list small { display: block; margin-top: 18px; color: var(--offer-muted); font-size: var(--offer-text-xs); }
main.offer .tinted { background: var(--offer-sage); }
main.offer .outcome-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 45px; }
main.offer .outcome-grid article { border-top: 1px solid var(--offer-line-strong); padding-top: 24px; }
main.offer .card-number { display: block; font-size: var(--offer-text-xs); letter-spacing: .1em; margin-bottom: 30px; color: var(--offer-muted); }
main.offer .outcome-grid p { color: var(--offer-muted); }
main.offer .steps { list-style: none; padding: 0; counter-reset: step; }
main.offer .steps li { position: relative; padding: 0 0 30px 52px; counter-increment: step; }
main.offer .steps li::before { content: counter(step); position: absolute; left: 0; top: 0; border: 1px solid var(--offer-line); border-radius: 50%; width: 32px; height: 32px; display: grid; place-items: center; font-size: var(--offer-text-sm); }
main.offer .steps strong { display: block; font-size: var(--offer-text-lg); margin-bottom: 8px; }
main.offer .steps p { color: var(--offer-muted); }
main.offer #offer-details { padding-top: 0; }
main.offer .package { display: grid; grid-template-columns: 1.3fr 1fr; gap: 50px; background: var(--offer-white); padding: clamp(25px, 5vw, 64px); border: 1px solid var(--offer-line); border-radius: var(--offer-radius); }
main.offer .included { list-style: none; padding: 0; margin-top: 25px; }
main.offer .included li { padding: 8px 0 8px 28px; position: relative; }
main.offer .included li::before { content: '✓'; position: absolute; left: 0; color: var(--offer-accent); }
main.offer .price-card { background: var(--offer-sage); padding: 32px; border-radius: 8px; }
main.offer .price { font-family: var(--offer-font-display); font-size: var(--offer-text-h1); line-height: 1.2; }
main.offer .price span { display: block; font-family: var(--offer-font-body); font-size: var(--offer-text-sm); color: var(--offer-muted); margin-top: 8px; }
main.offer hr { border: 0; border-top: 1px solid var(--offer-line); margin-block: 24px; }
main.offer .price-card p:not(.price) { font-size: var(--offer-text-sm); margin-top: 12px; }
main.offer .price-card .text-link { display: inline-block; margin-top: 24px; }
main.offer .assurance { border-left: 2px solid var(--offer-accent); padding-left: 14px; }
main.offer .guide { padding-top: 0; align-items: center; }
main.offer .guide-mark { background: var(--offer-peach); border-radius: var(--offer-radius); padding: 34px; max-width: 390px; transform: rotate(-1deg); }
main.offer .guide-mark > span { font-family: var(--offer-font-display); font-size: var(--offer-text-h2); }
main.offer .guide-mark small { display: block; font-size: var(--offer-text-xs); letter-spacing: .06em; }
main.offer .guide-monogram { font-family: var(--offer-font-display); font-size: var(--offer-text-monogram); line-height: 1; padding-top: 25px; }
main.offer .guide-monogram span { font-family: var(--offer-font-body); color: var(--offer-accent); }
main.offer .fit-note { border-top: 1px solid var(--offer-line); padding-top: 20px; font-size: var(--offer-text-sm); }
main.offer .faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: 50px; border-top: 1px solid var(--offer-line); }
main.offer details { border-bottom: 1px solid var(--offer-line); padding-block: 18px; }
main.offer summary { font-weight: 650; padding-right: 8px; min-height: 30px; }
main.offer details p { margin-top: 16px; color: var(--offer-muted); }
main.offer .closing { padding-block: var(--offer-space-section); background: var(--offer-green); color: var(--offer-white); text-align: center; }
main.offer .closing p { margin-inline: auto; }
main.offer .closing .button { margin-block: 28px 18px; background: var(--offer-paper); color: var(--offer-green); }
main.offer .closing .button:hover { background: var(--offer-peach); }
main.offer .closing .micro { color: var(--offer-sage); }
main.offer .offer-recovery { padding-block: 40px; }
main.offer .offer-recovery h2 { font-family: var(--offer-font-body); font-size: var(--offer-text-base); font-weight: 650; letter-spacing: 0; margin-bottom: 10px; }
main.offer .offer-recovery p { font-size: var(--offer-text-sm); color: var(--offer-muted); }
main.offer .offer-form { display: grid; grid-template-columns: 1.5fr 1fr auto; gap: 16px; align-items: end; margin-top: 20px; max-width: 850px; }
main.offer label { font-size: var(--offer-text-xs); color: var(--offer-muted); }
main.offer input { display: block; width: 100%; min-width: 0; margin-top: 6px; border: 1px solid var(--offer-input-border); background: var(--offer-white); color: var(--offer-ink); border-radius: var(--offer-control-radius); padding: 10px 12px; min-height: 44px; }
main.offer .secondary, main.offer .quiet-button { border: 1px solid var(--offer-line); padding: 10px 15px; background: transparent; color: var(--offer-ink); border-radius: var(--offer-control-radius); min-height: 44px; font-size: var(--offer-text-sm); }
main.offer .secondary:hover, main.offer .quiet-button:hover { background: var(--offer-sage); }
main.offer .offer-form .offer-status { grid-column: 1 / -1; grid-row: 2; }
main.offer .offer-status:empty { display: none; }
main.offer dialog { color: var(--offer-ink); background: var(--offer-white); border: 1px solid var(--offer-line); border-radius: var(--offer-radius); padding: 0; width: min(560px, calc(100% - 32px)); max-height: calc(100dvh - 48px); overflow-y: auto; box-shadow: var(--offer-shadow); }
main.offer dialog::backdrop { background: var(--offer-backdrop); backdrop-filter: blur(5px); }
main.offer dialog .panel { padding: clamp(24px, 5vw, 42px); }
main.offer dialog h2 { font-size: var(--offer-text-h2); }
main.offer dialog p { color: var(--offer-muted); font-size: var(--offer-text-sm); margin-bottom: 18px; }
main.offer dialog .eyebrow { color: var(--offer-accent); font-size: var(--offer-text-xs); }
main.offer .checkout-total { display: flex; gap: 16px; justify-content: space-between; align-items: center; padding: 22px 0; margin-block: 22px; border-block: 1px solid var(--offer-line); }
main.offer .checkout-total span { font-size: var(--offer-text-sm); font-weight: 650; }
main.offer .checkout-total small { display: block; font-size: var(--offer-text-xs); font-weight: 400; color: var(--offer-muted); margin-top: 4px; }
main.offer .checkout-total strong { font-family: var(--offer-font-display); font-size: var(--offer-text-h2); font-weight: 400; }
main.offer .terms-note a { color: var(--offer-green); text-decoration: underline; }
main.offer .modal-actions { display: grid; gap: 12px; margin-top: 24px; }
main.offer #dialog-offer-terms h2 { font-size: var(--offer-text-h3); }
@media (max-width: 760px) {
  main.offer .hero, main.offer .split, main.offer .package, main.offer .faq { grid-template-columns: 1fr; gap: 34px; }
  main.offer .hero { padding-top: 40px; }
  main.offer .hero-copy { max-width: 560px; }
  main.offer .video-card { width: min(100%, 480px); margin-inline: auto; }
  main.offer .outcome-grid { grid-template-columns: 1fr; gap: 28px; }
  main.offer .card-number { margin-bottom: 18px; }
  main.offer .promise-strip > div { flex-wrap: wrap; gap: 10px 20px; }
  main.offer .guide-mark { width: 100%; }
  main.offer .offer-form { grid-template-columns: 1fr 1fr; }
  main.offer .offer-form button { grid-column: 1 / -1; justify-self: start; }
  main.offer .offer-form .offer-status { grid-row: auto; }
}
@media (max-width: 420px) {
  main.offer .offer-wrap { width: calc(100% - 32px); }
  main.offer .masthead > span { font-size: var(--offer-text-xs); }
  main.offer .button { padding-inline: 14px; gap: 8px; }
  main.offer .offer-form { grid-template-columns: 1fr; }
  main.offer .video-placeholder { padding: 20px; }
  main.offer .note { padding: 12px; }
  main.offer .price-card { padding: 24px; }
}
@media (prefers-reduced-motion: reduce) { main.offer .button { transition: none; } }

/* The same visual language continues after checkout. */
main.offer.offer-journey { min-height: calc(100dvh - 16px); padding-bottom: 12px; }
main.offer [hidden] { display: none !important; }
main.offer.offer-journey > .container,
main.offer.offer-journey > .journey-notice,
main.offer.offer-journey > .journey-footer { width: min(780px, calc(100% - 48px)); margin-inline: auto; }
main.offer.offer-journey > .container { margin-block: 32px; }
main.offer.offer-journey > .container:first-of-type { padding-block: 28px 8px; }
main.offer.offer-journey h1 { font-size: var(--offer-text-h2); max-width: 18ch; }
main.offer.offer-journey > .container > p:not(.eyebrow) { color: var(--offer-muted); }
main.offer.offer-journey > .container:last-of-type { font-size: var(--offer-text-sm); }
main.offer.offer-journey > .container:last-of-type h2 { font-family: var(--offer-font-body); font-size: var(--offer-text-lg); font-weight: 650; letter-spacing: -.02em; margin-bottom: 12px; }
main.offer.offer-journey > .container:last-of-type p + p { margin-top: 12px; }
main.offer .journey-notice { max-width: none; padding: 14px 18px; border-left: 3px solid var(--offer-accent); border-radius: 0 var(--offer-control-radius) var(--offer-control-radius) 0; background: var(--offer-sage); font-size: var(--offer-text-sm); margin-top: 28px; }
main.offer.offer-journey .container > .panel { border: 1px solid var(--offer-line); border-radius: var(--offer-radius); background: var(--offer-white); padding: clamp(22px, 5vw, 42px); box-shadow: var(--offer-shadow); }
main.offer.offer-journey .panel h2 { font-size: var(--offer-text-panel); }
main.offer.offer-journey .panel > p { margin-bottom: 20px; color: var(--offer-muted); }
main.offer.offer-journey .offer-form { display: flex; flex-direction: column; align-items: stretch; max-width: none; gap: 24px; }
main.offer.offer-journey label { font-size: var(--offer-text-sm); color: var(--offer-ink); font-weight: 600; }
main.offer.offer-journey :where(input,textarea,select) { font: inherit; font-size: var(--offer-text-base); font-weight: 400; color: var(--offer-ink); background: var(--offer-white); border: 1px solid var(--offer-input-border); border-radius: var(--offer-control-radius); width: 100%; min-width: 0; padding: 12px; margin-top: 8px; }
main.offer.offer-journey :where(textarea,select) { display: block; }
main.offer.offer-journey :where(textarea,select):focus-visible { outline: 3px solid var(--offer-focus); outline-offset: 3px; }
main.offer.offer-journey textarea { min-height: 116px; resize: vertical; line-height: var(--offer-leading); }
main.offer.offer-journey select { min-height: 48px; text-overflow: ellipsis; }
main.offer.offer-journey input[type=checkbox] { display: inline-block; width: 20px; height: 20px; min-height: 0; margin: 0 10px 0 0; vertical-align: middle; padding: 0; accent-color: var(--offer-green); }
main.offer.offer-journey :where(input,textarea,select):disabled { opacity: .65; cursor: not-allowed; background: var(--offer-sage); }
main.offer.offer-journey .offer-form .button { width: 100%; }
main.offer.offer-journey dialog .quiet-button { width: 100%; margin-top: 14px; }
main.offer.offer-journey .offer-status:not(:empty),
main.offer [data-payment-pending-status] { padding: 12px 16px; background: var(--offer-sage); border-radius: var(--offer-control-radius); font-size: var(--offer-text-sm); }
main.offer .preparation-steps { list-style: none; padding: 0; display: grid; gap: 16px; counter-reset: preparation; }
main.offer .preparation-steps li { counter-increment: preparation; position: relative; padding: 28px 28px 28px 76px; border: 1px solid var(--offer-line); border-radius: var(--offer-radius); background: var(--offer-white); }
main.offer .preparation-steps li::before { content: '0' counter(preparation); position: absolute; left: 24px; top: 30px; color: var(--offer-accent); font-family: var(--offer-font-mono); font-size: var(--offer-text-sm); }
main.offer .preparation-steps li p { margin-bottom: 16px; }
main.offer .preparation-steps li:first-child { background: var(--offer-sage); }
main.offer .preparation-steps li:first-child p { margin-bottom: 0; }
main.offer [data-purchase-id] { display: inline-block; margin: 6px 0 0 6px; padding: 5px 12px; font: 600 var(--offer-text-lg) var(--offer-font-mono); letter-spacing: .12em; border: 1px dashed var(--offer-line-strong); border-radius: var(--offer-control-radius); background: var(--offer-white); }
main.offer .journey-footer { border-top: 1px solid var(--offer-line); padding-block: 24px; margin-top: 48px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-size: var(--offer-text-xs); color: var(--offer-muted); }
main.offer [data-payment-pending-status] + div { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
main.offer [aria-disabled=true] { opacity: .6; cursor: not-allowed; }
@media (max-width: 420px) {
  main.offer.offer-journey > .container,
  main.offer.offer-journey > .journey-notice,
  main.offer.offer-journey > .journey-footer { width: calc(100% - 32px); }
  main.offer .preparation-steps li { padding: 22px 18px 22px 54px; }
  main.offer .preparation-steps li::before { left: 16px; top: 24px; }
}

main.offer .checkout-card { max-width: 640px; margin: 40px auto; padding: clamp(24px, 5vw, 48px); background: var(--offer-paper); border: 1px solid var(--offer-line); border-radius: 20px; }
main.offer .checkout-card h1 { font-size: var(--offer-text-panel); }
main.offer .checkout-card fieldset { display: grid; gap: 12px; border: 0; padding: 24px 0 0; margin: 0; }
main.offer .checkout-card legend { font-weight: 650; margin-bottom: 12px; }

/* Recovery is a small fallback, never a full-width primary action. */
main.offer .offer-recovery { width: min(640px, calc(100% - 48px)); margin-inline: auto; }
main.offer .offer-recovery .offer-form { display: grid; grid-template-columns: minmax(0, 1fr); max-width: 480px; gap: 12px; }
main.offer .offer-recovery .offer-form button { justify-self: start; width: auto; }
main.offer .offer-recovery[hidden] { display: none; }
