.ui-dialog { width:min(29rem,calc(100% - 2rem)); max-height:calc(100dvh - 2rem); overflow:auto; margin:auto; padding:0; border:1px solid var(--border-strong); border-radius:1.2rem; background:var(--surface-raised); color:var(--text); box-shadow:0 1.5rem 6rem rgba(0,0,0,.3); opacity:0; transform:translateY(18px) scale(.98); transition:opacity 220ms,transform 280ms cubic-bezier(.2,.8,.2,1); }
.ui-dialog::backdrop { background:rgba(8,9,10,.6); backdrop-filter:blur(6px); opacity:0; transition:opacity 220ms; }
.ui-dialog.is-open,.ui-dialog.is-open::backdrop { opacity:1; }
.ui-dialog.is-open { transform:none; }
.ui-dialog__content { padding:1.65rem; }
.ui-dialog__top { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.2rem; }
.ui-dialog__symbol { width:2.9rem; height:2.9rem; display:grid; place-items:center; border-radius:.8rem; color:var(--accent-text); background:var(--accent-soft); }
.ui-dialog h2 { font-size:1.55rem; margin:.5rem 0 .9rem; }
.ui-dialog #ui-dialog-message { font-size:.95rem; color:var(--text-muted); line-height:1.65; }
.ui-dialog__actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:.6rem; margin-top:1.5rem; }

/* Shared secure-request, alert and callback surfaces. Also loaded by the chatbot. */
.ui-dialog,.callback-dialog,.request-preloader { box-sizing:border-box; font-family:var(--font-body,system-ui,sans-serif); color:var(--text,#252525); background:var(--surface-raised,var(--surface,#fff)); border:1px solid var(--border-strong,#aaa); overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
.ui-dialog { z-index:2147483646; }
.ui-dialog .ui-dialog__symbol svg,.ui-dialog [data-dialog-close] svg { width:1.4rem; height:1.4rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.ui-dialog [data-dialog-close] { width:2.6rem; height:2.6rem; display:grid; place-items:center; border:1px solid var(--border-strong,#aaa); border-radius:50%; background:transparent; color:inherit; cursor:pointer; }
.ui-dialog .ui-dialog__symbol { color:var(--accent-text,#734018); background:var(--accent-soft,#f3e8dc); flex:none; }
.ui-dialog[data-kind="error"] .ui-dialog__symbol,.ui-dialog[data-kind="warning"] .ui-dialog__symbol { color:#98251d; background:#fff0ed; }
.ui-dialog[data-kind="success"] .ui-dialog__symbol,.ui-dialog[data-kind="confirm"] .ui-dialog__symbol { color:#166438; background:#e4f4e9; }
.ui-dialog .panel-kicker { font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted,#555); }
.ui-dialog .button { display:inline-flex; align-items:center; justify-content:center; min-height:2.8rem; padding:.65rem 1.1rem; border:1px solid var(--border-strong,#aaa); border-radius:.6rem; font:inherit; font-size:.85rem; cursor:pointer; color:var(--text,#252525); background:var(--surface,#fff); user-select:none; }
.ui-dialog .button--primary { color:var(--on-accent,#fff); background:var(--accent,#734018); border-color:transparent; }
.ui-dialog button:focus-visible,.callback-dialog button:focus-visible { outline:3px solid var(--accent-text,#734018); outline-offset:3px; }
.request-preloader { z-index:2147483647; margin:auto; width:min(24rem,calc(100% - 2rem)); max-height:calc(100dvh - 2rem); overflow:auto; padding:1.5rem; border-radius:1.2rem; text-align:center; box-shadow:0 2rem 6rem #0005; }
.request-preloader::backdrop { background:rgb(8 9 10 / .72); backdrop-filter:blur(7px); }
.request-preloader h2 { font-size:1.15rem; margin:1rem 0 .6rem; line-height:1.4; }
.request-preloader p { font-size:.86rem; line-height:1.65; color:var(--text-muted,#555); margin:0; }
.request-verification { display:flex; justify-content:center; margin-top:1rem; }
.request-verification:empty { margin:0; }
.request-spinner { display:block; width:2.7rem; height:2.7rem; margin:auto; fill:none; stroke:var(--accent-text,#734018); stroke-width:2.5; animation:request-spin 1s linear infinite; }
.request-spinner circle { opacity:.18; }
.request-spinner path { stroke-linecap:round; }
@keyframes request-spin { to { transform:rotate(360deg); } }
.callback-dialog { z-index:2147483645; margin:auto; padding:1.35rem; width:min(33rem,calc(100% - 1.5rem)); max-height:calc(100dvh - 1.5rem); overflow:auto; border-radius:1.2rem; box-shadow:0 2rem 6rem #0005; opacity:0; transform:translateY(16px) scale(.98); transition:opacity .2s,transform .3s cubic-bezier(.2,.8,.2,1); }
.callback-dialog::backdrop { background:rgb(8 9 10 / .6); backdrop-filter:blur(6px); }
.callback-dialog.is-open { opacity:1; transform:none; }
.callback-dialog.is-closing { opacity:0; transform:translateY(10px) scale(.99); }
.callback-heading { display:flex; align-items:flex-start; gap:1rem; justify-content:space-between; padding-bottom:1rem; }
.callback-heading h2 { font-size:1.5rem; margin-top:.5rem; }
.callback-heading .icon-button { flex:none; }
.callback-dialog .contact-form-card { padding:0; border:0; background:transparent; }
.callback-dialog .contact-form-card > button { width:100%; }
.callback-dialog .field-hint { margin:0; }
.callback-dialog .form-field { margin-bottom:.85rem; }
.reply-method { margin:0 0 1rem; padding:0; border:0; min-width:0; }
.reply-method legend { font-size:.82rem; font-weight:650; margin-bottom:.55rem; }
.reply-method-options { display:flex; gap:.5rem; }
.reply-method-options label { position:relative; flex:1; cursor:pointer; }
.reply-method-options input { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
.reply-method-options span { display:block; text-align:center; padding:.6rem; border:1px solid var(--border-strong); border-radius:.55rem; color:var(--text); background:var(--bg); font-size:.85rem; transition:background-color .25s,border-color .25s; user-select:none; }
.reply-method-options input:checked + span { border-color:var(--accent-text); background:var(--accent-soft); color:var(--accent-text); }
.reply-method-options input:focus-visible + span { outline:2px solid var(--accent-text); outline-offset:3px; }
.form-field select { width:100%; min-width:0; border:1px solid var(--text-muted); border-radius:.45rem; background:var(--bg); color:var(--text); padding:.72rem .55rem; font:inherit; font-size:1rem; }
.form-field select:focus-visible { outline:2px solid var(--accent-text); outline-offset:3px; }
.form-field [aria-invalid="true"] { border-color:#b33929; outline:2px solid #b33929; outline-offset:2px; }
.form-field .field-hint { margin:.15rem 0 .35rem; }
.field-enter { animation:field-enter .3s ease both; }
@keyframes field-enter { from { opacity:.3; transform:translateY(5px); } to { opacity:1; transform:none; } }
.desktop-contact-dock > .contact-dock-actions { max-height:16rem; }
.contact-dock-actions > [data-callback-open] { font-size:.66rem; line-height:1.35; }
@media(max-width:68rem) { .bottom-bar { grid-template-columns:repeat(6,minmax(0,1fr)); } .bottom-bar > * { min-width:0; } }
@media(prefers-reduced-motion:reduce) { .request-spinner,.field-enter { animation:none; } .callback-dialog,.ui-dialog { transition:none; } }
html[data-a11y-reduce-motion="true"] :is(.request-spinner,.field-enter) { animation:none; }
html[data-a11y-reduce-motion="true"] :is(.callback-dialog,.ui-dialog) { transition:none; }
