:root {
  --e-global-color-primary: var(--color-text-primary);
  --e-global-color-secondary: var(--color-text-secondary);
  --e-global-color-text: var(--color-text-primary);
  --e-global-color-accent: var(--color-accent);
  --e-global-typography-primary-font-family: var(--font-family-display);
  --e-global-typography-secondary-font-family: var(--font-family-body);
  --e-global-typography-text-font-family: var(--font-family-body);
  --e-global-typography-accent-font-family: var(--font-family-ui);
}

.elementor-location-header,
.elementor-location-footer,
.elementor-location-archive,
.elementor-location-single {
  color: var(--color-text-primary);
  font-family: var(--font-family-body);
}

.elementor-location-header a,
.elementor-location-footer a,
.elementor-location-archive a,
.elementor-location-single a {
  color: var(--color-link);
}

.elementor-location-header a:hover,
.elementor-location-header a:focus-visible,
.elementor-location-footer a:hover,
.elementor-location-footer a:focus-visible,
.elementor-location-archive a:hover,
.elementor-location-archive a:focus-visible,
.elementor-location-single a:hover,
.elementor-location-single a:focus-visible {
  color: var(--color-link-hover);
}

.elementor-location-header {
  background: color-mix(in srgb, var(--color-bg-page) 94%, white 6%);
  border-bottom: 1px solid var(--color-border-subtle);
}

.elementor-location-header :is(.elementor-heading-title, .hfe-menu-item, .menu-link, .e-n-menu-title-text),
.elementor-location-footer :is(.elementor-heading-title, .hfe-menu-item, .menu-link) {
  letter-spacing: var(--letter-spacing-heading);
}

.elementor-location-header :is(.hfe-menu-item, .menu-link, .e-n-menu-title-text),
.elementor-location-footer :is(.hfe-menu-item, .menu-link) {
  font-family: var(--font-family-ui);
  font-size: var(--font-size-body-sm);
  line-height: var(--line-height-ui);
  text-decoration: none;
}

.elementor-location-footer {
  background: var(--color-bg-inverse);
  color: var(--color-text-inverse);
}

.elementor-location-footer :is(h1, h2, h3, h4, h5, h6, p, li, a, span) {
  color: inherit;
}

.elementor-location-footer a:hover,
.elementor-location-footer a:focus-visible {
  color: var(--color-accent);
}

.elementor :is(h1, h2, h3, h4, h5, h6),
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-woocommerce-product-title .product_title {
  color: var(--color-text-primary);
  font-family: var(--page-mode-heading-family);
  font-weight: 500;
  letter-spacing: var(--letter-spacing-heading);
  line-height: var(--line-height-heading);
}

.elementor-location-archive .elementor-widget-heading .elementor-heading-title,
.elementor-location-single .elementor-widget-woocommerce-product-title .product_title {
  font-size: var(--font-size-heading-1);
}

.elementor-widget-text-editor,
.elementor-widget-theme-post-content,
.elementor-widget-woocommerce-product-short-description,
.elementor-widget-woocommerce-product-content,
.elementor-widget-woocommerce-product-data-tabs {
  color: var(--color-text-primary);
  font-family: var(--font-family-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
}

.elementor-widget-text-editor p,
.elementor-widget-theme-post-content p,
.woocommerce-product-details__short-description p {
  margin: 0;
}

.elementor-widget-text-editor p + p,
.elementor-widget-theme-post-content p + p,
.woocommerce-product-details__short-description p + p {
  margin-top: var(--space-3);
}

.elementor-button,
.elementor-widget-button .elementor-button {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  min-height: var(--cta-primary-height);
  padding: 0 var(--cta-primary-padding-x) !important;
  border: 1px solid var(--cta-primary-border) !important;
  border-radius: var(--cta-primary-radius) !important;
  background: var(--cta-primary-bg) !important;
  color: var(--cta-primary-text) !important;
  font-family: var(--font-family-ui) !important;
  font-size: var(--font-size-label) !important;
  font-weight: 600 !important;
  letter-spacing: var(--letter-spacing-button) !important;
  line-height: var(--line-height-ui);
  text-decoration: none;
  text-transform: uppercase !important;
  transition:
    background-color var(--duration-base) var(--ease-standard),
    border-color var(--duration-base) var(--ease-standard),
    color var(--duration-base) var(--ease-standard),
    transform var(--duration-fast) var(--ease-soft);
}

.elementor-button:hover,
.elementor-button:focus-visible,
.elementor-widget-button .elementor-button:hover,
.elementor-widget-button .elementor-button:focus-visible {
  background: var(--cta-primary-hover-bg) !important;
  border-color: var(--cta-primary-hover-bg) !important;
  color: var(--cta-primary-text) !important;
  transform: translateY(-1px);
}

.elementor-button .elementor-button-icon svg {
  display: block;
  width: 1em;
  height: 1em;
  fill: currentColor;
}

.elementor-section-boxed > .elementor-container,
.e-con.e-con-boxed > .e-con-inner {
  width: min(100% - (2 * var(--layout-gutter)), var(--layout-max-wide));
  max-width: var(--layout-max-wide);
}

.elementor-location-archive,
.elementor-location-single {
  background: var(--color-bg-page);
}

.elementor-location-archive.product > .elementor-section:first-child {
  margin-top: clamp(2rem, 4vw, 3.5rem) !important;
  padding-top: clamp(1.5rem, 3vw, 2.5rem) !important;
  padding-bottom: clamp(1.75rem, 4vw, 3rem) !important;
  background: var(--color-bg-page) !important;
}

.elementor-15055 .elementor-element.elementor-element-cdbab80 {
  margin-top: clamp(2rem, 4vw, 3.5rem) !important;
  padding-top: clamp(1.5rem, 3vw, 2.5rem) !important;
  padding-bottom: clamp(1.75rem, 4vw, 3rem) !important;
  background: var(--color-bg-page) !important;
}

.elementor-15055 .elementor-element.elementor-element-cdbab80 .elementor-widget-wrap {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.elementor-15055 .elementor-element.elementor-element-cdbab80 .elementor-background-overlay {
  display: none !important;
}

.elementor-15055 .elementor-element.elementor-element-d8cce72 {
  background: var(--color-bg-page) !important;
  margin-top: 0 !important;
  padding-top: var(--space-4) !important;
  padding-bottom: var(--space-section-catalog) !important;
}

.elementor-location-archive.product .elementor-widget-theme-archive-title .elementor-heading-title {
  margin: 0;
}

.elementor-location-archive > .elementor-section:last-child,
.elementor-location-single > .elementor-section:last-child {
  padding-bottom: var(--space-section-catalog);
}

.elementor-location-archive .elementor-background-overlay,
.elementor-location-single .elementor-background-overlay {
  opacity: 0.28;
}

.elementor-loop-container,
.elementor-grid {
  gap: var(--space-grid-gap);
}

.elementor-location-archive:not(.product) .elementor-loop-container {
  row-gap: clamp(1.5rem, 3vw, 2.25rem);
}

.elementor-location-archive .e-loop-item.post:not(.product) {
  width: 100%;
  padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
  border-bottom: 1px solid color-mix(in srgb, var(--color-border-subtle) 70%, transparent 30%);
}

.elementor-location-archive .e-loop-item.post:not(.product):last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.elementor-location-archive .e-loop-item.post:not(.product) > .e-con {
  width: 100%;
}

.elementor-location-archive .e-loop-item.post:not(.product) > .e-con > .e-con-inner {
  width: 100%;
  max-width: none;
  padding: 0;
}

.elementor-location-archive .e-loop-item.post:not(.product) > .e-grid > .e-con-inner {
  grid-template-columns: minmax(12rem, 16.5rem) minmax(0, 46rem) !important;
  gap: var(--space-3) clamp(1.25rem, 2.5vw, 2rem) !important;
  align-items: center;
}

.elementor-location-archive .e-loop-item.post:not(.product) .elementor-widget-theme-post-featured-image {
  max-width: 16.5rem;
  overflow: hidden;
  background: var(--color-bg-surface);
  border: 1px solid color-mix(in srgb, var(--color-border-subtle) 72%, transparent 28%);
  border-radius: var(--radius-sm);
}

.elementor-location-archive .e-loop-item.post:not(.product) .elementor-widget-theme-post-featured-image a {
  display: block;
}

.elementor-location-archive .e-loop-item.post:not(.product) .elementor-widget-theme-post-featured-image img {
  display: block;
  width: 100%;
  aspect-ratio: 6 / 5;
  object-fit: cover;
}

.elementor-location-archive .e-loop-item.post:not(.product) .elementor-widget-post-info {
  margin-bottom: var(--space-2);
}

.elementor-location-archive .e-loop-item.post:not(.product) .elementor-widget-theme-post-title {
  margin-bottom: var(--space-3);
}

.elementor-location-archive .e-loop-item.post:not(.product) .elementor-widget-theme-post-excerpt {
  max-width: 44rem;
}

.elementor-location-archive .e-loop-item.post:not(.product) .elementor-widget-theme-post-excerpt p {
  margin: 0;
}

.elementor-location-archive .e-loop-item.product {
  height: 100%;
  overflow: hidden;
  background: color-mix(in srgb, var(--color-bg-page) 72%, var(--color-bg-surface) 28%) !important;
  border: 1px solid color-mix(in srgb, var(--color-border-subtle) 55%, transparent 45%) !important;
  border-radius: var(--radius-sm) !important;
  transition:
    box-shadow var(--duration-base) var(--ease-standard),
    transform var(--duration-fast) var(--ease-soft);
}

.elementor-location-archive .e-loop-item.product:hover {
  box-shadow: var(--shadow-soft);
  transform: translateY(-1px);
}

.elementor-location-archive .e-loop-item.product > .e-con,
.elementor-location-archive .e-loop-item.product > .elementor-element {
  height: 100%;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
}

.elementor-location-archive .e-loop-item.product .e-con-inner {
  width: 100%;
  max-width: none;
  padding: var(--card-product-padding) !important;
}

.elementor-location-archive .e-loop-item.product .elementor-widget-theme-post-featured-image {
  overflow: hidden;
  aspect-ratio: var(--ratio-product-card);
  background: color-mix(in srgb, var(--color-bg-surface) 84%, var(--color-bg-page) 16%) !important;
  border-radius: var(--radius-sm) !important;
}

.elementor-location-archive .e-loop-item.product .elementor-widget-theme-post-featured-image a,
.elementor-location-archive .e-loop-item.product .elementor-widget-theme-post-featured-image img {
  display: block;
  width: 100%;
  height: 100%;
}

.elementor-location-archive .e-loop-item.product .elementor-widget-theme-post-featured-image img {
  box-sizing: border-box;
  object-fit: cover;
  object-position: center;
  transition: transform var(--duration-slow) var(--ease-soft);
}

.elementor-location-archive.product .e-loop-item.product .elementor-widget-theme-post-featured-image img {
  object-fit: contain;
  padding: var(--space-2);
}

.elementor-location-archive .e-loop-item.product:hover .elementor-widget-theme-post-featured-image img {
  transform: scale(1.01);
}

.elementor-location-archive .e-loop-item.product .elementor-heading-title {
  color: var(--color-text-primary) !important;
  font-family: "Cormorant Garamond", var(--font-family-display) !important;
  font-size: var(--card-product-title-size) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  text-transform: none !important;
}

.elementor-location-archive .e-loop-item.product .elementor-heading-title a {
  text-decoration: none;
}

.elementor-location-single .elementor-widget-theme-post-featured-image,
.elementor-location-single .elementor-widget-woocommerce-product-images {
  overflow: hidden;
  aspect-ratio: var(--ratio-product-gallery-main);
  background: var(--color-bg-page-alt) !important;
  border-radius: var(--radius-md) !important;
}

.single-product .elementor-top-section {
  border-bottom: 1px solid #00000038;
}

.single-product .woocommerce-product-gallery img,
.single-product .elementor-widget-theme-post-featured-image img,
.single-product .elementor-widget-woocommerce-product-images img {
  box-sizing: border-box;
  display: block;
  width: 100%;
}

.single-product .woocommerce-product-gallery__image,
.single-product .elementor-widget-theme-post-featured-image,
.single-product .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image {
  border: 1px solid #00000038 !important;
}

.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img,
.single-product .elementor-widget-theme-post-featured-image img,
.single-product .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image img {
  height: 100%;
  object-fit: contain;
  padding: var(--space-3);
}

.single-product .woocommerce-product-gallery .flex-control-thumbs img,
.single-product .elementor-widget-woocommerce-product-images .flex-control-thumbs img {
  height: auto;
  padding: 0;
  object-fit: cover;
}

.elementor-widget-woocommerce-product-price .price:empty,
.elementor-widget-woocommerce-product-add-to-cart.elementor-hidden-desktop.elementor-hidden-tablet.elementor-hidden-mobile {
  display: none;
}

.elementor-widget-woocommerce-product-data-tabs .woocommerce-tabs {
  color: var(--color-text-primary);
}

/* Elementor global header: mobile and tablet menu treatment. */
@media (max-width: 64rem) {
  .elementor-element-d52a9e6 {
    transition:
      background-color var(--duration-base) var(--ease-standard),
      box-shadow var(--duration-base) var(--ease-standard);
  }

  .elementor-element-d52a9e6:has(.e-n-menu-toggle[aria-expanded="true"]) {
    background: color-mix(in srgb, var(--color-olive-black-900) 96%, transparent) !important;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(14px);
  }

  .elementor-element-ae9ff69 {
    --n-menu-title-color-normal: var(--color-text-primary) !important;
    --n-menu-title-color-hover: var(--color-accent-strong) !important;
    --n-menu-title-color-active: var(--color-accent-strong) !important;
    --n-menu-toggle-icon-color: var(--color-text-inverse) !important;
    --n-menu-toggle-icon-color-hover: var(--color-text-primary) !important;
    --n-menu-title-font-size: 1.25rem !important;
    --n-menu-title-line-height: 1.2 !important;
  }

  .elementor-element-ae9ff69 .e-n-menu-toggle {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    place-items: center;
    color: var(--color-text-inverse) !important;
    background: rgba(31, 35, 30, 0.56) !important;
    border: 1px solid rgba(248, 244, 238, 0.52) !important;
    border-radius: 999px;
    box-shadow: 0 8px 24px rgba(31, 35, 30, 0.18);
    backdrop-filter: blur(10px);
  }

  .elementor-element-ae9ff69 .e-n-menu-toggle:hover,
  .elementor-element-ae9ff69 .e-n-menu-toggle:focus-visible,
  .elementor-element-ae9ff69 .e-n-menu-toggle[aria-expanded="true"] {
    color: var(--color-text-primary) !important;
    background: var(--color-bg-surface) !important;
    border-color: var(--color-accent) !important;
  }

  .elementor-element-ae9ff69 .e-n-menu-toggle:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 3px;
  }

  .elementor-element-ae9ff69 .e-n-menu-toggle .e-n-menu-toggle-icon,
  .elementor-element-ae9ff69 .e-n-menu-toggle:hover .e-n-menu-toggle-icon,
  .elementor-element-ae9ff69 .e-n-menu-toggle[aria-expanded="true"] .e-n-menu-toggle-icon {
    display: grid;
    width: 100%;
    height: 100%;
    padding: 0;
    place-items: center;
    color: inherit !important;
    background: transparent !important;
    border: 0 !important;
  }

  .elementor-element-ae9ff69 .e-n-menu-wrapper {
    max-height: calc(100dvh - 5.5rem);
    padding: var(--space-3) var(--space-4) var(--space-5);
    overflow-y: auto;
    overscroll-behavior: contain;
    color: var(--color-text-primary) !important;
    background:
      radial-gradient(circle at 100% 0%, rgba(184, 155, 99, 0.16), transparent 38%),
      var(--color-bg-surface) !important;
    border: 1px solid var(--color-border-subtle);
    border-top: 3px solid var(--color-accent);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    box-shadow: 0 24px 60px rgba(31, 35, 30, 0.24);
  }

  .elementor-element-ae9ff69 .e-n-menu-heading {
    gap: 0;
    color: var(--color-text-primary) !important;
  }

  .elementor-element-ae9ff69 .e-n-menu-heading::before {
    content: "Explore Palace";
    display: block;
    padding: var(--space-3) var(--space-3) var(--space-2);
    color: var(--color-accent-strong);
    font-family: var(--font-family-ui);
    font-size: var(--font-size-micro);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }

  .elementor-element-ae9ff69 .e-n-menu-item {
    border-bottom: 1px solid var(--color-border-subtle);
  }

  .elementor-element-ae9ff69 .e-n-menu-item:last-child {
    border-bottom: 0;
  }

  .elementor-element-ae9ff69 .e-n-menu-title,
  .elementor-element-ae9ff69 .e-n-menu-title-container,
  .elementor-element-ae9ff69 .e-n-menu-title-text,
  .elementor-element-ae9ff69 .e-n-menu-dropdown-icon {
    color: var(--color-text-primary) !important;
  }

  .elementor-element-ae9ff69 .e-n-menu-title {
    min-height: 3.75rem;
    padding: 0 var(--space-3) !important;
    background: transparent !important;
    border-radius: var(--radius-sm) !important;
  }

  .elementor-element-ae9ff69 .e-n-menu-title-container,
  .elementor-element-ae9ff69 .e-n-menu-title-text {
    font-family: var(--font-family-display) !important;
    font-size: 1.25rem !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    text-decoration: none !important;
  }

  .elementor-element-ae9ff69 .e-n-menu-title:hover,
  .elementor-element-ae9ff69 .e-n-menu-title:focus-within {
    background: var(--color-bg-accent-soft) !important;
  }

  .elementor-element-ae9ff69 .e-n-menu-dropdown-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
  }

  .elementor-element-ae9ff69 .e-n-menu-dropdown-icon:hover,
  .elementor-element-ae9ff69 .e-n-menu-dropdown-icon:focus-visible {
    color: var(--color-text-inverse) !important;
    background: var(--color-text-primary) !important;
  }

  .elementor-element-ae9ff69 .e-n-menu-content {
    border-radius: var(--radius-md);
  }

  .elementor-element-ae9ff69 .elementor-element-ab245c2 {
    background: var(--color-bg-page-alt) !important;
    border: 1px solid var(--color-border-subtle);
    border-radius: var(--radius-md);
  }

  .elementor-element-ae9ff69 .elementor-element-ab245c2 .elementor-heading-title,
  .elementor-element-ae9ff69 .elementor-element-ab245c2 .elementor-heading-title a,
  .elementor-element-ae9ff69 .elementor-element-ab245c2 .elementor-icon-list-text {
    color: var(--color-text-primary) !important;
  }

  .elementor-element-ae9ff69 .elementor-element-ab245c2 .elementor-heading-title a,
  .elementor-element-ae9ff69 .elementor-element-ab245c2 .elementor-icon-list-item a {
    text-decoration: none;
  }
}

.elementor-widget-woocommerce-product-data-tabs .woocommerce-Tabs-panel {
  padding: var(--space-card-padding-lg);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-md);
}

@media (max-width: 767px) {
  .elementor-button,
  .elementor-widget-button .elementor-button {
    width: 100%;
  }

  .elementor-location-archive .e-loop-item.post:not(.product) > .e-grid > .e-con-inner {
    grid-template-columns: 1fr !important;
  }

  .elementor-location-archive .e-loop-item.post:not(.product) .elementor-widget-theme-post-featured-image {
    max-width: none;
  }

  .elementor-location-archive .elementor-widget-heading .elementor-heading-title,
  .elementor-location-single .elementor-widget-woocommerce-product-title .product_title {
    font-size: var(--font-size-heading-1);
  }

}
