/* Modal de consulta (gate del tracker js/ac-tracker.js). Clases con prefijo .acm-* para no chocar con el sitio. */
.acm-dialog{--pad:24px;--azul:#12304A;--ring:0 0 0 3px rgba(18,48,74,.18);position:fixed;inset:0;margin:auto;border:none;border-radius:16px;padding:0;width:min(440px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);height:-moz-fit-content;height:fit-content;color:#12304A;overflow:visible;box-shadow:0 24px 64px rgba(0,0,0,.35)}
/* el reset del sitio (* {margin:0}) anula el margin:auto nativo del <dialog>: se repone aca */
/* 100dvh: en celular 100vh incluye la barra del navegador y el modal quedaba cortado abajo */
.acm-dialog:focus{outline:none}   /* el foco inicial va al dialog (autofocus), no a la X */
.acm-dialog::backdrop{background:rgba(18,48,74,.72)}   /* overlay con el azul del sitio */
/* solo opacity: un transform en el dialog volveria al panel fixed relativo al dialog */
.acm-dialog[open],.acm-dialog[open]::backdrop{animation:acm-in .18s ease-out}
@keyframes acm-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.acm-dialog[open],.acm-dialog[open]::backdrop{animation:none}}
.acm-box{padding:var(--pad);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;border-radius:16px}
/* el panel del combo es position:fixed (ver posicionar()), asi el scroll del modal no lo recorta */
.acm-head{display:flex;align-items:flex-start;gap:12px}
.acm-title{font:600 26px/1.2 'Newsreader',serif;margin:0;flex:1;padding-top:6px}
.acm-sub{font:400 15px/1.45 'Figtree',system-ui,sans-serif;color:#5f5f5f;margin:4px 0 0}
.acm-x{background:none;border:none;font-size:26px;line-height:1;color:#666;cursor:pointer;border-radius:8px;min-width:44px;min-height:44px;flex:0 0 auto;margin:-4px -10px 0 0;transition:background .12s}
.acm-x:hover{background:#f0f0f0;color:#111}
.acm-x:focus-visible{outline:none;box-shadow:var(--ring)}
.acm-field{margin-top:18px}
.acm-label{display:block;font:600 16px/1.3 'Figtree',system-ui,sans-serif;margin-bottom:6px}
.acm-hint{display:flex;align-items:flex-start;gap:6px;font:400 14px/1.4 'Figtree',system-ui,sans-serif;color:#5f5f5f;margin:-2px 0 8px;text-align:left}
.acm-hint svg{flex:0 0 auto;margin-top:2px;color:var(--azul)}
/* triggers (motivo y cobertura) e inputs comparten caja y estados (hover / foco / error) */
.acm-trigger,.acm-input{width:100%;min-height:48px;border:1px solid #d4d4d4;border-radius:8px;font:400 16px 'Figtree',system-ui,sans-serif;background-color:#fff;color:#111;box-sizing:border-box;transition:border-color .12s,box-shadow .12s}
.acm-trigger:hover,.acm-input:hover{border-color:#a3a3a3}
/* el foco es un anillo, no un borde de 2px: asi el padding no cambia y el texto no salta */
.acm-trigger:focus,.acm-trigger[aria-expanded="true"],.acm-input:focus{outline:none;border-color:var(--azul);box-shadow:var(--ring)}
.acm-bad,.acm-bad:hover{border-color:#d32f2f !important}
.acm-bad:focus{box-shadow:0 0 0 3px rgba(211,47,47,.18) !important}
.acm-err{display:none;align-items:center;gap:6px;color:#c62828;font:400 14px/1.35 'Figtree',system-ui,sans-serif;margin-top:6px}
.acm-err::before{content:"";flex:0 0 14px;height:14px;background:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c62828' stroke-width='2.4'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 7v6M12 16.5v.5'/%3E%3C/svg%3E") no-repeat center/14px}
.acm-err.acm-on{display:flex}
/* pie sticky: el CTA queda siempre a la vista aunque el modal scrollee (celular horizontal) */
/* bottom negativo: el sticky se mide desde el borde interno del padding; sin esto el pie
   sube --pad de mas y tapa el campo de cobertura */
.acm-foot{position:sticky;bottom:calc(-1 * var(--pad));margin:0 calc(-1 * var(--pad)) calc(-1 * var(--pad));padding:20px var(--pad) var(--pad);background:#fff;border-radius:0 0 16px 16px;transition:box-shadow .15s}
.acm-box.acm-scroll .acm-foot{box-shadow:0 -10px 16px -10px rgba(0,0,0,.18)}
.acm-cta{width:100%;min-height:52px;border:none;border-radius:12px;background:var(--azul);color:#fff;font:700 16px 'Figtree',system-ui,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;transition:background .12s,transform .06s}
.acm-cta:hover{background:#1C4666}
.acm-cta:active{transform:translateY(1px)}
.acm-cta:focus-visible{outline:3px solid rgba(18,48,74,.35);outline-offset:2px}
.acm-nota{font:400 13px/1.4 'Figtree',system-ui,sans-serif;color:#6b6b6b;margin:10px 0 0;text-align:center}

/* ---- combobox buscable ---- */
.acm-combo{position:relative}
.acm-trigger{padding:0 12px;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}
.acm-trigger svg{flex:0 0 auto;color:#737373}
.acm-chev{transition:transform .15s}
.acm-trigger[aria-expanded="true"] .acm-chev{transform:rotate(180deg)}
/* categoria del desplegable de motivo: divisor + titulo chico sin sangria (alineado al borde, no al texto) */
.acm-grp{margin-top:4px;padding:8px 14px 2px;border-top:1px solid #ebebeb;font:600 11px/1.3 'Figtree',system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:#8a8a8a;cursor:default}
.acm-grp:first-child{margin-top:0;padding-top:4px;border-top:0}
.acm-opt-d{display:block;font-size:12.5px;font-weight:400;color:#737373;line-height:1.3}
/* motivo: los textos largos ("TMS para Depresión / Ansiedad / TOC") bajan de renglon en vez
   de cortarse con "...": en 320px se perdia "TOC", que es justo lo que distingue la opcion */
#acm-mot-list .acm-opt-n{white-space:normal;line-height:1.3}
#acm-mot-trigger span{white-space:normal;line-height:1.3;padding:10px 0}
.acm-trigger.acm-ph{color:#767676}
.acm-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* fixed: left/top/bottom/width los pone posicionar() a partir del trigger */
.acm-panel{position:fixed;z-index:10;box-sizing:border-box;background:#fff;border:1px solid #d4d4d4;border-radius:10px;box-shadow:0 12px 36px rgba(0,0,0,.22);display:none;flex-direction:column;overflow:hidden}
.acm-panel.acm-open{display:flex}
.acm-shortcut{width:100%;border:none;border-bottom:1px solid #e5e5e5;background:#F3F7F9;color:var(--azul);font:500 14px 'Figtree',system-ui,sans-serif;padding:0 12px;text-align:left;cursor:pointer;display:flex;align-items:center;gap:8px;min-height:44px;white-space:nowrap}
.acm-shortcut svg{flex:0 0 auto}
.acm-shortcut:hover,.acm-shortcut:focus-visible{background:#EAF2F5;color:#1C4666;outline:none}
.acm-search-wrap{display:flex;align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid #e5e5e5}
.acm-search-ico{flex:0 0 auto;color:#a3a3a3}
.acm-search{flex:1;min-width:0;border:none;padding:13px 0;font:400 16px 'Figtree',system-ui,sans-serif;color:#111;background:transparent}
.acm-search:focus{outline:none}
.acm-search-wrap:focus-within{border-bottom-color:var(--azul)}
.acm-search-wrap:focus-within .acm-search-ico{color:var(--azul)}
.acm-list{list-style:none;margin:0;padding:6px 0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:240px;min-height:60px}
/* 40px de alto: mas compacto que 44 y holgado para el dedo (WCAG 2.2 pide 24 minimo) */
.acm-opt{padding:8px 14px;font:400 15px 'Figtree',system-ui,sans-serif;cursor:pointer;display:flex;align-items:center;gap:10px;min-height:40px;box-sizing:border-box;transition:background .12s}
.acm-opt:hover,.acm-opt.acm-act{background:#F1F6F8}
.acm-opt[aria-selected="true"]{background:#EAF2F5}
.acm-check{flex:0 0 16px;color:var(--azul);visibility:hidden;font-weight:700}
.acm-opt-row{display:flex;align-items:center;justify-content:space-between;flex:1;min-width:0;gap:12px}
.acm-opt-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.acm-opt[aria-selected="true"] .acm-opt-n{font-weight:700;color:var(--azul)}
.acm-cat{font-size:12px;color:#737373;flex:0 0 auto}
.acm-opt[aria-selected="true"] .acm-check{visibility:visible}
.acm-empty{padding:16px 12px 8px;font:400 14px/1.5 'Figtree',system-ui,sans-serif;color:#5f5f5f;text-align:center}
.acm-empty b{color:#111}
/* sub-campo "Otra": jerarquia menor que un campo de primer nivel */
.acm-otra{display:none;margin-top:12px}
.acm-otra.acm-on{display:block}
.acm-otra label{display:block;font:500 14px 'Figtree',system-ui,sans-serif;margin-bottom:6px}
.acm-input{padding:0 12px}
.acm-textarea{display:block;padding:11px 12px;min-height:72px;line-height:1.4;resize:vertical;font-family:'Figtree',system-ui,sans-serif}

@media(max-width:560px){
  .acm-title{font-size:21px}
  /* el panel tiene que entrar entero en pantalla: atajo+buscador ~90px */
  .acm-list{max-height:min(240px,32vh)}
}
@media(max-width:360px){
  .acm-dialog{--pad:18px;width:calc(100vw - 24px)}
  .acm-title{font-size:20px}
  .acm-hint{font-size:13px}
}
/* pantallas bajas (celular horizontal, teclado abierto): se compacta todo */
@media(max-height:560px){
  .acm-dialog{--pad:18px;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px)}
  .acm-box{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px)}
  .acm-title{font-size:20px;padding-top:4px}
  .acm-sub{display:none}
  .acm-field{margin-top:14px}
  .acm-foot{padding-top:14px}
  .acm-nota{display:none}
}
