@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,900");
@import url("fontawesome-all.min.css");

html, body, div, span, applet, object,
iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b,
u, i, center, dl, dt, dd, ol, ul, li, fieldset,
form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td, article, aside,
canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;}

body {
	line-height: 1;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

	blockquote:before, blockquote:after, q:before, q:after {
		content: '';
		content: none;
	}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

body {
	-webkit-text-size-adjust: none;
}

mark {
	background-color: transparent;
	color: inherit;
}

input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

input, select, textarea {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
}

/* Basic */

	html {
		box-sizing: border-box;
	}

	*, *:before, *:after {
		box-sizing: inherit;
	}

	body {
		background: #1a1a2e;
		color: #fff;
		font-family: 'Source Sans Pro', sans-serif;
		font-size: 15pt;
		font-weight: 300;
		letter-spacing: -0.025em;
		line-height: 1.75em;
	}

	a {
		-moz-transition: border-color 0.2s ease-in-out;
		-webkit-transition: border-color 0.2s ease-in-out;
		-ms-transition: border-color 0.2s ease-in-out;
		transition: border-color 0.2s ease-in-out;
		border-bottom: dotted 1px;
		color: inherit;
		outline: 0;
		text-decoration: none;
	}

		a:hover {
			border-color: transparent;
		}

/* Icon */

	.icon {
		text-decoration: none;
		position: relative;
	}

		.icon:before {
			-moz-osx-font-smoothing: grayscale;
			-webkit-font-smoothing: antialiased;
			display: inline-block;
			font-style: normal;
			font-variant: normal;
			text-rendering: auto;
			line-height: 1;
			text-transform: none !important;
			font-family: 'Font Awesome 5 Free';
			font-weight: 400;
		}

		.icon > .label {
			display: none;
		}

		.icon.solid:before {
			font-weight: 900;
		}

		.icon.brands:before {
			font-family: 'Font Awesome 5 Brands';
		}

/* Hero */

	#hero {
		height: 100vh;
		overflow: hidden;
		position: relative;
		text-align: center;
	}

	@-moz-keyframes bg {
		0% { -moz-transform: translate3d(0,0,0); -webkit-transform: translate3d(0,0,0); -ms-transform: translate3d(0,0,0); transform: translate3d(0,0,0); }
		100% { -moz-transform: translate3d(-2250px,0,0); -webkit-transform: translate3d(-2250px,0,0); -ms-transform: translate3d(-2250px,0,0); transform: translate3d(-2250px,0,0); }
	}

	@-webkit-keyframes bg {
		0% { -moz-transform: translate3d(0,0,0); -webkit-transform: translate3d(0,0,0); -ms-transform: translate3d(0,0,0); transform: translate3d(0,0,0); }
		100% { -moz-transform: translate3d(-2250px,0,0); -webkit-transform: translate3d(-2250px,0,0); -ms-transform: translate3d(-2250px,0,0); transform: translate3d(-2250px,0,0); }
	}

	@-ms-keyframes bg {
		0% { -moz-transform: translate3d(0,0,0); -webkit-transform: translate3d(0,0,0); -ms-transform: translate3d(0,0,0); transform: translate3d(0,0,0); }
		100% { -moz-transform: translate3d(-2250px,0,0); -webkit-transform: translate3d(-2250px,0,0); -ms-transform: translate3d(-2250px,0,0); transform: translate3d(-2250px,0,0); }
	}

	@keyframes bg {
		0% { -moz-transform: translate3d(0,0,0); -webkit-transform: translate3d(0,0,0); -ms-transform: translate3d(0,0,0); transform: translate3d(0,0,0); }
		100% { -moz-transform: translate3d(-2250px,0,0); -webkit-transform: translate3d(-2250px,0,0); -ms-transform: translate3d(-2250px,0,0); transform: translate3d(-2250px,0,0); }
	}

	#bg {
		-moz-animation: bg 60s linear infinite;
		-webkit-animation: bg 60s linear infinite;
		-ms-animation: bg 60s linear infinite;
		animation: bg 60s linear infinite;
		-moz-backface-visibility: hidden;
		-webkit-backface-visibility: hidden;
		-ms-backface-visibility: hidden;
		backface-visibility: hidden;
		-moz-transform: translate3d(0,0,0);
		-webkit-transform: translate3d(0,0,0);
		-ms-transform: translate3d(0,0,0);
		transform: translate3d(0,0,0);
		background: #348cb2 url("images/bg.jpg") bottom left;
		background-repeat: repeat-x;
		background-size: 2250px auto;
		width: 6750px;
		height: 100vh;
		left: 0;
		opacity: 1;
		position: absolute;
		top: 0;
	}

	#overlay {
		-moz-animation: overlay 1.5s 1.5s forwards;
		-webkit-animation: overlay 1.5s 1.5s forwards;
		-ms-animation: overlay 1.5s 1.5s forwards;
		animation: overlay 1.5s 1.5s forwards;
		background-attachment: fixed, fixed;
		background-image: url("images/overlay-pattern.png"), url("images/overlay.svg");
		background-position: top left, center center;
		background-repeat: repeat, no-repeat;
		background-size: auto, cover;
		height: 100vh;
		left: 0;
		opacity: 0;
		position: absolute;
		top: 0;
		width: 100%;
	}

	@-moz-keyframes overlay {
		0% { opacity: 0; }
		100% { opacity: 1; }
	}

	@-webkit-keyframes overlay {
		0% { opacity: 0; }
		100% { opacity: 1; }
	}

	@-ms-keyframes overlay {
		0% { opacity: 0; }
		100% { opacity: 1; }
	}

	@keyframes overlay {
		0% { opacity: 0; }
		100% { opacity: 1; }
	}

	#hero-content {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		height: 100vh;
		position: relative;
		z-index: 2;
		cursor: default;
	}

	#hero-content h1 {
		font-size: 4.35em;
		font-weight: 900;
		letter-spacing: -0.035em;
		line-height: 1em;
		text-shadow: 0 2px 20px rgba(0,0,0,0.5);
	}

	#hero-content p {
		font-size: 1.25em;
		margin: 0.75em 0 0.25em 0;
		opacity: 0.85;
		text-shadow: 0 1px 10px rgba(0,0,0,0.4);
	}

	#hero-content .sub {
		font-size: 1em;
		opacity: 0.7;
		margin-top: 0;
	}

	#hero-content nav {
		margin: 1.5em 0 0 0;
	}

		#hero-content nav li {
			display: inline-block;
			height: 5.35em;
			line-height: 5.885em;
			position: relative;
			top: 0;
			width: 5.35em;
		}

		#hero-content nav a {
			-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
			-webkit-touch-callout: none;
			border: 0;
			display: inline-block;
		}

			#hero-content nav a:before {
				-moz-transition: all 0.2s ease-in-out;
				-webkit-transition: all 0.2s ease-in-out;
				-ms-transition: all 0.2s ease-in-out;
				transition: all 0.2s ease-in-out;
				border-radius: 100%;
				border: solid 1px #fff;
				display: block;
				font-size: 1.75em;
				height: 2.5em;
				line-height: 2.5em;
				position: relative;
				text-align: center;
				top: 0;
				width: 2.5em;
			}

			#hero-content nav a:hover {
				font-size: 1.1em;
			}

				#hero-content nav a:hover:before {
					background-color: rgba(255, 255, 255, 0.175);
					color: #fff;
				}

			#hero-content nav a:active {
				font-size: 0.95em;
				background: none;
			}

				#hero-content nav a:active:before {
					background-color: rgba(255, 255, 255, 0.35);
					color: #fff;
				}

			#hero-content nav a span {
				display: none;
			}

/* Tours Section */

	#tours {
		background: #16213e;
		padding: 4em 1em;
		position: relative;
		z-index: 2;
	}

	.container {
		max-width: 1200px;
		margin: 0 auto;
	}

	.section-header {
		text-align: center;
		margin-bottom: 3em;
	}

	.section-header h2 {
		font-size: 2.5em;
		font-weight: 900;
		letter-spacing: -0.02em;
		margin-bottom: 0.5em;
	}

	.section-header p {
		font-size: 1.15em;
		opacity: 0.7;
	}

	.tour-grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
		gap: 2em;
	}

	.tour-card {
		background: #1a1a2e;
		border-radius: 12px;
		overflow: hidden;
		-moz-transition: -moz-transform 0.3s ease, box-shadow 0.3s ease;
		-webkit-transition: -webkit-transform 0.3s ease, box-shadow 0.3s ease;
		-ms-transition: -ms-transform 0.3s ease, box-shadow 0.3s ease;
		transition: transform 0.3s ease, box-shadow 0.3s ease;
	}

	.tour-card:hover {
		-moz-transform: translateY(-6px);
		-webkit-transform: translateY(-6px);
		-ms-transform: translateY(-6px);
		transform: translateY(-6px);
		box-shadow: 0 12px 30px rgba(0,0,0,0.4);
	}

	.tour-img {
		height: 200px;
		background-size: cover;
		background-position: center;
		background-color: #0f3460;
	}

	.tour-body {
		padding: 1.5em;
	}

	.tour-body h3 {
		font-size: 1.4em;
		font-weight: 900;
		margin-bottom: 0.5em;
	}

	.tour-desc {
		font-size: 0.9em;
		opacity: 0.7;
		line-height: 1.5em;
		margin-bottom: 1em;
	}

	.tour-prices {
		display: flex;
		gap: 1em;
		margin-bottom: 1.2em;
	}

	.price {
		display: inline-block;
		padding: 0.4em 1em;
		border-radius: 6px;
		font-weight: 900;
		font-size: 1.1em;
	}

	.price.pen {
		background: #e94560;
		color: #fff;
	}

	.price.usd {
		background: #0f3460;
		color: #fff;
		border: 1px solid #e94560;
	}

	.btn {
		display: inline-block;
		padding: 0.6em 1.8em;
		background: #e94560;
		color: #fff;
		border: none;
		border-radius: 6px;
		font-size: 0.95em;
		font-weight: 600;
		text-decoration: none;
		cursor: pointer;
		-moz-transition: background 0.2s ease;
		-webkit-transition: background 0.2s ease;
		-ms-transition: background 0.2s ease;
		transition: background 0.2s ease;
	}

	.btn:hover {
		background: #c73650;
		border-color: transparent;
	}

/* Price Table */

	#prices {
		background: #1a1a2e;
		padding: 4em 1em;
		position: relative;
		z-index: 2;
	}

	.table-wrapper {
		overflow-x: auto;
	}

	.price-table {
		width: 100%;
		border-collapse: collapse;
		font-size: 1em;
	}

	.price-table thead {
		background: #0f3460;
	}

	.price-table th {
		padding: 1em 1.2em;
		font-weight: 900;
		font-size: 0.95em;
		text-align: left;
		text-transform: uppercase;
		letter-spacing: 0.05em;
	}

	.price-table th.col-pen,
	.price-table td.col-pen {
		color: #e94560;
	}

	.price-table th.col-usd,
	.price-table td.col-usd {
		color: #4fc3f7;
	}

	.price-table td {
		padding: 1em 1.2em;
		border-bottom: 1px solid rgba(255,255,255,0.06);
		font-weight: 400;
	}

	.price-table tbody tr {
		-moz-transition: background 0.2s ease;
		-webkit-transition: background 0.2s ease;
		-ms-transition: background 0.2s ease;
		transition: background 0.2s ease;
	}

	.price-table tbody tr:hover {
		background: rgba(255,255,255,0.04);
	}

	.price-table tbody tr.highlight {
		background: rgba(233,69,96,0.08);
		border-left: 3px solid #e94560;
	}

	.price-table tbody tr.highlight:hover {
		background: rgba(233,69,96,0.15);
	}

	.price-table tbody tr.highlight td:first-child {
		font-weight: 900;
	}

	.table-note {
		text-align: center;
		font-size: 0.85em;
		opacity: 0.5;
		margin-top: 1.5em;
	}

	@media screen and (max-width: 736px) {

		.price-table thead {
			display: none;
		}

		.price-table,
		.price-table tbody,
		.price-table tr,
		.price-table td {
			display: block;
		}

		.price-table tr {
			padding: 1em;
			margin-bottom: 1em;
			background: #16213e;
			border-radius: 8px;
		}

		.price-table td {
			padding: 0.4em 0;
			border-bottom: none;
			text-align: right;
		}

		.price-table td::before {
			content: attr(data-label);
			float: left;
			font-weight: 600;
			opacity: 0.6;
			text-transform: uppercase;
			font-size: 0.8em;
			letter-spacing: 0.05em;
		}

		.price-table tbody tr.highlight {
			border-left: none;
			border: 1px solid #e94560;
		}
	}

/* Reservation Page */

	#reserva-hero {
		background: #16213e;
		padding: 3em 1em;
		position: relative;
		z-index: 2;
	}

	.back-link {
		display: inline-block;
		color: rgba(255,255,255,0.6);
		text-decoration: none;
		font-size: 0.9em;
		margin-bottom: 1.5em;
		border: none;
		-moz-transition: color 0.2s ease;
		-webkit-transition: color 0.2s ease;
		-ms-transition: color 0.2s ease;
		transition: color 0.2s ease;
	}

	.back-link:hover {
		color: #fff;
		border: none;
	}

	#tour-hero-info h1 {
		font-size: 2.8em;
		font-weight: 900;
		letter-spacing: -0.02em;
		line-height: 1.2em;
	}

	#tour-hero-info p {
		font-size: 1.15em;
		opacity: 0.7;
		margin-top: 0.3em;
	}

	#reserva-content {
		background: #1a1a2e;
		padding: 4em 1em;
		position: relative;
		z-index: 2;
	}

	.reserva-grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 3em;
		align-items: start;
	}

	.tour-hero-img {
		height: 280px;
		background-size: cover;
		background-position: center;
		border-radius: 12px 12px 0 0;
		background-color: #0f3460;
	}

	.info-body {
		padding: 2em;
		background: #16213e;
		border-radius: 0 0 12px 12px;
	}

	.info-body h2 {
		font-size: 1.6em;
		font-weight: 900;
		margin-bottom: 0.8em;
	}

	.info-body > p {
		font-size: 0.95em;
		line-height: 1.7em;
		opacity: 0.8;
		margin-bottom: 1.5em;
	}

	.info-grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1em;
		margin-bottom: 2em;
	}

	.info-item {
		background: rgba(255,255,255,0.04);
		padding: 1em;
		border-radius: 8px;
	}

	.info-label {
		display: block;
		font-size: 0.75em;
		text-transform: uppercase;
		letter-spacing: 0.08em;
		opacity: 0.5;
		margin-bottom: 0.3em;
	}

	.info-value {
		font-size: 1em;
		font-weight: 600;
		color: #fff;
	}

	.includes {
		margin-top: 1em;
	}

	.includes h3 {
		font-size: 1.1em;
		font-weight: 900;
		margin-bottom: 0.8em;
	}

	.includes ul {
		list-style: none;
	}

	.includes li {
		padding: 0.4em 0;
		font-size: 0.9em;
		opacity: 0.8;
	}

	.includes li::before {
		content: "\2713";
		color: #4fc3f7;
		margin-right: 0.6em;
		font-weight: 900;
	}

	.reserva-form-wrap {
		background: #16213e;
		padding: 2em;
		border-radius: 12px;
	}

	.reserva-form-wrap h2 {
		font-size: 1.4em;
		font-weight: 900;
		margin-bottom: 1.2em;
	}

	.form-group {
		margin-bottom: 1.2em;
	}

	.form-group label {
		display: block;
		font-size: 0.85em;
		font-weight: 600;
		margin-bottom: 0.4em;
		opacity: 0.8;
	}

	.form-group input,
	.form-group textarea,
	.form-group select {
		width: 100%;
		padding: 0.75em 1em;
		background: #1a1a2e;
		border: 1px solid rgba(255,255,255,0.1);
		border-radius: 6px;
		color: #fff;
		font-size: 0.95em;
		font-family: 'Source Sans Pro', sans-serif;
		outline: none;
		-moz-transition: border-color 0.2s ease;
		-webkit-transition: border-color 0.2s ease;
		-ms-transition: border-color 0.2s ease;
		transition: border-color 0.2s ease;
	}

	.form-group input:focus,
	.form-group textarea:focus {
		border-color: #e94560;
	}

	.form-row {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1em;
	}

	.radio-group {
		display: flex;
		flex-direction: column;
		gap: 0.5em;
	}

	.radio-label {
		display: flex;
		align-items: center;
		gap: 0.5em;
		font-size: 0.9em;
		opacity: 0.8;
		cursor: pointer;
	}

	.radio-label input[type="radio"] {
		width: auto;
		accent-color: #e94560;
	}

	.btn-submit {
		width: 100%;
		padding: 0.9em;
		font-size: 1.05em;
		margin-top: 0.5em;
		cursor: pointer;
		border: none;
	}

	.form-success {
		text-align: center;
		padding: 3em 1em;
	}

	.success-icon {
		display: inline-block;
		width: 3em;
		height: 3em;
		line-height: 3em;
		background: #4fc3f7;
		color: #1a1a2e;
		border-radius: 50%;
		font-size: 1.5em;
		font-weight: 900;
		margin-bottom: 1em;
	}

	.form-success h3 {
		font-size: 1.5em;
		font-weight: 900;
		margin-bottom: 0.5em;
	}

	.form-success p {
		opacity: 0.7;
		margin-bottom: 1.5em;
	}

	@media screen and (max-width: 900px) {
		.reserva-grid {
			grid-template-columns: 1fr;
		}

		#tour-hero-info h1 {
			font-size: 2em;
		}
	}

	@media screen and (max-width: 736px) {
		#reserva-hero {
			padding: 2em 1em;
		}

		#tour-hero-info h1 {
			font-size: 1.6em;
		}

		#reserva-content {
			padding: 2em 1em;
		}

		.info-grid {
			grid-template-columns: 1fr;
		}

		.form-row {
			grid-template-columns: 1fr;
		}

		.tour-hero-img {
			height: 200px;
		}

		.info-body {
			padding: 1.2em;
		}

		.reserva-form-wrap {
			padding: 1.2em;
		}
	}

/* Footer */

	#footer {
		background: #0f0f23;
		padding: 2em 1em;
		text-align: center;
		position: relative;
		z-index: 2;
	}

	#footer p {
		font-size: 0.95em;
		opacity: 0.7;
		margin-bottom: 0.5em;
	}

	#footer .copyright {
		font-size: 0.85em;
		opacity: 0.5;
	}

/* Mobile */

	@media screen and (max-width: 736px) {

		body {
			font-size: 11pt;
		}

		#hero-content h1 {
			font-size: 2.5em;
		}

		#hero-content p {
			font-size: 1em;
		}

		#hero-content nav {
			font-size: 1em;
		}

		#hero-content nav a:hover {
			font-size: 1em;
		}

		#hero-content nav a:active {
			font-size: 1em;
		}

		@-moz-keyframes bg {
			0% { -moz-transform: translate3d(0,0,0); -webkit-transform: translate3d(0,0,0); -ms-transform: translate3d(0,0,0); transform: translate3d(0,0,0); }
			100% { -moz-transform: translate3d(-300px,0,0); -webkit-transform: translate3d(-300px,0,0); -ms-transform: translate3d(-300px,0,0); transform: translate3d(-300px,0,0); }
		}

		@-webkit-keyframes bg {
			0% { -moz-transform: translate3d(0,0,0); -webkit-transform: translate3d(0,0,0); -ms-transform: translate3d(0,0,0); transform: translate3d(0,0,0); }
			100% { -moz-transform: translate3d(-300px,0,0); -webkit-transform: translate3d(-300px,0,0); -ms-transform: translate3d(-300px,0,0); transform: translate3d(-300px,0,0); }
		}

		@-ms-keyframes bg {
			0% { -moz-transform: translate3d(0,0,0); -webkit-transform: translate3d(0,0,0); -ms-transform: translate3d(0,0,0); transform: translate3d(0,0,0); }
			100% { -moz-transform: translate3d(-300px,0,0); -webkit-transform: translate3d(-300px,0,0); -ms-transform: translate3d(-300px,0,0); transform: translate3d(-300px,0,0); }
		}

		@keyframes bg {
			0% { -moz-transform: translate3d(0,0,0); -webkit-transform: translate3d(0,0,0); -ms-transform: translate3d(0,0,0); transform: translate3d(0,0,0); }
			100% { -moz-transform: translate3d(-300px,0,0); -webkit-transform: translate3d(-300px,0,0); -ms-transform: translate3d(-300px,0,0); transform: translate3d(-300px,0,0); }
		}

		#bg {
			background-size: 300px auto;
			width: 900px;
		}

		.section-header h2 {
			font-size: 1.8em;
		}

		.tour-grid {
			grid-template-columns: 1fr;
		}

		.tour-prices {
			flex-direction: column;
			gap: 0.5em;
		}
	}

	@media screen and (max-width: 480px) {

		#hero-content h1 {
			font-size: 1.8em;
		}

		#hero-content nav {
			padding: 0 1em;
		}

		#tours {
			padding: 2em 0.8em;
		}
	}