.page-header { padding-top: 7rem; background: #1a1714; }
  .page-header-inner { max-width: var(--max-wide); margin: 0 auto; padding: 3rem var(--col-pad) 3.5rem; }
  .page-label { font-family: var(--sans); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(245,242,238,0.55); margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.75rem; }
  .page-label::before { content: ""; width: 24px; height: 1px; background: #2b4a6f; flex-shrink: 0; }
  .page-title { font-family: var(--serif); font-size: clamp(2.5rem, 5.5vw, 4.5rem); font-weight: 400; line-height: 1.05; letter-spacing: -0.03em; color: #f5f2ee; margin-bottom: 1.5rem; max-width: 20ch; }
  .page-standfirst { font-family: var(--sans); font-size: 1.05rem; font-weight: 300; line-height: 1.8; color: rgba(245,242,238,0.72); max-width: 640px; }
  .plan-section { background: #f5f2ee; padding: 5rem var(--col-pad); }
  .plan-inner { max-width: 760px; margin: 0 auto; }
  .plan-form { margin-bottom: 1rem; }
  .plan-label { display: block; font-family: var(--sans); font-size: 0.8rem; font-weight: 600; color: #1a1714; margin-bottom: 0.75rem; }
  .plan-textarea { width: 100%; min-height: 140px; padding: 1rem 1.1rem; font-family: var(--sans); font-size: 1rem; line-height: 1.6; color: #1a1714; background: #fff; border: 1.5px solid #d4cfc9; resize: vertical; }
  .plan-textarea:focus { border-color: #2b4a6f; }
  .plan-meta { display: flex; align-items: center; justify-content: space-between; margin-top: 0.85rem; gap: 1rem; }
  .plan-hint { font-size: 0.8rem; color: #5c5652; }
  .plan-note { font-size: 0.85rem; color: #5c5652; line-height: 1.7; margin: 1.5rem 0 2.5rem; padding: 1.25rem 1.5rem; background: #ede9e3; border-left: 2px solid #2b4a6f; }
  .plan-status { padding: 2.5rem 0; text-align: center; color: #5c5652; font-size: 0.95rem; display: none; }
  .plan-status.is-visible { display: block; }
  .plan-result { display: none; margin-top: 1rem; }
  .plan-result.is-visible { display: block; }
  .plan-summary { font-family: var(--serif); font-size: 1.4rem; font-weight: 400; line-height: 1.5; color: #1a1714; margin-bottom: 2.5rem; }
  .plan-items { list-style: none; }
  .plan-item { padding: 1.75rem 0; border-top: 1px solid #d4cfc9; display: flex; flex-direction: column; gap: 0.5rem; }
  .plan-items li:last-child { border-bottom: 1px solid #d4cfc9; }
  .plan-item-book { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; display: flex; align-items: center; gap: 0.5rem; color: #5c5652; }
  .plan-item-book::before { content: ""; width: 9px; height: 9px; flex-shrink: 0; background: var(--dot, #5c5652); }
  .plan-item[data-book="I"] { --dot: var(--book-1); }
  .plan-item[data-book="II"] { --dot: var(--book-2); }
  .plan-item[data-book="III"] { --dot: var(--book-3); }
  .plan-item-lead { font-family: var(--serif); font-size: 1.15rem; font-weight: 400; color: #1a1714; line-height: 1.4; }
  .plan-item-why { font-size: 0.95rem; color: #3d3935; line-height: 1.7; }
  .plan-item-link { align-self: flex-start; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #2b4a6f; text-decoration: none; margin-top: 0.25rem; }
  .plan-item-link::after { content: " →"; }
  .plan-item-link:hover { color: #1a1714; text-decoration: underline; }
  .plan-closing { font-size: 1rem; color: #3d3935; line-height: 1.8; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid #d4cfc9; }
  .plan-again { margin-top: 2.5rem; display: flex; flex-wrap: wrap; gap: 0.85rem; align-items: center; }
  .plan-copy-feedback { font-size: 0.8rem; color: #2b4a6f; font-weight: 600; opacity: 0; transition: opacity 0.2s; }
  .plan-copy-feedback.is-visible { opacity: 1; }
  .plan-shared-badge { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #2b4a6f; margin-bottom: 1.5rem; }
  .plan-shared-badge::before { content: ""; width: 8px; height: 8px; background: #2b4a6f; flex-shrink: 0; }
  .plan-declined, .plan-error { background: #ede9e3; border: 1px solid #d4cfc9; padding: 2.25rem; display: none; }
  .plan-declined.is-visible, .plan-error.is-visible { display: block; }
  .plan-declined p, .plan-error p { font-size: 0.98rem; color: #3d3935; line-height: 1.8; }
@media (max-width: 580px) {
  .plan-meta { flex-direction: column; align-items: flex-start; }
}
/* Former inline style attributes. Moved out so the CSP can drop
   'unsafe-inline' from style-src — a style="" attribute is blocked
   by that directive just as an inline <style> block is. */
  .x-personalised-plan-1.x-personalised-plan-1.x-personalised-plan-1 { position:absolute;left:-9999px; }
  .x-personalised-plan-2.x-personalised-plan-2.x-personalised-plan-2 { display:none; }
