/* JRFSmart mind map v2 */
.mm{background:var(--sand2);border:1px solid var(--rule);border-radius:20px;overflow:hidden;position:relative;margin:8px 0 0}
.mm:not(.mm-ready){padding:24px;color:var(--dim)}
.mm-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;border-bottom:1px solid var(--rule);background:#fffdf8}
.mm-sb{position:relative;flex:1 1 220px;max-width:340px}
.mm-s{width:100%;padding:9px 14px;border:1px solid var(--rule);border-radius:99px;background:#fff;font:500 14.5px var(--b);color:var(--ink)}
.mm-s:focus{outline:2px solid var(--teal);outline-offset:1px}
.mm-res{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--rule);border-radius:14px;box-shadow:0 12px 30px rgba(0,0,0,.14);z-index:20;overflow:hidden}
.mm-res.on{display:block}
.mm-res button{display:block;width:100%;text-align:left;border:0;background:none;padding:10px 14px;font:600 14px var(--b);color:var(--ink);cursor:pointer;border-bottom:1px solid var(--rule)}
.mm-res button:hover{background:var(--sand2)}
.mm-res small{display:block;font:500 12px var(--b);color:var(--dim);margin-top:2px}
.mm-no{padding:12px 14px;color:var(--dim);font-size:14px}
.mm-tabs{display:inline-flex;background:var(--sand);border-radius:99px;padding:3px}
.mm-tabs button{border:0;background:none;padding:7px 16px;border-radius:99px;font:700 13.5px var(--b);color:var(--ink2);cursor:pointer}
.mm-tabs button.on{background:var(--teal);color:#fff}
.mm-prog{display:flex;align-items:center;gap:10px;font:600 13px var(--b);color:var(--dim);margin-left:auto}
.mm-bar{flex:0 0 110px;height:8px;border-radius:99px;background:var(--sand);overflow:hidden;display:block}
.mm-bar i{display:block;height:100%;width:0;background:var(--teal);border-radius:99px;transition:width .4s}

.mm-stage{position:relative;height:min(76vh,760px);min-height:420px;overflow:hidden;
  background:radial-gradient(circle at 1px 1px,#e2d6c0 1px,transparent 1.4px) 0 0/24px 24px,var(--sand2);cursor:grab}
.mm-stage.drag{cursor:grabbing}
.mm-svg{display:block;width:100%;height:100%;user-select:none;-webkit-user-select:none}
.mm-cam{transform-origin:0 0}
.mm-svg text{font-family:var(--b);pointer-events:none}
.mm-n{cursor:pointer;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s}
.mm-n.hid{opacity:0;pointer-events:none}
.mm-links{transition:opacity .25s}
.mm-l{transition:opacity .3s}
.mm-l.hid{opacity:0}
.mm-n:hover rect{filter:brightness(.97)}
.mm-branch:hover rect{filter:brightness(1.1)}
.mm-n:focus{outline:none}
.mm-n:focus-visible rect,.mm-n:focus-visible circle{stroke:#000;stroke-width:3}
.mm-rt{font:800 21px var(--d);fill:#fff;letter-spacing:-.02em}
.mm-rs{font:700 11px var(--b);fill:#9ed3c9;letter-spacing:.2em}
.mm-t{font:600 13.5px var(--b);fill:var(--ink)}
.mm-t-branch{font:700 14.5px var(--b);fill:#fff}
.mm-t-concept{font:600 13px var(--b)}
.mm-em{font:400 20px var(--b)}
.mm-bt{font:800 11.5px var(--b)}.mm-bt.sm{font-size:10px}
.mm-tk{font:800 15px var(--b);opacity:0}
.mm-concept.done .mm-tk{opacity:1}
.mm-concept.done rect{fill:#F0F8EE}
.mm-ctl{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px;z-index:5}
.mm-ctl button{width:40px;height:40px;border-radius:12px;border:1px solid var(--rule);background:#fff;font:700 18px var(--b);color:var(--ink);cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.mm-ctl button:hover{background:var(--teal-l)}
.mm-hint{position:absolute;left:14px;bottom:10px;font:500 12.5px var(--b);color:var(--dim);background:rgba(253,248,240,.9);padding:4px 10px;border-radius:99px;pointer-events:none}

/* full screen (works on phones too) */
html.mm-lock{overflow:hidden}
.mm.mm-fs{position:fixed;inset:0;z-index:55;border-radius:0;margin:0;display:flex;flex-direction:column}
.mm.mm-fs .mm-stage{height:auto;flex:1;min-height:0}
.mm.mm-fs .mm-sheet{flex:1;max-height:none}

/* concept panel */
.mm-back{position:fixed;inset:0;background:rgba(28,26,23,.4);opacity:0;pointer-events:none;transition:opacity .25s;z-index:60}
.mm-back.on{opacity:1;pointer-events:auto}
.mm-drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,100vw);background:var(--card);z-index:61;display:flex;flex-direction:column;
  transform:translateX(104%);visibility:hidden;transition:transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s .3s;box-shadow:-12px 0 40px rgba(0,0,0,.18)}
.mm-drawer.on{transform:none;visibility:visible;transition:transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s}
.mm-dh{position:relative;padding:20px 56px 18px 22px;color:#fff;flex:0 0 auto}
.mm-dk{font:600 11.5px/1.4 var(--b);letter-spacing:.06em;text-transform:uppercase;opacity:.92}
.mm-dh h2{font:800 24px/1.18 var(--d);letter-spacing:-.02em;margin:8px 0 0;color:#fff}
.mm-x{position:absolute;top:12px;right:14px;width:36px;height:36px;border-radius:99px;border:0;background:rgba(255,255,255,.22);color:#fff;font:400 26px/1 var(--b);cursor:pointer}
.mm-db{flex:1;overflow:auto;padding:18px 22px 14px;-webkit-overflow-scrolling:touch}
.mm-db p{margin:0 0 12px;line-height:1.7;color:var(--ink2);font-size:16px}
.mm-one{font:600 17px/1.55 var(--b)!important;color:var(--ink)!important}
.mm-kp{background:var(--teal-l);border-radius:12px;padding:14px 18px;margin:14px 0}
.mm-kp b,.mm-as b{display:block;font:700 12px var(--b);letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:6px}
.mm-kp ul{margin:0;padding-left:18px}.mm-kp li{margin:5px 0;color:var(--ink);line-height:1.55;font-weight:500}
.mm-hook{border:2px dashed var(--clay);color:var(--clay);border-radius:12px;padding:11px 15px;font:700 15px/1.45 var(--b);margin:14px 0}
.mm-ex{margin:14px 0;border:1px solid var(--rule);border-radius:12px;padding:0 16px}
.mm-ex summary{cursor:pointer;padding:12px 0;font:700 14px var(--b);color:var(--ink);list-style:none}
.mm-ex summary::after{content:"\25BE";float:right;color:var(--dim)}
.mm-ex[open] summary::after{content:"\25B4"}
.mm-as{background:var(--gold-l);border-radius:12px;padding:14px 18px;margin:14px 0}
.mm-as b{color:#8a5c00}.mm-as p{margin:0;font-size:15px}
.mm-act{margin:16px 0 6px}
.mm-df{display:flex;justify-content:space-between;gap:10px;padding:12px 16px;border-top:1px solid var(--rule);background:var(--sand2);flex:0 0 auto}
.mm-nav{font:600 14px var(--b);padding:9px 16px;border:1px solid var(--rule);border-radius:99px;background:#fff;cursor:pointer;color:var(--ink)}
.mm-nav:disabled{opacity:.4;cursor:default}

/* revision sheet */
.mm-sheet{padding:14px;max-height:80vh;overflow:auto}
.mm-st{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--dim);font-size:14px;margin-bottom:10px}
.mm-sb2{margin:8px 0;border-radius:14px;overflow:hidden;border:1px solid var(--rule);background:#fff}
.mm-sb2>summary{padding:13px 16px;color:#fff;font:700 15.5px var(--b);cursor:pointer;list-style:none}
.mm-ss{border-left:5px solid;margin:12px 12px 14px;padding-left:12px}
.mm-ss h4{font:800 15px var(--d);margin:0 0 8px;color:var(--ink)}
.mm-cc{padding:10px 12px;border:1px solid var(--rule);border-radius:12px;margin:8px 0;background:#fffefb}
.mm-cc.done{background:#F0F8EE}
.mm-ct{border:0;background:none;padding:0;font:700 15px var(--b);color:var(--teal);cursor:pointer;text-align:left}
.mm-cc p{margin:4px 0;color:var(--ink2);font-size:14.5px;line-height:1.55}
.mm-cc ul{margin:4px 0 4px 18px;padding:0}.mm-cc li{margin:2px 0;font-size:14.5px;line-height:1.5;color:var(--ink)}
.mm-ch{font:700 13.5px var(--b);color:var(--clay);margin-top:4px}

/* phone */
@media (max-width:700px){
  .mm-top{padding:10px}
  .mm-sb{flex-basis:100%;max-width:none}
  .mm-prog{margin-left:0}
  .mm-stage{height:68vh;min-height:360px}
  .mm-drawer{top:auto;height:88vh;width:100vw;border-radius:20px 20px 0 0;transform:translateY(104%)}
  .mm-drawer.on{transform:none}
  .mm-hint{display:none}
  .mm-ctl{flex-direction:row;right:auto;left:50%;transform:translateX(-50%);top:auto;bottom:10px;gap:5px;background:rgba(255,255,255,.92);padding:5px;border-radius:16px;box-shadow:0 4px 14px rgba(0,0,0,.14)}
  .mm-ctl button{width:42px;height:42px;box-shadow:none}
}

/* notes under the map (SEO text) */
.mmn h2{margin-top:30px}
.mmn details.nb>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;font:800 22px/1.2 var(--d);padding:14px 0;border-bottom:1px solid var(--rule)}
.mmn details.nb>summary::-webkit-details-marker{display:none}
.mmn details.nb>summary::after{content:"+";margin-left:auto;font:400 26px var(--b);color:var(--dim)}
.mmn details.nb[open]>summary::after{content:"\2212"}
.mmn .bs{font:600 13.5px var(--b);color:var(--dim);margin:8px 0}
.mmn h3{font:800 19px/1.25 var(--d);margin:22px 0 4px;letter-spacing:-.015em}
.mmn h4{font:800 16.5px/1.3 var(--d);margin:16px 0 4px;color:var(--teal)}
.mmn ul{margin:6px 0 10px;padding-left:20px}.mmn li{margin:3px 0;line-height:1.6;color:var(--ink2)}
.mmn .as{font-size:14.5px;background:var(--gold-l);border-radius:10px;padding:9px 14px;margin:8px 0}
.mmn .hk{font:700 14.5px var(--b);color:var(--clay);margin:6px 0}
.mmn .one{font-weight:600;color:var(--ink)}
@media print{.mm-top,.mm-stage,.mm-ctl,.mm-drawer,.mm-back,.mm-hint{display:none!important}.mm-sheet{max-height:none;overflow:visible}.mm-sb2:not([open])>*:not(summary){display:block}}

/* practice block in the concept panel */
.mm-pt{font:700 12px var(--b);letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.mm-pm{margin:0 0 10px!important;font-size:14.5px!important;line-height:1.55;color:var(--ink2)}
.mm-pb{display:flex;flex-wrap:wrap;gap:8px}
.mm-pb .btn{text-decoration:none;display:inline-block}
.mm-sl{display:inline-block;margin-top:10px;font:600 13.5px var(--b);color:var(--teal)}
