:root {
	--aldea-cream: #daffc0;
	--aldea-green: #22b04c;
	--aldea-navy: #16324f;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: 'Poppins', sans-serif;
	color: #222;
}

.section {
	position: relative;
	padding-top: 130px;
	padding-bottom: 60px;
	background-size: cover;
	background-position: center;
	scroll-margin-top: 100px;
}

/* ---------- Navbar ---------- */

.site-navbar {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	padding: 1.25rem 2rem;
	background: linear-gradient(160deg, rgba(15, 74, 46, .7), rgba(34, 176, 76, .55));
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 1px 0 rgba(255, 255, 255, .08);
}

.site-navbar__brand {
	display: flex;
	align-items: center;
	gap: .5rem;
	text-decoration: none;
	color: #fff;
}

.site-navbar__logo {
	height: 54px;
	width: auto;
}

.site-navbar__nav {
	gap: 2rem;
}

.site-navbar__icon-link {
	color: #fff;
	display: inline-flex;
}

.site-navbar__link {
	color: #fff;
	text-decoration: none;
	font-weight: 700;
	letter-spacing: .08em;
	font-size: .85rem;
	text-transform: uppercase;
}

.site-navbar__link:hover,
.site-navbar__icon-link:hover {
	color: var(--aldea-cream);
}

.site-navbar__cta {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	color: #fff;
	text-decoration: none;
	border: 1.5px solid #fff;
	border-radius: 999px;
	padding: .55rem 1.4rem;
	font-weight: 700;
	font-size: .85rem;
	letter-spacing: .04em;
	white-space: nowrap;
}

.site-navbar__cta:hover {
	background: #fff;
	color: var(--aldea-green);
}

/* ---------- Sección Almazén ---------- */

.section--almazen {
	background-image: url('/imgs/aldea - web 02.jpg');
	padding-top: 170px;
	padding-bottom: 70px;
}

.carousel {
	position: relative;
	display: flex;
	align-items: center;
	gap: .5rem;
}

.carousel__track {
	display: flex;
	gap: 1.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding: 1rem .25rem 2rem;
	flex: 1 1 auto;
}

.carousel__track::-webkit-scrollbar {
	display: none;
}

.carousel__arrow {
	background: none;
	border: none;
	color: #fff;
	flex: 0 0 auto;
	padding: .5rem;
	cursor: pointer;
	opacity: .85;
}

.carousel__arrow:hover {
	opacity: 1;
}

.almazen-card {
	flex: 0 0 auto;
	width: 240px;
	scroll-snap-align: start;
	border-radius: 1.25rem;
	overflow: hidden;
	box-shadow: 0 15px 30px rgba(0, 0, 0, .18);
}

.almazen-card__img {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 991px) {
	.site-navbar {
		padding: 1rem 1.25rem;
	}
}

/* ---------- Sección Contacto ---------- */

.section--contacto {
	background-image: url('/imgs/aldea - web.jpg');
	padding-top: 80px;
	padding-bottom: 80px;
	color: #fff;
}

.contacto-logo {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: .25rem;
	text-decoration: none;
	color: #fff;
	margin-bottom: 2.5rem;
}

.contacto-logo__img {
	height: 150px;
	width: auto;
}

.contacto-titulo {
	font-weight: 500;
	font-size: 2rem;
	color: var(--aldea-cream);
	margin-bottom: 1.5rem;
}

.contacto-lista {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: .6rem;
}

.contacto-lista li {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-size: 1.1rem;
}

.contacto-lista a {
	color: #fff;
	text-decoration: none;
}

.contacto-lista a:hover {
	text-decoration: underline;
}

/* ---------- Sección Murales ---------- */

.section--murales {
	background: #fffbf5;
	padding-top: 100px;
	padding-bottom: 100px;
}

.murales-foto {
	aspect-ratio: 4 / 3;
	border-radius: 1.5rem;
	overflow: hidden;
}

.murales-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.murales-etiqueta {
	color: var(--aldea-navy);
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-size: .95rem;
	margin-bottom: .5rem;
}

.murales-titulo {
	color: var(--aldea-navy);
	font-weight: 600;
	font-size: 2.4rem;
	margin-bottom: 1.25rem;
}

.murales-texto {
	color: #3d4f66;
	font-size: 1.05rem;
	line-height: 1.7;
	margin-bottom: 0;
}

/* ---------- Sección Patrocinio ---------- */

.section--patrocinio {
	background-image: url('/imgs/aldea - web 04.jpg');
	padding-top: 100px;
	padding-bottom: 100px;
	color: #fff;
}

.patrocinio-titulo {
	font-weight: 800;
	font-size: 2.5rem;
	max-width: 45rem;
	margin: 0 auto 1.5rem;
}

.patrocinio-texto {
	color: var(--aldea-cream);
	font-size: 1.15rem;
	max-width: 40rem;
	margin: 0 auto 2.5rem;
}

.patrocinio-tiers {
	max-width: 55rem;
	margin: 0 auto;
}

.patrocinio-tier {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .4rem;
	height: 100%;
	color: #fff;
	text-decoration: none;
	border: 1.5px solid #fff;
	border-radius: 1rem;
	padding: 1.5rem 1rem;
}

.patrocinio-tier:hover {
	background: #fff;
	color: var(--aldea-green);
}

.patrocinio-tier__nombre {
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-size: 1.1rem;
}

.patrocinio-tier__precio {
	font-weight: 700;
	font-size: 1.05rem;
}

/* ---------- Sección Servicios ---------- */

.section--servicios {
	background: #fff;
	padding-top: 100px;
}

.servicios-header {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 2.5rem;
	margin-bottom: 1.5rem;
}

.servicios-titulo {
	color: var(--aldea-navy);
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-size: 1.3rem;
	margin-bottom: 0;
}

.servicios-tabs {
	display: flex;
	gap: 2rem;
}

.servicios-tabs a {
	color: var(--aldea-navy);
	text-decoration: none;
	font-size: 1.05rem;
}

.servicios-tabs a:hover {
	text-decoration: underline;
}

.section--servicios .carousel__arrow {
	color: var(--aldea-navy);
}

.servicio-card {
	flex: 0 0 auto;
	width: 275px;
	scroll-snap-align: start;
	border-radius: .75rem;
	overflow: hidden;
	display: block;
	box-shadow: 0 15px 30px rgba(0, 0, 0, .18);
	transition: transform .15s ease;
}

.servicio-card:hover {
	transform: translateY(-4px);
}

.servicio-card__img {
	display: block;
	width: 100%;
	height: auto;
}

/* ---------- Sección Podcast (podcast.php) ---------- */

.section--podcast {
	background: linear-gradient(160deg, #0e2135, #1c5c38 130%);
	min-height: 100vh;
	padding-top: 160px;
}

.podcast-header {
	text-align: center;
	margin-bottom: 2.5rem;
}

.podcast-titulo {
	color: var(--aldea-cream);
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-size: 1.3rem;
	margin-bottom: .6rem;
}

.podcast-sub {
	color: rgba(255, 255, 255, .72);
	font-size: .95rem;
	margin: 0 auto;
	max-width: 480px;
}

.podcast-vacio {
	color: rgba(255, 255, 255, .72);
	text-align: center;
}

.podcast-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.75rem;
}

@media (max-width: 900px) {
	.podcast-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.podcast-grid {
		grid-template-columns: 1fr;
	}
}

.ep-card__thumb {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: .75rem .75rem 0 0;
	overflow: hidden;
	box-shadow: 0 18px 34px rgba(0, 0, 0, .35);
}

.ep-card__thumb iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.ep-card__meta {
	background: #fff;
	border-radius: 0 0 .75rem .75rem;
	padding: 1.1rem 1rem;
}

.ep-card__title {
	color: var(--aldea-navy);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.35;
	margin: 0;
}

/* ---------- Sección Destacados ---------- */

.section--destacados {
	background-image: url('/imgs/aldea - web 02.jpg');
	padding-top: 80px;
	padding-bottom: 80px;
}

.destacados-titulo {
	color: #fff;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-size: 1.1rem;
	margin-bottom: 1.5rem;
}

.destacados-card {
	flex: 0 0 auto;
	width: 300px;
	scroll-snap-align: start;
	background: #f2e7cf;
	border-radius: 1.25rem;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.destacados-card__foto {
	aspect-ratio: 4 / 3;
	border-radius: .75rem;
	background: #e3d6b8;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #b8a67e;
	overflow: hidden;
}

.destacados-card__nombre {
	font-size: 1.1rem;
	font-weight: 700;
	color: #2a2118;
	margin-bottom: .5rem;
}

.destacados-card__descripcion {
	font-size: .9rem;
	color: #5c5346;
	margin-bottom: 0;
}

/* ---------- Sección Catálogo ---------- */

.section--catalogo {
	background-image: url('/imgs/aldea - web 03.jpg');
	padding-top: 160px;
}

.catalogo-tabla {
	background: #fff;
	border-radius: 1rem;
	overflow: hidden;
	box-shadow: 0 15px 30px rgba(0, 0, 0, .18);
}

.catalogo-tabla__scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.catalogo-tabla__table {
	margin-bottom: 0;
	min-width: 700px;
}

.catalogo-tabla__table thead th {
	background: #fff;
	color: #333;
	font-weight: 700;
	font-size: .85rem;
	white-space: nowrap;
	padding: .9rem 1rem;
	border-bottom: 1px solid #eee;
}

.catalogo-tabla__th-icon {
	display: inline-block;
	width: 1.1rem;
	color: #999;
	font-weight: 600;
}

.catalogo-tabla__chevron {
	color: #bbb;
	font-size: .7rem;
	margin-left: .25rem;
}

.catalogo-tabla__table tbody td {
	padding: .7rem 1rem;
	font-size: .9rem;
	vertical-align: middle;
	border-bottom: none;
}

.catalogo-tabla__table tbody tr:nth-child(odd) {
	background: #f2fbe9;
}

.catalogo-tabla__placeholder {
	color: #aaa;
	font-style: italic;
}

.catalogo-pill {
	display: inline-block;
	padding: .2rem .7rem;
	border-radius: .35rem;
	font-size: .8rem;
	font-weight: 500;
}

.catalogo-pill--estado {
	background: #c8ecae;
	color: #2f6b1f;
}

.catalogo-pill--estado-no-disponible {
	background: #f0d3ca;
	color: #96412a;
}

.pill--alimentos {
	background: #f0e0bb;
	color: #7a5c1e;
}

.pill--bebidas {
	background: #fde3b0;
	color: #8a5a00;
}

.pill--organico {
	background: #d7f2c2;
	color: #3f7d20;
}

.pill--cosmetica {
	background: #ecdcf6;
	color: #7a3fa0;
}

.pill--especias {
	background: #ffd9c2;
	color: #b5451b;
}

.pill--medicina {
	background: #d7e8f7;
	color: #2b5f8a;
}

/* ---------- Spinner de cantidad + botón flotante de compra ---------- */

.spinner {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
}

.spinner__btn {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: 1.5px solid var(--aldea-navy);
	background: #fff;
	color: var(--aldea-navy);
	font-size: 1rem;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.spinner__btn:hover {
	background: var(--aldea-navy);
	color: #fff;
}

.spinner__cantidad {
	min-width: 1.5rem;
	text-align: center;
	font-weight: 700;
}

.boton-comprar {
	position: fixed;
	left: 50%;
	bottom: 24px;
	transform: translateX(-50%);
	z-index: 900;
	display: flex;
	align-items: center;
	gap: .75rem;
	background: var(--aldea-navy);
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: .9rem 1.75rem;
	font-weight: 700;
	letter-spacing: .03em;
	box-shadow: 0 10px 25px rgba(0, 0, 0, .3);
}

.boton-comprar:hover {
	background: #0f2338;
}

.boton-comprar__total {
	background: rgba(255, 255, 255, .18);
	border-radius: 999px;
	padding: .3rem .9rem;
}

.boton-comprar:disabled {
	opacity: .6;
}

/* ---------- Sección Mailing ---------- */

.section--mailing {
	background-image: url('/imgs/aldea - web 05.jpg');
	padding-top: 160px;
	color: var(--aldea-navy);
}

.mailing-photo {
	display: flex;
	justify-content: center;
}

.mailing-photo__circle {
	position: relative;
	width: 300px;
	height: 300px;
	border-radius: 50%;
	overflow: hidden;
	box-shadow: 0 0 0 40px rgba(255, 255, 255, .35);
}

.mailing-photo__circle img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mailing-titulo {
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-size: 1.9rem;
	margin-bottom: 1rem;
}

.mailing-texto {
	font-size: 1.05rem;
	letter-spacing: .09em;
	max-width: 30rem;
	margin-bottom: 1.5rem;
}

.mailing-form {
	display: flex;
	flex-direction: column;
	gap: .9rem;
	max-width: 26rem;
	margin-bottom: 1.75rem;
}

.mailing-input {
	border: 1.5px solid var(--aldea-navy);
	border-radius: 999px;
	padding: .7rem 1.4rem;
	font-size: .95rem;
	color: var(--aldea-navy);
	background: transparent;
}

.mailing-input::placeholder {
	color: #6b7a9e;
}

.mailing-input:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(22, 50, 79, .15);
}

.mailing-boton {
	border: 1.5px solid var(--aldea-navy);
	border-radius: 999px;
	background: transparent;
	color: var(--aldea-navy);
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	font-size: .85rem;
	padding: .9rem 1.5rem;
}

.mailing-boton:hover {
	background: var(--aldea-navy);
	color: #fff;
}

.mailing-boton:disabled {
	opacity: .6;
	cursor: default;
}

.mailing-form__mensaje {
	font-size: .9rem;
	font-weight: 600;
	color: #1d5c3f;
	margin: 0;
}

.mailing-form__mensaje--error {
	color: #b03a2e;
}

.mailing-regalo {
	text-align: center;
	max-width: 26rem;
	font-weight: 700;
	font-size: 1.15rem;
	letter-spacing: .09em;
	margin-bottom: 0;
}

/* ---------- Página del carrito (carro.php) ---------- */

.carro-body {
	background: #fffbf5;
	min-height: 100vh;
	padding: 60px 0;
}

.carro-card {
	max-width: 640px;
	margin: 0 auto;
	background: #fff;
	border-radius: 1.25rem;
	box-shadow: 0 15px 30px rgba(0, 0, 0, .12);
	padding: 2.5rem 2rem;
	text-align: center;
}

.carro-card__logo {
	height: 90px;
	width: auto;
	margin-bottom: 1.5rem;
}

.carro-card__titulo {
	font-weight: 800;
	font-size: 1.6rem;
	color: var(--aldea-navy);
	margin-bottom: .25rem;
}

.carro-card__fecha {
	color: #999;
	font-size: .85rem;
	margin-bottom: 1.5rem;
}

.carro-card__texto {
	color: #666;
}

.carro-card__aviso {
	display: inline-block;
	background: #fff3cd;
	color: #664d03;
	font-weight: 700;
	font-size: .9rem;
	border-radius: 999px;
	padding: .5rem 1.2rem;
	margin-bottom: 1rem;
}

.carro-card__tabla {
	text-align: left;
	margin-bottom: 1rem;
}

.carro-card__total {
	text-align: right;
	font-weight: 800;
	font-size: 1.3rem;
	color: var(--aldea-navy);
	margin-bottom: 1.5rem;
}

.carro-card__boton {
	display: inline-block;
	background: var(--aldea-green);
	color: #fff;
	text-decoration: none;
	font-weight: 700;
	border-radius: 999px;
	padding: .9rem 2rem;
	margin-bottom: 1.5rem;
}

.carro-card__boton:hover {
	background: #1c8f3f;
	color: #fff;
}

.carro-card__boton--disabled {
	background: #ccc;
	color: #888;
	cursor: not-allowed;
}

.carro-card__volver {
	display: block;
	color: #999;
	text-decoration: none;
	font-size: .9rem;
}

.carro-card__volver:hover {
	color: var(--aldea-navy);
}

/* ---------- Sección Evento (banner + formulario de inscripción) ---------- */

.section--evento {
	padding-top: 110px;
	padding-bottom: 60px;
	background: #fffbf5;
}

.evento-banner {
	margin-bottom: 1.5rem;
}

.evento-banner__img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 1rem;
	box-shadow: 0 15px 30px rgba(0, 0, 0, .15);
}

.evento-card {
	max-width: 640px;
	margin: 0 auto;
	background: #fff;
	border-radius: 1.25rem;
	box-shadow: 0 15px 30px rgba(0, 0, 0, .15);
	padding: 2rem;
}

.evento-card__titulo {
	font-weight: 700;
	color: var(--aldea-navy);
	margin-bottom: 1.25rem;
}

.evento-card__info p {
	margin-bottom: .75rem;
	color: #444;
}

.evento-card__info {
	margin-bottom: 1.5rem;
}

.evento-form__campo {
	margin-bottom: 1.25rem;
}

.evento-form__campo label {
	display: block;
	font-weight: 600;
	color: var(--aldea-navy);
	margin-bottom: .4rem;
}

.evento-form__campo input[type="text"],
.evento-form__campo input[type="email"],
.evento-form__campo input[type="number"] {
	width: 100%;
	border: none;
	border-bottom: 1.5px solid #ccc;
	padding: .5rem .1rem;
	font-size: 1rem;
}

.evento-form__campo input:focus {
	outline: none;
	border-color: var(--aldea-navy);
}

.evento-form__radios {
	display: flex;
	gap: 1.5rem;
}

.evento-form__radio,
.evento-form__checkbox {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-weight: 400 !important;
	color: #444 !important;
}

.evento-form__aranceles {
	background: #f2fbe9;
	border-radius: .75rem;
	padding: 1.25rem;
	font-size: .9rem;
	color: #444;
	margin-bottom: 1.5rem;
}

.evento-form__aranceles p:last-child {
	margin-bottom: 0;
}

.evento-form__boton {
	display: block;
	width: 100%;
	border: none;
	border-radius: 999px;
	background: var(--aldea-green);
	color: #fff;
	font-weight: 700;
	padding: .9rem;
	font-size: 1rem;
}

.evento-form__boton:hover {
	background: #1c8f3f;
}

.evento-form__boton:disabled {
	opacity: .6;
}

.evento-form__mensaje {
	margin: 1rem 0 0;
	font-size: .9rem;
	font-weight: 600;
	color: #1d5c3f;
	text-align: center;
}

.evento-form__mensaje--error {
	color: #b03a2e;
}

.comprobante-dropzone {
	border: 2px dashed #e8a3c0;
	background: #fdeef4;
	border-radius: 1rem;
	padding: 1.5rem 1rem;
	text-align: center;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease;
}

.comprobante-dropzone:hover,
.comprobante-dropzone:focus,
.comprobante-dropzone--sobre {
	background: #fbe0ec;
	border-color: #e0699e;
	outline: none;
}

.comprobante-dropzone__icono {
	font-size: 1.75rem;
	display: block;
	margin-bottom: .5rem;
}

.comprobante-dropzone__texto {
	color: #9c3f6b;
	font-weight: 600;
	margin-bottom: .25rem;
}

.comprobante-dropzone__formatos {
	color: #b57a95;
	font-size: .8rem;
	margin-bottom: 0;
}

.comprobante-dropzone__estado {
	margin: .6rem 0 0;
	font-size: .85rem;
	font-weight: 600;
	color: #1d5c3f;
	text-align: center;
}

.comprobante-dropzone__estado--error {
	color: #b03a2e;
}
