/* Baipor Group · formulario de presupuesto: envío al servidor (entrega 2).
   Solo lo que añade app.js a las páginas /presupuesto/, /de/offerte/ y /en/quote/. */

/* calle y número bajo código postal y localidad */
.qf-addr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(96px, 34%); gap: 0 14px; align-items: end; min-width: 0; }
.qf-place .qf-addr { grid-column: 1 / -1; }

/* bloques por modo: servidor (mudanza, transporte, reciclaje) o WhatsApp (alquiler) */
[data-mode][hidden], .qf-srv[hidden], .qf-senderr[hidden], .qf-photofail[hidden] { display: none !important; }

.qf-srv { display: grid; gap: 18px; justify-items: start; margin-bottom: 8px; }
.qf-submit { min-width: 260px; }
.qf-submit[disabled] { cursor: progress; opacity: .9; }
.qf-submit[aria-busy="true"] .ar { animation: qfBusy 1s var(--ease) infinite; }
@keyframes qfBusy { 0%, 100% { transform: translateX(0); opacity: 1; } 50% { transform: translateX(6px); opacity: .45; } }
@media (prefers-reduced-motion: reduce) { .qf-submit[aria-busy="true"] .ar { animation: none; } }

.qf-senderr { width: 100%; padding: 14px 16px; border-left: 3px solid var(--red); background: #fdf1f1; color: var(--red-700); font-size: 14.5px; font-weight: 500; line-height: 1.5; }
.qf-senderr:focus { outline: none; }
/* vista previa (fuera de baiporgroup.com): el envío no sale */
.qf-preview { width: 100%; padding: 14px 16px; border-left: 3px solid #d98a04; background: #fbf1dd; color: #6b4a00; font-size: 14.5px; font-weight: 500; line-height: 1.5; }
.qf-preview:focus { outline: none; }

.qf-alt { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding-top: 16px; border-top: 1px solid var(--line); width: 100%; }
.qf-alt-q { font-size: 14.5px; color: var(--ink-2); }
.qf-alt-wa .wa-i { color: #1fae53; }
.qf-alt-tel { font-size: 14.5px; font-weight: 500; color: var(--navy); text-decoration: underline; text-underline-offset: .2em; white-space: nowrap; }

/* fotos: avisos de lo que no se admite y miniaturas que el navegador no sabe pintar (HEIC) */
.qf-pmsg { white-space: pre-line; margin: -6px 0 14px; }
.qf-thumbs .qf-tn { display: none; }
.qf-thumbs li.is-noimg img { display: none; }
.qf-thumbs li.is-noimg .qf-tn { display: grid; place-items: center; position: absolute; inset: 0; padding: 8px; font-size: 11px; line-height: 1.3; color: var(--ink-2); text-align: center; overflow-wrap: anywhere; }

/* pantalla de éxito */
.qf-done .qf-photofail { margin-top: -10px; padding: 12px 14px; background: var(--paper-2); border-left: 3px solid var(--navy-300); font-size: 14px; }

@media (max-width: 599px) {
  .qf-srv { justify-items: stretch; }
  .qf-submit { min-width: 0; width: 100%; }
  .qf-alt-wa { width: 100%; }
}
.qf-nw { white-space: nowrap; }

/* ---------- ruta Suiza ⇄ España: pasos «Direcciones» e «Inventario» (Iván, Doc «WEB Cambios y errores», 20-oct-2026) ---------- */
/* calle, número y código postal: obligatorios en la ruta, opcionales en el resto */
.qf[data-svc="mudanza"] .qf-opt { display: none; }

/* guardar las direcciones en este dispositivo (debajo del paso 1) */
.qf-keep { margin-top: 14px; display: grid; gap: 2px; }
.qf-keep .chk { min-height: 0; padding: 6px 0 2px; font-size: 14px; }
.qf-keep-msg { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; font-size: 13px; color: var(--ink-2); }
.qf-keep-msg:has(.qf-keep-t:empty):has(.qf-keep-del[hidden]) { display: none; }
.qf-keep-del, .qf-loc-ch { min-height: 32px; font-size: 13px; font-weight: 500; color: var(--navy); text-decoration: underline; text-underline-offset: .2em; }

/* una tarjeta por ubicación */
.qf-locs { display: grid; gap: 14px; }
.qf-loc { padding: 18px 18px 4px; border: 1px solid var(--line); background: var(--paper-2); min-width: 0; }
.qf-loc .qf-sub { margin-bottom: 6px; }
[data-loc="to"] .pin { background: var(--red); }
.qf-loc-addr { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 10px; margin-bottom: 14px; font-size: 14px; color: var(--ink-2); overflow-wrap: anywhere; }
.qf-loc-a:empty { display: none; }
.qf-loc .f .lbl { line-height: 1.45; }
.qf-note { margin-top: 2px; padding: 10px 12px; background: #fbf1dd; border-left: 3px solid #d98a04; font-size: 13.5px; line-height: 1.5; color: var(--ink); }
.qf-pack .qf-note { margin-top: 6px; }

/* inventario: contador, volumen, fotos o PDF y aviso de los vídeos */
.qf-cnt { text-align: right; font-variant-numeric: tabular-nums lining-nums; }
.qf-cnt:empty { display: none; }
.qf-cnt.is-over { text-align: left; color: var(--red-700); font-weight: 500; }
.f-vol input { max-width: 220px; }
.hint b { font-weight: 600; color: var(--ink); }
.qf-thumbs li.is-pdf { display: grid; place-items: center; background: var(--navy-50); border: 1px solid var(--line); }
.qf-thumbs li.is-pdf .qf-doc { width: 34px; height: 34px; color: var(--navy); margin-bottom: 16px; }
.qf-thumbs li.is-pdf .qf-tn { display: block; position: absolute; left: 6px; right: 6px; bottom: 6px; font-size: 10.5px; line-height: 1.3; color: var(--ink-2); text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qf-video { margin-top: 12px; }
.qf-video.is-on { color: var(--red-700); font-weight: 500; }
.link-inl { color: var(--navy); font-weight: 500; text-decoration: underline; text-underline-offset: .2em; }
.qf-dl dd { white-space: pre-line; }
