/* CSS Document */

header {
	padding: 20px 0;
}
@media (max-width: 510px) {
    header {
        padding: 17px 0 15px;
    }
}
nav {
	align-items: center;
}

nav img.ls {
	margin-bottom: 4px;
}

@media (max-width: 510px) {
	nav img.ls {
		margin-bottom: 2px;
	}
}

@keyframes slideInFromLeft {
	0% {
		transform: translateX(-100%);
		opacity: 0;
	}
	100% {
		transform: translateX(0);
	}
}

@keyframes slideInFromRight {
	0% {
		transform: translateX(100%);
		opacity: 0;
	}
	100% {
		transform: translateX(0);
		opacity: 1;
	}
}

@keyframes slideOutToLeft {
	0% {
		transform: translateX(0);
		opacity: 1;
	}
	100% {
		transform: translateX(-100%);
		opacity: 0;
	}
}

@keyframes slideOutToRight {
	0% {
		transform: translateX(0);
		opacity: 1;
	}
	100% {
		transform: translateX(100%);
		opacity: 0;
	}
}

@keyframes slideOutToLeft {
	0% {
		transform: translateX(0);
		opacity: 1;
	}
	100% {
		transform: translateX(-100%);
		opacity: 0;
	}
}

@keyframes slideOutToRight {
	0% {
		transform: translateX(0);
		opacity: 1;
	}
	100% {
		transform: translateX(100%);
		opacity: 0;
	}
}
main {
	animation: none;
	margin-top: 170px;
	align-items: center;
	flex-direction: column;
	position: relative;
	top: 0;
}

main section {
	width: 100%;
	justify-content: center;
	margin-bottom: 40px;
}

@media (max-width: 480px) {
	main {
		margin-top: 80px;
	}
	
	main section {
		margin-bottom: 60px;
	}
}

@media (max-width: 1024px) {
	main section > div {
		width: 90%;
		margin: 20px auto;
		padding: 20px 5%;
	}
}

main section.left-body {
	justify-content: flex-start;
	background: linear-gradient(to right, #FFF 0%, #FFF 70%, transparent 100%);
	width: 100% !important;
	display: flex;
	flex-direction: row;
	align-items: stretch;
	opacity: 0;
	transform: translateX(80px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

main section.right-body {
	justify-content: flex-end;
	background: linear-gradient(to left, #FFF 0%, #FFF 70%, transparent 100%);
	width: 100% !important;
	display: flex;
	flex-direction: row;
	align-items: stretch;
	opacity: 0;
	transform: translateX(-80px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

main section.left-body.is-visible,
main section.right-body.is-visible {
	opacity: 1;
	transform: translateX(0);
}

main section.left-body.no-enter,
main section.right-body.no-enter {
	transition: none;
}

main section.left-body > div {
	background-color: #FFF;
}
main section.right-body > div {
	background-color: #FFF;
}

main section.left-body > div:first-child {
	width: 40%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 50px;
	padding-right: 25px;
}
main section.right-body > div:first-child {
	width: 60%;
	padding: 50px;
	padding-right: 25px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

main section.left-body > div:last-child {
	width: 60%;
	padding: 50px;
	padding-left: 25px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	background-color: #FFF;
}
main section.left-body.enter-delay,
main section.right-body.enter-delay {
	transition-delay: 0.15s;
}
main section.right-body > div:last-child {
	width: 40%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 50px;
	padding-left: 25px;
	background-color: #FFF;
}
main section#formulario > div {
	max-width: none;
	width: 100%;
	margin: 0;
	padding: 50px 8%;
}

main section > div h1,
main section > div h3 {
	margin-top: 0px;
	font-size: 2.5rem;
	font-weight: 600;
	color: #DE1A33;
}

p.titulo {
    font-weight: 500;
    color: #DE1A33;
	font-size: 1.2rem !important;
}

@media (max-width: 768px) {
	main section > div h1,
	main section > div h3 {
		font-size: 1.7rem;
	}
	
	/* Responsive: Stack layout on tablet */
	main section.left-body,
	main section.right-body {
		display: flex;
		flex-direction: column;
	}
	
	main section.left-body > div:first-child {
		width: 100%;
		order: 2;
		padding: 40px;
		background-color: #FFF;
		margin: 0;
	}
	
	main section.left-body > div:last-child {
		width: 100%;
		order: 1;
		padding: 40px 5%;
		display: contents;
	}
	
	main section.left-body > div:last-child h3 {
		order: 1;
		background-color: #FFF;
		padding: 40px 40px 0;
		margin: 0;
		text-align: center;
	}
	
	main section.left-body > div:last-child > p,
	main section.left-body > div:last-child > span {
		order: 3;
		background-color: #FFF;
		padding: 0 5% 40px;
		margin: 0;
		text-align: center;
	}
	
	main section.right-body > div:first-child {
		width: 100%;
		order: 1;
		padding: 40px 5%;
		display: contents;
	}
	
	main section.right-body > div:first-child h3 {
		order: 1;
		padding: 40px 5% 0;
		background-color: #FFF;
		margin: 0;
		text-align: center;
	}
	
	main section.right-body > div:first-child > span {
		order: 3;
		padding: 0 5% 40px;
		background-color: #FFF;
		margin: 0;
		text-align: center;
	}
	
	main section.right-body > div:last-child {
		width: 100%;
		order: 2;
		padding: 40px 5%;
		background-color: #FFF;
		margin: 0;
	}
	
	/* Special order for last right-body (Cómo canjear) */
	main section.right-body:nth-of-type(4) > div:first-child {
		width: 100%;
		order: 1;
		padding: 40px 5%;
		display: contents;
	}
	
	main section.right-body:nth-of-type(4) > div:first-child h3 {
		order: 1;
		padding: 40px 5% 0;
		background-color: #FFF;
		margin: 0;
		text-align: center;
	}
	
	main section.right-body:nth-of-type(4) > div:first-child > p {
		order: 3;
		padding: 0 5% 40px;
		background-color: #FFF;
		margin: 0;
		text-align: center;
	}
	
	main section.right-body:nth-of-type(4) > div:last-child {
		width: 100%;
		order: 2;
		padding: 40px 5%;
		background-color: #FFF;
		margin: 0;
	}
}

@media (max-width: 480px) {
	main section > div h1,
	main section > div h3 {
		font-size: 1.4rem;
	}
	main section > div {
		padding: 35px 5% !important;
	}
	main section > div h3 {
		padding: 35px 5% 0 !important;
	}
	main section > div > p, main section > div > span {
		padding-bottom: 30px !important;
	}
}


@media (max-width: 430px) {
	main section > div {
		padding: 25px 5% !important;
	}
	main section > div h3 {
		padding: 25px 5% 0 !important;
	}
	main section > div > p, main section > div > span {
		padding-bottom: 20px !important;
	}
}

@media (max-width: 400px) {
	section > div > p {
		font-size: 1rem;
	}
}

main section.left-body > div p,
main section.right-body > div p {
	font-size: 1.1rem;
	line-height: 1.6;
}

main section > div p strong {
	font-weight: 600;
}

main section > div li {
	margin: 10px 0;
	font-size: 1.05rem;
	line-height: 1.5;
}

@media (max-width: 768px) {
	main section > div ul {
		padding-inline-start: 5%;
		width: fit-content;
		margin: 0 auto;
	}
	main section > div ul li {
		text-align: left;
	}
}
@media (max-width: 480px) {
	main section > div ul li {
		font-size: 0.9rem;
	}
}
	
@media (max-width: 420px) {
	main section > div ul li {
		font-size: 0.85rem;
	}
}

main section > div img {
	width: 100%;
	height: auto;
	max-width: 700px;
}

@media (max-width: 768px) {
	main section > div {
		flex-direction: column;
		gap: 20px;
	}
	main section > div img {
		width: 100%;
		max-width: none;
	}
}

.beneficios-options {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.beneficio-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border: 1px solid #CCC;
	border-radius: 6px;
	background-color: #FFF;
	pointer-events: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
	margin-bottom: 0px;
}

@media (max-width: 600px) {
    .beneficio-item {
        padding: 0px;
        border: 0px;
        border-radius: 0px;
        background-color: transparent;
    }
}

.beneficio-item input {
	margin: 0;
	pointer-events: none;
}
@media (max-width: 480px) {
	main section#formulario div .beneficio-item input[type=checkbox] {
		width: 1.1rem;
	}
}

/*.beneficio-item:has(input:checked) {
	border-color: #DE1A33;
	box-shadow: 0 0 0 2px rgba(222, 26, 51, 0.1);
	background-color: #FFF5F5;
}*/

main section#formulario div input[type=submit] {
	transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

main section#formulario div input[type=submit]:hover {
	transform: translateY(-2px) scale(1.02);
	box-shadow: 0 8px 18px rgba(222, 26, 51, 0.25);
}

@media (max-width: 1024px) {
	main section#formulario > div {
		width: 100%;
		margin: 0;
		padding: 40px 6%;
	}
}

@media (max-width: 768px) {
	main section#formulario > div {
		padding: 30px 6%;
	}
}

@media (max-width: 480px) {
	main section#formulario > div {
		padding: 20px 6%;
	}
}
main section#formulario div.lado-derecho {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 10px;
}

@media (max-width: 768px) {
	main section#formulario div.lado-derecho {
		grid-template-columns: 1fr;
		gap: 10px;
	}
}

.btn-beneficios {
	display: inline-block;
	background-color: #DE1A33;
	color: #FFF;
	font-weight: 500;
	padding: 12px 24px;
	border-radius: 5px;
	font-size: 1rem;
	text-decoration: none;
	transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.btn-beneficios-center, .center-text {
	text-align: center;
}

/*@media (max-width: 600px) {
	.footer-content {
		flex-direction: column;
		align-items: flex-start;
	}
}*/

.btn-beneficios:hover {
	background-color: #B7152A;
	color: #FFF;
	transform: translateY(-2px) scale(1.02);
	box-shadow: 0 8px 18px rgba(222, 26, 51, 0.25);
}

.btn-beneficios:active {
	background-color: #8F0F20;
}

@media (max-width: 480px) {
	.btn-beneficios {
		padding: 10px 16px;
		font-size: 0.95rem;
	}
}

.form-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 50px;
}

@media (max-width: 900px) {
	.form-columns {
		grid-template-columns: 1fr;
		gap: 0px;
	}
    main section#formulario div.form-columns div.form-right div.subtitulo:first-of-type {
        margin-top: 0;
    }
}
@media (max-width: 480px) {
    main section#formulario div.form-columns div div.subtitulo > span {
        display: none;
    }
}

main section#formulario .form-left,
main section#formulario .form-right {
	width: 100%;
}

main section#formulario .form-columns > div > div {
	margin-bottom: 18px;
}
@media (max-width: 900px) {
    main section#formulario .form-columns > div > div {
        margin-bottom: 15px;
    }
}
@media (max-width: 768px) {
    main section#formulario .form-columns > div > div {
        margin-bottom: 12px;
    }
}
@media (max-width: 480px) {
    main section#formulario .form-columns > div > div {
        margin-bottom: 10px;
    }
}
