/*
 * 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;
}
