/*
 * Impulsa Estepona - cookie banner (assets/js/consent.js).
 * Tokens come from impulsa.css (--ie-*) when it is loaded; every var() carries
 * its own fallback, so this file also works alone on pages without it.
 * Contrast: primary button text 7.95:1, link/text button 6.14:1, muted text 5.45:1.
 */
.ie-consent {
	--ie-consent-ink: var(--ie-ink, #14243a);
	--ie-consent-muted: var(--ie-muted, #5b6b7f);
	--ie-consent-line: var(--ie-line, #e3eaf2);
	--ie-consent-focus: var(--ie-blue, #1c7bc4);
	--ie-consent-link: #16669d;
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 10000;
	font-family: var(--ie-font, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
	color: var(--ie-consent-ink);
	opacity: 0;
	transform: translateY(24px);
	transition: transform 200ms ease, opacity 200ms ease;
}
.ie-consent.is-open {
	opacity: 1;
	transform: none;
}
.ie-consent[hidden],
.ie-consent [hidden] {
	display: none !important;
}
.ie-consent *,
.ie-consent *::before,
.ie-consent *::after {
	box-sizing: border-box;
}

/* Mobile: bottom sheet */
.ie-consent__card {
	max-height: calc(100vh - 16px);
	max-height: calc(100dvh - 16px);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 20px 16px max(16px, env(safe-area-inset-bottom));
	border-radius: 20px 20px 0 0;
	background: #fff;
	box-shadow: 0 -6px 28px rgba(13, 43, 74, 0.18), 0 0 0 1px var(--ie-consent-line);
}
.ie-consent__card h2 {
	margin: 0 0 8px;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--ie-consent-ink);
}
.ie-consent__card p {
	margin: 0 0 16px;
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--ie-consent-muted);
}
.ie-consent__card p a {
	color: var(--ie-consent-link);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Preferences */
.ie-consent__prefs {
	display: grid;
	gap: 8px;
	margin: 0 0 16px;
}
.ie-consent__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 56px;
	padding: 8px 14px;
	border: 1px solid var(--ie-consent-line);
	border-radius: 14px;
	cursor: pointer;
}
.ie-consent__row strong {
	display: block;
	font-size: 0.95rem;
	font-weight: 600;
}
.ie-consent__row small {
	display: block;
	font-size: 0.85rem;
	line-height: 1.35;
	color: var(--ie-consent-muted);
}
.ie-consent__row input {
	flex: none;
	width: 22px;
	height: 22px;
	margin: 0;
	accent-color: var(--ie-green-2, #4ea836);
}
.ie-consent__row input:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}
.ie-consent__row input:focus-visible {
	outline: 3px solid var(--ie-consent-focus);
	outline-offset: 2px;
}

/* Buttons: stacked and full width on mobile */
.ie-consent__actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.ie-consent__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 20px;
	border: 1px solid transparent;
	border-radius: 999px;
	font: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: background 150ms ease, border-color 150ms ease;
}
.ie-consent__btn:focus-visible {
	outline: 3px solid var(--ie-consent-focus);
	outline-offset: 2px;
}
.ie-consent__btn--primary {
	background: var(--ie-green, #6cc04a);
	color: #051b09;
}
.ie-consent__btn--primary:hover {
	background: #7fd05b;
}
.ie-consent__btn--secondary {
	/* Same weight as Aceptar (AEPD: rejecting must be as easy as accepting): solid, not a faint outline. */
	border-color: #dbe5ef;
	background: #dbe5ef;
	color: var(--ie-consent-ink);
}
.ie-consent__btn--secondary:hover {
	border-color: #c9d6e4;
	background: #c9d6e4;
}
.ie-consent__btn--text {
	background: transparent;
	color: var(--ie-consent-link);
}
.ie-consent__btn--text:hover {
	text-decoration: underline;
}

/* Desktop: card in the bottom-right corner */
@media (min-width: 768px) {
	.ie-consent {
		right: 24px;
		bottom: 24px;
		left: auto;
		width: calc(100% - 48px);
		max-width: 420px;
	}
	.ie-consent__card {
		padding: 24px;
		border-radius: 20px;
		box-shadow: 0 10px 40px rgba(13, 43, 74, 0.22), 0 0 0 1px var(--ie-consent-line);
	}
	.ie-consent__actions {
		flex-flow: row wrap;
		align-items: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ie-consent {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.ie-consent__btn {
		transition: none;
	}
}

@media print {
	.ie-consent {
		display: none !important;
	}
}
@font-face{font-family:FontAwesomeSATT;font-style:normal;font-weight:400;src:url(//impulsaestepona.org/wp-content/plugins/woocommerce-subscriptions/build/fonts/fa-apfs.950c61cc.eot);src:url(//impulsaestepona.org/wp-content/plugins/woocommerce-subscriptions/build/fonts/fa-apfs.950c61cc.eot?#iefix&v=2.2.0) format("embedded-opentype"),url(//impulsaestepona.org/wp-content/plugins/woocommerce-subscriptions/build/fonts/fa-apfs.5047ee64.woff2) format("woff2"),url(//impulsaestepona.org/wp-content/plugins/woocommerce-subscriptions/build/fonts/fa-apfs.2ad2b22d.woff) format("woff"),url(//impulsaestepona.org/wp-content/plugins/woocommerce-subscriptions/build/fonts/fa-apfs.eb9ebfc8.ttf) format("truetype"),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtZXRhZGF0YT5Db3B5cmlnaHQgKEMpIDIwMTkgYnkgb3JpZ2luYWwgYXV0aG9ycyBAIGZvbnRlbGxvLmNvbTwvbWV0YWRhdGE+CjxkZWZzPgo8Zm9udCBpZD0iZmEtYXBmcyIgaG9yaXotYWR2LXg9IjEwMDAiID4KPGZvbnQtZmFjZSBmb250LWZhbWlseT0iZmEtYXBmcyIgZm9udC13ZWlnaHQ9IjQwMCIgZm9udC1zdHJldGNoPSJub3JtYWwiIHVuaXRzLXBlci1lbT0iMTAwMCIgYXNjZW50PSI4NTAiIGRlc2NlbnQ9Ii0xNTAiIC8+CjxtaXNzaW5nLWdseXBoIGhvcml6LWFkdi14PSIxMDAwIiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0icGx1cy1yZWd1bGFyIiB1bmljb2RlPSImI3hlODAwOyIgZD0iTTcxOSA0MTNoLTI4MXYyODFjMCAxNy0xNCAzMS0zMiAzMWgtNjJjLTE3IDAtMzEtMTQtMzEtMzF2LTI4MWgtMjgyYy0xNyAwLTMxLTE0LTMxLTMydi02MmMwLTE3IDE0LTMxIDMxLTMxaDI4MnYtMjgyYzAtMTcgMTQtMzEgMzEtMzFoNjJjMTggMCAzMiAxNCAzMiAzMXYyODJoMjgxYzE3IDAgMzEgMTQgMzEgMzF2NjJjMCAxOC0xNCAzMi0zMSAzMnoiIGhvcml6LWFkdi14PSI3NTAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0icGx1cy1zb2xpZCIgdW5pY29kZT0iJiN4ZTgwMTsiIGQ9Ik04MTMgNDQ0aC0yODJ2MjgxYzAgMzUtMjggNjMtNjIgNjNoLTYzYy0zNCAwLTYyLTI4LTYyLTYzdi0yODFoLTI4MWMtMzUgMC02My0yOC02My02M3YtNjJjMC0zNSAyOC02MyA2My02M2gyODF2LTI4MWMwLTM1IDI4LTYzIDYyLTYzaDYzYzM0IDAgNjIgMjggNjIgNjN2MjgxaDI4MmMzNCAwIDYyIDI4IDYyIDYzdjYyYzAgMzUtMjggNjMtNjIgNjN6IiBob3Jpei1hZHYteD0iODc1IiAvPgoKPGdseXBoIGdseXBoLW5hbWU9ImNhbGVuZGFyLXBsdXMtcmVndWxhciIgdW5pY29kZT0iJiN4ZTgwMjsiIGQ9Ik02NTYgMjgwdi00N2MwLTEzLTEwLTI0LTIzLTI0aC0xNDl2LTE0OGMwLTEzLTEwLTIzLTIzLTIzaC00N2MtMTMgMC0yMyAxMC0yMyAyM3YxNDhoLTE0OWMtMTMgMC0yMyAxMS0yMyAyNHY0N2MwIDEzIDEwIDIzIDIzIDIzaDE0OXYxNDljMCAxMyAxMCAyMyAyMyAyM2g0N2MxMyAwIDIzLTEwIDIzLTIzdi0xNDloMTQ5YzEzIDAgMjMtMTAgMjMtMjN6IG0yMTkgMzUxdi02ODdjMC01Mi00Mi05NC05NC05NGgtNjg3Yy01MiAwLTk0IDQyLTk0IDk0djY4N2MwIDUyIDQyIDk0IDk0IDk0aDk0djEwMmMwIDEzIDEwIDIzIDIzIDIzaDc4YzEzIDAgMjQtMTAgMjQtMjN2LTEwMmgyNTB2MTAyYzAgMTMgMTAgMjMgMjMgMjNoNzhjMTMgMCAyNC0xMCAyNC0yM3YtMTAyaDkzYzUyIDAgOTQtNDIgOTQtOTR6IG0tOTQtNjc2djU4M2gtNjg3di01ODNjMC02IDUtMTEgMTItMTFoNjY0YzYgMCAxMSA1IDExIDExeiIgaG9yaXotYWR2LXg9Ijg3NSIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJjYWxlbmRhci1wbHVzLXNvbGlkIiB1bmljb2RlPSImI3hlODAzOyIgZD0iTTg1MiA1MzhoLTgyOWMtMTIgMC0yMyAxMC0yMyAyM3Y3MGMwIDUyIDQyIDk0IDk0IDk0aDk0djEwMmMwIDEzIDEwIDIzIDIzIDIzaDc4YzEzIDAgMjQtMTAgMjQtMjN2LTEwMmgyNTB2MTAyYzAgMTMgMTAgMjMgMjMgMjNoNzhjMTMgMCAyNC0xMCAyNC0yM3YtMTAyaDkzYzUyIDAgOTQtNDIgOTQtOTR2LTcwYzAtMTMtMTAtMjMtMjMtMjN6IG0tODI5LTYzaDgyOWMxMyAwIDIzLTEwIDIzLTIzdi01MDhjMC01Mi00Mi05NC05NC05NGgtNjg3Yy01MiAwLTk0IDQyLTk0IDk0djUwOGMwIDEzIDExIDIzIDIzIDIzeiBtNjE4LTI3M2MwIDEzLTExIDIzLTI0IDIzaC0xMTd2MTE3YzAgMTMtMTAgMjQtMjMgMjRoLTc5Yy0xMiAwLTIzLTExLTIzLTI0di0xMTdoLTExN2MtMTMgMC0yNC0xMC0yNC0yM3YtNzljMC0xMiAxMS0yMyAyNC0yM2gxMTd2LTExN2MwLTEzIDExLTI0IDIzLTI0aDc5YzEzIDAgMjMgMTEgMjMgMjR2MTE3aDExN2MxMyAwIDI0IDExIDI0IDIzdjc5eiIgaG9yaXotYWR2LXg9Ijg3NSIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJjYWxlbmRhci1jaGVjay1yZWd1bGFyIiB1bmljb2RlPSImI3hlODA0OyIgZD0iTTc4MSA3MjVoLTkzdjEwMmMwIDEzLTExIDIzLTI0IDIzaC03OGMtMTMgMC0yMy0xMC0yMy0yM3YtMTAyaC0yNTB2MTAyYzAgMTMtMTEgMjMtMjQgMjNoLTc4Yy0xMyAwLTIzLTEwLTIzLTIzdi0xMDJoLTk0Yy01MiAwLTk0LTQyLTk0LTk0di02ODdjMC01MiA0Mi05NCA5NC05NGg2ODdjNTIgMCA5NCA0MiA5NCA5NHY2ODdjMCA1Mi00MiA5NC05NCA5NHogbS0xMS03ODFoLTY2NGExMiAxMiAwIDAgMC0xMiAxMXY1ODNoNjg3di01ODNhMTIgMTIgMCAwIDAtMTEtMTF6IG0tMTA0IDM5MmwtMjc4LTI3NmMtOS05LTI0LTktMzMgMGwtMTQ2IDE0OGMtMTAgOS05IDI0IDAgMzNsNDQgNDRjOSA5IDI0IDkgMzMgMGw4Ni04NyAyMTcgMjE1YzEwIDkgMjQgOSAzMyAwbDQ0LTQ0YzEwLTkgMTAtMjQgMC0zM3oiIGhvcml6LWFkdi14PSI4NzUiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0iY2FsZW5kYXItY2hlY2stc29saWQiIHVuaWNvZGU9IiYjeGU4MDU7IiBkPSJNODUyIDUzOGgtODI5Yy0xMiAwLTIzIDEwLTIzIDIzdjcwYzAgNTIgNDIgOTQgOTQgOTRoOTR2MTAyYzAgMTMgMTAgMjMgMjMgMjNoNzhjMTMgMCAyNC0xMCAyNC0yM3YtMTAyaDI1MHYxMDJjMCAxMyAxMCAyMyAyMyAyM2g3OGMxMyAwIDI0LTEwIDI0LTIzdi0xMDJoOTNjNTIgMCA5NC00MiA5NC05NHYtNzBjMC0xMy0xMC0yMy0yMy0yM3ogbS04MjktNjNoODI5YzEzIDAgMjMtMTAgMjMtMjN2LTUwOGMwLTUyLTQyLTk0LTk0LTk0aC02ODdjLTUyIDAtOTQgNDItOTQgOTR2NTA4YzAgMTMgMTEgMjMgMjMgMjN6IG02NTEtMTg3bC01NSA1NWMtOSA5LTI0IDktMzMgMGwtMjA3LTIwNS05MCA5MGMtOSAxMC0yNCAxMC0zMyAwbC01NS01NWMtOS05LTktMjMgMC0zM2wxNjEtMTYyYzktMTAgMjQtMTAgMzMtMWwyNzkgMjc4YzEwIDkgMTAgMjMgMCAzM3oiIGhvcml6LWFkdi14PSI4NzUiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0iZmxhdF8yIiB1bmljb2RlPSImI3hlODA2OyIgZD0iTTUzMiAzOTNjLTQxIDAtNzUgMzQtNzUgNzUgMCA0MSAzNCA3NSA3NSA3NSA0MSAwIDc1LTM0IDc1LTc1IDAtNDEtMzQtNzUtNzUtNzV6IG0wIDEyMGMtMjUgMC00NS0yMC00NS00NSAwLTI1IDIwLTQ1IDQ1LTQ1IDI1IDAgNDUgMjAgNDUgNDUgMCAyNS0yMCA0NS00NSA0NXogbTIwLTQ1YzAtMTEtOS0yMC0yMC0yMC0xMSAwLTIwIDktMjAgMjAgMCAxMSA5IDIwIDIwIDIwIDExIDEgMjAtOSAyMC0yMHogbTY1Ny0yOGgtNTIydjU3aDUyM3YtNTd6IG0tNjc3LTI4M2MtNDEgMC03NSAzNC03NSA3NSAwIDQxIDM0IDc1IDc1IDc1IDQxIDAgNzUtMzQgNzUtNzUgMC00MS0zNC03NS03NS03NXogbTAgMTIwYy0yNSAwLTQ1LTIwLTQ1LTQ1IDAtMjUgMjAtNDUgNDUtNDUgMjUgMCA0NSAyMCA0NSA0NSAwIDI1LTIwIDQ1LTQ1IDQ1eiBtMjAtNDVjMC0xMS05LTIwLTIwLTIwLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwYzExIDAgMjAtOSAyMC0yMHogbTY1Ny0yOWgtNTIydjU3aDUyM3YtNTd6IiBob3Jpei1hZHYteD0iMTY2NyIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJncm91cGVkXzIiIHVuaWNvZGU9IiYjeGU4MDc7IiBkPSJNNTMyIDM4MWMtNDEgMC03NSAzMy03NSA3NCAwIDQyIDM0IDc1IDc1IDc1IDQxIDAgNzUtMzMgNzUtNzUgMC00MS0zNC03NC03NS03NHogbTAgMTIwYy0yNSAwLTQ1LTIwLTQ1LTQ2IDAtMjQgMjAtNDUgNDUtNDUgMjUgMCA0NSAyMCA0NSA0NSAwIDI1LTIwIDQ2LTQ1IDQ2eiBtMjAtNDZjMC0xMS05LTIwLTIwLTIwLTExIDAtMjAgMTAtMjAgMjAgMCAxMiA5IDIwIDIwIDIwIDExIDAgMjAtOSAyMC0yMHogbS0yMC0yODVjLTQxIDAtNzUgMzMtNzUgNzUgMCA0MSAzNCA3NCA3NSA3NCA0MSAwIDc1LTMzIDc1LTc0IDAtNDItMzQtNzUtNzUtNzV6IG0wIDEyMGMtMjUgMC00NS0yMC00NS00NSAwLTI1IDIwLTQ2IDQ1LTQ2IDI1IDAgNDUgMjAgNDUgNDYgMCAyNS0yMCA0NS00NSA0NXogbTIwLTQ1YzAtMTItOS0yMC0yMC0yMC0xMSAwLTIwIDktMjAgMjAgMCAxMSA5IDIwIDIwIDIwIDExIDAgMjAtOSAyMC0yMHogbTY1NyAyMTdoLTUyMnY1N2g1MjN2LTU3eiBtLTE4Mi0xM2gtMzQwdi01N2gzNDB2NTd6IG0xODItMTQxaC01MjJ2LTU3aDUyM3Y1N3ogbS0xODItNzBoLTM0MHYtNTdoMzQwdjU3eiIgaG9yaXotYWR2LXg9IjE2NjciIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0iZmxhdF8zIiB1bmljb2RlPSImI3hlODA4OyIgZD0iTTUzMiA1MTJjLTQxIDAtNzUgMzMtNzUgNzUgMCA0MSAzNCA3NCA3NSA3NCA0MSAwIDc1LTMzIDc1LTc0IDAtNDItMzQtNzUtNzUtNzV6IG0wIDEyMGMtMjUgMC00NS0yMC00NS00NSAwLTI1IDIwLTQ2IDQ1LTQ2IDI1IDAgNDUgMjAgNDUgNDYgMCAyNC0yMCA0NS00NSA0NXogbTAtMzU3Yy00MSAwLTc1IDM0LTc1IDc1IDAgNDEgMzQgNzUgNzUgNzUgNDEgMCA3NS0zNCA3NS03NSAwLTQxLTM0LTc1LTc1LTc1eiBtMCAxMjBjLTI1IDAtNDUtMjAtNDUtNDUgMC0yNSAyMC00NSA0NS00NSAyNSAwIDQ1IDIwIDQ1IDQ1IDAgMjUtMjAgNDUtNDUgNDV6IG0wLTM1NmMtNDEgMC03NSAzMy03NSA3NCAwIDQyIDM0IDc1IDc1IDc1IDQxIDAgNzUtMzMgNzUtNzUgMC00MS0zNC03NC03NS03NHogbTAgMTIwYy0yNSAwLTQ1LTIwLTQ1LTQ2IDAtMjQgMjAtNDUgNDUtNDUgMjUgMCA0NSAyMCA0NSA0NSAwIDI1LTIwIDQ2LTQ1IDQ2eiBtMjAgNDI4YzAtMTItOS0yMC0yMC0yMC0xMSAwLTIwIDktMjAgMjAgMCAxMSA5IDIwIDIwIDIwIDExIDAgMjAtOSAyMC0yMHogbS0yMC0yMTdjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMHogbTAtMjM3Yy0xMSAwLTIwLTktMjAtMjAgMC0xMSA5LTIwIDIwLTIwIDExIDAgMjAgMTAgMjAgMjAgMCAxMi05IDIwLTIwIDIweiBtNjc3IDQyNWgtNTIydjU3aDUyM3YtNTd6IG0wLTE4MGgtNTIydi01N2g1MjN2NTd6IG0wLTIzNmgtNTIydi01N2g1MjN2NTd6IiBob3Jpei1hZHYteD0iMTY2NyIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJncm91cGVkXzMiIHVuaWNvZGU9IiYjeGU4MDk7IiBkPSJNNDYxIDU3NmMtNDIgMC03NSAzMy03NSA3NSAwIDQxIDMzIDc0IDc1IDc0IDQxIDAgNzQtMzMgNzQtNzQgMC00Mi0zMy03NS03NC03NXogbTAgMTIwYy0yNSAwLTQ2LTIwLTQ2LTQ1IDAtMjUgMjAtNDYgNDYtNDYgMjQgMCA0NSAyMCA0NSA0NiAwIDI1LTIwIDQ1LTQ1IDQ1eiBtMjAtNDVjMC0xMi05LTIwLTIwLTIwLTExIDAtMjAgOS0yMCAyMHMxMCAyMCAyMCAyMGMxMSAwIDIwLTkgMjAtMjB6IG02NTggNjNoLTUyNHYtNTdoNTI0djU3eiBtLTE4Mi03MGgtMzQydi01N2gzNDF2NTd6IG0tNDk2LTI3OGMtNDIgMC03NSAzMy03NSA3NSAwIDQxIDMzIDc0IDc1IDc0IDQxIDAgNzQtMzMgNzQtNzQgMC00Mi0zMy03NS03NC03NXogbTAgMTE5Yy0yNSAwLTQ2LTIwLTQ2LTQ1IDAtMjUgMjAtNDUgNDYtNDUgMjQgMCA0NSAyMCA0NSA0NSAwIDI1LTIwIDQ1LTQ1IDQ1eiBtMjAtNDRjMC0xMi05LTIwLTIwLTIwLTExIDAtMjAgOS0yMCAyMCAwIDExIDEwIDIwIDIwIDIwIDExIDAgMjAtMTAgMjAtMjB6IG02NTggNjNoLTUyNHYtNTdoNTI0djU3eiBtLTE4Mi03MWgtMzQydi01NmgzNDF2NTZ6IG0zMzgtNDU4aC05MjR2MTcyaDkyNHYtMTcyeiBtLTg5NCAyNWg4NjZ2MTIzaC04NjZ2LTEyM3ogbTc2MCA3OWg3NmwtMzgtNDAtMzggNDB6IG0tNDA4IDExNGgtMzgydjY0aDM4MnYtNjR6IiBob3Jpei1hZHYteD0iMTY2NyIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJncm91cGVkX3NlbGVjdCIgdW5pY29kZT0iJiN4ZTgwYTsiIGQ9Ik0xMjk1IDIwOGgtOTI0djE3M2g5MjR2LTE3M3ogbS04OTQgMjVoODY2djEyMmgtODY2di0xMjJ6IG03NjAgODBoNzZsLTM4LTQwLTM4IDQweiBtLTQwOCAxMTNoLTM4MnY2NGgzODJ2LTY0eiIgaG9yaXotYWR2LXg9IjE2NjciIC8+CjwvZm9udD4KPC9kZWZzPgo8L3N2Zz4K#fontawesomesatt) format("svg")}ul.wcsatt-options li,ul.wcsatt-options-cart li,ul.wcsatt-options-product li,ul.wcsatt-options-prompt-radios li{list-style:none!important}.woocommerce ul.wcsatt-options li,.woocommerce ul.wcsatt-options li input,.woocommerce ul.wcsatt-options-cart li,.woocommerce ul.wcsatt-options-cart li input,.woocommerce ul.wcsatt-options-product li,.woocommerce ul.wcsatt-options-product li input,.woocommerce ul.wcsatt-options-prompt-radios li,.woocommerce ul.wcsatt-options-prompt-radios li input{margin:0}ul.wcsatt-options{margin:10px 0 0;min-width:120px}ul.wcsatt-options-prompt-radios,ul.wcsatt-options.overrides_exist{margin:0}.wcsatt-options-product-prompt-radio label>span,li span.one-time-option-details,li span.subscription-option-details{padding-left:.2em}ul.wcsatt-options-product li .subscription-price{display:inline-block!important}ul.wcsatt-options-product li .price span.from,ul.wcsatt-options-product li .subscription-price span.subscription-details:first-child,ul.wcsatt-options-product li span.one-time-option-details{display:inline-block}ul.wcsatt-options-product li .price span.from:first-letter,ul.wcsatt-options-product li .subscription-price span.subscription-details:first-child:first-letter,ul.wcsatt-options-product li span.one-time-option-details:first-letter{text-transform:uppercase}a.wcs-switch-link{display:block;margin-top:1em;width:-moz-fit-content;width:fit-content}.wcsatt-sub-discount{margin:0 .1em}.wcsatt-add-to-subscription-wrapper input,.wcsatt-options-wrapper input{margin:0}.wcsatt-options-wrapper-grouped li.one-time-option{display:none}.wcsatt-options-product-dropdown,ul.wcsatt-options-product{margin:0 0 .5em}.wcsatt-options-product-dropdown--hidden,ul.wcsatt-options-product--hidden{display:none}.wcsatt-options-product-prompt{margin-bottom:1em}.wcsatt-options-product-prompt--hidden{display:none}.wcsatt-options-product-prompt .wcsatt-options-prompt-text{margin:0 0 1em}.wcsatt-options-product-prompt .wcsatt-options-prompt-text label,.wcsatt-options-product-prompt.wcsatt-options-product-prompt-checkbox label{margin:0}.wcsatt-options-prompt-label .price,ul.wcsatt-options-product .from+*{margin-left:.15em}.wcsatt-options-product-prompt-checkbox label>span{margin-left:.3em}.wcsatt-options-product li span.one-time-option-details,.wcsatt-options-product li span.subscription-details{display:inline-block}.single-product div.product .single_variation .wcsatt-options-prompt-label .price{display:inline-block!important;margin-bottom:0!important}.single-product div.product .single_variation ul.wcsatt-options-product .price{display:inline!important;margin-bottom:0!important}.subscription-details-hidden .product-addon-totals .wc-pao-subtotal-line .subscription-details{display:none}ul.wcsatt-options-cart{margin:0 0 1.5em}.wcsatt-add-to-subscription-wrapper:before{clear:both;content:"";display:table;margin-top:2em}.wcsatt-add-to-subscription-wrapper label>span{margin-left:.3em}.wcsatt-add-to-subscription-options:before{clear:both;content:"";display:table;margin-top:1.5em}.wcsatt-add-to-subscription-options .subscription-status{display:none}.wcsatt-add-to-subscription-options table.my_account_orders{margin-bottom:0}.wcsatt-add-to-subscription-options .button.add:after{vertical-align:top}.wcsatt-add-cart-to-subscription-options .my_account_orders .button.view:after,.wcsatt-add-to-subscription-options .my_account_orders .button.view:after{display:none}.wcsatt-add-cart-to-subscription-options .woocommerce-orders-table__cell-subscription-products-overview ul,.wcsatt-add-to-subscription-options .woocommerce-orders-table__cell-subscription-products-overview ul{list-style-type:none;margin:0;padding:0}.wcsatt-add-to-subscription-options .subscription-actions{min-width:180px}fieldset.wcsatt-options-prompt-fieldset{border:0;margin:0;padding:0}.wcsatt-add-cart-to-subscription-wrapper{margin-bottom:2em}.wcsatt-add-cart-to-subscription-intro{font-size:1.25em;font-style:italic;font-weight:500;letter-spacing:1px;line-height:1.25em;margin:1.5em;text-align:center}.wcsatt-add-cart-to-subscription-action-wrapper{font-size:1.3em;position:relative}.wcsatt-add-cart-to-subscription-action-wrapper label{cursor:pointer;display:block;font-weight:300}.wcsatt-add-cart-to-subscription-action-input{margin-right:0;position:absolute;right:0;top:50%;transform:translateY(-50%)}.wcsatt-add-cart-to-subscription-options:before,.wcsatt-add-cart-to-subscription-wrapper:after{clear:both;content:"";display:table}.wcsatt-add-cart-to-subscription-options table.my_account_orders{margin-bottom:0}.wcsatt-add-cart-to-subscription-options .button.add:after{content:"";font-family:FontAwesomeSATT;font-size:.9em;line-height:.9em;margin-left:.5em}.wcsatt-add-cart-to-subscription-options .subscription-status{display:none}.wcsatt-add-cart-to-subscription-options .subscription-actions{min-width:180px}form.wcsatt-add-cart-to-subscription-form{margin:0!important}.wcsatt-add-cart-to-subscription-table-wrapper.wcsatt-add-cart-to-subscription-options table.shop_table_responsive thead,.wcsatt-add-to-subscription-table-wrapper.wcsatt-add-to-subscription-options table.shop_table_responsive thead{display:none}.wcsatt-add-cart-to-subscription-table-wrapper.wcsatt-add-cart-to-subscription-options table.shop_table_responsive tbody tr td,.wcsatt-add-to-subscription-table-wrapper.wcsatt-add-to-subscription-options table.shop_table_responsive tbody tr td{clear:both;display:block;text-align:right!important}.wcsatt-add-cart-to-subscription-table-wrapper.wcsatt-add-cart-to-subscription-options table.shop_table_responsive tbody tr td:not(.order-actions):before,.wcsatt-add-to-subscription-table-wrapper.wcsatt-add-to-subscription-options table.shop_table_responsive tbody tr td:not(.order-actions):before{content:attr(data-title) ": ";display:table;float:left;font-weight:700}.theme-twentytwenty.single-product form.cart input.wcsatt-add-to-subscription-action-input,.theme-twentytwentyone.single-product form.cart .wcsatt-options-product input,.theme-twentytwentyone.single-product form.cart input.wcsatt-add-to-subscription-action-input{height:25px;min-width:25px;width:25px}body.single-product.woocommerce div.product.elementor.has-subscription-plans form.cart div.woocommerce-variation-add-to-cart,body.single-product.woocommerce div.product.elementor.has-subscription-plans form.cart.variations_form,body.single-product.woocommerce div.product.elementor.has-subscription-plans form.cart:not(.grouped_form):not(.variations_form){display:block}.wcsatt-options-product-wrapper{margin:0 0 1.5em}.woocommerce-subscriptions-apfs-product__trial{margin-bottom:0}.woocommerce-subscriptions-apfs-product__trial+.woocommerce-subscriptions-apfs-product__signup-fee{margin-top:0}.woocommerce-subscriptions-apfs-product__signup-fee,.woocommerce-subscriptions-apfs-product__trial{color:inherit;display:block;font-size:.9em}.woocommerce-subscriptions-product-details>p{margin-bottom:1em;margin-top:0}.woocommerce-subscriptions-product-details__trial:not(:last-child){margin-bottom:0}.single_variation_wrap.wcsatt-variation-has-details .single_variation,.single_variation_wrap.wcsatt-variation-has-details .woocommerce-variation-price .price{margin-bottom:0!important}
/*
 * Outfit (SIL Open Font License 1.1), self-hosted. Variable font: one file per subset covers weights 300-800.
 * Source: Google Fonts, v15. Spanish needs only the latin subset; latin-ext is kept for names with other diacritics.
 */
@font-face {
	font-family: 'Outfit';
	font-style: normal;
	font-weight: 300 800;
	font-display: swap;
	src: url(https://impulsaestepona.org/wp-content/themes/impulsa-theme/assets/fonts/outfit-latin-ext.woff2) format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Outfit';
	font-style: normal;
	font-weight: 300 800;
	font-display: swap;
	src: url(https://impulsaestepona.org/wp-content/themes/impulsa-theme/assets/fonts/outfit-latin.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/*
 * Impulsa Estepona: theme.css
 * Port of mockup/index.html. Every custom class carries the ie- prefix.
 * Base colours, fonts and sizes come from theme.json presets; the aliases below keep this file short.
 * Specificity note: WordPress layout rules (":root :where(.is-layout-flow) > * + *") weigh 0,1,0, so rules that
 * set margins on block children use two or more classes.
 */

:root,
.editor-styles-wrapper {
	--ie-blue: var(--wp--preset--color--blue, #1c7bc4);
	--ie-blue-2: var(--wp--preset--color--blue-2, #2fa4e0);
	--ie-navy: var(--wp--preset--color--navy, #0d2b4a);
	--ie-navy-2: var(--wp--preset--color--navy-2, #123a63);
	--ie-green: var(--wp--preset--color--green, #6cc04a);
	--ie-green-2: var(--wp--preset--color--green-2, #4ea836);
	--ie-sand: var(--wp--preset--color--sand, #f4f8fb);
	--ie-ink: var(--wp--preset--color--ink, #14243a);
	--ie-muted: var(--wp--preset--color--muted, #5b6b7f);
	--ie-line: var(--wp--preset--color--line, #e3eaf2);
	--ie-radius: 18px;
	--ie-shadow: 0 10px 30px rgba(13, 43, 74, .10);
	--ie-max: 1180px;
	color-scheme: light;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 5.5rem;
}

body {
	-webkit-font-smoothing: antialiased;
}

/* Root-level blocks (header, sections, footer) sit flush against each other. */
.wp-site-blocks > *,
.wp-site-blocks .ie-main > * {
	margin-block: 0;
}

/* ---------- Layout helpers ---------- */
.ie-wrap {
	width: min(var(--ie-max), calc(100% - 2.5rem));
	margin-inline: auto;
}

.ie-sec {
	padding-block: clamp(3.5rem, 8vw, 6.5rem);
}

/* Flow-layout children inside sections start flush; explicit margins below add the rhythm. */
.ie-sec :is(.wp-block-group, .wp-block-query, .wp-block-buttons) > *,
.ie-footer :is(.wp-block-group, .wp-block-buttons) > * {
	margin-block-start: 0;
}

.ie-sec h1,
.ie-sec h2,
.ie-sec h3 {
	margin: 0 0 .5em;
}

.ie-sec p {
	margin: 0 0 1em;
}

.ie-sec .ie-eyebrow {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 0 0 .3rem;
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ie-blue);
}

.ie-eyebrow::before {
	content: "";
	flex: none;
	width: 22px;
	height: 3px;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--ie-blue), var(--ie-green));
}

.ie-eyebrow a {
	color: inherit;
}

.ie-sec .ie-lead {
	max-width: 60ch;
	font-size: 1.15rem;
	color: var(--ie-muted);
}

.ie-grid {
	display: grid;
	gap: 1.25rem;
}

.ie-sec :is(.ie-hero-grid, .ie-grid, .ie-split, .ie-dir-grid, .ie-price, .ie-nl-grid, .ie-events, .ie-news, .ie-profile-grid) > * {
	margin-block: 0;
}

.ie-sec .ie-wrap > :is(.ie-grid, .ie-events) {
	margin-top: 2rem;
}

/* ---------- Reveal on scroll ---------- */
.ie-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .7s ease, transform .7s ease;
}

.ie-reveal.in {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.ie-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.ie-marquee__track {
		animation: none !important;
	}
}

@media (scripting: none) {
	.ie-reveal {
		opacity: 1;
		transform: none;
	}
}

/* Block editor: never hide content waiting for the observer. */
.editor-styles-wrapper .ie-reveal {
	opacity: 1;
	transform: none;
}

/* ---------- Buttons (core/button style variations + .ie-btn for raw HTML) ---------- */
.wp-block-button__link,
.ie-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	text-decoration: none;
	cursor: pointer;
	transition: transform .2s, box-shadow .2s, background .2s;
}

.wp-block-button__link:hover,
.ie-btn:hover {
	transform: translateY(-2px);
	text-decoration: none;
}

.wp-block-button__link:focus-visible,
.ie-btn:focus-visible {
	outline: 3px solid var(--ie-blue-2);
	outline-offset: 3px;
}

.ie-btn {
	padding: .9rem 1.4rem;
	border: 2px solid transparent;
	border-radius: 999px;
	font: inherit;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.55;
	background: var(--ie-blue);
	color: #fff;
	box-shadow: 0 8px 22px rgba(28, 123, 196, .30);
}

.wp-block-button.is-style-ie-green .wp-block-button__link {
	background: var(--ie-green);
	color: #082a0f;
	box-shadow: 0 8px 22px rgba(108, 192, 74, .35);
}

.wp-block-button.is-style-ie-green .wp-block-button__link:hover {
	background: #7fd05b;
	color: #082a0f;
}

.wp-block-button.is-style-ie-blue .wp-block-button__link {
	background: var(--ie-blue);
	color: #fff;
	box-shadow: 0 8px 22px rgba(28, 123, 196, .30);
}

.wp-block-button.is-style-ie-blue .wp-block-button__link:hover {
	background: var(--ie-blue);
	color: #fff;
}

.wp-block-button.is-style-ie-ghost .wp-block-button__link {
	background: transparent;
	border-color: rgba(255, 255, 255, .35);
	color: #fff;
}

.wp-block-button.is-style-ie-ghost .wp-block-button__link:hover {
	background: rgba(255, 255, 255, .08);
	color: #fff;
}

.wp-block-button.is-style-ie-outline .wp-block-button__link {
	background: #fff;
	border-color: var(--ie-line);
	color: var(--ie-ink);
}

.wp-block-button.is-style-ie-outline .wp-block-button__link:hover {
	background: #fff;
	color: var(--ie-ink);
}

.wp-block-button.ie-btn-sm .wp-block-button__link {
	padding: .55rem 1rem;
	font-size: .9rem;
}

/* ---------- Header ---------- */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
}

.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: 0;
	}
}

/* The blur lives on a pseudo-element: backdrop-filter on the header itself would trap the fixed mobile menu overlay. */
.ie-header {
	position: relative;
	isolation: isolate;
	transition: box-shadow .3s;
}

.ie-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(255, 255, 255, .86);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--ie-line);
}

.ie-header.scrolled {
	box-shadow: 0 6px 24px rgba(13, 43, 74, .08);
}

.ie-header .ie-bar {
	height: 74px;
	gap: 1rem;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
}

.ie-header .ie-bar > * {
	margin-block: 0;
}

.ie-header .ie-logo {
	flex: none;
	margin: 0;
}

.ie-header .ie-logo img {
	width: auto;
	height: 46px;
	max-width: none;
}

.ie-header .ie-logo a {
	display: block;
}

.ie-header .ie-menu .wp-block-navigation__container {
	gap: 1.6rem;
}

.ie-header .wp-block-buttons.ie-nav-cta {
	display: none;
	align-items: center;
	gap: .8rem;
}

@media (min-width: 900px) {
	.ie-header .wp-block-buttons.ie-nav-cta {
		display: flex;
	}
}

/* Core switches to the burger menu below 600px; the mockup does it below 900px. */
@media (min-width: 600px) and (max-width: 899px) {
	.ie-header .ie-menu .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.ie-header .ie-menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

/* Mi cuenta and Hazte socio live in the header buttons on desktop and in the menu overlay on mobile. */
.ie-header .ie-menu .ie-mobile-only {
	display: none;
}

.ie-header .ie-menu .is-menu-open .ie-mobile-only {
	display: block;
}

.ie-header .ie-menu .is-menu-open .wp-block-navigation__container {
	gap: 1rem;
	align-items: flex-start;
}

.ie-header .ie-menu .is-menu-open .wp-block-navigation-item__content {
	font-size: 1.15rem;
}

.ie-header .ie-menu .is-menu-open .ie-menu-join .wp-block-navigation-item__content {
	display: inline-block;
	padding: .9rem 1.4rem;
	border-radius: 999px;
	background: var(--ie-green);
	color: #082a0f;
	font-size: 1rem;
	font-weight: 600;
	box-shadow: 0 8px 22px rgba(108, 192, 74, .35);
}

/* ---------- Hero ---------- */
.ie-sec.ie-hero,
.ie-sec.ie-profile-hero {
	position: relative;
	overflow: hidden;
	background: radial-gradient(1200px 600px at 80% -10%, #1d5f9a 0%, var(--ie-navy) 55%, #081a2e 100%);
	color: #fff;
}

.ie-sec.ie-hero {
	padding-bottom: 0;
}

.ie-hero::before,
.ie-profile-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
	background-size: 48px 48px;
	-webkit-mask-image: linear-gradient(180deg, #000 30%, transparent 95%);
	mask-image: linear-gradient(180deg, #000 30%, transparent 95%);
}

.ie-hero .ie-wrap,
.ie-profile-hero .ie-wrap {
	position: relative;
}

.ie-hero-grid {
	display: grid;
	gap: 2.5rem;
	align-items: center;
}

@media (min-width: 960px) {
	.ie-hero-grid {
		grid-template-columns: 1.15fr .85fr;
		gap: 3rem;
	}
}

.ie-sec.ie-hero .ie-eyebrow,
.ie-sec.ie-profile-hero .ie-eyebrow {
	color: #9fd8ff;
}

.ie-hero h1 mark {
	background: linear-gradient(90deg, #9fd8ff, var(--ie-green));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}

.ie-sec.ie-hero .ie-lead,
.ie-sec.ie-profile-hero .ie-lead {
	color: #c9d8e8;
}

.ie-sec .ie-hero-copy .ie-hero-actions {
	gap: .8rem;
	margin: 1.6rem 0 2.2rem;
}

/* Floating cards (static HTML block) */
.ie-card-stack {
	position: relative;
	min-height: 340px;
}

.ie-mcard {
	position: absolute;
	width: min(360px, 88%);
	padding: 1.4rem;
	border-radius: 22px;
	background: linear-gradient(135deg, rgba(255, 255, 255, .14), rgba(255, 255, 255, .05));
	border: 1px solid rgba(255, 255, 255, .22);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
	animation: ie-float 7s ease-in-out infinite;
}

.ie-mcard--one {
	right: 0;
	top: 0;
}

.ie-mcard--two {
	left: 0;
	bottom: 0;
	animation-delay: -3.5s;
	background: linear-gradient(135deg, rgba(108, 192, 74, .35), rgba(28, 123, 196, .25));
}

@keyframes ie-float {
	0%,
	100% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-10px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ie-mcard {
		animation: none;
	}
}

.ie-mcard small {
	display: block;
	margin-bottom: .5rem;
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #b9d5ee;
}

.ie-mcard strong {
	font-size: 1.25rem;
	font-weight: 700;
}

.ie-mcard__row {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-top: .9rem;
}

.ie-mcard__row--flush {
	margin-top: 0;
}

.ie-mcard__row img {
	width: 64px;
	height: 64px;
	padding: 4px;
	border-radius: 14px;
	background: #fff;
}

.ie-mcard__meta {
	font-size: .85rem;
	color: #b9d5ee;
}

.ie-mcard__meta--green {
	color: #e3f5dc;
}

.ie-qr {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
	width: 72px;
	height: 72px;
	padding: 6px;
	border-radius: 12px;
	background: #fff;
}

.ie-qr i {
	border-radius: 1px;
	background: #0d2b4a;
}

.ie-qr i:nth-child(3n+1),
.ie-qr i:nth-child(5n+2),
.ie-qr i:nth-child(11n+4) {
	background: transparent;
}

.ie-pts {
	font-size: 2rem;
	font-weight: 800;
	line-height: 1;
}

.ie-pts span {
	font-size: 1rem;
	font-weight: 500;
}

/* Stats row (static HTML block) */
.ie-sec .ie-wrap > .ie-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	margin-top: 3.5rem;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: var(--ie-radius) var(--ie-radius) 0 0;
	background: rgba(255, 255, 255, .06);
}

@media (min-width: 760px) {
	.ie-sec .ie-wrap > .ie-stats {
		grid-template-columns: repeat(4, 1fr);
	}
}

.ie-stat {
	padding: 1.3rem 1.2rem;
	border-right: 1px solid rgba(255, 255, 255, .1);
}

.ie-stat:last-child {
	border-right: 0;
}

.ie-stat b {
	display: block;
	font-size: 2.1rem;
	font-weight: 800;
	line-height: 1;
	color: #fff;
}

.ie-stat span {
	font-size: .9rem;
	color: #b9d5ee;
}

/* ---------- Marquee ---------- */
.ie-marquee {
	overflow: hidden;
	padding: .9rem 0;
	background: var(--ie-navy);
	color: #9fd8ff;
	border-top: 1px solid rgba(255, 255, 255, .08);
}

/* 50 names instead of the mockup's 24: 100 s keeps the same scroll speed. Margin (not gap) keeps the -50% loop seamless. */
.ie-marquee__track {
	display: flex;
	width: max-content;
	font-weight: 500;
	white-space: nowrap;
	animation: ie-scroll 100s linear infinite;
}

.ie-marquee__track span {
	margin-right: 2.5rem;
}

.ie-marquee__track span::before {
	content: "\26F5";
	margin-right: .6rem;
	opacity: .8;
}

@keyframes ie-scroll {
	to {
		transform: translateX(-50%);
	}
}

/* ---------- Ventajas ---------- */
.ie-cards-3 {
	grid-template-columns: 1fr;
}

@media (min-width: 680px) {
	.ie-cards-3 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1000px) {
	.ie-cards-3 {
		grid-template-columns: repeat(3, 1fr);
	}
}

.ie-vcard {
	padding: 1.6rem;
	background: #fff;
	border: 1px solid var(--ie-line);
	border-radius: var(--ie-radius);
	transition: opacity .7s ease, transform .25s, box-shadow .25s;
}

.ie-vcard:hover {
	transform: translateY(-6px);
	box-shadow: var(--ie-shadow);
}

.ie-icon {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin-bottom: 1rem;
	border-radius: 14px;
	background: linear-gradient(135deg, #e4f3ff, #eaf8e3);
	color: var(--ie-blue);
}

.ie-icon svg {
	width: 26px;
	height: 26px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ie-sec .ie-vcard p {
	margin: 0;
	color: var(--ie-muted);
}

/* ---------- Directorio (cards, chips and map come from the impulsa-core blocks) ---------- */
.ie-dir-grid {
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 1000px) {
	.ie-dir-grid {
		grid-template-columns: 1.1fr .9fr;
	}
}

.ie-dir-sticky {
	align-self: start;
}

@media (min-width: 1000px) {
	.ie-dir-sticky {
		position: sticky;
		top: 6.5rem;
	}
}

/* ---------- Eventos ---------- */
.ie-events {
	display: grid;
	gap: 1.2rem;
}

@media (min-width: 900px) {
	.ie-events {
		grid-template-columns: repeat(3, 1fr);
	}
}

.ie-ev {
	position: relative;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--ie-line);
	border-radius: var(--ie-radius);
	transition: opacity .7s ease, transform .25s, box-shadow .25s;
}

.ie-ev:hover {
	transform: translateY(-6px);
	box-shadow: var(--ie-shadow);
}

.ie-ev__top {
	position: relative;
	height: 120px;
	background: linear-gradient(135deg, var(--ie-navy), var(--ie-blue-2));
}

.ie-ev__top--g {
	background: linear-gradient(135deg, #2a6b25, var(--ie-green));
}

.ie-ev__top--s {
	background: linear-gradient(135deg, #8a4b00, #f2a33a);
}

.ie-ev__date {
	position: absolute;
	left: 1.1rem;
	bottom: -22px;
	padding: .5rem .8rem;
	border-radius: 12px;
	background: #fff;
	text-align: center;
	line-height: 1;
	box-shadow: var(--ie-shadow);
}

.ie-ev__date b {
	display: block;
	font-size: 1.5rem;
}

.ie-ev__date span {
	font-size: .72rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ie-muted);
}

.ie-ev__body {
	padding: 2rem 1.2rem 1.3rem;
}

.ie-sec .ie-ev__body h3 {
	margin: .6rem 0 .5em;
}

.ie-sec .ie-ev__body .ie-ev__meta {
	margin: .3rem 0 .9rem;
	font-size: .9rem;
	color: var(--ie-muted);
}

.ie-sec .ie-pill {
	display: inline-block;
	margin: 0;
	padding: .25rem .6rem;
	border-radius: 6px;
	background: #eaf8e3;
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #2a6b25;
}

.ie-sec .ie-more {
	margin-top: 1.4rem;
	color: var(--ie-muted);
}

.ie-more a {
	font-weight: 600;
}

/* ---------- Compra en Estepona ---------- */
.ie-loyal {
	overflow: hidden;
}

.ie-sec.ie-loyal .ie-eyebrow {
	color: #9fd8ff;
}

.ie-sec.ie-loyal .ie-lead {
	color: #c9d8e8;
}

.ie-split {
	display: grid;
	gap: 2.5rem;
	align-items: center;
}

@media (min-width: 960px) {
	.ie-split {
		grid-template-columns: 1fr 1fr;
	}
}

.ie-photo {
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	box-shadow: 0 30px 60px rgba(0, 0, 0, .4);
}

.ie-photo .wp-block-image {
	margin: 0;
}

.ie-photo img {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.ie-photo .ie-badge {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	display: flex;
	align-items: center;
	gap: .6rem;
	padding: .7rem 1rem;
	border-radius: 14px;
	background: #fff;
	color: var(--ie-navy);
	font-weight: 700;
	box-shadow: var(--ie-shadow);
}

.ie-sec .ie-badge p {
	margin: 0;
}

.ie-sec .ie-badge .ie-badge__ico {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 9px;
	background: var(--ie-green);
	color: #082a0f;
	font-weight: 800;
}

.ie-sec .ie-steps {
	display: grid;
	gap: 1rem;
	margin-top: 1.4rem;
}

.ie-step {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}

.ie-sec .ie-step .ie-step__n {
	flex: 0 0 40px;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin: 0;
	border-radius: 12px;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .2);
	font-weight: 800;
}

.ie-sec .ie-step .ie-step__txt {
	margin: 0;
	color: #c9d8e8;
}

.ie-step__txt strong {
	display: block;
	color: #fff;
}

.ie-sec .ie-loyal-cta {
	margin-top: 1.6rem;
}

/* ---------- Noticias (front page loop and archive loops) ---------- */
.ie-news {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 800px) {
	.ie-news {
		grid-template-columns: repeat(3, 1fr);
	}
}

.ie-sec .ie-wrap > .wp-block-query {
	margin-top: 2rem;
}

.ie-n {
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--ie-line);
	border-radius: var(--ie-radius);
	transition: opacity .7s ease, transform .25s, box-shadow .25s;
}

.ie-n:hover {
	transform: translateY(-6px);
	box-shadow: var(--ie-shadow);
}

.ie-n__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: linear-gradient(135deg, #e4f3ff, #eaf8e3);
}

.ie-n__media .wp-block-post-featured-image {
	height: 100%;
	margin: 0;
}

.ie-n__media .wp-block-post-featured-image a {
	display: block;
	height: 100%;
}

.ie-n__media img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.ie-n__body {
	padding: 1.1rem 1.2rem 1.3rem;
}

.ie-sec .ie-n__body .wp-block-post-date {
	margin: 0;
	font-size: .83rem;
	color: var(--ie-muted);
}

.ie-sec .ie-n__body .wp-block-post-title {
	margin: 0 0 .5em;
	font-size: 1.15rem;
}

.ie-n__body .wp-block-post-title a {
	color: inherit;
}

.ie-sec .ie-n__body .wp-block-post-excerpt {
	margin: 0;
	color: var(--ie-muted);
}

.ie-sec .ie-n__body .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.ie-sec .ie-more-news {
	margin-top: 2rem;
}

/* Pagination in archive loops */
.ie-sec .wp-block-query-pagination {
	justify-content: center;
	gap: .5rem;
	margin-top: 2.5rem;
	font-weight: 600;
}

.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
	padding: .45rem .95rem;
	border: 1px solid var(--ie-line);
	border-radius: 999px;
	background: #fff;
}

.wp-block-query-pagination .page-numbers.current {
	background: var(--ie-navy);
	border-color: var(--ie-navy);
	color: #fff;
}

/* ---------- Asóciate (price card) ---------- */
.ie-join {
	background: linear-gradient(180deg, var(--ie-sand), #fff);
}

.ie-price {
	display: grid;
	gap: 2rem;
	align-items: center;
}

@media (min-width: 960px) {
	.ie-price {
		grid-template-columns: 1fr 1fr;
	}
}

.ie-pcard {
	position: relative;
	overflow: hidden;
	padding: 2rem;
	background: #fff;
	border: 1px solid var(--ie-line);
	border-radius: 24px;
	box-shadow: var(--ie-shadow);
}

.ie-pcard::after {
	content: "";
	position: absolute;
	right: -60px;
	top: -60px;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(108, 192, 74, .25), transparent 70%);
	pointer-events: none;
}

.ie-sec .ie-pcard .ie-pcard__label {
	margin: 0 0 .3rem;
	font-size: .83rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ie-blue);
}

.ie-amount {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .5rem;
	font-size: 3.4rem;
	font-weight: 800;
	line-height: 1;
}

.ie-amount small {
	font-size: 1rem;
	font-weight: 500;
	color: var(--ie-muted);
}

.ie-sec .ie-pcard .ie-inc {
	list-style: none;
	margin: 1.4rem 0;
	padding: 0;
}

.ie-inc li {
	position: relative;
	padding: .45rem 0 .45rem 2rem;
	color: var(--ie-ink);
}

.ie-inc li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	top: .35rem;
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #eaf8e3;
	color: #2a6b25;
	font-size: .8rem;
	font-weight: 800;
}

.ie-sec .ie-pcard .wp-block-buttons.ie-pay {
	display: grid;
	gap: .6rem;
}

@media (min-width: 520px) {
	.ie-sec .ie-pcard .wp-block-buttons.ie-pay {
		grid-template-columns: 1fr 1fr;
	}
}

.ie-pay .wp-block-button,
.ie-pay .wp-block-button__link {
	width: 100%;
}

.ie-sec .ie-pcard .ie-secure {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: .8rem 0 0;
	font-size: .85rem;
	color: var(--ie-muted);
}

/* ---------- Newsletter y contacto ---------- */
.ie-nl {
	background: #fff;
	border-top: 1px solid var(--ie-line);
}

.ie-nl-grid {
	display: grid;
	gap: 2rem;
}

@media (min-width: 900px) {
	.ie-nl-grid {
		grid-template-columns: 1.2fr .8fr;
	}
}

.ie-form {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	margin-top: 1rem;
}

.ie-form input[type="email"] {
	flex: 1 1 240px;
	padding: .9rem 1.1rem;
	border: 1px solid var(--ie-line);
	border-radius: 999px;
	font: inherit;
	font-size: 1rem;
	color: var(--ie-ink);
	background: #fff;
}

.ie-form input[type="email"]:focus-visible {
	outline: 3px solid var(--ie-blue-2);
	outline-offset: 2px;
}

.ie-contact {
	padding: 1.6rem;
	background: var(--ie-sand);
	border-radius: var(--ie-radius);
}

.ie-contact a {
	color: var(--ie-blue);
	font-weight: 600;
}

.ie-sec .ie-contact p {
	margin: .4rem 0;
}

.ie-sec .ie-contact .ie-contact__place {
	color: var(--ie-muted);
}

.ie-sec .ie-contact .wp-block-buttons {
	margin-top: 1rem;
}

.ie-contact .wp-block-button.is-style-ie-outline .wp-block-button__link {
	color: var(--ie-blue);
}

/* ---------- Footer ---------- */
.ie-footer {
	padding: 3rem 0 2rem;
	background: #081a2e;
	color: #a9bdd2;
	font-size: .92rem;
}

.ie-footer a {
	color: inherit;
	text-decoration: none;
}

.ie-footer a:hover {
	color: #fff;
	text-decoration: none;
}

.ie-footer .ie-fgrid {
	display: grid;
	gap: 2rem;
}

@media (min-width: 800px) {
	.ie-footer .ie-fgrid {
		grid-template-columns: 1.4fr 1fr 1fr;
	}
}

.ie-footer .ie-fgrid > * {
	margin-block: 0;
}

.ie-footer .ie-flogo {
	margin: 0 0 1rem;
}

.ie-footer .ie-flogo img {
	width: auto;
	height: 54px;
	max-width: none;
}

.ie-footer p {
	margin: 0 0 1em;
}

.ie-footer h4 {
	margin: 0 0 .8rem;
	font-size: .95rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #fff;
}

.ie-footer ul {
	display: grid;
	gap: .4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ie-footer .ie-copy {
	margin: 2.5rem 0 0;
	padding-top: 1.2rem;
	border-top: 1px solid rgba(255, 255, 255, .1);
}

/* ---------- Pages, posts, archives ---------- */
.ie-main.ie-sec {
	min-height: 50vh;
}

.ie-sec .ie-page-title {
	margin: 0 0 1.2rem;
	font-size: var(--wp--preset--font-size--x-large, clamp(1.7rem, 3.4vw, 2.6rem));
	font-weight: 700;
}

.ie-sec .ie-wrap > .wp-block-term-description,
.ie-sec .ie-wrap > .wp-block-search {
	margin-bottom: 1.5rem;
}

.wp-block-search__input {
	padding: .7rem 1.1rem;
	border: 1px solid var(--ie-line);
	border-radius: 999px;
	font: inherit;
}

.wp-block-search__button {
	margin-left: .5rem;
	border-radius: 999px;
}

.ie-sec .ie-post-meta {
	margin: 0 0 1.6rem;
	font-size: .9rem;
	color: var(--ie-muted);
}

.ie-sec .ie-post-image {
	margin: 0 0 2rem;
}

.ie-post-image img {
	width: 100%;
	height: auto;
	border-radius: var(--ie-radius);
}

.ie-prose a {
	text-decoration: underline;
	text-underline-offset: .15em;
}

.ie-prose img {
	height: auto;
	border-radius: 12px;
}

.ie-prose h2,
.ie-prose h3 {
	margin-top: 1.6em;
}

.ie-sec .ie-profile-hero-text {
	max-width: 62ch;
}

.ie-sec.ie-profile-hero {
	padding-block: clamp(3rem, 6vw, 5rem);
}

.ie-profile-grid {
	display: grid;
	gap: 2rem;
}

@media (min-width: 1000px) {
	.ie-profile-grid {
		grid-template-columns: 1.1fr .9fr;
		gap: 3rem;
	}
}

.ie-sec .ie-back {
	margin-top: 2rem;
	font-weight: 600;
}

.ie-sec .ie-notfound {
	max-width: 36rem;
}

.ie-sec .ie-notfound .wp-block-search {
	margin-top: 2rem;
}

/* impulsa/tokens-steps inside the navy section: no card look, the section already has the background. */
.ie-loyal .ie-tokens-steps {
	background: transparent;
	padding: 0;
	border-radius: 0;
	overflow: visible;
}
.ie-loyal .ie-tokens-steps__inner {
	max-width: none;
}

/* Membership card: one prominent button (the yearly subscription); the one-off payment is a quiet text link. */
.ie-pcard .ie-pay .ie-pay__main {
	width: 100%;
}
.ie-pcard .ie-pay .ie-pay__main .wp-block-button__link {
	width: 100%;
	justify-content: center;
}
.ie-pcard .ie-pay-alt {
	margin: .8rem 0 0;
	font-size: .9rem;
	color: var(--ie-muted);
	text-align: center;
}
.ie-pcard .ie-pay-alt a {
	color: var(--ie-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ie-pcard .ie-pay-alt a:hover {
	color: var(--ie-ink);
}

/* The single membership button fills the card and stays on one line. */
.ie-pcard .wp-block-buttons.ie-pay {
	display: flex;
}
.ie-pcard .wp-block-buttons.ie-pay .wp-block-button.ie-pay__main {
	flex: 1 1 100%;
	width: 100%;
}
.ie-pcard .ie-pay .ie-pay__main .wp-block-button__link {
	display: flex;
	width: 100%;
	justify-content: center;
	white-space: nowrap;
}
/*
 * Mobile header (below 900px): one 64px bar (logo, primary action, 44x44 menu button) and the
 * navigation overlay as a full-screen sheet: brand on top, 56px rows, the two actions at the bottom
 * where the thumb reaches. Sizes follow Apple HIG accessibility (44x44 controls) and layout (reach).
 * Loaded after theme.css so equal-specificity rules here win.
 */

/* The mobile action button is hidden on desktop, where ie-nav-cta (Mi cuenta + Hazte socio) shows. */
.ie-header .wp-block-buttons.ie-nav-cta-mobile {
	display: none;
}

@media (max-width: 899px) {
	.ie-header .ie-bar {
		height: 64px;
		gap: .5rem;
	}

	.ie-header .ie-logo img {
		height: 36px;
	}

	/* Order on the bar: logo (left) · Hazte socio · menu button. The nav block keeps DOM order for focus. */
	.ie-header .ie-menu {
		order: 3;
		flex: none;
	}

	.ie-header .wp-block-buttons.ie-nav-cta-mobile {
		order: 2;
		display: flex;
		align-items: center;
		margin-left: auto;
	}

	.ie-header .ie-nav-cta-mobile .wp-block-button__link {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		padding: 0 1.1rem;
		font-size: .95rem;
	}

	/* 44x44 menu and close buttons on a soft sand tile (HIG: default control size 44x44 pt). */
	.ie-header .ie-menu .wp-block-navigation__responsive-container-open,
	.ie-header .ie-menu .wp-block-navigation__responsive-container-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		border-radius: 12px;
		background: var(--ie-sand);
		color: var(--ie-ink);
	}

	.ie-header .ie-menu .wp-block-navigation__responsive-container-open svg,
	.ie-header .ie-menu .wp-block-navigation__responsive-container-close svg {
		width: 26px;
		height: 26px;
	}

	.ie-header .ie-menu .wp-block-navigation__responsive-container-open:focus-visible,
	.ie-header .ie-menu .wp-block-navigation__responsive-container-close:focus-visible {
		outline: 3px solid var(--ie-blue);
		outline-offset: 2px;
	}

	/* The open menu: a white full-screen sheet. */
	.ie-header .ie-menu .wp-block-navigation__responsive-container.is-menu-open {
		padding: 0;
		background: #fff;
		color: var(--ie-ink);
	}

	.ie-header .ie-menu .is-menu-open .wp-block-navigation__responsive-close {
		width: 100%;
		max-width: none;
		height: 100%;
	}

	.ie-header .ie-menu .is-menu-open .wp-block-navigation__responsive-dialog {
		position: relative;
		display: flex;
		flex-direction: column;
		min-height: 100%;
		padding: 12px 20px 24px;
		padding-bottom: max(24px, env(safe-area-inset-bottom));
	}

	/* Brand at the top of the sheet, same place as in the bar. */
	.ie-header .ie-menu .is-menu-open .wp-block-navigation__responsive-dialog::before {
		content: "";
		display: block;
		flex: none;
		width: 110px;
		height: 44px;
		margin: 2px 0 10px;
		background: url(//impulsaestepona.org/wp-content/themes/impulsa-theme/assets/img/logo-negro.png) left center / contain no-repeat;
	}

	.ie-header .ie-menu .is-menu-open .wp-block-navigation__responsive-container-close {
		position: absolute;
		top: 12px;
		right: 20px;
		margin: 0;
	}

	.ie-header .ie-menu .is-menu-open .wp-block-navigation__responsive-container-content {
		display: flex;
		flex: 1;
		flex-direction: column;
	}

	.ie-header .ie-menu .is-menu-open .wp-block-navigation__container {
		display: flex;
		flex: 1;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		margin: 0;
		padding: 0;
	}

	/* 56px rows with hairline dividers: one job per row, easy to hit. */
	.ie-header .ie-menu .is-menu-open .wp-block-navigation-item {
		display: block;
		border-bottom: 1px solid var(--ie-line);
	}

	.ie-header .ie-menu .is-menu-open .wp-block-navigation-item__content {
		display: flex;
		align-items: center;
		min-height: 56px;
		padding: 0;
		font-size: 1.125rem;
		font-weight: 600;
		color: var(--ie-ink);
		text-decoration: none;
	}

	.ie-header .ie-menu .is-menu-open .ie-mobile-only {
		display: block;
		border-bottom: 0;
	}

	/* The two actions sit at the bottom of the sheet (HIG layout: important controls within reach). */
	.ie-header .ie-menu .is-menu-open .ie-menu-account {
		margin-top: auto;
		padding-top: 16px;
	}

	.ie-header .ie-menu .is-menu-open .ie-menu-account .wp-block-navigation-item__content {
		justify-content: center;
		min-height: 48px;
		border: 1px solid var(--ie-line);
		border-radius: 999px;
		font-size: 1rem;
	}

	.ie-header .ie-menu .is-menu-open .ie-menu-join {
		margin-top: 10px;
	}

	.ie-header .ie-menu .is-menu-open .ie-menu-join .wp-block-navigation-item__content {
		display: flex;
		justify-content: center;
		min-height: 52px;
		padding: 0 1.4rem;
		border-radius: 999px;
		background: var(--ie-green);
		color: #082a0f;
		font-size: 1rem;
		font-weight: 700;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ie-header .ie-menu .wp-block-navigation__responsive-container {
		transition: none;
		animation: none;
	}
}
/*
 * Impulsa Estepona: woocommerce.css
 * Cart, checkout, My Account, shop and product pages in the theme design (tokens come from theme.css).
 * Loaded after theme.css and after Woo's own stylesheets (see functions.php), so rules with the same weight as
 * Woo's win by order. Woo's float layouts become grid/flex; its clearfix pseudo-elements are hidden in those.
 * Compact format: one rule per line when it fits.
 */

:root,
.editor-styles-wrapper {
	--wc-primary: var(--ie-blue);
	--wc-primary-text: #fff;
	--wc-secondary: var(--ie-sand);
	--wc-secondary-text: var(--ie-ink);
	--wc-green: var(--ie-green-2);
	--wc-red: #c0392b;
	--wc-form-border-color: var(--ie-line);
	--wc-form-border-radius: 12px;
	--wc-separator-color: var(--ie-line);
}

/* ---------- Container and typography ---------- */
/* Woo's block-theme sheet caps these wrappers at 1000px; page.html already gives the 1180px .ie-wrap. */
.woocommerce-cart main .woocommerce, .woocommerce-checkout main .woocommerce, .woocommerce-account main .woocommerce,
.woocommerce-cart .wp-block-post-title, .woocommerce-checkout .wp-block-post-title, .woocommerce-account .wp-block-post-title { max-width: none; }

/* Shop and product pages use Woo's own block templates (no .ie-wrap): give <main> the same width and padding. */
.single-product main:not(.ie-main), .post-type-archive-product main:not(.ie-main),
.tax-product_cat main:not(.ie-main), .tax-product_tag main:not(.ie-main) { width: min(var(--ie-max), calc(100% - 2.5rem)); margin-inline: auto; padding-block: 2.5rem 4rem; }

.woocommerce :is(h2, h3) { margin: 0 0 .8rem; font-size: 1.25rem; color: var(--ie-navy); }
.woocommerce-products-header__title, .woocommerce div.product .product_title { margin: 0 0 .6rem; font-size: var(--wp--preset--font-size--x-large, 2rem); color: var(--ie-navy); }
.woocommerce .woocommerce-Price-amount { color: var(--ie-navy); font-weight: 700; }
.woocommerce del, .woocommerce del .woocommerce-Price-amount { color: var(--ie-muted); font-weight: 400; }
.woocommerce ins { background: none; text-decoration: none; }
.woocommerce .woocommerce-breadcrumb { margin: 0 0 1.2rem; font-size: .9rem; color: var(--ie-muted); }
.woocommerce .woocommerce-breadcrumb a { color: var(--ie-muted); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--ie-blue); }

/* ---------- Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice--success {
	display: flow-root; margin: 0 0 1.4rem; padding: 1rem 1.2rem; border: 0; border-left: 4px solid var(--ie-blue); border-radius: 12px;
	background: #e4f3ff; color: var(--ie-ink); list-style: none;
}
.woocommerce-message, .woocommerce-notice--success { border-left-color: var(--ie-green); background: #eaf8e3; }
.woocommerce-error { border-left-color: var(--wc-red); background: #fde7e4; color: #7a1d14; }
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before,
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::after { display: none; }
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button { float: right; margin: 0 0 .4rem 1rem; padding: .45rem 1rem; font-size: .9rem; }
.woocommerce-error li { margin: 0 0 .3rem; }
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) { font-weight: 600; }

/* ---------- Buttons: blue pill by default, green for the main action ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	margin: 0; padding: .8rem 1.4rem; border: 2px solid transparent; border-radius: 999px;
	background: var(--ie-blue); color: #fff; font: inherit; font-weight: 600; line-height: 1.3; text-decoration: none; cursor: pointer;
	box-shadow: 0 8px 22px rgba(28, 123, 196, .30); transition: transform .2s, box-shadow .2s, background .2s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce #respond input#submit:hover { background: var(--ie-blue-2); color: #fff; opacity: 1; transform: translateY(-2px); }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce #respond input#submit.alt,
.woocommerce button.button.woocommerce-form-login__submit, .woocommerce button.button.woocommerce-form-register__submit { background: var(--ie-green); color: #082a0f; box-shadow: 0 8px 22px rgba(108, 192, 74, .35); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover, .woocommerce #respond input#submit.alt:hover,
.woocommerce button.button.woocommerce-form-login__submit:hover, .woocommerce button.button.woocommerce-form-register__submit:hover { background: #7fd05b; color: #082a0f; }
.woocommerce :is(a, button, input).button:is(.disabled, :disabled, [disabled]) { opacity: .5; cursor: not-allowed; transform: none; }
.woocommerce :is(a, button, input).button.alt:is(.disabled, :disabled, [disabled]) { background: var(--ie-green); color: #082a0f; }
.woocommerce :is(a.button, button.button, input.button):focus-visible { outline: 3px solid var(--ie-blue-2); outline-offset: 3px; }
.woocommerce table.shop_table a.button { padding: .45rem 1rem; font-size: .9rem; }
/* Blocktheme sheet stacks the order actions as full-width blocks. */
.woocommerce-account .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions a { display: inline-flex; margin: .15rem .3rem .15rem 0; }

/* ---------- Forms ---------- */
.woocommerce form .form-row { margin: 0 0 1rem; padding: 0; }
.woocommerce form .form-row label { margin: 0 0 .35rem; font-weight: 600; line-height: 1.4; color: var(--ie-ink); }
.woocommerce form .form-row label.checkbox, .woocommerce form .form-row label.woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: .5rem; font-weight: 500; }
.woocommerce form .form-row .required { color: var(--wc-red); text-decoration: none; }
.woocommerce input[type="checkbox"], .woocommerce input[type="radio"] { accent-color: var(--ie-blue); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .woocommerce-ordering select, .woocommerce .quantity .qty {
	padding: .75rem 1rem; border: 1px solid var(--ie-line); border-radius: 12px;
	background-color: #fff; color: var(--ie-ink); font: inherit; line-height: 1.4; box-shadow: none;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus,
.woocommerce .woocommerce-ordering select:focus, .woocommerce .quantity .qty:focus { border-color: var(--ie-blue); outline: 3px solid var(--ie-blue-2); outline-offset: 1px; }
.woocommerce .select2-container--default .select2-selection--single { display: flex; align-items: center; height: auto; min-height: 3rem; border: 1px solid var(--ie-line); border-radius: 12px; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { top: 0; height: 100%; }
.woocommerce form fieldset { margin: 1.5rem 0; padding: 1.2rem 1.3rem; border: 1px solid var(--ie-line); border-radius: 14px; }
.woocommerce form legend { padding: 0 .5rem; font-weight: 700; color: var(--ie-navy); }
.woocommerce .quantity .qty { width: 4.4rem; padding-inline: .4rem; text-align: center; }
/* Address fields: two columns from 600px, wide fields span both. */
.woocommerce [class*="-fields__field-wrapper"] .form-row { float: none; width: auto; }
@media (min-width: 600px) {
	.woocommerce [class*="-fields__field-wrapper"] { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1rem; }
	.woocommerce [class*="-fields__field-wrapper"] :is(.form-row-wide, .notes) { grid-column: 1 / -1; }
}

/* ---------- Tables (cart, orders, subscriptions, totals) ---------- */
.woocommerce table.shop_table {
	width: 100%; margin: 0 0 1.5rem; overflow: hidden;
	border: 1px solid var(--ie-line); border-collapse: separate; border-spacing: 0; border-radius: var(--ie-radius); background: #fff;
}
.woocommerce table.shop_table :is(th, td) { padding: .9rem 1.1rem; border-top: 1px solid var(--ie-line); text-align: left; vertical-align: middle; line-height: 1.45; }
.woocommerce table.shop_table thead th { border-top: 0; background: var(--ie-sand); color: var(--ie-muted); font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.woocommerce table.shop_table :is(.product-name, .order-number, .subscription-id) a { color: var(--ie-navy); font-weight: 600; }
@media (max-width: 768px) {
	.woocommerce table.shop_table_responsive tr { padding: .5rem 0; border-top: 1px solid var(--ie-line); }
	.woocommerce table.shop_table_responsive tr:first-child { border-top: 0; }
	.woocommerce table.shop_table_responsive tr td { padding: .35rem 1.1rem; border: 0; }
	.woocommerce table.shop_table_responsive tr:nth-child(2n) td { background: none; }
	.woocommerce table.shop_table_responsive tr td::before { content: attr(data-title); margin-right: 1rem; color: var(--ie-muted); font-weight: 600; }
}

/* ---------- Cart ---------- */
.woocommerce .woocommerce-cart-form .product-thumbnail { width: 88px; }
.woocommerce .woocommerce-cart-form .product-thumbnail a img { width: 72px; border-radius: 12px; }
.woocommerce table.cart td.actions { padding: 1rem 1.1rem; background: var(--ie-sand); }
.woocommerce table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: .6rem; }
.woocommerce table.cart td.actions .coupon::before, .woocommerce table.cart td.actions .coupon::after { display: none; }
.woocommerce table.cart td.actions .coupon .input-text, .woocommerce .woocommerce-cart-form #coupon_code {
	flex: 1 1 160px; width: auto; max-width: 260px; height: auto; margin: 0; padding: .75rem 1rem;
	border: 1px solid var(--ie-line); border-radius: 12px; background-color: #fff; font: inherit; line-height: 1.4;
}
.woocommerce table.cart td.actions .coupon .button { width: auto; float: none; }
.woocommerce .cart-collaterals .cart_totals {
	float: none; width: 100%; max-width: 460px; margin: 0 0 0 auto; padding: 1.4rem;
	border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: var(--ie-sand);
}
.woocommerce .cart_totals table.shop_table, .woocommerce #order_review table.shop_table { margin: 0 0 1.2rem; border: 0; border-radius: 0; background: transparent; }
.woocommerce .cart_totals table.shop_table :is(th, td), .woocommerce #order_review table.shop_table :is(th, td) { padding-inline: 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: flex; margin: 0; padding: 1rem 1.4rem; font-size: 1.1rem; }

/* ---------- Checkout ---------- */
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password {
	margin: 0 0 1.5rem; padding: 1.6rem; border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: #fff;
}
.woocommerce form.checkout_coupon { display: flex; flex-wrap: wrap; gap: .8rem; align-items: flex-start; }
.woocommerce form.checkout_coupon > p:not(.form-row) { flex: 1 0 100%; margin: 0; }
.woocommerce form.checkout_coupon .form-row { float: none; width: auto; margin: 0; }
.woocommerce form.checkout_coupon .form-row-first { flex: 1 1 200px; max-width: 320px; }
.woocommerce form.checkout_coupon .clear { display: none; }
.woocommerce .col2-set::before, .woocommerce .col2-set::after { display: none; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { float: none; width: auto; }
.woocommerce #customer_details .col-2 { margin-top: 1.5rem; }
.woocommerce #order_review { padding: 1.4rem; border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: var(--ie-sand); }
.woocommerce #order_review table.shop_table thead th { background: transparent; }
.woocommerce #order_review .order-total .woocommerce-Price-amount { font-size: 1.3rem; }
@media (min-width: 900px) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); grid-template-rows: auto auto 1fr; column-gap: 2.5rem; align-items: start; }
	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; grid-row: 1; }
	.woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 2 / span 2; }
	.woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 2; }
	.woocommerce-checkout form.checkout > #order_review { grid-column: 2; grid-row: 3; }
}
/* Payment methods */
.woocommerce #payment { background: none; border-radius: 0; }
.woocommerce #payment ul.payment_methods { display: grid; gap: .6rem; margin: 0; padding: 0 0 1rem; border: 0; list-style: none; }
.woocommerce #payment ul.payment_methods::before, .woocommerce #payment ul.payment_methods::after { display: none; }
.woocommerce #payment ul.payment_methods li { padding: .8rem 1rem; border: 1px solid var(--ie-line); border-radius: 12px; background: #fff; line-height: 1.5; }
.woocommerce #payment ul.payment_methods li label { display: inline; font-weight: 600; cursor: pointer; }
.woocommerce #payment div.payment_box { margin: .7rem 0 0; padding: .8rem 1rem; border-radius: 10px; background: var(--ie-sand); color: var(--ie-muted); font-size: .92rem; }
.woocommerce #payment div.payment_box::before { display: none; }
.woocommerce #payment div.form-row { padding: 0; }
.woocommerce #payment #place_order { float: none; width: 100%; margin: 0; padding: 1rem 1.4rem; font-size: 1.1rem; }
.woocommerce .woocommerce-privacy-policy-text p, .woocommerce .woocommerce-terms-and-conditions-wrapper { margin: 0 0 1rem; color: var(--ie-muted); font-size: .85rem; line-height: 1.5; }
.woocommerce .woocommerce-privacy-policy-text a { text-decoration: underline; }
/* Order received */
.woocommerce ul.order_details { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .8rem; margin: 0 0 2rem; padding: 0; }
.woocommerce ul.order_details::before, .woocommerce ul.order_details::after { display: none; }
.woocommerce ul.order_details li {
	float: none; margin: 0; padding: 1rem 1.1rem; border: 1px solid var(--ie-line); border-radius: 14px; background: var(--ie-sand);
	color: var(--ie-muted); font-size: .75rem; letter-spacing: .06em; line-height: 1.3; text-transform: uppercase;
}
.woocommerce ul.order_details li strong { margin-top: .35rem; color: var(--ie-navy); font-size: 1.05rem; letter-spacing: 0; }
.woocommerce .woocommerce-customer-details address, .woocommerce .woocommerce-Address address { width: auto; padding: 1rem 1.2rem; border: 1px solid var(--ie-line); border-radius: 14px; background: #fff; font-style: normal; }

/* ---------- Login and register (My Account, checkout) ---------- */
.woocommerce :is(.u-columns, .addresses).col2-set { display: grid; gap: 1.5rem; }
.woocommerce .u-columns.col2-set > [class*="u-column"] { padding: 1.6rem; border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: #fff; box-shadow: var(--ie-shadow); }
.woocommerce .u-columns form.login, .woocommerce .u-columns form.register { margin: 0; padding: 0; border: 0; }
.woocommerce .col2-set.addresses { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.woocommerce button.button.woocommerce-form-login__submit { float: none; margin-right: 1rem; }
.woocommerce .woocommerce-LostPassword { margin: 1rem 0 0; }
.woocommerce-account .woocommerce > :is(form.login, form.lost_reset_password) { max-width: 520px; }
@media (min-width: 900px) {
	.woocommerce #customer_login { grid-template-columns: 1fr 1fr; }
}

/* ---------- My Account ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-account .woocommerce-MyAccount-navigation { margin: 0 0 1.5rem; }
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: flex; gap: .3rem; margin: 0; padding: .5rem; overflow-x: auto; list-style: none;
	border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: var(--ie-sand);
}
.woocommerce-account .woocommerce-MyAccount-navigation li { flex: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: .6rem 1rem; border-radius: 999px; color: var(--ie-ink); font-weight: 600; white-space: nowrap; text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: #fff; color: var(--ie-blue); text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--ie-navy); color: #fff; text-decoration: none; }
@media (min-width: 900px) {
	.woocommerce-account .woocommerce { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 2rem; }
	.woocommerce-account .woocommerce > * { flex: 1 1 100%; }
	.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation { position: sticky; top: 6.5rem; flex: 0 0 260px; }
	.woocommerce-account .woocommerce > .woocommerce-MyAccount-content { flex: 1 1 0; min-width: 0; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul { flex-direction: column; padding: .8rem; overflow: visible; }
	.woocommerce-account .woocommerce-MyAccount-navigation li a { white-space: normal; }
}

/* ---------- impulsa-core tabs (Mi asociacion, Mi ficha, Mis tokens); base styles live in the plugin ---------- */
.woocommerce .ie-btn { text-decoration: none; }
.woocommerce .ie-btn--green { background: var(--ie-green); color: #082a0f; box-shadow: 0 8px 22px rgba(108, 192, 74, .35); }
.woocommerce .ie-btn--green:hover { background: #7fd05b; }
.woocommerce .ie-btn--outline { border-color: var(--ie-line); background: #fff; color: var(--ie-ink); box-shadow: none; }
.woocommerce .ie-account { display: grid; gap: 1rem; }
.woocommerce .ie-account > * { margin-block: 0; }
.woocommerce .ie-account__status { font-size: 1.15rem; }
.woocommerce .ie-account__expiry { color: var(--ie-muted); }
.woocommerce .ie-account__actions { margin-top: 0; }
.woocommerce :is(.ie-panel, .ie-wallet) { padding: 1.4rem 1.5rem; border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: #fff; box-shadow: var(--ie-shadow); }
.woocommerce .ie-panel__title { margin: 0 0 .6rem; font-size: 1.2rem; color: var(--ie-navy); }
.woocommerce .ie-wallet__vouchers li { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; }
.woocommerce .ie-wallet__history td { padding: .7rem .4rem; border-top: 0; }
/* theme.css uses .ie-form as the newsletter flex row: the profile and offer forms are plain stacked forms. */
.woocommerce .ie-form { display: block; margin-top: 0; }
.woocommerce .ie-form :is(input, textarea, select) { padding: .75rem 1rem; border: 1px solid var(--ie-line); border-radius: 12px; background-color: #fff; }
.woocommerce .ie-notice { border-left: 4px solid var(--ie-green); }
.woocommerce .ie-notice--error { border-left-color: var(--wc-red); }

/* ---------- Product page ---------- */
.woocommerce div.product { margin-bottom: 3rem; }
.woocommerce div.product::before, .woocommerce div.product::after { display: none; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; margin: 0 0 1.5rem; }
.woocommerce div.product div.images img { border-radius: var(--ie-radius); }
@media (min-width: 900px) {
	.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 3rem; align-items: start; }
	.woocommerce div.product > :not(.images, .summary, .onsale) { grid-column: 1 / -1; }
}
.woocommerce div.product p.price, .woocommerce div.product span.price { margin: 0 0 1rem; color: var(--ie-navy); font-size: 2.4rem; font-weight: 800; line-height: 1; }
.woocommerce div.product :is(p.price, span.price) .woocommerce-Price-amount { font-weight: 800; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ie-muted); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin: 1.4rem 0; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { margin: 0; }
.woocommerce div.product form.cart button.single_add_to_cart_button { padding: .95rem 1.8rem; font-size: 1.05rem; }
.woocommerce div.product .product_meta { display: grid; gap: .2rem; color: var(--ie-muted); font-size: .9rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.2rem; padding: 0; overflow: visible; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active::before, .woocommerce div.product .woocommerce-tabs ul.tabs li.active::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 1px solid var(--ie-line); border-radius: 999px; background: #fff; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: .5rem 1.1rem; color: var(--ie-ink); font-weight: 600; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-color: var(--ie-navy); background: var(--ie-navy); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; }
.woocommerce span.onsale, .woocommerce ul.products li.product .onsale {
	top: .8rem; left: .8rem; right: auto; min-width: 0; min-height: 0; margin: 0; padding: .3rem .8rem;
	border-radius: 999px; background: var(--ie-green); color: #082a0f; font-size: .8rem; line-height: 1.2;
}

/* ---------- Shop grid ---------- */
.woocommerce-products-header, .woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { margin-bottom: 1.2rem; }
.woocommerce .woocommerce-result-count { color: var(--ie-muted); font-size: .92rem; line-height: 3rem; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 1.25rem; margin: 0 0 2rem; padding: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
/* Woo's layout sheet sets column widths and margins with four-class selectors, hence !important on those two. */
.woocommerce ul.products[class*="columns-"] li.product {
	display: flex; flex-direction: column; float: none; width: auto !important; margin: 0 !important; padding: 0 0 1.2rem; overflow: hidden;
	border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: #fff; transition: transform .25s, box-shadow .25s;
}
.woocommerce ul.products li.product:hover { transform: translateY(-6px); box-shadow: var(--ie-shadow); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: block; flex: 1; }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 4 / 3; margin: 0 0 .9rem; border-radius: 0; object-fit: cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: .3rem 1.2rem 0; color: var(--ie-navy); font-size: 1.1rem; }
.woocommerce ul.products li.product .price { margin: .3rem 0 .9rem; padding: 0 1.2rem; color: var(--ie-navy); font-size: 1.1rem; font-weight: 400; }
.woocommerce ul.products li.product .button { align-self: flex-start; margin: .2rem 1.2rem 0; }
.woocommerce ul.products li.product .added_to_cart { margin: .6rem 1.2rem 0; font-weight: 600; }
.woocommerce nav.woocommerce-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0; padding: 0; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { float: none; border: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li :is(a, span) { min-width: 2.5rem; padding: .45rem .95rem; border: 1px solid var(--ie-line); border-radius: 999px; background: #fff; color: var(--ie-ink); font-weight: 600; text-align: center; }
.woocommerce nav.woocommerce-pagination ul li :is(span.current, a:hover, a:focus) { border-color: var(--ie-navy); background: var(--ie-navy); color: #fff; }

@media (prefers-reduced-motion: reduce) {
	.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce ul.products[class*="columns-"] li.product { transition: none; }
	.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce ul.products li.product:hover { transform: none; }
}

/* Product gallery and images never exceed the viewport (mobile). */
.woocommerce div.product div.images,
.woocommerce-product-gallery,
.woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery__image {
	max-width: 100%;
}
.woocommerce-product-gallery img,
.woocommerce ul.products img {
	max-width: 100%;
	height: auto;
}