/* Lectura más cómoda del pie de la página pública. */
.civi-site .civi-footer {
  gap: clamp(28px, 3vw, 46px);
  padding: 72px clamp(24px, 6vw, 92px) 34px;
}

.civi-site .civi-footer p,
.civi-site .civi-footer a,
.civi-site .civi-footer > div > button,
.civi-site .civi-footer-brand small,
.civi-site .civi-footer .civi-contact-form > p {
  font-size: 14px !important;
  line-height: 1.6;
}

.civi-site .civi-footer > div > b,
.civi-site .civi-footer form > b {
  font-size: 15px !important;
  line-height: 1.35;
}

.civi-site .civi-contact-form {
  gap: 12px;
  padding: 19px;
}

.civi-site .civi-contact-form label,
.civi-site .legal-check span,
.civi-site .support-result {
  font-size: 12px !important;
  line-height: 1.45;
}

.civi-site .civi-contact-form input,
.civi-site .civi-contact-form textarea {
  font-size: 14px !important;
  line-height: 1.45;
}

.civi-site .civi-contact-form input { height: 42px; }
.civi-site .civi-contact-form textarea { min-height: 104px; }
.civi-site .civi-footer form button { min-height: 42px; font-size: 14px !important; }
.civi-site .civi-footer-bottom { margin-top: 24px; padding-top: 22px; font-size: 13px; line-height: 1.5; }

@media (max-width: 720px) {
  .civi-site .civi-footer { padding: 52px 22px 26px; }
  .civi-site .civi-footer p,
  .civi-site .civi-footer a,
  .civi-site .civi-footer > div > button,
  .civi-site .civi-footer-brand small,
  .civi-site .civi-footer .civi-contact-form > p { font-size: 15px !important; }
}

/* Ningún panel transmite el gesto de scroll a la página que queda detrás. */
body.civimetra-modal-open { overflow: hidden !important; overscroll-behavior: none; }
.modal-layer,
.legal-layer,
.civi-legal-layer,
.civi-import-overlay,
.civi-help-layer,
.civi-insight-layer,
.civi-share-layer,
.civi-catalog-layer,
.civi-ops-layer,
.civi-plan-dialog { overscroll-behavior: contain; }

@media print {
  /* Es un dato de cálculo interno: no forma parte del contenido de una partida. */
  .budget-print-content .print-calculation-note { display: none !important; }

  /* Cada bloque que tiene fondo se trata como una pieza completa. Si no cabe,
     el navegador lo mueve a la página siguiente en vez de partirlo. */
  .budget-print-content .print-partida-wrap { break-inside: auto !important; page-break-inside: auto !important; }
  .budget-print-content .print-partida,
  .budget-print-content .print-location-row,
  .budget-print-content .print-measurement-row,
  .budget-print-content .print-breakdown,
  .budget-print-content .print-breakdown > header,
  .budget-print-content .print-breakdown > div {
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }
}
