/* Astra Premium Child 3.0 — editable Astra structure + Elementor animation utilities */
:root {
  --apc-accent: #c8a46a;
  --apc-accent-dark: #9a743e;
  --apc-dark: #0a0a0a;
  --apc-ink: #151515;
  --apc-surface: #f4f1eb;
  --apc-white: #fff;
  --apc-muted: #6e6b65;
  --apc-line: rgba(17,17,17,.13);
  --apc-line-light: rgba(255,255,255,.15);
  --apc-content-max: 1440px;
  --apc-radius-sm: 12px;
  --apc-radius-md: 24px;
  --apc-radius-lg: 42px;
  --apc-shadow: 0 30px 100px rgba(0,0,0,.15);
  --apc-ease: cubic-bezier(.22,1,.36,1);
}

* { box-sizing: border-box; }
html { scroll-padding-top: 105px; }
body.astra-premium-child { overflow-x: clip; color: var(--apc-ink); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
::selection { color: #080808; background: var(--apc-accent); }
a { transition: color .25s ease, opacity .25s ease, background .25s ease, transform .25s ease; }
img { display: block; }

/* Elementor: remove Astra content constraints without replacing the page template. */
.elementor-page .site-content > .ast-container,
.elementor-page #primary,
.elementor-page .site-main,
.elementor-page .entry-content {
  width: 100%; max-width: none; margin: 0; padding: 0;
}
.elementor-page .entry-header { display: none; }
.apc-container { width: min(calc(100% - 64px), var(--apc-content-max)); margin-inline: auto; }

/* Premium styling applied to Astra's editable Header Builder. */
body.apc-premium-astra-header #masthead {
  position: sticky;
  z-index: 1200;
  top: 0;
  width: 100%;
  transition: transform .45s var(--apc-ease), background .35s ease, box-shadow .35s ease;
}
body.admin-bar.apc-premium-astra-header #masthead { top: 32px; }
body.apc-premium-astra-header #masthead .ast-primary-header-bar,
body.apc-premium-astra-header #masthead .ast-above-header-bar,
body.apc-premium-astra-header #masthead .ast-below-header-bar {
  border-color: rgba(17,17,17,.08);
  transition: color .35s ease, background .35s ease, border-color .35s ease, box-shadow .35s ease, backdrop-filter .35s ease;
}
body.apc-premium-astra-header #masthead .ast-primary-header-bar {
  background: rgba(248,246,241,.95);
  box-shadow: 0 12px 42px rgba(0,0,0,.055);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
body.apc-transparent-header:not(.apc-header-scrolled) #masthead {
  position: absolute;
  right: 0;
  left: 0;
}
body.apc-transparent-header:not(.apc-header-scrolled) #masthead .ast-primary-header-bar,
body.apc-transparent-header:not(.apc-header-scrolled) #masthead .ast-above-header-bar,
body.apc-transparent-header:not(.apc-header-scrolled) #masthead .ast-below-header-bar {
  color: #fff;
  border-color: rgba(255,255,255,.15);
  background: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.apc-transparent-header:not(.apc-header-scrolled) #masthead a,
body.apc-transparent-header:not(.apc-header-scrolled) #masthead .site-title a,
body.apc-transparent-header:not(.apc-header-scrolled) #masthead .ast-builder-menu-1 .menu-item > .menu-link,
body.apc-transparent-header:not(.apc-header-scrolled) #masthead .ast-header-search .ast-search-menu-icon,
body.apc-transparent-header:not(.apc-header-scrolled) #masthead .ast-mobile-menu-trigger-minimal {
  color: #fff;
}
body.apc-header-scrolled #masthead .ast-primary-header-bar {
  color: var(--apc-ink);
  background: rgba(248,246,241,.94);
  box-shadow: 0 16px 55px rgba(0,0,0,.09);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

/* Header visibility fallback: keep Astra text/icons readable whenever transparent mode is off. */
body.apc-premium-astra-header:not(.apc-transparent-header) #masthead,
body.apc-premium-astra-header.apc-header-scrolled #masthead {
  visibility: visible;
  opacity: 1;
  transform: none;
}
body.apc-premium-astra-header:not(.apc-transparent-header) #masthead .ast-primary-header-bar,
body.apc-premium-astra-header:not(.apc-transparent-header) #masthead .ast-above-header-bar,
body.apc-premium-astra-header:not(.apc-transparent-header) #masthead .ast-below-header-bar {
  color: var(--apc-ink);
  background: rgba(248,246,241,.97);
}
body.apc-premium-astra-header:not(.apc-transparent-header) #masthead a,
body.apc-premium-astra-header:not(.apc-transparent-header) #masthead .site-title a,
body.apc-premium-astra-header:not(.apc-transparent-header) #masthead .main-header-menu > .menu-item > .menu-link,
body.apc-premium-astra-header:not(.apc-transparent-header) #masthead .ast-header-search .ast-search-menu-icon,
body.apc-premium-astra-header:not(.apc-transparent-header) #masthead .ast-mobile-menu-trigger-minimal,
body.apc-premium-astra-header.apc-header-scrolled #masthead a,
body.apc-premium-astra-header.apc-header-scrolled #masthead .site-title a,
body.apc-premium-astra-header.apc-header-scrolled #masthead .main-header-menu > .menu-item > .menu-link {
  color: var(--apc-ink);
}
body.apc-premium-astra-header #masthead .main-header-menu > .menu-item > .menu-link {
  position: relative;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .075em;
  text-transform: uppercase;
}
body.apc-premium-astra-header #masthead .main-header-menu > .menu-item > .menu-link::after {
  position: absolute;
  right: .9em;
  bottom: 18px;
  left: .9em;
  height: 1px;
  content: '';
  background: var(--apc-accent);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .35s var(--apc-ease);
}
body.apc-premium-astra-header #masthead .main-header-menu > .menu-item:hover > .menu-link::after,
body.apc-premium-astra-header #masthead .main-header-menu > .current-menu-item > .menu-link::after,
body.apc-premium-astra-header #masthead .main-header-menu > .current-menu-ancestor > .menu-link::after {
  transform: scaleX(1);
  transform-origin: left;
}
body.apc-premium-astra-header #masthead .sub-menu {
  padding: 12px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 14px;
  color: #fff;
  background: rgba(10,10,10,.97);
  box-shadow: var(--apc-shadow);
}
body.apc-premium-astra-header #masthead .sub-menu .menu-link {
  min-height: auto;
  padding: 11px 13px;
  border-radius: 8px;
  color: rgba(255,255,255,.75);
  font-size: 13px;
}
body.apc-premium-astra-header #masthead .sub-menu .menu-link:hover { color: #fff; background: rgba(255,255,255,.07); }
body.apc-premium-astra-header .ast-header-button-1 .ast-custom-button,
body.apc-premium-astra-header .ast-header-button-2 .ast-custom-button {
  border: 0;
  border-radius: 999px;
  color: #090909;
  background: var(--apc-accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
body.apc-premium-astra-header .ast-mobile-popup-drawer .ast-mobile-popup-inner { color: #fff; background: var(--apc-dark); }
body.apc-premium-astra-header .ast-mobile-popup-drawer .menu-link { color: rgba(255,255,255,.78); }

/* Premium styling applied to Astra's editable Footer Builder. */
body.apc-premium-astra-footer .site-footer { color: #fff; background: var(--apc-dark); }
body.apc-premium-astra-footer .site-footer .site-primary-footer-wrap,
body.apc-premium-astra-footer .site-footer .site-above-footer-wrap,
body.apc-premium-astra-footer .site-footer .site-below-footer-wrap {
  color: #fff;
  border-color: var(--apc-line-light);
  background: transparent;
}
body.apc-premium-astra-footer .site-footer h1,
body.apc-premium-astra-footer .site-footer h2,
body.apc-premium-astra-footer .site-footer h3,
body.apc-premium-astra-footer .site-footer h4,
body.apc-premium-astra-footer .site-footer h5,
body.apc-premium-astra-footer .site-footer h6 { color: #fff; }
body.apc-premium-astra-footer .site-footer a,
body.apc-premium-astra-footer .site-footer p,
body.apc-premium-astra-footer .site-footer .widget { color: rgba(255,255,255,.62); }
body.apc-premium-astra-footer .site-footer a:hover { color: var(--apc-accent); }
body.apc-premium-astra-footer .site-footer .widget-title {
  color: var(--apc-accent);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .15em;
  text-transform: uppercase;
}
body.apc-premium-astra-footer .site-footer .menu { display: grid; gap: 8px; }

/* Reusable premium components for Elementor Free. */
.apc-section-dark { color: #fff; background: var(--apc-dark); }
.apc-section-light { color: var(--apc-ink); background: var(--apc-surface); }
.apc-eyebrow { margin: 0 0 18px; color: var(--apc-accent); font-size: 11px; font-weight: 750; letter-spacing: .21em; text-transform: uppercase; }
.apc-display-title, .apc-display-title .elementor-heading-title { margin: 0; font-size: clamp(48px,6.2vw,106px); font-weight: 500; line-height: .96; letter-spacing: -.055em; }
.apc-button, .apc-button .elementor-button {
  display: inline-flex; min-height: 56px; align-items: center; justify-content: center;
  padding: 0 27px; border: 1px solid transparent; border-radius: 999px;
  color: #090909; background: var(--apc-accent); font-size: 12px; font-weight: 750;
  letter-spacing: .08em; text-transform: uppercase;
}
.apc-button:hover, .apc-button .elementor-button:hover { color: #090909; background: #dfc18d; }
.apc-glass { border: 1px solid rgba(255,255,255,.17); border-radius: var(--apc-radius-md); background: rgba(255,255,255,.08); box-shadow: var(--apc-shadow); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
.apc-media-frame { border-radius: var(--apc-radius-md); overflow: hidden; }
.apc-media-frame img { transition: transform .8s var(--apc-ease); }
.apc-media-frame:hover img { transform: scale(1.045); }
.apc-product-tilt { transform-style: preserve-3d; transition: transform .3s ease, box-shadow .3s ease; }
.apc-gradient-text, .apc-gradient-text .elementor-heading-title { color: transparent !important; background: linear-gradient(100deg,#fff 10%,var(--apc-accent) 50%,#fff 90%); background-size: 200% auto; -webkit-background-clip: text; background-clip: text; animation: apc-gradient 6s linear infinite; }
@keyframes apc-gradient { to { background-position: 200% center; } }
.apc-float { animation: apc-float 5.5s ease-in-out infinite; }
@keyframes apc-float { 50% { transform: translateY(-14px); } }

/* Animation classes for Elementor > Advanced > CSS Classes. */
.apc-reveal,.apc-reveal-left,.apc-reveal-right,.apc-reveal-scale,.apc-image-reveal,.apc-stagger > * { will-change: transform, opacity; }
.apc-js-ready .apc-reveal,.apc-js-ready .apc-reveal-left,.apc-js-ready .apc-reveal-right,.apc-js-ready .apc-reveal-scale { opacity: 0; }
.apc-reveal.is-visible,.apc-reveal-left.is-visible,.apc-reveal-right.is-visible,.apc-reveal-scale.is-visible { opacity: 1; }
.apc-word { display: inline-block; overflow: hidden; vertical-align: bottom; }
.apc-word > span { display: inline-block; }

/* WooCommerce premium cards. */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.woocommerce ul.products::before,.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; padding: 0 0 24px; border: 1px solid rgba(17,17,17,.08); border-radius: 18px; background: #fff; overflow: hidden; transition: transform .35s var(--apc-ease), box-shadow .35s ease; }
.woocommerce ul.products li.product:hover { transform: translateY(-7px); box-shadow: 0 24px 70px rgba(0,0,0,.1); }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 4/4.7; margin: 0 0 24px; object-fit: cover; background: #eae7e0; transition: transform .7s var(--apc-ease); }
.woocommerce ul.products li.product:hover a img { transform: scale(1.035); }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button { margin-right: 22px; margin-left: 22px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 2.8em; padding: 0; color: var(--apc-ink); font-size: 19px; font-weight: 550; line-height: 1.35; letter-spacing: -.025em; }
.woocommerce ul.products li.product .price { color: var(--apc-accent-dark); font-size: 14px; font-weight: 750; }
.woocommerce ul.products li.product .button,
.woocommerce button.button.alt,
.woocommerce a.button.alt { border-radius: 999px; color: #090909; background: var(--apc-accent); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.single-product div.product .woocommerce-product-gallery__wrapper { border-radius: 22px; overflow: hidden; background: #ece9e2; }
.single-product div.product .product_title { font-size: clamp(38px,4vw,66px); font-weight: 500; line-height: 1; letter-spacing: -.05em; }
.single-product div.product p.price { color: var(--apc-accent-dark); font-size: 22px; }

/* Optional page transition and WhatsApp. */
.apc-page-transition { position: fixed; z-index: 9998; inset: 0; pointer-events: none; overflow: hidden; visibility: hidden; }
.apc-page-transition span { position: absolute; inset: 0; background: var(--apc-dark); transform: translateY(101%); transition: transform .5s var(--apc-ease); }
.apc-page-transition.is-active { visibility: visible; }
.apc-page-transition.is-active span { transform: none; }
.apc-whatsapp-float { position: fixed; z-index: 1100; right: 22px; bottom: 22px; display: flex; gap: 10px; align-items: center; padding: 7px 14px 7px 7px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: #fff; background: rgba(9,9,9,.88); box-shadow: 0 15px 50px rgba(0,0,0,.25); -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px); }
.apc-whatsapp-float:hover { color: #fff; transform: translateY(-3px); }
.apc-whatsapp-float span { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; color: #07150d; background: #52d47d; font-size: 9px; font-weight: 900; }
.apc-whatsapp-float strong { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 921px) {
  body.admin-bar.apc-premium-astra-header #masthead { top: 46px; }
  body.apc-transparent-header:not(.apc-header-scrolled) #masthead { position: absolute; }
  .apc-container { width: min(calc(100% - 36px), var(--apc-content-max)); }
  .apc-display-title, .apc-display-title .elementor-heading-title { font-size: clamp(46px,12vw,80px); }
  .woocommerce ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .apc-container { width: min(calc(100% - 28px), var(--apc-content-max)); }
  .woocommerce ul.products { grid-template-columns: 1fr; }
  .apc-whatsapp-float { right: 14px; bottom: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .apc-js-ready .apc-reveal,.apc-js-ready .apc-reveal-left,.apc-js-ready .apc-reveal-right,.apc-js-ready .apc-reveal-scale { opacity: 1; }
}
.elementor-editor-active .apc-reveal,.elementor-editor-active .apc-reveal-left,.elementor-editor-active .apc-reveal-right,.elementor-editor-active .apc-reveal-scale,.elementor-editor-active .apc-stagger > * { opacity: 1 !important; transform: none !important; }
