/* Websites for Heroes - shared styles for the plan builder, campaign switches and live demo frames.
   Colours come from the section: --tf-bg, --tf-surface, --tf-ink, --tf-muted, --tf-line,
   --tf-accent, --tf-accent-ink, --tf-cta, --tf-cta-ink, --tf-focus */
.tf-skin-light{--tf-bg:#ffffff;--tf-surface:#ffffff;--tf-soft:#F3F7F5;--tf-ink:#10231C;--tf-muted:#4E6359;--tf-line:#DCE7E1;--tf-accent:#0B6E4F;--tf-accent-ink:#ffffff;--tf-cta:#10231C;--tf-cta-ink:#ffffff;--tf-focus:#0B6E4F}
.tf-skin-dark{--tf-bg:#0A0C0F;--tf-surface:#14181E;--tf-soft:#14181E;--tf-ink:#EEF1F4;--tf-muted:#A9B2BC;--tf-line:#2A313A;--tf-accent:#5FD3A2;--tf-accent-ink:#062016;--tf-cta:#F2F4F6;--tf-cta-ink:#0A0C0F;--tf-focus:#FFC400}
.tf-skin-hero-light{--tf-bg:#FAFAF7;--tf-surface:#ffffff;--tf-soft:#ffffff;--tf-ink:#111111;--tf-muted:#44474C;--tf-line:#D8D7CE;--tf-accent:#FFC400;--tf-accent-ink:#111111;--tf-cta:#111111;--tf-cta-ink:#ffffff;--tf-focus:#111111}
.tf-skin-hero-dark{--tf-bg:#0E1116;--tf-surface:#171B21;--tf-soft:#171B21;--tf-ink:#F2F3F5;--tf-muted:#B5BCC4;--tf-line:#343B45;--tf-accent:#FFC400;--tf-accent-ink:#111111;--tf-cta:#F2F3F5;--tf-cta-ink:#111111;--tf-focus:#FFC400}
.tfe-live{position:relative;overflow:hidden;background:var(--tf-line,#e6eaee)}
.tfe-live iframe{position:absolute;left:0;top:0;border:0;transform-origin:0 0;background:#fff;opacity:0;transition:opacity .35s}
.tfe-live.is-ready iframe{opacity:1}
.tfe-live.is-ready iframe.tfe-next{opacity:0}
.tfe-live.is-ready iframe.tfe-next.is-in{opacity:1}
.tfe-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;font:600 14px/1.4 system-ui,sans-serif;color:var(--tf-muted,#5b6880)}

/* plan builder */
.tp{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;color:var(--tf-ink)}
.tp-list{flex:999 1 420px;min-width:0;margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:10px}
.tp-legend{font-size:22px;font-weight:800;margin:0 0 6px;padding:0}
.tp-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;border:2px solid var(--tf-line);background:var(--tf-surface);cursor:pointer;min-height:44px}
.tp-row:has(input:checked){border-color:var(--tf-accent)}
.tp-row input{width:22px;height:22px;flex:0 0 auto;accent-color:var(--tf-accent);cursor:pointer}
.tp-base{cursor:default}
.tp-txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.tp-txt b{font-size:16px}
.tp-txt small{font-size:14px;line-height:1.45;color:var(--tf-muted)}
.tp-price{flex:0 0 auto;font-weight:800;font-size:16px}
.tp-total{flex:1 1 300px;min-width:0;position:sticky;top:20px;display:flex;flex-direction:column;gap:8px;padding:26px;border-radius:24px;background:var(--tf-cta);color:var(--tf-cta-ink)}
.tp-label{font-size:14px;font-weight:700;opacity:.85}
.tp-num{display:flex;align-items:baseline;gap:6px;font-size:64px;line-height:1;font-weight:800;letter-spacing:-.03em}
.tp-num small{font-size:18px;letter-spacing:0;font-weight:700}
.tp-fixed{font-size:15px;font-weight:700}
.tp-count{font-size:13px;opacity:.8}
.tp-bf{display:flex;flex-direction:column;gap:6px;margin-top:6px;padding-top:12px;border-top:1px solid currentColor;font-size:15px;line-height:1.45}
.tp-bf-tag{align-self:flex-start;font-size:12px;font-weight:800;letter-spacing:.08em;padding:6px 10px;border-radius:999px;background:#FFC400;color:#111}
.tp-cta{margin-top:10px;display:flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:999px;background:var(--tf-accent);color:var(--tf-accent-ink) !important;border:2px solid var(--tf-cta-ink);font-weight:800;text-decoration:none}
.tp-row input:focus-visible,.tp-cta:focus-visible{outline:3px solid var(--tf-focus,#FFC400);outline-offset:2px}

/* campaign switches */
.tc-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.tc-row{display:flex;align-items:center;gap:16px;padding:14px 18px;border-radius:18px;border:2px solid var(--tf-line);background:var(--tf-surface);color:var(--tf-ink)}
.tc-row.is-on{border-color:var(--tf-accent)}
.tc-date{flex:0 0 auto;width:62px;height:62px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;background:var(--tf-line);color:var(--tf-ink)}
.tc-row.is-on .tc-date{background:var(--tf-cta);color:var(--tf-cta-ink)}
.tc-date span{font-size:11px;font-weight:800;letter-spacing:.08em}
.tc-date b{font-size:24px}
.tc-txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.tc-txt b{font-size:17px}
.tc-txt span{font-size:15px;color:var(--tf-muted)}
.tc-txt small{font-size:13px;font-weight:700;color:var(--tf-ink)}
.tc-switch{flex:0 0 auto;width:60px;height:34px;border-radius:999px;border:0;padding:4px;background:#9AA5AE;cursor:pointer;display:flex;justify-content:flex-start;transition:background .2s}
.tc-switch span{width:26px;height:26px;border-radius:999px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.tc-switch[aria-checked="true"]{background:var(--tf-accent);justify-content:flex-end}
.tc-switch:focus-visible{outline:3px solid var(--tf-focus,#FFC400);outline-offset:2px}
.tc-pct{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.tc-pct button{min-height:36px;min-width:44px;padding:0 10px;border-radius:999px;border:2px solid var(--tf-line);background:transparent;color:var(--tf-ink);font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.tc-pct button[aria-checked="true"]{background:var(--tf-accent);border-color:var(--tf-accent);color:var(--tf-accent-ink)}
.tc-pct button:focus-visible{outline:3px solid var(--tf-focus,#FFC400);outline-offset:2px}
.tc-list.is-compact .tc-date{width:48px;height:48px}
.tc-list.is-compact .tc-date b{font-size:18px}
@media (max-width:560px){.tc-row{padding:12px}.tc-date{width:48px;height:48px}.tc-date b{font-size:18px}.tp-num{font-size:52px}}
@media (prefers-reduced-motion:reduce){.tfe-live iframe,.tc-switch{transition:none}}
.tp-qrow{cursor:default}
.tp-qlab{display:flex;align-items:center;gap:14px;flex:1 1 auto;min-width:0;cursor:pointer}
.tp-qty[hidden]{display:none}
.tp-qrow.is-on{border-color:var(--tf-accent)}
.tp-qty{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;border:2px solid var(--tf-line);border-radius:999px;padding:3px}
.tp-qb{width:38px;height:38px;border-radius:999px;border:0;background:var(--tf-accent);color:var(--tf-accent-ink);font-family:inherit;font-weight:800;font-size:20px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.tp-qb:disabled{opacity:.35;cursor:default}
.tp-qb:focus-visible{outline:3px solid var(--tf-focus,#FFC400);outline-offset:2px}
.tp-qn{min-width:26px;text-align:center;font-weight:800;font-size:17px}
.tp-must{display:inline-block;margin-left:6px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--tf-accent);color:var(--tf-accent-ink);vertical-align:2px}
@media (max-width:560px){.tp-qrow{flex-wrap:wrap}.tp-qrow .tp-qlab{flex:1 1 100%}.tp-qrow .tp-price{margin-left:auto}}
.tfx .tp-qlab:focus-within{outline:none;box-shadow:none}
.tfx .tp-qrow:has(.tp-qlab input:focus-visible){outline:3px solid #FFC400;outline-offset:2px}

/* follow-up questions under an extra (calendar, payment provider) */
.tp-sub{margin:-4px 0 6px 0;padding:14px 16px;border:2px dashed var(--tf-line);border-radius:14px;background:var(--tf-soft);min-width:0}
.tp-sub[hidden]{display:none}
.tp-sub legend{float:left;width:100%;padding:0;margin:0 0 4px;font-weight:800;font-size:15px}
.tp-sub-note{clear:both;margin:0 0 10px;font-size:13px;line-height:1.45;color:var(--tf-muted)}
.tp-sub-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.tp-sub-opt{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:12px;border:2px solid var(--tf-line);background:var(--tf-surface);cursor:pointer}
.tp-sub-opt:has(input:checked){border-color:var(--tf-accent);box-shadow:0 0 0 2px var(--tf-accent)}
.tp-sub-opt input{margin:2px 0 0;width:18px;height:18px;accent-color:var(--tf-accent)}
.tp-sub-opt span{display:flex;flex-direction:column;gap:2px}
.tp-sub-opt b{font-size:14px}
.tp-sub-opt small{font-size:12px;color:var(--tf-muted);line-height:1.35}
.tp-sub-other{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-weight:700;font-size:14px}
.tp-sub-other[hidden]{display:none}
.tp-sub-in{min-height:44px;padding:0 12px;border-radius:10px;border:2px solid var(--tf-line);background:var(--tf-surface);color:var(--tf-ink);font:inherit;font-size:16px}
.tp-sub-after{margin:10px 0 0;font-size:13px;font-weight:700}
.tp-sub-after[hidden]{display:none}
.tfx .tp-sub-other:focus-within,.tp-sub-other:focus-within{outline:none;box-shadow:none}
.tp-sub-in:focus{outline:none;border-color:var(--tf-accent);box-shadow:0 0 0 3px var(--tf-accent)}

/* plan: select all, extras that need another extra */
.tp-allrow{display:flex;justify-content:flex-end;margin:-4px 0 4px}
.tp-all{min-height:40px;padding:0 16px;border-radius:999px;border:2px solid var(--tf-ink);background:transparent;color:var(--tf-ink);font:inherit;font-weight:800;font-size:14px;cursor:pointer}
.tp-all:hover{background:var(--tf-accent);color:#111;border-color:#111}
.tp-row.tp-needs{margin-left:22px;position:relative}
.tp-row.tp-needs::before{content:"";position:absolute;left:-16px;top:-8px;width:12px;height:30px;border-left:3px solid var(--tf-line);border-bottom:3px solid var(--tf-line);border-bottom-left-radius:8px}
.tp-row.is-locked{opacity:.5;cursor:not-allowed}
.tp-row.is-locked input{cursor:not-allowed}
.tp-needs-note{display:block;margin-top:4px;font-weight:700;color:var(--tf-ink)}
.tp-needs-note[hidden]{display:none}
@media (max-width:640px){.tp-row.tp-needs{margin-left:14px}.tp-allrow{justify-content:stretch}.tp-all{width:100%}}

.tp-more{display:inline-block;margin-left:4px;font-weight:700;color:inherit;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.tp-more:hover{text-decoration-thickness:2px}
.tfx-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
