/* =====================================================================
   Visual novo do wpsorteios — "painel de rádio"
   Fundo alumínio claro, carcaça grafite, visores em âmbar para o que
   importa (seus números, o total, o tempo) e um medidor de cotas no
   estilo do S-meter. Tudo vale só com body.wsp-ui.
   ===================================================================== */

body.wsp-ui {
	--wsp-bg: #EDF0F3;
	--wsp-surface: #FFFFFF;
	--wsp-ink: #1C2630;
	--wsp-muted: #5B6773;
	--wsp-line: #D3DAE1;
	--wsp-panel: #262B31;
	--wsp-panel-2: #1D2126;
	--wsp-amber: #FFB23E;
	--wsp-amber-ink: #3A2600;
	--wsp-hot: #E8603C;
	--wsp-ok: #0B6B53;
	--wsp-f-ui: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
	--wsp-f-display: 'Saira Semi Condensed', 'Arial Narrow', 'Roboto Condensed', sans-serif;

	background-color: var(--wsp-bg) !important;
	color: var(--wsp-ink) !important;
	font-family: var(--wsp-f-ui) !important;
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

/* Vence as fontes configuradas no tema (que valem para cada elemento). */
body.wsp-ui :where(a, li, span, p, label, div, input, select, textarea, button, td, th, dt, dd, small, strong) {
	font-family: var(--wsp-f-ui);
}

body.wsp-ui :where(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5) {
	font-family: var(--wsp-f-display);
	color: var(--wsp-ink);
	letter-spacing: -0.005em;
}

body.wsp-ui .text-uppercase { text-transform: none !important; }

body.wsp-ui a { color: var(--wsp-primary); }
body.wsp-ui a:hover { color: var(--wsp-primary-dark); }

body.wsp-ui :focus-visible {
	outline: 3px solid var(--wsp-amber) !important;
	outline-offset: 2px;
	box-shadow: none !important;
}

/* Componentes compartilhados ------------------------------------------- */

body.wsp-ui .wsp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 20px;
	border-radius: 10px;
	border: 1px solid transparent;
	font-family: var(--wsp-f-ui);
	font-weight: 600;
	font-size: 16px;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

body.wsp-ui .wsp-btn--primary { background: var(--wsp-primary); color: #fff; }
body.wsp-ui .wsp-btn--primary:hover,
body.wsp-ui .wsp-btn--primary:focus { background: var(--wsp-primary-dark); color: #fff; text-decoration: none; }
body.wsp-ui .wsp-btn--ghost { background: transparent; border-color: var(--wsp-line); color: var(--wsp-ink); }
body.wsp-ui .wsp-btn--block { display: flex; width: 100%; }
body.wsp-ui .wsp-btn--lg { min-height: 56px; font-size: 17px; padding: 0 28px; }

/* Etiqueta de preço: visor âmbar. */
body.wsp-ui .wsp-tag {
	display: inline-block;
	padding: 4px 10px 3px;
	border-radius: 8px;
	background: var(--wsp-panel);
	color: var(--wsp-amber);
	font-family: var(--wsp-f-display);
	font-weight: 700;
	font-size: 18px;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* Medidor de cotas (S-meter): 20 segmentos. */
body.wsp-ui .wsp-meter { margin: 14px 0; }

body.wsp-ui .wsp-meter__bar {
	display: grid;
	grid-template-columns: repeat(20, 1fr);
	gap: 3px;
	height: 12px;
	padding: 3px;
	border-radius: 6px;
	background: var(--wsp-panel);
}

body.wsp-ui .wsp-meter__bar i {
	display: block;
	border-radius: 2px;
	background: #3A4048;
}

body.wsp-ui .wsp-meter__bar i.on { background: var(--wsp-amber); box-shadow: 0 0 6px rgba(255, 178, 62, .45); }
body.wsp-ui .wsp-meter__bar i.on.hot { background: var(--wsp-hot); box-shadow: 0 0 6px rgba(232, 96, 60, .45); }

body.wsp-ui .wsp-meter--lg .wsp-meter__bar { height: 22px; gap: 4px; padding: 5px; border-radius: 8px; }

body.wsp-ui .wsp-meter__label {
	margin: 6px 0 0;
	font-size: 14px;
	color: var(--wsp-muted);
	font-variant-numeric: tabular-nums;
}

body.wsp-ui .wsp-meter__label strong { color: var(--wsp-ink); font-weight: 600; }

body.wsp-ui .wsp-chips { display: flex; flex-wrap: wrap; gap: 6px; }
body.wsp-ui .wsp-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 32px;
	padding: 0 8px;
	border-radius: 8px;
	background: var(--wsp-amber);
	color: var(--wsp-amber-ink);
	font-family: var(--wsp-f-display);
	font-weight: 700;
	font-size: 16px;
	font-variant-numeric: tabular-nums;
}

/* Cabeçalho -------------------------------------------------------------- */

body.wsp-ui nav.nav-topbar {
	background-color: var(--wsp-panel-2) !important;
	color: #A9B3BD !important;
	border-bottom: 1px solid #000;
}

body.wsp-ui nav.bg_custum_menu {
	background-color: var(--wsp-panel) !important;
	box-shadow: none !important;
	border-bottom: 1px solid #14171A;
	padding-top: 10px;
	padding-bottom: 10px;
}

body.wsp-ui nav.bg_custum_menu .navbar-brand {
	font-family: var(--wsp-f-display);
	font-weight: 800;
	font-size: 24px;
	letter-spacing: -0.01em;
	color: #fff !important;
}

body.wsp-ui nav.bg_custum_menu .navbar-nav .nav-link {
	font-family: var(--wsp-f-ui);
	font-weight: 500;
	font-size: 15px;
	color: rgba(255, 255, 255, .78) !important;
	padding: 8px 12px;
	border-radius: 8px;
}

body.wsp-ui nav.bg_custum_menu .navbar-nav .nav-link:hover,
body.wsp-ui nav.bg_custum_menu .navbar-nav .active > .nav-link {
	color: #fff !important;
	background: rgba(255, 255, 255, .08);
}

body.wsp-ui nav.bg_custum_menu .navbar-toggler {
	border-color: rgba(255, 255, 255, .25);
	border-radius: 8px;
}

body.wsp-ui nav.bg_custum_menu .dropdown-menu {
	background: var(--wsp-panel-2) !important;
	border: 1px solid #000;
	border-radius: 10px;
}

body.wsp-ui nav.bg_custum_menu .dropdown-item { color: rgba(255, 255, 255, .85) !important; }

@media (max-width: 991.98px) {
	body.wsp-ui nav.bg_custum_menu .navbar-collapse { padding: 8px 0 4px; }
	body.wsp-ui nav.bg_custum_menu .navbar-nav .nav-link { padding: 12px; }
}

/* Rodapé ----------------------------------------------------------------- */

body.wsp-ui footer.bg_custom_main_footer {
	background-color: var(--wsp-panel) !important;
	color: #C9D1D9 !important;
	margin-top: 56px;
}

body.wsp-ui footer.bg_custom_main_footer a { color: #fff !important; }

body.wsp-ui footer .widget_footer { margin-bottom: 18px; }

body.wsp-ui footer .textwidget { font-size: 14px; color: #A9B3BD; }

body.wsp-ui footer .textwidget h6,
body.wsp-ui footer .widget_footer h6,
body.wsp-ui footer .widget_title {
	font-family: var(--wsp-f-display);
	font-weight: 700;
	font-size: 17px;
	text-transform: lowercase;
	color: #fff;
	margin-bottom: 6px;
}

body.wsp-ui footer .textwidget h6::first-letter { text-transform: uppercase; }

body.wsp-ui .bg_custom_secondary_footer {
	background-color: var(--wsp-panel-2) !important;
	color: #8D97A1 !important;
	font-size: 13px !important;
}

/* Títulos de página do tema --------------------------------------------- */

body.wsp-ui .color_custom_title_featured,
body.wsp-ui .page-payment-options + h2,
body.wsp-ui .container > .my-4 > h2,
body.wsp-ui .container > .my-4 > .h4 {
	font-family: var(--wsp-f-display);
	font-weight: 800;
	font-size: clamp(28px, 6vw, 40px) !important;
	line-height: 1.05;
	text-align: left !important;
	color: var(--wsp-ink) !important;
	text-transform: none !important;
	margin-top: 8px;
}

body.wsp-ui .container > .my-4.border-bottom { border: 0 !important; }

/* Lista de rifas (página Sorteios) --------------------------------------- */

body.wsp-ui ul.list_reffle {
	display: inline-flex !important;
	gap: 4px;
	padding: 4px !important;
	margin: 0 0 20px !important;
	background: var(--wsp-surface);
	border: 1px solid var(--wsp-line);
	border-radius: 12px;
	flex-wrap: nowrap !important;
	max-width: 100%;
	overflow-x: auto;
}

body.wsp-ui ul.list_reffle li {
	margin: 0 !important;
	padding: 8px 16px;
	border-radius: 8px;
	font-family: var(--wsp-f-ui);
	font-size: 15px !important;
	font-weight: 600;
	color: var(--wsp-muted) !important;
	white-space: nowrap;
}

body.wsp-ui ul.list_reffle li.active {
	background: var(--wsp-panel);
	color: #fff !important;
}

body.wsp-ui .main_row .main_card .card,
body.wsp-ui .main_favorites .card,
body.wsp-ui .main_result .card {
	background: var(--wsp-surface) !important;
	border: 1px solid var(--wsp-line) !important;
	border-radius: 14px !important;
	overflow: hidden;
	box-shadow: none !important;
	height: 100%;
}

body.wsp-ui .main_card .card-img-top { border-radius: 0; aspect-ratio: var(--wsp-ratio, 16 / 9); object-fit: var(--wsp-fit, contain); background: var(--wsp-panel, #eef1f3); }

body.wsp-ui .main_card span.bg_custom_price {
	left: 12px !important;
	bottom: 12px !important;
	padding: 4px 10px 3px !important;
	border-radius: 8px !important;
	background: var(--wsp-panel) !important;
	color: var(--wsp-amber) !important;
	font-family: var(--wsp-f-display);
	font-size: 20px !important;
	box-shadow: none !important;
}

body.wsp-ui .main_card .bg_custom_statu {
	top: 12px !important;
	right: 12px !important;
	background: var(--wsp-panel) !important;
	color: #fff !important;
	font-size: 13px;
	padding: 4px 10px !important;
	border-radius: 8px !important;
	box-shadow: none !important;
}

body.wsp-ui .main_card .card-body { text-align: left !important; padding: 16px 16px 6px; }

body.wsp-ui .main_card .card-title {
	font-family: var(--wsp-f-display);
	font-weight: 700;
	font-size: 21px;
	line-height: 1.15;
	color: var(--wsp-ink) !important;
	margin-bottom: 4px;
}

/* Os três números (total, reservados, disponíveis) viram uma linha discreta. */
body.wsp-ui .main_card .card-body .btn-light {
	background: transparent !important;
	border: 0 !important;
	padding: 0 14px 0 0 !important;
	font-size: 13px !important;
	line-height: 1.3;
	color: var(--wsp-muted) !important;
	text-align: left;
	cursor: default;
	box-shadow: none !important;
}

body.wsp-ui .main_card .card-body .btn-light br + * { font-weight: 600; }

body.wsp-ui .main_card.wsp-has-meter .card-body .btn-light { display: none; }

body.wsp-ui .main_card .card > .text-center:not(.card-body) > .btn {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin: 6px 16px 16px;
	border-radius: 10px !important;
	font-weight: 600;
	text-transform: none !important;
}

body.wsp-ui .btn.buy_raffle,
body.wsp-ui .btn.buy_raffle:focus,
body.wsp-ui .btn.buy_raffle:hover {
	background-color: var(--wsp-primary) !important;
	border-color: var(--wsp-primary) !important;
	color: #fff !important;
}

body.wsp-ui .btn.buy_raffle:hover { background-color: var(--wsp-primary-dark) !important; }

body.wsp-ui .main_card .btn-danger {
	background: var(--wsp-surface) !important;
	border: 1px solid var(--wsp-line) !important;
	color: var(--wsp-ink) !important;
}

body.wsp-ui .main_raffle > .alert,
body.wsp-ui .main_raffle .alert-warning {
	background: var(--wsp-surface);
	border: 1px solid var(--wsp-line);
	color: var(--wsp-muted);
	border-radius: 12px;
}

/* Página da rifa --------------------------------------------------------- */

body.wsp-ui.single-post .container.mt-5 { margin-top: 28px !important; }

body.wsp-ui.single-post .container.mt-5 > .mb-2:first-child { margin-bottom: 18px !important; }

body.wsp-ui.single-post .container.mt-5 > .mb-2:first-child .border-bottom {
	border: 0 !important;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}

body.wsp-ui h1.color_tilte_single {
	font-family: var(--wsp-f-display);
	font-weight: 800;
	font-size: clamp(32px, 7.5vw, 52px) !important;
	line-height: 1.02;
	letter-spacing: -0.015em;
	text-align: left !important;
	color: var(--wsp-ink) !important;
	margin: 0;
}

body.wsp-ui p.h4.color_tilte_single {
	display: inline-block;
	margin: 0;
	padding: 5px 12px 4px;
	border-radius: 8px;
	background: var(--wsp-panel);
	color: var(--wsp-amber) !important;
	font-family: var(--wsp-f-display);
	font-weight: 700;
	font-size: 19px !important;
	text-align: left !important;
	font-variant-numeric: tabular-nums;
}

body.wsp-ui .main_fotorama {
	border-radius: 16px;
	overflow: hidden;
	background: var(--wsp-panel);
}

body.wsp-ui .main_fotorama .fotorama__stage,
body.wsp-ui .main_fotorama .fotorama__nav-wrap { background: var(--wsp-panel); }

body.wsp-ui .main_fotorama > img { display: block; width: 100%; }

body.wsp-ui .text_info > .mt-2 {
	margin-top: 0 !important;
	background: var(--wsp-surface);
	border: 1px solid var(--wsp-line);
	border-radius: 16px;
	padding: 18px 20px 6px;
}

@media (max-width: 991.98px) {
	body.wsp-ui .text_info { margin-top: 8px; }
}

body.wsp-ui .wsp-summary {
	margin: -2px 0 16px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--wsp-line);
}

body.wsp-ui .wsp-summary .wsp-meter { margin-top: 0; }

body.wsp-ui .wsp-summary__facts { margin: 12px 0 0; display: grid; gap: 8px; }
body.wsp-ui .wsp-summary__facts > div { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; }
body.wsp-ui .wsp-summary__facts dt { font-weight: 500; color: var(--wsp-muted); }
body.wsp-ui .wsp-summary__facts dd { margin: 0; font-weight: 600; text-align: right; }

/* Faixa de escolha dos números */
body.wsp-ui .bg_custom_draw {
	border-top: 0 !important;
	margin-top: 24px;
}

/* A data do sorteio já aparece no resumo da rifa. */
body.wsp-ui.wsp-has-summary .bg_custom_draw > .alert-warning { display: none; }

body.wsp-ui .bg_custom_draw > .alert-warning {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #FFF4DF !important;
	border: 1px solid #F1D29B !important;
	border-radius: 12px;
	color: var(--wsp-amber-ink) !important;
	text-align: left !important;
	padding: 12px 16px;
}

body.wsp-ui .bg_custom_draw > .alert-warning p { margin: 0; }

body.wsp-ui .alert-danger.text-center {
	background: var(--wsp-panel) !important;
	border: 0 !important;
	border-radius: 14px;
	color: #fff !important;
	text-align: left !important;
	font-size: 17px;
	padding: 18px 20px;
}

body.wsp-ui #cotas::before {
	content: "Escolha seus números";
	display: block;
	font-family: var(--wsp-f-display);
	font-weight: 800;
	font-size: clamp(26px, 6vw, 34px);
	line-height: 1.1;
	color: var(--wsp-ink);
	margin: 8px 0 4px;
}

/* Legenda e filtros (Disponíveis / Reservados / Pagos) */
body.wsp-ui ul.caption-numbers {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 16px !important;
}

body.wsp-ui ul.caption-numbers li {
	min-width: 0 !important;
	margin: 0 !important;
	padding: 8px 14px 8px 12px !important;
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	border-radius: 99px !important;
	border: 1px solid var(--wsp-line) !important;
	background: var(--wsp-surface) !important;
	color: var(--wsp-ink) !important;
	font-size: 14px;
	cursor: pointer;
}

body.wsp-ui ul.caption-numbers li b { font-weight: 600; }

body.wsp-ui ul.caption-numbers li::before {
	content: "";
	width: 14px;
	height: 14px;
	border-radius: 4px;
	flex: 0 0 auto;
}

body.wsp-ui ul.caption-numbers li#available::before { background: var(--wsp-surface); border: 1.5px solid #9AA6B2; }
body.wsp-ui ul.caption-numbers li#reserved::before { background: repeating-linear-gradient(135deg, #E9C98E 0 3px, #FBEFD9 3px 6px); border: 1px solid #D9B26B; }
body.wsp-ui ul.caption-numbers li#paid::before { background: var(--wsp-panel); }

body.wsp-ui ul.caption-numbers li.is-active {
	border-color: var(--wsp-ink) !important;
	box-shadow: inset 0 0 0 1px var(--wsp-ink);
}

body.wsp-ui ul.caption-numbers li.consult-my-number,
body.wsp-ui ul.caption-numbers li.paidMyNumber {
	background: transparent !important;
	border-color: transparent !important;
	color: var(--wsp-primary) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
	padding-left: 6px !important;
	padding-right: 6px !important;
}

body.wsp-ui ul.caption-numbers li.consult-my-number::before,
body.wsp-ui ul.caption-numbers li.paidMyNumber::before { display: none; }

@media (min-width: 768px) {
	body.wsp-ui ul.caption-numbers li.consult-my-number:not(.paidMyNumber) { margin-left: auto !important; }
}

@media (max-width: 575.98px) {
	body.wsp-ui ul.caption-numbers { gap: 6px; }
	body.wsp-ui ul.caption-numbers li { padding: 7px 11px 7px 9px !important; font-size: 13.5px; }
	body.wsp-ui ul.caption-numbers li.consult-my-number:not(.paidMyNumber) { margin-left: auto !important; }
}

body.wsp-ui .bg_custom_draw .alert-info {
	background: var(--wsp-surface);
	border: 1px solid var(--wsp-line);
	color: var(--wsp-muted);
	border-radius: 12px;
}

/* Grade de números: teclas do painel */
body.wsp-ui ul.list_card {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(58px, 1fr));
	gap: 6px;
	padding: 0 !important;
	margin: 0 0 24px !important;
}

body.wsp-ui ul.list_card li {
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	list-style: none;
}

body.wsp-ui ul.list_card li a,
body.wsp-ui ul.list_card li span {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	max-width: none !important;
	height: 46px !important;
	line-height: 1 !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 8px !important;
	border: 1px solid #C3CCD5 !important;
	background: var(--wsp-surface) !important;
	color: var(--wsp-ink) !important;
	font-family: var(--wsp-f-display);
	font-weight: 600 !important;
	font-size: 17px !important;
	font-variant-numeric: tabular-nums;
	box-shadow: 0 1px 0 #C3CCD5 !important;
	transition: transform .08s ease, background-color .12s ease;
}

body.wsp-ui ul.list_card li a.livre:hover { border-color: var(--wsp-ink) !important; }

body.wsp-ui ul.list_card li a.checked {
	background: var(--wsp-amber) !important;
	border-color: #E59A22 !important;
	color: var(--wsp-amber-ink) !important;
	box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .14), 0 0 0 1px rgba(255, 178, 62, .35) !important;
	transform: translateY(1px);
}

body.wsp-ui ul.list_card li a.reserved {
	background: repeating-linear-gradient(135deg, #F3DDB3 0 5px, #FBF0DC 5px 10px) !important;
	border-color: #E2C38A !important;
	color: #7A5A1E !important;
	box-shadow: none !important;
	cursor: not-allowed !important;
}

body.wsp-ui ul.list_card li a.paid {
	background: var(--wsp-panel) !important;
	border-color: var(--wsp-panel) !important;
	color: #8D97A1 !important;
	box-shadow: none !important;
	cursor: not-allowed !important;
}

body.wsp-ui ul.list_card li a.your-purchase {
	box-shadow: 0 0 0 2px var(--wsp-primary) !important;
}

body.wsp-ui ul.list_card > li:not(.all) {
	grid-column: 1 / -1;
	color: var(--wsp-muted);
}

@media (prefers-reduced-motion: reduce) {
	body.wsp-ui ul.list_card li a { transition: none; }
}

/* Barra fixa com a seleção: visor do rádio */
body.wsp-ui .main-selected-numbers {
	margin: 0 -8px 12px !important;
	padding: 10px !important;
	background: var(--wsp-panel) !important;
	border-radius: 16px !important;
	box-shadow: 0 -6px 24px rgba(20, 24, 28, .25);
	bottom: 10px !important;
}

body.wsp-ui .wsp-selbar {
	display: flex;
	align-items: center;
	gap: 12px;
}

body.wsp-ui .wsp-selbar__readout {
	flex: 1 1 auto;
	min-width: 0;
	background: var(--wsp-panel-2);
	border-radius: 10px;
	padding: 6px 12px 5px;
}

body.wsp-ui .main-selected-numbers .wsp-selbar__count {
	display: block;
	margin: 0;
	padding: 0;
	background: transparent;
	border-radius: 0;
	line-height: 1.3;
	text-align: left;
	font-weight: 400;
	font-size: 13px;
	color: #A9B3BD;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

body.wsp-ui .main-selected-numbers .js-value {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-align: left !important;
	font-family: var(--wsp-f-display);
	font-weight: 700;
	font-size: 26px !important;
	line-height: 1.1 !important;
	color: var(--wsp-amber) !important;
	text-shadow: 0 0 14px rgba(255, 178, 62, .28);
	font-variant-numeric: tabular-nums;
}

body.wsp-ui .main-selected-numbers .btnSubmit {
	flex: 0 0 auto;
	width: auto !important;
	min-height: 52px;
	padding: 0 22px !important;
	border-radius: 10px !important;
	font-weight: 600;
	font-size: 17px !important;
}

@media (max-width: 380px) {
	body.wsp-ui .main-selected-numbers .btnSubmit { padding: 0 14px !important; font-size: 16px !important; }
	body.wsp-ui .main-selected-numbers .js-value { font-size: 22px !important; }
}

/* Modais (reserva, consultar cotas) */
body.wsp-ui .modal-content {
	border: 0 !important;
	border-radius: 16px !important;
	background: var(--wsp-surface) !important;
	color: var(--wsp-ink) !important;
	overflow: hidden;
}

body.wsp-ui .modal-header {
	border-bottom: 1px solid var(--wsp-line);
	padding: 16px 20px;
}

body.wsp-ui .modal-title {
	font-family: var(--wsp-f-display);
	font-weight: 700;
	font-size: 22px;
	text-transform: none;
}

body.wsp-ui .modal-body { padding: 18px 20px 6px; }

body.wsp-ui .modal-body .col-form-label { font-weight: 600; font-size: 14px; padding-bottom: 4px; text-transform: none; }

body.wsp-ui .modal-body .form-control,
body.wsp-ui .wpcf7 .form-control,
body.wsp-ui .wpcf7 input[type="text"],
body.wsp-ui .wpcf7 input[type="email"],
body.wsp-ui .wpcf7 textarea {
	min-height: 48px;
	border: 1px solid var(--wsp-line);
	border-radius: 10px;
	font-size: 17px;
	color: var(--wsp-ink);
	box-shadow: none;
}

body.wsp-ui .modal-body .form-control:focus { border-color: var(--wsp-primary); box-shadow: 0 0 0 3px var(--wsp-primary-soft); }

body.wsp-ui #numberReservation .modal-body > p { margin-bottom: 8px; color: var(--wsp-muted); }
body.wsp-ui #numberReservation .modal-body > p .font-weight-bold { color: var(--wsp-ink); }

body.wsp-ui .modal-footer {
	border-top: 0;
	padding: 12px 0 14px;
	gap: 8px;
	flex-wrap: nowrap;
}

body.wsp-ui .modal-footer .btn {
	min-height: 48px;
	border-radius: 10px;
	font-weight: 600;
	margin: 0;
}

body.wsp-ui .modal-footer .btn-success,
body.wsp-ui #btnSubmitPhone {
	background: var(--wsp-primary) !important;
	border-color: var(--wsp-primary) !important;
}

body.wsp-ui .modal-footer .btn-light,
body.wsp-ui .modal-footer .btn-danger {
	background: var(--wsp-surface) !important;
	border: 1px solid var(--wsp-line) !important;
	color: var(--wsp-ink) !important;
}

body.wsp-ui .terms_of_use .custom-control-label { font-size: 14px; color: var(--wsp-muted); }

/* Caixas de aviso do tema (jquery-confirm) */
body.wsp-ui .jconfirm .jconfirm-box {
	border-radius: 16px !important;
	padding: 18px 20px 14px !important;
	font-family: var(--wsp-f-ui);
}

body.wsp-ui .jconfirm .jconfirm-title {
	font-family: var(--wsp-f-display) !important;
	font-weight: 700 !important;
	font-size: 22px !important;
}

body.wsp-ui .jconfirm .jconfirm-content { font-size: 16px; color: var(--wsp-ink); }

body.wsp-ui .jconfirm .jconfirm-buttons button {
	border-radius: 10px !important;
	min-height: 44px;
	padding: 0 20px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	background: var(--wsp-primary) !important;
	color: #fff !important;
}

/* Dados para pagamento (rifa) */
body.wsp-ui .main-payment > .border-bottom { border: 0 !important; }
body.wsp-ui .main-payment h3 { text-align: left !important; font-weight: 700; }

/* Tabelas (Minhas cotas, Minhas compras) -------------------------------- */

body.wsp-ui .table-responsive {
	background: var(--wsp-surface);
	border: 1px solid var(--wsp-line);
	border-radius: 14px;
	margin-bottom: 24px;
}

body.wsp-ui .table { margin: 0; color: var(--wsp-ink); }
body.wsp-ui .table thead th { border-top: 0; border-bottom: 1px solid var(--wsp-line); font-size: 13px; font-weight: 600; color: var(--wsp-muted); white-space: nowrap; }
body.wsp-ui .table td,
body.wsp-ui .table th { vertical-align: middle; border-color: #E6EAEE; }
body.wsp-ui .table .action-pay {
	background: var(--wsp-primary) !important;
	border-color: var(--wsp-primary) !important;
	border-radius: 10px;
	font-weight: 600;
	min-height: 40px;
	padding: 0 16px;
}

body.wsp-ui .table-hover tbody tr:hover { background: #F6F8FA; }
body.wsp-ui .table .text-warning { color: #8A5A00 !important; font-weight: 600; }
body.wsp-ui .table .text-success { color: var(--wsp-ok) !important; font-weight: 600; }
body.wsp-ui .table .text-danger { color: #A3301A !important; }

@media (max-width: 767.98px) {
	body.wsp-ui table.wsp-table thead { display: none; }
	body.wsp-ui table.wsp-table,
	body.wsp-ui table.wsp-table tbody,
	body.wsp-ui table.wsp-table tr { display: block; width: 100%; }
	body.wsp-ui table.wsp-table tr { padding: 12px 16px; border-bottom: 1px solid var(--wsp-line); }
	body.wsp-ui table.wsp-table tr:last-child { border-bottom: 0; }
	body.wsp-ui table.wsp-table th[scope="row"] { display: none; }
	body.wsp-ui table.wsp-table td {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 16px;
		padding: 5px 0;
		border: 0;
		text-align: right;
	}
	body.wsp-ui table.wsp-table td[data-label]::before {
		content: attr(data-label);
		flex: 0 0 auto;
		color: var(--wsp-muted);
		font-size: 13px;
		text-align: left;
	}
	body.wsp-ui table.wsp-table td:last-child { display: block; padding-top: 10px; text-align: left; }
	body.wsp-ui table.wsp-table td:last-child .action-pay { width: 100%; min-height: 48px; font-size: 16px; }
}

body.wsp-ui .container-fluid > h2 {
	font-family: var(--wsp-f-display);
	font-weight: 800;
	font-size: clamp(24px, 5vw, 34px);
	text-align: left !important;
	max-width: 1140px;
	margin-left: auto !important;
	margin-right: auto !important;
}

body.wsp-ui .container-fluid > .table-responsive,
body.wsp-ui .container-fluid > .alert { max-width: 1140px; margin-left: auto; margin-right: auto; }

/* Paginação */
body.wsp-ui .bg_custom_pagination,
body.wsp-ui .btn-light.btn-lg.m-1 { border-radius: 10px !important; }

/* Página inicial (visual novo) ------------------------------------------ */

body.wsp-ui .wsp-home { padding-top: 24px; }

body.wsp-ui .wsp-hero {
	display: grid;
	gap: 0;
	background: var(--wsp-surface);
	border: 1px solid var(--wsp-line);
	border-radius: 18px;
	overflow: hidden;
}

body.wsp-ui .wsp-hero__media { display: block; background: var(--wsp-panel); }
body.wsp-ui .wsp-hero__media img { display: block; width: 100%; height: auto; aspect-ratio: var(--wsp-ratio, 16 / 9); object-fit: var(--wsp-fit, contain); background: var(--wsp-panel, #eef1f3); }

body.wsp-ui .wsp-hero__body { padding: 20px 20px 24px; }

body.wsp-ui .wsp-hero__title {
	font-weight: 800;
	font-size: clamp(32px, 8vw, 54px);
	line-height: 1.0;
	letter-spacing: -0.015em;
	margin: 0 0 12px;
}

body.wsp-ui .wsp-hero__title a { color: var(--wsp-ink); text-decoration: none; }

body.wsp-ui .wsp-hero__price { margin: 0 0 10px; color: var(--wsp-muted); font-size: 16px; }
body.wsp-ui .wsp-hero__price .wsp-tag { font-size: 24px; margin-right: 4px; vertical-align: -2px; }
body.wsp-ui .wsp-hero__text { color: var(--wsp-muted); max-width: 52ch; margin: 0 0 4px; }
body.wsp-ui .wsp-hero__date { margin: 0 0 16px; font-weight: 600; }
body.wsp-ui .wsp-hero .wsp-meter { margin: 16px 0 10px; }

@media (min-width: 900px) {
	body.wsp-ui .wsp-home { padding-top: 36px; }
	body.wsp-ui .wsp-hero { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: stretch; }
	body.wsp-ui .wsp-hero__media img { height: 100%; aspect-ratio: auto; min-height: 380px; }
	body.wsp-ui .wsp-hero__body { padding: 32px 32px 30px; display: flex; flex-direction: column; justify-content: center; }
}

body.wsp-ui .wsp-section { margin-top: 44px; }

body.wsp-ui .wsp-section__title {
	font-weight: 800;
	font-size: clamp(26px, 5.5vw, 34px);
	line-height: 1.1;
	margin: 0 0 16px;
}

body.wsp-ui .wsp-cards {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

body.wsp-ui .wsp-card {
	display: flex;
	flex-direction: column;
	background: var(--wsp-surface);
	border: 1px solid var(--wsp-line);
	border-radius: 14px;
	overflow: hidden;
}

body.wsp-ui .wsp-card__media { position: relative; display: block; background: var(--wsp-panel); }
body.wsp-ui .wsp-card__media img { display: block; width: 100%; height: auto; aspect-ratio: var(--wsp-ratio, 16 / 9); object-fit: var(--wsp-fit, contain); background: var(--wsp-panel, #eef1f3); }
body.wsp-ui .wsp-card__price { position: absolute; left: 12px; bottom: 12px; }

body.wsp-ui .wsp-card__body { display: flex; flex-direction: column; flex: 1; padding: 14px 16px 16px; }
body.wsp-ui .wsp-card__title { font-weight: 700; font-size: 22px; line-height: 1.15; margin: 0; }
body.wsp-ui .wsp-card__title a { color: var(--wsp-ink); text-decoration: none; }
body.wsp-ui .wsp-card .wsp-meter { margin: 12px 0 14px; }
body.wsp-ui .wsp-card .wsp-btn { margin-top: auto; }

body.wsp-ui .wsp-steps__list {
	list-style: none;
	counter-reset: wsp-step;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 12px;
}

body.wsp-ui .wsp-steps__list li {
	counter-increment: wsp-step;
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 16px 16px 16px 64px;
	background: var(--wsp-surface);
	border: 1px solid var(--wsp-line);
	border-radius: 14px;
}

body.wsp-ui .wsp-steps__list li::before {
	content: counter(wsp-step);
	position: absolute;
	left: 16px;
	top: 16px;
	width: 34px;
	height: 34px;
	border-radius: 8px;
	background: var(--wsp-panel);
	color: var(--wsp-amber);
	font-family: var(--wsp-f-display);
	font-weight: 700;
	font-size: 19px;
	line-height: 34px;
	text-align: center;
}

body.wsp-ui .wsp-steps__list strong { font-family: var(--wsp-f-display); font-weight: 700; font-size: 19px; }
body.wsp-ui .wsp-steps__list span { color: var(--wsp-muted); font-size: 15px; }

@media (min-width: 900px) {
	body.wsp-ui .wsp-steps__list { grid-template-columns: repeat(3, 1fr); gap: 16px; }
}

body.wsp-ui .wsp-mini {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}

body.wsp-ui .wsp-mini__item {
	display: grid;
	grid-template-columns: 96px 1fr;
	grid-template-rows: auto auto;
	column-gap: 14px;
	align-items: center;
	padding: 10px;
	background: var(--wsp-surface);
	border: 1px solid var(--wsp-line);
	border-radius: 12px;
}

body.wsp-ui .wsp-mini__item img { grid-row: 1 / 3; width: 96px; height: 54px; object-fit: cover; border-radius: 8px; }
body.wsp-ui .wsp-mini__title { font-weight: 600; color: var(--wsp-ink); align-self: end; }
body.wsp-ui .wsp-mini__meta { font-size: 14px; color: var(--wsp-muted); align-self: start; }

body.wsp-ui .wsp-empty {
	background: var(--wsp-surface);
	border: 1px solid var(--wsp-line);
	border-radius: 18px;
	padding: 32px 24px;
}

body.wsp-ui .wsp-empty__title { font-weight: 800; font-size: clamp(28px, 6vw, 40px); margin: 0 0 6px; }
body.wsp-ui .wsp-empty p { color: var(--wsp-muted); margin: 0; }

/* Páginas comuns (termos, contato) */
body.wsp-ui.page .container > h1,
body.wsp-ui.page .container > .my-4 h1 { text-align: left; }

/* Barra de filtros do tema (Categoria / Estado / Cidade) */
body.wsp-ui .bg_custom_filter {
	background: var(--wsp-panel-2) !important;
	border-top: 1px solid rgba(255, 255, 255, .06);
	padding-top: .6rem !important;
	padding-bottom: .6rem !important;
	margin-bottom: 0 !important;
}
body.wsp-ui .bg_custom_filter .custom-select {
	border: 0;
	border-radius: 10px;
	font-family: var(--wsp-f-ui);
	font-size: 1rem;
	height: 46px;
}
body.wsp-ui .bg_custom_filter .btn {
	background: var(--wsp-primary) !important;
	border-color: var(--wsp-primary) !important;
	color: #fff !important;
	font-family: var(--wsp-f-display);
	font-weight: 700;
	height: 46px;
	border-radius: 10px;
}


/* Descrição da rifa: altura limitada, com rolagem quando o texto é grande */
.wsp-desc {
	max-height: 28rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: 4px 10px 4px 0;
	margin-bottom: 12px;
	scrollbar-width: thin;
	scrollbar-color: #9aa5b1 transparent;
	word-wrap: break-word;
	overflow-wrap: anywhere;
	background:
		linear-gradient(#fff 30%, rgba(255, 255, 255, 0)) 0 0 / 100% 36px no-repeat local,
		linear-gradient(rgba(255, 255, 255, 0), #fff 70%) 0 100% / 100% 36px no-repeat local,
		radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, .16), rgba(0, 0, 0, 0)) 0 0 / 100% 12px no-repeat scroll,
		radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, .16), rgba(0, 0, 0, 0)) 0 100% / 100% 12px no-repeat scroll;
}
.wsp-desc:focus { outline: 2px solid var(--wsp-primary, #0F7A62); outline-offset: 2px; }
.wsp-desc::-webkit-scrollbar { width: 8px; }
.wsp-desc::-webkit-scrollbar-thumb { background: #9aa5b1; border-radius: 8px; }
.wsp-desc > :first-child { margin-top: 0; }
.wsp-desc > :last-child { margin-bottom: 0; }
.wsp-desc img { max-width: 100%; height: auto; }
@media (max-width: 991.98px) {
	.wsp-desc { max-height: 22rem; }
}

/* Cartão da direita: no computador, tem sempre a altura da galeria de fotos ao lado e rola por dentro */
@media (min-width: 992px) {
	body.wsp-ui .text_info { position: relative; min-height: 18rem; }
	body.wsp-ui .text_info > .mt-2 {
		position: absolute;
		top: 0;
		bottom: 8px;
		left: 15px;
		right: 15px;
		max-height: none;
		overflow-y: auto;
		overscroll-behavior: contain;
		scrollbar-width: thin;
		padding-bottom: 14px;
	}
	/* o cartão inteiro rola; a caixa de descrição não precisa de rolagem própria */
	body.wsp-ui .text_info > .mt-2 .wsp-desc {
		max-height: none;
		overflow: visible;
		padding-right: 0;
		background: none;
		margin-bottom: 0;
	}
}
/* Celular e tablet: o cartão fica embaixo das fotos, com altura limitada */
@media (max-width: 991.98px) {
	body.wsp-ui .text_info > .mt-2:not(:has(.wsp-desc)) {
		max-height: 28rem;
		overflow-y: auto;
		overscroll-behavior: contain;
		scrollbar-width: thin;
	}
}
