/* Mini Mical - widget de ayuda pública, sin estilos globales invasivos */
.mm-root, .mm-root * { box-sizing: border-box; }
.mm-root { --mm-burgundy:#702747; --mm-ink:#381b2c; --mm-cream:#fff9f6; --mm-border:#ecdadd; --mm-focus:#144c9e; font-family:system-ui,-apple-system,Segoe UI,sans-serif; font-size:15px; color:var(--mm-ink); position:relative; z-index:1100; }
.mm-root [hidden] { display:none !important; }
.mm-root button, .mm-root a { font-family:inherit; }
.mm-root button:focus-visible,.mm-root a:focus-visible {outline:3px solid var(--mm-focus);outline-offset:3px;}
.mm-launcher {position:fixed;right:18px;bottom:18px;width:77px;height:77px;border-radius:50%;border:3px solid #fff;background:#f9e6e7;box-shadow:0 8px 25px #54213740;cursor:pointer;z-index:1135;padding:0;isolation:isolate;}
.mm-launcher img {width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center;display:block;}
.mm-launcher-spark {position:absolute;right:-4px;top:0;color:#a36a33;font-size:20px;animation:mm-spark 4s infinite;}
.mm-launcher-hint {position:absolute;right:76px;top:17px;white-space:nowrap;background:#fff;color:#662440;border:1px solid var(--mm-border);border-radius:15px;padding:10px 13px;font-weight:700;font-size:12px;box-shadow:0 5px 19px #43243e20;pointer-events:none;}
.mm-launcher:hover {box-shadow:0 9px 28px #54213766;}
.mm-panel {position:fixed;right:20px;bottom:107px;width:min(385px,calc(100vw - 28px));max-height:min(650px,calc(100dvh - 125px));overflow:hidden;display:flex;flex-direction:column;background:#fffaf8;border:1px solid #edd6da;border-radius:24px;box-shadow:0 18px 65px #28141c52;z-index:1136;animation:mm-appear .23s ease-out;line-height:1.45;text-align:left;}
.mm-head {background:linear-gradient(105deg,#762945,#5c1a39);color:white;padding:14px 17px;display:flex;justify-content:space-between;align-items:center;flex:0 0 auto;}
.mm-head-brand {display:flex;align-items:center;gap:12px;} .mm-head-brand>span {font-size:26px;color:#f6c9a5;} .mm-head strong {display:block;font-family:Georgia,serif;font-size:20px;line-height:1.1;} .mm-head small{display:block;opacity:.89;font-size:11px;margin-top:3px;}
.mm-icon-button {color:white!important;background:transparent;border:0;font-size:28px;line-height:1;min-width:40px;min-height:40px;cursor:pointer;border-radius:10px;}
.mm-icon-button:hover {background:#ffffff24;}
.mm-panel-inner {padding:13px 15px 12px;overflow:auto;overscroll-behavior:contain;}
.mm-welcome {display:flex;align-items:center;gap:12px;background:white;border:1px solid var(--mm-border);border-radius:17px;padding:9px;margin-bottom:14px;box-shadow:0 5px 15px #6d35570b;}
.mm-welcome img {width:72px;height:72px;border-radius:15px;object-fit:cover;object-position:center;flex:none;}
.mm-welcome strong {font-size:15px;} .mm-welcome p {margin:4px 0 0;font-size:12px;line-height:1.5;color:#5b4d56;}
.mm-label {font-weight:800;font-size:12px;margin:0 0 9px;color:#742d4b;}
.mm-actions {display:grid;gap:7px;} .mm-action {display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--mm-border);border-radius:12px;padding:9px 11px;min-height:43px;width:100%;text-decoration:none!important;color:#522037!important;text-align:left;cursor:pointer;font-weight:650;font-size:12.5px;line-height:1.2;transition:transform .16s,background .16s,border-color .16s;}
.mm-action>span:first-child {display:grid;place-items:center;background:#fcf0ef;width:31px;height:31px;border-radius:10px;flex:none;font-size:16px;} .mm-action>span:nth-child(2){flex:1;} .mm-action b{font-size:22px;font-weight:400;line-height:1;}
.mm-action:hover{transform:translateY(-2px);background:#fff5f6;border-color:#bf9aa8;}
.mm-back{border:0;background:transparent;padding:7px 0;color:#782c4c;text-decoration:underline;font-size:12px;cursor:pointer;margin-bottom:8px;}
.mm-step-info {display:flex;justify-content:space-between;color:#7a3452;font-size:11px;font-weight:800;letter-spacing:.02em;margin-top:5px;} .mm-steps {display:flex;gap:5px;margin:9px 0 15px;}
.mm-step-dot {height:5px;flex:1;border-radius:12px;background:#ead8df;}.mm-step-dot.active {background:#752d4e;}
.mm-screen h2 {font-size:18px;color:#482036;line-height:1.22;margin:8px 0 9px;font-family:Georgia,serif;font-weight:700;}
.mm-screen p {font-size:13px;color:#594b54;line-height:1.6;margin:0 0 12px;}
.mm-go {display:inline-flex;align-items:center;gap:8px;background:#f4e7eb;border:1px solid #dfc2cb;border-radius:10px;padding:10px 13px;color:#702747!important;text-decoration:none!important;font-size:12px;font-weight:800;}
.mm-go:hover {background:#eed8e0;}
.mm-guide-nav {display:flex;justify-content:space-between;gap:9px;margin-top:15px;}
.mm-outline,.mm-primary {border-radius:10px;min-height:42px;padding:9px 15px;font-size:12px;font-weight:750;cursor:pointer;border:1px solid #dfc4cf;}
.mm-outline {background:white;color:#6d3557;} .mm-primary {background:#722c4f;color:#fff;border-color:#722c4f;}
.mm-outline:hover {background:#fcf1f3;} .mm-primary:hover {background:#552039;}
.mm-outline:disabled {opacity:.4;cursor:not-allowed;}
.mm-controls {display:flex;gap:8px;border-top:1px solid #eddee2;padding-top:12px;margin-top:14px;}
.mm-control {display:flex;gap:7px;align-items:center;justify-content:center;flex:1;padding:9px 8px;min-height:42px;background:#fff;border:1px solid #e9d5dc;border-radius:10px;font-size:12px;font-weight:750;color:#652540;cursor:pointer;}
.mm-control:hover {background:#f7eaee;} .mm-live {min-height:0;margin:5px 0 0!important;font-size:11px!important;color:#5c3750!important;}
.mm-settings-intro {margin:0 0 13px!important;}.mm-switches {display:grid;gap:7px;}
.mm-switch {display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid var(--mm-border);border-radius:10px;width:100%;padding:10px 11px;text-align:left;font-size:13px;font-weight:680;color:#462436;cursor:pointer;min-height:46px;}
.mm-toggle {display:inline-block;background:#e9dadd;width:35px;height:20px;border-radius:30px;position:relative;flex:none;transition:background .18s;}
.mm-toggle:before {content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .18s;}
.mm-switch[aria-pressed="true"] .mm-toggle {background:#712948;} .mm-switch[aria-pressed="true"] .mm-toggle:before {transform:translateX(15px);}
@keyframes mm-spark {0%,80%,100%{opacity:.45}50%{opacity:1;transform:scale(1.16)}}
@keyframes mm-appear {from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
/* The widget and the existing WhatsApp CTA each remain accessible. */
body:has(.mm-root) .whatsapp-float {bottom:108px;}
body:has(.mm-root) .back-to-top {bottom:178px;}
@media(max-width:640px){
 .mm-launcher{left:14px;right:auto;bottom:18px;width:66px;height:66px;}
 .mm-launcher-hint{left:68px;right:auto;top:13px;font-size:11px;}
 .mm-panel{right:10px;left:10px;bottom:95px;width:auto;max-height:calc(100dvh - 115px);border-radius:19px;}
 body:has(.mm-root) .whatsapp-float{right:14px;bottom:19px;}
 body:has(.mm-root) .back-to-top{right:15px;bottom:92px;}
 body:has(.mobile-booking-cta) .mm-launcher {bottom:calc(84px + env(safe-area-inset-bottom));}
 body:has(.mobile-booking-cta) .mm-panel {bottom:calc(157px + env(safe-area-inset-bottom));max-height:calc(100dvh - 170px - env(safe-area-inset-bottom));}
 body:has(.mobile-booking-cta) .whatsapp-float{bottom:calc(84px + env(safe-area-inset-bottom));}
 body:has(.mobile-booking-cta) .back-to-top{bottom:calc(155px + env(safe-area-inset-bottom));}
}
@media(max-width:360px){.mm-panel-inner{padding:10px;} .mm-launcher-hint{display:none;} .mm-head{padding:11px 13px;}}
@media(max-height:540px){.mm-panel{max-height:calc(100dvh - 115px);}.mm-welcome img{width:54px;height:54px;}}
@media(prefers-reduced-motion:reduce){.mm-root *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}
html.mm-no-motion *,html.mm-no-motion *::before,html.mm-no-motion *::after {animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important;}
html.mm-large-text {font-size:112.5%!important;}
html.mm-large-text .mm-root {font-size:17px;}
html.mm-large-text .mm-root .mm-screen p {font-size:15px;}
html.mm-large-text .mm-root .mm-action {font-size:15px;}
html.mm-large-text .mm-root .mm-welcome p {font-size:14px;}
html.mm-contrast {--brand-primary:#4a0c2c!important;--brand-primary-dark:#290017!important;--brand-text:#23101b!important;--brand-line:#693c51!important;}
html.mm-contrast .mm-panel {background:#fff!important;border:3px solid #4b102b!important;color:#210716;}
html.mm-contrast .mm-action,html.mm-contrast .mm-welcome,html.mm-contrast .mm-switch {border:2px solid #4b102b;}
html.mm-contrast .mm-screen p,html.mm-contrast .mm-welcome p {color:#241017;}
html.mm-contrast a:focus-visible,html.mm-contrast button:focus-visible,html.mm-contrast input:focus-visible {outline:3px solid #004eaf!important;outline-offset:2px;}

/* Mini Mical v2: ilustración contextual por cada acción. */
.mm-scene {
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  overflow:hidden;min-height:112px;margin:2px 0 11px;padding:6px 12px;
  border:1px solid #f0dce0;border-radius:15px;
  background:linear-gradient(110deg,#fff2ec,#fffaf7 70%);
}
.mm-scene img {
  display:block;align-self:flex-end;width:124px;height:124px;
  object-fit:contain;object-position:center bottom;flex:none;
  filter:drop-shadow(0 4px 8px #5c2b4020);
}
.mm-scene span {
  max-width:155px;flex:1;color:#672946;text-align:left;
  font-size:13px;font-weight:750;line-height:1.4;
}
.mm-welcome img {object-fit:cover;object-position:50% 27%;background:#fff4ed;}
.mm-launcher img {object-position:50% 25%;}
.mm-scene img,.mm-welcome img {transition:opacity .15s ease;}
@media(max-height:650px){.mm-scene{min-height:82px}.mm-scene img{width:98px;height:98px}}
@media(max-width:360px){.mm-scene img{width:104px;height:104px}.mm-scene span{font-size:12px}}

/* Mini Mical v3: recorrido visual no invasivo y orientación contextual. */
.mm-point-action {display:inline-flex;justify-content:center;align-items:center;border:1px solid #803356;border-radius:10px;padding:10px 12px;background:#762a4e;color:white;font-weight:750;min-height:42px;margin:10px 0 0 8px;font-size:12px;cursor:pointer;}
.mm-point-action:hover {background:#5b2040;}
.mm-root .mm-spotlight[hidden] {display:none!important;}
.mm-spotlight {position:fixed;inset:0;z-index:1150;pointer-events:none;}
.mm-highlight-outline {position:fixed;pointer-events:none;border:3px solid #862d58;border-radius:12px;box-shadow:0 0 0 5px #fff8f1,0 0 0 9px #862d5870,0 5px 32px #39142733;transition:left .12s,top .12s,width .12s,height .12s;}
.mm-spotlight-card {position:fixed;pointer-events:auto;width:min(340px,calc(100vw - 24px));background:#fffaf7;color:#371629;border:2px solid #b78599;border-radius:18px;box-shadow:0 12px 40px #32132238;padding:13px 14px;line-height:1.45;}
.mm-spotlight-title {display:flex;gap:10px;align-items:center;}
.mm-spotlight-title img {height:47px;width:47px;object-fit:cover;border-radius:12px;flex:none;}
.mm-spotlight-title small {display:block;color:#844765;letter-spacing:.03em;font-size:10px;font-weight:800;}
.mm-spotlight-title strong {display:block;font-size:15px;font-weight:750;}
.mm-spotlight-card p {font-size:13px;line-height:1.5;color:#4b3541;margin:9px 0 12px;}
.mm-spotlight-actions {display:flex;gap:8px;align-items:center;justify-content:space-between;}
.mm-spotlight-actions button {font-size:11px;padding:8px 10px;min-height:40px;}
.mm-spotlight-card button:focus-visible {outline:3px solid #144c9e;outline-offset:2px;}
.mm-tracker {border:1px solid #ecd3db;border-radius:14px;padding:11px;margin:8px 0 14px;background:#fff;}
.mm-tracker .mm-info {font-size:12px;margin:0 0 10px;}
.mm-tracker-steps {display:grid;gap:7px;}
.mm-tracker-steps>div {position:relative;padding:7px 9px 7px 29px;background:#fff7f4;border:1px solid #f4e4e6;border-radius:9px;}
.mm-tracker-steps>div::before {content:'✓';position:absolute;left:8px;top:8px;border-radius:100%;font-size:10px;color:#7a3451;font-weight:850;}
.mm-tracker-steps strong {display:block;font-size:12px;}
.mm-tracker-steps small {display:block;font-size:11px;color:#685462;}
.mm-finder-choices {display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0;}
.mm-finder-choices button {background:white;border:1px solid #e4cbd2;border-radius:10px;min-height:41px;padding:8px;color:#61253e;font-size:12px;font-weight:700;text-align:left;cursor:pointer;}
.mm-finder-choices button:hover,.mm-finder-choices button[aria-pressed=true] {background:#f5e6ed;border-color:#8c4563;}
.mm-suggestion {display:block;text-align:left;width:100%;margin:6px 0;padding:9px 11px;border:1px solid #e5ccd5;border-radius:10px;background:#fff;color:#50233e;font-size:12px;font-weight:700;cursor:pointer;}
.mm-suggestion:hover {background:#fff1f5;}
.mm-info {font-size:12px!important;margin-top:10px!important;color:#5b4552!important;}
.mm-all-services {display:inline-block;color:#702747!important;margin-top:6px;font-weight:700;font-size:12px;}
.mm-found-service {position:relative;z-index:3;outline:4px solid #823457!important;outline-offset:5px!important;border-radius:12px;box-shadow:0 0 0 8px #f6d9e2a3;}
.mm-portal-help {display:block;border:1px solid #b28c9e;border-radius:11px;background:#f9e9ed;color:#632440;padding:9px 14px;cursor:pointer;margin:13px 0;font-weight:700;font-size:13px;}
.mm-portal-help:focus-visible {outline:3px solid #144c9e;outline-offset:2px;}
/* La accesibilidad se aplica también al contenido público, nunca solo al asistente. */
html.mm-large-text body {font-size:1.125rem;}
html.mm-large-text body :is(p,label,input,select,textarea,button,.nav-link,.service-preview,.service-more,.service-meta,.portal,.auth-card) {font-size:max(1rem,1em);}
html.mm-contrast body {background-color:#fff!important;color:#1b0711!important;}
html.mm-contrast body :is(p,h1,h2,h3,h4,label,.service-card,.portal,.auth-card) {color:#25101a!important;}
html.mm-contrast body :is(a,button,input,select,textarea):focus-visible {outline:3px solid #004eaf!important;outline-offset:3px!important;}
html.mm-contrast .mm-spotlight-card {background:#fff!important;border-color:#4a0c2c!important;}
html.mm-contrast .mm-spotlight-card p {color:#250c1c!important;}
@media(max-width:390px){.mm-finder-choices {grid-template-columns:1fr;}.mm-spotlight-card {max-width:calc(100vw - 24px)}.mm-point-action{display:flex;width:100%;margin:9px 0 0;}}
@media(prefers-reduced-motion:reduce){.mm-highlight-outline{transition:none!important;}}
html.mm-no-motion .mm-highlight-outline{transition:none!important;}
