/* Elementor opt-in. Geometry remains owned by Elementor. */
  body.hpds-enabled.hpds-module-foundations .elementor-element.hpds-scope { color: var(--hpds-color-text); font-family: var(--hpds-font-sans); letter-spacing: 0; }
  body.hpds-enabled.hpds-module-foundations .elementor-element.hpds-section { padding-block: var(--hpds-section-space); }
  body.hpds-enabled.hpds-module-foundations .elementor-element.hpds-section--compact { padding-block: clamp(2rem, 5vw, 3.5rem); }
  body.hpds-enabled.hpds-module-foundations .elementor-element.hpds-container > .e-con-inner { inline-size: min(100% - (2 * var(--hpds-gutter)), var(--hpds-container-default)); margin-inline: auto; }

  body.hpds-enabled.hpds-module-content.hpds-mode-sitewide .elementor-widget-heading .elementor-heading-title,
  body.hpds-enabled.hpds-module-content.hpds-mode-sitewide .c-ip-heading__inner {
    color: var(--hpds-color-text);
    font-family: var(--hpds-font-display);
    font-weight: var(--hpds-weight-bold);
    letter-spacing: 0;
    line-height: var(--hpds-line-heading);
  }

  /* Button bridge: explicit component classes and known commerce actions only. */
  body.hpds-enabled.hpds-module-buttons :where(.hpds-scope .elementor-button, .hpds-scope .c-button, .hpds-scope .c-ip-button),
  body.hpds-enabled.hpds-module-buttons.hpds-mode-sitewide :where(.elementor-button, .c-button, .c-ip-button),
  body.hpds-enabled.hpds-module-commerce :where(.c-product-grid__atc, .single_add_to_cart_button, .checkout-button, .woocommerce-form-login__submit, .woocommerce-form-register__submit, .wc-forward:not(.remove), .woocommerce button.button, .woocommerce a.button) {
    align-items: center;
    background: var(--hpds-color-brand);
    border: 1px solid var(--hpds-color-brand);
    border-radius: var(--hpds-radius-sm);
    color: var(--hpds-color-surface);
    display: inline-flex;
    font-family: var(--hpds-font-sans);
    font-size: var(--hpds-font-size-200);
    font-weight: var(--hpds-weight-bold);
    gap: var(--hpds-space-2);
    justify-content: center;
    letter-spacing: 0;
    line-height: 1;
    min-block-size: 2.75rem;
    padding: 0.75rem 1.25rem;
    text-align: center;
    text-decoration: none;
    transition: background-color var(--hpds-duration-fast) var(--hpds-ease-standard), border-color var(--hpds-duration-fast) var(--hpds-ease-standard), color var(--hpds-duration-fast) var(--hpds-ease-standard), transform var(--hpds-duration-fast) var(--hpds-ease-standard);
  }

  body.hpds-enabled.hpds-module-buttons :where(.hpds-scope .elementor-button, .hpds-scope .c-button, .hpds-scope .c-ip-button):hover,
  body.hpds-enabled.hpds-module-buttons.hpds-mode-sitewide :where(.elementor-button, .c-button, .c-ip-button):hover,
  body.hpds-enabled.hpds-module-commerce :where(.c-product-grid__atc, .single_add_to_cart_button, .checkout-button, .woocommerce-form-login__submit, .woocommerce-form-register__submit, .wc-forward:not(.remove), .woocommerce button.button, .woocommerce a.button):hover {
    background: color-mix(in srgb, var(--hpds-color-brand) 86%, white);
    border-color: color-mix(in srgb, var(--hpds-color-brand) 86%, white);
    color: var(--hpds-color-surface);
    text-decoration: none;
  }

  body.hpds-enabled.hpds-module-buttons :where(.elementor-button, .c-button, .c-ip-button):focus-visible,
  body.hpds-enabled.hpds-module-commerce :where(.c-product-grid__atc, .single_add_to_cart_button, .checkout-button, .woocommerce button.button, .woocommerce a.button):focus-visible {
    box-shadow: var(--hpds-shadow-focus);
    outline: 2px solid var(--hpds-color-surface);
    outline-offset: 1px;
  }

  body.hpds-enabled.hpds-module-commerce .c-product-grid__atc { inline-size: 100%; margin-block-start: auto; }
  body.hpds-enabled.hpds-module-commerce .c-product-grid__atc.is-loading { cursor: wait; opacity: 0.72; }
  body.hpds-enabled.hpds-module-commerce .c-product-grid__atc.is-success { background: var(--hpds-color-success); border-color: var(--hpds-color-success); }

  /* Form bridge. Search keeps its own compact geometry. */
  body.hpds-enabled.hpds-module-forms :where(.hpds-scope .elementor-field:not([type="checkbox"]):not([type="radio"]), .hpds-scope .c-form__input),
  body.hpds-enabled.hpds-module-forms.hpds-mode-sitewide :where(.elementor-form .elementor-field:not([type="checkbox"]):not([type="radio"]), .c-form__input),
  body.hpds-enabled.hpds-module-commerce :where(.woocommerce .input-text, .woocommerce select, .woocommerce textarea) {
    background: var(--hpds-color-surface);
    border: var(--hpds-border);
    border-radius: var(--hpds-radius-sm);
    color: var(--hpds-color-text);
    font-family: var(--hpds-font-sans);
    font-size: var(--hpds-font-size-300);
    inline-size: 100%;
    letter-spacing: 0;
    min-block-size: 2.75rem;
    padding: 0.7rem 0.875rem;
  }

  body.hpds-enabled.hpds-module-forms :where(.elementor-field, .c-form__input):focus-visible,
  body.hpds-enabled.hpds-module-commerce :where(.woocommerce .input-text, .woocommerce select, .woocommerce textarea):focus-visible {
    border-color: var(--hpds-color-focus);
    box-shadow: var(--hpds-shadow-focus);
    outline: 0;
  }

  body.hpds-enabled.hpds-module-forms :where(.elementor-field-label, .c-form label),
  body.hpds-enabled.hpds-module-commerce :where(.woocommerce-form__label, .woocommerce form label) {
    color: var(--hpds-color-text);
    font-size: var(--hpds-font-size-200);
    font-weight: var(--hpds-weight-semibold);
    letter-spacing: 0;
  }

  /* Luchiana catalog and gallery bridge. */
  body.hpds-enabled.hpds-module-commerce .c-product-grid__list { gap: clamp(var(--hpds-space-5), 3vw, var(--hpds-space-7)); }
  body.hpds-enabled.hpds-module-commerce .c-product-grid__thumb-wrap { border: var(--hpds-border); }
  body.hpds-enabled.hpds-module-commerce .c-product-grid__thumb-button-list { gap: var(--hpds-space-2); inset: var(--hpds-space-3) auto auto var(--hpds-space-3); transform: none; }
  body.hpds-enabled.hpds-module-commerce .c-product-grid__thumb-button {
    align-items: center;
    background: var(--hpds-color-surface);
    block-size: 2.75rem;
    border: var(--hpds-border);
    border-radius: 50%;
    display: inline-flex;
    flex: 0 0 2.75rem;
    inline-size: 2.75rem;
    justify-content: center;
    min-block-size: 2.75rem;
    min-inline-size: 2.75rem;
    padding: 0;
  }
  body.hpds-enabled.hpds-module-commerce .c-product-grid__thumb-button:not(:first-child) { inset-inline: auto; }
  body.hpds-enabled.hpds-module-commerce .c-product-grid__thumb-button .c-product-grid__icon { background: transparent; border: 0; border-radius: 0; color: inherit; min-block-size: 0; min-inline-size: 0; }
  body.hpds-enabled.hpds-module-commerce .c-product-grid__thumb-button .c-product-grid__icon--hover { display: none; }
  body.hpds-enabled.hpds-module-commerce .c-product-grid__thumb-button:hover .c-product-grid__icon--hover { display: inline-flex; }
  body.hpds-enabled.hpds-module-commerce .c-product-grid__thumb-button:hover .c-product-grid__icon--normal { display: none; }
  body.hpds-enabled.hpds-module-commerce .c-product__wishlist-button { align-items: center; background: var(--hpds-color-surface); border: var(--hpds-border); border-radius: 50%; color: var(--hpds-color-text); display: inline-flex; justify-content: center; min-block-size: 2.75rem; min-inline-size: 2.75rem; }
  body.hpds-enabled.hpds-module-commerce .c-product__slider-item { background: var(--hpds-color-surface-subtle); }
  body.hpds-enabled.hpds-module-commerce .c-product__slider-item img { object-fit: contain; }

  /* Header, mega menu, search and cart are targeted by stable semantic classes only. */
  body.hpds-enabled.hpds-module-navigation .hairport-mega-section { color: var(--hpds-color-text); font-family: var(--hpds-font-sans); letter-spacing: 0; }
  body.hpds-enabled.hpds-module-navigation .hairport-mega-panel__title { color: var(--hpds-color-text); font-size: var(--hpds-font-size-500); font-weight: var(--hpds-weight-bold); line-height: var(--hpds-line-heading); }
  body.hpds-enabled.hpds-module-navigation .elementor-menu-cart__container { z-index: var(--hpds-z-overlay); }
  body.hpds-enabled.hpds-module-navigation .elementor-menu-cart__main { background: var(--hpds-color-surface); color: var(--hpds-color-text); }
  body.hpds-enabled.hpds-module-navigation .dgwt-wcas-search-input { border-radius: var(--hpds-radius-round); color: var(--hpds-color-text); font-family: var(--hpds-font-sans); letter-spacing: 0; }
  body.hpds-enabled.hpds-module-navigation .dgwt-wcas-search-submit { min-block-size: auto; min-inline-size: auto; }

  body.hpds-enabled.hpds-module-content .c-page-header__title { font-family: var(--hpds-font-display); font-size: var(--hpds-font-size-800); font-weight: var(--hpds-weight-black); letter-spacing: 0; line-height: var(--hpds-line-tight); }
  body.hpds-enabled.hpds-module-content .c-cart-empty { align-items: center; display: flex; flex-direction: column; gap: var(--hpds-space-4); justify-content: center; min-block-size: 20rem; padding: var(--hpds-space-7); text-align: center; }

  /* Hairport editorial site bridge. No Elementor element IDs and no media-source changes. */
  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-mode-sitewide.hpds-region-all {
    background: var(--hpds-color-surface);
    color: var(--hpds-color-text);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-navigation.hpds-mode-sitewide :where(header[id="header"], .elementor-location-header header) {
    background: color-mix(in srgb, var(--hpds-color-surface) 96%, transparent);
    border-block-end: 1px solid var(--hpds-color-border);
    transition: background-color var(--hpds-duration-normal) var(--hpds-ease-standard), box-shadow var(--hpds-duration-normal) var(--hpds-ease-standard);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-navigation.hpds-mode-sitewide :where(header[id="header"], .elementor-location-header header).is-scrolled {
    background: var(--hpds-color-surface);
    box-shadow: var(--hpds-shadow-sm);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-navigation.hpds-mode-sitewide :where(header[id="header"], .elementor-location-header header) .elementor-nav-menu--main .elementor-item {
    color: var(--hpds-color-text);
    font-family: var(--hpds-font-sans);
    font-size: var(--hpds-font-size-200);
    font-weight: var(--hpds-weight-medium);
    letter-spacing: 0;
    position: relative;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-navigation.hpds-mode-sitewide :where(header[id="header"], .elementor-location-header header) .elementor-nav-menu--main .elementor-item::after {
    background: var(--hpds-color-accent);
    block-size: 2px;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-navigation .hairport-mega-panel {
    background: var(--hpds-color-surface);
    border-block-start: 3px solid var(--hpds-color-accent);
    box-shadow: var(--hpds-shadow-md);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-navigation .hairport-mega-section {
    border-inline-start: 1px solid var(--hpds-color-border);
    padding-inline-start: var(--hpds-space-5);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-navigation .hairport-mega-section__title {
    color: var(--hpds-color-text);
    font-family: var(--hpds-font-display);
    font-size: var(--hpds-font-size-400);
    font-weight: var(--hpds-display-weight, var(--hpds-weight-semibold));
    letter-spacing: 0;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-navigation .hairport-mega-section a {
    color: var(--hpds-color-text-muted);
    text-decoration: none;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-navigation .hairport-mega-section a:hover,
  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-navigation .hairport-mega-section a:focus-visible {
    color: var(--hpds-color-link-hover);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__item {
    border-block-start: 1px solid transparent;
    display: flex;
    flex-direction: column;
    min-inline-size: 0;
    transition: border-color var(--hpds-duration-normal) var(--hpds-ease-standard), transform var(--hpds-duration-normal) var(--hpds-ease-standard);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__item > .c-product-grid__thumb-wrap {
    order: 1;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__item > .c-product-grid__details {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: var(--hpds-space-3);
    order: 2;
    padding-block: var(--hpds-space-4);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__item > .c-product-grid__atc {
    margin-block-start: auto;
    order: 3;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__item:hover,
  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__item:focus-within {
    border-block-start-color: var(--hpds-color-accent);
    transform: translateY(-0.2rem);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__thumb-wrap {
    background: var(--hpds-color-mist);
    border-color: transparent;
    border-radius: 0;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__atc {
    isolation: isolate;
    overflow: hidden;
    position: relative;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__atc::before {
    background: var(--hpds-color-accent);
    content: "";
    inset: 0;
    position: absolute;
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform 280ms var(--hpds-ease-signature, var(--hpds-ease-emphasis));
    z-index: -1;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__atc:hover::before,
  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__atc:focus-visible::before {
    transform: scaleX(1);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__atc:hover,
  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-commerce .c-product-grid__atc:focus-visible {
    border-color: var(--hpds-color-accent);
    color: #111111;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-view-product .c-product__wrap {
    border-block-start: 1px solid var(--hpds-color-border);
    padding-block-start: var(--hpds-space-7);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial :where(.c-page-header, .woocommerce-products-header) {
    background: var(--hpds-color-mist);
    border-block: var(--hpds-border);
    padding-block: clamp(var(--hpds-space-6), 6vw, var(--hpds-space-9));
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-content :where(.elementor-widget-posts, .elementor-widget-loop-grid) article {
    border-block-start: 2px solid var(--hpds-color-text);
    padding-block-start: var(--hpds-space-4);
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-content :where(.elementor-widget-posts, .elementor-widget-loop-grid) article :where(h2, h3) {
    font-family: var(--hpds-font-display);
    font-weight: var(--hpds-display-weight, var(--hpds-weight-semibold));
    letter-spacing: 0;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-footer.hpds-mode-sitewide :where(footer, .elementor-location-footer) {
    background: var(--hpds-color-brand);
    color: #ffffff;
  }

  body.hpds-enabled.hpds-preset-reluxe-editorial.hpds-module-footer.hpds-mode-sitewide :where(footer, .elementor-location-footer) :where(h2, h3, h4, h5, a, p, li) {
    color: inherit;
  }

  @media (max-width: 767px) {
    body.hpds-enabled.hpds-module-content .c-page-header__title { font-size: var(--hpds-font-size-700); }
    body.hpds-enabled.hpds-module-commerce .c-product-grid__list { gap: var(--hpds-space-4); }
    body.hpds-enabled.hpds-module-navigation .dgwt-wcas-search-submit { min-block-size: 2.75rem; min-inline-size: 2.75rem; }
  }

  @media (max-width: 479px) {
    body.hpds-enabled.hpds-module-buttons .e-contact-buttons.has-h-alignment-start .e-contact-buttons__chat-button-container {
      left: auto;
      right: 0.5rem;
    }
  }
