/* Shared quote dialog. Form styles also cover standalone service pages. */
#contact-form h3,.contact-success h3{margin:0 0 24px;font-size:clamp(24px,2.4vw,32px);line-height:1.25;letter-spacing:-.035em}
#contact-form label{display:flex;flex-direction:column;gap:8px;min-width:0;margin-bottom:18px;font-size:14px;color:#d2cddb}
.contact-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
#contact-form input,#contact-form textarea,#contact-form select{width:100%;min-width:0;max-width:100%;padding:12px 14px;border:1px solid rgba(255,255,255,.23);border-radius:10px;color:#fff;background:#15121e;font:inherit;font-size:16px;line-height:1.5;color-scheme:dark}
#contact-form textarea{resize:vertical;min-height:112px}
#contact-form :is(input,textarea,select):focus-visible{outline:2px solid #bda6ff;outline-offset:3px}
.contact-extra{border-block:1px solid rgba(255,255,255,.16);margin:4px 0 18px}
.contact-extra summary{cursor:pointer;padding:14px 0;font-size:14px;color:#d2cddb}
.contact-extra .contact-input-grid{padding-top:6px}
.contact-form-note,.contact-estimator p{font-size:14px;line-height:1.5;color:#aaa5b5}
.contact-submit{min-height:48px;width:100%;margin-top:6px;border:0;border-radius:999px;font-size:14px}
.contact-submit:disabled{opacity:.6;cursor:wait}
.contact-error{padding:12px;border:1px solid #ad6374;border-radius:10px;color:#ffd3dc;font-size:16px;line-height:1.5}
.contact-estimator{padding-top:20px;margin-top:24px;border-top:1px solid rgba(255,255,255,.16)}
.contact-estimator p{margin:0 0 5px}
.contact-estimator button,.contact-again{padding:8px 0;border:0;background:none;color:#e2d7ff;text-decoration:underline;text-underline-offset:5px;font-size:14px;cursor:pointer;min-height:44px;text-align:left}
.contact-success p{font-size:16px;line-height:1.6}
.contact-enquiry [hidden]{display:none!important}
@media(max-width:1000px){#contact{grid-template-columns:1fr;gap:36px}.contact-enquiry{max-width:720px}}
@media(max-width:600px){#contact{scroll-margin-top:80px}.contact-input-grid{grid-template-columns:1fr}.contact-enquiry{padding:22px 18px;border-radius:18px}#contact .final-contact-copy>h2{font-size:42px}}


html.contact-modal-open{overflow:hidden;scrollbar-gutter:stable}
.contact-dialog{box-sizing:border-box;width:min(720px,calc(100% - 40px));max-width:none;max-height:calc(100dvh - 40px);margin:auto;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:24px;background:#100e16;color:#f8f7fc;box-shadow:0 28px 100px rgba(0,0,0,.55);overflow:auto;overscroll-behavior:contain;font-family:Manrope,"Noto Sans SC",sans-serif;color-scheme:dark}
.contact-dialog:not([open]){display:none}
.contact-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(8px)}
.contact-dialog *{box-sizing:border-box}
.contact-dialog-header{position:sticky;top:0;z-index:2;background:#100e16;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:30px 32px 20px;border-bottom:1px solid rgba(255,255,255,.12)}
.contact-dialog-header p{margin:0 0 10px;color:#b4a5c8;font-size:11px;font-weight:500;letter-spacing:.15em;line-height:1.5}
.contact-dialog-header h2{margin:0;color:#fff;font-size:clamp(30px,4vw,42px);font-weight:500;letter-spacing:-.045em;line-height:1.15}
.contact-dialog-close{position:sticky;top:16px;flex:0 0 44px;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;font:300 30px/1 sans-serif;cursor:pointer}
.contact-dialog-close:hover{background:rgba(255,255,255,.15)}
.contact-dialog-close:focus-visible,.contact-dialog button:focus-visible,.contact-dialog summary:focus-visible{outline:2px solid #bda6ff;outline-offset:3px}
.contact-dialog .contact-enquiry{max-width:none;margin:0;padding:28px 32px 32px;border:0;border-radius:0;background:none}
.contact-dialog #contact-form h3{margin-bottom:24px;font-size:22px;font-weight:500}
.contact-dialog .contact-submit{display:block;width:100%;min-height:50px;padding:14px 22px;border:0;border-radius:999px;background:linear-gradient(135deg,#fff,#e9e4ff 55%,#dbe8ff);color:#17131f;font-family:inherit;font-size:14px;font-weight:600;letter-spacing:.02em;text-align:center;cursor:pointer}
.contact-dialog .contact-submit:disabled{cursor:wait}
.contact-dialog .contact-input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.contact-dialog .contact-success h3{font-weight:500}
.contact-dialog .contact-success p{color:#c2bdcc}
@media(max-width:600px){.contact-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:20px}.contact-dialog-header{padding:22px 20px 18px;gap:12px}.contact-dialog-header h2{font-size:30px}.contact-dialog .contact-enquiry{padding:24px 20px}.contact-dialog .contact-input-grid{grid-template-columns:1fr}.contact-dialog #contact-form h3{font-size:21px}.contact-dialog #contact-form input,.contact-dialog #contact-form select,.contact-dialog #contact-form textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){.contact-dialog *{scroll-behavior:auto!important;transition:none!important}}

/* The homepage contact section exposes one action; the form stays inside its dialog. */
#contact .contact-entry{width:100%;max-width:440px;align-self:center;justify-self:end;display:flex;justify-content:center;align-items:center;padding:0;border:0;background:none}
#contact .contact-entry-button{width:100%;min-height:64px;justify-content:center;border:0;border-radius:999px;padding:20px 34px;background:linear-gradient(135deg,#fff,#e9e4ff 55%,#dbe8ff);color:#17131f;font-size:14px;font-weight:600;letter-spacing:.04em;box-shadow:0 12px 38px rgba(115,90,220,.22);cursor:pointer}
@media(max-width:1000px){#contact .contact-entry{justify-self:start;max-width:420px}}
@media(max-width:600px){#contact .contact-entry-button{min-height:56px;padding:17px 26px}}
