/* Compra del certificado DICOM (dicom-compra.js): oferta + modal. Mismos colores que el calificador. */
.dc-oferta { display: flex; align-items: center; gap: 18px; margin: 28px auto 0; max-width: 980px; padding: 20px 22px; border-radius: 18px; background: #fff; border: 1.5px solid #BFDBFE; box-shadow: 0 18px 40px -26px rgba(29,66,138,.45); box-sizing: border-box; text-align: left; }
.dc-oferta-ico { width: 52px; height: 52px; flex: 0 0 52px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: #EFF5FF; color: #1D428A; }
.dc-oferta-ico svg { width: 28px; height: 28px; }
.dc-oferta-body { flex: 1; min-width: 0; }
.dc-oferta-eyebrow { margin: 0 0 4px; font: 800 .7rem/1 'Plus Jakarta Sans', sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #2563EB; }
.dc-oferta-title { margin: 0 0 6px; font: 800 1.15rem/1.25 'Outfit', sans-serif; color: #0B1B3D; }
.dc-oferta-txt { margin: 0 0 10px; font: 500 .9rem/1.45 'Plus Jakarta Sans', sans-serif; color: #334155; }
.dc-oferta-aviso { display: inline-flex; align-items: center; gap: 7px; margin: 0; padding: 6px 11px; border-radius: 999px; background: #F0FDF4; color: #166534; font: 700 .8rem/1.3 'Plus Jakarta Sans', sans-serif; }
.dc-oferta-aviso svg { width: 15px; height: 15px; flex: 0 0 15px; }
.dc-oferta-compra { display: flex; flex-direction: column; align-items: stretch; gap: 10px; flex: 0 0 auto; text-align: center; }
.dc-oferta-precio { font: 800 1.6rem/1 'Outfit', sans-serif; color: #0B1B3D; }
.dc-oferta-precio small { margin-left: 4px; font: 700 .75rem 'Plus Jakarta Sans', sans-serif; color: #64748B; }
.dc-oferta-btn { min-height: 48px; padding: 0 20px; border: 0; border-radius: 12px; cursor: pointer; background: linear-gradient(135deg, #1D428A 0%, #2563EB 100%); color: #fff; font: 800 .95rem 'Outfit', sans-serif; box-shadow: 0 12px 24px -10px rgba(37,99,235,.6); transition: transform .15s; }
.dc-oferta-btn:hover { transform: translateY(-2px); }
@media (max-width: 640px) {
  .dc-oferta { flex-direction: column; align-items: flex-start; padding: 18px; }
  .dc-oferta-compra { width: 100%; flex-direction: row; align-items: center; justify-content: space-between; }
}

/* ——— Modal ——— */
html.dc-bloqueo, body.dc-bloqueo { overflow: hidden; }
.dc-overlay { display: none; position: fixed; inset: 0; z-index: 1000000; background: rgba(11,27,61,.62); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 24px 12px; box-sizing: border-box; }
.dc-overlay.open { display: flex; }
.dc-card { position: relative; margin: auto; width: 100%; max-width: 480px; padding: 26px 24px 22px; border-radius: 22px; background: #fff; box-shadow: 0 24px 60px rgba(0,0,0,.4); box-sizing: border-box; text-align: center; font-family: 'Plus Jakarta Sans', sans-serif; color: #0F172A; }
.dc-card *, .dc-card *::before, .dc-card *::after { box-sizing: border-box; }
.dc-cerrar { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: #F1F5F9; color: #475569; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.dc-cerrar[hidden] { display: none; }
.dc-cerrar:hover { background: #E2E8F0; }
.dc-cerrar svg { width: 16px; height: 16px; }
/* Copiar el link grupocasas.cl/certificado-dicom: ícono junto a la X */
.dc-copiar { position: absolute; top: 12px; right: 56px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: #EFF5FF; color: #1D428A; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s, color .2s; }
.dc-copiar[hidden] { display: none; }
.dc-copiar:hover { background: #DBEAFE; }
.dc-copiar svg { width: 16px; height: 16px; }
.dc-copiar.copiado { background: #DCFCE7; color: #059669; }
.dc-copiar-aviso { position: absolute; top: calc(100% + 6px); right: 50%; transform: translateX(50%); padding: 5px 9px; border-radius: 8px; background: #0B1B3D; color: #fff; font: 700 .72rem 'Plus Jakarta Sans', sans-serif; white-space: nowrap; pointer-events: none; }
.dc-paso { display: none; }
.dc-paso.is-active { display: block; animation: dcEntrada .35s ease both; }
@keyframes dcEntrada { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.dc-ico { width: 52px; height: 52px; margin: 0 auto 10px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #1D428A 0%, #2563EB 100%); color: #fff; }
.dc-ico svg { width: 24px; height: 24px; }
.dc-titulo { margin: 0 0 6px; font: 800 1.3rem/1.25 'Outfit', sans-serif; color: #0B1B3D; }
.dc-sub { margin: 0 0 14px; font: 500 .9rem/1.45 'Plus Jakarta Sans', sans-serif; color: #475569; }
.dc-pasos { list-style: none; display: flex; justify-content: center; gap: 6px; margin: 0 0 14px; padding: 0; }
.dc-pasos li { display: flex; align-items: center; gap: 6px; white-space: nowrap; font: 700 .74rem/1 'Plus Jakarta Sans', sans-serif; color: #94A3B8; }
/* Selector reforzado: css/catalogo-v2.css da height: 330px a todos los ::before del catálogo en celular */
.dc-overlay .dc-card .dc-pasos li + li::before { content: ""; width: 14px; height: 1.5px; background: #CBD5E1; margin-right: 2px; }
.dc-pasos li span { width: 20px; height: 20px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #E2E8F0; color: #64748B; font-size: .7rem; }
.dc-pasos li.actual { color: #1D428A; }
.dc-pasos li.actual span { background: #2563EB; color: #fff; }
.dc-resumen { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; padding: 12px 14px; border-radius: 14px; background: #F8FAFC; border: 1px solid #E2E8F0; text-align: left; }
.dc-resumen strong { display: block; font: 800 .95rem/1.3 'Outfit', sans-serif; color: #0B1B3D; }
.dc-resumen small { display: block; font: 500 .76rem/1.35 'Plus Jakarta Sans', sans-serif; color: #64748B; }
.dc-precio { flex: 0 0 auto; font: 800 1.25rem/1 'Outfit', sans-serif; color: #0B1B3D; }
.dc-precio small { display: inline; margin-left: 3px; font: 700 .68rem 'Plus Jakarta Sans', sans-serif; color: #64748B; }
.dc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dc-field { margin: 0 0 10px; text-align: left; }
.dc-field label, .dc-label { display: block; margin: 0 0 5px; font: 700 .78rem/1.3 'Plus Jakarta Sans', sans-serif; color: #334155; }
.dc-field input, .dc-field textarea { display: block; width: 100%; min-height: 46px; padding: 10px 14px; border-radius: 12px; border: 1.5px solid #CBD5E1; background: #F8FAFC; color: #0F172A; font: 500 16px/1.4 'Plus Jakarta Sans', sans-serif; outline: none; transition: border-color .15s, box-shadow .15s; }
.dc-field textarea { min-height: 100px; resize: vertical; }
.dc-field input:focus, .dc-field textarea:focus { background: #fff; border-color: #1D428A; box-shadow: 0 0 0 4px rgba(37,99,235,.15); }
.dc-field input::placeholder, .dc-field textarea::placeholder { color: #94A3B8; }
.dc-pasarelas { margin: 2px 0 12px; text-align: left; }
.dc-pasarelas-opc { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.dc-pasarela { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px 14px; border: 1.5px solid #CBD5E1; border-radius: 12px; background: #F8FAFC; cursor: pointer; text-align: left; }
.dc-pasarela:has(input:checked) { border-color: #2563EB; background: #EFF5FF; box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.dc-pasarela input { position: absolute; top: 12px; right: 12px; margin: 0; accent-color: #2563EB; }
.dc-pasarela img { height: 30px; width: auto; max-width: 110px; object-fit: contain; display: block; }
.dc-pasarela strong { display: block; font: 800 .92rem 'Outfit', sans-serif; color: #0B1B3D; }
.dc-pasarela small { display: block; font: 500 .74rem/1.3 'Plus Jakarta Sans', sans-serif; color: #64748B; }
.dc-check { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 10px; text-align: left; font: 500 .8rem/1.45 'Plus Jakarta Sans', sans-serif; color: #334155; cursor: pointer; }
.dc-check input { width: 18px; height: 18px; flex: 0 0 18px; margin: 1px 0 0; accent-color: #2563EB; cursor: pointer; }
.dc-check a { color: #1D428A; font-weight: 700; }
.dc-nota { display: flex; gap: 8px; align-items: flex-start; margin: 4px 0 10px; font: 600 .78rem/1.4 'Plus Jakarta Sans', sans-serif; color: #475569; text-align: left; }
.dc-nota svg { width: 16px; height: 16px; flex: 0 0 16px; margin-top: 1px; color: #16A34A; }
.dc-error { margin: 0 0 10px; font: 600 .84rem/1.4 'Plus Jakarta Sans', sans-serif; color: #B91C1C; text-align: left; }
.dc-error:empty { display: none; }
.dc-acciones-form { display: flex; gap: 10px; }
.dc-btn-pri, .dc-btn-sec { min-height: 50px; padding: 0 18px; border-radius: 12px; cursor: pointer; font: 800 .98rem 'Outfit', sans-serif; }
.dc-btn-pri { flex: 1.4; border: 0; color: #fff; background: linear-gradient(135deg, #1D428A 0%, #2563EB 100%); box-shadow: 0 10px 22px rgba(37,99,235,.35); }
.dc-btn-pri:disabled { background: #CBD5E1; color: #fff; box-shadow: none; cursor: not-allowed; }
.dc-btn-sec { flex: 1; background: #fff; color: #334155; border: 1.5px solid #CBD5E1; }
.dc-btn-full { width: 100%; }
.dc-spinner { width: 48px; height: 48px; margin: 18px auto 16px; border-radius: 50%; border: 4px solid #DBEAFE; border-top-color: #2563EB; animation: dcGiro .8s linear infinite; }
.dc-spinner-mini { width: 30px; height: 30px; margin: 0; border-width: 3px; border-color: rgba(255,255,255,.35); border-top-color: #fff; }
@keyframes dcGiro { to { transform: rotate(360deg); } }
.dc-estado-ico { width: 68px; height: 68px; margin: 6px auto 14px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #1D428A; color: #fff; }
.dc-estado-ico svg { width: 34px; height: 34px; }
.dc-estado-ico.ok { background: #DCFCE7; color: #16A34A; }
.dc-estado-ico.pend { background: #E2E8F0; color: #475569; }
.dc-estado-ico.err { background: #FEE2E2; color: #DC2626; }
.dc-badge { display: inline-block; margin: 0 0 8px; padding: 4px 12px; border-radius: 999px; font: 800 .7rem/1.4 'Plus Jakarta Sans', sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.dc-badge[hidden] { display: none; }
.dc-badge.ok { background: #DCFCE7; color: #166534; }
.dc-badge.pend { background: #F1F5F9; color: #475569; }
.dc-badge.err { background: #FEE2E2; color: #991B1B; }
.dc-comprobante { margin: 16px 0 0; padding: 14px 16px; border-radius: 14px; background: #F8FAFC; border: 1px solid #E2E8F0; display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; text-align: left; }
.dc-comprobante[hidden] { display: none; }
.dc-comprobante dt { font: 700 .74rem/1.4 'Plus Jakarta Sans', sans-serif; letter-spacing: .06em; text-transform: uppercase; color: #64748B; }
.dc-comprobante dd { margin: 0; font: 700 .9rem/1.4 'Plus Jakarta Sans', sans-serif; color: #0F172A; word-break: break-word; }
.dc-acciones { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; }
.dc-acciones a, .dc-acciones button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; border-radius: 12px; font: 800 .98rem 'Outfit', sans-serif; text-decoration: none; cursor: pointer; }
.dc-acciones .primario { border: 0; color: #fff; background: linear-gradient(135deg, #1D428A 0%, #2563EB 100%); box-shadow: 0 10px 22px rgba(37,99,235,.35); }
.dc-acciones .secundario { background: #fff; color: #334155; border: 1.5px solid #CBD5E1; }
.dc-acciones .texto { background: none; border: 0; color: #64748B; min-height: 36px; font: 700 .85rem 'Plus Jakarta Sans', sans-serif; }
.dc-incidente { margin-top: 20px; padding-top: 16px; border-top: 1px solid #E2E8F0; text-align: left; }
.dc-incidente[hidden], #dc-inc-form[hidden], .dc-incidente-ok[hidden], .dc-incidente-toggle[hidden] { display: none; }
.dc-incidente-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-radius: 12px; border: 1px solid #E2E8F0; background: #F8FAFC; cursor: pointer; font: 600 .9rem/1.3 'Plus Jakarta Sans', sans-serif; color: #475569; text-align: left; }
.dc-incidente-toggle strong { color: #0B1B3D; }
.dc-incidente-toggle svg { width: 18px; height: 18px; flex: 0 0 18px; transition: transform .2s; }
.dc-incidente-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
#dc-inc-form { margin-top: 12px; }
.dc-inc-nota { margin: 8px 0 0; text-align: center; font: 600 .78rem/1.4 'Plus Jakarta Sans', sans-serif; color: #64748B; }
.dc-incidente-ok { display: flex; gap: 10px; align-items: flex-start; margin-top: 12px; padding: 12px 14px; border-radius: 12px; background: #F0FDF4; border: 1px solid #BBF7D0; font: 500 .88rem/1.45 'Plus Jakarta Sans', sans-serif; color: #166534; }
.dc-incidente-ok svg { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 1px; }
@media (max-width: 480px) {
  .dc-card { padding: 22px 16px 18px; border-radius: 18px; }
  .dc-grid, .dc-pasarelas-opc { grid-template-columns: 1fr; gap: 0 8px; }
  .dc-pasarelas-opc { gap: 8px; }
  .dc-pasos li { font-size: .68rem; }
  .dc-acciones-form { flex-direction: column-reverse; }
}
