/* Shared preliminary request form, isolated from the existing page styles. */
.request-dialog{box-sizing:border-box;width:min(640px,calc(100% - 24px));max-width:640px;max-height:calc(100dvh - 24px);margin:auto;padding:32px;border:1px solid #d9dcd7;border-radius:16px;background:#f7f8f5;color:#17231e;overflow:auto;overscroll-behavior:contain;box-shadow:0 24px 80px #0006}
.request-dialog::backdrop{background:#101c24b3;backdrop-filter:blur(3px)}
.request-modal-open{overflow:hidden}
.request-close{position:sticky;top:0;float:right;z-index:1;display:grid;place-items:center;width:40px;height:40px;margin:-14px -14px 0 6px;padding:0;border:1px solid #ccd3cf;border-radius:50%;background:#f7f8f5;color:#17231e;font:28px/1 Arial,sans-serif;cursor:pointer}
.preliminary-request{clear:none;min-width:0;margin:0;font-family:Arial,sans-serif;text-align:left;color:#17231e}
.preliminary-request *{box-sizing:border-box}
.preliminary-request h2{font-size:clamp(25px,4vw,32px);font-weight:600;line-height:1.15;letter-spacing:-.025em;margin:0 35px 16px 0;color:#17231e}
.preliminary-request .request-intro{margin:0 0 14px;font-size:15px;line-height:1.55;color:#526158}
.preliminary-request .request-unavailable{margin:0 0 22px;padding:12px 14px;background:#e9eeea;border-radius:8px;font-size:13px;line-height:1.5;color:#44564b}
.preliminary-request a{color:#294a3a;text-decoration:underline;text-underline-offset:3px}
.request-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.preliminary-request label{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:14px;line-height:1.4;font-weight:500}
.request-full{grid-column:1/-1}
.preliminary-request input:not([type=checkbox]),.preliminary-request select,.preliminary-request textarea{display:block;width:100%;min-width:0;max-width:100%;margin:0;border:1px solid #aab8af;border-radius:7px;padding:12px;background:#fff;color:#17231e;font:16px/1.4 Arial,sans-serif;box-shadow:none}
.preliminary-request textarea{resize:vertical;min-height:92px}
.preliminary-request select{padding-right:28px;text-overflow:ellipsis}
.preliminary-request small{font-size:12px;font-weight:400;color:#526158}
.request-required{font-size:12px;color:#526158;font-weight:400}
.preliminary-request .request-consent{display:flex;flex-direction:row;align-items:flex-start;gap:10px;margin-top:20px;font-size:13px;font-weight:400;line-height:1.55}
.preliminary-request .request-consent input{flex:0 0 19px;width:19px;height:19px;margin:2px 0 0;accent-color:#355d46}
.preliminary-request .request-policy-note{margin:8px 0 0 29px;font-size:12px;line-height:1.45;color:#647268}
.preliminary-request .request-error{margin:0;font-size:12px;line-height:1.5;color:#a42621;font-weight:400}
.preliminary-request p.request-error{margin:8px 0 0 29px}
.preliminary-request [aria-invalid=true]{border-color:#a42621}
.preliminary-request .request-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:48px;width:100%;margin:22px 0 0;padding:13px 18px;border:1px solid #bf844d;border-radius:7px;background:var(--orange,#dbad70);color:#18271e;font:600 16px/1.4 Arial,sans-serif;cursor:pointer}
.preliminary-request .request-submit:hover{filter:brightness(1.06)}
.preliminary-request :is(input,select,textarea,button,a):focus-visible,.request-close:focus-visible{outline:3px solid #647f9c;outline-offset:3px}
.preliminary-request .request-status{margin:18px 0 0;padding:14px;background:#e9eeea;border:1px solid #aab8af;border-radius:7px;font-size:14px;line-height:1.6;color:#294a3a}
.preliminary-request [hidden]{display:none!important}
[data-request-inline]{min-width:0;scroll-margin-top:25px}
@media(max-width:560px){.request-dialog{padding:24px 18px;max-height:calc(100dvh - 16px);width:calc(100% - 16px)}.request-fields{grid-template-columns:1fr}.request-close{margin:-12px -6px 0 6px}.preliminary-request h2{font-size:26px}.preliminary-request .request-intro{font-size:14px}}

.preliminary-request .request-policy-button{display:inline;width:auto;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:none;color:#294a3a;text-decoration:underline;text-underline-offset:3px;font:inherit;line-height:inherit;text-align:left;cursor:pointer}

/* One optional local attachment, shared by inline and modal forms. */
.preliminary-request .request-file-picker {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  min-height: 70px;
  border: 1px dashed #aab8af;
  border-radius: 7px;
  background: #fff;
  color: #17231e;
  cursor: pointer;
}

.request-attachment-icon {
  flex: 0 0 24px;
  color: var(--blue, #103b5c);
}

.request-file-picker small {
  display: block;
  margin-top: 3px;
}

.preliminary-request .request-file-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
}

.request-file-picker:focus-within {
  outline: 3px solid #647f9c;
  outline-offset: 3px;
}

.request-file-selection {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  margin-top: 8px;
}

.preliminary-request .request-file-selection p {
  min-width: 0;
  margin: 0;
  font-size: 13px;
  color: #526158;
  overflow-wrap: anywhere;
}

.request-file-selection button {
  flex-shrink: 0;
  min-height: 44px;
  padding: 5px 0;
  border: 0;
  background: transparent;
  color: var(--blue, #103b5c);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.preliminary-request .request-attachment > .request-error {
  margin: 8px 0 0;
}

[data-request-layout="estimate"] .preliminary-request :is(input:not([type=checkbox]):not([type=file]), select) {
  min-height: 48px;
}

[data-request-layout="estimate"] .preliminary-request textarea {
  min-height: 100px;
}
