/* The dock (assets/js/dock.js): one ink capsule, bottom right, holding the accessibility button, a call button on
   phones and the chat button. Ink ground with the plume as the one accent, like the header pills. Ported from MSD
   (src/navy/dock.css + a11y.css), 2026-11-03. */
:root{--dock-m:12px;--dock-p:6px;--dock-b:44px}
.mr-dock{position:fixed;right:var(--dock-m);bottom:calc(var(--dock-m) + env(safe-area-inset-bottom,0px));z-index:80;pointer-events:none;animation:mr-dock-in .4s var(--ease-out3) .25s backwards}
@keyframes mr-dock-in{from{opacity:0;transform:translateY(20px)}}
.mr-dock__ground{position:absolute;inset:0;border-radius:999px;background:var(--inkstone);box-shadow:0 0 0 1px rgba(255,255,255,.08),0 10px 24px rgba(0,0,0,.32)}
.mr-dock__row{position:relative;display:flex;align-items:center;gap:2px;padding:var(--dock-p);pointer-events:auto}
.mr-dock__b{display:grid;place-items:center;width:var(--dock-b);height:var(--dock-b);padding:0;border:0;border-radius:50%;background:none;color:var(--white);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color .18s var(--ease)}
.mr-dock__b svg{width:24px;height:24px}
.mr-dock__rule{flex:none;width:1px;height:24px;margin:0 4px;background:rgba(255,255,255,.16)}
.mr-dock__chat{display:flex;align-items:center;height:var(--dock-b);padding:0;border:0;border-radius:999px;background:none;color:var(--white);font:600 15px/1 var(--font);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.mr-dock__lbl b{display:block;padding:0 12px 0 8px;font-weight:600;white-space:nowrap}
.mr-dock__disc{position:relative;flex:none;display:grid;place-items:center;width:var(--dock-b);height:var(--dock-b);border-radius:50%;background:var(--white);color:var(--inkstone);transition:transform .24s var(--ease)}
.mr-dock__disc svg{grid-area:1/1;width:26px;height:26px;transition:transform .2s var(--ease),opacity .2s var(--ease)}
.mr-dock__disc .mr-dock__x{width:20px;height:20px;opacity:0;transform:rotate(-45deg) scale(.8)}
html.mr-chat-open .mr-dock__ic{opacity:0;transform:scale(.8)}
html.mr-chat-open .mr-dock__x{opacity:1;transform:none}
.mr-dock__chat:active .mr-dock__disc,.mr-dock__b:active svg{transform:scale(.97);transition-duration:.12s}
@media (hover:hover){.mr-dock__chat:hover .mr-dock__ic{transform:translateY(-2px)}.mr-dock__b:hover{background:rgba(255,255,255,.1)}}
.mr-dock__chat:focus-visible,.mr-dock__b:focus-visible{outline:2px solid var(--plume);outline-offset:2px;border-radius:999px}
/* the halo leaves the disc twice and rests: under the 5 s WCAG 2.2.2 allows without a pause control */
.mr-dock__disc::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 2px var(--plume);opacity:0;pointer-events:none;animation:mr-dock-halo 2.4s var(--ease) .8s 2}
@keyframes mr-dock-halo{from{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}
.mr-dock__chat.is-busy .mr-dock__disc::before{content:"";position:absolute;inset:3px;border:2px solid transparent;border-top-color:var(--plume);border-radius:50%;animation:mr-dock-spin .8s linear infinite}
@keyframes mr-dock-spin{to{transform:rotate(360deg)}}
@media (min-width:900px){.mr-dock{right:20px;bottom:20px}.mr-dock__call{display:none!important}}
@media (max-width:899px){
  .mr-dock__lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  html.mr-chat-open .mr-dock{transform:translateY(calc(100% + var(--dock-m) + 8px));visibility:hidden;transition:transform .224s var(--ease-in),visibility 0s .224s}
}
.is-preview .mr-dock{bottom:calc(var(--dock-m) + 44px)}
@media (prefers-reduced-motion:reduce){.mr-dock,.mr-dock__disc::after,.mr-dock__disc::before{animation:none}.mr-dock,.mr-dock *{transition:none!important}.mr-dock__chat.is-busy .mr-dock__disc{opacity:.6}}
@media print{.mr-dock{display:none}}

/* the chat window: colours and type here, shape in dock.js (SKIN). Hidden until skinned, so the stock look never flashes */
chat-widget{--chat-widget-font-family:"Plus Jakarta Sans",system-ui,sans-serif;--ion-font-family:"Plus Jakarta Sans",system-ui,sans-serif;--chat-widget-bubble-color:#0a0b0c;--chat-widget-primary-color:#a9541f;--chat-widget-primary-solid-color:#a9541f;--chat-widget-active-color:#a9541f;--chat-widget-button-color:#0a0b0c;--ion-color-primary:#a9541f;--color:#a9541f;--chat-widget-header-color:#0a0b0c;--chat-widget-header-darken-color:#000;--chat-widget-avatar-border-color:#d0702f;--chat-widget-received-message-color:#f5f2de;--chat-widget-received-message-text-color:#0a0b0c;--chat-widget-sender-message-color:#0a0b0c;--chat-widget-welcome-message-text-color:#0a0b0c;--chat-widget-system-message-text-color:#0a0b0c}
chat-widget:not(.mr-ready),html.mr-a11y-open:not(.mr-chat-open) chat-widget{visibility:hidden}

/* accessibility panel */
/* the panel lines up with the dock's right edge (the row is its containing block), not with the button */
.mr-a11y{flex:none}
.mr-a11y__panel{position:absolute;right:0;bottom:calc(100% + var(--dock-p) + 12px);width:min(300px,calc(100vw - 24px));max-height:calc(100dvh - var(--dock-b) - var(--dock-p)*2 - var(--dock-m)*2 - 24px - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;padding:18px;border-radius:var(--r-lg);background:var(--white);color:var(--inkstone);box-shadow:0 0 0 1px var(--driftwood),0 24px 50px rgba(0,0,0,.28);font:400 14px/1.4 var(--font)}
@media (max-width:899px){.mr-a11y__panel{position:fixed;right:var(--dock-m);bottom:calc(var(--dock-m) + var(--dock-b) + var(--dock-p)*2 + 12px + env(safe-area-inset-bottom,0px))}}
.mr-a11y__panel[hidden]{display:none}
.mr-a11y__panel button:focus-visible,.mr-a11y__panel a:focus-visible{outline:2px solid var(--plume-deep);outline-offset:2px}
.mr-a11y__t{margin:0 0 12px;font:600 11px/1 var(--font);letter-spacing:.2em;text-transform:uppercase;color:#a9541f}
.mr-a11y__opts{display:flex;flex-direction:column;gap:6px}
.mr-a11y__opt{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:0 14px;border:0;border-radius:var(--r);background:var(--sand);font:600 14.5px/1.2 var(--font);color:var(--inkstone);text-align:left;cursor:pointer}
.mr-a11y__opt i{display:grid;place-items:center;min-width:22px;height:22px;border-radius:11px;box-shadow:inset 0 0 0 2px var(--stone);font:700 10px/1 var(--font);font-style:normal;color:var(--white)}
.mr-a11y__opt[aria-pressed="true"]{background:var(--inkstone);color:var(--white)}
.mr-a11y__opt[aria-pressed="true"] i{background:var(--plume);box-shadow:none;color:var(--inkstone)}
.mr-a11y__opt[aria-pressed="true"] i:empty::after{content:"";width:8px;height:4px;margin-top:-2px;border:solid var(--inkstone);border-width:0 0 2px 2px;transform:rotate(-45deg)}
.mr-a11y__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.mr-a11y__reset{min-height:36px;padding:0 14px;border:0;border-radius:999px;background:transparent;box-shadow:inset 0 0 0 1.5px var(--driftwood);font:600 13px/1 var(--font);color:var(--inkstone);cursor:pointer}
.mr-a11y__foot a{font:600 13px/1.3 var(--font);color:#a9541f}
.mr-a11y__help{margin:10px 0 0;font-size:12.5px;color:#555}
.mr-a11y__x{position:absolute;top:8px;right:8px;width:34px;height:34px;border:0;border-radius:50%;background:transparent;font:400 24px/1 var(--font);color:#555;cursor:pointer}

/* the choices */
html.a11y-text :is(main,footer) :is(p,li,dd,dt,td,th,figcaption,label,summary,blockquote){zoom:1.14}
html.a11y-text2 :is(main,footer) :is(p,li,dd,dt,td,th,figcaption,label,summary,blockquote){zoom:1.28}
html.a11y-text :is(main,footer) :is(p,li,dd,td,label,summary) :is(p,li,dd,td,label,summary){zoom:1}
/* deeper plume (5.17:1 on parchment) and darker greys; plain text goes black on light sections, white on ink ones */
html.a11y-contrast{--plume:#a9541f;--plume-deep:#8f4519;--graphite:#333;--stone:#555}
html.a11y-contrast main :is(p,li,td,th,figcaption,small,label,dd,dt,h1,h2,h3,h4):not(:is(.hero,.phero,.sec-hl,.sec-spec,.sec-strip,.sec-route,.sec-sticky,.bento-tile) *){color:#000!important}
html.a11y-contrast :is(.hero,.phero,.sec-hl,.sec-spec,.sec-strip,.sec-route,.sec-sticky,.foot-body) :is(p,li,span,small,dd,dt):not(.pill *){color:#fff!important}
html.a11y-links a{text-decoration:underline!important;text-underline-offset:3px!important}
html.a11y-still *,html.a11y-still *::before,html.a11y-still *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.a11y-space main :is(p,li,dd){line-height:1.95!important;letter-spacing:.02em!important;word-spacing:.1em!important}
