:root {
  --lcdp-accent: #fac644;
  --lcdp-warm: #000000;
  --lcdp-ink: #000000;
  --lcdp-muted: #5f5f5f;
  --lcdp-line: #e6e6e6;
  --lcdp-surface: #fff;
  --lcdp-soft: #f7f7f7;
  --lcdp-radius: 14px;
  --lcdp-shadow: 0 24px 70px rgba(0, 0, 0, .16);
}

.lcdp-search *, .lcdp-search-modal *, .lcdp-search-launcher * { box-sizing: border-box; }
.lcdp-search-icon { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.lcdp-search { position: relative; width: 100%; color: var(--lcdp-ink); font-family: inherit; }
.lcdp-search__form { display: flex; align-items: center; min-height: 52px; border: 1px solid var(--lcdp-line); border-radius: 999px; background: var(--lcdp-surface); padding: 0 8px 0 18px; transition: border-color .2s, box-shadow .2s; }
.lcdp-search__form:focus-within { border-color: var(--lcdp-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--lcdp-accent) 14%, transparent); }
.lcdp-search__form > .lcdp-search-icon { flex: 0 0 auto; color: var(--lcdp-muted); }
.lcdp-search__input { flex: 1; min-width: 0; height: 50px; border: 0 !important; outline: 0 !important; box-shadow: none !important; background: transparent !important; color: var(--lcdp-ink); font: inherit; font-size: 16px; padding: 0 12px; }
.lcdp-search__input::-webkit-search-cancel-button { display: none; }
.lcdp-search__clear { border: 0; background: transparent; padding: 10px 12px; color: var(--lcdp-muted); font: 700 12px/1 inherit; text-transform: uppercase; cursor: pointer; }
.lcdp-search__clear:hover { color: var(--lcdp-ink); }
.lcdp-search__submit { display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--lcdp-accent); color: #000; cursor: pointer; transition: transform .2s, filter .2s; }
.lcdp-search__submit:hover { filter: brightness(.92); transform: scale(1.04); }

.lcdp-search--inline .lcdp-search__results { position: absolute; z-index: 99999; top: calc(100% + 10px); left: 0; right: 0; max-height: min(70vh, 680px); overflow: auto; border: 1px solid var(--lcdp-line); border-radius: var(--lcdp-radius); background: var(--lcdp-surface); box-shadow: var(--lcdp-shadow); }
.lcdp-search__results--portal {
  position: fixed !important;
  right: auto !important;
  z-index: 2147483646 !important;
  overflow: auto !important;
  border: 1px solid var(--lcdp-line) !important;
  border-radius: var(--lcdp-radius) !important;
  background: var(--lcdp-surface) !important;
  box-shadow: var(--lcdp-shadow) !important;
}

/* La rama de Divi se eleva únicamente durante una búsqueda abierta. Cerrado,
 * el plugin respeta los z-index configurados por el editor. */
.opimo-search-layer.opimo-search-layer--active {
  position: relative !important;
  z-index: 2147483000 !important;
  overflow: visible !important;
}
.lcdp-search__content { display: grid; grid-template-columns: minmax(150px, .3fr) minmax(0, 1fr); gap: 30px; padding: clamp(20px, 3vw, 34px); }
.lcdp-search__products:only-child { grid-column: 1 / -1; }
.lcdp-search__content h3 { margin: 0 0 18px; color: var(--lcdp-warm); font-size: 14px; line-height: 1.2; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.lcdp-search__suggestions ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.lcdp-search__suggestions a { display: block; padding: 9px 0; color: var(--lcdp-muted); font-size: 14px; font-weight: 650; text-decoration: none; }
.lcdp-search__suggestions a:hover, .lcdp-search__suggestions a:focus-visible { color: var(--lcdp-accent); }
.lcdp-search .lcdp-search__grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(270px, 100%), 1fr)) !important; gap: 14px !important; width: 100%; margin: 0 !important; padding: 0 !important; }
.lcdp-search a.lcdp-product-card { display: grid !important; grid-template-columns: 112px minmax(0, 1fr) !important; grid-template-rows: 112px !important; width: 100% !important; height: 112px !important; min-width: 0 !important; min-height: 112px !important; max-height: 112px !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; border: 1px solid transparent; border-radius: 12px; background: var(--lcdp-soft); color: var(--lcdp-ink) !important; text-decoration: none !important; transition: border-color .2s, box-shadow .2s, transform .2s; }
.lcdp-product-card:hover, .lcdp-product-card:focus-visible { border-color: color-mix(in srgb, var(--lcdp-accent) 45%, var(--lcdp-line)); box-shadow: 0 8px 24px rgba(22, 32, 51, .09); transform: translateY(-2px); outline: none; }
.lcdp-search .lcdp-product-card__image { position: relative !important; display: grid !important; place-items: center !important; width: 112px !important; height: 112px !important; min-height: 0 !important; overflow: hidden !important; background: #fff; }
.lcdp-search .lcdp-product-card__image img { display: block !important; width: 100% !important; height: 100% !important; max-width: 112px !important; max-height: 112px !important; margin: 0 !important; padding: 8px !important; object-fit: contain !important; object-position: center !important; }
.lcdp-search .lcdp-product-card__stock-badge { position: absolute; z-index: 2; right: 7px; bottom: 7px; display: inline-flex; align-items: center; min-height: 24px; border: 1px solid #000; border-radius: 999px; background: #fac644; padding: 4px 9px; color: #000; font-size: 10px; font-weight: 800; line-height: 1; letter-spacing: .04em; text-transform: uppercase; box-shadow: 0 3px 9px rgba(0,0,0,.14); }
.lcdp-search .lcdp-product-card__body { display: block !important; align-self: center !important; min-width: 0 !important; margin: 0 !important; padding: 14px !important; color: var(--lcdp-ink) !important; }
.lcdp-search .lcdp-product-card h4 { display: -webkit-box !important; overflow: hidden !important; -webkit-box-orient: vertical; -webkit-line-clamp: 2; margin: 0 0 8px !important; padding: 0 !important; color: var(--lcdp-ink) !important; font-size: 14px !important; line-height: 1.35 !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important; }
.lcdp-search .lcdp-product-card__price { display: block !important; margin: 0 !important; color: #666666 !important; font-size: 14px !important; line-height: 1.3 !important; font-weight: 800 !important; }
.lcdp-search .lcdp-product-card__price * { color: #666666 !important; }
.lcdp-product-card__price del { color: var(--lcdp-muted); font-weight: 500; opacity: .75; }
.lcdp-product-card__price ins { text-decoration: none; }
.lcdp-search__note { margin: -8px 0 18px; color: var(--lcdp-muted); font-size: 14px; }
.lcdp-search__all { display: inline-block; margin-top: 20px; color: var(--lcdp-accent) !important; font-size: 14px; font-weight: 750; text-decoration: none !important; }
.lcdp-search__empty { margin: 0; padding: 28px; color: var(--lcdp-muted); text-align: center; }
.lcdp-search__loading { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 110px; color: var(--lcdp-muted); }
.lcdp-search__loading span { width: 20px; height: 20px; border: 2px solid var(--lcdp-line); border-top-color: var(--lcdp-accent); border-radius: 50%; animation: lcdp-spin .7s linear infinite; }
@keyframes lcdp-spin { to { transform: rotate(360deg); } }

.lcdp-search-launcher__button { display: flex; align-items: center; width: 100%; min-height: 58px; gap: 12px; border: 1px solid var(--lcdp-line); border-radius: 999px; background: #fff; padding: 0 22px; color: var(--lcdp-muted); font: 600 16px/1.2 inherit; text-align: left; cursor: pointer; box-shadow: 0 8px 30px rgba(22, 32, 51, .07); transition: border-color .2s, transform .2s, box-shadow .2s; }
.lcdp-search-launcher__button:hover { border-color: var(--lcdp-accent); transform: translateY(-1px); box-shadow: 0 12px 34px rgba(22, 32, 51, .11); }
.lcdp-search-modal[hidden] { display: none; }
.lcdp-search-modal { position: fixed; z-index: 999999; inset: 0; display: grid; align-items: start; justify-items: center; padding: clamp(18px, 6vh, 70px) 18px 18px; opacity: 0; transition: opacity .18s ease; }
.lcdp-search-modal.is-open { opacity: 1; }
.lcdp-search-modal__backdrop { position: absolute; inset: 0; background: rgba(17, 24, 39, .56); backdrop-filter: blur(6px); }
.lcdp-search-modal__panel { position: relative; width: min(1180px, 100%); max-height: calc(100vh - clamp(36px, 12vh, 140px)); overflow: auto; border-radius: 20px; background: #fff; padding: clamp(20px, 4vw, 46px); box-shadow: var(--lcdp-shadow); transform: translateY(-12px) scale(.99); transition: transform .22s ease; }
.lcdp-search-modal.is-open .lcdp-search-modal__panel { transform: translateY(0) scale(1); }
.lcdp-search-modal__close { position: absolute; z-index: 2; top: 8px; right: 10px; display: grid; place-items: center; width: 40px; height: 40px; border: 0; background: transparent; color: var(--lcdp-ink); font: 300 30px/1 sans-serif; cursor: pointer; }
.lcdp-search--modal { padding-top: 10px; }
.lcdp-search--modal .lcdp-search__form { margin: 0 auto 20px; }
.lcdp-search--modal .lcdp-search__results { border-top: 1px solid var(--lcdp-line); }
body.lcdp-search-open { overflow: hidden; }

/* Acceso al carrito de WooCommerce. Ícono Shopping Bag de Lucide. */
.opimo-cart, .opimo-cart * { box-sizing: border-box; }
.opimo-cart {
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  gap: 10px;
  border: 1px solid #000;
  border-radius: 999px;
  background: #000;
  padding: 6px 7px 6px 14px;
  color: #fff !important;
  font: 700 14px/1.2 inherit;
  text-decoration: none !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
  transition: transform .2s, box-shadow .2s, background-color .2s;
}
.opimo-cart:hover, .opimo-cart:focus-visible { background: #171717; color: #fff !important; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0, 0, 0, .2); outline: 3px solid rgba(250, 198, 68, .45); outline-offset: 2px; }
.opimo-cart__icon { display: grid; place-items: center; color: #fac644; }
.opimo-cart-icon { display: block; width: 21px; height: 21px; }
.opimo-cart__total { padding-left: 10px; border-left: 1px solid rgba(255,255,255,.24); color: #fac644; white-space: nowrap; }
.opimo-cart__count { display: grid; place-items: center; min-width: 30px; height: 30px; border-radius: 999px; background: #fac644; padding: 0 8px; color: #000; font-size: 12px; font-weight: 850; }

/* Menú responsive de categorías Opimo. */
.opimo-menu, .opimo-menu * { box-sizing: border-box; }
.opimo-menu { position: relative; width: 100%; color: #000; font-family: inherit; }
.opimo-menu.is-layer-active { z-index: 2147483601 !important; }
.opimo-menu-layer.opimo-menu-layer--active { position: relative !important; z-index: 2147483600 !important; overflow: visible !important; }
.opimo-menu__panel { z-index: 2147483602 !important; }
.opimo-menu__toggle { display: none; }
.opimo-menu__panel { width: 100%; }
.opimo-menu__list { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 18px; width: 100%; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.opimo-menu__list li, .opimo-menu__submenu li { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.opimo-menu__item { position: relative; }
.opimo-menu__link-row { display: flex; align-items: stretch; min-height: 54px; overflow: hidden; border: 1.5px solid #000; border-radius: 13px; background: #fac644; transition: background-color .18s, transform .18s, box-shadow .18s; }
.opimo-menu__link-row > a { display: flex; flex: 1 1 auto; align-items: center; justify-content: center; min-width: 0; padding: 10px 24px; color: #000 !important; font-size: clamp(15px, 1.25vw, 20px); font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none !important; }
.opimo-menu__item--has-children > .opimo-menu__link-row > a { padding-right: 12px; }
.opimo-menu__link-row:hover, .opimo-menu__link-row:focus-within { background: #fff; transform: translateY(-2px); box-shadow: 0 7px 18px rgba(0,0,0,.12); }
.opimo-menu__link-row > a:focus-visible { outline: 2px solid #000; outline-offset: -4px; }
.opimo-menu__submenu-toggle { display: grid; flex: 0 0 42px; place-items: center; width: 42px; border: 0; border-left: 1px solid rgba(0,0,0,.22); background: transparent; color: #000; cursor: pointer; }
.opimo-menu__submenu-toggle:focus-visible { outline: 2px solid #000; outline-offset: -4px; }
.opimo-menu__chevron { display: block; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .18s; }
.opimo-menu__submenu-wrap { position: absolute; z-index: 60; top: calc(100% + 8px); left: 0; width: max-content; min-width: 230px; max-width: 310px; visibility: hidden; opacity: 0; transform: translateY(-5px); transition: opacity .16s, transform .16s, visibility .16s; }
.opimo-menu__item:hover > .opimo-menu__submenu-wrap, .opimo-menu__item:focus-within > .opimo-menu__submenu-wrap, .opimo-menu__item.is-submenu-open > .opimo-menu__submenu-wrap { visibility: visible; opacity: 1; transform: translateY(0); }
.opimo-menu__item.is-submenu-open > .opimo-menu__link-row .opimo-menu__chevron { transform: translateY(2px) rotate(225deg); }
.opimo-menu__submenu { display: grid; gap: 5px; margin: 0 !important; border: 1px solid #000; border-radius: 13px; background: #fff; padding: 8px !important; list-style: none !important; box-shadow: 0 16px 38px rgba(0,0,0,.18); }
.opimo-menu__submenu .opimo-menu__link-row { min-height: 43px; border: 0; border-radius: 8px; background: #fff; }
.opimo-menu__submenu .opimo-menu__link-row > a { justify-content: flex-start; padding: 9px 12px; font-size: 14px; text-align: left; }
.opimo-menu__submenu .opimo-menu__link-row:hover, .opimo-menu__submenu .opimo-menu__link-row:focus-within { background: #fac644; transform: none; box-shadow: none; }
.opimo-menu__submenu .opimo-menu__submenu-wrap { top: 0; left: calc(100% + 7px); }
.opimo-menu__list > .opimo-menu__item:nth-last-child(-n+2) > .opimo-menu__submenu-wrap { right: 0; left: auto; }
.opimo-menu__list > .opimo-menu__item:nth-last-child(-n+2) .opimo-menu__submenu .opimo-menu__submenu-wrap { right: calc(100% + 7px); left: auto; }
.opimo-nav-tools { display: flex; align-items: center; gap: 14px; width: 100%; }
.opimo-nav-tools > .opimo-menu { flex: 1 1 auto; }
.opimo-nav-tools > .opimo-cart { flex: 0 0 auto; }

@media (max-width: 720px) {
	.opimo-menu { display: inline-flex; width: auto; }
	.opimo-nav-tools { justify-content: flex-end; gap: 8px; }
	.opimo-nav-tools > .opimo-menu { flex: 0 0 auto; }
	.opimo-menu__toggle { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; min-height: 46px; gap: 9px; border: 1px solid #000; border-radius: 999px; background: #fac644; padding: 8px 14px; color: #000; font: 800 13px/1 inherit; cursor: pointer; transition: background-color .18s, transform .18s; }
	.opimo-menu__toggle:hover, .opimo-menu__toggle:focus-visible { background: #ffd76d; transform: translateY(-1px); outline: 3px solid rgba(250,198,68,.35); outline-offset: 2px; }
	.opimo-menu__toggle-icon { display: grid; gap: 4px; width: 19px; }
	.opimo-menu__toggle-icon span { display: block; width: 19px; height: 2px; border-radius: 2px; background: currentColor; transform-origin: center; transition: transform .2s, opacity .2s; }
	.opimo-menu.is-open .opimo-menu__toggle-icon span:first-child { transform: translateY(6px) rotate(45deg); }
	.opimo-menu.is-open .opimo-menu__toggle-icon span:nth-child(2) { opacity: 0; }
	.opimo-menu.is-open .opimo-menu__toggle-icon span:last-child { transform: translateY(-6px) rotate(-45deg); }
	.opimo-menu__panel { position: absolute; top: calc(100% + 10px); right: 0; left: auto; display: none; width: min(340px, calc(100vw - 24px)); max-height: min(68vh, 560px); overflow: auto; border: 1px solid #000; border-radius: 16px; background: #fff; padding: 10px; box-shadow: 0 18px 48px rgba(0,0,0,.2); isolation: isolate; }
	.opimo-menu.is-open .opimo-menu__panel { display: block; }
	.opimo-menu__list { display: grid; gap: 7px; }
	.opimo-menu__link-row { min-height: 45px; border: 0; border-radius: 9px; background: #fff; }
	.opimo-menu__link-row > a { justify-content: flex-start; padding: 10px 13px; font-size: 15px; text-align: left; }
	.opimo-menu__item--has-children > .opimo-menu__link-row > a { padding-right: 8px; }
	.opimo-menu__link-row:hover, .opimo-menu__link-row:focus-within { background: #fac644; transform: none; box-shadow: none; }
	.opimo-menu__submenu-toggle { flex-basis: 44px; width: 44px; border-left-color: #dedede; }
	.opimo-menu__submenu-wrap, .opimo-menu__submenu .opimo-menu__submenu-wrap { position: static; display: none; width: 100%; min-width: 0; max-width: none; visibility: visible; opacity: 1; transform: none; transition: none; }
	.opimo-menu__item.is-submenu-open > .opimo-menu__submenu-wrap { display: block; }
	.opimo-menu__item:hover > .opimo-menu__submenu-wrap, .opimo-menu__item:focus-within > .opimo-menu__submenu-wrap { display: none; }
	.opimo-menu__item.is-submenu-open:hover > .opimo-menu__submenu-wrap, .opimo-menu__item.is-submenu-open:focus-within > .opimo-menu__submenu-wrap { display: block; }
	.opimo-menu__submenu { gap: 3px; margin: 4px 0 3px 13px !important; border: 0; border-left: 2px solid #fac644; border-radius: 0; padding: 3px 0 3px 8px !important; box-shadow: none; }
	.opimo-menu__submenu .opimo-menu__link-row { min-height: 40px; }
	.opimo-menu__submenu .opimo-menu__link-row > a { padding: 8px 11px; font-size: 14px; }
  .lcdp-search-modal { padding: 0; align-items: stretch; }
  .lcdp-search-modal__panel { width: 100%; max-height: 100dvh; min-height: 100dvh; border-radius: 0; padding: 58px 16px 24px; }
  .lcdp-search-modal__close { top: 10px; right: 12px; }
  .lcdp-search__content { grid-template-columns: 1fr; gap: 22px; padding: 20px 4px; }
  .lcdp-search--inline .lcdp-search__results { position: fixed; top: 72px; right: 8px; bottom: 8px; left: 8px; max-height: none; }
	.lcdp-search__results--portal { right: 8px !important; bottom: 8px !important; left: 8px !important; width: auto !important; }
  .lcdp-search__suggestions ul { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
  .lcdp-search__suggestions a { white-space: nowrap; border-radius: 999px; background: var(--lcdp-soft); padding: 9px 13px; }
  .lcdp-search .lcdp-search__grid { grid-template-columns: 1fr !important; }
  .lcdp-search a.lcdp-product-card { grid-template-columns: 96px minmax(0, 1fr) !important; grid-template-rows: 100px !important; height: 100px !important; min-height: 100px !important; max-height: 100px !important; }
  .lcdp-search .lcdp-product-card__image { width: 96px !important; height: 100px !important; }
  .lcdp-search .lcdp-product-card__image img { max-width: 96px !important; max-height: 100px !important; }
  .lcdp-search__clear { padding-inline: 8px; font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .lcdp-search *, .lcdp-search-modal *, .lcdp-search-launcher *, .opimo-cart, .opimo-menu * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
