/* Profit Pharma — sistema de marca. Generado para Elementor. */

/* Tipografías Google Fonts autoalojadas (ver fonts-google.css):
   Geist sustituye a Nohemi · Encode Sans Expanded sustituye a 946 Latin Wide */

:root{
  --pf-white:#FFFFFF;
  --pf-black:#212121;
  --pf-green:#00a100;
  --pf-green-300:#5fd45f;
  --pf-green-600:#008500;
  --pf-green-700:#006e00;
  --pf-green-050:#eefaee;
  --pf-grey-050:#FAFAFA;
  --pf-grey-100:#F2F2F2;
  --pf-grey-200:#EBEBEB;
  --pf-grey-300:#DBDBDB;
  --pf-grey-400:#B0B0B0;
  --pf-grey-500:#8F8F8F;
  --pf-grey-600:#7A7A7A;
  --pf-grey-800:#4D4D4D;
  --pf-font-display:"Geist","Helvetica Neue",Arial,system-ui,-apple-system,sans-serif;
  --pf-font-ui:"Encode Sans Expanded","Geist","Helvetica Neue",Arial,system-ui,sans-serif;
}

/* ---------- Base tipográfica ---------- */
body{font-family:var(--pf-font-display);color:var(--pf-grey-800);letter-spacing:.005em;-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4,h5,h6{font-family:var(--pf-font-display);color:var(--pf-black);letter-spacing:-.015em}
h1{letter-spacing:-.03em}

/* ---------- Etiqueta 946 (eyebrow) ---------- */
.pf-eyebrow,.pf-eyebrow .elementor-heading-title{font-family:var(--pf-font-ui)!important;text-transform:uppercase;letter-spacing:.18em;font-size:11px;line-height:1.2;color:var(--pf-green-600)}
.pf-eyebrow--light,.pf-eyebrow--light .elementor-heading-title{color:var(--pf-green-300)}
.pf-label,.pf-label .elementor-heading-title{font-family:var(--pf-font-ui)!important;text-transform:uppercase;letter-spacing:.08em}
.pf-ui{font-family:var(--pf-font-ui)!important}

/* ---------- Botones ---------- */
.pf-btn .elementor-button{font-family:var(--pf-font-ui)!important;text-transform:uppercase;letter-spacing:.08em;font-size:12px;line-height:1;border-radius:4px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;transition:background-color .12s cubic-bezier(.2,0,.2,1),color .12s cubic-bezier(.2,0,.2,1),border-color .12s cubic-bezier(.2,0,.2,1),transform .12s cubic-bezier(.2,0,.2,1)}
.pf-btn .elementor-button:active{transform:translateY(1px)}
.pf-btn--lg .elementor-button{min-height:56px;font-size:14px;padding:18px 32px}

/* ---------- Motivo chevron (-12 grados, siempre a la derecha) ---------- */
.pf-hero{position:relative;overflow:hidden}

.pf-hero>.e-con-inner,.pf-hero>.elementor-widget-wrap{position:relative;z-index:1}

.pf-tile{position:relative;overflow:hidden;transition:transform .18s cubic-bezier(.2,0,.2,1)}
.pf-tile:hover{transform:translateY(-3px)}
.pf-tile::after{content:"";position:absolute;right:-20%;top:0;width:60%;height:100%;background:var(--pf-green);opacity:.16;transform:skewX(-12deg);transition:opacity .18s cubic-bezier(.2,0,.2,1);pointer-events:none;z-index:0}
.pf-tile:hover::after{opacity:.3}
.pf-tile>.e-con-inner,.pf-tile>.elementor-widget-wrap{position:relative;z-index:1}

.pf-mark{width:26px;height:26px;background:var(--pf-green);clip-path:polygon(0 0,100% 0,72% 100%,0 100%);flex:none}

/* ---------- Tarjetas ---------- */
.pf-card{transition:border-color .18s cubic-bezier(.2,0,.2,1),box-shadow .18s cubic-bezier(.2,0,.2,1)}
.pf-card:hover{border-color:var(--pf-grey-300)!important;box-shadow:0 4px 12px rgba(33,33,33,.10)}
.pf-quote{border-left:2px solid var(--pf-green)}

/* ---------- Barra de anuncio ---------- */
.pf-announce,.pf-announce .elementor-heading-title{font-family:var(--pf-font-ui)!important;text-transform:uppercase;letter-spacing:.06em;font-size:10px;line-height:1.4;color:#fff}

/* ---------- Producto WooCommerce en rejilla Elementor ---------- */
.pf-products ul.products li.product{border:1px solid var(--pf-grey-200);border-radius:6px;overflow:hidden;background:#fff;padding:0 0 16px;text-align:left;transition:border-color .18s,box-shadow .18s}
.pf-products ul.products li.product:hover{border-color:var(--pf-grey-300);box-shadow:0 4px 12px rgba(33,33,33,.10)}
.pf-products ul.products li.product a img{margin:0 0 14px;aspect-ratio:1;object-fit:cover}
.pf-products ul.products li.product .woocommerce-loop-product__title{font-family:var(--pf-font-display);font-weight:600;font-size:16px;line-height:1.25;letter-spacing:-.01em;color:var(--pf-black);padding:0 16px}
.pf-products ul.products li.product .price{font-family:var(--pf-font-ui);font-size:18px;color:var(--pf-black);padding:0 16px;display:block}
.pf-products ul.products li.product .price del{font-size:12px;color:var(--pf-grey-500);opacity:1}
.pf-products ul.products li.product .price ins{text-decoration:none;color:var(--pf-green-600)}
.pf-products ul.products li.product .button{font-family:var(--pf-font-ui);text-transform:uppercase;letter-spacing:.08em;font-size:11px;background:var(--pf-green);color:#fff;border-radius:4px;margin:12px 16px 0;padding:12px 18px}
.pf-products ul.products li.product .button:hover{background:var(--pf-green-600);color:#fff}
.pf-products ul.products li.product .onsale{background:var(--pf-green);color:#fff;border-radius:2px;font-family:var(--pf-font-ui);font-size:9px;letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;min-height:0;min-width:0;line-height:1;top:10px;left:10px;right:auto;margin:0}

/* ---------- Tabla comparativa ---------- */
.pf-table,.pf-table>.elementor-widget-container{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.pf-table table{width:100%;min-width:560px;border-collapse:collapse;font-size:14px}
.pf-table th,.pf-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--pf-grey-200)}
.pf-table thead th{font-family:var(--pf-font-ui);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--pf-black);background:var(--pf-grey-050)}
.pf-table tbody th{font-weight:400;color:var(--pf-grey-800)}

/* ---------- Acordeón / FAQ ---------- */
.pf-faq .elementor-accordion-item{border:1px solid var(--pf-grey-200)!important;border-radius:6px;margin-bottom:8px;background:#fff}
.pf-faq .elementor-tab-title{font-family:var(--pf-font-display)!important;font-weight:600}
.pf-faq .elementor-tab-content{border-top:0!important}

/* ---------- Foco accesible ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--pf-green);outline-offset:2px}

/* ---------- Formulario WPForms ---------- */
.pf-form .wpforms-field-label{font-family:var(--pf-font-ui)!important;text-transform:uppercase;letter-spacing:.08em;font-size:11px!important;color:var(--pf-black)!important;font-weight:400!important}
.pf-form input[type=text],.pf-form input[type=email],.pf-form input[type=tel],.pf-form select,.pf-form textarea{border:1px solid var(--pf-grey-300)!important;border-radius:4px!important;padding:13px 14px!important;font-family:var(--pf-font-display)!important;font-size:15px!important;background:#fff!important;box-shadow:none!important}
.pf-form input:focus,.pf-form select:focus,.pf-form textarea:focus{border-color:var(--pf-green)!important;box-shadow:0 0 0 3px rgba(0,161,0,.18)!important;outline:none!important}
.pf-form .wpforms-submit{font-family:var(--pf-font-ui)!important;text-transform:uppercase;letter-spacing:.08em;font-size:12px!important;background:var(--pf-green)!important;color:#fff!important;border:0!important;border-radius:4px!important;padding:16px 30px!important;min-height:48px;cursor:pointer;transition:background-color .12s}
.pf-form .wpforms-submit:hover{background:var(--pf-green-600)!important}

/* ---------- Marca grande (panel del hero) ---------- */
.pf-mark--lg{width:74px!important;height:74px!important;min-height:74px!important}
.pf-hi{color:var(--pf-green-300)}

/* ---------- El buscador de la cabecera no debe empujar el layout ---------- */
.ekit_search_form_wraper,.ekit-search-panel{z-index:120}

/* ---------- Mega menú: el panel debe alinearse con la cabecera, no con el ítem ---------- */
@media (min-width:1025px){
  .xpro-theme-builder-header .e-con-inner{position:relative}
  .xpro-theme-builder-header .elementskit-navbar-nav>li.elementskit-megamenu-has,
  .xpro-theme-builder-header .elementskit-menu-container,
  .xpro-theme-builder-header .elementskit-navbar-nav-default,
  .xpro-theme-builder-header .elementor-widget-ekit-nav-menu,
  .xpro-theme-builder-header .elementor-widget-ekit-nav-menu>.elementor-widget-container,
  .xpro-theme-builder-header .pf-navwrap{position:static!important}
  .xpro-theme-builder-header .elementskit-megamenu-panel{left:0!important;right:auto!important;width:100%!important;max-width:100%!important;border-top:1px solid var(--pf-grey-200);box-shadow:0 12px 32px rgba(33,33,33,.12)}
}

/* ---------- Astra trae su propio cajon de carrito que aquí no se usa ---------- */
.astra-cart-drawer,.astra-mobile-cart-overlay{display:none!important}

/* ---------- Escalado tipográfico responsive ---------- */
@media (max-width:1024px){
  .pf-hero h1.elementor-heading-title{font-size:40px!important}
  .elementor-widget-heading h2.elementor-heading-title{font-size:30px!important}
}
@media (max-width:767px){
  .pf-hero h1.elementor-heading-title{font-size:32px!important;line-height:1.06!important}
  .elementor-widget-heading h2.elementor-heading-title{font-size:25px!important}
  .elementor-widget-heading h3.elementor-heading-title{font-size:19px!important}
  .pf-hero .elementor-widget-text-editor{font-size:14px!important}
  .pf-announce,.pf-announce .elementor-heading-title{font-size:9px!important;letter-spacing:.05em}
}

/* ---------- Logo y acciones: siempre en fila ---------- */
.xpro-theme-builder-header .pf-logo{flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:10px!important;width:auto!important;max-width:none}
.xpro-theme-builder-header .pf-logo>.e-con{width:auto!important;flex:0 0 auto!important}
.xpro-theme-builder-header .pf-logo .pf-mark{flex:0 0 auto!important;width:26px!important;height:26px!important;min-height:26px!important}
.xpro-theme-builder-header .pf-actions{flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:2px!important;width:auto!important}
.xpro-theme-builder-header .pf-actions>*{flex:0 0 auto!important}

/* ---------- Cabecera compacta en móvil ---------- */
@media (max-width:1024px){
  .xpro-theme-builder-header .e-con-inner{flex-wrap:nowrap!important;align-items:center!important;gap:10px!important}
  .xpro-theme-builder-header .e-con-inner>.e-con{width:auto!important;flex:0 0 auto!important;max-width:none}
  .xpro-theme-builder-header .pf-navwrap{flex:1 1 auto!important;justify-content:flex-end!important;width:auto!important}
  .xpro-theme-builder-header .e-con-inner>.e-con:last-child{flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:2px!important}
  .xpro-theme-builder-header .elementor-widget-heading .elementor-heading-title{white-space:nowrap}
  .profit-cart,.xpro-theme-builder-header .elementor-widget-icon a{min-width:40px}
}
@media (max-width:600px){
  .xpro-theme-builder-header .pf-mark{width:22px!important;height:22px!important;min-height:22px!important}
  .xpro-theme-builder-header .e-con.e-parent{padding-left:16px!important;padding-right:16px!important}
  .xpro-theme-builder-header .pf-actions{margin-right:-6px!important}
  .xpro-theme-builder-header .elementor-widget-heading .elementor-heading-title{font-size:15px!important}
}

/* ---------- La ventana de vista rápida de Xpro no debe ocupar espacio ---------- */
.xpro-qv-main-wrapper{display:none}
.xpro-qv-main-wrapper.xpro-qv-active,.xpro-qv-main-wrapper.active{display:block}

/* ---------- Menú ---------- */
.pf-nav .elementskit-navbar-nav>li>a{font-family:var(--pf-font-ui)!important;text-transform:uppercase;letter-spacing:.08em;font-size:11px!important;white-space:nowrap;padding-left:11px!important;padding-right:11px!important}
@media (min-width:1025px){
  .pf-nav .elementskit-navbar-nav{flex-wrap:nowrap!important}
  .xpro-theme-builder-header .e-con-inner{flex-wrap:nowrap!important}
}

/* pf-grid-cta */
.xpro-woo-product-grid-add-to-cart-btn{margin-top:14px}
.xpro-woo-product-grid .xpro-woo-product-grid-add-to-cart-btn a.button,
.xpro-woo-product-grid-add-to-cart-btn a.button,
.xpro-woo-product-grid-add-to-cart-btn .button{display:block!important;width:100%!important;text-align:center!important;background:var(--pf-black)!important;color:#fff!important;border:0!important;border-radius:0!important;padding:13px 16px!important;font-family:var(--pf-font-ui)!important;font-size:11px!important;font-weight:600!important;letter-spacing:.1em!important;text-transform:uppercase!important;line-height:1!important;transition:background .18s ease}
.xpro-woo-product-grid-add-to-cart-btn a.button:hover,
.xpro-woo-product-grid-add-to-cart-btn .button:hover{background:var(--pf-green)!important;color:#fff!important}
.xpro-woo-product-grid-add-to-cart-btn .button.added{background:var(--pf-green-700)!important}
.xpro-woo-product-grid-add-to-cart-btn .button.loading{opacity:.75}
.xpro-woo-product-grid-add-to-cart-btn .added_to_cart{display:block;text-align:center;margin-top:8px;font-family:var(--pf-font-ui);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--pf-green-700);text-decoration:underline}

/* pf-header-actions-align: los tres iconos de la derecha comparten caja de 44x44
   y se centran con flex. Los contenedores de Elementor ya estaban centrados; el
   desajuste venia de dentro de los widgets: la lupa y la cuenta son enlaces
   inline-block con line-height propio y su SVG se alineaba a la linea base. */
.pf-actions{display:flex!important;flex-direction:row!important;align-items:center!important;flex-wrap:nowrap!important}
.pf-actions>.elementor-element,
.pf-actions>.elementor-widget{display:flex!important;align-items:center!important}
.pf-actions .elementor-widget-container{display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;margin:0!important}
.pf-actions .ekit_navsearch-button,
.pf-actions .elementor-icon,
.pf-actions .profit-cart{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:44px!important;height:44px!important;padding:0!important;line-height:1!important;border-radius:4px}
.pf-actions svg{display:block!important;width:22px!important;height:22px!important;vertical-align:middle}
.pf-actions .profit-cart svg{margin:0}

/* pf-cart-color: el kit de Elementor pinta todos los enlaces con
   .elementor-kit-4208 a, que gana por especificidad al .profit-cart del
   shortcode. Por eso el color va aqui con dos clases. */
.pf-actions .profit-cart{color:#212121}
.pf-actions .profit-cart svg{stroke:currentColor}
.pf-actions .profit-cart:hover,
.pf-actions .profit-cart:focus-visible{color:#00a100;background:#F2F2F2}
.pf-actions .profit-cart:hover svg,
.pf-actions .profit-cart:focus-visible svg{stroke:#00a100}

/* pf-actions-hover: el widget Icono en vista 'default' no aplica su color de
   hover (Elementor solo genera esos selectores para las vistas stacked/framed),
   asi que se garantiza aqui. Los tres iconos: #212121 en reposo, #00a100 al pasar. */
.pf-actions .ekit_navsearch-button,
.pf-actions .elementor-icon,
.pf-actions .profit-cart{color:#212121;transition:color .12s,background-color .12s}
.pf-actions .ekit_navsearch-button svg,
.pf-actions .elementor-icon svg,
.pf-actions .profit-cart svg{transition:stroke .12s,fill .12s}
.pf-actions .ekit_navsearch-button:hover,
.pf-actions .ekit_navsearch-button:focus-visible,
.pf-actions .elementor-icon:hover,
.pf-actions .elementor-icon:focus-visible,
.pf-actions .profit-cart:hover,
.pf-actions .profit-cart:focus-visible{color:#00a100!important;background:#F2F2F2}
.pf-actions .ekit_navsearch-button:hover svg [stroke],
.pf-actions .ekit_navsearch-button:hover svg,
.pf-actions .elementor-icon:hover svg,
.pf-actions .profit-cart:hover svg,
.pf-actions .ekit_navsearch-button:focus-visible svg,
.pf-actions .elementor-icon:focus-visible svg,
.pf-actions .profit-cart:focus-visible svg{stroke:#00a100!important}
.pf-actions .elementor-icon:hover svg,
.pf-actions .elementor-icon:focus-visible svg{fill:#00a100!important}

/* ============ Formulario profesional (Trabaja con Nosotros) ============ */
.pf-form-pro .wpforms-field{padding:0 0 18px!important}
.pf-form-pro .wpforms-field-container{display:flex;flex-wrap:wrap;column-gap:18px}
.pf-form-pro .wpforms-field{width:100%}
@media (min-width:600px){
  .pf-form-pro .wpforms-field.pf-half{width:calc(50% - 9px)}
}
.pf-form-pro .wpforms-field-label{margin-bottom:7px!important;display:block}
.pf-form-pro .wpforms-field-sublabel,
.pf-form-pro .wpforms-field-description{font-family:var(--pf-font-display)!important;font-size:12px!important;color:var(--pf-grey-600)!important;margin-top:6px}
.pf-form-pro .wpforms-required-label{color:var(--pf-green)!important}
.pf-form-pro input[type=text],.pf-form-pro input[type=email],.pf-form-pro input[type=tel],
.pf-form-pro input[type=number],.pf-form-pro select{width:100%!important;height:48px}
.pf-form-pro select{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234D4D4D' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:16px!important;padding-right:40px!important}
/* Opciones tipo radio como tarjetas seleccionables */
.pf-form-pro ul.wpforms-field-required,
.pf-form-pro .wpforms-field-radio ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pf-form-pro .wpforms-field-radio li{margin:0!important;display:flex;align-items:center;gap:10px;
  border:1px solid var(--pf-grey-300);border-radius:4px;padding:13px 15px;transition:border-color .12s,background-color .12s}
.pf-form-pro .wpforms-field-radio li:hover{border-color:var(--pf-green);background:#FAFAFA}
.pf-form-pro .wpforms-field-radio li:has(input:checked){border-color:var(--pf-green);background:rgba(0,161,0,.05)}
.pf-form-pro .wpforms-field-radio input[type=radio]{accent-color:var(--pf-green);width:17px;height:17px;margin:0!important;flex:0 0 auto}
.pf-form-pro .wpforms-field-radio label{font-family:var(--pf-font-display)!important;font-size:14px!important;
  color:var(--pf-black)!important;text-transform:none!important;letter-spacing:0!important;margin:0!important;cursor:pointer}
.pf-form-pro .wpforms-field-gdpr-checkbox label{font-family:var(--pf-font-display)!important;font-size:13px!important;
  color:var(--pf-grey-600)!important;text-transform:none!important;letter-spacing:0!important;line-height:1.5}
.pf-form-pro .wpforms-field-gdpr-checkbox input[type=checkbox]{accent-color:var(--pf-green);width:16px;height:16px;margin-right:8px}
/* Boton: verde de marca, negro al pasar el cursor */
.pf-form-pro .wpforms-submit{width:100%;background:var(--pf-green)!important;color:#fff!important}
.pf-form-pro .wpforms-submit:hover,
.pf-form-pro .wpforms-submit:focus-visible{background:var(--pf-black)!important;color:#fff!important}
.pf-form-pro .wpforms-confirmation-container-full{background:rgba(0,161,0,.07)!important;border:1px solid var(--pf-green)!important;
  border-radius:4px;padding:22px 24px!important;color:var(--pf-black)!important}
.pf-aliados-aside{align-self:stretch}

.pf-form-pro .pf-consent ul{list-style:none;margin:0;padding:0}
.pf-form-pro .pf-consent li{display:flex;align-items:flex-start;gap:10px;margin:0!important}
.pf-form-pro .pf-consent input[type=checkbox]{accent-color:var(--pf-green);width:16px;height:16px;margin:2px 0 0!important;flex:0 0 auto}
.pf-form-pro .pf-consent label{font-family:var(--pf-font-display)!important;font-size:13px!important;color:var(--pf-grey-600)!important;text-transform:none!important;letter-spacing:0!important;line-height:1.5;margin:0!important;cursor:pointer}

/* pf-header-movil: el logo es una imagen de 300x84 y solo tenia altura fijada
   en escritorio, asi que en movil salia a tamano natural y empujaba los iconos
   fuera de la pantalla. Se limita la altura en los tres breakpoints. */
.pf-logo{min-width:0!important;flex-shrink:1!important}
.pf-logo img{height:60px!important;width:auto!important;max-width:100%!important;display:block}
.pf-navwrap,.pf-actions{min-width:0}
@media (max-width:782px){
  .pf-logo img{height:44px!important}
  .pf-actions .ekit_navsearch-button,
  .pf-actions .elementor-icon,
  .pf-actions .profit-cart{width:40px!important;height:40px!important}
  .pf-actions svg{width:20px!important;height:20px!important}
}
@media (max-width:430px){
  .pf-logo img{height:36px!important}
  .pf-actions .ekit_navsearch-button,
  .pf-actions .elementor-icon,
  .pf-actions .profit-cart{width:36px!important;height:36px!important}
}
/* La etiqueta del consentimiento la repite WPForms; basta con la del check. */
.pf-form-pro .pf-consent>.wpforms-field-label{display:none!important}
/* Columnas de la pagina profesional: apiladas en movil. */
@media (max-width:880px){
  .pf-aliados-aside{width:100%!important}
  .pf-aliados-aside+.e-con{width:100%!important}
}

/* ============ Fluent Forms · clon del estilo de WPForms ============
   Se aplica a cualquier formulario de Fluent Forms del sitio → Ajustes del formulario →
   Diseño → Clase CSS. Colores de marca: #00a100 y #212121. */
.fluentform .frm-fluent-form .ff-el-group{margin-bottom:18px}
.fluentform .frm-fluent-form .ff-el-input--label label{
  font-family:var(--pf-font-ui)!important;text-transform:uppercase;letter-spacing:.08em;
  font-size:11px!important;color:var(--pf-black)!important;font-weight:400!important;margin-bottom:7px;display:block}
.fluentform .frm-fluent-form .ff-el-is-required.asterisk-right label:after{color:var(--pf-green)!important}
.fluentform .frm-fluent-form .ff-el-input--content .ff-el-help-message{
  font-family:var(--pf-font-display)!important;font-size:12px!important;color:var(--pf-grey-600)!important;margin-top:6px}
/* Campos de texto, email y desplegable */
.fluentform .frm-fluent-form .ff-el-form-control{
  border:1px solid var(--pf-grey-300)!important;border-radius:4px!important;
  padding:13px 14px!important;height:48px;width:100%;
  font-family:var(--pf-font-display)!important;font-size:15px!important;
  color:var(--pf-black)!important;background:#fff!important;box-shadow:none!important;
  transition:border-color .12s,box-shadow .12s}
.fluentform .frm-fluent-form textarea.ff-el-form-control{height:auto;min-height:120px}
.fluentform .frm-fluent-form .ff-el-form-control:focus{
  border-color:var(--pf-green)!important;box-shadow:0 0 0 3px rgba(0,161,0,.18)!important;outline:none!important}
.fluentform .frm-fluent-form .ff-el-form-control::placeholder{color:var(--pf-grey-400)!important}
/* Desplegable con flecha propia */
.fluentform .frm-fluent-form select.ff-el-form-control{
  appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:40px!important;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234D4D4D' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:16px!important}
/* Dos columnas: mismo hueco de 18px que en WPForms */
.fluentform .frm-fluent-form .ff-t-container{gap:0 18px}
.fluentform .frm-fluent-form .ff-t-cell{padding:0!important}
@media (max-width:600px){
  .fluentform .frm-fluent-form .ff-t-container{display:block}
  .fluentform .frm-fluent-form .ff-t-cell{width:100%!important}
}
/* Opciones de radio como tarjetas seleccionables */
.fluentform .frm-fluent-form .ff-el-group.ff_list_buttons .ff-el-form-check,
.fluentform .frm-fluent-form .ff-el-form-check{
  display:flex;align-items:center;gap:10px;margin:0 0 10px!important;
  border:1px solid var(--pf-grey-300);border-radius:4px;padding:13px 15px;
  transition:border-color .12s,background-color .12s}
.fluentform .frm-fluent-form .ff-el-form-check:hover{border-color:var(--pf-green);background:#FAFAFA}
.fluentform .frm-fluent-form .ff-el-form-check:has(input:checked){border-color:var(--pf-green);background:rgba(0,161,0,.05)}
.fluentform .frm-fluent-form .ff-el-form-check input[type=radio],
.fluentform .frm-fluent-form .ff-el-form-check input[type=checkbox]{
  accent-color:var(--pf-green);width:17px;height:17px;margin:0!important;flex:0 0 auto}
.fluentform .frm-fluent-form .ff-el-form-check label,
.fluentform .frm-fluent-form .ff-el-form-check-label{
  font-family:var(--pf-font-display)!important;font-size:14px!important;
  color:var(--pf-black)!important;text-transform:none!important;letter-spacing:0!important;
  margin:0!important;cursor:pointer;font-weight:400!important}
/* Consentimiento: mas discreto que las opciones */
.fluentform .frm-fluent-form .pf-consent .ff-el-form-check{border:0;padding:0;align-items:flex-start}
.fluentform .frm-fluent-form .pf-consent .ff-el-form-check:hover{background:transparent}
.fluentform .frm-fluent-form .pf-consent .ff-el-form-check input{width:16px;height:16px;margin-top:2px!important}
.fluentform .frm-fluent-form .pf-consent label{font-size:13px!important;color:var(--pf-grey-600)!important;line-height:1.5}
.fluentform .frm-fluent-form .pf-consent .ff-el-input--label{display:none}
/* Boton de envio */
.fluentform .frm-fluent-form .ff-btn-submit,
.fluentform .frm-fluent-form .ff-el-group.ff-text-left .ff-btn-submit{
  width:100%;background:var(--pf-green)!important;background-color:var(--pf-green)!important;
  color:#fff!important;border:0!important;border-radius:4px!important;
  font-family:var(--pf-font-ui)!important;font-size:12px!important;font-weight:600!important;
  text-transform:uppercase;letter-spacing:.08em;padding:16px 30px!important;min-height:48px;
  cursor:pointer;box-shadow:none!important;transition:background-color .12s}
.fluentform .frm-fluent-form .ff-btn-submit:hover,
.fluentform .frm-fluent-form .ff-btn-submit:focus-visible{
  background:var(--pf-black)!important;background-color:var(--pf-black)!important;color:#fff!important}
/* Errores y mensaje de confirmacion */
.fluentform .frm-fluent-form .error.text-danger,
.fluentform .frm-fluent-form .ff-el-is-error .text-danger{
  font-family:var(--pf-font-display)!important;font-size:12px!important;color:#C62828!important;margin-top:6px}
.fluentform .frm-fluent-form .ff-el-is-error .ff-el-form-control{border-color:#C62828!important}
.ff-message-success{
  background:rgba(0,161,0,.07)!important;border:1px solid var(--pf-green)!important;
  border-radius:4px;padding:22px 24px!important;color:var(--pf-black)!important;
  font-family:var(--pf-font-display)!important}

/* pf-ff-tooltip: fuera el circulo azul de ayuda de Fluent Forms.
   Con helpMessagePlacement = with_label el texto de ayuda se pinta como icono
   .ff-el-tooltip junto a la etiqueta; se oculta el icono y su globo emergente. */
.fluentform .ff-el-tooltip,
.fluentform .ff_tooltip,
.fluentform .ff-el-help-message{display:none!important}
.fluentform .ff_tooltip_content,
.fluentform .ff-el-tooltip-content,
.fluentform .tippy-box,
.fluentform .tippy-popper{display:none!important}
.fluentform .ff-el-input--label{display:flex;align-items:center}

/* pf-icon-list-fallback: misma regla que trae Elementor en
   widget-icon-list.min.css. Sin ella, si esa hoja no se encola, los SVG de las
   listas con iconos se estiran al ancho del contenedor. */
.elementor-icon-list-icon svg{width:var(--e-icon-list-icon-size,1em);height:var(--e-icon-list-icon-size,1em)}
.elementor-icon-list-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}

/* pf-linea-box: fichas de linea del mega menu. Icono en tarjeta oscura fija de
   48x48 a la izquierda y el texto a la derecha. */
.pf-linea-box .elementor-icon-box-wrapper{display:flex;align-items:flex-start;gap:14px;text-align:left}
.pf-linea-box .elementor-icon-box-icon{margin:0!important;flex:0 0 auto}
.pf-linea-box .elementor-icon{
  display:flex!important;align-items:center;justify-content:center;
  width:48px;height:48px;padding:0!important;border-radius:8px;
  background:#181818;transition:background-color .15s ease}
.pf-linea-box .elementor-icon svg,
.pf-linea-box .elementor-icon i{width:18px;height:18px;font-size:18px;fill:var(--pf-green);color:var(--pf-green);transition:fill .15s ease,color .15s ease}
.pf-linea-box:hover .elementor-icon{background:var(--pf-green)}
.pf-linea-box:hover .elementor-icon svg,
.pf-linea-box:hover .elementor-icon i{fill:#fff;color:#fff}
.pf-linea-box .elementor-icon-box-content{flex:1 1 auto;min-width:0}
.pf-linea-box .elementor-icon-box-title{margin:0 0 4px;line-height:1.25}
.pf-linea-box .elementor-icon-box-description{margin:0;line-height:1.5}

/* pf-grid-titulo: los titulos de las rejillas de producto de Xpro heredaban el
   tamano de h2 del tema (36px). Se bajan a escala de tarjeta y se limitan a dos
   lineas, que es lo que hacia que las tarjetas tuvieran alturas desiguales. */
.xpro-woo-product-grid-title,
.xpro-woo-product-grid-title a{
  font-family:var(--pf-font-display)!important;
  font-size:15px!important;
  line-height:1.35!important;
  font-weight:600!important;
  letter-spacing:-.005em!important;
  color:var(--pf-black)!important}
.xpro-woo-product-grid-title{
  margin:0 0 8px!important;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;min-height:2.7em}
.xpro-woo-product-grid-title a:hover{color:var(--pf-green)!important}
/* Precio en la escala de la tarjeta. */
.xpro-woo-product-grid-price-wrapper .price{
  font-family:var(--pf-font-ui)!important;font-size:15px!important;font-weight:600!important;
  color:var(--pf-black)!important;line-height:1.2}
.xpro-woo-product-grid-price-wrapper del{opacity:.45;font-size:13px!important;margin-right:6px}
.xpro-woo-product-grid-price-wrapper ins{text-decoration:none;color:var(--pf-green)!important}

/* Bucle nativo de WooCommerce (categorias y productos relacionados). */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.products .product h2.woocommerce-loop-product__title{
  font-family:var(--pf-font-display)!important;
  font-size:15px!important;line-height:1.35!important;font-weight:600!important;
  color:var(--pf-black)!important;padding:0!important;margin:0 0 6px!important;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;min-height:2.7em}

/* pf-linea-foto: revelado de la foto de producto sobre la franja verde de las
   tarjetas de linea (seccion 'Cinco lineas' de la portada).
   Se activa sola en cuanto la tarjeta contenga un widget Imagen con la clase
   pf-linea-foto; sin imagen no pinta nada y la tarjeta queda como estaba. */
.pf-tile .pf-linea-foto{
  position:absolute!important;right:-6%;bottom:-4%;
  width:52%;max-width:230px;z-index:1;line-height:0;
  opacity:0;transform:translateX(16px) scale(.94);
  transition:opacity .32s cubic-bezier(.2,0,.2,1),transform .32s cubic-bezier(.2,0,.2,1);
  pointer-events:none;margin:0!important}
.pf-tile .pf-linea-foto img{
  width:100%;height:auto;display:block;
  filter:drop-shadow(0 12px 26px rgba(0,0,0,.45))}
.pf-tile:hover .pf-linea-foto,
.pf-tile:focus-within .pf-linea-foto{opacity:1;transform:translateX(0) scale(1)}
/* El texto siempre por encima de la foto. */
.pf-tile>.e-con-inner>.elementor-widget,
.pf-tile>.elementor-widget{position:relative;z-index:2}
/* En tactil no hay hover: la foto solo estorbaria. */
@media (hover:none){
  .pf-tile .pf-linea-foto{display:none!important}
}


/* ============ Nitidez y encuadre de las imagenes del catalogo ============
   Problema de origen: xpro-woo-widgets.css aplica
     .xpro-woo-product-grid-img{min-height:360px;object-fit:cover}
   Esa regla cae sobre el <img> Y sobre el <div> contenedor (comparten clase).
   Con object-fit:cover la foto se recorta y se deforma, y min-height:360px
   obliga a ampliar por encima de su tamano real -> se ve borrosa.
   Aqui se sustituye por una caja de proporcion fija con object-fit:contain.
   Todo queda acotado al catalogo: NO hay ningun selector img global. */

/* --- Cuadricula Xpro (portada, Productos, las 5 lineas, Promociones) --- */
.xpro-woo-product-grid-item .xpro-woo-product-img-section{
  position:relative;
  aspect-ratio:1/1;
  min-height:0;
  background:#fff;
  overflow:hidden}

/* El div contenedor comparte clase con la imagen: se le anula el min-height. */
.xpro-woo-product-grid-item div.xpro-woo-product-grid-img{
  min-height:0}

.xpro-woo-product-img-section img.xpro-woo-product-grid-img{
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  width:100%;
  height:100%;
  min-height:0;
  max-width:100%;
  padding:14px;
  object-fit:contain!important;
  object-position:center center;
  image-rendering:-webkit-optimize-contrast;
  transform:translateZ(0)}

/* La segunda foto (hover de galeria) ya es absoluta en el plugin;
   se iguala para que ocupe exactamente la misma caja. */
.xpro-woo-product-img-section img.xpro-gallery-second-img-url{
  top:0;left:0;width:100%;height:100%}

/* --- Bucle nativo de WooCommerce (tienda, relacionados, categorias) --- */
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img{
  aspect-ratio:1/1;
  width:100%;
  height:auto;
  object-fit:contain!important;
  object-position:center center;
  image-rendering:-webkit-optimize-contrast;
  background:#fff}

/* --- Ficha de producto: galeria principal --- */
.woocommerce div.product .woocommerce-product-gallery__image img{
  object-fit:contain!important;
  image-rendering:-webkit-optimize-contrast}
.woocommerce div.product .flex-control-thumbs li img{
  aspect-ratio:1/1;
  object-fit:contain!important;
  image-rendering:-webkit-optimize-contrast;
  background:#fff}

@media (max-width:767px){
  .xpro-woo-product-img-section img.xpro-woo-product-grid-img{padding:10px}
}

/* El navegador reanida un <a> alrededor de las imagenes: no debe afectar la caja. */
.xpro-woo-product-img-section>a.xpro-woo-product-grid-title-wrapper{position:static;display:block}

/* ============ Aviso de linea de uso profesional ============
   Se pinta al final de la pagina Linea Anabolicos cuando la visita alguien sin
   cuenta habilitada (ver profit-habilitacion.php). */
.pf-aviso-pro{
  max-width:760px;margin:0 auto 72px;padding:44px 40px;
  background:#212121;border-radius:16px;text-align:center;
  box-shadow:0 18px 48px rgba(0,0,0,.18)}
.pf-aviso-pro__eyebrow{
  display:inline-block;margin-bottom:14px;
  font-family:'Encode Sans Expanded',system-ui,sans-serif;
  font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:#5FD45F}
.pf-aviso-pro h3{
  font-family:'Geist',system-ui,sans-serif;
  font-size:26px;line-height:1.25;font-weight:700;color:#fff;margin:0 0 14px}
.pf-aviso-pro p{
  font-size:15px;line-height:1.65;color:rgba(255,255,255,.72);margin:0 auto 26px;max-width:56ch}
.pf-aviso-pro .pf-btn{
  display:inline-block;padding:15px 30px;border-radius:10px;
  background:#00a100;color:#fff!important;text-decoration:none;
  font-family:'Encode Sans Expanded',system-ui,sans-serif;
  font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  transition:background-color .18s ease,transform .18s ease}
.pf-aviso-pro .pf-btn:hover{background:#00b800;transform:translateY(-1px)}
@media (max-width:600px){
  .pf-aviso-pro{padding:32px 22px;margin-bottom:48px}
  .pf-aviso-pro h3{font-size:21px}
}

/* ============ Cuadricula de producto: maquetacion propia ============
   POR QUE EXISTE ESTE BLOQUE

   El widget de Xpro monta la rejilla con CubePortfolio, una libreria que
   coloca cada tarjeta en posicion absoluta desde JavaScript. En este sitio
   esa libreria arranca pero NUNCA termina: no llega a anadir la clase
   .cbp-ready ni a escribir los estilos en linea de cada tarjeta. Consecuencias
   medidas el 14-09-2026 en /productos/ a 1440 px:

   - xpro-woo-widgets.css trae
       .xpro-woo-product-grid-main:not(.cbp-ready) .cbp-item{opacity:0;visibility:hidden}
     asi que las 33 tarjetas estaban INVISIBLES para el visitante.
   - .cbp-item se queda en display:inline-block sin ancho, y cada tarjeta se
     encogia al tamano de su texto: anchos de 146 a 201 px y 25 alturas
     distintas entre 217 y 372 px.
   - .cbp-wrapper-outer se queda con height:400px y overflow:hidden, que
     recorta la rejilla.

   La solucion no depende de esa libreria: se maqueta con CSS Grid nativo y se
   anulan con !important las propiedades que CubePortfolio escribiria, de modo
   que el resultado es el mismo arranque o no arranque su JavaScript. */

/* --- Contenedor --- */
.xpro-woo-product-grid-main.cbp{height:auto!important}

.xpro-woo-product-grid-main .cbp-wrapper-outer{
  height:auto!important;
  overflow:visible!important}

.xpro-woo-product-grid-main .cbp-wrapper{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:30px 26px;
  width:100%!important;
  height:auto!important;
  position:static!important;
  transform:none!important}

/* --- Tarjetas: siempre visibles y todas del mismo alto --- */
.xpro-woo-product-grid-main:not(.cbp-ready) .cbp-item,
.xpro-woo-product-grid-main .cbp-item{
  opacity:1!important;
  visibility:visible!important;
  position:relative!important;
  display:flex!important;
  flex-direction:column;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  left:auto!important;
  top:auto!important;
  margin:0!important;
  transform:none!important;
  overflow:visible!important;
  transition:transform .2s cubic-bezier(.2,0,.2,1)}

.xpro-woo-product-grid-main .cbp-item:hover{transform:translateY(-3px)}

.xpro-woo-product-grid-main .cbp-item-wrapper{
  display:flex!important;
  flex-direction:column;
  flex:1 1 auto;
  width:100%;
  height:100%}

/* La caja de la imagen conserva su proporcion 1:1 y no se estira. */
.xpro-woo-product-grid-main .cbp-item-wrapper>.xpro-woo-product-grid-img{
  flex:0 0 auto;
  width:100%}

/* El bloque de texto ocupa el resto y empuja el precio al fondo, de modo que
   todos los precios quedan en la misma linea horizontal. */
.xpro-woo-product-grid-main .xpro-woo-product-grid-content-sec{
  display:flex!important;
  flex-direction:column;
  flex:1 1 auto;
  width:100%}

.xpro-woo-product-grid-main .xpro-woo-product-grid-price-wrapper{
  margin-top:auto;
  padding-top:6px}

/* --- Titulo: 15 px, interlineado 1.25, dos lineas exactas ---
   El corte a dos lineas necesita display:-webkit-box. La regla anterior lo
   declaraba sin !important y el tema lo pisaba con flow-root, asi que el
   recorte no llegaba a aplicarse nunca. */
.xpro-woo-product-grid-main .xpro-woo-product-grid-title,
.xpro-woo-product-grid-main .xpro-woo-product-grid-title a{
  font-size:15px!important;
  line-height:1.25!important;
  font-weight:600!important}

.xpro-woo-product-grid-main .xpro-woo-product-grid-title{
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
  min-height:2.5em!important;
  margin:0 0 6px!important}

/* --- Responsive: 4 columnas / 2 en tableta / 1 en movil ---
   OJO: aqui manda el CSS, no el ajuste del widget. CubePortfolio no llega a
   maquetar en este sitio (ver arriba), asi que cambiar column_grid_mobile en
   Elementor no hace nada por si solo. Los dos se mantienen sincronizados para
   que el editor no enganie a quien lo abra. --- */
@media (max-width:1024px){
  .xpro-woo-product-grid-main .cbp-wrapper{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:26px 20px}
}
@media (max-width:600px){
  .xpro-woo-product-grid-main .cbp-wrapper{
    grid-template-columns:repeat(1,minmax(0,1fr));
    gap:22px 14px}
  .xpro-woo-product-grid-main .xpro-woo-product-grid-title,
  .xpro-woo-product-grid-main .xpro-woo-product-grid-title a{font-size:14px!important}
}

/* ============ Barra de filtro por linea ============
   Shortcode [pf_filtro_lineas] encima de la cuadricula de /productos/.
   Sin JS son enlaces a cada pagina de linea; con JS filtran en el sitio. */
.pf-filtro{margin:0 0 30px}
.pf-filtro__lista{
  display:flex;flex-wrap:wrap;gap:10px;
  margin:0;padding:0;list-style:none}
.pf-filtro__lista li{margin:0;padding:0}
.pf-filtro__lista li::marker{content:none}

.pf-filtro__pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 18px;border-radius:999px;
  background:#fff;border:1.5px solid #E3E6EA;
  font-family:'Encode Sans Expanded',system-ui,sans-serif;
  font-size:12px;font-weight:600;letter-spacing:.03em;
  color:#212121!important;text-decoration:none!important;
  cursor:pointer;white-space:nowrap;
  transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease}
.pf-filtro__pill:hover{border-color:#212121;transform:translateY(-1px)}
.pf-filtro__pill:focus-visible{outline:2px solid #00a100;outline-offset:2px}

.pf-filtro__n{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:22px;height:20px;padding:0 6px;border-radius:999px;
  background:#F1F3F5;color:#6B7280;
  font-size:11px;font-weight:600;line-height:1;
  transition:background-color .18s ease,color .18s ease}

.pf-filtro__pill.is-activa{
  background:#212121;border-color:#212121;color:#fff!important;
  box-shadow:0 6px 16px rgba(33,33,33,.18)}
.pf-filtro__pill.is-activa .pf-filtro__n{background:rgba(255,255,255,.16);color:#fff}

.pf-filtro__vacio{
  margin:22px 0 0;color:#6B7280;font-size:14px}

/* Tarjeta filtrada: fuera de la rejilla, sin hueco. */
.xpro-woo-product-grid-main .cbp-item.pf-oculto{display:none!important}

@media (max-width:600px){
  /* Sin margenes negativos: sacaban la barra del contenedor y hacian
     desbordar la pagina a lo ancho. La barra se desplaza dentro de su ancho. */
  .pf-filtro{margin-bottom:22px;
    max-width:100%;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none}
  .pf-filtro::-webkit-scrollbar{display:none}
  .pf-filtro__lista{flex-wrap:nowrap}
  .pf-filtro__pill{padding:10px 15px;font-size:11.5px}
}

/* ============ Boton de compra al pie de la tarjeta ============
   catalogo.js saca el boton de encima de la foto y lo pega al final de
   .cbp-item-wrapper, y marca la tarjeta con .pf-cta-abajo. Todo lo de aqui
   cuelga de esa clase: si el JS no corre, la tarjeta conserva el hover
   original de Xpro en vez de descuadrarse. */

.xpro-woo-product-grid-item.pf-cta-abajo .xpro-woo-product-grid-btn-section{
  position:static!important;
  transform:none!important;
  opacity:1!important;
  visibility:visible!important;
  top:auto!important;bottom:auto!important;left:auto!important;right:auto!important;
  width:100%!important;max-width:100%!important;
  margin:12px 0 0!important;
  z-index:auto!important;
  transition:none!important}

/* El hover de Xpro ya no tiene que mover nada. */
.xpro-woo-product-grid-item.pf-cta-abajo:hover .xpro-woo-product-grid-btn-section{
  bottom:auto!important;opacity:1!important;visibility:visible!important}

.xpro-woo-product-grid-item.pf-cta-abajo .xpro-woo-product-grid-add-to-cart-btn{
  width:100%!important;margin:0!important}

.xpro-woo-product-grid-item.pf-cta-abajo .xpro-woo-product-grid-add-to-cart-btn .button{
  display:flex!important;align-items:center;justify-content:center;
  width:100%!important;min-height:44px;
  padding:12px 14px!important;
  border:0!important;border-radius:10px!important;
  background:#00a100!important;color:#fff!important;
  font-family:'Encode Sans Expanded',system-ui,sans-serif!important;
  font-size:11.5px!important;font-weight:600!important;
  letter-spacing:.06em!important;text-transform:uppercase!important;
  line-height:1.2!important;text-align:center!important;text-decoration:none!important;
  white-space:normal!important;
  transition:background-color .18s ease,transform .18s ease}

.xpro-woo-product-grid-item.pf-cta-abajo .xpro-woo-product-grid-add-to-cart-btn .button:hover{
  background:#00b800!important;transform:translateY(-1px)}

.xpro-woo-product-grid-item.pf-cta-abajo .xpro-woo-product-grid-add-to-cart-btn .button.loading{
  opacity:.7}

/* Tras agregar por AJAX, Woo cuela un enlace "Ver carrito" que haria crecer
   solo esa tarjeta y romperia la alineacion de la fila. */
.xpro-woo-product-grid-item .added_to_cart{display:none!important}

/* Ya no hay boton flotando sobre la foto: se puede recuperar el recorte. */
.xpro-woo-product-grid-item.pf-cta-abajo .xpro-woo-product-img-section{overflow:hidden}

/* "Desde" del rango de precios en el catalogo. */
.xpro-woo-product-grid-price-wrapper .pf-desde{
  font-family:'Encode Sans Expanded',system-ui,sans-serif;
  font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  color:#6B7280;margin-right:3px}

@media (max-width:600px){
  /* Altura fija del boton: en pantallas estrechas "SELECCIONAR OPCIONES" cae a dos
     lineas y "AGREGAR AL CARRITO" no siempre, y esa diferencia descuadraba la fila.
     Con alto fijo todas las tarjetas miden lo mismo sea cual sea la etiqueta. */
  .xpro-woo-product-grid-item.pf-cta-abajo .xpro-woo-product-grid-add-to-cart-btn .button{
    min-height:46px!important;height:46px!important;
    padding:8px 8px!important;
    font-size:10px!important;letter-spacing:.02em!important;line-height:1.15!important;
    overflow:hidden!important}
}

/* ============ Barra de catalogo: buscador y rango de precio ============
   Acompana a las pildoras de linea. Todo el filtrado es en el navegador
   (filtro.js); aqui solo va el aspecto. */

.pf-barra{margin:0 0 30px}
/* display:flex de mas abajo le ganaba al atributo hidden de la UA. */
.pf-barra [hidden]{display:none!important}
.pf-barra__fila{
  display:flex;flex-wrap:wrap;align-items:flex-end;gap:18px 26px;
  margin:0 0 20px}

/* --- Buscador --- */
.pf-buscador{position:relative;flex:1 1 320px;min-width:0}
.pf-buscador__lupa{
  position:absolute;left:15px;top:50%;transform:translateY(-50%);
  color:#9AA1AA;pointer-events:none}
.pf-buscador__campo{
  width:100%!important;height:50px!important;min-height:0!important;
  max-width:none!important;margin:0!important;
  padding:0 40px 0 42px!important;
  border:1.5px solid #E3E6EA!important;border-radius:12px!important;
  background:#fff!important;color:#212121!important;
  font-family:'Geist',system-ui,sans-serif;font-size:15px;
  box-shadow:none!important;
  transition:border-color .18s ease,box-shadow .18s ease}
.pf-buscador__campo::placeholder{color:#9AA1AA}
.pf-buscador__campo:focus{
  outline:none;
  border-color:#00a100!important;
  box-shadow:0 0 0 3px rgba(0,161,0,.12)!important}
.pf-buscador__campo::-webkit-search-cancel-button{display:none}
.pf-buscador__limpiar{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  width:28px!important;height:28px!important;min-height:0!important;
  padding:0!important;border:0!important;border-radius:50%!important;
  background:#F1F3F5!important;color:#6B7280!important;
  font-size:17px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center}
.pf-buscador__limpiar:hover{background:#E3E6EA!important;color:#212121!important}

/* --- Rango de precio --- */
.pf-precio{flex:0 1 300px;min-width:220px}
.pf-precio__cab{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  margin:0 0 12px}
.pf-precio__titulo{
  font-family:'Encode Sans Expanded',system-ui,sans-serif;
  font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:#6B7280}
.pf-precio__valor{
  font-family:'Encode Sans Expanded',system-ui,sans-serif;
  font-size:12.5px;font-weight:600;color:#212121;
  font-variant-numeric:tabular-nums;white-space:nowrap}

.pf-precio__pista{
  position:relative;height:22px;cursor:pointer;
  touch-action:none}
.pf-precio__pista::before{
  content:"";position:absolute;left:0;right:0;top:9px;height:4px;
  background:#E3E6EA;border-radius:999px}
.pf-precio__recorrido{
  position:absolute;top:9px;height:4px;border-radius:999px;
  background:#00a100;pointer-events:none}

/* Los dos <input type=range> se superponen sobre la misma pista. El input no
   captura el raton (dejaria muerto al otro tirador), solo lo hace el tirador. */
.pf-precio__pista input[type=range]{
  position:absolute;left:0;top:0;width:100%;height:22px;margin:0;
  -webkit-appearance:none;appearance:none;
  background:transparent;pointer-events:none}
.pf-precio__pista input[type=range]:focus{outline:none}
.pf-precio__pista input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;pointer-events:auto;
  width:20px;height:20px;border-radius:50%;
  background:#fff;border:2px solid #212121;
  box-shadow:0 2px 6px rgba(0,0,0,.18);cursor:grab}
.pf-precio__pista input[type=range]::-webkit-slider-thumb:active{cursor:grabbing;border-color:#00a100}
.pf-precio__pista input[type=range]::-moz-range-thumb{
  pointer-events:auto;
  width:18px;height:18px;border-radius:50%;
  background:#fff;border:2px solid #212121;
  box-shadow:0 2px 6px rgba(0,0,0,.18);cursor:grab}
.pf-precio__pista input[type=range]:focus-visible::-webkit-slider-thumb{
  outline:2px solid #00a100;outline-offset:2px}

/* --- Pie: conteo y limpiar --- */
.pf-barra__pie{
  display:flex;align-items:center;gap:14px;margin:16px 0 0}
.pf-barra__conteo{
  font-family:'Encode Sans Expanded',system-ui,sans-serif;
  font-size:12px;font-weight:600;letter-spacing:.04em;color:#6B7280}
.pf-barra__reset{
  padding:0;border:0;background:none;cursor:pointer;
  font-family:'Encode Sans Expanded',system-ui,sans-serif;
  font-size:12px;font-weight:600;letter-spacing:.04em;
  color:#00a100;border-bottom:1px solid transparent}
.pf-barra__reset:hover{border-bottom-color:#00a100}

@media (max-width:768px){
  .pf-barra__fila{gap:16px}
  .pf-buscador{flex:1 1 100%}
  .pf-precio{flex:1 1 100%;min-width:0}
  .pf-buscador__campo{height:46px;font-size:14px}
}


/* ============ Jerarquia de encabezados ============
   La rejilla de Xpro pasa a h3 (producto) y p (linea) desde profit-seo.php:
   los estilos van por clase, asi que solo hay que reponer el margen que el
   navegador da por defecto a <p>. */
.xpro-woo-product-grid-content-sec p.xpro-woo-product-grid-category-wrapper{
  margin:0 0 6px!important}

/* H2 de la franja de confianza: el contenedor es flex en fila con wrap, asi
   que este hijo al 100% se lleva su propia linea encima de los distintivos. */
.pf-h2-confianza{flex:0 0 100%!important;max-width:100%!important;margin:0 0 4px!important}


/* En movil la barra de anuncio solo muestra el primer mensaje. Va en una
   sola linea sin partirse, y antes se cortaba antes del importe. */
@media (max-width:600px){
  .pf-announce__seg + .pf-announce__seg{display:none!important}
  /* Y aun asi, el primer mensaje a 15 px mide 442 px y el hueco son 358. */
  /* Ojo: .xpro-theme-builder-header .elementor-widget-heading
     .elementor-heading-title ya fuerza 15px!important aqui mismo. Hacen falta
     las tres clases para ganarle. */
  .xpro-theme-builder-header .pf-announce .elementor-heading-title,
  .pf-announce .elementor-heading-title{
    font-size:11px!important;letter-spacing:.03em!important}
}

/* ---------------------------------------------------------------------------
   Descripcion breve bajo el nombre, en las tarjetas del catalogo.
   La inserta pf_tarjeta_descripcion_rejilla() (profit-shop.php) a partir de la
   descripcion corta del producto.
   Se recorta a tres lineas para que las tarjetas de una misma fila midan
   parecido; el texto entero sigue en el HTML y en la ficha.
--------------------------------------------------------------------------- */
.xpro-woo-product-grid-content-sec .pf-tarjeta__desc{
    margin:2px 0 10px!important;
    font-size:13px;
    line-height:1.45;
    color:#5b5b5b;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    line-clamp:3;
    overflow:hidden;
}
@media (max-width:600px){
    .xpro-woo-product-grid-content-sec .pf-tarjeta__desc{
        font-size:12px;
        line-height:1.4;
        margin:2px 0 8px!important;
    }
}

/* ---------------------------------------------------------------------------
   La foto de la tarjeta lleva a la ficha del producto.

   Xpro ya envuelve las dos imagenes en el mismo <a> que el titulo, pero pinta
   encima .xpro-woo-product-img-section::after: una capa con inset 0 y
   z-index 1, de fondo transparente (#fff0), pensada para oscurecer la foto al
   pasar el raton en los layouts 2, 3, 5, 6, 7 y 10. Este catalogo usa el
   layout 1, asi que esa capa no pinta nada... pero se comia todos los clics:
   el pseudo-elemento pertenece a .xpro-woo-product-img-section, que esta FUERA
   del enlace, asi que el clic no encontraba ningun <a> encima y no pasaba nada.

   Con pointer-events:none el clic atraviesa la capa y llega a la imagen, que
   si esta dentro del enlace. El :hover de la seccion no depende de ella, asi
   que el cambio de foto al pasar el raton sigue igual.
--------------------------------------------------------------------------- */
.xpro-woo-product-grid-item .xpro-woo-product-img-section::after{
    pointer-events:none;
}
.xpro-woo-product-grid-item .xpro-woo-product-img-section,
.xpro-woo-product-grid-item .xpro-woo-product-grid-title-wrapper,
.xpro-woo-product-grid-item .xpro-woo-product-grid-img img{
    cursor:pointer;
}


/* Tabla de dos columnas (Linea Ortomolecular). El min-width de 560 px de
   .pf-table esta pensado para las tablas de 3 y 4 columnas; con dos sobra y
   obligaba a arrastrar la tabla de lado en el telefono. */
.pf-table.pf-table--2col table{min-width:0}

/* ===========================================================================
   AJUSTES RESPONSIVE — móvil y tableta
   Añadido el 16/09/2026. Todo vive aquí y no en cada widget de Elementor, para
   que se pueda revisar y revertir de un solo sitio.

   Medido antes de tocar nada, en 390 px: no había desbordamiento horizontal,
   el relleno lateral ya era de 16 px, los botones ya median 48-56 px de alto y
   el acordeón ya ocupaba el 100 % con pestañas de 68 px. Eso NO se toca.
   Lo que sí faltaba está abajo.
=========================================================================== */

/* --- Titular principal en móvil ------------------------------------------
   El H1 salía a 32 px en todas las páginas y partía palabras en pantallas de
   390 px. 26 px entra en el rango pedido (24-28) y mantiene la jerarquía
   frente al H2, que ya estaba en 25 px y se deja como está. */
@media (max-width: 767px) {
    h1.elementor-heading-title,
    .elementor-widget-heading h1.elementor-heading-title,
    h1.entry-title,
    h1.product_title {
        font-size: 26px !important;
        line-height: 1.22 !important;
    }
}

/* --- Botones de llamada a la acción en móvil ------------------------------
   En el banner los botones quedaban pegados a la izquierda y con anchos
   distintos (199 y 214 px). A ancho completo se centran solos, se alinean
   entre sí y el área de toque pasa de cómoda a evidente. */
@media (max-width: 767px) {
    .elementor-widget-button {
        width: 100% !important;
        max-width: 100% !important;
    }
    .elementor-widget-button .elementor-button {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 48px;
    }
    /* La cabecera, el pie y las tarjetas del catálogo conservan su ancho:
       ahí el botón ya estaba resuelto y estirarlo rompería la maqueta. */
    .xpro-theme-builder-header .elementor-widget-button,
    .xpro-theme-builder-footer .elementor-widget-button,
    .cbp-item .elementor-widget-button {
        width: auto !important;
    }
    .xpro-theme-builder-header .elementor-widget-button .elementor-button,
    .xpro-theme-builder-footer .elementor-widget-button .elementor-button,
    .cbp-item .elementor-widget-button .elementor-button {
        width: auto;
    }
}

/* --- Menú móvil: cajón oscuro --------------------------------------------
   ElementsKit abría el cajón con fondo transparente y enlaces en negro sobre
   la propia página, que se transparentaba detrás. Se pinta en #181818 y todo
   el texto de dentro pasa a blanco, incluido el megamenú de líneas que va
   anidado en el mismo cajón.

   1024 px es el punto donde ElementsKit convierte el menú en hamburguesa
   (ekit_menu_responsive_tablet). Por encima de ese ancho no aplica nada de
   esto y el menú de escritorio queda intacto. */
@media (max-width: 1024px) {
    .elementskit-menu-offcanvas-elements,
    .elementskit-menu-offcanvas-elements .elementskit-nav-identity-panel {
        background-color: #181818 !important;
    }
    .elementskit-menu-offcanvas-elements a.ekit-menu-nav-link,
    .elementskit-menu-offcanvas-elements .elementskit-menu-close,
    .elementskit-menu-offcanvas-elements .elementskit-megamenu-panel .elementor-heading-title,
    .elementskit-menu-offcanvas-elements .elementskit-megamenu-panel .elementor-icon-box-title,
    .elementskit-menu-offcanvas-elements .elementskit-megamenu-panel .elementor-icon-box-description,
    .elementskit-menu-offcanvas-elements .elementskit-megamenu-panel p,
    .elementskit-menu-offcanvas-elements .elementskit-megamenu-panel a {
        color: #FFFFFF !important;
    }
    .elementskit-menu-offcanvas-elements a.ekit-menu-nav-link svg,
    .elementskit-menu-offcanvas-elements .elementskit-menu-close svg {
        fill: #FFFFFF !important;
        color: #FFFFFF !important;
    }
    /* El megamenú trae su propio fondo claro; dentro del cajón estorba. */
    .elementskit-menu-offcanvas-elements .elementskit-megamenu-panel,
    .elementskit-menu-offcanvas-elements .elementskit-megamenu-panel .e-con,
    .elementskit-menu-offcanvas-elements .elementskit-megamenu-panel .e-con-inner {
        background-color: transparent !important;
    }
    /* Una línea de separación tenue para que se distingan los enlaces. */
    .elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li + li {
        border-top: 1px solid rgba(255, 255, 255, .12);
    }
    /* Área de toque holgada en cada entrada del menú. */
    .elementskit-menu-offcanvas-elements a.ekit-menu-nav-link {
        min-height: 48px;
        display: flex;
        align-items: center;
    }
}

/* --- Áreas de toque en móvil --------------------------------------------
   Medido en la ficha de PROFIT C a 390 px: los selectores de gramaje salían a
   35 px de alto, y elegir la presentación es justo el toque que decide la
   compra. La hamburguesa y la X del menú andaban en 29-30 px.
   Se agranda el ÁREA, no el icono ni la letra. */
@media (max-width: 767px) {
    /* El plugin escribe min-height:24px EN LINEA y su CSS usa dos clases, asi
       que hay que igualar o superar esa especificidad: con una sola clase el
       !important perdia y el selector salia a 27 px, mas pequenio todavia. */
    .cfvsw-swatches-container .cfvsw-swatches-option,
    .woocommerce div.product .cfvsw-swatches-container .cfvsw-swatches-option {
        min-height: 44px !important;
        min-width: 44px !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 12px 16px !important;
    }
    .elementskit-menu-hamburger,
    .elementskit-menu-offcanvas-elements .elementskit-menu-close {
        min-width: 44px;
        min-height: 44px;
        display: flex !important;
        align-items: center;
        justify-content: center;
    }
}

/* ---------- Tablas comparativas en movil ----------
   La tabla base lleva min-width:560px, asi que dentro de un envoltorio de
   342 px obligaba a arrastrar de lado para leerla. Con 2 o 3 columnas cabe
   entera si se suelta ese minimo y se ajusta la tipografia. Las de 4 columnas
   (Inicio y Suplementos) siguen desplazandose: apretarlas a 85 px por columna
   seria ilegible. :has() elige cual es cual; si el navegador no lo soporta,
   la tabla de 4 columnas se estrecha pero no se rompe. */
@media (max-width: 600px) {
    .pf-table table {
        min-width: 0;
        font-size: 12.5px;
    }
    .pf-table th,
    .pf-table td {
        padding: 10px 8px;
    }
    .pf-table thead th {
        font-size: 10px;
        letter-spacing: .04em;
    }
    .pf-table table:has(thead th:nth-child(4)) {
        min-width: 520px;
    }
}

/* ---------- Mi cuenta / checkout: areas de toque ----------
   El ojo de "mostrar contrasenia" mide 13x13 px. En vez de agrandar el icono
   (quedaria enorme junto al campo) se le cuelga un ::before invisible de 44x44 (el ::after lo usa WooCommerce para dibujar el ojo con su tipografia de iconos; pisarlo lo dejaba en 0x0):
   el boton ya es position:absolute, asi que sirve de bloque contenedor y el
   area de toque crece sin que cambie nada a la vista.
   La casilla "Recuerdame" se pulsa por su etiqueta, que medía 26 px de alto. */
@media (max-width: 767px) {
    .woocommerce .password-input .show-password-input::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        width: 44px;
        height: 44px;
        transform: translate(-50%, -50%);
    }
    .woocommerce-form__label-for-checkbox {
        display: flex !important;
        align-items: center;
        min-height: 44px;
        gap: 8px;
    }
    .woocommerce-form__label-for-checkbox input[type="checkbox"] {
        width: 20px;
        height: 20px;
        margin: 0;
        flex: 0 0 auto;
    }
}

/* ---------- Carrito en movil: areas de toque ----------
   La equis de "quitar" mide 26x26 y el campo de cantidad 74x35. La equis se
   dibuja con ::before (tipografia de iconos), asi que el area invisible va en
   ::after; al reves borraria el icono, como paso con el ojo de la contrasenia. */
@media (max-width: 767px) {
    .woocommerce a.remove::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        width: 44px;
        height: 44px;
        transform: translate(-50%, -50%);
    }
    .woocommerce .quantity .qty,
    .woocommerce table.cart td.product-quantity .qty {
        min-height: 44px;
    }
}

/* ---------- Listas desplegables en movil ----------
   El desplegable de /contacto/ media 43 px: un pelo por debajo del minimo
   comodo de 44. Se iguala en todo el sitio sin tocar su aspecto. */
@media (max-width: 767px) {
    select,
    .elementor-field-type-select select,
    .woocommerce select,
    .wpforms-field select,
    .mf-input select {
        min-height: 44px;
    }
}

/* ---------- Casilla de consentimiento (Fluent Forms) ----------
   La etiqueta, que es lo que se pulsa, medía 39 px de alto. */
@media (max-width: 767px) {
    .ff-el-form-check-label {
        display: flex !important;
        align-items: center;
        gap: 8px;
        min-height: 44px;
    }
    .ff-el-form-check-label input[type="checkbox"] {
        flex: 0 0 auto;
        margin: 0;
    }
}

/* ---------- Tableta (768-1024): escalon intermedio ----------
   Medido: H1 58 px en escritorio, 40 en tableta, 26 en movil; H2 30 y 30 y 25.
   El H2 no bajaba nada entre escritorio y tableta, y el H1 de 40 px pesaba
   demasiado en 768. Este escalon deja la progresion 58 / 34 / 26 y 30 / 27 / 25.
   El menu hamburguesa aparece hasta 1024 px, asi que su area de toque de 44 px
   tiene que llegar hasta ahi y no cortarse en 767. */
@media (min-width: 768px) and (max-width: 1024px) {
    h1.elementor-heading-title,
    .elementor-widget-heading h1.elementor-heading-title,
    h1.entry-title,
    h1.product_title {
        font-size: 34px !important;
        line-height: 1.2 !important;
    }
    h2.elementor-heading-title,
    .elementor-widget-heading h2.elementor-heading-title {
        font-size: 27px !important;
        line-height: 1.25 !important;
    }
}
@media (min-width: 768px) and (max-width: 1024px) {
    .elementskit-menu-hamburger,
    .elementskit-menu-offcanvas-elements .elementskit-menu-close {
        min-width: 44px;
        min-height: 44px;
        display: flex !important;
        align-items: center;
        justify-content: center;
    }
}
.pf-hero{isolation:isolate}
/* El overlay de Elementor se dibuja en ::before del contenedor. El ajuste de
   modo de fusion del panel no llego a salir en el CSS generado (medido:
   mix-blend-mode normal), asi que se fuerza aqui. */
.pf-hero::before{mix-blend-mode:multiply!important}
/* ::after era una franja verde inclinada decorativa; sobre una foto sobraba.
   Ahora es el velo que oscurece SOLO el lado del texto. Sin el, el blanco
   caia a 4,3:1 sobre el ventanal y la norma pide 4,5. Con el: 7,3:1. */
.pf-hero::after{content:"";position:absolute;inset:0;right:auto;top:auto;width:100%;height:100%;left:0;background:linear-gradient(90deg,rgba(24,24,24,.5) 0%,rgba(24,24,24,0) 62%);transform:none;pointer-events:none;z-index:0}
@media (max-width:767px){.pf-hero::after{background:linear-gradient(180deg,rgba(24,24,24,.55) 0%,rgba(24,24,24,.2) 55%,rgba(24,24,24,.5) 100%)}}

/* ---------- Hero: colores de texto sobre la foto ----------
   Medido sobre la imagen ya compuesta con overlay y velo: el gris #B0B0B0 del
   parrafo caia a 3,4:1 y el verde #00a100 de los contadores a 2,8:1. Los dos
   funcionaban sobre el fondo plano #212121 de antes, no sobre una foto.
   Con estos valores: parrafo 5,5:1 y numeros 5,1:1. El verde claro no es
   inventado, es --pf-green-300, que ya estaba en la paleta. */
.pf-hero .elementor-widget-text-editor,
.pf-hero .elementor-widget-text-editor p{color:#E0E0E0!important}
.pf-hero .elementor-counter-number,
.pf-hero .elementor-counter-number-prefix,
.pf-hero .elementor-counter-number-suffix{color:var(--pf-green-300)!important}

/* ---------- Hero: panel derecho ----------
   Era un recuadro opaco #2C2C2C pensado para un fondo plano; sobre la foto
   tapaba justo a la persona del gimnasio. Se vuelve transparente para que se
   vea la imagen limpia: sin fondo, sin borde y sin la etiqueta. El contenedor se deja en su sitio como espacio vacio para que la columna de texto conserve su ancho y el largo de linea del titular no se dispare. */
.pf-hero .elementor-element-90588df{background-color:transparent!important;border:0!important}
.pf-hero .elementor-element-90588df .elementor-heading-title{display:none!important}

/* En movil el texto ocupa todo el ancho, asi que un degradado de izquierda a
   derecha deja la mitad de cada linea sobre la zona menos oscura. El ajuste
   "angulo en movil" del panel de Elementor no llego al CSS generado (medido:
   seguia en 90deg), igual que paso con el modo de fusion. Se fuerza a vertical. */
@media (max-width:767px){
  .pf-hero::before{background-image:linear-gradient(180deg,rgba(0,161,0,.7) 0%,rgba(24,24,24,.92) 100%)!important}
}

/* El antetitulo "Entrena duro. Recupera mejor." va en verde claro a 11 px, y a
   ese tamanio la norma pide 4,5:1. Con --pf-green-300 medía 3,7 / 3,8 / 4,2 en
   escritorio, tableta y movil. Al acortarse el hero en tableta la foto de detras cambio y el #8CE68C se quedaba en 4,32. Este da 5,1 / 4,8 / 5,9
   sin salirse de la familia. Solo aplica dentro del hero. */
.pf-hero .elementor-element-96ccd1d .elementor-heading-title{color:#9CF09C!important}
/* En escritorio el contenedor vacio sigue siendo util: sostiene la segunda
   columna y evita que el titular se estire a todo el ancho. Pero en tableta y
   movil los bloques se apilan, asi que alli eran 420 px de nada al final del
   hero. Medido: la seccion pasa de 1391 a 971 px en tableta y de 1374 a 954 en
   movil. */
@media (max-width:1024px){.pf-hero .elementor-element-90588df{display:none!important}}

/* ---------- Hero adaptado a tableta y movil ----------
   Al ocultar el panel derecho quedo un problema de herencia: la columna de
   texto tiene un ancho fijo de 366 px con flex-grow:0, asi que en tableta
   ocupaba la mitad de un hero de 705 px y la otra mitad quedaba vacia. Por eso
   los dos botones se apilaban (199+12+214 = 425 no cabe en 366) y los dos datos
   tambien. Con el ancho completo entran en linea y el hero se acorta. */
@media (max-width:1024px){
    .pf-hero .elementor-element-ca8928c{
        width:100%!important;
        max-width:100%!important;
        flex-basis:auto!important;
    }
    /* A 705 px de ancho el parrafo saldria a ~95 caracteres por linea, que se
       lee mal. Se limita a una medida comoda sin tocar el resto. */
    .pf-hero .elementor-element-0f28024{max-width:58ch}
}
/* En movil los dos datos se apilaban porque cada contenedor iba al 100%.
   En dos columnas el hero baja lo suficiente para entrar en una pantalla. */
@media (max-width:767px){
    .pf-hero .elementor-element-de897a7,
    .pf-hero .elementor-element-d31e999{
        flex:1 1 0!important;
        width:auto!important;
        min-width:0!important;
    }
    .pf-hero .elementor-counter-number,
    .pf-hero .elementor-counter-number-prefix,
    .pf-hero .elementor-counter-number-suffix{font-size:44px!important}
}

/* ---------- Icono hamburguesa: arreglo de un error propio ----------
   Al agrandar el area de toque a 44x44 se le puso display:flex al boton, y flex
   por defecto ordena en FILA: las tres barras del icono, que son hijas directas,
   pasaron a ponerse una al lado de la otra (medido: x = 9, 18 y 27) en vez de
   apiladas. De ahi el recuadro con dos rayitas sueltas.
   La direccion en columna las devuelve a su sitio. De paso se quita el borde
   gris que trae ElementsKit por defecto, porque los otros iconos de la cabecera
   (buscar, cuenta, carrito) no lo llevan, y se pasa la barra de rgba(0,0,0,.5)
   al negro de la marca para que pesen igual que sus vecinos. */
@media (max-width:1024px){
    .elementskit-menu-hamburger{
        flex-direction:column!important;
        gap:5px;
        border:0!important;
        padding:0!important;
        background:transparent!important;
    }
    .elementskit-menu-hamburger .elementskit-menu-hamburger-icon{
        width:24px!important;
        height:2px!important;
        margin:0!important;
        border-radius:1px;
        background-color:var(--pf-black)!important;
    }
}
