/**
 * UpNovo Pulse storefront layer
 * Scope: current WoodMart + WooCommerce markup on upnovotech.com.
 * This file is additive and can be rolled back by removing this one layer.
 */

:root {
  --color-primary: #2463EB;
  --color-primary-hover: #1D4ED8;
  --color-primary-soft: #EAF2FF;
  --color-accent: #FF6B21;
  --color-accent-hover: #F35A0F;
  --color-accent-accessible: #C94700;
  --color-mint: #18C5A3;
  --color-mint-soft: #DDF9F2;
  --color-mint-text: #087A66;
  --color-ink: #172033;
  --color-text: #172033;
  --color-text-secondary: #475569;
  --color-text-muted: #94A3B8;
  --color-bg: #F5F7FA;
  --color-surface: #FFFFFF;
  --color-surface-soft: #F8FAFC;
  --color-border: #E5E7EB;
  --color-border-soft: #F1F5F9;
  --color-warning: #FFC94A;
  --color-warning-soft: #FFF6D8;
  --color-danger: #D92D20;
  --color-danger-soft: #FEE4E2;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-pill: 999px;
  --shadow-card: 0 8px 24px rgba(23, 32, 51, .08);
  --shadow-hover: 0 12px 32px rgba(23, 32, 51, .12);
  --shadow-focus: 0 0 0 3px rgba(36, 99, 235, .25);
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;

  /* Feed the approved palette into the existing UpNovo layers too. */
  --upn-accent: var(--color-primary);
  --upn-accent-dark: var(--color-primary-hover);
  --upn-accent-soft: var(--color-primary-soft);
  --upn-ink: var(--color-ink);
  --upn-body: var(--color-text-secondary);
  --upn-muted: var(--color-text-secondary);
  --upn-line: var(--color-border);
  --upn-bg: var(--color-bg);
  --upn-panel: var(--color-surface-soft);
  --upn-surface: var(--color-surface);
  --upn-gold: var(--color-accent);
  --upn-success: var(--color-mint-text);
  --upn-success-soft: var(--color-mint-soft);
  --upn-warning: #7A4B00;
  --upn-warning-soft: var(--color-warning-soft);
}

/* -------------------------------------------------------------------------
   Foundation
   ---------------------------------------------------------------------- */

body.upnovo-pulse {
  background: var(--color-bg);
  color: var(--color-text-secondary);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

.upnovo-pulse :where(h1, h2, h3, h4, h5, h6, .title, .wd-entities-title) {
  color: var(--color-ink);
  font-family: inherit;
  letter-spacing: -.02em;
}

.upnovo-pulse :where(a, button, input, select, textarea):focus-visible {
  outline: 0;
  box-shadow: var(--shadow-focus);
}

.upnovo-pulse :where(button, .button, .btn, input[type="submit"]) {
  font-family: inherit;
  font-weight: 700;
  transition: color var(--transition-fast), background-color var(--transition-fast),
    border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
}

.upnovo-pulse :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  border-color: var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-text);
  font-family: inherit;
}

.upnovo-pulse :where(input:not([type="checkbox"]):not([type="radio"]), select) {
  min-height: 48px;
}

.upnovo-pulse :where(input, select, textarea):focus {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-focus);
}

.upnovo-pulse .main-page-wrapper {
  background: var(--color-bg);
}

/* -------------------------------------------------------------------------
   Logo and header
   ---------------------------------------------------------------------- */

.upnovo-pulse .whb-header .wd-logo {
  position: relative;
  display: block;
  line-height: 0;
}

.upnovo-pulse .whb-header .wd-logo::after {
  position: absolute;
  inset: 0;
  content: "";
  background: url("upnovo-pulse-logo.svg") center / contain no-repeat;
  pointer-events: none;
}

.upnovo-pulse .whb-header .wd-logo img {
  opacity: 0;
}

.upnovo-pulse .whb-top-bar {
  min-height: 38px;
  background: var(--color-primary) !important;
}

.upnovo-pulse .whb-top-bar,
.upnovo-pulse .whb-top-bar a {
  color: #FFFFFF;
}

.upnovo-pulse .upn-topbar-item--wa a {
  position: relative;
  font-weight: 700;
}

.upnovo-pulse .upn-topbar-item--wa a::after {
  position: absolute;
  right: 0;
  bottom: -4px;
  left: 0;
  height: 2px;
  border-radius: var(--radius-pill);
  background: var(--color-accent);
  content: "";
}

.upnovo-pulse .whb-general-header {
  background: var(--color-surface) !important;
}

.upnovo-pulse .whb-header-bottom {
  border-top: 1px solid var(--color-border) !important;
  border-bottom: 1px solid var(--color-border) !important;
  background: var(--color-primary-soft) !important;
}

.upnovo-pulse .whb-header-bottom .wd-header-sticky-nav > a {
  min-height: 46px;
  padding-inline: 18px;
  border-radius: var(--radius-md);
  background: var(--color-primary);
  color: #FFFFFF;
}

.upnovo-pulse .whb-header-bottom .wd-nav > li > a {
  color: var(--color-ink);
  font-weight: 650;
}

.upnovo-pulse .whb-header-bottom .wd-nav > li > a:hover,
.upnovo-pulse .whb-header-bottom .wd-nav > li.current-menu-item > a {
  color: var(--color-primary);
}

.upnovo-pulse .whb-header .searchform {
  min-height: 48px;
  overflow: hidden;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-md) !important;
  background: var(--color-surface) !important;
  box-shadow: none;
}

.upnovo-pulse .whb-header .searchform:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: var(--shadow-focus);
}

.upnovo-pulse .whb-header .searchform input.s {
  min-height: 46px;
  padding-inline: 16px;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none;
  font-size: 15px;
}

.upnovo-pulse .whb-header .searchform .searchsubmit {
  width: 48px;
  min-width: 48px;
  min-height: 48px;
  border-radius: 10px;
  background: var(--color-primary) !important;
  color: #FFFFFF !important;
}

.upnovo-pulse .whb-header .searchform .searchsubmit:hover {
  background: var(--color-primary-hover) !important;
}

.upnovo-pulse .whb-header .wd-header-my-account > a,
.upnovo-pulse .whb-header .wd-header-compare > a,
.upnovo-pulse .whb-header .wd-header-wishlist > a {
  border-radius: var(--radius-md);
}

.upnovo-pulse .whb-header .wd-header-cart > a {
  min-height: 44px;
  padding: 6px 10px;
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-md);
  background: #FFF2E9;
  color: var(--color-ink);
}

.upnovo-pulse .whb-header .wd-header-cart .wd-tools-icon {
  color: var(--color-accent-accessible);
}

.upnovo-pulse .whb-header .wd-header-cart .wd-cart-number {
  display: none;
}

.upnovo-pulse .whb-header .wd-header-cart .wd-tools-text {
  display: inline-flex;
  align-items: baseline;
  color: var(--color-ink);
  font-size: 14px;
  font-weight: 750;
  white-space: nowrap;
}

.upnovo-pulse .upnovo-pulse-cart-count {
  margin-inline-start: 2px;
  color: var(--color-accent-accessible);
}

/* -------------------------------------------------------------------------
   Buttons and semantic states
   ---------------------------------------------------------------------- */

.upnovo-pulse .single_add_to_cart_button,
.upnovo-pulse .wd-add-btn .add-to-cart-loop,
.upnovo-pulse .cart-actions .button[name="update_cart"],
.upnovo-pulse .checkout-button,
.upnovo-pulse #place_order,
.upnovo-pulse .wc-block-components-button,
.upnovo-pulse .btn-color-primary {
  border-color: var(--color-accent) !important;
  background: var(--color-accent) !important;
  color: var(--color-ink) !important;
}

.upnovo-pulse .single_add_to_cart_button:hover,
.upnovo-pulse .wd-add-btn .add-to-cart-loop:hover,
.upnovo-pulse .checkout-button:hover,
.upnovo-pulse #place_order:hover,
.upnovo-pulse .wc-block-components-button:hover {
  border-color: var(--color-accent-hover) !important;
  background: var(--color-accent-hover) !important;
  color: var(--color-ink) !important;
}

.upnovo-pulse .button.product_type_variable,
.upnovo-pulse .button.product_type_grouped,
.upnovo-pulse .upnovo-wa-btn:not(.upnovo-wa-btn--loop) {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: #FFFFFF;
}

.upnovo-pulse .upnovo-stock--ready,
.upnovo-pulse .wd-product .stock.in-stock,
.upnovo-pulse .stock.in-stock {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 26px;
  margin-block: 6px;
  padding: 4px 9px;
  border-radius: var(--radius-pill);
  background: var(--color-mint-soft);
  color: var(--color-mint-text) !important;
  font-size: 12px;
  font-weight: 700;
}

.upnovo-pulse .upnovo-status--ready {
  border-radius: var(--radius-pill);
  background: var(--color-mint-soft);
  color: var(--color-mint-text);
}

.upnovo-pulse .upnovo-badge--soon,
.upnovo-pulse .upnovo-status--coming-soon {
  background: var(--color-warning-soft);
  color: #7A4B00;
}

.upnovo-pulse .onsale,
.upnovo-pulse .product-label.onsale,
.upnovo-pulse .label-sale {
  border-radius: var(--radius-pill);
  background: var(--color-warning) !important;
  color: var(--color-ink) !important;
  box-shadow: 0 6px 16px rgba(23, 32, 51, .18);
  animation: upnovo-sale-pop 420ms cubic-bezier(.2, .8, .2, 1) both;
}

.upnovo-pulse .upnovo-pulse-sale-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 29px;
  padding-inline: 9px;
  font-weight: 850;
}

.upnovo-pulse .upnovo-pulse-sale-badge svg {
  width: 15px;
  height: 15px;
}

@keyframes upnovo-sale-pop {
  from {
    opacity: 0;
    transform: scale(.82) rotate(-3deg);
  }
  to {
    opacity: 1;
    transform: scale(1) rotate(0);
  }
}

.upnovo-pulse .woocommerce-message,
.upnovo-pulse .woocommerce-notice--success,
.upnovo-pulse .wc-block-components-notice-banner.is-success {
  border-color: var(--color-mint);
  border-radius: var(--radius-md);
  background: var(--color-mint-soft);
  color: var(--color-mint-text);
}

.upnovo-pulse .woocommerce-error,
.upnovo-pulse .wc-block-components-notice-banner.is-error {
  border-color: var(--color-danger);
  border-radius: var(--radius-md);
  background: var(--color-danger-soft);
  color: var(--color-danger);
}

/* -------------------------------------------------------------------------
   Homepage hero and promotional surfaces
   ---------------------------------------------------------------------- */

.upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child {
  margin-top: 20px;
}

.upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child :where(.wd-slide, .wd-banner) {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl);
}

.upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-slide::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(36, 99, 235, .97) 0%, rgba(36, 99, 235, .82) 48%, rgba(23, 32, 51, .18) 78%);
  content: "";
  pointer-events: none;
}

.upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-slide-container {
  position: relative;
  z-index: 2;
}

.upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-slide-container h2 {
  max-width: 650px;
  font-size: clamp(2rem, 4.1vw, 3rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -.035em;
}

.upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-slide-container p {
  max-width: 590px;
  font-size: clamp(1rem, 1.5vw, 1.125rem);
  line-height: 1.55;
}

.upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-slide-container .btn {
  min-height: 48px;
  padding-inline: 22px;
  border-color: var(--color-accent) !important;
  border-radius: var(--radius-md);
  background: var(--color-accent) !important;
  color: var(--color-ink) !important;
  font-weight: 800;
}

.upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-slide-container .btn:hover {
  border-color: var(--color-accent-hover) !important;
  background: var(--color-accent-hover) !important;
  transform: translateY(-1px);
}

.upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-banner {
  box-shadow: var(--shadow-card);
}

.upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-banner:nth-of-type(2) {
  background-color: #FFF2E9;
}

.upnovo-pulse.home .entry-content > .wp-block-wd-title,
.upnovo-pulse.home .entry-content > .wp-block-wd-container {
  margin-top: clamp(38px, 4.8vw, 64px);
}

.upnovo-pulse.home .entry-content > .wp-block-wd-title {
  font-size: clamp(1.5rem, 2.4vw, 1.85rem);
  font-weight: 750;
}

.upnovo-pulse.home .entry-content > .wd-cats-element {
  margin-top: 20px;
  padding: 18px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  background: var(--color-primary-soft);
}

.upnovo-pulse.home .wd-cats-element .category-grid-item .wrapp-category {
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  box-shadow: 0 6px 18px rgba(23, 32, 51, .06);
}

.upnovo-pulse.home .wd-cats-element .category-grid-item img {
  transition: transform var(--transition-base);
}

.upnovo-pulse.home .wd-cats-element .category-grid-item:hover img {
  transform: scale(1.025);
}

.upnovo-pulse.home .entry-content > .upn-banner {
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-xl);
  background-color: var(--color-primary);
  box-shadow: var(--shadow-card);
}

.upnovo-pulse.home .entry-content > .wp-block-wd-section,
.upnovo-pulse.home .entry-content > .wp-block-wd-row:not(:first-child) {
  border-radius: var(--radius-xl);
}

/* -------------------------------------------------------------------------
   Product cards
   ---------------------------------------------------------------------- */

.upnovo-pulse .wd-product .wd-product-wrapper {
  height: auto !important;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  transition: transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}

.upnovo-pulse .wd-product:hover .wd-product-wrapper {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-hover);
  transform: translateY(-2px);
}

.upnovo-pulse .wd-product .product-element-top {
  overflow: hidden;
  margin: 6px;
  border-radius: var(--radius-md);
  background: var(--color-surface-soft);
  aspect-ratio: 4 / 3;
}

.upnovo-pulse .wd-product .product-element-top img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.upnovo-pulse .wd-product .product-element-bottom {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  padding: 7px 11px 11px;
}

.upnovo-pulse .wd-product .wd-entities-title {
  display: -webkit-box;
  min-height: 2.65em;
  overflow: hidden;
  color: var(--color-ink);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.upnovo-pulse .wd-product .wd-product-cats {
  display: none;
}

.upnovo-pulse .wd-product .wd-product-cats a {
  color: inherit;
}

.upnovo-pulse .wd-product .wrap-price {
  min-height: 0;
  margin-top: 3px;
  padding-top: 0;
  gap: 3px;
}

.upnovo-pulse .wd-product .price,
.upnovo-pulse .single-product .summary .price {
  color: var(--color-ink);
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  font-weight: 800;
  letter-spacing: -.02em;
}

.upnovo-pulse .wd-product .price del,
.upnovo-pulse .single-product .summary .price del {
  color: #94A3B8;
  font-size: .82em;
  font-weight: 500;
}

.upnovo-pulse .wd-product .wd-add-btn {
  margin-top: 6px;
}

.upnovo-pulse .wd-product .wd-add-btn .button {
  width: 100%;
  min-height: 38px;
  padding-inline: 8px;
  border-radius: var(--radius-md) !important;
  font-size: 12px;
  line-height: 1.15;
  white-space: nowrap;
}

.upnovo-pulse .wd-product .wd-add-btn .upnovo-wa-btn--loop {
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 7px !important;
}

.upnovo-pulse .wd-products {
  align-items: start;
}

.upnovo-pulse .wd-products .wd-product {
  height: auto !important;
  align-self: start;
}

/* WoodMart repeats attributes and SKU in its card-hover layer. Product pages
   retain the full specification table; catalog cards stay intentionally brief. */
.upnovo-pulse .wd-product .wd-product-card-hover,
.upnovo-pulse .wd-product .wd-product-sku,
.upnovo-pulse .wd-product .upnovo-pulse-card-specs {
  display: none !important;
}

.upnovo-pulse .wd-product .stock.in-stock,
.upnovo-pulse .wd-product .stock.out-of-stock,
.upnovo-pulse .wd-product .wd-product-stock {
  min-height: 22px;
  margin-block: 2px;
  padding: 3px 7px;
  font-size: 11px;
  line-height: 1.25;
}

.upnovo-pulse .upnovo-pulse-sale-badge {
  display: inline-flex !important;
  min-width: 0 !important;
  min-height: 28px !important;
  padding: 5px 9px !important;
  align-items: center;
  gap: 4px;
  font-size: 12px !important;
  font-weight: 850 !important;
  line-height: 1 !important;
}

.upnovo-pulse .upnovo-pulse-sale-badge svg {
  width: 14px;
  height: 14px;
}

.upnovo-pulse .wd-product .upn-quick-add {
  border-radius: var(--radius-md);
  background: var(--color-accent) !important;
  color: var(--color-ink) !important;
}

/* -------------------------------------------------------------------------
   Shop, product, cart, checkout, account
   ---------------------------------------------------------------------- */

.upnovo-pulse :where(.wd-page-title, .page-title) {
  background-color: var(--color-primary-soft);
  color: var(--color-ink);
}

.upnovo-pulse :where(.wd-page-title, .page-title) .entry-title {
  color: var(--color-ink);
}

.upnovo-pulse .wd-shop-tools,
.upnovo-pulse .wd-shop-ordering select,
.upnovo-pulse .wd-off-canvas-btn {
  border-radius: var(--radius-md);
}

.upnovo-pulse .single-product .product-image-summary-wrap,
.upnovo-pulse .single-product .woocommerce-tabs,
.upnovo-pulse .woocommerce-cart-form,
.upnovo-pulse .cart-totals-inner,
.upnovo-pulse .checkout-order-review,
.upnovo-pulse .woocommerce-MyAccount-content {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}

.upnovo-pulse .single-product .product-image-summary-wrap {
  padding: clamp(16px, 3vw, 32px);
}

.upnovo-pulse .single-product .woocommerce-product-gallery__wrapper {
  border-radius: var(--radius-lg);
  background: var(--color-surface-soft);
}

.upnovo-pulse .single-product .summary .product_title {
  color: var(--color-ink);
  font-size: clamp(1.75rem, 3.2vw, 2.5rem);
  font-weight: 800;
  line-height: 1.12;
}

.upnovo-pulse .single-product form.cart .quantity {
  border-color: var(--color-border);
  border-radius: var(--radius-md);
}

.upnovo-pulse .single-product .single_add_to_cart_button {
  min-height: 50px;
  border-radius: var(--radius-md);
}

.upnovo-pulse .woocommerce-cart-form,
.upnovo-pulse .cart-totals-inner,
.upnovo-pulse .checkout-order-review,
.upnovo-pulse .woocommerce-MyAccount-content {
  padding: clamp(16px, 2.5vw, 28px);
}

.upnovo-pulse .woocommerce-checkout-review-order-table,
.upnovo-pulse .shop_table {
  color: var(--color-text-secondary);
}

.upnovo-pulse .woocommerce-MyAccount-navigation li.is-active > a {
  border-radius: var(--radius-sm);
  background: var(--color-primary-soft);
  color: var(--color-primary);
}

/* -------------------------------------------------------------------------
   Full-store components
   ---------------------------------------------------------------------- */

.upnovo-pulse .upnovo-pulse-skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 100000;
  padding: 10px 14px;
  border-radius: var(--radius-sm);
  background: var(--color-ink);
  color: #fff;
  font-weight: 800;
  transform: translateY(-160%);
}

.upnovo-pulse .upnovo-pulse-skip-link:focus {
  color: #fff;
  transform: translateY(0);
}

.upnovo-pulse .upnovo-pulse-eyebrow {
  margin: 0 0 8px;
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.upnovo-pulse .upnovo-pulse-hero-title {
  max-width: 12ch;
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.02;
}

.upnovo-pulse .upnovo-pulse-home-trust {
  margin: 0 0 var(--space-8);
  padding: clamp(24px, 4vw, 44px);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}

.upnovo-pulse .upnovo-pulse-home-trust > h2 {
  max-width: 18ch;
  margin: 0 0 var(--space-6);
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  line-height: 1.08;
}

.upnovo-pulse .upnovo-pulse-trust-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
}

.upnovo-pulse .upnovo-pulse-trust-grid article {
  min-width: 0;
  padding: 20px;
  border-radius: var(--radius-lg);
  background: var(--color-surface-soft);
}

.upnovo-pulse .upnovo-pulse-trust-grid article > span {
  display: grid;
  width: 38px;
  height: 38px;
  margin-bottom: 16px;
  place-items: center;
  border-radius: 50%;
  background: var(--color-mint-soft);
  color: var(--color-mint-text);
  font-size: 18px;
  font-weight: 900;
}

.upnovo-pulse .upnovo-pulse-trust-grid article > span svg {
  width: 21px;
  height: 21px;
}

.upnovo-pulse .upnovo-pulse-trust-grid h3 {
  margin: 0 0 7px;
  font-size: 16px;
  line-height: 1.25;
}

.upnovo-pulse .upnovo-pulse-trust-grid p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 14px;
  line-height: 1.55;
}

.upnovo-pulse .upnovo-pulse-shop-intro {
  position: relative;
  margin: 8px 0 28px;
  padding: clamp(24px, 4vw, 44px);
  overflow: hidden;
  border-radius: var(--radius-xl);
  background: linear-gradient(118deg, var(--color-ink), var(--color-primary-hover) 72%, var(--color-primary));
  color: #EAF2FF;
}

.upnovo-pulse .upnovo-pulse-shop-intro::after {
  position: absolute;
  top: -80px;
  right: -60px;
  width: 260px;
  height: 260px;
  border: 48px solid rgba(255,255,255,.07);
  border-radius: 50%;
  content: "";
}

.upnovo-pulse .upnovo-pulse-shop-intro .upnovo-pulse-eyebrow {
  color: var(--color-mint);
}

.upnovo-pulse .upnovo-pulse-shop-intro h1 {
  position: relative;
  z-index: 1;
  max-width: 18ch;
  margin: 0 0 12px;
  color: #fff;
  font-size: clamp(2rem, 4vw, 3.1rem);
  line-height: 1.04;
}

.upnovo-pulse .upnovo-pulse-shop-intro > p:not(.upnovo-pulse-eyebrow) {
  position: relative;
  z-index: 1;
  max-width: 68ch;
  margin: 0;
  color: var(--color-primary-soft);
  font-size: 16px;
  line-height: 1.65;
}

.upnovo-pulse .upnovo-pulse-catalog-count {
  position: relative;
  z-index: 1;
  display: inline-flex;
  margin-top: 18px;
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: var(--radius-pill);
  color: #fff;
  font-size: 13px;
  font-weight: 750;
}

.upnovo-pulse .wd-product .upnovo-pulse-card-meta {
  display: flex;
  min-width: 0;
  margin: 2px 0;
  align-items: center;
  flex-wrap: wrap;
  gap: 3px 8px;
}

.upnovo-pulse .wd-product .upnovo-pulse-card-rating,
.upnovo-pulse .wd-product .upnovo-pulse-card-stars,
.upnovo-pulse .wd-product .upnovo-pulse-condition {
  display: inline-flex;
  align-items: center;
}

.upnovo-pulse .wd-product .upnovo-pulse-card-rating {
  gap: 4px;
  color: var(--color-text-secondary);
  font-size: 10.5px;
  line-height: 1;
  white-space: nowrap;
}

.upnovo-pulse .wd-product .upnovo-pulse-card-stars {
  gap: 1px;
}

.upnovo-pulse .wd-product .upnovo-pulse-card-stars > span {
  display: inline-flex;
}

.upnovo-pulse .wd-product .upnovo-pulse-card-stars svg {
  width: 11px;
  height: 11px;
}

.upnovo-pulse .wd-product .upnovo-pulse-card-stars .is-filled {
  color: #E7A900;
}

.upnovo-pulse .wd-product .upnovo-pulse-card-stars .is-empty {
  color: #CBD5E1;
}

.upnovo-pulse .wd-product .upnovo-pulse-review-count {
  color: var(--color-text-secondary);
}

.upnovo-pulse .wd-product .upnovo-pulse-condition {
  gap: 3px;
  color: var(--color-mint-text);
  font-size: 10.5px;
  font-weight: 750;
  line-height: 1.15;
  white-space: nowrap;
}

.upnovo-pulse .wd-product .upnovo-pulse-condition svg {
  width: 13px;
  height: 13px;
  flex: 0 0 13px;
}

.upnovo-pulse .upnovo-pulse-delivery {
  display: grid;
  margin: 22px 0 0;
  padding: 20px;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 15px;
  border: 1px solid var(--color-mint);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--color-surface), var(--color-mint-soft));
}

.upnovo-pulse .upnovo-pulse-delivery-icon {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 50%;
  background: var(--color-mint);
  color: var(--color-ink);
  font-size: 22px;
  font-weight: 900;
}

.upnovo-pulse .upnovo-pulse-delivery-icon svg {
  width: 23px;
  height: 23px;
}

.upnovo-pulse .upnovo-pulse-delivery h2 {
  margin: 0 0 10px;
  font-size: 17px;
  line-height: 1.25;
}

.upnovo-pulse .upnovo-pulse-delivery ul {
  display: grid;
  margin: 0;
  padding: 0;
  gap: 8px;
  color: var(--color-text-secondary);
  font-size: 13.5px;
  line-height: 1.55;
  list-style: none;
}

.upnovo-pulse .upnovo-pulse-delivery li {
  display: grid;
  align-items: start;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 8px;
}

.upnovo-pulse .upnovo-pulse-delivery li svg {
  width: 20px;
  height: 20px;
  margin-top: 1px;
  color: var(--color-mint-text);
}

.upnovo-pulse .upnovo-pulse-delivery label {
  display: block;
  margin: 14px 0 6px;
  color: var(--color-ink);
  font-size: 13px;
  font-weight: 750;
}

.upnovo-pulse .upnovo-pulse-delivery select {
  width: 100%;
  max-width: 390px;
}

.upnovo-pulse .upnovo-pulse-delivery-result {
  margin: 9px 0 0;
  color: var(--color-mint-text);
  font-size: 13px;
  font-weight: 700;
}

.upnovo-pulse .cart-totals-inner .upnovo-pulse-delivery,
.upnovo-pulse .checkout-order-review .upnovo-pulse-delivery {
  margin: 0 0 20px;
}

.upnovo-pulse .checkout-order-review .upnovo-pulse-delivery {
  grid-template-columns: 36px minmax(0, 1fr);
  padding: 16px;
}

.upnovo-pulse .checkout-order-review .upnovo-pulse-delivery-icon {
  width: 36px;
  height: 36px;
  font-size: 18px;
}

.upnovo-pulse .upnovo-pulse-account-intro {
  margin: 0 auto 24px;
  padding: clamp(22px, 4vw, 36px);
  border-radius: var(--radius-xl);
  background: linear-gradient(120deg, var(--color-primary-soft), #fff 70%);
  text-align: left;
}

.upnovo-pulse .upnovo-pulse-account-intro h1 {
  margin: 0 0 10px;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  line-height: 1.05;
}

.upnovo-pulse .upnovo-pulse-account-intro > p:last-child {
  max-width: 58ch;
  margin: 0;
}

.upnovo-pulse.woocommerce-account .woocommerce {
  max-width: 1050px;
  margin-inline: auto;
}

.upnovo-pulse.woocommerce-account .upnovo-openwa-auth,
.upnovo-pulse.woocommerce-account #customer_login {
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}

.upnovo-pulse.woocommerce-cart .cart-empty,
.upnovo-pulse.woocommerce-cart .return-to-shop {
  text-align: center;
}

.upnovo-pulse.woocommerce-cart .cart-empty {
  max-width: 720px;
  margin: 60px auto 18px;
  padding: 42px 24px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  background: var(--color-surface);
  color: var(--color-ink);
  box-shadow: var(--shadow-card);
}

.upnovo-pulse.woocommerce-checkout form.checkout {
  align-items: flex-start;
}

.upnovo-pulse.woocommerce-checkout #customer_details,
.upnovo-pulse.woocommerce-checkout .checkout-order-review,
.upnovo-pulse.woocommerce-cart .woocommerce-cart-form,
.upnovo-pulse.woocommerce-cart .cart-totals-inner {
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-card);
}

.upnovo-pulse .woocommerce-form-coupon-toggle,
.upnovo-pulse .woocommerce-form-login-toggle {
  margin-bottom: 16px;
}

.upnovo-pulse .woocommerce-privacy-policy-text {
  color: var(--color-text-secondary);
  font-size: 13px;
  line-height: 1.55;
}

.upnovo-pulse .place-order .button,
.upnovo-pulse .wc-proceed-to-checkout .button {
  min-height: 52px;
  border-radius: var(--radius-md) !important;
  background: var(--color-accent) !important;
  color: var(--color-ink) !important;
  font-size: 15px;
  font-weight: 850;
}

.upnovo-pulse .place-order .button:hover,
.upnovo-pulse .wc-proceed-to-checkout .button:hover {
  background: var(--color-accent-hover) !important;
  color: #fff !important;
}

/* -------------------------------------------------------------------------
   Mobile header and bottom navigation
   ---------------------------------------------------------------------- */

@media (max-width: 1024px) {

  .upnovo-pulse .upnovo-pulse-trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .upnovo-pulse .whb-general-header .whb-flex-row {
    min-height: 68px;
    gap: 4px;
  }

  .upnovo-pulse .whb-general-header .whb-mobile-left {
    flex: 0 0 44px;
  }

  .upnovo-pulse .whb-general-header .whb-mobile-center {
    min-width: 88px;
    flex: 1 1 auto;
  }

  .upnovo-pulse .whb-general-header .whb-mobile-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 auto;
    gap: 2px;
  }

  .upnovo-pulse .whb-mobile-center .wd-logo img {
    width: 106px !important;
    max-width: 106px !important;
  }

  .upnovo-pulse .whb-mobile-right .wd-header-my-account > a {
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
  }

  .upnovo-pulse .whb-mobile-right .upnovo-pulse-mobile-cart > a {
    position: relative;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    justify-content: center;
    border-color: transparent;
    background: transparent;
  }

  .upnovo-pulse .whb-mobile-right .upnovo-pulse-mobile-cart .wd-tools-icon {
    width: 24px;
    flex: 0 0 24px;
  }

  .upnovo-pulse .whb-mobile-right .upnovo-pulse-mobile-cart .wd-tools-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
  }

  .upnovo-pulse .whb-mobile-right .upnovo-pulse-mobile-cart .wd-cart-number {
    position: absolute;
    top: 1px;
    right: 0;
    z-index: 2;
    display: grid;
    width: 18px;
    min-width: 18px;
    height: 18px;
    place-items: center;
    border: 2px solid var(--color-surface);
    border-radius: 50%;
    background: var(--color-accent);
    color: var(--color-ink);
    font-size: 10px;
    font-weight: 850;
    line-height: 1;
  }

  .upnovo-pulse .whb-header-bottom {
    padding-block: 8px;
  }

  .upnovo-pulse .whb-header-bottom .whb-col-mobile {
    width: 100%;
  }

  .upnovo-pulse .whb-header .searchform {
    min-height: 48px;
    border-radius: var(--radius-md) !important;
  }

  .upnovo-pulse .wd-toolbar {
    min-height: 66px;
    border-top-color: var(--color-border);
    background: var(--color-surface);
    box-shadow: 0 -6px 24px rgba(23, 32, 51, .10);
  }

  .upnovo-pulse .wd-toolbar > div > a {
    min-height: 64px;
    color: var(--color-text-secondary);
  }

  .upnovo-pulse .wd-toolbar .upn-tab-current > a,
  .upnovo-pulse .wd-toolbar > div > a:hover,
  .upnovo-pulse .wd-toolbar > div > a:focus-visible {
    color: var(--color-primary);
  }

  .upnovo-pulse .wd-toolbar .upn-tab-current > a::before {
    height: 3px;
    background: var(--color-primary);
  }

  .upnovo-pulse .wd-toolbar .wd-header-cart .wd-cart-number {
    background: var(--color-accent);
    color: var(--color-ink);
  }

  .upnovo-pulse .upnovo-wa-float {
    bottom: calc(66px + 14px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 768px) {
  .upnovo-pulse.home #wd-c0002071 {
    display: none !important;
  }

  .upnovo-pulse .upn-footer-links {
    display: grid !important;
    align-items: start;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }

  .upnovo-pulse .upn-footer-links > ul {
    min-width: 0;
    margin: 0 !important;
  }

  .upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child {
    margin-top: 16px;
  }

  .upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child :where(.wd-slide, .wd-banner) {
    border-radius: var(--radius-lg);
  }

  .upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-slide {
    min-height: 390px !important;
  }

  .upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-slide::before {
    background: linear-gradient(90deg, rgba(36, 99, 235, .96) 0%, rgba(36, 99, 235, .77) 62%, rgba(23, 32, 51, .26) 100%);
  }

  .upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-slide-container {
    padding: 28px 20px !important;
  }

  .upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-slide-container :where(h1, h2) {
    max-width: 12ch;
    font-size: clamp(1.8rem, 8vw, 2.2rem);
  }

  .upnovo-pulse.home .entry-content > .wp-block-wd-row:first-child .wd-slide-container p {
    max-width: 28ch;
    font-size: 1rem;
  }

  .upnovo-pulse.home .entry-content > .wd-cats-element {
    margin-inline: -4px;
    padding: 12px;
    border-radius: var(--radius-lg);
  }

  .upnovo-pulse .wd-product .wd-product-wrapper {
    border-radius: var(--radius-lg);
  }

  .upnovo-pulse .wd-product .product-element-top {
    margin: 6px;
    border-radius: 10px;
  }

  .upnovo-pulse .wd-product .product-element-bottom {
    padding: 6px 9px 9px;
  }

  .upnovo-pulse .wd-product .wd-entities-title {
    min-height: 2.65em;
    font-size: 13px;
    line-height: 1.35;
  }

  .upnovo-pulse .wd-product .price {
    font-size: 15px;
  }

  .upnovo-pulse .wd-product .wd-add-btn .button {
    min-height: 36px;
    padding-inline: 5px;
    font-size: 11px;
  }

  .upnovo-pulse .wd-product .wd-add-btn .upnovo-wa-btn--loop {
    height: 36px !important;
    min-height: 36px !important;
  }

  .upnovo-pulse .wd-product .upnovo-pulse-card-meta {
    gap: 3px 6px;
  }

  .upnovo-pulse .wd-product .upnovo-pulse-card-rating,
  .upnovo-pulse .wd-product .upnovo-pulse-condition {
    font-size: 10px;
  }

  .upnovo-pulse .wd-product .upnovo-pulse-card-stars svg {
    width: 10px;
    height: 10px;
  }

  .upnovo-pulse .single-product .product-image-summary-wrap,
  .upnovo-pulse .woocommerce-cart-form,
  .upnovo-pulse .cart-totals-inner,
  .upnovo-pulse .checkout-order-review,
  .upnovo-pulse .woocommerce-MyAccount-content {
    border-radius: var(--radius-md);
  }

  .upnovo-pulse .upnovo-pulse-home-trust {
    margin-bottom: var(--space-7);
    padding: 22px 16px;
  }

  .upnovo-pulse .upnovo-pulse-trust-grid {
    grid-template-columns: 1fr;
  }

  .upnovo-pulse .upnovo-pulse-trust-grid article {
    display: grid;
    padding: 16px;
    grid-template-columns: 36px minmax(0, 1fr);
    column-gap: 12px;
  }

  .upnovo-pulse .upnovo-pulse-trust-grid article > span {
    width: 36px;
    height: 36px;
    margin: 0;
    grid-row: span 2;
  }

  .upnovo-pulse .upnovo-pulse-shop-intro {
    margin-top: 14px;
    padding: 26px 20px;
  }

  .upnovo-pulse .upnovo-pulse-delivery {
    grid-template-columns: 36px minmax(0, 1fr);
    padding: 16px;
  }

  .upnovo-pulse .upnovo-pulse-delivery-icon {
    width: 36px;
    height: 36px;
    font-size: 18px;
  }
}

@media (max-width: 360px) {
  .upnovo-pulse .whb-mobile-center .wd-logo img {
    width: 90px !important;
    max-width: 90px !important;
  }

  .upnovo-pulse .whb-mobile-right .upnovo-pulse-mobile-cart > a {
    width: 42px;
    min-width: 42px;
  }

  .upnovo-pulse .whb-mobile-right .upnovo-pulse-mobile-cart .wd-tools-icon {
    width: 22px;
    flex-basis: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .upnovo-pulse *,
  .upnovo-pulse *::before,
  .upnovo-pulse *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
