/* Shared one-page inquiry modal. All rules are scoped to this dialog. */
.contact-modal{position:fixed;inset:0;margin:auto;width:min(1180px,calc(100vw - 64px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:1px solid #b9af8d;border-radius:2px;background:#fff;color:#555;overflow:hidden}
.contact-modal::backdrop{background:#151512a8;backdrop-filter:blur(2px)}
.contact-modal .contact-close{position:absolute;top:13px;right:13px;z-index:5;width:44px;height:44px;background:#fff;color:#444}
.contact-modal .contact-close:hover{background:#f3f1ea}
.contact-modal-inner{display:grid;grid-template-columns:40% minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:auto;max-height:calc(100dvh - 50px);min-height:0;overflow:hidden}
.contact-story{display:flex;flex-direction:column;min-width:0;min-height:0;background:#282826;overflow:hidden;color:#fff}
.contact-story-photo{position:relative;flex:1;min-height:0;overflow:hidden}
.contact-story-photo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 60%}
.contact-story-copy{flex:0 0 auto;padding:40px 38px 28px;background:#282826}
.contact-story-logo{width:250px;height:auto;max-width:90%}
.contact-story-rule{display:block;width:72px;height:1px;background:#948a54;margin:24px 0 28px}
.contact-story h2{font:400 clamp(42px,4.1vw,59px)/1.06 var(--serif);color:#fff;letter-spacing:-.01em;max-width:380px}
.contact-story p{font-size:20px;line-height:1.5;margin-top:18px;color:#f5f4ef}
.contact-form-pane{min-width:0;min-height:0;padding:34px 42px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.contact-form-pane>h2{font:400 clamp(40px,3.7vw,54px)/1.08 var(--serif);color:#46453e;padding-right:25px;margin:0 0 10px}
.contact-mobile-brand{display:none}
.contact-required-note{font-size:15px;line-height:1.4;margin:0 0 8px!important;color:#666}
.contact-required-note>span,.required-mark{color:#948a54;font-weight:700}
.project-inquiry{display:flex;flex-direction:column;gap:13px;font-size:17px;line-height:1.4}
.inquiry-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.inquiry-field>label,.inquiry-types>legend{font-size:17px;color:#4e4e4b}
.inquiry-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.inquiry-field input,.inquiry-field textarea{width:100%;min-width:0;margin:0;border:1px solid #bdb9ad;border-radius:0;background:#fff;color:#4b4b48;font:400 16px/1.4 Arial,Helvetica,sans-serif;padding:10px 13px;min-height:44px;box-shadow:none}
.inquiry-field textarea{min-height:82px;resize:vertical;max-height:220px}
.inquiry-field input::placeholder,.inquiry-field textarea::placeholder{color:#81817b;opacity:1}
.inquiry-field input:focus,.inquiry-field textarea:focus{outline:2px solid #948a54;outline-offset:2px;border-color:#948a54}
.inquiry-types{margin:0;padding:0;border:0;min-width:0}
.inquiry-types>legend{padding:0;margin-bottom:7px}
.inquiry-type-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.inquiry-type-options label{position:relative;min-width:0;cursor:pointer}
.inquiry-type-options input{position:absolute;width:1px;height:1px;opacity:0;inset:0;margin:0}
.inquiry-type-options span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 4px;border:1px solid #bdb9ad;color:#555;font:400 20px/1.2 var(--serif)}
.inquiry-type-options input:checked+span{border-color:#948a54;background:#f4f1e5;color:#6e6237;box-shadow:inset 0 0 0 1px #948a54}
.inquiry-type-options input:focus-visible+span{outline:2px solid #948a54;outline-offset:3px}
.inquiry-type-options label:hover span{border-color:#948a54}
.inquiry-field [aria-invalid=true],.inquiry-type-options input[aria-invalid=true]+span{border-color:#b44436}
.field-error{font-size:15px;line-height:1.4;color:#9e3328;margin:3px 0 0!important}
.field-error[hidden],.inquiry-status[hidden]{display:none}
.inquiry-sms{display:flex;align-items:flex-start;gap:11px;min-height:44px;padding-block:4px;cursor:pointer;font-size:15px;line-height:1.55;color:#62625d;overflow-wrap:anywhere}
.inquiry-sms input{appearance:auto;position:static;opacity:1;flex:0 0 19px;width:19px;height:19px;margin:3px 0 0;accent-color:#786d40;cursor:pointer}
.inquiry-sms input:focus-visible{outline:2px solid #948a54;outline-offset:4px}
.inquiry-legal{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;font-size:15px;line-height:1.5;margin:0!important;color:#746735}
.inquiry-legal a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.inquiry-footer{display:flex;justify-content:flex-end;margin-top:2px}
.inquiry-send{min-width:220px;min-height:48px;font:400 23px/1.2 var(--serif);padding:12px 26px}
.inquiry-status{padding:12px 14px;border-left:3px solid #948a54;background:#f5f3e9;font-size:16px;line-height:1.5;margin:0!important}
@media(max-width:1000px){.contact-modal{width:calc(100vw - 36px)}.contact-story-copy{padding:32px 26px}.contact-story h2{font-size:45px}.contact-story p{font-size:18px}.contact-form-pane{padding:30px 28px}.inquiry-pair{gap:14px}.inquiry-type-options{gap:8px}.inquiry-type-options span{font-size:19px}}
@media(max-height:760px) and (min-width:761px){.contact-story h2{font-size:44px}.contact-story-rule{margin:12px 0 20px}.contact-story p{font-size:18px}.contact-story-copy{padding-top:24px}.contact-form-pane{padding-block:24px}}
@media(max-width:760px),(max-height:600px){.contact-modal{width:min(740px,calc(100vw - 16px));max-height:calc(100dvh - 16px)}.contact-modal-inner{grid-template-columns:minmax(0,1fr);height:auto;max-height:calc(100dvh - 18px);min-height:0}.contact-story{display:none}.contact-form-pane{padding:20px 24px;max-height:calc(100dvh - 18px);scroll-padding-block:20px}.contact-mobile-brand{display:block;width:210px;height:auto;max-width:calc(100% - 42px);margin-bottom:16px}.contact-form-pane>h2{font-size:42px;padding-right:24px}.contact-modal .contact-close{top:6px;right:5px}.inquiry-send{width:100%}.inquiry-type-options span{font-size:20px}}
@media(max-width:480px){.contact-form-pane{padding-inline:18px}.inquiry-pair{grid-template-columns:minmax(0,1fr);gap:13px}.contact-form-pane>h2{font-size:39px}.inquiry-type-options{gap:7px}.inquiry-type-options span{font-size:18px}}
@media(max-width:360px){.inquiry-type-options{grid-template-columns:minmax(0,1fr)}.contact-form-pane>h2{font-size:34px}}

/* R47: official Tally embed within the approved modal shell. */
.sd-inquiry-embed{min-width:0;width:100%}
.sd-inquiry-frame{display:block;width:100%;max-width:100%;border:0;background:transparent}
.sd-inquiry-loading,.sd-inquiry-fallback{font:400 16px/1.5 Arial,Helvetica,sans-serif;color:#62625d;margin:8px 0 14px}
.sd-inquiry-fallback a{color:#746735;text-decoration:underline;text-underline-offset:4px}
.sd-inquiry-embed>[hidden]{display:none!important}
.sd-inquiry-embed>.inquiry-legal{margin-top:12px!important}
.sd-inquiry-embed .inquiry-legal a{color:#746735}

/* R48: the pane is the only normal scroll container; Tally owns frame height. */
.contact-modal .sd-inquiry-frame{min-height:0;max-height:none}
.contact-modal:has(.sd-inquiry-embed) .contact-modal-inner{height:calc(100dvh - 50px)}
.contact-modal:has(.sd-inquiry-embed) .contact-form-pane{overflow-x:hidden;scroll-padding-block:24px}
@media(max-width:760px),(max-height:600px){
  .contact-modal:has(.sd-inquiry-embed) .contact-modal-inner{height:calc(100dvh - 18px)}
}

/* R49: fit the desktop form naturally, like the approved original.
   Compact spacing, readable fonts and full controls; never hide overflow
   to conceal fields. Smaller viewports and validation expansion can scroll. */
.contact-modal:has(.sd-inquiry-embed) .contact-modal-inner{height:auto}
.contact-modal:has(.sd-inquiry-embed) .contact-form-pane{padding-block:24px;scrollbar-gutter:auto}
.contact-modal:has(.sd-inquiry-embed) .contact-form-pane>h2{margin-bottom:8px}
@media(max-width:760px),(max-height:600px){
  .contact-modal:has(.sd-inquiry-embed) .contact-form-pane{padding-block:20px;overflow-y:auto}
}
@media(min-width:761px) and (min-height:601px) and (max-height:800px){
  .contact-modal:has(.sd-inquiry-embed) .contact-form-pane{padding-block:16px}
  .contact-modal:has(.sd-inquiry-embed) .contact-form-pane>h2{font-size:40px;line-height:1.08}
}

/* R50: a single legal-action row in the parent document, with real dialogs. */
.sd-inquiry-embed>.inquiry-legal{margin-top:8px!important}

/* R51: protect iframe focus rings and restore the pre-submit legal row.
   The extra12px in the frame balances Tally's6px padding on each side. */
.sd-inquiry-frame-wrap{position:relative;width:calc(100% + 12px);margin-inline:-6px;
  --sd-frame-pad:6px;--sd-submit-height:48px;--sd-footer-gap:6px}
.sd-inquiry-frame-wrap>.inquiry-legal{
  position:absolute;inset-inline:var(--sd-frame-pad);
  bottom:calc(var(--sd-frame-pad) + var(--sd-submit-height) + var(--sd-footer-gap));
  min-height:44px;margin:0!important;visibility:hidden;z-index:1;
  font:400 15px/1.5 Arial,Helvetica,sans-serif;
}
.sd-inquiry-embed[data-loaded=true] .sd-inquiry-frame-wrap>.inquiry-legal{visibility:visible}
.sd-inquiry-embed[data-submitted=true] .sd-inquiry-frame-wrap>.inquiry-legal,
.sd-inquiry-embed[data-embed-fallback=true] .sd-inquiry-frame-wrap>.inquiry-legal{
  position:static;margin:8px 6px 0!important;visibility:visible;
}

/* R51 warm-up: closed dialog has real dimensions but cannot be seen,
   focused or clicked. Opening removes these selectors immediately. */
.contact-modal[data-contact-preload]:not([open]){display:block;opacity:0;visibility:hidden;pointer-events:none}
.contact-modal[data-contact-preload]:not([open]) *{visibility:hidden!important}
.sd-inquiry-loading.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* R52: presentation after a confirmed Tally submission.
   The provider's message stays inside its original iframe unchanged. */
.contact-modal[data-inquiry-submitted=true] .contact-required-note,
.contact-modal[data-inquiry-submitted=true] .contact-story h2,
.contact-modal[data-inquiry-submitted=true] .contact-story p,
.contact-modal[data-inquiry-submitted=true] .contact-story-rule,
.contact-modal[data-inquiry-submitted=true] .inquiry-legal{display:none!important}
.contact-modal[data-inquiry-submitted=true] .contact-modal-inner{min-height:min(440px,calc(100dvh - 50px))}
.contact-modal[data-inquiry-submitted=true] .contact-story-copy{padding-block:32px 24px}
.contact-modal[data-inquiry-submitted=true] .contact-story-photo{min-height:220px}
.contact-modal[data-inquiry-submitted=true] .contact-form-pane{display:flex;flex-direction:column;justify-content:center}
.contact-modal[data-inquiry-submitted=true] .contact-form-pane>h2,
.contact-modal[data-inquiry-submitted=true] .sd-inquiry-embed{flex:0 0 auto}
.contact-modal[data-inquiry-submitted=true] .contact-form-pane>h2{margin-bottom:18px}
.sd-inquiry-confirm-actions{display:flex;justify-content:flex-end;margin-top:22px}
.inquiry-confirm-close{min-width:130px;min-height:44px;padding:9px 24px;
  border:1px solid #948a54;background:transparent;color:#746735;
  font:400 22px/1.2 var(--serif);text-transform:none;letter-spacing:0}
.inquiry-confirm-close:hover{background:#786d40;color:#fff}
.inquiry-confirm-close:focus-visible{outline:2px solid #948a54;outline-offset:3px}
@media(max-width:760px),(max-height:600px){
  .contact-modal[data-inquiry-submitted=true] .contact-modal-inner{min-height:min(320px,calc(100dvh - 18px))}
}
