/* ========================================
   H O S Ä E N A — HEADER SYSTEM (LOCKED)
======================================== */

/*
This file is the SINGLE source of truth for:
- Header layout
- Menu interaction
- Mega-menu surface styling
- Off-canvas system

Header architecture overview:
- Header root: .ho-header
- Desktop nav wrapper: .ho-header__nav / .ho-header__menu
- Underline system: .e-n-menu-title-text::after
- Off-canvas system: sibling .ho-offcanvas opened by .ho-header--offcanvas-open

CSS authority = components.css
JS authority = /wp-content/mu-plugins/hosaena-header-runtime-js.php

Do NOT:
- Add header logic in Elementor Custom CSS
- Reintroduce duplicate underline systems
- Add second JS controller

Allowed header states:
- .ho-header--transparent
- .ho-header--scrolled
- .ho-header--menu-open
- .ho-header--offcanvas-open

Baseline locked on: 2026-04-27
*/

/* ----------------------------------------
   Base header
---------------------------------------- */

.elementor-location-header {
  position: relative;
  z-index: 300;
  margin: 0;
}

.elementor-location-header .elementor {
  margin: 0;
}

html:has(.ho-header.ho-header--offcanvas-open),
body:has(.ho-header.ho-header--offcanvas-open) {
  overflow: hidden;
}

.elementor .ho-header {
  --ho-header-max: var(--ho-container-max, 96rem);
  --ho-header-shell-pad: clamp(1.5rem, 2vw, 5rem);
  --ho-header-nav-gap: clamp(0.92rem, 0.9vw, 1.55rem);
  --ho-header-utils-gap-left: clamp(0.82rem, 1vw, 1.28rem);
  --ho-header-utils-gap-right: clamp(0.68rem, 0.88vw, 1.08rem);
  --ho-header-logo-row-min: clamp(4.18rem, 4.32vw, 4.9rem);
  --ho-header-logo-row-pad: 0.42rem;
  --ho-header-nav-row-min: 2.08rem;
  --ho-header-title-pad-bottom: 0.44rem;
  --ho-header-underline-offset: -0.22rem;
  --ho-header-underline-width: 1.48rem;
  --ho-header-surface-solid: var(--ho-color-calacatta, var(--ho-color-ivory));
  --ho-header-surface-glass: rgb(247 243 236 / 92%);
  --ho-header-ink-hero-dark: var(--ho-color-ivory, #f7f3ec);
  --ho-header-ink-hero-light: rgb(44 40 36);
  --ho-header-light-veil: linear-gradient(
    180deg,
    rgb(247 243 236 / 88%) 0%,
    rgb(247 243 236 / 72%) 42%,
    rgb(247 243 236 / 16%) 100%
  );
  --ho-header-mixed-veil: linear-gradient(
    180deg,
    rgb(10 9 8 / 16%) 0%,
    rgb(10 9 8 / 7%) 48%,
    transparent 100%
  );
  --ho-header-ink-top: var(--ho-color-ivory, #f7f3ec);
  --ho-header-ink-solid: var(--ho-color-nero, #0a0a0a);
  --ho-header-border: var(--ho-color-border, rgb(10 10 10 / 8%));
  --ho-header-shadow: var(--ho-shadow-soft, 0 10px 24px rgb(0 0 0 / 6%));
  --ho-header-speed: 280ms;
  --ho-header-surface-speed: 300ms;
  --ho-header-underline-speed: 220ms;
  --ho-header-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
  --ho-header-underline-ease: cubic-bezier(0.3, 0.15, 0.2, 1);

  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 300;
  width: 100%;

  background: transparent;
  color: var(--ho-header-ink-top);
  border-bottom: 1px solid transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;

  transition:
    background-color var(--ho-header-surface-speed) var(--ho-header-ease),
    color var(--ho-header-speed) var(--ho-header-ease),
    border-color var(--ho-header-surface-speed) var(--ho-header-ease),
    box-shadow var(--ho-header-surface-speed) var(--ho-header-ease),
    -webkit-backdrop-filter var(--ho-header-surface-speed) var(--ho-header-ease),
    backdrop-filter var(--ho-header-surface-speed) var(--ho-header-ease);
}

.elementor .ho-header__inner,
.elementor .ho-header__logo-row,
.elementor .ho-header__nav-row {
  box-sizing: border-box;
}

.elementor .ho-header__inner {
  width: min(100%, calc(var(--ho-header-max) + (var(--ho-header-shell-pad) * 2)));
  margin-inline: auto;
  padding-inline: var(--ho-header-shell-pad);
}

.elementor .ho-header__logo-row {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-width: 0;
  min-height: var(--ho-header-logo-row-min);
  padding-block: var(--ho-header-logo-row-pad);
}

.elementor .ho-header__utils-left,
.elementor .ho-header__utils-right {
  display: flex;
  align-items: center;
  flex: 1 1 0;
  min-width: 0;
  z-index: 1;
}

.elementor .ho-header__utils-left {
  justify-content: flex-start;
  gap: var(--ho-header-utils-gap-left);
}

.elementor .ho-header__utils-right {
  justify-content: flex-end;
  gap: var(--ho-header-utils-gap-right);
}

.elementor .ho-header__logo-block {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: max-content;
  max-width: calc(100% - 10rem);
  min-width: 0;
  row-gap: 0.08rem;
  text-align: center;
  z-index: 2;
}

.elementor .ho-header__logo-block :where(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title) {
  margin: 0;
}

.elementor .ho-header__logo-primary {
  display: block;
  margin: 0;
  color: inherit;
  font-family: var(--ho-font-display);
  font-size: clamp(2.06rem, 1vw + 1.34rem, 2.38rem);
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  text-rendering: optimizeLegibility;
  white-space: nowrap;
}

.elementor .ho-header__logo-secondary {
  display: block;
  margin: 0;
  color: inherit;
  opacity: 0.72;
  font-family: var(--ho-font-amharic, "Noto Sans Ethiopic", sans-serif);
  font-size: 0.64rem;
  line-height: 1.06;
  letter-spacing: 0.08em;
}

/* ----------------------------------------
   State modifiers
---------------------------------------- */

.elementor .ho-header.ho-header--transparent {
  background: transparent;
  color: var(--ho-header-ink-top);
  border-bottom-color: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.elementor .ho-header.ho-header--context-dark {
  --ho-header-ink-top: var(--ho-header-ink-hero-dark);
}

.elementor .ho-header.ho-header--context-light {
  --ho-header-ink-top: var(--ho-header-ink-hero-light);
}

.elementor .ho-header.ho-header--context-mixed {
  --ho-header-ink-top: var(--ho-header-ink-hero-dark);
}

.elementor .ho-header.ho-header--transparent.ho-header--context-light {
  background: var(--ho-header-light-veil);
  color: var(--ho-header-ink-top);
  border-bottom-color: rgb(10 10 10 / 4%);
}

.elementor .ho-header.ho-header--transparent.ho-header--context-mixed {
  background: var(--ho-header-mixed-veil);
  color: var(--ho-header-ink-top);
}

.elementor .ho-header.ho-header--scrolled {
  position: fixed;
  background-color: var(--ho-header-surface-glass);
  color: var(--ho-header-ink-solid);
  border-bottom-color: var(--ho-header-border);
  box-shadow: var(--ho-header-shadow);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.elementor .ho-header.ho-header--menu-open,
.elementor .ho-header.ho-header--scrolled.ho-header--menu-open,
.elementor .ho-header.ho-header--offcanvas-open {
  background-color: var(--ho-header-surface-solid);
  color: var(--ho-header-ink-solid);
  border-bottom-color: var(--ho-header-border);
  box-shadow: var(--ho-header-shadow);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

/* ----------------------------------------
   Navigation / menu
---------------------------------------- */

.elementor .ho-header__nav-row {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: var(--ho-header-nav-row-min);
  margin: 0 !important;
  padding: 0.06rem 0 0 !important;
  overflow: visible;
  opacity: 1;
  pointer-events: auto;
  border-top: 1px solid transparent;
  transition: border-color var(--ho-header-speed) var(--ho-header-ease);
}

.elementor .ho-header.ho-header--scrolled .ho-header__nav-row,
.elementor .ho-header.ho-header--menu-open .ho-header__nav-row {
  border-top-color: var(--ho-header-border);
}

.elementor .ho-header__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
}

/* Let Elementor own mega-menu panel positioning from the menu item level. */
.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .e-n-menu-item {
  position: static;
}

.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu {
  --n-menu-heading-justify-content: center !important;
  --n-menu-title-flex-grow: 0 !important;
  --n-menu-heading-wrap: nowrap !important;
  --n-menu-heading-overflow-x: visible !important;
  --n-menu-title-space-between: 0 !important;
}

.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu,
.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .elementor-widget-container,
.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .e-n-menu,
.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .e-n-menu-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
}

.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .e-n-menu-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  width: auto;
  max-width: 100%;
  min-width: 0;
  margin: 0 auto !important;
  padding: 0 !important;
  box-sizing: border-box;
  flex-wrap: nowrap;
  column-gap: var(--ho-header-nav-gap);
  row-gap: 0;
  list-style: none;
}

.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .e-n-menu-item,
.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .e-n-menu-title-container {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  flex: 0 0 auto;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
}

.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .e-n-menu-item {
  list-style: none;
}

.elementor .ho-header .ho-header__menu .e-n-menu-title {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: auto;
  padding: 0 0 var(--ho-header-title-pad-bottom) !important;
  margin: 0 !important;
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: visible;
  text-transform: uppercase;
  z-index: 3;
  transition:
    opacity var(--ho-header-speed) var(--ho-header-ease),
    color var(--ho-header-speed) var(--ho-header-ease);
}

.elementor .ho-header .ho-header__nav .e-n-menu-item,
.elementor .ho-header .ho-header__nav .e-n-menu-title,
.elementor .ho-header .ho-header__nav .e-n-menu-title-container,
.elementor .ho-header .ho-header__nav .e-n-menu-title-text {
  overflow: visible;
}

.elementor .ho-header .ho-header__nav .e-n-menu-title {
  position: relative;
}

.elementor .ho-header .ho-header__nav .e-n-menu-title-container {
  position: relative;
  display: inline-block;
}

.elementor .ho-header .ho-header__nav .e-n-menu-title-text {
  position: relative;
  display: inline-block;
  z-index: 3;
}

.elementor .ho-header__logo-primary,
.elementor .ho-header .ho-header__nav .e-n-menu-title,
.elementor .ho-header .ho-header__nav .e-n-menu-title-text,
.elementor .ho-header .ho-header__nav .e-n-menu-title a {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.elementor .ho-header .ho-header__nav .e-n-menu-title,
.elementor .ho-header .ho-header__nav .e-n-menu-title-text,
.elementor .ho-header .ho-header__nav .e-n-menu-title a {
  font-family: "Lato", sans-serif !important;
  font-size: 0.82rem !important;
  font-weight: 400 !important;
  line-height: 1.12 !important;
  letter-spacing: 0.17em !important;
  text-transform: uppercase !important;
  color: inherit !important;
}

.elementor .ho-header .ho-header__nav .e-n-menu-title-text {
  position: relative;
  display: inline-block;
}

.elementor .ho-header .ho-header__nav .e-n-menu-title,
.elementor .ho-header .ho-header__nav .e-n-menu-title-text,
.elementor .ho-header .ho-header__nav .e-n-menu-title a {
  letter-spacing: 0.135em !important;
}

.elementor .ho-header .ho-header__nav .e-n-menu-title-text::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -0.18rem;
  width: clamp(1.2rem, 1.5vw, 1.6rem);
  height: 0.8px;
  background: currentColor;
  opacity: 0.55;
  transform: translateX(-50%) scaleX(0);
  transform-origin: center;
  transition:
    transform 260ms cubic-bezier(0.25, 0.1, 0.25, 1),
    opacity 260ms cubic-bezier(0.25, 0.1, 0.25, 1);
  z-index: 4;
  pointer-events: none;
}

.elementor .ho-header .ho-header__nav .e-n-menu-title:hover .e-n-menu-title-text::after,
.elementor .ho-header .ho-header__nav .e-n-menu-title-container:hover .e-n-menu-title-text::after,
.elementor .ho-header .ho-header__nav .e-n-menu-item:hover > .e-n-menu-title .e-n-menu-title-text::after,
.elementor .ho-header .ho-header__nav .e-n-menu-item:focus-within > .e-n-menu-title .e-n-menu-title-text::after,
.elementor .ho-header .ho-header__nav .e-n-menu-title.e-current .e-n-menu-title-text::after {
  transform: translateX(-50%) scaleX(1);
  opacity: 1;
}

.elementor .ho-header .ho-header__menu .e-n-menu-title:hover {
  opacity: 0.94;
}

.elementor .ho-header .ho-header__menu :where(
  .e-n-menu-title,
  .e-n-menu-title-text,
  .e-n-menu-title a
) {
  color: inherit !important;
}

.elementor .ho-header .ho-header__menu :where(
  .e-n-menu-title-text,
  .e-n-menu-title a
) {
  font: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
}

.elementor .ho-header .ho-header__menu :where(
  svg,
  svg *
) {
  fill: currentColor;
  stroke: currentColor;
}

.elementor .ho-header .ho-header__menu .e-n-menu-content {
  z-index: 1;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.05) !important;
}

.elementor .ho-header .ho-header__menu .e-n-menu-content > .e-con {
  box-shadow: none !important;
}

.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .e-n-menu-wrapper,
.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .e-n-menu-content,
.elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .e-n-menu-content > .e-con {
  backdrop-filter: none !important;
  box-shadow: none !important;
}

.elementor .ho-header.ho-header--menu-open .ho-header__menu .e-n-menu-wrapper {
  background: transparent !important;
}

.elementor .ho-header.ho-header--menu-open .ho-header__menu .e-n-menu-wrapper,
.elementor .ho-header.ho-header--menu-open .ho-header__menu .e-n-menu-content,
.elementor .ho-header.ho-header--menu-open .ho-header__menu .e-n-menu-content > .e-con {
  background: var(--ho-header-surface-solid) !important;
  margin-top: 0 !important;
}

.elementor .ho-header .ho-header__menu .e-n-menu-dropdown-icon {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

.elementor .ho-header .ho-header__menu .e-n-menu-dropdown-icon,
.elementor .ho-header .ho-header__menu .e-n-menu-toggle {
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  background: transparent;
  color: inherit;
}

.elementor .ho-header .ho-header__menu .e-n-menu-dropdown-icon .elementor-screen-only,
.elementor .ho-header .ho-header__menu .e-n-menu-toggle .elementor-screen-only {
  position: absolute;
}

.elementor .ho-header .ho-header__menu .e-n-menu-toggle {
  position: absolute !important;
  width: 1px !important;
  min-width: 1px !important;
  height: 1px !important;
  min-height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.ho-mega-panel {
  min-height: 460px;
  max-height: 80vh;
  width: 100%;
  padding-block: var(--ho-section-md);
  display: flex;
  align-items: center;
  background: var(--ho-color-calacatta);
  border-top: 1px solid var(--ho-color-border);
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.06);
}

.ho-mega-layout {
  display: grid;
  grid-template-columns: 0.9fr 1.7fr 0.9fr;
  gap: var(--ho-space-32);
  align-items: center;
  width: 100%;
}

.ho-mega-nav {
  display: flex;
  flex-direction: column;
  gap: var(--ho-space-16);
  margin-top: var(--ho-space-16);
}

.ho-mega-nav a {
  position: relative;
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.7;
  transition:
    opacity var(--ho-speed-base) var(--ho-ease-soft),
    width 200ms ease;
}

.ho-mega-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background: var(--ho-color-nero);
  transition: width 200ms ease;
}

.ho-mega-nav a:hover {
  opacity: 1;
}

.ho-mega-nav a:hover::after {
  width: 100%;
}

.ho-mega-nav a:first-child {
  opacity: 1;
}

.ho-mega-nav a:not(:first-child) {
  opacity: 0.65;
}

.ho-mega-visual {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: var(--ho-space-32);
  padding-inline: var(--ho-space-16);
  transform: translateY(-6px);
}

.ho-mega-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 4 / 3;
  transition: transform 300ms ease;
}

.ho-mega-visual img:hover {
  transform: scale(1.02);
}

.ho-mega-content {
  transform: translateY(4px);
}

.ho-mega-title {
  letter-spacing: -0.01em;
}

.ho-mega--maison .ho-mega-visual {
  grid-template-columns: 1.3fr 0.7fr;
}

.ho-mega--maison .ho-mega-content {
  gap: var(--ho-space-32);
}

.ho-mega--collections .ho-mega-visual {
  grid-template-columns: 1fr 1fr;
}

.ho-mega--collections .ho-mega-text {
  max-width: 26ch;
}

.ho-mega--editorial .ho-mega-visual {
  grid-template-columns: 1.2fr 0.8fr;
}

/* ----------------------------------------
   Dormant Registry Visual System
   Source-only scaffold for inactive .ho-mega-registry* panel markup.
---------------------------------------- */

.ho-mega-registry,
.ho-mega-registry--home,
.ho-mega-registry--art-of-living,
.ho-mega-registry--maison,
.ho-mega-registry--collections,
.ho-mega-registry--shop,
.ho-mega-registry--services {
  --ho-registry-max: 68rem;
  --ho-registry-shell-pad-x: clamp(2rem, 4vw, 4.5rem);
  --ho-registry-shell-pad-y: clamp(1.6rem, 2.6vw, 2.6rem);
  --ho-registry-gap-x: clamp(1.5rem, 2.8vw, 3.5rem);
  --ho-registry-gap-y: clamp(1.35rem, 2vw, 2rem);
  --ho-registry-rule: rgb(15 15 15 / 8%);
  --ho-registry-accent: rgb(193 164 109 / 58%);
  --ho-registry-ink: var(--ho-color-nero, #0f0f0f);
  --ho-registry-ink-subtle: rgb(15 15 15 / 58%);
  --ho-registry-link-ink: rgb(15 15 15 / 82%);
  --ho-registry-link-hover: rgb(15 15 15 / 100%);

  width: 100%;
  display: flex;
  justify-content: center;
  padding-inline: var(--ho-registry-shell-pad-x);
  color: var(--ho-registry-ink);
}

.ho-mega-registry__shell {
  width: min(100%, var(--ho-registry-max));
  display: grid;
  gap: clamp(1.1rem, 1.5vw, 1.6rem);
  padding-block: var(--ho-registry-shell-pad-y);
}

.ho-mega-registry__eyebrow {
  margin: 0;
  font-family: "Lato", sans-serif;
  font-size: 0.68rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ho-registry-ink-subtle);
}

.ho-mega-registry__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
  gap: var(--ho-registry-gap-y) var(--ho-registry-gap-x);
  align-items: start;
}

.ho-mega-registry__section {
  display: grid;
  align-content: start;
  gap: 0.9rem;
  min-width: 0;
  padding-top: 0.9rem;
  border-top: 1px solid var(--ho-registry-rule);
}

.ho-mega-registry__heading {
  margin: 0;
  font-family: var(--ho-font-display, "Cormorant Garamond", serif);
  font-size: clamp(1.22rem, 1.35vw, 1.58rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: 0.01em;
  color: var(--ho-registry-ink);
}

.ho-mega-registry__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.7rem;
}

.ho-mega-registry__item {
  margin: 0;
  padding: 0;
}

.ho-mega-registry__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.62rem;
  margin: 0;
  font-family: "Lato", sans-serif;
  font-size: 0.74rem;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ho-registry-link-ink);
  transition:
    color var(--ho-speed-base) var(--ho-ease-soft),
    opacity var(--ho-speed-base) var(--ho-ease-soft);
}

.ho-mega-registry__link::after {
  content: "";
  width: clamp(1rem, 1.5vw, 1.45rem);
  height: 1px;
  flex: 0 0 auto;
  background: var(--ho-registry-accent);
  opacity: 0.58;
  transform: scaleX(0.78);
  transform-origin: left center;
  transition:
    opacity 220ms ease,
    transform 220ms ease;
}

.ho-mega-registry__link:hover,
.ho-mega-registry__link:focus-visible {
  color: var(--ho-registry-link-hover);
}

.ho-mega-registry__link:hover::after,
.ho-mega-registry__link:focus-visible::after {
  opacity: 1;
  transform: scaleX(1);
}

.ho-mega-registry__link:focus-visible {
  outline: 1px solid rgb(193 164 109 / 55%);
  outline-offset: 0.26rem;
  border-radius: 0.14rem;
}

@media (max-width: 1100px) {
  .ho-mega-registry__grid {
    grid-template-columns: repeat(auto-fit, minmax(min(12.5rem, 100%), 1fr));
  }
}

@media (max-width: 780px) {
  .ho-mega-registry,
  .ho-mega-registry--home,
  .ho-mega-registry--art-of-living,
  .ho-mega-registry--maison,
  .ho-mega-registry--collections,
  .ho-mega-registry--shop,
  .ho-mega-registry--services {
    padding-inline: 1.35rem;
  }

  .ho-mega-registry__grid {
    grid-template-columns: 1fr;
  }
}

/* ----------------------------------------
   Utility / icons
---------------------------------------- */

/* Let the real interactive child own clicks, not the outer Elementor wrapper. */
.elementor .ho-header__utils-left > .ho-header__utility,
.elementor .ho-header__utils-right > .ho-header__utility {
  pointer-events: none;
}

.elementor .ho-header__utils-left > .ho-header__utility > .ho-header__utility,
.elementor .ho-header__utils-right > .ho-header__utility > .ho-header__utility {
  pointer-events: auto;
  position: relative;
  z-index: 2;
}

.elementor .ho-header__utility {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  min-width: 36px;
  min-height: 36px;
  padding: 0;
  margin: 0;
  background: none;
  border: 0;
  color: inherit;
  text-decoration: none;
  line-height: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition:
    opacity var(--ho-header-speed) var(--ho-header-ease),
    color var(--ho-header-speed) var(--ho-header-ease);
}

.elementor .ho-header__utility,
.elementor .ho-header__utility:hover,
.elementor .ho-header__utility:active,
.elementor .ho-header__utility:focus {
  background: transparent !important;
  background-image: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border-color: transparent !important;
}

.elementor .ho-header__utils-left .ho-header__utility,
.elementor .ho-header__utils-left .ho-header__utility:hover,
.elementor .ho-header__utils-left .ho-header__utility:active,
.elementor .ho-header__utils-left .ho-header__utility:focus {
  background: transparent !important;
  background-image: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
}

.elementor .ho-header__utility:hover,
.elementor .ho-header__utility:focus-visible {
  opacity: 0.88;
}

.elementor .ho-header__utility--search[data-ho-search-state="decorative"] {
  cursor: default;
  pointer-events: none;
  opacity: 0.72;
}

.elementor .ho-header__utility .e-svg-base {
  display: inline-flex;
  width: 18px;
  height: auto;
  color: inherit;
  flex: 0 0 auto;
  pointer-events: none;
}

.elementor .ho-header__utility svg {
  width: 18px;
  height: 18px;
  display: block;
  pointer-events: none;
}

.elementor .ho-header__utility svg,
.elementor .ho-header__utility svg path {
  fill: currentColor;
}

.elementor .ho-header__utility:focus-visible,
.elementor .ho-header .ho-header__menu .e-n-menu-dropdown-icon:focus-visible,
.elementor .ho-header .ho-header__menu .e-n-menu-toggle:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
  border-radius: 2px;
}

/* ----------------------------------------
   Off-canvas
---------------------------------------- */
/* Mobile/tablet off-canvas is defined in responsive layers below.
   Desktop hide lives in the desktop media query so the panel can still
   render correctly at smaller breakpoints once Elementor CSS is removed. */

/* ----------------------------------------
   Responsive
---------------------------------------- */

@media (min-width: 1025px) {
  .elementor .ho-header .ho-header__menu .e-n-menu-dropdown-icon {
    width: 1px;
    min-width: 1px;
    height: 1px;
    min-height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu {
    --n-menu-heading-justify-content: center !important;
    --n-menu-title-flex-grow: 0 !important;
    --n-menu-heading-wrap: nowrap !important;
    --n-menu-heading-overflow-x: visible !important;
    --n-menu-title-space-between: 0 !important;
  }

  .elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu,
  .elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu > .e-n-menu,
  .elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu > .e-n-menu > .e-n-menu-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    column-gap: var(--ho-header-nav-gap) !important;
    row-gap: 0 !important;
    list-style: none !important;
  }

  .elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item,
  .elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title-container {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .elementor .ho-header .ho-header__nav .elementor-widget-n-menu.ho-header__menu .e-n-menu-dropdown-icon {
    position: absolute !important;
    width: 1px !important;
    min-width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
    padding: 0 !important;
  }

  .elementor .ho-header__nav-row {
    display: flex;
    min-height: 2.2rem;
    max-height: none;
    opacity: 1;
    overflow: visible;
    pointer-events: auto;
  }

  .elementor-location-header > .ho-offcanvas {
    display: none !important;
  }
}

@media (max-width: 1024px) {
  .elementor .ho-header__nav-row {
    display: none !important;
    min-height: 0 !important;
    padding: 0 !important;
    border-top-color: transparent !important;
  }

  .elementor .ho-header__utility--search,
  .elementor .ho-header__utility--account {
    display: none !important;
  }

  .elementor .ho-header__utility--menu,
  .elementor .ho-header__utility--cart {
    display: inline-flex !important;
  }

  .elementor-location-header > .ho-offcanvas {
    position: fixed;
    inset: 0;
    z-index: 400;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__overlay {
    position: absolute;
    inset: 0;
    background: rgba(10, 10, 10, 0.25);
    opacity: 0;
    transition: opacity 280ms ease;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__panel {
    position: absolute;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(88vw, 420px);
    background: var(--ho-color-calacatta);
    opacity: 0;
    transform: translateX(96%);
    transition:
      transform 320ms cubic-bezier(0.25, 0.1, 0.25, 1),
      opacity 320ms cubic-bezier(0.25, 0.1, 0.25, 1);
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 2rem 1.75rem 2.5rem;
    overflow: hidden;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding-bottom: 1.2rem;
    margin-bottom: 1.4rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__top .elementor-widget-icon,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__top .elementor-icon-wrapper,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__top .elementor-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__top .elementor-icon-wrapper,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__top .elementor-icon {
    cursor: pointer;
    opacity: 0.8;
    transition: opacity 200ms ease;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__top .elementor-icon-wrapper:hover,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__top .elementor-icon-wrapper:focus-visible,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__top .elementor-icon:hover,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__top .elementor-icon:focus-visible {
    opacity: 1;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__top .e-paragraph-base {
    margin: 0;
    font-family: "Lato", sans-serif;
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    line-height: 1;
    opacity: 0.3;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__visual {
    width: 100%;
    max-height: 180px;
    margin-top: 0;
    margin-bottom: 1.4rem;
    overflow: hidden;
    flex: 0 0 auto;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0.92;
    transition: opacity 300ms ease;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__visual img:hover,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__visual img:focus-visible {
    opacity: 1;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__panel,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__footer {
    color: var(--ho-header-ink-solid);
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0;
    min-height: 0;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav > * {
    display: block;
    width: 100%;
    visibility: visible;
    opacity: 1;
    flex: 0 0 auto;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__secondary {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary {
    margin-bottom: 2rem;
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: clamp(48px, 10vh, 80px);
    background: linear-gradient(
      to bottom,
      rgba(247, 243, 236, 0) 0%,
      rgba(247, 243, 236, 0.6) 40%,
      rgba(247, 243, 236, 1) 100%
    );
    pointer-events: none;
    z-index: 2;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__secondary {
    margin-top: 2.2rem;
    gap: 1rem;
    padding-top: 1rem;
    padding-bottom: 1.5rem;
    border-top: 1px solid var(--ho-header-border);
    opacity: 0.42;
    flex: 0 0 auto;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__secondary:empty {
    display: none;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__secondary,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__secondary * {
    font-family: "Lato", sans-serif;
    font-size: 0.9rem;
    letter-spacing: 0.12em;
    transition: opacity 200ms ease;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__secondary:hover,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__secondary:focus-within,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__secondary *:hover,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__secondary *:focus-visible {
    opacity: 0.65;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .elementor-heading-title,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-heading-base,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-paragraph-base,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-paragraph-base a {
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.6rem, 2vw, 2rem);
    font-weight: 300;
    letter-spacing: 0.06em;
    line-height: 1.5;
    color: inherit;
    text-decoration: none;
    border: 0;
    opacity: 0;
    visibility: visible;
    transform: none;
    transition: opacity 280ms ease;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .elementor-heading-title,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-heading-base {
    margin-bottom: 1.5rem;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-paragraph-base {
    margin-bottom: 1.4rem;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary > *:nth-child(3) .elementor-heading-title,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary > *:nth-child(3) .e-heading-base {
    margin-bottom: 2rem;
  }

  .ho-header.ho-header--offcanvas-open ~ .ho-offcanvas .ho-nav__primary .elementor-heading-title,
  .ho-header.ho-header--offcanvas-open ~ .ho-offcanvas .ho-nav__primary .e-heading-base,
  .ho-header.ho-header--offcanvas-open ~ .ho-offcanvas .ho-nav__primary .e-paragraph-base,
  .ho-header.ho-header--offcanvas-open ~ .ho-offcanvas .ho-nav__primary .e-paragraph-base a {
    opacity: 1;
    transform: none;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary > *:last-child,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-paragraph-base:last-child,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .elementor-heading-title:last-child,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-heading-base:last-child {
    margin-bottom: 0;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .elementor-heading-title:hover,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-heading-base:hover,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .elementor-heading-title:focus-visible,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-heading-base:focus-visible,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-paragraph-base:hover,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-paragraph-base:focus-visible,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-paragraph-base a:hover,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__nav .ho-nav__primary .e-paragraph-base a:focus-visible {
    opacity: 0.88;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__footer {
    margin-top: auto;
    position: relative;
    padding-top: 1.2rem;
    font-size: 0.75rem;
    line-height: 1.4;
    letter-spacing: 0.22em;
    opacity: 0.35;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__footer .elementor-icon-list-items {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__footer .elementor-icon-list-item,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__footer > p {
    margin-bottom: 0.8rem;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__footer .elementor-icon-list-item:last-child,
  .elementor-location-header > .ho-offcanvas .ho-offcanvas__footer > p:last-child {
    margin-bottom: 0;
  }

  .elementor-location-header > .ho-offcanvas .ho-offcanvas__footer a {
    display: inline-block;
    max-width: 13rem;
    text-wrap: balance;
    font-family: inherit;
    font-size: inherit;
    letter-spacing: inherit;
    color: inherit;
    text-decoration: none;
    border: 0;
  }

  .ho-header.ho-header--offcanvas-open ~ .ho-offcanvas {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }

  .ho-header.ho-header--offcanvas-open ~ .ho-offcanvas .ho-offcanvas__overlay {
    opacity: 0.18;
  }

  .ho-header.ho-header--offcanvas-open ~ .ho-offcanvas .ho-offcanvas__panel {
    opacity: 1;
    transform: translateX(0);
  }

  .ho-mega-layout {
    grid-template-columns: 1fr 1fr;
  }

  .ho-mega-visual {
    grid-column: span 2;
  }

  .elementor .ho-header {
    --ho-header-shell-pad: clamp(1rem, 3vw, 1.6rem);
  }

  .elementor .ho-header__logo-row {
    min-height: clamp(4.15rem, 5vw, 4.75rem);
    padding-block: 0.42rem;
  }

  .elementor .ho-header .ho-header__logo-block {
    max-width: calc(100% - 8.75rem);
    row-gap: 0.08rem;
  }

  .elementor .ho-header__logo-primary {
    font-size: clamp(1.62rem, 2.1vw, 1.9rem);
    letter-spacing: 0.2em;
    line-height: 1.03;
  }

  .elementor .ho-header__logo-secondary {
    font-size: 0.6rem;
    letter-spacing: 0.07em;
  }

  .elementor .ho-header .ho-header__nav .e-n-menu-title,
  .elementor .ho-header .ho-header__nav .e-n-menu-title-text,
  .elementor .ho-header .ho-header__nav .e-n-menu-title a {
    font-size: 0.79rem !important;
    line-height: 1.08 !important;
    letter-spacing: 0.15em !important;
  }
}

@media (max-width: 768px) {
  .ho-mega-panel {
    display: none;
    padding-block: var(--ho-section-sm);
  }

  .ho-mega-layout {
    grid-template-columns: 1fr;
    gap: var(--ho-space-24);
  }
}

@media (max-width: 767px) {
  .elementor .ho-header {
    --ho-header-shell-pad: 1rem;
  }

  .elementor .ho-header__logo-row {
    min-height: 4rem;
    padding-block: 0.38rem;
  }

  .elementor .ho-header__utils-left,
  .elementor .ho-header__utils-right {
    gap: 0.5rem;
  }

  .elementor .ho-header .ho-header__logo-block {
    max-width: calc(100% - 8.5rem);
    row-gap: 0.08rem;
  }

  .elementor .ho-header__logo-primary {
    font-size: clamp(1.34rem, 6vw, 1.56rem);
    letter-spacing: 0.16em;
    line-height: 1.03;
  }

  .elementor .ho-header__logo-secondary {
    font-size: 0.56rem;
  }

  .elementor .ho-header .ho-header__nav .e-n-menu-title,
  .elementor .ho-header .ho-header__nav .e-n-menu-title-text,
  .elementor .ho-header .ho-header__nav .e-n-menu-title a {
    font-size: 0.76rem !important;
    line-height: 1.08 !important;
    letter-spacing: 0.145em !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .elementor .ho-header,
  .elementor .ho-header__nav-row,
  .elementor .ho-header .ho-header__menu .e-n-menu-title,
  .elementor .ho-header__utility {
    transition: none !important;
  }
}

/* =========================================================
   BUTTON SYSTEM — FINAL (GLOBAL OVERRIDE SAFE)
   ========================================================= */

/* Base Button */

.ho-btn,
button,
input[type="submit"],
input[type="button"],
.woocommerce button,
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  font-family: var(--ho-font-body);
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;

  padding: var(--ho-space-12) var(--ho-space-24);

  cursor: pointer;
  border: 1px solid transparent;
  background: transparent;
  color: var(--ho-color-nero);

  transition:
    background 240ms var(--ho-ease-soft),
    color 240ms var(--ho-ease-soft),
    border-color 240ms var(--ho-ease-soft),
    opacity 240ms var(--ho-ease-soft);

  border-radius: 0;
}

/* Remove Elementor/Woo heavy styles */

.elementor-button,
.woocommerce a.button,
.woocommerce button.button {
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Primary */

.ho-btn-primary {
  background: var(--ho-color-nero);
  color: var(--ho-color-calacatta);
  border-color: var(--ho-color-nero);
}

.ho-btn-primary:hover {
  background: transparent;
  color: var(--ho-color-nero);
}

/* Secondary */

.ho-btn-secondary {
  border-color: var(--ho-color-border);
}

.ho-btn-secondary:hover {
  border-color: var(--ho-color-nero);
}

/* Accent (editorial use) */

.ho-btn-accent {
  background: var(--ho-color-bronze);
  color: var(--ho-color-calacatta);
  border-color: var(--ho-color-bronze);
}

.ho-btn-accent:hover {
  opacity: 0.85;
}

/* Minimal hover refinement */

.ho-btn:hover {
  opacity: 0.9;
}

/* Disabled */

.ho-btn:disabled,
button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ========================================
   H O S Ä E N A — COLLECTION ENTRY (SCENE 2)
   ======================================== */

body .ho-collection-entry {
  position: relative;
  z-index: 0;
  width: 100%;
  max-width: 1400px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ho-space-48);
  padding:
    clamp(64px, 10vh, 120px)
    clamp(24px, 5vw, 80px)
    clamp(140px, 20vh, 240px);
  isolation: isolate;
}

body .ho-collection-entry::before {
  content: "";
  position: absolute;
  inset: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  background: var(--ho-color-ivory-soft);
  z-index: -1;
}

body .ho-collection-entry > .is-entry-editorial,
body .ho-collection-entry > .is-entry-products {
  width: 100%;
  min-width: 0;
}

body .ho-collection-entry .is-entry-editorial {
  display: grid;
  align-content: start;
  justify-self: start;
  gap: 0;
  width: 100%;
  max-width: 26.25rem;
  padding-inline-start: clamp(16px, 2.5vw, 28px);
  padding-inline-end: clamp(8px, 1.5vw, 20px);
}

body .ho-collection-entry .is-entry-editorial > :first-child {
  margin: 0 0 clamp(16px, 2.5vh, 24px);
  font-family: var(--ho-font-secondary, var(--ho-font-body));
  font-size: clamp(10px, 1.5vw, 12px);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.2em;
  color: var(--ho-color-gold);
}

body .ho-collection-entry .is-entry-editorial h2 {
  margin: 0 0 clamp(28px, 4.5vh, 48px);
  font-family: var(--ho-font-display);
  font-size: clamp(32px, 4.5vw, 52px);
  font-weight: 300;
  line-height: 1.2;
  color: var(--ho-color-nero);
  opacity: 0.8;
}

body .ho-collection-entry .is-entry-editorial > p:not(:first-child) {
  margin: 0 0 clamp(40px, 6vh, 56px);
  font-family: var(--ho-font-body);
  font-size: clamp(13px, 2.2vw, 15px);
  font-weight: 300;
  line-height: 2;
  color: var(--ho-color-nero);
  opacity: 0.75;
}

body .ho-collection-entry .is-entry-editorial > p:not(:first-child) a {
  display: none;
}

body .ho-collection-entry .is-entry-editorial :is(button, .e-button-base) {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  align-self: start;
  width: fit-content !important;
  min-width: 0 !important;
  max-width: max-content;
  margin: 0;
  padding: 0 0 8px !important;
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  border-bottom: 0.5px solid var(--ho-color-gold);
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: var(--ho-font-body);
  font-size: clamp(10px, 1.75vw, 11px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--ho-color-gold) !important;
  white-space: nowrap;
  cursor: pointer;
  transition: opacity 300ms var(--ho-ease-soft);
}

body .ho-collection-entry .is-entry-editorial
  :is(button, .e-button-base):hover,
body .ho-collection-entry .is-entry-editorial
  :is(button, .e-button-base):focus-visible,
body .ho-collection-entry .is-entry-editorial
  :is(button, .e-button-base):active {
  background: transparent !important;
  opacity: 0.7;
}

body .ho-collection-entry .is-entry-products {
  min-width: 0;
  width: 100%;
  max-width: min(100%, 58rem);
  justify-self: start;
}

body .ho-collection-entry .is-entry-products .elementor-widget-loop-grid,
body .ho-collection-entry .is-entry-products .elementor-widget-container {
  width: 100%;
  margin: 0;
}

body .ho-collection-entry .is-entry-products .elementor-loop-container {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: clamp(40px, 6vh, 56px);
  align-items: start;
}

body .ho-collection-entry .is-entry-products .e-loop-item {
  width: 100%;
  min-width: 0;
  margin: 0;
}

body .ho-collection-entry .is-entry-products .e-loop-item > .e-parent {
  display: block;
  border: 0;
  box-shadow: none;
  background: transparent;
}

body .ho-collection-entry .is-entry-products .elementor-widget-theme-post-featured-image {
  overflow: hidden;
  margin: 0 0 clamp(16px, 2.5vh, 24px);
  background: var(--ho-color-ivory);
}

body .ho-collection-entry .is-entry-products img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border: 0;
  box-shadow: none;
  background: var(--ho-color-ivory);
  margin: 0;
  opacity: 0.95;
  transition: transform 500ms var(--ho-ease-soft);
}

body .ho-collection-entry .is-entry-products .e-loop-item:hover img,
body .ho-collection-entry .is-entry-products .e-loop-item:focus-within img {
  transform: scale(1.02);
}

body .ho-collection-entry .is-entry-products :is(.product_title, .woocommerce-loop-product__title, h3) {
  margin: 0;
  font-family: var(--ho-font-display);
  font-size: clamp(15px, 2.15vw, 18px) !important;
  font-weight: 400 !important;
  line-height: 1.18 !important;
  letter-spacing: 0.018em;
  text-transform: none;
  color: var(--ho-color-nero);
  margin-bottom: 10px;
  text-wrap: balance;
}

body .ho-collection-entry .is-entry-products .elementor-loop-container > .e-loop-item:first-child
  :is(.product_title, .woocommerce-loop-product__title, h3) {
  font-size: clamp(18px, 2.7vw, 22px) !important;
  line-height: 1.14 !important;
  letter-spacing: 0.02em;
}

body .ho-collection-entry .is-entry-products .price {
  margin: 0;
  font-family: var(--ho-font-body);
  font-size: clamp(12px, 2vw, 14px) !important;
  font-weight: 300 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em;
  color: var(--ho-color-slate);
}

body .ho-collection-entry .is-entry-products .price :is(bdi, span, .woocommerce-Price-currencySymbol) {
  font: inherit !important;
  color: var(--ho-color-slate) !important;
}

body .ho-collection-entry .is-entry-products .elementor-loop-container > .e-loop-item:first-child .price {
  font-size: clamp(13px, 2.2vw, 15px) !important;
}

body .ho-collection-entry .is-entry-products :is(.price, .price *, .amount, .amount *) {
  color: var(--ho-color-slate) !important;
}

@media (min-width: 768px) {
  body .ho-collection-entry {
    gap: var(--ho-space-64);
  }

  body .ho-collection-entry .is-entry-products .elementor-loop-container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(32px, 5vw, 48px);
  }

  body .ho-collection-entry .is-entry-products .elementor-loop-container > .e-loop-item:first-child {
    grid-column: span 2;
    max-width: 30rem;
    justify-self: start;
  }
}

@media (min-width: 1024px) {
  body .ho-collection-entry {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: var(--ho-space-96);
    align-items: start;
  }

  body .ho-collection-entry .is-entry-editorial {
    position: sticky;
    top: var(--ho-space-120);
    align-self: start;
  }

  body .ho-collection-entry .is-entry-products .elementor-loop-container > .e-loop-item:nth-child(even):not(:first-child) {
    margin-top: clamp(64px, 7vw, 80px);
  }
}

@media (max-width: 1023px) {
  body .ho-collection-entry .is-entry-editorial {
    max-width: 100%;
    padding-inline-start: clamp(16px, 4vw, 24px);
    padding-inline-end: clamp(16px, 4vw, 24px);
  }

  body .ho-collection-entry .is-entry-editorial :is(button, .e-button-base) {
    margin-bottom: var(--ho-space-64);
  }
}

/* ========================================
   H O S Ä E N A — COLLECTION FLOW (SCENE 3)
   ======================================== */

body .ho-collection-flow {
  position: relative;
  z-index: 0;
  width: 100%;
  padding:
    clamp(32px, 6vh, 80px)
    clamp(24px, 5vw, 80px)
    clamp(80px, 12vh, 140px);
  background: var(--ho-color-ivory-soft);
}

body .ho-collection-flow .is-flow-products {
  width: 100%;
  max-width: 1400px;
  margin-inline: auto;
  min-width: 0;
}

body .ho-collection-flow .is-flow-products .elementor-widget-loop-grid,
body .ho-collection-flow .is-flow-products .elementor-widget-container {
  width: 100%;
  margin: 0;
}

body .ho-collection-flow .is-flow-products .elementor-loop-container {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: clamp(56px, 8vh, 96px);
  align-items: start;
}

body .ho-collection-flow .is-flow-products .e-loop-item {
  width: 100%;
  min-width: 0;
  margin: 0;
}

body .ho-collection-flow .is-flow-products .e-loop-item > .e-parent {
  display: block;
  width: 100%;
  min-width: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
}

body .ho-collection-flow .is-flow-products .e-loop-item > .e-parent > :first-child {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  margin: 0 0 clamp(16px, 2.5vh, 24px);
  background: #E8E4DC;
}

body .ho-collection-flow .is-flow-products .e-loop-item > .e-parent > :first-child > * {
  margin: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

body .ho-collection-flow .is-flow-products .e-loop-item > .e-parent > :first-child img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 8%;
  box-sizing: border-box;
  background: #E8E4DC;
}

body .ho-collection-flow .is-flow-products .e-loop-item
  > .e-parent
  > :first-child
  > :first-child {
  position: relative;
  z-index: 1;
}

body .ho-collection-flow .is-flow-products .e-loop-item
  > .e-parent
  > :first-child
  > :last-child {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0;
  pointer-events: none;
  transition: opacity 500ms ease-out;
}

body .ho-collection-flow .is-flow-products .e-loop-item:hover
  > .e-parent
  > :first-child
  > :last-child,
body .ho-collection-flow .is-flow-products .e-loop-item:focus-within
  > .e-parent
  > :first-child
  > :last-child {
  opacity: 1;
}

body .ho-collection-flow .is-flow-products .elementor-heading-title {
  margin: 0 0 8px;
  font-family: var(--ho-font-display);
  font-size: clamp(16px, 2.5vw, 20px);
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0;
  color: var(--ho-color-nero);
  text-wrap: balance;
}

body .ho-collection-flow .is-flow-products .price {
  margin: 0;
  font-family: var(--ho-font-body);
  font-size: clamp(12px, 2vw, 14px) !important;
  font-weight: 300 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em;
  color: var(--ho-color-slate);
}

body .ho-collection-flow .is-flow-products .price :is(bdi, span, .woocommerce-Price-currencySymbol),
body .ho-collection-flow .is-flow-products :is(.price, .price *, .amount, .amount *) {
  font: inherit !important;
  color: var(--ho-color-slate) !important;
}

@media (min-width: 768px) {
  body .ho-collection-flow .is-flow-products .elementor-loop-container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(40px, 4vw, 64px);
    row-gap: clamp(56px, 8vh, 96px);
  }
}

@media (min-width: 1024px) {
  body .ho-collection-flow .is-flow-products .elementor-loop-container {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: clamp(40px, 6vw, 64px);
    row-gap: clamp(56px, 8vh, 96px);
  }

  body .ho-collection-flow .is-flow-products .elementor-loop-container > .e-loop-item:nth-child(3n + 2) {
    margin-top: 0;
  }

  body .ho-collection-flow .is-flow-products .elementor-loop-container > .e-loop-item:nth-child(3n + 3) {
    margin-top: 0;
  }
}

@media (max-width: 1023px) {
  body .ho-collection-flow .is-flow-products .elementor-loop-container > .e-loop-item {
    margin-top: 0 !important;
  }
}

@media (max-width: 767px) {
  body .ho-collection-flow .is-flow-products .e-loop-item
    > .e-parent
    > :first-child
    > :last-child {
    display: none;
  }
}

/* =========================================================
   PRODUCT CARD UI — EDITORIAL SYSTEM
   ========================================================= */

/* =========================================================
   PRODUCT GRID — FINAL SAFE SYSTEM
   ========================================================= */

/* Only target your collection page */
.ho-collection-grid .woocommerce ul.products,
.ho-collection-grid .elementor-widget-woocommerce-products .products {
  row-gap: clamp(3.5rem, 7vw, 6rem);
}

/* Tablet */
@media (max-width: 1024px) {
  .ho-collection-grid .woocommerce ul.products,
  .ho-collection-grid .elementor-widget-woocommerce-products .products {
    row-gap: clamp(3.5rem, 7vw, 6rem);
  }
}

/* Mobile */
@media (max-width: 640px) {
  .ho-collection-grid .woocommerce ul.products,
  .ho-collection-grid .elementor-widget-woocommerce-products .products {
    row-gap: var(--ho-space-48);
  }
}

/* =========================================================
   H O S Ä E N A — COVER PRODUCT CARD SYSTEM
   Shared component for editorial product cards using:
   .ho-cover-card
   .ho-cover-card__title
   .ho-cover-card__meta
   .ho-cover-card__stage
   .ho-cover-card__image
   .ho-cover-card__hover
   .ho-cover-card__share
   .ho-cover-card__footer
   .ho-cover-card__price
   .ho-cover-card__cta
   ========================================================= */

body .elementor .elementor-element.ho-cover-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  max-width: 36rem;
  min-width: 0;
  height: auto;
  min-height: 0;
  margin-inline: auto;
  padding: clamp(0.5rem, 1vw, 0.8rem) 0 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  text-align: center;
  transform: none !important;
  cursor: pointer;
}

body .elementor .elementor-element.ho-cover-card > .elementor-element {
  width: 100%;
  height: auto;
  margin: 0;
}

body .elementor .ho-cover-card:focus-visible {
  outline: 2px solid rgba(193, 164, 109, 0.72);
  outline-offset: 6px;
}

body .elementor .ho-cover-card,
body .elementor .ho-cover-card__title,
body .elementor .ho-cover-card__meta,
body .elementor .ho-cover-card__stage,
body .elementor .ho-cover-card__footer {
  transform: none !important;
}

body .elementor .elementor-element.ho-cover-card__title {
  width: 100%;
  margin: 0 0 clamp(0.35rem, 0.8vw, 0.55rem) !important;
  padding: 0 !important;
}

body .elementor .ho-cover-card__title .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}

body .elementor .ho-cover-card__title .elementor-heading-title,
body .elementor .ho-cover-card__title .elementor-heading-title a {
  margin: 0 !important;
  font-family: var(--ho-font-display) !important;
  font-size: clamp(1.06rem, 1.26vw, 1.18rem) !important;
  font-weight: 400 !important;
  line-height: 1.18 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: rgba(15, 15, 15, 0.86) !important;
  text-wrap: balance;
}

body .elementor .elementor-element.ho-cover-card__meta {
  width: 100%;
  margin: 0 0 clamp(0.9rem, 1.8vw, 1.2rem) !important;
}

body .elementor .ho-cover-card__meta .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}

body .elementor .ho-cover-card__meta :is(.elementor-post-info, .elementor-post-info__terms-list, .elementor-icon-list-items) {
  justify-content: center;
}

body .elementor .ho-cover-card__meta :is(.elementor-post-info__item, .elementor-post-info__terms-list-item, .elementor-post-info__terms-list-item a, .elementor-icon-list-text, .elementor-icon-list-text a) {
  font-family: var(--ho-font-body) !important;
  font-size: clamp(0.69rem, 0.82vw, 0.76rem) !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
  color: rgba(15, 15, 15, 0.58) !important;
}

body .elementor .elementor-element.ho-cover-card__stage {
  position: relative;
  isolation: isolate;
  contain: paint;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 27.75rem;
  aspect-ratio: 3 / 4;
  margin: 0 auto clamp(1rem, 2vw, 1.35rem);
  padding: 0 !important;
  overflow: hidden;
  background: transparent !important;
}

body .elementor .ho-cover-card__stage::before {
  content: "";
  position: absolute;
  inset: 0;
  box-shadow: inset 0 0 0 1px rgba(15, 15, 15, 0.07);
  pointer-events: none;
  z-index: 3;
}

body .elementor .ho-cover-card__stage > :is(.ho-cover-card__image, .ho-cover-card__hover) {
  width: 100%;
  height: 100%;
  margin: 0;
}

body .elementor .ho-cover-card__stage > :is(.ho-cover-card__image, .ho-cover-card__hover) > .elementor-widget-container {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  line-height: 0;
}

body .elementor :is(.ho-cover-card__image, .ho-cover-card__hover) {
  width: 100%;
  height: 100%;
  padding: 0 !important;
  transition: opacity var(--ho-product-card-swap-speed) var(--ho-product-card-swap-ease);
}

body .elementor :is(.ho-cover-card__image, .ho-cover-card__hover) a {
  display: block;
  width: 100%;
  height: 100%;
}

body .elementor .ho-cover-card__hover-media {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}

body .elementor :is(.ho-cover-card__image, .ho-cover-card__hover) img {
  display: block;
  width: 100%;
  height: 100%;
  padding: clamp(0.48rem, 3.4%, 0.72rem);
  box-sizing: border-box;
  object-fit: contain !important;
  object-position: center center;
  background: transparent !important;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  image-rendering: auto;
  transform: translateZ(0);
}

body .elementor .ho-cover-card__hover-fallback-image,
body .elementor .ho-cover-card__hover-video {
  position: absolute;
  inset: 0;
}

body .elementor .ho-cover-card__hover-video {
  display: block;
  width: 100%;
  height: 100%;
  padding: clamp(0.48rem, 3.4%, 0.72rem);
  box-sizing: border-box;
  object-fit: contain;
  object-position: center center;
  background: transparent !important;
  opacity: 0;
  transition: opacity var(--ho-product-card-swap-speed) var(--ho-product-card-swap-ease);
}

body .elementor .ho-cover-card__image {
  position: relative;
  z-index: 1;
  opacity: 1;
}

body .elementor .ho-cover-card__hover {
  position: absolute !important;
  inset: 0;
  z-index: 2;
  opacity: 0;
  pointer-events: none;
}

body .elementor .ho-cover-card.is-hover-video-ready .ho-cover-card__hover-video {
  opacity: 1;
}

body .elementor .ho-cover-card.is-hover-ready:is(:hover, :focus-within) .ho-cover-card__image {
  opacity: 0;
}

body .elementor .ho-cover-card.is-hover-ready:is(:hover, :focus-within) .ho-cover-card__hover {
  opacity: 1;
}

body .elementor .elementor-element.ho-cover-card__share {
  position: absolute;
  top: clamp(0.55rem, 1.2vw, 0.72rem);
  left: clamp(0.55rem, 1.2vw, 0.72rem);
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0 !important;
  border: 0;
  background: transparent !important;
  opacity: 0;
  transform: translateY(-2px);
  transition:
    opacity 280ms ease-out,
    transform 280ms ease-out;
  cursor: pointer;
}

body .elementor :is(.ho-cover-card:hover, .ho-cover-card:focus-within) .ho-cover-card__share,
body .elementor .ho-cover-card__share:focus-visible {
  opacity: 1;
  transform: translateY(0);
}

body .elementor .ho-cover-card__share::after {
  content: attr(data-share-feedback);
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  opacity: 0;
  transform: translateY(-2px);
  font-family: var(--ho-font-body);
  font-size: 0.58rem;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
  color: rgba(15, 15, 15, 0.62);
  transition:
    opacity 180ms ease-out,
    transform 180ms ease-out;
  pointer-events: none;
}

body .elementor .ho-cover-card__share[data-share-feedback]::after {
  opacity: 1;
  transform: translateY(0);
}

body .elementor .ho-cover-card__share > .elementor-widget-container {
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  line-height: 1;
}

body .elementor .ho-cover-card__share :is(.elementor-icon-wrapper, .elementor-icon) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
}

body .elementor .ho-cover-card__share .elementor-icon {
  color: rgba(15, 15, 15, 0.58);
  opacity: 0.96;
}

body .elementor .ho-cover-card__share :is(svg, i) {
  font-size: 0.76rem;
  filter: drop-shadow(0 0 4px rgba(247, 243, 236, 0.42));
}

body .elementor .ho-cover-card__share svg {
  width: 0.82rem;
  height: 0.82rem;
  stroke-width: 1.4;
}

body .elementor .elementor-element.ho-cover-card__footer {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: min(100%, 22rem);
  max-width: 22rem;
  margin: clamp(0.2rem, 0.8vw, 0.45rem) 0 0;
  padding: clamp(1rem, 1.6vw, 1.2rem) 0 0 !important;
}

body .elementor .ho-cover-card__footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: clamp(2.4rem, 5vw, 3.5rem);
  height: 1px;
  transform: translateX(-50%);
  background: rgba(15, 15, 15, 0.08);
}

body .elementor .elementor-element.ho-cover-card__price {
  width: 100%;
  margin: 0 0 clamp(0.8rem, 1.4vw, 1.05rem);
  opacity: 0;
  transform: translateY(4px);
  transition:
    opacity 280ms ease-out,
    transform 280ms ease-out;
  pointer-events: none;
}

body .elementor :is(.ho-cover-card:hover, .ho-cover-card:focus-within) .ho-cover-card__price {
  opacity: 1;
  transform: translateY(0);
}

body .elementor .ho-cover-card__price :is(.elementor-heading-title, .elementor-heading-title *, .price, .price *, .amount, .woocommerce-Price-amount, .woocommerce-Price-currencySymbol) {
  margin: 0;
  font-family: var(--ho-font-body) !important;
  font-size: clamp(0.78rem, 0.95vw, 0.9rem) !important;
  font-weight: 400 !important;
  line-height: 1.42 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
  color: rgba(15, 15, 15, 0.58) !important;
}

body .elementor .elementor-element.ho-cover-card__cta {
  width: auto;
}

body .elementor .ho-cover-card__cta .elementor-widget-container {
  margin: 0;
  padding: 0;
}

body .elementor .ho-cover-card__cta .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 0;
  margin: 0;
  padding: 0 0 0.5rem;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(15, 15, 15, 0.08);
  border-radius: 0;
  box-shadow: none;
  font-family: var(--ho-font-body);
  font-size: clamp(0.68rem, 0.9vw, 0.76rem);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(15, 15, 15, 0.58);
  transition:
    color 320ms var(--ho-ease-soft),
    border-color 320ms var(--ho-ease-soft),
    opacity 320ms var(--ho-ease-soft);
}

body .elementor :is(.ho-cover-card:hover, .ho-cover-card:focus-within) .ho-cover-card__cta .elementor-button,
body .elementor .ho-cover-card__cta .elementor-button:hover,
body .elementor .ho-cover-card__cta .elementor-button:focus-visible {
  color: rgba(15, 15, 15, 0.78);
  border-color: rgba(15, 15, 15, 0.22);
  background: transparent;
}

body .elementor .ho-cover-card :is(a, button, .elementor-button):focus-visible {
  outline: 2px solid rgba(193, 164, 109, 0.72);
  outline-offset: 4px;
}

body .elementor .ho-cover-card__share:focus-visible {
  outline: 2px solid rgba(193, 164, 109, 0.72);
  outline-offset: 4px;
}

@media (hover: none), (max-width: 767px) {
  body .elementor .ho-cover-card__hover {
    display: none;
  }

  body .elementor .ho-cover-card__share {
    opacity: 1;
    transform: none;
  }

  body .elementor .ho-cover-card__price {
    opacity: 1;
    transform: none;
  }

  body .elementor .ho-cover-card__title .elementor-heading-title,
  body .elementor .ho-cover-card__title .elementor-heading-title a {
    font-size: clamp(1rem, 4.2vw, 1.12rem);
    letter-spacing: 0.12em;
  }

  body .elementor .ho-cover-card__meta :is(.elementor-post-info__item, .elementor-post-info__terms-list-item, .elementor-post-info__terms-list-item a, .elementor-icon-list-text, .elementor-icon-list-text a) {
    font-size: 0.69rem;
    letter-spacing: 0.18em;
  }

  body .elementor .ho-cover-card__stage {
    max-width: 100%;
    margin-bottom: 1.1rem;
  }

  body .elementor .ho-cover-card__footer {
    width: min(100%, 18rem);
    padding-top: 0.9rem !important;
  }

  body .elementor .ho-cover-card__price :is(.elementor-heading-title, .elementor-heading-title *, .price, .price *, .amount, .woocommerce-Price-amount, .woocommerce-Price-currencySymbol) {
    font-size: 0.76rem !important;
    letter-spacing: 0.18em !important;
  }

  body .elementor .ho-cover-card__cta .elementor-button {
    font-size: 0.68rem;
    letter-spacing: 0.24em;
  }
}

@media (prefers-reduced-motion: reduce) {
  body .elementor .ho-cover-card__image,
  body .elementor .ho-cover-card__hover,
  body .elementor .ho-cover-card__hover-video,
  body .elementor .ho-cover-card__share,
  body .elementor .ho-cover-card__price {
    transition: none;
    transform: none;
  }
}

/* Container breathing */
.ho-collection-grid .woocommerce ul.products,
.ho-collection-grid .elementor-widget-woocommerce-products .products {
  padding-inline: clamp(1.5rem, 4vw, 3rem);
}

/* Wrapper normalization (safe for Elementor/Woo cards) */

.woocommerce ul.products li.product,
.elementor-widget-woocommerce-products .product {
  display: flex;
  flex-direction: column;
  gap: var(--ho-space-16);
}

/* Prevent stretched feel */

.woocommerce ul.products li.product {
  max-width: 100%;
}

/* Subtle editorial rhythm */
.ho-collection-grid .woocommerce ul.products li.product:nth-child(3n+2),
.ho-collection-grid .elementor-widget-woocommerce-products .product:nth-child(3n+2) {
  transform: translateY(6px);
}

/* Image */

.woocommerce ul.products li.product img,
.elementor-widget-woocommerce-products img {
  width: 100%;
  height: auto;
  object-fit: cover;

  transition: transform 600ms var(--ho-ease-soft);
}

/* Subtle hover */

.woocommerce ul.products li.product:hover img,
.elementor-widget-woocommerce-products .product:hover img {
  transform: scale(1.02);
}

/* =========================================================
   PRODUCT CARD — IMAGE SWAP
   ========================================================= */

.ho-product-card__media {
  position: relative;
  overflow: hidden;
}

.ho-product-card__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;

  transition:
    opacity 350ms var(--ho-ease-soft),
    transform 600ms var(--ho-ease-soft);
}

.ho-product-card__media img:first-child {
  opacity: 1;
}

.ho-product-card__media img.is-alt {
  opacity: 0;
}

.ho-product-card:hover .ho-product-card__media img:first-child {
  opacity: 0;
  transform: scale(1.01);
}

.ho-product-card:hover .ho-product-card__media img.is-alt {
  opacity: 1;
  transform: scale(1.015);
}

@media (prefers-reduced-motion: reduce) {
  .ho-product-card__media img {
    transition: none;
    transform: none;
  }
}

/* Title */

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.elementor-widget-woocommerce-products .woocommerce-loop-product__title {
  font-family: var(--ho-font-body);
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 400;

  color: var(--ho-color-nero);

  margin: 0;
}

/* Price */

.woocommerce ul.products li.product .price,
.elementor-widget-woocommerce-products .price {
  font-family: var(--ho-font-body);
  font-size: 0.75rem;
  letter-spacing: 0.14em;

  color: rgba(0, 0, 0, 0.65);

  margin: 0;
}

/* Remove Woo clutter */

.woocommerce ul.products li.product .button.add_to_cart_button::after {
  display: none !important;
}

/* Add spacing between elements */

.woocommerce ul.products li.product .price {
  margin-top: var(--ho-space-4);
}

/* CTA alignment */

.woocommerce ul.products li.product .button,
.elementor-widget-woocommerce-products .button {
  margin-top: var(--ho-space-16);
}

/*
  COMMERCE UTILITIES (SECTION 9 - SAFE LAYER)
*/
.ho-product-title,
.ho-product-artifact__title {
  font-family: var(--ho-font-body);
  font-size: var(--ho-text-meta);
  letter-spacing: var(--ho-tracking-meta);
  text-transform: uppercase;
  font-weight: 400;
  color: var(--ho-color-nero);
}

.ho-price,
.ho-product-artifact__price {
  font-family: var(--ho-font-body);
  font-size: var(--ho-text-meta);
  letter-spacing: var(--ho-tracking-meta);
  color: rgba(0, 0, 0, 0.7);
}

.ho-product-tagline,
.ho-product-artifact__tagline {
  font-family: var(--ho-font-display);
  font-style: italic;
  font-size: 0.95rem;
  color: rgba(0, 0, 0, 0.55);
  margin-top: var(--ho-space-4);
}

.ho-badge {
  display: inline-block;
  font-size: 0.7rem;
  letter-spacing: var(--ho-tracking-eyebrow);
  text-transform: uppercase;
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--ho-color-border);
  color: var(--ho-color-nero);
  opacity: 0.8;
}

.ho-product-quick {
  position: absolute;
  inset: auto var(--ho-space-16) var(--ho-space-16);
  display: flex;
  justify-content: center;
  opacity: 0;
  transform: translateY(8px);
  transition:
    opacity var(--ho-speed-base) var(--ho-ease-soft),
    transform var(--ho-speed-base) var(--ho-ease-soft);
}

.ho-product-artifact:hover .ho-product-quick {
  opacity: 1;
  transform: translateY(0);
}

.ho-product-quick button,
.ho-product-quick .ho-btn {
  padding: var(--ho-space-12) var(--ho-space-24);
}

.elementor .ho-product-artifact__header .elementor-heading-title {
  font-family: "Cormorant Garamond", serif !important;
}

/* =========================================================
   TYPOGRAPHY ALIGNMENT
   ========================================================= */

h1,
.woocommerce h1 {
  font-family: var(--ho-font-display);
  letter-spacing: 0.02em;
}

.woocommerce h2,
.woocommerce h3 {
  font-family: var(--ho-font-display);
  letter-spacing: 0.04em;
}

.woocommerce th,
.woocommerce label {
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.6;
}

.woocommerce td,
.woocommerce .amount {
  letter-spacing: 0.08em;
}

/* ========================================
   Shared cover-card timing variables
   Retained for the live Collection card system.
   Old template-ID card rules were removed after
   the Collection migrated to ho-cover-card.
   ======================================== */

body {
  --ho-product-card-frame: 3 / 4;
  --ho-product-card-media-bg: #e8e4dc;
  --ho-product-card-media-pad: 8%;
  --ho-product-card-swap-speed: 500ms;
  --ho-product-card-swap-ease: ease-out;
}

/* ========================================
   H O S Ä E N A — FOOTER SYSTEM (LOCAL)
======================================== */

.ho-footer.site-footer {
  margin: 0;
  border: 0;
  background: var(--ho-color-calacatta);
  color: var(--ho-color-nero);
}

.ho-footer,
.ho-footer * {
  box-sizing: border-box;
}

.ho-footer a {
  color: inherit;
  text-decoration: none;
}

.ho-footer__inner {
  width: min(100%, calc(var(--ho-header-max) + (var(--ho-header-shell-pad) * 2)));
  margin-inline: auto;
  padding-inline: var(--ho-header-shell-pad);
}

.ho-footer__house-mark {
  background: var(--ho-color-calacatta);
  padding-block: clamp(4rem, 7vw, 5.5rem);
  text-align: center;
}

.ho-footer__house-mark .ho-footer__inner {
  max-width: calc(45rem + (var(--ho-header-shell-pad) * 2));
}

.ho-footer__ornament {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ho-space-16);
  margin-bottom: var(--ho-space-24);
}

.ho-footer__ornament-rule {
  width: clamp(2.5rem, 8vw, 7.5rem);
  height: 1px;
  background: color-mix(in srgb, var(--ho-color-gold) 72%, transparent);
}

.ho-footer__ornament-diamond {
  width: 0.375rem;
  aspect-ratio: 1;
  border: 1px solid color-mix(in srgb, var(--ho-color-gold) 52%, transparent);
  transform: rotate(45deg);
}

.ho-footer__wordmark,
.ho-footer__identity,
.ho-footer__statement,
.ho-footer__volume,
.ho-footer__address,
.ho-footer__quote,
.ho-footer__copyright,
.ho-footer__provenance {
  margin: 0;
}

.ho-footer__wordmark {
  font-family: var(--ho-font-display);
  font-size: clamp(2.8rem, 7vw, 5.5rem);
  font-weight: 300;
  line-height: 1.05;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ho-footer__identity,
.ho-footer__volume,
.ho-footer__amharic-close {
  font-family: var(--ho-font-amharic);
}

.ho-footer__identity {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  margin-top: var(--ho-space-16);
  color: var(--ho-ink-nero-28);
  font-size: 0.9rem;
  line-height: 1.4;
}

.ho-footer__identity span:last-child {
  font-family: var(--ho-font-display);
  font-style: italic;
  letter-spacing: 0.02em;
}

.ho-footer__identity--am {
  letter-spacing: 0.08em;
}

.ho-footer__statement {
  max-width: 32.5rem;
  margin: var(--ho-space-20) auto 0;
  color: var(--ho-ink-nero-72);
  font-family: var(--ho-font-display);
  font-size: clamp(0.92rem, 1.3vw, 1.1rem);
  font-weight: 300;
  line-height: 1.6;
}

.ho-footer__volume {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: var(--ho-space-24);
  font-size: 0.675rem;
}

.ho-footer__volume-latin {
  color: var(--ho-color-gold);
  font-family: var(--ho-font-body);
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.ho-footer__volume-am,
.ho-footer__volume-phon {
  color: var(--ho-ink-nero-28);
}

.ho-footer__volume-dot {
  color: color-mix(in srgb, var(--ho-color-gold) 70%, transparent);
}

.ho-footer__navigator {
  background: var(--ho-color-parchment);
  padding: 3.5rem 0 3rem;
}

.ho-footer__navigator .ho-footer__inner,
.ho-footer__presence .ho-footer__inner,
.ho-footer__basement .ho-footer__inner {
  max-width: calc(68.75rem + (var(--ho-header-shell-pad) * 2));
}

.ho-footer__directory {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ho-space-32);
}

.ho-footer__column {
  min-width: 0;
}

.ho-footer__column-title {
  margin: 0 0 1.1rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid rgb(15 15 15 / 6%);
  color: var(--ho-color-gold) !important;
  font-family: var(--ho-font-body) !important;
  font-size: 0.58rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.22em !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
}

.ho-footer__column-list {
  display: grid;
  gap: 0.85rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ho-footer__nav-link,
.ho-footer__channel-value {
  color: var(--ho-ink-nero-72);
  font-family: var(--ho-font-display);
  font-size: 0.88rem;
  font-weight: 300;
  line-height: 1.35;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
  transition: color 180ms var(--ho-ease-soft), opacity 180ms var(--ho-ease-soft);
}

.ho-footer__nav-link--caps {
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

.ho-footer__nav-link:hover,
.ho-footer__nav-link:focus-visible,
.ho-footer__channel-value:hover,
.ho-footer__channel-value:focus-visible,
.ho-footer__policy-link:hover,
.ho-footer__policy-link:focus-visible {
  color: var(--ho-color-nero);
}

.ho-footer__nav-link--placeholder,
.ho-footer__channel-value--placeholder,
.ho-footer__policy-link--placeholder {
  cursor: default;
}

.ho-footer__nav-link-sub {
  display: block;
  margin-top: 0.2rem;
  color: var(--ho-ink-nero-38);
  font-family: var(--ho-font-display);
  font-size: 0.68rem;
  line-height: 1.5;
  letter-spacing: 0.03em;
}

.ho-footer__newsletter {
  margin-top: var(--ho-space-32);
  padding-top: 1.25rem;
  border-top: 1px solid rgb(15 15 15 / 5%);
}

.ho-footer__newsletter-invite,
.ho-footer__newsletter-status,
.ho-footer__channel-note,
.ho-footer__quote,
.ho-footer__address-meta {
  font-family: var(--ho-font-display);
  font-style: italic;
}

.ho-footer__newsletter-invite {
  color: var(--ho-ink-nero-52);
  font-size: 0.75rem;
  line-height: 1.6;
}

.ho-footer__newsletter-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ho-space-16);
  margin-top: 0.8rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid rgb(15 15 15 / 10%);
}

.ho-footer__newsletter-row:focus-within {
  border-bottom-color: var(--ho-color-nero);
}

.ho-footer__newsletter-form {
  margin-top: 0.8rem;
}

.ho-footer__newsletter-honeypot {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-footer.ho-footer .ho-footer__newsletter-field {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--ho-ink-nero-52) !important;
  font-family: var(--ho-font-display);
  font-size: 0.82rem;
  font-style: italic;
  appearance: none;
  -webkit-appearance: none;
}

.site-footer.ho-footer .ho-footer__newsletter-field::placeholder {
  color: var(--ho-ink-nero-38);
  font-style: italic;
}

.site-footer.ho-footer .ho-footer__newsletter-field:focus {
  outline: none;
}

.site-footer.ho-footer .ho-footer__newsletter-submit {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  justify-content: flex-end;
  min-height: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--ho-ink-nero-38) !important;
  font-family: var(--ho-font-body);
  font-size: 0.56rem;
  letter-spacing: 0.18em;
  line-height: 1.35;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  transition: none;
  appearance: none;
  -webkit-appearance: none;
}

.site-footer.ho-footer .ho-footer__newsletter-submit:hover,
.site-footer.ho-footer .ho-footer__newsletter-submit:focus,
.site-footer.ho-footer .ho-footer__newsletter-submit:focus-visible,
.site-footer.ho-footer .ho-footer__newsletter-submit:active {
  background: transparent;
  color: var(--ho-ink-nero-38) !important;
  box-shadow: none !important;
  outline: none;
}

.site-footer.ho-footer .ho-footer__newsletter-submit-arrow {
  display: inline-block;
  transform: translateX(0);
  transition: transform 180ms ease;
}

.site-footer.ho-footer .ho-footer__newsletter-submit:hover .ho-footer__newsletter-submit-arrow,
.site-footer.ho-footer .ho-footer__newsletter-submit:focus-visible .ho-footer__newsletter-submit-arrow {
  transform: translateX(0.18rem);
}

.ho-footer__newsletter-status {
  margin-top: 0.6rem;
  color: var(--ho-ink-nero-38);
  font-size: 0.66rem;
  line-height: 1.5;
}

.ho-footer__newsletter-status--success {
  color: var(--ho-ink-nero-52);
}

.ho-footer__newsletter-status--error {
  color: var(--ho-ink-nero-72);
}

.ho-footer__presence {
  background: var(--ho-color-stone);
  padding: 3rem 0;
}

.ho-footer__presence-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr) 1px minmax(0, 1fr);
  align-items: start;
}

.ho-footer__presence-col {
  min-width: 0;
  padding-inline: var(--ho-space-32);
}

.ho-footer__presence-col .ho-footer__column-title {
  margin-bottom: 1.4rem;
}

.ho-footer__presence-col--social .ho-footer__channel-value {
  letter-spacing: 0.05em !important;
}

.ho-footer__presence-col:first-child {
  padding-left: 0;
}

.ho-footer__presence-col:last-of-type {
  padding-right: 0;
}

.ho-footer__presence-divider {
  width: 1px;
  min-height: 100%;
  background: rgb(15 15 15 / 10%);
}

.ho-footer__address {
  display: grid;
  gap: 0.1rem;
  color: var(--ho-ink-nero-72);
  font-family: var(--ho-font-display);
  font-size: 0.95rem;
  font-style: normal;
  font-weight: 300;
  line-height: 1.75;
}

.ho-footer__address-meta {
  margin-top: 0.2rem;
  color: var(--ho-ink-nero-52);
}

.ho-footer__quote {
  margin-top: var(--ho-space-16);
  padding-left: 0.75rem;
  border-left: 1.5px solid rgb(193 164 109 / 32%);
  color: var(--ho-ink-nero-45);
  font-size: 0.72rem;
  line-height: 1.6;
}

.ho-footer__channels {
  display: grid;
  gap: 0.85rem;
}

.ho-footer__channel-row {
  display: grid;
  gap: 0.05rem;
  min-width: 0;
}

.ho-footer__channel-label,
.ho-footer__copyright,
.ho-footer__policy-link {
  font-family: var(--ho-font-body);
  text-transform: uppercase;
}

.ho-footer__channel-label {
  color: var(--ho-ink-nero-52);
  font-size: 0.56rem;
  letter-spacing: 0.17em;
  line-height: 1.45;
}

.ho-footer__channel-note {
  color: var(--ho-ink-nero-38);
  font-size: 0.65rem;
  line-height: 1.5;
}

.ho-footer__basement {
  background: var(--ho-color-nero);
  color: var(--ho-color-calacatta);
  padding: 1.75rem 0;
}

.ho-footer__basement-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.ho-footer__copyright {
  color: var(--ho-ink-ivory-20);
  font-size: 0.58rem;
  letter-spacing: 0.16em;
  line-height: 1.5;
}

.ho-footer__policies {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.25rem;
}

.ho-footer__policy-link {
  color: var(--ho-ink-ivory-15);
  font-size: 0.58rem;
  letter-spacing: 0.15em;
  line-height: 1.5;
  transition: color 180ms var(--ho-ease-soft), opacity 180ms var(--ho-ease-soft);
}

.ho-footer__policy-link:hover,
.ho-footer__policy-link:focus-visible {
  color: var(--ho-ink-ivory-60);
}

.ho-footer__provenance {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--ho-ink-ivory-15);
  font-size: 0.58rem;
  letter-spacing: 0.14em;
  line-height: 1.5;
}

.ho-footer__provenance-rule {
  width: 0.625rem;
  height: 1px;
  background: var(--ho-ink-ivory-08);
}

.ho-footer__amharic-close {
  color: var(--ho-ink-ivory-20);
  font-size: 0.72rem;
  font-style: italic;
  letter-spacing: 0.08em;
}

@media (max-width: 1024px) {
  .ho-footer__presence-grid {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }

  .ho-footer__presence-col {
    padding-inline: 0;
  }

  .ho-footer__presence-divider {
    display: none;
  }
}

@media (max-width: 680px) {
  .ho-footer__directory {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.5rem 1.5rem;
  }
}

@media (max-width: 600px) {
  .ho-footer__wordmark {
    font-size: clamp(1.95rem, 9.6vw, 2.65rem);
    letter-spacing: 0.08em;
  }

  .ho-footer__basement-row {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .ho-footer__policies {
    justify-content: center;
    gap: 0.75rem 1rem;
  }

  .ho-footer__provenance {
    justify-content: center;
  }
}

@media (max-width: 560px) {
  .ho-footer__directory {
    grid-template-columns: 1fr;
    gap: 2.1rem;
  }

  .ho-footer__newsletter-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 420px) {
  .ho-footer__wordmark {
    font-size: clamp(1.72rem, 9.2vw, 2.15rem);
    letter-spacing: 0.06em;
  }
}
