/* ==========================================================================
   PF People First — encabezado y pie hechos en Elementor (Theme Builder:
   "PF – Encabezado" y "PF – Pie de página"). Mismas medidas que el diseño;
   lo que se cambie en el panel de Elementor tiene prioridad sobre esto.
   Usa las variables de pf.css (--d, --t16, --pf-morado, etc.).
   ========================================================================== */

/* ---------- Encabezado ---------- */
.elementor-location-header { position: sticky; top: 0; z-index: 50; background: #fff; }
.admin-bar .elementor-location-header { top: 32px; }
.e-con.pf-eh, .e-con.pf-eh-barra { padding: 0; gap: 0; }
.e-con.pf-eh-franja { --min-height: max(14px, calc(33 * var(--d))); min-height: max(14px, calc(33 * var(--d))) !important; height: max(14px, calc(33 * var(--d))); padding: 0; }
.e-con.pf-eh-barra { background: #fff; }
.e-con.pf-eh-inner {
	display: grid !important; grid-template-columns: 1fr auto 1fr; align-items: center;
	width: 100%; max-width: calc(1344 * var(--d) + 2 * var(--gutter)); margin-inline: auto; box-sizing: border-box;
	min-height: max(56px, calc(68 * var(--d))); padding: 0 var(--gutter); gap: 0;
}
.pf-eh-inner > .elementor-element { width: auto !important; max-width: none; }
.pf-eh-logo { justify-self: start; }
.pf-eh-logo img { display: block; width: max(120px, calc(185.4 * var(--d))); height: auto; }
.pf-eh-nav { justify-self: center; }
.pf-eh-nav .elementor-nav-menu--main .elementor-item {
	font-family: var(--pf-fuente); font-size: var(--t16); font-weight: 700; color: var(--pf-tinta);
	padding: 6px 0 !important; margin: 0 !important;
}
.pf-eh-nav .elementor-nav-menu--main > .elementor-nav-menu { gap: max(16px, calc(20.5 * var(--d))); }
.pf-eh-nav .elementor-nav-menu--main .elementor-item:hover,
.pf-eh-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--pf-tinta); }
.pf-eh-nav .elementor-nav-menu--main .elementor-item::after { height: 2px; bottom: 0; }
.pf-eh-nav .sub-arrow { padding-left: 6px; font-size: 10px; }
.pf-eh-nav .elementor-nav-menu--main .elementor-nav-menu--dropdown {
	min-width: 250px !important; padding: 10px 0; background: #fff; border: 1px solid #ececec;
	border-radius: 14px; box-shadow: 0 12px 28px rgba(0, 0, 0, .12); overflow: hidden;
}
.pf-eh-nav .elementor-nav-menu--dropdown a.elementor-sub-item {
	font-family: var(--pf-fuente); font-size: var(--t15); font-weight: 600; color: var(--pf-tinta); padding: 10px 22px; border: 0;
}
.pf-eh-nav .elementor-nav-menu--dropdown a.elementor-sub-item:hover,
.pf-eh-nav .elementor-nav-menu--dropdown a.elementor-sub-item:focus { background: #f6eefa; color: var(--pf-morado); }

.e-con.pf-eh-acciones {
	justify-self: end; flex-direction: row !important; align-items: center;
	gap: max(12px, calc(20 * var(--d))); padding: 0; position: relative; width: auto !important;
}
.pf-eh-acciones > .elementor-element, .pf-eh-extra > .elementor-element { width: auto !important; }
.pf-eh-redes .elementor-social-icons-wrapper { display: flex; gap: max(8px, calc(11.5 * var(--d))); }
.pf-eh-redes .elementor-grid-item { margin: 0 !important; }
.pf-eh-redes .elementor-social-icon {
	display: grid; place-items: center; box-sizing: border-box; padding: 0;
	width: max(28px, calc(32.5 * var(--d))); height: max(28px, calc(32.5 * var(--d)));
	font-size: max(13px, calc(16 * var(--d))); border: 1px solid var(--pf-tinta); background: transparent;
}
.pf-eh-redes .elementor-social-icon i { color: var(--pf-tinta); }
.pf-eh-redes .elementor-social-icon svg { fill: var(--pf-tinta); }
.pf-eh-redes .elementor-social-icon:hover { background: var(--pf-tinta); }
.pf-eh-redes .elementor-social-icon:hover i { color: #fff; }
.pf-eh-redes .elementor-social-icon:hover svg { fill: #fff; }

.e-con.pf-eh-extra { flex-direction: row !important; align-items: center; gap: max(10px, calc(14 * var(--d))); padding: 0; width: auto !important; }
.pf-eh-lupa .elementor-icon { font-size: max(18px, calc(22 * var(--d))); color: var(--pf-morado); }
.pf-eh-lupa .elementor-icon svg { fill: var(--pf-morado); width: 1em; height: 1em; }
.pf-eh-lupa--completa .elementor-search-form__toggle {
	--e-search-form-toggle-size: max(30px, calc(36 * var(--d)));
	--e-search-form-toggle-background-color: transparent;
	--e-search-form-toggle-color: var(--pf-morado);
	--e-search-form-toggle-icon-size: max(18px, calc(22 * var(--d)));
}
.pf-eh-carrito .elementor-menu-cart__toggle .elementor-button { background: transparent; padding: 4px; color: var(--pf-morado); border: 0; }
.pf-eh-carrito .elementor-menu-cart__toggle .elementor-button-text { display: none; }
.pf-eh-carrito .elementor-menu-cart__toggle .elementor-button-icon { font-size: max(20px, calc(24 * var(--d))); color: var(--pf-morado); }
.pf-eh-carrito .elementor-menu-cart__toggle .elementor-button-icon svg { fill: var(--pf-morado); }
.pf-eh-carrito .elementor-button-icon-qty[data-counter] {
	background: var(--pf-naranja); color: #fff; font-family: var(--pf-fuente); font-size: 11px; font-weight: 700;
	min-width: 18px; height: 18px; line-height: 18px; top: -.6em; right: -.7em;
}

/* Desde 1440 px: el menú corrido como en el diseño y la lupa con el carrito por fuera del contenedor. */
@media (min-width: 1440px) {
	.pf-eh-nav { transform: translateX(calc(82 * var(--d))); position: relative; z-index: 2; }
	.e-con.pf-eh-extra { position: absolute; left: calc(100% + max(14px, calc(26 * var(--d)))); top: 50%; transform: translateY(-50%); }
}

/* Tablet y celular: logo a la izquierda; buscador, carrito y menú a la derecha. */
@media (max-width: 1024px) {
	.e-con.pf-eh-inner { grid-template-columns: 1fr auto auto; column-gap: 8px; min-height: 64px; }
	.pf-eh-nav { order: 3; justify-self: end; }
	.e-con.pf-eh-acciones { order: 2; }
	.pf-eh-redes { display: none; }
	.pf-eh-nav .elementor-menu-toggle { color: var(--pf-morado); font-size: 26px; background: transparent; }
	.pf-eh-nav .elementor-menu-toggle svg { fill: var(--pf-morado); }
	.pf-eh-nav nav.elementor-nav-menu--dropdown { background: #fff; box-shadow: 0 16px 24px rgba(0, 0, 0, .08); }
	.pf-eh-nav nav.elementor-nav-menu--dropdown a {
		justify-content: center; font-family: var(--pf-fuente); font-weight: 700; font-size: 17px; color: var(--pf-tinta); padding: 12px 16px;
	}
	.pf-eh-nav nav.elementor-nav-menu--dropdown a.elementor-sub-item { font-weight: 600; font-size: 15px; color: #444; }
	.pf-eh-nav nav.elementor-nav-menu--dropdown a:hover,
	.pf-eh-nav nav.elementor-nav-menu--dropdown a.elementor-item-active { background: #f6eefa; color: var(--pf-morado); }
}
@media (max-width: 480px) { .pf-eh-logo img { width: 112px; } }

/* ---------- Popup del buscador (requiere la licencia de Pro) ---------- */
.pf-pop-buscar .dialog-widget-content {
	width: 100% !important; max-width: none !important; border-radius: 0 0 max(20px, calc(32 * var(--d))) max(20px, calc(32 * var(--d)));
	box-shadow: 0 12px 40px rgba(0, 0, 0, .15);
}
.pf-pop-buscar .dialog-message { padding: 0; width: 100%; overflow: visible !important; }
.pf-pop-buscar .dialog-widget-content { overflow: visible !important; }
.e-con.pf-pop-buscar__caja {
	width: 100%; max-width: calc(900 * var(--d) + 2 * var(--gutter)); margin-inline: auto;
	padding: max(28px, calc(40 * var(--d))) var(--gutter) !important; box-sizing: border-box;
}
.e-con.pf-pop-buscar__caja { flex: 1 1 100%; width: 100% !important; }
@media (max-width: 1024px) { .e-con.pf-pop-buscar__caja { max-width: none; padding-top: 56px !important; } }
.e-con.pf-sec .pf-buscar-en-vivo { width: 100% !important; }
.pf-buscar-en-vivo .e-search-form { gap: 12px; align-items: stretch; }
.pf-buscar-en-vivo .e-search-input-wrapper { flex: 1; }
.pf-buscar-en-vivo input.e-search-input {
	width: 100%; height: max(48px, calc(56 * var(--d))) !important; border: 1.5px solid var(--pf-morado) !important; border-radius: 999px !important;
	padding: 0 24px !important; font-family: var(--pf-fuente); font-size: var(--t16); color: #222; background: #fff;
}
.pf-buscar-en-vivo input.e-search-input:focus { outline: none; box-shadow: 0 0 0 3px rgba(121, 24, 164, .15); }
.pf-buscar-en-vivo .e-search-submit, .pf-buscar-en-vivo button[type=submit] {
	height: max(48px, calc(56 * var(--d))) !important; padding: 0 max(24px, calc(36 * var(--d))) !important;
	background: var(--pf-morado) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important;
	font-family: var(--pf-fuente); font-size: var(--t16); font-weight: 700; cursor: pointer;
}
.pf-buscar-en-vivo .e-search-submit:hover, .pf-buscar-en-vivo button[type=submit]:hover { background: var(--pf-teal) !important; }
.pf-buscar-en-vivo .e-search-results-container {
	border: 1px solid #e6e0ef; border-radius: 18px; box-shadow: 0 12px 30px rgba(0, 0, 0, .12); overflow: hidden; margin-top: 8px;
}
.pf-buscar-en-vivo .e-loop-item + .e-loop-item { border-top: 1px solid #f0ebf5; }
.e-con.pf-res { flex-direction: row !important; align-items: center; gap: 14px !important; padding: 10px 16px !important; }
.e-con.pf-res:hover { background: #f8f2fb; }
.e-con.pf-sec .elementor-widget.pf-res__img { width: 56px !important; flex: none; }
.pf-res__img img { display: block; width: 56px; height: 56px; object-fit: contain; }
.e-con.pf-res__texto { flex: 1; gap: 2px !important; }
.pf-res__titulo .elementor-heading-title { font-family: var(--pf-fuente); font-size: var(--t16); font-weight: 700; color: var(--pf-morado); line-height: 1.25; }
.pf-res__titulo a { color: inherit; }
.pf-res__sub .elementor-heading-title { font-family: var(--pf-fuente); font-size: 13px; color: #555; font-weight: 400; }
@media (max-width: 600px) {
	.pf-buscar-en-vivo .e-search-submit, .pf-buscar-en-vivo button[type=submit] { padding: 0 18px !important; }
}

/* ---------- Pie ---------- */
.e-con.pf-ef { padding: calc(96 * var(--d)) 0 calc(18 * var(--d)); gap: 0; }
.e-con.pf-ef-grid, .e-con.pf-ef-bajo {
	width: 100%; max-width: calc(1412 * var(--d) + 2 * var(--gutter)); margin-inline: auto; padding: 0 var(--gutter); box-sizing: border-box;
}
.e-con.pf-ef-grid {
	display: grid !important; grid-template-columns: calc(339 * var(--d)) calc(219 * var(--d)) calc(312 * var(--d)) 1fr; align-items: start; gap: 0;
}
.e-con.pf-ef-bajo { gap: 0; }
/* En el diseño el pie está corrido 37 px a la derecha del centro. */
@media (min-width: 1200px) { .e-con.pf-ef-grid, .e-con.pf-ef-bajo { position: relative; left: calc(37 * var(--d)); } }
.e-con.pf-ef-col { padding: 0; gap: 0; width: auto !important; }
.pf-ef-col > .elementor-element { width: 100%; }
.pf-ef-titulo .elementor-heading-title { font-family: var(--pf-fuente); font-size: var(--t20); font-weight: 700; color: var(--pf-tinta); line-height: 1.2; }
.pf-ef-titulo { margin-bottom: calc(10 * var(--d)) !important; }
.pf-ef-logo { margin-left: calc(-21 * var(--d)); }
.pf-ef-logo img { width: max(170px, calc(265.3 * var(--d))); display: block; }
.pf-ef-lema { margin: calc(22 * var(--d)) 0 calc(31 * var(--d)) !important; }
.pf-ef-lema p, .pf-ef-copy p, .pf-ef-news__titulo p { margin: 0; font-family: var(--pf-fuente); font-size: var(--t18); color: var(--pf-tinta); }
.pf-ef-redes .elementor-social-icons-wrapper { display: flex; gap: max(10px, calc(15.3 * var(--d))); justify-content: flex-start; }
.pf-ef-redes .elementor-grid-item { margin: 0 !important; }
.pf-ef-redes .elementor-social-icon {
	display: grid; place-items: center; padding: 0; background: var(--pf-tinta);
	width: max(34px, calc(43 * var(--d))); height: max(34px, calc(43 * var(--d))); font-size: max(15px, calc(20 * var(--d)));
}
.pf-ef-redes .elementor-social-icon i { color: #fff; }
.pf-ef-redes .elementor-social-icon svg { fill: #fff; }
.pf-ef-redes .elementor-social-icon:hover { background: var(--pf-morado); }
.pf-ef-lista { margin-top: calc(20 * var(--d)) !important; }
.pf-ef-lista .elementor-icon-list-items { display: grid; gap: calc(13 * var(--d)); }
.pf-ef-lista .elementor-icon-list-item { padding: 0 !important; margin: 0 !important; }
.pf-ef-lista .elementor-icon-list-icon { display: none; }
.pf-ef-lista .elementor-icon-list-text { font-family: var(--pf-fuente); font-size: var(--t18); color: var(--pf-tinta); padding: 0 !important; line-height: 1.2; }
.pf-ef-lista a:hover .elementor-icon-list-text { color: var(--pf-morado); text-decoration: underline; }

.e-con.pf-ef-news { align-items: center; text-align: center; max-width: max(440px, calc(542 * var(--d))); }
.pf-ef-news__titulo { margin: calc(19 * var(--d)) 0 calc(18 * var(--d)) !important; }
.pf-ef-form .elementor-form-fields-wrapper { justify-content: center; margin: 0 !important; row-gap: 0; }
.pf-ef-form .elementor-field-group { padding: 0 !important; margin: 0 !important; }
.pf-ef-form .elementor-field-type-email { flex: 0 1 max(250px, calc(326.3 * var(--d))); max-width: none; margin-right: calc(31 * var(--d)) !important; }
.pf-ef-form .elementor-field-type-email input {
	height: max(46px, calc(59.8 * var(--d))); border: 1px solid var(--pf-tinta); border-radius: 999px; background: #fff; text-align: center;
	font-family: var(--pf-fuente); font-size: var(--t18); color: var(--pf-tinta); padding: 0 calc(24 * var(--d));
}
.pf-ef-form .elementor-field-type-email input::placeholder { color: var(--pf-tinta); opacity: 1; }
.pf-ef-form .e-form__buttons { order: 2; flex: 0 0 auto; width: auto !important; max-width: none; }
.pf-ef-form .e-form__buttons .elementor-button {
	min-width: max(130px, calc(184.6 * var(--d))); min-height: max(46px, calc(59.8 * var(--d))); border-radius: 999px; background: var(--pf-morado);
	font-family: var(--pf-fuente); font-size: var(--t18); font-weight: 700; color: var(--pf-blanco);
}
.pf-ef-form .e-form__buttons .elementor-button:hover { background: var(--pf-morado-osc); }
.pf-ef-form .elementor-field-type-acceptance { order: 3; flex-basis: 100%; justify-content: center; margin-top: calc(20 * var(--d)) !important; }
.pf-ef-form .elementor-field-option label { font-family: var(--pf-fuente); font-size: var(--t18); color: var(--pf-tinta); }
.pf-ef-form .elementor-field-option label a { color: var(--pf-tinta); font-weight: 700; }
.pf-ef-form .elementor-message { font-family: var(--pf-fuente); font-size: var(--t16); }
.pf-ef-linea { margin-top: calc(95 * var(--d)) !important; }
.pf-ef-linea .elementor-divider { padding: 0 0 calc(28 * var(--d)); }

@media (max-width: 1199px) {
	.e-con.pf-ef-grid { grid-template-columns: 1.1fr .8fr 1fr; row-gap: 32px; }
	.e-con.pf-ef-news { grid-column: 1 / -1; justify-self: start; align-items: flex-start; text-align: left; max-width: 560px; }
	.pf-ef-form .elementor-form-fields-wrapper, .pf-ef-form .elementor-field-type-acceptance { justify-content: flex-start; }
}
@media (max-width: 767px) {
	.e-con.pf-ef { padding: 44px 0 20px; }
	.e-con.pf-ef-grid { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
	.e-con.pf-ef-marca { grid-column: 1 / -1; }
	.pf-ef-logo { margin-left: -12px; }
	.pf-ef-form .elementor-field-type-email { flex-basis: 100%; margin-right: 0 !important; margin-bottom: 10px !important; }
	.pf-ef-form .e-form__buttons { flex-basis: 100%; }
	.pf-ef-form .e-form__buttons .elementor-button { width: 100%; }
	.pf-ef-linea { margin-top: 32px !important; }
}
@media (max-width: 480px) { .e-con.pf-ef-grid { grid-template-columns: 1fr; } }

/* ---------- Ficha de producto, tienda y blog (Maquetador de temas) ----------
 * Los contenedores llevan las mismas clases que las plantillas PHP (pf.css). Acá solo se
 * anulan los valores por defecto de Elementor que pisan esas medidas. */

/* Estos contenedores se comportan como bloques comunes, igual que el HTML original. */
.e-con.pf-ficha, .e-con.pf-ficha__info, .e-con.pf-relacionados, .e-con.pf-explora, .e-con.pf-tienda,
.e-con.pf-articulo, .e-con.pf-interesar, .e-con.pf-blog-item__texto, .e-con.pf-tb-libre,
.e-con.pf-tb-comentarios, .e-con.pf-blog-lista { display: block; }
.e-con.pf-ficha__grid, .e-con.pf-tienda__layout, .e-con.pf-blog-item, .e-con.pf-banner-titulo { display: grid !important; }

/* Anchos máximos de cada sección (Elementor pone 100% a los contenedores principales). */
:is(.elementor-section-wrap, [data-elementor-id]) > .e-con.pf-wrap { max-width: calc(1344 * var(--d) + 2 * var(--gutter)); }
:is(.elementor-section-wrap, [data-elementor-id]) > .e-con.pf-wrap--1404 { max-width: calc(1404 * var(--d) + 2 * var(--gutter)); }
:is(.elementor-section-wrap, [data-elementor-id]) > .e-con.pf-relacionados { max-width: calc(1435 * var(--d) + 2 * var(--gutter)); }
:is(.elementor-section-wrap, [data-elementor-id]) > .e-con.pf-explora { max-width: calc(1626 * var(--d) + 2 * var(--gutter)); }
:is(.elementor-section-wrap, [data-elementor-id]) > .e-con:is(.pf-blog-lista, .pf-articulo, .pf-interesar) { max-width: calc(1315 * var(--d) + 2 * var(--gutter)); }

/* Títulos y textos: el widget toma la tipografía de su clase (pf-titulo, pf-ficha__titulo…). */
.elementor-widget.pf-tb-texto .elementor-heading-title {
	font: inherit; color: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; text-align: inherit; margin: 0;
}
.elementor-widget.pf-tb-texto .elementor-heading-title a { color: inherit; text-decoration: none; }

/* Márgenes de los widgets (Elementor los pone en 0). */
.e-con .elementor-widget.elementor-widget.pf-titulo { margin: 0 0 calc(40 * var(--d)); }
.e-con .elementor-widget.elementor-widget.pf-bajada { margin: calc(-28 * var(--d)) 0 calc(24 * var(--d)); }
.e-con.pf-relacionados .elementor-widget.elementor-widget.pf-titulo { margin-bottom: calc(14 * var(--d)); }
.e-con.pf-relacionados .elementor-widget.elementor-widget.pf-bajada { margin: 0 0 calc(31 * var(--d)); }
.e-con.pf-explora .elementor-widget.elementor-widget.pf-titulo { margin-bottom: calc(44 * var(--d)); }
.e-con.pf-interesar .elementor-widget.elementor-widget.pf-titulo { margin-bottom: calc(34 * var(--d)); }
.e-con.pf-tienda .elementor-widget.elementor-widget.pf-titulo { margin-bottom: calc(66 * var(--d)); }
.e-con .elementor-widget.elementor-widget.pf-ficha__sub { margin: calc(14 * var(--d)) 0 0; }
.e-con .elementor-widget.elementor-widget.pf-articulo__titulo { margin: calc(20 * var(--d)) 0 calc(14 * var(--d)) calc(8 * var(--d)); }

/* Banner morado del blog */
.pf-banner-titulo .elementor-heading-title { color: #fff; font-size: var(--t36); font-weight: 700; line-height: 1.2; margin: 0; }
.e-con.pf-banner-titulo .elementor-widget-text-editor { color: #fff; font-size: var(--t16); font-weight: 700; text-align: center; }

/* Tarjeta del listado del blog */
.pf-blog-lista .elementor-loop-container { gap: calc(32 * var(--d)) !important; }
.e-con .elementor-widget.pf-blog-item__img { overflow: hidden; border-radius: max(10px, calc(14 * var(--d))); }
.pf-blog-item__img a { display: block; }
.pf-blog-item__img img { display: block; width: 100%; aspect-ratio: 2 / 1; object-fit: cover; }
.e-con .elementor-widget.elementor-widget.pf-blog-item__extracto { font-size: var(--t18); line-height: 1.2; margin: calc(14 * var(--d)) 0 calc(38 * var(--d)); }
.pf-blog-item__extracto p { margin: 0 !important; }
.e-con .elementor-widget.pf-boton.pf-blog-item__btn, .pf-blog-item__texto .elementor-widget-button { text-align: center; }
.e-con.pf-sec .elementor-widget.pf-articulo__titulo { width: auto; }
