/* MS Clinics Cotizador — estilos del front. Prefijo msc- para no chocar con Flatsome. */

.msc-bloque { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 1em; }
.msc-bloque .quantity { margin: 0; }
.msc-bloque .single_add_to_cart_button { margin: 0; }
.msc-aviso { flex-basis: 100%; margin: 0; font-size: .9em; color: #b32d2e; }
.msc-aviso[hidden] { display: none; }
.msc-btn.msc-cargando-btn { opacity: .6; pointer-events: none; }

/* Aviso flotante al agregar */
.msc-toast {
	position: fixed; z-index: 99999; left: 50%; bottom: 24px; transform: translate(-50%, 20px);
	max-width: calc(100% - 32px); padding: 12px 18px; border-radius: 6px;
	background: #1d2327; color: #fff; font-size: 14px; line-height: 1.4;
	opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s;
}
.msc-toast a { color: #fff; text-decoration: underline; font-weight: 700; margin-left: 6px; }
.msc-toast-visible { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }

/* Página de cotización */
.msc-pagina { max-width: 900px; margin: 0 auto; }
.msc-cargando, .msc-vacia { padding: 24px 0; text-align: center; }
.msc-tabla { width: 100%; border-collapse: collapse; margin-bottom: 2em; }
.msc-tabla th { text-align: left; padding: 10px 8px; border-bottom: 2px solid rgba(0, 0, 0, .12); font-size: .9em; }
.msc-tabla td { padding: 12px 8px; border-bottom: 1px solid rgba(0, 0, 0, .08); vertical-align: middle; }
.msc-col-cant { width: 110px; }
.msc-col-quitar { width: 44px; text-align: center; }
.msc-producto { display: flex; align-items: center; gap: 12px; }
.msc-miniatura { width: 64px; height: 64px; object-fit: cover; border-radius: 4px; }
.msc-nombre { font-weight: 700; }
.msc-meta { font-size: .85em; opacity: .7; }
.msc-cantidad { width: 80px; margin: 0; text-align: center; }
.msc-quitar {
	width: 32px; height: 32px; margin: 0; padding: 0; border: 0; border-radius: 50%;
	background: transparent; font-size: 22px; line-height: 1; cursor: pointer; opacity: .6;
}
.msc-quitar:hover, .msc-quitar:focus-visible { opacity: 1; background: rgba(0, 0, 0, .06); }

.msc-form .msc-campo { margin-bottom: 1em; }
.msc-form label { display: block; font-weight: 600; margin-bottom: 4px; }
.msc-form input, .msc-form select, .msc-form textarea { width: 100%; margin-bottom: 0; }
.msc-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.msc-error { display: block; min-height: 0; color: #b32d2e; font-size: .85em; margin-top: 2px; }
.msc-error:empty { display: none; }
.msc-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.msc-exito { padding: 24px; border-radius: 6px; background: rgba(0, 128, 0, .08); text-align: center; }
.msc-exito[hidden] { display: none; }

.msc-form :focus-visible, .msc-tabla :focus-visible, .msc-bloque :focus-visible { outline: 2px solid var(--primary-color, #111); outline-offset: 2px; }

@media (max-width: 549px) {
	.msc-fila { grid-template-columns: 1fr; gap: 0; }
	.msc-miniatura { width: 48px; height: 48px; }
	.msc-col-cant { width: 80px; }
	.msc-cantidad { width: 64px; }
}
