/* ============================================================
   OBSIRIA — Polish Layer (Phase 16)
   Compiled 2026-05-12
   Loads as a separate stylesheet via wp-content/uploads/obsiria/
   Appends behavior to existing Phase 12-15 baseline; does NOT replace.

   Dependencies:
     - Foundation vars (--ob-cream, --ob-jade, easings, durations) live in baseline
     - Companion JS: obsiria-polish.js (REQUIRED for all .ob-visible / .ob-scrolled / .ob-badge-bounce / .ob-qty-wrap / .ob-toast / .ob-scroll-top)

   Contents:
     A.  New keyframes (only ones not already in baseline)
     B.  Product card stagger entrance + hover lift refinement   [needs JS]
     C.  Header compression on scroll                            [needs JS]
     D.  Quantity selector                                       [needs JS]
     E.  Toast notification system                               [needs JS]
     F.  Cart badge animation                                    [needs JS]
     G.  Scroll-to-top button                                    [needs JS]
     H.  Skeleton loading screens                                [CSS-only]
     I.  Mobile nav styling                                      [CSS-only]
     J.  Product image gallery (Flexslider crossfade)            [CSS-only]
     K.  Out-of-stock visual state                               [CSS-only]
     L.  Reduced motion overrides
   ============================================================ */


/* ── A. KEYFRAMES ────────────────────────────────────────── */

@keyframes ob-shimmer       { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
@keyframes ob-cart-confirm  { 0% { transform: scale(1); } 30% { transform: scale(0.94); } 65% { transform: scale(1.07); } 100% { transform: scale(1); } }
@keyframes ob-toast-in      { from { transform: translateX(calc(100% + 32px)); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes ob-toast-out     { from { transform: translateX(0); opacity: 1; } to { transform: translateX(calc(100% + 32px)); opacity: 0; } }
@keyframes ob-badge-bounce  { 0% { transform: scale(1); } 35% { transform: scale(0.75); } 70% { transform: scale(1.25); } 100% { transform: scale(1); } }
@keyframes ob-sctt-in       { from { opacity: 0; transform: translateY(8px) scale(0.9); } to { opacity: 1; transform: translateY(0) scale(1); } }


/* ── B. PRODUCT CARD STAGGER + HOVER ──────────────────────────
   ⚠ CRITICAL: opacity:0 here REQUIRES companion JS to add .ob-visible.
   Without JS this rule keeps cards invisible (the section-5 bug). The
   enqueue must load JS or this block does net harm — never ship alone.
   ──────────────────────────────────────────────────────────── */

.woocommerce ul.products li.product:not(.ob-visible),
.elementor-wc-products .products li.product:not(.ob-visible),
.elementor-posts--skin-cards .elementor-post:not(.ob-visible),
.obsiria-product-card:not(.ob-visible) {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 400ms var(--ob-ease-out),
    transform 400ms var(--ob-ease-out);
  will-change: transform;
}

.woocommerce ul.products li.product.ob-visible,
.elementor-wc-products .products li.product.ob-visible,
.elementor-posts--skin-cards .elementor-post.ob-visible,
.obsiria-product-card.ob-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Safety net: if JS fails to load for any reason, force-visible after 2s */
@media (prefers-reduced-motion: no-preference) {
  @keyframes ob-card-fail-safe { to { opacity: 1; transform: translateY(0); } }
  .woocommerce ul.products li.product,
  .elementor-wc-products .products li.product,
  .obsiria-product-card {
    animation: ob-card-fail-safe 200ms 2.5s forwards;
  }
}

/* WC "added to cart" pulse on add-to-cart button */
.added_to_cart_animation,
.woocommerce ul.products li.product .added.button {
  animation: ob-cart-confirm 420ms var(--ob-ease-spring) both !important;
}


/* ── C. HEADER COMPRESSION ON SCROLL ──────────────────────── */

.site-header,
#site-header,
header.site-header {
  transition:
    box-shadow 200ms var(--ob-ease-out),
    padding 200ms var(--ob-ease-out);
}

.site-header.ob-scrolled,
#site-header.ob-scrolled {
  box-shadow: 0 1px 20px rgba(15, 13, 10, 0.08) !important;
}

.site-header.ob-scrolled .custom-logo,
.site-header.ob-scrolled .site-branding img {
  transform: scale(0.88);
  transition: transform 200ms var(--ob-ease-out);
}


/* ── D. QUANTITY SELECTOR (overrides WC defaults) ─────────── */

.ob-qty-wrap {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid rgba(15, 13, 10, 0.18);
  border-radius: 4px;
  overflow: hidden;
  height: 44px;
}

.ob-qty-btn {
  width: 44px;
  background: transparent;
  border: none;
  color: var(--ob-jade);
  font-size: 20px;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 300;
  cursor: pointer;
  transition: background-color 100ms var(--ob-ease-out);
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ob-qty-btn:hover  { background-color: var(--ob-jade-soft); }
.ob-qty-btn:active { background-color: var(--ob-jade-soft); color: var(--ob-jade-dark); }

.ob-qty-value,
.ob-qty-wrap input.qty {
  width: 52px !important;
  height: 42px !important;
  text-align: center;
  border: none !important;
  border-left: 1px solid rgba(15, 13, 10, 0.10) !important;
  border-right: 1px solid rgba(15, 13, 10, 0.10) !important;
  background: var(--ob-cream) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 14px !important;
  color: var(--ob-black) !important;
  box-shadow: none !important;
  padding: 0 !important;
  -moz-appearance: textfield;
}

.ob-qty-value::-webkit-inner-spin-button,
.ob-qty-value::-webkit-outer-spin-button,
.ob-qty-wrap input.qty::-webkit-inner-spin-button,
.ob-qty-wrap input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
}


/* ── E. TOAST NOTIFICATION SYSTEM ─────────────────────────── */

.ob-toast-container {
  position: fixed;
  bottom: 24px; right: 24px;
  z-index: 9998;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
  max-width: 340px;
}

.ob-toast {
  background: var(--ob-cream);
  border-left: 3px solid var(--ob-jade);
  border-radius: 0 4px 4px 0;
  padding: 13px 14px 13px 16px;
  box-shadow: 0 4px 24px rgba(15, 13, 10, 0.13);
  display: flex;
  align-items: center;
  gap: 10px;
  pointer-events: all;
  animation: ob-toast-in 260ms var(--ob-ease-out) both;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--ob-black);
  line-height: 1.4;
}

.ob-toast--info    { border-left-color: #4a90c4; }
.ob-toast--warning { border-left-color: #C4841A; }
.ob-toast--leaving { animation: ob-toast-out 200ms ease-in both !important; }

.ob-toast__icon {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  color: var(--ob-jade);
  flex-shrink: 0;
  width: 18px;
  text-align: center;
}

.ob-toast--info    .ob-toast__icon { color: #4a90c4; }
.ob-toast--warning .ob-toast__icon { color: #C4841A; }

.ob-toast__msg { flex: 1; }

.ob-toast__close {
  background: none;
  border: none;
  cursor: pointer;
  color: rgba(15, 13, 10, 0.30);
  font-size: 16px;
  line-height: 1;
  padding: 0;
  flex-shrink: 0;
  transition: color 100ms;
}

.ob-toast__close:hover { color: var(--ob-black); }


/* ── F. CART BADGE ANIMATION ──────────────────────────────── */

.header-cart-count,
.cart-count,
.kadence-woo-cart-wrap .count,
.header-cart-wrap .count,
.cart-contents .count,
.mini-cart-count,
.ob-cart-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  background: var(--ob-jade);
  color: var(--ob-cream);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 500;
  border-radius: 9px;
  transition: background-color 120ms;
  will-change: transform;
}

.header-cart-count.ob-badge-bounce,
.cart-count.ob-badge-bounce,
.kadence-woo-cart-wrap .count.ob-badge-bounce,
.header-cart-wrap .count.ob-badge-bounce,
.cart-contents .count.ob-badge-bounce,
.ob-cart-badge.ob-badge-bounce {
  animation: ob-badge-bounce 300ms var(--ob-ease-spring) both;
}


/* ── G. SCROLL-TO-TOP BUTTON ──────────────────────────────── */

.ob-scroll-top {
  position: fixed !important;
  bottom: 28px !important;
  left: 28px !important;
  right: auto !important;
  width: 44px !important;
  height: 44px !important;
  background: var(--ob-cream) !important;
  border: 1px solid var(--ob-cream-soft) !important;
  border-radius: 50% !important;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 12px rgba(15, 13, 10, 0.10) !important;
  z-index: 990;
  padding: 0 !important;
  color: var(--ob-jade) !important;
  font-size: 0 !important;
  transition: background-color 120ms, box-shadow 120ms, transform 120ms;
}

.ob-scroll-top.ob-visible {
  display: flex;
  animation: ob-sctt-in 220ms var(--ob-ease-out) both;
}

.ob-scroll-top:hover {
  background: var(--ob-cream-soft);
  box-shadow: 0 4px 16px rgba(15, 13, 10, 0.14);
  transform: translateY(-2px);
}

.ob-scroll-top svg {
  width: 16px !important;
  height: 16px !important;
  color: var(--ob-jade) !important;
  stroke: currentColor !important;
  fill: none !important;
  stroke-width: 2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  display: block !important;
}

/* Scroll progress bar — thin jade gradient at top of viewport, grows with scroll */
.ob-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--ob-jade), #2a9d7a);
  width: 0%;
  z-index: 9999;
  transition: width 40ms linear;
  pointer-events: none;
}


/* ── H. SKELETON LOADING SCREENS ──────────────────────────── */

.ob-skeleton-card {
  background: var(--ob-cream);
  border: 1px solid var(--ob-cream-soft);
  border-radius: 5px;
  overflow: hidden;
}

.ob-skeleton-thumb {
  aspect-ratio: 4/5;
  background: linear-gradient(90deg, var(--ob-cream-soft) 25%, rgba(245, 242, 232, 0.55) 50%, var(--ob-cream-soft) 75%);
  background-size: 200% 100%;
  animation: ob-shimmer 1.6s ease-in-out infinite;
}

.ob-skeleton-body { padding: 20px 22px; }

.ob-skeleton-line {
  border-radius: 3px;
  margin-bottom: 10px;
  background: linear-gradient(90deg, var(--ob-cream-soft) 25%, rgba(245, 242, 232, 0.55) 50%, var(--ob-cream-soft) 75%);
  background-size: 200% 100%;
  animation: ob-shimmer 1.6s ease-in-out infinite;
  height: 12px;
}

.ob-skeleton-line--title    { width: 55%; height: 16px; }
.ob-skeleton-line--subtitle { width: 38%; height: 12px; }
.ob-skeleton-line--text     { width: 90%; height: 11px; }
.ob-skeleton-line--text-sm  { width: 70%; height: 11px; }
.ob-skeleton-line--price    { width: 30%; height: 18px; }


/* ── I. MOBILE NAV STYLING (Kadence) ──────────────────────── */

.kadence-mobile-nav-toggle,
.menu-toggle,
button.mobile-menu-toggle,
.toggle-mobile-menu {
  background: transparent !important;
  border: none !important;
  color: var(--ob-black) !important;
  padding: 8px !important;
  border-radius: 4px !important;
  transition: background-color 100ms, color 100ms !important;
}

.kadence-mobile-nav-toggle:hover,
.menu-toggle:hover {
  background: var(--ob-cream-soft) !important;
  color: var(--ob-jade) !important;
}

#mobile-site-navigation,
.kadence-mobile-nav,
#mobile-drawer,
.mobile-nav {
  background-color: var(--ob-cream) !important;
  border-right: none !important;
}

#mobile-site-navigation a,
.kadence-mobile-nav a,
#mobile-drawer a,
.mobile-nav a {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  color: var(--ob-black) !important;
  letter-spacing: -0.01em !important;
  padding: 14px 24px !important;
  border-bottom: 1px solid var(--ob-cream-soft) !important;
  transition: color 100ms, background-color 100ms !important;
}

#mobile-site-navigation a:hover,
.kadence-mobile-nav a:hover,
#mobile-drawer a:hover {
  color: var(--ob-jade) !important;
  background-color: var(--ob-cream-soft) !important;
}

#mobile-site-navigation .sub-menu a,
.kadence-mobile-nav .sub-menu a,
#mobile-drawer .sub-menu a {
  padding-left: 40px !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: rgba(15, 13, 10, 0.65) !important;
}

.kadence-mobile-nav .dropdown-btn,
#mobile-site-navigation .dropdown-toggle,
.mobile-nav .sub-menu-toggle {
  color: var(--ob-jade) !important;
  border-color: var(--ob-cream-soft) !important;
}


/* ── J. PRODUCT IMAGE GALLERY CROSSFADE (CSS-only) ────────── */

.woocommerce-product-gallery__image img,
.woocommerce-product-gallery figure img {
  transition: opacity 200ms var(--ob-ease-out);
}

.woocommerce-product-gallery .flex-viewport {
  transition: height 260ms var(--ob-ease-out);
}

.woocommerce-product-gallery .flex-control-thumbs li img {
  border: 1px solid transparent;
  border-radius: 3px;
  opacity: 0.55;
  transition:
    opacity 160ms var(--ob-ease-out),
    border-color 160ms var(--ob-ease-out);
  cursor: pointer;
}

.woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs li img:hover {
  opacity: 1;
  border-color: var(--ob-jade);
}

.woocommerce-product-gallery__trigger {
  opacity: 0;
  transition: opacity 160ms var(--ob-ease-out);
}

.woocommerce-product-gallery:hover .woocommerce-product-gallery__trigger {
  opacity: 1;
}


/* ── K. OUT-OF-STOCK VISUAL STATE ─────────────────────────── */

.woocommerce .product.outofstock .single_add_to_cart_button,
.woocommerce .product.outofstock button.single_add_to_cart_button {
  background: var(--ob-cream-soft) !important;
  color: rgba(15, 13, 10, 0.40) !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

.woocommerce .stock.out-of-stock {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: rgba(15, 13, 10, 0.35);
}


/* ── L. REDUCED MOTION OVERRIDES ──────────────────────────── */

@media (prefers-reduced-motion: reduce) {

  /* Product cards — show immediately, no stagger */
  .woocommerce ul.products li.product,
  .elementor-wc-products .products li.product,
  .obsiria-product-card {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }

  /* Header */
  .site-header .custom-logo,
  .site-header .site-branding img { transition: none !important; }

  /* Toasts */
  .ob-toast { animation: none !important; }
  .ob-toast--leaving { animation: none !important; display: none !important; }

  /* Cart badge */
  .header-cart-count.ob-badge-bounce,
  .cart-count.ob-badge-bounce,
  .ob-cart-badge.ob-badge-bounce { animation: none !important; }

  /* Scroll-to-top — show immediately, no entrance */
  .ob-scroll-top.ob-visible { animation: none !important; }

  /* Skeletons — flat color, no shimmer */
  .ob-skeleton-thumb,
  .ob-skeleton-line {
    animation: none !important;
    background: var(--ob-cream-soft) !important;
  }

  /* Gallery */
  .woocommerce-product-gallery__image img { transition: none !important; }
}

/* ── M. SEARCH (inline-expanding bar + results page + live-results) ───────── */

/* DISABLE Kadence's full-screen search drawer + overlay entirely.
   We replace it with an inline-expanding search bar in the header. */
#search-drawer,
.drawer-overlay[data-drawer-target-string="#search-drawer"],
body.kadence-scrollbar-fixer .drawer.search-drawer,
.drawer.popup-drawer-layout-fullwidth[id="search-drawer"] {
  display: none !important;
}

/* Inline header search — expands across the header, fades nav + cart out.
   Click search icon → form grows from 0 width to fill the header, nav/cart fade,
   logo stays anchored left. Close button on far right. Live results drop below. */

.ob-header-search {
  position: absolute !important;
  top: 50% !important;
  right: 144px !important;
  left: auto !important;
  bottom: auto !important;
  height: 52px !important;
  display: flex !important;
  align-items: center !important;
  background: #FFFFFF !important;
  border: 1px solid var(--ob-cream-soft);
  border-radius: 6px;
  overflow: visible;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 50;
  grid-column: unset !important;
  grid-row: unset !important;
}

.ob-header-search.ob-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(-50%) translateX(0) !important;
  border-color: var(--ob-jade);
  box-shadow: 0 0 0 3px var(--ob-jade-glow), 0 6px 24px rgba(15,13,10,0.10);
  transition:
    opacity 380ms var(--ob-ease-out),
    transform 420ms var(--ob-ease-out),
    visibility 0s linear 0s,
    border-color 220ms var(--ob-ease-out),
    box-shadow 220ms var(--ob-ease-out);
}

/* CROSS-FADE pattern — slowed to ~360ms for deliberate, premium feel. */
.ob-header-search {
  width: min(420px, calc(100vw - 420px)) !important;
  opacity: 0;
  transform: translateY(-50%) translateX(12px) !important;
  transform-origin: right center;
  pointer-events: none;
  visibility: hidden;
  transition:
    opacity 360ms var(--ob-ease-out),
    transform 400ms var(--ob-ease-out),
    visibility 0s linear 400ms,
    border-color 220ms var(--ob-ease-out),
    box-shadow 220ms var(--ob-ease-out);
}

@media (max-width: 1024px) {
  .ob-header-search.ob-open {
    width: min(340px, calc(100vw - 320px)) !important;
    right: 128px !important;
  }
}

@media (max-width: 600px) {
  .ob-header-search { right: 16px !important; }
  .ob-header-search.ob-open {
    width: calc(100vw - 200px) !important;
    right: 96px !important;
  }
}

.ob-header-search input.search-field {
  flex: 1;
  min-width: 0;
  border: none !important;
  background: transparent !important;
  padding: 0 16px !important;
  height: 46px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  color: var(--ob-black) !important;
  outline: none !important;
  box-shadow: none !important;
  width: 100% !important;
}

.ob-header-search input.search-field::placeholder {
  color: rgba(15, 13, 10, 0.40);
}

.ob-header-search input.search-field::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

.ob-header-search-close {
  flex-shrink: 0;
  width: 44px;
  height: 46px;
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  color: rgba(15, 13, 10, 0.50);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 120ms;
  padding: 0;
}

.ob-header-search-close:hover { color: var(--ob-black); }

/* When search active: nav + search icon fade out. Cart stays. Same timing as bar. */
body.ob-search-active .site-header-item-main-navigation,
body.ob-search-active .header-navigation,
body.ob-search-active .search-toggle-open-container,
body.ob-search-active .mobile-toggle-open-container {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 360ms var(--ob-ease-out) !important;
}

/* Cross-fade: nav fades back at same beat as search closes. */
.site-header-item-main-navigation,
.header-navigation,
.header-cart-wrap,
.kadence-woo-cart-wrap,
.header-cart-button,
.header-account-wrap,
.search-toggle-open-container,
.mobile-toggle-open-container {
  transition: opacity 360ms var(--ob-ease-out);
}

/* Live results dropdown — anchored below the inline search bar */
.ob-header-search .ob-live-results {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  width: auto;
  min-width: unset;
  max-height: 60vh;
}

/* Header search form — kill the ugly "Buscar" text submit, restyle input */
.search-form {
  display: inline-flex;
  align-items: center;
  gap: 0;
  position: relative;
}

.search-form .search-field {
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  padding: 9px 38px 9px 14px !important;
  border: 1px solid var(--ob-cream-soft) !important;
  background: var(--ob-cream) !important;
  border-radius: 4px !important;
  color: var(--ob-black) !important;
  min-width: 200px;
  transition: border-color 120ms var(--ob-ease-out), box-shadow 120ms var(--ob-ease-out);
}

.search-form .search-field:focus {
  outline: none !important;
  border-color: var(--ob-jade) !important;
  box-shadow: 0 0 0 3px var(--ob-jade-glow) !important;
}

.search-form .search-field::placeholder {
  color: rgba(15, 13, 10, 0.40);
  font-size: 13px;
}

/* Replace the text submit button with a magnifier icon */
.search-form .search-submit {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 38px;
  background: transparent !important;
  border: none !important;
  color: transparent !important;
  font-size: 0 !important;
  cursor: pointer;
  padding: 0 !important;
}

.search-form .search-submit::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A6C52' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 16px;
  transition: transform 120ms var(--ob-ease-out);
}

.search-form .search-submit:hover::after {
  transform: scale(1.12);
}

/* Search results page — heading */
body.search h1.search-title,
body.search-results h1.search-title,
body.search .page-title.search-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: clamp(28px, 4vw, 40px) !important;
  font-weight: 600 !important;
  letter-spacing: -0.025em !important;
  color: var(--ob-black) !important;
  line-height: 1.15 !important;
  margin-bottom: 32px !important;
}

body.search h1.search-title span,
body.search-results h1.search-title span {
  color: var(--ob-jade);
  font-style: normal;
}

/* Search results page — strip blog clutter from ALL entries (products AND pages).
   The "by juanbarbaro6@gmail.com · 30/04/2026" byline must never show. */
.search-archive .entry-meta,
.search-archive .entry-meta-divider-dot,
.search-archive .posted-on,
.search-archive .entry-date,
.search-archive time.updated,
.search-archive .byline,
.search-archive .author,
.search-archive .vcard {
  display: none !important;
}

/* Clip entry summary to ~3 lines on search cards so dumped page content doesn't overflow */
.search-archive .entry-summary {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: rgba(15, 13, 10, 0.58) !important;
}

/* Search results page — clean product card look */
.search-archive .entry-list-item {
  list-style: none;
}

/* Search results page — constrain thumb image sizes (otherwise giant) */
.search-archive .entry-list-item .post-thumbnail,
.search-archive .entry-list-item .post-thumbnail-inner {
  aspect-ratio: 4/5;
  max-height: 280px;
  overflow: hidden;
}

.search-archive .entry-list-item .wp-post-image,
.search-archive .entry-list-item .attachment-medium_large {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  background: var(--ob-cream);
}

/* Normalize entry title across products AND pages — both look like product cards */
.search-archive .entry-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: -0.015em !important;
  margin-bottom: 8px !important;
  line-height: 1.2 !important;
}

.search-archive .entry-title a {
  color: var(--ob-black) !important;
  text-decoration: none !important;
  transition: color 120ms var(--ob-ease-out);
}

.search-archive .entry-title a:hover { color: var(--ob-jade) !important; }

/* "Ver más →" link — keep on pages, hide on products (products use full card click) */
.search-archive .product .entry-actions,
.search-archive .product .more-link-wrap { display: none !important; }

.search-archive .page .post-more-link {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--ob-jade) !important;
  text-decoration: none !important;
}

/* No results state */
body.search .page-content > p {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: rgba(15, 13, 10, 0.65);
}

/* ── N. LIVE SEARCH DROPDOWN ─────────────────────────────── */

.search-form {
  position: relative;
}

.ob-live-results {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  min-width: 320px;
  background: var(--ob-cream);
  border: 1px solid var(--ob-cream-soft);
  border-top: 2px solid var(--ob-jade);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 8px 32px rgba(15, 13, 10, 0.12);
  z-index: 9000;
  display: none;
  max-height: 480px;
  overflow-y: auto;
  font-family: 'Inter', sans-serif;
}

.ob-live-results.ob-open { display: block; }

#search-drawer .ob-live-results {
  min-width: min(100%, 600px);
  max-height: 60vh;
}

.ob-live-result {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  text-decoration: none !important;
  color: var(--ob-black);
  border-bottom: 1px solid var(--ob-cream-soft);
  transition: background-color 100ms var(--ob-ease-out);
  cursor: pointer;
}

.ob-live-result:last-child { border-bottom: none; }

.ob-live-result:hover,
.ob-live-result.ob-active {
  background: var(--ob-cream-soft);
}

.ob-live-result__thumb {
  width: 56px;
  height: 70px;
  flex-shrink: 0;
  background: var(--ob-cream-soft);
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
}

.ob-live-result__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.ob-live-result__body {
  flex: 1;
  min-width: 0;
}

.ob-live-result__name {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ob-black);
  line-height: 1.2;
  margin-bottom: 3px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ob-live-result__sku {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(15, 13, 10, 0.40);
}

.ob-live-result__cta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--ob-jade);
  flex-shrink: 0;
}

.ob-live-empty,
.ob-live-loading,
.ob-live-error {
  padding: 18px 14px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: rgba(15, 13, 10, 0.55);
  text-align: center;
}

.ob-live-loading::after {
  content: '·';
  display: inline-block;
  margin-left: 4px;
  animation: ob-shimmer 0.9s infinite;
}

.ob-live-footer {
  padding: 10px 14px;
  background: var(--ob-cream-soft);
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--ob-jade);
  text-align: center;
  text-decoration: none !important;
  display: block;
  transition: background-color 100ms;
  border-top: 1px solid var(--ob-cream-soft);
}

.ob-live-footer:hover { background: var(--ob-jade-soft); }

/* ── O. PRODUCT DETAIL PAGE — premium overhaul ───────────── */

/* Breadcrumb — premium mono micro */
body.single-product .woocommerce-breadcrumb {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: rgba(15,13,10,0.40) !important;
  margin-bottom: 36px !important;
}
body.single-product .woocommerce-breadcrumb a {
  color: rgba(15,13,10,0.55) !important;
  text-decoration: none !important;
  transition: color 120ms;
}
body.single-product .woocommerce-breadcrumb a:hover { color: var(--ob-jade) !important; }

/* Category eyebrow above product title — via ::before per category body class */
body.single-product .product_title { position: relative; }

body.single-product.product_cat-reparacion .product_title::before,
body.single-product.product_cat-metabolico .product_title::before,
body.single-product.product_cat-crecimiento .product_title::before,
body.single-product.product_cat-renovacion .product_title::before,
body.single-product.product_cat-accesorios .product_title::before {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  font-weight: 500;
  color: var(--ob-jade);
  margin-bottom: 14px;
}
body.single-product.product_cat-reparacion .product_title::before  { content: '─ REPARACIÓN'; }
body.single-product.product_cat-metabolico .product_title::before  { content: '─ METABÓLICO'; }
body.single-product.product_cat-crecimiento .product_title::before { content: '─ CRECIMIENTO'; }
body.single-product.product_cat-renovacion .product_title::before  { content: '─ RENOVACIÓN'; }
body.single-product.product_cat-accesorios .product_title::before  { content: '─ ACCESORIOS'; }

/* Title — refined size, not gigantic */
body.single-product .woocommerce div.product .product_title,
body.single-product .product_title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: clamp(28px, 3.5vw, 42px) !important;
  font-weight: 600 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.1 !important;
  margin: 0 0 16px !important;
  color: var(--ob-black) !important;
}

/* Short description / summary — premium readability, comfortable size */
body.single-product .woocommerce div.product .woocommerce-product-details__short-description {
  font-family: 'Inter', sans-serif !important;
  font-size: 19px !important;
  line-height: 1.6 !important;
  color: rgba(15,13,10,0.72) !important;
  max-width: 520px;
  margin: 0 0 32px !important;
  font-weight: 400 !important;
}

/* Meta — smaller, secondary, sits below a thin separator */
body.single-product .product_meta {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase !important;
  color: rgba(15,13,10,0.45) !important;
  border-top: 1px solid var(--ob-cream-soft);
  padding-top: 24px !important;
  margin-top: 36px !important;
  line-height: 1.8 !important;
}
body.single-product .product_meta > span {
  display: block !important;
  margin-bottom: 4px !important;
}
body.single-product .product_meta a {
  color: rgba(15,13,10,0.65) !important;
  text-decoration: none !important;
  transition: color 120ms;
}
body.single-product .product_meta a:hover { color: var(--ob-jade) !important; }

/* Hide operational tags that leaked to consumer-facing meta */
body.single-product .product_meta .tagged_as a[href*="ruo-research"],
body.single-product .product_meta .tagged_as a[href*="requires-cold-chain"],
body.single-product .product_meta .tagged_as a[href*="requires-reconstitution"] {
  display: none !important;
}

/* If the Etiquetas span is now empty after hiding tags, hide the whole span */
body.single-product .product_meta .tagged_as {
  font-size: 0 !important; /* will be overridden if any visible tag has font-size */
}
body.single-product .product_meta .tagged_as a {
  font-size: 11px !important;
}

/* Product gallery — kill zoom + clean frame */
body.single-product .woocommerce-product-gallery__trigger {
  display: none !important;
}
body.single-product .woocommerce-product-gallery .zoomImg {
  display: none !important;
}
body.single-product .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery__image img {
  cursor: default !important;
}
body.single-product .woocommerce-product-gallery__image:hover img,
body.single-product .woocommerce-product-gallery__image a:hover img {
  transform: none !important;
  scale: 1 !important;
}

body.single-product .woocommerce div.product .woocommerce-product-gallery {
  max-width: 560px;
  margin: 0 auto !important;
}

body.single-product .woocommerce div.product .woocommerce-product-gallery__image {
  background: var(--ob-cream);
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--ob-cream-soft);
}

body.single-product .woocommerce div.product .woocommerce-product-gallery__image > a,
body.single-product .woocommerce div.product .woocommerce-product-gallery__image {
  display: block;
}

body.single-product .woocommerce div.product .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  padding: 32px;
  display: block;
}

/* Description tabs — premium restyle (mono caps, jade underline on active) */
body.single-product .woocommerce-tabs ul.tabs {
  list-style: none !important;
  border-bottom: 1px solid var(--ob-cream-soft) !important;
  padding: 0 !important;
  margin: 56px 0 32px !important;
  display: flex !important;
  gap: 28px !important;
}
body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs::after {
  display: none !important;
}
body.single-product .woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
}
body.single-product .woocommerce-tabs ul.tabs li a {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 12px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  color: rgba(15,13,10,0.45) !important;
  padding: 14px 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  text-decoration: none !important;
  display: inline-block !important;
  transition: color 120ms, border-color 120ms !important;
}
body.single-product .woocommerce-tabs ul.tabs li.active a,
body.single-product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--ob-black) !important;
  border-bottom-color: var(--ob-jade) !important;
}

/* Description panel — kill default "Descripción" h2 heading WC injects */
body.single-product .woocommerce-Tabs-panel--description > h2:first-of-type {
  display: none !important;
}

/* Description content — clean editorial typography */
body.single-product .woocommerce-Tabs-panel h2 {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 12px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--ob-jade) !important;
  font-weight: 500 !important;
  margin: 44px 0 18px !important;
  padding-bottom: 14px !important;
  border-bottom: 1px solid var(--ob-cream-soft) !important;
}
body.single-product .woocommerce-Tabs-panel h2:first-child,
body.single-product .woocommerce-Tabs-panel > *:first-child h2 {
  margin-top: 0 !important;
}
body.single-product .woocommerce-Tabs-panel p {
  font-family: 'Inter', sans-serif !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: rgba(15,13,10,0.78) !important;
  max-width: 700px;
  margin: 0 0 16px;
}
body.single-product .woocommerce-Tabs-panel a {
  color: var(--ob-jade);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

/* Spec tables in description */
body.single-product .woocommerce-Tabs-panel table {
  border-collapse: collapse !important;
  width: 100% !important;
  max-width: 640px;
  margin: 8px 0 24px !important;
  background: transparent !important;
}
body.single-product .woocommerce-Tabs-panel table td {
  padding: 14px 0 !important;
  border-bottom: 1px solid var(--ob-cream-soft) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  color: rgba(15,13,10,0.78) !important;
  background: transparent !important;
  vertical-align: middle !important;
}
body.single-product .woocommerce-Tabs-panel table td:first-child {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 12px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: rgba(15,13,10,0.50) !important;
  width: 32%;
  padding-right: 24px !important;
}

/* Numbered reconstitution steps */
body.single-product .woocommerce-Tabs-panel ol {
  font-family: 'Inter', sans-serif;
  font-size: 17px;
  line-height: 1.7;
  color: rgba(15,13,10,0.78);
  max-width: 700px;
  padding-left: 24px;
  margin: 0 0 16px;
}
body.single-product .woocommerce-Tabs-panel ol li {
  margin-bottom: 8px;
  padding-left: 8px;
}
body.single-product .woocommerce-Tabs-panel ol li::marker {
  color: var(--ob-jade);
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
}

/* Hide the bare "Descripción" section heading WC adds */
body.single-product .woocommerce-Tabs-panel--description h2:first-child {
  display: none !important;
}

/* ── P. ICON BOXES (search + cart) — solid jade, fighting Kadence header.min.css.
   Using hardcoded hex + body-prefixed selectors for max specificity. */

body button.search-toggle-open,
body button.search-toggle-open.search-toggle-style-default,
body .kadence-header-cart .header-cart-button,
body .kadence-header-cart.header-navigation .header-cart-button,
body .header-cart-wrap .header-cart-button,
body button.drawer-toggle.header-cart-button,
.search-toggle-open-container > button {
  background-color: #1A6C52 !important;
  background: #1A6C52 !important;
  color: #F5F2E8 !important;
  border: 1px solid #1A6C52 !important;
  border-radius: 8px !important;
  transition: background-color 200ms cubic-bezier(0.25, 0.00, 0.00, 1.00), transform 120ms !important;
}

body button.search-toggle-open:hover,
body button.search-toggle-open:focus,
body .kadence-header-cart .header-cart-button:hover,
body .header-cart-wrap .header-cart-button:hover {
  background-color: #115440 !important;
  background: #115440 !important;
  color: #F5F2E8 !important;
}

/* Icons inside the boxes — cream */
body button.search-toggle-open svg,
body .search-toggle-open .search-toggle-icon,
body .header-cart-button svg,
body .kadence-woo-cart-wrap .cart-toggle svg,
body .header-cart-button .kadence-svg-iconset,
body .header-cart-button .kadence-svg-iconset svg {
  color: #F5F2E8 !important;
  fill: #F5F2E8 !important;
}

/* Cart count badge — keep contrast, flip to jade-dark on cream */
body .kadence-woo-cart-wrap .header-cart-total,
body .header-cart-button .header-cart-total,
body .header-cart-wrap .header-cart-total {
  background-color: #F5F2E8 !important;
  background: #F5F2E8 !important;
  color: #115440 !important;
}

/* ── Q. UNIFY NUMBERED SECTION EYEBROWS site-wide ── */

/* Targets all "─ NN · LABEL" eyebrows across homepage + product pages
   so they share one visual treatment: jade mono caps. */
.obsiria-eyebrow,
.obsiria-eyebrow-dark,
.wp-block-group .has-text-align-center.obsiria-eyebrow,
body.home .wp-block-paragraph[class*="eyebrow"] {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--ob-jade) !important;
  font-weight: 500 !important;
  margin-bottom: 16px !important;
}

/* On dark-background sections, flip to cream so it stays readable */
.wp-block-group[style*="background:#0F0D0A"] .obsiria-eyebrow,
.wp-block-group[style*="background-color:#0F0D0A"] .obsiria-eyebrow,
.wp-block-group[style*="background:#0F0D0A"] .obsiria-eyebrow-dark,
.wp-block-group[style*="background-color:#0F0D0A"] .obsiria-eyebrow-dark {
  color: var(--ob-jade-soft) !important;
}

/* ── R. HERO VIAL VIDEO (replaces static PNG) ──────────── */

.obsiria-hero-vial-figure {
  margin: 0 !important;
  padding: 0 !important;
}

.obsiria-hero-vial-video {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  background: transparent;
  border-radius: 0;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  mix-blend-mode: multiply;
}

.obsiria-hero-vial-figure {
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  position: relative;
  text-align: center;
}

/* Hero section padding adjustments so the vial has room to breathe */
.obsiria-hero-vial-figure {
  position: relative;
  overflow: visible !important;
  margin: 0 !important;
}

/* Bump hero text on the left so the bigger vial doesn't dwarf it */
body.home h1.wp-block-heading,
body.home h1 {
  font-size: clamp(48px, 6.5vw, 84px) !important;
  line-height: 1.0 !important;
  letter-spacing: -0.035em !important;
}

@media (max-width: 768px) {
  .obsiria-hero-vial-video {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    margin-bottom: 0;
    mix-blend-mode: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .obsiria-hero-vial-video {
    /* show first frame, no animation */
  }
}

/* End Phase 16 polish layer */

/* Hide theme-rendered duplicate page title on Tienda */
body.page-id-5 .entry-hero,
body.page-id-5 .page-title,
body.page-id-5 header.entry-header,
body.page-id-5 h1.entry-title { display: none !important; }

/* === Card hover image swap (Section S) === */
.products li.product { position: relative; }
.products li.product a.woocommerce-loop-product__link,
.products li.product .product-image-wrap,
.products li.product .product-content-wrap { position: relative; }
.ob-card-hover-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: 0 !important;
  transition: opacity 320ms cubic-bezier(.22,.61,.36,1) !important;
  pointer-events: none !important;
  z-index: 2 !important;
}
.products li.product:hover .ob-card-hover-img { opacity: 1 !important; }
@media (prefers-reduced-motion: reduce) {
  .ob-card-hover-img { transition: none !important; }
}

/* === Card title contrast (Section T) === */
/* Title block (below image) — give it a subtle separation from the white packshot above */
.products li.product .product-details,
.products li.product .product-content-wrap,
.products li.product .wp-block-woocommerce-product-template > *,
ul.products li.product > a + .product-details {
  background: #FFFFFF !important;
  border-top: 1px solid rgba(15,13,10,0.06) !important;
  padding: 14px 16px !important;
  border-bottom-left-radius: var(--border-radius-lg, 10px) !important;
  border-bottom-right-radius: var(--border-radius-lg, 10px) !important;
}
/* Ensure the whole card has a soft outline so the white-on-white pill never floats */
ul.products li.product,
.wc-block-grid__product {
  border: 1px solid #E6E0CF !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
  transition: border-color 200ms ease, box-shadow 200ms ease !important;
}
ul.products li.product:hover,
.wc-block-grid__product:hover {
  border-color: #1A6C52 !important;
  box-shadow: 0 6px 18px rgba(15,13,10,0.06) !important;
}
/* The H2 title inside the card */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2.woocommerce-loop-product__title {
  font-size: 15px !important;
  font-weight: 500 !important;
  color: #0F0D0A !important;
  padding: 14px 16px 8px !important;
  margin: 0 !important;
  background: #FFFFFF !important;
}

/* === Section U — fixes for hover-img / pill / read-more === */

/* 1. Hover image must NOT cover the title — clip to image area only */
.ob-card-hover-img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  inset: auto !important;
  object-fit: cover !important;
  z-index: 1 !important;
}

/* 2. Card title block — give it a clearly visible separation from the image */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2.woocommerce-loop-product__title {
  position: relative !important;
  z-index: 5 !important;
  background: #FFFFFF !important;
  border-top: 1px solid #E6E0CF !important;
  padding: 14px 16px 12px !important;
  margin: 0 !important;
  font-family: Space Grotesk, sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: #0F0D0A !important;
  text-align: left !important;
  letter-spacing: -0.005em !important;
}

/* The price under the title — same treatment */
ul.products li.product .price {
  position: relative !important;
  z-index: 5 !important;
  background: #FFFFFF !important;
  padding: 0 16px 14px !important;
  margin: 0 !important;
  font-family: JetBrains Mono,monospace !important;
  font-size: 12px !important;
  color: #1A6C52 !important;
  font-weight: 600 !important;
}

/* 3. Hide redundant "Read more / Ver más" link on coming_soon cards
      — the card image already navigates to the single product page */
ul.products li.product .button.product_type_simple,
ul.products li.product .button.product_type_variable,
ul.products li.product a.button:not(.add_to_cart_button),
ul.products li.product .added_to_cart {
  display: none !important;
}

/* === Section V — refined pill + hover-img sync === */
/* Hover img: drop aspect-ratio, let JS set height to match underlying img */
.ob-card-hover-img {
  aspect-ratio: auto !important;
  height: 0 !important;
}
.ob-card-hover-img[data-h] {
  height: var(--ob-h, 0) !important;
}

/* Title block — discrete cream pill with full jade outline */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2.woocommerce-loop-product__title {
  position: relative !important;
  z-index: 5 !important;
  margin: 14px !important;
  padding: 10px 14px !important;
  background: #F5F2E8 !important;
  border: 1px solid #1A6C52 !important;
  border-top: 1px solid #1A6C52 !important;
  border-radius: 8px !important;
  font-family: "Space Grotesk", sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #0F0D0A !important;
  text-align: center !important;
  letter-spacing: -0.005em !important;
}
ul.products li.product .price {
  position: relative !important;
  z-index: 5 !important;
  background: transparent !important;
  padding: 0 14px 14px !important;
  margin: 0 !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 11px !important;
  color: #1A6C52 !important;
  font-weight: 600 !important;
  text-align: center !important;
  letter-spacing: 0.04em !important;
}

/* === Section W — pill refinement + price placeholder === */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2.woocommerce-loop-product__title {
  margin: 0 !important;
  padding: 16px 16px 8px !important;
  background: #FAFAF7 !important;
  border: none !important;
  border-top: 1px solid #E6E0CF !important;
  border-radius: 0 !important;
  font-family: "Space Grotesk", sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #0F0D0A !important;
  text-align: center !important;
  letter-spacing: -0.005em !important;
  line-height: 1.3 !important;
  display: block !important;
  width: 100% !important;
  position: relative !important;
  z-index: 5 !important;
}
ul.products li.product .woocommerce-loop-product__title a,
ul.products li.product h2.woocommerce-loop-product__title a {
  display: block !important;
  text-align: center !important;
  color: inherit !important;
  text-decoration: none !important;
  width: 100% !important;
}
ul.products li.product .price {
  background: #FAFAF7 !important;
  padding: 0 16px 16px !important;
  margin: 0 !important;
  text-align: center !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 11px !important;
  color: #7A6F58 !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  display: block !important;
  width: 100% !important;
  position: relative !important;
  z-index: 5 !important;
}
.ob-price-placeholder {
  color: #7A6F58 !important;
  font-style: normal !important;
}

/* === Section X — minimal title (override pill styling) === */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2.woocommerce-loop-product__title {
  background: transparent !important;
  border: none !important;
  border-top: none !important;
  border-radius: 0 !important;
  margin: 14px 0 4px !important;
  padding: 0 14px !important;
  font-family: "Space Grotesk", sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #0F0D0A !important;
  text-align: center !important;
  letter-spacing: -0.005em !important;
  line-height: 1.3 !important;
}
ul.products li.product .price {
  background: transparent !important;
  margin: 0 0 16px !important;
  padding: 0 14px !important;
  font-family: "JetBrains Mono", ui-monospace, monospace !important;
  font-size: 11px !important;
  color: #7A6F58 !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-align: center !important;
}

/* === Section Y — restore hover image, fix height override === */
.ob-card-hover-img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  width: 100% !important;
  /* height managed by JS to match underlying img; aspect-ratio fallback */
  aspect-ratio: 1 / 1;
  object-fit: cover !important;
  opacity: 0 !important;
  transition: opacity 320ms cubic-bezier(.22,.61,.36,1) !important;
  pointer-events: none !important;
  z-index: 1 !important;
}
.ob-card-hover-img[data-h] {
  aspect-ratio: auto !important;
}
ul.products li.product:hover .ob-card-hover-img,
.wc-block-grid__product:hover .ob-card-hover-img {
  opacity: 1 !important;
}
@media (prefers-reduced-motion: reduce) {
  .ob-card-hover-img { transition: none !important; }
}

/* === Section Z — cursor-origin ripple border on cards === */
ul.products li.product,
.wc-block-grid__product,
.obsiria-category-card {
  position: relative !important;
}
ul.products li.product::after,
.wc-block-grid__product::after,
.obsiria-category-card::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  border: 1.5px solid #1A6C52 !important;
  border-radius: 10px !important;
  pointer-events: none !important;
  clip-path: circle(0px at var(--ob-rx, 50%) var(--ob-ry, 50%)) !important;
  transition: clip-path 560ms cubic-bezier(.22,.61,.36,1) !important;
  z-index: 10 !important;
  box-sizing: border-box !important;
}
ul.products li.product:hover::after,
.wc-block-grid__product:hover::after,
.obsiria-category-card:hover::after {
  clip-path: circle(140% at var(--ob-rx, 50%) var(--ob-ry, 50%)) !important;
}
@media (prefers-reduced-motion: reduce) {
  ul.products li.product::after,
  .wc-block-grid__product::after,
  .obsiria-category-card::after {
    transition: none !important;
  }
}

/* === Section AA — scroll progress bar (self-contained) === */
.ob-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: rgba(0,0,0,0);
  z-index: 999999;
  pointer-events: none;
}
.ob-progress-fill {
  height: 100%;
  width: 0%;
  background: #1A6C52;
  transform-origin: 0 0;
  transition: width 80ms linear;
}
@media (prefers-reduced-motion: reduce) {
  .ob-progress-fill { transition: none; }
}

/* === Section AB — ripple asymmetric timing === */
ul.products li.product::after,
.wc-block-grid__product::after,
.obsiria-category-card::after {
  /* Hover-out (default state) — fast contract */
  transition: clip-path 280ms cubic-bezier(.55,.06,.68,.19) !important;
}
ul.products li.product:hover::after,
.wc-block-grid__product:hover::after,
.obsiria-category-card:hover::after {
  /* Hover-in — slow expansive draw */
  transition: clip-path 900ms cubic-bezier(.22,.61,.36,1) !important;
}

/* === Section AC — ripple timing reset === */
ul.products li.product::after,
.wc-block-grid__product::after,
.obsiria-category-card::after {
  /* Hover-out — faster contract */
  transition: clip-path 280ms cubic-bezier(.55,.06,.68,.19) !important;
}
ul.products li.product:hover::after,
.wc-block-grid__product:hover::after,
.obsiria-category-card:hover::after {
  /* Hover-in — original 560ms expand */
  transition: clip-path 560ms cubic-bezier(.22,.61,.36,1) !important;
}

/* === Section AD — comprehensive mobile pass ============================= */

/* Global: prevent horizontal overflow */
html, body { overflow-x: hidden !important; }
body { max-width: 100vw !important; }

/* Hero — let typography breathe and never overflow */
@media (max-width: 768px) {
  /* Hero headline */
  .wp-block-group h1[style*="clamp"] {
    font-size: clamp(40px, 11vw, 64px) !important;
    line-height: 1 !important;
    letter-spacing: -0.03em !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }
  /* Hero subtitle */
  .wp-block-group p[style*="clamp(17px"],
  .wp-block-group p[style*="clamp(17px,1.6vw"] {
    font-size: 15px !important;
    padding: 0 8px !important;
  }
  /* Hero eyebrow pill */
  .obsiria-hero-eyebrow {
    font-size: 10px !important;
    padding: 6px 12px !important;
    letter-spacing: 0.14em !important;
  }

  /* Top utility strip (Operamos desde GDL · email) — keep on one line, smaller */
  .site-header-row-container-inner [class*="header-html-content"],
  .header-html-1 {
    font-size: 11px !important;
    text-align: center !important;
    padding: 8px 12px !important;
  }

  /* Trust strip — tighten letter-spacing, smaller font, wrap as needed */
  .obsiria-trust-strip {
    font-size: 10px !important;
    letter-spacing: 0.05em !important;
    padding: 12px 8px !important;
    line-height: 1.6 !important;
    text-align: center !important;
  }
  .obsiria-trust-strip .sep { margin: 0 6px !important; }

  /* Section headings — clamp tighter */
  h2.wp-block-heading[style*="clamp(36px"],
  h2.wp-block-heading[style*="clamp(28px"] {
    font-size: clamp(28px, 7vw, 38px) !important;
    line-height: 1.1 !important;
    letter-spacing: -0.02em !important;
    padding: 0 8px !important;
  }
  /* Catálogo section heading and Compuestos sintéticos */
  h2[style*="clamp(32px,4.5vw,52px)"] {
    font-size: clamp(28px, 7vw, 36px) !important;
    padding: 0 8px !important;
  }

  /* Eyebrow paragraphs (─ CATÁLOGO, ─ SUPLEMENTOS, etc) */
  .obsiria-eyebrow-light,
  .obsiria-eyebrow-dark {
    font-size: 10px !important;
    letter-spacing: 0.14em !important;
  }

  /* Catálogo 3-card grid → stack vertically */
  .wp-block-columns {
    flex-direction: column !important;
    gap: 16px !important;
  }
  .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
  }
  .obsiria-category-card {
    padding: 24px 22px !important;
  }
  .obsiria-category-card h3 {
    font-size: 22px !important;
  }

  /* Materiales section — verification micro-grid: 1 column instead of 2 */
  .obs-verify-row {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  /* Suplementos carousel — adjust internal padding & font sizes */
  .ob-supl-carousel {
    padding: 18px !important;
  }
  .ob-supl-carousel .ob-supl-track { min-height: 480px !important; }
  .ob-supl-carousel .ob-supl-slide {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .ob-supl-carousel .ob-supl-name {
    font-size: 22px !important;
  }
  .ob-supl-carousel .ob-supl-img img {
    max-height: 180px !important;
  }

  /* Mexico flight map — smaller labels */
  .ob-mxfly { height: 220px !important; max-width: 100% !important; }
  .ob-mx-labels text { font-size: 9px !important; }
  .ob-mx-gdl text { font-size: 10px !important; }

  /* Envío section — 3 shipping cards → stack */
  .wp-block-group [style*="background:#EDE8D9;padding:32px"] {
    padding: 20px !important;
  }

  /* FAQ items */
  .obsiria-faq-item summary {
    font-size: 16px !important;
    padding: 18px 8px !important;
  }
  .obsiria-faq-item p {
    font-size: 14px !important;
    padding: 0 8px 16px !important;
  }

  /* Compromiso slim band — wrap & shrink */
  .wp-block-group [style*="font-family: JetBrains Mono"] {
    font-size: 9px !important;
    letter-spacing: 0.14em !important;
    line-height: 1.7 !important;
  }

  /* Tienda — force single column on phones */
  ul.products[class*="columns-"],
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  ul.products li.product { width: 100% !important; margin: 0 !important; }

  /* Product detail page — table overflow */
  .single-product table {
    width: 100% !important;
    table-layout: fixed !important;
    word-wrap: break-word !important;
    font-size: 13px !important;
  }
  .single-product table td {
    padding: 8px 10px !important;
  }

  /* Footer — stack columns, center align */
  .obs-footer-4col {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    text-align: center !important;
  }
  .obs-footer-bot-inner {
    flex-direction: column !important;
    gap: 12px !important;
    text-align: center !important;
  }

  /* Header drawer cart icon + search — bigger tap targets */
  .header-cart-button, .search-toggle-open-container > button {
    min-width: 44px !important;
    min-height: 44px !important;
  }

  /* Tienda custom layout — section header eyebrow alignment */
  .ob-tienda-section .obsiria-eyebrow-light {
    font-size: 10px !important;
  }
  .ob-tienda-section h2 {
    font-size: clamp(24px, 7vw, 32px) !important;
  }
}

/* Even smaller phones (≤480px) */
@media (max-width: 480px) {
  .ob-mxfly { height: 180px !important; }
  .ob-mx-labels text { font-size: 8px !important; }
  .ob-flight-label, .ob-mx-gdl text { font-size: 9px !important; }
  .obsiria-trust-strip {
    font-size: 9px !important;
    padding: 10px 6px !important;
  }
}

/* === Section AG — ripple TRANSFER feel (symmetric, cursor-tracked exit) ===
 * Both IN and OUT animate from the cursor position. When moving A→B:
 *   A retracts toward exit edge, B grows from entry edge — same speed, same easing.
 * Mousemove updates --ob-rx/--ob-ry continuously so retract uses the latest point.
 * Slow enough (~750ms) that the user sees the ring sweep around and swoop out.
 */
ul.products li.product::after,
.wc-block-grid__product::after,
.obsiria-category-card::after {
  transition: clip-path 750ms cubic-bezier(.4,.0,.2,1) !important;
}
ul.products li.product:hover::after,
.wc-block-grid__product:hover::after,
.obsiria-category-card:hover::after {
  transition: clip-path 750ms cubic-bezier(.4,.0,.2,1) !important;
}

/* === Section AH — extra mobile fixes (≤768px) on top of Section AD === */
@media (max-width: 768px) {

  /* Utility strip — let it wrap into 2 clean lines instead of jamming */
  .site-header-row-container-inner [class*="header-html-content"],
  .header-html-1 {
    line-height: 1.5 !important;
    white-space: normal !important;
    word-break: break-word !important;
  }
  .site-header-row-container-inner [class*="header-html-content"] a,
  .header-html-1 a {
    word-break: break-all !important;
  }

  /* Hero "Calidad sin atajos." — clamp aggressively, was overflowing */
  .obsiria-hero h1,
  .wp-block-cover h1,
  h1[style*="clamp"],
  h1.wp-block-heading {
    font-size: clamp(40px, 11vw, 64px) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.025em !important;
    word-break: break-word !important;
    hyphens: auto !important;
    padding: 0 12px !important;
  }

  /* Hero sub-paragraph */
  .obsiria-hero p,
  .wp-block-cover p {
    font-size: 15px !important;
    padding: 0 16px !important;
    line-height: 1.5 !important;
  }

  /* CTA buttons in hero — stack and full-width-ish */
  .obsiria-hero .wp-block-buttons,
  .wp-block-cover .wp-block-buttons {
    flex-direction: column !important;
    gap: 10px !important;
    align-items: stretch !important;
    padding: 0 16px !important;
  }
  .obsiria-hero .wp-block-button__link,
  .wp-block-cover .wp-block-button__link {
    width: 100% !important;
    text-align: center !important;
  }

  /* Header navigation row — keep cart/search reachable, hide bloated nav until hamburger */
  .site-header-item .menu-container,
  .header-navigation {
    max-width: 100% !important;
  }

  /* Logo — don't let it eat the row */
  .site-branding .site-title,
  .site-branding .custom-logo-link img {
    max-width: 140px !important;
    height: auto !important;
  }

  /* Hero eyebrow pill — was overflowing on very narrow */
  .obsiria-hero-eyebrow {
    max-width: calc(100vw - 32px) !important;
    white-space: normal !important;
    text-align: center !important;
  }

  /* Section padding — kill desktop horizontal padding */
  .wp-block-group[style*="padding:80px"],
  .wp-block-group[style*="padding: 80px"],
  .wp-block-group[style*="padding:96px"] {
    padding-left: 16px !important;
    padding-right: 16px !important;
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }

  /* Big paragraph blocks with desktop clamp font sizes */
  p[style*="clamp(17px"],
  p[style*="clamp(18px"],
  p[style*="clamp(20px"] {
    font-size: 15px !important;
    line-height: 1.55 !important;
    padding: 0 8px !important;
  }

  /* Product cards on shop — title size */
  ul.products li.product .woocommerce-loop-product__title,
  ul.products li.product h2.woocommerce-loop-product__title {
    font-size: 14px !important;
    line-height: 1.3 !important;
  }
  ul.products li.product .price,
  ul.products li.product .ob-price-placeholder {
    font-size: 13px !important;
  }

  /* Ripple — disable on touch (no hover state on phones anyway, looks janky) */
  ul.products li.product::after,
  .wc-block-grid__product::after,
  .obsiria-category-card::after {
    display: none !important;
  }

  /* Scroll progress bar — keep, but thinner */
  .ob-progress {
    height: 2px !important;
  }

  /* Single product (PDP) hero image — full width */
  .single-product .woocommerce-product-gallery {
    width: 100% !important;
    margin-bottom: 24px !important;
  }
  .single-product .summary {
    width: 100% !important;
    padding: 0 4px !important;
  }
  .single-product h1.product_title {
    font-size: clamp(24px, 6.5vw, 34px) !important;
    line-height: 1.15 !important;
  }

  /* Suplementos carousel — controls reachable, name not cropped */
  .ob-supl-carousel .ob-supl-cta {
    width: 100% !important;
    justify-content: center !important;
  }

  /* Footer — ensure links are tappable */
  .obs-footer-4col a,
  .obs-footer-bot-inner a {
    display: inline-block !important;
    padding: 4px 0 !important;
    min-height: 32px !important;
  }
}

/* === Section AI — very narrow phones (≤390px) === */
@media (max-width: 390px) {
  .obsiria-hero h1,
  .wp-block-cover h1,
  h1.wp-block-heading {
    font-size: clamp(36px, 10vw, 48px) !important;
  }
  .site-branding .site-title,
  .site-branding .custom-logo-link img {
    max-width: 120px !important;
  }
  .obsiria-trust-strip {
    padding: 10px 4px !important;
  }
  /* Header utility strip — very compact */
  .site-header-row-container-inner [class*="header-html-content"],
  .header-html-1 {
    font-size: 10px !important;
    padding: 6px 8px !important;
  }
}

/* === Section AJ — REAL sticky header (override #wrapper overflow:clip with position:fixed) ===
 *  Problem: Kadence sets #wrapper { overflow: clip } which kills position:sticky.
 *  Fix: use position: fixed on #masthead, pad body to compensate for header height.
 */
#wrapper.site,
#wrapper {
  overflow: visible !important; /* defensive — allow sticky descendants */
}

#masthead.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 200 !important;
  background: #FAF6EC !important; /* match site cream (page bg) */
  border-bottom: 1px solid rgba(26, 108, 82, 0.08) !important;
  box-shadow: 0 1px 0 rgba(26,108,82,0.04), 0 8px 18px rgba(0,0,0,0.025) !important;
  transition: box-shadow 200ms ease, background 200ms ease !important;
}
/* Push page content down by header height so the first section isn't hidden */
body.home #wrapper.site,
body #wrapper.site {
  padding-top:108px !important;
}
@media (max-width: 768px) {
  body #wrapper.site { padding-top: 92px !important; }
  #masthead.site-header { /* tighter header on mobile */ }
}

/* === Section AK — kill the duplicate "OBSIRIA" text site-title (image logo already shows brand) === */
#masthead .site-branding .site-title,
#masthead p.site-title,
.site-header p.site-title {
  display: none !important;
}
/* If user wanted text-only branding instead, we'd toggle which one is hidden. Default: image wins. */

/* === Section AL — header utility strip (top row) cream too, not bright === */
.site-header-row-container-inner,
.site-header-upper-wrap,
.site-header .header-html-1,
#masthead .header-html-1 {
  background: #FAF6EC !important;
}

/* === Section AN — mobile hamburger + drawer (SVG-based, clean sizing) === */

/* --- Hamburger button: jade pill, cream SVG (via currentColor) ---
 * CRITICAL: do NOT set background on .menu-toggle-icon — it is the SVG wrapper, not a bar.
 */
.menu-toggle-open.drawer-toggle,
button.menu-toggle-open {
  background: #1A6C52 !important;
  color: #F5F2E8 !important;
  border-radius: 10px !important;
  border: none !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 44px !important;
}
.menu-toggle-open:hover,
.menu-toggle-open:focus-visible { background: #155440 !important; }
.menu-toggle-open .menu-toggle-icon {
  background: transparent !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  height: auto !important;
}
.menu-toggle-open .kadence-svg-iconset,
.menu-toggle-open .kadence-menu-svg,
.menu-toggle-open svg {
  color: #F5F2E8 !important;
  fill: currentColor !important;
  width: 22px !important;
  height: 22px !important;
}

/* --- Mobile drawer panel — cream bg, brown body text --- */
#mobile-drawer.popup-drawer .drawer-inner,
#mobile-drawer .drawer-content-wrap,
#mobile-drawer .drawer-content,
.popup-drawer .drawer-inner {
  background: #FAF6EC !important;
  color: #3A3530 !important;
}
#mobile-drawer .drawer-header,
#mobile-drawer .drawer-header-wrap,
#mobile-drawer .drawer-header-inner {
  background: transparent !important;
  border-bottom: 1px solid rgba(26,108,82,0.10) !important;
  padding: 12px 16px !important;
}

/* Menu links */
#mobile-drawer .menu li a,
#mobile-drawer .menu-item a,
.popup-drawer .menu li a {
  color: #3A3530 !important;
  background: transparent !important;
  border-color: rgba(26,108,82,0.08) !important;
  font-family: "Inter", sans-serif !important;
  font-size: 15px !important;
  padding: 14px 16px !important;
  line-height: 1.4 !important;
}
#mobile-drawer .menu li a:hover,
#mobile-drawer .current-menu-item > a,
#mobile-drawer .current_page_item > a {
  color: #1A6C52 !important;
  background: rgba(196, 214, 186, 0.45) !important;
}

/* Drawer sub-toggle chevrons — transparent button, jade arrow */
#mobile-drawer .drawer-sub-toggle,
.popup-drawer .drawer-sub-toggle {
  background: transparent !important;
  background-color: transparent !important;
  color: #1A6C52 !important;
  border: none !important;
  box-shadow: none !important;
  padding: 8px !important;
  width: 40px !important;
  height: 40px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  transition: background 150ms ease, transform 200ms ease !important;
}
#mobile-drawer .drawer-sub-toggle:hover,
#mobile-drawer .drawer-sub-toggle:focus-visible {
  background: rgba(26,108,82,0.10) !important;
}
#mobile-drawer .drawer-sub-toggle .kadence-svg-iconset,
#mobile-drawer .drawer-sub-toggle .kadence-arrow-down-svg,
#mobile-drawer .drawer-sub-toggle svg {
  color: #1A6C52 !important;
  fill: currentColor !important;
  width: 14px !important;
  height: 14px !important;
}
#mobile-drawer .drawer-sub-toggle[aria-expanded="true"] { transform: rotate(180deg) !important; }

/* Drawer close X — jade, transparent */
#mobile-drawer .drawer-toggle-close,
#mobile-drawer .menu-toggle-close,
.popup-drawer .drawer-toggle-close {
  background: transparent !important;
  color: #1A6C52 !important;
}
#mobile-drawer .drawer-toggle-close svg,
#mobile-drawer .menu-toggle-close svg {
  color: #1A6C52 !important;
  fill: currentColor !important;
  width: 22px !important;
  height: 22px !important;
}

/* --- Mobile header cart + search (newly enabled): jade pills matching hamburger --- */
.site-mobile-header-wrap .header-cart-button,
.site-mobile-header-wrap .header-mobile-cart-wrap button,
.site-mobile-header-wrap .search-toggle-open {
  background: #1A6C52 !important;
  color: #F5F2E8 !important;
  border-radius: 10px !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  border: none !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.site-mobile-header-wrap .header-cart-button svg,
.site-mobile-header-wrap .search-toggle-open svg {
  color: #F5F2E8 !important;
  fill: currentColor !important;
  width: 22px !important;
  height: 22px !important;
}
.site-mobile-header-wrap .header-cart-total {
  background: #F5F2E8 !important;
  color: #1A6C52 !important;
}

/* Spacing between the three buttons on the mobile right side */
.site-mobile-header-wrap .site-header-main-section-right,
.site-mobile-header-wrap .site-header-section-right {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
}
.site-mobile-header-wrap .site-header-item {
  display: inline-flex !important;
  align-items: center !important;
}

/* Mobile header itself — keep cream + match sticky styling */
.site-mobile-header-wrap {
  background: #FAF6EC !important;
}
/* Tight header padding on mobile so 3 buttons + logo fit cleanly */
@media (max-width: 768px) {
  .site-mobile-header-wrap .site-container {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  /* Hide the desktop header on mobile so we don't double-stack */
  #masthead .site-header-upper-wrap > .site-header-row-container:not(.site-mobile-header-wrap) {
    display: none !important;
  }
}

/* === Section AO — drawer close X cleanup (strip the box outline, keep just the X icon) === */
#mobile-drawer .drawer-toggle-close,
#mobile-drawer .menu-toggle-close,
#mobile-drawer .drawer-header button,
.popup-drawer .drawer-toggle-close {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  color: #1A6C52 !important;
  width: 44px !important;
  height: 44px !important;
  padding: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  transition: background 150ms ease !important;
}
#mobile-drawer .drawer-toggle-close:hover,
#mobile-drawer .menu-toggle-close:hover {
  background: rgba(26,108,82,0.10) !important;
}
#mobile-drawer .drawer-toggle-close svg,
#mobile-drawer .menu-toggle-close svg {
  color: #1A6C52 !important;
  fill: currentColor !important;
  stroke: currentColor !important;
  width: 22px !important;
  height: 22px !important;
}

/* Drawer sub-menu container — match the cream of the main panel exactly, no contrast band */
#mobile-drawer .sub-menu,
#mobile-drawer .menu .sub-menu,
.popup-drawer .sub-menu {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
#mobile-drawer .sub-menu li a {
  padding-left: 32px !important;   /* indent sub-items for hierarchy */
  font-size: 14px !important;
}

/* Sticky header tweak — when fixed, ensure mobile header sits at top:0 too */
@media (max-width: 768px) {
  .site-mobile-header-wrap {
    position: relative !important; /* part of #masthead which is fixed already */
  }
}

/* === Section AP — mobile header breathing room (less crammed) === */
.site-mobile-header-wrap .site-header-main-section-right,
.site-mobile-header-wrap .site-header-section-right {
  gap: 14px !important;
}
@media (max-width: 768px) {
  .site-mobile-header-wrap .site-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  /* Add a touch more spacing between the logo block and the right cluster */
  .site-mobile-header-wrap .site-header-main-section-left {
    padding-right: 8px !important;
  }
  /* Buttons themselves — keep 44x44 hit target, but reduce inner padding so icons don't touch edges */
  .site-mobile-header-wrap .header-cart-button,
  .site-mobile-header-wrap .search-toggle-open,
  .site-mobile-header-wrap .menu-toggle-open {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }
}
/* Tighter on very narrow phones so the row still fits */
@media (max-width: 390px) {
  .site-mobile-header-wrap .site-header-main-section-right,
  .site-mobile-header-wrap .site-header-section-right {
    gap: 10px !important;
  }
  .site-mobile-header-wrap .site-container {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}

/* === Section AQ — center shopping bag icon, float count badge to corner === */
.site-mobile-header-wrap .header-cart-button,
.site-mobile-header-wrap .header-mobile-cart-wrap .header-cart-button {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.site-mobile-header-wrap .header-cart-button .kadence-svg-iconset {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 22px !important;
  height: 22px !important;
}
.site-mobile-header-wrap .header-cart-button svg {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
}
/* Count badge — absolute, top-right corner of pill, doesn't push bag off-center */
.site-mobile-header-wrap .header-cart-button .header-cart-total {
  position: absolute !important;
  top: -4px !important;
  right: -4px !important;
  min-width: 18px !important;
  height: 18px !important;
  padding: 0 5px !important;
  border-radius: 9px !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  line-height: 18px !important;
  text-align: center !important;
  background: #F5F2E8 !important;
  color: #1A6C52 !important;
  border: 2px solid #1A6C52 !important;
  box-sizing: content-box !important;
}
/* Hide badge entirely when cart is empty (cleaner look) */
.site-mobile-header-wrap .header-cart-button .header-cart-is-empty-true {
  display: none !important;
}

/* Same treatment on desktop for consistency */
#masthead .site-main-header-wrap .header-cart-button {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
#masthead .site-main-header-wrap .header-cart-button .header-cart-total {
  position: absolute !important;
  top: -4px !important;
  right: -4px !important;
  min-width: 18px !important;
  height: 18px !important;
  padding: 0 5px !important;
  border-radius: 9px !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  line-height: 18px !important;
  text-align: center !important;
  background: #F5F2E8 !important;
  color: #1A6C52 !important;
  border: 2px solid #1A6C52 !important;
  box-sizing: content-box !important;
}
#masthead .site-main-header-wrap .header-cart-button .header-cart-is-empty-true {
  display: none !important;
}

/* === Section AS — give hamburger real right-edge breathing room === */
@media (max-width: 768px) {
  /* More container side padding (was 16 / 12) — protect the hamburger from edge clipping */
  .site-mobile-header-wrap .site-container,
  .site-mobile-header-wrap .site-header-row-container-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  /* Right cluster: keep tight horizontally so all three fit without overflow */
  .site-mobile-header-wrap .site-header-main-section-right,
  .site-mobile-header-wrap .site-header-section-right {
    gap: 12px !important;
    flex-shrink: 0 !important;
    margin-right: 0 !important;
    padding-right: 0 !important;
  }
  /* Hold the wrap from creating overflow */
  .site-mobile-header-wrap .site-header-row-container {
    overflow: visible !important;
  }
  /* Smaller logo on mobile so it leaves more room for the right cluster */
  .site-mobile-header-wrap .site-branding .custom-logo,
  .site-mobile-header-wrap .custom-logo {
    max-width: 110px !important;
    height: auto !important;
  }
}
@media (max-width: 390px) {
  .site-mobile-header-wrap .site-container,
  .site-mobile-header-wrap .site-header-row-container-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .site-mobile-header-wrap .site-header-main-section-right,
  .site-mobile-header-wrap .site-header-section-right {
    gap: 8px !important;
  }
  .site-mobile-header-wrap .site-branding .custom-logo,
  .site-mobile-header-wrap .custom-logo {
    max-width: 90px !important;
  }
}

/* === Section AT — inline search close button jade pill + hide right cluster when open === */

/* The × close button INSIDE the inline search form — jade pill matching cart/hamburger */
.ob-header-search .ob-header-search-close {
  background: #1A6C52 !important;
  color: #F5F2E8 !important;
  border: none !important;
  border-radius: 10px !important;
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  min-height: 38px !important;
  padding: 0 !important;
  font-size: 20px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  margin-left: 8px !important;
  flex-shrink: 0 !important;
  transition: background 150ms ease !important;
}
.ob-header-search .ob-header-search-close:hover,
.ob-header-search .ob-header-search-close:focus-visible {
  background: #155440 !important;
  outline: none !important;
}

/* When search is open on MOBILE, hide the right cluster (cart + hamburger) so the input has room.
 * This makes the search bar expand and take over without clashing. */
body.ob-search-active .site-mobile-header-wrap .header-cart-button,
body.ob-search-active .site-mobile-header-wrap .menu-toggle-open,
body.ob-search-active .site-mobile-header-wrap .header-mobile-cart-wrap {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 180ms ease !important;
}
/* Hide the logo too on mobile when search is open — gives the input full width */
body.ob-search-active .site-mobile-header-wrap .site-branding {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 180ms ease !important;
}
/* Search form on mobile takes the whole header inner area */
body.ob-search-active .site-mobile-header-wrap .ob-header-search.ob-open {
  position: absolute !important;
  left: 16px !important;
  right: 16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: auto !important;
  display: flex !important;
  align-items: center !important;
  z-index: 50 !important;
}
body.ob-search-active .site-mobile-header-wrap .ob-header-search.ob-open .search-field {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

/* Smooth fade-in of the search form */
.site-mobile-header-wrap .ob-header-search {
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease;
}
.site-mobile-header-wrap .ob-header-search.ob-open {
  opacity: 1;
  pointer-events: auto;
}

/* === Section AU — cart drawer close X cleanup (match mobile-drawer close button style) === */
#cart-drawer .cart-toggle-close,
#cart-drawer .drawer-toggle-close {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  color: #1A6C52 !important;
  width: 44px !important;
  height: 44px !important;
  padding: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  transition: background 150ms ease !important;
}
#cart-drawer .cart-toggle-close:hover {
  background: rgba(26,108,82,0.10) !important;
}
#cart-drawer .cart-toggle-close svg,
#cart-drawer .drawer-toggle-close svg {
  color: #1A6C52 !important;
  fill: currentColor !important;
  width: 22px !important;
  height: 22px !important;
}
#cart-drawer .drawer-inner {
  background: #FAF6EC !important;
  color: #3A3530 !important;
}
#cart-drawer .drawer-header {
  background: transparent !important;
  border-bottom: 1px solid rgba(26,108,82,0.10) !important;
}
#cart-drawer .drawer-header .drawer-heading {
  color: #3A3530 !important;
  font-family: 'Inter', sans-serif !important;
}

/* === Section AV — typography polish: no orphans, no awkward breaks (mobile + desktop) === */

/* Headings — balance lines so they wrap more evenly (avoids 1-word last line) */
h1, h2, h3, h4,
.wp-block-heading,
.obsiria-hero h1,
.obsiria-hero h2 {
  text-wrap: balance;
  -webkit-hyphens: none;
  hyphens: none;
}

/* Body paragraphs — pretty wrap avoids widows/orphans on the last line */
p,
.wp-block-paragraph,
.ob-supl-carousel .ob-supl-tag,
.obsiria-faq-item p,
.single-product .summary p {
  text-wrap: pretty;
  /* Don't break mid-word — keeps text whole */
  word-break: normal;
  overflow-wrap: normal;
  -webkit-hyphens: none;
  hyphens: none;
}

/* Mobile-specific tightening — undo the hyphens:auto + word-break:break-word from earlier mobile passes */
@media (max-width: 768px) {
  h1, h2, h3, h4,
  .obsiria-hero h1,
  .wp-block-cover h1,
  h1.wp-block-heading {
    word-break: normal !important;
    overflow-wrap: normal !important;
    -webkit-hyphens: none !important;
    hyphens: none !important;
    text-wrap: balance !important;
  }
  p, .wp-block-paragraph {
    text-wrap: pretty !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    -webkit-hyphens: none !important;
    hyphens: none !important;
  }
  /* Eyebrow / micro labels — never break ('— SUPLEMENTOS', '5 PRODUCTOS · ...') */
  .obsiria-eyebrow-light,
  .obsiria-eyebrow-dark,
  .ob-supl-carousel .ob-supl-tag,
  [class*=eyebrow] {
    white-space: nowrap !important;
    overflow: visible !important;
  }
  /* Allow only the LONG eyebrows to wrap if they truly don't fit */
  .obsiria-eyebrow-light.is-long,
  .ob-supl-carousel .ob-supl-tag.is-long {
    white-space: normal !important;
  }
}

/* Specific known-orphan elements — force their last words together with non-breaking space via CSS,
 * by setting white-space: pre-line breaks where we want them. text-wrap: pretty handles most. */

/* ====== AS · Blocks Checkout polish (brand fix) ====== */

:root{
  --obs-charcoal:#0F0D0A;
  --obs-ivory:#EDE8D9;
  --obs-ivory-lite:#F5F2E8;
  --obs-cream:#FAF6EC;
  --obs-forest:#115440;
  --obs-forest-lite:#1A6C52;
  --obs-gold:#C4841A;
  --obs-rule:#E6E0CF;
}

/* --- País/Región + Estado label position fix --- */
.wc-blocks-components-select{
  position: relative;
}
.wc-blocks-components-select__label{
  position: absolute;
  top: 6px;
  left: 14px;
  background: #fff;
  padding: 0 6px;
  font-size: 11px;
  font-weight: 500;
  color: var(--obs-charcoal);
  line-height: 1;
  margin: 0;
  z-index: 2;
  pointer-events: none;
  letter-spacing: 0.01em;
}
.wc-blocks-components-select__select{
  padding-top: 22px !important;
  padding-bottom: 10px !important;
  padding-left: 14px !important;
  border-radius: 6px !important;
  border-color: var(--obs-rule) !important;
}
.wc-blocks-components-select__select:focus{
  border-color: var(--obs-forest) !important;
  box-shadow: 0 0 0 2px rgba(17,84,64,.12) !important;
  outline: none;
}

/* --- Page H1 ("Finaliza tu compra") --- */
body.woocommerce-checkout .entry-title{
  font-weight: 600;
  letter-spacing: -.01em;
  color: var(--obs-charcoal);
}

/* --- Primary CTA: Place Order / Realizar pedido --- */
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-checkout-actions-block .wc-block-components-checkout-place-order-button,
button.wc-block-components-button.wc-block-cart__submit-button,
.wc-block-cart__submit-container a{
  background-color: var(--obs-charcoal) !important;
  color: var(--obs-ivory) !important;
  border: 0 !important;
  border-radius: 6px !important;
  font-weight: 600;
  letter-spacing: .01em;
  transition: background-color .15s ease;
  padding: 12px 24px !important;
}
.wc-block-components-checkout-place-order-button:hover,
button.wc-block-components-button.wc-block-cart__submit-button:hover,
.wc-block-cart__submit-container a:hover{
  background-color: var(--obs-forest) !important;
}

/* --- Secondary: Return to Cart link --- */
.wc-block-components-checkout-return-to-cart-button{
  color: var(--obs-forest) !important;
  font-weight: 500;
  text-decoration: none !important;
}
.wc-block-components-checkout-return-to-cart-button:hover{
  color: var(--obs-forest-lite) !important;
  text-decoration: underline !important;
}

/* --- Coupon + panel buttons --- */
.wc-block-components-totals-coupon button.wc-block-components-totals-coupon-link,
.wc-block-components-panel button{
  color: var(--obs-forest) !important;
}

/* --- Standard text inputs --- */
.wc-block-components-text-input input,
.wc-block-components-combobox input{
  border-color: var(--obs-rule) !important;
  border-radius: 6px !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-combobox input:focus{
  border-color: var(--obs-forest) !important;
  box-shadow: 0 0 0 2px rgba(17,84,64,.12) !important;
}

/* --- Order summary card --- */
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-components-totals-wrapper,
.wp-block-woocommerce-cart-order-summary-block{
  background: var(--obs-ivory-lite) !important;
  border: 1px solid var(--obs-rule) !important;
  border-radius: 10px !important;
}

/* --- Cart item remove (trash) --- */
.wc-block-cart-item__remove-link,
button.wc-block-cart-item__remove-link{
  color: var(--obs-charcoal) !important;
  opacity: .55;
  transition: opacity .15s, color .15s;
}
.wc-block-cart-item__remove-link:hover{
  color: #A04040 !important;
  opacity: 1;
}

/* --- Trim cart line item descriptions --- */
.wc-block-components-product-details,
.wc-block-cart-item__product-metadata{
  max-height: 2.6em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

/* ====== /AS · Blocks Checkout polish ====== */

/* ====== AS · Cart UX polish (qty/trash/line) ====== */

/* Qty input — ensure it renders as a visible number cell with the brand framing */
.ob-qty-wrap{
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--obs-rule, #E6E0CF);
  border-radius: 6px;
  background: #fff;
  overflow: hidden;
}
.ob-qty-wrap .ob-qty-btn{
  width: 36px;
  height: 38px;
  background: transparent;
  border: 0;
  color: var(--obs-charcoal, #0F0D0A);
  font-size: 18px;
  font-weight: 500;
  cursor: pointer;
  user-select: none;
  transition: background-color .12s ease;
}
.ob-qty-wrap .ob-qty-btn:hover{ background: var(--obs-cream, #FAF6EC); }
.ob-qty-wrap .ob-qty-btn:active{ background: var(--obs-ivory, #EDE8D9); }

.ob-qty-wrap .ob-qty-value,
.ob-qty-wrap input.qty{
  width: 42px !important;
  height: 38px !important;
  border: 0 !important;
  border-left: 1px solid var(--obs-rule, #E6E0CF) !important;
  border-right: 1px solid var(--obs-rule, #E6E0CF) !important;
  border-radius: 0 !important;
  text-align: center;
  font-weight: 600;
  font-size: 14px;
  color: var(--obs-charcoal, #0F0D0A);
  background: #fff;
  font-variant-numeric: tabular-nums;
  transition: background-color .15s ease, transform .15s ease;
}
.ob-qty-wrap .ob-qty-value::-webkit-inner-spin-button,
.ob-qty-wrap .ob-qty-value::-webkit-outer-spin-button{
  -webkit-appearance: none;
  margin: 0;
}
/* Tiny "pulse" on value change to draw the eye */
.ob-qty-wrap .ob-qty-value.ob-qty-pulse{
  background: var(--obs-cream, #FAF6EC);
  transform: scale(1.06);
}

/* If WooCommerce renders the qty input as hidden (sold_individually=yes),
   keep it hidden and skip the wrap. Otherwise force visible. */
.ob-qty-wrap input.qty[type="hidden"]{
  display: none;
}
.ob-qty-wrap input.qty[type="number"],
.ob-qty-wrap input.qty[type="text"]{
  display: inline-block !important;
}

/* Add-to-cart button alignment alongside qty */
.woocommerce-product-details__short-description + form.cart,
.product .single_add_to_cart_button,
form.cart .single_add_to_cart_button{
  vertical-align: top;
  border-radius: 6px !important;
}

/* ---------- Cart page line items ---------- */

/* Cleaner short-name link with brand color on hover */
.ob-cart-line-name{
  color: var(--obs-charcoal, #0F0D0A);
  font-weight: 600;
  text-decoration: none;
}
.ob-cart-line-name:hover{
  color: var(--obs-forest, #115440);
}

/* Trash SVG icon — replace the default WC "×" with a clean branded icon */
.ob-trash-link{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 36px !important;
  height: 36px !important;
  background: transparent !important;
  border: 1px solid var(--obs-rule, #E6E0CF) !important;
  border-radius: 6px !important;
  color: var(--obs-charcoal, #0F0D0A) !important;
  opacity: .55;
  transition: opacity .12s ease, color .12s ease, border-color .12s ease, background-color .12s ease;
  text-decoration: none !important;
  margin: 0;
}
.ob-trash-link:hover{
  opacity: 1;
  color: #8B3A2C !important;
  border-color: #8B3A2C !important;
  background: #FCEFE9 !important;
}
.ob-trash-icon{
  display: block;
}

/* Suppress legacy cart's stock-tag + extra description blob */
table.cart .product-name p,
.wc-block-cart-item__product-metadata{
  display: none;
}

/* Cart table line padding — give the trash icon room to breathe */
table.shop_table.cart td.product-remove,
table.shop_table.cart td{
  vertical-align: middle;
}

/* ====== /AS · Cart UX polish ====== */

/* ====== AS · Blocks Cart fix-up ====== */

/* Hide the long product description metadata block in cart line items
   — keep only the product title + price + qty controls visible */
.wc-block-cart-item__row .wc-block-components-product-metadata,
.wc-block-cart-item__row .wc-block-components-product-metadata__description{
  display: none !important;
}

/* Cart line product name — branded link styling */
.wc-block-cart-item__row .wc-block-components-product-name{
  color: var(--obs-charcoal, #0F0D0A);
  font-weight: 600;
  text-decoration: none;
  font-size: 15px;
}
.wc-block-cart-item__row .wc-block-components-product-name:hover{
  color: var(--obs-forest, #115440);
}

/* Trash / remove-link — replace tiny × with a clean trash SVG via CSS mask */
.wc-block-cart-item__remove-link{
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 32px !important;
  height: 32px !important;
  background: transparent !important;
  border: 1px solid var(--obs-rule, #E6E0CF) !important;
  border-radius: 6px !important;
  color: var(--obs-charcoal, #0F0D0A) !important;
  font-size: 0 !important; /* hide the × glyph */
  line-height: 1 !important;
  opacity: .6;
  transition: opacity .12s ease, color .12s ease, border-color .12s ease, background-color .12s ease;
  text-decoration: none !important;
  cursor: pointer;
}
.wc-block-cart-item__remove-link::before{
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6h18'/><path d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/><path d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/><line x1='10' y1='11' x2='10' y2='17'/><line x1='14' y1='11' x2='14' y2='17'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6h18'/><path d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/><path d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/><line x1='10' y1='11' x2='10' y2='17'/><line x1='14' y1='11' x2='14' y2='17'/></svg>") center/contain no-repeat;
}
.wc-block-cart-item__remove-link:hover{
  opacity: 1;
  color: #8B3A2C !important;
  border-color: #8B3A2C !important;
  background: #FCEFE9 !important;
}

/* Make sure the qty controls inside Blocks Cart look brand-aligned too */
.wc-block-components-quantity-selector{
  border: 1px solid var(--obs-rule, #E6E0CF) !important;
  border-radius: 6px !important;
  background: #fff !important;
}
.wc-block-components-quantity-selector__button{
  color: var(--obs-charcoal, #0F0D0A) !important;
  font-weight: 500;
  width: 32px;
  height: 32px;
}
.wc-block-components-quantity-selector__button:hover{
  background: var(--obs-cream, #FAF6EC) !important;
}
.wc-block-components-quantity-selector__input{
  font-weight: 600 !important;
  color: var(--obs-charcoal, #0F0D0A) !important;
  font-variant-numeric: tabular-nums;
}

/* Acknowledgment field (Additional Checkout Fields API) styling */
.wc-block-components-checkbox.obsiria-research-ack-field,
.wp-block-woocommerce-checkout #obsiria-research_acknowledgment-field-wrapper{
  margin: 18px 0 8px;
  padding: 14px 16px;
  background: var(--obs-cream, #FAF6EC) !important;
  border: 1px solid var(--obs-rule, #E6E0CF) !important;
  border-left: 3px solid var(--obs-forest, #115440) !important;
  border-radius: 6px;
}
.wc-block-components-checkbox.obsiria-research-ack-field label,
#obsiria-research_acknowledgment-field-wrapper label{
  font-size: 13px;
  line-height: 1.5;
  color: var(--obs-charcoal, #0F0D0A);
}

/* ====== /AS · Blocks Cart fix-up ====== */

/* ====== AS · Button coherence pass ====== */

:root{
  --obs-jade:       #115440;    /* primary brand jade (button bg) */
  --obs-jade-hover: #1A6C52;    /* hover */
  --obs-jade-dark:  #0B3D2E;    /* active */
  --obs-cream-warm: #FBF8F0;    /* button text */
  --obs-btn-radius: 4px;
}

/* === Primary CTAs across cart + checkout — JADE === */
body .wc-block-components-checkout-place-order-button,
body .wp-block-woocommerce-checkout-actions-block .wc-block-components-checkout-place-order-button,
body button.wc-block-components-button.wc-block-cart__submit-button,
body .wc-block-cart__submit-container a,
body .wc-block-cart__submit-container button,
body button.wc-block-components-totals-coupon__button{
  background-color: var(--obs-jade) !important;
  color: var(--obs-cream-warm) !important;
  border: 1px solid var(--obs-jade) !important;
  border-radius: var(--obs-btn-radius) !important;
  padding: 14px 28px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: .01em !important;
  line-height: 1 !important;
  transition: background-color .15s ease, border-color .15s ease !important;
}
body .wc-block-components-checkout-place-order-button:hover,
body button.wc-block-components-button.wc-block-cart__submit-button:hover,
body .wc-block-cart__submit-container a:hover,
body button.wc-block-components-totals-coupon__button:hover{
  background-color: var(--obs-jade-hover) !important;
  border-color: var(--obs-jade-hover) !important;
}

/* === Secondary link "Volver al carrito" === */
body .wc-block-components-checkout-return-to-cart-button{
  color: var(--obs-jade) !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  text-decoration: none !important;
  padding: 14px 0 !important;
}
body .wc-block-components-checkout-return-to-cart-button:hover{
  text-decoration: underline !important;
}

/* === Qty selector — JADE === */
.ob-qty-wrap{
  display: inline-flex !important;
  align-items: stretch;
  border-radius: var(--obs-btn-radius) !important;
  overflow: hidden;
  height: 40px;
  border: 0 !important;
}
.ob-qty-wrap .ob-qty-btn{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 40px !important;
  height: 40px !important;
  background-color: var(--obs-jade) !important;
  color: var(--obs-cream-warm) !important;
  border: 0 !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  cursor: pointer;
  transition: background-color .12s ease;
  border-radius: 0 !important;
}
.ob-qty-wrap .ob-qty-btn:hover{ background-color: var(--obs-jade-hover) !important; }
.ob-qty-wrap .ob-qty-btn:active{ background-color: var(--obs-jade-dark) !important; }

.ob-qty-wrap .ob-qty-value,
.ob-qty-wrap input.qty{
  width: 44px !important;
  height: 40px !important;
  background: #fff !important;
  color: var(--obs-jade) !important;
  border: 0 !important;
  border-radius: 0 !important;
  text-align: center;
  font-weight: 700 !important;
  font-size: 14px !important;
  font-variant-numeric: tabular-nums;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

/* Add-to-cart button (PDP) — same jade family */
form.cart .single_add_to_cart_button,
.single_add_to_cart_button.button.alt{
  background-color: var(--obs-jade) !important;
  color: var(--obs-cream-warm) !important;
  border: 1px solid var(--obs-jade) !important;
  border-radius: var(--obs-btn-radius) !important;
  padding: 0 28px !important;
  height: 40px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  transition: background-color .15s ease, border-color .15s ease !important;
}
form.cart .single_add_to_cart_button:hover{
  background-color: var(--obs-jade-hover) !important;
  border-color: var(--obs-jade-hover) !important;
}

/* Align qty + add-to-cart with a flex gap */
form.cart{
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap;
}
form.cart .quantity,
form.cart .quantity .ob-qty-wrap{
  margin: 0 !important;
}

/* === Trash icon (Blocks Cart) — background SVG, jade hover === */
body .wc-block-cart-item__remove-link{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231A1612' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6h18'/><path d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/><path d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/><line x1='10' y1='11' x2='10' y2='17'/><line x1='14' y1='11' x2='14' y2='17'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  border: 1px solid #E6E0CF !important;
  border-radius: var(--obs-btn-radius) !important;
  font-size: 0 !important;
  color: transparent !important;
  opacity: .65;
  transition: opacity .12s ease, border-color .12s ease, background-color .12s ease;
  text-decoration: none !important;
  cursor: pointer;
}
body .wc-block-cart-item__remove-link::before,
body .wc-block-cart-item__remove-link::after{ content: none !important; }
body .wc-block-cart-item__remove-link:hover{
  opacity: 1;
  border-color: #8B3A2C !important;
  background-color: #FCEFE9 !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238B3A2C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6h18'/><path d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/><path d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/><line x1='10' y1='11' x2='10' y2='17'/><line x1='14' y1='11' x2='14' y2='17'/></svg>") !important;
}

/* === Hide cart line product description blob (HIGH specificity) === */
html body .wp-block-woocommerce-cart .wc-block-components-product-metadata,
html body .wp-block-woocommerce-cart .wc-block-components-product-metadata__description,
html body .wc-block-cart-item__wrap .wc-block-components-product-metadata,
html body .wc-block-cart-items .wc-block-components-product-metadata{
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  visibility: hidden !important;
}

/* === Cart row alignment — vertical center, breathing room === */
body .wc-block-cart-item__row{ align-items: center !important; }
body .wc-block-cart-item__wrap{ gap: 6px !important; }
body .wc-block-cart-item__quantity{
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

/* === Cart sidebar / "Tu pedido" card — more padding, less cramped === */
body .wp-block-woocommerce-cart-order-summary-block,
body .wp-block-woocommerce-checkout-order-summary-block{
  padding: 22px 22px !important;
  border-radius: var(--obs-btn-radius) !important;
}
body .wp-block-woocommerce-cart-order-summary-block > *,
body .wp-block-woocommerce-checkout-order-summary-block > *{
  margin-top: 14px !important;
  margin-bottom: 14px !important;
}
body .wc-block-components-totals-coupon,
body .wp-block-woocommerce-cart-order-summary-coupon-form-block{
  padding: 14px 0 !important;
}

/* === Coupon form internal styling === */
body .wc-block-components-totals-coupon__content{
  display: flex !important;
  gap: 8px !important;
  margin-top: 10px;
}
body .wc-block-components-totals-coupon input{
  flex: 1 !important;
  border-radius: var(--obs-btn-radius) !important;
  border-color: #E6E0CF !important;
  padding: 10px 12px !important;
}
body .wc-block-components-totals-coupon__button{
  padding: 10px 18px !important;
  font-size: 13px !important;
}

/* === Acknowledgment field — cream box, jade left rule === */
body #obsiria-research_acknowledgment-field-wrapper,
body [id*="obsiria"][id*="research"]{
  margin: 18px 0 8px;
  padding: 14px 16px;
  background: var(--obs-cream-warm) !important;
  border: 1px solid #E6E0CF !important;
  border-left: 3px solid var(--obs-jade) !important;
  border-radius: var(--obs-btn-radius) !important;
}

/* === Form input radius unification === */
body .wc-block-components-text-input input,
body .wc-block-components-combobox input,
body .wc-blocks-components-select__select{
  border-radius: var(--obs-btn-radius) !important;
}
body .wc-block-components-text-input input:focus,
body .wc-block-components-combobox input:focus,
body .wc-blocks-components-select__select:focus{
  border-color: var(--obs-jade) !important;
  box-shadow: 0 0 0 2px rgba(17,84,64,.15) !important;
}

/* ====== /AS · Button coherence pass ====== */

/* ====== AS · Final polish round ====== */

/* === Hide description blurb in BOTH cart and checkout sidebar (high specificity) === */
html body .wp-block-woocommerce-checkout .wc-block-components-product-metadata,
html body .wp-block-woocommerce-checkout .wc-block-components-product-metadata__description,
html body .wp-block-woocommerce-cart .wc-block-components-product-metadata,
html body .wp-block-woocommerce-cart .wc-block-components-product-metadata__description,
html body .wc-block-components-order-summary .wc-block-components-product-metadata,
html body .wc-block-components-order-summary .wc-block-components-product-metadata__description{
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  visibility: hidden !important;
}

/* === "Resumen del pedido" → "Tu pedido" via pseudo-element text swap === */
.wc-block-components-checkout-order-summary__title-text,
.wc-block-cart-order-summary__title-text,
.wp-block-woocommerce-cart-order-summary-heading-block .wc-block-components-text{
  font-size: 0 !important;
  color: transparent !important;
  position: relative;
}
.wc-block-components-checkout-order-summary__title-text::after,
.wc-block-cart-order-summary__title-text::after,
.wp-block-woocommerce-cart-order-summary-heading-block .wc-block-components-text::after{
  content: "Tu pedido";
  font-size: 18px;
  color: #0F0D0A;
  font-weight: 600;
  letter-spacing: -.005em;
}

/* === Select dropdown labels — OUTSIDE the field box (no cutoff) === */
.wc-blocks-components-select{ position: static; }
.wc-blocks-components-select__label{
  position: static !important;
  display: block !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 0 6px 0 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #3A3530 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  pointer-events: auto !important;
}
.wc-blocks-components-select__select{
  padding: 12px 14px !important;
  height: 44px !important;
  font-size: 14px !important;
  color: #0F0D0A !important;
  background-color: #fff !important;
  border-color: #E6E0CF !important;
  border-radius: 4px !important;
}
.wc-blocks-components-select__select:focus{
  border-color: #115440 !important;
  box-shadow: 0 0 0 2px rgba(17,84,64,.12) !important;
}

/* === Trash icon → minimal red × at the end of the cart line === */
body .wc-block-cart-item__remove-link{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 24px !important;
  height: 24px !important;
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #C44A37 !important;
  font-size: 0 !important;
  opacity: .75;
  transition: opacity .12s ease, transform .12s ease;
  text-decoration: none !important;
  padding: 0 !important;
  margin: 0 0 0 8px !important;
  cursor: pointer;
}
body .wc-block-cart-item__remove-link::before,
body .wc-block-cart-item__remove-link::after{ content: none !important; background: transparent !important; }
body .wc-block-cart-item__remove-link::before{
  content: "×" !important;
  font-size: 22px !important;
  line-height: 1 !important;
  color: #C44A37 !important;
  font-weight: 400 !important;
  background: transparent !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
}
body .wc-block-cart-item__remove-link:hover{
  opacity: 1;
  transform: scale(1.1);
  color: #8B3A2C !important;
}
body .wc-block-cart-item__remove-link:hover::before{ color: #8B3A2C !important; }

/* === "Volver al carrito" → arrow-only === */
body .wc-block-components-checkout-return-to-cart-button{
  font-size: 0 !important;
  color: transparent !important;
  width: 36px;
  height: 36px;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  text-decoration: none !important;
}
body .wc-block-components-checkout-return-to-cart-button::before{
  content: "←" !important;
  font-size: 22px !important;
  color: #115440 !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  transition: transform .12s ease, color .12s ease;
}
body .wc-block-components-checkout-return-to-cart-button:hover::before{
  transform: translateX(-3px);
  color: #1A6C52 !important;
}
body .wc-block-components-checkout-return-to-cart-button svg{ display: none !important; }

/* === Acknowledgment checkbox — clean custom-styled checkbox === */
body .wc-block-components-checkbox input[type="checkbox"]{
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  background: #fff !important;
  border: 1.5px solid #B8B0A0 !important;
  border-radius: 3px !important;
  cursor: pointer !important;
  transition: border-color .12s, background-color .12s !important;
  position: relative !important;
  flex-shrink: 0 !important;
  margin: 2px 10px 0 0 !important;
}
body .wc-block-components-checkbox input[type="checkbox"]:hover{
  border-color: #115440 !important;
}
body .wc-block-components-checkbox input[type="checkbox"]:checked{
  background-color: #115440 !important;
  border-color: #115440 !important;
}
body .wc-block-components-checkbox input[type="checkbox"]:checked::after{
  content: "" !important;
  position: absolute !important;
  left: 5px !important;
  top: 1px !important;
  width: 5px !important;
  height: 10px !important;
  border: solid #fff !important;
  border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important;
}
body .wc-block-components-checkbox input[type="checkbox"]:focus-visible{
  outline: 2px solid rgba(17,84,64,.35) !important;
  outline-offset: 2px !important;
}
/* Hide any default svg checkmark from the Blocks library */
body .wc-block-components-checkbox__mark,
body .wc-block-components-checkbox svg{
  display: none !important;
}
/* Align label vertically */
body .wc-block-components-checkbox{
  display: flex !important;
  align-items: flex-start !important;
  gap: 0 !important;
}
body .wc-block-components-checkbox label{
  flex: 1 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: #2A2520 !important;
  cursor: pointer !important;
}

/* === Add-to-cart button on cart-line "view product" / suggested items → jade === */
body .wc-block-cart-items__row .wp-block-button__link,
body .wc-block-grid__product-add-to-cart .wp-block-button__link,
body .wc-block-product-add-to-cart-button{
  background-color: #115440 !important;
  color: #FBF8F0 !important;
  border: 1px solid #115440 !important;
  border-radius: 4px !important;
}
body .wc-block-cart-items__row .wp-block-button__link:hover,
body .wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
body .wc-block-product-add-to-cart-button:hover{
  background-color: #1A6C52 !important;
  border-color: #1A6C52 !important;
}

/* === Mini-cart "Ver carrito" + checkout button === */
body .wc-block-mini-cart__button,
body .wc-block-mini-cart-footer__view-cart,
body .wc-block-mini-cart__footer-actions a{
  background-color: #115440 !important;
  color: #FBF8F0 !important;
  border: 1px solid #115440 !important;
  border-radius: 4px !important;
  padding: 12px 20px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: background-color .15s ease !important;
}
body .wc-block-mini-cart__button:hover,
body .wc-block-mini-cart-footer__view-cart:hover{
  background-color: #1A6C52 !important;
  border-color: #1A6C52 !important;
}

/* ====== /AS · Final polish round ====== */

/* ====== AS · Jade override + trash svg hide ====== */

/* Force Blocks Cart qty buttons to jade (override earlier charcoal rule) */
html body .wc-block-components-quantity-selector__button,
html body button.wc-block-components-quantity-selector__button--minus,
html body button.wc-block-components-quantity-selector__button--plus{
  background-color: #115440 !important;
  color: #FBF8F0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  width: 36px !important;
  height: 36px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background-color .12s ease !important;
}
html body .wc-block-components-quantity-selector__button:hover{
  background-color: #1A6C52 !important;
}
html body .wc-block-components-quantity-selector__button:disabled{
  background-color: #7A6F58 !important;
  cursor: not-allowed !important;
  opacity: .55;
}
html body .wc-block-components-quantity-selector{
  border-radius: 4px !important;
  overflow: hidden !important;
  border: 1px solid #E6E0CF !important;
  background: #fff !important;
  height: 36px !important;
  width: auto !important;
  display: inline-flex !important;
}
html body .wc-block-components-quantity-selector__input,
html body input.wc-block-components-quantity-selector__input{
  background: #fff !important;
  color: #115440 !important;
  font-weight: 700 !important;
  border: 0 !important;
  text-align: center !important;
  font-variant-numeric: tabular-nums !important;
  width: 36px !important;
  height: 36px !important;
  padding: 0 !important;
}

/* Trash: hide inner SVG/text icon, keep only the red × pseudo-element */
html body .wc-block-cart-item__remove-link svg,
html body .wc-block-cart-item__remove-link img,
html body .wc-block-cart-item__remove-link span,
html body .wc-block-cart-item__remove-link::after{
  display: none !important;
}
html body .wc-block-cart-item__remove-link{
  position: relative !important;
}
html body .wc-block-cart-item__remove-link::before{
  content: "×" !important;
  display: block !important;
  font-size: 24px !important;
  line-height: 1 !important;
  color: #C44A37 !important;
  font-weight: 300 !important;
  background: transparent !important;
  width: auto !important;
  height: auto !important;
}

/* ====== /AS · Jade override + trash svg hide ====== */

/* ====== AS · Round 4 polish ====== */

/* === Trash × — nuclear: hide ALL children, show only the red × pseudo === */
html body button.wc-block-cart-item__remove-link,
html body a.wc-block-cart-item__remove-link{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 0 0 10px !important;
  font-size: 0 !important;
  color: transparent !important;
  cursor: pointer;
  opacity: .8;
  transition: opacity .12s ease, transform .12s ease;
}
html body button.wc-block-cart-item__remove-link > *,
html body a.wc-block-cart-item__remove-link > *,
html body .wc-block-cart-item__remove-link svg,
html body .wc-block-cart-item__remove-link img,
html body .wc-block-cart-item__remove-link span{
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}
html body .wc-block-cart-item__remove-link::before{
  content: "×" !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  font-size: 24px !important;
  line-height: 1 !important;
  color: #C44A37 !important;
  font-weight: 300 !important;
  background: transparent !important;
  width: auto !important;
  height: auto !important;
}
html body .wc-block-cart-item__remove-link::after{ content: none !important; display: none !important; }
html body .wc-block-cart-item__remove-link:hover{
  opacity: 1;
  transform: scale(1.15);
}
html body .wc-block-cart-item__remove-link:hover::before{
  color: #8B3A2C !important;
}

/* === Text input labels — move OUTSIDE the field box (no overlap) === */
html body .wc-block-components-text-input,
html body .wc-block-components-combobox-control{
  position: static !important;
}
html body .wc-block-components-text-input > label,
html body .wc-block-components-combobox-control > label,
html body .wc-block-components-text-input label.wc-block-components-text-input-label,
html body .wc-block-components-validation-error + .wc-block-components-text-input label{
  position: static !important;
  display: block !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 0 6px 0 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #3A3530 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  transform: none !important;
  pointer-events: auto !important;
}
html body .wc-block-components-text-input input{
  padding: 12px 14px !important;
  height: 44px !important;
  font-size: 14px !important;
  background: #fff !important;
  color: #0F0D0A !important;
  border: 1px solid #E6E0CF !important;
  border-radius: 4px !important;
}
html body .wc-block-components-text-input input:focus{
  border-color: #115440 !important;
  box-shadow: 0 0 0 2px rgba(17,84,64,.12) !important;
}

/* === Unify ALL field backgrounds to white === */
html body .wc-block-components-text-input input,
html body .wc-block-components-combobox input,
html body .wc-blocks-components-select__select,
html body .wc-block-components-textarea{
  background-color: #fff !important;
}

/* === Email field at top — explicit label outside === */
html body input[type="email"]{
  background-color: #fff !important;
}

/* === Order summary right column — breathing room === */
html body .wp-block-woocommerce-checkout-order-summary-block,
html body .wp-block-woocommerce-cart-order-summary-block{
  padding: 24px !important;
  border-radius: 6px !important;
  background: #F5F2E8 !important;
  border: 1px solid #E6E0CF !important;
}
html body .wp-block-woocommerce-checkout-order-summary-block > *,
html body .wp-block-woocommerce-cart-order-summary-block > *{
  margin-top: 16px !important;
  margin-bottom: 16px !important;
}
html body .wp-block-woocommerce-checkout-order-summary-block > *:first-child,
html body .wp-block-woocommerce-cart-order-summary-block > *:first-child{
  margin-top: 0 !important;
}
html body .wp-block-woocommerce-checkout-order-summary-block > *:last-child,
html body .wp-block-woocommerce-cart-order-summary-block > *:last-child{
  margin-bottom: 0 !important;
}
/* Cart-items inside summary — add padding too */
html body .wp-block-woocommerce-checkout-order-summary-cart-items-block,
html body .wc-block-components-order-summary-item{
  padding: 12px 0 !important;
  border-bottom: 1px solid #E6E0CF !important;
}
html body .wc-block-components-order-summary-item:last-child{
  border-bottom: 0 !important;
}

/* === Checkbox — bigger square, centered check === */
html body .wc-block-components-checkbox input[type="checkbox"]{
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  background: #fff !important;
  border: 1.5px solid #B8B0A0 !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  transition: border-color .12s, background-color .12s !important;
  position: relative !important;
  flex-shrink: 0 !important;
  margin: 0 12px 0 0 !important;
  display: inline-block !important;
}
html body .wc-block-components-checkbox input[type="checkbox"]:hover{
  border-color: #115440 !important;
}
html body .wc-block-components-checkbox input[type="checkbox"]:checked{
  background-color: #115440 !important;
  border-color: #115440 !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FBF8F0' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") !important;
  background-size: 14px 14px !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}
html body .wc-block-components-checkbox input[type="checkbox"]:checked::before,
html body .wc-block-components-checkbox input[type="checkbox"]:checked::after{
  content: none !important;
}
html body .wc-block-components-checkbox input[type="checkbox"]:focus-visible{
  outline: 2px solid rgba(17,84,64,.35) !important;
  outline-offset: 2px !important;
}
html body .wc-block-components-checkbox__mark,
html body .wc-block-components-checkbox svg{ display: none !important; }
html body .wc-block-components-checkbox{
  display: flex !important;
  align-items: flex-start !important;
  gap: 0 !important;
  padding: 6px 0 !important;
}
html body .wc-block-components-checkbox label{
  flex: 1 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: #2A2520 !important;
  cursor: pointer !important;
  padding-top: 3px !important;
}

/* === Acknowledgment field — sits at bottom near place-order, soft styling === */
html body #obsiria-research_acknowledgment-field-wrapper,
html body [id*="obsiria"][id*="research_acknowledgment"]{
  margin: 8px 0 16px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-left: 0 !important;
}

/* ====== /AS · Round 4 polish ====== */

/* ====== AS · Label-order fix ====== */

/* DOM has <input> before <label>. Use flex column-reverse so label sits visually ABOVE. */
html body .wc-block-components-text-input{
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
}
html body .wc-block-components-text-input > label,
html body .wc-block-components-text-input label.wc-block-components-text-input-label{
  position: static !important;
  display: block !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 0 6px 0 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #3A3530 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  transform: none !important;
  pointer-events: auto !important;
  order: -1 !important;
}
html body .wc-block-components-text-input input{
  order: 0 !important;
}

/* Combobox (autocomplete) — same treatment */
html body .wc-block-components-combobox{
  display: flex !important;
  flex-direction: column !important;
}
html body .wc-block-components-combobox > label,
html body .wc-block-components-combobox-control > label{
  order: -1 !important;
  position: static !important;
  margin: 0 0 6px 0 !important;
  display: block !important;
  background: transparent !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #3A3530 !important;
}

/* ====== /AS · Label-order fix ====== */

/* ====== AS · Round 5 polish ====== */

/* === Trash × as inline SVG (reliable, no font rendering issues) === */
html body button.wc-block-cart-item__remove-link,
html body a.wc-block-cart-item__remove-link{
  width: 32px !important;
  height: 32px !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%23C44A37' stroke-width='1.6' stroke-linecap='round'><line x1='3' y1='3' x2='11' y2='11'/><line x1='11' y1='3' x2='3' y2='11'/></svg>") !important;
  background-size: 14px 14px !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 0 0 10px !important;
  font-size: 0 !important;
  color: transparent !important;
  opacity: .75;
  cursor: pointer;
  transition: opacity .12s ease, transform .12s ease;
}
html body .wc-block-cart-item__remove-link::before,
html body .wc-block-cart-item__remove-link::after{
  content: none !important;
  display: none !important;
}
html body .wc-block-cart-item__remove-link > *,
html body .wc-block-cart-item__remove-link svg,
html body .wc-block-cart-item__remove-link img,
html body .wc-block-cart-item__remove-link span{
  display: none !important;
}
html body .wc-block-cart-item__remove-link:hover{
  opacity: 1;
  transform: scale(1.15);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%238B3A2C' stroke-width='1.8' stroke-linecap='round'><line x1='3' y1='3' x2='11' y2='11'/><line x1='11' y1='3' x2='3' y2='11'/></svg>") !important;
}

/* === País/Región — separate from field above with more top margin === */
html body .wp-block-woocommerce-checkout-billing-address-block > div:has(> .wc-block-components-country-input),
html body .wc-block-components-country-input,
html body .wc-block-components-combobox{
  margin-top: 12px !important;
}

/* Generic top-margin between adjacent form rows */
html body .wp-block-woocommerce-checkout-billing-address-block > * + *,
html body .wp-block-woocommerce-checkout-shipping-address-block > * + *{
  margin-top: 14px !important;
}

/* === "Tu pedido" sidebar — generous padding + gaps === */
html body .wp-block-woocommerce-checkout-order-summary-block{
  padding: 28px 24px !important;
  border-radius: 8px !important;
  background: #F5F2E8 !important;
  border: 1px solid #E6E0CF !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
}
html body .wp-block-woocommerce-checkout-order-summary-block > *{
  margin: 0 !important;
}
/* Heading inside sidebar */
html body .wc-block-components-checkout-order-summary__title-text::after{
  font-size: 20px !important;
  font-weight: 600 !important;
  letter-spacing: -.01em !important;
  color: #0F0D0A !important;
}
/* Each line item card */
html body .wc-block-components-order-summary-item{
  padding: 14px 0 !important;
  border-bottom: 1px solid #E6E0CF !important;
  display: flex !important;
  gap: 12px !important;
  align-items: flex-start !important;
}
html body .wc-block-components-order-summary-item:last-of-type{
  border-bottom: 0 !important;
}

/* === Font consistency across cart + checkout === */
html body .wp-block-woocommerce-cart *,
html body .wp-block-woocommerce-checkout *{
  font-family: inherit !important;
}
html body .wp-block-woocommerce-cart input,
html body .wp-block-woocommerce-cart select,
html body .wp-block-woocommerce-cart textarea,
html body .wp-block-woocommerce-checkout input,
html body .wp-block-woocommerce-checkout select,
html body .wp-block-woocommerce-checkout textarea{
  font-family: inherit !important;
  font-size: 14px !important;
}
/* Form labels — same size everywhere */
html body .wp-block-woocommerce-checkout label,
html body .wp-block-woocommerce-cart label{
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #3A3530 !important;
  letter-spacing: 0 !important;
}
/* Section headings — same H size */
html body .wp-block-woocommerce-checkout h2,
html body .wp-block-woocommerce-cart h2,
html body .wp-block-woocommerce-checkout-fields-block h2,
html body .wc-block-components-title{
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: -.01em !important;
  color: #0F0D0A !important;
  margin: 0 0 12px 0 !important;
}

/* ====== /AS · Round 5 polish ====== */

/* ====== AS · Round 6 trash + wrap ====== */

/* Reset Round 5 trash background-image entirely */
html body button.wc-block-cart-item__remove-link,
html body a.wc-block-cart-item__remove-link{
  background-image: none !important;
  background-color: transparent !important;
  width: 32px !important;
  height: 32px !important;
  border: 0 !important;
  border-radius: 4px !important;
  padding: 0 !important;
  margin: 0 0 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0 !important;
  color: transparent !important;
  cursor: pointer;
  opacity: .75;
  transition: opacity .12s ease, transform .12s ease, background-color .12s ease;
}
html body .wc-block-cart-item__remove-link > *,
html body .wc-block-cart-item__remove-link svg,
html body .wc-block-cart-item__remove-link img,
html body .wc-block-cart-item__remove-link span{
  display: none !important;
}
html body .wc-block-cart-item__remove-link::after{ content: none !important; display: none !important; }
html body .wc-block-cart-item__remove-link::before{
  content: "✕" !important;
  display: inline-block !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 18px !important;
  line-height: 1 !important;
  font-weight: 500 !important;
  color: #C44A37 !important;
  background: transparent !important;
  width: auto !important;
  height: auto !important;
}
html body .wc-block-cart-item__remove-link:hover{
  opacity: 1;
  background-color: #FCEFE9 !important;
  transform: scale(1.08);
}
html body .wc-block-cart-item__remove-link:hover::before{
  color: #8B3A2C !important;
}

/* === Sidebar line item — prevent breaking on dashes / make column wider === */
html body .wc-block-components-order-summary-item{
  display: grid !important;
  grid-template-columns: 56px 1fr auto !important;
  gap: 12px !important;
  align-items: start !important;
}
html body .wc-block-components-order-summary-item__image{
  width: 56px !important;
  height: 56px !important;
}
html body .wc-block-components-order-summary-item__description,
html body .wc-block-components-order-summary-item__details{
  min-width: 0 !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  hyphens: none !important;
}
html body .wc-block-components-product-name{
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
}
/* Ensure the sidebar block has enough horizontal room */


/* ====== /AS · Round 6 trash + wrap ====== */

/* ====== AS · Round 7 trash X biggest === FINAL ====== */
html body button.wc-block-cart-item__remove-link,
html body a.wc-block-cart-item__remove-link{
  width: 40px !important;
  height: 40px !important;
  margin-left: 14px !important;
}
html body .wc-block-cart-item__remove-link::before{
  content: "×" !important;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: 32px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  color: #C44A37 !important;
}
html body .wc-block-cart-item__remove-link:hover::before{
  color: #8B3A2C !important;
}
/* ====== /AS · Round 7 ====== */

/* ====== AS · Round 8 layout+X final ====== */

/* === LAYOUT FIX: don't force min-width on sidebar (was causing flex-wrap) === */
html body .wc-block-components-sidebar,
html body .wp-block-woocommerce-checkout-totals-block{
  min-width: 0 !important;
  flex-basis: auto !important;
}

/* Cart sidebar — fixed 30% width to sit next to product list */
html body .wp-block-woocommerce-cart .wc-block-components-sidebar{
  width: 32% !important;
  max-width: 360px !important;
  min-width: 280px !important;
}
html body .wp-block-woocommerce-cart .wc-block-components-main{
  width: 64% !important;
  flex: 1 1 64% !important;
}

/* === Summary spacing — use margins on children, NOT flex on parent === */
html body .wc-block-components-totals-wrapper,
html body .wp-block-woocommerce-cart-order-summary-block,
html body .wp-block-woocommerce-checkout-order-summary-block{
  display: block !important;          /* NOT flex (was breaking layout) */
  padding: 24px !important;
  border-radius: 8px !important;
  background: #F5F2E8 !important;
  border: 1px solid #E6E0CF !important;
}
html body .wp-block-woocommerce-cart-order-summary-block > *,
html body .wp-block-woocommerce-checkout-order-summary-block > *,
html body .wc-block-components-totals-wrapper > *{
  margin-top: 18px !important;
  margin-bottom: 18px !important;
}
html body .wp-block-woocommerce-cart-order-summary-block > *:first-child,
html body .wp-block-woocommerce-checkout-order-summary-block > *:first-child,
html body .wc-block-components-totals-wrapper > *:first-child{
  margin-top: 0 !important;
}
html body .wp-block-woocommerce-cart-order-summary-block > *:last-child,
html body .wp-block-woocommerce-checkout-order-summary-block > *:last-child,
html body .wc-block-components-totals-wrapper > *:last-child{
  margin-bottom: 0 !important;
}

/* Line items inside summary — vertical spacing + divider */
html body .wc-block-components-order-summary-item{
  padding: 14px 0 !important;
  border-bottom: 1px solid rgba(15,13,10,0.08) !important;
}
html body .wc-block-components-order-summary-item:last-of-type{
  border-bottom: 0 !important;
}

/* === Trash X: CSS-drawn diagonal lines (bulletproof, no font/SVG) === */
html body button.wc-block-cart-item__remove-link,
html body a.wc-block-cart-item__remove-link{
  position: relative !important;
  display: inline-block !important;
  width: 28px !important;
  height: 28px !important;
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 4px !important;
  padding: 0 !important;
  margin: 0 0 0 12px !important;
  font-size: 0 !important;
  color: transparent !important;
  cursor: pointer;
  opacity: .8;
  transition: opacity .12s ease, transform .12s ease, background-color .12s ease;
  vertical-align: middle !important;
}
html body .wc-block-cart-item__remove-link > *,
html body .wc-block-cart-item__remove-link svg,
html body .wc-block-cart-item__remove-link img,
html body .wc-block-cart-item__remove-link span{
  display: none !important;
}
/* Two diagonal lines = X */
html body .wc-block-cart-item__remove-link::before,
html body .wc-block-cart-item__remove-link::after{
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 18px !important;
  height: 2px !important;
  background-color: #C44A37 !important;
  border-radius: 1px !important;
  margin-left: -9px !important;
  margin-top: -1px !important;
  display: block !important;
}
html body .wc-block-cart-item__remove-link::before{
  transform: rotate(45deg) !important;
}
html body .wc-block-cart-item__remove-link::after{
  transform: rotate(-45deg) !important;
}
html body .wc-block-cart-item__remove-link:hover{
  opacity: 1;
  background-color: #FCEFE9 !important;
  transform: scale(1.1);
}
html body .wc-block-cart-item__remove-link:hover::before,
html body .wc-block-cart-item__remove-link:hover::after{
  background-color: #8B3A2C !important;
}

/* ====== /AS · Round 8 layout+X final ====== */

/* ====== AS · Design system coherence pass ====== */
/* Canonical: jade #1A6C52 / hover #115440 / radius 6px / Inter 15px-600 */

:root{
  --obs-jade:        #1A6C52;  /* primary, matches homepage Ver Catálogo */
  --obs-jade-hover:  #115440;  /* darker forest, hover state */
  --obs-jade-dark:   #0B3D2E;  /* active state */
  --obs-cream:       #F5F2E8;  /* primary button text */
  --obs-charcoal:    #0F0D0A;
  --obs-ink:         #2A2520;
  --obs-rule:        #E6E0CF;
  --obs-radius:      6px;
}

/* === Primary CTAs — Place Order / Continuar a pagar / View Cart button === */
html body .wc-block-components-checkout-place-order-button,
html body .wp-block-woocommerce-checkout-actions-block .wc-block-components-checkout-place-order-button,
html body button.wc-block-components-button.wc-block-cart__submit-button,
html body .wc-block-cart__submit-container a,
html body .wc-block-cart__submit-container button,
html body button.wc-block-components-totals-coupon__button,
html body .wp-block-button__link,
html body .wc-block-mini-cart__button,
html body .wc-block-mini-cart-footer__view-cart{
  background-color: var(--obs-jade) !important;
  color: var(--obs-cream) !important;
  border: 1px solid var(--obs-jade) !important;
  border-radius: var(--obs-radius) !important;
  padding: 14px 28px !important;
  font-family: "Inter", system-ui, sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
  transition: background-color .15s ease, border-color .15s ease !important;
}
html body .wc-block-components-checkout-place-order-button:hover,
html body button.wc-block-components-button.wc-block-cart__submit-button:hover,
html body .wc-block-cart__submit-container a:hover,
html body button.wc-block-components-totals-coupon__button:hover,
html body .wc-block-mini-cart__button:hover,
html body .wc-block-mini-cart-footer__view-cart:hover{
  background-color: var(--obs-jade-hover) !important;
  border-color: var(--obs-jade-hover) !important;
}

/* === Qty selector — JADE (canonical bright) === */
html body .wc-block-components-quantity-selector,
.ob-qty-wrap{
  border-radius: var(--obs-radius) !important;
  overflow: hidden !important;
  border: 1px solid var(--obs-rule) !important;
}
html body .wc-block-components-quantity-selector__button,
.ob-qty-wrap .ob-qty-btn{
  background-color: var(--obs-jade) !important;
  color: var(--obs-cream) !important;
  border: 0 !important;
  border-radius: 0 !important;
  width: 38px !important;
  height: 38px !important;
  font-family: "Inter", system-ui, sans-serif !important;
  font-size: 15px !important;
  transition: background-color .12s ease !important;
}
html body .wc-block-components-quantity-selector__button:hover,
.ob-qty-wrap .ob-qty-btn:hover{ background-color: var(--obs-jade-hover) !important; }
html body .wc-block-components-quantity-selector__input,
.ob-qty-wrap .ob-qty-value{
  background: #fff !important;
  color: var(--obs-jade) !important;
  font-weight: 700 !important;
  font-family: "Inter", system-ui, sans-serif !important;
  font-size: 14px !important;
  border: 0 !important;
}

/* === Secondary link "Volver al carrito" — jade text, no bg === */
html body .wc-block-components-checkout-return-to-cart-button{
  color: var(--obs-jade) !important;
}
html body .wc-block-components-checkout-return-to-cart-button::before{
  color: var(--obs-jade) !important;
}
html body .wc-block-components-checkout-return-to-cart-button:hover::before{
  color: var(--obs-jade-hover) !important;
}

/* === Acknowledgment checkbox — jade === */
html body .wc-block-components-checkbox input[type="checkbox"]:checked{
  background-color: var(--obs-jade) !important;
  border-color: var(--obs-jade) !important;
}
html body .wc-block-components-checkbox input[type="checkbox"]:hover{
  border-color: var(--obs-jade) !important;
}

/* === Form field focus ring — jade === */
html body .wc-block-components-text-input input:focus,
html body .wc-block-components-combobox input:focus,
html body .wc-blocks-components-select__select:focus{
  border-color: var(--obs-jade) !important;
  box-shadow: 0 0 0 2px rgba(26,108,82,.18) !important;
}

/* === All form inputs — radius 6px to match buttons === */
html body .wc-block-components-text-input input,
html body .wc-block-components-combobox input,
html body .wc-blocks-components-select__select,
html body .wc-block-components-totals-coupon input{
  border-radius: var(--obs-radius) !important;
}

/* === Font family enforcement on cart + checkout === */
html body .wp-block-woocommerce-cart,
html body .wp-block-woocommerce-cart *,
html body .wp-block-woocommerce-checkout,
html body .wp-block-woocommerce-checkout *{
  font-family: "Inter", system-ui, -apple-system, sans-serif !important;
}
html body .wp-block-woocommerce-cart h1,
html body .wp-block-woocommerce-checkout h1,
html body .entry-title{
  font-family: "Space Grotesk", "Inter", sans-serif !important;
}

/* === Order summary card === */
html body .wc-block-components-totals-wrapper,
html body .wp-block-woocommerce-cart-order-summary-block,
html body .wp-block-woocommerce-checkout-order-summary-block{
  border-radius: var(--obs-radius) !important;
}

/* ====== /AS · Design system coherence pass ====== */

/* ====== AS · Final coordinated rebuild ====== */
/* Premium DTC patterns: flat single card · sentence-case · 3 type weights · 1 jade · 1 hover · radius 6 */

:root{
  --obs-jade:        #1A6C52;
  --obs-jade-hover:  #115440;
  --obs-jade-dark:   #0B3D2E;
  --obs-cream:       #F5F2E8;
  --obs-cream-soft:  #FAF7EE;
  --obs-charcoal:    #0F0D0A;
  --obs-ink:         #2A2520;
  --obs-muted:       #6F665A;
  --obs-rule:        #E6E0CF;
  --obs-radius-card: 8px;
  --obs-radius-btn:  6px;
}

/* === FLAT sidebar — no nested borders, no sub-cards === */
html body .wp-block-woocommerce-cart-totals-block,
html body .wp-block-woocommerce-cart-order-summary-block,
html body .wp-block-woocommerce-checkout-order-summary-block,
html body .wc-block-components-totals-wrapper{
  background: var(--obs-cream) !important;
  border: 1px solid var(--obs-rule) !important;
  border-radius: var(--obs-radius-card) !important;
  padding: 28px !important;
  display: block !important;
  box-shadow: none !important;
}
/* Kill ALL inner box decoration that creates nested-card look */
html body .wp-block-woocommerce-cart-totals-block > *,
html body .wp-block-woocommerce-cart-order-summary-block > *,
html body .wp-block-woocommerce-checkout-order-summary-block > *{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 16px 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}
html body .wp-block-woocommerce-cart-totals-block > *:first-child,
html body .wp-block-woocommerce-cart-order-summary-block > *:first-child,
html body .wp-block-woocommerce-checkout-order-summary-block > *:first-child{
  padding-top: 0 !important;
}
html body .wp-block-woocommerce-cart-totals-block > *:last-child,
html body .wp-block-woocommerce-cart-order-summary-block > *:last-child,
html body .wp-block-woocommerce-checkout-order-summary-block > *:last-child{
  padding-bottom: 0 !important;
}
/* Subtle divider between sections */
html body .wp-block-woocommerce-cart-totals-block > * + *,
html body .wp-block-woocommerce-cart-order-summary-block > * + *,
html body .wp-block-woocommerce-checkout-order-summary-block > * + *{
  border-top: 1px solid rgba(15,13,10,0.08) !important;
}

/* === Sidebar HEADING — sentence case, restrained === */
html body .wc-block-components-checkout-order-summary__title-text,
html body .wc-block-cart-totals-block__title,
html body .wp-block-woocommerce-cart-totals-block > h2{
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--obs-charcoal) !important;
  font-family: "Inter", system-ui, sans-serif !important;
  letter-spacing: -.01em !important;
  text-transform: none !important;
}

/* === Totals rows — flat with right-aligned value === */
html body .wc-block-components-totals-item{
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  padding: 8px 0 !important;
  font-size: 14px !important;
  border: 0 !important;
  background: transparent !important;
}
html body .wc-block-components-totals-item__label{
  color: var(--obs-ink) !important;
  font-weight: 500 !important;
}
html body .wc-block-components-totals-item__value{
  color: var(--obs-charcoal) !important;
  font-weight: 600 !important;
}
/* The Total row — biggest */
html body .wc-block-components-totals-footer-item,
html body .wp-block-woocommerce-cart-order-summary-totals-block .wc-block-components-totals-item:last-of-type{
  padding-top: 14px !important;
  margin-top: 6px !important;
  border-top: 1px solid rgba(15,13,10,0.08) !important;
  font-size: 16px !important;
}
html body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-size: 22px !important;
  font-weight: 700 !important;
}
/* "Impuestos incluidos en el total" muted line */
html body .wc-block-components-totals-footer-item__description{
  font-size: 12px !important;
  color: var(--obs-muted) !important;
  font-weight: 400 !important;
  padding-top: 4px !important;
}

/* === Cart line item — clean grid (image / text / price+qty stack) === */
html body .wc-block-cart-items__row{
  display: grid !important;
  grid-template-columns: 64px 1fr auto !important;
  gap: 16px !important;
  align-items: center !important;
  padding: 18px 0 !important;
  border-bottom: 1px solid rgba(15,13,10,0.08) !important;
}
html body .wc-block-cart-item__image{
  width: 64px !important;
  height: 64px !important;
  padding: 0 !important;
}
html body .wc-block-cart-item__image img{
  width: 64px !important;
  height: 64px !important;
  object-fit: cover !important;
  border-radius: 4px !important;
}
html body .wc-block-cart-item__product{
  padding: 0 !important;
  min-width: 0 !important;
}
html body .wc-block-components-product-name{
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--obs-charcoal) !important;
  text-decoration: none !important;
}
/* Hide ALL price/qty/total in the middle column except name */
html body .wc-block-cart-item__product .wc-block-cart-item__prices,
html body .wc-block-cart-item__product .wc-block-cart-item__quantity{
  margin-top: 8px !important;
}

/* === Trash X — JS-injected SVG, minimal styling === */
html body button.wc-block-cart-item__remove-link,
html body a.wc-block-cart-item__remove-link{
  width: 32px !important;
  height: 32px !important;
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 4px !important;
  padding: 0 !important;
  margin: 0 0 0 8px !important;
  color: var(--obs-charcoal) !important;
  opacity: .4;
  cursor: pointer;
  transition: opacity .15s ease, color .15s ease, background-color .15s ease;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0 !important;
}
html body .wc-block-cart-item__remove-link::before,
html body .wc-block-cart-item__remove-link::after{ content: none !important; display: none !important; }
html body .wc-block-cart-item__remove-link svg.ob-trash-x{
  display: block !important;
  width: 16px !important;
  height: 16px !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: inherit !important;
}
html body .wc-block-cart-item__remove-link:hover{
  opacity: 1;
  color: #C44A37 !important;
  background-color: #FCEFE9 !important;
}

/* === Type scale — restrained, 3 weights total === */
html body .wp-block-woocommerce-cart,
html body .wp-block-woocommerce-cart *,
html body .wp-block-woocommerce-checkout,
html body .wp-block-woocommerce-checkout *{
  font-family: "Inter", system-ui, -apple-system, sans-serif !important;
}
html body .entry-title,
html body .wp-block-woocommerce-cart h1,
html body .wp-block-woocommerce-checkout h1{
  font-family: "Space Grotesk", "Inter", sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: -.02em !important;
}

/* === Buttons — single canonical jade pill === */
html body .wc-block-components-checkout-place-order-button,
html body button.wc-block-components-button.wc-block-cart__submit-button,
html body .wc-block-cart__submit-container a,
html body .wc-block-cart__submit-container button{
  background-color: var(--obs-jade) !important;
  color: var(--obs-cream) !important;
  border: 1px solid var(--obs-jade) !important;
  border-radius: var(--obs-radius-btn) !important;
  padding: 16px 28px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  width: 100% !important;
  text-align: center !important;
  transition: background-color .15s ease, border-color .15s ease !important;
  margin-top: 8px !important;
}
html body .wc-block-components-checkout-place-order-button:hover,
html body button.wc-block-components-button.wc-block-cart__submit-button:hover,
html body .wc-block-cart__submit-container a:hover{
  background-color: var(--obs-jade-hover) !important;
  border-color: var(--obs-jade-hover) !important;
}

/* ====== /AS · Final coordinated rebuild ====== */

/* ====== AS · Final regression fix ====== */
/* Remove the older pseudo-element heading swap (causing duplicate text) */
html body .wc-block-components-checkout-order-summary__title-text::after,
html body .wc-block-cart-order-summary__title-text::after,
html body .wp-block-woocommerce-cart-order-summary-heading-block .wc-block-components-text::after{
  content: none !important;
  display: none !important;
}
html body .wc-block-components-checkout-order-summary__title-text,
html body .wc-block-cart-order-summary__title-text,
html body .wp-block-woocommerce-cart-order-summary-heading-block .wc-block-components-text{
  font-size: 18px !important;
  color: #0F0D0A !important;
  font-weight: 600 !important;
  text-transform: none !important;
}

/* Cart sidebar title block — kill any uppercase */
html body .wp-block-woocommerce-cart-totals-block h2,
html body .wp-block-woocommerce-cart-totals-block .wc-block-components-text,
html body .wp-block-woocommerce-cart-totals-block-title{
  text-transform: none !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: -.005em !important;
  color: #0F0D0A !important;
}

/* Cart line item — fix text overflow into price column */
html body .wc-block-cart-items__row{
  grid-template-columns: 64px 1fr minmax(80px, auto) !important;
}
html body .wc-block-cart-item__product{
  overflow: hidden !important;
}
html body .wc-block-components-product-name{
  word-break: normal !important;
  overflow-wrap: break-word !important;
  display: block !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
}
html body .wc-block-cart-item__total-price{
  text-align: right !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
}

/* ====== /AS · Final regression fix ====== */

/* ====== AS · Cart line + trash + heading visibility ====== */

/* Make sure cart line product name renders (was hidden by overflow rules) */
html body .wc-block-cart-item__product{
  overflow: visible !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  min-width: 0 !important;
}
html body .wc-block-cart-item__product .wc-block-components-product-name{
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
  line-height: 1.35 !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  white-space: normal !important;
}

/* Cart line row — looser grid that actually shows the name column */
html body .wc-block-cart-items__row{
  grid-template-columns: 64px minmax(140px, 1fr) auto auto !important;
  gap: 14px !important;
}

/* Trash X — undo prior hidden-svg-children rule for our injected svg */
html body .wc-block-cart-item__remove-link svg.ob-trash-x{
  display: block !important;
  width: 16px !important;
  height: 16px !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Heading source strings that gettext misses */
html body .wc-block-components-checkout-order-summary__title-text{
  font-size: 0 !important;
  color: transparent !important;
}
html body .wc-block-components-checkout-order-summary__title-text::before{
  content: "Tu pedido" !important;
  font-size: 18px !important;
  color: #0F0D0A !important;
  font-weight: 600 !important;
  letter-spacing: -.005em !important;
  display: block !important;
}

/* 'Total estimado' label override via pseudo */
html body .wc-block-components-totals-footer-item .wc-block-components-totals-item__label{
  font-size: 0 !important;
  color: transparent !important;
}
html body .wc-block-components-totals-footer-item .wc-block-components-totals-item__label::before{
  content: "Total" !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
}

/* ====== /AS · Cart line + trash + heading visibility ====== */

/* ====== AS · Precision fix: qty jade match + name col width + trash X size ====== */

/* Force qty buttons to BRIGHT jade #1A6C52 (was rendering #115440 due to earlier rule) */
html body .wc-block-components-quantity-selector__button,
html body button.wc-block-components-quantity-selector__button--minus,
html body button.wc-block-components-quantity-selector__button--plus,
html body .ob-qty-wrap .ob-qty-btn{
  background-color: #1A6C52 !important;
  color: #F5F2E8 !important;
}
html body .wc-block-components-quantity-selector__button:hover,
html body .ob-qty-wrap .ob-qty-btn:hover{
  background-color: #115440 !important;
}

/* Wider product name column so it doesn't wrap onto 3 lines */
html body .wc-block-cart-items__row{
  grid-template-columns: 56px minmax(220px, 1fr) auto !important;
  gap: 16px !important;
  align-items: center !important;
}
html body .wc-block-cart-item__product{
  min-width: 0 !important;
}
html body .wc-block-components-product-name{
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  line-height: 1.4 !important;
}

/* Bigger trash X — scale up to 22px in a 36px box */
html body .wc-block-cart-item__remove-link{
  width: 36px !important;
  height: 36px !important;
  margin-left: 12px !important;
}
html body .wc-block-cart-item__remove-link svg.ob-trash-x{
  width: 22px !important;
  height: 22px !important;
  color: #C44A37 !important;
  stroke: #C44A37 !important;
}
html body .wc-block-cart-item__remove-link:hover svg.ob-trash-x{
  color: #8B3A2C !important;
  stroke: #8B3A2C !important;
}

/* ====== /AS · Precision fix ====== */

/* ====== AS · Trash hover — no background-image at all ====== */
html body .wc-block-cart-item__remove-link,
html body .wc-block-cart-item__remove-link:hover,
html body .wc-block-cart-item__remove-link:focus,
html body .wc-block-cart-item__remove-link:active{
  background-image: none !important;
  -webkit-mask: none !important;
  mask: none !important;
}
html body .wc-block-cart-item__remove-link::before,
html body .wc-block-cart-item__remove-link::after{
  content: none !important;
  display: none !important;
  background-image: none !important;
}
html body .wc-block-cart-item__remove-link:hover{
  background-color: #FCEFE9 !important;
}
html body .wc-block-cart-item__remove-link:hover svg.ob-trash-x{
  color: #8B3A2C !important;
  stroke: #8B3A2C !important;
}
/* ====== /AS · Trash hover ====== */

/* ====== AS · Cart line align + hide unit price + jade unify ====== */

/* Hide UNIT price on cart line — only show line total */
html body .wc-block-cart-item__prices,
html body .wc-block-cart-item__product .wc-block-components-product-price,
html body .wc-block-cart-item__product .wc-block-formatted-money-amount{
  display: none !important;
}
/* But keep the LINE TOTAL in the price column visible */
html body .wc-block-cart-item__total .wc-block-components-product-price,
html body .wc-block-cart-item__total .wc-block-formatted-money-amount{
  display: inline-block !important;
}

/* Align name with line total horizontally — single row */
html body .wc-block-cart-items__row{
  grid-template-columns: 56px 1fr auto auto !important;
  align-items: center !important;
  gap: 16px !important;
}
html body .wc-block-cart-item__product{
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-self: center !important;
}
html body .wc-block-cart-item__total{
  display: flex !important;
  align-items: center !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
}

/* Unify jade — kill any lingering border/shadow that makes qty buttons look 'darker' */
html body .wc-block-components-quantity-selector,
html body .wc-block-components-quantity-selector__button{
  box-shadow: none !important;
  border-color: transparent !important;
}
html body .wc-block-components-quantity-selector{
  border: 1px solid #E6E0CF !important;
}
html body .wc-block-components-quantity-selector__button{
  background-color: #1A6C52 !important;
  background-image: none !important;
  border: 0 !important;
  filter: none !important;
}

/* ====== /AS · Cart line align + hide unit price + jade unify ====== */

/* ====== AS · Cart row table layout (correct DOM structure) ====== */

/* Row is <tr> with 3 <td>: image | product | total */
html body .wc-block-cart-items__row{
  display: table-row !important;
  grid-template-columns: unset !important;
}
html body td.wc-block-cart-item__image{
  width: 72px !important;
  padding: 16px 12px 16px 0 !important;
  vertical-align: middle !important;
}
html body td.wc-block-cart-item__image img{
  width: 64px !important;
  height: 64px !important;
  border-radius: 4px !important;
  display: block !important;
}
html body td.wc-block-cart-item__product{
  vertical-align: middle !important;
  padding: 16px 12px !important;
}
html body td.wc-block-cart-item__total{
  vertical-align: middle !important;
  text-align: right !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
  white-space: nowrap !important;
  padding: 16px 0 16px 12px !important;
  min-width: 80px !important;
}

/* Inside the product cell: name on top, qty + trash on a row below */
html body td.wc-block-cart-item__product .wc-block-cart-item__wrap{
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
html body .wc-block-cart-item__quantity{
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

/* Product name — single visible piece in column 2 top */
html body .wc-block-components-product-name{
  display: block !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
  line-height: 1.35 !important;
}

/* ====== /AS · Cart row table layout ====== */

/* ====== AS · Restore table-cell on td.total ====== */
html body td.wc-block-cart-item__total{
  display: table-cell !important;
  vertical-align: middle !important;
  text-align: right !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
  white-space: nowrap !important;
  padding: 16px 0 16px 12px !important;
  min-width: 80px !important;
  width: auto !important;
}
/* ====== /AS · Restore table-cell on td.total ====== */

/* ====== AS · Kill all opacity washout — true jade + true red ====== */
html body .wc-block-components-quantity-selector,
html body .wc-block-components-quantity-selector__button,
html body button.wc-block-components-quantity-selector__button--minus,
html body button.wc-block-components-quantity-selector__button--plus,
html body .ob-qty-wrap,
html body .ob-qty-wrap .ob-qty-btn{
  opacity: 1 !important;
  filter: none !important;
  background-color: #1A6C52 !important;
  color: #F5F2E8 !important;
}
html body .wc-block-components-quantity-selector__button:hover,
html body .ob-qty-wrap .ob-qty-btn:hover{
  opacity: 1 !important;
  background-color: #115440 !important;
}

html body .wc-block-cart-item__remove-link,
html body .wc-block-cart-item__remove-link svg.ob-trash-x{
  opacity: 1 !important;
  filter: none !important;
}
html body .wc-block-cart-item__remove-link svg.ob-trash-x{
  color: #C44A37 !important;
  stroke: #C44A37 !important;
}
html body .wc-block-cart-item__remove-link:hover svg.ob-trash-x{
  color: #8B3A2C !important;
  stroke: #8B3A2C !important;
}

/* ====== Match checkout sidebar layout to cart sidebar template ====== */
html body .wp-block-woocommerce-checkout-totals-block,
html body .wp-block-woocommerce-checkout-order-summary-block{
  background: #F5F2E8 !important;
  border: 1px solid #E6E0CF !important;
  border-radius: 8px !important;
  padding: 28px !important;
  box-shadow: none !important;
}
/* Each row inside checkout sidebar — flat, padded */
html body .wp-block-woocommerce-checkout-order-summary-block > *,
html body .wp-block-woocommerce-checkout-totals-block > *{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 14px 0 !important;
  margin: 0 !important;
}
html body .wp-block-woocommerce-checkout-order-summary-block > * + *,
html body .wp-block-woocommerce-checkout-totals-block > * + *{
  border-top: 1px solid rgba(15,13,10,0.08) !important;
}
html body .wp-block-woocommerce-checkout-order-summary-block > *:first-child{ padding-top: 0 !important; }
html body .wp-block-woocommerce-checkout-order-summary-block > *:last-child{ padding-bottom: 0 !important; }

/* Heading 'Tu pedido' on checkout — same as cart */
html body .wc-block-components-checkout-order-summary__title-text{
  font-size: 0 !important;
  color: transparent !important;
}
html body .wc-block-components-checkout-order-summary__title-text::before{
  content: "Tu pedido" !important;
  font-size: 18px !important;
  color: #0F0D0A !important;
  font-weight: 600 !important;
  letter-spacing: -.005em !important;
  display: block !important;
}
/* ====== /AS · Match checkout sidebar to cart template ====== */

/* ====== AS · Checkout sidebar product line layout + perfect vertical centering ====== */

/* Order summary item — 3-column grid: image | description | line total */
html body .wc-block-components-order-summary-item{
  display: grid !important;
  grid-template-columns: 56px 1fr auto !important;
  gap: 14px !important;
  align-items: center !important;
  padding: 16px 0 !important;
}
html body .wc-block-components-order-summary-item__image{
  width: 56px !important;
  height: 56px !important;
  position: relative !important;
}
html body .wc-block-components-order-summary-item__image img{
  width: 56px !important;
  height: 56px !important;
  border-radius: 4px !important;
  object-fit: cover !important;
}
html body .wc-block-components-order-summary-item__description{
  min-width: 0 !important;
  align-self: center !important;
}
html body .wc-block-components-order-summary-item__description h3,
html body .wc-block-components-order-summary-item__description .wc-block-components-product-name{
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
  line-height: 1.35 !important;
  margin: 0 !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}
/* Hide unit price in sidebar — only total matters */
html body .wc-block-components-order-summary-item__description .wc-block-cart-item__prices,
html body .wc-block-components-order-summary-item__individual-prices,
html body .wc-block-components-order-summary-item__individual-price{
  display: none !important;
}
/* Line total — right aligned in its own column */
html body .wc-block-components-order-summary-item__total-price{
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
  white-space: nowrap !important;
  align-self: center !important;
}

/* Quantity badge — top-left of image */
html body .wc-block-components-order-summary-item__quantity{
  position: absolute !important;
  top: -6px !important;
  left: -6px !important;
  width: 22px !important;
  height: 22px !important;
  background: #0F0D0A !important;
  color: #F5F2E8 !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  z-index: 1 !important;
}

/* ====== Perfect vertical centering in all sidebar rows / boxes ====== */
html body .wc-block-components-totals-item{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 6px 0 !important;
  min-height: 22px !important;
}
html body .wc-block-components-totals-item__label,
html body .wc-block-components-totals-item__value{
  display: flex !important;
  align-items: center !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* Coupon collapsible row — vertical center */
html body .wc-block-components-totals-coupon,
html body .wp-block-woocommerce-cart-order-summary-coupon-form-block{
  display: flex !important;
  align-items: center !important;
}
html body .wc-block-components-totals-coupon button{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
}

/* IVA row + Total row in sidebar — center vertically (was top-aligned) */
html body .wp-block-woocommerce-cart-order-summary-taxes-block,
html body .wp-block-woocommerce-cart-order-summary-totals-block,
html body .wp-block-woocommerce-checkout-order-summary-taxes-block,
html body .wp-block-woocommerce-checkout-order-summary-totals-block{
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

/* ====== /AS · Checkout sidebar fix + centering ====== */

/* ====== AS · Order summary item layout (4 children, screen-reader absolute) ====== */

/* Pull screen-reader-text out of the grid flow */
html body .wc-block-components-order-summary-item > .screen-reader-text{
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

/* 3-column grid: image | description | line-total */
html body .wc-block-components-order-summary-item{
  display: grid !important;
  grid-template-columns: 56px 1fr auto !important;
  grid-template-rows: auto !important;
  gap: 14px !important;
  align-items: center !important;
  padding: 16px 0 !important;
  position: relative !important;
}
/* Description column — name only (hide unit price + metadata) */
html body .wc-block-components-order-summary-item__description{
  min-width: 0 !important;
  align-self: center !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}
html body .wc-block-components-order-summary-item__description .wc-block-cart-item__prices,
html body .wc-block-components-order-summary-item__individual-prices,
html body .wc-block-components-order-summary-item__individual-price{
  display: none !important;
}
html body .wc-block-components-order-summary-item__description h3{
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
  line-height: 1.35 !important;
  margin: 0 !important;
}

/* Total-price column — own column, right-aligned, centered vertically */
html body .wc-block-components-order-summary-item__total-price{
  align-self: center !important;
  justify-self: end !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
  white-space: nowrap !important;
  text-align: right !important;
  display: flex !important;
  align-items: center !important;
}

/* Image — square thumbnail, qty badge in corner */
html body .wc-block-components-order-summary-item__image{
  width: 56px !important;
  height: 56px !important;
  position: relative !important;
  align-self: center !important;
}
html body .wc-block-components-order-summary-item__image img{
  width: 56px !important;
  height: 56px !important;
  border-radius: 4px !important;
  object-fit: cover !important;
  display: block !important;
}
html body .wc-block-components-order-summary-item__quantity{
  position: absolute !important;
  top: -8px !important;
  right: -8px !important;
  width: 22px !important;
  height: 22px !important;
  background: #0F0D0A !important;
  color: #F5F2E8 !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  z-index: 2 !important;
}

/* Perfect vertical centering on every sidebar row */
html body .wc-block-components-totals-item,
html body .wp-block-woocommerce-cart-order-summary-subtotal-block,
html body .wp-block-woocommerce-cart-order-summary-taxes-block,
html body .wp-block-woocommerce-cart-order-summary-totals-block,
html body .wp-block-woocommerce-checkout-order-summary-subtotal-block,
html body .wp-block-woocommerce-checkout-order-summary-taxes-block,
html body .wp-block-woocommerce-checkout-order-summary-totals-block{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 28px !important;
}
html body .wc-block-components-totals-item__label,
html body .wc-block-components-totals-item__value{
  line-height: 1.2 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
}

/* ====== /AS · Order summary item layout ====== */

/* ====== AS · Hide empty sidebar blocks (fees, discount with no content) ====== */
html body .wp-block-woocommerce-cart-order-summary-fee-block:empty,
html body .wp-block-woocommerce-cart-order-summary-discount-block:empty,
html body .wp-block-woocommerce-checkout-order-summary-fee-block:empty,
html body .wp-block-woocommerce-checkout-order-summary-discount-block:empty{
  display: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  min-height: 0 !important;
}
/* Fallback for blocks with whitespace-only content */
html body .wp-block-woocommerce-cart-order-summary-fee-block:not(:has(.wc-block-components-totals-fees)),
html body .wp-block-woocommerce-cart-order-summary-discount-block:not(:has(.wc-block-components-totals-discount)),
html body .wp-block-woocommerce-checkout-order-summary-fee-block:not(:has(.wc-block-components-totals-fees)),
html body .wp-block-woocommerce-checkout-order-summary-discount-block:not(:has(.wc-block-components-totals-discount)){
  display: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}
/* ====== /AS · Hide empty sidebar blocks ====== */

/* ====== AS · Unify subtotal/IVA/total row widths in sidebar ====== */
/* Every block inside the order summary should span 100% with matching padding */
html body .wp-block-woocommerce-cart-order-summary-subtotal-block,
html body .wp-block-woocommerce-cart-order-summary-taxes-block,
html body .wp-block-woocommerce-cart-order-summary-shipping-block,
html body .wp-block-woocommerce-cart-order-summary-totals-block,
html body .wp-block-woocommerce-checkout-order-summary-subtotal-block,
html body .wp-block-woocommerce-checkout-order-summary-taxes-block,
html body .wp-block-woocommerce-checkout-order-summary-shipping-block,
html body .wp-block-woocommerce-checkout-order-summary-totals-block{
  width: 100% !important;
  padding: 16px 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  border-top: 1px solid rgba(15,13,10,0.08) !important;
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box !important;
}

/* The totals-item inside each block — full width, label left, value right */
html body .wp-block-woocommerce-cart-order-summary-subtotal-block .wc-block-components-totals-item,
html body .wp-block-woocommerce-cart-order-summary-taxes-block .wc-block-components-totals-item,
html body .wp-block-woocommerce-cart-order-summary-shipping-block .wc-block-components-totals-item,
html body .wp-block-woocommerce-cart-order-summary-totals-block .wc-block-components-totals-item,
html body .wp-block-woocommerce-checkout-order-summary-subtotal-block .wc-block-components-totals-item,
html body .wp-block-woocommerce-checkout-order-summary-taxes-block .wc-block-components-totals-item,
html body .wp-block-woocommerce-checkout-order-summary-shipping-block .wc-block-components-totals-item,
html body .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-item{
  width: 100% !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  min-height: 28px !important;
}

/* Total row — slightly bigger emphasis */
html body .wp-block-woocommerce-cart-order-summary-totals-block .wc-block-components-totals-item__label,
html body .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-item__label{
  font-size: 16px !important;
  font-weight: 600 !important;
}
html body .wp-block-woocommerce-cart-order-summary-totals-block .wc-block-components-totals-item__value,
html body .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-item__value{
  font-size: 22px !important;
  font-weight: 700 !important;
}

/* ====== /AS · Unify row widths ====== */

/* ====== AS · Header account icon + Más dropdown styling ====== */

/* Account trigger — jade person icon LEFT of search */
.ob-account-wrap{
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-right: 8px;
}
.ob-account-trigger{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #1A6C52;
  color: #F5F2E8;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  padding: 0;
  transition: background-color .15s ease, transform .12s ease;
  margin: 0;
}
.ob-account-trigger:hover{
  background: #115440;
  transform: scale(1.05);
}
.ob-account-trigger svg{
  width: 18px;
  height: 18px;
  stroke: currentColor;
}

/* Mini dropdown */
.ob-account-dropdown{
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 200px;
  background: #fff;
  border: 1px solid #E6E0CF;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(15,13,10,0.12);
  padding: 8px 0;
  z-index: 9999;
  display: block;
}
.ob-account-dropdown[hidden]{
  display: none;
}
.ob-account-greeting{
  padding: 8px 16px;
  font-size: 12px;
  color: #6F665A;
  font-weight: 500;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
.ob-account-dropdown a{
  display: block;
  padding: 10px 16px;
  font-size: 14px;
  color: #0F0D0A;
  text-decoration: none;
  font-weight: 500;
  font-family: 'Inter', system-ui, sans-serif;
  transition: background-color .12s ease, color .12s ease;
}
.ob-account-dropdown a:hover{
  background: #FAF6EC;
  color: #1A6C52;
}
.ob-account-dropdown .ob-account-cta{
  color: #1A6C52;
  font-weight: 600;
}
.ob-account-dropdown .ob-account-cta:hover{
  background: #1A6C52;
  color: #F5F2E8;
}
.ob-account-divider{
  height: 1px;
  background: #E6E0CF;
  margin: 8px 0;
}
.ob-account-dropdown .ob-account-logout{
  color: #6F665A;
  font-size: 13px;
}
.ob-account-dropdown .ob-account-logout:hover{
  background: #FCEFE9;
  color: #8B3A2C;
}

/* === Más dropdown (theme menu) — premium styling === */
.menu-item-has-children > a::after,
.menu-item.menu-item-has-children > a::after{
  content: ' ▾';
  font-size: 10px;
  color: inherit;
  margin-left: 4px;
  vertical-align: middle;
}
/* Sub-menu styling */
.sub-menu,
ul.sub-menu{
  background: #fff !important;
  border: 1px solid #E6E0CF !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(15,13,10,0.12) !important;
  padding: 8px 0 !important;
  min-width: 220px !important;
}
.sub-menu li a,
ul.sub-menu li a{
  padding: 10px 16px !important;
  font-size: 14px !important;
  color: #0F0D0A !important;
  font-weight: 500 !important;
  transition: background-color .12s ease, color .12s ease !important;
}
.sub-menu li a:hover,
ul.sub-menu li a:hover{
  background: #FAF6EC !important;
  color: #1A6C52 !important;
}

/* ====== /AS · Header account icon + Más dropdown ====== */

/* ====== AS · Account icon — high specificity overrides ====== */
html body .ob-account-wrap{
  display: inline-flex !important;
  align-items: center !important;
  margin-right: 8px !important;
  position: relative !important;
}
html body button.ob-account-trigger,
html body .ob-account-wrap button.ob-account-trigger{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  background-color: #1A6C52 !important;
  background-image: none !important;
  color: #F5F2E8 !important;
  border: 0 !important;
  border-radius: 50% !important;
  cursor: pointer !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 0 !important;
  line-height: 1 !important;
  transition: background-color .15s ease, transform .12s ease !important;
  box-shadow: none !important;
  text-transform: none !important;
}
html body button.ob-account-trigger:hover{
  background-color: #115440 !important;
  transform: scale(1.05) !important;
}
html body .ob-account-trigger svg{
  width: 20px !important;
  height: 20px !important;
  stroke: currentColor !important;
  color: #F5F2E8 !important;
  fill: none !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
html body .ob-account-trigger svg circle,
html body .ob-account-trigger svg path{
  stroke: #F5F2E8 !important;
  fill: none !important;
}
/* ====== /AS · Account icon overrides ====== */

/* ====== AS · Más landing page ====== */
.obs-mas-hero{
  text-align: center;
  padding: 80px 24px 40px;
  max-width: 800px;
  margin: 0 auto;
}
.obs-mas-title{
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 48px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
  letter-spacing: -.02em !important;
  margin: 0 0 16px !important;
}
.obs-mas-sub{
  font-size: 16px !important;
  color: #6F665A !important;
  line-height: 1.5 !important;
  max-width: 560px !important;
  margin: 0 auto 48px !important;
}
.obs-mas-grid{
  max-width: 960px;
  margin: 0 auto 80px;
  padding: 0 24px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
@media (max-width: 720px){
  .obs-mas-grid{ grid-template-columns: 1fr; }
}
.obs-mas-card{
  position: relative;
  display: block;
  padding: 28px 28px 56px;
  background: #F5F2E8;
  border: 1px solid #E6E0CF;
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  font-family: 'Inter', system-ui, sans-serif;
}
.obs-mas-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(15,13,10,0.08);
  border-color: #1A6C52;
}
.obs-mas-card-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: #1A6C52;
  color: #F5F2E8;
  border-radius: 12px;
  margin-bottom: 16px;
}
.obs-mas-card-icon svg{
  width: 24px;
  height: 24px;
  stroke: currentColor;
}
.obs-mas-card h3{
  font-family: 'Inter', sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #0F0D0A !important;
  margin: 0 0 8px !important;
  line-height: 1.3 !important;
}
.obs-mas-card p{
  font-size: 14px !important;
  color: #4A4540 !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}
.obs-mas-card-arrow{
  position: absolute;
  bottom: 24px;
  right: 28px;
  font-size: 22px;
  color: #1A6C52;
  font-weight: 400;
  line-height: 1;
  transition: transform .15s ease;
}
.obs-mas-card:hover .obs-mas-card-arrow{
  transform: translateX(4px);
}
.obs-mas-contact{
  background: #0F0D0A;
  color: #F5F2E8;
  padding: 60px 24px;
  text-align: center;
}
.obs-mas-contact h2{
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  color: #F5F2E8 !important;
  margin: 0 0 12px !important;
  letter-spacing: -.01em !important;
}
.obs-mas-contact p{
  font-size: 15px !important;
  color: #C5BFB0 !important;
  line-height: 1.6 !important;
  margin: 0 0 8px !important;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
.obs-mas-contact a{
  color: #F5F2E8 !important;
  text-decoration: underline !important;
}
.obs-mas-contact a:hover{
  color: #C4D6BA !important;
}
.obs-mas-contact-meta{
  font-size: 12px !important;
  color: #7A6F58 !important;
  letter-spacing: 0.5px !important;
  margin-top: 24px !important;
}
/* ====== /AS · Más landing page ====== */

/* ====== AS · Más contact strip centering fix ====== */
html body .obs-mas-contact,
html body .obs-mas-contact > *,
html body .obs-mas-contact h2,
html body .obs-mas-contact p,
html body .obs-mas-contact a,
html body .obs-mas-contact .obs-mas-contact-meta{
  text-align: center !important;
}
html body .obs-mas-contact p{
  max-width: 560px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* ====== /AS · Más contact strip centering ====== */

/* === Nextend Google login button (appended 1779321449) === */
/* ============================================================
 *  Nextend Google Login button — OBSIRIA styling
 *  Renders as a full-width white pill with Google G + Spanish label,
 *  matching the rest of the brand. Sits above the Acceder form.
 * ============================================================ */

.ob-nsl-wrap {
    margin: 0 0 1.5rem;
    width: 100%;
}

/* Divider with horizontal lines around the label */
.ob-nsl-divider {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 1rem;
    color: #6b7280;
    font-size: 0.875rem;
    line-height: 1;
}

.ob-nsl-divider::before,
.ob-nsl-divider::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: rgba(15, 13, 10, 0.12);
}

.ob-nsl-divider span {
    flex: 0 0 auto;
    text-transform: lowercase;
    letter-spacing: 0.01em;
}

/* Buttons row */
.ob-nsl-buttons {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
}

/* Nextend's outer link wrapper — strip default link styling */
.ob-nsl-buttons > a,
.ob-nsl-buttons > a:hover,
.ob-nsl-buttons > a:focus,
.ob-nsl-buttons > a:visited {
    display: block;
    text-decoration: none !important;
    box-shadow: none !important;
    color: inherit !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100%;
}

/* The actual Nextend button div */
.ob-nsl-buttons .nsl-button-google {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.75rem !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 0.75rem 1.25rem !important;
    background: #ffffff !important;
    border: 1px solid rgba(15, 13, 10, 0.15) !important;
    border-radius: 10px !important;
    color: #0f0d0a !important;
    font-family: inherit !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    box-shadow: 0 1px 2px rgba(15, 13, 10, 0.04) !important;
    transition: background 160ms ease, border-color 160ms ease, transform 120ms ease !important;
    cursor: pointer !important;
}

.ob-nsl-buttons .nsl-button-google:hover {
    background: #f9fafb !important;
    border-color: rgba(15, 13, 10, 0.25) !important;
}

.ob-nsl-buttons .nsl-button-google:active {
    transform: translateY(1px);
}

/* Google G icon container */
.ob-nsl-buttons .nsl-button-google .nsl-button-svg-container {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.ob-nsl-buttons .nsl-button-google .nsl-button-svg-container svg {
    width: 20px !important;
    height: 20px !important;
}

/* Label container */
.ob-nsl-buttons .nsl-button-google .nsl-button-label-container {
    flex: 0 0 auto !important;
    color: #0f0d0a !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    white-space: nowrap;
}

/* When on the registration tab, give the wrap a touch more space */
.woocommerce-form-register .ob-nsl-wrap {
    margin-bottom: 1.25rem;
}

@media (max-width: 600px) {
    .ob-nsl-buttons .nsl-button-google {
        font-size: 0.9rem !important;
        min-height: 44px !important;
        padding: 0.625rem 1rem !important;
    }
}

/* === My Account dashboard (appended 1779322079) === */
/* ============================================================
 *  OBSIRIA — My Account dashboard (Atomik-inspired iconed sidebar)
 *  Targets WC's standard nav classes so works without DOM changes.
 *  Two-column layout: jade-accented sidebar + content card.
 * ============================================================ */

/* -- Hero band above the page content -- */
.woocommerce-account .entry-header,
.woocommerce-account .kadence-entry-header {
    background: linear-gradient(135deg, #0f3a2c 0%, #1A6C52 65%, #2d8a6a 100%);
    color: #fff;
    padding: 4rem 1.5rem 5rem;
    margin: 0;
    position: relative;
    overflow: hidden;
}

.woocommerce-account .entry-header::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
      radial-gradient(circle at 80% 20%, rgba(255,255,255,0.08) 0%, transparent 35%),
      radial-gradient(circle at 20% 80%, rgba(255,255,255,0.05) 0%, transparent 40%);
    pointer-events: none;
}

.woocommerce-account .entry-header .entry-title,
.woocommerce-account .entry-header h1 {
    color: #fff !important;
    font-size: clamp(2.5rem, 6vw, 4rem) !important;
    margin: 0 auto !important;
    max-width: 1200px;
    position: relative;
    z-index: 2;
}

/* -- Main account layout: 2-col on desktop, stacked on mobile -- */
.woocommerce-account .woocommerce {
    max-width: 1200px;
    margin: -2rem auto 4rem;
    padding: 0 1.5rem;
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 2rem;
    position: relative;
    z-index: 3;
}

@media (max-width: 900px) {
    .woocommerce-account .woocommerce {
        grid-template-columns: 1fr;
        gap: 1rem;
        margin-top: -1.5rem;
    }
}

/* -- Sidebar nav -- */
.woocommerce-MyAccount-navigation {
    background: #ffffff;
    border-radius: 14px;
    padding: 0.5rem;
    box-shadow: 0 4px 18px rgba(15, 13, 10, 0.06);
    border: 1px solid rgba(15, 13, 10, 0.05);
    height: fit-content;
    position: sticky;
    top: 1.5rem;
}

.woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-MyAccount-navigation li {
    margin: 0;
    padding: 0;
    list-style: none !important;
}

.woocommerce-MyAccount-navigation li::before { content: none !important; }

.woocommerce-MyAccount-navigation li a {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 0.75rem 1rem;
    border-radius: 10px;
    color: #0f0d0a;
    text-decoration: none !important;
    font-weight: 500;
    font-size: 0.95rem;
    line-height: 1.2;
    transition: background 140ms ease, color 140ms ease;
    position: relative;
    border-left: 3px solid transparent;
}

.woocommerce-MyAccount-navigation li a:hover {
    background: rgba(26, 108, 82, 0.06);
    color: #1A6C52;
}

/* Active state: jade tint + left accent bar */
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--is-active a,
.woocommerce-MyAccount-navigation li.current-menu-item a {
    background: rgba(26, 108, 82, 0.08);
    color: #1A6C52;
    font-weight: 600;
    border-left-color: #1A6C52;
    padding-left: calc(1rem - 3px);
}

/* Icons via ::before — line SVGs as inline data URIs */
.woocommerce-MyAccount-navigation li a::before {
    content: "";
    display: inline-block;
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 22px 22px;
    opacity: 0.7;
    transition: opacity 140ms ease;
}

.woocommerce-MyAccount-navigation li a:hover::before,
.woocommerce-MyAccount-navigation li.is-active a::before,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--is-active a::before {
    opacity: 1;
}

/* Dashboard — 4-square grid icon */
.woocommerce-MyAccount-navigation-link--dashboard a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A6C52' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1.5'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1.5'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1.5'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1.5'/%3E%3C/svg%3E");
}

/* Orders — shopping bag */
.woocommerce-MyAccount-navigation-link--orders a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A6C52' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E");
}

/* Downloads — download arrow */
.woocommerce-MyAccount-navigation-link--downloads a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A6C52' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
}

/* Edit Address — location pin */
.woocommerce-MyAccount-navigation-link--edit-address a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A6C52' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

/* Payment Methods — credit card */
.woocommerce-MyAccount-navigation-link--payment-methods a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A6C52' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cline x1='2' y1='10' x2='22' y2='10'/%3E%3C/svg%3E");
}

/* Account Details — user */
.woocommerce-MyAccount-navigation-link--edit-account a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A6C52' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 4-7 8-7s8 3 8 7'/%3E%3C/svg%3E");
}

/* Logout — exit arrow */
.woocommerce-MyAccount-navigation-link--customer-logout a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ca3a3a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpolyline points='16 17 21 12 16 7'/%3E%3Cline x1='21' y1='12' x2='9' y2='12'/%3E%3C/svg%3E");
}

/* Logout link gets red accent on hover */
.woocommerce-MyAccount-navigation-link--customer-logout a {
    color: #ca3a3a !important;
    border-top: 1px solid rgba(15, 13, 10, 0.08);
    margin-top: 0.5rem;
    padding-top: 1rem;
    border-radius: 0 0 10px 10px;
}
.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
    background: rgba(202, 58, 58, 0.06) !important;
    color: #ca3a3a !important;
    border-left-color: #ca3a3a !important;
}

/* -- Content card on the right -- */
.woocommerce-MyAccount-content {
    background: #ffffff;
    border-radius: 14px;
    padding: 2rem 2.25rem;
    box-shadow: 0 4px 18px rgba(15, 13, 10, 0.06);
    border: 1px solid rgba(15, 13, 10, 0.05);
}

.woocommerce-MyAccount-content > p:first-child {
    font-size: 1.05rem;
    line-height: 1.6;
    color: #2a2a2a;
    margin-bottom: 1.25rem;
}

.woocommerce-MyAccount-content a {
    color: #1A6C52;
    text-decoration: none;
    font-weight: 500;
}
.woocommerce-MyAccount-content a:hover {
    text-decoration: underline;
}

/* Tables inside dashboard content (Orders, Downloads, etc.) */
.woocommerce-MyAccount-content table.woocommerce-orders-table,
.woocommerce-MyAccount-content table.shop_table {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    border: 1px solid rgba(15, 13, 10, 0.08);
    border-radius: 10px;
    overflow: hidden;
}
.woocommerce-MyAccount-content table th {
    background: rgba(26, 108, 82, 0.05);
    color: #0f0d0a;
    font-weight: 600;
    padding: 0.875rem 1rem;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.woocommerce-MyAccount-content table td {
    padding: 1rem;
    border-top: 1px solid rgba(15, 13, 10, 0.06);
    color: #2a2a2a;
}

/* Buttons inside dashboard */
.woocommerce-MyAccount-content .button,
.woocommerce-MyAccount-content button[type="submit"] {
    background: #1A6C52 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 0.75rem 1.5rem !important;
    font-weight: 500 !important;
    transition: background 140ms ease;
}
.woocommerce-MyAccount-content .button:hover,
.woocommerce-MyAccount-content button[type="submit"]:hover {
    background: #115440 !important;
}

/* Mobile sidebar: not sticky, full width */
@media (max-width: 900px) {
    .woocommerce-MyAccount-navigation {
        position: static;
    }
    .woocommerce-MyAccount-content {
        padding: 1.5rem 1.25rem;
    }
}

/* === My Account layout fix (Kadence overrides) === */
/* ============================================================
 *  My Account dashboard — Kadence layout overrides (round 2)
 *  Kadence wraps the nav in .account-navigation-wrap and uses
 *  its own grid which fights ours. Force a clean 2-col grid.
 * ============================================================ */

/* Outer Kadence content wrapper: full width, remove its grid */
body.woocommerce-account .entry-content {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.woocommerce-account .content-container {
    max-width: 100% !important;
}

/* Wipe Kadence's grid on .woocommerce, take full control */
body.woocommerce-account .woocommerce {
    display: grid !important;
    grid-template-columns: 280px 1fr !important;
    gap: 2rem !important;
    max-width: 1200px !important;
    margin: -2rem auto 4rem !important;
    padding: 0 1.5rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
    position: relative;
    z-index: 3;
}

/* Kadence's account nav wrap — neutralize and let inner nav fill */
body.woocommerce-account .account-navigation-wrap {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    max-width: 100% !important;
    flex: none !important;
    float: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

/* Content column on the right */
body.woocommerce-account .woocommerce-MyAccount-content {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

/* Mobile: stack vertically, nav first */
@media (max-width: 900px) {
    body.woocommerce-account .woocommerce {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
        padding: 0 1rem !important;
    }
    body.woocommerce-account .account-navigation-wrap,
    body.woocommerce-account .woocommerce-MyAccount-content {
        grid-column: 1 !important;
    }
    body.woocommerce-account .account-navigation-wrap { grid-row: 1 !important; }
    body.woocommerce-account .woocommerce-MyAccount-content { grid-row: 2 !important; }
}

/* If Kadence injects an "account header" with avatar/name before the nav,
   style it nicely so it sits above the nav links inside the same card */
body.woocommerce-account .account-navigation-wrap > *:not(.woocommerce-MyAccount-navigation):not(nav) {
    background: #ffffff;
    border-radius: 14px 14px 0 0;
    padding: 1.25rem 1rem;
    margin-bottom: -1px;
    border: 1px solid rgba(15, 13, 10, 0.05);
    border-bottom: 1px solid rgba(15, 13, 10, 0.08);
    box-shadow: 0 -2px 12px rgba(15, 13, 10, 0.03);
    display: flex;
    align-items: center;
    gap: 0.875rem;
    font-weight: 600;
    color: #0f0d0a;
}

/* Adjust nav border-radius if there's a header above it */
body.woocommerce-account .account-navigation-wrap > *:not(.woocommerce-MyAccount-navigation):not(nav) + .woocommerce-MyAccount-navigation {
    border-radius: 0 0 14px 14px;
    margin-top: 0;
}

/* Hero band — also bump width to full */
body.woocommerce-account .entry-header,
body.woocommerce-account .kadence-entry-header {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
}

body.woocommerce-account .entry-header .entry-header-inner-wrap,
body.woocommerce-account .entry-header .inside-page-header-wrap {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 1.5rem !important;
}

/* === My Account polish round === */
/* ============================================================
 *  My Account dashboard — polish round (greeting + avatar)
 * ============================================================ */

/* Hide WC's default duplicate greeting (we render our own via snippet #18) */
body.woocommerce-account.woocommerce-page .woocommerce-MyAccount-content > p:first-child,
body.woocommerce-account.woocommerce-page .woocommerce-MyAccount-content > p:first-child + p {
    display: none !important;
}

/* Style the Kadence-rendered avatar circle (was grey/empty) */
body.woocommerce-account .account-navigation-wrap img.avatar {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    background: linear-gradient(135deg, #1A6C52 0%, #2d8a6a 100%) !important;
    object-fit: cover;
    border: 2px solid rgba(26, 108, 82, 0.15);
}

/* Our own dashboard greeting card */
.ob-dashboard-greeting {
    background: linear-gradient(135deg, rgba(26, 108, 82, 0.05) 0%, rgba(26, 108, 82, 0.02) 100%);
    border-left: 3px solid #1A6C52;
    border-radius: 8px;
    padding: 1.25rem 1.5rem;
    margin: 0 0 1.5rem;
}

.ob-dashboard-greeting h2 {
    color: #0f0d0a !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
}

.ob-dashboard-greeting p {
    color: #4a4a4a !important;
    line-height: 1.6;
}

.ob-dashboard-greeting a {
    color: #1A6C52 !important;
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid rgba(26, 108, 82, 0.25);
}

.ob-dashboard-greeting a:hover {
    border-bottom-color: #1A6C52;
}

/* === Hide default WC dashboard greeting (round 2 - selector fix) === */
body.woocommerce-account.woocommerce-page .woocommerce-MyAccount-content > p:nth-of-type(1),
body.woocommerce-account.woocommerce-page .woocommerce-MyAccount-content > p:nth-of-type(2) {
    display: none !important;
}

/* === My Account hero - kill jade gradient, match site treatment === */
body.woocommerce-account .entry-header,
body.woocommerce-account .kadence-entry-header {
    background: transparent !important;
    background-image: none !important;
    color: inherit !important;
    padding: 2.5rem 1.5rem 1.5rem !important;
}

body.woocommerce-account .entry-header::after {
    content: none !important;
}

body.woocommerce-account .entry-header .entry-title,
body.woocommerce-account .entry-header h1 {
    color: #0f0d0a !important;
}

/* Pull main grid up just slightly so spacing feels balanced (no more hero overlap) */
body.woocommerce-account .woocommerce {
    margin-top: 0 !important;
}

/* === My Account: login/register tab toggle === */
.ob-auth-tabs {
    display: flex;
    gap: 0;
    margin: 0 0 1.5rem;
    border-bottom: 1px solid rgba(15, 13, 10, 0.1);
    width: 100%;
}

.ob-auth-tab {
    flex: 1 1 50%;
    text-align: center;
    padding: 0.875rem 1rem;
    color: #6b7280;
    font-weight: 500;
    text-decoration: none !important;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color 140ms ease, border-color 140ms ease;
    font-size: 0.95rem;
}

.ob-auth-tab:hover { color: #1A6C52; }

/* Active state driven by body class */
body.ob-auth-login .ob-auth-tab-login,
body.ob-auth-register .ob-auth-tab-register {
    color: #1A6C52;
    border-bottom-color: #1A6C52;
    font-weight: 600;
}

/* Hide the OTHER form based on selected tab */
body.ob-auth-login .u-column2,
body.ob-auth-login form.woocommerce-form-register,
body.ob-auth-login .u-column2.col-2 {
    display: none !important;
}

body.ob-auth-register .u-column1,
body.ob-auth-register form.woocommerce-form-login,
body.ob-auth-register .u-column1.col-1 {
    display: none !important;
}

/* When register tab is active, expand its column to full width */
body.ob-auth-register .u-columns,
body.ob-auth-login .u-columns {
    display: block !important;
}

body.ob-auth-register .u-column2,
body.ob-auth-login .u-column1 {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding: 0 !important;
}

/* Stylize the form wrappers consistently */
body.woocommerce-account:not(.logged-in) .woocommerce {
    display: block !important;
    max-width: 720px !important;
    margin: 1.5rem auto 4rem !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce > .u-columns {
    background: #ffffff;
    border-radius: 14px;
    padding: 2rem 2.25rem;
    box-shadow: 0 4px 18px rgba(15, 13, 10, 0.06);
    border: 1px solid rgba(15, 13, 10, 0.05);
}

@media (max-width: 600px) {
    body.woocommerce-account:not(.logged-in) .woocommerce > .u-columns {
        padding: 1.5rem 1.25rem;
    }
}

/* === Email verification (appended 1779403999) === */
/* ============================================================
 *  OBSIRIA — Email verification page + dashboard banner
 * ============================================================ */

/* /verificar/ result page (success / expired / invalid / already) */
.ob-verify-page {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4rem 1.5rem;
}

.ob-verify-card {
    background: #ffffff;
    border-radius: 14px;
    padding: 3rem 2.5rem;
    max-width: 480px;
    width: 100%;
    text-align: center;
    box-shadow: 0 4px 18px rgba(15, 13, 10, 0.06);
    border: 1px solid rgba(15, 13, 10, 0.05);
}

.ob-verify-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    margin: 0 auto 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ob-verify-title {
    margin: 0 0 0.75rem !important;
    font-size: 1.75rem;
    font-weight: 600;
    color: #0f0d0a;
    line-height: 1.2;
}

.ob-verify-body {
    margin: 0 0 2rem !important;
    font-size: 1rem;
    line-height: 1.5;
    color: #5a5550;
}

.ob-verify-cta {
    display: inline-block;
    background: #1A6C52;
    color: #ffffff !important;
    padding: 0.875rem 2rem;
    border-radius: 10px;
    text-decoration: none !important;
    font-weight: 500;
    font-size: 0.95rem;
    transition: background 140ms ease;
}

.ob-verify-cta:hover {
    background: #115440;
    text-decoration: none !important;
}

@media (max-width: 600px) {
    .ob-verify-card { padding: 2rem 1.5rem; }
    .ob-verify-title { font-size: 1.5rem; }
}

/* ============================================================
 *  Dashboard banner (shown to unverified users)
 * ============================================================ */
.ob-verify-banner {
    grid-column: 1 / -1;
    background: rgba(184, 133, 31, 0.06);
    border-left: 3px solid #b8851f;
    border-radius: 10px;
    padding: 1rem 1.25rem;
    margin: 0 0 1.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.ob-verify-banner-icon {
    flex: 0 0 auto;
    color: #b8851f;
    display: flex;
    align-items: center;
}

.ob-verify-banner-text {
    flex: 1 1 240px;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    color: #0f0d0a;
    font-size: 0.95rem;
    line-height: 1.4;
}

.ob-verify-banner-text strong {
    font-weight: 600;
}

.ob-verify-banner-text span {
    color: #5a5550;
    font-size: 0.85rem;
}

.ob-verify-banner-cta {
    flex: 0 0 auto;
    background: #b8851f;
    color: #ffffff !important;
    padding: 0.5rem 1.1rem;
    border-radius: 8px;
    text-decoration: none !important;
    font-weight: 500;
    font-size: 0.85rem;
    transition: background 140ms ease;
}

.ob-verify-banner-cta:hover {
    background: #946a18;
    color: #ffffff !important;
}

/* ============================================================
 *  Toast notices (resend success / cooldown)
 * ============================================================ */
.ob-verify-toast {
    grid-column: 1 / -1;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    margin: 0 0 1rem;
    font-size: 0.9rem;
}

.ob-verify-toast-success {
    background: rgba(26, 108, 82, 0.08);
    color: #1A6C52;
    border-left: 3px solid #1A6C52;
}

.ob-verify-toast-info {
    background: rgba(184, 133, 31, 0.08);
    color: #b8851f;
    border-left: 3px solid #b8851f;
}

/* === Verification banner repositioned to full-width === */
body.woocommerce-account .ob-verify-banner {
    max-width: 1200px !important;
    margin: 0 auto 1.5rem !important;
    padding: 1rem 1.25rem !important;
    box-sizing: border-box !important;
    width: calc(100% - 3rem) !important;
}
body.woocommerce-account .ob-verify-toast {
    max-width: 1200px !important;
    margin: 0 auto 1rem !important;
    width: calc(100% - 3rem) !important;
    box-sizing: border-box !important;
}

/* === /revisa-tu-correo/ page === */
/* ============================================================
 *  OBSIRIA — /revisa-tu-correo/ landing page
 * ============================================================ */

.ob-checkmail-page {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4rem 1.5rem;
}

.ob-checkmail-card {
    background: #ffffff;
    border-radius: 14px;
    padding: 3rem 2.5rem;
    max-width: 560px;
    width: 100%;
    text-align: center;
    box-shadow: 0 4px 18px rgba(15, 13, 10, 0.06);
    border: 1px solid rgba(15, 13, 10, 0.05);
}

.ob-checkmail-icon {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    margin: 0 auto 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #1A6C52;
    color: #ffffff;
}

.ob-checkmail-title {
    margin: 0 0 0.5rem !important;
    font-size: 1.875rem;
    font-weight: 600;
    color: #0f0d0a;
    line-height: 1.2;
}

.ob-checkmail-email {
    margin: 0 0 1.5rem !important;
    font-size: 1.05rem;
    font-weight: 600;
    color: #1A6C52;
}

.ob-checkmail-body {
    margin: 0 0 1.75rem !important;
    font-size: 1rem;
    line-height: 1.5;
    color: #5a5550;
}

.ob-checkmail-warning {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    background: rgba(184, 133, 31, 0.08);
    border-left: 3px solid #b8851f;
    border-radius: 8px;
    padding: 1rem 1.25rem;
    margin: 0 0 1.75rem;
    text-align: left;
}

.ob-checkmail-warning-icon {
    flex: 0 0 auto;
    color: #b8851f;
    display: flex;
    align-items: center;
    padding-top: 2px;
}

.ob-checkmail-warning-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    color: #0f0d0a;
    font-size: 0.9rem;
    line-height: 1.45;
}

.ob-checkmail-warning-text strong {
    font-weight: 600;
}

.ob-checkmail-warning-text span {
    color: #5a5550;
}

.ob-checkmail-warning-text em {
    background: rgba(184, 133, 31, 0.18);
    padding: 0 0.25rem;
    border-radius: 3px;
    font-style: normal;
    color: #0f0d0a;
    font-weight: 500;
}

.ob-checkmail-actions {
    display: flex;
    gap: 0.75rem;
    margin: 0 0 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.ob-checkmail-btn {
    padding: 0.875rem 1.5rem;
    border-radius: 10px;
    text-decoration: none !important;
    font-weight: 500;
    font-size: 0.95rem;
    transition: background 140ms ease, color 140ms ease;
    flex: 1 1 200px;
    text-align: center;
}

.ob-checkmail-btn-primary {
    background: #1A6C52;
    color: #ffffff !important;
}

.ob-checkmail-btn-primary:hover {
    background: #115440;
    color: #ffffff !important;
}

.ob-checkmail-btn-secondary {
    background: #ffffff;
    color: #1A6C52 !important;
    border: 1px solid rgba(26, 108, 82, 0.3);
}

.ob-checkmail-btn-secondary:hover {
    background: rgba(26, 108, 82, 0.05);
    border-color: #1A6C52;
    color: #1A6C52 !important;
}

.ob-checkmail-footer {
    margin: 0 !important;
    font-size: 0.875rem;
    color: #5a5550;
    line-height: 1.5;
}

.ob-checkmail-footer a {
    color: #1A6C52;
    text-decoration: none;
    font-weight: 500;
    border-bottom: 1px solid rgba(26, 108, 82, 0.25);
}

.ob-checkmail-footer a:hover {
    border-bottom-color: #1A6C52;
}

/* Toast */
.ob-checkmail-toast {
    padding: 0.75rem 1rem;
    border-radius: 8px;
    margin: 0 0 1.5rem;
    font-size: 0.9rem;
    text-align: left;
}

.ob-checkmail-toast-success {
    background: rgba(26, 108, 82, 0.08);
    color: #1A6C52;
    border-left: 3px solid #1A6C52;
}

.ob-checkmail-toast-info {
    background: rgba(184, 133, 31, 0.08);
    color: #b8851f;
    border-left: 3px solid #b8851f;
}

@media (max-width: 600px) {
    .ob-checkmail-card { padding: 2rem 1.5rem; }
    .ob-checkmail-title { font-size: 1.5rem; }
    .ob-checkmail-btn { flex: 1 1 100%; }
}

/* === Dashboard cards === */
/* ============================================================
 *  OBSIRIA — Dashboard cards grid (Pedidos / Direcciones / Detalles / Catálogo)
 * ============================================================ */

.ob-dashboard-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin-top: 1.5rem;
}

@media (max-width: 700px) {
    .ob-dashboard-cards {
        grid-template-columns: 1fr;
    }
}

.ob-dash-card {
    display: flex;
    flex-direction: column;
    padding: 1.25rem 1.25rem 1rem;
    background: #ffffff;
    border: 1px solid rgba(15, 13, 10, 0.08);
    border-radius: 12px;
    text-decoration: none !important;
    color: #0f0d0a;
    transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
    min-height: 180px;
}

.ob-dash-card:hover {
    border-color: rgba(26, 108, 82, 0.4);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(15, 13, 10, 0.05);
    text-decoration: none !important;
}

.ob-dash-card-head {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin-bottom: 0.875rem;
}

.ob-dash-card-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(26, 108, 82, 0.08);
    color: #1A6C52;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.ob-dash-card-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: #0f0d0a;
    line-height: 1.2;
}

.ob-dash-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.ob-dash-card-foot {
    font-size: 0.85rem;
    font-weight: 500;
    color: #1A6C52;
    border-top: 1px solid rgba(15, 13, 10, 0.06);
    padding-top: 0.75rem;
}

/* Order preview */
.ob-dash-order {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.ob-dash-order-num {
    font-size: 1rem;
    font-weight: 600;
    color: #0f0d0a;
}
.ob-dash-order-meta {
    font-size: 0.82rem;
    color: #5a5550;
}
.ob-dash-order-total {
    font-size: 0.95rem;
    font-weight: 500;
    color: #1A6C52;
    margin-top: 0.25rem;
}

/* Address preview */
.ob-dash-addr {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.9rem;
    color: #2a2a2a;
    line-height: 1.5;
}
.ob-dash-addr-line:first-child { font-weight: 500; color: #0f0d0a; }

/* Account preview */
.ob-dash-acct {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.ob-dash-acct-line { font-size: 0.95rem; color: #0f0d0a; line-height: 1.4; }
.ob-dash-acct-email { font-size: 0.82rem; color: #5a5550; }
.ob-dash-acct strong { font-weight: 600; }

/* Empty state */
.ob-dash-empty p {
    margin: 0 !important;
    font-size: 0.9rem;
    color: #5a5550;
    line-height: 1.5;
}

/* Feature card (catalog CTA) — slight visual lift */
.ob-dash-card-feature {
    background: linear-gradient(135deg, rgba(26, 108, 82, 0.04) 0%, rgba(26, 108, 82, 0.01) 100%);
    border-color: rgba(26, 108, 82, 0.18);
}
.ob-dash-card-feature .ob-dash-card-icon {
    background: rgba(26, 108, 82, 0.14);
}
.ob-dash-feature-body {
    margin: 0 !important;
    font-size: 0.9rem;
    color: #2a2a2a;
    line-height: 1.5;
}
