/* A shared request dialog; the page form keeps its existing dark treatment. */
html.is-request-open { overflow: hidden; }
body.is-request-open {
 position: fixed;
 top: var(--request-scroll-top);
 left: 0;
 width: 100%;
 overflow: hidden;
 padding-right: var(--request-scrollbar-gap, 0px);
}
.request-modal {
 --request-frame-space: 40px;
 --request-close-space: 0px;
 width: min(780px, calc(100% - var(--request-frame-space)));
 max-width: none;
 max-height: calc(100vh - var(--request-frame-space));
 max-height: calc(100dvh - var(--request-frame-space));
 margin: auto;
 padding: var(--request-close-space) 60px 0;
 border: 0;
 color: var(--ink);
 background: transparent;
 overflow: visible;
}
.request-modal:not([open]) { display: none; }
.request-modal[open] { animation: request-enter .32s var(--ease) both; }
.request-modal::backdrop { background: #14271f80; }
.request-modal[open]::backdrop { animation: request-shade-in .32s ease-out both; }
.request-modal.is-closing { animation: request-exit .2s ease-in both; pointer-events: none; }
.request-modal.is-closing::backdrop { animation: request-shade-out .2s ease-in both; }
.request-modal__panel {
 position: relative;
 isolation: isolate;
 max-height: calc(100vh - var(--request-frame-space) - var(--request-close-space));
 max-height: calc(100dvh - var(--request-frame-space) - var(--request-close-space));
 padding: 44px;
 border: 1px solid var(--line);
 border-radius: var(--radius);
 background: var(--paper);
 box-shadow: 0 24px 80px #14271f38;
 overflow: auto;
 overscroll-behavior: contain;
 scrollbar-width: thin;
 scrollbar-color: #819b8d var(--paper);
}
.request-modal__panel::before {
 content: "";
 position: absolute;
 z-index: -1;
 top: 0;
 right: 0;
 width: min(84%, 560px);
 height: 544px;
 background: url('images/request-fabric-background.webp') right top / contain no-repeat;
 opacity: .3;
 mask-image: linear-gradient(to bottom, #000 35%, transparent 100%);
 pointer-events: none;
}
.request-modal__close {
 position: absolute;
 top: 0;
 right: 0;
 display: grid;
 place-items: center;
 width: 48px;
 height: 48px;
 padding: 6px;
 border: 0;
 border-radius: var(--radius);
 background: var(--paper);
 color: var(--green);
 cursor: pointer;
 transition: background .2s;
}
.request-modal__close:hover { background: var(--sage); }
.request-modal__close:focus-visible { outline: 2px solid var(--white); outline-offset: 3px; }
.request-modal__close svg { width: 36px; height: 36px; }
.request-modal__title { padding-right: 16px; font-size: 34px; line-height: 1.35; text-wrap: balance; }
.request-modal__title:focus { outline: none; }
.request-modal .callback-form { display: grid; gap: 20px; margin-top: 28px; }
.request-modal .form-row { grid-template-columns: minmax(0, 1fr) minmax(280px, 1fr); gap: 20px; margin: 0; align-items: start; }
.request-modal .callback-field { display: grid; gap: 8px; min-width: 0; color: var(--ink); font-size: 14px; line-height: 1.5; }
.callback-field__label { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; min-height: 24px; font-weight: 500; }
.request-modal .callback-field input,
.request-modal .callback-field textarea { width: 100%; min-width: 0; min-height: 52px; background: var(--white); border: 1px solid #829389; border-radius: var(--radius); padding: 12px 14px; font: inherit; font-size: 16px; line-height: 1.5; color: var(--ink); caret-color: var(--green); transition: border-color .18s ease; }
.request-modal .callback-field input::placeholder,
.request-modal .callback-field textarea::placeholder { color: var(--muted); opacity: .65; }
.request-modal .callback-field input:hover,
.request-modal .callback-field textarea:hover { border-color: var(--muted); }
.request-modal .callback-field input:focus,
.request-modal .callback-field textarea:focus { border-color: var(--green); outline: none; }
.request-modal .callback-field textarea { min-height: 104px; max-height: 240px; resize: vertical; }
.request-modal .iti,
.callback-country-selector {
 --iti-hover-color: var(--sage);
 --iti-border-color: var(--line);
 --iti-country-selector-bg: var(--white);
 --iti-icon-color: var(--green);
 font-family: var(--body);
 font-size: 14px;
 color: var(--ink);
}
/* Keep relative sprite URLs in the declaration that consumes them. */
.request-modal .iti__flag:not(.iti__globe):not(.iti__loading) {
 background-image: url('vendor/intl-tel-input/flags.webp');
 background-image: image-set(url('vendor/intl-tel-input/flags.webp') 1x, url('vendor/intl-tel-input/flags-2x.webp') 2x);
}
.request-modal .callback-field > .iti { display: block; min-width: 0; }
.request-modal .iti__selected-country { --iti-hover-color: transparent; padding-right: 10px; border: 0; border-radius: var(--radius) 0 0 var(--radius); }
.request-modal .iti__selected-country:enabled:is(:hover, [aria-expanded="true"]) { background: var(--sage); }
/* Bootstrap Icons chevron-down, MIT; embedded unchanged for file:// preview support. */
.request-modal .iti__arrow { width: 12px; height: 12px; flex-shrink: 0; margin-top: 0; border: 0; background-color: currentColor; mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22currentColor%22%20class%3D%22bi%20bi-chevron-down%22%20viewBox%3D%220%200%2016%2016%22%3E%0A%20%20%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M1.646%204.646a.5.5%200%200%201%20.708%200L8%2010.293l5.646-5.647a.5.5%200%200%201%20.708.708l-6%206a.5.5%200%200%201-.708%200l-6-6a.5.5%200%200%201%200-.708%22%2F%3E%0A%3C%2Fsvg%3E") center / contain no-repeat; transform: none; }
.request-modal .iti__arrow--up { transform: rotate(180deg); }
.request-modal .iti__selected-country:focus-visible { outline: 2px solid var(--green); outline-offset: -3px; }
.request-modal .iti__selected-dial-code { font-size: 14px; font-weight: 500; }
/* Match the library's off-dialog measurement and keep the list inside its panel. */
.callback-country-selector { display: flex; flex-direction: column; overflow: hidden; background: var(--white); border-radius: var(--radius); box-shadow: 0 12px 32px #14271f26; }
.callback-country-selector.iti__hide { display: none; }
.callback-country-selector .iti__search-input-wrapper { flex: 0 0 auto; }
.callback-country-selector .iti__search-input { min-height: 44px; background: var(--white); color: var(--ink); font-size: 16px; }
.callback-country-selector .iti__search-input::placeholder { color: var(--muted); opacity: .65; }
.callback-country-selector .iti__search-input:focus { outline: 2px solid var(--green); outline-offset: -2px; }
.callback-country-selector .iti__country { min-height: 44px; gap: 4px; }
.callback-country-selector .iti__country-list { flex: 1 1 auto; min-height: 0; max-height: min(220px, 35dvh); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #819b8d var(--paper); }
.callback-country-selector .iti__dial-code { color: var(--muted); }
.request-modal .callback-form .form-status:empty { display: none; }
.request-modal .callback-form .form-status { margin: 0; }
.request-modal .form-note { color: var(--muted); }
.request-modal .callback-form .callback-consent { display: flex; align-items: flex-start; gap: 12px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; cursor: pointer; }
.request-modal .callback-form .callback-consent input { flex: 0 0 18px; width: 18px; height: 18px; min-width: 18px; margin: 2px 0 0; padding: 0; accent-color: var(--green); cursor: pointer; }
.callback-consent a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
#callback-consent-error { margin: 0; }
.request-modal .callback-form .button { width: 100%; min-height: 54px; font-size: 16px; margin: 0; }
.request-modal .callback-form .button:disabled { opacity: .7; cursor: wait; }
.callback-optional { display: inline-block; flex-shrink: 0; margin-inline-start: auto; padding: 1px 5px; border-radius: var(--radius); background: var(--sage); color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.4; white-space: nowrap; }
.callback-error { grid-column: 1 / -1; color: #a33131; font-size: 14px; line-height: 1.45; }
.callback-error:empty { display: none; }
.request-modal .callback-field [aria-invalid="true"] { border-color: #a33131; }
.callback-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.callback-alternative { margin-top: 12px; font-size: 14px; color: var(--muted); }
.callback-alternative a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.callback-success { margin-top: 24px; }
.callback-success > svg { width: 48px; height: 48px; color: var(--green); }
.callback-success > p { margin-top: 20px; font-size: 16px; color: var(--muted); max-width: 42ch; }
.callback-success .button { margin-top: 28px; }
.request-modal [hidden] { display: none; }
.request-modal .form-status { color: var(--green); }
.request-modal .form-status a { text-underline-offset: 3px; }
@keyframes request-enter { from { opacity: 0; transform: translateY(20px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes request-exit { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(10px) scale(.99); } }
@keyframes request-shade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes request-shade-out { from { opacity: 1; } to { opacity: 0; } }
@media (max-width: 820px) {
 .request-modal { --request-close-space: 60px; width: min(660px, calc(100% - var(--request-frame-space))); padding-inline: 0; }
}
@media (max-width: 720px) {
 .request-modal .form-row { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
 .request-modal { --request-frame-space: 24px; }
 .request-modal__panel { padding: 52px 24px 28px; }
 .request-modal__panel::before { width: 65%; height: 220px; opacity: .22; }
 .request-modal__title { font-size: clamp(26px, 6.2vw, 32px); padding-right: 0; }
 .request-modal .callback-form { margin-top: 24px; }
}
@media (prefers-reduced-motion: reduce) {
 .request-modal[open], .request-modal[open]::backdrop { animation: none; }
 .request-modal__close, .request-modal .callback-field input, .request-modal .callback-field textarea { transition: none; }
}
