/* NF · Página de producto */
.nf-page-producto { padding-bottom: clamp(40px, 5vw, 72px); }
.nf-page-producto section { position: relative; margin: 0; }
.nf-prod { padding: clamp(14px, 2vw, 24px) 0 0; }
.nf-prod__notices:empty { display: none; }
/* Migas: mismo marcado y estilo que la tienda (nf-archivo); aquí sólo el margen y el último tramo recortado si es largo */
.nf-page-producto .nf-prod__migas { margin: 0 0 clamp(14px, 2vw, 22px); }
.nf-page-producto .nf-prod__migas .nf-migas__item:last-child { max-width: 42ch; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Rejilla de tres columnas: galería · ficha (marca, título, descripción; debajo los acordeones) · panel de compra fijo */
.nf-prod__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) 272px; grid-template-areas: "gal info buy" "gal det buy"; gap: clamp(20px, 3vw, 44px); align-items: start; }
/* Galería y panel pegajosos dentro de la rejilla: bajan con el scroll bajo la cabecera y se sueltan cuando la columna
   central (ficha + detalles) termina; la rejilla es su contenedor y los ítems van alineados arriba (align-items: start). */
.nf-prod__gallery { grid-area: gal; }
.nf-prod__info { grid-area: info; }
.nf-prod__detalles { grid-area: det; min-width: 0; }
.nf-prod__buy { grid-area: buy; position: sticky; top: calc(var(--nf-header-total, 72px) + 16px); display: grid; gap: 10px; padding: 14px; border: 1px solid var(--nf-borde); border-radius: var(--nf-r-xl); background: rgba(20,20,22,.86); box-shadow: 0 30px 80px -40px rgba(0,0,0,.9); }
.nf-prod__buy::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 1px; border-radius: inherit; background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent); pointer-events: none; }
.nf-prod__buy { position: sticky; }
.nf-prod__buy > * { position: relative; }

/* Galería nativa vestida: placa blanca, esquinas redondeadas, miniaturas y lupa */
.nf-prod__gallery { position: relative; }
@media (min-width: 769px) { .nf-prod__gallery { position: sticky; top: calc(var(--nf-header-total, 72px) + 16px); } }
.nf-prod__badges { position: absolute; top: 14px; left: 14px; z-index: 5; display: flex; flex-direction: column; gap: 6px; pointer-events: none; }
.nf-prod__badges .nf-card__badge { position: static; height: 28px; padding: 0 10px; font-size: 12px; }
.nf-prod__badges .nf-card__badge--nuevo, .nf-prod__badges .nf-card__badge--agotado { left: auto; right: auto; }
.nf-prod__gallery .woocommerce-product-gallery { position: relative; width: 100% !important; float: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: transparent !important; opacity: 1 !important; } /* WooCommerce le pone un borde gris claro de 1px: era el "borde blanco" de la foto */
.nf-prod__gallery .woocommerce-product-gallery__wrapper { margin: 0; }
.nf-prod__gallery .woocommerce-product-gallery__image, .nf-prod__gallery .flex-viewport { border-radius: var(--nf-r-xl); overflow: hidden; background: #fff; border: 0; }
.nf-prod__gallery .flex-viewport .woocommerce-product-gallery__image { border-radius: 0; }
.nf-prod__gallery .woocommerce-product-gallery__image a { display: block; }
.nf-prod__gallery .woocommerce-product-gallery__image img { width: 100% !important; height: auto; aspect-ratio: 1 / 1; object-fit: contain; display: block; margin: 0; padding: 0; border: 0 !important; box-shadow: none !important; background: #fff; }
.nf-prod__gallery .woocommerce-product-gallery__image .zoomImg { display: none !important; }
.nf-prod__gallery.is-agotado .woocommerce-product-gallery__image img { opacity: .6; filter: grayscale(.5); }
.nf-prod__gallery .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image + .woocommerce-product-gallery__image { margin-top: 10px; }
.nf-prod__gallery .flex-control-thumbs { display: flex !important; flex-wrap: wrap; gap: 10px; margin: 12px 0 0 !important; padding: 0 !important; list-style: none !important; }
.nf-prod__gallery .flex-control-thumbs li { width: calc((100% - 50px) / 6) !important; margin: 0 !important; padding: 0 !important; float: none !important; list-style: none !important; }
.nf-prod__gallery .flex-control-thumbs img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; padding: 6%; background: #fff; border-radius: var(--nf-r-md); border: 1px solid var(--nf-borde); opacity: .55; cursor: pointer; transition: opacity var(--nf-t-fast), border-color var(--nf-t-fast), box-shadow var(--nf-t-fast); }
.nf-prod__gallery .flex-control-thumbs img:hover, .nf-prod__gallery .flex-control-thumbs img.flex-active { opacity: 1; border-color: rgba(255,230,10,.6); box-shadow: 0 0 0 1px rgba(255,230,10,.3); }
.nf-prod__gallery .woocommerce-product-gallery__trigger, .nf-prod__gallery .woocommerce-product-gallery__trigger:hover { position: absolute; top: 14px; right: 14px; z-index: 5; width: 40px; height: 40px; display: inline-flex !important; align-items: center; justify-content: center; border-radius: 50%; background: rgba(10,10,12,.72) !important; border: 1px solid var(--nf-borde-2) !important; color: var(--nf-hielo) !important; text-indent: 0 !important; font-size: 0; box-shadow: none !important; transition: border-color var(--nf-t-fast), color var(--nf-t-fast); }
.nf-prod__gallery .woocommerce-product-gallery__trigger::before { content: ""; width: 16px; height: 16px; border: 2px solid currentColor; border-radius: 50%; margin: 0 !important; position: static !important; }
.nf-prod__gallery .woocommerce-product-gallery__trigger::after { content: ""; position: absolute; width: 2px; height: 8px; background: currentColor; border-radius: 2px; transform: rotate(-45deg); right: 9px; bottom: 8px; border: 0 !important; }
.nf-prod__gallery .woocommerce-product-gallery__trigger:hover { border-color: rgba(255,230,10,.6) !important; color: var(--nf-amarillo) !important; }

/* Ficha */
.nf-prod__info { display: grid; gap: 12px; align-content: start; min-width: 0; }
.nf-prod__detalles { display: grid; gap: 12px; align-content: start; }
.nf-prod__detalles .nf-acc { margin-top: 0; }
.nf-prod__marca, .nf-prod__marca:hover, .nf-prod__marca:visited { text-decoration: none !important; }
a.nf-prod__marca:hover { color: var(--nf-amarillo-2) !important; }
.nf-page-producto .nf-prod__title { margin: 0; padding: 0; font: 700 clamp(26px, 3vw, 40px)/1.08 var(--nf-display) !important; letter-spacing: -.02em; color: var(--nf-hielo) !important; text-wrap: balance; }
.nf-page-producto .nf-prod__meta { margin: -6px 0 0; font: 400 13px/1.3 var(--nf-mono); letter-spacing: .02em; color: var(--nf-bruma); }
.nf-prod__price { display: flex; align-items: center; justify-content: space-between; flex-wrap: nowrap; gap: 10px 14px; margin-top: 2px; }
/* el descuento no baja de línea (con el sufijo MXN no cabía): si falta espacio, lo que se acomoda es el precio tachado */
.nf-prod__price .price { min-width: 0; }
.nf-prod__off { margin-left: auto; flex: none; }
.nf-page-producto .nf-prod__price .price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 10px; margin: 0; font: 500 clamp(24px, 2vw, 28px)/1 var(--nf-mono) !important; letter-spacing: -.03em; font-variant-numeric: tabular-nums; color: var(--nf-hielo) !important; }
.nf-page-producto .nf-prod__price .price del { order: 2; font-size: .5em; font-weight: 400; color: var(--nf-bruma-2); opacity: 1; text-decoration: line-through; }
.nf-page-producto .nf-prod__price .price ins { order: 1; text-decoration: none; background: none; color: inherit; font-weight: inherit; }
.nf-page-producto .nf-prod__price .price .amount, .nf-page-producto .nf-prod__price .price bdi { font: inherit; color: inherit; }
.nf-page-producto .nf-prod__price .price .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.nf-prod__off { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: var(--nf-r-sm); background: var(--nf-amarillo); color: var(--nf-tinta); font: 700 12px/1 var(--nf-display); letter-spacing: .06em; box-shadow: 0 0 14px -4px var(--nf-amarillo); }
.nf-page-producto .nf-prod__stock { display: inline-flex; align-items: center; gap: 8px; margin: 0; font: 500 12px/1 var(--nf-display); letter-spacing: .08em; text-transform: uppercase; color: var(--nf-bruma); }
.nf-prod__stock i { width: 8px; height: 8px; border-radius: 50%; background: var(--nf-verde); box-shadow: 0 0 10px var(--nf-verde); }
.nf-prod__stock.is-out { color: var(--nf-rojo-2); } .nf-prod__stock.is-out i { background: var(--nf-rojo); box-shadow: 0 0 10px var(--nf-rojo); }
/* Meses sin intereses: "$538³³ x 6 meses · Ver más opciones" y modal con los planes */
.nf-msi { display: grid; gap: 4px; justify-items: start; }
.nf-msi__resumen, .nf-msi__resumen:hover, .nf-msi__resumen:focus { -webkit-appearance: none; appearance: none; display: inline-flex; align-items: baseline; flex-wrap: wrap; gap: 6px 8px; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; color: var(--nf-hielo) !important; font: 400 14px/1.2 var(--nf-sans) !important; letter-spacing: 0 !important; text-transform: none !important; text-align: left; cursor: pointer; }
.nf-msi__desde { font: 400 12px/1 var(--nf-sans); color: var(--nf-bruma); }
.nf-monto { font: 500 22px/1 var(--nf-mono); letter-spacing: -.03em; font-variant-numeric: tabular-nums; color: var(--nf-hielo); }
.nf-monto sup { display: inline-block; font-size: .5em; line-height: 1; vertical-align: top; position: relative; top: .05em; margin-left: 2px; }
.nf-msi__resumen .nf-monto { padding: 2px 6px; border-radius: var(--nf-r-sm); background: rgba(61,242,154,.14); color: var(--nf-verde); }
.nf-msi__x { font: 500 14px/1.2 var(--nf-sans); color: var(--nf-hielo); }
.nf-msi__ver { display: inline-flex; align-items: center; gap: 2px; font: 600 11px/1 var(--nf-display); letter-spacing: .12em; text-transform: uppercase; color: var(--nf-amarillo); border-bottom: 1px solid transparent; transition: border-color var(--nf-t-fast); }
.nf-msi__ver svg { width: 14px; height: 14px; }
.nf-msi__resumen:hover .nf-msi__ver { border-color: var(--nf-amarillo); }
.nf-msi__resumen:focus-visible { outline: 2px solid var(--nf-amarillo); outline-offset: 3px; }
.nf-page-producto .nf-msi__nota { margin: 0; font: 400 12px/1.4 var(--nf-sans); color: var(--nf-bruma); }
.nf-page-producto .nf-msi__plazos { display: inline-flex; align-items: center; gap: 6px; margin: 2px 0 0; font: 500 12px/1.4 var(--nf-sans); color: var(--nf-espera); }
.nf-msi__plazos svg { width: 14px; height: 14px; flex: 0 0 14px; }
.nf-page-producto .nf-msi__plazos[hidden] { display: none; }
/* Aplazo y Kueski debajo de los meses (los mueve el script tras el panel de compra) */
.nf-plazos { display: grid; gap: 10px; margin-top: 12px; padding: 12px 14px; border: 1px solid var(--nf-borde); border-radius: var(--nf-r-md); background: rgba(20,20,22,.7); }
.nf-plazos__fila + .nf-plazos__fila { padding-top: 10px; border-top: 1px solid var(--nf-borde); }
.nf-plazos aplazo-placement { display: block; color: var(--nf-bruma); font: 400 13px/1.45 var(--nf-sans); }
.nf-plazos kueskipay-widget { display: block; --kp-color-text-primary: var(--nf-bruma); --kp-text-color: var(--nf-bruma); --kp-color-text-secondary: var(--nf-bruma); --kp-color-brand-primary: var(--nf-amarillo); --kp-link-color: var(--nf-amarillo); --kp-font-family: var(--nf-sans); --kp-font-body-1-size: 13px; --kp-font-body-2-size: 13px; }
/* Modal: centrado en escritorio, hoja inferior en móvil */
.nf-modal { position: fixed; inset: 0; z-index: 2147483600; display: flex; align-items: center; justify-content: center; padding: 16px; }
.nf-modal[hidden] { display: none; }
.nf-modal__backdrop { position: absolute; inset: 0; background: rgba(5,5,6,.72); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); opacity: 0; transition: opacity var(--nf-t-base); }
.nf-modal__panel { position: relative; width: min(100%, 520px); max-height: calc(100vh - 32px); overflow: auto; padding: 20px; border-radius: var(--nf-r-xl); border: 1px solid var(--nf-borde-2); background: var(--nf-vidrio-3); -webkit-backdrop-filter: blur(16px) saturate(130%); backdrop-filter: blur(16px) saturate(130%); box-shadow: 0 40px 120px -40px rgba(0,0,0,.95); outline: none; opacity: 0; transform: translateY(12px) scale(.98); transition: opacity var(--nf-t-base) var(--nf-ease), transform var(--nf-t-base) var(--nf-ease); }
.nf-modal.is-open .nf-modal__backdrop { opacity: 1; }
.nf-modal.is-open .nf-modal__panel { opacity: 1; transform: none; }
.nf-modal__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; }
.nf-modal__head > div { display: grid; gap: 6px; }
.nf-page-producto .nf-modal__title { margin: 0; font: 700 20px/1.1 var(--nf-display) !important; letter-spacing: -.01em; color: var(--nf-hielo) !important; }
.nf-modal__close, .nf-modal__close:hover, .nf-modal__close:focus { -webkit-appearance: none; appearance: none; flex: 0 0 auto; height: 36px !important; min-width: 0 !important; margin: 0 !important; padding: 0 12px 0 10px !important; border: 1px solid rgba(255,230,10,.45) !important; border-radius: 999px !important; background: rgba(255,230,10,.08) !important; color: var(--nf-amarillo) !important; display: inline-flex !important; align-items: center; gap: 6px; font: 600 11px/1 var(--nf-display) !important; letter-spacing: .12em; text-transform: uppercase; box-shadow: none !important; cursor: pointer; transition: background var(--nf-t-fast), color var(--nf-t-fast); }
.nf-modal__close svg { width: 16px; height: 16px; }
.nf-modal__close:hover, .nf-modal__close:focus-visible { background: var(--nf-amarillo) !important; color: var(--nf-tinta) !important; outline: none; }
.nf-page-producto .nf-modal__precio { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 0 10px; padding: 0 0 10px; border-bottom: 1px solid var(--nf-borde); font: 600 11px/1 var(--nf-display); letter-spacing: .14em; text-transform: uppercase; color: var(--nf-bruma); }
.nf-modal__precio .nf-monto { font-size: 20px; }
.nf-msi__planes { list-style: none !important; margin: 0 0 14px !important; padding: 0 !important; display: grid; gap: 8px; }
.nf-msi__plan { position: relative; display: grid; grid-template-columns: 64px 1fr; grid-template-rows: auto auto; column-gap: 14px; row-gap: 2px; align-items: center; padding: 12px 14px; border: 1px solid var(--nf-borde); border-radius: var(--nf-r-md); background: rgba(20,20,22,.7); }
.nf-msi__plan.is-mejor { border-color: rgba(255,230,10,.45); background: rgba(255,230,10,.06); box-shadow: 0 0 0 1px rgba(255,230,10,.15); }
.nf-msi__plan-meses { grid-row: 1 / span 2; display: grid; justify-items: center; padding: 6px 0; border-radius: var(--nf-r-sm); background: rgba(255,245,200,.06); font: 700 22px/1 var(--nf-display); color: var(--nf-hielo); }
.nf-msi__plan-meses small { font: 600 9px/1 var(--nf-display); letter-spacing: .14em; text-transform: uppercase; color: var(--nf-bruma); margin-top: 3px; }
.nf-msi__plan-monto { display: flex; align-items: baseline; gap: 6px; }
.nf-msi__plan-monto em { font: 400 12px/1 var(--nf-sans); font-style: normal; color: var(--nf-bruma); }
.nf-msi__plan-total { font: 400 12px/1.3 var(--nf-sans); color: var(--nf-bruma); }
.nf-msi__plan-tag { position: absolute; top: -8px; right: 12px; padding: 3px 8px; border-radius: 999px; background: var(--nf-amarillo); color: var(--nf-tinta); font: 700 9px/1 var(--nf-display); letter-spacing: .12em; text-transform: uppercase; }
.nf-page-producto .nf-modal__texto { margin: 0; font: 400 13px/1.5 var(--nf-sans); color: var(--nf-bruma); }
.nf-msi__otros { list-style: none !important; margin: 12px 0 0 !important; padding: 12px 0 0 !important; border-top: 1px solid var(--nf-borde); display: grid; gap: 8px; }
.nf-msi__otros li { display: flex; align-items: center; gap: 10px; font: 500 13px/1.3 var(--nf-sans); color: var(--nf-hielo); }
.nf-msi__otros svg { width: 18px; height: 18px; flex: 0 0 18px; color: var(--nf-espera); }
.nf-modal__grip { display: none; }
.nf-modal__panel.is-dragging { transition: none; }
@media (max-width: 640px) {
  /* Hoja flotante, separada de las orillas, con barrita para cerrar deslizando */
  .nf-modal { align-items: flex-end; padding: 12px 12px calc(12px + env(safe-area-inset-bottom, 0px)); }
  .nf-modal__panel { width: 100%; max-height: 84vh; border-radius: var(--nf-r-xl); padding: 8px 16px 18px; transform: translateY(24px); touch-action: pan-y; }
  .nf-modal__grip { display: flex; justify-content: center; padding: 6px 0 12px; margin: 0 -16px; cursor: grab; touch-action: none; }
  .nf-modal__grip i { width: 40px; height: 5px; border-radius: 999px; background: rgba(255,245,200,.28); }
}

/* Descripción corta plegable */
.nf-prod__excerpt { position: relative; }
.nf-prod__excerpt-body { font: 400 15px/1.55 var(--nf-sans); color: var(--nf-bruma); }
.nf-prod__excerpt-body p { margin: 0 0 8px; font: inherit !important; color: inherit; } .nf-prod__excerpt-body p:last-child { margin-bottom: 0; }
.nf-prod__excerpt.is-clamped:not(.is-open) .nf-prod__excerpt-body { display: -webkit-box; -webkit-line-clamp: var(--nf-lineas, 4); -webkit-box-orient: vertical; overflow: hidden; }
.nf-prod__excerpt.is-clamped:not(.is-open) .nf-prod__excerpt-body::after { content: ""; position: absolute; left: 0; right: 0; bottom: 26px; height: 32px; background: linear-gradient(180deg, transparent, var(--nf-abismo)); pointer-events: none; }
.nf-prod__more, .nf-prod__more:hover, .nf-prod__more:focus { -webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; gap: 4px; margin: 6px 0 0 !important; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; font: 600 11px/1 var(--nf-display) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--nf-amarillo) !important; cursor: pointer; }
.nf-prod__more svg { width: 14px; height: 14px; transition: transform var(--nf-t-fast) var(--nf-ease); }
.nf-prod__excerpt.is-open .nf-prod__more svg { transform: rotate(180deg); }

/* Formulario nativo */
.nf-prod__form { margin-top: 2px; }
/* WooCommerce (.woocommerce div.product form.cart …) flota la cantidad y los botones y gana en especificidad: se anula aquí */
.woocommerce div.product .nf-prod__form form.cart, .nf-prod__form form.cart { width: 100% !important; margin: 0 !important; padding: 0 !important; display: flex !important; flex-wrap: wrap; align-items: center; gap: 10px; float: none !important; }
.woocommerce div.product .nf-prod__form form.cart.variations_form, .nf-prod__form form.cart.variations_form { display: block !important; }
.woocommerce div.product .nf-prod__form form.cart div.quantity, .woocommerce div.product .nf-prod__form form.cart .button, .woocommerce div.product .nf-prod__form form.cart .nf-prod__buynow { float: none !important; margin: 0 !important; }
.nf-prod__form .variations { width: 100%; margin: 0 0 14px !important; border: 0 !important; background: none !important; }
.nf-prod__form .variations tbody, .nf-prod__form .variations tr { display: block; background: none !important; border: 0 !important; }
.nf-prod__form .variations tr { margin-bottom: 12px; }
.nf-prod__form .variations th, .nf-prod__form .variations td { display: block; padding: 0 !important; border: 0 !important; background: none !important; }
.nf-prod__form .variations th label { display: block; margin: 0 0 6px; font: 600 11px/1 var(--nf-display) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--nf-bruma) !important; }
.nf-prod__form .variations th label::after { content: attr(data-nf-sel); margin-left: 6px; font: 400 11px/1 var(--nf-sans); letter-spacing: 0; text-transform: none; color: var(--nf-hielo); }
.nf-prod__form .variations select { width: 100%; max-width: 420px; height: 46px; padding: 0 40px 0 14px; border: 1px solid var(--nf-borde-2) !important; border-radius: var(--nf-r-md); background: var(--nf-campo) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239b9a92' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") no-repeat right 14px center / 16px !important; color: var(--nf-hielo) !important; font: 500 14px/1 var(--nf-sans) !important; -webkit-appearance: none; appearance: none; }
.nf-prod__form .variations select:focus { outline: none; border-color: rgba(255,230,10,.6) !important; box-shadow: 0 0 0 3px rgba(255,230,10,.16); }
.nf-prod__form .reset_variations { display: inline-block; margin-top: 8px; font: 400 12px/1 var(--nf-sans) !important; color: var(--nf-bruma) !important; }
.nf-prod__form .single_variation_wrap { width: 100%; }
.nf-prod__form .woocommerce-variation-price { margin: 4px 0 10px; }
.nf-prod__form .woocommerce-variation-price .price { display: inline-flex; align-items: baseline; gap: 10px; font: 500 22px/1 var(--nf-mono) !important; color: var(--nf-hielo) !important; }
.nf-prod__form .woocommerce-variation-price del { order: 2; font-size: .6em; font-weight: 400; color: var(--nf-bruma-2); opacity: 1; }
.nf-prod__form .woocommerce-variation-price ins { order: 1; text-decoration: none; background: none; }
.nf-prod__form .woocommerce-variation-availability .stock { margin: 0 0 10px; font: 500 12px/1.3 var(--nf-display); letter-spacing: .08em; text-transform: uppercase; color: var(--nf-bruma); }
.nf-prod__form .stock.out-of-stock { color: var(--nf-rojo-2); }
.nf-prod__form .stock, .nf-prod__form p.stock, .nf-prod__form .woocommerce-variation-availability { display: none !important; } /* sin "N disponibles": el agotado se ve en la etiqueta y en Avísame */
.nf-prod__form .woocommerce-variation-add-to-cart { display: flex !important; flex-wrap: wrap; align-items: center; gap: 10px; }
.nf-prod__form .quantity, .woocommerce div.product .nf-prod__form form.cart div.quantity { display: inline-flex !important; align-items: center; height: 50px; margin: 0 !important; border: 1px solid var(--nf-borde-2); border-radius: 999px; background: var(--nf-campo); overflow: hidden; }
.nf-prod__form .quantity .qty { width: 56px; height: 100%; margin: 0; padding: 0; border: 0 !important; background: transparent !important; text-align: center; font: 500 16px/1 var(--nf-mono) !important; color: var(--nf-hielo) !important; -moz-appearance: textfield; appearance: textfield; box-shadow: none !important; }
.nf-prod__form .quantity .qty::-webkit-outer-spin-button, .nf-prod__form .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.nf-prod__form .quantity .nf-qty, .nf-prod__form .quantity .nf-qty:hover, .nf-prod__form .quantity .nf-qty:focus { -webkit-appearance: none; appearance: none; width: 44px !important; height: 100% !important; min-width: 0 !important; margin: 0 !important; padding: 0 0 2px !important; border: 0 !important; background: transparent !important; color: var(--nf-hielo) !important; font: 400 22px/1 var(--nf-sans) !important; box-shadow: none !important; cursor: pointer; transition: color var(--nf-t-fast), background var(--nf-t-fast); }
.nf-prod__form .quantity .nf-qty:hover { color: var(--nf-amarillo) !important; background: rgba(255,230,10,.08) !important; }
.nf-prod__form .single_add_to_cart_button, .nf-prod__form .single_add_to_cart_button:hover, .nf-prod__form .single_add_to_cart_button:focus, .nf-prod__form .single_add_to_cart_button:visited { -webkit-appearance: none; appearance: none; position: relative; flex: 1 1 140px; height: 50px; min-width: 0 !important; margin: 0 !important; padding: 0 26px !important; border: 0 !important; border-radius: 999px !important; background: var(--nf-amarillo) !important; color: var(--nf-tinta) !important; font: 700 13px/1 var(--nf-display) !important; letter-spacing: .14em !important; text-transform: uppercase !important; line-height: 1 !important; display: inline-flex !important; align-items: center; justify-content: center; box-shadow: none !important; cursor: pointer; transition: background var(--nf-t-fast), transform var(--nf-t-fast) var(--nf-ease), box-shadow var(--nf-t-fast); }
.nf-prod__form .single_add_to_cart_button:hover { background: var(--nf-amarillo-2) !important; transform: translateY(-1px); box-shadow: var(--nf-glow) !important; }
.nf-prod__form .single_add_to_cart_button:active { transform: translateY(0) scale(.99); }
.nf-prod__form .single_add_to_cart_button.disabled, .nf-prod__form .single_add_to_cart_button:disabled { opacity: .45; cursor: not-allowed; box-shadow: none !important; transform: none; }
.nf-prod__form .single_add_to_cart_button.is-loading { color: transparent !important; pointer-events: none; }
.nf-prod__form .single_add_to_cart_button .nf-spin { width: 18px; height: 18px; margin: -9px 0 0 -9px; border-color: rgba(21,19,0,.25); border-top-color: var(--nf-tinta); }
/* Comprar ahora: claro sobre oscuro, a lo ancho; sigue el estado del botón nativo (deshabilitado sin variación) */
.nf-prod__form .nf-prod__buynow, .nf-prod__form .nf-prod__buynow:hover, .nf-prod__form .nf-prod__buynow:focus { -webkit-appearance: none; appearance: none; position: relative; flex: 1 1 100%; width: 100%; height: 50px; margin: 0 !important; padding: 0 22px !important; border: 1px solid var(--nf-hielo) !important; border-radius: 999px !important; background: var(--nf-hielo) !important; color: var(--nf-tinta) !important; font: 700 13px/1 var(--nf-display) !important; letter-spacing: .14em !important; text-transform: uppercase !important; line-height: 1 !important; display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; box-shadow: none !important; cursor: pointer; transition: background var(--nf-t-fast), border-color var(--nf-t-fast), transform var(--nf-t-fast) var(--nf-ease), box-shadow var(--nf-t-fast); }
.nf-prod__form .nf-prod__buynow svg { width: 16px; height: 16px; }
.nf-prod__form .nf-prod__buynow:hover { background: #fff !important; border-color: #fff !important; transform: translateY(-1px); box-shadow: 0 0 0 1px rgba(255,255,255,.3), 0 0 22px rgba(255,255,255,.18) !important; }
.nf-prod__form .nf-prod__buynow.disabled, .nf-prod__form .nf-prod__buynow:disabled { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none !important; }
.nf-prod__form .nf-prod__buynow.is-loading { color: transparent !important; pointer-events: none; }
.nf-prod__form .nf-prod__buynow .nf-spin { width: 18px; height: 18px; margin: -9px 0 0 -9px; border-color: rgba(21,19,0,.25); border-top-color: var(--nf-tinta); }
.nf-prod__form .added_to_cart { display: none; }
/* En el panel: cantidad, Agregar al carrito y Comprar ahora apilados, cada uno a lo ancho */
.woocommerce div.product .nf-prod__buy .nf-prod__form form.cart, .nf-prod__buy .nf-prod__form form.cart, .nf-prod__buy .nf-prod__form .woocommerce-variation-add-to-cart { flex-direction: column; align-items: stretch; }
.woocommerce div.product .nf-prod__buy .nf-prod__form form.cart div.quantity, .nf-prod__buy .nf-prod__form .quantity { width: 100% !important; justify-content: space-between; }
.nf-prod__buy .nf-prod__form .quantity .qty { flex: 1 1 auto; width: auto !important; }
.nf-prod__buy .nf-prod__form .quantity .nf-qty { width: 52px !important; }
/* Una sola pieza: sin selector de cantidad, aviso en su lugar */
.nf-prod__form .quantity.is-una, .woocommerce div.product .nf-prod__buy .nf-prod__form form.cart div.quantity.is-una { display: none !important; }
.nf-prod__ultimo { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 50px; margin: 0; border: 1px solid rgba(255,230,10,.35); border-radius: 999px; background: rgba(255,230,10,.06); color: var(--nf-amarillo); font: 700 12px/1 var(--nf-display); letter-spacing: .14em; text-transform: uppercase; }
.nf-prod__ultimo[hidden] { display: none; }
.nf-prod__ultimo i { width: 7px; height: 7px; border-radius: 50%; background: var(--nf-amarillo); box-shadow: 0 0 10px var(--nf-amarillo); animation: nfLatido 1.6s ease-in-out infinite; }
@keyframes nfLatido { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .nf-prod__ultimo i { animation: none; } }
.woocommerce div.product .nf-prod__buy .nf-prod__form form.cart .single_add_to_cart_button, .woocommerce div.product .nf-prod__buy .nf-prod__form form.cart .nf-prod__buynow, .nf-prod__buy .nf-prod__form .single_add_to_cart_button, .nf-prod__buy .nf-prod__form .nf-prod__buynow { flex: 0 0 auto !important; width: 100% !important; height: 50px !important; white-space: nowrap; }
.nf-prod__hint { display: none; margin: 0 0 12px; padding: 10px 14px; border-radius: var(--nf-r-md); border: 1px solid rgba(255,230,10,.3); background: rgba(255,230,10,.08); font: 400 13px/1.4 var(--nf-sans); color: var(--nf-amarillo-2); }
.nf-prod__form.needs-choice .nf-prod__hint { display: block; }
.nf-shake { animation: nfShake .5s; }
@keyframes nfShake { 20%{transform:translateX(-4px)} 40%{transform:translateX(4px)} 60%{transform:translateX(-3px)} 80%{transform:translateX(3px)} }

/* Avísame (agotado), lista de deseos de YITH y ganchos de terceros (Aplazo, Kueski, Stripe exprés) */
.nf-prod__buy { grid-template-columns: minmax(0, 1fr); }
/* Aviso de disponibilidad: el panel mide 272px y el texto no cabe en una línea; se permite partirlo para no desbordar la tarjeta */
.nf-btn.nf-prod__notify, .nf-btn.nf-prod__notify:hover, .nf-btn.nf-prod__notify:focus, .nf-btn.nf-prod__notify:visited { justify-self: stretch; width: 100%; min-width: 0; height: auto; min-height: 50px; padding: 12px 16px; gap: 8px; white-space: normal; text-align: center; line-height: 1.3 !important; }
.nf-prod__notify svg { flex: 0 0 auto; width: 16px; height: 16px; }
.nf-prod__wishlist { justify-self: stretch; }
.nf-prod__wishlist .yith-wcwl-add-to-wishlist { margin: 0 !important; }
.nf-prod__wishlist .yith-wcwl-add-to-wishlist a, .nf-prod__wishlist .yith-wcwl-add-to-wishlist a:hover, .nf-prod__wishlist .yith-wcwl-add-to-wishlist a:visited { display: flex !important; box-sizing: border-box; width: 100%; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 16px !important; border: 1px solid var(--nf-borde-2) !important; border-radius: 999px !important; background: transparent !important; color: var(--nf-hielo) !important; font: 600 11px/1 var(--nf-display) !important; letter-spacing: .14em; text-transform: uppercase; text-decoration: none !important; box-shadow: none !important; transition: border-color var(--nf-t-fast), color var(--nf-t-fast), background var(--nf-t-fast); }
.nf-prod__wishlist .yith-wcwl-add-to-wishlist a:hover { border-color: rgba(255,61,90,.55) !important; color: var(--nf-rojo-2) !important; background: rgba(255,61,90,.08) !important; }
.nf-prod__wishlist .yith-wcwl-add-to-wishlist a i, .nf-prod__wishlist .yith-wcwl-add-to-wishlist a svg { font-size: 14px; width: 14px; height: 14px; margin: 0 !important; }
.nf-prod__wishlist .yith-wcwl-add-to-wishlist .feedback { display: none; }
.nf-prod__terceros:empty { display: none; }
.nf-prod__terceros { display: grid; gap: 10px; font: 400 13px/1.5 var(--nf-sans); color: var(--nf-bruma); }
.nf-prod__terceros p { margin: 0; font: inherit !important; color: inherit; }
.nf-prod__terceros #wc-stripe-express-checkout-element, .nf-prod__terceros .wc-stripe-express-checkout-element { max-width: 420px; }
.nf-prod__terceros .wc-stripe-express-checkout-button-separator, .nf-prod__terceros p#wc-stripe-express-checkout-button-separator { text-align: center; font: 600 10px/1 var(--nf-display) !important; letter-spacing: .16em; text-transform: uppercase; color: var(--nf-bruma-2) !important; }

/* Beneficios */
.nf-prod__perks { list-style: none !important; margin: 2px 0 0 !important; padding: 12px 0 0 !important; display: grid; gap: 10px; border-top: 1px solid var(--nf-borde); }
.nf-prod__perk { display: flex; align-items: center; gap: 12px; margin: 0 !important; list-style: none !important; }
.nf-prod__perk-ico { flex: 0 0 32px; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--nf-r-md); background: rgba(255,230,10,.1); border: 1px solid rgba(255,230,10,.3); color: var(--nf-amarillo); }
.nf-prod__perk-ico svg { width: 18px; height: 18px; }
.nf-prod__perk-text { display: grid; gap: 2px; min-width: 0; }
.nf-prod__perk strong { font: 600 12px/1.2 var(--nf-display); letter-spacing: .06em; text-transform: uppercase; color: var(--nf-hielo); }
.nf-prod__perk em { font: 400 13px/1.35 var(--nf-sans); font-style: normal; color: var(--nf-bruma); }


/* Acordeones */
.nf-acc { margin-top: 8px; border-top: 1px solid var(--nf-borde); }
.nf-acc__item { border-bottom: 1px solid var(--nf-borde); }
.nf-acc__item summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 16px 0; font: 700 13px/1 var(--nf-display); letter-spacing: .12em; text-transform: uppercase; color: var(--nf-hielo); transition: color var(--nf-t-fast); }
.nf-acc__item summary::-webkit-details-marker { display: none; }
.nf-acc__item summary:hover { color: var(--nf-amarillo); }
.nf-acc__ico { margin-left: auto; position: relative; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--nf-borde-2); flex: 0 0 26px; }
.nf-acc__ico::before, .nf-acc__ico::after { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 1.5px; background: var(--nf-amarillo); transform: translate(-50%, -50%); transition: transform var(--nf-t-base) var(--nf-ease); }
.nf-acc__ico::after { transform: translate(-50%, -50%) rotate(90deg); }
.nf-acc__item[open] .nf-acc__ico::after { transform: translate(-50%, -50%) rotate(0); }
.nf-acc__count { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: rgba(255,230,10,.12); border: 1px solid rgba(255,230,10,.3); font: 600 11px/1 var(--nf-mono); color: var(--nf-amarillo); }
.nf-acc__body { padding: 0 0 18px; font: 400 15px/1.65 var(--nf-sans); color: var(--nf-bruma); }
.nf-acc__body p { margin: 0 0 10px; font: inherit !important; color: inherit; }
.nf-acc__body ul, .nf-acc__body ol { margin: 0 0 10px 18px; padding: 0; }
.nf-acc__body h2, .nf-acc__body h3, .nf-acc__body h4 { margin: 14px 0 6px; font: 700 15px/1.3 var(--nf-display) !important; color: var(--nf-hielo) !important; }
.nf-acc__body a { color: var(--nf-amarillo) !important; }
.nf-acc__body img { max-width: 100%; height: auto; border-radius: var(--nf-r-md); }
.nf-specs { width: 100%; border-collapse: collapse !important; border: 0 !important; margin: 0 !important; font: 400 14px/1.4 var(--nf-sans); background: none !important; }
.nf-specs tr { border: 0 !important; background: none !important; }
.nf-specs th, .nf-specs td { padding: 10px 0 !important; border: 0 !important; border-bottom: 1px solid var(--nf-borde) !important; text-align: left; vertical-align: top; background: none !important; }
.nf-specs tr:last-child th, .nf-specs tr:last-child td { border-bottom: 0 !important; }
.nf-specs th { width: 36%; padding-right: 12px !important; font: 600 11px/1.4 var(--nf-display) !important; letter-spacing: .12em; text-transform: uppercase; color: var(--nf-bruma-2) !important; }
.nf-specs td { color: var(--nf-hielo); }
/* Reseñas nativas dentro del acordeón */
.nf-prod__reviews .woocommerce-Reviews-title, .nf-prod__reviews #reply-title { font: 700 14px/1.3 var(--nf-display) !important; letter-spacing: .04em; color: var(--nf-hielo) !important; margin: 0 0 12px; }
.nf-prod__reviews .commentlist { list-style: none !important; margin: 0 0 16px !important; padding: 0 !important; display: grid; gap: 10px; }
.nf-prod__reviews .commentlist li { margin: 0 !important; padding: 12px 14px !important; border: 1px solid var(--nf-borde); border-radius: var(--nf-r-md); background: rgba(20,20,22,.7); }
.nf-prod__reviews .comment_container img.avatar { display: none; }
.nf-prod__reviews .comment-text { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.nf-prod__reviews .meta { font: 400 12px/1.3 var(--nf-mono); color: var(--nf-bruma-2); }
.nf-prod__reviews .star-rating { color: var(--nf-amarillo); }
.nf-prod__reviews .comment-form { display: grid; gap: 10px; }
.nf-prod__reviews .comment-form label { font: 600 11px/1 var(--nf-display); letter-spacing: .12em; text-transform: uppercase; color: var(--nf-bruma); }
.nf-prod__reviews .comment-form input[type="text"], .nf-prod__reviews .comment-form input[type="email"], .nf-prod__reviews .comment-form textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--nf-borde-2) !important; border-radius: var(--nf-r-md); background: var(--nf-campo) !important; color: var(--nf-hielo) !important; font: 400 14px/1.4 var(--nf-sans) !important; box-shadow: none !important; }
.nf-prod__reviews .comment-form .submit, .nf-prod__reviews .comment-form .submit:hover { -webkit-appearance: none; appearance: none; justify-self: start; height: 44px; padding: 0 22px !important; border: 0 !important; border-radius: 999px !important; background: var(--nf-amarillo) !important; color: var(--nf-tinta) !important; font: 700 12px/1 var(--nf-display) !important; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; box-shadow: none !important; }
.nf-prod__reviews .stars a { color: var(--nf-amarillo) !important; }

/* Relacionados */
.nf-prod__related { padding-top: clamp(32px, 4.5vw, 56px); }

/* Barra fija de compra (≤1024px) */
.nf-buybar { display: none; }
/* Portátil y tablet (≤1280): dos columnas, galería a la izquierda y ficha + panel a la derecha, el panel al ancho de su columna */
@media (max-width: 1280px) {
  /* Los detalles van en la columna derecha (no en una fila a todo el ancho): si no, la galería pegajosa bajaba sobre ellos */
  .nf-prod__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "gal info" "gal buy" "gal det"; gap: clamp(16px, 3vw, 32px); }
  .nf-prod__buy { position: static; width: 100%; max-width: none; }
}
@media (max-width: 1024px) {
  .nf-prod__gallery .flex-control-thumbs li { width: calc((100% - 40px) / 5) !important; }
  .nf-buybar { display: flex; align-items: center; justify-content: space-between; gap: 14px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; padding: 10px var(--nf-gutter) calc(10px + env(safe-area-inset-bottom, 0px)); background: rgba(10,10,12,.92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-top: 1px solid var(--nf-borde); box-shadow: 0 -16px 40px -20px rgba(0,0,0,.9); transform: translateY(0); transition: transform var(--nf-t-base) var(--nf-ease); }
  .nf-buybar[hidden] { display: flex; transform: translateY(110%); pointer-events: none; }
  .nf-page-producto .nf-buybar__price { display: flex; align-items: baseline; gap: 8px; margin: 0; font: 500 20px/1 var(--nf-mono) !important; letter-spacing: -.02em; color: var(--nf-hielo) !important; }
  .nf-page-producto .nf-buybar__price del { order: 2; font-size: 13px; font-weight: 400; color: var(--nf-bruma-2); opacity: 1; }
  .nf-page-producto .nf-buybar__price ins { order: 1; text-decoration: none; background: none; }
  .nf-page-producto .nf-buybar__price .amount, .nf-page-producto .nf-buybar__price bdi { font: inherit; color: inherit; }
  .nf-buybar__btns { display: flex; gap: 8px; flex: 1 1 auto; justify-content: flex-end; min-width: 0; }
  .nf-buybar__btn { height: 46px; padding: 0 16px; white-space: nowrap; font-size: 11px; }
  .nf-page-producto { padding-bottom: 96px; }
}
/* Móvil (≤768): una columna, todo al 100% */
@media (max-width: 768px) {
  .nf-prod__grid { grid-template-columns: 1fr; grid-template-areas: "gal" "info" "buy" "det"; gap: 20px; }
}
@media (max-width: 640px) {
  .nf-prod__buy { padding: 14px; }
  .nf-buybar__btns { width: 100%; } .nf-buybar__btn { flex: 1 1 0; padding: 0 10px; }
  .nf-page-producto .nf-buybar__price { display: none; }
  .nf-prod__gallery .flex-control-thumbs li { width: calc((100% - 30px) / 4) !important; }
  .nf-prod__form .variations select { max-width: none; }
  .nf-prod__form .single_add_to_cart_button { flex-basis: 100%; }
  .nf-prod__badges { top: 10px; left: 10px; }
}
@media (prefers-reduced-motion: reduce) { .nf-buybar, .nf-prod__more svg, .nf-acc__ico::before, .nf-acc__ico::after { transition: none; } .nf-shake { animation: none; } }