/* Consulta a petición del usuario, con desplazamiento propio y controles siempre accesibles. */
html.contact-dialog-open{overflow:hidden}
/* Follow the visible area above iOS keyboards, including Safari's viewport pan. */
.contact-dialog[open][data-visual-viewport]{position:fixed;inset:auto;left:50%;top:calc(var(--contact-visible-top) + var(--contact-visible-height)/2);transform:translate(-50%,-50%);margin:0;max-height:calc(var(--contact-visible-height) - 16px)}
.contact-dialog{box-sizing:border-box;width:min(720px,calc(100% - 40px));max-width:720px;max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:0 24px 90px #0005;overflow:auto;overscroll-behavior:contain;margin:auto}
.contact-dialog:not([open]){display:none}
.contact-dialog::backdrop{background:#071b2db3;backdrop-filter:blur(2px)}
.contact-dialog-heading{position:sticky;top:0;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;background:var(--surface);padding:26px 32px 22px;border-bottom:1px solid var(--line)}
.contact-dialog-heading .eyebrow{font-size:.6875rem;margin-bottom:10px}
.contact-dialog-heading h2{font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.035em;line-height:1.2}
.contact-dialog-close{flex:0 0 44px;display:grid;place-items:center;width:44px;height:44px;padding:0;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:50%;font-size:1.75rem;line-height:1;cursor:pointer}
.contact-dialog-form{padding:26px 32px 30px;display:flex;flex-direction:column;gap:18px}
.contact-dialog-form .form-row{gap:18px;min-width:0}
.contact-dialog-form label{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0;font-size:.875rem;color:var(--ink)}
.contact-dialog-form :is(input,select,textarea){box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink);font:inherit;font-size:1rem;line-height:1.45;scroll-margin-block:140px 24px}
.contact-dialog-form :is(input,textarea)::placeholder{color:var(--muted);opacity:1}
.contact-dialog-form select{min-height:48px}.contact-dialog-form textarea{resize:vertical;min-height:120px}
.contact-dialog-form .button{align-self:flex-start;min-height:48px}
.contact-dialog-form .form-note{font-size:.875rem;line-height:1.6;color:var(--muted);margin:0}
.contact-dialog-form .form-note a{text-decoration:underline;text-underline-offset:.18em}
.contact-dialog-form [role=status]{margin:0;font-size:1rem;line-height:1.6}
.contact-dialog-form [role=status]:empty{display:none}
.contact-dialog-form [role=status]:not(:empty){border-left:3px solid var(--blue);padding:12px 16px;background:var(--paper)}
.contact-dialog-form .field-error{color:#a82528;font-size:.875rem}
.contact-dialog-form .field-error:empty{display:none}
.contact-dialog-form [aria-invalid=true]{border-color:#a82528}
.contact-dialog-form :disabled{opacity:.65;cursor:wait}
html[data-theme=dark] .contact-dialog-form .field-error{color:#ffbfab}
html[data-theme=dark] .contact-dialog-form [aria-invalid=true]{border-color:#ffbfab}
@media(max-width:760px){.contact-dialog{width:calc(100% - 16px);max-width:none;max-height:calc(100dvh - 16px);border-radius:12px;margin:auto}.contact-dialog-heading{padding:18px 20px;gap:12px}.contact-dialog-form{padding:22px 20px max(24px,env(safe-area-inset-bottom));gap:18px}.contact-dialog-form .form-row{grid-template-columns:minmax(0,1fr);gap:18px}.contact-dialog-form .button{width:100%}.contact-dialog-heading h2{font-size:1.5rem}}

/* Compact spacing follows available height while retaining readable controls. */
.contact-dialog-form .field-hint{font-size:.8125rem;line-height:1.4;color:var(--muted)}
@media(max-height:850px){.contact-dialog{max-height:calc(100dvh - 24px)}.contact-dialog-heading{padding:16px 24px 14px}.contact-dialog-heading .eyebrow{margin-bottom:6px}.contact-dialog-form{padding:18px 24px 22px;gap:12px}.contact-dialog-form label{gap:5px}.contact-dialog-form .form-row{gap:12px}.contact-dialog-form :is(input,select,textarea){padding:10px 12px}.contact-dialog-form textarea{min-height:88px;height:88px}.contact-dialog-form .form-note{font-size:.8125rem;line-height:1.45}}
@media(max-width:760px){.contact-dialog{max-height:calc(100dvh - 16px)}.contact-dialog-heading{padding-inline:20px}.contact-dialog-form{padding-inline:20px;padding-bottom:max(24px,env(safe-area-inset-bottom))}}

/* Initial heading focus keeps the keyboard closed without a decorative focus ring. */
.contact-dialog #consulta-title:focus{outline:none;box-shadow:none}

/* Touch/click focus does not leave a keyboard navigation ring behind. */
html[data-input-mode=pointer] :is(a,button,summary):focus{outline:none!important;box-shadow:none!important}
.contact-dialog{scrollbar-width:thin;scrollbar-color:var(--muted) var(--surface)}
.contact-scrollbar{position:absolute;top:calc(100% + 6px);right:4px;width:4px;height:var(--contact-track-height);border-radius:4px;background:var(--line);pointer-events:none}
.contact-scrollbar[hidden]{display:none}
.contact-scrollbar span{display:block;width:100%;height:var(--contact-thumb-height);transform:translateY(var(--contact-thumb-top));background:var(--muted);border-radius:4px}
@media(pointer:coarse){.contact-dialog:has(.contact-scrollbar:not([hidden])){scrollbar-width:none}.contact-dialog:has(.contact-scrollbar:not([hidden]))::-webkit-scrollbar{display:none}}
@media(pointer:fine){.contact-scrollbar{display:none}.contact-dialog{scrollbar-gutter:stable}.contact-dialog::-webkit-scrollbar{width:10px}.contact-dialog::-webkit-scrollbar-thumb{background:var(--muted);border:2px solid var(--surface);border-radius:8px}.contact-dialog::-webkit-scrollbar-track{background:var(--surface)}}
.contact-receipt{max-width:460px}
.contact-receipt-copy{padding:32px}
.contact-receipt-copy h2{font-size:1.75rem;line-height:1.2;letter-spacing:-.04em}
.contact-receipt-copy h2:focus{outline:none;box-shadow:none}
.contact-receipt-copy p{margin:16px 0 24px;color:var(--muted)}
.contact-receipt-copy .button{min-height:48px}
.contact-dialog-form [data-state=error]{border-left-color:#a82528}
html[data-theme=dark] .contact-dialog-form [data-state=error]{border-left-color:#ffbfab}
