/* Cotizador IRP — estilos del widget (componente compartido).
   Complementa a assets/exam.css (tokens, botones base, header/footer).
   Extraído del home para mantener identidad visual idéntica. */

/* ══ REVELADO DE PLACA (firma) ═══════════════════════════
   El ticket aparece como una placa radiográfica revelándose:
   barrido de arriba hacia abajo + blur que se enfoca. ~500ms. */
@keyframes plate {
  0%   { opacity:0; clip-path:inset(0 0 96% 0); filter:blur(9px) brightness(1.4); }
  55%  { opacity:1; }
  100% { opacity:1; clip-path:inset(0 0 -6% 0); filter:blur(0) brightness(1); }
}
.plate-in { animation:plate .55s var(--ease) both; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal,.reveal-scale { opacity:1; transform:none; transition:none; }
  .plate-in { animation:none !important; clip-path:none !important; filter:none !important; opacity:1 !important; }
  .hero-eyebrow,.hero-title,.hero-sub,.hero-search,.hero-hints,.hero-trust,.hcar { animation:none; }
  .hero-bg-img { transition:none; transform:none; }
  .hero-bg-img.on { transform:none; }
  .hcar-text { opacity:1; transform:none; transition:none; }
  .stats-ecg path { animation:none; stroke-dashoffset:0; }
  .wsp-fab { animation:none; }
  .prev-card:hover { transform:none; }
}

/* ══ COTIZADOR ═══════════════════════════════════════════ */
.cot-section { position:relative; overflow:clip; background:var(--paper); padding:76px 20px; --tkt-bg:var(--paper); }   /* clip, no hidden: el adorno del fondo dejaba un desplazamiento horizontal oculto y el formulario se corría al enfocar un campo (D2, 6-nov-2026) */
/* P0-17 (7-nov-2026): el menú móvil cerrado no se ve ni deja la franja gris de su sombra al borde derecho (cotizar.html usa el menú de exam.css) */
.mobile-menu { visibility:hidden; box-shadow:none; transition:transform .3s var(--ease), visibility 0s linear .3s; }
.mobile-menu.open { visibility:visible; box-shadow:0 24px 60px rgba(4,10,24,.5); transition:transform .3s var(--ease), visibility 0s; }
/* retícula de scanner como marca de agua (forma de fondo) */
.cot-section::before { content:''; position:absolute; top:-150px; right:-150px; width:480px; height:480px;
  pointer-events:none; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 480'%3E%3Cg fill='none' stroke='%231a3a7a' stroke-opacity='.1' stroke-width='1.5'%3E%3Ccircle cx='240' cy='240' r='238'/%3E%3Ccircle cx='240' cy='240' r='138'/%3E%3Cpath d='M240 12v456M12 240h456'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat; }
.cotizador-wrap { position:relative; z-index:1; width:min(100%, 960px); max-width:960px; margin:0 auto; }
.cotizador { background:var(--card); border:1px solid rgba(26,58,122,.18); border-radius:16px;
  box-shadow:0 18px 50px rgba(14,23,41,.10); overflow:hidden; }
.cot-strip { display:none; justify-content:space-between; align-items:center; gap:12px;
  padding:12px 26px; border-bottom:2px dashed var(--line); }
.cot-strip span { font:600 10px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--sub); }
.cot-head { padding:18px 22px 0; text-align:center; }
.cot-head-title { font-family:var(--disp); font-weight:600; font-size:21px; letter-spacing:-.01em; }
.cot-head-sub { margin-top:6px; font-size:14px; color:var(--sub); }

.cot-progress { padding:14px 22px 2px; }
.prog-track { display:flex; align-items:center; gap:10px; max-width:340px; margin:0 auto; }
.prog-dot { width:30px; height:30px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  font:600 13px var(--mono); color:var(--sub); background:transparent; border:1.5px solid var(--line); transition:all .25s var(--ease); }
.prog-dot.active { background:var(--brand); border-color:var(--brand); color:#fff; }
.prog-dot.done { background:var(--signal); border-color:var(--signal); color:#fff; }
.prog-line { flex:1; height:2px; background:var(--line); transition:background .25s; }
.prog-line.done { background:var(--signal); }
.prog-labels { display:flex; justify-content:space-between; max-width:340px; margin:8px auto 0; }
.prog-labels span { font:500 11px var(--mono); letter-spacing:.06em; text-transform:uppercase; color:var(--sub); }
.prog-labels .lbl-on { color:var(--brand); font-weight:600; }

.quote-form { display:block; }
.cot-panel { display:none; padding:20px clamp(18px, 4vw, 34px) 30px; }
.cot-panel:focus { outline:none; }
.cot-panel.show { display:block; animation:panelIn .3s var(--ease); }
@keyframes panelIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }

/* preguntas del formulario: sentence-case y legibles (público 50+) */
.cot-lbl { display:block; font:600 16px var(--disp); letter-spacing:-.01em; color:var(--text); margin:30px 0 4px; }
.cot-lbl-first { margin-top:0; }
.cot-sub-hint { font-size:13.5px; color:var(--sub); margin-bottom:14px; }

.quote-edit-summary { display:none !important; align-items:center; justify-content:space-between; gap:14px;
  margin:14px 0 18px; padding:13px 14px; border:1px solid rgba(26,58,122,.14);
  border-radius:12px; background:#F8FAFD; }
.quote-edit-main { min-width:0; }
.quote-edit-kicker { display:block; font:800 10px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--brand-mid); }
.quote-edit-title { display:block; margin-top:2px; font:800 15px var(--sans); color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.quote-edit-btn { flex:0 0 auto; min-height:42px; border:1px solid rgba(26,58,122,.18); border-radius:9px;
  background:#fff; color:var(--brand); padding:0 13px; font:800 13px var(--sans); cursor:pointer; }
.quote-edit-btn:focus-visible { outline:3px solid rgba(69,107,199,.24); outline-offset:2px; }
.cotizador.has-selection .quote-edit-summary { display:none !important; }
.cotizador.has-selection .quote-edit-summary { justify-content:flex-end; margin:4px 0 10px; padding:0; border:0; background:transparent; }
.cotizador.has-selection .quote-edit-main { display:none; }
.cotizador.has-selection .quote-edit-btn { min-height:38px; }
.cotizador.has-selection:not(.editing-search) .category-picker,
.cotizador.has-selection:not(.editing-search) .quote-rescue,
.cotizador.has-selection:not(.editing-search) .ex-chips,
.cotizador.has-selection:not(.editing-search) .lab-quote { display:none; }
.cotizador.has-selection label[for="examSearch"] { margin-top:14px; font-family:var(--sans); font-size:14px; }
.cotizador.has-selection label[for="examSearch"] + .cot-sub-hint { margin-bottom:10px; font-size:12.5px; }
.cotizador.has-selection .quote-search { margin-bottom:14px; }
.cotizador.has-selection #b1,
.cotizador.has-selection .cot-strip { display:none; }
.cotizador.has-selection .cot-head { padding-top:20px; }
.cotizador.has-selection .cot-head-sub { display:none; }
.cotizador.has-selection .cot-progress { padding-top:14px; }
.cotizador.has-selection .coverage-sub-hint { display:none; }
.cotizador.has-selection #p1 > .field-hint { display:none; }
.cotizador.has-selection label[for="prevSelect"] { margin-top:18px; font-family:var(--sans); font-size:14px; }
.cotizador.has-selection label[for="prevSelect"].cot-lbl-first { margin-top:0; }

/* buscador principal */
.quote-search-field { position:relative; }
.quote-search-field .fi { padding-right:46px; }
.quote-search-icon { position:absolute; right:16px; top:50%; transform:translateY(-50%); color:var(--sub); pointer-events:none; display:flex; }
.quote-results { margin-top:8px; display:flex; flex-direction:column; gap:6px; }
.quote-result { display:block; width:100%; text-align:left; background:#fff; border:1px solid rgba(26,58,122,.18);
  border-radius:10px; padding:11px 14px; cursor:pointer; transition:border-color .15s, background .15s; }
.quote-result:hover { border-color:var(--brand-mid); background:#F4F7FE; }
.quote-result-name { font:600 14px var(--sans); color:var(--text); }
.quote-result-meta { margin-top:2px; font:500 11px var(--mono); font-variant-numeric:tabular-nums; color:var(--sub); }
.quote-empty, .lab-empty { font:500 12px var(--mono); color:var(--sub); background:rgba(26,58,122,.07);
  border:1px solid rgba(26,58,122,.10); border-radius:8px; padding:10px 14px; }

.quote-order { display:inline-flex; align-items:center; gap:8px; margin-top:14px;
  font:600 13px var(--sans); color:var(--brand); border:1.5px solid var(--line); border-radius:10px;
  padding:11px 16px; transition:border-color .15s; }
.quote-order:hover { border-color:var(--brand-mid); }
.quote-order svg { width:16px; height:16px; }

.quote-rescue { margin-top:14px; padding-top:12px; border-top:1px solid rgba(26,58,122,.10); }
.quote-rescue > summary { cursor:pointer; min-height:34px; list-style:none; display:inline-flex; align-items:center; gap:7px;
  font:700 13px var(--sans); color:var(--brand); }
.quote-rescue > summary::-webkit-details-marker { display:none; }
.quote-rescue > summary::after { content:'+'; font:700 16px var(--mono); color:var(--sub); transition:transform .2s var(--ease); }
.quote-rescue[open] > summary::after { transform:rotate(45deg); }
.quote-rescue-body { margin-top:8px; display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.quote-rescue .quote-order,
.quote-rescue .category-picker { margin-top:0; }

/* cotizar con orden adjunta (lectura automática) */
.quote-order-photo { appearance:none; -webkit-appearance:none; display:inline-flex; align-items:center; gap:8px;
  background:var(--brand); color:#fff; border:none; border-radius:10px; padding:12px 18px; margin:14px 0;
  font:700 13.5px var(--sans); cursor:pointer; transition:filter .15s var(--ease); }
.quote-order-photo:hover { filter:brightness(1.08); }
.quote-order-photo:active { transform:translateY(1px); }
.order-ocr-card { width:100%; margin-top:10px; background:#fff; border:1px solid rgba(26,58,122,.18);
  border-radius:12px; padding:14px 16px; }
.order-ocr-title { font:700 13.5px var(--sans); color:var(--text); }
.order-ocr-thumb { display:block; width:100%; max-width:220px; max-height:220px; object-fit:cover;
  border-radius:10px; margin-bottom:12px; border:1px solid var(--line); }
.order-ocr-status .order-ocr-title { margin-bottom:2px; }
.order-ocr-lines { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.order-ocr-line { border:1px solid rgba(26,58,122,.18); border-radius:10px; padding:11px 13px; background:#FAFBFE; }
.order-ocr-line-ocr { font:500 11.5px var(--mono); color:var(--sub); font-style:italic; }
.order-ocr-line-match { margin-top:6px; font:600 13.5px var(--sans); color:var(--text); }
.order-ocr-line-actions { margin-top:10px; display:flex; flex-wrap:wrap; gap:8px; }
.order-ocr-line-actions-col { flex-direction:column; align-items:flex-start; }
.order-ocr-yes, .order-ocr-pick { appearance:none; -webkit-appearance:none; background:var(--brand); color:#fff;
  border:none; border-radius:8px; padding:9px 14px; font:600 13px var(--sans); cursor:pointer; text-align:left; }
.order-ocr-yes:hover, .order-ocr-pick:hover { filter:brightness(1.08); }
.order-ocr-no { appearance:none; -webkit-appearance:none; background:#fff; color:var(--sub);
  border:1.5px solid var(--line); border-radius:8px; padding:9px 14px; font:600 13px var(--sans); cursor:pointer; }
.order-ocr-no:hover { border-color:var(--brand-mid); color:var(--brand); }
.order-ocr-line-confirmed { border-color:rgba(26,58,122,.35); background:#F4F7FE; }
.order-ocr-confirmed-mark { font:600 13px var(--sans); color:var(--brand); }
.order-ocr-line-unresolved { border-style:dashed; }
.order-ocr-line-msg { margin-top:8px; font:500 12.5px var(--sans); color:var(--sub); line-height:1.45; }
.order-ocr-line-msg .quote-order { margin-top:6px; padding:8px 12px; font-size:12.5px; }
.order-ocr-raw { margin-top:14px; }
.order-ocr-raw summary { cursor:pointer; font:600 12px var(--sans); color:var(--brand); }
.order-ocr-raw pre { margin-top:8px; white-space:pre-wrap; font:500 11.5px var(--mono); color:var(--sub);
  background:rgba(26,58,122,.06); border-radius:8px; padding:10px 12px; max-height:220px; overflow:auto; }
.order-ocr-actions { margin-top:12px; }
.order-ocr-actions .quote-order { margin-top:0; }
.order-ocr-error .order-ocr-title { color:var(--text); }
.order-ocr-error .order-ocr-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.order-ocr-retry { appearance:none; -webkit-appearance:none; background:#fff; color:var(--brand);
  border:1.5px solid var(--line); border-radius:10px; padding:10px 16px; font:600 13px var(--sans); cursor:pointer; }
.order-ocr-retry:hover { border-color:var(--brand-mid); }

/* categorías (texto plano, sin íconos genéricos) */
.category-picker { margin-top:16px; }
.category-picker summary { cursor:pointer; font:600 13.5px var(--sans); color:var(--brand); list-style:none; display:inline-flex; align-items:center; gap:7px; padding:6px 0; }
.category-picker summary::-webkit-details-marker { display:none; }
.category-picker summary::after { content:'+'; font:600 16px var(--mono); color:var(--sub); transition:transform .2s var(--ease); }
.category-picker[open] summary::after { transform:rotate(45deg); }
.exam-grid { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.ex-btn { appearance:none; -webkit-appearance:none; display:inline-flex; align-items:center; padding:9px 15px; background:#fff; border:1.5px solid var(--line);
  border-radius:999px; cursor:pointer; transition:all .15s var(--ease); user-select:none; font:inherit; }
.ex-btn img { display:none; }
.ex-nm { font:500 13px var(--sans); color:var(--text); }
.ex-btn:hover { border-color:var(--brand-mid); }
.ex-btn.sel { background:var(--brand); border-color:var(--brand); }
.ex-btn.sel .ex-nm { color:#fff; }

.ex-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.ex-chip { display:inline-flex; align-items:center; gap:7px; background:#E8EEF9; color:var(--brand);
  font:700 13px var(--sans); border:1px solid rgba(26,58,122,.12); border-radius:999px; padding:7px 8px 7px 14px; }
.ex-chip button { position:relative; width:20px; height:20px; border-radius:50%; border:none; background:rgba(26,58,122,.12);
  color:var(--brand); font-size:13px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
/* área táctil ampliada al máximo que permite el espacio disponible dentro del chip */
.ex-chip button::before { content:''; position:absolute; inset:-8px; }
.ex-chip button:hover { background:var(--brand); color:#fff; }

/* laboratorio: seleccionados */
.lab-quote { margin-top:6px; }
.lab-help { font-size:13px; color:var(--sub); margin-bottom:10px; }
.lab-results { display:flex; flex-direction:column; gap:6px; margin-bottom:8px; }
.lab-result { display:block; width:100%; text-align:left; background:#fff; border:1px solid var(--line);
  border-radius:10px; padding:11px 14px; cursor:pointer; transition:border-color .15s, background .15s; }
.lab-result:hover { border-color:var(--brand-mid); background:#F4F7FE; }
.lab-result-name { font:600 14px var(--sans); }
.lab-result-meta { margin-top:2px; font:500 11px var(--mono); font-variant-numeric:tabular-nums; color:var(--sub); }
.lab-selected { display:flex; flex-direction:column; gap:8px; }
.lab-pill { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid rgba(26,58,122,.18);
  border-radius:10px; padding:11px 14px; }
.lab-pill-auto { border-style:dashed; background:transparent; }
.lab-pill-main { flex:1; min-width:0; }
.lab-pill-name { font:600 13.5px var(--sans); line-height:1.35; }
.lab-pill-meta { margin-top:2px; font:500 11px var(--mono); font-variant-numeric:tabular-nums; color:var(--sub); }
.lab-pill-price { font:600 14px var(--mono); font-variant-numeric:tabular-nums; white-space:nowrap; }
.lab-remove { position:relative; width:24px; height:24px; flex-shrink:0; border-radius:50%; border:none; background:rgba(90,98,115,.1);
  color:var(--sub); font-size:14px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
/* expande el área táctil a 44x44 sin cambiar el tamaño visual del botón */
.lab-remove::before { content:''; position:absolute; inset:-10px; }
.lab-remove:hover { background:var(--danger); color:#fff; }

/* previsión */
.select-field { position:relative; display:flex; align-items:center; gap:10px; }
.sf-ico { display:none; }
.select-field select { flex:1; appearance:none; -webkit-appearance:none; width:100%;
  padding:14px 44px 14px 16px; font:500 16px var(--sans); color:var(--text);
  background:#fff; border:1.5px solid rgba(26,58,122,.22); border-radius:10px; cursor:pointer; transition:border-color .15s; }
.select-field-priority select { border-color:rgba(26,58,122,.32); background:#F8FAFD; box-shadow:0 8px 20px rgba(14,23,41,.06); }
.select-field select:focus { border-color:var(--brand-mid); outline:none; box-shadow:0 0 0 3px rgba(69,107,199,.15); }
.sf-chevron { position:absolute; right:62px; top:50%; width:9px; height:9px; pointer-events:none;
  border-right:2px solid var(--sub); border-bottom:2px solid var(--sub); transform:translateY(-70%) rotate(45deg); }
.fonasa-help-btn { position:relative; width:34px; height:34px; flex-shrink:0; border-radius:50%; border:1.5px solid var(--line);
  background:#fff; color:var(--sub); font:600 14px var(--mono); cursor:pointer; transition:all .15s; }
/* expande el área táctil a 44x44 sin cambiar el tamaño visual del botón */
.fonasa-help-btn::before { content:''; position:absolute; inset:-5px; }
.fonasa-help-btn:hover { border-color:var(--brand-mid); color:var(--brand); }
.fonasa-help { margin-top:10px; background:#EDF1FA; border-radius:10px; padding:14px 16px; }
.fonasa-help-title { font:600 13px var(--sans); color:var(--brand); margin-bottom:4px; }
.fonasa-help-text { font-size:13px; line-height:1.55; color:var(--text); }

/* resumen compacto de cotización */
.price-preview { margin-top:14px; background:#0E1729; border:1px solid rgba(26,58,122,.18); border-radius:12px;
  box-shadow:0 10px 30px rgba(14,23,41,.08); overflow:hidden; }
.quote-hero { background:#0E1729; color:#fff; border-radius:12px; padding:14px; }
.quote-hero-main { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 0 10px; }
.quote-hero-label { font:800 10px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:#9DB5EA; }
.quote-hero-total { margin-top:2px; font:800 13px var(--sans); color:#FAF8F3; }
.quote-hero-cta { min-height:44px; flex:0 0 auto; border:0; border-radius:9px; padding:0 18px;
  background:#FAF8F3; color:#10213F; font:800 14px var(--sans); cursor:pointer; touch-action:manipulation; }
.quote-hero-cta:hover:not(:disabled) { background:#fff; }
.quote-hero-cta:disabled { opacity:.5; cursor:not-allowed; }
.quote-hero-cta:focus-visible { outline:3px solid rgba(147,172,228,.42); outline-offset:2px; }
.quote-hero-list { display:flex; flex-direction:column; gap:8px; padding:0; }
.quote-hero .quote-cart-item { display:grid; grid-template-columns:minmax(0,1fr) auto 28px; align-items:center; justify-content:stretch; gap:10px;
  min-height:52px; background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.14); padding:9px 10px 9px 12px; }
.quote-hero .quote-cart-main { min-width:0; }
.quote-hero .quote-cart-name { color:#fff; font-size:13.5px; line-height:1.25; }
.quote-hero .quote-cart-meta { color:#B8C7E6; }
.quote-hero .quote-cart-price { color:#DCE8FF; text-align:right; font:800 12.5px var(--mono); }
.quote-hero .quote-cart-remove { width:26px; height:26px; background:rgba(255,255,255,.12); color:#fff; display:flex; align-items:center; justify-content:center; }
@media (max-width:560px) {
  .quote-hero { padding:12px; }
  .quote-hero-main { gap:10px; }
  .quote-hero-label { font-size:9.5px; }
  .quote-hero-total { font-size:12.5px; }
  .quote-hero-cta { min-width:104px; padding:0 14px; }
  .quote-hero .quote-cart-item { grid-template-columns:minmax(0,1fr) minmax(72px,auto) 26px; gap:8px; min-height:50px;
    padding:9px 8px 9px 10px; }
  .quote-hero .quote-cart-name { font-size:13px; }
  .quote-hero .quote-cart-price { max-width:104px; white-space:normal; font-size:12px; }
}
.price-head { padding:16px 18px 12px; }
.price-title { font-family:var(--disp); font-weight:600; font-size:16px; }
.price-sub { margin-top:4px; font-size:12.5px; line-height:1.55; color:var(--sub); }
.price-list { padding:0 18px; }
.price-row { display:flex; justify-content:space-between; align-items:baseline; gap:14px;
  padding:10px 0; border-top:1px dashed var(--line); }
.price-row-name { font:600 13px var(--sans); line-height:1.35; }
.price-row-note { margin-top:2px; font:500 10.5px var(--mono); color:var(--sub); }
.price-row-amount { font:600 14px var(--mono); font-variant-numeric:tabular-nums; white-space:nowrap; }
.price-total { display:flex; justify-content:space-between; align-items:baseline; gap:14px;
  margin-top:8px; padding:14px 18px; border-top:2px dashed var(--line); }
.price-total-lbl { font:600 11px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--sub); }
.price-total-val { font:600 24px var(--mono); font-variant-numeric:tabular-nums; letter-spacing:-.02em; color:var(--price); }
.price-missing { margin:0 18px 14px; font:500 11.5px var(--mono); color:var(--sub);
  background:rgba(90,98,115,.07); border-radius:8px; padding:9px 12px; }
.price-missing + .price-missing { margin-top:-6px; }

/* resumen lateral desactivado: la cotizacion vive en una sola tarjeta principal */
.quote-dock { display:none !important; }
.quote-dock-card { border:1px solid rgba(26,58,122,.16); border-radius:12px; background:#F8FAFD;
  box-shadow:0 14px 34px rgba(14,23,41,.08); overflow:hidden; }
.quote-dock-head { padding:15px 16px 11px; border-bottom:1px solid rgba(26,58,122,.10); }
.quote-dock-kicker { font:700 10px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--brand-mid); }
.quote-dock-title { margin-top:3px; font:700 16px var(--sans); color:var(--text); }
.quote-dock-list { display:flex; flex-direction:column; gap:8px; padding:12px; }
.quote-cart-empty { font:600 12.5px var(--sans); line-height:1.45; color:var(--sub);
  background:#fff; border:1px dashed rgba(26,58,122,.18); border-radius:9px; padding:12px; }
.quote-cart-item { display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
  background:#fff; border:1px solid rgba(26,58,122,.13); border-radius:9px; padding:10px; }
.quote-cart-main { min-width:0; }
.quote-cart-name { font:700 13px var(--sans); line-height:1.25; color:var(--text); overflow-wrap:anywhere; }
.quote-cart-meta { margin-top:2px; font:600 10.5px var(--mono); color:var(--sub); font-variant-numeric:tabular-nums; }
.quote-cart-price { flex:0 0 auto; font:700 12.5px var(--mono); color:var(--brand); font-variant-numeric:tabular-nums; white-space:nowrap; }
.quote-cart-remove { flex:0 0 auto; position:relative; width:24px; height:24px; border:0; border-radius:50%;
  background:rgba(26,58,122,.08); color:var(--brand); cursor:pointer; }
.quote-cart-remove::before { content:''; position:absolute; inset:-10px; }
.quote-cart-remove:hover { background:var(--danger); color:#fff; }
.quote-dock-total { display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding:13px 16px; border-top:1px solid rgba(26,58,122,.10); background:#fff; }
.quote-dock-total span { font:700 10px var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--sub); }
.quote-dock-total b { font:800 20px var(--mono); color:var(--price); font-variant-numeric:tabular-nums; }
.quote-dock-note { padding:0 16px 15px; font:600 12px var(--sans); line-height:1.45; color:#4F5D75; background:#fff; }

@media (min-width:980px) {
  .cotizador-wrap { max-width:960px; }
  .cot-panel.with-quote-dock.show {
    display:block;
  }
}

/* campos */
.fg { margin-bottom:12px; }
.fg-row { display:grid; grid-template-columns:1fr; gap:0; }
@media (min-width:560px) { .fg-row { grid-template-columns:1fr 1fr; gap:0 12px; } }
.fl { display:block; font:600 12.5px var(--sans); color:var(--text); margin-bottom:5px; }
.fl-opt { color:var(--sub); font:500 12px var(--sans); text-transform:none; letter-spacing:0; }
.fi { width:100%; padding:14px 16px; font:500 16px var(--sans); color:var(--text);
  background:#fff; border:1.5px solid rgba(26,58,122,.22); border-radius:10px; transition:border-color .15s, box-shadow .15s; }
.fi::placeholder { color:#A8ADB8; }
.fi:focus { border-color:var(--brand-mid); outline:none; box-shadow:0 0 0 3px rgba(69,107,199,.15); }
.fi.invalid { border-color:var(--danger); }
/* Safari/iOS ignora el font-size de .fi para el VALOR de un input[type=date]
   y lo renderiza con su tamaño nativo (mucho más grande) — se ve "estirado"
   frente al resto de los campos. -webkit-appearance:none deja que mande
   nuestro CSS, igual que ya hacemos con el resto de los inputs. */
input[type="date"].fi { -webkit-appearance:none; appearance:none; }
.fi-row { display:flex; }
.fi-prefix { display:flex; align-items:center; padding:0 14px; font:600 14px var(--mono);
  color:var(--sub); background:rgba(90,98,115,.06); border:1.5px solid var(--line); border-right:none; border-radius:10px 0 0 10px; }
.fi-row .fi { border-radius:0 10px 10px 0; }
.fi-textarea { resize:vertical; min-height:88px; line-height:1.5; }
/* Fecha de nacimiento: 3 <select> (día/mes/año) en vez de input[type=date] —
   Safari/iOS agranda el texto del date nativo sin que ningún CSS lo pueda
   corregir (probado); un <select> sí respeta el font-size en todos lados. */
.birth-select-row { display:flex; gap:8px; }
.birth-select { flex:1; width:100%; padding:14px 10px; font:500 16px var(--sans); color:var(--text);
  text-align:center; background:#fff; border:1.5px solid rgba(26,58,122,.22); border-radius:10px;
  cursor:pointer; transition:border-color .15s; }
.birth-select:focus { border-color:var(--brand-mid); outline:none; box-shadow:0 0 0 3px rgba(69,107,199,.15); }
.field-hint { font-size:12.5px; color:#4F5D75; margin-top:6px; line-height:1.45; }

.cot-summary { background:#E8EEF9; border:1px solid rgba(26,58,122,.12); border-radius:10px; padding:11px 13px; font-size:12.5px; line-height:1.5; margin-bottom:14px; }
.cot-summary b { color:var(--brand); }

.upload { display:block; margin:4px 0 14px; border:2px dashed var(--line); border-radius:12px; padding:18px;
  text-align:center; cursor:pointer; transition:border-color .15s, background .15s; }
.upload:hover { border-color:var(--brand-mid); background:#FCFBF7; }
.upload-ico { display:none; }
.upload-txt { font:600 14px var(--sans); color:var(--brand); }
.upload-sub { margin-top:3px; font:500 11px var(--mono); color:var(--sub); }
#fname { font:600 12px var(--mono); color:var(--signal); margin:-6px 0 10px; }

.form-consent { display:grid; grid-template-columns:22px minmax(0,1fr); gap:10px; align-items:start;
  margin:12px 0 6px; padding:13px 14px; border:1px solid rgba(26,58,122,.16); border-radius:10px;
  background:#F8FAFD; }
.form-consent input { width:20px; height:20px; margin:1px 0 0; accent-color:var(--brand); cursor:pointer; }
.form-consent label { font:600 12.5px var(--sans); color:#34415A; line-height:1.5; cursor:pointer; }
.form-consent a { color:var(--brand); text-decoration:underline; text-underline-offset:2px; }
.form-consent.invalid { border-color:var(--danger); background:#FBEFEC; }
.consent-help { margin-top:0; margin-bottom:12px; }

.form-status { margin:0 0 12px; font-size:13.5px; padding:11px 14px; border-radius:10px;
  background:#EDF1FA; color:var(--brand); }
.form-status.error { background:#FBEFEC; color:var(--danger); }

.btn-next { width:100%; margin-top:18px; padding:14px 22px; border:none; border-radius:10px; cursor:pointer;
  background:var(--brand); color:#fff; font:600 15.5px var(--sans); transition:background .2s, transform .2s, box-shadow .2s; }
.btn-next:hover:not(:disabled) { background:var(--brand-mid); box-shadow:0 10px 26px rgba(26,58,122,.28); }
.btn-next:active:not(:disabled) { transform:translateY(1px); }
.btn-next:disabled { background:#DDE2EE; color:#7B86A0; cursor:not-allowed; }
/* pulso único cuando el botón se habilita: guía el ojo al siguiente paso */
.btn-next.pulse { animation:btnPulse 1.1s var(--ease) 1; }
@keyframes btnPulse { 0% { box-shadow:0 0 0 0 rgba(26,58,122,.45); } 100% { box-shadow:0 0 0 20px rgba(26,58,122,0); } }
.btn-back { display:block; margin:12px auto 0; background:none; border:none; cursor:pointer;
  font:500 13px var(--sans); color:var(--sub); }
.btn-back:hover { color:var(--brand); }
.form-fineprint { font:500 11px var(--mono); color:var(--sub); text-align:center; margin-top:10px; line-height:1.6; }

/* sellos de confianza junto al punto de decisión */
.cot-trust { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px 22px; margin-top:16px; }
.cot-trust img { height:24px; width:auto; background:var(--ink); padding:4px 8px; border-radius:6px; }
.cot-trust span { font:500 10px var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--sub); }

/* success */
.cot-success { display:none; padding:26px 22px 30px; text-align:center; }
/* Wizard: en desktop el formulario y el paso final no se estiran */
#p2, .cot-success { max-width:620px; margin-left:auto; margin-right:auto; }

.suc-circle { width:46px; height:46px; margin:0 auto 12px; border-radius:50%; background:rgba(46,158,143,.12);
  color:var(--signal); display:flex; align-items:center; justify-content:center; font-size:28px; }
.suc-title { font-family:var(--disp); font-weight:600; font-size:19px; }
.suc-sub { margin:10px auto 22px; max-width:420px; font-size:14.5px; color:var(--sub); }
.btn-wsp-suc { display:inline-flex; align-items:center; gap:9px; background:transparent; color:var(--wsp);
  border:1.5px solid var(--wsp); font:600 14px var(--sans); padding:12px 22px; border-radius:10px; transition:all .2s; margin-top:14px; }
.btn-wsp-suc:hover { filter:brightness(1.06); }
.btn-cal-suc { background:var(--brand); margin:0 8px 8px 0; }

.agenda-panel { margin:24px auto 22px; max-width:560px; text-align:left; }
.agenda-card { border:1px solid rgba(26,58,122,.14); background:linear-gradient(180deg,#fff 0%,#F8FAFD 100%);
  border-radius:10px; box-shadow:0 18px 38px rgba(14,23,41,.08); padding:18px; }
.agenda-topline { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.agenda-kicker { font:700 10px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--brand-mid); }
.agenda-pill { display:inline-flex; align-items:center; min-height:26px; padding:5px 9px; border-radius:999px;
  background:#E8F4F1; color:#176D62; font:700 10px var(--mono); letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.agenda-title { font-family:var(--disp); font-weight:600; font-size:19px; line-height:1.22; color:var(--text); }
.agenda-copy { margin:7px 0 14px; font-size:13.5px; line-height:1.55; color:var(--sub); }
.agenda-location { display:grid; grid-template-columns:auto 1fr; gap:2px 9px; align-items:center; margin:12px 0 16px;
  padding:11px 12px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.agenda-location-dot { width:9px; height:9px; border-radius:50%; background:var(--signal); box-shadow:0 0 0 5px rgba(46,158,143,.12); }
.agenda-location span:not(.agenda-location-dot) { font:700 13px var(--sans); color:var(--text); }
.agenda-location b { grid-column:2; font:500 12px var(--sans); color:var(--sub); }
.agenda-days { display:flex; gap:8px; margin-bottom:12px; overflow-x:auto; -webkit-overflow-scrolling:touch;
  scrollbar-width:none; padding-bottom:4px; }
.agenda-days::-webkit-scrollbar { display:none; }
.agenda-days .agenda-day { flex:0 0 auto; min-width:104px; }
.agenda-day { min-height:58px; border:1px solid var(--line); border-radius:9px; background:#fff; padding:9px 8px; cursor:pointer;
  text-align:left; transition:border-color .16s, background .16s, box-shadow .16s; }
.agenda-day span { display:block; font:700 12px var(--sans); color:var(--text); text-transform:capitalize; }
.agenda-day b { display:block; margin-top:3px; font:600 10px var(--mono); color:var(--sub); }
.agenda-day:hover { border-color:var(--brand-mid); }
.agenda-day.active { border-color:var(--brand); background:#EEF4FF; box-shadow:0 0 0 3px rgba(69,107,199,.12); }
.agenda-slots { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:8px; }
.agenda-slot { min-height:46px; border:1px solid var(--line); border-radius:9px; background:#fff; cursor:pointer;
  color:var(--text); font:700 14px var(--mono); font-variant-numeric:tabular-nums; transition:all .16s; }
.agenda-slot span { display:block; }
.agenda-slot b { display:block; margin-top:1px; font:700 9px var(--mono); color:#A05A00; text-transform:uppercase; letter-spacing:.08em; }
.agenda-slot.reco { border-color:#2e9e8f; background:#f2faf8; }
.agenda-slot.reco.active { background:var(--brand); border-color:var(--brand); }
.agenda-slot b.reco-tag { color:#1f7a6d; }
.agenda-slot.active b.reco-tag { color:#c9ece5; }
.agenda-slot:hover { border-color:var(--brand-mid); background:#F7FAFF; }
.agenda-slot.active { background:var(--brand); border-color:var(--brand); color:#fff; box-shadow:0 10px 22px rgba(26,58,122,.22); }
.agenda-slot.active b { color:#FFE7A8; }
.agenda-selection { margin-top:14px; }
.agenda-picked { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px;
  border-radius:9px; background:#10213F; color:#fff; }
.agenda-picked span { display:block; font:700 10px var(--mono); letter-spacing:.12em; text-transform:uppercase; color:#AFC2EA; }
.agenda-picked b { display:block; margin-top:4px; font:700 14px var(--sans); text-transform:capitalize; }
.agenda-picked small { display:block; margin-top:3px; font:500 11.5px var(--sans); color:#DCE8FF; }
.agenda-confirm, .agenda-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:44px; border-radius:9px;
  padding:12px 15px; border:0; background:var(--wsp); color:#fff; font:700 13px var(--sans); text-align:center; cursor:pointer; transition:filter .16s, transform .16s; }
.agenda-confirm:hover, .agenda-secondary:hover { filter:brightness(1.06); }
.agenda-confirm:active, .agenda-secondary:active { transform:translateY(1px); }
.agenda-confirm[disabled] { cursor:wait; opacity:.72; filter:none; transform:none; }
.agenda-secondary { margin-top:4px; width:100%; }
.agenda-booking-note { margin-top:10px; font:600 12px var(--sans); line-height:1.45; color:#DCE8FF; }
.agenda-booking-note.error { color:#FFE0D9; }
.agenda-reminder { margin-top:16px; padding-top:14px; border-top:1px dashed var(--line); }
.agenda-reminder-title { font:700 13px var(--sans); color:var(--text); }
.agenda-reminder-item { margin-top:8px; font:500 13px/1.5 var(--sans); color:var(--sub); }
.agenda-reminder-item b { display:block; color:var(--text); font-weight:700; }
.agenda-booking-help { display:inline-block; margin-top:6px; color:#fff; font-weight:700; text-decoration:underline; }
/* Reglas del panel que la web respeta (6-nov-2026): servicio suspendido y cuestionario de seguridad del contraste */
.quote-result.susp { background:#FFF8EC; border-color:rgba(160,90,0,.35); }
.quote-result.susp .quote-result-meta { color:#A05A00; font-weight:700; }
.lab-result.susp { background:#FFF8EC; border-color:rgba(160,90,0,.35); }
.lab-result.susp .lab-result-meta { color:#A05A00; font-weight:700; }
.quote-cart-susp { margin-top:4px; font:700 11.5px/1.35 var(--sans); color:#A05A00; }
.quote-hero .quote-cart-susp { color:#FFD79A; }
.agenda-suspended { border-color:rgba(160,90,0,.35); background:linear-gradient(180deg,#fff 0%,#FFF8EC 100%); }
.agenda-suspended .agenda-pill { background:#FFEFD0; color:#8A4B00; }
.agenda-day.agenda-choice span { text-transform:none; }
.agenda-contrast { margin:6px 0 14px; padding:14px; border:1px solid rgba(26,58,122,.16); border-radius:12px; background:#F8FAFD; }
.agenda-contrast-title { font:700 14px var(--sans); color:var(--text); }
.agenda-q { margin:0 0 12px; padding:0; border:0; min-width:0; }
.agenda-q legend { padding:0; font:600 14px/1.4 var(--sans); color:var(--text); }
.agenda-q-help { margin-top:3px; font:500 12.5px/1.45 var(--sans); color:var(--sub); }
.agenda-q-opts { display:flex; gap:10px; margin-top:8px; }
.agenda-q-opts label { display:flex; align-items:center; gap:8px; min-height:44px; padding:0 18px; border:1px solid var(--line); border-radius:10px; background:#fff; font:600 14px var(--sans); color:var(--text); cursor:pointer; }
.agenda-q-opts input { width:18px; height:18px; margin:0; accent-color:var(--brand); }
.agenda-q-det { margin-top:8px; width:100%; }
.agenda-q-det[hidden], .agenda-q-si[hidden] { display:none; }
.agenda-q-si { margin-top:4px; padding:10px 12px; border-radius:10px; background:#EEF4FF; font:600 13px/1.45 var(--sans); color:var(--brand); }
/* P1-12 · las casillas de seguridad van pegadas al botón de pedir la hora: 20 px la casilla y 15 px la letra, y el botón espera a que se marquen (7-nov-2026) */
.agenda-picked.has-safety { display:block; }
.agenda-picked.has-safety .agenda-confirm { width:100%; margin-top:12px; }
.agenda-safety { margin:12px 0 0; padding-top:10px; border-top:1px solid rgba(175,194,234,.28); }
.agenda-picked .agenda-check { display:flex; align-items:flex-start; gap:12px; min-height:44px; padding:6px 0; cursor:pointer; }
.agenda-picked .agenda-check input { flex:none; width:20px; height:20px; margin:2px 0 0; accent-color:#2E9E8F; cursor:pointer; }
.agenda-picked .agenda-check span { display:block; margin:0; font:500 15px/1.4 var(--sans); letter-spacing:0; text-transform:none; color:#fff; }
.agenda-picked .agenda-check b { display:inline; margin:0; font:700 15px/1.4 var(--sans); text-transform:none; }
.agenda-picked .agenda-check small { display:inline; margin:0; font:500 15px/1.4 var(--sans); color:#DCE8FF; }
.agenda-check-help { margin:0 0 6px 32px; font:500 14px/1.45 var(--sans); color:#DCE8FF; }
.agenda-check-help a { color:#fff; font-weight:700; text-decoration:underline; }
.agenda-safety-msg { margin-top:6px; font:600 14px/1.45 var(--sans); color:#FFE7A8; }
.agenda-safety-msg[hidden] { display:none; }
.agenda-safety-msg.error { color:#FFE0D9; }
.agenda-confirm.needs-safety[disabled] { cursor:not-allowed; opacity:.55; }
/* P0-07 · aviso de exámenes seguidos; P0-16 · cierre único con sus cuatro botones */
.agenda-together { margin:0 0 12px; }
.agenda-closing-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:16px; }
.agenda-closing-link { display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px 12px; border-radius:9px; border:1.5px solid rgba(26,58,122,.28); background:#fff; color:var(--brand); font:700 14px/1.25 var(--sans); text-align:center; }
.agenda-closing-link:hover { border-color:var(--brand); background:#F3F6FC; }
.agenda-closing-link.primary { grid-column:1 / -1; border-color:#0F7A43; background:#0F7A43; color:#fff; }
.agenda-closing-link.primary:hover { filter:brightness(1.06); }
@media (max-width:380px) { .agenda-closing-actions { grid-template-columns:1fr; } }
.agenda-skeleton { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-top:14px; }
.agenda-skeleton span { height:52px; border-radius:9px; background:linear-gradient(90deg,#EEF2F8,#FFFFFF,#EEF2F8); background-size:200% 100%;
  animation:agendaShimmer 1.2s linear infinite; }
@keyframes agendaShimmer { from { background-position:200% 0; } to { background-position:-200% 0; } }

@media (max-width:560px) {
  .cot-success { padding-left:18px; padding-right:18px; }
  .agenda-panel { max-width:none; }
  .agenda-card { padding:15px; }
  .agenda-days { display:flex; overflow-x:auto; padding-bottom:4px; scroll-snap-type:x mandatory; }
  .agenda-day { min-width:118px; scroll-snap-align:start; }
  .agenda-slots { grid-template-columns:repeat(3, minmax(0,1fr)); }
  .agenda-picked { display:block; }
  .agenda-confirm { width:100%; margin-top:12px; }
}

@media (prefers-reduced-motion: reduce) {
  .agenda-skeleton span { animation:none; }
  .agenda-day, .agenda-slot, .agenda-confirm, .agenda-secondary { transition:none; }
}

.cot-foot { display:none; flex-wrap:wrap; justify-content:center; gap:6px 22px;
  padding:14px 26px 20px; border-top:1px solid var(--line); }
.cot-foot span { font:500 10.5px var(--mono); letter-spacing:.08em; text-transform:uppercase; color:var(--sub); }

/* sticky móvil del cotizador */
.sticky-bar { --sticky-x:12px; --sticky-y:10px; --sticky-control:48px;
  position:fixed; left:0; right:0; bottom:0; z-index:50; display:grid;
  grid-template-columns:var(--sticky-control) minmax(0,1fr) var(--sticky-control);
  box-sizing:border-box; width:100%; max-width:100vw; background:var(--ink);
  border-top:1px solid var(--line-ink); gap:10px;
  padding:var(--sticky-y) max(var(--sticky-x), env(safe-area-inset-right))
    calc(var(--sticky-y) + env(safe-area-inset-bottom))
    max(var(--sticky-x), env(safe-area-inset-left));
  transform:translate3d(0,0,0); will-change:transform;
  transition:transform .25s var(--ease); }
.sticky-bar.off { transform:translate3d(0, calc(100% + env(safe-area-inset-bottom)), 0); }
.sb-btn { display:flex; align-items:center; justify-content:center; gap:8px; border-radius:9px;
  box-sizing:border-box; min-width:0; min-height:var(--sticky-control);
  font:600 14px var(--sans); padding:0 14px; touch-action:manipulation; }
.sb-call { background:transparent; border:1px solid var(--line-ink); color:var(--paper); padding:0; }
.sb-call svg { width:19px; height:19px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.sb-cot { background:var(--paper); color:var(--brand); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sb-res { background:var(--wsp); color:#fff; padding:0; }
.sb-btn img { height:20px; width:20px; object-fit:contain; }
.sb-btn svg { width:20px; height:20px; }
.sb-quote { display:none; }
.sticky-bar:not(.quote) { display:none; }
/* El dock del carrito ya muestra total + Continuar en pantalla: la sticky
   duplicada se desliza fuera para no mostrar dos CTAs iguales apiladas. */
.sticky-bar.quote.quote-detail-visible { transform:translate3d(0, calc(100% + env(safe-area-inset-bottom)), 0); }
/* En móvil la sticky tapa los últimos campos del paso 2: aire extra. */
@media (max-width:767px) { #p2.show { padding-bottom:72px; } }
.sticky-bar.quote { grid-template-columns:minmax(0,1fr); }
.sticky-bar.quote > .sb-btn { display:none; }
.sticky-bar.quote > .sb-quote { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 10px; align-items:center; min-width:0; }
.sbq-info { display:flex; flex:1 1 auto; flex-direction:column; gap:2px; min-width:0; }
.sbq-count { font:700 10px var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--brand-soft);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sbq-total { font:700 16px var(--sans); color:var(--paper); font-variant-numeric:tabular-nums;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sbq-actions { display:flex; align-items:center; gap:8px; }
.sbq-toggle { min-width:44px; min-height:44px; border:1px solid var(--line-ink); border-radius:9px;
  background:transparent; color:var(--paper); font:800 18px var(--sans); touch-action:manipulation; }
.sbq-toggle, .sbq-toggle[hidden], .sticky-bar.quote-detail-visible .sbq-toggle { display:none !important; }
.sbq-cta { flex:0 0 auto; box-sizing:border-box; min-width:112px; max-width:42vw;
  min-height:var(--sticky-control); background:var(--paper); color:var(--brand); border:0; border-radius:9px;
  font:700 14px var(--sans); padding:0 14px; white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis; touch-action:manipulation; transition:opacity .2s var(--ease); }
.sbq-cta[disabled] { opacity:.42; }
.sbq-drawer { grid-column:1 / -1; display:none; max-height:36vh; overflow:auto; border-top:1px solid var(--line-ink);
  padding-top:9px; }
.sticky-bar.quote.open .sbq-drawer,
.sticky-bar.quote-detail-visible .sbq-drawer,
.sbq-drawer { display:none !important; }
.sbq-list { display:flex; flex-direction:column; gap:7px; }
.sbq-list .quote-cart-item { background:rgba(250,249,246,.06); border-color:rgba(250,249,246,.16); }
.sbq-list .quote-cart-name { color:var(--paper); }
.sbq-list .quote-cart-meta { color:var(--paper-dim); }
.sbq-list .quote-cart-price { color:var(--brand-soft); }
.sbq-list .quote-cart-remove { background:rgba(250,249,246,.10); color:var(--paper); }
body { padding-bottom:calc(68px + env(safe-area-inset-bottom)); }

@media (max-width:380px) {
  .sticky-bar { --sticky-x:10px; gap:8px; }
  .sb-btn { font-size:13px; padding-inline:10px; }
  .sbq-total { font-size:15px; }
  .sbq-cta { min-width:100px; max-width:40vw; padding-inline:12px; }
}

@media (min-width:768px) {
  body { padding-bottom:0; }
  .sticky-bar { display:none; }
}

/* el botón de WhatsApp se ve siempre; si la barra fija de la cotización está a la vista, se sube para quedar sobre ella */
@media (max-width:767px) {
  body:has(.sticky-bar.quote:not(.off):not(.quote-detail-visible)) .ex-wsp { bottom:calc(82px + env(safe-area-inset-bottom,0px)); }
  /* respaldo sin :has(): cotizador.js pone esta clase en body mientras la barra fija está a la vista */
  body.cot-barra-visible .ex-wsp { bottom:calc(82px + env(safe-area-inset-bottom,0px)); }
  /* el círculo de WhatsApp queda sobre el borde derecho: la lista del carrito le deja aire para que el × (Quitar) nunca quede debajo */
  .quote-dock-list .quote-cart-item, #pricePreview .quote-cart-item { padding-right:68px; }
}

/* Validación en vivo (paso 2): check verde cuando el campo está bien */
.fi.valid { border-color:var(--signal); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E9E8F' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:16px; padding-right:40px; }
/* Pasos completados clickeables: volver atrás sin perder lo escrito */
.prog-clickable { cursor:pointer; }
.prog-dot.prog-clickable:hover { box-shadow:0 0 0 4px rgba(46,158,143,.18); }
.prog-labels .prog-clickable:hover { text-decoration:underline; }
/* Resumen bajo la tarjeta de éxito del paso 3 */
.suc-meta { margin:-12px auto 20px; max-width:420px; font-size:13.5px; color:var(--sub); background:var(--bg, #f4f6fa); border-radius:8px; padding:8px 12px; }

/* ── Cerebro compartido /api/cotizar ──────────────────────────────
   Grupos del buscador (lo que trae el core primero), aviso de examen
   que NO realizamos y notas del carro (perfiles, contraste, toma). */
.quote-result-group { margin:4px 0 -2px; font:700 10px var(--mono); letter-spacing:.14em;
  text-transform:uppercase; color:var(--sub); }
.quote-alert { border:1px solid rgba(180,83,9,.32); background:#FFF7ED; border-radius:10px;
  padding:12px 14px; font:600 12.5px var(--sans); line-height:1.45; color:#7C2D12; }
.quote-alert a { display:inline-block; margin-top:8px; font:700 12.5px var(--sans);
  color:var(--brand); text-decoration:underline; }
.quote-hero-notes { margin-top:10px; padding-top:9px; border-top:1px solid rgba(255,255,255,.14);
  display:flex; flex-direction:column; gap:5px; }
.quote-hero-note { font:600 11px var(--mono); line-height:1.45; color:#B8C7E6; }
