:root{
  --np-bg:#F4F1EA;
  --np-ink:#101010;
  --np-card:#FFFFFF;
  --np-card2: rgba(255,255,255,.72);
  --np-line: rgba(16,16,16,.12);
  --np-shadow: 0 18px 50px rgba(16,16,16,.08);
  --np-shadow-strong: 0 24px 70px rgba(16,16,16,.12);
}

/* =============================
   PRODUCT CARDS (loop)
   Minimal: media + title + price + cart
   ============================= */

.woocommerce ul.products{ margin:0; padding:0; }

.woocommerce ul.products li.product.npt-pcard{
  list-style:none;
  background: var(--np-card);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--np-shadow);
  border: 1px solid rgba(16,16,16,.06);
  position: relative;
  padding: 0;
  /* Avoid builder layouts forcing flex/stretch that creates large empty gaps */
  display: block !important;
}

.woocommerce ul.products li.product.npt-pcard:hover{
  box-shadow: var(--np-shadow-strong);
}

.woocommerce ul.products li.product.npt-pcard .npt-pcard__media{
  display:block;
  padding: 16px 16px 12px;
  background: #fff;
}

.woocommerce ul.products li.product.npt-pcard .npt-pcard__media img{
  width: 100%;
  height: 240px;
  object-fit: contain;
  display:block;
}

.woocommerce ul.products li.product.npt-pcard .npt-pcard__body{
  padding: 12px 16px 16px;
  background: rgba(255,255,255,.72);
  border-top: 1px solid rgba(16,16,16,.06);
  display: block !important;
  flex: initial !important;
}

.woocommerce ul.products li.product.npt-pcard .npt-pcard__title{
  display:block;
  font-weight: 900;
  font-size: 18px;
  line-height: 1.25;
  color: var(--np-ink);
  margin: 0 0 10px;
  min-height: 44px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.woocommerce ul.products li.product.npt-pcard .npt-pcard__bottom{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
}

.woocommerce ul.products li.product.npt-pcard .npt-pcard__price,
.woocommerce ul.products li.product.npt-pcard .price{
  font-weight: 900;
  font-size: 19px;
  color: var(--np-ink);
  margin: 0;
}

/* Hide rating/extra meta for any product grid item (themes/builders may add it). */
.woocommerce ul.products li.product.npt-pcard .star-rating,
.woocommerce ul.products li.product.npt-pcard .woocommerce-product-rating,
.woocommerce ul.products li.product.npt-pcard .woocommerce-review-link,

/* Only for the theme card template: hide rating/review extras. */
.woocommerce ul.products li.product.npt-pcard [class*="rating"],
.woocommerce ul.products li.product.npt-pcard [class*="review"]{
  display:none !important;
}

.woocommerce ul.products li.product.npt-pcard .button,
.woocommerce ul.products li.product.npt-pcard .added_to_cart{
  background: var(--np-ink) !important;
  color: var(--np-bg) !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 10px 14px !important;
  font-weight: 900 !important;
  font-size: 12px !important;
  line-height: 1 !important;
  box-shadow: 0 16px 34px rgba(16,16,16,.16) !important;
  white-space: nowrap;
}

.woocommerce ul.products li.product.npt-pcard .button:hover{
  transform: translateY(-1px);
}

.woocommerce ul.products li.product.npt-pcard .added_to_cart{
  margin-left: 8px;
  background: transparent !important;
  color: var(--np-ink) !important;
  box-shadow: none !important;
  padding: 0 !important;
  text-decoration: underline;
}

/* Remove rating in loops (in case a plugin injects it) */
.woocommerce ul.products li.product.npt-pcard .star-rating,
.woocommerce ul.products li.product.npt-pcard .woocommerce-product-rating{
  display:none !important;
}

/* Wishlist heart (loop) */
.npt-wishlist-btn{
  width: 38px;
  height: 38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(16,16,16,.10);
  box-shadow: 0 14px 30px rgba(16,16,16,.10);
  position:absolute;
  top: 12px;
  right: 12px;
  z-index: 6;
}

.npt-wishlist-btn__ico{
  font-size: 18px;
  line-height: 1;
  color: var(--np-ink);
}

/* ==================================================
   Favorites page — compact grids (override builder/Woo)
   ================================================== */
.npt-content--favorites .woocommerce ul.products,
.npt-content--favorites ul.products{
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;

  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px !important;
  align-items: stretch;
}

.npt-content--favorites .woocommerce ul.products li.product,
.npt-content--favorites ul.products li.product{
  width: auto !important;
  margin: 0 !important;
}

.npt-content--favorites .woocommerce ul.products li.product img,
.npt-content--favorites ul.products li.product img{
  height: 165px !important;
}

.npt-content--favorites .woocommerce ul.products li.product .woocommerce-loop-product__title,
.npt-content--favorites ul.products li.product .woocommerce-loop-product__title{
  font-size: 15px !important;
}

.npt-content--favorites .woocommerce ul.products li.product .price,
.npt-content--favorites ul.products li.product .price{
  font-size: 15px !important;
}

@media (max-width: 820px){
  .npt-content--favorites .woocommerce ul.products,
  .npt-content--favorites ul.products{
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 12px !important;
  }
  .npt-content--favorites .woocommerce ul.products li.product img,
  .npt-content--favorites ul.products li.product img{
    height: 150px !important;
  }
}

@media (max-width: 420px){
  .npt-content--favorites .woocommerce ul.products,
  .npt-content--favorites ul.products{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ==================================================
   My Account → Addresses — force aligned premium cards
   (Woo can inject floats/column helpers; we neutralize)
   ================================================== */
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-content > *{
  text-align: left !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses,
.woocommerce-account .woocommerce-MyAccount-content .col2-set.addresses,
.woocommerce-account .woocommerce-MyAccount-content .addresses{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
  width: 100% !important;
  max-width: none !important;
  justify-items: start !important;
  margin-top: 12px !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  float: none !important;
  clear: both;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses::after,
.woocommerce-account .woocommerce-MyAccount-content .col2-set.addresses::after,
.woocommerce-account .woocommerce-MyAccount-content .addresses::after{
  content: none !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address,
.woocommerce-account .woocommerce-MyAccount-content .col2-set.addresses > .col-1,
.woocommerce-account .woocommerce-MyAccount-content .col2-set.addresses > .col-2,
.woocommerce-account .woocommerce-MyAccount-content .col2-set.addresses > .u-column1,
.woocommerce-account .woocommerce-MyAccount-content .col2-set.addresses > .u-column2{
  background: #fff;
  border: 1px solid rgba(16,16,16,.08);
  border-radius: 24px;
  box-shadow: var(--np-shadow);
  padding: 18px;

  float: none !important;
  width: auto !important;
  margin: 0 !important;
  max-width: none !important;
  position: static !important;

  display: flex;
  flex-direction: column;
  min-height: 240px;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title a{
  margin-left: auto;
  white-space: nowrap;
}

@media (max-width: 820px){
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses,
  .woocommerce-account .woocommerce-MyAccount-content .col2-set.addresses,
  .woocommerce-account .woocommerce-MyAccount-content .addresses{
    grid-template-columns: 1fr !important;
  }
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address,
  .woocommerce-account .woocommerce-MyAccount-content .col2-set.addresses > .col-1,
  .woocommerce-account .woocommerce-MyAccount-content .col2-set.addresses > .col-2,
  .woocommerce-account .woocommerce-MyAccount-content .col2-set.addresses > .u-column1,
  .woocommerce-account .woocommerce-MyAccount-content .col2-set.addresses > .u-column2{
    min-height: auto;
  }
}

/* ==================================================
   Favorites → “Популярное сейчас” — force left aligned grid
   (Some blocks/elementor widgets center when few items)
   ================================================== */
.npt-content--favorites,
.npt-content--favorites .woocommerce,
.npt-content--favorites .woocommerce .products,
.npt-content--favorites ul.products,
.npt-content--favorites .woocommerce ul.products{
  justify-content: flex-start !important;
  justify-items: start !important;
  place-content: start !important;
  place-items: start !important;
  margin-left: 0 !important;
}

/* =============================
   SINGLE PRODUCT (premium layout)

   Gallery left with vertical thumbs, info right
   ============================= */

body.single-product .woocommerce-breadcrumb{
  font-size: 12px;
  opacity: .75;
  margin-bottom: 14px;
}

/* Our theme overrides Woo template (woocommerce/content-single-product.php).
   Use .npt-single__grid as the layout container and avoid turning the root .product into a grid. */
@media (min-width: 992px){
  body.single-product div.product:not(.npt-single){
    display:grid;
    grid-template-columns: 1.25fr 0.75fr;
    gap: 26px;
    align-items:start;
  }
  body.single-product div.product:not(.npt-single) div.images,
  body.single-product div.product:not(.npt-single) div.summary{
    float:none;
    width:auto;
  }

  /* Our premium template: 2 columns + description under gallery */
  body.single-product .npt-single__grid{
    display:grid;
    grid-template-columns: minmax(0,1fr) 380px;
    gap: 26px;
    align-items:start;
  }

  body.single-product .npt-single__media{ grid-column: 1; }
  body.single-product .npt-single__summary{ grid-column: 2; }
  body.single-product .npt-single__desc{ grid-column: 1; }
}

@media (max-width: 991px){
  body.single-product .npt-single__grid{
    display:flex;
    flex-direction: column;
    gap: 16px;
  }
  body.single-product .npt-single__desc{ margin-top: 0; }
}

/* Kill legacy Woo floats/widths inside our premium template (prevents "слетело" on updates) */
body.single-product .npt-single .woocommerce-product-gallery,
body.single-product .npt-single div.images,
body.single-product .npt-single .summary{
  float: none !important;
  width: 100% !important;
}
body.single-product .npt-single__below{ clear: both; }
body.single-product .npt-single__media,
body.single-product .npt-single__summary,
body.single-product .npt-single__desc{ min-width: 0; }


/* Premium qty (cards) refinements */
.npt-pcard__cta [hidden]{
  display: none !important;
}

.npt-pcard__qty{
  width: 100%;
  justify-content: flex-end;
}
.npt-pcard__qty .npt-qty__input{
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  -webkit-appearance: none;
  appearance: textfield;
}
.npt-pcard__qty .npt-qty__input::-webkit-outer-spin-button,
.npt-pcard__qty .npt-qty__input::-webkit-inner-spin-button{
  -webkit-appearance: none;
  margin: 0;
}

/* Gallery as premium card */
body.single-product .npt-single .woocommerce-product-gallery,
body.single-product .npt-single div.images{
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(16,16,16,.08);
  border-radius: 26px;
  box-shadow: var(--np-shadow);
  padding: 18px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* Description card (left column) */
body.single-product .npt-single__desc{
  margin-top: 18px;
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(16,16,16,.08);
  border-radius: 26px;
  box-shadow: var(--np-shadow);
  padding: 16px 16px 14px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
body.single-product .npt-single__desc-title{
  margin: 0 0 10px;
  font-weight: 900;
  font-size: 18px;
  letter-spacing: -0.01em;
}
body.single-product .npt-single__desc-body{
  font-size: 14px;
  line-height: 1.75;
  opacity: .92;
}
body.single-product .npt-single__desc-body > *:last-child{ margin-bottom: 0; }

/* Description card tabs (Описание / Состав) */
body.single-product .npt-single__desc-tabs{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items:center;
  justify-content:flex-start;
  background: rgba(255,255,255,.42);
  border: 1px solid rgba(16,16,16,.08);
  border-radius: 999px;
  box-shadow: 0 14px 38px rgba(16,16,16,.08);
  padding: 10px;
  margin: 0 0 12px;
}

body.single-product .npt-single__desc-tab{
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid rgba(16,16,16,.10);
  background: rgba(244,241,234,.78);
  color: var(--np-ink);
  border-radius: 999px;
  padding: 12px 18px;
  font-weight: 900;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}

body.single-product .npt-single__desc-tab.is-active{
  background: rgba(16,16,16,.92);
  color: var(--np-bg);
  border-color: rgba(16,16,16,.92);
  box-shadow: 0 18px 44px rgba(16,16,16,.16);
}

body.single-product .npt-single__desc-panel{ display:none; }
body.single-product .npt-single__desc-panel.is-active{ display:block; }

/* Make the main product image fill the whole gallery card area (premium hero look)
   and avoid the "small image in a huge blank" issue. */
body.single-product .npt-single .woocommerce-product-gallery{
  min-height: 420px;
}

body.single-product .npt-single .woocommerce-product-gallery,
body.single-product .npt-single .woocommerce-product-gallery .flex-viewport{
  /* flexible height that looks good on desktop and scales on laptops */
  height: clamp(360px, 60vh, 680px);
}

@media (max-width: 520px){
  body.single-product .npt-single .woocommerce-product-gallery,
  body.single-product .npt-single .woocommerce-product-gallery .flex-viewport{
    height: 420px;
  }
}

body.single-product .npt-single .woocommerce-product-gallery .flex-viewport{
  border-radius: 20px;
  overflow: hidden;
  background: rgba(244,241,234,.55);
}

/* Force the main slide to occupy the full viewport and center the image.
   Some Woo setups output images without <a>, and some have leftover rules that
   shrink the active slide. We normalize both cases. */
body.single-product .npt-single .woocommerce-product-gallery__wrapper,
body.single-product .npt-single .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image,
body.single-product .npt-single .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image > a{
  height: 100% !important;
}

body.single-product .npt-single .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image,
body.single-product .npt-single .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image > a{
  width: 100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* Premium frame behavior:
   On some products the source image has a big transparent/empty canvas.
   Using `contain` makes the subject look tiny. For the "premium hero" look we
   force the image to fill the whole frame and stay centered.
   Users can still open the full photo via the zoom/lightbox icon. */
body.single-product .npt-single .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image,
body.single-product .npt-single .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image > a{
  position: relative !important;
  overflow: hidden !important;
}

/* Default behaviour: show the whole product photo (no cropping), centered.
   This keeps the look premium and prevents "обрезано" complaints.
   The frame size is controlled by the flex-viewport height above. */
body.single-product .npt-single .woocommerce-product-gallery__wrapper img{
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: 50% 50% !important;
  display:block !important;
  margin: 0 !important;
}

/* One-photo safeguard: neutralize Flexslider transforms that can cause a left-pinned
   image on some mobile Safari setups. We only do this when JS detected a single unique image. */
body.single-product.npt-one-photo .npt-single .woocommerce-product-gallery__wrapper{
  transform: none !important;
  left: 0 !important;
  width: 100% !important;
}
body.single-product.npt-one-photo .npt-single .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image{
  width: 100% !important;
  margin: 0 !important;
}

/* One-photo hard normalization:
   When Flexslider glitches, the slide itself becomes very narrow and sticks to the left.
   We force the single slide to fill the viewport and fully center its content.
   This rule is ONLY applied when PHP confirmed there's exactly one image. */
body.single-product.npt-one-photo .npt-single .woocommerce-product-gallery__wrapper{
  display: block !important;
}
body.single-product.npt-one-photo .npt-single .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image{
  float: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Flexslider can wrap the slide into <li> (or other elements) and set inline widths.
   Normalize ANY direct child in the one-photo case so the slide cannot become narrow. */
body.single-product.npt-one-photo .npt-single .woocommerce-product-gallery__wrapper > *{
  width: 100% !important;
  min-width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

/* Center the wrapper itself inside the viewport in one-photo mode */
body.single-product.npt-one-photo .npt-single .woocommerce-product-gallery .flex-viewport{
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Summary as premium card */
body.single-product .summary{
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(16,16,16,.08);
  border-radius: 26px;
  box-shadow: var(--np-shadow);
  padding: 18px 18px 16px;
  position: relative;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

body.single-product .product_title{
  font-weight: 900;
  letter-spacing: -0.02em;
  font-size: 38px;
  line-height: 1.08;
}

@media (max-width: 520px){
  body.single-product .product_title{ font-size: 30px; }
}

body.single-product .summary .price{
  font-weight: 900;
  font-size: 28px;
  margin: 12px 0 14px;
  color: var(--np-ink) !important;
  letter-spacing: -0.01em;
}
body.single-product .summary .price *{ color: var(--np-ink) !important; }

body.single-product .summary .woocommerce-product-details__short-description{
  font-size: 14px;
  line-height: 1.65;
  opacity: .9;
}

/* Layout the add-to-cart area as a neat stack (prevents the button from overlapping any text). */
body.single-product .summary form.cart{
  display:flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
}
body.single-product .summary form.cart .quantity{
  margin: 0 !important;
}
body.single-product .summary form.cart .single_add_to_cart_button{
  margin: 0 !important;
}

body.single-product .summary .product_meta{
  margin-top: 12px;
  clear: both;
}

/* Wishlist button in summary: compact */
.npt-wishlist-btn--single{
  position:absolute;
  top: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
}

/* ===============================
   NPF / Elementor custom cards
   (fallback styling when products
   are rendered outside Woo loop)
   =============================== */


/* wishlist button placement inside media for custom cards */

@media (max-width: 640px){
}
.npt-wishlist-btn--single .npt-wishlist-btn__text{ display:none; }

body.single-product .single_add_to_cart_button{
  background: var(--np-ink) !important;
  color: var(--np-bg) !important;
  border-radius: 18px !important;
  padding: 14px 18px !important;
  font-weight: 900 !important;
  letter-spacing: .01em;
  width: 100%;
  box-shadow: 0 22px 50px rgba(16,16,16,.18);
}
body.single-product .summary form.cart .single_add_to_cart_button{ margin-top: 2px; }

body.single-product .quantity .qty{
  border-radius: 14px;
  border: 1px solid rgba(16,16,16,.16);
  background: rgba(244,241,234,.85);
  padding: 10px 12px;
}

/* Quantity stepper (cards) */
.npt-pcard__ctas*[hidden],
.npt-pcard__ctas*[hidden]s**s*{
  display:none !important;
}

.npt-pcard__qty{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  background: #fff;
  border: 1px solid rgba(16,16,16,.14);
  border-radius: 18px;
  padding: 6px 10px;
  box-shadow: 0 18px 40px rgba(16,16,16,.08);
}
.npt-qty__btn{
  width: 36px;
  height: 36px;
  border-radius: 14px;
  border: 0;
  background: #111;
  color: #fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  transition: transform .08s ease, opacity .12s ease;
}
.npt-qty__btn:active{ transform: scale(.96); }
.npt-qty__btn[disabled]{ opacity:.45; cursor: default; }

.npt-pcard__qty input.npt-qty__input{
  width: 46px !important;
  height: 36px;
  border: 0 !important;
  background: transparent !important;
  text-align: center;
  font-weight: 900;
  font-size: 16px;
  padding: 0 !important;
  margin: 0 !important;
}

/* Gallery thumbs vertical */
@media (min-width: 992px){
  body.single-product .npt-single .woocommerce-product-gallery{
    display:grid;
    grid-template-columns: 92px 1fr;
    gap: 14px;
    align-items:start;
  }

  /* IMPORTANT: One-image products frequently have Flexslider disabled (by our PHP filter).
     When Flexslider is off, Woo does NOT render .flex-viewport/.flex-control-thumbs.
     Our 2-column grid would then squeeze the only image into the 92px column (looks like a
     narrow strip on the left). For a single image we force a single-column layout. */
  body.single-product.npt-one-photo .npt-single .woocommerce-product-gallery{
    display:block !important;
  }

  body.single-product .npt-single .woocommerce-product-gallery .flex-viewport{
    grid-column: 2;
  }

  body.single-product .npt-single .woocommerce-product-gallery .flex-control-thumbs{
    grid-column: 1;
    grid-row: 1;
    display:flex;
    flex-direction:column;
    gap: 10px;
    max-height: 640px;
    overflow:auto;
    padding-right: 6px;
    margin: 0;
  }

  body.single-product .npt-single .woocommerce-product-gallery .flex-control-thumbs li{
    width: 100% !important;
    margin: 0 !important;
  }

  body.single-product .npt-single .woocommerce-product-gallery .flex-control-thumbs img{
    border-radius: 16px;
    border: 1px solid rgba(16,16,16,.10);
    background: #fff;
    padding: 6px;
    box-shadow: 0 14px 30px rgba(16,16,16,.08);
  }
}

/* Hide any ratings in product grids/widgets (we want name+price+cart only) */
.woocommerce ul.products .star-rating,
.woocommerce ul.products .woocommerce-product-rating,
.woocommerce .wp-block-woocommerce-product-rating{ display:none !important; }

/* Tabs + reviews + related */
body.single-product .woocommerce-tabs{
  margin-top: 18px;
}

body.single-product .woocommerce-tabs ul.tabs{
  width: 100%;
  box-sizing: border-box;
  padding: 14px 16px;
  margin: 0 0 16px;
  display:flex;
  gap: 10px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;

  /* wider premium background bar so the active tab doesn't look cramped */
  background: rgba(255,255,255,.42);
  border: 1px solid rgba(16,16,16,.08);
  border-radius: 999px;
  box-shadow: 0 14px 38px rgba(16,16,16,.08);
}

/* Remove Woo's default underline/borders that can visually "cut" the pill */
body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs::after{ display:none !important; content:none !important; }

body.single-product .woocommerce-tabs ul.tabs li{
  border: 0 !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.single-product .woocommerce-tabs ul.tabs li a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 14px 24px;
  border-radius: 999px;
  background: rgba(244,241,234,.78);
  border: 1px solid rgba(16,16,16,.10);
  font-weight: 900;
  font-size: 15px;
  line-height: 1;
  letter-spacing: .01em;
  color: var(--np-ink) !important;
}

body.single-product .woocommerce-tabs ul.tabs li.active a{
  background: rgba(16,16,16,.92);
  color: var(--np-bg) !important;
  border-color: rgba(16,16,16,.92);
  box-shadow: 0 18px 44px rgba(16,16,16,.16);
}

/* Woo tabs sometimes inject decorative pseudo-elements that cause misalignment */
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after{ display:none !important; }

body.single-product .woocommerce-tabs .panel{
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(16,16,16,.08);
  border-radius: 26px;
  box-shadow: var(--np-shadow);
  padding: 16px;
}

/* Reviews: premium card treatment */
body.single-product #reviews #comments ol.commentlist{
  margin: 0;
  padding: 0;
}
body.single-product #reviews #comments ol.commentlist li{
  list-style:none;
  margin: 0 0 12px;
  padding: 14px 14px;
  border-radius: 22px;
  background: rgba(244,241,234,.70);
  border: 1px solid rgba(16,16,16,.10);
}
body.single-product #reviews #comments ol.commentlist li:last-child{ margin-bottom: 0; }
body.single-product #reviews #comments ol.commentlist li .comment-text{
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Fix avatar/name overlap: force a stable 2-column layout regardless of Woo defaults or plugins. */
body.single-product.woocommerce #reviews #comments ol.commentlist li .comment_container{
  /* Some installs still inject floats/relative positioning. Flex here is the most robust. */
  display:flex !important;
  gap: 12px;
  align-items:flex-start;
}
body.single-product.woocommerce #reviews #comments ol.commentlist li .comment_container img.avatar{
  flex: 0 0 44px;
  float:none !important;
  position: static !important;
  margin: 0 !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 14px;
  border: 1px solid rgba(16,16,16,.10);
  background: #fff;
  object-fit: cover;
}
body.single-product.woocommerce #reviews #comments ol.commentlist li .comment-text{
  flex: 1 1 auto;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0;
}
body.single-product.woocommerce #reviews #comments ol.commentlist li .meta{
  font-size: 12px;
  opacity: .75;
  margin: 0 0 8px !important;
  line-height: 1.35;
}

body.single-product #reviews #respond{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(16,16,16,.08);
}
body.single-product #reviews #respond input[type="text"],
body.single-product #reviews #respond input[type="email"],
body.single-product #reviews #respond textarea{
  width: 100%;
  border-radius: 16px;
  border: 1px solid rgba(16,16,16,.14);
  background: rgba(244,241,234,.85);
  padding: 12px 12px;
  outline: none;
}
body.single-product #reviews #respond input:focus,
body.single-product #reviews #respond textarea:focus{
  border-color: rgba(16,16,16,.28);
  box-shadow: 0 0 0 4px rgba(16,16,16,.08);
}
body.single-product #reviews #respond .form-submit #submit{
  background: var(--np-ink) !important;
  color: var(--np-bg) !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 12px 18px !important;
  font-weight: 900 !important;
  box-shadow: 0 18px 40px rgba(16,16,16,.16) !important;
}

body.single-product section.related.products,
body.single-product section.upsells.products{
  margin-top: 18px;
}

/* Responsive tweaks */
@media (max-width: 520px){
  .woocommerce ul.products li.product.npt-pcard .npt-pcard__media img{ height: 200px; }
  .woocommerce ul.products li.product.npt-pcard .npt-pcard__bottom{ flex-direction: column; align-items: stretch; }
  .woocommerce ul.products li.product.npt-pcard .button{ width: 100%; text-align:center; }
}


/* =============================
   PATCH: Addresses alignment + Reviews wider
   ============================= */

/* My Account - Addresses: keep both blocks on one row, align header + button */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses.u-columns,
.woocommerce-account .woocommerce-MyAccount-content .u-columns.woocommerce-Addresses.col2-set.addresses{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 24px !important;
  width: 100% !important;
  margin: 0 !important;
  justify-content: start !important;
  align-items: start !important;
}

@media (max-width: 768px){
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses.u-columns,
  .woocommerce-account .woocommerce-MyAccount-content .u-columns.woocommerce-Addresses.col2-set.addresses{
    grid-template-columns: 1fr !important;
  }
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address{
  float: none !important;
  width: auto !important;
  max-width: none !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  min-height: 56px;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h2{
  margin: 0 !important;
  line-height: 1.15;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title .edit{
  margin-left: auto !important;
  white-space: nowrap;
}

/* Single product - tabs + reviews: make wider and cleaner */
.woocommerce div.product .woocommerce-tabs{
  width: 100%;
}

.woocommerce div.product .woocommerce-tabs ul.tabs{
  gap: 10px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 600;
}

.woocommerce #reviews{
  width: 100%;
}

.woocommerce #reviews #comments,
.woocommerce #reviews #review_form_wrapper,
.woocommerce #review_form,
.woocommerce #respond{
  max-width: 100% !important;
  width: 100% !important;
}

.woocommerce #reviews #comments ol.commentlist{
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce #reviews #comments ol.commentlist li{
  margin: 0 0 14px 0;
}

.woocommerce #respond textarea,
.woocommerce #reviews textarea{
  min-height: 240px !important;
  resize: vertical;
}

.woocommerce #respond .form-submit{
  margin-top: 14px;
}

.woocommerce #respond .form-submit input#submit{
  padding: 12px 22px;
  border-radius: 999px;
  font-weight: 700;
  border: 1px solid rgba(16,16,16,.18);
}


/* =============================
   FIX12 — Favorites full width, Addresses alignment, Reviews wider
   ============================= */

/* Favorites page should use full available width */
.container.npt-content.npt-content--favorites{
  max-width: none !important;
  width: 100% !important;
}
.npt-favorites-card{
  max-width: none !important;
  width: 100% !important;
}
.npt-favorites-hero,
.npt-favorites-empty,
.npt-favorites-reco{
  width: 100% !important;
  max-width: none !important;
}

/* My account content + addresses align left and stay on one row */
.npt-account__main-inner,
.woocommerce-MyAccount-content{
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  justify-self: start !important;
  text-align: left;
}
.u-columns.woocommerce-Addresses.col2-set.addresses{
  width: 100% !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 24px !important;
  align-items: stretch !important;
  margin: 24px 0 0 !important;
}
@media (max-width: 768px){
  .u-columns.woocommerce-Addresses.col2-set.addresses{
    grid-template-columns: 1fr !important;
  }
}
.u-columns.woocommerce-Addresses.col2-set.addresses .woocommerce-Address{
  height: 100%;
  background: #fff;
  border: 1px solid rgba(16,16,16,.08);
  border-radius: 22px;
  box-shadow: 0 18px 50px rgba(16,16,16,.10);
  padding: 22px 22px;
  box-sizing: border-box;
}
.u-columns.woocommerce-Addresses.col2-set.addresses .woocommerce-Address-title{
  display:flex !important;
  align-items:center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 12px !important;
}
.u-columns.woocommerce-Addresses.col2-set.addresses .woocommerce-Address-title h2{
  margin: 0 !important;
  font-family: "Raleway",sans-serif;
  font-size: 20px;
}

.u-columns.woocommerce-Addresses.col2-set.addresses .woocommerce-Address-title a.edit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(16,16,16,.06);
  border: 1px solid rgba(16,16,16,.10);
  font-weight: 800;
  text-decoration:none;
  color: #111;
  white-space: nowrap;
}

.u-columns.woocommerce-Addresses.col2-set.addresses address{
  margin: 0;
  padding-top: 6px;
  color: rgba(16,16,16,.78);
  font-weight: 700;
}

/* Single product: reviews block should be full width of content area */
.npt-single__below,
.npt-single__below .woocommerce-tabs,
.npt-single__below .woocommerce-Tabs-panel,
.npt-single__below #reviews,
.npt-single__below #reviews #comments,
.npt-single__below #reviews #respond{
  max-width: none !important;
  width: 100% !important;
}
.npt-single__below #reviews{
  margin-top: 18px;
  /* make reviews block slightly wider than surrounding text */
  margin-left: clamp(-18px, -1.6vw, -10px);
  margin-right: clamp(-18px, -1.6vw, -10px);
  padding-left: clamp(12px, 1.6vw, 18px);
  padding-right: clamp(12px, 1.6vw, 18px);
}

@media (max-width: 640px){
  .npt-single__below #reviews{
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }
}
.npt-single__below #reviews .commentlist,
.npt-single__below #reviews #respond form{
  width: 100% !important;
}
.npt-single__below #reviews textarea{
  width: 100% !important;
  min-height: 260px !important;
}
.npt-single__below #reviews #respond input#submit{
  padding: 14px 22px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
}

/* FIX14-REVIEWS */

/* Make reviews section visually wider and add inner padding so text isn't tight to edges */
.woocommerce #reviews,
.woocommerce-page #reviews{
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 26px !important;
  box-sizing: border-box !important;
}

.woocommerce #reviews #comments,
.woocommerce #reviews #respond{
  width: 100% !important;
  max-width: none !important;
}

.woocommerce #reviews #comments ol.commentlist li .comment_container{
  padding: 20px 24px !important;
}

.woocommerce #reviews textarea{
  min-height: 280px !important;
  padding: 16px 18px !important;
}

.woocommerce #reviews input#submit{
  padding: 14px 22px !important;
  border-radius: 999px !important;
}

@media (max-width: 820px){
  .woocommerce #reviews,
  .woocommerce-page #reviews{
    width: 100% !important;
    margin: 0 !important;
    padding: 18px !important;
  }
}
/* END-FIX14-REVIEWS */

/* FIX14-ADDRESSES */

/* Force modern address cards layout inside My Account */
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .npt-account__main-inner{
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.woocommerce-account .u-columns.woocommerce-Addresses.col2-set.addresses{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  align-items: stretch !important;
}

.woocommerce-account .u-columns.woocommerce-Addresses .woocommerce-Address{
  border-radius: 18px !important;
  padding: 18px !important;
  background: #fff !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.06) !important;
  min-height: 180px !important;
}

.woocommerce-account .woocommerce-Address-title{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin: 0 0 12px !important;
}

.woocommerce-account .woocommerce-Address-title h2{
  margin: 0 !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
}

.woocommerce-account .woocommerce-Address-title .edit{
  display: inline-flex !important;
  align-items: center !important;
  padding: 10px 14px !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  background: #f7f7f7 !important;
  white-space: nowrap !important;
}

@media (max-width: 820px){
  .woocommerce-account .u-columns.woocommerce-Addresses.col2-set.addresses{
    grid-template-columns: 1fr !important;
  }
  .woocommerce-account .u-columns.woocommerce-Addresses .woocommerce-Address{
    min-height: auto !important;
  }
}
/* END-FIX14-ADDRESSES */


/* FIX15-OVERRIDES */
/* Addresses: keep at top and always two-up on desktop */
.woocommerce-account .npt-account__main-inner{ align-items:flex-start !important; padding-top:0 !important; }
.woocommerce-account .u-columns.woocommerce-Addresses.col2-set.addresses{ margin-top: 0 !important; }
@media (min-width: 821px){
  .woocommerce-account .u-columns.woocommerce-Addresses.col2-set.addresses{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
/* Reviews: ensure not cramped */
.woocommerce #reviews .comment_container{ padding-left:24px !important; padding-right:24px !important; }


/* FIX16-ADDRESSES-TOP */
.woocommerce-account .woocommerce-MyAccount-content p:first-of-type{
  margin-top: 0 !important;
}
.woocommerce-account .u-columns.woocommerce-Addresses.col2-set.addresses{
  margin-top: 12px !important;
  align-content: start !important;
  justify-content: start !important;
}
.woocommerce-account .u-columns.woocommerce-Addresses .woocommerce-Address{
  justify-self: stretch !important;
  align-self: start !important;
}
.woocommerce-account .u-columns.woocommerce-Addresses .woocommerce-Address-title{
  margin-bottom: 10px !important;
}
.woocommerce-account .u-columns.woocommerce-Addresses .woocommerce-Address-title .edit{
  margin-left: auto !important;
}
/* END-FIX16-ADDRESSES-TOP */


/* FIX17-ADDRESSES-TOP-ROW */
.woocommerce-account .u-columns.woocommerce-Addresses.col2-set.addresses{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-flow: row !important;
  gap: 18px !important;
  align-items: stretch !important;
  justify-items: stretch !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

/* remove legacy floats/widths that force wrapping */
.woocommerce-account .u-columns.woocommerce-Addresses.col2-set.addresses::before,
.woocommerce-account .u-columns.woocommerce-Addresses.col2-set.addresses::after{
  content: none !important;
  display: none !important;
}
.woocommerce-account .u-columns.woocommerce-Addresses .u-column1,
.woocommerce-account .u-columns.woocommerce-Addresses .u-column2,
.woocommerce-account .u-columns.woocommerce-Addresses .woocommerce-Address{
  float: none !important;
  clear: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

/* ensure both cards stay on first row on desktop */
.woocommerce-account .u-columns.woocommerce-Addresses .u-column1{ grid-column: 1 !important; grid-row: 1 !important; }
.woocommerce-account .u-columns.woocommerce-Addresses .u-column2{ grid-column: 2 !important; grid-row: 1 !important; }

@media (max-width: 820px){
  .woocommerce-account .u-columns.woocommerce-Addresses.col2-set.addresses{
    grid-template-columns: 1fr !important;
  }
  .woocommerce-account .u-columns.woocommerce-Addresses .u-column1,
  .woocommerce-account .u-columns.woocommerce-Addresses .u-column2{
    grid-column: auto !important;
    grid-row: auto !important;
  }
}

/* === Nicole Filters cards (nicole_filters shortcode) === */

/* Wishlist heart */

/* Quick view button */
@media (hover:hover) and (pointer:fine){
}
@media (hover:none){
}

/* Hide verbose rating text inside stars */


/* =============================
   PREMIUM CARD ADD-ONS (badges, excerpt, green CTA)
   ============================= */

.woocommerce ul.products li.product.npt-pcard .npt-pcard__media img{ height: 280px; }

.woocommerce ul.products li.product.npt-pcard .npt-pcard__title{
  font-size: 19px;
  min-height: auto;
  margin: 0 0 6px;
}

.woocommerce ul.products li.product.npt-pcard .npt-pcard__excerpt{
  margin: 4px 0 8px;
  font-size: 14px;
  line-height: 1.35;
  color: rgba(16,16,16,.82);
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  min-height: 0;
}

.woocommerce ul.products li.product.npt-pcard .npt-pcard__price{
  font-size: 22px;
}

.woocommerce ul.products li.product.npt-pcard .npt-price{
  display:flex;
  align-items: baseline;
  gap: 10px;
}

.woocommerce ul.products li.product.npt-pcard .npt-price__old{
  font-size: 13px;
  font-weight: 800;
  opacity: .55;
  text-decoration: line-through;
}

/* Green add-to-cart */
.woocommerce ul.products li.product.npt-pcard .npt-pcard__cta .button,
.woocommerce ul.products li.product.npt-pcard .npt-pcard__cta a.add_to_cart_button{
  background: #111 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 14px !important;
  padding: 12px 14px !important;
  font-weight: 900 !important;
  font-size: 13px !important;
  line-height: 1 !important;
  width: 100% !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  gap: 8px;
  box-shadow: 0 16px 34px rgba(16,16,16,.16) !important;
}

.woocommerce ul.products li.product.npt-pcard .npt-pcard__cta .button:before{
  content: "";
  width: 16px;
  height: 16px;
  display:inline-block;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2Zm10 0c-1.1 0-1.99.9-1.99 2S15.9 22 17 22s2-.9 2-2-.9-2-2-2ZM7.16 14h9.71c.75 0 1.4-.41 1.74-1.03l3.24-5.88a1 1 0 0 0-.87-1.48H6.21L5.27 3.5A1 1 0 0 0 4.3 3H2a1 1 0 1 0 0 2h1.6l2.76 10.37-.96 1.75A2 2 0 0 0 7.16 20h12.02a1 1 0 1 0 0-2H7.16l1-1.86ZM6.74 7h12.31l-2.42 4.4H7.92L6.74 7Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2Zm10 0c-1.1 0-1.99.9-1.99 2S15.9 22 17 22s2-.9 2-2-.9-2-2-2ZM7.16 14h9.71c.75 0 1.4-.41 1.74-1.03l3.24-5.88a1 1 0 0 0-.87-1.48H6.21L5.27 3.5A1 1 0 0 0 4.3 3H2a1 1 0 1 0 0 2h1.6l2.76 10.37-.96 1.75A2 2 0 0 0 7.16 20h12.02a1 1 0 1 0 0-2H7.16l1-1.86ZM6.74 7h12.31l-2.42 4.4H7.92L6.74 7Z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.woocommerce ul.products li.product.npt-pcard .npt-pcard__cta .button:hover{ filter: brightness(.97); }

/* Badges */
.woocommerce ul.products li.product.npt-pcard .npt-pcard__badges{
  position:absolute;
  top: 12px;
  left: 12px;
  z-index: 6;
  display:flex;
  flex-direction: column;
  gap: 6px;
  pointer-events:none;
}

.woocommerce ul.products li.product.npt-pcard .npt-badge{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 999px;
  font-weight: 900;
  font-size: 12px;
  line-height: 1;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(16,16,16,.10);
  box-shadow: 0 14px 30px rgba(16,16,16,.10);
  color: var(--np-ink);
}

.woocommerce ul.products li.product.npt-pcard .npt-badge--discount{ background: rgba(255,77,77,.12); border-color: rgba(255,77,77,.18); }
.woocommerce ul.products li.product.npt-pcard .npt-badge--super{ background: rgba(32,177,90,.12); border-color: rgba(32,177,90,.18); }

/* Hide verbose rating text inside stars (if any plugin injects it) */
.woocommerce .star-rating span{ font-size: 0 !important; }

@media (max-width: 480px){
  .woocommerce ul.products li.product.npt-pcard .npt-pcard__media img{ height: 220px; }
  .woocommerce ul.products li.product.npt-pcard .npt-pcard__title{ font-size: 16px; min-height: 42px; }
  .woocommerce ul.products li.product.npt-pcard .npt-pcard__price{ font-size: 20px; }
}

/* Do not show secondary "View cart" link in cards */
.woocommerce ul.products li.product.npt-pcard .added_to_cart{ display:none !important; }

/* Cart: prevent long unbroken text (e.g., repeated words without spaces) from stretching layout */
.woocommerce-cart table.shop_table td.product-name,
.woocommerce-cart table.shop_table td.product-name *{
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
}


/* === NPT FIX: prevent long unbroken text in excerpts/cards only === */
.npt-pcard__excerpt,
.npt-pcard__excerpt *,


/* Cart: description/extra text should not stretch layout */
.woocommerce-cart td.product-name .npt-cart-desc{
  display:block;
  max-width: 320px;
  overflow:hidden;
  text-overflow: ellipsis;
  white-space: normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}
@media (max-width:480px){
  .woocommerce-cart td.product-name .npt-cart-desc{ max-width: 240px; }
}


/* === WooCommerce Blocks cart: product description (metadata) ===
   Fix long no-space strings and keep description compact in cart.
*/
.wp-block-woocommerce-cart .wc-block-components-product-metadata__description,
.wp-block-woocommerce-checkout .wc-block-components-product-metadata__description{
  max-width: 360px;
}

.wp-block-woocommerce-cart .wc-block-components-product-metadata__description p,
.wp-block-woocommerce-checkout .wc-block-components-product-metadata__description p{
  margin: 6px 0 0;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
  hyphens: auto;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; /* show only first 2 lines */
  overflow: hidden;
}

@media (max-width: 480px){
  .wp-block-woocommerce-cart .wc-block-components-product-metadata__description,
  .wp-block-woocommerce-checkout .wc-block-components-product-metadata__description{
    max-width: 240px;
  }
}


/* =============================
   SINGLE PRODUCT: description wrapping
   Fix long strings without spaces (e.g. "Главное..Главное..")
   ============================= */
.npt-single__desc-body,
.npt-single__desc-body p,
.npt-single__desc-body *{
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
  hyphens: auto;
}

.npt-single__desc-body{
  max-width: 100%;
}

.npt-single__desc-body p{
  margin: 0 0 12px;
}


/* === NPT FIX v1.2.5: Orderby UI + Mini Cart layout === */

/* Custom orderby dropdown wrapper (JS-enhanced). Fallback: native select stays visible. */
.woocommerce .woocommerce-ordering{ position: relative; }
.woocommerce .woocommerce-ordering .npt-orderby{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.woocommerce .woocommerce-ordering .npt-orderby__label{
  font-weight: 700;
  font-size: 14px;
  opacity: .8;
}
.woocommerce .woocommerce-ordering .npt-orderby__btn{
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  min-width: 220px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(16,16,16,.14);
  background: #fff;
  color: #101010;
  font-weight: 800;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  user-select: none;
}
.woocommerce .woocommerce-ordering .npt-orderby__btn:after{
  content: "";
  width: 10px;
  height: 10px;
  border-right: 2px solid rgba(16,16,16,.65);
  border-bottom: 2px solid rgba(16,16,16,.65);
  transform: rotate(45deg);
  margin-left: 10px;
}
.woocommerce .woocommerce-ordering .npt-orderby__list{
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  z-index: 9999;
  background: #fff;
  border: 1px solid rgba(16,16,16,.14);
  border-radius: 14px;
  box-shadow: 0 18px 40px rgba(16,16,16,.12);
  padding: 6px;
  display: none;
}
.woocommerce .woocommerce-ordering .npt-orderby.is-open .npt-orderby__list{ display:block; }
.woocommerce .woocommerce-ordering .npt-orderby__item{
  padding: 10px 10px;
  border-radius: 12px;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
}
.woocommerce .woocommerce-ordering .npt-orderby__item:hover{
  background: rgba(16,16,16,.06);
}
.woocommerce .woocommerce-ordering .npt-orderby__item.is-active{
  background: rgba(16,16,16,.08);
}

/* Hide native select only when JS enhanced wrapper is present */
.woocommerce .woocommerce-ordering .npt-orderby + select.orderby{ display:none !important; }

/* Mini-cart layout in drawer */
.npt-mini-cart .woocommerce-mini-cart{
  margin: 0;
  padding: 0;
}
.npt-mini-cart .woocommerce-mini-cart-item{
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 36px 12px 0;
  border-bottom: 1px solid rgba(16,16,16,.10);
}
.npt-mini-cart .woocommerce-mini-cart-item a.remove{
  position: absolute;
  top: 10px;
  right: 0;
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: rgba(16,16,16,.06);
  color: #101010;
  text-decoration: none;
}

/* Product link: image on the left, title truncated */
.npt-mini-cart .woocommerce-mini-cart-item > a:not(.remove){
  position: relative;
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  padding-left: 64px;
  text-decoration: none;
  color: inherit;
  font-weight: 800;
  line-height: 1.2;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.npt-mini-cart .woocommerce-mini-cart-item > a:not(.remove) img{
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 56px;
  height: 56px;
  /* Do not crop thumbnails in mini-cart */
  object-fit: contain !important;
  object-position: center !important;
  background: rgba(16,16,16,.04);
  border-radius: 14px;
  display: block;
}

/* Quantity + price aligned to the right */
.npt-mini-cart .woocommerce-mini-cart-item .quantity{
  flex: 0 0 auto;
  margin-left: auto;
  white-space: nowrap;
  font-weight: 700;
  opacity: .9;
}
.npt-mini-cart .woocommerce-mini-cart__total{
  margin: 12px 0 10px;
}
.npt-mini-cart .woocommerce-mini-cart__buttons.buttons{
  display: flex;
  gap: 10px;
  margin: 10px 0 0;
}
.npt-mini-cart .woocommerce-mini-cart__buttons.buttons a.button{
  flex: 1 1 0;
  border-radius: 14px;
  padding: 12px 14px;
  font-weight: 900;
  text-align: center;
}
@media (max-width: 480px){
  .woocommerce .woocommerce-ordering .npt-orderby__btn{ min-width: 0; width: 100%; }
  .woocommerce .woocommerce-ordering{ width: 100%; }
  .woocommerce .woocommerce-ordering .npt-orderby{ width: 100%; }
  .npt-mini-cart .woocommerce-mini-cart__buttons.buttons{ flex-direction: column; }
}


/* WooCommerce Blocks Cart styling (theme look) */
.wp-block-woocommerce-cart.alignwide{
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}

.wp-block-woocommerce-cart .wc-block-components-sidebar-layout.wc-block-cart{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 22px;
}

.wp-block-woocommerce-cart .wc-block-components-main{
  flex: 1 1 680px;
  min-width: 0;
}
.wp-block-woocommerce-cart .wc-block-components-sidebar{
  flex: 0 0 380px;
  max-width: 420px;
  width: 100%;
}
.wp-block-woocommerce-cart .wc-block-components-main,
.wp-block-woocommerce-cart .wc-block-components-sidebar{
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 22px 55px rgba(16,16,16,.10);
  border: 1px solid rgba(16,16,16,.08);
}
.wp-block-woocommerce-cart .wc-block-components-main{
  padding: 14px 14px 6px;
}
.wp-block-woocommerce-cart .wc-block-components-sidebar{
  padding: 14px;
}
.wp-block-woocommerce-cart .wc-block-cart__totals-title{
  font-size: 20px;
  font-weight: 900;
  margin: 4px 0 12px;
}
.wp-block-woocommerce-cart table.wc-block-cart-items{
  border-collapse: separate;
  border-spacing: 0 10px;
  /* Make the "row card" not look like a full-width strip */
  width: auto !important;
  width: fit-content;
  max-width: calc(100% - 32px);
  margin-left: auto;
  margin-right: auto;
  table-layout: auto;
}
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart__main table.wc-block-cart-items{
  flex: 0 0 auto;
} 
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items__header th{
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: rgba(16,16,16,.70);
}
.wp-block-woocommerce-cart .wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items__row{border-radius:18px;}
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items__row > td{background: rgba(244,241,234,.65);}
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items__row > td{
  padding: 12px !important;
  vertical-align: middle;
}

/* Rounded corners for "row cards" in table layout */
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items__row > td:first-child{
  border-top-left-radius: 18px;
  border-bottom-left-radius: 18px;
}
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items__row > td:last-child{
  border-top-right-radius: 18px;
  border-bottom-right-radius: 18px;
}

/* Blocks cart alignment */
.wp-block-woocommerce-cart .wc-block-cart-item__wrap{
  display:flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.wp-block-woocommerce-cart .wc-block-cart-item__product{
  text-align: center;
  width: auto !important;
}
.wp-block-woocommerce-cart .wc-block-cart-item__total{
  text-align: center;
  width: 120px !important;
  white-space: nowrap;
}

/* Prevent the product column from stretching the whole row */
.wp-block-woocommerce-cart .wc-block-cart-item__image{
  width: 96px !important;
}
.wp-block-woocommerce-cart .wc-block-cart-item__product{
  max-width: 420px;
}

/* Avoid "two prices" on the row: keep only the total column price */
.wp-block-woocommerce-cart .wc-block-cart-item__prices{ display:none; }

.wp-block-woocommerce-cart .wc-block-cart-item__image img{
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 14px;
}
.wp-block-woocommerce-cart .wc-block-components-product-name{
  font-weight: 900;
  font-size: 16px;
  text-decoration: none;
}
.wp-block-woocommerce-cart .wc-block-cart-item__prices .wc-block-components-product-price__value{
  font-weight: 900;
}
.wp-block-woocommerce-cart .wc-block-components-product-metadata__description{
  margin-top: 6px;
  max-width: 420px;
}
.wp-block-woocommerce-cart .wc-block-components-product-metadata__description p{
  margin: 0;
  color: rgba(16,16,16,.78);
  font-size: 13px;
  line-height: 1.25;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector{
  background:#fff;
  border: 1px solid rgba(16,16,16,.14);
  border-radius: 16px;
  padding: 6px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__button{
  width: 34px;
  height: 34px;
  border-radius: 14px;
  background: #111;
  color: #fff;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__input{
  width: 52px;
  height: 34px;
  border: 0;
  text-align: center;
  font-weight: 900;
  background: transparent;
}
.wp-block-woocommerce-cart .wc-block-cart-item__remove-link{
  color: rgba(16,16,16,.70);
  text-decoration: underline;
  font-size: 12px;
  margin-top: 8px;
}
.wp-block-woocommerce-cart .wc-block-cart__submit-button{
  border-radius: 18px;
  background: #111;
  color: #fff;
  font-weight: 900;
  padding: 14px 16px;
}
.wp-block-woocommerce-cart .wc-block-cart__submit-button:hover{ opacity:.92; }

@media (max-width: 782px){
  .wp-block-woocommerce-cart .wc-block-components-sidebar-layout.wc-block-cart{
    flex-direction: column;
    align-items: stretch;
  }
  .wp-block-woocommerce-cart .wc-block-components-sidebar{
    flex: 1 1 auto;
    max-width: none;
  }
  .wp-block-woocommerce-cart .wc-block-components-main,
  .wp-block-woocommerce-cart .wc-block-components-sidebar{
    border-radius: 18px;
  }
  .wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items__header{ display:none; }
  .wp-block-woocommerce-cart table.wc-block-cart-items{
    border-spacing: 0 12px;
  }
  .wp-block-woocommerce-cart .wc-block-cart-item__image img{
    width: 64px; height: 64px;
  }
  .wp-block-woocommerce-cart .wc-block-components-product-metadata__description{
    max-width: 100%;
  }
}


/* v15: make cart line-items card less stretched */
.wp-block-woocommerce-cart table.wc-block-cart-items{
  max-width: 720px;
}
@media (min-width: 1200px){
  .wp-block-woocommerce-cart table.wc-block-cart-items{ max-width: 760px; }
}


/* === NPT v16: Compact Woo Blocks cart row (minimal card, not stretched) === */
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart__main table.wc-block-cart-items{
  max-width: 760px;
  margin: 0 auto;
}

/* Hide header row on desktop too (keeps layout clean) */
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items__header{
  display:none;
}

/* Make each cart row a compact card */
.wp-block-woocommerce-cart tr.wc-block-cart-items__row{
  display:flex;
  align-items:center;
  gap:18px;
  width:100%;
  max-width: 760px;
  margin: 0 auto 14px;
  padding: 18px 18px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

/* Reset table cell defaults that cause stretching */
.wp-block-woocommerce-cart tr.wc-block-cart-items__row > td{
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  vertical-align: middle !important;
}

/* Image column */
.wp-block-woocommerce-cart td.wc-block-cart-item__image{
  flex: 0 0 74px;
  width: 74px;
}
.wp-block-woocommerce-cart td.wc-block-cart-item__image img{
  width: 74px !important;
  height: 74px !important;
  object-fit: cover;
  border-radius: 14px;
}

/* Product column */
.wp-block-woocommerce-cart td.wc-block-cart-item__product{
  flex: 1 1 auto;
  min-width: 0;
}
.wp-block-woocommerce-cart .wc-block-cart-item__wrap{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-start;
}

/* Keep title/price on one compact block */
.wp-block-woocommerce-cart a.wc-block-components-product-name{
  font-weight: 800;
  font-size: 16px;
  line-height: 1.2;
}
.wp-block-woocommerce-cart .wc-block-cart-item__prices{
  margin: 0 !important;
}

/* Description: compact 2 lines and never stretches */
.wp-block-woocommerce-cart .wc-block-components-product-metadata__description{
  max-width: 360px;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  white-space: normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  opacity:.75;
  font-size: 13px;
  line-height: 1.25;
}

/* Qty area */
.wp-block-woocommerce-cart .wc-block-cart-item__quantity{
  width: 100%;
  max-width: 320px;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector{
  margin: 0 !important;
}

/* Total column */
.wp-block-woocommerce-cart td.wc-block-cart-item__total{
  flex: 0 0 110px;
  width: 110px;
  text-align:right;
}
.wp-block-woocommerce-cart td.wc-block-cart-item__total .price{
  font-weight: 900;
  font-size: 15px;
}

/* Mobile: stack nicely */
@media (max-width: 640px){
  .wp-block-woocommerce-cart tr.wc-block-cart-items__row{
    flex-direction:column;
    align-items:stretch;
    max-width: 420px;
  }
  .wp-block-woocommerce-cart td.wc-block-cart-item__image{
    flex: 0 0 auto;
    width: 84px;
  }
  .wp-block-woocommerce-cart td.wc-block-cart-item__image img{
    width: 84px !important;
    height: 84px !important;
  }
  .wp-block-woocommerce-cart td.wc-block-cart-item__total{
    width:100%;
    text-align:left;
  }
}


/* ================================
   v19: Woo Blocks Cart row compact + qty selector alignment
   ================================ */

/* Make Blocks cart table behave like a list of compact cards */
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart__main .wc-block-cart-items{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  border-collapse:separate !important;
  border-spacing:0 14px !important;
  background:transparent !important;
}

.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items thead{ display:none !important; }

.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items tbody{
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
}

/* Each row becomes a centered compact card (not full-width strip) */
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items tbody tr.wc-block-cart-items__row{
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
  width:100% !important;
  max-width:760px !important;
  margin:0 auto !important;
  padding:18px 18px !important;
  background: var(--np-card2) !important;
  border:1px solid rgba(16,16,16,.10) !important;
  border-radius:22px !important;
  box-shadow: var(--np-shadow-st) !important;
}

.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items tbody tr.wc-block-cart-items__row > td{
  padding:0 !important;
  border:none !important;
  background:transparent !important;
  vertical-align:middle !important;
}

/* Column sizing */
.wp-block-woocommerce-cart td.wc-block-cart-item__image{
  flex:0 0 72px !important;
  width:72px !important;
}
.wp-block-woocommerce-cart td.wc-block-cart-item__image img{
  width:72px !important;
  height:72px !important;
  border-radius:16px !important;
  object-fit:cover !important;
  display:block !important;
}

.wp-block-woocommerce-cart td.wc-block-cart-item__product{
  flex:1 1 auto !important;
  min-width:0 !important;
}

.wp-block-woocommerce-cart td.wc-block-cart-item__total{
  flex:0 0 120px !important;
  width:120px !important;
  text-align:right !important;
  white-space:nowrap !important;
}

/* Typography inside row */
.wp-block-woocommerce-cart .wc-block-cart-item__wrap{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  min-width:0 !important;
}

.wp-block-woocommerce-cart a.wc-block-components-product-name{
  font-weight:800 !important;
  color:var(--np-ink) !important;
  text-decoration:none !important;
  line-height:1.2 !important;
}

/* Hide per-item price if you only want total on the right */
.wp-block-woocommerce-cart .wc-block-cart-item__prices{ display:none !important; }

/* Description: compact, no overflow */
.wp-block-woocommerce-cart .wc-block-components-product-metadata__description{
  max-width:520px !important;
  overflow:hidden !important;
}
.wp-block-woocommerce-cart .wc-block-components-product-metadata__description p{
  margin:0 !important;
  color:rgba(16,16,16,.60) !important;
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
}

/* Quantity selector: minus | input | plus, same height, no default border */
.wp-block-woocommerce-cart .wc-block-components-quantity-selector{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  padding:10px 12px !important;
  border-radius:16px !important;
  border:1px solid rgba(16,16,16,.14) !important;
  background:#fff !important;
  width:max-content !important;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__button{
  width:40px !important;
  height:40px !important;
  border-radius:999px !important;
  background:#111 !important;
  color:#fff !important;
  border:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:20px !important;
  line-height:1 !important;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__button[disabled]{
  opacity:.35 !important;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__input{
  order:2 !important;
  width:44px !important;
  height:40px !important;
  padding:0 !important;
  margin:0 !important;
  border:none !important;
  background:transparent !important;
  text-align:center !important;
  font-weight:800 !important;
  outline:none !important;
  box-shadow:none !important;
  -moz-appearance:textfield !important;
}
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__button--minus{ order:1 !important; }
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__button--plus{ order:3 !important; }

.wp-block-woocommerce-cart .wc-block-components-quantity-selector__input::-webkit-outer-spin-button,
.wp-block-woocommerce-cart .wc-block-components-quantity-selector__input::-webkit-inner-spin-button{
  -webkit-appearance:none !important;
  margin:0 !important;
}

/* Remove link */
.wp-block-woocommerce-cart .wc-block-cart-item__remove-link{
  color:rgba(16,16,16,.55) !important;
  text-decoration:underline !important;
  align-self:flex-start !important;
}

/* Mobile: stack row */
@media (max-width: 640px){
  .wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-items tbody tr.wc-block-cart-items__row{
    max-width: 92vw !important;
    gap:12px !important;
    padding:14px 14px !important;
  }
  .wp-block-woocommerce-cart td.wc-block-cart-item__total{
    flex:0 0 auto !important;
    width:auto !important;
    margin-left:auto !important;
  }
}


/* =============================
   CART (Blocks): remove link styling
   ============================= */
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-item__remove-link{
  text-decoration:none !important;
  border:none !important;
  background:transparent !important;
  padding:0 !important;
  margin-top:8px !important;
  color:#111 !important;
  opacity:.7;
  font-weight:600;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.wp-block-woocommerce-cart .wp-block-woocommerce-filled-cart-block .wc-block-cart-item__remove-link:hover{
  opacity:1;
}

/* =============================
   CHECKOUT (Blocks): premium layout + responsive
   ============================= */
.wp-block-woocommerce-checkout .wc-block-components-sidebar-layout{
  gap:18px !important;
}
.wp-block-woocommerce-checkout .wc-block-components-main,
.wp-block-woocommerce-checkout .wc-block-components-sidebar{
  background:#fff;
  border-radius:22px;
  box-shadow:0 16px 40px rgba(0,0,0,.08);
}
.wp-block-woocommerce-checkout .wc-block-components-main{
  padding:22px !important;
}
.wp-block-woocommerce-checkout .wc-block-components-sidebar{
  padding:18px !important;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step{
  border:1px solid rgba(0,0,0,.08);
  border-radius:18px;
  padding:16px;
  margin:0 0 14px;
  background:#fff;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__title{
  font-weight:800;
  letter-spacing:.2px;
}
.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-address-form input,
.wp-block-woocommerce-checkout .wc-blocks-components-select__select,
.wp-block-woocommerce-checkout textarea{
  border:1px solid rgba(0,0,0,.12) !important;
  border-radius:14px !important;
  padding:12px 12px !important;
  background:#fff !important;
  box-shadow:none !important;
}
.wp-block-woocommerce-checkout .wc-block-components-text-input input:focus,
.wp-block-woocommerce-checkout .wc-blocks-components-select__select:focus,
.wp-block-woocommerce-checkout textarea:focus{
  outline:none !important;
  border-color: rgba(0,0,0,.35) !important;
}
.wp-block-woocommerce-checkout .wc-block-components-button.contained,
.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button.contained{
  background:#111 !important;
  color:#fff !important;
  border-radius:18px !important;
  min-height:52px !important;
  font-weight:800 !important;
}
.wp-block-woocommerce-checkout .wc-block-components-button.contained:hover{
  filter:brightness(.95);
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-return-to-cart-button{
  text-decoration:none !important;
  font-weight:700;
  opacity:.75;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-return-to-cart-button:hover{
  opacity:1;
}
.wp-block-woocommerce-checkout .wc-block-components-order-summary{
  border:1px solid rgba(0,0,0,.08);
  border-radius:18px;
  padding:14px;
  background:#fff;
}
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item{
  border-radius:16px;
  padding:10px;
}
@media (max-width: 980px){
  .wp-block-woocommerce-checkout .wc-block-components-main,
  .wp-block-woocommerce-checkout .wc-block-components-sidebar{
    border-radius:18px;
  }
}
@media (max-width: 640px){
  .wp-block-woocommerce-checkout .wc-block-components-main{ padding:16px !important; }
  .wp-block-woocommerce-checkout .wc-block-components-sidebar{ padding:14px !important; }
  .wp-block-woocommerce-checkout .wc-block-components-checkout-step{ padding:12px; }
}


/* =============================
   CHECKOUT (Blocks): layout fix + floating labels
   ============================= */
.wp-block-woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout{
  display:flex !important;
  align-items:flex-start !important;
  gap:18px !important;
}
.wp-block-woocommerce-checkout .wc-block-components-main.wc-block-checkout__main{
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
.wp-block-woocommerce-checkout .wc-block-components-sidebar.wc-block-checkout__sidebar{
  flex: 0 0 380px !important;
  max-width: 420px !important;
  min-width: 320px !important;
}
@media (max-width: 980px){
  .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout{
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .wp-block-woocommerce-checkout .wc-block-components-sidebar.wc-block-checkout__sidebar{
    flex: 1 1 auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }
}

/* Floating labels: keep Woo layout readable */
.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-address-form input,
.wp-block-woocommerce-checkout .wc-blocks-components-select__select,
.wp-block-woocommerce-checkout textarea{
  padding: 22px 14px 10px !important;
  line-height: 1.25 !important;
  font-size: 15px !important;
}
.wp-block-woocommerce-checkout .wc-block-components-text-input label,
.wp-block-woocommerce-checkout .wc-blocks-components-select__label{
  left: 14px !important;
  top: 10px !important;
  font-size: 12px !important;
  opacity: .75 !important;
}
.wp-block-woocommerce-checkout .wc-block-components-text-input.is-active label{
  opacity: .7 !important;
}


/* Checkout fields: keep floating labels and inputs visually aligned */
.wp-block-woocommerce-checkout .wc-block-components-text-input,
.wp-block-woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input,
.wp-block-woocommerce-checkout .wc-blocks-components-select,
.wp-block-woocommerce-checkout .wc-block-components-combobox,
.wp-block-woocommerce-checkout .wc-block-components-textarea{
  min-height: 68px;
}
.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-address-form input,
.wp-block-woocommerce-checkout .wc-blocks-components-select__select,
.wp-block-woocommerce-checkout textarea{
  min-height: 68px !important;
  box-sizing: border-box !important;
}
.wp-block-woocommerce-checkout .wc-block-components-text-input label,
.wp-block-woocommerce-checkout .wc-blocks-components-select__label{
  line-height: 1 !important;
}
@media (max-width: 767px){
  .wp-block-woocommerce-checkout .wc-block-components-address-form{
    grid-template-columns: 1fr !important;
  }
  .wp-block-woocommerce-checkout .wc-block-components-address-form > *{
    grid-column: 1 / -1 !important;
  }
}

/* Checkout: consistent 2-col grid spacing for address forms */
.wp-block-woocommerce-checkout .wc-block-components-address-form{
  display:grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px 16px !important;
  align-items: start !important;
}

/* Full-width rows */
.wp-block-woocommerce-checkout .wc-block-components-address-form__country,
.wp-block-woocommerce-checkout .wc-block-components-address-form__address_1,
.wp-block-woocommerce-checkout .wc-block-components-address-form__address_2-toggle,
.wp-block-woocommerce-checkout .wc-block-components-address-form__address_2-hidden-input{
  grid-column: 1 / -1 !important;
}

/* Labels: do not shrink/scale on typing, keep stable */
.wp-block-woocommerce-checkout .wc-block-components-text-input label,
.wp-block-woocommerce-checkout .wc-blocks-components-select__label{
  transform: none !important;
  transition: none !important;
}

/* Pickup mode: keep checkout compact and hide address/contact fields */
html.npt-pickup-mode .wp-block-woocommerce-checkout fieldset#contact-fields,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-checkout__contact-fields,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-checkout__use-address-for-billing,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-components-address-form__company,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-components-address-form__country,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-components-address-form__address_1,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-components-address-form__address_2,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-components-address-form__address_2-toggle,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-components-address-form__address_2-hidden-input,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-components-address-form__city,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-components-address-form__state,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-components-address-form__postcode,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-components-address-form__email,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-components-address-form__country .wc-block-components-country-input,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-checkout__shipping-fields .wc-block-components-checkbox,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-checkout__shipping-fields .wc-block-components-address-form > :not(.wc-block-components-address-form__first_name):not(.wc-block-components-address-form__last_name):not(.wc-block-components-address-form__phone){
  display:none !important;
}
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-checkout__shipping-fields .wc-block-components-address-form{
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-checkout__shipping-fields .wc-block-components-address-form__first_name,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-checkout__shipping-fields .wc-block-components-address-form__last_name,
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-checkout__shipping-fields .wc-block-components-address-form__phone{
  display:block !important;
}
html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-checkout__shipping-fields .wc-block-components-address-form__phone{
  grid-column: 1 / -1 !important;
}
html.npt-pickup-mode .wp-block-woocommerce-checkout .npt-phone-required label::after{
  content: ' *';
}
@media (max-width: 767px){
  html.npt-pickup-mode .wp-block-woocommerce-checkout .wc-block-checkout__shipping-fields .wc-block-components-address-form{
    grid-template-columns: 1fr !important;
  }
}


/* Favorites reco: show cards left-to-right (not stacked) and keep a stable card width */
.npt-favorites-reco .woocommerce ul.products{
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch;
  justify-content: flex-start !important;
  gap: 22px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.npt-favorites-reco .woocommerce ul.products::before,
.npt-favorites-reco .woocommerce ul.products::after{
  content: none !important;
  display: none !important;
}
.npt-favorites-reco .woocommerce ul.products li.product{
  float: none !important;
  width: auto !important;
  flex: 0 0 280px;
  max-width: 280px;
}
@media (max-width: 1024px){
  .npt-favorites-reco .woocommerce ul.products li.product{
    flex-basis: 260px;
    max-width: 260px;
  }
}
@media (max-width: 768px){
  .npt-favorites-reco .woocommerce ul.products li.product{
    flex: 0 0 calc(50% - 11px);
    max-width: none;
  }
}
@media (max-width: 480px){
  .npt-favorites-reco .woocommerce ul.products li.product{
    flex: 1 1 100%;
  }
}

/* Favorites reco: keep cards visually consistent (truncate long title/excerpt) */
.npt-favorites-reco .npt-pcard__title{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.npt-favorites-reco .npt-pcard__excerpt{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}


/* === Fix: Mini cart thumbnails should not be cropped === */
.npt-mini-cart .woocommerce-mini-cart-item{
  display:flex;
  align-items:center;
  gap:12px;
}
/* override earlier absolute/line-clamp layout (it was clipping thumbnails) */
.npt-mini-cart .woocommerce-mini-cart-item > a:not(.remove){
  position: static !important;
  padding-left: 0 !important;
  display:flex !important;
  align-items:center;
  gap:12px;
  min-width:0;
  flex:1 1 auto;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: unset !important;
}
.npt-mini-cart .woocommerce-mini-cart-item > a:not(.remove) img{
  position: static !important;
  left: auto !important;
  top: auto !important;
  transform:none !important;
  width:44px !important;
  height:44px !important;
  flex:0 0 44px !important;
  object-fit:contain !important;
  object-position:center !important;
  border-radius:10px !important;
  background: rgba(16,16,16,.04);
  display:block;
}
.npt-mini-cart .woocommerce-mini-cart-item > a:not(.remove){
  font-weight:800;
}
.npt-mini-cart .woocommerce-mini-cart-item > a:not(.remove) img + *{ min-width:0; }
.npt-mini-cart .woocommerce-mini-cart-item .quantity{ margin-left:auto; white-space:nowrap; }


/* === Fix: Favorites list grid should start from first cell and be 4-per-row === */
.npt-favorites-list .woocommerce ul.products,
.npt-favorites-list .woocommerce ul.products.columns-4{
  display: grid !important;
  /* keep card width same as catalog (do not stretch on wide screens) */
  grid-template-columns: repeat(auto-fill, minmax(240px, 260px)) !important;
  justify-content: flex-start !important;
  gap: 18px !important;
  padding: 0 !important;
  margin: 0 !important;
}

.npt-favorites-list .woocommerce ul.products::before,
.npt-favorites-list .woocommerce ul.products::after{
  content: none !important;
  display: none !important;
}

.npt-favorites-list .woocommerce ul.products li.product,
.npt-favorites-list .woocommerce ul.products li.npt-pcard{
  float: none !important;
  width: auto !important;
  max-width: 260px !important;
  margin: 0 !important;
}

/* Adaptive: allow more columns only when there is real space */
@media (max-width: 1024px){
  .npt-favorites-list .woocommerce ul.products,
  .npt-favorites-list .woocommerce ul.products.columns-4{
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
  }
  .npt-favorites-list .woocommerce ul.products li.product,
  .npt-favorites-list .woocommerce ul.products li.npt-pcard{
    max-width: none !important;
  }
}

@media (max-width: 560px){
  .npt-favorites-list .woocommerce ul.products,
  .npt-favorites-list .woocommerce ul.products.columns-4{
    grid-template-columns: 1fr !important;
  }
  .npt-favorites-list .woocommerce ul.products li.product,
  .npt-favorites-list .woocommerce ul.products li.npt-pcard{
    max-width: none !important;
  }
}
/* =============================
   ACCOUNT NAV — tidy vertical buttons
   ============================= */
.woocommerce-account .npt-account__nav .woocommerce-MyAccount-navigation ul{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.woocommerce-account .npt-account__nav .woocommerce-MyAccount-navigation li{
  margin: 0;
}

.woocommerce-account .npt-account__nav .woocommerce-MyAccount-navigation a{
  display: block;
  width: 100%;
}

/* Checkout Blocks: hide billing address usage (we use shipping address only) */
.wc-block-checkout__use-address-for-billing{
  display: none !important;
}
