.qf-trigger,.qf-panel { font-family: inherit; color: #102a43; }
/* Shared coordinates keep the public floating actions together, including on
   pages that use the older back-to-top utility classes. */
body:has(.qf-trigger) { --qf-edge: 20px; --qf-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); --qf-action-size: 44px; --qf-action-gap: 12px; }
.qf-trigger { position: fixed; right: var(--qf-edge); bottom: var(--qf-bottom); z-index: 60; display: flex; gap: 12px; align-items: center; justify-content: center; min-height: var(--qf-action-size); padding: 10px 16px; border: 2px solid #a16207; border-radius: 12px; background: linear-gradient(135deg, #ca8a04 0%, #eab308 100%); font-weight: 700; font-size: .875rem; line-height: 20px; box-shadow: 0 6px 24px #102a4326; opacity: .8; transition: opacity .2s ease, box-shadow .2s ease; cursor: pointer; }
body:has(#scrollToTop) .qf-trigger { right: calc(var(--qf-edge) + var(--qf-action-size) + var(--qf-action-gap)); max-width: calc(100vw - var(--qf-edge) * 2 - var(--qf-action-size) - var(--qf-action-gap)); }
body:has(.qf-trigger) #scrollToTop { right: var(--qf-edge); bottom: var(--qf-bottom); width: var(--qf-action-size); height: var(--qf-action-size); min-height: var(--qf-action-size); }
.qf-trigger:hover,.qf-trigger:focus-visible,.qf-trigger[aria-expanded="true"] { opacity: 1; box-shadow: 0 8px 28px rgba(234,179,8,.3); }
.qf-trigger[hidden],.qf-panel [hidden] { display: none !important; }
.qf-panel { position: fixed; inset: auto 24px calc(20px + env(safe-area-inset-bottom, 0px)) auto; margin: 0; width: min(440px, calc(100% - 32px)); max-height: calc(100dvh - 40px); overflow-y: auto; padding: 28px; border: 1px solid #d9e2ec; border-top: 4px solid #eab308; border-radius: 16px; background: #fff; box-shadow: 0 24px 80px #102a4340; }
.qf-panel[open] { animation: qf-rise .2s ease-out; }
.qf-panel::backdrop { background: #102a4359; }
.qf-panel * { box-sizing: border-box; }
.qf-header { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.qf-panel .qf-eyebrow { margin: 0 0 6px; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #627d98; }
.qf-panel h2 { margin: 0; color: #102a43; font-size: 1.5rem; font-weight: 700; line-height: 1.25; }
.qf-panel p { font-size: .95rem; line-height: 1.6; color: #486581; margin: 12px 0 20px; }
.qf-close { flex-shrink: 0; width: 44px; height: 44px; margin: -10px -12px 0 0; border-radius: 8px; background: #f0f4f8; color: #334e68; font-size: 1.75rem; cursor: pointer; }
.qf-form .form-group { margin-bottom: 16px; }
.qf-form label { display: block; font-size: .875rem; font-weight: 600; margin-bottom: 6px; }
.qf-form input,.qf-form textarea { display: block; width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #9fb3c8; border-radius: 8px; background: #fff; color: #102a43; font: inherit; font-size: 16px; }
.qf-form textarea { resize: vertical; }
.qf-send { width: 100%; min-height: 48px; padding: 12px; border-radius: 8px; background: #102a43; color: #fff; font-weight: 600; cursor: pointer; }
.qf-send:hover { background: #243b53; }
.qf-send:disabled { opacity: .65; cursor: wait; }
.qf-trigger:focus-visible,.qf-panel button:focus-visible,.qf-panel a:focus-visible,.qf-form input:focus,.qf-form textarea:focus { outline: 3px solid #ca8a04; outline-offset: 3px; }
.qf-panel .qf-note { margin: 12px 0 0; font-size: .75rem; }
.qf-note a { text-decoration: underline; text-underline-offset: 2px; }
.qf-panel .qf-error,.qf-form .invalid-feedback,.qf-form .form-error-summary { color: #a61b1b; font-size: .875rem; }
.qf-error:empty { display: none; }
.qf-form [aria-invalid="true"] { border-color: #a61b1b; }
.qf-success { text-align: center; padding-top: 16px; }
.qf-check { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #e3f9e5; color: #216e39; font-size: 28px; }
.qf-success h3 { margin-top: 16px; font-size: 1.25rem; font-weight: 700; }
@keyframes qf-rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 480px) { body:has(.qf-trigger) { --qf-edge: 16px; } .qf-panel { right: 16px; padding: 22px; max-height: calc(100dvh - 32px); } }
@media (prefers-reduced-motion: reduce) { .qf-panel[open] { animation: none; } .qf-trigger { transition: none; } }
@media print { .qf-trigger,.qf-panel { display: none !important; } }
