/**
 * Short Code Latepoint — estilos enriquecidos para panel de cliente.
 * Alcance: .lpsc-enhanced, .lpsc-widget-block, .lpsc-guest-notice
 */

.lpsc-guest-notice {
	--lpsc-guest-bg: #f0f9ff;
	--lpsc-guest-border: #bae6fd;
	--lpsc-guest-text: #0c4a6e;
	margin: 0 0 1rem;
	padding: 1rem 1.25rem;
	border-radius: 12px;
	border: 1px solid var(--lpsc-guest-border);
	background: var(--lpsc-guest-bg);
	color: var(--lpsc-guest-text);
	font-size: 0.95rem;
	line-height: 1.5;
}

.lpsc-enhanced.latepoint-w {
	--lpsc-surface: #ffffff;
	--lpsc-surface-2: #f8fafc;
	--lpsc-border: rgba(15, 23, 42, 0.08);
	/* Línea fina continua bajo toda la fila de pestañas (editable vía Elementor → --lpsc-tabs-nav-border-* en .lpsc-widget-block) */
	--lpsc-tabs-nav-border-width: 1px;
	--lpsc-tabs-nav-border-color: rgba(15, 23, 42, 0.1);
	--lpsc-text: #0f172a;
	--lpsc-muted: #64748b;
	--lpsc-accent: #0ea5e9;
	--lpsc-accent-soft: rgba(14, 165, 233, 0.12);
	--lpsc-radius: 16px;
	--lpsc-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
	--lpsc-form-field-border: transparent;
	max-width: 100%;
	color: var(--lpsc-text);
}

/* Cabecera cliente */
.lpsc-enhanced .lpsc-customer-header,
.lpsc-enhanced .latepoint-customer-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 20px;
	margin-bottom: 1.25rem;
	padding: 1.1rem 1.25rem;
	border-radius: var(--lpsc-radius);
	background: linear-gradient(135deg, var(--lpsc-surface) 0%, var(--lpsc-surface-2) 100%);
	border: 1px solid var(--lpsc-border);
	box-shadow: var(--lpsc-shadow);
}

.lpsc-enhanced .lpsc-customer-header a,
.lpsc-enhanced .latepoint-customer-header a {
	display: inline-flex;
	align-items: center;
	padding: 0.45rem 0.9rem;
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--lpsc-muted);
	background: var(--lpsc-surface);
	border: 1px solid var(--lpsc-border);
	transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.lpsc-enhanced .lpsc-customer-header a:hover,
.lpsc-enhanced .latepoint-customer-header a:hover {
	color: var(--lpsc-accent);
	border-color: var(--lpsc-accent-soft);
	background: var(--lpsc-accent-soft);
}

.lpsc-enhanced .lpsc-customer-header h4,
.lpsc-enhanced .latepoint-customer-header h4 {
	margin: 0;
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
	color: var(--lpsc-text);
}

/* Navegación tabs — alineado con el panel nativo de LatePoint (línea inferior, sin “pastillas”) */
.lpsc-enhanced .lpsc-tabs-nav.customer-dashboard-tabs,
.lpsc-enhanced .latepoint-tab-triggers.customer-dashboard-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin: 0 0 14px;
	padding: 0 0 8px;
	border-radius: 0;
	background: transparent;
	border: none;
	border-bottom-width: var(--lpsc-tabs-nav-border-width, 1px);
	border-bottom-style: solid;
	border-bottom-color: var(--lpsc-tabs-nav-border-color, rgba(15, 23, 42, 0.1));
}

.lpsc-enhanced .latepoint-tab-triggers .latepoint-tab-trigger {
	position: relative;
	padding: 4px 2px;
	border-radius: 0;
	font-size: 1rem;
	font-weight: 600;
	color: var(--lpsc-muted);
	text-decoration: none;
	border: none;
	border-bottom: 2px solid transparent;
	background: transparent;
	margin-bottom: -9px;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.lpsc-enhanced .latepoint-tab-triggers .latepoint-tab-trigger:hover {
	color: var(--lpsc-text);
	background: transparent;
}

.lpsc-enhanced .latepoint-tab-triggers .latepoint-tab-trigger.active {
	color: var(--lpsc-text);
	background: transparent;
	box-shadow: none;
	border-bottom-color: var(--lpsc-tab-active-indicator, var(--latepoint-brand-primary, var(--lpsc-accent)));
}

/*
 * LatePoint (front.css): .latepoint .customer-dashboard-tabs a:after usa --latepoint-brand-primary (barra azul);
 * .latepoint-w ... a.active:after sube el grosor. LPSC ya marca la activa con border-bottom: anulamos los pseudo.
 */
.lpsc-enhanced.latepoint-w .customer-dashboard-tabs .latepoint-tab-trigger::before,
.lpsc-enhanced.latepoint-w .customer-dashboard-tabs .latepoint-tab-trigger::after,
.lpsc-enhanced .latepoint-tab-triggers .latepoint-tab-trigger::before,
.lpsc-enhanced .latepoint-tab-triggers .latepoint-tab-trigger::after {
	content: none !important;
	display: none !important;
	width: 0 !important;
	height: 0 !important;
	background: transparent !important;
}

/* Contenido de pestañas */
.lpsc-enhanced .latepoint-tab-content {
	padding: 0.25rem 0 0;
}

/* Reprogramar / Cancelar: LatePoint pone el subrayado con border-bottom en el <span> (ver _buttons.scss).
   Igualamos al color del texto para que coincida con LPSC / Elementor. */
.lpsc-enhanced .tab-content-customer-bookings .customer-booking-buttons .latepoint-btn-primary.latepoint-btn-link span,
.lpsc-widget-block .tab-content-customer-bookings .customer-booking-buttons .latepoint-btn-primary.latepoint-btn-link span,
.lpsc-enhanced .tab-content-customer-bookings .customer-booking-buttons .latepoint-btn-danger.latepoint-btn-link span,
.lpsc-widget-block .tab-content-customer-bookings .customer-booking-buttons .latepoint-btn-danger.latepoint-btn-link span {
	border-bottom-color: currentColor !important;
}

/* Pestañas en barra lateral (tabs_layout=vertical / clase .lpsc-tabs-w-vertical).
   Grid: columna 1 = nav; columna 2 = paneles (varios .latepoint-tab-content hermanos). */
.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical,
.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical {
	display: grid;
	grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
	align-items: start;
	gap: 1.25rem;
	width: 100%;
	box-sizing: border-box;
}

.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-triggers.customer-dashboard-tabs,
.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-triggers.customer-dashboard-tabs {
	grid-column: 1;
	grid-row: 1 / -1;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: flex-start;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0 0.75rem 0 0;
	border-radius: 0;
	border: none;
	border-bottom: none !important;
	border-bottom-width: 0 !important;
	border-bottom-style: none !important;
	border-bottom-color: transparent !important;
	border-block-end: none !important;
	border-inline-end: 1px solid rgba(15, 23, 42, 0.1);
	gap: 4px 0;
}

.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group],
.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group] {
	display: flex;
	flex-direction: row;
	align-items: center;
	width: 100%;
	margin: 0 !important;
	margin-bottom: 0 !important;
	padding: 0.5rem 0.65rem;
	border-radius: 8px;
	border: none;
	border-bottom: 0 !important;
	border-bottom-width: 0 !important;
	border-bottom-color: transparent !important;
	border-inline-start: 3px solid transparent;
	box-shadow: none !important;
	box-sizing: border-box;
	white-space: normal;
	text-align: start;
	text-decoration: none !important;
	background-image: none !important;
}

.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group]::before,
.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group]::after,
.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group]::before,
.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group]::after {
	content: none !important;
	display: none !important;
	border: none !important;
	box-shadow: none !important;
}

.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group] .lpsc-tab-trigger__text,
.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group] .lpsc-tab-trigger__text {
	text-decoration: none !important;
	border-bottom: none !important;
}

.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group]:hover:not(.active),
.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group]:hover:not(.active) {
	border-bottom: 0 !important;
	border-bottom-width: 0 !important;
	border-bottom-color: transparent !important;
	box-shadow: none !important;
}

.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group].active,
.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group].active {
	border-bottom: 0 !important;
	border-bottom-width: 0 !important;
	border-bottom-color: transparent !important;
	box-shadow: none !important;
	border-inline-start-color: var(--lpsc-tab-active-indicator, var(--lpsc-tab-active, var(--latepoint-brand-primary, var(--lpsc-accent))));
}

.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group]:not(.active),
.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-trigger[data-tab-group]:not(.active) {
	border-inline-start-color: transparent;
}

.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical > .latepoint-tab-content,
.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical > .latepoint-tab-content {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
	padding: 0;
	margin: 0;
}

@media (max-width: 640px) {
	.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical,
	.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-triggers.customer-dashboard-tabs,
	.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical .latepoint-tab-triggers.customer-dashboard-tabs {
		grid-column: 1;
		grid-row: auto;
		width: 100%;
		padding: 0 0 12px 0;
		border-inline-end: none;
		border-bottom-width: var(--lpsc-tabs-nav-border-width, 1px);
		border-bottom-style: solid;
		border-bottom-color: var(--lpsc-tabs-nav-border-color, rgba(15, 23, 42, 0.1));
	}

	.lpsc-widget-block .latepoint-tabs-w.lpsc-tabs-w-vertical > .latepoint-tab-content,
	.lpsc-enhanced .latepoint-tabs-w.lpsc-tabs-w-vertical > .latepoint-tab-content {
		grid-column: 1;
		grid-row: auto;
	}
}

/* Vista previa Elementor: pestaña «nueva cita» en modo popup */
.lpsc-widget-block .lpsc-na-popup-placeholder .lpsc-na-popup-placeholder__text,
.lpsc-enhanced .lpsc-na-popup-placeholder .lpsc-na-popup-placeholder__text {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--lpsc-muted, #64748b);
}

/* Pestañas con data-tab-group (Elementor / short_code_latepoint): una sola visible hasta que cargue el JS de LatePoint */
.lpsc-widget-block .latepoint-tab-content[data-tab-group]:not(.active) {
	display: none;
}

.lpsc-enhanced .latepoint-section-heading-w {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 1.5rem 0 0.85rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--lpsc-border);
}

.lpsc-enhanced .latepoint-section-heading-w:first-child {
	margin-top: 0;
}

.lpsc-enhanced .latepoint-section-heading {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--lpsc-text);
}

.lpsc-enhanced .latepoint-section-heading-w .heading-extra {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--lpsc-muted);
}

/* Tiles citas / pedidos */
.lpsc-enhanced .customer-bookings-tiles,
.lpsc-enhanced .customer-orders-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 14px;
	margin-bottom: 0.5rem;
}

/* Tarjetas: no sustituir el aspecto de LatePoint; solo grid y ancho mínimo */
.lpsc-enhanced .customer-bookings-tiles > *,
.lpsc-enhanced .customer-orders-tiles > * {
	min-width: 0;
}

/* Agente / estado: sin space-between de LatePoint (evita badge corto pegado a la derecha) */
.lpsc-widget-block .customer-booking-info .customer-booking-info-row,
.lpsc-enhanced .customer-booking-info .customer-booking-info-row {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	flex-wrap: wrap;
	column-gap: 0.65rem;
	row-gap: 0.25rem;
}

/* Estado: ancho al texto (fit-content), junto a la etiqueta */
.lpsc-widget-block .customer-booking .customer-booking-info .customer-booking-info-row .booking-info-value[class*="status-"],
.lpsc-enhanced .customer-booking .customer-booking-info .customer-booking-info-row .booking-info-value[class*="status-"],
.lpsc-widget-block .tab-content-customer-bookings .customer-booking .customer-booking-info .booking-info-value[class*="status-"],
.lpsc-enhanced .tab-content-customer-bookings .customer-booking .customer-booking-info .booking-info-value[class*="status-"] {
	display: block;
	box-sizing: border-box;
	width: fit-content;
	max-width: 100%;
	height: auto;
	min-height: 0;
	flex: 0 0 auto !important;
	align-self: flex-start;
	line-height: 1.25;
	padding: 0.3em 0.55em;
	text-align: left;
	border-radius: 6px;
}

/*
 * LatePoint (_customer_dashboard.scss) solo pinta approved / pending / cancelled.
 * «Past» suele ser completed: sin reglas nativas el badge se ve distinto (cantos vivos, otro peso visual).
 * Unificamos con el mismo criterio de pastilla + estados que el core no cubre en el front.
 */
.lpsc-widget-block .customer-booking .customer-booking-info .booking-info-value.status-completed,
.lpsc-enhanced .customer-booking .customer-booking-info .booking-info-value.status-completed,
.lpsc-widget-block .tab-content-customer-bookings .customer-booking .customer-booking-info .booking-info-value.status-completed,
.lpsc-enhanced .tab-content-customer-bookings .customer-booking .customer-booking-info .booking-info-value.status-completed {
	font-size: 13px;
	font-weight: 600;
	color: #1b4332;
	background-color: #d8f3dc;
	border: 1px solid rgba(27, 67, 50, 0.18);
}

.lpsc-widget-block .customer-booking .customer-booking-info .booking-info-value.status-no_show,
.lpsc-enhanced .customer-booking .customer-booking-info .booking-info-value.status-no_show,
.lpsc-widget-block .tab-content-customer-bookings .customer-booking .customer-booking-info .booking-info-value.status-no_show,
.lpsc-enhanced .tab-content-customer-bookings .customer-booking .customer-booking-info .booking-info-value.status-no_show {
	font-size: 13px;
	font-weight: 600;
	color: #7c2d12;
	background-color: #ffedd5;
	border: 1px solid rgba(124, 45, 18, 0.2);
}

.lpsc-widget-block .customer-booking .customer-booking-info .booking-info-value.status-payment_pending,
.lpsc-enhanced .customer-booking .customer-booking-info .booking-info-value.status-payment_pending,
.lpsc-widget-block .tab-content-customer-bookings .customer-booking .customer-booking-info .booking-info-value.status-payment_pending,
.lpsc-enhanced .tab-content-customer-bookings .customer-booking .customer-booking-info .booking-info-value.status-payment_pending {
	font-size: 13px;
	font-weight: 600;
	color: #3a2f15;
	background-color: #fde29f;
	border: 1px solid rgba(58, 47, 21, 0.15);
}

.lpsc-enhanced a.new-booking-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 120px;
	border: 2px dashed rgba(14, 165, 233, 0.45);
	background: var(--lpsc-accent-soft);
	color: #0369a1;
	font-weight: 600;
	border-radius: 14px;
	text-decoration: none;
	transition: border-color 0.2s ease, background 0.2s ease;
}

.lpsc-enhanced a.new-booking-tile:hover {
	border-color: var(--lpsc-accent);
	background: rgba(14, 165, 233, 0.2);
	color: #0c4a6e;
}

/* Mensajes LatePoint */
.lpsc-enhanced .latepoint-message.latepoint-message-info {
	border-radius: 12px;
	padding: 1rem 1.15rem;
	border: 1px solid var(--lpsc-border);
	background: var(--lpsc-surface-2);
	color: var(--lpsc-muted);
}

/* Formularios: no alterar Perfil ni el flujo de nueva cita embebido (tipografía LatePoint nativa) */
.lpsc-enhanced .latepoint-tab-content:not(.tab-content-customer-info-form):not(.tab-content-customer-new-appointment-form) .os-form-w .os-form-group label,
.lpsc-enhanced .latepoint-tab-content:not(.tab-content-customer-info-form):not(.tab-content-customer-new-appointment-form) .os-form-label {
	font-weight: 600;
	color: var(--lpsc-text);
}

.lpsc-enhanced .latepoint-tab-content:not(.tab-content-customer-info-form):not(.tab-content-customer-new-appointment-form) input[type="text"],
.lpsc-enhanced .latepoint-tab-content:not(.tab-content-customer-info-form):not(.tab-content-customer-new-appointment-form) input[type="email"],
.lpsc-enhanced .latepoint-tab-content:not(.tab-content-customer-info-form):not(.tab-content-customer-new-appointment-form) input[type="tel"],
.lpsc-enhanced .latepoint-tab-content:not(.tab-content-customer-info-form):not(.tab-content-customer-new-appointment-form) input[type="password"],
.lpsc-enhanced .latepoint-tab-content:not(.tab-content-customer-info-form):not(.tab-content-customer-new-appointment-form) select,
.lpsc-enhanced .latepoint-tab-content:not(.tab-content-customer-info-form):not(.tab-content-customer-new-appointment-form) textarea {
	border-radius: 10px;
	border-color: var(--lpsc-border);
}

.lpsc-enhanced .latepoint-tab-content:not(.tab-content-customer-info-form):not(.tab-content-customer-new-appointment-form) .os-form-w .latepoint-btn,
.lpsc-enhanced .latepoint-tab-content:not(.tab-content-customer-info-form):not(.tab-content-customer-new-appointment-form) button[type="submit"] {
	border-radius: 999px;
	font-weight: 600;
	padding: 0.55rem 1.25rem;
	background: linear-gradient(135deg, #0284c7 0%, #0ea5e9 100%);
	border: none;
	color: #fff;
	box-shadow: 0 4px 14px rgba(14, 165, 233, 0.3);
}

/* Contenedor nueva cita: no heredar peso/tamaño agresivo del bloque widget */
.lpsc-widget-block .tab-content-customer-new-appointment-form,
.lpsc-enhanced .tab-content-customer-new-appointment-form {
	font-weight: unset;
}

/* Separador solo en perfil clásico; en modo moderno las tarjetas ya delimitan la sección */
.lpsc-enhanced .latepoint-tab-content.tab-content-customer-info-form:not(.lpsc-customer-profile--modern) .customer-password-form-w {
	margin-top: 1.75rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--lpsc-border);
}

/* Perfil: primario sólido (LatePoint); evita outline del tema / Elementor en .latepoint-btn */
.lpsc-enhanced .latepoint-tab-content.tab-content-customer-info-form .latepoint-btn,
.lpsc-enhanced .latepoint-tab-content.tab-content-customer-info-form button[type="submit"],
.lpsc-enhanced .latepoint-tab-content.tab-content-customer-info-form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-height: 46px;
	padding: 0 22px;
	margin: var(--lpsc-form-submit-margin-top, 0) 0 0 0;
	border: 0;
	border-radius: 999px;
	background: var(--latepoint-brand-primary, #157bff);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	white-space: nowrap;
	box-shadow: none;
	text-decoration: none;
	text-transform: none;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.lpsc-enhanced .latepoint-tab-content.tab-content-customer-info-form .latepoint-btn:hover,
.lpsc-enhanced .latepoint-tab-content.tab-content-customer-info-form button[type="submit"]:hover,
.lpsc-enhanced .latepoint-tab-content.tab-content-customer-info-form input[type="submit"]:hover {
	background: #0f6df0;
	border: 0;
}

.lpsc-enhanced .latepoint-tab-content.tab-content-customer-info-form .customer-password-form-w h5 {
	margin: 0 0 14px;
	font-size: 12px;
	line-height: 1.35;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #41444b;
}

/*
 * Perfil: layout moderno — valores iniciales neutros (sin cajas ni bordes pretados).
 * En Elementor → Estilo → «Presentación moderna» puedes añadir fondo, borde, radio, sombra y padding.
 */
.lpsc-customer-profile--modern {
	--lpsc-prof-hero-padding: 0;
	--lpsc-prof-hero-bg: transparent;
	--lpsc-prof-hero-radius: 0;
	--lpsc-prof-hero-border: transparent;
	--lpsc-prof-name-color: #0f172a;
	--lpsc-prof-meta-color: #64748b;
	--lpsc-prof-avatar-size: 88px;
	--lpsc-prof-avatar-radius: 50%;
	--lpsc-prof-avatar-border: transparent;
	--lpsc-prof-avatar-fallback-bg: linear-gradient(145deg, #0ea5e9, #6366f1);
	--lpsc-prof-avatar-fallback-color: #fff;
	--lpsc-prof-card-gap: 2rem;
	--lpsc-prof-card-bg: transparent;
	--lpsc-prof-card-padding: 0;
	--lpsc-prof-card-radius: 0;
	--lpsc-prof-card-border: transparent;
	--lpsc-prof-card-shadow: none;
	--lpsc-prof-card-title-color: #0f172a;
	display: flex;
	flex-direction: column;
	gap: var(--lpsc-prof-card-gap);
	row-gap: var(--lpsc-prof-card-gap);
}

/* El widget forcaba display:block en .latepoint-tab-content y anulaba gap entre tarjetas */
.lpsc-widget-block .latepoint-tab-content.tab-content-customer-info-form.lpsc-customer-profile--modern {
	display: flex !important;
	flex-direction: column;
	align-items: stretch;
	gap: var(--lpsc-prof-card-gap);
	row-gap: var(--lpsc-prof-card-gap);
}

.lpsc-widget-block .lpsc-customer-profile--modern,
.lpsc-enhanced .lpsc-customer-profile--modern {
	width: 100%;
	max-width: 100%;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__hero {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.1rem 1.35rem;
	padding: var(--lpsc-prof-hero-padding);
	border-radius: var(--lpsc-prof-hero-radius);
	background-color: transparent;
	border-width: 1px;
	border-style: solid;
	border-color: var(--lpsc-prof-hero-border);
	box-sizing: border-box;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__avatar-wrap {
	position: relative;
	width: var(--lpsc-prof-avatar-size);
	height: var(--lpsc-prof-avatar-size);
	flex-shrink: 0;
	border-radius: var(--lpsc-prof-avatar-radius);
	overflow: hidden;
	border-width: 2px;
	border-style: solid;
	border-color: var(--lpsc-prof-avatar-border);
	box-sizing: border-box;
	background: transparent;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__avatar-wrap--fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--lpsc-prof-avatar-fallback-bg);
	border-color: transparent;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__avatar {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	vertical-align: middle;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__avatar-fallback {
	font-size: calc(var(--lpsc-prof-avatar-size) * 0.32);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	color: var(--lpsc-prof-avatar-fallback-color);
}

.lpsc-customer-profile--modern .lpsc-profile-modern__hero-text {
	min-width: 0;
	flex: 1 1 200px;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__name {
	margin: 0 0 0.35rem;
	font-size: clamp(1.35rem, 2.5vw, 1.65rem);
	line-height: 1.2;
	font-weight: 700;
	color: var(--lpsc-prof-name-color);
}

.lpsc-customer-profile--modern .lpsc-profile-modern__meta {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.45;
	color: var(--lpsc-prof-meta-color);
	word-break: break-word;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__logout {
	display: inline-block;
	margin-top: 0.65rem;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--lpsc-prof-logout-color, rgba(255, 255, 255, 0.92));
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__logout:hover,
.lpsc-customer-profile--modern .lpsc-profile-modern__logout:focus {
	color: var(--lpsc-prof-logout-color, #fff);
	opacity: 0.95;
}

.lpsc-profile-modern__logout-wrap--no-hero {
	margin: 0 0 1rem;
}

.lpsc-profile-classic__logout-wrap {
	margin: 0 0 1rem;
}

.tab-content-customer-info-form:not(.lpsc-customer-profile--modern) .lpsc-profile-classic__logout {
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__card {
	background-color: transparent;
	border-radius: var(--lpsc-prof-card-radius);
	border-width: 1px;
	border-style: solid;
	border-color: var(--lpsc-prof-card-border);
	box-shadow: var(--lpsc-prof-card-shadow);
	padding: var(--lpsc-prof-card-padding);
	box-sizing: border-box;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__card-title {
	margin: 0 0 1rem;
	font-size: 0.78rem;
	line-height: 1.35;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--lpsc-prof-card-title-color);
}

.lpsc-customer-profile--modern .lpsc-profile-modern__card-title--password {
	margin-bottom: 1rem;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__card .os-row {
	margin-bottom: 0;
}

.lpsc-customer-profile--modern .lpsc-profile-modern__card > form:last-child {
	margin-bottom: 0;
}

.lpsc-customer-profile--modern .customer-password-form-w {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.lpsc-enhanced .lpsc-customer-profile--modern .customer-password-form-w h5 {
	margin: 0 0 14px;
}

@media (max-width: 767px) {
	.lpsc-customer-profile--modern .lpsc-profile-modern__hero {
		flex-direction: column;
		align-items: flex-start;
	}
}

/*
 * Perfil: LatePoint puede dejar bordes transparentes en .os-form-control.
 * Por defecto sin borde (transparent); en Elementor → Estilo → «Borde de campos» el usuario asigna color/grosor vía --lpsc-form-field-border.
 */
.lpsc-widget-block .tab-content-customer-info-form .os-form-group input:not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.lpsc-widget-block .tab-content-customer-info-form .os-form-group select,
.lpsc-widget-block .tab-content-customer-info-form .os-form-group textarea,
.lpsc-widget-block .tab-content-customer-info-form .iti input[type="tel"],
.lpsc-widget-block .tab-content-customer-info-form .os-phone-number-field input,
.lpsc-enhanced .tab-content-customer-info-form .os-form-group input:not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.lpsc-enhanced .tab-content-customer-info-form .os-form-group select,
.lpsc-enhanced .tab-content-customer-info-form .os-form-group textarea,
.lpsc-enhanced .tab-content-customer-info-form .iti input[type="tel"],
.lpsc-enhanced .tab-content-customer-info-form .os-phone-number-field input {
	border: 1px solid var(--lpsc-form-field-border, transparent) !important;
	border-style: solid !important;
}

/* Perfil: LatePoint a veces usa <label> sin .os-form-label; variables de Elementor deben aplicar en vivo */
.lpsc-widget-block .tab-content-customer-info-form .os-form-label,
.lpsc-widget-block .tab-content-customer-info-form .os-form-group > label,
.lpsc-enhanced .tab-content-customer-info-form .os-form-label,
.lpsc-enhanced .tab-content-customer-info-form .os-form-group > label {
	color: var(--lpsc-form-label-color, #334155) !important;
	margin-bottom: var(--lpsc-form-label-gap, 6px);
}

/* Widget Elementor: sin marco en el contenedor; variable por defecto para campos de formulario */
.lpsc-widget-block {
	--lpsc-form-field-border: transparent;
	border: none;
	box-shadow: none;
	background: transparent;
	border-radius: 0;
}

/* Ocultar fila «Añadir al calendario» + «Resumen» (control Elementor / shortcode hide_booking_footer_actions) */
.lpsc-appt-hide-footer-actions .customer-booking-bottom-actions {
	display: none !important;
}

/* Vista previa (datos ficticios) */
.lpsc-preview-banner {
	margin: 0 0 1rem;
	padding: 0.65rem 1rem;
	border-radius: 10px;
	background: linear-gradient(90deg, #fef3c7 0%, #fffbeb 100%);
	border: 1px solid #fcd34d;
	color: #78350f;
	font-size: 0.9rem;
	line-height: 1.45;
}

.lpsc-preview-badge {
	display: inline-block;
	margin-right: 0.35rem;
	padding: 0.15rem 0.5rem;
	border-radius: 6px;
	background: #f59e0b;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.lpsc-preview-fake-link {
	cursor: default;
	opacity: 0.75;
}

/* Demo en editor: sin pointer-events:none para que :hover y estilos Elementor se vean; el clic sigue anulado en HTML (return false). */
.lpsc-demo-fake-action {
	cursor: pointer;
}

.lpsc-demo-order-note {
	margin-top: 0.5rem;
	font-size: 0.875rem;
	color: var(--lpsc-muted, #64748b);
}

.lpsc-demo-muted {
	margin: 0 0 0.75rem;
	color: var(--lpsc-muted, #64748b);
	font-size: 0.9rem;
}

.lpsc-demo-btn-disabled {
	pointer-events: none;
	opacity: 0.85;
}

@media (max-width: 600px) {
	.lpsc-enhanced .customer-bookings-tiles,
	.lpsc-enhanced .customer-orders-tiles {
		grid-template-columns: 1fr;
	}
}

/*
 * Presets de tarjeta de citas (Elementor / shortcode cards_style).
 * Patrón tipo «skin» de addons: clase en el contenedor + CSS acotado.
 */
.lpsc-widget-block .tab-content-customer-bookings.lpsc-appt-cards--media .customer-bookings-tiles,
.lpsc-enhanced .tab-content-customer-bookings.lpsc-appt-cards--media .customer-bookings-tiles {
	grid-template-columns: 1fr;
	gap: 1.15rem;
}

.lpsc-widget-block .lpsc-appt-cards--media .customer-booking,
.lpsc-enhanced .lpsc-appt-cards--media .customer-booking {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0;
	overflow: hidden;
	border-radius: 16px;
	box-shadow: 0 2px 14px rgba(15, 23, 42, 0.06);
	border: 1px solid rgba(15, 23, 42, 0.06);
}

.lpsc-widget-block .lpsc-appt-cards--media .lpsc-booking-card__media-col,
.lpsc-enhanced .lpsc-appt-cards--media .lpsc-booking-card__media-col {
	flex: 0 0 clamp(108px, 30%, 192px);
	min-height: 100%;
	align-self: stretch;
	border-radius: 15px 0 0 15px;
	overflow: hidden;
	background: #f1f5f9;
}

.lpsc-widget-block .lpsc-appt-cards--media .lpsc-booking-card__main,
.lpsc-enhanced .lpsc-appt-cards--media .lpsc-booking-card__main {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0.85rem 1rem 1rem 1rem;
}

@media (max-width: 520px) {
	.lpsc-widget-block .lpsc-appt-cards--media .customer-booking,
	.lpsc-enhanced .lpsc-appt-cards--media .customer-booking {
		flex-direction: column;
	}

	.lpsc-widget-block .lpsc-appt-cards--media .lpsc-booking-card__media-col,
	.lpsc-enhanced .lpsc-appt-cards--media .lpsc-booking-card__media-col {
		flex: 0 0 auto;
		width: 100%;
		max-height: 180px;
		border-radius: 15px 15px 0 0;
	}

	.lpsc-widget-block .lpsc-appt-cards--media .lpsc-booking-card__main,
	.lpsc-enhanced .lpsc-appt-cards--media .lpsc-booking-card__main {
		padding: 0.75rem 1rem 1rem;
	}
}

.lpsc-widget-block .lpsc-appt-cards--media .lpsc-booking-card__media,
.lpsc-enhanced .lpsc-appt-cards--media .lpsc-booking-card__media {
	margin: 0;
	height: 100%;
	min-height: 140px;
	border-radius: 0;
	overflow: hidden;
	background: #e2e8f0;
}

.lpsc-widget-block .lpsc-appt-cards--media .lpsc-booking-card__media img,
.lpsc-enhanced .lpsc-appt-cards--media .lpsc-booking-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 140px;
	object-fit: cover;
}

.lpsc-widget-block .lpsc-appt-cards--media .lpsc-booking-card__media-fallback,
.lpsc-enhanced .lpsc-appt-cards--media .lpsc-booking-card__media-fallback {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 132px;
	background: linear-gradient(160deg, #f8fafc 0%, #e2e8f0 55%, #cbd5e1 100%);
}

.lpsc-widget-block .lpsc-appt-cards--media .lpsc-booking-card__media-fallback::after,
.lpsc-enhanced .lpsc-appt-cards--media .lpsc-booking-card__media-fallback::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	min-height: 132px;
	opacity: 0.35;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='1.5'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M8 3v4M16 3v4M3 11h18'/%3E%3C/svg%3E")
		center / 42% no-repeat;
}

/* Moderno */
.lpsc-widget-block .lpsc-appt-cards--modern .customer-booking,
.lpsc-enhanced .lpsc-appt-cards--modern .customer-booking {
	border: none;
	border-radius: 20px;
	box-shadow:
		0 4px 6px -1px rgba(15, 23, 42, 0.07),
		0 12px 28px -8px rgba(15, 23, 42, 0.12);
	transition: box-shadow 0.25s ease, transform 0.2s ease;
}

.lpsc-widget-block .lpsc-appt-cards--modern .customer-booking:hover,
.lpsc-enhanced .lpsc-appt-cards--modern .customer-booking:hover {
	box-shadow:
		0 8px 16px -4px rgba(15, 23, 42, 0.1),
		0 20px 40px -12px rgba(14, 165, 233, 0.18);
	transform: translateY(-2px);
}

.lpsc-widget-block .lpsc-appt-cards--modern .customer-booking-service-name,
.lpsc-enhanced .lpsc-appt-cards--modern .customer-booking-service-name {
	font-size: 1.15rem;
	letter-spacing: -0.02em;
}

/* Cristal */
.lpsc-widget-block .lpsc-appt-cards--glass .customer-booking,
.lpsc-enhanced .lpsc-appt-cards--glass .customer-booking {
	background: rgba(255, 255, 255, 0.55);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border: 1px solid rgba(255, 255, 255, 0.65);
	border-radius: 18px;
	box-shadow: 0 8px 32px rgba(15, 23, 42, 0.08);
}

.lpsc-widget-block .lpsc-appt-cards--glass .customer-bookings-tiles,
.lpsc-enhanced .lpsc-appt-cards--glass .customer-bookings-tiles {
	gap: 1.1rem;
}

/* Minimal */
.lpsc-widget-block .lpsc-appt-cards--minimal .customer-bookings-tiles,
.lpsc-enhanced .lpsc-appt-cards--minimal .customer-bookings-tiles {
	grid-template-columns: 1fr;
	gap: 0;
}

.lpsc-widget-block .lpsc-appt-cards--minimal .customer-booking,
.lpsc-enhanced .lpsc-appt-cards--minimal .customer-booking {
	border-radius: 0;
	box-shadow: none;
	border: none;
	border-bottom: 1px solid rgba(15, 23, 42, 0.08);
	padding-bottom: 1.1rem;
	margin-bottom: 0.25rem;
	background: transparent;
}

.lpsc-widget-block .lpsc-appt-cards--minimal .customer-booking-service-color,
.lpsc-enhanced .lpsc-appt-cards--minimal .customer-booking-service-color {
	display: none;
}

.lpsc-widget-block .lpsc-appt-cards--minimal .customer-booking-service-name,
.lpsc-enhanced .lpsc-appt-cards--minimal .customer-booking-service-name {
	font-weight: 700;
	font-size: 1.05rem;
}

/*
 * Línea de tiempo vertical: variables desde Elementor (--lpsc-tl-*) en .lpsc-widget-block.
 */
/*
 * Timeline vertical: una sola columna (la guía y los nodos van por el borde izquierdo del bloque).
 * Varias columnas rompen la alineación (un nodo por tarjeta). Para varias columnas usa timeline horizontal.
 */
.lpsc-widget-block .lpsc-appt-cards--timeline:not(.lpsc-appt-cards--timeline-horizontal) .customer-bookings-tiles,
.lpsc-enhanced .lpsc-appt-cards--timeline:not(.lpsc-appt-cards--timeline-horizontal) .customer-bookings-tiles {
	--lpsc-tl-pad: 3rem;
	--lpsc-tl-line: 1.1rem;
	display: grid;
	grid-template-columns: 1fr !important;
	position: relative;
	padding-left: var(--lpsc-tl-pad);
	margin-left: 0;
}

.lpsc-widget-block .lpsc-appt-cards--timeline:not(.lpsc-appt-cards--timeline-horizontal) .customer-bookings-tiles::before,
.lpsc-enhanced .lpsc-appt-cards--timeline:not(.lpsc-appt-cards--timeline-horizontal) .customer-bookings-tiles::before {
	content: "";
	position: absolute;
	left: var(--lpsc-tl-line);
	top: 0.5rem;
	bottom: 0.5rem;
	width: 3px;
	margin-left: -1.5px;
	border-radius: 3px;
	background: linear-gradient(
		180deg,
		var(--lpsc-tl-line-start, rgba(14, 165, 233, 0.35)) 0%,
		var(--lpsc-tl-line-end, rgba(15, 23, 42, 0.14)) 55%,
		var(--lpsc-tl-line-end, rgba(15, 23, 42, 0.14)) 100%
	);
	-webkit-mask-image: linear-gradient(
		to bottom,
		transparent 0%,
		#000 14%,
		#000 86%,
		transparent 100%
	);
	mask-image: linear-gradient(
		to bottom,
		transparent 0%,
		#000 14%,
		#000 86%,
		transparent 100%
	);
	mask-repeat: no-repeat;
	-webkit-mask-repeat: no-repeat;
	pointer-events: none;
}

.lpsc-widget-block .lpsc-appt-cards--timeline:not(.lpsc-appt-cards--timeline-horizontal) .customer-booking,
.lpsc-enhanced .lpsc-appt-cards--timeline:not(.lpsc-appt-cards--timeline-horizontal) .customer-booking {
	position: relative;
	margin-bottom: 0;
	border-radius: 14px;
	border: 1px solid var(--lpsc-tl-card-border, rgba(15, 23, 42, 0.18));
	box-shadow:
		0 0 0 1px var(--lpsc-tl-card-border-outer, rgba(15, 23, 42, 0.06)),
		0 2px 10px rgba(15, 23, 42, 0.07);
	background: #fff;
}

.lpsc-widget-block .lpsc-appt-cards--timeline:not(.lpsc-appt-cards--timeline-horizontal) .customer-booking::before,
.lpsc-enhanced .lpsc-appt-cards--timeline:not(.lpsc-appt-cards--timeline-horizontal) .customer-booking::before {
	content: "";
	position: absolute;
	left: calc(var(--lpsc-tl-line) - var(--lpsc-tl-pad));
	top: 1.25rem;
	width: 16px;
	height: 16px;
	margin-left: 0;
	border-radius: 50%;
	background: var(--lpsc-tl-dot, #0ea5e9);
	border: 3px solid var(--lpsc-tl-dot-border, #fff);
	box-shadow:
		0 0 0 2px var(--lpsc-tl-dot-ring, rgba(14, 165, 233, 0.45)),
		0 2px 8px var(--lpsc-tl-dot-ring, rgba(14, 165, 233, 0.22));
	transform: translateX(-50%);
	pointer-events: none;
	z-index: 1;
}

/* Línea de tiempo horizontal (fila con guía arriba) */
.lpsc-widget-block .lpsc-appt-cards--timeline.lpsc-appt-cards--timeline-horizontal .customer-bookings-tiles,
.lpsc-enhanced .lpsc-appt-cards--timeline.lpsc-appt-cards--timeline-horizontal .customer-bookings-tiles {
	--lpsc-tl-h-pad: 3rem;
	--lpsc-tl-h-line-y: 1.15rem;
	display: grid;
	padding-left: 0 !important;
	padding-top: var(--lpsc-tl-h-pad);
	margin-left: 0;
	position: relative;
	align-items: start;
}

.lpsc-widget-block .lpsc-appt-cards--timeline.lpsc-appt-cards--timeline-horizontal .customer-bookings-tiles::before,
.lpsc-enhanced .lpsc-appt-cards--timeline.lpsc-appt-cards--timeline-horizontal .customer-bookings-tiles::before {
	content: "";
	position: absolute;
	top: var(--lpsc-tl-h-line-y);
	bottom: auto;
	left: 0.75rem;
	right: 0.75rem;
	width: auto;
	height: 2px;
	margin-left: 0;
	border-radius: 2px;
	background: linear-gradient(
		90deg,
		var(--lpsc-tl-line-start, rgba(14, 165, 233, 0.4)) 0%,
		var(--lpsc-tl-line-end, rgba(15, 23, 42, 0.14)) 100%
	);
	-webkit-mask-image: linear-gradient(
		to right,
		transparent 0%,
		#000 10%,
		#000 90%,
		transparent 100%
	);
	mask-image: linear-gradient(
		to right,
		transparent 0%,
		#000 10%,
		#000 90%,
		transparent 100%
	);
	mask-repeat: no-repeat;
	-webkit-mask-repeat: no-repeat;
	pointer-events: none;
}

.lpsc-widget-block .lpsc-appt-cards--timeline.lpsc-appt-cards--timeline-horizontal .customer-booking,
.lpsc-enhanced .lpsc-appt-cards--timeline.lpsc-appt-cards--timeline-horizontal .customer-booking {
	position: relative;
	min-width: 0;
	max-width: 100%;
	width: 100%;
	margin-bottom: 0;
	margin-top: 0;
	border-radius: 14px;
	border: 1px solid var(--lpsc-tl-card-border, rgba(15, 23, 42, 0.18));
	box-shadow:
		0 0 0 1px var(--lpsc-tl-card-border-outer, rgba(15, 23, 42, 0.06)),
		0 2px 10px rgba(15, 23, 42, 0.07);
	background: #fff;
}

.lpsc-widget-block .lpsc-appt-cards--timeline.lpsc-appt-cards--timeline-horizontal .customer-booking::before,
.lpsc-enhanced .lpsc-appt-cards--timeline.lpsc-appt-cards--timeline-horizontal .customer-booking::before {
	content: "";
	position: absolute;
	left: 50%;
	top: calc(var(--lpsc-tl-h-line-y) - var(--lpsc-tl-h-pad));
	width: 14px;
	height: 14px;
	margin-left: 0;
	border-radius: 50%;
	background: var(--lpsc-tl-dot, #0ea5e9);
	border: 3px solid var(--lpsc-tl-dot-border, #fff);
	box-shadow:
		0 0 0 2px var(--lpsc-tl-dot-ring, rgba(14, 165, 233, 0.45)),
		0 2px 8px var(--lpsc-tl-dot-ring, rgba(14, 165, 233, 0.22));
	transform: translate(-50%, -50%);
	pointer-events: none;
	z-index: 1;
}

/*
 * Presets de tarjeta de pedidos (mismas variantes que citas: lpsc-ord-cards--*).
 */
.lpsc-widget-block .tab-content-customer-orders.lpsc-ord-cards--media .customer-orders-tiles,
.lpsc-enhanced .tab-content-customer-orders.lpsc-ord-cards--media .customer-orders-tiles {
	grid-template-columns: 1fr;
	gap: 1.15rem;
}

.lpsc-widget-block .lpsc-ord-cards--media .customer-order,
.lpsc-enhanced .lpsc-ord-cards--media .customer-order {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0;
	overflow: hidden;
	border-radius: 16px;
	box-shadow: 0 2px 14px rgba(15, 23, 42, 0.06);
	border: 1px solid rgba(15, 23, 42, 0.06);
}

.lpsc-widget-block .lpsc-ord-cards--media .lpsc-order-card__media-col,
.lpsc-enhanced .lpsc-ord-cards--media .lpsc-order-card__media-col {
	flex: 0 0 clamp(108px, 30%, 192px);
	min-height: 100%;
	align-self: stretch;
	border-radius: 15px 0 0 15px;
	overflow: hidden;
	background: #f1f5f9;
}

.lpsc-widget-block .lpsc-ord-cards--media .lpsc-order-card__main,
.lpsc-enhanced .lpsc-ord-cards--media .lpsc-order-card__main {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0.85rem 1rem 1rem 1rem;
}

@media (max-width: 520px) {
	.lpsc-widget-block .lpsc-ord-cards--media .customer-order,
	.lpsc-enhanced .lpsc-ord-cards--media .customer-order {
		flex-direction: column;
	}

	.lpsc-widget-block .lpsc-ord-cards--media .lpsc-order-card__media-col,
	.lpsc-enhanced .lpsc-ord-cards--media .lpsc-order-card__media-col {
		flex: 0 0 auto;
		width: 100%;
		max-height: 180px;
		border-radius: 15px 15px 0 0;
	}

	.lpsc-widget-block .lpsc-ord-cards--media .lpsc-order-card__main,
	.lpsc-enhanced .lpsc-ord-cards--media .lpsc-order-card__main {
		padding: 0.75rem 1rem 1rem;
	}
}

.lpsc-widget-block .lpsc-ord-cards--media .lpsc-order-card__media,
.lpsc-enhanced .lpsc-ord-cards--media .lpsc-order-card__media {
	margin: 0;
	height: 100%;
	min-height: 140px;
	border-radius: 0;
	overflow: hidden;
	background: #e2e8f0;
}

.lpsc-widget-block .lpsc-ord-cards--media .lpsc-order-card__media-fallback,
.lpsc-enhanced .lpsc-ord-cards--media .lpsc-order-card__media-fallback {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 132px;
	background: linear-gradient(160deg, #f8fafc 0%, #e2e8f0 55%, #cbd5e1 100%);
}

.lpsc-widget-block .lpsc-ord-cards--media .lpsc-order-card__media-fallback::after,
.lpsc-enhanced .lpsc-ord-cards--media .lpsc-order-card__media-fallback::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	min-height: 132px;
	opacity: 0.4;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='1.5'%3E%3Cpath d='M6 6h15l-1.5 9h-12z'/%3E%3Cpath d='M6 6 5 3H2'/%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3C/svg%3E")
		center / 42% no-repeat;
}

.lpsc-widget-block .lpsc-ord-cards--modern .customer-order,
.lpsc-enhanced .lpsc-ord-cards--modern .customer-order {
	border: none;
	border-radius: 20px;
	box-shadow:
		0 4px 6px -1px rgba(15, 23, 42, 0.07),
		0 12px 28px -8px rgba(15, 23, 42, 0.12);
	transition: box-shadow 0.25s ease, transform 0.2s ease;
}

.lpsc-widget-block .lpsc-ord-cards--modern .customer-order:hover,
.lpsc-enhanced .lpsc-ord-cards--modern .customer-order:hover {
	box-shadow:
		0 8px 16px -4px rgba(15, 23, 42, 0.1),
		0 20px 40px -12px rgba(14, 165, 233, 0.18);
	transform: translateY(-2px);
}

.lpsc-widget-block .lpsc-ord-cards--modern .customer-order-confirmation,
.lpsc-enhanced .lpsc-ord-cards--modern .customer-order-confirmation {
	font-size: 1.1rem;
	letter-spacing: -0.02em;
	font-weight: 700;
}

.lpsc-widget-block .lpsc-ord-cards--glass .customer-order,
.lpsc-enhanced .lpsc-ord-cards--glass .customer-order {
	background: rgba(255, 255, 255, 0.55);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border: 1px solid rgba(255, 255, 255, 0.65);
	border-radius: 18px;
	box-shadow: 0 8px 32px rgba(15, 23, 42, 0.08);
}

.lpsc-widget-block .lpsc-ord-cards--glass .customer-orders-tiles,
.lpsc-enhanced .lpsc-ord-cards--glass .customer-orders-tiles {
	gap: 1.1rem;
}

.lpsc-widget-block .lpsc-ord-cards--minimal .customer-orders-tiles,
.lpsc-enhanced .lpsc-ord-cards--minimal .customer-orders-tiles {
	grid-template-columns: 1fr;
	gap: 0;
}

.lpsc-widget-block .lpsc-ord-cards--minimal .customer-order,
.lpsc-enhanced .lpsc-ord-cards--minimal .customer-order {
	border-radius: 0;
	box-shadow: none;
	border: none;
	border-bottom: 1px solid rgba(15, 23, 42, 0.08);
	padding-bottom: 1.1rem;
	margin-bottom: 0.25rem;
	background: transparent;
}

.lpsc-widget-block .lpsc-ord-cards--timeline:not(.lpsc-ord-cards--timeline-horizontal) .customer-orders-tiles,
.lpsc-enhanced .lpsc-ord-cards--timeline:not(.lpsc-ord-cards--timeline-horizontal) .customer-orders-tiles {
	--lpsc-tl-pad: 3rem;
	--lpsc-tl-line: 1.1rem;
	display: grid;
	grid-template-columns: 1fr !important;
	position: relative;
	padding-left: var(--lpsc-tl-pad);
	margin-left: 0;
}

.lpsc-widget-block .lpsc-ord-cards--timeline:not(.lpsc-ord-cards--timeline-horizontal) .customer-orders-tiles::before,
.lpsc-enhanced .lpsc-ord-cards--timeline:not(.lpsc-ord-cards--timeline-horizontal) .customer-orders-tiles::before {
	content: "";
	position: absolute;
	left: var(--lpsc-tl-line);
	top: 0.5rem;
	bottom: 0.5rem;
	width: 3px;
	margin-left: -1.5px;
	border-radius: 3px;
	background: linear-gradient(
		180deg,
		var(--lpsc-tl-line-start, rgba(14, 165, 233, 0.35)) 0%,
		var(--lpsc-tl-line-end, rgba(15, 23, 42, 0.14)) 55%,
		var(--lpsc-tl-line-end, rgba(15, 23, 42, 0.14)) 100%
	);
	-webkit-mask-image: linear-gradient(
		to bottom,
		transparent 0%,
		#000 14%,
		#000 86%,
		transparent 100%
	);
	mask-image: linear-gradient(
		to bottom,
		transparent 0%,
		#000 14%,
		#000 86%,
		transparent 100%
	);
	mask-repeat: no-repeat;
	-webkit-mask-repeat: no-repeat;
	pointer-events: none;
}

.lpsc-widget-block .lpsc-ord-cards--timeline:not(.lpsc-ord-cards--timeline-horizontal) .customer-order,
.lpsc-enhanced .lpsc-ord-cards--timeline:not(.lpsc-ord-cards--timeline-horizontal) .customer-order {
	position: relative;
	margin-bottom: 0;
	border-radius: 14px;
	border: 1px solid var(--lpsc-tl-card-border, rgba(15, 23, 42, 0.18));
	box-shadow:
		0 0 0 1px var(--lpsc-tl-card-border-outer, rgba(15, 23, 42, 0.06)),
		0 2px 10px rgba(15, 23, 42, 0.07);
	background: #fff;
}

.lpsc-widget-block .lpsc-ord-cards--timeline:not(.lpsc-ord-cards--timeline-horizontal) .customer-order::before,
.lpsc-enhanced .lpsc-ord-cards--timeline:not(.lpsc-ord-cards--timeline-horizontal) .customer-order::before {
	content: "";
	position: absolute;
	left: calc(var(--lpsc-tl-line) - var(--lpsc-tl-pad));
	top: 1.25rem;
	width: 16px;
	height: 16px;
	margin-left: 0;
	border-radius: 50%;
	background: var(--lpsc-tl-dot, #0ea5e9);
	border: 3px solid var(--lpsc-tl-dot-border, #fff);
	box-shadow:
		0 0 0 2px var(--lpsc-tl-dot-ring, rgba(14, 165, 233, 0.45)),
		0 2px 8px var(--lpsc-tl-dot-ring, rgba(14, 165, 233, 0.22));
	transform: translateX(-50%);
	pointer-events: none;
	z-index: 1;
}

.lpsc-widget-block .lpsc-ord-cards--timeline.lpsc-ord-cards--timeline-horizontal .customer-orders-tiles,
.lpsc-enhanced .lpsc-ord-cards--timeline.lpsc-ord-cards--timeline-horizontal .customer-orders-tiles {
	--lpsc-tl-h-pad: 3rem;
	--lpsc-tl-h-line-y: 1.15rem;
	display: grid;
	padding-left: 0 !important;
	padding-top: var(--lpsc-tl-h-pad);
	margin-left: 0;
	position: relative;
	align-items: start;
}

.lpsc-widget-block .lpsc-ord-cards--timeline.lpsc-ord-cards--timeline-horizontal .customer-orders-tiles::before,
.lpsc-enhanced .lpsc-ord-cards--timeline.lpsc-ord-cards--timeline-horizontal .customer-orders-tiles::before {
	content: "";
	position: absolute;
	top: var(--lpsc-tl-h-line-y);
	bottom: auto;
	left: 0.75rem;
	right: 0.75rem;
	width: auto;
	height: 2px;
	margin-left: 0;
	border-radius: 2px;
	background: linear-gradient(
		90deg,
		var(--lpsc-tl-line-start, rgba(14, 165, 233, 0.4)) 0%,
		var(--lpsc-tl-line-end, rgba(15, 23, 42, 0.14)) 100%
	);
	-webkit-mask-image: linear-gradient(
		to right,
		transparent 0%,
		#000 10%,
		#000 90%,
		transparent 100%
	);
	mask-image: linear-gradient(
		to right,
		transparent 0%,
		#000 10%,
		#000 90%,
		transparent 100%
	);
	mask-repeat: no-repeat;
	-webkit-mask-repeat: no-repeat;
	pointer-events: none;
}

.lpsc-widget-block .lpsc-ord-cards--timeline.lpsc-ord-cards--timeline-horizontal .customer-order,
.lpsc-enhanced .lpsc-ord-cards--timeline.lpsc-ord-cards--timeline-horizontal .customer-order {
	position: relative;
	min-width: 0;
	max-width: 100%;
	width: 100%;
	margin-bottom: 0;
	margin-top: 0;
	border-radius: 14px;
	border: 1px solid var(--lpsc-tl-card-border, rgba(15, 23, 42, 0.18));
	box-shadow:
		0 0 0 1px var(--lpsc-tl-card-border-outer, rgba(15, 23, 42, 0.06)),
		0 2px 10px rgba(15, 23, 42, 0.07);
	background: #fff;
}

.lpsc-widget-block .lpsc-ord-cards--timeline.lpsc-ord-cards--timeline-horizontal .customer-order::before,
.lpsc-enhanced .lpsc-ord-cards--timeline.lpsc-ord-cards--timeline-horizontal .customer-order::before {
	content: "";
	position: absolute;
	left: 50%;
	top: calc(var(--lpsc-tl-h-line-y) - var(--lpsc-tl-h-pad));
	width: 14px;
	height: 14px;
	margin-left: 0;
	border-radius: 50%;
	background: var(--lpsc-tl-dot, #0ea5e9);
	border: 3px solid var(--lpsc-tl-dot-border, #fff);
	box-shadow:
		0 0 0 2px var(--lpsc-tl-dot-ring, rgba(14, 165, 233, 0.45)),
		0 2px 8px var(--lpsc-tl-dot-ring, rgba(14, 165, 233, 0.22));
	transform: translate(-50%, -50%);
	pointer-events: none;
	z-index: 1;
}

/* Login LPSC: modo «encima del campo» (Contenido → Etiquetas de los campos) */
.lpsc-el-login--labels-above .latepoint-w .latepoint-login-form-w .os-form-group.os-form-textfield-group {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
}
.lpsc-el-login--labels-above .latepoint-w .latepoint-login-form-w .os-form-group.os-form-textfield-group label {
	opacity: 1 !important;
	position: relative !important;
	top: auto !important;
	left: auto !important;
	transform: none !important;
	z-index: 1 !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 0.35em !important;
	line-height: 1.25 !important;
	cursor: default !important;
	overflow-wrap: anywhere !important;
	word-break: break-word !important;
}
.lpsc-el-login--labels-above .latepoint-w .latepoint-login-form-w .os-form-group.os-form-textfield-group:not(.os-form-group-simple) input.os-form-control,
.lpsc-el-login--labels-above .latepoint-w .latepoint-login-form-w .os-form-group.os-form-textfield-group:not(.os-form-group-simple) textarea.os-form-control {
	padding: 12px 10px !important;
}
.lpsc-el-login--labels-above .latepoint-w .latepoint-login-form-w .os-form-group.os-form-textfield-group.has-value:not(.os-form-group-simple) input.os-form-control,
.lpsc-el-login--labels-above .latepoint-w .latepoint-login-form-w .os-form-group.os-form-textfield-group.has-value:not(.os-form-group-simple) textarea.os-form-control {
	padding: 12px 10px !important;
}

/* Widgets Elementor LPSC: login — alineación física de la tarjeta (prefix_class lpsc*-el-login-halign--*) */
.elementor-element.lpsc-el-login-halign--center .lpsc-el-login__inner {
	margin-inline: auto !important;
}
.elementor-element.lpsc-el-login-halign--left .lpsc-el-login__inner {
	margin-inline-start: 0 !important;
	margin-inline-end: auto !important;
}
.elementor-element.lpsc-el-login-halign--right .lpsc-el-login__inner {
	margin-inline-start: auto !important;
	margin-inline-end: 0 !important;
}
@media (max-width: 1024px) {
	.elementor-element.lpsc-tablet-el-login-halign--center .lpsc-el-login__inner {
		margin-inline: auto !important;
	}
	.elementor-element.lpsc-tablet-el-login-halign--left .lpsc-el-login__inner {
		margin-inline-start: 0 !important;
		margin-inline-end: auto !important;
	}
	.elementor-element.lpsc-tablet-el-login-halign--right .lpsc-el-login__inner {
		margin-inline-start: auto !important;
		margin-inline-end: 0 !important;
	}
}
@media (max-width: 767px) {
	.elementor-element.lpsc-mobile-el-login-halign--center .lpsc-el-login__inner {
		margin-inline: auto !important;
	}
	.elementor-element.lpsc-mobile-el-login-halign--left .lpsc-el-login__inner {
		margin-inline-start: 0 !important;
		margin-inline-end: auto !important;
	}
	.elementor-element.lpsc-mobile-el-login-halign--right .lpsc-el-login__inner {
		margin-inline-start: auto !important;
		margin-inline-end: 0 !important;
	}
}
/* Presentación: mismo nodo que «Caja del formulario» (.latepoint-login-form-w) */
.lpsc-el-login--layout-card .lpsc-el-login__inner .latepoint-login-form-w {
	box-shadow: 0 10px 40px rgba(15, 23, 42, 0.08);
}
.lpsc-el-login--layout-bordered .lpsc-el-login__inner .latepoint-login-form-w {
	border: 1px solid rgba(15, 23, 42, 0.12);
}
.lpsc-el-login--layout-glass .lpsc-el-login__inner .latepoint-login-form-w {
	background: rgba(255, 255, 255, 0.72);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}
.lpsc-el-login[data-lpsc-el-login="1"] .lpsc-el-login__inner > .latepoint-w {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}
.lpsc-el-login[data-lpsc-el-login="1"] .lpsc-el-login__inner .latepoint-login-form-w {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
}
/* Un solo marco: quita caja duplicada de add-ons dentro del formulario */
.lpsc-el-login[data-lpsc-el-login="1"] .lpsc-el-login__inner .latepoint-login-form-w .os-customer-wrapped-box,
.lpsc-el-login[data-lpsc-el-login="1"] .lpsc-el-login__inner .latepoint-login-form-w .os-customer-login-w {
	border: none !important;
	box-shadow: none !important;
	background: transparent !important;
}
.lpsc-el-login--hide-lp-title .latepoint-customer-box-title {
	display: none !important;
}

/*
 * Título propio: va dentro de .latepoint-customer-auth-options-wrapper (mismo sitio que el título nativo de LatePoint).
 * El widget no fuerza fondos en LatePoint (evita cajas rotas / huecos).
 */
.lpsc-el-login--has-custom-heading {
	align-self: flex-start;
	width: 100%;
	max-width: 100%;
}
.lpsc-el-login .lpsc-el-login__heading.latepoint-customer-box-title {
	margin-top: 0;
}

/* Logo / imagen empresa (dentro de .latepoint-login-form-w) */
.lpsc-el-login[data-lpsc-el-login="1"] .latepoint-login-form-w .lpsc-el-login__brand {
	display: block;
	width: 100%;
	margin: 0 0 1rem;
	line-height: 0;
}
.lpsc-el-login[data-lpsc-el-login="1"] .latepoint-login-form-w .lpsc-el-login__brand-img {
	display: block;
	max-width: 100%;
	height: auto;
	margin-left: auto;
	margin-right: auto;
}

/*
 * Kumpita Branding oculta <label> y usa .kumpita-field-label.
 * Modo LPSC «encima»: volver a mostrar <label> y ocultar el span (evita doble texto y permite tipografía Elementor en <label>).
 */
.lpsc-el-login--labels-above[data-lpsc-el-login="1"] .latepoint-w .latepoint-login-form-w .os-form-group .kumpita-field-label {
	display: none !important;
}
.lpsc-el-login--labels-above[data-lpsc-el-login="1"] .latepoint-w .latepoint-login-form-w .os-form-group.os-form-textfield-group > label {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	margin: 0 0 0.35em !important;
	padding: 0 !important;
	overflow: visible !important;
	line-height: 1.25 !important;
	position: relative !important;
	left: auto !important;
	top: auto !important;
	clip: auto !important;
	clip-path: none !important;
	width: 100% !important;
	max-width: 100% !important;
	font-size: inherit !important;
	text-indent: 0 !important;
}

/* LatePoint repite el mismo texto en label y placeholder; opción del widget LPSC */
.lpsc-el-login--hide-ph-dup .latepoint-w .latepoint-login-form-w .os-form-textfield-group .os-form-control::placeholder,
.lpsc-el-login--hide-ph-dup .latepoint-w .latepoint-login-form-w .os-form-textfield-group .os-form-control::-webkit-input-placeholder,
.lpsc-el-login--hide-ph-dup .latepoint-w .latepoint-login-form-w .os-form-textfield-group .os-form-control::-moz-placeholder,
.lpsc-el-login--hide-ph-dup .latepoint-w .latepoint-login-form-w .os-form-textfield-group .os-form-control:-ms-input-placeholder {
	opacity: 0 !important;
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
	font-size: 0 !important;
	line-height: 0 !important;
}

/*
 * Lista de recursos (widget LPSC): LatePoint asume padding:20px en .resource-item y compensa con
 * margin:-20px en .ri-media / .ri-map para que la imagen llegue al borde. Si el padding lo pones a 0
 * (o otro valor) desde Elementor, esos márgenes negativos generan huecos o recortes raros.
 */
.lpsc-widget-block.lpsc-el-resources .latepoint-resources-items-w .resource-item .ri-media,
.lpsc-widget-block.lpsc-el-resources .latepoint-resources-items-w .resource-item .ri-map {
	margin: 0 0 25px;
}

/*
 * Fila del botón: flex para alinear según Elementor (lpsc_res_btn_align) y ancho del enlace (lpsc_res_btn_width).
 * No usar width/margin !important aquí: rompen los controles del widget.
 */
.lpsc-widget-block.lpsc-el-resources .latepoint-resources-items-w .resource-item .ri-buttons,
.lpsc-widget-block.lpsc-el-resources .latepoint-resources-items-w .resource-item .elementor-button-wrapper {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding-inline: 0;
}
.lpsc-widget-block.lpsc-el-resources .latepoint-resources-items-w .resource-item .latepoint-book-button,
.lpsc-widget-block.lpsc-el-resources .latepoint-resources-items-w .resource-item .elementor-button-wrapper .elementor-button {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
