/* "Which course is for me?" finder. Everything is prefixed jf- so it can't collide with the shop's own classes. */
.jf-veil{position:fixed;inset:0;background:rgba(21,38,76,.32);opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:80}
body.jf-open .jf-veil{opacity:1;pointer-events:auto}
@media(min-width:641px){body.jf-open .jf-veil{background:rgba(21,38,76,.12)}}
.jf-launcher{position:fixed;right:24px;bottom:24px;z-index:70;display:flex;align-items:center;gap:12px;padding:6px 22px 6px 6px;border:0;border-radius:999px;background:var(--navy);color:#fff;cursor:pointer;font:600 15px/1.2 var(--body);box-shadow:0 6px 20px rgba(21,38,76,.22);transition:transform .2s ease,opacity .2s ease;text-align:left}
.jf-launcher:hover{transform:translateY(-2px)}
.jf-launcher:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.jf-face{width:44px;height:44px;border-radius:50%;background:var(--tile);overflow:hidden;flex:none;display:block}
.jf-face img{width:100%;height:auto;transform:scale(1.9);transform-origin:50% 12%}
.jf-launcher small{display:block;font-weight:400;font-size:13px;color:var(--navy-mute);margin-top:2px}
body.jf-open .jf-launcher{opacity:0;pointer-events:none}
@media(max-width:640px){.jf-launcher{right:16px;bottom:16px;font-size:14px;padding-right:18px}}
/* on a product page the phone already has the sticky buy bar at the bottom, so the finder stays on desktop */
@media(max-width:899px){.jf-desk-only .jf-launcher{display:none}}
.jf-panel{padding:0;border-top:1px solid var(--line);position:fixed;right:24px;bottom:24px;z-index:90;width:396px;height:min(660px,calc(100vh - 48px));background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 50px rgba(21,38,76,.22);display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .22s ease,transform .22s ease;visibility:hidden}
body.jf-open .jf-panel{opacity:1;transform:none;pointer-events:auto;visibility:visible}
@media(max-width:640px){.jf-panel{left:0;right:0;bottom:0;width:100%;height:min(88vh,760px);border-radius:20px 20px 0 0;border-bottom:0;transform:translateY(100%)}.jf-panel:before{content:"";display:block;width:40px;height:4px;border-radius:4px;background:var(--line);margin:8px auto 0}}
.jf-head{display:flex;align-items:center;gap:12px;padding:14px 16px 12px;border-bottom:1px solid var(--line)}
.jf-head .jf-face{width:42px;height:42px}
.jf-who{flex:1;min-width:0}
.jf-head h2{margin:0;font:400 24px/1 var(--head);letter-spacing:.02em;text-transform:uppercase;color:var(--ink)}
.jf-head p{margin:3px 0 0;font-size:13px;color:var(--mute)}
.jf-x{border:0;background:none;color:var(--ink);cursor:pointer;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:24px;line-height:1}
.jf-x:hover{background:var(--tile)}
.jf-x:focus-visible{outline:2px solid var(--ink)}
.jf-progress{height:3px;background:var(--line)}
.jf-progress span{display:block;height:100%;width:0;background:var(--pink);transition:width .3s ease}
.jf-log{position:relative;flex:1;min-height:0;overflow-y:auto;padding:18px 16px 8px;display:flex;flex-direction:column;gap:10px;background:#fff}
.jf-log>*{flex-shrink:0}
.jf-msg{max-width:86%;padding:11px 14px;font-size:15px;line-height:1.45;border-radius:16px;animation:jf-in .22s ease both;margin:0}
.jf-james{align-self:flex-start;background:var(--tile);border-top-left-radius:5px;color:var(--ink)}
.jf-me{align-self:flex-end;background:var(--navy);color:#fff;border-top-right-radius:5px}
.jf-typing{align-self:flex-start;background:var(--tile);border-radius:16px;border-top-left-radius:5px;padding:13px 14px;display:flex;gap:4px}
.jf-typing i{width:6px;height:6px;border-radius:50%;background:#8C97B2;animation:jf-blink 1s infinite ease-in-out}
.jf-typing i:nth-child(2){animation-delay:.15s}.jf-typing i:nth-child(3){animation-delay:.3s}
@keyframes jf-blink{0%,80%,100%{opacity:.35}40%{opacity:1}}
@keyframes jf-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.jf-chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0 6px;justify-content:flex-end;animation:jf-in .22s ease both}
.jf-chip{border:1.5px solid var(--ink);background:#fff;color:var(--ink);border-radius:999px;padding:10px 15px;font:500 14.5px/1.2 var(--body);cursor:pointer;text-align:left}
.jf-chip:hover{background:var(--yellow)}
.jf-chip:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.jf-pick{align-self:stretch;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;animation:jf-in .25s ease both}
.jf-cover{background:var(--tile);aspect-ratio:16/10;display:grid;place-items:center;overflow:hidden}
.jf-cover img{width:100%;height:100%;object-fit:cover}
.jf-cover img.jf-contain{object-fit:contain;padding:14px}
.jf-body{padding:14px 16px 16px}
.jf-label{font:700 11.5px/1.2 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--pink);margin:0 0 6px}
.jf-pick h3{margin:0;font:400 27px/1 var(--head);text-transform:uppercase;letter-spacing:.01em;color:var(--ink)}
.jf-why{margin:9px 0 0;font-size:14.5px;line-height:1.45;color:var(--ink)}
.jf-note{font-size:13px;color:var(--mute);margin:8px 0 0}
.jf-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.jf-price{font:400 30px/1 var(--head);color:var(--pink)}
.jf-price small{font:400 12px/1 var(--body);color:var(--mute);margin-left:4px}
.jf-btn{display:inline-block;background:var(--yellow);color:var(--ink);border-radius:999px;padding:11px 18px;font:700 13px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.jf-btn:hover{filter:brightness(.96)}
.jf-runner{align-self:stretch;display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px;animation:jf-in .25s ease both}
.jf-thumb{width:76px;height:76px;flex:none;border-radius:10px;background:var(--tile);overflow:hidden;display:grid;place-items:center}
.jf-thumb img{width:100%;height:100%;object-fit:cover}
.jf-thumb img.jf-contain{object-fit:contain;padding:6px}
.jf-info{flex:1;min-width:0}
.jf-runner h4{margin:0;font:400 20px/1 var(--head);text-transform:uppercase;color:var(--ink)}
.jf-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}
.jf-runner .jf-price{font-size:22px}
.jf-runner .jf-btn{padding:9px 13px;font-size:11.5px}
.jf-soon{display:inline-block;font:700 11.5px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border:1.5px solid var(--ink);border-radius:999px;padding:8px 12px;white-space:nowrap}
.jf-ph{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:16px;background:var(--tile)}
.jf-ph b{font:400 26px/1 var(--head);text-transform:uppercase;color:var(--ink)}
.jf-ph span{font:700 11px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--pink);margin-top:8px}
.jf-runner .jf-ph{padding:8px}.jf-runner .jf-ph b{font-size:15px}.jf-runner .jf-ph span{display:none}
.jf-restart{align-self:center;border:0;background:none;color:var(--ink);font:500 14px var(--body);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:10px}
.jf-footnote{padding:10px 16px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--mute);display:flex;align-items:center;gap:10px;margin:0}
.jf-footnote img{height:20px;width:auto}
@media(prefers-reduced-motion:reduce){.jf-panel,.jf-veil,.jf-launcher,.jf-msg,.jf-chips,.jf-pick,.jf-runner,.jf-typing i{animation:none!important;transition:none!important}}
