/* Impronta · plantillas del Theme Builder (header, footer y secciones). Medidas tomadas de referencias/diseno/*.dc.html. */

/* ---------- Base de las plantillas ---------- */
.imp-cab, .imp-pie, [class*="imp-"].e-con { font-family: 'Jost', Futura, 'Century Gothic', sans-serif; }
.imp-cab p, .imp-pie p { margin: 0; }

/* ---------- Header ---------- */
.e-con.imp-cab {
	--display: grid;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: 24px;
	width: 100%;
	box-sizing: border-box;
	padding: 18px 36px 18px 48px;
	background: var(--imp-lino);
	border-bottom: 1px solid var(--imp-crudo);
	position: relative;
	z-index: 30;
}
.imp-cab .imp-cab__izq { justify-content: center; align-items: flex-start; }
.imp-cab .imp-cab__logo { align-items: center; }
.imp-cab .imp-cab__logo a { display: block; line-height: 0; }
.imp-cab .imp-cab__logo img { display: block; width: 180px; max-width: 100%; height: auto; }
.home .imp-cab .imp-cab__logo img { width: 240px; }
.e-con.imp-cab__der { flex-direction: row; justify-content: flex-end; align-items: center; gap: 20px; }

/* Menú principal */
.imp-cab .elementor-nav-menu--main .elementor-nav-menu { display: flex; gap: 40px; margin: 0; padding: 0; }
.imp-cab .elementor-nav-menu--main .elementor-item {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0;
	background: none;
	color: var(--imp-tinta);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	box-sizing: border-box;
}
.imp-cab .elementor-nav-menu--main .elementor-item:hover,
.imp-cab .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--imp-arcilla-pro); border-bottom-color: var(--imp-arcilla-pro); }
.home .imp-cab .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--imp-tinta); border-bottom-color: transparent; }
.imp-cab .elementor-nav-menu--main .imp-menu-solo-mobile { display: none; }

/* Íconos de la derecha */
.e-con.imp-pie__marca, .e-con.imp-pie__nav, .e-con.imp-pie__col { width: auto; }
.imp-cab__iconos .elementor-shortcode { display: flex; align-items: center; gap: 20px; }
.imp-cab .imp-ico,
.imp-cab .elementor-menu-cart__toggle_button.elementor-button {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	min-height: 44px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--imp-tinta);
	cursor: pointer;
	box-shadow: none;
	line-height: 0;
}
.imp-cab .imp-ico:hover,
.imp-cab .imp-ico:focus,
.imp-cab .elementor-menu-cart__toggle_button.elementor-button:hover { background: transparent; color: var(--imp-arcilla-pro); }

/* Carrito (widget Menu Cart de Elementor Pro): solo el ícono y el globito con la cantidad */
.imp-cab .elementor-menu-cart__toggle_button .elementor-button-text { display: none; }
.imp-cab .elementor-menu-cart__toggle_button .elementor-button-icon { position: relative; display: flex; width: auto; font-size: 22px; }
.imp-cab .elementor-menu-cart__toggle_button .elementor-button-icon svg { width: 22px; height: 22px; fill: currentColor; }
.imp-cab .elementor-menu-cart__toggle_button .elementor-button-icon-qty {
	position: absolute;
	top: -8px;
	right: -10px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--imp-arcilla-btn);
	color: var(--imp-lino);
	font-size: 10px;
	font-weight: 500;
	line-height: 1;
}
.imp-cab .elementor-menu-cart__wrapper { display: flex; }

/* Hamburguesa (solo mobile): líneas finas de 1,3 px como los demás íconos */
.imp-cab .elementor-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--imp-tinta);
	box-shadow: none;
}
.imp-cab .elementor-menu-toggle svg { display: none; }
.imp-cab .elementor-menu-toggle::before {
	content: "";
	width: 22px;
	height: 16px;
	background:
		linear-gradient(currentColor, currentColor) 0 0 / 100% 1.3px no-repeat,
		linear-gradient(currentColor, currentColor) 0 50% / 100% 1.3px no-repeat,
		linear-gradient(currentColor, currentColor) 0 100% / 100% 1.3px no-repeat;
}
.imp-cab .elementor-menu-toggle.elementor-active::before {
	background:
		linear-gradient(45deg, transparent calc(50% - .65px), currentColor calc(50% - .65px), currentColor calc(50% + .65px), transparent calc(50% + .65px)),
		linear-gradient(-45deg, transparent calc(50% - .65px), currentColor calc(50% - .65px), currentColor calc(50% + .65px), transparent calc(50% + .65px));
}

@media (max-width: 767px) {
	.e-con.imp-cab { height: 68px; padding: 0 6px; gap: 0; }
	.imp-cab .imp-cab__logo img { width: 150px; }
	.imp-cab .elementor-menu-toggle { display: flex; }
	.imp-cab .elementor-nav-menu--main { display: none; }
	.e-con.imp-cab__der { gap: 0; }
	.imp-cab__iconos .elementor-shortcode { gap: 0; }
	.imp-cab .imp-ico--cuenta { display: none; }
	/* Menú desplegable */
	.imp-cab .elementor-nav-menu--dropdown {
		background: var(--imp-lino);
		border-top: 1px solid var(--imp-crudo);
		box-shadow: 0 18px 30px rgba(51, 48, 43, .08);
	}
	.imp-cab .elementor-nav-menu--dropdown .elementor-nav-menu { margin: 0; padding: 0; }
	.imp-cab .elementor-nav-menu--dropdown .elementor-item {
		display: flex;
		align-items: center;
		min-height: 56px;
		padding: 0 24px;
		border-bottom: 1px solid var(--imp-crudo);
		background: transparent;
		color: var(--imp-tinta);
		font-size: 13px;
		font-weight: 500;
		letter-spacing: .2em;
		text-transform: uppercase;
	}
	.imp-cab .elementor-nav-menu--dropdown .elementor-item-active { color: var(--imp-arcilla-pro); }
}

/* En la Home el menú va sobre el hero, sin barra propia (Main.dc.html). En celular queda la barra de 68 px. */
@media (min-width: 768px) {
	.home .elementor-location-header { position: absolute; top: 0; left: 0; right: 0; z-index: 30; }
	.home .e-con.imp-cab { background: transparent; border-bottom: 0; height: 96px; padding: 0 36px 0 48px; }
	.home .imp-cab .imp-cab__logo { padding-top: 6px; }
}

/* ---------- Footer ---------- */
.e-con.imp-pie { background: var(--imp-crudo); padding: 80px 24px 40px; color: var(--imp-tinta); }
.e-con.imp-pie__in { width: 100%; max-width: 1200px; margin: 0 auto; gap: 56px; }
.e-con.imp-pie__top { flex-direction: row; flex-wrap: wrap; justify-content: space-between; gap: 48px; }
.e-con.imp-pie__marca { gap: 18px; max-width: 320px; }
.imp-pie .imp-pie__logo { text-align: left; }
.imp-pie__logo img { display: block; width: 200px; height: auto; margin: 0; }
.imp-pie__marca p { font-size: 15px; font-weight: 300; line-height: 1.7; }
.e-con.imp-pie__nav { flex-direction: row; flex-wrap: wrap; gap: 72px; }
.e-con.imp-pie__col { gap: 14px; }
.imp-pie .imp-pie__eyebrow .elementor-heading-title {
	margin: 0;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .2em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--imp-arcilla-pro);
}
.imp-pie .elementor-nav-menu--main .elementor-nav-menu { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; }
.imp-pie .elementor-nav-menu--main .elementor-item,
.imp-pie__nav .elementor-widget-text-editor a {
	padding: 0;
	background: none;
	color: var(--imp-tinta);
	font-size: 15px;
	font-weight: 300;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
}
.imp-pie .elementor-nav-menu--main .elementor-item:hover,
.imp-pie__nav .elementor-widget-text-editor a:hover { color: var(--imp-arcilla-pro); }
.imp-pie__marca .elementor-widget-text-editor p { font-size: 15px; }
.e-con.imp-pie__legal {
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px;
	padding-top: 24px;
	border-top: 1px solid var(--imp-trigo);
}
.imp-pie__legal p,
.imp-pie__legal a { font-size: 12px; font-weight: 300; letter-spacing: .12em; text-transform: uppercase; color: var(--imp-tinta); }
.imp-pie__legal a { text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 767px) {
	.e-con.imp-pie { padding: 56px 20px 32px; }
	.e-con.imp-pie__in { gap: 40px; }
	.e-con.imp-pie__top { gap: 36px; }
	.e-con.imp-pie__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; width: 100%; }
	.e-con.imp-pie__legal { flex-direction: column; gap: 8px; }
}

/* ---------- Utilidades de las plantillas ---------- */
.imp-eyebrow .elementor-heading-title,
.imp-subtitulo .elementor-heading-title { margin: 0; text-transform: uppercase; line-height: 1.5; }
.imp-eyebrow .elementor-heading-title { font-size: 11px; font-weight: 500; letter-spacing: .24em; color: var(--imp-arcilla-pro); }
.imp-subtitulo .elementor-heading-title { font-size: 15px; font-weight: 300; letter-spacing: .2em; color: var(--imp-arcilla-pro); }
.imp-h2 .elementor-heading-title { margin: 0; font-size: 34px; font-weight: 300; letter-spacing: .12em; line-height: 1.2; text-transform: uppercase; color: var(--imp-tinta); }

/* Botones: contorno, primario y arena. Esquinas rectas, mínimo 48 px. */
.imp-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 48px;
	padding: 0 36px;
	border: 1px solid transparent;
	border-radius: 0;
	box-shadow: none;
	font-family: inherit;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
	line-height: 1.4;
	text-transform: uppercase;
	text-decoration: none;
}
.imp-btn--contorno .elementor-button { background: transparent; border-color: var(--imp-arcilla-pro); color: var(--imp-arcilla-pro); }
.imp-btn--contorno .elementor-button:hover { background: var(--imp-arcilla-pro); color: var(--imp-lino); }
.imp-btn--primario .elementor-button { min-height: 52px; padding: 0 44px; background: var(--imp-arcilla-btn); color: var(--imp-lino); }
.imp-btn--primario .elementor-button:hover { background: var(--imp-arcilla-pro); color: var(--imp-lino); }
.imp-btn--arena .elementor-button { min-height: 52px; padding: 0 44px; background: var(--imp-arena); color: var(--imp-tinta); }
.imp-btn--arena .elementor-button:hover { background: var(--imp-lino); color: var(--imp-tinta); }

/* Enlace con subrayado fino */
.imp-enlace p { margin: 0; }
.imp-enlace a {
	display: inline-block;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--imp-arcilla-pro);
	color: var(--imp-arcilla-pro);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
}
.imp-enlace a:hover { color: var(--imp-tinta); border-color: var(--imp-tinta); }

/* ---------- Home ---------- */
.e-con.imp-intro { align-items: center; gap: 28px; padding: 140px 24px 128px; text-align: center; }
.imp-intro .imp-intro__iso { text-align: center; }
.imp-intro .imp-intro__iso img { width: 64px; height: auto; margin: 0 auto; }
.imp-intro .imp-intro__titulo .elementor-heading-title { margin: 0; max-width: 820px; font-size: 40px; font-weight: 300; letter-spacing: .12em; line-height: 1.3; text-transform: uppercase; color: var(--imp-tinta); }
.e-con .imp-intro__texto.elementor-widget { max-width: 640px; }
.imp-intro .imp-intro__texto p { margin: 0; font-size: 19px; font-weight: 300; line-height: 1.8; }
.imp-sello { display: flex; align-items: center; gap: 10px; margin: 8px 0; }
.imp-sello span { display: block; width: 56px; height: 1px; background: var(--imp-trigo); }
.imp-sello i { display: block; width: 6px; height: 6px; border-radius: 50%; background: var(--imp-arcilla); }

.e-con.imp-patrones { padding: 0 24px 140px; }
.e-con.imp-patrones__in { width: 100%; max-width: 1200px; margin: 0 auto; gap: 56px; }
.e-con.imp-patrones__cab { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; padding-bottom: 28px; border-bottom: 1px solid var(--imp-arena); }
.e-con.imp-patrones__titulos { width: auto; gap: 12px; }
.imp-patrones .imp-patrones__ver { text-align: center; }

.e-con.imp-claims-sec { background: var(--imp-crudo); padding: 72px 24px; }
.imp-claims { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 20px 40px; max-width: 1200px; margin: 0 auto; padding: 0; list-style: none; }
.imp-claims li { margin: 0; font-size: 16px; font-weight: 300; letter-spacing: .24em; text-transform: uppercase; }
.imp-claims li.imp-claims__punto { width: 5px; height: 5px; border-radius: 50%; background: var(--imp-topo); }

.e-con.imp-cursos-sec { padding: 140px 0 0; }

.e-con.imp-mirada { padding: 150px 24px; }
.e-con.imp-mirada__in { width: 100%; max-width: 1200px; margin: 0 auto; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 96px; }
.e-con.imp-mirada__fotos { position: relative; flex: 1 1 420px; width: auto; min-width: 0; padding-bottom: 72px; }
.e-con.imp-mirada__txt { flex: 1 1 380px; width: auto; min-width: 0; gap: 26px; align-items: flex-start; }
.imp-marco { box-sizing: border-box; border: 1px solid var(--imp-trigo); background: var(--imp-superficie); }
.imp-marco img { display: block; width: 100%; object-fit: cover; }
.imp-marco--a { width: 78%; padding: 14px; }
.imp-marco--a img { aspect-ratio: 4 / 5; }
.imp-marco--b { position: absolute; right: 0; bottom: 0; width: 42%; padding: 10px; }
.imp-marco--b img { aspect-ratio: 3 / 4; }
.imp-mirada .imp-mirada__titulo { text-align: left; }
.imp-mirada .imp-mirada__titulo .elementor-heading-title { max-width: none; margin: 0; font-size: 40px; font-weight: 300; letter-spacing: .12em; line-height: 1.3; text-transform: uppercase; color: var(--imp-tinta); }
.imp-mirada__texto p { margin: 0 0 26px; font-size: 18px; font-weight: 300; line-height: 1.8; }
.imp-mirada__texto p:last-child { margin-bottom: 0; }

.e-con.imp-cierre { align-items: center; gap: 26px; padding: 130px 24px; background: var(--imp-tinta); color: var(--imp-lino); text-align: center; }
.imp-cierre .imp-cierre__iso img { display: block; width: 60px; height: auto; margin: 0 auto; }
.imp-cierre .imp-cierre__titulo .elementor-heading-title { margin: 0; font-size: 40px; font-weight: 300; letter-spacing: .14em; line-height: 1.3; text-transform: uppercase; color: var(--imp-lino); }
.imp-cierre .imp-cierre__sub .elementor-heading-title { margin: 0; font-size: 15px; font-weight: 300; letter-spacing: .22em; line-height: 1.7; text-transform: uppercase; color: var(--imp-arena); }
.imp-cierre .imp-btn { margin-top: 14px; }

@media (max-width: 767px) {
	.e-con.imp-intro { gap: 22px; padding: 88px 28px 80px; }
	.imp-intro .imp-intro__iso img { width: 52px; }
	.imp-eyebrow .elementor-heading-title { letter-spacing: .22em; }
	.imp-intro .imp-intro__titulo .elementor-heading-title { font-size: 28px; letter-spacing: .1em; }
	.imp-intro .imp-intro__texto p { font-size: 16px; }
	.imp-sello span { width: 40px; }
	.imp-btn--contorno .elementor-button { padding: 0 32px; }

	.e-con.imp-patrones { padding: 0 20px 88px; }
	.e-con.imp-patrones__in { gap: 32px; }
	.e-con.imp-patrones__cab { flex-direction: column; align-items: stretch; gap: 10px; padding-bottom: 20px; }
	.e-con.imp-patrones__titulos { gap: 10px; }
	.imp-h2 .elementor-heading-title { font-size: 26px; }
	.imp-subtitulo .elementor-heading-title { font-size: 13px; letter-spacing: .18em; }
	.imp-patrones .imp-patrones__todos { display: none; }
	.imp-patrones .imp-patrones__ver .elementor-button { display: flex; width: 100%; }

	.e-con.imp-claims-sec { padding: 52px 20px; }
	.imp-claims { flex-direction: column; gap: 16px; text-align: center; }
	.imp-claims li { font-size: 14px; letter-spacing: .22em; }

	.e-con.imp-cursos-sec { padding: 80px 0 0; }

	.e-con.imp-mirada { padding: 88px 20px; }
	.e-con.imp-mirada__in { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 40px; }
	.e-con.imp-mirada__fotos { flex: 0 0 auto; padding-bottom: 56px; }
	.imp-marco--a { padding: 10px; }
	.imp-marco--b { padding: 8px; }
	.e-con.imp-mirada__txt { gap: 20px; }
	.imp-mirada .imp-mirada__titulo .elementor-heading-title { font-size: 28px; letter-spacing: .1em; }
	.imp-mirada__texto p { font-size: 16px; margin-bottom: 20px; }

	.e-con.imp-cierre { gap: 20px; padding: 84px 24px; }
	.imp-cierre .imp-cierre__iso img { width: 48px; }
	.imp-cierre .imp-cierre__titulo .elementor-heading-title { font-size: 26px; letter-spacing: .12em; line-height: 1.4; }
	.imp-cierre .imp-cierre__sub .elementor-heading-title { font-size: 13px; letter-spacing: .2em; }
	.imp-cierre .imp-btn { margin-top: 10px; }
	.imp-cierre .imp-btn--arena .elementor-button { padding: 0 36px; }
}

/* ---------- Inspiración (Inspiracion.dc.html) ---------- */
.imp-h2--grande .elementor-heading-title { font-size: 38px; letter-spacing: .14em; }
.e-con.imp-insp-fotos { padding: 64px 24px 130px; }
.e-con.imp-insp-fotos__in { width: 100%; max-width: 1200px; margin: 0 auto; flex-direction: row; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.imp-insp-foto img { display: block; width: 100%; height: 520px; object-fit: cover; }

.e-con.imp-manifiesto { padding: 0 24px 130px; }
.e-con.imp-manifiesto__in { width: 100%; max-width: 960px; margin: 0 auto; }
.e-con.imp-manifiesto__fila { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 16px 64px; padding: 44px 0; border-top: 1px solid var(--imp-arena); }
.imp-manifiesto__marca { flex: 0 0 240px; }
.imp-manifiesto__marca .elementor-heading-title { margin: 0; font-size: 22px; font-weight: 300; letter-spacing: .26em; text-transform: uppercase; color: var(--imp-tinta); }
.imp-manifiesto__texto { flex: 1 1 420px; min-width: 0; }
.imp-manifiesto__texto p { margin: 0; font-size: 20px; font-weight: 300; line-height: 1.75; }

.e-con.imp-blog-sec { padding: 0 24px 140px; }
.e-con.imp-blog-sec__in { width: 100%; max-width: 1200px; margin: 0 auto; gap: 56px; }
.e-con.imp-blog-sec__cab { align-items: center; gap: 18px; text-align: center; }

.e-con.imp-cita { align-items: center; gap: 28px; padding: 120px 24px; background: var(--imp-crudo); text-align: center; }
.imp-cita .imp-cita__iso img { display: block; width: 56px; height: auto; margin: 0 auto; }
.imp-cita .imp-cita__texto { max-width: 820px; }
.imp-cita__texto p { margin: 0; font-size: 28px; font-weight: 300; line-height: 1.6; }
.imp-cita__lista { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 36px; margin: 12px 0 0; padding: 0; list-style: none; }
.imp-cita__lista li { margin: 0; font-size: 13px; font-weight: 300; letter-spacing: .22em; text-transform: uppercase; }

.e-con.imp-cierre-claro { align-items: center; gap: 24px; padding: 140px 24px; text-align: center; }
.imp-cierre-claro .imp-btn { margin-top: 12px; }

@media (max-width: 767px) {
	.imp-h2--grande .elementor-heading-title { font-size: 26px; letter-spacing: .12em; }
	.e-con.imp-insp-fotos { padding: 40px 20px 72px; }
	.e-con.imp-insp-fotos__in { grid-template-columns: minmax(0, 1fr); }
	.imp-insp-foto img { height: 340px; }
	.e-con.imp-manifiesto { padding: 0 20px 72px; }
	.e-con.imp-manifiesto__fila { gap: 10px; padding: 28px 0; }
	.imp-manifiesto__marca { flex-basis: 100%; }
	.imp-manifiesto__marca .elementor-heading-title { font-size: 18px; }
	.imp-manifiesto__texto { flex-basis: 100%; }
	.imp-manifiesto__texto p { font-size: 17px; }
	.e-con.imp-blog-sec { padding: 0 20px 88px; }
	.e-con.imp-blog-sec__in { gap: 36px; }
	.e-con.imp-cita { gap: 22px; padding: 72px 24px; }
	.imp-cita__texto p { font-size: 20px; }
	.imp-cita__lista { gap: 10px 24px; }
	.e-con.imp-cierre-claro { gap: 18px; padding: 88px 24px; }
}


/* ---------- Carrito lateral (Carrito.dc.html): panel del widget Menu Cart de Elementor Pro ---------- */
.elementor-menu-cart__container.elementor-lightbox { background: rgba(51, 48, 43, .55); }
.elementor-menu-cart--cart-type-side-cart .elementor-menu-cart__main {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	width: 460px;
	max-width: 100vw;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: var(--imp-lino);
	box-shadow: -20px 0 40px rgba(51, 48, 43, .12);
	font-family: 'Jost', Futura, 'Century Gothic', sans-serif;
	color: var(--imp-tinta);
}
.elementor-menu-cart--cart-type-side-cart .elementor-menu-cart__close-button { position: absolute; top: 20px; right: 18px; z-index: 2; width: 44px; height: 44px; margin: 0; padding: 0; font-size: 20px; }
.elementor-menu-cart__main .elementor-menu-cart__close-button svg { width: 20px; height: 20px; }
.elementor-menu-cart__main .widget_shopping_cart_content { display: flex; flex: 1; flex-direction: column; min-height: 0; }
.elementor-menu-cart__main .imp-mc__cab { flex-shrink: 0; padding: 26px 28px 22px; border-bottom: 1px solid var(--imp-arena); }
.elementor-menu-cart__main .imp-mc__titulo { margin: 0; font-size: 18px; font-weight: 300; letter-spacing: .18em; line-height: 1.3; text-transform: uppercase; color: var(--imp-tinta); }
.elementor-menu-cart__main .imp-mc__titulo span { font-size: 13px; letter-spacing: .1em; }

.elementor-menu-cart__main .elementor-menu-cart__products { flex: 1; min-height: 0; overflow-y: auto; margin: 0; padding: 8px 28px; }
.elementor-menu-cart__main .elementor-menu-cart__product {
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr);
	gap: 16px;
	margin: 0;
	padding: 20px 0;
	border: 0;
	border-bottom: 1px solid var(--imp-crudo);
}
.elementor-menu-cart__main .elementor-menu-cart__product-image { display: block; width: 84px; }
.elementor-menu-cart__main .elementor-menu-cart__product-image img { display: block; width: 84px; height: 104px; object-fit: cover; }
.elementor-menu-cart__main .imp-mc__txt { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.elementor-menu-cart__main .imp-mc__tipo { font-size: 10px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--imp-arcilla-pro); }
.elementor-menu-cart__main .elementor-menu-cart__product-name { grid-column: auto; margin: 0; padding: 0; font-size: 15px; font-weight: 300; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; }
.elementor-menu-cart__main .elementor-menu-cart__product-name a { color: var(--imp-tinta); text-decoration: none; }
.elementor-menu-cart__main .imp-mc__detalle { font-size: 12px; font-weight: 300; }
.elementor-menu-cart__main .imp-mc__fila { display: flex; align-items: center; justify-content: space-between; margin-top: auto; }
.elementor-menu-cart__main .elementor-menu-cart__product-price { grid-column: auto; margin: 0; padding: 0; font-size: 16px; font-weight: 500; color: var(--imp-tinta); }
.elementor-menu-cart__main .elementor-menu-cart__product-remove { position: static; display: block; opacity: 1; overflow: visible; width: auto; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
.elementor-menu-cart__main .elementor-menu-cart__product-remove::before, .elementor-menu-cart__main .elementor-menu-cart__product-remove::after { display: none; }
.elementor-menu-cart__main .elementor-menu-cart__product-remove a.remove_from_cart_button { display: none; }
.elementor-menu-cart__main .elementor-menu-cart__product-remove a.elementor_remove_from_cart_button {
	position: static;
	display: inline-flex;
	align-items: center;
	width: auto;
	height: auto;
	overflow: visible;
	opacity: 1;
	min-height: 32px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--imp-tinta);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .16em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 4px;
}
.elementor-menu-cart__main .elementor-menu-cart__product-remove a.elementor_remove_from_cart_button::before { display: none; }
.elementor-menu-cart__main .elementor-menu-cart__product-remove a.elementor_remove_from_cart_button:hover { color: var(--imp-arcilla-pro); }

.elementor-menu-cart__main .imp-mc__pie { flex-shrink: 0; display: flex; flex-direction: column; gap: 14px; padding: 22px 28px 28px; border-top: 1px solid var(--imp-arena); background: var(--imp-superficie); }
.elementor-menu-cart__main .imp-mc__nota { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 13px; font-weight: 300; }
.elementor-menu-cart__main .imp-mc__nota svg { flex-shrink: 0; color: var(--imp-arcilla-pro); }
.elementor-menu-cart__main .imp-mc__pie .elementor-menu-cart__subtotal { display: flex; align-items: baseline; justify-content: space-between; margin: 0; padding: 0; border: 0; font-size: 24px; font-weight: 400; text-align: left; }
.elementor-menu-cart__main .imp-mc__pie .elementor-menu-cart__subtotal strong { font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.elementor-menu-cart__main .imp-mc__pie .elementor-menu-cart__footer-buttons { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; }
.elementor-menu-cart__main .imp-mc__pie .elementor-menu-cart__footer-buttons .elementor-button {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 0 20px;
	border: 1px solid var(--imp-tinta);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--imp-tinta);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
}
.elementor-menu-cart__main .imp-mc__pie .elementor-menu-cart__footer-buttons .elementor-button--checkout { order: -1; min-height: 54px; border-color: var(--imp-arcilla-btn); background: var(--imp-arcilla-btn); color: var(--imp-lino); letter-spacing: .22em; }
.elementor-menu-cart__main .imp-mc__pie .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover { border-color: var(--imp-arcilla-pro); background: var(--imp-arcilla-pro); color: var(--imp-lino); }
.elementor-menu-cart__main .imp-mc__pie .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover { background: var(--imp-tinta); color: var(--imp-lino); }

.elementor-menu-cart__main .imp-mc__vacio { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; padding: 40px 44px; text-align: center; }
.elementor-menu-cart__main .imp-mc__iso { display: block; width: 64px; height: auto; }
.elementor-menu-cart__main .imp-mc__vacio p { margin: 0; }
.elementor-menu-cart__main .imp-mc__vacio-t { font-size: 22px; font-weight: 300; letter-spacing: .16em; text-transform: uppercase; }
.elementor-menu-cart__main .imp-mc__vacio-d { font-size: 16px; font-weight: 300; line-height: 1.7; }
.elementor-menu-cart__main .imp-mc__vacio .imp-sello { margin: 4px 0; }
.elementor-menu-cart__main .imp-mc__vacio .imp-sello span { width: 40px; }
.elementor-menu-cart__main .imp-mc__vacio-btns { display: flex; flex-direction: column; gap: 10px; width: 100%; }
.elementor-menu-cart__main .imp-mc__btn { display: flex; align-items: center; justify-content: center; min-height: 48px; font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; }
.elementor-menu-cart__main .imp-mc__btn--primario { min-height: 52px; background: var(--imp-arcilla-btn); color: var(--imp-lino); }
.elementor-menu-cart__main .imp-mc__btn--primario:hover { background: var(--imp-arcilla-pro); color: var(--imp-lino); }
.elementor-menu-cart__main .imp-mc__btn--borde { border: 1px solid var(--imp-tinta); color: var(--imp-tinta); }
.elementor-menu-cart__main .imp-mc__btn--borde:hover { background: var(--imp-tinta); color: var(--imp-lino); }

@media (max-width: 767px) {
	.elementor-menu-cart--cart-type-side-cart .elementor-menu-cart__main { width: 100vw; }
	.elementor-menu-cart__main .imp-mc__cab { padding: 22px 20px 18px; }
	.elementor-menu-cart__main .elementor-menu-cart__products { padding: 4px 20px; }
	.elementor-menu-cart__main .elementor-menu-cart__product { grid-template-columns: 72px minmax(0, 1fr); gap: 14px; padding: 16px 0; }
	.elementor-menu-cart__main .elementor-menu-cart__product-image, .elementor-menu-cart__main .elementor-menu-cart__product-image img { width: 72px; }
	.elementor-menu-cart__main .elementor-menu-cart__product-image img { height: 90px; }
	.elementor-menu-cart__main .imp-mc__detalle { display: none; }
	.elementor-menu-cart__main .elementor-menu-cart__product-name { font-size: 14px; letter-spacing: .08em; }
	.elementor-menu-cart__main .elementor-menu-cart__product-price { font-size: 15px; }
	.elementor-menu-cart__main .elementor-menu-cart__product-remove a.elementor_remove_from_cart_button { min-height: 44px; }
	.elementor-menu-cart__main .imp-mc__pie { gap: 10px; padding: 16px 20px 22px; }
	.elementor-menu-cart__main .imp-mc__pie .elementor-menu-cart__subtotal { font-size: 20px; }
	.elementor-menu-cart__main .imp-mc__vacio { padding: 32px 28px; }
}

/* ---------- Archivos de patrones y de cursos ---------- */
.e-con.imp-arch { padding-bottom: 130px; }
.e-con.imp-arch__in { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
@media (max-width: 767px) {
	.e-con.imp-arch { padding-bottom: 72px; }
	.e-con.imp-arch__in { padding: 0 20px; }
}

/* ---------- Header fijo (sticky) siempre ---------- */
.elementor-location-header { position: sticky; top: 0; z-index: 100; }
.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .elementor-location-header { top: 46px; } }
@media (min-width: 768px) {
	/* En la Home el menú va sobre el hero: fijo y transparente arriba, y con fondo al bajar */
	.home .elementor-location-header { position: fixed; left: 0; right: 0; }
	.home .e-con.imp-cab { transition: background-color .25s, border-color .25s; }
	.home.imp-bajo .e-con.imp-cab { background: var(--imp-lino); border-bottom: 1px solid var(--imp-crudo); }
}
@media (prefers-reduced-motion: reduce) { .home .e-con.imp-cab { transition: none; } }

/* ---------- El footer siempre queda abajo de todo, aunque la página tenga poco contenido ---------- */
body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
body > .elementor-location-footer { margin-top: auto; }


/* ---------- Cruz de cerrar del carrito: chica y fina ---------- */
.elementor-menu-cart--cart-type-side-cart .elementor-menu-cart__close-button { top: 22px; right: 20px; width: 36px; height: 36px; }
.elementor-menu-cart__main .elementor-menu-cart__close-button::before,
.elementor-menu-cart__main .elementor-menu-cart__close-button::after { left: 50%; width: 16px; height: 1.3px; margin-left: -8px; background: var(--imp-tinta); }
.elementor-menu-cart__main .elementor-menu-cart__close-button:hover::before,
.elementor-menu-cart__main .elementor-menu-cart__close-button:hover::after { background: var(--imp-arcilla-pro); }

/* ---------- Footer: letra fina y más clara ---------- */
.imp-pie, .imp-pie p, .imp-pie a, .imp-pie li { font-weight: 300; }
.imp-pie .elementor-nav-menu--main a.elementor-item,
.imp-pie__nav .elementor-widget-text-editor a,
.imp-pie__marca .elementor-widget-text-editor p { font-weight: 300; color: #5A544B; }
.imp-pie .elementor-nav-menu--main a.elementor-item:hover,
.imp-pie__nav .elementor-widget-text-editor a:hover { color: var(--imp-arcilla-pro); }
.imp-pie .imp-pie__eyebrow .elementor-heading-title { font-weight: 400; }
.imp-pie__legal p, .imp-pie__legal a { font-weight: 300; color: #5A544B; }


/* ---------- Bloques fijos (precio, resumen) debajo del header fijo ---------- */
@media (min-width: 768px) {
	html body .e-con.imp-curso__lado { top: calc(var(--imp-cab-alto, 118px) + 24px); }
	html body .e-con.imp-ficha__info { top: var(--imp-cab-alto, 118px); }
	html body.woocommerce-checkout form.checkout > .imp-resumen { top: calc(var(--imp-cab-alto, 118px) + 24px); }
	html body .imp-galeria__marcas { top: max(380px, calc(var(--imp-cab-alto, 118px) + 200px)); }
}

/* "$ X con transferencia" en el carrito lateral: a la derecha, justo debajo del subtotal */
.elementor-menu-cart__main .imp-mc__pie .imp-mc__transf { align-self: flex-end; margin: -8px 0 0; text-align: right; font-size: 13px; font-weight: 300; }
.elementor-menu-cart__main .imp-mc__pie .imp-mc__transf .imp-transf__monto { font-weight: 500; }


/* El botón de WhatsApp queda por debajo del carrito lateral y del buscador */
.ht-ctc, #ht-ctc-chat, .ht_ctc_chat_style { z-index: 50 !important; }
.elementor-menu-cart--cart-type-side-cart .elementor-menu-cart__container { z-index: 9999; }

/* Íconos del header: sin recuadro de foco al hacerles clic; el teclado se nota con el color */
.imp-cab .imp-ico,
.imp-cab .imp-ico:focus,
.imp-cab .elementor-menu-cart__toggle_button,
.imp-cab .elementor-menu-cart__toggle_button:focus,
.imp-cab .elementor-menu-toggle,
.imp-cab .elementor-menu-toggle:focus { outline: none !important; box-shadow: none !important; }
.imp-cab .imp-ico:focus-visible,
.imp-cab .elementor-menu-cart__toggle_button:focus-visible,
.imp-cab .elementor-menu-toggle:focus-visible { color: var(--imp-arcilla-pro); }

/* Cantidad del carrito: terracota de la marca (el widget la pintaba de rojo) */
.imp-cab .elementor-widget-woocommerce-menu-cart { --items-indicator-background-color: var(--imp-arcilla-btn); --items-indicator-text-color: var(--imp-lino); }
.imp-cab .elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon .elementor-button-icon-qty,
.imp-cab .elementor-menu-cart__toggle_button .elementor-button-icon-qty[data-counter] { background: var(--imp-arcilla-btn) !important; color: var(--imp-lino) !important; border: 0; }

/* ---------- Seguridad: botones con fondo al pasar el mouse siempre llevan letra clara ----------
   El color de enlace del tema (arcilla) tiene mucha fuerza y a veces pisaba la letra; acá se fija con prioridad alta. */
html body .imp-buscador__todos:hover,
html body .imp-next:hover,
html body #place_order:hover,
html body .imp-cv__btn--primario:hover,
html body .imp-comprar__btn:hover,
html body .single_add_to_cart_button:hover,
html body .imp-barra-compra__btn:hover,
html body .imp-gr__wa:hover,
html body .imp-gr__cuenta:hover,
html body a.imp-boton:hover,
html body .imp-card-curso__boton:hover,
html body .imp-seguir:hover .imp-seguir__boton,
html body .imp-curso__enlace:hover .imp-curso__boton,
html body .woocommerce-ResetPassword button.button:hover,
html body .imp-acceso__boton--primario:hover,
html body .imp-mc__btn--primario:hover,
html body .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover,
html body .imp-btn--primario .elementor-button:hover,
html body .imp-btn--contorno .elementor-button:hover { color: var(--imp-lino); }
html body .imp-cv__btn-resena:hover,
html body .imp-cv__mas-resenas:hover,
html body .imp-gr__copiar:hover,
html body a.imp-boton--linea:hover,
html body .imp-acceso__boton--borde:hover,
html body .imp-mc__btn--borde:hover,
html body .imp-cupon__aplicar:hover,
html body .imp-cursos__flecha:hover,
html body .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover { color: var(--imp-lino); }
html body .imp-btn--arena .elementor-button:hover { color: var(--imp-tinta); }
