/* ==========================================================================
   Fumagalli Fine Jewelry — estilos del sitio
   --------------------------------------------------------------------------
   Cómo está pensado este archivo:
   · Los colores y las tipografías salen del kit global de Elementor
     (Ajustes del sitio). Si cambias un color global allí, cambia aquí.
   · Cada bloque se engancha a una clase "fj-…" puesta en el contenedor o
     widget (pestaña Avanzado › Clases CSS). Los selectores son de poca
     especificidad y sin !important: cualquier ajuste que hagas en la pestaña
     Estilo de un widget gana sobre esta hoja.
   ========================================================================== */

:root {
	--fj-ink: var(--e-global-color-primary, #1F1814);
	--fj-taupe: var(--e-global-color-secondary, #8A7A6B);
	--fj-text: var(--e-global-color-text, #3D332C);
	--fj-gold: var(--e-global-color-accent, #B8965A);
	--fj-bg: var(--e-global-color-fjporcelain, #FAF7F2);
	--fj-paper: var(--e-global-color-fjpaper, #F2EBE1);
	--fj-line: var(--e-global-color-fjline, #E2D8CA);
	--fj-gold-soft: var(--e-global-color-fjgoldsoft, #E2C28F);
	--fj-cream: var(--e-global-color-fjcream, #F6EFE4);
	--fj-emerald: var(--e-global-color-fjemerald, #0F5B45);
	--fj-espresso: var(--e-global-color-fjespresso, #2A211B);
	--fj-serif: var(--e-global-typography-primary-font-family, "Cormorant Garamond"), "Cormorant Garamond", Georgia, serif;
	--fj-sans: var(--e-global-typography-text-font-family, "Jost"), "Jost", "Helvetica Neue", Arial, sans-serif;
	--fj-header-h: 118px;
	--fj-ease: cubic-bezier(.2, .7, .2, 1);
}

@media (max-width: 1024px) { :root { --fj-header-h: 92px; } }
@media (max-width: 767px)  { :root { --fj-header-h: 68px; } }

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-variant-numeric: lining-nums; }
::selection { background: var(--fj-gold-soft); color: var(--fj-ink); }
:focus-visible { outline: 2px solid var(--fj-gold); outline-offset: 3px; }

/* --------------------------------------------------------------------------
   Textos comunes
   -------------------------------------------------------------------------- */
.elementor .fj-eyebrow .elementor-heading-title {
	font-family: var(--fj-sans);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .24em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--fj-taupe);
}
.elementor .fj-eyebrow--line .elementor-heading-title { display: inline-flex; align-items: center; gap: 16px; }
.elementor .fj-eyebrow--line .elementor-heading-title::after { content: ""; width: 56px; height: 1px; background: currentColor; opacity: .7; }

.elementor .fj-title .elementor-heading-title { text-wrap: balance; }
.elementor .fj-head > .fj-head__titles { flex: 1 1 0%; width: auto; min-width: 0; }
.elementor .fj-head > .elementor-widget-button { flex: none; width: auto; }
.elementor .fj-title--light .elementor-heading-title { color: var(--fj-cream); }
.elementor .fj-text--light { color: rgba(246, 239, 228, .82); }
.elementor .fj-center-text { max-width: 56ch; text-align: center; }
.elementor .fj-section--dark .fj-eyebrow .elementor-heading-title { color: var(--fj-gold-soft); }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   Botones (el botón base se define en el kit global)
   -------------------------------------------------------------------------- */
.elementor-button { transition: background-color .3s var(--fj-ease), color .3s var(--fj-ease), border-color .3s var(--fj-ease); }

.elementor .fj-btn--light .elementor-button {
	background-color: transparent;
	color: var(--fj-cream);
	border: 1px solid rgba(246, 239, 228, .75);
}
.elementor .fj-btn--light .elementor-button:hover,
.elementor .fj-btn--light .elementor-button:focus { background-color: var(--fj-cream); border-color: var(--fj-cream); color: var(--fj-ink); }

.elementor .fj-btn--ghost .elementor-button {
	background-color: transparent;
	color: var(--fj-ink);
	border: 1px solid var(--fj-ink);
}
.elementor .fj-btn--ghost .elementor-button:hover,
.elementor .fj-btn--ghost .elementor-button:focus { background-color: var(--fj-ink); color: var(--fj-cream); }

.elementor .fj-btn--link .elementor-button {
	padding: 0 0 6px;
	white-space: nowrap;
	background-color: transparent;
	color: var(--fj-ink);
	border-bottom: 1px solid var(--fj-ink);
}
.elementor .fj-btn--link .elementor-button:hover,
.elementor .fj-btn--link .elementor-button:focus { background-color: transparent; color: var(--fj-gold); border-color: var(--fj-gold); }

.elementor .fj-btn--full .elementor-button { width: 100%; }

.elementor .fj-btn--arrow .elementor-button-text::after {
	content: "";
	display: inline-block;
	width: 22px;
	height: 9px;
	margin-left: 18px;
	background: linear-gradient(currentColor, currentColor) left 4px / 100% 1px no-repeat;
	-webkit-mask: none;
	position: relative;
	transition: transform .3s var(--fj-ease);
}
.elementor .fj-btn--arrow .elementor-button-text { display: inline-flex; align-items: center; }
.elementor .fj-btn--arrow .elementor-button-text::before {
	content: "";
	order: 2;
	width: 7px;
	height: 7px;
	margin-left: -7px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	transition: transform .3s var(--fj-ease);
}
.elementor .fj-btn--arrow .elementor-button:hover .elementor-button-text::after { transform: translateX(5px); }
.elementor .fj-btn--arrow .elementor-button:hover .elementor-button-text::before { transform: translateX(5px) rotate(45deg); }

/* --------------------------------------------------------------------------
   Cabecera
   -------------------------------------------------------------------------- */
.elementor-location-header { position: sticky; top: 0; z-index: 90; }
.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .elementor-location-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .elementor-location-header { top: 0; } }

.elementor .fj-header {
	min-height: var(--fj-header-h);
	background-color: var(--fj-espresso);
	transition: background-color .4s var(--fj-ease), min-height .4s var(--fj-ease);
}

/* En el inicio la cabecera va transparente sobre el banner hasta que se hace scroll. */
body.home .elementor-location-header { margin-bottom: calc(-1 * var(--fj-header-h)); }
body.home .fj-header { background-color: transparent; background-image: linear-gradient(rgba(24, 17, 12, .5), rgba(24, 17, 12, 0)); }
body.home.is-fj-scrolled .fj-header { background-color: var(--fj-espresso); background-image: none; }

.elementor .fj-logo img { width: auto; max-width: none; }

.elementor .fj-nav .elementor-nav-menu--main .elementor-nav-menu { flex-wrap: nowrap; }
.elementor .fj-nav .elementor-nav-menu--main .elementor-item {
	white-space: nowrap;
	font-family: var(--fj-serif);
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--fj-cream);
	fill: var(--fj-cream);
}
.elementor .fj-nav .elementor-nav-menu--main .elementor-item:hover,
.elementor .fj-nav .elementor-nav-menu--main .elementor-item:focus,
.elementor .fj-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--fj-gold-soft); fill: var(--fj-gold-soft); }
.elementor .fj-nav .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item::after { background-color: var(--fj-gold-soft); height: 1px; bottom: 4px; }
.elementor .fj-nav .elementor-nav-menu--main .sub-arrow { display: none; }

/* Submenú de escritorio */
.elementor .fj-nav .elementor-nav-menu--main .elementor-nav-menu--dropdown {
	min-width: 220px;
	margin-top: 14px;
	padding: 14px 0;
	background-color: var(--fj-bg);
	border: 1px solid var(--fj-line);
	box-shadow: 0 24px 48px -24px rgba(31, 24, 20, .35);
}
.elementor .fj-nav .elementor-nav-menu--main .elementor-nav-menu--dropdown a {
	padding: 10px 26px;
	font-family: var(--fj-sans);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--fj-ink);
	background-color: transparent;
}
.elementor .fj-nav .elementor-nav-menu--main .elementor-nav-menu--dropdown a:hover,
.elementor .fj-nav .elementor-nav-menu--main .elementor-nav-menu--dropdown a:focus { color: var(--fj-gold); background-color: transparent; }

/* Menú desplegable en tablet y móvil */
.elementor .fj-nav .elementor-menu-toggle { padding: 8px; margin-left: -8px; background-color: transparent; color: var(--fj-cream); }
.elementor .fj-nav .elementor-menu-toggle svg { fill: var(--fj-cream); }
.elementor .fj-nav nav.elementor-nav-menu--dropdown { background-color: var(--fj-espresso); border-top: 1px solid rgba(246, 239, 228, .14); }
.elementor .fj-nav nav.elementor-nav-menu--dropdown a {
	padding: 16px 28px;
	font-family: var(--fj-serif);
	font-size: 17px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--fj-cream);
	background-color: transparent;
	border-bottom: 1px solid rgba(246, 239, 228, .08);
}
.elementor .fj-nav nav.elementor-nav-menu--dropdown .sub-menu a { padding-left: 46px; font-family: var(--fj-sans); font-size: 13px; color: rgba(246, 239, 228, .78); }
.elementor .fj-nav nav.elementor-nav-menu--dropdown a:hover,
.elementor .fj-nav nav.elementor-nav-menu--dropdown a.elementor-item-active { color: var(--fj-gold-soft); background-color: transparent; }

/* Iconos de la derecha */
.elementor .fj-header__right .elementor-widget { width: auto; }
.elementor .fj-search {
	--e-search-form-toggle-color: var(--fj-cream);
	--e-search-form-toggle-background-color: transparent;
	--e-search-form-toggle-size: 34px;
	--e-search-form-toggle-icon-size: 17px;
}
.elementor .fj-search .elementor-search-form__toggle svg { width: 17px; height: 17px; fill: currentColor; }
.elementor .fj-search .elementor-search-form__toggle:hover { --e-search-form-toggle-color: var(--fj-gold-soft); }
.elementor .fj-search .elementor-search-form__container.elementor-search-form--full-screen { background-color: rgba(31, 24, 20, .96); }
.elementor .fj-search .elementor-search-form--full-screen input[type="search"].elementor-search-form__input {
	font-family: var(--fj-serif);
	font-size: clamp(26px, 4vw, 44px);
	color: var(--fj-cream);
	border-color: rgba(246, 239, 228, .4);
}

.elementor .fj-icon-link .elementor-icon { font-size: 19px; color: var(--fj-cream); fill: var(--fj-cream); }
.elementor .fj-icon-link .elementor-icon svg { width: 19px; height: 19px; }
.elementor .fj-icon-link .elementor-icon:hover { color: var(--fj-gold-soft); fill: var(--fj-gold-soft); }
.elementor .fj-icon-link .elementor-icon-wrapper { line-height: 0; }

.elementor .fj-cart {
	--toggle-button-text-color: var(--fj-cream);
	--toggle-button-icon-color: var(--fj-cream);
	--toggle-button-hover-text-color: var(--fj-gold-soft);
	--toggle-button-icon-hover-color: var(--fj-gold-soft);
	--toggle-button-background-color: transparent;
	--toggle-button-hover-background-color: transparent;
	--toggle-button-border-width: 0px;
	--toggle-icon-padding: 6px 0;
	--toggle-icon-size: 22px;
	--items-indicator-text-color: var(--fj-cream);
}
.elementor .fj-cart .elementor-menu-cart__toggle .elementor-button { padding: 6px 0; background-color: transparent; border: 0; }
.elementor .fj-cart .elementor-menu-cart__toggle .elementor-button-icon { display: inline-flex; flex-direction: row-reverse; align-items: center; gap: 8px; }
.elementor .fj-cart .elementor-menu-cart__toggle .elementor-button-icon-qty[data-counter] {
	font-family: var(--fj-serif);
	font-size: 16px;
	font-variant-numeric: lining-nums;
	letter-spacing: .06em;
	line-height: 1;
}
.elementor .fj-cart .elementor-menu-cart__toggle .elementor-button-icon-qty[data-counter]::before { content: "("; }
.elementor .fj-cart .elementor-menu-cart__toggle .elementor-button-icon-qty[data-counter]::after { content: ")"; }

/* Bolsa lateral */
.elementor .fj-cart .elementor-menu-cart__main { background-color: var(--fj-bg); color: var(--fj-text); font-family: var(--fj-sans); }
.elementor .fj-cart .elementor-menu-cart__product-name a { font-family: var(--fj-serif); font-size: 18px; color: var(--fj-ink); }
.elementor .fj-cart .elementor-menu-cart__subtotal { font-family: var(--fj-sans); letter-spacing: .08em; }
.elementor .fj-cart .elementor-menu-cart__footer-buttons .elementor-button { border-radius: 0; }

/* --------------------------------------------------------------------------
   Banner principal
   -------------------------------------------------------------------------- */
.elementor .fj-hero { --e-n-carousel-swiper-pagination-size: 0; }
/* El degradado oscuro sobre la foto es la «superposición de fondo» nativa de cada diapositiva. */
.elementor .fj-hero .fj-eyebrow .elementor-heading-title { color: var(--fj-cream); font-size: 13px; letter-spacing: .26em; }
.elementor .fj-hero__title .elementor-heading-title {
	font-family: var(--fj-serif);
	font-size: clamp(38px, 4.1vw, 66px);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: .01em;
	text-transform: uppercase;
	color: var(--fj-cream);
}
.elementor .fj-hero__text { max-width: 24em; font-family: var(--fj-serif); font-size: clamp(18px, 1.45vw, 22px); line-height: 1.45; color: rgba(246, 239, 228, .92); }

.elementor .fj-hero .swiper-pagination { bottom: 34px; left: 0; right: 0; display: flex; justify-content: center; gap: 10px; }
.elementor .fj-hero .swiper-pagination-bullet {
	width: 44px;
	height: 2px;
	margin: 0;
	border-radius: 0;
	background: var(--fj-cream);
	opacity: .38;
	transition: opacity .3s;
}
.elementor .fj-hero .swiper-pagination-bullet-active { opacity: 1; background: var(--fj-cream); }

@media (max-width: 767px) {
	.elementor .fj-hero .swiper-pagination { bottom: 22px; }
}

/* --------------------------------------------------------------------------
   Compromisos
   -------------------------------------------------------------------------- */
.elementor .fj-benefits { border-bottom: 1px solid var(--fj-line); background-color: var(--fj-bg); }
.elementor .fj-benefit { text-align: center; }
.elementor .fj-benefit__title .elementor-heading-title { font-family: var(--fj-sans); font-size: 12px; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; color: var(--fj-ink); }
.elementor .fj-benefit__text { font-family: var(--fj-serif); font-size: 17px; line-height: 1.35; color: var(--fj-taupe); }

/* --------------------------------------------------------------------------
   Tarjeta de producto y carruseles
   -------------------------------------------------------------------------- */
.elementor .fj-card { height: 100%; }
.elementor .fj-card__media { overflow: hidden; background-color: var(--fj-paper); }
.elementor .fj-card__media a { display: block; }
.elementor .fj-card__media img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .9s var(--fj-ease); }
.elementor .fj-card:hover .fj-card__media img { transform: scale(1.045); }
.elementor .fj-card__title .elementor-heading-title { font-family: var(--fj-serif); font-size: 21px; font-weight: 400; line-height: 1.25; }
.elementor .fj-card__title .elementor-heading-title a { color: var(--fj-ink); transition: color .25s; }
.elementor .fj-card__title .elementor-heading-title a:hover { color: var(--fj-gold); }
.elementor .fj-card__price .elementor-heading-title { font-family: var(--fj-sans); font-size: 14px; font-weight: 400; letter-spacing: .06em; line-height: 1.5; color: var(--fj-taupe); }
.elementor .fj-card__price del { opacity: .55; margin-right: 6px; }
.elementor .fj-card__price ins { text-decoration: none; color: var(--fj-ink); }
.elementor .fj-from { font-size: .86em; letter-spacing: .14em; text-transform: uppercase; }

.elementor .fj-products { --swiper-navigation-size: 18px; }
.elementor .fj-products .elementor-swiper-button { top: 38%; width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background-color: var(--fj-bg); color: var(--fj-ink); border: 1px solid var(--fj-line); transition: background-color .25s, color .25s, opacity .25s; }
.elementor .fj-products .elementor-swiper-button svg { width: 14px; height: 14px; fill: currentColor; }
.elementor .fj-products .elementor-swiper-button:hover { background-color: var(--fj-ink); color: var(--fj-cream); border-color: var(--fj-ink); }
.elementor .fj-products .elementor-swiper-button.swiper-button-disabled { opacity: 0; pointer-events: none; }
.elementor .fj-products .elementor-swiper-button-prev { left: -14px; }
.elementor .fj-products .elementor-swiper-button-next { right: -14px; }
@media (max-width: 767px) {
	.elementor .fj-products .elementor-swiper-button { display: none; }
	.elementor .fj-card__title .elementor-heading-title { font-size: 18px; }
}

.elementor .fj-products .e-load-more-anchor + .elementor-button-wrapper,
.elementor .fj-products .elementor-button-wrapper { margin-top: 56px; text-align: center; }

/* --------------------------------------------------------------------------
   Categorías
   -------------------------------------------------------------------------- */
.elementor .fj-cat { overflow: hidden; text-decoration: none; transition: filter .5s var(--fj-ease); }
.elementor .fj-cat:hover { filter: brightness(1.07); }
.elementor .fj-cat__title .elementor-heading-title { font-family: var(--fj-serif); font-size: clamp(24px, 2.2vw, 32px); font-weight: 400; color: var(--fj-cream); }
.elementor .fj-cat__cta .elementor-heading-title {
	display: inline-block;
	padding-bottom: 4px;
	font-family: var(--fj-sans);
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--fj-cream);
	border-bottom: 1px solid rgba(246, 239, 228, .6);
	transition: border-color .3s, color .3s;
}
.elementor .fj-cat:hover .fj-cat__cta .elementor-heading-title { color: var(--fj-gold-soft); border-color: var(--fj-gold-soft); }

/* --------------------------------------------------------------------------
   Bloque a medida
   -------------------------------------------------------------------------- */
.elementor .fj-split__img img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.elementor .fj-steps .elementor-icon-list-items { border-top: 1px solid rgba(246, 239, 228, .16); }
.elementor .fj-steps .elementor-icon-list-item { padding: 14px 0; border-bottom: 1px solid rgba(246, 239, 228, .16); }
.elementor .fj-steps .elementor-icon-list-text { padding-left: 0; font-family: var(--fj-sans); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: rgba(246, 239, 228, .86); }

/* --------------------------------------------------------------------------
   Piedras
   -------------------------------------------------------------------------- */
.elementor .fj-gem { position: relative; background-color: #fff; border: 1px solid var(--fj-line); transition: border-color .3s var(--fj-ease), transform .5s var(--fj-ease); }
.elementor .fj-gem:hover { border-color: var(--fj-gold); transform: translateY(-4px); }
.elementor .fj-gem__name .elementor-heading-title::before {
	content: "";
	display: block;
	width: 30px;
	height: 30px;
	margin: 4px 0 26px 4px;
	transform: rotate(45deg) scale(.82);
	background: linear-gradient(135deg, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 55%), var(--fj-gem, var(--fj-gold));
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35);
}
.elementor .fj-gem--esmeralda { --fj-gem: var(--fj-emerald); }
.elementor .fj-gem--zafiro    { --fj-gem: #1F3F7A; }
.elementor .fj-gem--rubi      { --fj-gem: #9B1B30; }
.elementor .fj-gem--diamante  { --fj-gem: #C9D2D9; }
.elementor .fj-gem__name .elementor-heading-title { font-family: var(--fj-serif); font-size: 27px; font-weight: 400; }
.elementor .fj-gem__text { font-size: 15px; line-height: 1.6; color: var(--fj-taupe); }

/* --------------------------------------------------------------------------
   Cita, Instagram y newsletter
   -------------------------------------------------------------------------- */
.elementor .fj-cta { text-align: center; }
.elementor .fj-ig__img img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; transition: opacity .3s; }
.elementor .fj-ig__img:hover img { opacity: .86; }
.elementor .fj-news { border-top: 1px solid var(--fj-line); }

.elementor .fj-form .elementor-field-group:not(.elementor-field-type-upload) input.elementor-field:not(.elementor-select-wrapper),
.elementor .fj-form .elementor-field-group:not(.elementor-field-type-upload) textarea.elementor-field:not(.elementor-select-wrapper) {
	min-height: 54px;
	padding: 0 2px;
	background-color: transparent;
	border: 0;
	border-bottom: 1px solid var(--fj-ink);
	border-radius: 0;
	font-family: var(--fj-sans);
	font-size: 15px;
	color: var(--fj-ink);
}
.elementor .fj-form .elementor-field-group .elementor-field-textual::placeholder { color: var(--fj-taupe); opacity: 1; }
.elementor .fj-form .elementor-field-group .elementor-field-textual:focus { border-bottom-color: var(--fj-gold); box-shadow: none; outline: none; }
.elementor .fj-form .elementor-button { min-height: 54px; width: 100%; }
.elementor .fj-form .elementor-message { margin-top: 14px; font-family: var(--fj-sans); font-size: 14px; }

/* --------------------------------------------------------------------------
   Pie de página
   -------------------------------------------------------------------------- */
.elementor .fj-footer { color: rgba(246, 239, 228, .74); }
.elementor .fj-footer__logo { text-align: left; }
.elementor .fj-footer__logo img { width: auto; height: 104px; }
.elementor .fj-footer__about { max-width: 30ch; font-family: var(--fj-serif); font-size: 18px; line-height: 1.5; color: rgba(246, 239, 228, .78); }
.elementor .fj-footer__title .elementor-heading-title { font-family: var(--fj-sans); font-size: 12px; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: var(--fj-gold-soft); }
.elementor .fj-footer__links .elementor-icon-list-item { padding: 5px 0; }
.elementor .fj-footer__links .elementor-icon-list-text { padding-left: 0; font-family: var(--fj-sans); font-size: 15px; font-weight: 300; color: rgba(246, 239, 228, .78); transition: color .25s; }
.elementor .fj-footer__links a:hover .elementor-icon-list-text { color: var(--fj-gold-soft); }
.elementor .fj-footer__bottom { padding-top: 26px; border-top: 1px solid rgba(246, 239, 228, .14); }
.elementor .fj-footer__small { font-family: var(--fj-sans); font-size: 12px; letter-spacing: .08em; color: rgba(246, 239, 228, .55); }

.elementor .fj-social .elementor-social-icon { width: 40px; height: 40px; margin-right: 8px; background-color: transparent; border: 1px solid rgba(246, 239, 228, .3); transition: background-color .25s, border-color .25s; }
.elementor .fj-social .elementor-social-icon i,
.elementor .fj-social .elementor-social-icon svg { color: var(--fj-cream); fill: var(--fj-cream); width: 15px; height: 15px; font-size: 15px; }
.elementor .fj-social .elementor-social-icon:hover { background-color: var(--fj-gold); border-color: var(--fj-gold); }

/* Botón flotante de WhatsApp */
.elementor .fj-whatsapp { position: fixed; right: 22px; bottom: 22px; z-index: 80; width: auto; }
.elementor .fj-whatsapp .elementor-icon { width: 54px; height: 54px; padding: 0; display: flex; align-items: center; justify-content: center; font-size: 26px; background-color: var(--fj-emerald); color: #fff; fill: #fff; box-shadow: 0 12px 28px -10px rgba(15, 91, 69, .6); transition: transform .3s var(--fj-ease), background-color .3s; }
.elementor .fj-whatsapp .elementor-icon svg { width: 26px; height: 26px; }
.elementor .fj-whatsapp .elementor-icon:hover { transform: translateY(-3px); background-color: #0C4A38; }
@media (max-width: 767px) { .elementor .fj-whatsapp { right: 14px; bottom: 14px; } .elementor .fj-whatsapp .elementor-icon { width: 48px; height: 48px; } }

/* --------------------------------------------------------------------------
   Tienda
   -------------------------------------------------------------------------- */
.elementor .fj-shop-hero { text-align: center; }
.elementor .fj-shop__desc { max-width: 60ch; font-family: var(--fj-serif); font-size: 19px; color: var(--fj-taupe); }
.elementor .fj-crumbs .woocommerce-breadcrumb { margin: 0; font-family: var(--fj-sans); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--fj-taupe); }
.elementor .fj-crumbs .woocommerce-breadcrumb a { color: var(--fj-taupe); }
.elementor .fj-crumbs .woocommerce-breadcrumb a:hover { color: var(--fj-ink); }

.elementor .fj-catnav { border-bottom: 1px solid var(--fj-line); }
.elementor .fj-catnav .elementor-nav-menu--main .elementor-nav-menu { flex-wrap: nowrap; }
.elementor .fj-catnav .elementor-nav-menu--main .elementor-item {
	white-space: nowrap;
	font-family: var(--fj-sans);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--fj-taupe);
	fill: var(--fj-taupe);
}
.elementor .fj-catnav .elementor-nav-menu--main .elementor-item:hover,
.elementor .fj-catnav .elementor-nav-menu--main .elementor-item:focus,
.elementor .fj-catnav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--fj-ink); fill: var(--fj-ink); }
.elementor .fj-catnav .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item::after { background-color: var(--fj-ink); height: 1px; bottom: 0; }
@media (max-width: 767px) {
	.elementor .fj-catnav .elementor-nav-menu--main { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.elementor .fj-catnav .elementor-nav-menu--main::-webkit-scrollbar { display: none; }
}

/* --------------------------------------------------------------------------
   Ficha de producto
   Tipografías y colores de título, precio, botón, cantidad y desplegables se
   ajustan en la pestaña Estilo de cada widget de WooCommerce. Aquí queda solo
   lo que esos widgets no ofrecen.
   -------------------------------------------------------------------------- */
.elementor .fj-pdp__info { position: sticky; top: calc(var(--fj-header-h) + 24px); }
@media (max-width: 767px) { .elementor .fj-pdp__info { position: static; } }

.elementor .fj-pdp__title h1.product_title.entry-title,
.elementor .fj-pdp__title .product_title { margin: 0; padding: 0; }
.elementor .fj-pdp__material p { margin: 0; }
.elementor .fj-pdp__price .price { margin: 0; }
.elementor .fj-pdp__price .price ins { text-decoration: none; }

/* Galería: carrusel estándar de WooCommerce */
.elementor .fj-pdp__gallery .woocommerce-product-gallery { margin: 0; }
.elementor .fj-pdp__gallery .woocommerce-product-gallery__image img { display: block; width: 100%; background-color: var(--fj-paper); }
.elementor .fj-pdp__gallery .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin: 10px 0 0; padding: 0; }
.elementor .fj-pdp__gallery .flex-control-thumbs li { width: auto; float: none; margin: 0; list-style: none; }
.elementor .fj-pdp__gallery .flex-control-thumbs img { opacity: .55; transition: opacity .25s; cursor: pointer; }
.elementor .fj-pdp__gallery .flex-control-thumbs img.flex-active,
.elementor .fj-pdp__gallery .flex-control-thumbs img:hover { opacity: 1; }
.elementor .fj-pdp__gallery .woocommerce-product-gallery__trigger { top: 16px; right: 16px; }

/* Galería en grilla de dos columnas (requiere el snippet «Galería del producto en grilla») */
.has-fj-gallery-grid .elementor .fj-pdp__gallery .woocommerce-product-gallery__wrapper { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0; }
.has-fj-gallery-grid .elementor .fj-pdp__gallery div.images .woocommerce-product-gallery__image:nth-child(n) { display: block; width: auto; float: none; margin: 0; }
.has-fj-gallery-grid .elementor .fj-pdp__gallery .woocommerce-product-gallery__image:first-child:nth-last-child(odd) { grid-column: 1 / -1; }
.has-fj-gallery-grid .elementor .fj-pdp__gallery .woocommerce-product-gallery__image img { aspect-ratio: 4 / 5; object-fit: cover; }
.has-fj-gallery-grid .elementor .fj-pdp__gallery .woocommerce-product-gallery__image:first-child:nth-last-child(odd) img { aspect-ratio: 3 / 2; }
@media (max-width: 767px) {
	.has-fj-gallery-grid .elementor .fj-pdp__gallery .woocommerce-product-gallery__wrapper { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
	.has-fj-gallery-grid .elementor .fj-pdp__gallery .woocommerce-product-gallery__wrapper::-webkit-scrollbar { display: none; }
	.has-fj-gallery-grid .elementor .fj-pdp__gallery .woocommerce-product-gallery__image { flex: 0 0 86%; scroll-snap-align: start; }
	.has-fj-gallery-grid .elementor .fj-pdp__gallery .woocommerce-product-gallery__image img,
	.has-fj-gallery-grid .elementor .fj-pdp__gallery .woocommerce-product-gallery__image:first-child:nth-last-child(odd) img { aspect-ratio: 4 / 5; }
}

/* Formulario de compra: una opción por fila, con la etiqueta encima */
.elementor .fj-pdp__cart form.cart { margin: 0; }
.elementor .fj-pdp__cart table.variations { width: 100%; margin: 0 0 6px; border: 0; border-collapse: collapse; }
.elementor .fj-pdp__cart table.variations tbody,
.elementor .fj-pdp__cart table.variations tr,
.elementor .fj-pdp__cart table.variations th,
.elementor .fj-pdp__cart table.variations td { display: block; padding: 0; border: 0; background: transparent; text-align: left; line-height: 1.4; }
.elementor .fj-pdp__cart table.variations th.label { margin: 0; line-height: 1; }
.elementor .fj-pdp__cart table.variations th.label label { display: block; margin: 0 0 12px; line-height: 1.2; text-transform: uppercase; }
.elementor .fj-pdp__cart table.variations td.value { margin: 0; line-height: 1; }
.elementor .fj-pdp__cart table.variations select { width: 100%; min-height: 48px; padding: 0 14px; border-width: 1px; border-style: solid; }
.elementor .fj-pdp__cart .reset_variations { display: inline-block; margin-top: 10px; font-family: var(--fj-sans); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--fj-taupe); }
.elementor .fj-pdp__cart .woocommerce-variation-price { margin-bottom: 14px; }
.elementor .fj-pdp__cart .woocommerce-variation-add-to-cart,
.elementor .fj-pdp__cart form.cart:not(.variations_form) { display: flex; align-items: stretch; }
.elementor .fj-pdp__cart .quantity .qty { width: 76px; height: 100%; min-height: 54px; text-align: center; }
.elementor .fj-pdp__cart .single_add_to_cart_button { flex: 1; min-height: 54px; text-transform: uppercase; transition: background-color .3s var(--fj-ease), color .3s var(--fj-ease), border-color .3s var(--fj-ease); }
.elementor .fj-pdp__cart .single_add_to_cart_button.disabled { opacity: .45; cursor: not-allowed; }

/* Variaciones como botones (los genera site.js a partir de los desplegables de WooCommerce).
   Es el único elemento de la ficha sin controles nativos: se edita aquí. */
.elementor .fj-pdp__cart .fj-swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.elementor .fj-pdp__cart .fj-swatches label.fj-swatch { display: inline-flex; margin: 0; padding: 0; cursor: pointer; }
.elementor .fj-pdp__cart .fj-swatches .fj-swatch__input { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; opacity: 0; }
.elementor .fj-pdp__cart .fj-swatches .fj-swatch__label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	min-height: 44px;
	padding: 0 16px;
	background-color: transparent;
	border: 1px solid var(--fj-line);
	font-family: var(--fj-sans);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .1em;
	line-height: 1;
	text-transform: none;
	color: var(--fj-ink);
	user-select: none;
	transition: border-color .2s, background-color .2s, color .2s;
}
.elementor .fj-pdp__cart .fj-swatches .fj-swatch:hover .fj-swatch__label { border-color: var(--fj-ink); }
.elementor .fj-pdp__cart .fj-swatches .fj-swatch__input:checked + .fj-swatch__label { border-color: var(--fj-ink); background-color: var(--fj-ink); color: var(--fj-cream); }
.elementor .fj-pdp__cart .fj-swatches .fj-swatch__input:focus-visible + .fj-swatch__label { outline: 2px solid var(--fj-gold); outline-offset: 3px; }
.elementor .fj-pdp__cart .fj-swatches .fj-swatch__input:disabled + .fj-swatch__label { opacity: .32; cursor: not-allowed; text-decoration: line-through; }
.elementor .fj-pdp__cart .fj-has-swatches select { position: absolute; width: 1px; height: 1px; min-height: 0; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; }

/* Acordeón con «+» */
.elementor .fj-acc { --n-accordion-title-font-size: 12px; --n-accordion-item-title-space-between: 0px; --n-accordion-item-title-distance-from-content: 0px; --n-accordion-border-radius: 0px; --n-accordion-icon-size: 11px; --n-accordion-title-normal-color: var(--fj-ink); --n-accordion-title-hover-color: var(--fj-gold); --n-accordion-title-active-color: var(--fj-ink); --n-accordion-icon-normal-color: var(--fj-ink); --n-accordion-icon-hover-color: var(--fj-gold); --n-accordion-icon-active-color: var(--fj-ink); margin-top: 10px; border-top: 1px solid var(--fj-line); }
.elementor .fj-acc .e-n-accordion-item { border-bottom: 1px solid var(--fj-line); }
.elementor .fj-acc .e-n-accordion-item-title { padding: 20px 0; background-color: transparent; border: 0; }
.elementor .fj-acc .e-n-accordion-item-title-text { font-family: var(--fj-sans); font-size: 12px; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; }
.elementor .fj-acc .e-n-accordion-item > .e-con { padding: 0 0 22px; border: 0; background-color: transparent; }
.elementor .fj-acc__text { font-size: 15px; line-height: 1.7; color: var(--fj-text); }
.elementor .fj-acc__text p { margin: 0 0 12px; }
.elementor .fj-acc__table table.shop_attributes { margin: 0; border: 0; font-size: 14px; }
.elementor .fj-acc__table table.shop_attributes th,
.elementor .fj-acc__table table.shop_attributes td { padding: 9px 0; border: 0; border-bottom: 1px solid var(--fj-line); background: transparent; font-style: normal; text-align: left; }
.elementor .fj-acc__table table.shop_attributes tr:last-child th,
.elementor .fj-acc__table table.shop_attributes tr:last-child td { border-bottom: 0; }
.elementor .fj-acc__table table.shop_attributes th { width: 40%; font-family: var(--fj-sans); font-size: 11px; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; color: var(--fj-taupe); }
.elementor .fj-acc__table table.shop_attributes td p { margin: 0; padding: 0; }

/* Sin estrellas ni reseñas */
.woocommerce .star-rating,
.woocommerce .woocommerce-product-rating,
.woocommerce #reviews,
.woocommerce-tabs .reviews_tab { display: none; }

/* --------------------------------------------------------------------------
   Páginas provisionales
   -------------------------------------------------------------------------- */
.elementor .fj-pagehero { text-align: center; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
