/*!
 * custom-all.css (Parfemi 4ALL)
 * Cleaned & modularized from Customizer CSS
 * Notes:
 * - Kept !important only where Astra/Elementor inline styles usually win.
 * - Reduced duplicates; consolidated variables; grouped media queries.
 * - Header/menu styles are theme-agnostic but tuned for Astra + Elementor.
 */

/* ==============================
   00: Variables
   ============================== */
:root{
  --gold: #d4af37;
  --header-max: 1200px;
  --mega-top: 140px;
  --hdr-h: 120px;               /* base header height */
  --p4a-card-w: 100%;           /* product card width inside slider */
  --p4a-slide-pad: 8px;         /* horizontal padding between slides */
  --p4a-grid-gap: 8px;          /* grid gap pre-slick */
  --fs-h1: 15px;                /* requested sizes */
  --fs-h2: 14px;
  --fs-h3: 12px;
  --fs-h4: 11px;
  --fs-h5: 10px;
  --fs-h6: 10px;
  --fs-p:  14px;
  --lh:    1.4;
}

@media (max-width:1024px){
  :root{ --hdr-h: 90px; }
}
@media (max-width: 767.98px){
  :root{
    --fs-h1: 16px;
    --fs-h2: 15px;
    --fs-h3: 13px;
    --fs-h4: 12px;
    --fs-h5: 11px;
    --fs-h6: 11px;
    --fs-p:  15px;
  }
}

/* ==============================
   10: Global Resets / Layout
   ============================== */
html, body { margin:0 !important; padding:0 !important; }
body{ padding-top: var(--hdr-h) !important; }
@media (max-width:1024px){ body{ padding-top: var(--hdr-h) !important; } }

/* Containers full-width around header */
.site-content, #primary.content-area, .ast-container, .ast-plain-container{
  margin-top:0 !important; padding-top:0 !important;
  padding-left:0 !important; padding-right:0 !important;
}

/* Elementor header template safeguards (ID 2573 mentioned) */
.elementor.elementor-2573,
.elementor-2573 .elementor-section.elementor-top-section:first-child,
.elementor-2573 > .elementor-section,
.elementor-2573 .elementor-container,
.elementor-2573 .elementor-widget-wrap{
  width:100% !important; max-width:100% !important;
  margin-left:0 !important; margin-right:0 !important;
  padding-left:0 !important; padding-right:0 !important;
}

/* Gutenberg content spacing fixes */
.entry-content > .elementor:first-child,
.entry-content > *:first-child{ margin-top:0 !important; padding-top:0 !important; }

/* ==============================
   20: Header / Branding / Nav
   ============================== */
/* Basic header strip */
.header-brand img { max-height:84px; height:auto; width:auto; }
.header-brand{ background:#000; text-align:center; padding:12px 0 8px; }
.header-nav{ background:#000; border-top:1px solid rgba(255,255,255,.06); border-bottom:1px solid rgba(255,255,255,.06); }
.header-nav .elementor-nav-menu--main .elementor-item{ color:var(--gold); font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.header-nav .elementor-nav-menu--main .elementor-item:hover{ text-decoration:underline; }

/* Force 2-row layout: branding above nav */
header.site-header .site-header__main{ display:flex !important; flex-direction:column !important; }
header.site-header .site-header__section{ width:100% !important; display:block !important; float:none !important; clear:both !important; }
header.site-header .site-header__section--branding{
  order:1 !important; padding-bottom:0 !important; max-width:min(var(--header-max),96vw); margin-inline:auto; text-align:center;
}
header.site-header .site-header__section--nav{
  order:2 !important; margin-top:0 !important; position:relative !important; top:auto !important;
  max-width:min(var(--header-max),96vw); margin-inline:auto;
}
header .brand-link img,
.site-header .brand-link img{
  display:block !important; width:auto; height:auto; max-height:84px;
}

/* Black nav strip & centered menu wrapper */
.site-header .site-header__section--nav{
  background:#000; border-top:1px solid rgba(255,255,255,.06); border-bottom:1px solid rgba(255,255,255,.06);
}
.site-header .main-nav{ width:min(var(--header-max),96vw); margin-inline:auto; }
@media (min-width:1025px){
  .site-header .main-nav{ display:flex; justify-content:center; align-items:center; gap:32px; }
}

/* Menu link look */
.menu-ref{ position:relative; padding:12px 10px; }
.menu-ref__title{ margin:0; }
.menu-ref__link{ color:#fff !important; text-transform:uppercase; letter-spacing:.04em; font-weight:700; font-size:14px; text-decoration:none; }
.menu-ref__link:hover{ text-decoration:underline; }

/* Desktop mega panel */
@media (min-width:1025px){
  .menu-ref__content{
    position:fixed; left:0; right:0; top:var(--mega-top);
    background:#fff; z-index:1000; border-top:1px solid rgba(0,0,0,.06);
    box-shadow:0 18px 40px rgba(0,0,0,.16);
    padding:22px 16px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s ease;
  }
  .menu-ref.menu-ref--has-children:hover > .menu-ref__content{ opacity:1; visibility:visible; pointer-events:auto; }
  .menu-ref__content .menu--lvl-2{
    width:min(var(--header-max),96vw); margin:0 auto;
    display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; list-style:none; padding:0;
  }
  .menu--lvl-3{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
  .menu__item--image img{ width:100%; height:auto; display:block; border-radius:6px; }
}

/* Mobile menu/panel */
.gnav-util__icon{ display:none; }
@media (max-width:1024px){
  .gnav-util__icon{ display:inline-flex; align-items:center; gap:6px; position:absolute; right:16px; top:16px; color:#fff; text-decoration:none; }
  .main-nav{ display:none; opacity:0; visibility:hidden; max-height:0; overflow:hidden; transform:translateY(-8px);
    transition:transform .25s, opacity .2s, max-height .25s; width:100%; }
  .main-nav.is-open{ display:block; opacity:1; visibility:visible; max-height:80vh; overflow:auto; transform:none; }
  .menu-ref__content{ position:static; box-shadow:none; border:0; padding:10px 0; opacity:1; visibility:visible; pointer-events:auto; display:none; background:#111; }
  .menu-ref.menu-ref--open > .menu-ref__content{ display:block; }
  .menu-ref__content .menu--lvl-2{ width:100%; grid-template-columns:1fr; gap:12px; }
}

/* Submenu colors */
.site-header .menu-ref__content{ background:#fff !important; }
.site-header .menu--lvl-3 .menu__item.menu__item--link > a,
.site-header .menu--lvl-3 .menu__item.menu__item--link > a b{ color:#111 !important; text-decoration:none; }
.site-header .menu--lvl-3 .menu__item.menu__item--link > a:hover,
.site-header .menu--lvl-3 .menu__item.menu__item--link > a:focus,
.site-header .menu--lvl-3 .menu__item.menu__item--link > a:hover b,
.site-header .menu--lvl-3 .menu__item.menu__item--link > a:focus b{ color:var(--gold) !important; }

/* ==============================
   30: Header Action Buttons (Search/Cart)
   ============================== */
.site-header, .ast-primary-header-bar, header{ position:relative; }

/* Inline header layout (desktop) */
.ast-primary-header-bar .ast-container,
.site-header .ast-container,
header .ast-container{ padding-inline-end:92px; } /* reserve space for icons */

.header-actions{
  position:absolute; inset-inline-end:calc(12px + env(safe-area-inset-right)); top:50%;
  transform:translateY(-50%); display:flex; gap:14px; z-index:50;
}
.header-icon{
  display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px;
  color:#111; transition:transform .18s ease, color .18s ease; background:transparent; border:0; padding:0;
}
.header-icon svg{ width:24px; height:24px; display:block; }
.header-icon:hover{ color:#d7bb7c; transform:translateY(-1px); }
.header-icon.btn-cart{ position:relative; }
.cart-badge{
  position:absolute; top:2px; inset-inline-end:2px; min-width:18px; height:18px; line-height:18px;
  padding:0 4px; border-radius:999px; font-size:11px; font-weight:700; text-align:center; color:#fff; background:#d33;
}

/* Floating variant (optional if #header-actions used outside header) */
#header-actions.header-actions{
  position:fixed !important; right:clamp(12px,3vw,20px); bottom:calc(20vh + env(safe-area-inset-bottom));
  display:flex; flex-direction:column; gap:12px; z-index:9998; pointer-events:none;
}
#header-actions .header-icon{ pointer-events:auto; width:56px; height:56px; border-radius:999px; background:rgba(20,20,20,.92); color:#fff; border:1px solid rgba(255,255,255,.08); box-shadow:0 10px 30px rgba(0,0,0,.25); backdrop-filter:blur(6px); }
#header-actions .header-icon:hover{ transform:translateY(-2px); background:rgba(20,20,20,1); }
#header-actions .btn-cart{ position:relative; }
#header-actions .cart-badge{ top:-4px; right:-4px; min-width:20px; height:20px; line-height:20px; padding:0 6px; border-radius:999px; font-size:12px; background:#e63; color:#fff; box-shadow:0 0 0 2px rgba(20,20,20,.92); }

@media (max-width:767px){
  .ast-primary-header-bar .ast-container{ padding-inline-end:84px; }
  .header-actions{ gap:10px; }
  .header-icon{ width:40px; height:40px; }
  #header-actions.header-actions{ bottom:calc(16vh + env(safe-area-inset-bottom)); right:clamp(10px,4vw,16px); }
}

/* Make position:fixed reliable on mobile (kill transforms) */
@media (max-width:991px){
  header.site-header, .site-header, .elementor-location-header, .ast-mobile-header-wrap, .ast-header-break-point .main-header-bar, .elementor, .e-con{
    transform:none !important; filter:none !important; perspective:none !important;
  }
}

/* ==============================
   40: Header sizing tweaks
   ============================== */
.site-header{ padding:0 !important; top:0 !important; width:100%; z-index:1000; }
.site-header .brand-link img{ max-height:100px; margin-top:60px; }
.site-header .site-header__section.site-header__section--nav{ margin-top:-20px !important; }

/* ==============================
   50: Woo Grid, Cards & Slider
   ============================== */
/* Slider track/layout fixes */
body.home .slick-track{ display:flex; align-items:stretch; }
body.home .slick-slide{ float:none; height:auto; }
body.home .slick-list{ overflow:visible; }

/* Woo grid responsive */
.woocommerce ul.products, .woocommerce-page ul.products{
  display:grid !important; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px !important;
}
@media (min-width:1200px){
  .woocommerce ul.products, .woocommerce-page ul.products{ grid-template-columns:repeat(4, minmax(0,1fr)) !important; gap:24px !important; }
}
@media (max-width:767px){
  .woocommerce ul.products, .woocommerce-page ul.products{ grid-template-columns:1fr !important; gap:16px !important; }
}

/* Product card tweaks */
.product-brief__container .product__image-link{ position:relative; display:block; overflow:hidden; margin-bottom:6px !important; }
.product-brief__container .product__image-link img{ display:block; width:100%; height:auto; }
.product-brief__container .product__image-link .product-image--hover{ position:absolute; inset:0; opacity:0; pointer-events:none; transition:opacity .25s ease, transform .25s ease; transform:scale(1.02); }
.product-grid__item:hover .product__image-link .product-image--hover{ opacity:1; transform:scale(1); }

.product-brief__container .product-brief__name{ margin-top:0 !important; }
.product-brief__container .product-brief__price{ margin-top:6px !important; }
.product-brief__container .product-brief__name a{
  font-size:clamp(18px, 2.2vw, 20px) !important; line-height:1.25; font-weight:800; color:var(--gold) !important; text-decoration:none;
}
.product-brief__container .product-brief__name a:hover{ text-decoration:underline; }

/* Slick spacing */
.js-product-carousel .slick-slide{ padding:0 var(--p4a-slide-pad) !important; }
.js-product-carousel .slick-list{ margin:0 calc(-1 * var(--p4a-slide-pad)) !important; }
.js-product-carousel .product-brief__container{ width:var(--p4a-card-w) !important; margin:0 auto; }
.js-product-carousel .product-grid__item{ display:flex; justify-content:center; }
.js-product-carousel .product-grid__content:not(.slick-initialized){
  display:grid !important; grid-template-columns:repeat(5, minmax(0,1fr)); gap:var(--p4a-grid-gap);
}

/* Category header/desc */
body.tax-product_cat .woocommerce-products-header .term-description{ display:none !important; }
.cat-desc-bottom{ margin:24px 0 8px; max-width:72ch; line-height:1.6; opacity:.95; font-size:14px; }
@media (max-width:767.98px){ .cat-desc-bottom{ font-size:15px; } }

/* Hide quantity selector (per your request) */
.quantity{ display:none !important; }

/* ==============================
   60: Single Product Layout
   ============================== */
.single-product .site-content > .ast-container,
.single-product .ast-plain-container .site-content > .ast-container,
.single-product .ast-separate-container .site-content > .ast-container,
.single-product #primary.content-area.primary,
.single-product #primary.content-area{
  box-sizing:border-box; padding-left:150px !important; padding-right:150px !important;
  margin-left:auto; margin-right:auto;
}
.single-product .ast-container{ max-width:1360px; }
@media (max-width:768px){
  .single-product .site-content > .ast-container,
  .single-product #primary.content-area.primary,
  .single-product #primary.content-area{ padding-left:20px !important; padding-right:20px !important; }
}

/* Accordion (short description) */
.woocommerce-product-details__short-description .soko-acc{ border:1px solid #e5e5e5; border-radius:0; background:#fff; }
.woocommerce-product-details__short-description .soko-acc__summary{
  background:var(--gold); color:#000; padding:12px 16px; font-weight:700; position:relative; cursor:pointer; user-select:none; list-style:none;
}
.woocommerce-product-details__short-description .soko-acc__summary::-webkit-details-marker{ display:none; }
.woocommerce-product-details__short-description .soko-acc__summary::after{
  content:'+'; position:absolute; right:14px; top:50%; transform:translateY(-50%); font-weight:800; color:#000;
}
.woocommerce-product-details__short-description details[open] > .soko-acc__summary::after{ content:'–'; }
.woocommerce-product-details__short-description .soko-acc__body{ padding:12px 16px 16px; border-top:1px solid #eee; }
.woocommerce-product-details__short-description .soko-acc__summary:hover{ filter:brightness(0.95); }
.woocommerce-product-details__short-description .soko-acc__summary:focus{ outline:2px solid #000; outline-offset:2px; }

/* ==============================
   70: Typography Overrides
   ============================== */
/* Gutenberg */
html body .site-main .entry-content h1,
html body .site-main .entry-content h2,
html body .site-main .entry-content h3,
html body .site-main .entry-content h4,
html body .site-main .entry-content h5,
html body .site-main .entry-content h6{ line-height:var(--lh) !important; }
html body .site-main .entry-content h1{ font-size:var(--fs-h1) !important; }
html body .site-main .entry-content h2{ font-size:var(--fs-h2) !important; }
html body .site-main .entry-content h3{ font-size:var(--fs-h3) !important; }
html body .site-main .entry-content h4{ font-size:var(--fs-h4) !important; }
html body .site-main .entry-content h5{ font-size:var(--fs-h5) !important; }
html body .site-main .entry-content h6{ font-size:var(--fs-h6) !important; }
html body .site-main .entry-content p{ font-size:var(--fs-p) !important; line-height:var(--lh) !important; }

/* Elementor */
html body .elementor .elementor-widget-heading h1.elementor-heading-title{ font-size:var(--fs-h1) !important; line-height:var(--lh) !important; }
html body .elementor .elementor-widget-heading h2.elementor-heading-title{ font-size:var(--fs-h2) !important; line-height:var(--lh) !important; }
html body .elementor .elementor-widget-heading h3.elementor-heading-title{ font-size:var(--fs-h3) !important; line-height:var(--lh) !important; }
html body .elementor .elementor-widget-heading h4.elementor-heading-title{ font-size:var(--fs-h4) !important; line-height:var(--lh) !important; }
html body .elementor .elementor-widget-heading h5.elementor-heading-title{ font-size:var(--fs-h5) !important; line-height:var(--lh) !important; }
html body .elementor .elementor-widget-heading h6.elementor-heading-title{ font-size:var(--fs-h6) !important; line-height:var(--lh) !important; }
html body .elementor .elementor-widget-text-editor,
html body .elementor .elementor-widget-text-editor p{ font-size:var(--fs-p) !important; line-height:var(--lh) !important; }

/* Utilities */
.fs-10{ font-size:13px !important; }
.fs-11{ font-size:14px !important; }
.fs-12{ font-size:14px !important; }
.fs-13{ font-size:15px !important; }
.fs-14{ font-size:16px !important; }
.fs-15{ font-size:18px !important; }
.lh-12{ line-height:1.2 !important; }
.lh-14{ line-height:1.4 !important; }
.lh-16{ line-height:1.6 !important; }
html body .elementor .elementor-element.elementor-element-27f9a9d h2,
html body .elementor .elementor-element.elementor-element-27f9a9d .elementor-widget-container h2{ color:#fff !important; }

/* ==============================
   80: Footer
   ============================== */
.site-below-footer-wrap.ast-builder-grid-row-container.site-footer-focus-item.ast-builder-grid-row-2-equal.ast-builder-grid-row-tablet-2-equal.ast-builder-grid-row-mobile-full.ast-footer-row-stack.ast-footer-row-tablet-stack.ast-footer-row-mobile-stack{
  background: linear-gradient(135deg, #d7bb7c 0%, #bfa14f 50%, #d7bb7c 100%) !important; color:#fff !important;
}
.has-text-align-left, .widget-title{ color:#fff !important; }

/* Footer nav vertical on mobile */
.footer-nav-wrap{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; margin-top:50px; }
.footer-nav-wrap a{ text-decoration:none; }
.footer-nav-wrap a:hover{ text-decoration:underline; }
.footer-nav-wrap #astra-footer-menu{ display:flex !important; flex-direction:column !important; align-items:flex-start; gap:6px; margin:0; padding:0; list-style:none; flex-wrap:nowrap !important; }
.footer-nav-wrap #astra-footer-menu > li{ margin:0 !important; }
.footer-nav-wrap #astra-footer-menu > li > a.menu-link{ display:block; line-height:1.4; }

.site-primary-footer-wrap[data-section="section-primary-footer-builder"]{ padding:20px; }
.site-below-footer-wrap[data-section="section-below-footer-builder"] .ast-builder-grid-row{ max-width:1200px; min-height:40px; margin-left:auto; margin-right:auto; }

/* Images alignment */
.wp-block-image.size-full{ text-align:left; }
.wp-block-image.size-full img{ display:block; margin-left:0; margin-right:auto; height:auto; max-width:100%; }
@media (max-width:768px){
  .wp-block-image.size-full{ text-align:center; }
  .wp-block-image.size-full img{ margin:0 auto; }
}

/* ==============================
   90: Misc / Widgets / Search modal
   ============================== */
.textwidget{ --tw-size:12px; --tw-color:#fff; font-size:var(--tw-size); color:var(--tw-color); line-height:1.6; }

/* Search modal (kept hidden by default; toggle with .is-open) */
.search-modal{ position:fixed; inset:0; display:none !important; z-index:9999; }
.search-modal.is-open{ display:block !important; }
.search-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.55); }
.search-modal__dialog{
  position:relative; z-index:1; max-width:min(720px, 92vw); margin:12vh auto 0;
  background:#fff; border-radius:16px; padding:22px; box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.search-modal__close{ position:absolute; top:10px; right:12px; background:transparent; border:0; font-size:28px; line-height:1; cursor:pointer; display:none; }
.search-modal__form{ display:flex; gap:10px; align-items:center; }
.search-modal__form input[type="search"]{ flex:1; font-size:18px; padding:14px 16px; border:1px solid #ddd; border-radius:12px; }
.search-modal__submit{ padding:14px 18px; border-radius:12px; border:0; cursor:pointer; background:#111; color:#fff; }
.search-suggestions{ margin-top:12px; border:1px solid #eee; border-radius:12px; overflow:hidden; display:none; }
.search-suggestions.active{ display:block; }
.search-suggestions a{ display:block; padding:10px 14px; color:#111; text-decoration:none; border-top:1px solid #f3f3f3; }
.search-suggestions a:hover{ background:#fafafa; }

/* Mobile z-index and transforms guard for menu overlay */
.ast-mobile-header-wrap,
.ast-mobile-popup-drawer,
.ast-mobile-popup-drawer.active,
.ast-mobile-popup-drawer.is-visible{ z-index:999999 !important; opacity:1 !important; visibility:visible !important; }

/* Category menu compact columns (optional) */
.menu-ref__content > .menu--lvl-2{ display:flex; flex-wrap:nowrap; gap:10px; }
.menu--lvl-2 > .menu__item--column{ flex:0 0 auto; }
.menu--lvl-3{ width:250px; display:flex; flex-direction:column; gap:4px; }
.menu__item--image img{ display:block; width:100%; height:auto; }
.menu__item--link a{ display:inline-block; font-size:15px; line-height:1.15; white-space:nowrap; font-weight:700; }

/* Small helpers */
#main.site-main{ padding:40px 40px !important; }
#media_image-1, .media_image-1{ text-align:center; }
#media_image-1 img, .media_image-1 img{ display:inline-block; }
.elementor-element.elementor-element-2367ee3 img{ opacity:1; display:block; width:100%; max-width:100% !important; height:auto !important; }
