/* AINIV Contáctanos: todos los estilos pertenecen únicamente a este bloque. */
.ainiv-contact-block {
  --contact-green: #58b836;
  --contact-blue: #0a6ba6;
  --contact-navy: #062b49;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-block: 0 !important;
  padding: 76px 0;
  background: #fff;
  color: #142536;
  font: 16px/1.5 Arial, Helvetica, sans-serif;
  scroll-margin-top: 110px;
}
.ainiv-contact-block *, .ainiv-contact-block *::before, .ainiv-contact-block *::after {box-sizing:border-box}
.ainiv-contact-block [hidden] {display:none!important}
.ainiv-contact-block h2, .ainiv-contact-block h3 {font-family:inherit;font-weight:700;text-transform:none}
.ainiv-contact-block button, .ainiv-contact-block input, .ainiv-contact-block select, .ainiv-contact-block textarea {font:inherit;letter-spacing:normal;text-transform:none;box-shadow:none}
.ainiv-contact-block button {margin:0;cursor:pointer}
.ainiv-contact-block a {text-decoration:none}
.ainiv-contact-block img {display:block;max-width:100%}
.ainiv-contact-block :is(button,a,input,select,textarea):focus-visible {outline:3px solid #0a6ba6;outline-offset:4px}
.ainiv-contact-block .ainiv-contact-container {width:100%;max-width:1180px;min-width:0;margin-inline:auto;padding-inline:0}
.ainiv-contact-block .contact-section-head {width:100%;margin:0 0 38px;text-align:center}
.ainiv-contact-block .contact-section-label {color:var(--contact-green);font-size:11px;line-height:1.4;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.ainiv-contact-block .contact-section-head h2 {margin:10px 0 12px;color:var(--contact-navy);font-size:clamp(34px,4vw,48px);line-height:1.05;letter-spacing:-.035em}
.ainiv-contact-block .contact-section-head p {margin:0;color:#667786;font-size:16px;line-height:1.7}
.ainiv-contact-block .contact-branch-network {border:1px solid #dfe7ec;background:#fff;box-shadow:0 14px 32px rgba(6,43,73,.07);display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr);overflow:hidden}
.ainiv-contact-block .contact-branch-network > * {min-width:0}
.ainiv-contact-block .contact-ecuador-map {position:relative;min-height:470px;background:linear-gradient(180deg,#f2f6f8,#eaf1f4);display:grid;place-items:center;overflow:hidden;padding:28px}
.ainiv-contact-block .contact-ecuador-map::before {content:"";position:absolute;inset:0;background:linear-gradient(rgba(6,43,73,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(6,43,73,.035) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
/* Mapa y marcadores comparten el mismo lienzo: conservan su posición al cambiar el ancho. */
.ainiv-contact-block .contact-map-stage {position:relative;width:100%;max-width:650px;aspect-ratio:640/560}
.ainiv-contact-block .contact-map-image {width:100%;height:auto;filter:drop-shadow(0 15px 22px rgba(6,43,73,.12))}
.ainiv-contact-block .contact-map-pin-button {position:absolute;z-index:2;transform:translate(-50%,-100%);width:44px;height:44px;border:0;border-radius:0;background:transparent;padding:4px;display:grid;place-items:center;color:var(--contact-navy);font-weight:900}
.ainiv-contact-block .contact-map-pin {width:35px;height:35px;border-radius:50% 50% 50% 0;background:var(--contact-green);border:3px solid #fff;transform:rotate(-45deg);box-shadow:0 7px 18px rgba(6,43,73,.28);display:grid;place-items:center;transition:transform .2s,background .2s}
.ainiv-contact-block .contact-map-pin::after {content:"";width:8px;height:8px;border-radius:50%;background:#fff}
.ainiv-contact-block .contact-map-pin-label {position:absolute;left:100%;top:0;background:#fff;border:1px solid #dce6eb;box-shadow:0 7px 18px rgba(6,43,73,.1);padding:7px 9px;border-radius:3px;font-size:11px;line-height:1;white-space:nowrap}
.ainiv-contact-block .contact-map-pin-button:hover .contact-map-pin,
.ainiv-contact-block .contact-map-pin-button[aria-pressed="true"] .contact-map-pin {background:var(--contact-blue);transform:rotate(-45deg) scale(1.08)}
.ainiv-contact-block .contact-map-pin-button[aria-pressed="true"] .contact-map-pin-label {background:var(--contact-navy);border-color:var(--contact-navy);color:#fff}
.ainiv-contact-block .contact-branch-sidebar {padding:34px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#062b49,#0a4f7b);color:#fff}
.ainiv-contact-block .contact-branch-sidebar :is(button,a):focus-visible {outline-color:#fff}
.ainiv-contact-block .contact-branch-sidebar .contact-section-label {color:#9fdb85}
.ainiv-contact-block .contact-panel-intro h3 {font-size:31px;line-height:1.08;margin:10px 0 12px;letter-spacing:-.02em;color:#fff}
.ainiv-contact-block .contact-panel-intro p {font-size:13px;line-height:1.7;color:#c8d8e4;margin:0 0 22px}
.ainiv-contact-block .contact-branch-tabs {display:grid;gap:9px}
.ainiv-contact-block .contact-branch-tab {width:100%;min-height:44px;border:1px solid rgba(255,255,255,.18);border-radius:0;background:rgba(255,255,255,.07);color:#fff;text-align:left;padding:14px 15px;transition:background .2s,color .2s;display:flex;justify-content:space-between;align-items:center;gap:12px}
.ainiv-contact-block .contact-branch-tab:hover,
.ainiv-contact-block .contact-branch-tab[aria-pressed="true"] {background:#fff;color:var(--contact-navy);border-color:#fff}
.ainiv-contact-block .contact-branch-tab strong {font-size:14px}
.ainiv-contact-block .contact-branch-tab span {font-size:10px;opacity:.85}
.ainiv-contact-block .contact-branch-details {margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18)}
.ainiv-contact-block .contact-branch-card {display:flex;flex-direction:column;gap:14px}
.ainiv-contact-block .contact-reset {align-self:flex-start;min-height:44px;background:none;border:0;border-radius:0;color:#d2e7f6;font-size:12px;font-weight:800;padding:8px 0}
.ainiv-contact-block .contact-reset:hover {color:#fff}
.ainiv-contact-block .contact-branch-photo {width:100%;aspect-ratio:1/1;overflow:hidden;border:1px solid rgba(255,255,255,.16)}
.ainiv-contact-block .contact-branch-photo img {width:100%;height:100%;object-fit:cover;object-position:center}
.ainiv-contact-block .contact-branch-badge {display:inline-block;margin-bottom:8px;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.12);color:#d2e7f6;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.ainiv-contact-block .contact-branch-copy h3 {margin:0 0 8px;color:#fff;font-size:28px;line-height:1.05}
.ainiv-contact-block .contact-branch-copy p {margin:0 0 14px;color:#d2e2ed;font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.ainiv-contact-block .contact-branch-copy p a {color:inherit;text-decoration:underline}
.ainiv-contact-block .contact-branch-actions {display:flex;gap:10px;flex-wrap:wrap}
.ainiv-contact-block .contact-branch-actions :is(a,button) {display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;border:0;font-size:11px;line-height:1.4;font-weight:900;border-radius:3px;text-align:center}
.ainiv-contact-block .contact-maps-link {background:#fff;color:var(--contact-navy)}
.ainiv-contact-block .contact-whatsapp-link {background:var(--contact-green);color:#fff}
/* Tres mapas de las sedes, visibles debajo del mapa nacional. */
.ainiv-contact-block .contact-location-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:38px}
.ainiv-contact-block .contact-location-card {display:flex;flex-direction:column;min-width:0;border:1px solid #dfe7ec;background:#fff;box-shadow:0 10px 24px rgba(6,43,73,.06)}
.ainiv-contact-block .contact-location-head {padding:20px 18px 16px;min-height:108px}
.ainiv-contact-block .contact-location-head h3 {margin:0 0 10px;color:var(--contact-navy);font-size:25px;line-height:1.15;letter-spacing:-.02em}
.ainiv-contact-block .contact-location-head p {margin:0;color:#667786;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.ainiv-contact-block .contact-location-head p a {color:inherit;text-decoration:underline}
.ainiv-contact-block .contact-location-map {position:relative;margin-top:auto;background:#eaf1f4;min-width:0;min-height:315px}
.ainiv-contact-block .contact-location-map iframe {display:block;width:100%;max-width:100%;height:315px;border:0;margin:0}
.ainiv-contact-block .contact-location-map-link {position:absolute;z-index:1;top:10px;left:10px;display:inline-flex;align-items:center;min-height:36px;padding:8px 12px;background:#fff;color:#0a6ba6;box-shadow:0 2px 8px rgba(6,43,73,.15);font-size:12px;font-weight:700;line-height:1.4}
.ainiv-contact-block .contact-location-actions {padding:18px}
.ainiv-contact-block .contact-location-quote {display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:12px 16px;border:0;border-radius:3px;background:var(--contact-green);color:#fff;font-size:15px;line-height:1.4;font-weight:700;text-align:center}
.ainiv-contact-block .contact-location-quote-blue {background:var(--contact-blue)}
.ainiv-contact-block .contact-location-quote:hover {background:#429329;color:#fff}
.ainiv-contact-block .contact-location-quote-blue:hover {background:#075382;color:#fff}
@media(max-width:1050px) {
  .ainiv-contact-block .contact-location-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px) {
  .ainiv-contact-block .contact-location-grid {grid-template-columns:minmax(0,1fr);gap:20px;margin-top:28px}
  .ainiv-contact-block .contact-location-head {min-height:0}
}
/* El formulario se coloca fuera de los contenedores del tema al abrir la página. */
.ainiv-contact-block.ainiv-contact-modal-host {margin:0!important;padding:0!important;min-height:0;height:0}
body.ainiv-contact-modal-open {overflow:hidden}
.ainiv-contact-block .ainiv-contact-modal {position:fixed;inset:0;z-index:100010;display:flex;align-items:center;justify-content:center;padding:24px;isolation:isolate}
.ainiv-contact-block .contact-modal-backdrop {position:absolute;inset:0;width:100%;height:100%;background:rgba(4,28,47,.7);border:0;border-radius:0;padding:0;cursor:default}
.ainiv-contact-block .contact-modal-dialog {position:relative;z-index:1;background:#fff;color:#142536;width:min(100%,760px);max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;padding:38px;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.ainiv-contact-block .contact-modal-close {position:absolute;top:12px;right:12px;width:44px;height:44px;padding:0;border:1px solid #dce4ea;border-radius:0;background:#fff;color:var(--contact-navy);font-size:28px;line-height:1}
.ainiv-contact-block .contact-modal-dialog h2 {font-size:32px;line-height:1.15;color:var(--contact-navy);margin:12px 30px 12px 0;letter-spacing:-.02em}
.ainiv-contact-block .contact-modal-dialog > p {margin:0 0 16px;color:#526675;font-size:14px;line-height:1.6}
.ainiv-contact-block .contact-modal-dialog .contact-request-context {font-weight:700;color:var(--contact-navy)}
.ainiv-contact-block .contact-form-fields {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.ainiv-contact-block .contact-field {display:block;min-width:0;font-size:14px;line-height:1.5;font-weight:700;color:#19384e}
.ainiv-contact-block .contact-field-full {grid-column:1/-1}
.ainiv-contact-block .contact-field :is(input,select,textarea) {display:block;width:100%;min-height:44px;margin:6px 0 0;padding:12px;border:1px solid #bbcbd6;border-radius:3px;background:#fff;color:#142536;font-weight:400;font-size:16px;line-height:1.5}
.ainiv-contact-block .contact-field textarea {resize:vertical}
.ainiv-contact-block .contact-field [aria-invalid="true"] {border-color:#b42318;box-shadow:0 0 0 1px #b42318}
.ainiv-contact-block .contact-field-error {display:block;margin-top:5px;color:#b42318;font-size:13px;font-weight:400;line-height:1.45}
.ainiv-contact-block .contact-validation {margin:18px 0;padding:14px 16px;border:1px solid #b42318;border-left-width:4px;background:#fff1ef;color:#7a271a;font-size:14px;line-height:1.5}
.ainiv-contact-block .contact-validation ul {margin:8px 0 0;padding-left:22px}
.ainiv-contact-block .contact-submit {width:100%;min-height:48px;margin-top:20px;padding:14px 18px;background:var(--contact-green);color:#fff;border:0;border-radius:3px;font-weight:700;font-size:16px}
.ainiv-contact-block .contact-form-note {margin:12px 0 0;font-size:12px;color:#526675}
.ainiv-contact-block .contact-whatsapp-fallback {margin:16px 0 0;padding:14px;background:#eff8eb;color:#173f25;font-size:14px;overflow-wrap:anywhere}
.ainiv-contact-block .contact-whatsapp-fallback a {display:inline-flex;min-height:44px;align-items:center;margin-top:10px;padding:10px 14px;background:var(--contact-blue);color:#fff;font-weight:700}
@media(max-width:1228px) {
  .ainiv-contact-block .ainiv-contact-container {width:calc(100% - 48px)}
}
@media(max-width:900px) {
  .ainiv-contact-block .contact-branch-network {grid-template-columns:minmax(0,1fr)}
  .ainiv-contact-block .contact-ecuador-map {min-height:410px;padding:20px}
  .ainiv-contact-block .contact-branch-sidebar {padding:28px}
}
@media(max-width:767px) {
  .ainiv-contact-block {padding-block:52px}
  .ainiv-contact-block .ainiv-contact-container {width:calc(100% - 40px)}
}
@media(max-width:520px) {
  .ainiv-contact-block .contact-ecuador-map {min-height:350px;padding:14px}
  .ainiv-contact-block .contact-branch-sidebar {padding:24px 18px}
  .ainiv-contact-block .contact-panel-intro h3 {font-size:27px}
  .ainiv-contact-block .contact-map-pin-label {display:none}
  /* Evita que Quito y Ambato se superpongan en mapas de teléfonos estrechos. */
  .ainiv-contact-block .contact-map-pin-button {width:28px;height:28px;padding:2px}
  .ainiv-contact-block .contact-map-pin {width:24px;height:24px;border-width:2px}
  .ainiv-contact-block .contact-map-pin::after {width:6px;height:6px}
  .ainiv-contact-block .contact-branch-actions :is(a,button) {width:100%}
  .ainiv-contact-block .ainiv-contact-modal {padding:12px}
  .ainiv-contact-block .contact-modal-dialog {max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:30px 20px 22px}
  .ainiv-contact-block .contact-modal-dialog h2 {font-size:27px}
  .ainiv-contact-block .contact-form-fields {grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce) {
  .ainiv-contact-block *, .ainiv-contact-block *::before, .ainiv-contact-block *::after {transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
