/* Dermainspira Boutique 2.1 — mobile-first safe WooCommerce layout */
:root {
  --di-primary: #006b78;
  --di-primary-dark: #004e5a;
  --di-accent: #cce600;
  --di-ink: #253035;
  --di-surface: #fff;
  --di-muted: #f6f7f5;
  --di-border: #e5e9e7;
  --di-danger: #ff1738;
  --di-radius: 14px;
  --di-container: 1320px;
  --di-shadow: 0 8px 26px rgba(20, 51, 55, .07);
  --di-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --di-editorial: Georgia, "Times New Roman", serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body.di-theme {
  margin: 0;
  min-width: 320px;
  overflow-x: clip;
  background: var(--di-surface);
  color: var(--di-ink);
  font-family: var(--di-font);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body.di-scroll-locked { overflow: hidden; }
img, picture, svg, video { max-width: 100%; }
img { height: auto; vertical-align: middle; }
a { color: var(--di-primary); text-decoration: none; }
a:hover { color: var(--di-primary-dark); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, h4, p { overflow-wrap: break-word; }
h1, h2, h3, h4 { margin-top: 0; color: var(--di-ink); line-height: 1.18; }
.di-container { width: min(calc(100% - 40px), var(--di-container)); margin-inline: auto; }
.di-icon { display: block; width: 24px; height: 24px; flex: 0 0 auto; }
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus, .di-skip-link:focus {
  clip: auto !important; width: auto; height: auto; margin: 8px; padding: 12px 16px;
  z-index: 100000; background: #fff; color: #000; border-radius: 8px; box-shadow: var(--di-shadow);
}
:focus-visible { outline: 3px solid color-mix(in srgb, var(--di-primary) 55%, white); outline-offset: 3px; }

.di-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.wp-block-button__link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 22px;
  border: 0;
  border-radius: 999px;
  background: var(--di-primary);
  color: #fff;
  font-weight: 750;
  line-height: 1.1;
  text-align: center;
  cursor: pointer;
  transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.di-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover { background: var(--di-primary-dark); color: #fff; transform: translateY(-1px); }
.di-button--small { min-height: 40px; padding-inline: 18px; font-size: .875rem; }
.di-button--dark { background: #293235; }
.di-button--dark:hover { background: #111719; }
.di-button--light { background: #fff; color: var(--di-primary-dark); }
.di-button--light:hover { background: #f5ffff; color: var(--di-primary-dark); }

/* Delivery strip */
.di-delivery-strip {
  position: relative;
  isolation: isolate;
  min-height: 88px;
  overflow: hidden;
  background: linear-gradient(90deg, #e7f7f4 0%, #d9f5f0 62%, #effaf6 100%);
  color: #143c42;
}
.di-delivery-background { position: absolute; inset: 0; z-index: -1; }
.di-delivery-background, .di-delivery-background img { width: 100%; height: 100%; object-fit: cover; }
.di-delivery-strip.has-custom-background::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(232, 250, 247, .58); }
.di-delivery-person, .di-delivery-products { position: absolute; inset-block: 0; height: 100%; width: auto; object-fit: cover; z-index: -1; }
.di-delivery-person { left: max(0px, calc((100vw - var(--di-container)) / 2)); }
.di-delivery-products { right: max(0px, calc((100vw - var(--di-container)) / 2)); }
.di-delivery-content {
  width: min(calc(100% - 40px), 720px);
  min-height: 88px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 36px;
  text-align: left;
}
.di-delivery-copy { display: grid; gap: 2px; }
.di-delivery-copy strong { font-family: var(--di-editorial); font-size: clamp(1.2rem, 2vw, 1.65rem); font-weight: 500; }
.di-delivery-copy span { font-size: .875rem; }
.di-delivery-button { display: inline-flex; min-height: 40px; align-items: center; padding: 8px 20px; border-radius: 999px; background: var(--di-primary-dark); color: #fff; font-size: .875rem; font-weight: 750; }
.di-delivery-button:hover { color: #fff; background: var(--di-primary); }

/* Header */
.di-site-header { position: relative; z-index: 80; background: #fff; box-shadow: 0 1px 0 var(--di-border); }
.di-site-header.is-sticky { position: sticky; top: 0; }
.admin-bar .di-site-header.is-sticky { top: 32px; }
.di-header-main {
  min-height: 94px;
  display: grid;
  grid-template-columns: minmax(200px, 250px) minmax(260px, 1fr) auto;
  align-items: center;
  gap: clamp(22px, 4vw, 64px);
}
.di-logo { display: flex; min-width: 0; align-items: center; }
.di-logo-image { display: block; width: min(100%, 230px); max-height: 62px; object-fit: contain; object-position: left center; }
.di-menu-toggle { display: none; }
.di-product-search { position: relative; margin: 0; }
.di-product-search input[type="search"] {
  display: block;
  width: 100%;
  height: 48px;
  margin: 0;
  padding: 0 54px 0 20px;
  border: 1px solid #d9e3e2;
  border-radius: 999px;
  background: #fff;
  color: var(--di-ink);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, .025);
}
.di-product-search input[type="search"]::placeholder { color: #858f91; opacity: 1; }
.di-product-search button {
  position: absolute;
  top: 2px; right: 3px;
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border: 0; border-radius: 50%;
  background: transparent; color: var(--di-primary);
  cursor: pointer;
}
.di-header-actions { display: flex; align-items: center; gap: 2px; }
.di-header-actions > a {
  position: relative;
  min-width: 56px; min-height: 58px;
  padding: 6px 8px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  border-radius: 10px; color: var(--di-ink); font-size: .7rem; font-weight: 650;
}
.di-header-actions > a:hover { background: var(--di-muted); color: var(--di-primary); }
.di-header-actions .di-icon { width: 25px; height: 25px; }
.di-cart-count {
  position: absolute;
  top: 3px; right: 4px;
  min-width: 20px; height: 20px;
  padding-inline: 5px;
  display: grid; place-items: center;
  border: 2px solid #fff; border-radius: 999px;
  background: var(--di-primary); color: #fff;
  font-size: .68rem; font-weight: 800;
}
.di-mobile-search, .di-mobile-category-nav { display: none; }
.di-desktop-navigation { border-top: 1px solid #f0f2f1; }
.di-menu { margin: 0; padding: 0; list-style: none; }
.di-desktop-navigation .di-menu { min-height: 56px; display: flex; align-items: stretch; justify-content: center; gap: clamp(20px, 3.6vw, 54px); }
.di-desktop-navigation .di-menu > li { position: relative; display: flex; align-items: stretch; }
.di-desktop-navigation .di-menu > li > a { display: flex; align-items: center; color: #315058; font-size: .84rem; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; }
.di-desktop-navigation .di-menu > li:last-child > a { color: #ec2643; }
.di-desktop-navigation .sub-menu {
  position: absolute; top: calc(100% - 1px); left: -16px;
  min-width: 220px; margin: 0; padding: 10px;
  list-style: none; visibility: hidden; opacity: 0; transform: translateY(8px);
  border: 1px solid var(--di-border); border-radius: 12px; background: #fff; box-shadow: var(--di-shadow);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.di-desktop-navigation li:hover > .sub-menu, .di-desktop-navigation li:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: none; }
.di-desktop-navigation .sub-menu a { display: block; padding: 10px 12px; border-radius: 8px; color: var(--di-ink); }
.di-desktop-navigation .sub-menu a:hover { background: var(--di-muted); }
.di-menu-backdrop, .di-mobile-drawer { display: none; }

/* Campaign carousel */
.di-campaigns-section { padding: 22px 0 8px; }
.di-campaigns-shell { position: relative; }
.di-campaign-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; scroll-snap-type: x mandatory; }
.di-campaign {
  position: relative; min-width: 0; overflow: hidden;
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(0, 80, 90, .08); border-radius: var(--di-radius);
  background: var(--di-campaign-bg, #eef7f5); box-shadow: 0 5px 18px rgba(20, 51, 55, .05);
  scroll-snap-align: start;
}
.di-campaign-art-link, .di-campaign-art, .di-campaign-art img { display: block; width: 100%; height: 100%; }
.di-campaign-art img { object-fit: cover; }
.di-campaign--editable { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; }
.di-campaign-copy { position: relative; z-index: 2; padding: clamp(18px, 2vw, 34px); }
.di-campaign-copy .di-eyebrow { display: block; margin-bottom: 8px; color: var(--di-primary-dark); font-size: .75rem; font-weight: 850; letter-spacing: .09em; }
.di-campaign-copy h2 { max-width: 10ch; margin-bottom: 10px; font-family: var(--di-editorial); font-size: clamp(1.45rem, 2.2vw, 2.45rem); font-weight: 500; }
.di-campaign-copy p { margin: 0 0 18px; font-size: clamp(.8rem, 1.2vw, 1rem); }
.di-campaign-product { min-width: 0; align-self: stretch; }
.di-campaign-product, .di-campaign-product img { display: block; width: 100%; height: 100%; }
.di-campaign-product img { padding: 10%; object-fit: contain; mix-blend-mode: multiply; }
.di-carousel-arrow {
  position: absolute; z-index: 4; top: 50%; transform: translateY(-50%);
  width: 44px; height: 44px; display: grid; place-items: center;
  border: 1px solid var(--di-border); border-radius: 50%; background: rgba(255,255,255,.94); color: var(--di-primary-dark); box-shadow: var(--di-shadow); cursor: pointer;
}
.di-carousel-arrow:disabled { opacity: .35; cursor: default; }
.di-carousel-prev { left: -18px; }
.di-carousel-next { right: -18px; }
.di-carousel-dots { display: none; }

/* Home sections */
.di-home-section { padding-block: 30px; }
.di-section-heading { min-height: 42px; margin-bottom: 18px; display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.di-section-heading h2 { margin: 0; font-family: var(--di-editorial); font-size: clamp(1.6rem, 2.3vw, 2.15rem); font-weight: 500; }
.di-section-heading > a { display: inline-flex; align-items: center; gap: 3px; white-space: nowrap; font-size: .875rem; font-weight: 750; }
.di-section-heading > a .di-icon { width: 17px; height: 17px; }

.di-packs-layout { display: grid; grid-template-columns: minmax(240px, 285px) minmax(0, 1fr); gap: 16px; align-items: stretch; }
.di-pack-promo {
  position: relative; min-height: 430px; padding: 25px 22px 20px;
  display: flex; flex-direction: column; align-items: center; overflow: hidden;
  border-radius: var(--di-radius); background: var(--di-promo-bg, var(--di-accent)); text-align: center;
}
.di-pack-copy { position: relative; z-index: 2; }
.di-pack-copy h3 { margin-bottom: 8px; font-family: var(--di-editorial); font-size: clamp(1.55rem, 2vw, 2rem); font-weight: 500; text-transform: uppercase; }
.di-pack-copy p { margin: 0; font-size: .875rem; }
.di-pack-promo > img { width: 80%; min-height: 0; flex: 1 1 auto; object-fit: contain; mix-blend-mode: multiply; }
.di-pack-promo .di-button { position: relative; z-index: 2; width: max-content; }

/* WooCommerce product cards */
.woocommerce .products ul, .woocommerce ul.products { margin: 0; padding: 0; }
.di-home-products, .di-home-products > .woocommerce { min-width: 0; height: 100%; }
.di-home-products ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}
.di-home-products ul.products::before,
.di-home-products ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after { display: none !important; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  position: relative;
  width: auto !important;
  min-width: 0;
  height: 100%;
  margin: 0 !important;
  padding: 14px;
  display: flex;
  flex-direction: column;
  float: none !important;
  overflow: hidden;
  border: 1px solid var(--di-border);
  border-radius: 12px;
  background: var(--di-surface);
  box-shadow: 0 3px 12px rgba(20, 51, 55, .055);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.woocommerce ul.products li.product:hover { transform: translateY(-3px); border-color: #cbd9d7; box-shadow: var(--di-shadow); }
.woocommerce ul.products li.product .woocommerce-LoopProduct-link { min-width: 0; display: flex; flex: 1 1 auto; flex-direction: column; color: var(--di-ink); }
.woocommerce ul.products li.product a img,
.di-demo-image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  margin: 0 0 12px !important;
  object-fit: contain;
  border-radius: 8px;
  background: #fff;
}
.di-demo-image img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.woocommerce span.onsale {
  position: absolute; z-index: 3;
  top: 12px !important; left: 12px !important; right: auto !important;
  min-width: 0; min-height: 0; margin: 0 !important; padding: 5px 8px;
  border-radius: 6px; background: var(--di-danger); color: #fff;
  font-size: .75rem; font-weight: 850; line-height: 1;
}
.di-product-brand { display: block; min-height: 19px; margin-bottom: 4px; color: #8a9293; font-size: .75rem; line-height: 1.35; }
.di-gift-label { align-self: flex-start; margin-bottom: 6px; padding: 4px 8px; border-radius: 6px; background: #f2f3f1; color: #596264; font-size: .69rem; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  display: -webkit-box; min-height: 44px; margin: 0 0 9px; padding: 0;
  overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  color: #333b3e; font-size: .94rem; font-weight: 680; line-height: 1.42;
}
.woocommerce ul.products li.product .star-rating { margin: 0 0 8px; color: #efaa16; font-size: .78rem; }
.woocommerce ul.products li.product .price { margin: auto 0 12px; color: var(--di-ink); font-size: 1.08rem; font-weight: 800; }
.woocommerce ul.products li.product .price del { margin-left: 4px; color: #92999a; font-size: .76rem; font-weight: 450; opacity: 1; }
.woocommerce ul.products li.product .price ins { color: var(--di-ink); text-decoration: none; }
.woocommerce ul.products li.product .button { width: 100%; margin: 0; border-radius: 8px; font-size: .82rem; }
.woocommerce ul.products li.product .added_to_cart { min-height: 40px; display: flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 700; }
.di-new-label-context ul.products li.product::before {
  content: "Nuevo"; position: absolute; z-index: 3; top: 12px; left: 12px;
  padding: 4px 8px; border: 1px solid var(--di-primary); border-radius: 5px;
  background: #fff; color: var(--di-primary); font-size: .68rem; font-weight: 750;
}
.di-new-label-context ul.products li.product.sale::before { left: 78px; }

.di-wide-promo {
  min-height: 150px; margin-block: 24px 18px; padding: 16px clamp(24px, 4vw, 60px);
  display: grid; grid-template-columns: 150px 250px minmax(230px, 1fr) auto; align-items: center; gap: clamp(18px, 3vw, 48px);
  overflow: hidden; border-radius: 2px; background: var(--di-wide-bg, #08a6bd); color: #fff;
}
.di-wide-brand { font-size: 1.2rem; font-weight: 800; line-height: 1; }
.di-wide-brand small { display: block; margin-top: 4px; font-size: .42rem; letter-spacing: .08em; }
.di-wide-promo > img { width: 100%; height: 120px; object-fit: contain; mix-blend-mode: multiply; }
.di-wide-copy h2 { max-width: 16ch; margin: 0 0 4px; color: #fff; font-size: clamp(1.45rem, 2.3vw, 2.2rem); text-transform: uppercase; }
.di-wide-copy p { margin: 0; font-weight: 650; }
.di-wide-copy small { display: block; margin-top: 8px; opacity: .85; }

.di-category-promos { padding-block: 18px 26px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.di-category-promo {
  min-height: 230px; padding: 28px;
  display: grid; grid-template-columns: 1fr minmax(180px, .8fr); align-items: center; gap: 20px;
  overflow: hidden; border-radius: var(--di-radius); background: var(--di-category-bg, #f3efec);
}
.di-category-copy { position: relative; z-index: 2; }
.di-category-copy h2 { margin-bottom: 8px; font-family: var(--di-editorial); font-size: clamp(1.6rem, 2.4vw, 2.2rem); font-weight: 500; }
.di-category-copy p { max-width: 34ch; margin: 0 0 18px; font-size: .875rem; }
.di-category-promo > img { width: 100%; height: 190px; object-fit: contain; mix-blend-mode: multiply; }

.di-inspiration {
  position: relative; isolation: isolate;
  min-height: clamp(390px, 34vw, 510px); margin-block: 30px 24px;
  display: flex; align-items: center;
  overflow: hidden; border: 1px solid rgba(0, 107, 120, .12); border-radius: var(--di-radius);
  background: var(--di-inspiration-bg, #e8f5f3); box-shadow: 0 12px 34px rgba(18, 69, 73, .08);
}
.di-inspiration::after {
  content: ""; position: absolute; z-index: -1; inset: 0;
  background: linear-gradient(90deg, rgba(236, 247, 245, .72) 0%, rgba(236, 247, 245, .26) 42%, rgba(236, 247, 245, 0) 68%);
  pointer-events: none;
}
.di-inspiration-copy {
  position: relative; z-index: 2;
  width: min(43%, 500px); margin: clamp(24px, 4vw, 58px); padding: clamp(28px, 4vw, 52px);
  border: 1px solid rgba(255,255,255,.78); border-radius: calc(var(--di-radius) - 2px);
  background: rgba(255,255,255,.88); box-shadow: 0 16px 44px rgba(24, 67, 69, .1);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.di-inspiration-copy::before { content: ""; position: absolute; top: 28px; bottom: 28px; left: 0; width: 4px; border-radius: 0 5px 5px 0; background: var(--di-primary); }
.di-inspiration-copy h2 { max-width: 9ch; margin-bottom: 10px; color: var(--di-primary-dark); font-family: var(--di-editorial); font-size: clamp(2.45rem, 4vw, 4.25rem); font-weight: 500; }
.di-inspiration-copy p { max-width: 25ch; margin: 0 0 24px; color: #315057; font-size: clamp(1rem, 1.35vw, 1.2rem); }
.di-inspiration-image { position: absolute; z-index: -2; inset: 0; display: block; }
.di-inspiration-image, .di-inspiration-image img { width: 100%; height: 100%; }
.di-inspiration-image img { display: block; object-fit: cover; object-position: center center; }

.di-benefits { margin-block: 28px 34px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--di-border); border-radius: 10px; background: #fff; }
.di-benefit { min-height: 88px; padding: 16px; display: flex; align-items: center; justify-content: center; gap: 12px; border-right: 1px solid var(--di-border); color: var(--di-primary-dark); text-align: left; }
.di-benefit:last-child { border-right: 0; }
.di-benefit .di-icon { width: 34px; height: 34px; }
.di-benefit span { color: #285865; font-size: .86rem; font-weight: 750; }

/* Footer */
.di-site-footer { background: linear-gradient(135deg, #00586a, #003d50); color: rgba(255,255,255,.9); }
.di-footer-grid { padding-block: 48px 34px; display: grid; grid-template-columns: 1.15fr 1fr 1.2fr .75fr; gap: clamp(30px, 5vw, 78px); }
.di-footer-logo { display: block; width: min(240px, 100%); margin-bottom: 14px; filter: brightness(0) invert(1); }
.di-footer-logo .di-logo-image { width: 100%; max-height: 54px; object-position: left center; }
.di-footer-brand p { max-width: 30ch; margin: 0; font-size: .875rem; }
.di-footer-heading { width: 100%; min-height: 32px; margin: 0 0 12px; padding: 0; display: flex; align-items: center; justify-content: space-between; border: 0; background: transparent; color: #fff; font-size: .78rem; font-weight: 850; letter-spacing: .045em; text-align: left; text-transform: uppercase; pointer-events: none; }
.di-footer-heading .di-icon { display: none; width: 18px; height: 18px; }
.di-footer-panel ul { margin: 0; padding: 0; list-style: none; }
.di-footer-panel li { margin-bottom: 8px; font-size: .86rem; }
.di-footer-panel a { color: rgba(255,255,255,.9); }
.di-footer-panel a:hover { color: #fff; text-decoration: underline; }
.di-social-links { display: grid; gap: 11px; }
.di-social-links a { display: flex; align-items: center; gap: 9px; }
.di-social-links .di-icon { width: 22px; height: 22px; }
.di-footer-bottom { min-height: 58px; display: flex; align-items: center; justify-content: center; border-top: 1px solid rgba(255,255,255,.2); text-align: center; }
.di-footer-bottom p { margin: 0; font-size: .78rem; }
.di-whatsapp-float {
  position: fixed; z-index: 70; right: 22px; bottom: 22px;
  width: 58px; height: 58px; padding: 13px;
  display: grid; place-items: center;
  border: 3px solid #fff; border-radius: 50%; background: #25d366; color: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.2);
}
.di-whatsapp-float:hover { color: #fff; transform: translateY(-2px); }

/* General content */
.di-main { padding-block: 44px 64px; }
.di-content { max-width: 920px; }
.di-content h1, .di-page-heading h1 { font-family: var(--di-editorial); font-size: clamp(2.2rem, 5vw, 4rem); font-weight: 500; }
.di-content p, .di-content li { font-size: 1rem; }
.di-content img { border-radius: var(--di-radius); }
.di-content > article > * + * { margin-top: 1.2em; }
.di-post-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.di-post-card { overflow: hidden; border: 1px solid var(--di-border); border-radius: var(--di-radius); background: #fff; box-shadow: 0 4px 16px rgba(20,51,55,.05); }
.di-post-card > div { padding: 22px; }
.di-post-card img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.di-post-card h2 { margin: 0; font-family: var(--di-editorial); font-weight: 500; }
.di-empty-state { padding-block: 80px; text-align: center; }
.di-empty-state > span { display: block; color: var(--di-primary); font-family: var(--di-editorial); font-size: clamp(4rem, 12vw, 8rem); }
.di-empty-state p { margin-bottom: 26px; }

/* Shop archive */
.di-woocommerce-main { padding-top: 34px; }
.di-shop-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 34px; align-items: start; }
.di-shop-sidebar { position: sticky; top: 24px; min-width: 0; padding: 22px; border: 1px solid var(--di-border); border-radius: var(--di-radius); background: #fff; }
.is-sticky + .di-menu-backdrop + .di-mobile-drawer + .di-woocommerce-main .di-shop-sidebar { top: 124px; }
.di-filter-drawer-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.di-filter-drawer-head strong { font-family: var(--di-editorial); font-size: 1.5rem; font-weight: 500; }
.di-filter-close { display: none; width: 44px; height: 44px; place-items: center; border: 0; border-radius: 50%; background: var(--di-muted); color: var(--di-ink); }
.di-filter-widget + .di-filter-widget { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--di-border); }
.di-filter-title { margin-bottom: 12px; font-size: 1rem; }
.di-filter-list, .di-filter-widget ul { margin: 0; padding: 0; list-style: none; }
.di-filter-list li, .di-filter-widget li { margin: 7px 0; }
.di-filter-list a, .di-filter-widget a { color: #4a5557; font-size: .9rem; }
.di-filter-help { margin-top: 18px; color: #778083; font-size: .78rem; }
.di-shop-products { min-width: 0; }
.di-shop-mobile-tools { display: none; }
.woocommerce .woocommerce-breadcrumb { margin-bottom: 16px; color: #798184; font-size: .8rem; }
.woocommerce .woocommerce-breadcrumb a { color: var(--di-primary); }
.woocommerce-products-header__title.page-title { margin-bottom: 22px; font-family: var(--di-editorial); font-size: clamp(2.2rem, 5vw, 4rem); font-weight: 500; }
.woocommerce .woocommerce-result-count { margin-top: 11px; color: #737c7e; font-size: .84rem; }
.woocommerce .woocommerce-ordering { margin-bottom: 22px; }
.woocommerce .woocommerce-ordering select { min-height: 44px; padding: 8px 40px 8px 14px; border: 1px solid var(--di-border); border-radius: 9px; background: #fff; }
.woocommerce nav.woocommerce-pagination { margin-top: 32px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; gap: 6px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--di-border); border-radius: 8px; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--di-primary); color: #fff; }

/* Single product, cart and checkout */
.woocommerce div.product { min-width: 0; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { margin-bottom: 38px; }
.woocommerce div.product div.images img { border-radius: var(--di-radius); }
.woocommerce div.product .product_title { font-family: var(--di-editorial); font-size: clamp(2rem, 4.5vw, 3.6rem); font-weight: 500; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--di-primary-dark); font-size: 1.5rem; font-weight: 800; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 10px; }
.woocommerce .quantity .qty { min-height: 44px; border: 1px solid var(--di-border); border-radius: 8px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding-left: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-color: var(--di-border); background: var(--di-muted); }
.woocommerce div.product .woocommerce-tabs .panel { padding-block: 14px; }
.woocommerce table.shop_table { border-color: var(--di-border); border-radius: 10px; }
.woocommerce-cart table.cart img { width: 78px; border-radius: 8px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
  min-height: 48px; padding: 10px 13px; border: 1px solid #ccd6d5; border-radius: 8px; background: #fff;
}
.woocommerce-info, .woocommerce-message, .woocommerce-error { border-radius: 9px; background: var(--di-muted); }
.woocommerce-message { border-top-color: var(--di-primary); }
.woocommerce-info { border-top-color: #3396ad; }
.woocommerce-error { border-top-color: var(--di-danger); }
.wc-block-cart, .wc-block-checkout { max-width: var(--di-container); margin-inline: auto; padding: 28px 20px 60px; }
.wc-block-components-button { min-height: 48px; border-radius: 999px; }

/* Responsive */
@media (max-width: 1023px) {
  .di-shop-mobile-tools { margin-bottom: 14px; display: flex; justify-content: flex-end; }
  .di-filter-open { min-height: 44px; padding: 8px 14px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--di-border); border-radius: 8px; background: #fff; color: var(--di-ink); font-weight: 700; }
  .di-filter-open .di-icon { width: 20px; height: 20px; }
  .di-shop-layout { display: block; }
  .di-shop-sidebar {
    position: fixed; z-index: 220; inset: 0 auto 0 0;
    width: min(88vw, 360px); padding: 18px; overflow-y: auto;
    border: 0; border-radius: 0; box-shadow: 12px 0 30px rgba(0,0,0,.18);
    transform: translateX(-105%); visibility: hidden; transition: transform .24s ease, visibility .24s;
  }
  .di-shop-sidebar.is-open { transform: none; visibility: visible; }
  .di-filter-close { display: grid; }
  .di-filter-backdrop { position: fixed; z-index: 210; inset: 0; background: rgba(10,28,31,.42); }
  .di-filter-backdrop[hidden] { display: none; }
}

@media (max-width: 1180px) {
  .di-header-main { grid-template-columns: 210px minmax(220px, 1fr) auto; gap: 24px; }
  .di-header-actions > a > span:not(.di-cart-count) { display: none; }
  .di-header-actions > a { min-width: 48px; min-height: 48px; }
  .di-packs-layout { grid-template-columns: 240px minmax(0, 1fr); }
  .di-pack-promo { min-height: 390px; }
  .di-wide-promo { grid-template-columns: 120px 190px 1fr auto; gap: 20px; }
}

@media (max-width: 900px) and (min-width: 768px) {
  .di-container { width: min(calc(100% - 30px), var(--di-container)); }
  .di-header-main { grid-template-columns: 190px minmax(200px, 1fr) auto; gap: 16px; }
  .di-desktop-navigation .di-menu { gap: 18px; }
  .di-desktop-navigation .di-menu > li > a { font-size: .72rem; }
  .di-campaign-track { gap: 10px; }
  .di-carousel-prev { left: 6px; }
  .di-carousel-next { right: 6px; }
  .di-packs-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 10px; }
  .di-home-products ul.products, .woocommerce-page ul.products { gap: 10px; }
  .woocommerce ul.products li.product, .woocommerce-page ul.products li.product { padding: 10px; }
  .di-wide-promo { grid-template-columns: 100px 150px 1fr; }
  .di-wide-promo > .di-button { grid-column: 3; justify-self: start; }
  .di-category-promo { grid-template-columns: 1fr 130px; padding: 22px; }
  .di-footer-grid { gap: 26px; }
}

@media (max-width: 767px) {
  :root { --di-radius: 12px; }
  html { scroll-padding-top: 90px; }
  .di-container { width: calc(100% - 32px); }
  .admin-bar .di-site-header.is-sticky { top: 46px; }

  .di-delivery-strip, .di-delivery-content { min-height: 82px; }
  .di-delivery-strip { background: linear-gradient(90deg, #e5f8f4, #dcf5f1); }
  .di-delivery-person { left: 0; width: 132px; height: 82px; object-position: center; }
  .di-delivery-products { display: none; }
  .di-delivery-content { width: 100%; padding: 8px 12px 8px 144px; justify-content: flex-start; }
  .di-delivery-copy { min-width: 0; }
  .di-delivery-copy strong { font-family: var(--di-font); font-size: .98rem; font-weight: 780; line-height: 1.15; }
  .di-delivery-copy span { margin-top: 3px; font-size: .71rem; line-height: 1.3; }
  .di-delivery-button { display: none; }
  .di-delivery-strip.has-custom-background .di-delivery-content { padding-left: 16px; }
  .di-delivery-strip.has-custom-background::after { background: rgba(235, 250, 247, .72); }

  .di-header-main { min-height: 70px; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 8px; }
  .di-menu-toggle {
    width: 44px; height: 44px; padding: 0; display: grid; place-items: center;
    border: 0; border-radius: 50%; background: transparent; color: var(--di-ink); cursor: pointer;
  }
  .di-menu-toggle .di-icon { width: 29px; height: 29px; }
  .di-menu-close-icon { display: none; }
  .di-menu-toggle[aria-expanded="true"] .di-menu-open-icon { display: none; }
  .di-menu-toggle[aria-expanded="true"] .di-menu-close-icon { display: block; }
  .di-logo { justify-content: center; }
  .di-logo-image { width: min(100%, 184px); max-height: 48px; object-position: center; }
  .di-header-search, .di-desktop-navigation { display: none; }
  .di-header-actions { gap: 0; }
  .di-header-actions > a { min-width: 44px; min-height: 44px; padding: 5px; }
  .di-header-actions > a > span:not(.di-cart-count) { display: none; }
  .di-header-actions .di-wishlist-link { display: none; }
  .di-header-actions .di-icon { width: 25px; height: 25px; }
  .di-cart-count { top: -1px; right: -1px; }
  .di-mobile-search { display: block; padding-bottom: 11px; }
  .di-product-search input[type="search"] { height: 46px; padding-left: 17px; font-size: .88rem; }
  .di-mobile-category-nav { display: block; width: 100%; overflow: hidden; border-top: 1px solid #f1f3f2; }
  .di-category-chips {
    width: 100%; margin: 0; padding: 10px 16px 12px;
    display: flex; gap: 8px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x proximity;
    list-style: none; scrollbar-width: none;
  }
  .di-category-chips::-webkit-scrollbar { display: none; }
  .di-category-chips li { flex: 0 0 auto; scroll-snap-align: start; }
  .di-category-chips a { min-height: 38px; padding: 8px 16px; display: flex; align-items: center; border: 1px solid #dce4e3; border-radius: 999px; color: #3f4a4c; font-size: .78rem; font-weight: 650; white-space: nowrap; }
  .di-category-chips li:last-child a { color: #e82643; }

  .di-menu-backdrop { position: fixed; z-index: 190; inset: 0; display: block; background: rgba(10, 28, 31, .42); opacity: 0; transition: opacity .2s ease; }
  .di-menu-backdrop[hidden] { display: none; }
  .di-menu-backdrop.is-visible { opacity: 1; }
  .di-mobile-drawer {
    position: fixed; z-index: 200; inset: 0 auto 0 0;
    width: min(88vw, 360px); padding: 18px;
    display: block; overflow-y: auto;
    background: #fff; box-shadow: 12px 0 30px rgba(0,0,0,.16);
    transform: translateX(-105%); visibility: hidden; transition: transform .24s ease, visibility .24s;
  }
  .di-mobile-drawer.is-open { transform: none; visibility: visible; }
  .di-drawer-head { min-height: 50px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--di-border); }
  .di-drawer-head strong { font-family: var(--di-editorial); font-size: 1.4rem; }
  .di-drawer-head button { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--di-muted); }
  .di-mobile-drawer .menu, .di-mobile-drawer .di-menu, .di-drawer-menu { margin: 14px 0; padding: 0; list-style: none; }
  .di-mobile-drawer li { border-bottom: 1px solid #edf0ef; }
  .di-mobile-drawer li a { min-height: 48px; display: flex; align-items: center; color: var(--di-ink); font-weight: 650; }
  .di-mobile-drawer .sub-menu { margin: 0 0 8px; padding-left: 16px; list-style: none; }
  .di-mobile-drawer .sub-menu li { border: 0; }
  .di-drawer-links { padding-top: 10px; display: grid; gap: 4px; border-top: 1px solid var(--di-border); }
  .di-drawer-links a { min-height: 46px; display: flex; align-items: center; gap: 10px; color: var(--di-ink); }

  .di-campaigns-section { padding: 12px 0 6px; }
  .di-campaigns-shell { width: 100%; }
  .di-campaign-track {
    display: flex; gap: 12px; padding-inline: 16px 32px;
    overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none;
  }
  .di-campaign-track::-webkit-scrollbar { display: none; }
  .di-campaign { flex: 0 0 calc(100% - 44px); aspect-ratio: 4 / 5; border-radius: 12px; }
  .di-campaign--editable { grid-template: minmax(0, 1fr) auto / 1fr; }
  .di-campaign-copy { padding: 25px 24px 10px; }
  .di-campaign-copy h2 { max-width: 12ch; font-size: clamp(2rem, 9vw, 2.7rem); }
  .di-campaign-copy p { max-width: 28ch; font-size: .9rem; }
  .di-campaign-product { min-height: 0; }
  .di-campaign-product img { padding: 2% 16% 8%; }
  .di-carousel-arrow { display: none; }
  .di-carousel-dots { min-height: 34px; display: flex; align-items: center; justify-content: center; gap: 9px; }
  .di-carousel-dots button { width: 9px; height: 9px; padding: 0; border: 1px solid var(--di-primary); border-radius: 50%; background: #fff; cursor: pointer; }
  .di-carousel-dots button.is-active { background: var(--di-primary); }

  .di-home-section { padding-block: 22px; }
  .di-section-heading { min-height: 34px; margin-bottom: 13px; align-items: center; }
  .di-section-heading h2 { font-size: 1.55rem; }
  .di-section-heading > a { font-size: .78rem; }
  .di-packs-layout { display: block; }
  .di-pack-promo { min-height: 330px; padding: 22px 20px 18px; }
  .di-pack-copy h3 { font-size: 1.75rem; }
  .di-pack-promo > img { width: min(72%, 250px); }
  .di-packs-products { width: calc(100vw - 16px); margin-top: 12px; overflow: hidden; }
  .di-packs-products .woocommerce { width: 100%; }
  .di-packs-products ul.products {
    display: flex !important; gap: 10px; padding: 2px 28px 10px 0;
    overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
  }
  .di-packs-products ul.products::-webkit-scrollbar { display: none; }
  .di-packs-products ul.products li.product { flex: 0 0 min(72vw, 270px); scroll-snap-align: start; }

  .di-home-products ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product { padding: 10px; border-radius: 10px; }
  .woocommerce ul.products li.product:hover { transform: none; }
  .woocommerce ul.products li.product a img, .di-demo-image { margin-bottom: 8px !important; }
  .woocommerce span.onsale { top: 8px !important; left: 8px !important; padding: 4px 6px; font-size: .68rem; }
  .di-product-brand { min-height: 17px; font-size: .68rem; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 42px; font-size: .82rem; line-height: 1.35; }
  .woocommerce ul.products li.product .price { margin-bottom: 9px; font-size: .95rem; }
  .woocommerce ul.products li.product .price del { display: inline; font-size: .68rem; }
  .woocommerce ul.products li.product .button { min-height: 44px; padding: 8px; font-size: .75rem; }
  .di-new-label-context ul.products li.product::before { top: 8px; left: 8px; font-size: .62rem; }
  .di-new-label-context ul.products li.product.sale::before { left: 68px; }

  .di-wide-promo {
    min-height: 245px; margin-block: 18px; padding: 18px;
    grid-template-columns: minmax(100px, .85fr) minmax(145px, 1.15fr); grid-template-rows: auto 1fr auto; gap: 8px 12px;
    border-radius: 10px;
  }
  .di-wide-brand { grid-column: 1 / -1; font-size: 1rem; }
  .di-wide-promo > img { grid-column: 1; grid-row: 2 / 4; height: 150px; align-self: center; }
  .di-wide-copy { grid-column: 2; grid-row: 2; align-self: end; }
  .di-wide-copy h2 { font-size: 1.35rem; }
  .di-wide-copy p { font-size: .8rem; }
  .di-wide-copy small { font-size: .64rem; }
  .di-wide-promo > .di-button { grid-column: 2; grid-row: 3; align-self: start; min-height: 42px; padding-inline: 14px; font-size: .78rem; }

  .di-category-promos { padding-block: 10px 20px; grid-template-columns: 1fr; gap: 12px; }
  .di-category-promo { min-height: 210px; padding: 22px; grid-template-columns: minmax(0, 1fr) 42%; gap: 8px; }
  .di-category-copy h2 { font-size: 1.7rem; }
  .di-category-copy p { font-size: .78rem; }
  .di-category-promo > img { height: 175px; }

  .di-inspiration { min-height: 0; margin-block: 22px; display: grid; grid-template-columns: 1fr; background: var(--di-inspiration-bg, #e8f5f3); box-shadow: none; }
  .di-inspiration::after { display: none; }
  .di-inspiration-image { position: relative; z-index: 0; inset: auto; order: -1; height: clamp(230px, 68vw, 310px); }
  .di-inspiration-image img { object-position: 70% center; }
  .di-inspiration-copy { width: auto; margin: 0; padding: 27px 23px 30px; border: 0; border-radius: 0; background: rgba(255,255,255,.54); box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .di-inspiration-copy::before { top: 27px; bottom: 30px; }
  .di-inspiration-copy h2 { font-size: 2.45rem; }
  .di-inspiration-copy p { font-size: .98rem; }

  .di-benefits { margin-block: 22px 28px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .di-benefit { min-height: 78px; padding: 12px 9px; justify-content: flex-start; gap: 8px; border-bottom: 1px solid var(--di-border); }
  .di-benefit:nth-child(2) { border-right: 0; }
  .di-benefit:nth-child(3), .di-benefit:nth-child(4) { border-bottom: 0; }
  .di-benefit .di-icon { width: 28px; height: 28px; }
  .di-benefit span { font-size: .71rem; }

  .di-footer-grid { padding-block: 30px 16px; grid-template-columns: 1fr; gap: 12px; }
  .di-footer-logo { width: 205px; margin-bottom: 8px; }
  .di-footer-brand p { font-size: .8rem; }
  .di-footer-section { border-top: 1px solid rgba(255,255,255,.18); }
  .di-footer-heading { min-height: 48px; margin: 0; pointer-events: auto; cursor: pointer; }
  .di-footer-heading .di-icon { display: block; transition: transform .2s ease; }
  .di-footer-heading[aria-expanded="true"] .di-icon { transform: rotate(180deg); }
  .di-footer-panel { padding: 0 0 12px; }
  .di-footer-panel[hidden] { display: none; }
  .di-footer-panel li { font-size: .82rem; }
  .di-social-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .di-social-links a { min-height: 44px; }
  .di-footer-bottom { min-height: 54px; }
  .di-whatsapp-float { right: 16px; bottom: 16px; width: 54px; height: 54px; }

  .di-main { padding-block: 28px 46px; }
  .di-content { width: calc(100% - 32px); }
  .di-post-grid { grid-template-columns: 1fr; }
  .di-shop-mobile-tools { margin-bottom: 12px; display: flex; justify-content: flex-end; }
  .di-filter-open { min-height: 44px; padding: 8px 14px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--di-border); border-radius: 8px; background: #fff; color: var(--di-ink); font-weight: 700; }
  .di-filter-open .di-icon { width: 20px; height: 20px; }
  .di-shop-layout { display: block; }
  .di-shop-sidebar {
    position: fixed; z-index: 220; inset: 0 auto 0 0;
    width: min(88vw, 360px); padding: 18px; overflow-y: auto;
    border: 0; border-radius: 0; box-shadow: 12px 0 30px rgba(0,0,0,.18);
    transform: translateX(-105%); visibility: hidden; transition: transform .24s ease, visibility .24s;
  }
  .di-shop-sidebar.is-open { transform: none; visibility: visible; }
  .di-filter-close { display: grid; }
  .di-filter-backdrop { position: fixed; z-index: 210; inset: 0; background: rgba(10,28,31,.42); }
  .di-filter-backdrop[hidden] { display: none; }
  .woocommerce .woocommerce-result-count { float: none; margin: 0 0 10px; }
  .woocommerce .woocommerce-ordering { float: none; width: 100%; margin: 0 0 18px; }
  .woocommerce .woocommerce-ordering select { width: 100%; }
  .woocommerce-products-header__title.page-title { font-size: 2.25rem; }
  .woocommerce div.product div.images, .woocommerce div.product div.summary { width: 100%; float: none; }
  .woocommerce div.product form.cart .button { flex: 1 1 170px; }
  .woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; overflow-x: auto; }
  .woocommerce div.product .woocommerce-tabs ul.tabs li { flex: 0 0 auto; }
  .woocommerce-cart table.cart .product-thumbnail { display: none; }
  .woocommerce table.shop_table_responsive tr td, .woocommerce-page table.shop_table_responsive tr td { padding-block: 12px; }
}

@media (max-width: 374px) {
  .di-container { width: calc(100% - 24px); }
  .di-delivery-person { width: 116px; }
  .di-delivery-content { padding-left: 126px; padding-right: 8px; }
  .di-delivery-copy strong { font-size: .88rem; }
  .di-logo-image { width: min(100%, 160px); }
  .di-header-actions > a { min-width: 40px; }
  .di-campaign-track { padding-left: 12px; }
  .di-campaign { flex-basis: calc(100% - 38px); }
  .di-category-promo { grid-template-columns: minmax(0, 1fr) 38%; padding: 18px; }
  .di-wide-promo { padding: 14px; grid-template-columns: 42% 58%; }
  .di-benefit { padding-inline: 7px; }
}

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