/* BigJoe knots page v2: picker + one step-by-step viewer per knot. Uses caribbean-theme.css colors. */
.kn-wrap{max-width:1100px;margin:0 auto;padding:0 clamp(16px,4vw,40px) 50px;box-sizing:border-box}
.kn-wrap *{box-sizing:border-box}
.kn-h2{font:900 clamp(22px,2.6vw,28px) Arial,Helvetica,sans-serif;color:var(--bj-navy,#052c39);margin:30px 0 8px}
.kn-group h3{font:900 13px Arial,Helvetica,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--bj-ocean,#006d77);margin:18px 0 8px}
.kn-picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.kn-pick{display:flex;flex-direction:column;background:#fff;border:1px solid var(--bj-line,#c9dcdc);border-radius:var(--bj-radius,3px);text-decoration:none;color:var(--bj-ink,#052c39);overflow:hidden;transition:box-shadow .15s,transform .15s}
.kn-pick:hover,.kn-pick:focus-visible{transform:translateY(-2px);box-shadow:0 8px 18px rgba(5,44,57,.14)}
.kn-pick.on{border:2px solid var(--bj-ocean,#006d77);box-shadow:0 0 0 3px var(--bj-mint,#e6f0ef)}
.kn-pick img{width:100%;height:auto;display:block;aspect-ratio:2/1;object-fit:contain;background:#fbfdfd}
.kn-pick span{padding:8px 10px 10px;font:700 15px Georgia,'Times New Roman',serif}
.kn-key{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin:24px 0 6px;padding:12px 14px;background:#fff;border:1px solid var(--bj-line,#c9dcdc);border-radius:var(--bj-radius,3px);font-size:14px;color:var(--bj-muted,#405c66)}
.kn-key b{color:var(--bj-navy,#052c39)}
.kn-key span{display:inline-flex;align-items:center;gap:6px}.kn-key span:last-child{display:inline}
.kn-sw{display:inline-block;width:26px;height:7px;border-radius:4px}
.kn-sw--main{background:#1f6fd6;box-shadow:inset 0 0 0 2px #0b4fa8}
.kn-sw--lead{background:#f0a040;box-shadow:inset 0 0 0 2px #b8560a}
.kn-sw--arrow{height:0;border-top:3px dashed #e0262b;border-radius:0}
.kn-knot{margin:26px 0 0;padding:18px;background:#fff;border:1px solid var(--bj-line,#c9dcdc);border-radius:var(--bj-radius,3px);scroll-margin-top:80px}
.kn-head h2{margin:0 0 4px;font:900 clamp(24px,3vw,32px) Arial,Helvetica,sans-serif;color:var(--bj-navy,#052c39)}
.kn-head p{margin:0 0 12px;color:var(--bj-muted,#405c66);font-size:16px}
.kn-stage{display:none}
.kn-big{width:100%;height:auto;max-height:62vh;object-fit:contain;display:block;border:1px solid var(--bj-line,#c9dcdc);border-radius:var(--bj-radius,3px);background:#fbfdfd}
.kn-ctrl{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 8px}
.kn-ctrl button{font:900 17px Arial,Helvetica,sans-serif;padding:12px 22px;border-radius:var(--bj-radius,3px);border:0;background:var(--bj-ocean,#006d77);color:#fff;cursor:pointer;min-width:118px}
.kn-ctrl button:disabled{background:#c9dcdc;color:#6d858c;cursor:default}
.kn-count{font-weight:700;color:var(--bj-muted,#405c66);text-align:center}
.kn-text{font-size:clamp(18px,2.2vw,21px);line-height:1.45;color:var(--bj-ink,#052c39);margin:4px 0 14px;min-height:3em}
.kn-steps{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.kn-steps li{display:grid;grid-template-columns:180px 1fr;gap:14px;align-items:start}
.kn-steps p{margin:6px 0 0;font-size:16px;line-height:1.45}
.kn-thumb{position:relative;padding:0;border:1px solid var(--bj-line,#c9dcdc);border-radius:var(--bj-radius,3px);background:#fbfdfd;cursor:pointer;width:100%}
.kn-thumb img{width:100%;height:auto;display:block}
.kn-thumb b{position:absolute;left:6px;top:6px;background:var(--bj-navy,#052c39);color:#fff;border-radius:999px;font-size:12px;min-width:22px;height:22px;line-height:22px;text-align:center}
.kn-tip{margin:26px 0 0;padding:14px 16px;background:var(--bj-navy,#052c39);color:#fff;border-radius:var(--bj-radius,3px);font-size:16px;line-height:1.45}
/* with JavaScript: one knot at a time, big viewer + a strip of step thumbnails */
.kn-js .kn-knot{display:none}
.kn-js .kn-knot.on{display:block}
.kn-js .kn-stage{display:block}
.kn-js .kn-steps{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.kn-js .kn-steps li{display:block}
.kn-js .kn-steps p{display:none}
.kn-js .kn-thumb.on{border:2px solid var(--bj-ocean,#006d77);box-shadow:0 0 0 2px var(--bj-mint,#e6f0ef)}
@media (max-width:560px){.kn-picks{grid-template-columns:1fr 1fr}.kn-steps li{grid-template-columns:120px 1fr}.kn-ctrl button{min-width:0;padding:12px 16px}.kn-knot{padding:12px}}
