/* Styling for AeonZap-rendered elements (blog, forms, newsletter) */

/* ---- Blog index grid ---- */
[data-aez-blog-list]{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:32px; margin:0 auto; max-width:1200px;
}
.aez-post{ display:block; text-decoration:none; color:inherit; }
.aez-post-img{
  display:block; width:100%; aspect-ratio:16/10; border-radius:8px;
  background:#eceae2 center/cover no-repeat; overflow:hidden;
  transition:transform .6s ease;
}
.aez-post:hover .aez-post-img{ transform:scale(1.03); }
.aez-post-cat{ display:inline-block; margin:18px 0 10px; font-size:12px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:#8a9a2f; }
.aez-post h3{ font-size:20px; line-height:1.3; margin:0 0 10px; }
.aez-post p{ font-size:15px; line-height:1.6; color:#5c6456; margin:0 0 12px; }
.aez-post-more{ font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#3f4a1e; }

/* ---- Blog post ---- */
[data-aez-post]{ max-width:780px; margin:0 auto; }
.aez-post-title{ font-size:clamp(28px,4vw,44px); line-height:1.15; margin:0 0 12px; }
.aez-post-meta{ color:#8a907f; font-size:14px; margin:0 0 24px; }
.aez-post-cover{ width:100%; border-radius:10px; margin:0 0 32px; }
.aez-post-body{ font-size:17px; line-height:1.8; color:#2f3524; }
.aez-post-body img{ max-width:100%; height:auto; border-radius:8px; }
.aez-post-body h2,.aez-post-body h3{ margin:1.6em 0 .5em; }

/* ---- Forms (aez-form / aez-field / aez-option) ---- */
.aez-form{ max-width:560px; }
.aez-form .aez-field{ margin-bottom:18px; display:flex; flex-direction:column; gap:7px; }
.aez-form label{ font-size:14px; font-weight:600; color:#2f3524; }
.aez-form input, .aez-form textarea, .aez-form select{
  width:100%; padding:13px 15px; border:1px solid #d6d9cc; border-radius:8px;
  font:inherit; font-size:15px; background:#fff; color:#2f3524; transition:border-color .2s ease, box-shadow .2s ease;
}
.aez-form input:focus, .aez-form textarea:focus, .aez-form select:focus{
  outline:none; border-color:#8a9a2f; box-shadow:0 0 0 3px rgba(138,154,47,.15);
}
.aez-form textarea{ min-height:130px; resize:vertical; }
.aez-form button, .aez-form [type=submit]{
  background:#3f4a1e; color:#fff; border:none; border-radius:40px; padding:14px 34px;
  font-weight:600; letter-spacing:.04em; cursor:pointer; transition:background .2s ease, transform .15s ease;
}
.aez-form button:hover, .aez-form [type=submit]:hover{ background:#4e5c26; transform:translateY(-1px); }
.aez-form .aez-success, .aez-form .aez-error{ padding:14px 16px; border-radius:8px; font-size:15px; }
.aez-form .aez-success{ background:#eef4e2; color:#3f4a1e; }
.aez-form .aez-error{ background:#fdeceb; color:#b3261e; }

/* ---- Newsletter inline ---- */
[data-aez-newsletter] form{ display:flex; gap:10px; flex-wrap:wrap; }
[data-aez-newsletter] input{ flex:1 1 220px; padding:13px 15px; border:1px solid #d6d9cc; border-radius:40px; font:inherit; }
[data-aez-newsletter] button{ background:#3f4a1e; color:#fff; border:none; border-radius:40px; padding:13px 28px; font-weight:600; cursor:pointer; }

/* ===== Products: listing / category grid ===== */
.aez-products{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:26px; max-width:1200px; margin:0 auto; padding:10px 24px 60px; }
.aez-card{ display:flex; flex-direction:column; background:#fff; border:1px solid #ecefe3; border-radius:16px; overflow:hidden; text-decoration:none; color:#2f3524; transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.aez-card:hover{ transform:translateY(-4px); box-shadow:0 14px 34px rgba(63,74,30,.12); border-color:#d7ddc4; }
.aez-card-img{ display:block; aspect-ratio:4/3; background:#f3f5ec center/cover no-repeat; }
.aez-card-body{ display:flex; flex-direction:column; gap:7px; padding:18px 18px 20px; flex:1; }
.aez-card-cat{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#8a9a2f; font-weight:600; }
.aez-card-body h3{ margin:0; font-size:18px; line-height:1.3; color:#2a3517; }
.aez-card-body p{ margin:0; font-size:13.5px; line-height:1.55; color:#6b7159; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.aez-price{ font-weight:700; color:#3f4a1e; }
.aez-card-more{ margin-top:auto; padding-top:8px; font-size:13px; font-weight:600; color:#b9992f; }
.aez-empty{ text-align:center; color:#6b7159; padding:60px 20px; }

/* ===== Single product ===== */
.aez-product{ max-width:1160px; margin:0 auto; padding:30px 24px 70px; }
.aez-prod-grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:48px; align-items:start; }
.aez-prod-cover{ width:100%; border-radius:18px; background:#f3f5ec; object-fit:cover; }
.aez-prod-thumbs{ display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.aez-prod-thumbs img{ width:72px; height:72px; object-fit:cover; border-radius:10px; border:1px solid #ecefe3; }
.aez-prod-cat{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#8a9a2f; font-weight:600; }
.aez-prod-title{ margin:10px 0 6px; font-size:34px; line-height:1.15; color:#2a3517; }
.aez-prod-price{ font-size:24px; font-weight:700; color:#3f4a1e; margin:6px 0; }
.aez-prod-stock{ display:inline-block; font-size:12.5px; font-weight:600; padding:5px 12px; border-radius:30px; margin:6px 0 16px; }
.aez-prod-stock.in{ background:#eef4e2; color:#3f4a1e; }
.aez-prod-stock.oos{ background:#fbeceb; color:#b3261e; }
.aez-prod-short{ font-size:15.5px; line-height:1.65; color:#555c45; }
.aez-prod-cta{ display:inline-block; margin:18px 0 10px; background:#3f4a1e; color:#fff; text-decoration:none; border-radius:40px; padding:14px 34px; font-weight:600; letter-spacing:.03em; transition:background .2s ease, transform .15s ease; }
.aez-prod-cta:hover{ background:#4e5c26; transform:translateY(-1px); }
.aez-prod-sku{ font-size:12.5px; color:#9aa088; margin-top:8px; }
.aez-prod-body{ max-width:860px; margin:46px auto 0; font-size:16px; line-height:1.75; color:#454b38; }
.aez-prod-body h2,.aez-prod-body h3{ color:#2a3517; margin:1.4em 0 .5em; }
.aez-prod-body p{ margin:0 0 1em; }
@media(max-width:820px){ .aez-prod-grid{ grid-template-columns:1fr; gap:26px; } .aez-prod-title{ font-size:27px; } }

/* ===== Restored hero background video (Elementor JS replacement) ===== */
.aez-hasvideo{ position:relative; overflow:hidden; }
.aez-bgvideo{ position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.aez-bgvideo video{ position:absolute; top:50%; left:50%; width:100%; height:100%; min-width:100%; min-height:100%; transform:translate(-50%,-50%); object-fit:cover; }
.aez-hasvideo > :not(.aez-bgvideo){ position:relative; z-index:1; }

/* ===== Mobile menu / submenu reveal (vanilla nav replacement) ===== */
.elementor-nav-menu--dropdown.aez-menu-open,
nav.elementor-nav-menu__container.aez-menu-open,
.aez-menu-open{ display:block !important; }
.menu-item-has-children.aez-sub-open > .sub-menu{ display:block !important; }

/* stronger override: force the mobile dropdown nav fully open */
nav.elementor-nav-menu--dropdown.aez-menu-open{
  display:block !important; max-height:none !important; height:auto !important;
  overflow:visible !important; visibility:visible !important; opacity:1 !important;
}
nav.elementor-nav-menu--dropdown.aez-menu-open .elementor-nav-menu,
nav.elementor-nav-menu--dropdown.aez-menu-open .elementor-nav-menu > li,
nav.elementor-nav-menu--dropdown.aez-menu-open .elementor-nav-menu > li > a{ display:block !important; }

/* ===== Self-contained mobile menu panel ===== */
.aez-mobile-menu{ position:fixed; top:0; right:0; width:min(82vw,340px); height:100%; background:#2a3517; z-index:99999;
  transform:translateX(100%); transition:transform .28s ease; overflow-y:auto; padding:84px 0 40px; box-shadow:-8px 0 40px rgba(0,0,0,.3); }
.aez-mobile-menu.aez-open{ transform:translateX(0); }
.aez-mm-link{ display:block; padding:15px 28px; color:#fff; text-decoration:none; font-size:17px; border-bottom:1px solid rgba(255,255,255,.08); letter-spacing:.01em; }
.aez-mm-link:hover{ background:rgba(255,255,255,.06); color:#c9a24b; }
.aez-mm-sub{ padding-left:44px; font-size:15px; color:rgba(255,255,255,.8); }
html.aez-menu-lock{ overflow:hidden; }

/* ===== Restore Elementor flip-box (UCSS stripped its 3D transforms) ===== */
.elementor-flip-box{ perspective:1000px; }
.elementor-flip-box__layer{ position:absolute; top:0; left:0; width:100%; height:100%;
  -webkit-backface-visibility:hidden; backface-visibility:hidden; transition:transform .6s ease;
  background-position:center center; background-size:cover; background-repeat:no-repeat; }
.elementor-flip-box__front{ transform:rotateY(0deg); z-index:2; }
.elementor-flip-box__back{ transform:rotateY(180deg); }
.elementor-flip-box:hover .elementor-flip-box__front{ transform:rotateY(180deg); }
.elementor-flip-box:hover .elementor-flip-box__back{ transform:rotateY(360deg); }
.elementor-flip-box__layer__overlay{ position:absolute; inset:0; display:flex; flex-direction:column; width:100%; height:100%; }

/* ===================================================================
   Ported premium sections from the Node rebuild (feature cards + blog)
   =================================================================== */
.viant-sec{ --olive:#2a3517; --olive-soft:#5c6b3a; --gold:#b9992f; --gold-soft:#d8b858; --ink:#1d2412; --muted:#6d7560; --line:#e7e6dd;
  font-family:'Poppins',sans-serif; padding:clamp(64px,8vw,120px) 24px; background:#fff; }
.viant-wrap{ max-width:1120px; margin:0 auto; }
.viant-eyebrow{ display:inline-block; font-size:13px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:22px; }
.viant-eyebrow::before{ content:""; display:inline-block; width:28px; height:1px; background:var(--gold); vertical-align:middle; margin-right:12px; }
.viant-title{ font-size:clamp(34px,5vw,58px); line-height:1.05; font-weight:600; color:var(--ink); margin:0 0 24px; letter-spacing:-.01em; font-family:'Poppins',sans-serif; }
.viant-title em{ font-style:normal; color:var(--olive-soft); }
.viant-lead{ font-size:clamp(16px,1.5vw,20px); line-height:1.7; color:var(--muted); max-width:640px; margin:0 0 clamp(40px,5vw,72px); }
.viant-cta{ display:inline-flex; align-items:center; gap:10px; font-size:15px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--olive)!important; text-decoration:none; padding-bottom:6px; border-bottom:2px solid var(--gold); transition:gap .3s ease,color .3s ease; }
.viant-cta span{ transition:transform .3s ease; display:inline-block; }
.viant-cta:hover{ color:var(--gold)!important; gap:16px; } .viant-cta:hover span{ transform:translateX(6px); }
.viant-sec .reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1); }
.viant-sec .reveal.is-visible{ opacity:1; transform:none; }

/* feature cards (expanding panels) */
.viant-cards{ display:flex; gap:14px; margin-top:clamp(36px,4vw,56px); height:clamp(440px,44vw,560px); }
.viant-card{ position:relative; flex:1 1 0%; min-width:0; border-radius:8px; overflow:hidden; text-decoration:none; isolation:isolate; cursor:pointer; transition:flex-grow .65s cubic-bezier(.6,.05,.1,1); }
.viant-card::before{ content:""; position:absolute; inset:0; z-index:-2; background-image:var(--img); background-size:cover; background-position:center; filter:saturate(.92); transition:transform 1.2s cubic-bezier(.2,.6,.2,1),filter .5s ease; }
.viant-card::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(10,11,10,.12) 0%,rgba(10,11,10,.4) 52%,rgba(10,11,10,.9) 100%); }
.viant-cards:hover .viant-card{ flex-grow:.6; } .viant-cards .viant-card:hover{ flex-grow:3; }
.viant-card:hover::before{ transform:scale(1.06); filter:saturate(1.06); }
.viant-card-k{ position:absolute; top:24px; left:26px; z-index:1; font-size:14px; font-weight:600; letter-spacing:.16em; color:var(--gold-soft); }
.viant-card-c{ position:absolute; left:26px; right:26px; bottom:28px; z-index:1; color:#fff; }
.viant-card-c h3{ font-size:clamp(18px,1.7vw,24px); font-weight:600; margin:0; color:#fff!important; letter-spacing:-.01em; text-shadow:0 2px 16px rgba(0,0,0,.45); }
.viant-card-c h3::after{ content:""; display:block; width:0; height:2px; margin-top:12px; background:linear-gradient(90deg,var(--gold),var(--gold-soft)); transition:width .55s ease .08s; }
.viant-card:hover .viant-card-c h3::after{ width:56px; }
.viant-card-c p{ font-size:14.5px; line-height:1.6; color:rgba(255,255,255,.85)!important; margin:14px 0 0; max-width:360px; opacity:0; transform:translateY(10px); transition:opacity .5s ease .15s,transform .5s ease .15s; }
.viant-card:hover .viant-card-c p{ opacity:1; transform:none; }
.viant-card-more{ display:inline-block; margin-top:16px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:var(--gold-soft); opacity:0; transform:translateY(8px); transition:opacity .5s ease .25s,transform .5s ease .25s; }
.viant-card:hover .viant-card-more{ opacity:1; transform:none; }
@media(max-width:860px){ .viant-cards{ flex-direction:column; height:auto; } .viant-card{ min-height:280px; } .viant-cards:hover .viant-card,.viant-card:hover{ flex-grow:1; } .viant-card-c p,.viant-card-more{ opacity:1; transform:none; } .viant-card-c h3::after{ width:56px; } }

/* blog / journal */
.viant-blog-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:clamp(36px,4vw,56px); flex-wrap:wrap; }
.viant-blog-head .viant-title{ margin:0; } .viant-blog-head .viant-cta{ margin-bottom:8px; }
.viant-blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3vw,40px); }
.viant-post{ display:block; text-decoration:none; }
.viant-post-img{ display:block; width:100%; height:240px; border-radius:6px; overflow:hidden; background-image:var(--img); background-size:cover; background-position:center; transition:transform 1s cubic-bezier(.2,.6,.2,1),filter .4s ease; filter:saturate(.95); }
.viant-post:hover .viant-post-img{ transform:scale(1.04); filter:saturate(1.05); }
.viant-post-cat{ display:inline-block; margin:22px 0 12px; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.viant-post h3{ font-size:clamp(18px,1.5vw,21px); font-weight:600; color:var(--ink); line-height:1.35; margin:0 0 12px; letter-spacing:-.01em; transition:color .3s ease; font-family:'Poppins',sans-serif; }
.viant-post:hover h3{ color:var(--olive-soft); }
.viant-post p{ font-size:14.5px; line-height:1.7; color:var(--muted); margin:0 0 16px; }
.viant-post-more{ font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--olive); }
.viant-post-more i{ font-style:normal; display:inline-block; transition:transform .3s ease; }
.viant-post:hover .viant-post-more i{ transform:translateX(5px); }
@media(max-width:860px){ .viant-blog-grid{ grid-template-columns:1fr; } }

/* ===== Full-screen mobile menu (client: no popups) ===== */
.aez-mobile-menu{ width:100% !important; max-width:100% !important; left:0; right:0;
  background:#2a3517 !important; transform:translateY(-100%); transition:transform .32s cubic-bezier(.4,0,.2,1);
  display:flex; flex-direction:column; justify-content:center; align-items:stretch; padding:90px 0 40px !important; box-shadow:none !important; }
.aez-mobile-menu.aez-open{ transform:translateY(0) !important; }
.aez-mobile-menu .aez-mm-link{ text-align:center; font-size:22px !important; padding:18px 28px !important; border-bottom:1px solid rgba(255,255,255,.07); }
.aez-mobile-menu .aez-mm-sub{ font-size:16px !important; color:rgba(255,255,255,.7); padding:12px 28px !important; }

/* ===== Footer tweaks ===== */
/* remove the Join Our Newsletter block */
#colophon .elementor-element-6537a99, footer .elementor-element-6537a99{ display:none !important; }
/* 25px breathing space above the first footer line (columns row) */
#colophon .elementor-widget-heading:first-child, #colophon > .elementor-section:first-child, #colophon .e-con.e-parent:first-of-type{ padding-top:25px !important; }
/* uniformity: footer column headings same size/weight, consistent list spacing */
#colophon .elementor-widget-heading .elementor-heading-title{ font-size:26px !important; line-height:1.2 !important; font-weight:600 !important; margin-bottom:18px !important; }
#colophon .elementor-widget-text-editor, #colophon .elementor-nav-menu li{ font-size:16px !important; line-height:2 !important; }

/* ===== Header: transparent overlay on hero pages, solid olive on scroll (ported look) ===== */
body.aez-hero-head #masthead{ position:absolute !important; top:0; left:0; right:0; width:100%; z-index:120;
  background:transparent !important; box-shadow:none !important; transition:background .35s ease, box-shadow .35s ease; }
body.aez-hero-head #masthead::after{ content:""; position:absolute; left:24px; right:24px; bottom:0; height:1px; background:rgba(255,255,255,.22); }
body.aez-hero-head #masthead.aez-stuck{ position:fixed !important; background:#2a3517 !important; box-shadow:0 2px 24px rgba(0,0,0,.22); }
body.aez-hero-head #masthead.aez-stuck::after{ display:none; }

/* Hero video fallback: dark bg so white hero text stays readable even if autoplay is blocked */
.aez-hasvideo{ background:#243318; }
.aez-bgvideo{ background:#243318; }

/* ===== Fit-by-WIDTH: hero video + images show the full frame, height follows ===== */
/* hero: container follows the video's 16:9 aspect at full width (grows if text needs more) */
.aez-hasvideo{ aspect-ratio:16/9; height:auto !important; min-height:0 !important; max-height:none !important; }
.aez-bgvideo video{ width:100% !important; height:100% !important; min-width:0 !important; min-height:0 !important; object-fit:cover; }
/* images: never cropped by height, always scale to width */
img{ max-width:100% !important; height:auto; }
.elementor-widget-image img, .elementor-image img, .wp-block-image img, figure img{ width:100%; height:auto !important; object-fit:contain; }
.aez-prod-cover, .viant-why-media img{ height:auto !important; object-fit:contain; }
@media(max-width:768px){
  .aez-hasvideo{ aspect-ratio:auto; min-height:62vw !important; }   /* phones: keep text room, video stays full-width */
  .aez-bgvideo video{ object-fit:cover; }
}

/* ===== Uniformity + responsive fixes (from audit) ===== */
/* hero video: fit by width, but never taller than the viewport */
.aez-hasvideo{ max-height:100vh !important; }
/* unify section headings */
.elementor-widget-heading h2.elementor-heading-title, h2.elementor-heading-title{ font-size:clamp(28px,4vw,42px) !important; line-height:1.2 !important; font-family:'Poppins',sans-serif !important; }
/* unify body text to one font family + size */
body, p, .elementor-widget-text-editor, .elementor-widget-text-editor p{ font-family:'Poppins',sans-serif !important; }
.elementor-widget-text-editor, .elementor-widget-text-editor p{ font-size:16px !important; line-height:1.65 !important; }
/* unify section vertical rhythm */
.e-con.e-parent, section.elementor-section{ padding-top:clamp(48px,6vw,88px) !important; padding-bottom:clamp(48px,6vw,88px) !important; }
/* unify buttons */
.elementor-button, .elementor-button-link, .aez-prod-cta, .aez-form button, [data-aez-newsletter] button{ border-radius:40px !important; padding:14px 32px !important; font-weight:600 !important; font-family:'Poppins',sans-serif !important; }
/* mobile: fixed-size images squash — let them scale; big icons shrink; nav links wrap */
@media(max-width:767px){
  .elementor-widget-image img{ width:100% !important; height:auto !important; }
  .elementor-icon{ font-size:48px !important; }
  .elementor-post-navigation__link{ white-space:normal !important; }
  .elementor-heading-title{ font-size:clamp(24px,7vw,36px) !important; }
}

/* hero: exempt from the uniform section rules — keep its big heading and no extra padding */
.aez-hasvideo .elementor-heading-title{ font-size:clamp(34px,5.2vw,60px) !important; line-height:1.1 !important; }
.aez-hasvideo .elementor-widget-text-editor, .aez-hasvideo .elementor-widget-text-editor p{ font-size:clamp(16px,1.6vw,20px) !important; }
.aez-hasvideo.e-con.e-parent{ padding-top:clamp(60px,10vw,140px) !important; padding-bottom:clamp(60px,10vw,140px) !important; }

/* hero content must clear the transparent overlay header */
.aez-hasvideo.e-con.e-parent, .aez-hasvideo{ padding-top:clamp(150px,22vw,230px) !important; padding-bottom:clamp(60px,8vw,110px) !important; min-height:0 !important; }
@media(max-width:767px){ .aez-hasvideo.e-con.e-parent, .aez-hasvideo{ padding-top:120px !important; padding-bottom:50px !important; } }

/* hero heading: outrank the uniform h2 rule (higher specificity) so it stays large */
.aez-hasvideo .elementor-widget-heading h2.elementor-heading-title,
.aez-hasvideo .elementor-widget-heading .elementor-heading-title,
.aez-hasvideo h1.elementor-heading-title, .aez-hasvideo h2.elementor-heading-title{ font-size:clamp(34px,5.2vw,60px) !important; line-height:1.1 !important; }

/* ===== Restore Elementor sticky "stacking steps" scroll effect (From Seed to Harvest) — pure CSS, desktop only ===== */
@media (min-width: 1025px){
  /* left text column pins while the cards scroll past */
  .elementor-element-a844f95{ position:sticky !important; top:200px !important; align-self:flex-start !important; }
  /* each step card pins and stacks over the previous one */
  .elementor-element-e5cc818{ position:sticky !important; top:250px !important; }
  .elementor-element-2a5548a, .elementor-element-18d37de, .elementor-element-3d40ba7{ position:sticky !important; top:200px !important; }
  /* cards need a solid surface + stacking order so each covers the last */
  .elementor-element-e5cc818, .elementor-element-2a5548a, .elementor-element-18d37de, .elementor-element-3d40ba7{ background:#fff; border-radius:12px; box-shadow:0 10px 30px rgba(0,0,0,.08); }
  .elementor-element-e5cc818{ z-index:1; } .elementor-element-2a5548a{ z-index:2; } .elementor-element-18d37de{ z-index:3; } .elementor-element-3d40ba7{ z-index:4; }
}
/* sticky must not be inside an overflow:hidden ancestor — keep this section's wrappers visible */
.elementor-element-a844f95, .elementor-element-e5cc818, .elementor-element-2a5548a, .elementor-element-18d37de, .elementor-element-3d40ba7{ overflow:visible; }

/* ===== Make CSS position:sticky work site-wide =====
   Astra/Elementor set overflow-x:hidden on html/body, which turns body into a scroll
   container and silently breaks every position:sticky. `clip` still blocks horizontal
   scrollbars but does NOT create a scroll container, so sticky pins against the viewport. */
html, body{ overflow-x:clip !important; overflow-y:visible !important; }
html.aez-menu-lock, html.aez-menu-lock body{ overflow:hidden !important; }   /* keep the menu scroll-lock */

/* ===== Logo carousel (Swiper JS gone) -> seamless CSS marquee, pause on hover ===== */
.elementor-element-19607cf .swiper, .elementor-element-19607cf .swiper-container, .elementor-element-19607cf .elementor-swiper{ overflow:hidden !important; }
.elementor-element-19607cf .swiper-wrapper{ display:flex !important; flex-direction:row !important; width:max-content !important; transform:none; animation:aez-logo-scroll 40s linear infinite; will-change:transform; }
.elementor-element-19607cf:hover .swiper-wrapper{ animation-play-state:paused; }
.elementor-element-19607cf .swiper-slide{ flex:0 0 auto !important; width:226px !important; display:flex; align-items:center; justify-content:center; }
@keyframes aez-logo-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ===== Desktop nav dropdowns: reveal on hover/focus without Elementor JS ===== */
@media (min-width:1025px){
  #masthead .menu-item-has-children:hover > .sub-menu,
  #masthead .menu-item-has-children:focus-within > .sub-menu{ display:block !important; }
}
