/* Matches the existing UX library. Every rule is owned by this component. */
.bt-bdsm, .bt-bdsm * { box-sizing: border-box; }
.bt-bdsm { max-width: 1120px; margin: auto; scroll-margin-top: 32px; }
.bt-bdsm [hidden] { display: none !important; }
.bt-bdsm-heading { max-width: 760px; margin-bottom: 32px; }
.bt-bdsm-heading .btjek-h2 { font-size: clamp(34px,4.4vw,60px); letter-spacing: -2px; }
.bt-bdsm-heading .btjek-h2 em { color: var(--btjek-wine); font-family: Georgia,serif; font-weight: 400; }
.btjek-background-wine .bt-bdsm-heading .btjek-h2 em { color: #ffd4e0; }
.btjek-background-wine .bt-bdsm-heading .btjek-p { color: #f6e4ea; }
.bt-bdsm-app { color: var(--btjek-ink); background: #fff; border: 1px solid var(--btjek-line); border-radius: 8px; box-shadow: 0 12px 40px #19171906; overflow: hidden; }
.bt-bdsm-intro, .bt-bdsm-question, .bt-bdsm-result { padding: clamp(22px,4vw,48px); }
.bt-bdsm .btjek-p { line-height: 1.75; }
.bt-bdsm .btjek-eyebrow { font-size: 11px; letter-spacing: 1.8px; }
.bt-bdsm-pill { display: inline-flex; border-radius: 4px; background: #f9e8ee; padding: 10px 15px; color: #6d0622; font-size: 13px; line-height: 1.6; margin-bottom: 22px; }
.bt-bdsm fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
.bt-bdsm label { font-weight: 400; margin: 0; color: inherit; }
.bt-bdsm-modes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin: 26px 0 !important; }
.bt-bdsm-mode { cursor: pointer; position: relative; display: block; }
.bt-bdsm-mode-body { display: flex; flex-direction: column; height: 100%; padding: 27px; border: 1px solid var(--btjek-line); border-radius: 6px; background: #f7f4f5; }
.bt-bdsm-mode input, .bt-bdsm-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.bt-bdsm-mode input:checked + .bt-bdsm-mode-body { border-color: var(--btjek-wine); box-shadow: inset 0 0 0 1px var(--btjek-wine); background: #fcf2f5; }
.bt-bdsm-mode-title { font-size: 26px; letter-spacing: -.8px; margin-bottom: 8px; }
.bt-bdsm-mode-meta { color: var(--btjek-wine); font-size: 13px; font-weight: 700; margin-bottom: 13px; }
.bt-bdsm-mode-desc { font-size: 14px; color: var(--btjek-muted); line-height: 1.65; }
.bt-bdsm-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 26px; }
.bt-bdsm .bt-bdsm-button { font: inherit; font-size: 14px; font-weight: 700; line-height: 1.4; text-transform: none; letter-spacing: 0; border-radius: 4px; border: 1px solid transparent; padding: 14px 23px; min-height: 48px; margin: 0; cursor: pointer; white-space: normal; box-shadow: none; }
.bt-bdsm .bt-bdsm-primary { color: #fff; background: var(--btjek-wine); }
.bt-bdsm .bt-bdsm-primary:hover { background: #6e0220; }
.bt-bdsm .bt-bdsm-quiet { color: var(--btjek-wine); background: #fff; border-color: #ded2d7; }
.bt-bdsm .bt-bdsm-quiet:hover { background: #fcf2f5; border-color: var(--btjek-wine); }
.bt-bdsm .bt-bdsm-button:disabled { opacity: .45; cursor: default; }
.bt-bdsm button:focus-visible, .bt-bdsm summary:focus-visible, .bt-bdsm a:focus-visible { outline: 3px solid var(--btjek-pink); outline-offset: 4px; }
.bt-bdsm-mode input:focus-visible + span, .bt-bdsm-choice input:focus-visible + span { outline: 3px solid var(--btjek-pink); outline-offset: 4px; }
.bt-bdsm-storage { border-top: 1px solid var(--btjek-line); padding: 20px clamp(22px,4vw,48px); background: #faf8f9; }
.bt-bdsm-check { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-size: 14px; line-height: 1.5; }
.bt-bdsm-check input { appearance: auto; accent-color: var(--btjek-wine); width: 18px; height: 18px; flex-shrink: 0; margin: 2px 0 0; }
.bt-bdsm-small { display: block; color: var(--btjek-muted); font-size: 12px; line-height: 1.6; }
.bt-bdsm-storage .bt-bdsm-small { margin: 9px 0 0 28px; max-width: 740px; }
.bt-bdsm-question-meta { display: flex; justify-content: space-between; gap: 16px; color: var(--btjek-muted); font-size: 12px; }
.bt-bdsm-progress { display: block; width: 100%; height: 4px; appearance: none; border: 0; margin: 14px 0 32px; border-radius: 4px; overflow: hidden; background: var(--btjek-line); color: var(--btjek-pink); }
.bt-bdsm-progress::-webkit-progress-bar { background: var(--btjek-line); }
.bt-bdsm-progress::-webkit-progress-value { background: var(--btjek-pink); }
.bt-bdsm-progress::-moz-progress-bar { background: var(--btjek-pink); }
.bt-bdsm-statement { font-size: clamp(23px,2.7vw,33px); line-height: 1.35; letter-spacing: -.7px; max-width: 840px; min-height: 90px; margin-bottom: 15px; }
.bt-bdsm-scale { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 8px; margin: 25px 0 12px; }
.bt-bdsm-choice { position: relative; cursor: pointer; display: block; }
.bt-bdsm-choice-body { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 112px; padding: 14px 7px; height: 100%; text-align: center; border: 1px solid var(--btjek-line); border-radius: 5px; background: #faf8f9; font-size: 12px; line-height: 1.45; }
.bt-bdsm-choice-number { font-size: 23px; font-weight: 700; color: var(--btjek-wine); }
.bt-bdsm-choice input:checked + span { background: var(--btjek-wine); color: #fff; border-color: var(--btjek-wine); }
.bt-bdsm-choice input:checked + span .bt-bdsm-choice-number { color: #fff; }
.bt-bdsm-choice:hover .bt-bdsm-choice-body { border-color: var(--btjek-wine); }
.bt-bdsm-uncertain { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.bt-bdsm-choice-special .bt-bdsm-choice-body { min-height: 48px; background: #fff; }
.bt-bdsm-help { margin-top: 26px; font-size: 13px; color: var(--btjek-muted); }
.bt-bdsm-help summary, .bt-bdsm-communication summary { cursor: pointer; font-weight: 700; padding: 12px 0; color: var(--btjek-wine); }
.bt-bdsm-help .btjek-p { margin: 10px 0; font-size: 13px; max-width: 800px; }
.bt-bdsm-status { color: inherit; font-size: 13px; margin: 12px 0 0; }
.bt-bdsm-status:empty { display: none; }
.bt-bdsm-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.bt-bdsm-result-title { font-size: clamp(27px,3vw,39px); line-height: 1.2; letter-spacing: -1px; }
.bt-bdsm-callout { padding: 15px 18px; border-left: 3px solid var(--btjek-pink); background: #fcf2f5; color: #6d0622; font-size: 13px; margin: 22px 0; }
.bt-bdsm-result-section { margin: 34px 0 0; }
.bt-bdsm-role-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.bt-bdsm-role-card { padding: 25px; border: 1px solid var(--btjek-line); border-radius: 6px; background: #f7f4f5; }
.bt-bdsm-role-card:first-child { background: var(--btjek-wine); color: #fff; border-color: var(--btjek-wine); }
.bt-bdsm-role-card:first-child .btjek-p, .bt-bdsm-role-card:first-child .bt-bdsm-small { color: #f3dfe6; }
.bt-bdsm-role-card .btjek-p { font-size: 14px; margin: 12px 0 16px; }
.bt-bdsm-role-rank { display: block; color: var(--btjek-pink); font-size: 12px; letter-spacing: 2px; margin-bottom: 12px; }
.bt-bdsm-role-card:first-child .bt-bdsm-role-rank { color: #ffd4e0; }
.bt-bdsm-role-line { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.bt-bdsm-role-line .btjek-h3 { margin: 0; }
.bt-bdsm-role-score { white-space: nowrap; font-size: 22px; }
.bt-bdsm-result-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; }
.bt-bdsm-rating { margin: 24px 0; }
.bt-bdsm-rating-line { display: flex; gap: 14px; justify-content: space-between; font-size: 14px; }
.bt-bdsm-rating-value { text-align: right; color: var(--btjek-wine); }
.bt-bdsm-meter { height: 5px; background: var(--btjek-line); border-radius: 4px; overflow: hidden; margin: 9px 0; }
.bt-bdsm-meter span { display: block; height: 100%; background: var(--btjek-pink); }
.bt-bdsm-preference { display: grid; gap: 4px; padding: 12px 0; border-bottom: 1px solid var(--btjek-line); font-size: 13px; }
.bt-bdsm-preference > span:not(.bt-bdsm-small) { color: var(--btjek-muted); }
.bt-bdsm-coverage { padding: 26px; border: 1px solid var(--btjek-line); border-radius: 6px; background: #f7f4f5; }
.bt-bdsm-coverage .btjek-p { font-size: 14px; }
.bt-bdsm-communication { margin-top: 25px; }
.bt-bdsm-communication .btjek-p { font-size: 14px; border-bottom: 1px solid var(--btjek-line); padding-bottom: 12px; }
.bt-bdsm-communication-answer { display: block; font-size: 12px; color: var(--btjek-wine); margin-top: 5px; }
.bt-bdsm-links, .bt-bdsm-card-controls { margin-top: 32px; border-top: 1px solid var(--btjek-line); padding-top: 28px; }
.bt-bdsm-card-controls .btjek-p { font-size: 14px; }
.bt-bdsm-card-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 20px; }
.bt-bdsm-card-preview img { display: block; width: 100%; max-width: 540px; height: auto; border-radius: 5px; margin-top: 25px; border: 1px solid var(--btjek-line); }
@media (max-width: 760px) {
 .bt-bdsm-heading .btjek-h2 { letter-spacing: -1.2px; }
 .bt-bdsm-scale { grid-template-columns: 1fr; gap: 7px; }
 .bt-bdsm-choice-body { flex-direction: row; justify-content: flex-start; min-height: 48px; text-align: left; padding: 10px 16px; gap: 15px; font-size: 14px; }
 .bt-bdsm-choice-number { font-size: 18px; min-width: 20px; }
 .bt-bdsm-uncertain .bt-bdsm-choice-body { justify-content: center; text-align: center; font-size: 13px; }
 .bt-bdsm-modes, .bt-bdsm-role-grid, .bt-bdsm-result-columns { grid-template-columns: 1fr; }
 .bt-bdsm-result-columns { gap: 0; }
 .bt-bdsm-statement { min-height: 0; }
 .bt-bdsm-mode-body { padding: 22px; }
 .bt-bdsm-question-meta { font-size: 11px; }
 .bt-bdsm-coverage { padding: 20px; }
 .bt-bdsm-card-choices { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .bt-bdsm *, .bt-bdsm *::before, .bt-bdsm *::after { scroll-behavior: auto !important; transition: none !important; } }
