/* Matsui Booking — everything is inside .mb-root so the theme can't touch it (and it can't touch the theme) */
.mb-root { --mb-bg:#f5f2ed; --mb-card:#fff; --mb-panel:#ebe6df; --mb-ink:#1a1815; --mb-soft:#6b6560; --mb-faint:#a39c94; --mb-line:#e4ded6; --mb-acc:#b08a64; --mb-acc-soft:#f1e8de;
  background:var(--mb-bg); color:var(--mb-ink); font-family:Outfit, 'Helvetica Neue', sans-serif; font-weight:400; line-height:1.4; max-width:1180px; margin:0 auto; position:relative; border-radius:6px; }
.mb-root *, .mb-root *:before, .mb-root *:after { box-sizing:border-box; }
.mb-root button, .mb-root input, .mb-root textarea { font-family:inherit; letter-spacing:normal; text-transform:none; }
.mb-root img { max-width:none; }
.mb-loading, .mb-fail { padding:60px 20px; text-align:center; color:var(--mb-soft); }

.mb-hero { padding:26px 20px 0; }
.mb-hero h1 { font:italic 300 34px/1.1 'Cormorant Garamond', serif; margin:0; color:var(--mb-ink); letter-spacing:0; text-transform:none; }
.mb-hero p { margin:8px 0 0; color:var(--mb-soft); font-weight:300; font-size:15px; }
.mb-steps { display:flex; gap:6px; margin:20px 0 0; }
.mb-steps div { flex:1; }
.mb-steps i { display:block; height:3px; border-radius:3px; background:var(--mb-line); }
.mb-steps span { display:block; font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--mb-faint); margin-top:7px; }
.mb-steps .past i, .mb-steps .now i { background:var(--mb-ink); }
.mb-steps .now span { color:var(--mb-ink); font-weight:500; } .mb-steps .past span { color:var(--mb-soft); }
.mb-steps .past { cursor:pointer; }

.mb-main { display:block; }
.mb-content { padding:18px 14px 24px; min-height:300px; min-width:0; }
.mb-wide .mb-hero { padding:34px 34px 0; } .mb-wide .mb-hero h1 { font-size:44px; }
.mb-wide .mb-main { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:34px; padding:0 34px 40px; align-items:start; }
.mb-wide .mb-content { padding:22px 0 0; }

/* step change: slide in */
.mb-content.mb-fwd { animation:mb-in-r .32s cubic-bezier(.2,.7,.3,1); }
.mb-content.mb-bk { animation:mb-in-l .32s cubic-bezier(.2,.7,.3,1); }
@keyframes mb-in-r { from { opacity:0; transform:translateX(18px); } to { opacity:1; transform:none; } }
@keyframes mb-in-l { from { opacity:0; transform:translateX(-18px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) { .mb-content.mb-fwd, .mb-content.mb-bk { animation:none; } }

/* loading */
.mb-skel { display:grid; gap:10px; padding:6px 0; }
.mb-skel i { display:block; height:64px; border-radius:14px; background:linear-gradient(90deg, var(--mb-panel) 0%, #f7f4ef 50%, var(--mb-panel) 100%); background-size:200% 100%; animation:mb-sh 1.3s linear infinite; }
.mb-skel-page { padding:30px 20px; } .mb-skel-page i:first-child { height:38px; width:55%; }
@keyframes mb-sh { from { background-position:200% 0; } to { background-position:-200% 0; } }

/* services: one collapsible card per category */
.mb-acc { display:grid; gap:10px; }
.mb-cat { background:var(--mb-card); border:1px solid var(--mb-line); border-radius:16px; overflow:hidden; transition:border-color .2s, box-shadow .2s; }
.mb-cat.open { border-color:var(--mb-faint); box-shadow:0 6px 22px rgba(26,24,21,.06); }
.mb-cat-h { all:unset; box-sizing:border-box; display:flex; align-items:center; gap:12px; width:100%; padding:18px 18px; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.mb-cat-h:focus-visible { outline:2px solid var(--mb-acc); outline-offset:-2px; border-radius:16px; }
.mb-cat-h .nm { flex:1; font:400 13.6px/1.3 Outfit, 'Helvetica Neue', sans-serif; letter-spacing:2px; text-transform:uppercase; color:var(--mb-ink); }
.mb-cat-n { font-size:12px; color:var(--mb-faint); min-width:22px; text-align:right; white-space:nowrap; }
.mb-cat-n.on { color:var(--mb-acc); font-weight:500; }
.mb-cat-h .chev { width:9px; height:9px; border-right:1.5px solid var(--mb-soft); border-bottom:1.5px solid var(--mb-soft); transform:rotate(45deg); margin:-4px 4px 0 2px; transition:transform .3s; }
.mb-cat.open .chev { transform:rotate(225deg); margin-top:4px; }
.mb-cat-b { display:grid; grid-template-rows:0fr; transition:grid-template-rows .32s cubic-bezier(.2,.7,.3,1); }
.mb-cat.open .mb-cat-b { grid-template-rows:1fr; }
.mb-cat-b .in { overflow:hidden; padding:0 12px; }
.mb-cat.open .mb-cat-b .in { padding-bottom:4px; }
.mb-cat-b .mb-svc { background:var(--mb-bg); border-color:transparent; }
.mb-cat-b .mb-svc.on { background:var(--mb-card); border-color:var(--mb-acc); }
.mb-svc { display:flex; gap:14px; align-items:center; background:var(--mb-card); border:1px solid var(--mb-line); border-radius:14px; padding:12px; margin-bottom:10px; cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.mb-svc:hover { border-color:var(--mb-faint); }
.mb-svc.on { border-color:var(--mb-acc); box-shadow:0 0 0 1px var(--mb-acc); }
.mb-ph { width:72px; height:72px; border-radius:10px; object-fit:cover; flex:0 0 auto; background:var(--mb-acc-soft); display:flex; align-items:center; justify-content:center; font:italic 400 30px 'Cormorant Garamond', serif; color:var(--mb-acc); }
.mb-svc .t { flex:1; min-width:0; }
.mb-svc .nm { font-size:15px; font-weight:500; line-height:1.3; }
.mb-svc .ds { font-size:13px; font-weight:300; color:var(--mb-soft); margin-top:3px; line-height:1.4; }
.mb-svc .du { font-size:12px; color:var(--mb-faint); margin-top:6px; }
.mb-tick { width:26px; height:26px; border-radius:50%; border:1.5px solid var(--mb-line); flex:0 0 auto; display:flex; align-items:center; justify-content:center; color:#fff; font-size:14px; }
.on .mb-tick { background:var(--mb-acc); border-color:var(--mb-acc); }

/* stylists */
.mb-sgrid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.mb-wide .mb-sgrid { grid-template-columns:repeat(3,1fr); }
.mb-sty { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--mb-card); border:1px solid var(--mb-line); border-radius:16px; padding:18px 12px 16px; text-align:center; cursor:pointer; }
.mb-sty.on { border-color:var(--mb-acc); box-shadow:0 0 0 1px var(--mb-acc); }
/* doesn't take a service picked: still shown, in colour, but quieter and can't be picked */
.mb-sty.off { cursor:default; background:transparent; border-style:dashed; box-shadow:none; }
.mb-sty.off img { opacity:.55; }
.mb-sty.off .nm { color:var(--mb-soft); }
.mb-sty.off .nx { color:var(--mb-soft); font-style:italic; }
.mb-sty.off .mb-tick { display:none; }
.mb-sty.off:active { transform:none!important; }
.mb-sty img, .mb-sty .any { width:86px; height:86px; border-radius:50%; object-fit:cover; display:block; margin:0 auto 12px; }
.mb-sty .any { background:var(--mb-acc-soft); display:flex; align-items:center; justify-content:center; }
.mb-sty .any b { width:30px; height:30px; border-radius:50%; background:var(--mb-acc); opacity:.35; margin:0 -6px; border:2px solid var(--mb-acc-soft); }
.mb-sty .any b:nth-child(2) { opacity:.6; } .mb-sty .any b:nth-child(3) { opacity:.9; }
.mb-sty .nm { font-size:15px; font-weight:500; }
.mb-sty .nx { font-size:12px; color:var(--mb-soft); font-weight:300; margin-top:4px; }
.mb-sty .mb-tick { position:absolute; top:10px; right:10px; width:22px; height:22px; font-size:12px; }

/* date + time */
.mb-mrow { display:flex; justify-content:space-between; align-items:center; margin:0 4px 12px; font-size:15px; font-weight:500; }
.mb-mrow button { border:1px solid var(--mb-line); background:var(--mb-card); width:36px; height:36px; border-radius:50%; cursor:pointer; color:var(--mb-ink); font-size:16px; padding:0; }
.mb-mrow button:disabled { opacity:.3; cursor:default; }
.mb-mrow .mb-mbtn { width:auto; height:auto; border:1.5px solid var(--mb-acc); background:var(--mb-acc-soft); border-radius:999px; padding:9px 16px; font:inherit; font-weight:500; display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
.mb-mbtn svg { width:17px; height:17px; flex:0 0 auto; color:var(--mb-acc); }
.mb-mbtn .mb-cta { font-size:12px; font-weight:500; color:var(--mb-acc); text-transform:uppercase; letter-spacing:.6px; }
.mb-mrow .mb-mbtn:hover { background:#fff; }
.mb-caret { font-size:11px; color:var(--mb-acc); }
/* the month calendar */
.mb-cal { display:grid; grid-template-columns:repeat(7, 1fr); gap:6px; margin:0 2px 8px; }
.mb-cw { text-align:center; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--mb-soft); padding:4px 0 6px; }
.mb-cd { aspect-ratio:1 / 1; max-height:56px; border:1px solid var(--mb-line); background:var(--mb-card); border-radius:12px; font:inherit; font-size:16px; font-weight:500; color:var(--mb-ink); cursor:pointer; padding:0; }
.mb-cd:hover:not(:disabled) { border-color:var(--mb-acc); }
.mb-cd.on { background:var(--mb-ink); border-color:var(--mb-ink); color:#fff; }
.mb-cd.today:not(.on) { border-color:var(--mb-acc); }
.mb-cd.full { opacity:.35; cursor:default; }
.mb-cd.off { border-color:transparent; background:transparent; color:var(--mb-faint); cursor:default; }
.mb-days { display:flex; gap:8px; overflow-x:auto; padding:2px 2px 12px; scrollbar-width:none; scroll-behavior:smooth; }
.mb-days::-webkit-scrollbar { display:none; }
.mb-day { flex:0 0 58px; background:var(--mb-card); border:1px solid var(--mb-line); border-radius:14px; padding:10px 0 9px; text-align:center; cursor:pointer; }
.mb-day .w { font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--mb-soft); }
.mb-day .d { font-size:20px; font-weight:500; margin-top:2px; }
.mb-day .f { font-size:10px; color:var(--mb-faint); margin-top:2px; height:12px; }
.mb-day.on { background:var(--mb-ink); border-color:var(--mb-ink); color:#fff; } .mb-day.on .w, .mb-day.on .f { color:rgba(255,255,255,.7); }
.mb-day.full { opacity:.45; cursor:default; }
.mb-grp { font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--mb-soft); margin:16px 4px 9px; }
.mb-slots { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.mb-wide .mb-slots { grid-template-columns:repeat(5,1fr); }
.mb-slot { background:var(--mb-card); border:1px solid var(--mb-line); border-radius:10px; padding:11px 0; text-align:center; font-size:14px; cursor:pointer; }
.mb-slot.on { background:var(--mb-acc); border-color:var(--mb-acc); color:#fff; font-weight:500; }
.mb-none { text-align:center; color:var(--mb-soft); font-weight:300; padding:26px 10px; background:var(--mb-card); border-radius:14px; border:1px solid var(--mb-line); }

/* details */
.mb-sum { background:var(--mb-card); border:1px solid var(--mb-line); border-radius:16px; padding:6px 16px; margin-bottom:18px; }
.mb-sum .r { display:flex; gap:12px; align-items:flex-start; padding:12px 0; border-bottom:1px solid var(--mb-line); font-size:14px; }
.mb-sum .r:last-child { border-bottom:0; }
.mb-sum .v { flex:1; line-height:1.45; } .mb-sum .v small { display:block; color:var(--mb-soft); font-weight:300; font-size:12.5px; }
.mb-sum .ch { color:var(--mb-acc); font-size:12.5px; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.mb-form { display:grid; grid-template-columns:1fr 1fr; gap:14px 12px; }
.mb-form label { font-size:12.5px; color:var(--mb-soft); letter-spacing:.3px; display:block; }
.mb-form label.w { grid-column:1 / -1; }
.mb-form label b { color:#c0392b; font-weight:400; }
.mb-form input, .mb-form textarea { width:100%; margin:6px 0 0; border:1px solid var(--mb-line); background:var(--mb-card); border-radius:10px; padding:13px 12px; font-size:15px; color:var(--mb-ink); outline:none; box-shadow:none; height:auto; }
.mb-form input:focus, .mb-form textarea:focus { border-color:var(--mb-acc); }
.mb-tel { display:flex; margin-top:6px; } .mb-tel span { border:1px solid var(--mb-line); border-right:0; border-radius:10px 0 0 10px; background:var(--mb-panel); padding:13px 10px; font-size:15px; }
.mb-tel input { margin-top:0; border-radius:0 10px 10px 0; }
.mb-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.mb-chk { display:flex; gap:10px; align-items:center; font-size:13.5px; color:var(--mb-soft); margin-top:14px; cursor:pointer; }
.mb-chk i { width:20px; height:20px; border-radius:5px; border:1.5px solid var(--mb-faint); display:flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-style:normal; }
.mb-chk.on i { background:var(--mb-acc); border-color:var(--mb-acc); }
.mb-wb { background:var(--mb-acc-soft); border-radius:14px; padding:14px 16px; margin-bottom:16px; font-size:14px; display:flex; justify-content:space-between; align-items:center; gap:10px; }
.mb-wb b { font-weight:500; } .mb-wb small { color:var(--mb-soft); } .mb-wb span { color:var(--mb-acc); font-size:12.5px; cursor:pointer; text-decoration:underline; white-space:nowrap; }
.mb-err { color:#c0392b; font-size:13.5px; margin-top:12px; }
.mb-priv { font-size:12.5px; line-height:1.5; color:var(--mb-soft); margin-top:14px; }
.mb-priv span { color:var(--mb-acc); text-decoration:underline; cursor:pointer; white-space:nowrap; }
/* privacy notice: a card in the middle on a computer, a sheet from the bottom on a phone */
/* it sits on <body>, outside .mb-root (a theme wrapper with a transform/filter would trap a fixed box), so it
   carries its own colours */
.mb-pop { --mb-bg:#f5f2ed; --mb-card:#fff; --mb-panel:#ebe6df; --mb-ink:#1a1815; --mb-soft:#6b6560; --mb-faint:#a39c94; --mb-line:#e4ded6; --mb-acc:#b08a64; --mb-acc-soft:#f1e8de; }
.mb-pop *, .mb-pop *:before, .mb-pop *:after { box-sizing:border-box; }
.mb-pop { position:fixed; top:0; right:0; bottom:0; left:0; margin:0; z-index:2147483000; background:rgba(26,24,21,.36); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); display:flex; align-items:center; justify-content:center; padding:20px; font-family:Outfit, 'Helvetica Neue', sans-serif; animation:mbPopFade .2s ease; }
.mb-pop-in { position:relative; box-sizing:border-box; background:var(--mb-bg); color:var(--mb-ink); border-radius:22px; max-width:430px; width:100%; max-height:86vh; overflow:auto; padding:34px 30px 26px; box-shadow:0 28px 80px rgba(26,24,21,.24); animation:mbPopRise .26s cubic-bezier(.2,.8,.2,1); text-align:left; scrollbar-width:thin; scrollbar-color:var(--mb-line) transparent; }
.mb-pop-eye { font-size:11px; letter-spacing:2.4px; text-transform:uppercase; color:var(--mb-acc); font-weight:500; margin:0 0 8px; }
.mb-pop-in h3 { font:italic 400 30px/1.12 'Cormorant Garamond', serif; margin:0 0 22px; padding:0; color:var(--mb-ink); text-transform:none; letter-spacing:0; }
.mb-pop-in dl { margin:0 0 26px; padding:0; }
.mb-pop-in dt { font-size:11px; letter-spacing:1.8px; text-transform:uppercase; color:var(--mb-soft); font-weight:500; margin:0; padding:16px 0 0; border-top:1px solid var(--mb-line); }
.mb-pop-in dt:first-child { border-top:0; padding-top:0; }
.mb-pop-in dd { margin:6px 0 16px; padding:0; font-size:14.5px; line-height:1.6; font-weight:300; color:var(--mb-ink); }
.mb-pop-in .mb-ghost { width:100%; font-family:inherit; text-transform:none; letter-spacing:.3px; }
.mb-pop-x { position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:50%; border:0; background:transparent; color:var(--mb-soft); font:300 24px/1 Outfit, sans-serif; cursor:pointer; padding:0; display:flex; align-items:center; justify-content:center; box-shadow:none; }
.mb-pop-x:hover, .mb-pop-x:focus-visible { background:var(--mb-panel); color:var(--mb-ink); outline:none; }
@keyframes mbPopFade { from { opacity:0; } to { opacity:1; } }
@keyframes mbPopRise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@media (max-width:560px) {
  .mb-pop { align-items:flex-end; padding:0; }
  .mb-pop-in { max-width:none; border-radius:22px 22px 0 0; max-height:88vh; padding:30px 24px calc(22px + env(safe-area-inset-bottom)); }
  .mb-pop-in h3 { font-size:28px; }
}
@media (prefers-reduced-motion:reduce) { .mb-pop, .mb-pop-in { animation:none; } }

/* done */
.mb-done { text-align:center; padding:12px 6px 0; }
.mb-done .ok { width:66px; height:66px; border-radius:50%; background:var(--mb-acc); color:#fff; display:flex; align-items:center; justify-content:center; font-size:30px; margin:6px auto 16px; }
.mb-done h2 { font:italic 400 32px 'Cormorant Garamond', serif; margin:0 0 6px; color:var(--mb-ink); text-transform:none; letter-spacing:0; }
.mb-done p { color:var(--mb-soft); font-weight:300; margin:0 0 20px; }
.mb-done .mb-sum { text-align:left; }
.mb-acts { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.mb-ghost { border:1px solid var(--mb-ink); background:transparent; color:var(--mb-ink); border-radius:99px; padding:13px; font-size:13px; font-weight:500; cursor:pointer; text-decoration:none; display:block; text-align:center; line-height:1.2; }
.mb-small { font-size:12.5px; color:var(--mb-faint); margin-top:16px; }

/* My booking (mybooking.js): the page a notice's link opens */
.mb-root.mb-my { max-width:620px; }
.mb-my .mb-content { padding:20px 20px 30px; }
.mb-my-note { background:#2f5f98; color:#fff; border-radius:14px; padding:16px 18px; font-size:14.5px; line-height:1.55; margin-bottom:16px; }
.mb-my-lab { font-size:11px; letter-spacing:2.2px; text-transform:uppercase; margin-bottom:6px; opacity:.9; }
.mb-my-h { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--mb-acc); font-weight:500; }
.mb-my-p { color:var(--mb-soft); font-weight:300; font-size:15px; line-height:1.55; margin:4px 2px 18px; }
.mb-my-wide { width:100%; margin-top:2px; white-space:normal; }
.mb-my-chat { margin-top:18px; }
.mb-my .mb-done p { margin-bottom:18px; }
.mb-my .mb-skel i { height:58px; }

/* Continue bar: pinned to the bottom of the screen on every step, phone or computer (it sits on <body>, see booking.js).
   The side panel on wide screens is a summary only. */
.mb-root.mb-bar { position:fixed; left:0; right:0; bottom:0; top:auto; z-index:99990; max-width:none; margin:0; border-radius:0; background:var(--mb-card); border-top:1px solid var(--mb-line);
  padding:12px 16px calc(14px + env(safe-area-inset-bottom, 0px)); box-shadow:0 -6px 20px rgba(0,0,0,.06); transition:transform .2s, padding-bottom .15s; }
/* Phones: the button (full width, Back beside it) on top, the day / details line underneath. The bottom 50px or so
   of an iPhone screen only wakes Safari's toolbar when tapped, so the text sits there and the button above it. */
@media (max-width:700px) {
  .mb-root.mb-bar { padding:12px 14px calc(22px + env(safe-area-inset-bottom, 0px)); }
  .mb-root.mb-bar .mb-bar-in { flex-wrap:wrap; gap:0 10px; }
  .mb-root.mb-bar .mb-bar-in .mb-back { order:0; }
  .mb-root.mb-bar .mb-bar-in .mb-go { order:1; flex:1; padding:15px 20px; }
  .mb-root.mb-bar .mb-bar-in .info { order:2; flex:0 0 100%; min-height:46px; display:flex; align-items:center; justify-content:center; gap:7px; white-space:nowrap; overflow:hidden; }
  .mb-root.mb-bar .mb-bar-in .info b { display:block; flex:0 1 auto; min-width:0; }
  .mb-root:not(.mb-bar) { padding-bottom:144px; }
}
.mb-root.mb-bar.mb-away { transform:translateY(110%); }
.mb-bar-in { display:flex; align-items:center; gap:12px; max-width:1112px; margin:0 auto; }
/* computers: the bar is exactly as wide as the booking page and lines up with it (booking.js sets left / width) */
.mb-root.mb-bar { box-sizing:border-box; }
.mb-root.mb-bar.mb-fit { right:auto; border:1px solid var(--mb-line); border-bottom:0; border-radius:14px 14px 0 0; }
.mb-root.mb-bar.mb-fit.mb-wide { padding-left:34px; padding-right:34px; }
.mb-root:not(.mb-bar) { padding-bottom:84px; }      /* room so the bar never covers the last row */
.mb-bar .info { flex:1; min-width:0; font-size:13px; color:var(--mb-soft); line-height:1.35; }
.mb-bar .info b { display:block; color:var(--mb-ink); font-weight:500; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* frosted Continue bar: the page shows blurred through it */
.mb-root.mb-bar { background:rgba(255,255,255,.62); -webkit-backdrop-filter:blur(18px) saturate(1.5); backdrop-filter:blur(18px) saturate(1.5); border-top-color:rgba(255,255,255,.55); box-shadow:0 -6px 24px rgba(0,0,0,.08); }
.mb-bar .mb-back { background:rgba(255,255,255,.55); }
.mb-go { border:0; background:var(--mb-ink); color:#fff; border-radius:99px; padding:14px 26px; font-size:14px; font-weight:500; letter-spacing:.4px; cursor:pointer; white-space:nowrap; line-height:1.2; text-transform:none; }
.mb-go:disabled { opacity:.3; cursor:default; }
.mb-go, .mb-slot, .mb-day, .mb-sty, .mb-svc { transition:transform .12s, background-color .15s, border-color .15s, box-shadow .15s, opacity .15s; }
.mb-go:not(:disabled):active, .mb-slot:active, .mb-day:active, .mb-sty:active { transform:scale(.97); }
.mb-back { flex:0 0 auto; width:44px; height:44px; border-radius:50%; border:1px solid var(--mb-line); background:var(--mb-card); color:var(--mb-ink); font-size:22px; line-height:1; padding:0 0 3px; cursor:pointer; }
.mb-link { display:block; width:100%; margin-top:10px; border:0; background:none; color:var(--mb-soft); font-size:13.5px; cursor:pointer; padding:6px; text-transform:none; letter-spacing:normal; }
.mb-link:hover { color:var(--mb-ink); }
.mb-side { display:none; }
.mb-wide .mb-side { display:block; position:sticky; top:20px; margin-top:22px; background:var(--mb-card); border:1px solid var(--mb-line); border-radius:18px; padding:20px; }
.mb-side h4 { font:italic 400 24px 'Cormorant Garamond', serif; margin:0 0 12px; color:var(--mb-ink); text-transform:none; letter-spacing:0; }
.mb-side .it { display:flex; justify-content:space-between; gap:10px; font-size:14px; padding:9px 0; border-bottom:1px solid var(--mb-line); }
.mb-side .it span:last-child { color:var(--mb-soft); font-weight:300; white-space:nowrap; }
.mb-side .mb-warn { display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; margin-left:4px; border-radius:50%; background:var(--mb-acc); color:#fff; font:normal 700 11px/1 system-ui, sans-serif; vertical-align:1px; cursor:help; }
.mb-side .em { color:var(--mb-faint); font-size:13.5px; font-weight:300; padding:8px 0 14px; }
.mb-side .mb-go { width:100%; margin-top:16px; }
.mb-toast { position:fixed; left:50%; bottom:90px; transform:translateX(-50%); background:var(--mb-ink); color:#fff; padding:11px 18px; border-radius:10px; font-size:14px; opacity:0; transition:opacity .3s; pointer-events:none; z-index:99999; max-width:90%; text-align:center; }
.mb-toast.on { opacity:1; }
