/**
 * Somos Color Caribe – Tablas de Boletos
 * Frontend styles.
 */

.scc-ticket-grid,
.scc-ticket-card,
.scc-comparison {
	box-sizing: border-box;
	font-family: var(--scc-font-family, inherit);
}

.scc-ticket-grid *,
.scc-ticket-card *,
.scc-comparison * {
	box-sizing: border-box;
}

.scc-ticket-grid {
	display: grid;
	grid-template-columns: repeat(var(--scc-grid-columns, 2), minmax(0, 1fr));
	gap: var(--scc-grid-gap, 28px);
	align-items: start;
	width: 100%;
}

.scc-ticket-card {
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--scc-ticket-border, #e1afe5);
	border-radius: var(--scc-ticket-radius, 4px);
	background: var(--scc-ticket-body-bg, #f4c4f6);
	color: var(--scc-ticket-body-text, #0877b9);
}

.scc-ticket-card__header {
	display: grid;
	grid-template-columns: minmax(0, var(--scc-ticket-title-width, 42%)) minmax(0, 1fr);
	align-items: center;
	gap: 16px;
	min-height: 46px;
	padding: 7px 14px;
	background: var(--scc-ticket-header-bg, #287fb6);
}

.scc-ticket-card__title {
	min-width: 0;
	margin: 0;
	color: var(--scc-ticket-header-text, #fff);
	font-family: var(--scc-heading-font-family, inherit) !important;
	font-size: var(--scc-ticket-title-size, 32px);
	font-weight: var(--scc-heading-weight, 800);
	line-height: 1;
	text-transform: var(--scc-heading-transform, uppercase);
	letter-spacing: -0.025em;
}

.scc-ticket-card__subtitle {
	min-width: 0;
	max-width: none;
	color: var(--scc-ticket-subtitle-text, #ffd126);
	font-family: var(--scc-heading-font-family, inherit) !important;
	font-size: var(--scc-ticket-subtitle-size, 16px);
	font-weight: var(--scc-heading-weight, 800);
	line-height: 1.05;
	text-align: right;
	text-transform: var(--scc-heading-transform, uppercase);
	white-space: var(--scc-ticket-subtitle-space, nowrap);
}

.scc-ticket-card--subtitle-nowrap .scc-ticket-card__subtitle {
	white-space: nowrap;
}

.scc-ticket-card--subtitle-wrap .scc-ticket-card__subtitle {
	white-space: normal;
}

.scc-ticket-card__body {
	display: block;
	font-family: var(--scc-font-family, inherit) !important;
	min-height: 106px;
	margin: 0;
	padding: 12px 20px 16px;
	list-style: none;
	background: var(--scc-ticket-body-bg, #f4c4f6);
}

.scc-ticket-row {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 14px;
	min-height: 31px;
	margin: 0;
	padding: 4px 0;
	border-bottom: 1px solid var(--scc-ticket-border, #e1afe5);
	color: var(--scc-ticket-body-text, #0877b9);
	font-family: var(--scc-font-family, inherit) !important;
	font-weight: var(--scc-body-weight, 400);
	line-height: 1.25;
}

.scc-ticket-row:last-child {
	border-bottom: 0;
}

.scc-ticket-row__label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	min-width: 0;
	font-family: var(--scc-font-family, inherit) !important;
	font-size: var(--scc-ticket-item-size, 16px);
	font-weight: var(--scc-body-weight, 400);
}

.scc-ticket-row__label a {
	color: inherit;
	font-family: var(--scc-font-family, inherit) !important;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

.scc-ticket-row__price {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	min-height: 1.2em;
	color: var(--scc-ticket-price-text, #0877b9);
	font-family: var(--scc-font-family, inherit) !important;
	text-align: right;
	white-space: nowrap;
}

.scc-ticket-row__price-value {
	font-family: var(--scc-font-family, inherit) !important;
	font-size: var(--scc-ticket-price-size, 16px);
	font-weight: var(--scc-body-weight, 400);
	line-height: 1.1;
}

.scc-ticket-row.is-sold-out .scc-ticket-row__label,
.scc-ticket-row.is-sold-out .scc-ticket-row__price-value {
	opacity: 0.82;
}

.scc-ticket-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 5px;
	transform: rotate(-4deg);
	border: 1.5px solid currentColor;
	border-radius: 1px;
	background: var(--scc-sold-bg, #fff);
	color: var(--scc-sold-text, #e63a47);
	font-family: var(--scc-heading-font-family, inherit) !important;
	font-size: var(--scc-sold-size, 11px);
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	white-space: nowrap;
}

.scc-ticket-card--sold-price .scc-ticket-row.is-sold-out .scc-ticket-row__price-value {
	visibility: hidden;
}

.scc-ticket-card--sold-price .scc-ticket-row__price .scc-ticket-badge {
	position: absolute;
	top: 50%;
	right: 0;
	z-index: 2;
	margin: 0;
	transform: translateY(-50%) rotate(-4deg);
}

.scc-ticket-row--empty {
	display: block;
	opacity: 0.72;
	font-style: italic;
}

.scc-ticket-message {
	padding: 12px 16px;
	border: 1px dashed currentColor;
	font-family: inherit;
}

/* Comparison */
.scc-comparison {
	width: 100%;
	max-width: var(--scc-max-width, 1100px);
	margin-inline: auto;
	overflow: hidden;
	border-radius: var(--scc-comparison-radius, 28px);
	background: var(--scc-comparison-bg, #287fb6);
	color: var(--scc-comparison-text, #fff);
}

.scc-comparison__table {
	width: 100%;
	padding: clamp(22px, 4vw, 38px) clamp(18px, 3vw, 34px) clamp(18px, 3vw, 30px);
}

.scc-comparison__head-row,
.scc-comparison__row {
	display: grid;
	grid-template-columns: minmax(260px, 1fr) minmax(100px, 0.18fr) minmax(100px, 0.18fr);
}

.scc-comparison__head-row {
	align-items: end;
	background: var(--scc-comparison-header-bg, var(--scc-comparison-bg, #287fb6));
	border-bottom: 1px solid var(--scc-comparison-line, #fff);
}

.scc-comparison__title {
	padding: 0 10px 17px 8px;
	color: var(--scc-comparison-text, #fff);
	font-family: var(--scc-heading-font-family, inherit) !important;
	font-size: var(--scc-comparison-title-size, 32px);
	font-weight: var(--scc-heading-weight, 800);
	line-height: 1;
	text-transform: var(--scc-heading-transform, uppercase);
}

.scc-comparison__column-title {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	min-height: 58px;
	padding: 0 10px 17px;
	border-left: 1px solid var(--scc-comparison-line, #fff);
	color: var(--scc-comparison-text, #fff);
	font-family: var(--scc-heading-font-family, inherit) !important;
	font-size: var(--scc-comparison-column-size, 16px);
	font-weight: var(--scc-heading-weight, 800);
	line-height: 0.95;
	text-align: center;
	text-transform: var(--scc-heading-transform, uppercase);
}

.scc-comparison__row {
	align-items: stretch;
	border-bottom: 1px solid var(--scc-comparison-line, #fff);
}

.scc-comparison__row:last-child {
	border-bottom: 0;
}

.scc-comparison__feature {
	display: flex;
	align-items: center;
	min-height: 51px;
	padding: 10px 16px 10px 8px;
	font-family: var(--scc-font-family, inherit) !important;
	font-size: var(--scc-comparison-item-size, 15px);
	font-weight: var(--scc-body-weight, 400);
	line-height: 1.25;
}

.scc-comparison__cell {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 51px;
	padding: 8px 10px;
	border-left: 1px solid var(--scc-comparison-line, #fff);
	font-family: var(--scc-font-family, inherit) !important;
	text-align: center;
}

.scc-comparison-icon {
	display: inline-flex;
	width: 34px;
	height: 34px;
	align-items: center;
	justify-content: center;
}

.scc-comparison-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
}

.scc-comparison-icon--yes {
	color: var(--scc-comparison-yes, #87d8ff);
}

.scc-comparison-icon--no {
	color: var(--scc-comparison-no, #ff744f);
}

.scc-comparison-text-value {
	font-family: var(--scc-font-family, inherit) !important;
	font-size: var(--scc-comparison-value-size, 16px);
	font-weight: var(--scc-body-weight, 400);
}

.scc-comparison__empty {
	padding: 24px 8px 8px;
	opacity: 0.8;
	font-style: italic;
}

@media (max-width: 767px) {
	.scc-ticket-grid {
		grid-template-columns: 1fr;
	}

	.scc-ticket-card__header {
		align-items: flex-start;
		padding: 10px 12px;
	}


	.scc-ticket-card__body {
		min-height: 0;
		padding: 10px 14px 13px;
	}

	.scc-comparison {
		border-radius: min(var(--scc-comparison-radius, 28px), 20px);
	}

	.scc-comparison__table {
		padding: 20px 16px;
	}

	.scc-comparison__head-row {
		display: block;
		border-bottom: 0;
	}

	.scc-comparison__title {
		padding: 0 0 16px;
		border-bottom: 1px solid var(--scc-comparison-line, #fff);
	}

	.scc-comparison__column-title {
		display: none;
	}

	.scc-comparison__row {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		padding: 14px 0;
		border-bottom: 1px solid var(--scc-comparison-line, #fff);
	}

	.scc-comparison__feature {
		grid-column: 1 / -1;
		min-height: 0;
		padding: 0 0 12px;
		font-weight: 700;
	}

	.scc-comparison__cell {
		position: relative;
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 8px;
		min-height: 44px;
		padding: 8px 10px;
		border: 1px solid var(--scc-comparison-line, #fff);
	}

	.scc-comparison__cell + .scc-comparison__cell {
		border-left: 0;
	}

	.scc-comparison__cell::before {
		content: attr(data-label);
		min-width: 0;
		overflow-wrap: anywhere;
		font-family: var(--scc-heading-font-family, inherit) !important;
		font-size: max(11px, calc(var(--scc-comparison-column-size, 16px) * 0.72));
		font-weight: var(--scc-heading-weight, 800);
		line-height: 1;
		text-align: left;
		text-transform: var(--scc-heading-transform, uppercase);
	}

	.scc-comparison-icon {
		width: 26px;
		height: 26px;
	}
}

@media (max-width: 480px) {
	.scc-ticket-card__header {
		display: block;
	}

	.scc-ticket-card__subtitle {
		max-width: none;
		margin-top: 5px;
		text-align: left;
	}

	.scc-ticket-row {
		gap: 8px;
	}

	.scc-comparison__row {
		display: block;
	}

	.scc-comparison__cell {
		margin-top: 8px;
		border: 1px solid var(--scc-comparison-line, #fff);
	}

	.scc-comparison__cell + .scc-comparison__cell {
		border-left: 1px solid var(--scc-comparison-line, #fff);
	}
}
