/* Shared public dialogs. Intentionally scoped away from account/admin modals. */
.listing-contact-modal{color:var(--exp-ink);font-family:'Open Sans',sans-serif}
.listing-contact-modal .modal-dialog{width:620px;max-width:calc(100% - 28px);margin:32px auto}
.listing-contact-modal .listing-map-dialog{width:700px}
.listing-contact-modal .modal-content{border:1px solid var(--exp-border);border-radius:12px;background:var(--exp-surface);box-shadow:0 24px 100px #0004;overflow:hidden}
.listing-contact-modal .modal-header{position:relative;padding:26px 32px 23px;border-bottom:1px solid var(--exp-border);background:var(--exp-soft)}
.listing-contact-modal .listing-modal-close{position:absolute;right:16px;top:16px;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--exp-border);border-radius:50%;font:26px/1 sans-serif;color:var(--exp-ink);background:var(--exp-surface);cursor:pointer}
.listing-modal-icon{width:42px;height:42px;display:grid;place-items:center;background:var(--exp-deep);color:var(--exp-deep-ink);border-radius:10px;margin-bottom:16px;font-size:20px}
.listing-modal-icon .exp-icon{width:22px;height:22px}
.listing-contact-modal .listing-modal-eyebrow{font:600 9px/1.7 'Open Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--exp-accent)!important;max-width:calc(100% - 25px);margin:0 0 8px}
.listing-contact-modal .modal-title,#listing-email-modal.listing-contact-modal .modal-title{font:400 32px/1.2 Georgia,serif;color:var(--exp-ink);letter-spacing:-.025em;margin:0;overflow-wrap:anywhere}
.listing-contact-modal .listing-modal-intro{font-size:12px;line-height:1.7;color:var(--exp-muted)!important;margin:10px 0 0}
.listing-contact-modal .modal-body{padding:24px 32px}
.listing-contact-modal .listing-modal-footer{display:flex;align-items:flex-start;gap:12px;padding:18px 32px;background:var(--exp-soft);border-top:1px solid var(--exp-border)}
.listing-modal-footer .exp-icon{width:17px;height:17px;color:var(--exp-accent);margin-top:3px;flex-shrink:0}
.listing-contact-modal .listing-modal-footer p{font-size:11px;line-height:1.8;color:var(--exp-muted)!important;margin:0}
.listing-phone-option{display:flex;align-items:center;gap:14px;padding:17px;border:1px solid var(--exp-border);border-radius:8px;margin-bottom:12px;min-width:0}
.listing-phone-option:last-child{margin-bottom:0}.listing-phone-option>i{font-size:23px;color:var(--exp-accent);width:25px;text-align:center;flex-shrink:0}
.listing-phone-copy{flex:1;min-width:0}.listing-contact-modal .listing-modal-label{display:block;color:var(--exp-muted);font-size:10px;letter-spacing:.04em;margin-bottom:5px}
.listing-contact-modal .listing-phone-number{font-size:17px;font-weight:600;color:var(--exp-ink);overflow-wrap:anywhere;line-height:1.4}
.listing-contact-modal .listing-phone-action{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 15px;border:1px solid var(--exp-border);border-radius:5px;color:var(--exp-ink);font-size:12px;font-weight:600;background:var(--exp-surface);flex-shrink:0}
.listing-phone-option.is-whatsapp{border-color:#68977c;background:var(--exp-tint)}.listing-phone-option.is-whatsapp>i{color:#267044}
.listing-contact-modal .is-whatsapp .listing-phone-action{color:white;background:#276747;border-color:#276747}
.listing-contact-modal .portal-contact-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 18px;margin:0}
.listing-contact-modal .portal-contact-form>*{grid-column:1/-1;min-width:0}.listing-contact-modal .portal-contact-form .contact-person-field{grid-column:auto}
.listing-contact-modal .form-required-note{font-size:10px;color:var(--exp-muted)!important;margin:0}
.listing-contact-modal .form-group{margin:0}.listing-contact-modal label{font-size:12px;font-weight:600;color:var(--exp-ink);margin-bottom:7px}
.listing-contact-modal .form-control{border:1px solid var(--exp-border);border-radius:5px;background:var(--exp-page);color:var(--exp-ink);box-shadow:none;font-size:13px;min-height:44px;height:auto;padding:11px 12px;max-width:100%}
.listing-contact-modal textarea.form-control{resize:vertical;min-height:110px}.listing-contact-modal .form-control::placeholder{color:var(--exp-muted);opacity:.85}
.listing-contact-modal .checkbox{margin:0}.listing-contact-modal .checkbox label{font-size:11px;font-weight:400;line-height:1.6}.listing-contact-modal input[type=checkbox]{accent-color:var(--exp-accent)}
.listing-contact-modal .contact-send-row{display:flex;align-items:center;gap:16px;justify-content:space-between;padding-top:16px;border-top:1px solid var(--exp-border);margin:0}
.listing-contact-modal .contact-send-note{font-size:10px;line-height:1.7;color:var(--exp-muted)!important;max-width:275px;margin:0}
.listing-contact-modal .listing-modal-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:12px 18px;background:var(--exp-button);color:var(--exp-on-button)!important;border:1px solid var(--exp-button);border-radius:5px;font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0}
.listing-contact-modal .listing-modal-button .exp-icon{width:17px;height:17px}.listing-contact-modal .listing-modal-button:disabled{cursor:not-allowed;opacity:.6}
.listing-contact-modal :is(button,a,input,textarea):focus-visible{outline:2px solid var(--exp-accent);outline-offset:3px}
.listing-contact-modal a:hover{text-decoration:none;filter:brightness(.93)}
.listing-contact-modal .portal-turnstile{max-width:100%;min-width:0}.listing-contact-modal .portal-turnstile-status{font-size:11px}
.listing-map-address-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.listing-map-address-row>div{min-width:0}
.listing-contact-modal #listing-map-address{font-size:13px;line-height:1.9;color:var(--exp-ink)!important;margin:0;overflow-wrap:anywhere}
.listing-contact-modal .listing-copy-address{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--exp-border);border-radius:5px;background:var(--exp-surface);color:var(--exp-ink);padding:10px;font-size:11px;min-height:40px}
.listing-copy-status{font-size:11px;color:var(--exp-accent)!important;margin:6px 0;min-height:16px}
.listing-map-canvas{height:290px;border:1px solid var(--exp-border);border-radius:8px;background:#e8e5db;color:#243e32}.listing-map-canvas[hidden],.listing-map-empty[hidden]{display:none}
.listing-map-canvas .leaflet-control-attribution{font:10px/1.5 Arial,sans-serif;color:#333;background:#fff}.listing-map-canvas .leaflet-control-attribution a{color:#176177}
.listing-map-canvas .leaflet-control-zoom a{color:#222;background:#fff}.listing-map-canvas .leaflet-marker-icon{max-width:none}
.listing-map-pin{background:transparent;border:0}.listing-map-pin span{display:grid;place-items:center;width:36px;height:36px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#254d3b;border:3px solid #fff;box-shadow:0 3px 10px #0005}.listing-map-pin i{transform:rotate(45deg);font-size:16px;color:white}
.listing-map-empty{padding:24px;background:var(--exp-soft);text-align:center;border:1px dashed var(--exp-border);border-radius:8px}.listing-map-empty>.exp-icon{width:32px;height:32px;color:var(--exp-accent)}
.listing-contact-modal .listing-map-empty h3{font:25px/1.2 Georgia,serif;color:var(--exp-ink);margin:14px 0 10px}.listing-contact-modal .listing-map-empty p{font-size:12px;color:var(--exp-muted)!important;line-height:1.8;max-width:420px;margin:0 auto}
.listing-contact-modal .listing-map-status{font-size:10px;line-height:1.7;color:var(--exp-muted)!important;margin:10px 0 18px}.listing-map-actions{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.listing-contact-modal .listing-modal-secondary{display:inline-flex;align-items:center;gap:10px;font-size:12px;color:var(--exp-accent);min-height:44px}.listing-modal-secondary .exp-icon{width:16px;height:16px}
@media(max-width:575px){.listing-contact-modal .modal-dialog{margin:12px auto;max-width:calc(100% - 24px)}.listing-contact-modal .modal-header{padding:22px 20px}.listing-contact-modal .modal-body{padding:20px}.listing-contact-modal .listing-modal-footer{padding:17px 20px}.listing-contact-modal .modal-title,#listing-email-modal.listing-contact-modal .modal-title{font-size:28px}.listing-contact-modal .portal-contact-form .contact-person-field{grid-column:1/-1}.listing-contact-modal .contact-send-row{align-items:stretch;flex-direction:column}.listing-contact-modal .contact-send-note{max-width:none}.listing-phone-option{gap:10px;padding:13px;flex-wrap:wrap}.listing-contact-modal .listing-phone-number{font-size:15px}.listing-contact-modal .listing-phone-action{font-size:11px;padding:9px 12px}.listing-map-canvas{height:250px}.listing-map-actions{gap:8px}.listing-map-actions>a{width:100%;justify-content:center}.listing-map-address-row{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.listing-contact-modal.fade .modal-dialog{transition:none;transform:none}}

.listing-contact-modal [hidden]{display:none!important}
.listing-contact-modal .listing-modal-close{border-radius:50%!important}
.listing-contact-modal .listing-modal-icon{border-radius:10px!important}
.listing-contact-modal :is(.listing-phone-option,.listing-map-canvas,.listing-map-empty){border-radius:8px!important}
.listing-contact-modal :is(.listing-phone-action,.form-control,.listing-modal-button,.listing-copy-address){border-radius:5px!important}
.listing-contact-modal .listing-map-pin span{border-radius:50% 50% 50% 0!important}
