/* Contact form: review and server submission, matching the Sunway corporate palette. */
.quote-contact-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.3fr); gap: 56px; align-items: start; }
.quote-intro .section-kicker { color: var(--gold-dark); font: normal 500 13px/1.5 var(--site-font); letter-spacing: .12em; }
.quote-intro h2 { color: var(--brand-blue); font-size: clamp(28px, 2.7vw, 34px); line-height: 1.5; }
.quote-intro .lead { margin-top: 24px; }
.quote-benefits { margin: 30px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.quote-benefits li { padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 14px; }
.quote-request { min-width: 0; padding: 32px; background: var(--paper); border: 1px solid var(--line); border-top: 4px solid var(--gold); border-radius: 0; }
.quote-form-guide { margin: 0 0 24px; color: var(--muted); font-size: 13px; }
.quote-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 20px; }
.quote-field { min-width: 0; }
.quote-field-wide { grid-column: 1 / -1; }
.quote-request label { display: block; margin-bottom: 9px; color: var(--brand-blue); font-size: 14px; font-weight: 700; }
.quote-required { display: inline-block; margin-left: 4px; color: var(--gold-dark); font-size: 11px; font-weight: 700; }
.quote-request input, .quote-request select, .quote-request textarea { display: block; width: 100%; min-width: 0; min-height: 50px; border: 1px solid #969ca9; border-radius: 0; padding: 12px 14px; background: #fff; color: var(--ink); font: inherit; font-size: 16px; line-height: 1.6; }
.quote-request textarea { resize: vertical; }
.quote-request input::placeholder, .quote-request textarea::placeholder { color: #616675; opacity: 1; }
.quote-request input:focus-visible, .quote-request select:focus-visible, .quote-request textarea:focus-visible { outline: 3px solid var(--brand-blue); outline-offset: 3px; }
.quote-field-hint { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.8; }
.quote-send-note { margin: 24px 0 18px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.quote-request .button { gap: 18px; cursor: pointer; }
.quote-status { margin: 16px 0 0; color: var(--brand-blue); font-size: 14px; }
.quote-status:empty { margin: 0; }
.quote-preview { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.quote-preview[hidden] { display: none; }
.quote-preview h3 { margin: 0; color: var(--brand-blue); font-size: 20px; line-height: 1.6; }
.quote-preview p, .quote-preview a { overflow-wrap: anywhere; }
.quote-preview a { text-underline-offset: 4px; }
.quote-preview-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.quote-copy { min-height: 48px; padding: 10px 18px; border: 1px solid var(--brand-blue); border-radius: 100px; background: #fff; color: var(--brand-blue); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.quote-request a:focus-visible, .quote-request button:focus-visible { outline: 3px solid var(--brand-blue); outline-offset: 4px; }
@media (max-width: 980px) {
  .quote-contact-grid { grid-template-columns: 1fr; gap: 32px; }
  .quote-intro .lead { max-width: 720px; }
}
@media (max-width: 560px) {
  .quote-request { padding: 24px 18px; }
  .quote-fields { grid-template-columns: 1fr; gap: 20px; }
  .quote-request .button { width: 100%; }
  .quote-preview-actions { flex-direction: column; align-items: stretch; }
}

.quote-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.quote-request button:disabled { opacity: .6; cursor: default; }
