/* ── Modal de solicitud + privacidad (patrón DistritoW V8) ── */
.contact-modal{
  position:fixed;inset:0;width:min(1020px,calc(100% - 48px));max-width:100%;max-height:calc(var(--dialog-viewport-height,100dvh) - 40px);
  margin:auto;padding:0;border:1px solid #3c4651;border-radius:0;background:#0b1017;color:#eff3f7;
  overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#596978 #0b1017;
  box-shadow:0 32px 120px #0009;
}
.contact-modal::backdrop{background:#03070bc9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.contact-modal .modal-toolbar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px clamp(22px,4vw,40px);background:#0b1017;border-bottom:1px solid #ffffff0a}
.contact-modal .modal-toolbar img{width:104px;height:auto}
.modal-close{display:inline-flex;align-items:center;gap:10px;background:transparent;border:0;padding:10px 0;color:#aebeca;font:inherit;font-size:13px;cursor:pointer;transition:color .2s}
.modal-close:hover{color:#fff}
.modal-close span{display:inline-flex}
.modal-close svg{width:16px;height:16px}
.contact-composition{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,4vw,56px);padding:clamp(28px,4vw,56px) clamp(22px,4vw,48px)}
.contact-aside h2{font-family:var(--display);font-weight:400;font-size:clamp(38px,4.4vw,58px);line-height:1.03;letter-spacing:-.05em;margin:8px 0 18px}
.contact-aside h2 em{font-style:normal;color:#d7e6f2}
.contact-aside #modal-intro{color:var(--muted);font-size:15.5px;font-weight:300;line-height:1.7;max-width:36ch;margin-bottom:30px}
.contact-direct{display:flex;flex-direction:column;gap:10px;align-items:flex-start;font-size:13px}
.contact-direct a{color:#9fb2c2;border-bottom:1px solid #3a4650;padding-bottom:2px;transition:color .2s,border-color .2s}
.contact-direct a:hover{color:#e6f3ff;border-color:#6d7f8e}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px}
.form-wide{grid-column:1/-1}
.form-field label,label.form-fieldLabel{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#9aa9b5;margin-bottom:8px}
.form-field label .optional{text-transform:none;letter-spacing:.04em;color:#6b7b8b;font-size:11px}
.form-field input,.form-field select,.form-field textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid #33404c;border-radius:0;color:#eef3f7;
  font:inherit;font-size:15.5px;padding:10px 2px;transition:border-color .25s;
}
.form-field input::placeholder,.form-field textarea::placeholder{color:#5c6b7b}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-bottom-color:#9fd7ff}
.form-field textarea{resize:vertical;min-height:86px;line-height:1.55}
.form-field select{appearance:auto;cursor:pointer}
.form-field select option{background:#10151b;color:#eef3f7}
.form-field input:invalid:not(:focus):not(:placeholder-shown){border-bottom-color:#eab49f}
.phone-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr);gap:20px;align-items:end}
.phone-row>div{min-width:0}
.dial-custom{margin-top:14px;max-width:220px}
.dial-custom[hidden]{display:none!important}
#phone-help{font-size:12px;line-height:1.5;color:#7c8ba1;margin-top:9px;display:block}
#contact-phone[aria-invalid="true"]{border-bottom-color:#eab49f}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.contact-consent{display:flex;align-items:flex-start;gap:12px;margin:22px 0 14px;cursor:pointer;font-size:13.5px;line-height:1.5;color:#aebeca}
.contact-consent input{width:18px;height:18px;margin-top:2px;accent-color:#7fcdff;flex:none;cursor:pointer}
.contact-consent span{font-weight:300}
.privacy-link{display:inline-flex;align-items:center;min-height:44px;background:transparent;border:0;padding:0;font:inherit;font-size:13px;text-align:left;color:#bdcddb;text-decoration:underline;text-underline-offset:5px;cursor:pointer}
.privacy-link:hover{color:#fff}
.contact-modal .form-privacy-link{font-size:12px;margin:-12px 0 12px 30px}
.form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:6px}
.form-submit{
  display:inline-flex;align-items:center;gap:10px;background:linear-gradient(120deg,#00b4ed,#f5a623);color:#0a0e14;
  font-family:var(--display);font-weight:600;font-size:14.5px;letter-spacing:.3px;border:0;border-radius:999px;padding:15px 30px;cursor:pointer;
  box-shadow:0 10px 28px rgba(0,180,237,.22);transition:transform .3s var(--ease),box-shadow .3s;
}
.form-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 36px rgba(245,166,35,.34)}
.form-submit:disabled{background:#26303c;color:#7c8ba1;cursor:not-allowed;box-shadow:none}
#form-hint{font-size:12.5px;color:#7c8ba1;max-width:34ch;line-height:1.5}
.form-status{font-size:14px;color:#bce5ff;line-height:1.6;margin-top:14px}
.form-edit{margin-top:8px;display:inline-flex;align-items:center;gap:8px;background:none;border:0;border-bottom:1px solid #6d7f8e;padding:4px 0;color:#e6f3ff;font:inherit;font-size:13.5px;cursor:pointer;transition:border-color .2s}
.form-edit:hover{border-color:#e6f3ff}
.form-edit[hidden]{display:none}
.form-fallback{margin-top:16px;font-size:12.5px;color:#6b7b8b}
.form-fallback a{color:#c7e9ff;text-decoration:underline;text-underline-offset:3px}

/* ── Privacidad ── */
.privacy-modal{position:fixed;inset:0;width:min(840px,calc(100% - 48px));max-width:100%;max-height:calc(var(--privacy-height,100dvh) - 48px);margin:auto;padding:0;border:1px solid #3c4651;border-radius:0;background:#10151b;color:#eff3f7;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#596978 #10151b;scroll-padding-top:110px;box-shadow:0 32px 120px #0009}
.privacy-modal::backdrop{background:#03070bc9;backdrop-filter:blur(8px)}
.privacy-toolbar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 36px;background:#10151b;border-bottom:1px solid #ffffff0a}
.privacy-toolbar>span{font-size:12px;letter-spacing:.02em;color:#aebeca}
.privacy-content{padding:24px 48px 40px}
.privacy-content h2{font-size:clamp(38px,5vw,64px);line-height:1.02;font-weight:400;letter-spacing:-.045em;margin:0 0 24px;font-family:var(--display)}
.privacy-content .privacy-intro{font-size:18px;line-height:1.5;color:#c1ccd5;margin:0 0 36px;max-width:48ch;font-weight:300}
.privacy-content section{padding:0;margin:30px 0;min-height:0}
.privacy-content h3{font-size:19px;line-height:1.3;font-weight:450;letter-spacing:-.015em;color:#e7edf2;margin:0 0 12px;font-family:var(--display)}
.privacy-content p{font-size:15px;line-height:1.7;color:#b6c3cd;margin:12px 0;overflow-wrap:anywhere;font-weight:300}
.privacy-content a{color:#c7e9ff;text-decoration:underline;text-underline-offset:4px}
.privacy-content .privacy-note{font-size:12px;line-height:1.6;border-top:1px solid #3a4650;padding-top:20px;color:#a7b7c4}
.privacy-return{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;min-height:54px;margin-top:24px;padding:12px 0;border:0;border-bottom:1px solid #718392;background:none;color:#e5f0f7;font:inherit;font-size:16px;text-align:left;cursor:pointer}
.privacy-return:hover{color:#a0dbff}
.privacy-modal button:focus-visible,.privacy-content a:focus-visible,.form-field input:focus-visible,.form-field select:focus-visible,.form-field textarea:focus-visible,.form-submit:focus-visible,.contact-consent:focus-visible{outline:2px solid #92d4ff;outline-offset:4px}
#privacy-title:focus,#modal-title:focus{outline:none}

/* ── Cuerpo con modal abierto ── */
body.modal-open{overflow:hidden;position:relative}
body.modal-open{top:var(--page-scroll-lock,0)}
.contact-modal.keyboard-open{max-height:calc(var(--dialog-viewport-height,100dvh) - var(--dialog-viewport-top,0px) - 12px)}

@media(max-width:899px){
  .contact-modal{inset:var(--dialog-viewport-top,0px) 0 auto;width:100%;max-height:var(--dialog-viewport-height,100dvh);margin:0;border:0}
  .contact-composition{grid-template-columns:1fr;padding:clamp(24px,5vw,36px) 22px}
  .contact-aside #modal-intro{max-width:50ch}
  .contact-direct{flex-direction:row;gap:22px;flex-wrap:wrap}
  .form-grid{grid-template-columns:1fr}
}
@media(max-width:699px){
  .contact-modal .phone-row{grid-template-columns:minmax(130px,.9fr) minmax(0,1.1fr);gap:15px}
  .dial-custom{max-width:100%}
  .form-actions{flex-direction:column;align-items:stretch}
  #form-hint{max-width:none}
  .privacy-modal{inset:var(--privacy-top,0px) 0 auto;width:100%;max-height:var(--privacy-height,100dvh);margin:0;border:0;scroll-padding-top:95px}
  .privacy-toolbar{padding:12px 20px;gap:12px}
  .privacy-content{padding:24px 24px max(28px,env(safe-area-inset-bottom))}
  .privacy-content h2{font-size:42px}
  .privacy-content .privacy-intro{font-size:16px;margin-bottom:28px}
  .privacy-content h3{font-size:18px}
  .privacy-content p{font-size:14px;line-height:1.65}
  .privacy-content section{margin:26px 0}
  .contact-modal .form-privacy-link{margin-left:30px}
}
@media(max-width:350px){
  .contact-modal .phone-row{grid-template-columns:minmax(0,1fr);gap:4px}
  .contact-modal .form-privacy-link{margin-left:0}
}
@media(prefers-reduced-motion:reduce){.contact-modal *,.privacy-modal *{transition:none!important;animation:none!important}}