/* Customer services remain in the existing olive icon-card system. */
#op-panel-customer{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.op-customer-service-item{box-sizing:border-box;min-width:0}
.op-customer-service-item svg{color:#4e6137;flex-shrink:0}
.op-customer-service-item .op-customer-copy{min-width:0}
.op-customer-service-item .op-copy{white-space:normal;overflow-wrap:break-word}
html body .op-service-footer__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
html body .op-service-footer__grid>*{min-width:0}
html body .op-service-footer__email{white-space:nowrap}
.op-sbf-mobile-services>h2>a{font-size:inherit;font-weight:inherit;color:inherit}
.op-sbf-mobile-services>a{display:flex;align-items:center;gap:10px;min-width:0;min-height:44px}
.op-sbf-mobile-services>a .op-copy{white-space:normal;overflow-wrap:break-word}
.op-sbf-small-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;font-size:22px;color:#4e6137}
.op-sbf-mobile-services .op-customer-description{display:none}
.op-sbf-mobile-services .op-customer-copy strong{font-size:inherit;font-weight:400}
.op-sbf-mobile-services .op-customer-service-item{border:0;background:transparent;padding:0;text-decoration:none}
[data-op-service-anchor]{scroll-margin-block-start:100px}
@media(max-width:1199px){html body .op-service-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}}
@media(max-width:760px){#op-panel-customer{max-height:calc(100dvh - 24px)}html body .op-service-footer__grid{grid-template-columns:minmax(0,1fr)}html body .op-service-footer__email{white-space:normal;overflow-wrap:anywhere}}


/* 1.2.2: authoritative footer spacing rule; versioned enqueue below busts stale CSS cache. */
@media (min-width: 1200px) {
  html body .op-service-footer__grid > *:nth-child(4) {
    transform: translateX(-30px) !important;
    position: relative !important;
    left: -30px !important;
  }
}


/* 1.2.4: let the All Products intro block blend into the surrounding page background. */
html body .op-shop-intro-white-background,
html body .op-shop-intro-white-background::before,
html body .op-shop-intro-white-background::after {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}


/* 1.2.5: align the Shop intro text with the All Products heading at the left edge. */
@media (min-width: 761px) {
  html body .op-shop-intro-white-background {
    padding-inline-start: 0 !important;
    padding-left: 0 !important;
  }
}
@media (max-width: 760px) {
  html body .op-shop-intro-white-background {
    padding-inline-start: 0 !important;
    padding-left: 0 !important;
  }
}


/* 1.2.6: OLIVE PEOPLE site-wide four-level typography system.
   Preserve brand logos, icon glyphs, and product artwork. */
:root {
  --op-type-small: 12px;
  --op-type-body: 16px;
  --op-type-section: 24px;
  --op-type-hero: 36px;
}
html body {
  font-size: var(--op-type-body);
}
html body :where(p, li, td, th, label, input, select, textarea, button,
  .woocommerce-breadcrumb, .woocommerce-result-count, .woocommerce-ordering,
  .woocommerce div.product .woocommerce-product-details__short-description,
  .woocommerce div.product .woocommerce-Tabs-panel,
  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .op-shop-brand-filter button, .op-service-footer__group a,
  .op-copy, .op-product-breadcrumb-trail, .op-product-back) {
  font-size: var(--op-type-body);
}
html body :where(h1, .entry-title, .page-title, .product_title,
  .woocommerce-products-header__title, .op-hero-title, .op-home-hero h1) {
  font-size: var(--op-type-hero);
  line-height: 1.15;
}
html body :where(h2, .op-section-title, .woocommerce-Reviews-title,
  .woocommerce-Tabs-panel h2, .related > h2, .upsells > h2, .cross-sells > h2) {
  font-size: var(--op-type-section);
  line-height: 1.25;
}
html body :where(h3, h4, h5, h6, .op-card-title, .op-shop-brand-grid article h3) {
  font-size: var(--op-type-body);
  line-height: 1.35;
}
html body :where(small, .screen-reader-text, .sku, .posted_in, .tagged_as,
  .woocommerce-product-attributes-item__label,
  .woocommerce-product-attributes-item__value,
  .woocommerce-review__published-date, .woocommerce-review-link,
  .op-product-breadcrumb-kicker, .op-ks-coming small,
  .op-service-footer__email, .op-small, .op-caption, .op-meta) {
  font-size: var(--op-type-small);
  line-height: 1.45;
}
/* Avoid resizing brand marks or pictograms as part of text normalization. */
html body :where(.site-logo, .custom-logo, .site-branding img, .op-logo,
  .op-category-icon, .op-small-icon, .op-sbf-small-icon,
  .op-product-back svg, .op-category-icon svg) {
  font-size: inherit;
}
@media (max-width: 760px) {
  :root {
    --op-type-small: 12px;
    --op-type-body: 15px;
    --op-type-section: 22px;
    --op-type-hero: 30px;
  }
}


/* 1.2.7: fix old-style/smaller numerals in the single-product title only. */
body.single-product div.product .summary .product_title,
body.single-product .product .summary h1.product_title {
  font-variant-numeric: lining-nums !important;
  font-feature-settings: "lnum" 1, "onum" 0 !important;
  font-variant-ligatures: normal;
  font-optical-sizing: auto;
}


/* 1.3.1: show BLCO products in the All Products brand filter and preserve full packshot framing. */
.woocommerce ul.products li.product.op-blco-product img,
.woocommerce-page ul.products li.product.op-blco-product img,
body.single-product.op-blco-product div.product .woocommerce-product-gallery img,
body.single-product.op-blco-product div.product .woocommerce-product-gallery__image img {
  object-fit: contain !important;
  object-position: center center !important;
  background-color: #fff !important;
}
.woocommerce ul.products li.product.op-blco-product a img,
.woocommerce-page ul.products li.product.op-blco-product a img {
  padding: 12px !important;
  box-sizing: border-box !important;
}


/* 1.3.2: use full product framing for BLCO/Lip Care cards, not cropped cover images. */
html body.woocommerce ul.products li.product.op-blco-product img,
html body.woocommerce-page ul.products li.product.op-blco-product img,
html body.woocommerce ul.products li.product.product_cat-lip-care img,
html body.woocommerce-page ul.products li.product.product_cat-lip-care img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #fff !important;
  padding: 14px !important;
  box-sizing: border-box !important;
}

/* BLCO archive cards use the same geometry as the existing curated catalog cards. */
html body .op-sbf-blco-card {display:flex;flex-direction:column;min-width:0;background:#fff;overflow:hidden}
html body .op-sbf-blco-card .op-sbf-blco-details {display:flex;flex:1;flex-direction:column;text-decoration:none;color:inherit}
html body .op-sbf-blco-card .op-shop-brand-product__image {display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fff}
html body .op-sbf-blco-card .op-shop-brand-product__image img {max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain!important;object-position:center!important;background:#fff}
html body .op-sbf-blco-card .op-sbf-blco-cart {display:inline-flex;align-items:center;justify-content:center;align-self:start;margin:0 12px 13px;padding:7px 12px;border:1px solid #cfd8c2;border-radius:8px;background:#fafbf7;color:#465532;font-size:12px;font-weight:650;text-decoration:none}

/* 1.3.6: hide native-loop duplicate BLCO cards, preserving curated cards and product records. */
body.woocommerce-shop li.product.op-sbf-native-duplicate { display:none !important; }


/* 1.5.2: after removing duplicate Customer First menu block, do not leave
   a second divider or the empty space that belonged to that block.
   Keep the final primary menu item's divider as the single separator. */
@media (max-width: 760px) {
  html body :is(.op-drawer, .site-drawer) .op-mobile-drawer-footer {
    margin-top: 0 !important;
  }
  html body :is(.op-drawer, .site-drawer) .op-mobile-drawer-footer__group:first-child {
    border-top: 0 !important;
    padding-top: 18px;
  }
}
