/* CompuSOURCE Glass — glassmorphism utility styles for Elementor + block theme chrome */

:root{
  --csr-primary:#00a621;
  --csr-primary-dark:#00480f;
  --csr-bright:#50fd73;
  --csr-accent:#f58220;
  --csr-charcoal:#2b2f2c;
  --csr-contrast:#081a0c;
  --csr-surface:#f6f7fd;
  --csr-base:#ffffff;
  --csr-blur:18px;
  --csr-radius:20px;
}

html{ overflow-x:hidden; }
body.has-glass-theme{
  background:var(--csr-surface);
  position:relative;
  overflow-x:hidden;
}
body.has-glass-theme::before,
body.has-glass-theme::after{
  content:"";
  position:fixed;
  border-radius:50%;
  filter:blur(90px);
  z-index:-1;
  pointer-events:none;
}
body.has-glass-theme::before{
  width:520px;height:520px;
  background:var(--csr-primary);
  opacity:.16;
  top:10%;
  left:-160px;
}
body.has-glass-theme::after{
  width:460px;height:460px;
  background:var(--csr-accent);
  opacity:.14;
  bottom:5%;
  right:-140px;
}

/* ---------- Typography rhythm ---------- */
.x-large-heading{ font-size:clamp(2.25rem,4vw,3.4rem) !important; line-height:1.12 !important; font-weight:800 !important; letter-spacing:-0.01em; }
.x-large{ font-size:clamp(1.75rem,3vw,2.4rem) !important; font-weight:800 !important; line-height:1.2 !important; }
.large{ font-size:1.35rem !important; font-weight:700 !important; }

/* ---------- Hero / dark full-bleed sections ---------- */
.csr-hero,
.csr-section-dark{
  position:relative;
  overflow:hidden;
  color:#fff;
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  isolation:isolate;
}
.csr-hero{
  background:linear-gradient(135deg,#04140a 0%,#0b2e13 45%,#00480f 100%);
  border-radius:0 0 32px 32px;
}
.csr-hero > .elementor-container,
.csr-section-dark > .elementor-container{
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  padding-left:24px;
  padding-right:24px;
  position:relative;
  z-index:1;
}
.csr-hero::before,
.csr-hero::after{
  content:"";
  position:absolute;
  border-radius:50%;
  filter:blur(70px);
  z-index:0;
  opacity:.5;
}
.csr-hero::before{
  width:38vw;height:38vw;
  min-width:320px;min-height:320px;
  background:var(--csr-primary);
  top:-15%;right:-8%;
}
.csr-hero::after{
  width:28vw;height:28vw;
  min-width:260px;min-height:260px;
  background:var(--csr-bright);
  bottom:-18%;left:-6%;
  opacity:.22;
}
.csr-hero h1,.csr-hero h2,.csr-hero h3,.csr-hero p,.csr-hero li{ color:#fff !important; }
.csr-hero .elementor-widget-image{ position:relative; z-index:1; }

.csr-section-dark{
  background:linear-gradient(135deg,#04140a 0%,#0b2e13 55%,#00320a 100%);
  color:#fff;
  border-radius:32px;
}
.csr-section-dark h2,.csr-section-dark h3,.csr-section-dark p{ color:#fff !important; }
.csr-section-dark .elementor-container{ text-align:center; }

/* ---------- Glass cards (Elementor columns) ---------- */
.elementor-column.glass-card,
.elementor-column.glass-card > .elementor-widget-wrap,
.elementor-column.glass-card-dark,
.elementor-column.glass-card-dark > .elementor-widget-wrap{
  -webkit-backdrop-filter:blur(var(--csr-blur)) saturate(160%);
  backdrop-filter:blur(var(--csr-blur)) saturate(160%);
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease;
}
.elementor-column.glass-card,
.elementor-column.glass-card > .elementor-widget-wrap{
  background:rgba(255,255,255,.6) !important;
  border:1px solid rgba(255,255,255,.6) !important;
  box-shadow:0 8px 32px rgba(4,20,10,.12) !important;
  border-radius:var(--csr-radius) !important;
  padding:2rem !important;
}
.elementor-column.glass-card:hover,
.elementor-column.glass-card:hover > .elementor-widget-wrap{
  transform:translateY(-6px);
  box-shadow:0 20px 44px rgba(4,20,10,.2) !important;
  background:rgba(255,255,255,.75) !important;
}
.elementor-column.glass-card-dark,
.elementor-column.glass-card-dark > .elementor-widget-wrap{
  background:rgba(8,26,12,.5) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  box-shadow:0 8px 32px rgba(0,0,0,.35) !important;
  border-radius:var(--csr-radius) !important;
  padding:2rem !important;
  color:#fff;
}
.elementor-column.glass-card-dark:hover,
.elementor-column.glass-card-dark:hover > .elementor-widget-wrap{
  transform:translateY(-6px);
  background:rgba(8,26,12,.68) !important;
}
.elementor-column.glass-card-dark h3,
.elementor-column.glass-card-dark h4,
.elementor-column.glass-card-dark p{ color:#fff !important; }
.elementor-column.glass-card h3,
.elementor-column.glass-card-dark h3{ margin-top:0; }

.glass-badge{
  background:rgba(255,255,255,.65) !important;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
  padding:.5rem 1.1rem;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:.9rem;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--csr-primary-dark) !important;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}

/* ---------- Navigation ---------- */
.glass-nav{
  background:rgba(4,13,7,.94);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  backdrop-filter:blur(18px) saturate(160%);
  border-bottom:1px solid rgba(255,255,255,.08);
  position:sticky;
  top:0;
  z-index:100;
}
.glass-nav .wp-block-site-logo img{ max-height:38px; width:auto; }
.glass-nav,
.glass-nav .wp-block-navigation,
.glass-nav .wp-block-navigation-item,
.glass-nav .wp-block-navigation-item__content,
.glass-nav .wp-block-navigation-item__label,
.glass-nav .wp-block-navigation a,
.glass-nav .wp-block-navigation a:visited,
.glass-nav .wp-block-navigation button,
.glass-nav .wp-block-page-list a{
  color:#ffffff !important;
}
.glass-nav .wp-block-navigation__responsive-container-open,
.glass-nav .wp-block-navigation__responsive-container-open svg{
  color:#ffffff !important;
  fill:#ffffff !important;
}
.glass-nav .wp-block-navigation-item{ position:relative; }
.glass-nav .wp-block-navigation-item__content{
  position:relative;
  transition:color .2s ease;
}
.glass-nav .wp-block-navigation-item__content::after{
  content:"";
  position:absolute;
  left:1em; right:1em; bottom:2px;
  height:2px;
  transform:scaleX(0);
  background:var(--csr-bright);
  transition:transform .25s ease;
}
.glass-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.glass-nav .wp-block-navigation-item__content:focus{ color:var(--csr-bright) !important; }
.glass-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after{ transform:scaleX(1); }
.glass-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  color:#ffffff !important;
}
.glass-nav .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content{
  color:var(--csr-bright) !important;
}
.glass-nav .wp-block-navigation__submenu-container{
  background:rgba(6,20,10,.92);
  -webkit-backdrop-filter:blur(20px);
  backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 20px 40px rgba(0,0,0,.35);
}

/* ---------- Buttons (Elementor button widget) ---------- */
.elementor-widget-button .elementor-button{
  padding:0.95rem 2rem !important;
  font-size:1rem !important;
  font-weight:700 !important;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease !important;
}
.elementor-widget-button.is-style-glass .elementor-button{
  background:rgba(255,255,255,.14) !important;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.45) !important;
  color:#fff !important;
  border-radius:999px !important;
  fill:#fff;
}
.elementor-widget-button.is-style-glass .elementor-button:hover{
  background:rgba(255,255,255,.26) !important;
  transform:translateY(-2px);
}
.elementor-widget-button.is-style-csr-accent .elementor-button{
  background:linear-gradient(120deg,var(--csr-accent) 0%,#c9600f 100%) !important;
  color:#fff !important;
  border:none !important;
  border-radius:999px !important;
  box-shadow:0 10px 26px rgba(245,130,32,.4) !important;
}
.elementor-widget-button.is-style-csr-accent .elementor-button:hover{
  box-shadow:0 14px 32px rgba(245,130,32,.55) !important;
  transform:translateY(-3px);
}
.csr-hero .elementor-widget-button:not(.is-style-glass):not(.is-style-csr-accent) .elementor-button,
.csr-section-dark .elementor-widget-button:not(.is-style-glass):not(.is-style-csr-accent) .elementor-button{
  background:linear-gradient(120deg,var(--csr-primary) 0%,var(--csr-primary-dark) 100%) !important;
  color:#fff !important;
  border-radius:999px !important;
  border:none !important;
}

/* ---------- Images ---------- */
.elementor-widget-image img{
  border-radius:18px;
  display:block;
}
.csr-hero .elementor-widget-image img,
.elementor-column.glass-card .elementor-widget-image img{
  box-shadow:0 20px 50px rgba(0,0,0,.35);
}

/* ---------- Icon list ---------- */
.elementor-icon-list-item{ margin-bottom:.6rem; }
.elementor-icon-list-icon i{ color:var(--csr-primary) !important; }

/* ---------- Testimonial ---------- */
.elementor-widget-testimonial .elementor-testimonial{
  background:rgba(255,255,255,.6);
  -webkit-backdrop-filter:blur(var(--csr-blur));
  backdrop-filter:blur(var(--csr-blur));
  border:1px solid rgba(255,255,255,.5);
  border-radius:var(--csr-radius);
  padding:2.5rem;
  box-shadow:0 8px 32px rgba(4,20,10,.12);
}

/* ---------- Footer ---------- */
.csr-footer{
  background:linear-gradient(135deg,#04140a 0%,#081a0c 100%);
  color:rgba(255,255,255,.85);
}
.csr-footer a{ color:rgba(255,255,255,.85); }
.csr-footer a:hover{ color:var(--csr-bright); }
.csr-footer .glass-card-dark,
.csr-footer .elementor-widget-wrap{ background:transparent; }
.csr-footer .wp-block-group.glass-card-dark{
  background:rgba(255,255,255,.06) !important;
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--csr-radius);
}

/* ---------- Partner logo strip ---------- */
.csr-partner-logo{ display:flex; align-items:center; justify-content:center; }
.csr-partner-logo img{
  filter:grayscale(100%);
  opacity:.8;
  transition:filter .25s ease,opacity .25s ease;
  max-height:42px;
  width:auto;
  border-radius:0;
  box-shadow:none;
}
.csr-partner-logo:hover img{ filter:none; opacity:1; }

/* ---------- Motion & accessibility fallbacks ---------- */
@media (prefers-reduced-motion:reduce){
  .elementor-column.glass-card,.elementor-column.glass-card-dark,.elementor-widget-button .elementor-button{ transition:none; }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .elementor-column.glass-card,.elementor-column.glass-card > .elementor-widget-wrap{ background:rgba(255,255,255,.92) !important; }
  .elementor-column.glass-card-dark,.elementor-column.glass-card-dark > .elementor-widget-wrap{ background:rgba(8,26,12,.9) !important; }
  .glass-nav{ background:rgba(4,13,7,.98); }
}

@media (max-width:768px){
  .csr-hero{ border-radius:0 0 20px 20px; }
  .elementor-column.glass-card,.elementor-column.glass-card-dark{ padding:1.5rem !important; }
  .csr-hero::before,.csr-hero::after{ opacity:.3; }
}

/* Fix Dropdown Menu Block Navigation */
.glass-nav .wp-block-navigation__submenu-container {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    min-width: 250px !important;
    z-index: 999 !important;
    margin-top: 10px !important;
    border-radius: 14px !important;
    background: rgba(6, 20, 10, 0.95) !important;
    backdrop-filter: blur(20px) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 20px 40px rgba(0,0,0,0.35) !important;
}

.glass-nav .wp-block-navigation-item {
    position: relative !important;
}
