/* Mobile — formulários com teclado aberto (checkout, cadastro, login) */
@media (max-width: 767.98px) {
	#newCheckoutModal .checkout-modal-pro-dialog.modal-dialog-centered {
		align-items: flex-start !important;
		margin: 0 !important;
		width: 100%;
		max-width: 100%;
		min-height: 100dvh;
		max-height: 100dvh;
	}

	#newCheckoutModal .modal-content.checkout-modal-pro {
		border-radius: 0 !important;
		max-height: 100dvh;
		height: 100dvh;
		display: flex;
		flex-direction: column;
		overflow: hidden;
	}

	#newCheckoutModal .checkout-modal-pro__header {
		flex-shrink: 0;
	}

	#newCheckoutModal .checkout-modal-pro__body {
		flex: 1 1 auto;
		display: flex;
		flex-direction: column;
		overflow: hidden !important;
		min-height: 0;
		max-height: none;
		padding-bottom: 0;
	}

	#newCheckoutModal .cko-progress,
	#newCheckoutModal .cko-stepper {
		flex-shrink: 0;
	}

	#newCheckoutModal .checkout-step-panel {
		flex: 1 1 auto;
		flex-direction: column;
		min-height: 0;
		overflow: hidden;
	}

	#newCheckoutModal .checkout-step-panel[style*="display: none"] {
		display: none !important;
	}

	#newCheckoutModal .checkout-form-pro {
		display: flex;
		flex-direction: column;
		flex: 1 1 auto;
		min-height: 0;
		overflow: hidden;
	}

	#newCheckoutModal .cko-form-wrap {
		flex: 1 1 auto;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		min-height: 0;
		padding-bottom: 0.5rem;
	}

	#newCheckoutModal #step2 .cko-order-card--compact {
		margin: 0 1rem 0.5rem;
	}

	#newCheckoutModal .checkout-field,
	#newCheckoutModal .checkout-field__input {
		scroll-margin-top: 12px;
		scroll-margin-bottom: 24px;
	}

	#newCheckoutModal .cko-footer {
		flex-shrink: 0;
		position: relative !important;
		bottom: auto !important;
		z-index: 12;
		background: #fff !important;
		box-shadow: 0 -4px 16px rgba(15, 23, 42, 0.08);
		margin-top: 0;
		padding: 0.65rem 1rem max(0.65rem, env(safe-area-inset-bottom)) !important;
	}

	#newCheckoutModal .cko-footer--split {
		grid-template-columns: 1fr 1fr;
		gap: 0.5rem;
	}

	#newCheckoutModal .cko-footer--split #next2 {
		order: 0;
	}

	#newCheckoutModal .cko-footer--split #prev1 {
		order: 0;
	}

	#newCheckoutModal .cko-footer--split .cko-footer__note {
		grid-column: 1 / -1;
		margin: 0.25rem 0 0;
		font-size: 0.6875rem;
	}

	#newCheckoutModal .checkout-btn-primary,
	#newCheckoutModal #next1,
	#newCheckoutModal #next2,
	#newCheckoutModal .checkout-btn-secondary,
	#newCheckoutModal #prev1 {
		min-height: 2.75rem !important;
		padding: 0.65rem 1rem !important;
		font-size: 0.9375rem !important;
	}

	#cadastroModal2 .modal-dialog-centered,
	#loginModal2 .modal-dialog-centered {
		align-items: flex-start !important;
		margin: 0 !important;
		width: 100%;
		max-width: 100%;
		min-height: 100dvh;
		max-height: 100dvh;
	}

	#cadastroModal2 .modal-content,
	#loginModal2 .modal-content {
		border-radius: 0;
		max-height: 100dvh;
		height: 100dvh;
		display: flex;
		flex-direction: column;
		overflow: hidden;
	}

	#cadastroModal2 .modal-header,
	#loginModal2 .modal-header {
		flex-shrink: 0;
	}

	#cadastroModal2 .modal-body,
	#loginModal2 .modal-body {
		flex: 1 1 auto;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		min-height: 0;
		padding-bottom: max(1rem, env(safe-area-inset-bottom));
	}

	#cadastroModal2 input,
	#cadastroModal2 textarea,
	#cadastroModal2 select,
	#loginModal2 input,
	#loginModal2 textarea,
	#loginModal2 select {
		scroll-margin-top: 72px;
		scroll-margin-bottom: 120px;
	}

	.container.app-main.app-form {
		padding-bottom: max(140px, calc(env(safe-area-inset-bottom) + 100px));
	}

	.container.app-main.app-form input,
	.container.app-main.app-form textarea,
	.container.app-main.app-form select {
		scroll-margin-top: 16px;
		scroll-margin-bottom: 120px;
	}
}

/* Teclado aberto — mais espaço para o campo ativo */
body.rifa-keyboard-open #newCheckoutModal.show .cko-order-card,
body.rifa-keyboard-open #newCheckoutModal.show .cko-order-card--compact {
	display: none !important;
}

body.rifa-keyboard-open #newCheckoutModal.show .cko-stepper,
body.rifa-keyboard-open #newCheckoutModal.show #ckoProgressUI {
	display: none !important;
}

body.rifa-keyboard-open #newCheckoutModal.show .checkout-modal-pro__header {
	padding: 0.45rem 0.85rem !important;
}

body.rifa-keyboard-open #newCheckoutModal.show .checkout-modal-pro__campaign {
	display: none !important;
}

body.rifa-keyboard-open #newCheckoutModal.show .checkout-modal-pro__heading {
	font-size: 0.9375rem !important;
}

body.rifa-keyboard-open #newCheckoutModal.show .cko-trust,
body.rifa-keyboard-open #newCheckoutModal.show .cko-terms,
body.rifa-keyboard-open #newCheckoutModal.show .checkout-modal-pro__intro {
	display: none !important;
}

body.rifa-keyboard-open #newCheckoutModal.show .cko-footer__note,
body.rifa-keyboard-open #newCheckoutModal.show .cko-secure-note {
	display: none !important;
}

/* Ajuste dinâmico quando o teclado reduz a viewport */
body.rifa-keyboard-open {
	overflow: hidden;
}

#newCheckoutModal.rifa-vv-adjust .modal-content.checkout-modal-pro,
#cadastroModal2.rifa-vv-adjust .modal-content,
#loginModal2.rifa-vv-adjust .modal-content {
	height: var(--rifa-vv-height, 100dvh);
	max-height: var(--rifa-vv-height, 100dvh);
}
