/*
 * WAAD partners section ("Nuestros socios"): heading, logo carousel, decoration.
 * Everything is scoped to .waad-partners (inc/partners.php, assets/js/partners.js).
 */

.waad-partners {
	--partners-navy: #14284b;
	--partners-teal: #1f627c;
	--partners-gold: #c29b57;
	--partners-gold-text: #9c763a;
	--partners-cream: #f7f4ee;
	--partners-text: #1e2a3b;
	--partners-muted: #5f6b7d;
	--partners-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	/* Cards in view: --partners-full whole cards plus part of the next one. */
	--partners-per-view: 6.42;
	--partners-full: 6;
	--partners-gap: 16px;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	overflow: clip;
	padding: 64px 24px 128px;
	background: linear-gradient(180deg, #ffffff 0%, #eef3f7 26%, #f4f4f1 62%, var(--partners-cream) 100%);
	font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	line-height: 1.5;
	color: var(--partners-text);
}

.waad-partners *,
.waad-partners *::before,
.waad-partners *::after {
	box-sizing: border-box;
}

.waad-partners h2,
.waad-partners p,
.waad-partners ul,
.waad-partners li {
	margin: 0;
	padding: 0;
	letter-spacing: normal;
	text-transform: none;
}

.waad-partners ul {
	list-style: none;
}

.waad-partners li::before {
	content: none;
}

.waad-partners svg {
	display: block;
	flex: none;
}

.waad-partners [hidden] {
	display: none !important;
}

.waad-partners .waad-partners__inner {
	position: relative;
	z-index: 1;
	max-width: 1240px;
	margin: 0 auto;
}

/* --------------------------------------------------------------------------
   Decoration
   -------------------------------------------------------------------------- */

.waad-partners .waad-partners__decor {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.waad-partners .waad-partners__pyramids {
	position: absolute;
	top: 44px;
	right: max(0px, calc(50% - 760px));
	width: min(32vw, 440px);
	height: auto;
	color: var(--partners-gold);
	opacity: 0.2;
}

.waad-partners .waad-partners__sand {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 96px;
}

.waad-partners .waad-partners__sand-fill {
	fill: #fbf9f5;
}

.waad-partners .waad-partners__sand-line {
	stroke: rgba(194, 155, 87, 0.55);
	stroke-width: 1.2;
	vector-effect: non-scaling-stroke;
}

.waad-partners .waad-partners__oasis {
	position: absolute;
	bottom: 30px;
	left: max(24px, calc(50% - 640px));
	width: 112px;
	height: auto;
	color: var(--partners-gold);
	opacity: 0.6;
}

/* --------------------------------------------------------------------------
   Heading
   -------------------------------------------------------------------------- */

.waad-partners .waad-partners__head {
	display: grid;
	grid-template-columns: minmax(0, 560px) minmax(0, 1fr) auto;
	align-items: center;
	gap: 28px 44px;
	margin-bottom: 34px;
}

.waad-partners .waad-partners__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
	padding: 6px 14px 6px 10px;
	border-radius: 999px;
	background: #ffffff;
	box-shadow: 0 8px 20px -14px rgba(20, 40, 75, 0.35), 0 1px 2px rgba(20, 40, 75, 0.06);
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--partners-navy);
}

.waad-partners .waad-partners__eyebrow-icon {
	color: var(--partners-gold);
}

.waad-partners .waad-partners__title {
	position: relative;
	padding-bottom: 18px;
	font-family: inherit;
	font-size: clamp(24px, 1.85vw, 28px);
	font-weight: 700;
	line-height: 1.28;
	letter-spacing: -0.01em;
	color: var(--partners-navy);
}

.waad-partners .waad-partners__title-line {
	display: block;
}

.waad-partners .waad-partners__title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: min(100%, 360px);
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--partners-gold) 0%, var(--partners-gold) 55%, rgba(194, 155, 87, 0) 100%);
}

.waad-partners .waad-partners__highlight {
	color: var(--partners-gold-text);
}

.waad-partners .waad-partners__text {
	max-width: 460px;
	padding-left: 24px;
	border-left: 1px solid rgba(194, 155, 87, 0.5);
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--partners-muted);
}

.waad-partners .waad-partners__nav {
	display: flex;
	gap: 12px;
	align-self: end;
}

.waad-partners .waad-partners__arrow {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(20, 40, 75, 0.12);
	border-radius: 50%;
	background: #ffffff;
	box-shadow: 0 10px 22px -14px rgba(20, 40, 75, 0.45);
	color: var(--partners-navy);
	font: inherit;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.25s var(--partners-ease), border-color 0.25s var(--partners-ease), color 0.25s var(--partners-ease), transform 0.25s var(--partners-ease);
}

.waad-partners .waad-partners__arrow--next {
	border-color: var(--partners-navy);
	background: var(--partners-navy);
	color: #ffffff;
}

.waad-partners .waad-partners__arrow:focus-visible {
	outline: 2px solid var(--partners-gold);
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   Carousel
   -------------------------------------------------------------------------- */

/* Room above and below for the card shadows, which the clipping would cut. */
.waad-partners .waad-partners__viewport {
	position: relative;
	margin: -14px 0 -22px;
	padding: 14px 0 22px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 96px), rgba(0, 0, 0, 0.15) 100%);
	mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 96px), rgba(0, 0, 0, 0.15) 100%);
}

.waad-partners .waad-partners__viewport::-webkit-scrollbar {
	display: none;
}

.waad-partners .waad-partners__viewport.is-animated {
	overflow: hidden;
	scroll-snap-type: none;
	touch-action: pan-y;
	cursor: grab;
}

.waad-partners .waad-partners__viewport.is-dragging {
	cursor: grabbing;
}

.waad-partners .waad-partners__viewport.is-static {
	-webkit-mask-image: none;
	mask-image: none;
}

.waad-partners .waad-partners__viewport.is-static .waad-partners__track {
	justify-content: center;
}

.waad-partners .waad-partners__track {
	display: flex;
	gap: var(--partners-gap);
	will-change: transform;
}

.waad-partners .waad-partners__item {
	flex: 0 0 calc((100% - var(--partners-gap) * var(--partners-full)) / var(--partners-per-view));
	min-width: 0;
	scroll-snap-align: start;
}

.waad-partners .waad-partners__card {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 14 / 10;
	overflow: hidden;
	border: 1px solid rgba(20, 40, 75, 0.06);
	border-radius: 14px;
	background: #ffffff;
	box-shadow: 0 12px 26px -18px rgba(20, 40, 75, 0.35), 0 1px 3px rgba(20, 40, 75, 0.05);
	transition: box-shadow 0.3s var(--partners-ease), transform 0.3s var(--partners-ease);
}

/*
 * The logo files are 452x255 with wide empty margins and a pale grey floor:
 * scaled so the logo fills the card (only empty margin falls outside), and the
 * light background brightened into the white card. Aspect ratio is kept.
 */
.waad-partners .waad-partners__logo {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	object-fit: contain;
	transform: scale(1.28);
	filter: brightness(1.09) contrast(1.06);
	mix-blend-mode: multiply;
	-webkit-user-drag: none;
	user-select: none;
	pointer-events: none;
}

/*
 * Nile Air: the only file is black; screen-blending a colour layer over it turns
 * the black into gold (sunburst) and navy (lettering) and leaves white as white.
 * 48.2% is the gap between the two in card width, for this file at 19/10.
 */
.waad-partners .waad-partners__card--nile-air {
	position: relative;
	isolation: isolate;
}

.waad-partners .waad-partners__card--nile-air::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, transparent 48.2%, #1d3768 48.2%),
		linear-gradient(180deg, #d6b974 22%, #a8853f 78%);
	mix-blend-mode: screen;
	pointer-events: none;
}

.waad-partners .waad-partners__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 30px;
}

.waad-partners .waad-partners__dot {
	-webkit-appearance: none;
	appearance: none;
	width: 10px;
	height: 6px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #d3d9e1;
	cursor: pointer;
	transition: width 0.35s var(--partners-ease), background-color 0.35s var(--partners-ease);
}

.waad-partners .waad-partners__dot[aria-current="true"] {
	width: 34px;
	background: var(--partners-gold);
}

.waad-partners .waad-partners__dot:focus-visible {
	outline: 2px solid var(--partners-gold);
	outline-offset: 3px;
}

@media (hover: hover) {
	.waad-partners .waad-partners__arrow:hover {
		border-color: var(--partners-gold);
		color: var(--partners-gold-text);
		transform: translateY(-1px);
	}

	.waad-partners .waad-partners__arrow--next:hover {
		border-color: var(--partners-teal);
		background: var(--partners-teal);
		color: #ffffff;
	}

	.waad-partners .waad-partners__card:hover {
		box-shadow: 0 16px 30px -18px rgba(20, 40, 75, 0.45), 0 1px 3px rgba(20, 40, 75, 0.06);
	}

	.waad-partners .waad-partners__dot:hover {
		background: var(--partners-gold);
	}
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1199.98px) {
	.waad-partners {
		--partners-per-view: 5.4;
		--partners-full: 5;
	}

	.waad-partners .waad-partners__head {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.waad-partners .waad-partners__text {
		grid-column: 1 / -1;
		grid-row: 2;
		max-width: 640px;
	}

	.waad-partners .waad-partners__nav {
		grid-column: 2;
		grid-row: 1;
	}
}

@media (max-width: 1023.98px) {
	.waad-partners {
		--partners-per-view: 4.4;
		--partners-full: 4;
		padding: 72px 24px 116px;
	}

	.waad-partners .waad-partners__pyramids {
		width: 46vw;
		opacity: 0.2;
	}
}

@media (max-width: 767.98px) {
	.waad-partners {
		--partners-per-view: 1.8;
		--partners-full: 2;
		--partners-gap: 12px;
		padding: 48px 16px 104px;
	}

	.waad-partners .waad-partners__head {
		gap: 20px 16px;
		margin-bottom: 26px;
	}

	.waad-partners .waad-partners__title-line {
		display: inline;
	}

	.waad-partners .waad-partners__text {
		padding-left: 16px;
		font-size: 14px;
	}

	.waad-partners .waad-partners__arrow {
		width: 42px;
		height: 42px;
	}

	.waad-partners .waad-partners__card {
		border-radius: 12px;
	}

	.waad-partners .waad-partners__viewport {
		-webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 48px), rgba(0, 0, 0, 0.2) 100%);
		mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 48px), rgba(0, 0, 0, 0.2) 100%);
	}

	.waad-partners .waad-partners__dots {
		margin-top: 24px;
	}

	.waad-partners .waad-partners__oasis {
		width: 84px;
		bottom: 24px;
	}
}

@media (max-width: 479.98px) {
	.waad-partners .waad-partners__head {
		grid-template-columns: minmax(0, 1fr);
	}

	.waad-partners .waad-partners__nav {
		grid-column: 1;
		grid-row: 3;
		justify-self: end;
	}

	.waad-partners .waad-partners__pyramids {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.waad-partners .waad-partners__arrow,
	.waad-partners .waad-partners__card,
	.waad-partners .waad-partners__dot {
		transition: none;
	}
}
