.mli-v2{--mli-ink:var(--tah-ink,#0c1c13);--mli-forest:var(--tah-forest,#0e3d24);--mli-lime:var(--tah-lime,#a6e15a);--mli-soft:var(--tah-bg-soft,var(--tah-bg,#f2f7ee));--mli-line:var(--tah-line,#e1ebdb);--mli-radius:var(--tah-radius,18px);--mli-shadow:var(--tah-shadow-sm,var(--tah-shadow,0 8px 24px -12px rgba(14,61,36,.14)));color:var(--mli-ink);font:inherit;max-width:42rem}.mli-v2 *{box-sizing:border-box}.mli-v2__app{padding:1.25rem;background:#fff;border:1px solid var(--mli-line);border-radius:var(--mli-radius);box-shadow:var(--mli-shadow)}.mli-v2 h2,.mli-v2 h3{color:var(--mli-forest);font:inherit;font-weight:700;margin:0 0 .7rem}.mli-v2 h2{font-size:1.35rem}.mli-v2 h3{font-size:1.1rem}.mli-v2__notice,.mli-v2__field-notice,.mli-v2__noscript{padding:.75rem;border-inline-start:3px solid var(--mli-lime);background:var(--mli-soft);font-size:.92em}.mli-v2__field{margin:.95rem 0}.mli-v2 label,.mli-v2 legend{display:block;font-weight:650;margin:0 0 .3rem}.mli-v2 fieldset{margin:0;padding:.75rem;border:1px solid var(--mli-line);border-radius:calc(var(--mli-radius) - 6px)}.mli-v2 fieldset>div{display:flex;gap:.5rem;align-items:flex-start;margin:.5rem 0}.mli-v2 fieldset label{font-weight:500;margin:0}.mli-v2 input:not([type=checkbox]):not([type=radio]),.mli-v2 textarea,.mli-v2 select{width:100%;max-width:none;min-height:44px;padding:.65rem .75rem;border:1px solid var(--mli-line);border-radius:9px;background:#fff;color:var(--mli-ink);font:inherit}.mli-v2 textarea{min-height:7rem}.mli-v2 input[type=checkbox],.mli-v2 input[type=radio]{width:1.25rem;height:1.25rem;margin:.05rem 0 0}.mli-v2__actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.mli-v2 button{min-height:44px;cursor:pointer;padding:.65rem 1rem;border:1px solid var(--mli-forest);border-radius:9px;background:var(--mli-forest);color:#fff;font:inherit;font-weight:700}.mli-v2 button.mli-v2__previous,.mli-v2 button.mli-v2__restart{background:#fff;color:var(--mli-forest)}.mli-v2 button[disabled]{cursor:wait;opacity:.65}.mli-v2 button:focus-visible,.mli-v2 a:focus-visible,.mli-v2 input:focus-visible,.mli-v2 textarea:focus-visible{outline:3px solid var(--mli-lime);outline-offset:2px}.mli-v2__status,.mli-v2__error{min-height:1.5em;margin:.75rem 0}.mli-v2__status.error,.mli-v2__error[data-visible]{color:#a61b29}.mli-v2__status.success{color:#176b48}.mli-v2__status.loading{color:var(--mli-forest)}.mli-v2__fallback{display:inline-block;min-height:44px;padding:.65rem 0;margin-top:.75rem;color:var(--mli-forest);font-weight:700}.mli-v2__transcript{display:grid;gap:.6rem;margin:0 0 1rem}.mli-v2__turn{max-width:92%;margin:0;padding:.65rem .75rem;border-radius:12px;background:var(--mli-soft)}.mli-v2__turn--visitor{justify-self:end;background:#e7f2e1}.mli-v2--chat{max-width:34rem}.mli-v2--modal .mli-v2__trigger{background:var(--mli-forest)}.mli-v2--modal .mli-v2__dialog[hidden]{display:none}.mli-v2--modal .mli-v2__dialog{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:24px;background:rgba(9,39,24,.62)}.mli-v2--modal .mli-v2__box{position:relative;width:min(100%,620px);max-height:min(90vh,760px);overflow:auto;padding:1rem;background:#fff;color:var(--mli-ink);border-radius:var(--mli-radius);box-shadow:0 18px 55px rgba(0,0,0,.25)}.mli-v2__close{position:sticky;z-index:1;float:right;top:0;right:0;width:44px;padding:0;background:#fff!important;color:var(--mli-forest)!important;border-color:var(--mli-line)!important}.mli-v2--modal .mli-v2__app{clear:both;border:0;box-shadow:none;padding:.25rem}@media(max-width:767px){.mli-v2__app{padding:1rem}.mli-v2--modal .mli-v2__dialog{place-items:end;padding:0}.mli-v2--modal .mli-v2__box{width:100%;max-height:94vh;border-radius:var(--mli-radius) var(--mli-radius) 0 0}.mli-v2__actions>*{flex:1 1 140px}}@media(prefers-reduced-motion:reduce){.mli-v2 *,.mli-v2 *:before,.mli-v2 *:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Safe exits — the way out of a terminal state. Rendered only where the flow ends,
   so they never compete with the primary action on an ordinary step. */
.mli-v2__exits{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.15rem}
.mli-v2__exit{
 display:inline-flex;align-items:center;min-height:44px;padding:.6rem 1rem;
 border:1px solid var(--mli-line);border-radius:calc(var(--mli-radius) / 2);
 background:var(--mli-soft);color:var(--mli-forest);font-weight:600;text-decoration:none;line-height:1.3
}
.mli-v2__exit:hover,.mli-v2__exit:focus-visible{background:#fff;border-color:var(--mli-forest)}
.mli-v2__exit:focus-visible{outline:2px solid var(--mli-forest);outline-offset:2px}

/* Spam check — rendered on the review step only, by the provider the server names.
   The block is sized so that neither provider's widget (Turnstile 300×65, reCAPTCHA
   304×78) can push the form sideways on a narrow screen. */
.mli-v2__spam{
 margin-top:1.15rem;padding:.85rem;
 border:1px solid var(--mli-line);border-left:3px solid var(--mli-lime);
 border-radius:calc(var(--mli-radius) / 2);background:var(--mli-soft)
}
.mli-v2__spam-label{margin:0 0 .5rem;font-weight:650;font-size:.92em}
.mli-v2__spam-host{max-width:100%;overflow-x:auto}
.mli-v2__spam-host:empty{display:none}
.mli-v2__spam-note{margin:.55rem 0 0;font-size:.9em;line-height:1.4;color:var(--mli-forest)}
.mli-v2__spam-note:empty{display:none}
.mli-v2__spam-retry{margin-top:.6rem;background:#fff;color:var(--mli-forest)}

/* ---------------------------------------------------------------------------
   FLOATING CHAT LAUNCHER (.mli-v2--launcher)
   The sitewide widget printed its trigger inline at the very end of the page —
   position:static, below the footer — so a visitor never saw it unless they
   scrolled past everything. It is a floating launcher now: fixed to the bottom
   right, which is where people look for one.
   Astra's scroll-to-top button already owns that corner at z-index 99, so the
   theme lifts it above this button rather than letting the two overlap.
--------------------------------------------------------------------------- */
.mli-v2--launcher{position:static;max-width:none}
.mli-v2--launcher .mli-v2__trigger{
 position:fixed;right:20px;bottom:20px;z-index:99998;
 display:inline-flex;align-items:center;gap:.5rem;
 min-height:52px;padding:0 1.15rem;border-radius:999px;
 background:var(--mli-forest);color:#fff;border:0;
 box-shadow:0 10px 30px -8px rgba(9,39,24,.55);
 font-weight:700;line-height:1;
 transition:transform .18s ease,box-shadow .18s ease}
.mli-v2--launcher .mli-v2__trigger::before{
 content:"";width:18px;height:18px;flex:none;background:currentColor;
 -webkit-mask:var(--mli-chat-icon) center/contain no-repeat;
 mask:var(--mli-chat-icon) center/contain no-repeat}
.mli-v2{--mli-chat-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3C6.98 3 3 6.36 3 10.5c0 2.3 1.23 4.35 3.17 5.72-.13 1.2-.6 2.3-1.36 3.2-.2.24-.02.6.29.56 1.77-.23 3.3-.92 4.4-1.77.79.19 1.63.29 2.5.29 5.02 0 9-3.36 9-7.5S17.02 3 12 3z'/%3E%3C/svg%3E")}
.mli-v2--launcher .mli-v2__trigger:hover{transform:translateY(-2px);box-shadow:0 14px 34px -8px rgba(9,39,24,.6)}
/* The fallback link is for the inline form; a floating launcher must not drop a
   stray "Prefer a quote form?" link at the bottom of every page. */
.mli-v2--launcher>.mli-v2__fallback{display:none}

/* The chat panel itself: anchored bottom-right like a chat window on desktop,
   full-height sheet on phones. */
@media(min-width:768px){
 .mli-v2--launcher .mli-v2__dialog{place-items:end;padding:0 20px 88px 0;background:transparent;pointer-events:none}
 .mli-v2--launcher .mli-v2__box{width:min(100%,420px);max-height:min(78vh,640px);pointer-events:auto;
  box-shadow:0 24px 60px -12px rgba(9,39,24,.45)}
}
.mli-v2--withchat .mli-v2__transcript{max-height:46vh;overflow-y:auto;padding-right:.25rem}
.mli-v2--withchat .mli-v2__turn{font-size:.95em;line-height:1.45}
.mli-v2--withchat .mli-v2__turn--assistant{background:var(--mli-soft)}
.mli-v2--withchat .mli-v2__turn strong{display:block;font-size:.72em;letter-spacing:.06em;
 text-transform:uppercase;opacity:.65;margin-bottom:.15rem}
@media(prefers-reduced-motion:reduce){.mli-v2--launcher .mli-v2__trigger{transition:none}}
@media(max-width:767px){
 .mli-v2--launcher .mli-v2__trigger{right:14px;bottom:14px;min-height:48px;padding:0 1rem}
}

/* ---------------------------------------------------------------- ask box --- */
.mli-v2__ask{margin:0 0 1rem;padding:.75rem;border:1px solid var(--mli-line);border-radius:12px;background:#fff}
.mli-v2__ask-label{font-size:.78em;letter-spacing:.06em;text-transform:uppercase;opacity:.7;margin:0 0 .4rem}
.mli-v2__ask-row{display:flex;gap:.5rem}
.mli-v2__ask-row .mli-v2__ask-input{flex:1 1 auto;min-height:40px}
.mli-v2__ask-row .mli-v2__ask-send{min-height:40px;padding:0 .9rem;flex:none}
.mli-v2__ask-suggest{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem}
.mli-v2__ask-chip{min-height:0;padding:.3rem .6rem;border-radius:999px;font-size:.82em;font-weight:600;
 background:var(--mli-soft);color:var(--mli-forest);border:1px solid var(--mli-line)}
.mli-v2__ask-chip:hover{background:#e7f2e1}
.mli-v2__ask-note{margin:.5rem 0 0;font-size:.78em;opacity:.7}
