/*
Theme Name: Natural Print Child
Theme URI: https://naturalprintchile.cl
Description: Natural Print Chile - Papel mural y murales decorativos
Author: Natural Print
Template: astra
Version: 1.0.0
Text Domain: natural-print-child
*/

/* ============================================
   CSS CUSTOM PROPERTIES
   ============================================ */
:root {
  --np-sage:       #849573;
  --np-sage-light: #B4B898;
  --np-brown:      #5B4637;
  --np-bg:         #F4F3F2;
  --np-card:       #E5E1D9;
  --np-gray:       #C7C7C7;
  --np-camel:      #AF9C8B;
  --np-beige-mid:  #CCAC85;
  --np-cream:      #E3D3BB;
  --np-white:      #FFFFFF;
  --font-heading:  'Big Shoulders Display', sans-serif;
  --font-body:     'Montserrat', sans-serif;
  --ls-title:      0.12em;
  --ls-nav:        0.18em;
}

/* ============================================
   RESET / BASE
   ============================================ */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: var(--font-body);
  background-color: var(--np-bg);
  color: var(--np-brown);
  margin: 0;
  padding: 0 !important;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  text-transform: uppercase;
  letter-spacing: var(--ls-title);
  color: var(--np-brown);
  margin: 0;
}

a { text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }

/* ============================================
   HIDE ASTRA DEFAULTS
   ============================================ */
#masthead,
.ast-primary-header-bar,
.ast-desktop-header,
.ast-mobile-header,
.site-footer,
#colophon,
.ast-breadcrumbs-wrapper,
.woocommerce-breadcrumb,
.ast-woocommerce-breadcrumb { display: none !important; }

.ast-separate-container,
.ast-container,
.site,
#page { padding-top: 0 !important; margin-top: 0 !important; }

.entry-content { padding: 0 !important; margin: 0 !important; }
.ast-article-single { padding: 0 !important; }
.post-0 .entry-content,
.page .entry-content { padding: 0 !important; }

/* Astra container overrides */
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single {
  background: none;
  box-shadow: none;
  padding: 0;
  margin: 0;
}

.ast-page-builder-template .hentry {
  margin: 0;
  padding: 0;
}

/* ============================================
   HEADER
   ============================================ */
.np-header {
  background-color: var(--np-sage);
  position: sticky;
  top: 0;
  z-index: 9999;
  width: 100%;
}

.np-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1640px;
  margin: 0 auto;
  padding: 0 40px;
  height: 104px;
}

/* Logo */
.np-logo { flex: 0 0 auto; }
.np-logo img { height: 84px; width: auto; }
.np-logo-text {
  color: var(--np-white);
  font-family: var(--font-body);
  line-height: 1.2;
}
.np-logo-text .np-logo-main {
  font-size: 1.4rem;
  font-weight: 300;
  letter-spacing: 0.06em;
  display: block;
}
.np-logo-text .np-logo-sub {
  font-size: 0.55rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  opacity: 0.8;
  display: block;
}

/* Nav */
.np-nav { flex: 1; display: flex; justify-content: center; }
.np-nav ul {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  gap: 74px;
}
.np-nav ul li a {
  color: var(--np-white);
  font-family: var(--font-heading);
  font-size: 1.08rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--ls-nav);
  transition: opacity 0.2s;
}
.np-nav ul li a:hover,
.np-nav ul li.current-menu-item > a { opacity: 0.7; }

/* Header actions */
.np-header-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 24px;
}
.np-cart-link {
  position: relative;
  color: var(--np-white);
  font-size: 1.25rem;
  line-height: 1;
}
.np-cart-count {
  position: absolute;
  top: -9px; right: -12px;
  background: var(--np-brown);
  color: white;
  border-radius: 50%;
  width: 19px; height: 19px;
  font-size: 0.68rem;
  font-family: var(--font-body);
  display: flex;
  align-items: center;
  justify-content: center;
}
.np-cart-count:empty { display: none; }

/* ---- Header icon buttons (override Astra blue) ---- */
header.np-header button.np-search-toggle,
header.np-header button.np-cart-btn {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  color: var(--np-white) !important;
  padding: 0 !important;
  cursor: pointer !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
}
header.np-header button.np-search-toggle { font-size: 1.32rem !important; }
header.np-header button.np-cart-btn    { font-size: 1.42rem !important; position: relative !important; }
header.np-header button.np-search-toggle:hover,
header.np-header button.np-cart-btn:hover { opacity: 0.75 !important; }

/* Search overlay — full-screen dark backdrop */
.np-search-overlay {
  position: fixed !important;
  top: 0 !important; left: 0 !important;
  right: 0 !important; bottom: 0 !important;
  width: 100vw !important; height: 100vh !important;
  background-color: rgba(58,48,40,0.88) !important;
  z-index: 99999 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding-top: 130px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.24s ease, visibility 0.24s ease;
  pointer-events: none;
}
.np-search-overlay.active {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
.np-search-overlay-inner {
  width: 100%;
  max-width: 660px;
  padding: 0 24px;
}

/* Search form bar */
.np-search-form {
  display: flex !important;
  align-items: center !important;
  background: var(--np-white) !important;
  border-radius: 3px !important;
  overflow: hidden !important;
  box-shadow: 0 16px 48px rgba(0,0,0,0.28) !important;
  height: 62px !important;
}
.np-search-input {
  flex: 1 !important;
  border: none !important;
  outline: none !important;
  padding: 0 22px !important;
  font-family: var(--font-body) !important;
  font-size: 1rem !important;
  color: var(--np-brown) !important;
  background: transparent !important;
  letter-spacing: 0.04em !important;
  height: 100% !important;
  -webkit-appearance: none !important;
}
.np-search-input::placeholder { color: var(--np-camel); }

/* Kill Astra styles on search form buttons */
.np-search-overlay button.np-search-submit,
.np-search-overlay button.np-search-close {
  -webkit-appearance: none !important;
  appearance: none !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  cursor: pointer !important;
  font-size: 1rem !important;
  height: 62px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 20px !important;
  line-height: 1 !important;
  border-radius: 0 !important;
  transition: background-color 0.2s !important;
}
.np-search-overlay button.np-search-submit {
  background-color: var(--np-sage) !important;
  color: var(--np-white) !important;
  width: 62px !important;
  padding: 0 !important;
  font-size: 1.05rem !important;
}
.np-search-overlay button.np-search-submit:hover {
  background-color: var(--np-brown) !important;
}
.np-search-overlay button.np-search-close {
  background-color: transparent !important;
  color: rgba(91,70,55,0.55) !important;
  width: 52px !important;
  padding: 0 !important;
  font-size: 0.9rem !important;
  border-left: 1px solid var(--np-card) !important;
}
.np-search-overlay button.np-search-close:hover {
  color: var(--np-brown) !important;
}

/* Search results page */
.np-search-results-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  margin-bottom: 32px;
}
.np-search-results-header .np-section-title { flex: 1 1 auto; }
.np-search-inline {
  display: flex;
  align-items: center;
  background: var(--np-white);
  border: 1px solid var(--np-gray);
  border-radius: 4px;
  overflow: hidden;
  flex: 0 1 320px;
}
.np-search-inline-input {
  flex: 1;
  border: none;
  outline: none;
  padding: 10px 14px;
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--np-brown);
  background: transparent;
}
.np-search-inline-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0 12px;
  color: var(--np-sage);
  font-size: 0.95rem;
  height: 100%;
}
.np-search-inline-btn:hover { color: var(--np-brown); }
.np-search-count {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--np-camel);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 24px;
}
.np-search-empty {
  text-align: center;
  padding: 80px 20px;
  font-family: var(--font-body);
  color: var(--np-brown);
  line-height: 1.8;
}
.np-search-empty a { color: var(--np-sage); text-decoration: underline; }

/* Live search suggestions dropdown */
.np-search-suggestions {
  width: 100%;
  background: var(--np-white);
  border-radius: 0 0 4px 4px;
  overflow: hidden;
  box-shadow: 0 20px 48px rgba(0,0,0,0.28);
  margin-top: 3px;
}
.np-search-suggestions:empty { display: none; }
.np-sugg-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 11px 18px;
  border-bottom: 1px solid var(--np-card);
  color: var(--np-brown);
  transition: background 0.14s;
}
.np-sugg-item:last-child { border-bottom: none; }
.np-sugg-item:hover { background: var(--np-bg); }
.np-sugg-item img {
  width: 54px; height: 54px;
  object-fit: cover;
  border-radius: 3px;
  flex-shrink: 0;
  display: block;
}
.np-sugg-name {
  flex: 1;
  font-family: var(--font-body);
  font-size: 0.83rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--np-brown);
}
.np-sugg-price {
  font-family: var(--font-heading);
  font-size: 0.82rem;
  color: var(--np-sage);
  letter-spacing: 0.04em;
  flex-shrink: 0;
}

/* ============================================
   CART DRAWER
   ============================================ */
body.np-noscroll { overflow: hidden; }

.np-cart-overlay {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(91,70,55,0.5);
  z-index: 100000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.28s ease, visibility 0.28s ease;
}
.np-cart-overlay.active {
  opacity: 1;
  visibility: visible;
}

.np-cart-drawer {
  position: fixed;
  top: 0; right: 0;
  width: min(420px, 94vw);
  height: 100vh;
  height: 100dvh;
  background: var(--np-white);
  z-index: 100001;
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.4,0,0.2,1);
  display: flex;
  flex-direction: column;
  box-shadow: -6px 0 32px rgba(0,0,0,0.12);
}
.np-cart-drawer.active { transform: translateX(0); }

.np-cart-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 24px;
  background: var(--np-sage);
  flex-shrink: 0;
}
.np-cart-drawer-title {
  color: var(--np-white);
  font-size: 0.95rem;
  letter-spacing: 0.16em;
  margin: 0;
}
.np-cart-drawer-close {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  color: var(--np-white) !important;
  font-size: 1.1rem !important;
  cursor: pointer !important;
  padding: 4px !important;
  opacity: 0.85;
  display: flex;
  align-items: center;
}
.np-cart-drawer-close:hover { opacity: 1 !important; }

.np-cart-drawer-body {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

/* Mini cart — items */
.np-mini-cart-list {
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1;
}
.np-mini-cart-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 24px;
  border-bottom: 1px solid var(--np-card);
}
.np-mini-cart-thumb { flex-shrink: 0; }
.np-mini-cart-thumb img {
  width: 76px; height: 76px;
  object-fit: cover;
  border-radius: 3px;
  display: block;
}
.np-mini-cart-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}
.np-mini-cart-name {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--np-brown);
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.np-mini-cart-dims {
  font-family: var(--font-body);
  font-size: 0.72rem;
  color: var(--np-camel);
  letter-spacing: 0.03em;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.np-mini-cart-dims span { display: block; }
.np-mini-cart-dims strong { color: var(--np-brown); font-weight: 600; }
.np-mini-cart-price {
  font-family: var(--font-heading);
  font-size: 0.9rem;
  color: var(--np-brown);
  letter-spacing: 0.06em;
}
.np-mini-cart-remove {
  flex-shrink: 0;
  color: var(--np-gray);
  font-size: 0.9rem;
  padding: 2px 4px;
  transition: color 0.15s;
  display: flex;
  align-items: center;
}
.np-mini-cart-remove:hover { color: var(--np-brown); }

/* Mini cart — footer */
.np-mini-cart-footer {
  border-top: 2px solid var(--np-card);
  padding: 20px 24px 24px;
  flex-shrink: 0;
  background: var(--np-white);
}
.np-mini-cart-subtotal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
  font-family: var(--font-body);
  font-size: 0.88rem;
  color: var(--np-brown);
}
.np-mini-cart-subtotal strong {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  letter-spacing: 0.08em;
}
.np-mini-cart-actions {
  display: flex;
  gap: 10px;
}
.np-mini-btn {
  flex: 1;
  display: block;
  text-align: center;
  padding: 13px 16px;
  font-family: var(--font-heading);
  font-size: 0.78rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border-radius: 2px;
  transition: background 0.2s, color 0.2s;
  border: 2px solid var(--np-sage);
}
.np-mini-btn--solid {
  background: var(--np-sage);
  color: var(--np-white);
}
.np-mini-btn--solid:hover { background: var(--np-brown); border-color: var(--np-brown); }
.np-mini-btn--outline {
  background: transparent;
  color: var(--np-sage);
}
.np-mini-btn--outline:hover {
  background: var(--np-sage);
  color: var(--np-white);
}

/* Mini cart — empty state */
.np-mini-cart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: 60px 24px;
  text-align: center;
  gap: 16px;
}
.np-mini-cart-empty i {
  font-size: 2.5rem;
  color: var(--np-gray);
}
.np-mini-cart-empty p {
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--np-camel);
  margin: 0;
}
.np-mini-cart-empty .np-mini-btn--solid {
  width: auto;
  padding: 12px 28px;
}

/* ============================================
   HERO SECTION
   ============================================ */
.np-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 420px;
}

.np-hero-left {
  background-color: var(--np-bg);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  padding: 80px 64px;
  position: relative;
  overflow: hidden;
}
.np-hero-left-content { position: relative; z-index: 1; }

.np-hero-title {
  font-size: clamp(2.4rem, 4vw, 3.6rem);
  font-weight: 900;
  line-height: 1.05;
  color: var(--np-brown);
  margin-bottom: 24px;
}

.np-hero-subtitle {
  font-size: 0.9rem;
  color: var(--np-brown);
  line-height: 1.7;
  max-width: 360px;
  opacity: 0.85;
}

.np-hero-right { overflow: hidden; }
.np-hero-right img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ============================================
   SECTION TITLES
   ============================================ */
.np-section-title {
  font-size: 1.9rem;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-align: center;
  margin-bottom: 40px;
  color: var(--np-brown);
}

/* ============================================
   NEW DESIGNS (homepage) — carousel
   ============================================ */
.np-section-new-designs {
  padding: 70px 0 70px;
  max-width: 1400px;
  margin: 0 auto;
}

.np-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 48px;
  margin-bottom: 28px;
}
.np-section-header .np-section-title { margin-bottom: 0; }

.np-carousel-nav {
  display: flex;
  gap: 8px;
}
.np-nav-btn {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1.5px solid var(--np-sage) !important;
  background: transparent !important;
  color: var(--np-sage) !important;
  font-size: 0.85rem !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.2s, color 0.2s !important;
  padding: 0 !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
}
.np-nav-btn:hover {
  background: var(--np-sage) !important;
  color: var(--np-white) !important;
}
.np-nav-btn--dim { opacity: 0.3; pointer-events: none; }

.np-carousel-viewport {
  overflow-x: hidden;
  padding: 0 48px;
}
.np-carousel-track {
  display: flex;
  gap: 24px;
  flex-wrap: nowrap;
  transition: none;
  will-change: transform;
}
.np-carousel-track .np-product-card {
  flex: 0 0 calc(25% - 18px);
  min-width: 0;
}

/* Keep the old np-products-row for search/shop pages */
.np-products-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

/* ============================================
   PRODUCT CARD
   ============================================ */
.np-product-card {
  display: block;
  color: var(--np-brown);
  text-decoration: none;
}
.np-product-card:hover .np-product-img { transform: scale(1.04); }

.np-product-img-wrap {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--np-card);
  position: relative;
}
.np-product-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.4s ease;
}

.np-product-name {
  font-family: var(--font-heading);
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  text-align: center;
  margin-top: 14px;
  margin-bottom: 4px;
}
.np-product-price {
  font-family: var(--font-body);
  font-size: 0.78rem;
  color: var(--np-sage);
  font-weight: 600;
  text-align: center;
}

/* ============================================
   CATEGORIES (homepage)
   ============================================ */
.np-section-categories {
  padding: 0 48px 72px;
  max-width: 1400px;
  margin: 0 auto;
}
.np-categories-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.np-cat-card {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.np-cat-card img,
.np-cat-img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease, opacity 0.35s ease;
}
.np-cat-card:hover .np-cat-img { transform: scale(1.05); }
.np-cat-label {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: rgba(132, 149, 115, 0.72);
  color: white;
  font-family: var(--font-heading);
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  text-align: center;
  padding: 10px 8px;
}

/* ============================================
   SHOP / PRODUCTS PAGE
   ============================================ */
.np-shop-wrap {
  max-width: 1640px;
  margin: 0 auto;
  padding: 34px 32px 84px;
}

/* Shop category rail */
.np-shop-cats-shell {
  max-width: 1120px;
  margin: 0 auto 34px;
}
.np-shop-cats-bar {
  display: flex;
  align-items: center;
  gap: 10px;
}
.np-shop-cats-nav {
  width: 28px;
  height: 28px;
  border: 1px solid rgba(132, 149, 115, 0.35);
  background: transparent;
  color: var(--np-sage);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}
.np-shop-cats-nav:hover {
  background: var(--np-sage);
  color: var(--np-white);
}
.np-shop-cats-nav.np-disabled {
  opacity: 0.35;
  pointer-events: none;
}
.np-shop-cats-viewport {
  flex: 1;
  overflow-x: auto;
  scrollbar-width: none;
  border-top: 1px solid rgba(132, 149, 115, 0.2);
  border-bottom: 1px solid rgba(132, 149, 115, 0.2);
  padding: 10px 0;
}
.np-shop-cats-viewport::-webkit-scrollbar { display: none; }
.np-shop-cats-track {
  display: flex;
  gap: 10px;
  min-width: max-content;
}
.np-shop-cat-chip {
  min-width: 140px;
  padding: 7px 12px;
  border: 1px solid rgba(132, 149, 115, 0.32);
  color: var(--np-brown);
  background: transparent;
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.np-shop-cat-chip:hover,
.np-shop-cat-chip.np-active {
  background: rgba(132,149,115,0.14);
  color: var(--np-brown);
  border-color: var(--np-sage);
}

/* Shop layout */
.np-shop-layout {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 36px;
  align-items: start;
}

.np-shop-sidebar {
  position: sticky;
  top: 128px;
}
.np-shop-sidebar-block {
  background: transparent;
  border: none;
  padding: 0;
  margin-bottom: 0;
}
.np-shop-sidebar-kicker {
  display: block;
  margin-bottom: 8px;
  color: var(--np-sage);
  font-family: var(--font-heading);
  font-size: 0.64rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.np-shop-sidebar-title {
  font-size: 1.1rem;
  font-weight: 800;
  margin-bottom: 18px;
}
.np-shop-sidebar-heading {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  margin-bottom: 10px;
}
.np-shop-filter-group {
  border-bottom: 1px solid rgba(132,149,115,0.14);
  margin-bottom: 12px;
  padding-bottom: 10px;
}
.np-shop-filter-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
  color: var(--np-brown);
  font-family: var(--font-heading);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 2px 0 8px;
}
.np-shop-filter-group summary::-webkit-details-marker { display: none; }
.np-shop-filter-group summary i {
  color: var(--np-sage);
  font-size: 0.62rem;
  transition: transform 0.2s ease;
}
.np-shop-filter-group[open] summary i {
  transform: rotate(180deg);
}
.np-shop-sidebar-copy {
  font-family: var(--font-body);
  font-size: 0.72rem;
  line-height: 1.7;
  color: rgba(91,70,55,0.72);
  margin: 16px 0 0;
}
.np-shop-filter-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.np-shop-filter-list--scroll {
  max-height: 188px;
  overflow-y: auto;
  padding-right: 8px;
}
.np-shop-filter-list--scroll::-webkit-scrollbar {
  width: 4px;
}
.np-shop-filter-list--scroll::-webkit-scrollbar-track {
  background: rgba(132,149,115,0.08);
}
.np-shop-filter-list--scroll::-webkit-scrollbar-thumb {
  background: rgba(132,149,115,0.38);
}
.np-shop-filter-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 9px 0;
  border: none;
  border-bottom: 1px solid rgba(132,149,115,0.12);
  background: transparent;
  color: var(--np-brown);
  font-family: var(--font-body);
  font-size: 0.73rem;
  transition: color 0.2s ease, opacity 0.2s ease;
}
.np-shop-filter-link strong {
  font-family: var(--font-heading);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  color: rgba(91,70,55,0.62);
}
.np-shop-filter-link:hover,
.np-shop-filter-link.np-active {
  background: transparent;
  color: var(--np-sage);
}
.np-shop-filter-link:hover strong,
.np-shop-filter-link.np-active strong {
  color: var(--np-sage);
}
.np-shop-clear-link {
  display: inline-flex;
  margin-top: 16px;
  color: var(--np-sage);
  font-family: var(--font-heading);
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(132,149,115,0.45);
}
.np-shop-clear-link:hover { color: var(--np-brown); border-bottom-color: var(--np-brown); }

.np-shop-main {
  min-width: 0;
}
.np-shop-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 26px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(132,149,115,0.12);
}
.np-shop-toolbar-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.np-shop-results {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.np-shop-current {
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.72rem;
  color: rgba(91,70,55,0.66);
}
.np-shop-order-form {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 180px;
}
.np-shop-order-label {
  font-family: var(--font-heading);
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--np-camel);
}
.np-shop-order-select {
  border: 1px solid rgba(132,149,115,0.18);
  background: transparent;
  color: var(--np-brown);
  font-family: var(--font-body);
  font-size: 0.74rem;
  padding: 9px 10px;
  height: auto;
  box-shadow: none;
}
.np-shop-order-select:focus { outline: none; border-color: var(--np-sage); }

#ast-scroll-top {
  background: linear-gradient(180deg, var(--np-sage) 0%, var(--np-brown) 100%) !important;
  color: var(--np-white) !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  box-shadow: 0 12px 24px rgba(91,70,55,0.22) !important;
  border-radius: 999px !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease !important;
}

#ast-scroll-top:hover,
#ast-scroll-top:focus {
  background: linear-gradient(180deg, var(--np-brown) 0%, var(--np-sage) 100%) !important;
  color: var(--np-white) !important;
  transform: translateY(-2px);
  box-shadow: 0 16px 28px rgba(91,70,55,0.28) !important;
}

#ast-scroll-top .ast-icon.icon-arrow svg {
  fill: currentColor !important;
}

/* Floating WhatsApp CTA */
.np-whatsapp-float {
  position: fixed;
  left: 28px;
  bottom: 28px;
  z-index: 99998;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px 12px 12px;
  color: var(--np-white) !important;
  background: rgba(91,70,55,0.96);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 999px;
  box-shadow: 0 18px 34px rgba(91,70,55,0.22);
  font-family: var(--font-body);
  text-decoration: none !important;
  transition: transform 0.22s ease, background-color 0.22s ease, box-shadow 0.22s ease;
}
.np-whatsapp-float:hover,
.np-whatsapp-float:focus {
  color: var(--np-white) !important;
  background: var(--np-sage);
  transform: translateY(-2px);
  box-shadow: 0 22px 38px rgba(91,70,55,0.28);
}
.np-whatsapp-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,0.14);
  font-size: 1.35rem;
  line-height: 1;
}
.np-whatsapp-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 0.66rem;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.95;
}
.np-whatsapp-text strong {
  color: inherit;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  letter-spacing: 0.13em;
  line-height: 1;
}

/* Products grid */
.np-products-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 36px 28px;
}
.np-shop-main .np-product-card:hover .np-product-img {
  transform: scale(1.03);
}
.np-shop-main .np-product-img-wrap {
  background: var(--np-card);
  aspect-ratio: 4 / 3;
}
.np-shop-main .np-product-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  padding-top: 10px;
}
.np-shop-main .np-product-name {
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  text-align: left;
  margin: 0;
  color: var(--np-brown);
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.np-shop-main .np-product-price {
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--np-sage);
  text-align: right;
  flex-shrink: 0;
  white-space: nowrap;
}
.np-shop-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 60px 24px;
  background: transparent;
  border: 1px solid rgba(132,149,115,0.12);
  font-family: var(--font-body);
  color: var(--np-brown);
}
.np-shop-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid rgba(132,149,115,0.12);
}
.np-shop-pagination .page-numbers {
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid rgba(132,149,115,0.22);
  color: var(--np-brown);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 0.76rem;
  line-height: 1;
  text-decoration: none;
  background: transparent;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.np-shop-pagination .page-numbers:hover,
.np-shop-pagination .page-numbers.current {
  border-color: var(--np-sage);
  color: var(--np-sage);
  background: rgba(132,149,115,0.08);
}
.np-shop-pagination .prev,
.np-shop-pagination .next {
  padding: 0 14px;
}
.np-shop-pagination .dots {
  border-color: transparent;
  min-width: 20px;
  padding: 0 4px;
}

/* ============================================
   MEDIR PAGE
   ============================================ */
.np-medir-wrap {
  max-width: 1140px;
  margin: 0 auto;
  padding: 72px 48px 80px;
}
.np-medir-block {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 48px;
  margin-bottom: 64px;
  align-items: start;
}
.np-medir-heading {
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 900;
  line-height: 1.05;
  color: var(--np-brown);
}
.np-medir-body {
  font-size: 0.88rem;
  line-height: 1.9;
  color: var(--np-brown);
}
.np-medir-body a { color: var(--np-sage); }
.np-medir-body strong,
.np-medir-body b { color: var(--np-sage); font-weight: 600; }
.np-medir-body ol,
.np-medir-body ul { padding-left: 1.2em; margin: 0; }
.np-medir-body li { margin-bottom: 8px; }
.np-medir-kicker {
  margin: 0 0 10px;
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--np-sage);
}
.np-medir-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  margin-top: 12px;
  padding: 36px 40px;
  background: rgba(132,149,115,0.12);
  border: 1px solid rgba(132,149,115,0.22);
}
.np-medir-card h2 {
  margin-bottom: 14px;
  font-size: clamp(1.7rem, 3vw, 2.3rem);
  line-height: 1.05;
}
.np-medir-card p {
  max-width: 680px;
  margin: 0 0 12px;
  font-size: 0.9rem;
  line-height: 1.8;
}
.np-medir-card p:last-child { margin-bottom: 0; }
.np-medir-cta {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 24px;
  background: var(--np-brown);
  color: var(--np-white);
  font-family: var(--font-heading);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  transition: background 0.2s ease, transform 0.2s ease;
}
.np-medir-cta:hover,
.np-medir-cta:focus {
  background: var(--np-sage);
  color: var(--np-white);
  transform: translateY(-1px);
}

/* ============================================
   SINGLE PRODUCT
   ============================================ */
.np-single-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 64px 48px 80px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
}

.np-product-gallery-img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}

/* Galería: miniaturas */
.np-gallery-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.np-gallery-thumb {
  width: 72px;
  height: 72px;
  padding: 0;
  border: 1.5px solid transparent;
  background: none;
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.2s ease;
}
.np-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.np-gallery-thumb:hover { border-color: var(--np-sage-light); }
.np-gallery-thumb.active { border-color: var(--np-sage); }

/* Descripción del producto (incluye SKU) */
.np-product-description {
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid var(--np-card);
}
.np-product-desc-title {
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--ls-nav);
  color: var(--np-sage);
  margin-bottom: 12px;
}
.np-product-description p {
  font-family: var(--font-body);
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--np-brown);
  margin: 0 0 10px;
}

.np-product-title {
  font-size: 1.9rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  margin-bottom: 10px;
}
.np-product-price-base {
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 2px;
}
.np-product-price-m2 {
  font-family: var(--font-body);
  font-size: 0.95rem;
  margin-bottom: 28px;
}

/* ============================================
   CALCULATOR
   ============================================ */
.np-calc { margin-top: 4px; }

.np-calc-label {
  display: block;
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: 8px;
}

.np-material-select {
  width: 100%;
  padding: 10px 40px 10px 14px;
  border: none;
  border-bottom: 1.5px solid var(--np-brown);
  background: white;
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--np-brown);
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235B4637'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  cursor: pointer;
  margin-bottom: 20px;
}
.np-material-select:focus { outline: none; border-bottom-color: var(--np-sage); }

.np-calc-intro {
  font-size: 0.82rem;
  line-height: 1.7;
  margin-bottom: 20px;
}
.np-calc-intro em {
  color: var(--np-sage);
  font-style: italic;
}

.np-dimensions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 16px;
}
.np-dim-label {
  font-size: 0.75rem;
  color: var(--np-brown);
  opacity: 0.75;
  display: block;
  margin-bottom: 6px;
}
.np-dim-label small {
  display: block;
  font-size: 0.68rem;
  opacity: 0.7;
}
.np-dim-input {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--np-gray);
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--np-brown);
  background: white;
}
.np-dim-input:focus { outline: none; border-color: var(--np-sage); }

.np-calc-notice {
  font-size: 0.78rem;
  line-height: 1.65;
  margin-bottom: 20px;
  display: none;
}
.np-calc-notice.visible { display: block; }

.np-result-m2 {
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  display: none;
  margin-bottom: 2px;
}
.np-result-total {
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  display: none;
  margin-bottom: 28px;
}
.np-result-m2.visible,
.np-result-total.visible { display: block; }

.np-add-cart-btn {
  display: none;
  background: var(--np-sage);
  color: white;
  border: none;
  padding: 16px 44px;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  cursor: pointer;
  transition: background-color 0.25s;
}
.np-add-cart-btn.visible { display: inline-block; }
.np-add-cart-btn:hover { background-color: var(--np-brown); }

/* ============================================
   FOOTER
   ============================================ */
.np-footer {
  background-color: var(--np-sage);
  padding: 48px 40px;
}
.np-footer-inner {
  max-width: 1640px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 32px;
}
.np-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 54px;
  justify-content: center;
  flex: 1;
}
.np-footer-links a {
  color: var(--np-white);
  font-family: var(--font-body);
  font-size: 0.96rem;
  text-decoration: underline;
  opacity: 0.9;
  transition: opacity 0.2s;
}
.np-footer-links a:hover { opacity: 1; }

.np-footer-contact {
  text-align: right;
  position: relative;
}
.np-footer-contact-title {
  color: var(--np-white);
  font-family: var(--font-body);
  font-size: 0.98rem;
  font-weight: 600;
  margin-bottom: 12px;
  display: block;
}
.np-social-icons {
  display: flex;
  gap: 18px;
  justify-content: flex-end;
}
.np-social-icons a,
.np-social-icons button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--np-white);
  font-size: 1.28rem;
  line-height: 1;
  transition: opacity 0.2s;
}
.np-social-icons button {
  appearance: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  cursor: pointer;
  font-family: inherit;
  margin: 0;
  padding: 0;
}
.np-social-icons a:hover,
.np-social-icons button:hover,
.np-social-icons button:focus { opacity: 0.7; }
.np-social-icons button:focus-visible {
  outline: 1px solid rgba(255,255,255,0.8);
  outline-offset: 4px;
}
.np-social-icons svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
  vertical-align: middle;
}
.np-copy-toast {
  display: block;
  min-height: 1.1em;
  margin-top: 10px;
  color: var(--np-white);
  font-family: var(--font-body);
  font-size: 0.72rem;
  line-height: 1.45;
  opacity: 0;
  transform: translateY(-3px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.np-copy-toast.active {
  opacity: 0.9;
  transform: translateY(0);
}

/* ============================================
   GENERIC CONTENT PAGES
   ============================================ */
.np-info-page,
.np-content-page {
  max-width: 1120px;
  margin: 0 auto;
  padding: 74px 48px 88px;
}
.np-info-hero {
  display: grid;
  grid-template-columns: minmax(220px, 0.42fr) minmax(0, 1fr);
  gap: clamp(32px, 6vw, 84px);
  align-items: start;
  margin-bottom: 44px;
}
.np-info-kicker,
.np-info-eyebrow {
  display: block;
  margin: 0 0 12px;
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--np-sage);
}
.np-info-page h1,
.np-content-page h1 {
  font-size: clamp(2.25rem, 4vw, 4rem);
  font-weight: 900;
  line-height: 0.95;
  margin-bottom: 0;
}
.np-info-page h2 {
  font-size: clamp(1.55rem, 2.4vw, 2.2rem);
  line-height: 1.05;
  margin-bottom: 16px;
}
.np-info-page h3 {
  font-size: 1rem;
  margin-bottom: 10px;
}
.np-info-lead {
  max-width: 720px;
  font-size: clamp(1.02rem, 1.35vw, 1.18rem);
  line-height: 1.85;
  color: var(--np-brown);
}
.np-info-page p,
.np-content-page p {
  font-size: 0.92rem;
  line-height: 1.9;
  margin: 0 0 18px;
}
.np-info-panel {
  padding: 34px;
  background: rgba(229,225,217,0.62);
  border: 1px solid rgba(91,70,55,0.08);
}
.np-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 34px;
}
.np-info-card {
  padding: 26px;
  background: var(--np-white);
  border: 1px solid rgba(91,70,55,0.08);
}
.np-info-card p:last-child,
.np-info-panel p:last-child { margin-bottom: 0; }
.np-info-list {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.np-info-list li {
  padding-left: 22px;
  position: relative;
  font-size: 0.92rem;
  line-height: 1.75;
}
.np-info-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--np-sage);
}
.np-shipping-rates {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 34px 0;
}
.np-shipping-rate {
  padding: 28px;
  background: var(--np-white);
  border: 1px solid rgba(91,70,55,0.08);
}
.np-shipping-price {
  display: block;
  margin: 12px 0 8px;
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.08em;
  color: var(--np-sage);
}
.np-info-note {
  padding: 22px 26px;
  background: rgba(132,149,115,0.1);
  border-left: 3px solid var(--np-sage);
}
.np-info-page a { color: var(--np-sage); }
.np-info-page a:hover { color: var(--np-brown); }

/* ============================================
   WOOCOMMERCE CART & CHECKOUT
   ============================================ */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
  max-width: 1100px;
  margin: 0 auto;
  padding: 56px 48px 80px;
}
.np-checkout-note {
  max-width: 1100px;
  margin: 42px auto 0;
  padding: 20px 24px;
  background: rgba(132,149,115,0.1);
  border-left: 3px solid var(--np-sage);
  color: var(--np-brown);
  font-size: 0.86rem;
  line-height: 1.75;
}
.np-checkout-note strong { color: var(--np-sage); }
.np-checkout-note a {
  color: var(--np-sage);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.wp-block-woocommerce-cart.alignwide,
.wp-block-woocommerce-checkout.alignwide {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  padding: 28px 48px 80px;
}

/* Page heading */
.woocommerce-cart h1,
.woocommerce-checkout h1 {
  font-family: var(--font-heading);
  font-size: 2rem;
  letter-spacing: var(--ls-title);
  text-transform: uppercase;
  color: var(--np-brown);
  margin-bottom: 36px;
}

/* Cart table */
.woocommerce-cart table.shop_table {
  border-collapse: collapse;
  width: 100%;
}
.woocommerce-cart table.shop_table th {
  font-family: var(--font-heading);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--np-brown);
  border-bottom: 2px solid var(--np-card);
  padding: 10px 16px;
  background: transparent;
}
.woocommerce-cart table.shop_table td {
  vertical-align: middle;
  padding: 16px;
  border-bottom: 1px solid var(--np-card);
  font-family: var(--font-body);
  font-size: 0.88rem;
  color: var(--np-brown);
}
.woocommerce-cart table.shop_table td.product-thumbnail img {
  width: 80px; height: 80px;
  object-fit: cover;
  border-radius: 3px;
}
.woocommerce-cart table.shop_table td.product-name a {
  font-weight: 600;
  color: var(--np-brown);
}
.woocommerce-cart table.shop_table td.product-name a:hover { color: var(--np-sage); }
.woocommerce-cart table.shop_table .product-subtotal { font-weight: 700; }
.woocommerce-cart table.shop_table td.product-remove a {
  color: var(--np-gray) !important;
  font-size: 1.4rem;
  font-weight: 300;
}
.woocommerce-cart table.shop_table td.product-remove a:hover { color: var(--np-brown) !important; }

/* Coupon / update row */
.woocommerce-cart table.shop_table tr.cart-subtotal td,
.woocommerce-cart table.shop_table tr.order-total td { font-weight: 700; }
.woocommerce td.actions { padding: 20px 16px; }
.woocommerce td.actions .coupon { display: flex; gap: 8px; flex-wrap: wrap; }
.woocommerce td.actions .coupon input.input-text {
  border: 1px solid var(--np-gray);
  padding: 10px 14px;
  font-family: var(--font-body);
  font-size: 0.85rem;
  outline: none;
  border-radius: 0;
}
.woocommerce td.actions .coupon input.input-text:focus { border-color: var(--np-sage); }

/* Cart totals */
.woocommerce-cart .cart_totals {
  float: none !important;
  width: 100% !important;
  max-width: 460px;
  margin-left: auto;
  margin-top: 40px;
}
.woocommerce-cart .cart_totals h2 {
  font-family: var(--font-heading);
  font-size: 1rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 20px;
}
.woocommerce-cart .cart_totals table { width: 100%; border-collapse: collapse; }
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
  padding: 14px 0;
  border-bottom: 1px solid var(--np-card);
  font-family: var(--font-body);
  font-size: 0.9rem;
}
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  letter-spacing: 0.08em;
  border-bottom: none;
  padding-top: 20px;
}
.woocommerce-cart .wc-proceed-to-checkout { margin-top: 20px; }
.woocommerce table.shop_table tr.np-shipping-helper td {
  padding: 14px 0 16px !important;
  background: transparent;
  border-bottom: 1px solid var(--np-card);
  color: var(--np-brown);
  font-size: 0.82rem;
  line-height: 1.65;
}
.np-shipping-helper strong { color: var(--np-sage); }
.np-shipping-helper a {
  color: var(--np-sage);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Checkout form */
.woocommerce-checkout table.shop_table th {
  font-family: var(--font-heading);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--np-brown);
}
.woocommerce form .form-row label {
  font-family: var(--font-body);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--np-brown);
  margin-bottom: 6px;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
  border: 1px solid var(--np-gray) !important;
  border-radius: 0 !important;
  padding: 12px 14px !important;
  font-family: var(--font-body) !important;
  font-size: 0.88rem !important;
  color: var(--np-brown) !important;
  width: 100% !important;
  box-shadow: none !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
  border-color: var(--np-sage) !important;
  outline: none !important;
}

/* WC buttons */
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input[type="submit"] {
  background-color: var(--np-sage) !important;
  color: white !important;
  font-family: var(--font-heading) !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 14px 32px !important;
  transition: background-color 0.25s !important;
  cursor: pointer !important;
}
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input[type="submit"]:hover {
  background-color: var(--np-brown) !important;
}
/* Alt button (outline style for "Seguir comprando") */
.woocommerce a.button.wc-backward {
  background-color: transparent !important;
  color: var(--np-sage) !important;
  border: 2px solid var(--np-sage) !important;
  padding: 12px 28px !important;
}
.woocommerce a.button.wc-backward:hover {
  background-color: var(--np-sage) !important;
  color: white !important;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 1024px) {
  .np-products-row { grid-template-columns: repeat(2, 1fr); }
  .np-shop-cat-chip { min-width: 110px; font-size: 0.68rem; }
  .np-single-wrap { grid-template-columns: 1fr; gap: 40px; }
  .np-shop-layout { grid-template-columns: 1fr; gap: 28px; }
  .np-shop-sidebar { position: static; }
  .np-products-grid { grid-template-columns: repeat(2, 1fr); }
  .np-info-grid,
  .np-shipping-rates { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .np-header-inner { padding: 0 20px; height: 70px; }
  .np-logo img { height: 54px; }
  .np-nav ul { gap: 28px; }
  .np-nav ul li a { font-size: 0.85rem; }
  .np-hero { grid-template-columns: 1fr; }
  .np-hero-right { height: 280px; }
  .np-hero-left { padding: 50px 28px; }
  .np-section-header { padding: 0 20px; }
  .np-carousel-viewport { padding: 0 20px; }
  .np-carousel-track .np-product-card { flex: 0 0 calc(50% - 12px); }
  .np-section-new-designs,
  .np-section-categories,
  .np-shop-wrap,
  .np-medir-wrap,
  .np-single-wrap,
  .np-info-page,
  .np-content-page { padding-left: 20px; padding-right: 20px; }
  .np-shop-cats-shell { margin-bottom: 28px; }
  .np-shop-cats-bar { gap: 8px; }
  .np-shop-cats-nav { width: 28px; height: 28px; }
  .np-shop-cat-chip { min-width: 136px; font-size: 0.72rem; }
  .np-shop-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .np-shop-order-form { min-width: 0; }
  .np-categories-grid { grid-template-columns: repeat(2, 1fr); }
  .np-medir-block { grid-template-columns: 1fr; gap: 16px; }
  .np-medir-card { flex-direction: column; align-items: flex-start; padding: 28px 24px; }
  .np-info-hero,
  .np-info-grid,
  .np-shipping-rates { grid-template-columns: 1fr; }
  .np-checkout-note { margin: 28px 20px 0; }
  .wp-block-woocommerce-cart.alignwide,
  .wp-block-woocommerce-checkout.alignwide { padding: 24px 20px 64px; }
  .np-footer-inner { flex-direction: column; align-items: flex-start; }
  .np-footer-contact { text-align: left; }
  .np-social-icons { justify-content: flex-start; }
  #ast-scroll-top {
    right: max(16px, env(safe-area-inset-right)) !important;
    bottom: calc(16px + env(safe-area-inset-bottom)) !important;
    width: 48px !important;
    height: 48px !important;
  }
  .np-whatsapp-float {
    left: max(16px, env(safe-area-inset-left));
    bottom: calc(16px + env(safe-area-inset-bottom));
    width: 56px;
    height: 56px;
    justify-content: center;
    gap: 0;
    padding: 0;
    background: rgba(91,70,55,0.96);
  }
  .np-whatsapp-icon {
    width: 100%;
    height: 100%;
    background: transparent;
    font-size: 1.55rem;
  }
  .np-whatsapp-text { display: none; }
  .np-sidebar-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 1px solid var(--np-sage);
    color: var(--np-sage);
    font-family: var(--font-heading);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 9px 18px;
    cursor: pointer;
    margin-bottom: 20px;
    -webkit-appearance: none;
    appearance: none;
    transition: background 0.2s, color 0.2s;
    box-shadow: none;
  }
  .np-sidebar-toggle:hover { background: var(--np-sage); color: var(--np-white); }
  .np-shop-sidebar { display: none; }
  .np-shop-sidebar.np-open { display: block; }
}

@media (max-width: 480px) {
  .np-nav ul { gap: 18px; }
  .np-carousel-track .np-product-card { flex: 0 0 100%; }
  .np-categories-grid { grid-template-columns: 1fr; }
  .np-products-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
  .np-products-row { grid-template-columns: 1fr; }
  #ast-scroll-top {
    width: 44px !important;
    height: 44px !important;
  }
  .np-dimensions { grid-template-columns: 1fr; }
  .np-whatsapp-float {
    width: 52px;
    height: 52px;
  }
}

/* ============================================
   WOOCOMMERCE NOTICES / ALERTS
   ============================================ */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
  background: var(--np-white);
  border-top: 3px solid var(--np-sage);
  padding: 16px 24px;
  margin: 0 0 24px;
  font-family: var(--font-body);
  font-size: 0.88rem;
  color: var(--np-brown);
  list-style: none;
}
.woocommerce-error { border-top-color: #b44444; background: rgba(180,68,68,0.04); }
.woocommerce-info  { border-top-color: var(--np-camel); }
.woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-info::before { display: none; }
.woocommerce-error a,
.woocommerce-message a,
.woocommerce-info a { color: var(--np-sage); text-decoration: underline; }
.woocommerce-error li,
.woocommerce-message li,
.woocommerce-info li { margin: 0; padding: 0; }

/* ============================================
   PRODUCT BADGES (OFERTA / STOCK)
   ============================================ */
.woocommerce span.onsale {
  background: var(--np-brown);
  color: var(--np-white);
  font-family: var(--font-heading);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 0;
  padding: 5px 10px;
  min-width: auto;
  min-height: auto;
  line-height: 1.4;
  top: 10px;
  left: 10px;
}
.np-products-grid .np-product-img-wrap span.onsale { position: absolute; }

.woocommerce .out-of-stock,
.woocommerce .stock.out-of-stock {
  color: #b44444;
  font-size: 0.78rem;
  font-family: var(--font-body);
}
.woocommerce .in-stock {
  color: var(--np-sage);
  font-size: 0.78rem;
  font-family: var(--font-body);
}

/* ============================================
   CHECKOUT — SECCIONES Y PAGOS
   ============================================ */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout #order_review_heading {
  font-family: var(--font-heading);
  font-size: 0.88rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--np-brown);
  border-bottom: 1px solid var(--np-card);
  padding-bottom: 12px;
  margin-bottom: 24px;
}
.woocommerce-checkout .payment_methods {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  border: 1px solid var(--np-card);
}
.woocommerce-checkout .payment_methods li {
  padding: 14px 16px;
  border-bottom: 1px solid var(--np-card);
  font-family: var(--font-body);
  font-size: 0.86rem;
  color: var(--np-brown);
}
.woocommerce-checkout .payment_methods li:last-child { border-bottom: none; }
.woocommerce-checkout .payment_methods label { cursor: pointer; color: var(--np-brown); }
.woocommerce-checkout .payment_box {
  background: rgba(132, 149, 115, 0.07);
  padding: 14px 16px;
  margin-top: 0;
  font-family: var(--font-body);
  font-size: 0.82rem;
  color: var(--np-brown);
}
.woocommerce-checkout #payment #place_order { width: 100% !important; margin-top: 20px; }

/* ============================================
   PÁGINA DE CONFIRMACIÓN (THANK YOU)
   ============================================ */
.woocommerce-order {
  max-width: 1100px;
  margin: 0 auto;
  padding: 56px 48px 80px;
  font-family: var(--font-body);
}
.woocommerce-thankyou-order-received {
  background: rgba(132, 149, 115, 0.1);
  border-left: 3px solid var(--np-sage);
  padding: 16px 20px;
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--np-brown);
  margin-bottom: 32px;
}
.woocommerce-order h2,
.woocommerce-order-details h2,
.woocommerce-customer-details h2 {
  font-family: var(--font-heading);
  font-size: 0.88rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--np-brown);
  border-bottom: 1px solid var(--np-card);
  padding-bottom: 12px;
  margin-bottom: 20px;
}
.woocommerce-order-details table.shop_table th,
.woocommerce-order-details table.shop_table td,
.woocommerce-customer-details table.shop_table th,
.woocommerce-customer-details table.shop_table td {
  padding: 12px 16px;
  border-bottom: 1px solid var(--np-card);
  font-family: var(--font-body);
  font-size: 0.86rem;
  color: var(--np-brown);
}

/* ============================================
   MI CUENTA
   ============================================ */
.woocommerce-account .woocommerce {
  max-width: 1100px;
  margin: 0 auto;
  padding: 56px 48px 80px;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
  margin-bottom: 32px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
  border: 1px solid var(--np-card);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  border-bottom: 1px solid var(--np-card);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child { border-bottom: none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 12px 16px;
  font-family: var(--font-heading);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--np-brown);
  transition: background 0.2s, color 0.2s;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--np-sage);
  color: var(--np-white);
}
.woocommerce-account .woocommerce-MyAccount-content h2 {
  font-family: var(--font-heading);
  font-size: 0.88rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--np-brown);
  border-bottom: 1px solid var(--np-card);
  padding-bottom: 12px;
  margin-bottom: 20px;
}
.woocommerce-account .shop_table th {
  font-family: var(--font-heading);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--np-brown);
  background: transparent;
  border-bottom: 2px solid var(--np-card);
  padding: 10px 8px;
}
.woocommerce-account .shop_table td {
  font-family: var(--font-body);
  font-size: 0.84rem;
  color: var(--np-brown);
  border-bottom: 1px solid var(--np-card);
  padding: 12px 8px;
}
.woocommerce-account .shop_table .button {
  padding: 8px 16px !important;
  font-size: 0.72rem !important;
}

/* ============================================
   MOBILE SIDEBAR TOGGLE (default hidden)
   ============================================ */
.np-sidebar-toggle { display: none; }

/* ============================================
   FOCUS VISIBLE (accesibilidad teclado)
   ============================================ */
:focus-visible {
  outline: 2px solid var(--np-sage);
  outline-offset: 2px;
}

/* ============================================
   WOOCOMMERCE BLOCKS — CARRITO Y CHECKOUT
   (el Blocks cart usa clases distintas al cart clásico)
   ============================================ */

/* Layout del bloque */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  padding: 28px 48px 80px;
  font-family: var(--font-body);
  color: var(--np-brown);
}

/* Botones principales (Finalizar compra, Aplicar cupón, etc.) */
.wc-block-components-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-cart .wc-block-components-button,
.wp-block-woocommerce-checkout .wc-block-components-button {
  background-color: var(--np-sage) !important;
  color: var(--np-white) !important;
  font-family: var(--font-heading) !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 14px 32px !important;
  transition: background-color 0.25s !important;
  cursor: pointer !important;
  box-shadow: none !important;
}
.wc-block-components-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
  background-color: var(--np-brown) !important;
  color: var(--np-white) !important;
}
.wc-block-components-button span,
.wc-block-cart__submit-button span,
.wc-block-components-checkout-place-order-button span {
  color: inherit !important;
}

/* Spinner/loading dentro de botones */
.wc-block-components-button .wc-block-components-spinner { display: none; }

/* Inputs del Blocks */
.wc-block-components-text-input input,
.wc-block-components-country-input input,
.wc-block-components-state-input input,
.wc-block-components-select select,
.wc-block-components-textarea textarea {
  border: 1px solid var(--np-gray) !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.88rem !important;
  color: var(--np-brown) !important;
  box-shadow: none !important;
  padding: 12px 14px !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-country-input input:focus,
.wc-block-components-state-input input:focus,
.wc-block-components-select select:focus {
  border-color: var(--np-sage) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Labels de los inputs */
.wc-block-components-text-input label,
.wc-block-components-country-input label,
.wc-block-components-state-input label,
.wc-block-components-form .wc-block-components-form-step__description {
  font-family: var(--font-body) !important;
  font-size: 0.8rem !important;
  color: var(--np-brown) !important;
  letter-spacing: 0.04em !important;
}

/* Totales del carrito */
.wc-block-cart__totals-title,
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value {
  font-family: var(--font-body) !important;
  color: var(--np-brown) !important;
  font-size: 0.9rem !important;
}
.wc-block-components-totals-item--total .wc-block-components-totals-item__label,
.wc-block-components-totals-item--total .wc-block-components-totals-item__value {
  font-family: var(--font-heading) !important;
  font-size: 1.1rem !important;
  letter-spacing: 0.06em !important;
}

/* Links de productos en el carrito */
.wc-block-cart-item__product-name a,
.wc-block-cart-item__product-name {
  font-family: var(--font-body) !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  color: var(--np-brown) !important;
  text-decoration: none !important;
}
.wc-block-cart-item__product-name a:hover { color: var(--np-sage) !important; }

/* Precio del item */
.wc-block-cart-item__total .wc-block-formatted-money-amount,
.wc-block-cart-item__prices .wc-block-formatted-money-amount {
  font-family: var(--font-body) !important;
  color: var(--np-brown) !important;
}

/* Botón de eliminar item */
.wc-block-cart-item__remove-link {
  color: var(--np-gray) !important;
  font-size: 0.75rem !important;
}
.wc-block-cart-item__remove-link:hover { color: var(--np-brown) !important; }

/* Quantity stepper */
.wc-block-components-quantity-selector {
  border: 1px solid var(--np-gray) !important;
  border-radius: 0 !important;
}
.wc-block-components-quantity-selector__button {
  background: transparent !important;
  color: var(--np-brown) !important;
  border: none !important;
}
.wc-block-components-quantity-selector__input {
  font-family: var(--font-body) !important;
  color: var(--np-brown) !important;
}

/* Panel de totales (lado derecho) */
.wc-block-components-panel__button,
.wc-block-cart__totals-title {
  font-family: var(--font-heading) !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--np-brown) !important;
}

/* Aviso de envío */
.wc-block-components-shipping-rates-control__package {
  font-family: var(--font-body) !important;
  font-size: 0.86rem !important;
  color: var(--np-brown) !important;
}

/* Step headings en checkout */
.wc-block-components-checkout-step__title {
  font-family: var(--font-heading) !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--np-brown) !important;
}

/* Radiobotones de método de pago */
.wc-block-components-radio-control__option-layout {
  font-family: var(--font-body) !important;
  font-size: 0.86rem !important;
  color: var(--np-brown) !important;
}
.wc-block-components-radio-control__input:checked {
  accent-color: var(--np-sage) !important;
}

/* ============================================
   WC BLOCKS — CHECKBOXES (Términos, guardar dirección, etc.)
   ============================================ */
.wc-block-components-checkbox__input {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  border: 1.5px solid var(--np-gray) !important;
  border-radius: 2px !important;
  background-color: var(--np-white) !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  margin: 0 8px 0 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  transition: background-color 0.15s, border-color 0.15s !important;
}
.wc-block-components-checkbox__input:hover {
  border-color: var(--np-sage) !important;
}
.wc-block-components-checkbox__input:checked {
  background-color: var(--np-sage) !important;
  border-color: var(--np-sage) !important;
}
.wc-block-components-checkbox__input:focus-visible {
  outline: 2px solid var(--np-sage) !important;
  outline-offset: 2px !important;
}
.wc-block-components-checkbox__mark {
  fill: var(--np-white) !important;
  stroke: var(--np-white) !important;
  pointer-events: none !important;
}
.wc-block-components-checkbox__label,
.wc-block-components-checkbox label {
  font-family: var(--font-body) !important;
  font-size: 0.86rem !important;
  color: var(--np-brown) !important;
  letter-spacing: 0.02em !important;
  line-height: 1.4 !important;
}

/* ============================================
   WC BLOCKS — NOTICES Y VALIDACIÓN
   ============================================ */
.wc-block-components-notice-banner {
  background: var(--np-white) !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.88rem !important;
  color: var(--np-brown) !important;
  padding: 16px 20px !important;
  margin: 0 0 20px !important;
}
.wc-block-components-notice-banner.is-success,
.wc-block-components-notice-banner.is-info {
  border-left: 3px solid var(--np-sage) !important;
}
.wc-block-components-notice-banner.is-warning {
  border-left: 3px solid var(--np-camel) !important;
}
.wc-block-components-notice-banner.is-error {
  border-left: 3px solid #b44444 !important;
  background: rgba(180,68,68,0.04) !important;
}
.wc-block-components-notice-banner__content {
  color: var(--np-brown) !important;
}
.wc-block-components-notice-banner svg {
  fill: var(--np-sage) !important;
}
.wc-block-components-notice-banner.is-error svg { fill: #b44444 !important; }
.wc-block-components-notice-banner.is-warning svg { fill: var(--np-camel) !important; }

.wc-block-components-validation-error {
  color: #b44444 !important;
  font-family: var(--font-body) !important;
  font-size: 0.78rem !important;
  margin-top: 4px !important;
}

/* ============================================
   WC BLOCKS — CUPÓN
   ============================================ */
.wc-block-components-totals-coupon__form,
.wc-block-components-totals-coupon {
  font-family: var(--font-body) !important;
  color: var(--np-brown) !important;
}
.wc-block-components-totals-coupon-link {
  color: var(--np-sage) !important;
  font-family: var(--font-heading) !important;
  font-size: 0.74rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}
.wc-block-components-totals-coupon-link:hover { color: var(--np-brown) !important; }
.wc-block-components-totals-discount__coupon-list-item {
  background: rgba(132,149,115,0.08) !important;
  color: var(--np-brown) !important;
  border-radius: 0 !important;
  padding: 4px 10px !important;
  font-family: var(--font-body) !important;
  font-size: 0.78rem !important;
}

/* ============================================
   WC BLOCKS — DIRECCIÓN
   ============================================ */
.wc-block-components-address-form {
  font-family: var(--font-body) !important;
  color: var(--np-brown) !important;
}
.wc-block-components-address-card {
  font-family: var(--font-body) !important;
  font-size: 0.86rem !important;
  color: var(--np-brown) !important;
  background: rgba(132,149,115,0.05) !important;
  border: 1px solid var(--np-card) !important;
  padding: 16px !important;
}
.wc-block-components-address-card__edit {
  color: var(--np-sage) !important;
}

/* ============================================
   WC BLOCKS — MINI CART (header)
   ============================================ */
.wc-block-mini-cart__title,
.wc-block-mini-cart__title-heading {
  font-family: var(--font-heading) !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--np-brown) !important;
}
.wc-block-mini-cart__drawer {
  background: var(--np-white) !important;
}

/* ============================================
   WC BLOCKS — IMÁGENES DE PRODUCTO EN CART
   ============================================ */
.wc-block-components-product-image {
  background: var(--np-card) !important;
  border-radius: 0 !important;
}
.wc-block-components-product-image img {
  border-radius: 0 !important;
}

/* ============================================
   WC BLOCKS — CARRITO VACÍO
   ============================================ */
.wc-block-checkout-empty-cart-block,
.wp-block-woocommerce-empty-cart-block {
  text-align: center;
  padding: 60px 20px;
  font-family: var(--font-body);
  color: var(--np-brown);
}
.wc-block-checkout-empty-cart-block h2 {
  font-family: var(--font-heading) !important;
  font-size: 1.2rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--np-brown) !important;
  margin-bottom: 16px !important;
}

/* ============================================
   MI CUENTA — FORMULARIOS (login, register, lost password)
   ============================================ */
.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword,
.woocommerce-form-lost-password,
.woocommerce-EditAccountForm,
.woocommerce-address-fields {
  max-width: 540px;
  margin: 0 auto;
  padding: 28px 0;
  font-family: var(--font-body);
}
.woocommerce-form-login p,
.woocommerce-form-register p,
.woocommerce-ResetPassword p,
.woocommerce-EditAccountForm p {
  margin-bottom: 16px;
}
.woocommerce-form-login label,
.woocommerce-form-register label,
.woocommerce-ResetPassword label,
.woocommerce-EditAccountForm label,
.woocommerce-address-fields label {
  display: block;
  font-family: var(--font-body) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: var(--np-brown) !important;
  margin-bottom: 6px !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
}
.woocommerce-form-login input.input-text,
.woocommerce-form-register input.input-text,
.woocommerce-ResetPassword input.input-text,
.woocommerce-EditAccountForm input.input-text,
.woocommerce-address-fields input.input-text {
  width: 100% !important;
  padding: 12px 14px !important;
  border: 1px solid var(--np-gray) !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.88rem !important;
  color: var(--np-brown) !important;
  background: var(--np-white) !important;
  box-shadow: none !important;
}
.woocommerce-form-login input.input-text:focus,
.woocommerce-form-register input.input-text:focus,
.woocommerce-ResetPassword input.input-text:focus,
.woocommerce-EditAccountForm input.input-text:focus,
.woocommerce-address-fields input.input-text:focus {
  border-color: var(--np-sage) !important;
  outline: none !important;
}
.woocommerce-form-login__rememberme,
.woocommerce-form__label-for-checkbox {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 0.84rem !important;
  color: var(--np-brown) !important;
}
.woocommerce-form-login__rememberme input,
.woocommerce-form__label-for-checkbox input {
  accent-color: var(--np-sage) !important;
  margin: 0 !important;
}
.woocommerce-LostPassword a,
.woocommerce-form-login a {
  color: var(--np-sage) !important;
  text-decoration: underline;
}
.woocommerce-LostPassword a:hover { color: var(--np-brown) !important; }

/* Heading "Iniciar sesión" / "Registrarse" */
.woocommerce-account .u-column1 h2,
.woocommerce-account .u-column2 h2 {
  font-family: var(--font-heading) !important;
  font-size: 1rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--np-brown) !important;
  border-bottom: 1px solid var(--np-card);
  padding-bottom: 12px;
  margin-bottom: 20px;
}

/* Layout 2 columnas (login + registro) */
.woocommerce-account .u-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  max-width: 1100px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .woocommerce-account .u-columns {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

/* ============================================
   PRODUCTO SINGLE — TABS (Description, Reviews, etc.)
   ============================================ */
.woocommerce-tabs {
  margin-top: 48px;
  border-top: 1px solid var(--np-card);
  padding-top: 32px;
}
.woocommerce-tabs .tabs.wc-tabs,
.woocommerce-tabs ul.tabs {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 28px !important;
  display: flex;
  gap: 28px;
  border-bottom: 1px solid var(--np-card);
}
.woocommerce-tabs .tabs.wc-tabs::before,
.woocommerce-tabs .tabs.wc-tabs::after { display: none !important; }
.woocommerce-tabs .tabs.wc-tabs li,
.woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
.woocommerce-tabs .tabs.wc-tabs li::before,
.woocommerce-tabs .tabs.wc-tabs li::after { display: none !important; }
.woocommerce-tabs .tabs.wc-tabs li a {
  display: block;
  padding: 8px 0 14px !important;
  font-family: var(--font-heading) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--np-brown) !important;
  text-decoration: none !important;
  border-bottom: 2px solid transparent;
  transition: color 0.2s, border-color 0.2s;
}
.woocommerce-tabs .tabs.wc-tabs li a:hover { color: var(--np-sage) !important; }
.woocommerce-tabs .tabs.wc-tabs li.active a {
  color: var(--np-sage) !important;
  border-bottom-color: var(--np-sage);
}
.woocommerce-tabs .panel {
  font-family: var(--font-body);
  color: var(--np-brown);
  line-height: 1.75;
}
.woocommerce-tabs .panel h2 {
  font-family: var(--font-heading);
  font-size: 1rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--np-brown);
  margin-bottom: 16px;
}

/* ============================================
   PRODUCTO SINGLE — REVIEWS / COMMENT FORM
   ============================================ */
.comment-form,
#review_form {
  margin-top: 24px;
  font-family: var(--font-body);
}
.comment-form label,
#review_form label {
  display: block;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--np-brown);
  margin-bottom: 6px;
}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea,
#review_form input[type="text"],
#review_form input[type="email"],
#review_form textarea {
  width: 100% !important;
  padding: 12px 14px !important;
  border: 1px solid var(--np-gray) !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.88rem !important;
  color: var(--np-brown) !important;
  background: var(--np-white) !important;
  box-shadow: none !important;
}
.comment-form input:focus,
.comment-form textarea:focus,
#review_form input:focus,
#review_form textarea:focus {
  border-color: var(--np-sage) !important;
  outline: none !important;
}
.comment-form-rating {
  margin: 16px 0;
}
.comment-form-rating label {
  margin-bottom: 8px;
}
.comment-form-rating .stars a {
  color: var(--np-camel) !important;
}
.comment-form-rating .stars a:hover,
.comment-form-rating .stars a.active {
  color: var(--np-sage) !important;
}
.commentlist {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
}
.commentlist .comment_container {
  display: flex;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--np-card);
}
.commentlist .comment-text p {
  font-size: 0.86rem;
  color: var(--np-brown);
  line-height: 1.7;
}
.commentlist .comment-text .meta {
  font-family: var(--font-heading);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--np-camel);
}
p.no-comments {
  font-style: italic;
  color: var(--np-camel);
  font-size: 0.88rem;
}

/* ============================================
   PRODUCTO SINGLE — VARIATIONS DROPDOWN (sin calculator)
   ============================================ */
.variations_form .variations select,
table.variations select {
  padding: 10px 36px 10px 14px !important;
  border: 1px solid var(--np-gray) !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
  color: var(--np-brown) !important;
  background-color: var(--np-white) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235B4637'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-shadow: none !important;
  min-width: 180px;
}
.variations_form .variations select:focus,
table.variations select:focus {
  border-color: var(--np-sage) !important;
  outline: none !important;
}
.variations_form .variations th,
table.variations th {
  font-family: var(--font-heading) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--np-brown) !important;
  padding: 10px 12px 10px 0 !important;
}
.variations_form .reset_variations {
  color: var(--np-sage) !important;
  font-family: var(--font-body);
  font-size: 0.78rem;
  text-decoration: underline;
  margin-left: 12px;
}

.single_add_to_cart_button {
  background-color: var(--np-sage) !important;
  color: var(--np-white) !important;
  font-family: var(--font-heading) !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 16px 44px !important;
  transition: background-color 0.25s !important;
  cursor: pointer !important;
  box-shadow: none !important;
}
.single_add_to_cart_button:hover { background-color: var(--np-brown) !important; }

/* Quantity input */
.quantity input.qty,
input.qty {
  width: 76px !important;
  padding: 12px 8px !important;
  border: 1px solid var(--np-gray) !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  color: var(--np-brown) !important;
  background: var(--np-white) !important;
  text-align: center !important;
  box-shadow: none !important;
}
.quantity input.qty:focus,
input.qty:focus {
  border-color: var(--np-sage) !important;
  outline: none !important;
}

/* ============================================
   PRODUCTOS RELACIONADOS Y UPSELLS
   ============================================ */
.related.products,
.upsells.products {
  max-width: 1400px;
  margin: 64px auto 0;
  padding: 0 48px;
}
.related.products > h2,
.upsells.products > h2 {
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--np-brown);
  text-align: center;
  margin: 0 0 28px;
}
.related.products ul.products,
.upsells.products ul.products {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px 20px;
}
@media (max-width: 1024px) {
  .related.products ul.products,
  .upsells.products ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .related.products ul.products,
  .upsells.products ul.products { grid-template-columns: repeat(2, 1fr); }
  .related.products,
  .upsells.products { padding: 0 20px; }
}

.related.products li.product,
.upsells.products li.product {
  background: transparent;
  text-align: left;
}
.related.products li.product a,
.upsells.products li.product a { text-decoration: none; }
.related.products li.product .woocommerce-loop-product__title,
.upsells.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-body) !important;
  font-size: 0.78rem !important;
  font-weight: 400 !important;
  color: var(--np-brown) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  margin: 10px 0 4px !important;
}
.related.products li.product .price,
.upsells.products li.product .price {
  font-family: var(--font-body) !important;
  font-size: 0.78rem !important;
  color: var(--np-sage) !important;
  font-weight: 600 !important;
}
.related.products li.product .button,
.upsells.products li.product .button {
  display: inline-block;
  margin-top: 8px;
  background: var(--np-sage) !important;
  color: var(--np-white) !important;
}

/* ============================================
   "CONTINUAR COMPRANDO" Y BOTONES UNDO
   ============================================ */
.woocommerce-message .button.wc-forward,
.woocommerce a.button.wc-forward {
  background: var(--np-sage) !important;
  color: var(--np-white) !important;
  text-decoration: none !important;
}
.woocommerce-message .button.wc-forward:hover { background: var(--np-brown) !important; }
.woocommerce .restore-item {
  color: var(--np-sage) !important;
  text-decoration: underline;
}
