/* Ariya Glasshouse ↔ WordPress/Elementor bridge */

/* Re-assert fixed image sizing that Elementor's global img{height:auto} clobbers */
.logos__grid img{
  height:44px !important; width:100%; object-fit:contain; mix-blend-mode:multiply;
  filter:none !important; opacity:1 !important;   /* full colour: no grayscale wash */
}
.logos__grid img:hover{ transform:scale(1.07) }
.pv__main{ height:80% !important }
.pv__side{ height:54% !important }
.shard img{ height:100% !important }
.mo img, .bento .mo img{ height:100% !important; object-fit:cover }
.map__card img{ height:200px !important; object-fit:cover }
.quote footer img{ width:52px; height:52px !important; border-radius:50%; object-fit:cover }
.member img{ height:96px !important }
.award > img{ aspect-ratio:16/10; object-fit:cover }
.solmedia img{ aspect-ratio:4/2.9 !important; height:auto !important }
.pcard > img{ height:100% !important }
.cscard > img{ height:100% !important }
.sol img{ height:100% !important }
.mega__item img{ aspect-ratio:16/9; object-fit:cover }

/* fixed glass nav vs the WP admin bar */
body.admin-bar .nav{ top:48px }
@media (max-width: 782px){ body.admin-bar .nav{ top:56px } }

/* hide floating chrome inside the Elementor editor preview */
body.elementor-editor-active .dock,
body.elementor-editor-active .fabs,
body.elementor-editor-active .aq-fab{ display:none !important }

/* Elementor widget defaults inside our design system */
.elementor-widget-text-editor{ color:var(--ink-soft) }
.elementor-widget-text-editor p{ margin-bottom:14px }
.elementor-widget-text-editor p:last-child{ margin-bottom:0 }

/* heading widget carrying our display style (add class "h2x" to the widget) */
.elementor-widget.h2x .elementor-heading-title{
  font-family:var(--f-d); font-weight:700; letter-spacing:-.024em;
  font-size:clamp(1.9rem, 4.2vw, 3.2rem); line-height:1.06; text-wrap:balance;
  max-width:22ch; color:var(--ink);
}
.elementor-widget.h3x .elementor-heading-title{
  font-family:var(--f-d); font-weight:700; letter-spacing:-.015em;
  font-size:1.6rem; color:var(--ink);
}

/* button widget mapped to the design system (widget classes e-btn-solid / e-btn-glass) */
.elementor-widget-button.e-btn-solid .elementor-button,
.elementor-widget-button.e-btn-glass .elementor-button{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 26px; border-radius:100px;
  font-family:var(--f-d); font-weight:600; font-size:.92rem;
  transition:transform .2s ease, box-shadow .2s ease, background .2s, color .2s;
}
.elementor-widget-button.e-btn-solid .elementor-button{
  background:var(--green); color:#fff; box-shadow:0 10px 28px rgba(22,163,74,.32);
}
.elementor-widget-button.e-btn-solid .elementor-button:hover{ background:#128740 }
.elementor-widget-button.e-btn-glass .elementor-button{
  background:rgba(255,255,255,.6); border:1px solid rgba(255,255,255,.9);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  box-shadow:var(--shadow); color:var(--ink);
}
.elementor-widget-button.e-btn-glass .elementor-button:hover{ color:var(--green) }

/* Elementor column used as a feature / step / keyfig card */
.elementor-column.feat > .elementor-widget-wrap,
.elementor-column.step > .elementor-widget-wrap,
.elementor-column.keyfigx > .elementor-widget-wrap{
  background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:blur(16px) saturate(1.5);
  backdrop-filter:blur(16px) saturate(1.5);
  border:1px solid rgba(255,255,255,.85);
  box-shadow:var(--shadow);
  border-radius:18px; padding:24px;
  align-content:start;
}
.elementor-column.feat .elementor-heading-title{
  font-family:var(--f-d); font-size:1.02rem; color:var(--ink);
}
.elementor-column.feat .elementor-widget-text-editor,
.elementor-column.step .elementor-widget-text-editor{ font-size:.88rem }
.elementor-column.feat .ico{ width:26px; height:26px; color:var(--green) }
.elementor-column.step .elementor-heading-title{
  font-family:var(--f-d); font-size:.98rem; color:var(--ink);
}
.elementor-column .elementor-widget:not(:last-child){ margin-bottom:10px }

/* image widget inside our media rows */
.elementor-widget-image.solmedia img{
  border-radius:var(--r-lg); box-shadow:var(--shadow);
  width:100%; aspect-ratio:4/2.9; object-fit:cover;
}

/* sensible defaults for sections that carry our section classes */
.elementor-section.page-hero > .elementor-container,
.elementor-section.gridsec > .elementor-container{ position:relative; z-index:1 }

/* keep Elementor list styles from leaking into the facts strips (html widgets) */
.elementor-widget-html ul.facts{ margin:0; padding:0 }

/* hero display heading (widget class h1x) */
.elementor-widget.h1x .elementor-heading-title{
  font-family:var(--f-d); font-weight:700; letter-spacing:-.028em;
  font-size:clamp(2.7rem, 5.6vw, 4.6rem); line-height:1.02; color:var(--ink);
}
.elementor-widget.h1x .elementor-heading-title .grad{
  background:linear-gradient(100deg, var(--green) 10%, #57cf7d 50%, #0d7a38 90%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.elementor-widget.herosub .elementor-widget-container{
  font-size:1.12rem; color:var(--ink-soft); max-width:38ch;
}

/* soft aurora blobs on Elementor hero sections */
.elementor-section.page-hero{ overflow:hidden }
.elementor-section.page-hero::before,
.elementor-section.page-hero::after{
  content:""; position:absolute; border-radius:50%; pointer-events:none;
}
.elementor-section.page-hero::before{
  width:56vw; height:56vw; left:-14vw; top:-18vw;
  background:radial-gradient(circle, rgba(34,197,94,.26) 0%, rgba(34,197,94,0) 65%);
}
.elementor-section.page-hero::after{
  width:44vw; height:44vw; right:-10vw; top:-6vw;
  background:radial-gradient(circle, rgba(45,212,191,.22) 0%, rgba(45,212,191,0) 65%);
}

/* numbered process steps built from Elementor columns */
.elementor-column.step::before{ content:none }  /* kill the static-site counter; the wrap carries it */
.elementor-section.stepsx > .elementor-container{ counter-reset:step }
.elementor-column.step > .elementor-widget-wrap{ counter-increment:step }
.elementor-column.step > .elementor-widget-wrap::before{
  content:counter(step, decimal-leading-zero);
  font-family:var(--f-d); font-weight:700; font-size:1.7rem;
  background:linear-gradient(100deg, var(--green), #64d38a);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  display:block; margin-bottom:8px;
}

/* leadership member cards from Elementor columns */
.elementor-column.member > .elementor-widget-wrap{
  background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:blur(16px) saturate(1.5); backdrop-filter:blur(16px) saturate(1.5);
  border:1px solid rgba(255,255,255,.85); box-shadow:var(--shadow);
  border-radius:var(--r-lg); padding:26px; align-content:start;
}
.elementor-column.member .elementor-widget-image img{
  width:96px; height:96px; border-radius:50%; object-fit:cover;
  border:4px solid rgba(255,255,255,.95); box-shadow:var(--shadow);
}
.elementor-column.member .elementor-heading-title{
  font-family:var(--f-d); font-size:1.18rem; color:var(--ink);
}
.elementor-column.member .elementor-widget-text-editor{ font-size:.88rem }

/* vision / mission glass panels from Elementor columns */
.elementor-column.cscolx > .elementor-widget-wrap{
  background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:blur(16px) saturate(1.5); backdrop-filter:blur(16px) saturate(1.5);
  border:1px solid rgba(255,255,255,.85); box-shadow:var(--shadow);
  border-radius:var(--r-lg); padding:32px; align-content:start;
}
.elementor-column.cscolx .elementor-heading-title{
  font-family:var(--f-d); font-size:1.4rem; letter-spacing:-.01em; color:var(--ink);
}

/* generic vertical rhythm for our classed Elementor sections */
.elementor-section.featsec, .elementor-section.stepsec, .elementor-section.gridsec,
.elementor-section.vidsec, .elementor-section.keyfigsec, .elementor-section.teamsec,
.elementor-section.cs-cols, .elementor-section.solrows{ position:relative }

/* video hero section must be full-bleed: neutralise Elementor section/column padding */
.elementor-section.vherosec{ padding:0 !important }
.elementor-section.vherosec > .elementor-container{ max-width:none !important; padding:0 !important; margin:0 !important }
.elementor-section.vherosec .elementor-column-wrap,
.elementor-section.vherosec .elementor-widget-wrap,
.elementor-section.vherosec .elementor-widget-html,
.elementor-section.vherosec .elementor-widget{ padding:0 !important; margin:0 !important }
.elementor-section.vherosec .elementor-widget:not(:last-child){ margin-bottom:0 !important }

/* ══════ bolder, more visual sections (About / Contact / home) ══════ */
/* Values — bold numbered cards with accent bar + hover */
/* Values — numbered principle cards.
   align-content:START, not end: every title is one word, so starting them all
   from the top puts them on a shared baseline. Bottom-aligning made a one-line
   caption ("Judged by 8 awards") shove its title down out of line with the rest. */
.keyfigsec .keyfigs{ counter-reset:kf; grid-template-columns:repeat(auto-fit,minmax(196px,1fr)); gap:14px }
.keyfig{
  counter-increment:kf; position:relative; overflow:hidden; isolation:isolate;
  display:grid !important; gap:0 !important; align-content:start !important;
  background:#fff !important;
  border:1px solid var(--line) !important; border-radius:22px !important;
  padding:24px 22px 22px !important; min-height:196px;
  transition:transform .32s cubic-bezier(.2,.7,.2,1), box-shadow .32s, border-color .32s, background .32s;
}
/* oversized ghost numeral, bled off the bottom-right corner and sat BEHIND the
   text (z-index:-1 + isolation on the card keeps it off the rest of the page) */
.keyfig::before{
  content:counter(kf,decimal-leading-zero); position:absolute; z-index:-1;
  right:-10px; bottom:-26px;
  font-family:var(--f-d); font-weight:700; font-size:5.6rem; letter-spacing:-.07em;
  line-height:1; color:var(--mint);
  transition:color .32s, transform .32s cubic-bezier(.2,.7,.2,1);
}
/* the accent rule sits under the title, in flow, so it lines up on every card */
.keyfig::after{ content:none }
.keyfig b{ font-size:1.5rem !important; color:var(--ink) !important; line-height:1.15; letter-spacing:-.02em }
.keyfig b::after{
  content:""; display:block; width:24px; height:3px; border-radius:2px;
  background:var(--green); margin:13px 0 12px; transition:width .32s cubic-bezier(.2,.7,.2,1);
}
.keyfig span{
  color:var(--ink-soft) !important; font-size:.79rem !important; line-height:1.5;
  letter-spacing:.03em !important; margin:0 !important;
}
.keyfig:hover{
  transform:translateY(-6px); background:linear-gradient(168deg,#fff,#F4FBF6) !important;
  border-color:#BBE3CB !important; box-shadow:0 24px 48px -20px rgba(7,159,76,.30);
}
.keyfig:hover::before{ color:#D3EFDE; transform:translate(-4px,-8px) }
.keyfig:hover b::after{ width:44px }

/* Vision / Mission — bold light mint panels with green blob */
.elementor-column.cscolx > .elementor-widget-wrap{
  background:linear-gradient(155deg,#f0fdf4,#dbf4e5) !important; border:1px solid #bbf7d0 !important;
  border-radius:24px !important; padding:40px 38px !important; position:relative; overflow:hidden;
  box-shadow:0 22px 48px -24px rgba(7,159,76,.3) !important;
}
.elementor-column.cscolx > .elementor-widget-wrap::after{
  content:""; position:absolute; right:-70px; top:-70px; width:240px; height:240px; border-radius:50%;
  background:radial-gradient(circle,rgba(7,159,76,.16),transparent 66%); pointer-events:none;
}
.elementor-column.cscolx .elementor-heading-title{ font-size:1.85rem !important; letter-spacing:-.02em !important }
.elementor-column.cscolx .kicker{ color:var(--green2,#068642) !important; margin-bottom:14px }
.elementor-column.cscolx p{ color:var(--ink) !important; font-size:1.02rem !important; opacity:.86 }

/* Team — bolder cards, bigger photos with green ring, hover lift, role pill */
.elementor-column.member > .elementor-widget-wrap{
  background:#fff !important; border:1px solid var(--line) !important; padding:30px 26px !important;
  transition:transform .3s cubic-bezier(.2,.6,.2,1), box-shadow .3s, border-color .3s;
}
.elementor-column.member:hover > .elementor-widget-wrap{ transform:translateY(-7px); box-shadow:0 26px 52px -22px rgba(15,23,42,.26) !important; border-color:#bbf7d0 !important }
.elementor-column.member .elementor-widget-image img{
  width:118px !important; height:118px !important; border:0 !important;
  box-shadow:0 0 0 4px #fff, 0 0 0 6px rgba(7,159,76,.22), 0 16px 30px -12px rgba(15,23,42,.28) !important; transition:box-shadow .35s;
}
.elementor-column.member:hover .elementor-widget-image img{ box-shadow:0 0 0 4px #fff, 0 0 0 7px var(--green), 0 18px 32px -12px rgba(7,159,76,.4) !important }
.elementor-column.member .elementor-heading-title{ font-size:1.34rem !important }
.elementor-column.member .lbl{ display:inline-block; background:#f0fdf4; color:#056d35 !important; padding:4px 11px; border-radius:100px; font-size:.66rem !important; letter-spacing:.08em; margin:6px 0 8px }

/* Facts / stats — bolder numbers */
.facts b, .specstrip .facts b{ font-size:1.95rem !important }

/* ══════ lead band — two columns, form beside the copy ══════ */
/* main.css makes the section full-bleed; the inner container stays boxed. */
.elementor-section.lead-band{ padding:clamp(54px,6vw,88px) 0 !important; margin:0 !important }
.elementor-section.lead-band > .elementor-container{ align-items:center !important; gap:clamp(28px,4vw,60px) }
.elementor-section.lead-band .elementor-column-wrap,
.elementor-section.lead-band .elementor-widget-wrap{ padding:0 !important }
.elementor-section.lead-band .elementor-widget:not(:last-child){ margin-bottom:0 !important }
.elementor-column.leadcopy .elementor-heading-title{ font-size:clamp(1.9rem,3.4vw,2.7rem) !important; line-height:1.1 }
@media (max-width:1024px){
  .elementor-section.lead-band > .elementor-container{ gap:34px }
  .elementor-column.leadcopy, .elementor-column.leadform{ width:100% !important }
}

/* ══════ contact: split hero (form beside the pitch) ══════ */
.elementor-section.contact-top{ padding:clamp(110px,11vw,150px) 0 clamp(56px,6vw,80px) !important; margin:0 !important }
.elementor-section.contact-top > .elementor-container{ align-items:center !important; gap:clamp(28px,4vw,56px) }
.elementor-section.contact-top .elementor-column-wrap,
.elementor-section.contact-top .elementor-widget-wrap{ padding:0 !important }
.elementor-section.contact-top .elementor-widget:not(:last-child){ margin-bottom:0 !important }
.elementor-column.ctcopy .elementor-heading-title{ font-size:clamp(2.3rem,4.6vw,3.5rem) !important; line-height:1.04 }
@media (max-width:900px){
  .elementor-column.ctcopy, .elementor-column.ctform{ width:100% !important }
  .elementor-section.contact-top > .elementor-container{ gap:34px }
}

/* ══════ about: full-bleed photo hero ══════ */
.elementor-section.aherosec{ padding:0 !important; margin:0 !important }
.elementor-section.aherosec > .elementor-container{ max-width:none !important; padding:0 !important; margin:0 !important }
.elementor-section.aherosec .elementor-column-wrap,
.elementor-section.aherosec .elementor-widget-wrap,
.elementor-section.aherosec .elementor-widget-html,
.elementor-section.aherosec .elementor-widget{ padding:0 !important; margin:0 !important }
.elementor-section.aherosec .elementor-widget:not(:last-child){ margin-bottom:0 !important }
.ahero img{ height:auto }
/* roster images must beat Elementor's global img{height:auto} */
.rfeat__ph img{ height:100% !important }
.rrow__ph{ height:74px !important }
/* team cards/modal + news cards must beat Elementor's global img{height:auto} */
.tmcard__ph img, .tmodal__ph img, .ncard__ph img{ height:100% !important }
