.bf-companion, .bf-price-overview, .bf-updates { box-sizing: border-box; color: #242632; font-family: system-ui, sans-serif; font-size: 1rem; line-height: 1.6; }
.bf-companion { width: min(1100px, calc(100% - 2rem)); margin: 2rem auto; padding: 1rem 0; border-top: 1px solid #dce0e8; }
.bf-companion a { color: #4e4697; text-decoration: underline; text-underline-offset: .2em; }
.bf-companion summary { cursor: pointer; font-size: .875rem; }
.bf-companion p { margin: .5rem 0; }
.bf-companion label { display: flex; gap: .6rem; align-items: flex-start; font-size: .875rem; }
.bf-companion input { flex: 0 0 auto; width: auto; margin-top: .35rem; }
.bf-companion-state { border-left: 3px solid #426b62; padding-left: 1rem; }
.bf-price-overview { width: min(1100px, calc(100% - 2rem)); margin: 3rem auto; }
.bf-price-overview { scroll-margin-top: 2rem; }
.bf-price-overview h2 { max-width: 26ch; font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1.2; letter-spacing: -.035em; }
.bf-price-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 1.5rem; }
.bf-price-option { display: flex; flex-direction: column; min-width: 0; border: 1px solid #dce0e8; border-radius: 1.2rem; padding: clamp(1.25rem, 3vw, 2rem); background: #fff; }
.bf-price-option.is-featured { border-color: #6b61b4; background: #f7f6fc; }
.bf-price-option h3 { margin: 0; font-size: 1.4rem; }
.bf-price-option p { margin: .5rem 0; }
.bf-price-amount { font-size: 2.25rem; font-weight: 650; letter-spacing: -.05em; margin: .5rem 0; }
.bf-price-features { flex: 1; padding-left: 1.2rem; margin: 1rem 0 1.5rem; }
.bf-price-features li + li { margin-top: .65rem; }
.bf-price-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.bf-price-action { display: inline-flex; justify-content: center; align-items: center; align-self: flex-start; box-sizing: border-box; min-height: 48px; padding: .75rem 1.15rem; border: 1px solid #5145ad; border-radius: .8rem; background: #5145ad; color: #fff; font: inherit; font-weight: 600; line-height: 1.4; text-decoration: none; text-align: center; cursor: pointer; box-shadow: none; }
.bf-price-action:hover { background: #43398f; color: #fff; transform: none; }
.bf-price-action.is-secondary { color: #242632; background: #fff; border-color: #dce0e8; }
.bf-price-action.is-secondary:hover { background: #f1f2f5; }
.bf-price-link { color: #5145ad; text-decoration: underline; text-underline-offset: .2em; }
.bf-price-discovery { margin-top: 2rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid #dce0e8; border-radius: 1.2rem; background: #fff; }
.bf-price-discovery h3 { margin: 0; font-size: 1.4rem; line-height: 1.3; }
.bf-game-examples { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin: 1.5rem 0; }
.bf-game-examples dt { font-weight: 600; }
.bf-game-examples dd { margin: .35rem 0 0; color: #5d6471; }
.bf-price-upgrade { margin-top: 1rem; }
.bf-price-upgrade summary { cursor: pointer; }
.bf-game-entry, .bf-game-capacity { padding: 1rem 1.25rem; border: 1px solid #dce0e8; border-radius: 1rem; background: #f7f8fa; font-size: 1rem; line-height: 1.6; margin: 1rem 0 1.5rem; }
.bf-game-entry p, .bf-game-capacity p { margin: .35rem 0; }
.bf-game-entry a, .bf-game-capacity a { color: #5145ad; text-decoration: underline; text-underline-offset: .2em; }
.bf-game-capacity details { margin-top: .75rem; }
.bf-game-capacity summary { cursor: pointer; font-size: .875rem; }
.bf-game-capacity button { margin-top: .75rem; }
.bf-companion-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; font-size: .875rem; }
.bf-price-overview :focus-visible { outline: 3px solid #6b61b4; outline-offset: 4px; }
.bf-price-meta, .bf-preview-note { color: #5d6471; font-size: .875rem; }
.bf-updates { width: min(760px, calc(100% - 2rem)); margin: 3rem auto; }
.bf-updates h1 { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.15; letter-spacing: -.045em; }
.bf-update-panel { margin: 1.5rem 0; padding: 1.5rem; background: white; border: 1px solid #dce0e8; border-radius: 1.2rem; }
.bf-update-panel label { display: block; margin: .8rem 0; font-size: 1rem; }
.bf-update-panel select { display: block; width: 100%; padding: .8rem; margin: .5rem 0; font: inherit; }
.bf-update-panel input { width: auto; margin-right: .5rem; }
.bf-update-panel button, .bf-companion button { font: inherit; min-height: 44px; padding: .65rem 1rem; border-radius: 2rem; border: 1px solid #dce0e8; background: #fff; color: #383a48; cursor: pointer; }
.bf-update-panel button[type=submit] { background: #504794; color: #fff; }
.bf-update-panel button:disabled { opacity: .6; cursor: not-allowed; }
.bf-final-mail { padding: clamp(1.5rem, 4vw, 2.5rem); background: #f6faf8; border: 1px solid #cbded6; border-radius: 1.2rem; }
.bf-final-mail h2, .bf-final-mail h3 { font-size: 1.8rem; line-height: 1.2; letter-spacing: -.035em; }
.bf-email-manage { display: inline-block; margin: 1rem 0; color: #4e4697; text-decoration: underline; font-size: .875rem; }
.bf-updates :focus-visible, .bf-companion :focus-visible { outline: 3px solid #6b61b4; outline-offset: 3px; }
[data-lifecycle-suppressed="true"] { display: none !important; }
@media (max-width: 760px) { .bf-price-grid, .bf-game-examples { grid-template-columns: 1fr; } .bf-price-action { width: 100%; } }
