/* Greenfell — site hover, transition & scrim polish. Targets Elementor element IDs. */

/* ===== dark-band photo scrims (Elementor container overlay does not render reliably) ===== */
.elementor-element-secHero,
.elementor-element-secCta{ position:relative; }
.elementor-element-secHero::before{
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none; opacity:1 !important;
  background:
    linear-gradient(96deg, rgba(9,13,20,.95) 0%, rgba(10,14,22,.82) 30%, rgba(11,16,24,.42) 58%, rgba(11,16,24,.10) 100%),
    linear-gradient(180deg, rgba(10,14,22,.22) 0%, rgba(9,13,20,.40) 100%) !important;
}
@media (max-width:767px){
  .elementor-element-secHero::before{
    background:linear-gradient(179deg, rgba(11,16,24,.66) 0%, rgba(9,13,20,.80) 42%, rgba(7,11,17,.93) 100%) !important;
  }
}
.elementor-element-secHero .elementor-background-video-container{ z-index:1 !important; }
.elementor-element-secCta::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:1 !important;
  background:rgba(12,18,28,.92) !important;
}
.elementor-element-secCta > .e-con-inner,
.elementor-element-secCta .elementor-element-ctaIn{ position:relative; z-index:1; }
.elementor-element-secHero > .e-con-inner,
.elementor-element-secHero > .elementor-container,
.elementor-element-secHero .elementor-element-hInner,
.elementor-element-secHero .e-con-inner{ position:relative; z-index:3; }

/* ===== product / generic cards ===== */
.gf-card,
.elementor-element-cGpc,.elementor-element-cBrd,.elementor-element-cAlu,
.elementor-element-cPnt,.elementor-element-cDec,.elementor-element-cFix{
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.gf-card .elementor-widget-image img,
.elementor-element-cGpc .elementor-widget-image img,.elementor-element-cBrd .elementor-widget-image img,
.elementor-element-cAlu .elementor-widget-image img,.elementor-element-cPnt .elementor-widget-image img,
.elementor-element-cDec .elementor-widget-image img,.elementor-element-cFix .elementor-widget-image img{
  transition:transform .45s ease; will-change:transform;
}
.gf-card:hover,
.elementor-element-cGpc:hover,.elementor-element-cBrd:hover,.elementor-element-cAlu:hover,
.elementor-element-cPnt:hover,.elementor-element-cDec:hover,.elementor-element-cFix:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 34px rgba(18,51,30,.14), 0 4px 10px rgba(18,51,30,.08);
  border-color:#8CA97D !important; z-index:2;
}
.gf-card:hover .elementor-widget-image img,
.elementor-element-cGpc:hover .elementor-widget-image img,.elementor-element-cBrd:hover .elementor-widget-image img,
.elementor-element-cAlu:hover .elementor-widget-image img,.elementor-element-cPnt:hover .elementor-widget-image img,
.elementor-element-cDec:hover .elementor-widget-image img,.elementor-element-cFix:hover .elementor-widget-image img{
  transform:scale(1.05);
}

/* ===== solution / applications grid cells ===== */
[class*="elementor-element-sol"]{ transition:background-color .2s ease; }
[class*="elementor-element-sol"] .elementor-widget-image img{ transition:transform .45s ease; }
.elementor-element-sol0:hover,.elementor-element-sol1:hover,.elementor-element-sol2:hover,
.elementor-element-sol3:hover,.elementor-element-sol4:hover,.elementor-element-sol5:hover,
.elementor-element-sol6:hover,.elementor-element-sol7:hover,.elementor-element-sol8:hover{
  background-color:#F6F7F2 !important;
}
.elementor-element-sol0:hover .elementor-widget-image img,.elementor-element-sol1:hover .elementor-widget-image img,
.elementor-element-sol2:hover .elementor-widget-image img,.elementor-element-sol3:hover .elementor-widget-image img,
.elementor-element-sol4:hover .elementor-widget-image img,.elementor-element-sol5:hover .elementor-widget-image img,
.elementor-element-sol6:hover .elementor-widget-image img,.elementor-element-sol7:hover .elementor-widget-image img,
.elementor-element-sol8:hover .elementor-widget-image img{ transform:scale(1.04); }

/* ===== gallery grids (Home #galGrid 3-up, Projects #prGg 4-up) ===== */
[class*="elementor-element-giw"] .elementor-widget-container,
[class*="elementor-element-prgiw"] .elementor-widget-container{ line-height:0; }
[class*="elementor-element-giw"] img,
[class*="elementor-element-prgiw"] img{
  width:100% !important; object-fit:cover; object-position:center;
  display:block; border-radius:2px; filter:saturate(.94);
  transition:transform .5s cubic-bezier(.22,.61,.36,1), filter .3s ease;
}
[class*="elementor-element-giw"] img{ height:264px; }
[class*="elementor-element-prgiw"] img{ height:196px; }
[class*="elementor-element-gi"],
[class*="elementor-element-prgi"]{ overflow:hidden; }
[class*="elementor-element-gi"]:hover img,
[class*="elementor-element-prgi"]:hover img{ transform:scale(1.05); filter:saturate(1.05); }
@media (max-width:1024px){
  [class*="elementor-element-giw"] img{ height:240px; }
  [class*="elementor-element-prgiw"] img{ height:200px; }
}
@media (max-width:600px){
  [class*="elementor-element-giw"] img{ height:220px; }
  [class*="elementor-element-prgiw"] img{ height:200px; }
}

/* ===== buttons: subtle lift ===== */
.elementor-button{ transition:transform .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease !important; }
.elementor-button:hover{ transform:translateY(-2px); }

/* ===== why-us icon boxes ===== */
#secWhy .elementor-widget-icon-box .elementor-icon{ transition:color .18s ease; }
#secWhy .elementor-widget-icon-box:hover .elementor-icon{ color:#2E6B41; }

/* ===== icon-list check marks ===== */
.elementor-icon-list-icon i,.elementor-icon-list-icon svg{ color:#1F4A2C !important; }

/* ===== text-editor links keep brand colour ===== */
.elementor-widget-text-editor a{ color:#1F4A2C; text-decoration:none; }
.elementor-widget-text-editor a:hover{ color:#2E6B41; }

/* ===== page-hero labels / breadcrumb ===== */
.gf-phero .elementor-heading-title a{ color:inherit; }

/* ===== WPForms — brand styling ===== */
.gf-formbox .wpforms-form input[type=text],
.gf-formbox .wpforms-form input[type=email],
.gf-formbox .wpforms-form input[type=tel],
.gf-formbox .wpforms-form input[type=number],
.gf-formbox .wpforms-form select,
.gf-formbox .wpforms-form textarea{
  border:1px solid #D6DACD !important; border-radius:2px !important; background:#F7F8F4 !important;
  font-family:Barlow, system-ui, sans-serif !important; font-size:15px !important; color:#17201A !important;
  padding:11px 12px !important; box-shadow:none !important;
  transition:border-color .15s ease, background .15s ease;
}
.gf-formbox .wpforms-form input:focus,
.gf-formbox .wpforms-form select:focus,
.gf-formbox .wpforms-form textarea:focus{ border-color:#1F4A2C !important; background:#fff !important; outline:none !important; }
.gf-formbox .wpforms-form .wpforms-field-label{
  font-family:"IBM Plex Mono", ui-monospace, monospace !important; font-size:11.5px !important;
  letter-spacing:1px !important; text-transform:uppercase !important; color:#566056 !important; font-weight:500 !important;
}
.gf-formbox .wpforms-form .wpforms-required-label{ color:#B5342A !important; }
.gf-formbox .wpforms-form textarea{ min-height:120px !important; }
.gf-formbox .wpforms-submit{
  background:#1F4A2C !important; color:#fff !important; border:0 !important; border-radius:2px !important;
  font-family:"Barlow Condensed", sans-serif !important; text-transform:uppercase !important; letter-spacing:.06em !important;
  font-size:15px !important; padding:13px 26px !important; cursor:pointer;
  transition:transform .18s ease, background .18s ease !important;
}
.gf-formbox .wpforms-submit:hover{ background:#2E6B41 !important; transform:translateY(-2px); }
.gf-formbox .wpforms-confirmation-container-full,
.gf-formbox div.wpforms-confirmation-container-full{
  background:#EDF3EC !important; border:1px solid #8CA97D !important; color:#1F4A2C !important;
  border-radius:2px !important; padding:14px 16px !important; font-family:Barlow, sans-serif;
}
.gf-formbox .wpforms-error{ color:#B5342A !important; font-size:13px !important; }

/* ===== header nav ===== */
.elementor-nav-menu .elementor-item{ font-family:"Barlow Condensed", sans-serif; }
.elementor-nav-menu--dropdown a{ font-family:"Barlow Condensed", sans-serif; }

/* ===== mobile / tablet header: logo left · quote centre · menu right ===== */
@media (max-width:1024px){
  #gf-site-header .elementor-element-hdrInner > .e-con-inner{
    display:flex !important; flex-wrap:nowrap !important; align-items:center !important; gap:10px;
  }
  #gf-site-header .elementor-element-hdrLogo{ flex:0 0 auto !important; margin:0 !important; }
  #gf-site-header .elementor-element-hdrLogo img{ height:38px !important; width:auto !important; }
  #gf-site-header .elementor-element-hdrRight{
    flex:1 1 auto !important; display:flex !important; flex-wrap:nowrap !important;
    align-items:center !important; width:auto !important; padding:0 !important;
  }
  #gf-site-header .elementor-element-hdrCta{ order:1; margin:0 auto !important; }
  #gf-site-header .elementor-element-hdrNav{ order:2; margin:0 !important; flex:0 0 auto; }
  #gf-site-header .elementor-element-hdrCta .elementor-button{
    padding:10px 15px !important; font-size:13px !important; line-height:1; white-space:nowrap; letter-spacing:.04em;
  }
  #gf-site-header .xpro-elementor-horizontal-menu-toggler{
    width:44px; height:44px; display:flex; align-items:center; justify-content:center;
    border:1px solid #D6DACD; border-radius:3px; background:#FFFFFF; padding:0;
  }
  #gf-site-header .xpro-elementor-horizontal-menu-toggler i{ font-size:20px; color:#1F4A2C; }

  .xpro-elementor-horizontal-navbar-wrapper{
    background:#101B29 !important; width:min(84vw,320px) !important; max-width:320px !important;
    height:100% !important; min-height:100vh !important;
    padding:64px 0 32px !important; box-shadow:-10px 0 44px rgba(0,0,0,.4) !important; text-align:left !important;
  }
  .xpro-elementor-horizontal-navbar-wrapper .xpro-elementor-horizontal-navbar{ width:100% !important; text-align:left !important; }
  ul.xpro-elementor-horizontal-navbar-nav{ width:100% !important; display:block !important; }
  ul.xpro-elementor-horizontal-navbar-nav > li.nav-item{
    display:block !important; width:100% !important; float:none !important;
    border-bottom:1px solid rgba(255,255,255,.10);
  }
  ul.xpro-elementor-horizontal-navbar-nav > li.nav-item > a.menu-link{
    display:block !important; width:100% !important; padding:16px 26px !important;
    font-family:"Barlow Condensed", sans-serif !important; font-size:19px !important;
    font-weight:600 !important; letter-spacing:.6px !important; text-transform:uppercase !important;
    color:#F3F4EF !important; background:transparent !important; text-align:left !important;
  }
  ul.xpro-elementor-horizontal-navbar-nav > li.nav-item.active > a.menu-link,
  ul.xpro-elementor-horizontal-navbar-nav > li.nav-item.current-menu-item > a.menu-link,
  ul.xpro-elementor-horizontal-navbar-nav > li.nav-item > a.menu-link:hover{ color:#A7C48F !important; }
  .xpro-elementor-horizontal-menu-close{
    top:16px !important; right:16px !important; width:40px !important; height:40px !important;
    background:#1F4A2C !important; border-radius:3px !important; opacity:1 !important;
    display:flex !important; align-items:center; justify-content:center;
  }
  .xpro-elementor-horizontal-menu-close i{ color:#F3F4EF !important; font-size:17px !important; }
  .xpro-elementor-horizontal-menu-overlay{ background:rgba(9,13,20,.62) !important; }
}
@media (max-width:600px){
  #gf-site-header .elementor-element-hdrInner > .e-con-inner{ gap:8px; }
  #gf-site-header .elementor-element-hdrLogo img{ height:34px !important; }
  #gf-site-header .elementor-element-hdrCta .elementor-button{ padding:9px 13px !important; font-size:12px !important; }
  #gf-site-header .xpro-elementor-horizontal-menu-toggler{ width:42px; height:42px; }
}

/* ===== footer ===== */
.elementor-element-secFtr a{ transition:color .15s ease; }
.elementor-element-secFtr a:hover{ color:#FFFFFF !important; }

@media (prefers-reduced-motion: reduce){
  .gf-card, .elementor-button, [class*="elementor-element-sol"], .elementor-widget-image img{ transition:none !important; }
  .gf-card:hover, .elementor-button:hover{ transform:none !important; }
  .gf-card:hover .elementor-widget-image img, [class*="elementor-element-sol"]:hover .elementor-widget-image img{ transform:none !important; }
}
