.aa-widget { position: fixed; z-index: 2147483000; bottom: max(20px, env(safe-area-inset-bottom)); }
.aa-widget--left { left: max(20px, env(safe-area-inset-left)); }
.aa-widget--right { right: max(20px, env(safe-area-inset-right)); }
.aa-widget [hidden] { display: none !important; }
.aa-widget__backdrop { position: fixed; z-index: 2147483001; inset: 0; background: transparent; }
.aa-widget__toggle { position: relative; z-index: 2147483003; display: grid; width: 54px; height: 54px; padding: 0; place-items: center; border: 2px solid #fff; border-radius: 50%; background: var(--aa-brand, #0b4aa2); box-shadow: 0 8px 22px rgba(0,0,0,.26); color: #fff; cursor: pointer; font-size: 27px; line-height: 1; }
.aa-widget__toggle:hover, .aa-widget__toggle:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,0,0,.32); outline: 3px solid #ffbf00; outline-offset: 3px; }
.aa-panel { position: absolute; z-index: 2147483002; bottom: calc(100% + 12px); left: 0; width: min(390px, calc(100vw - 40px)); max-height: calc(100vh - 106px); margin: 0; padding: 0; overflow: auto; border: 0; border-radius: 14px; background: #fff; box-shadow: 0 18px 54px rgba(0,0,0,.32); color: #132238; font-family: inherit; }
.aa-widget--right .aa-panel { right: 0; left: auto; }
html.aa-panel-open { overflow: hidden; }
.aa-panel__header { display: flex; padding: 22px 22px 16px; align-items: flex-start; justify-content: space-between; gap: 12px; border-bottom: 1px solid #e7ebf0; }
.aa-panel__eyebrow { margin: 0 0 4px; color: var(--aa-brand, #0b4aa2); font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.aa-panel h2, .aa-panel h3 { margin: 0; color: #132238; }
.aa-panel h2 { font-size: 21px; line-height: 1.2; }
.aa-panel h3 { margin-bottom: 12px; font-size: 14px; }
.aa-panel__close { width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: #edf2f7; color: #132238; cursor: pointer; font-size: 25px; line-height: 1; }
.aa-panel__close:hover, .aa-panel__close:focus-visible { background: #dbe5ef; outline: 3px solid #ffbf00; }
.aa-panel__intro { margin: 16px 22px; color: #526274; font-size: 13px; line-height: 1.5; }
.aa-panel__section { padding: 18px 22px; border-top: 1px solid #e7ebf0; }
.aa-font-controls { display: grid; grid-template-columns: 44px 1fr 44px; margin-bottom: 12px; align-items: center; border: 1px solid #d7e0e9; border-radius: 8px; overflow: hidden; text-align: center; }
.aa-font-controls button { min-height: 40px; border: 0; background: #f4f7fa; color: #132238; cursor: pointer; font-weight: 800; }
.aa-font-controls button:hover, .aa-font-controls button:focus-visible { background: #e0eaf4; outline: 3px solid #ffbf00; outline-offset: -3px; }
.aa-font-controls span { color: #42536a; font-size: 13px; font-weight: 600; }
.aa-control { display: flex; min-height: 43px; align-items: center; gap: 11px; cursor: pointer; color: #25364a; font-size: 14px; }
.aa-control input { width: 18px; height: 18px; accent-color: var(--aa-brand, #0b4aa2); }
.aa-panel__actions { display: grid; gap: 9px; padding: 18px 22px 10px; border-top: 1px solid #e7ebf0; }
.aa-read-button, .aa-reset-button { width: 100%; min-height: 43px; border-radius: 7px; cursor: pointer; font: inherit; font-size: 14px; font-weight: 700; }
.aa-read-button { border: 1px solid var(--aa-brand, #0b4aa2); background: var(--aa-brand, #0b4aa2); color: #fff; }
.aa-reset-button { border: 1px solid #c9d3df; background: #fff; color: #25364a; }
.aa-read-button:hover, .aa-reset-button:hover, .aa-read-button:focus-visible, .aa-reset-button:focus-visible { filter: brightness(.94); outline: 3px solid #ffbf00; outline-offset: 2px; }
.aa-panel__status { min-height: 18px; margin: 0; padding: 0 22px 18px; color: #3b516c; font-size: 12px; line-height: 1.4; }

html.aa-high-contrast body, html.aa-high-contrast main, html.aa-high-contrast .elementor, html.aa-high-contrast .site, html.aa-high-contrast .site-content { background: #000 !important; color: #fff !important; }
html.aa-high-contrast body :is(p,h1,h2,h3,h4,h5,h6,li,dt,dd,figcaption,label,span) { color: #fff !important; text-shadow: none !important; }
html.aa-high-contrast body a { color: #ffec3d !important; text-decoration: underline !important; }
html.aa-high-contrast body :is(button,input,select,textarea,.elementor-button) { border-color: #fff !important; background-color: #000 !important; color: #fff !important; }
html.aa-high-contrast body img { filter: grayscale(1) contrast(1.25); }
html.aa-high-contrast .aa-panel { background: #000 !important; color: #fff !important; }
html.aa-high-contrast .aa-panel :is(h2,h3,p,span,label,button) { color: #fff !important; }
html.aa-high-contrast .aa-panel :is(.aa-font-controls,.aa-panel__header,.aa-panel__section,.aa-panel__actions) { border-color: #fff !important; }
html.aa-high-contrast .aa-panel :is(.aa-font-controls button,.aa-panel__close,.aa-reset-button) { background: #000 !important; color: #fff !important; }
html.aa-reading-spacing :is(main,[role="main"],.site-content,.elementor) :is(p,li,dd,figcaption,.elementor-widget-text-editor) { line-height: 1.8 !important; letter-spacing: .06em !important; word-spacing: .12em !important; }
html.aa-text-resized :is(main,[role="main"],.site-content,.elementor) :is(p,li,dd,dt,blockquote,figcaption,h1,h2,h3,h4,h5,h6,a,button,label,.elementor-heading-title,.elementor-widget-text-editor) { overflow-wrap: anywhere; word-break: normal; }
/* No aplicar el filtro al body: transformaría el sistema de coordenadas de los elementos fijos. */
html.aa-grayscale body > :not(.aa-widget):not(script):not(style):not(link) { filter: grayscale(1); }
html.aa-focus-visible *:focus-visible { outline: 4px solid #ffbf00 !important; outline-offset: 3px !important; }
html.aa-reduce-motion *, html.aa-reduce-motion *::before, html.aa-reduce-motion *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
html.aa-large-cursor body, html.aa-large-cursor body * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M4 2l21 15-10 1 5 10-5 2-5-10-6 7z' fill='white' stroke='black' stroke-width='2'/%3E%3C/svg%3E") 3 3, auto !important; }
@media (max-width: 600px) { .aa-widget { bottom: max(14px, env(safe-area-inset-bottom)); } .aa-widget--left { left: max(14px, env(safe-area-inset-left)); } .aa-widget--right { right: max(14px, env(safe-area-inset-right)); } .aa-widget__toggle { width: 50px; height: 50px; } .aa-panel { width: calc(100vw - 28px); max-height: calc(100vh - 88px); } }
@media (prefers-reduced-motion: reduce) { .aa-widget__toggle { transition: none; } }
