/* ==========================================================================
   GENERAT de tools/gen-elementor-css.mjs — nu edita direct.
   Reruleaza:
     cd tools && node gen-elementor-css.mjs ../../app/globals.css \
       ../provision/elementor.json ../theme/vitriol/assets/css/elementor.css

   Punti intre DOM-ul Elementor si design system-ul din style.css.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Valorile implicite ale kitului Elementor (latime 1140px, spatiere 20px
   intre widgeturi, tipografie proprie) nu au ce cauta peste design.
   -------------------------------------------------------------------------- */
.elementor-element{
  --container-max-width:none;
  --widgets-spacing:0px 0px;
  --widgets-spacing-row:0px;
  --widgets-spacing-column:0px;
  --kit-widget-spacing:0px;
}
.elementor-widget:not(:last-child){margin-block-end:0}

/* Fiecare container Elementor vine implicit cu padding 10px, latime 100%,
   flex pe coloana si gap propriu. In design, toate acestea sunt decise de
   clasele lui (.wrap, .section, .cards …). Neutralizarea trebuie sa aiba
   aceeasi greutate ca regulile Elementor (o clasa), altfel nu are efect —
   de aceea NU e in :where(). Regulile designului, re-afirmate mai jos in
   acelasi fisier, o suprascriu la randul lor. */
.e-con{
  display:block;
  padding:0;
  gap:0;
  width:auto;
  max-width:none;
  min-height:0;
  flex-direction:row;
  --padding-block-start:0px;--padding-block-end:0px;
  --padding-inline-start:0px;--padding-inline-end:0px;
}

/* --------------------------------------------------------------------------
   2. Macheta fiecarui container o decide designul, nu flex-ul Elementor.
   Valorile sunt masurate din globals.css (vezi antetul).
   -------------------------------------------------------------------------- */
:where(.e-con).about{display:block}
:where(.e-con).acopy{display:block}
:where(.e-con).article-figure{display:block}
:where(.e-con).artrow{display:grid}
:where(.e-con).arts{display:flex}
:where(.e-con).bigproj{display:flex}
:where(.e-con).bigrow{display:grid}
:where(.e-con).bigrow-body{display:block}
:where(.e-con).bigrow-media{display:block}
:where(.e-con).blog-grid{display:grid}
:where(.e-con).box{display:block}
:where(.e-con).c1{display:block}
:where(.e-con).c2{display:block}
:where(.e-con).card{display:flex}
:where(.e-con).cards{display:grid}
:where(.e-con).cbody{display:block}
:where(.e-con).chip{display:block}
:where(.e-con).cinfo{display:flex}
:where(.e-con).cinfo-item{display:flex}
:where(.e-con).contact-grid{display:grid}
:where(.e-con).ctaband{display:block}
:where(.e-con).dirs-head{display:flex}
:where(.e-con).duo{display:grid}
:where(.e-con).faq{display:flex}
:where(.e-con).filters{display:flex}
:where(.e-con).gallery{display:grid}
:where(.e-con).grid{display:block}
:where(.e-con).hero{display:block}
:where(.e-con).hero-art{display:block}
:where(.e-con).hero-copy{display:block}
:where(.e-con).hero-cta{display:flex}
:where(.e-con).hero-meta{display:flex}
:where(.e-con).ic{display:block}
:where(.e-con).impact{display:block}
:where(.e-con).inv{display:flex}
:where(.e-con).inv-grid{display:grid}
:where(.e-con).involve{display:block}
:where(.e-con).map-ph{display:block}
:where(.e-con).mbody{display:block}
:where(.e-con).media-left{display:block}
:where(.e-con).member{display:flex}
:where(.e-con).metarow{display:block}
:where(.e-con).news{display:block}
:where(.e-con).page-head{display:block}
:where(.e-con).partners{display:block}
:where(.e-con).ph-flex{display:block}
:where(.e-con).ph-stats{display:block}
:where(.e-con).pillar{display:block}
:where(.e-con).pillars{display:grid}
:where(.e-con).plogos{display:flex}
:where(.e-con).post{display:flex}
:where(.e-con).prose{display:block}
:where(.e-con).row{display:block}
:where(.e-con).section{display:block}
:where(.e-con).split{display:grid}
:where(.e-con).split-media{display:block}
:where(.e-con).stat{display:block}
:where(.e-con).stats{display:grid}
:where(.e-con).team{display:grid}
:where(.e-con).timeline{display:flex}
:where(.e-con).tl-item{display:block}
:where(.e-con).val{display:block}
:where(.e-con).values{display:grid}
:where(.e-con).wrap{display:block}

/* Declaratiile designului, re-afirmate dupa foile Elementor. */
:where(.elementor-element).wrap{max-width: var(--maxw); margin: 0px auto; padding-inline: var(--gut);}
:where(.elementor-element).section{padding-block: clamp(64px, 9vw, 128px);}
:where(.elementor-element).eyebrow{font-family: var(--sans); font-weight: 600; font-size: 12.5px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--carmin); display: inline-flex; align-items: center; gap: 11px;}
:where(.elementor-element).display{font-size: clamp(33px, 4.6vw, 62px); line-height: 1.06; letter-spacing: -0.018em;}
:where(.elementor-element).h2{font-size: clamp(31px, 4.2vw, 54px);}
:where(.elementor-element).h3{font-size: clamp(22px, 2.4vw, 30px); line-height: 1.12;}
:where(.elementor-element).lead{font-size: clamp(18px, 1.5vw, 21px); color: var(--ink-2); max-width: 62ch; text-wrap: pretty;}
:where(.elementor-element).subtle{color: var(--muted);}
:where(.elementor-element).btn{display: inline-flex; align-items: center; justify-content: center; gap: 9px; font-family: var(--sans); font-weight: 600; font-size: 15px; letter-spacing: 0.01em; padding: 14px 26px; border-radius: 999px; line-height: 1; transition: transform 0.25s cubic-bezier(0.2, 0.7, 0.3, 1), background 0.25s, color 0.25s, box-shadow 0.25s; white-space: nowrap;}
:where(.elementor-element).btn-primary{background: var(--carmin); color: rgb(255, 255, 255); box-shadow: rgba(226, 21, 74, 0.7) 0px 10px 24px -12px;}
:where(.elementor-element).btn-ghost{background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--line);}
:where(.elementor-element).btn-outline-light{background: transparent; color: rgb(255, 255, 255); box-shadow: rgba(255, 255, 255, 0.4) 0px 0px 0px 1.5px inset;}
:where(.elementor-element).txtlink{display: inline-flex; align-items: center; gap: 7px; font-weight: 600; font-size: 15px; color: var(--carmin); border-bottom: 1.5px solid transparent; padding-bottom: 2px; transition: border-color 0.25s, gap 0.25s;}
:where(.elementor-element).ph{position: relative; background-position-x: ; background-position-y: ; background-size: ; background-repeat: ; background-attachment: ; background-origin: ; background-clip: ; background-color: ; overflow: hidden; border-radius: var(--r); background-image: repeating-linear-gradient(135deg, transparent 0px, transparent 13px, rgba(21, 32, 59, 0.043) 13px, rgba(21, 32, 59, 0.043) 14px);}
:where(.elementor-element).hero{position: relative; padding-top: clamp(48px, 7vw, 96px); padding-bottom: clamp(40px, 6vw, 80px);}
:where(.elementor-element).hero-cta{display: flex; flex-wrap: wrap; gap: 13px; margin-top: 30px;}
:where(.elementor-element).hero-meta{display: flex; gap: 26px; margin-top: 38px; flex-wrap: wrap;}
:where(.elementor-element).hero-art{position: relative;}
:where(.elementor-element).about{background: var(--paper-2);}
:where(.elementor-element).pillars{display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden;}
:where(.elementor-element).pillar{background: var(--paper-2); padding: 26px 24px; transition: background 0.25s;}
:where(.elementor-element).dirs-head{display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; flex-wrap: wrap; margin-bottom: 46px;}
:where(.elementor-element).cards{display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;}
:where(.elementor-element).card{background: var(--paper-2); border: 1px solid var(--line-soft); border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column; transition: transform 0.3s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.3s;}
:where(.elementor-element).impact{background: var(--ink); color: rgb(255, 255, 255); position: relative; overflow: hidden;}
:where(.elementor-element).stats{display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: var(--r); overflow: hidden; margin-top: 34px;}
:where(.elementor-element).stat{background: var(--ink); padding: 30px 26px;}
:where(.elementor-element).places{display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px;}
:where(.elementor-element).involve{background: var(--paper-3);}
:where(.elementor-element).inv-grid{display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 46px;}
:where(.elementor-element).inv{background: var(--paper-2); border-radius: var(--r); padding: 34px 30px; border: 1px solid var(--line-soft); display: flex; flex-direction: column; transition: transform 0.3s, box-shadow 0.3s;}
:where(.elementor-element).blog-grid{display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 46px;}
:where(.elementor-element).post{display: flex; flex-direction: column;}
:where(.elementor-element).news{background: var(--paper-2);}
:where(.elementor-element).nl-form{display: flex; flex-direction: column; gap: 12px;}
:where(.elementor-element).partners{border-top: 1px solid var(--line); background: var(--paper);}
:where(.elementor-element).plogos{display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: clamp(28px, 5vw, 64px);}
:where(.elementor-element).page-head{background: var(--paper-2); border-bottom: 1px solid var(--line-soft); position: relative; overflow: hidden;}
:where(.elementor-element).crumbs{display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--muted); font-weight: 500; margin-bottom: 20px;}
:where(.elementor-element).lead-quote{font-family: var(--serif); font-style: italic; font-size: clamp(22px, 2.6vw, 32px); line-height: 1.34; color: var(--ink); border-left: 3px solid var(--carmin); padding-left: 26px; margin: 8px 0px; max-width: 24ch; text-wrap: pretty;}
:where(.elementor-element).article-figure{margin-top: 40px;}
:where(.elementor-element).split{display: grid; grid-template-columns: 1fr 1fr; gap: clamp(34px, 5vw, 72px); align-items: center;}
:where(.elementor-element).duo{display: grid; grid-template-columns: 1fr 1fr; gap: 22px;}
:where(.elementor-element).team{display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;}
:where(.elementor-element).member{background: var(--paper-2); border: 1px solid var(--line-soft); border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column; transition: transform 0.3s, box-shadow 0.3s;}
:where(.elementor-element).filters{display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px;}
:where(.elementor-element).bigproj{display: flex; flex-direction: column; gap: 28px;}
:where(.elementor-element).bigrow{display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(28px, 4vw, 56px); align-items: center; background: var(--paper-2); border: 1px solid var(--line-soft); border-radius: var(--r); overflow: hidden; transition: box-shadow 0.3s;}
:where(.elementor-element).bigrow-body{padding: clamp(28px, 4vw, 52px);}
:where(.elementor-element).timeline{position: relative; padding-left: 34px; display: flex; flex-direction: column; gap: 34px;}
:where(.elementor-element).tl-item{position: relative;}
:where(.elementor-element).values{display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden;}
:where(.elementor-element).val{background: var(--paper-2); padding: 30px 28px;}
:where(.elementor-element).contact-grid{display: grid; grid-template-columns: 1fr 1fr; gap: clamp(34px, 5vw, 64px); align-items: start;}
:where(.elementor-element).cform{display: flex; flex-direction: column; gap: 16px;}
:where(.elementor-element).cinfo{display: flex; flex-direction: column; gap: 14px;}
:where(.elementor-element).cinfo-item{display: flex; gap: 16px; align-items: flex-start; background: var(--paper-2); border: 1px solid var(--line-soft); border-radius: var(--r); padding: 22px 24px;}
:where(.elementor-element).map-ph{height: 240px; border-radius: var(--r); margin-top: 4px;}
:where(.elementor-element).faq{display: flex; flex-direction: column; gap: 12px; max-width: 820px; margin: 0px auto;}
:where(.elementor-element).ctaband{background: var(--ink); color: rgb(255, 255, 255); text-align: center;}
:where(.elementor-element).arts{display: flex; flex-direction: column; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden;}
:where(.elementor-element).artrow{background: var(--paper-2); display: grid; grid-template-columns: 64px 1fr auto; gap: 26px; align-items: center; padding: 28px 32px; transition: background 0.25s;}
:where(.elementor-element).gallery{display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;}
@media (max-width: 1000px){
  :where(.elementor-element).hero-art{order: -1; max-width: 460px;}
  :where(.elementor-element).inv-grid{grid-template-columns: 1fr;}
}
@media (max-width: 660px){
  :where(.elementor-element).hero-meta{gap: 20px;}
}
@media (max-width: 1000px){
  :where(.elementor-element).artrow{grid-template-columns: 48px 1fr; gap: 18px;}
}
@media (max-width: 660px){
  :where(.elementor-element).lead-quote{font-size: 21px; padding-left: 18px;}
}
@media (max-width: 1000px){
  :where(.elementor-element).gallery{grid-template-columns: 1fr 1fr;}
}
@media (max-width: 560px){
  :where(.elementor-element).gallery{grid-template-columns: 1fr;}
}

/* Macheta flex, trecuta prin variabilele Elementor (vezi generatorul). */
.e-con.e-flex{--flex-direction:row;--row-gap:0px;--column-gap:0px}
.eyebrow.elementor-element.e-flex,.eyebrow.elementor-widget{--align-items:center;--row-gap:11px;--column-gap:11px}
.eyebrow.center.elementor-element.e-flex,.eyebrow.center.elementor-widget{--justify-content:center}
.btn.elementor-element.e-flex,.btn.elementor-widget{--align-items:center;--justify-content:center;--row-gap:9px;--column-gap:9px}
.txtlink.elementor-element.e-flex,.txtlink.elementor-widget{--align-items:center;--row-gap:7px;--column-gap:7px}
.txtlink:hover.elementor-element.e-flex,.txtlink:hover.elementor-widget{--row-gap:11px;--column-gap:11px}
.topbar .wrap.elementor-element.e-flex,.topbar .wrap.elementor-widget{--align-items:center;--justify-content:space-between;--row-gap:20px;--column-gap:20px}
.topbar a.elementor-element.e-flex,.topbar a.elementor-widget{--align-items:center;--row-gap:7px;--column-gap:7px}
.topbar .tb-left.elementor-element.e-flex,.topbar .tb-left.elementor-widget{--row-gap:26px;--column-gap:26px}
.topbar .tb-right.elementor-element.e-flex,.topbar .tb-right.elementor-widget{--align-items:center;--row-gap:18px;--column-gap:18px}
.topbar .lang.elementor-element.e-flex,.topbar .lang.elementor-widget{--align-items:center;--row-gap:4px;--column-gap:4px}
.topbar .socs.elementor-element.e-flex,.topbar .socs.elementor-widget{--row-gap:14px;--column-gap:14px}
.nav .wrap.elementor-element.e-flex,.nav .wrap.elementor-widget{--align-items:center;--row-gap:28px;--column-gap:28px}
.brand.elementor-element.e-flex,.brand.elementor-widget{--align-items:center;--row-gap:13px;--column-gap:13px}
.navlinks.elementor-element.e-flex,.navlinks.elementor-widget{--align-items:center;--row-gap:3px;--column-gap:3px}
.nav-cta.elementor-element.e-flex,.nav-cta.elementor-widget{--align-items:center;--row-gap:10px;--column-gap:10px}
.burger.elementor-element.e-flex,.burger.elementor-widget{--align-items:center;--justify-content:center}
.mobile-menu.elementor-element.e-flex,.mobile-menu.elementor-widget{--flex-direction:column}
.mobile-menu .mm-top.elementor-element.e-flex,.mobile-menu .mm-top.elementor-widget{--align-items:center;--justify-content:space-between}
.mobile-menu nav.elementor-element.e-flex,.mobile-menu nav.elementor-widget{--flex-direction:column;--row-gap:2px;--column-gap:2px}
.mobile-menu .mm-cta.elementor-element.e-flex,.mobile-menu .mm-cta.elementor-widget{--flex-direction:column;--row-gap:12px;--column-gap:12px}
.mm-close.elementor-element.e-flex,.mm-close.elementor-widget{--align-items:center;--justify-content:center}
.hero .wrap.elementor-element.e-flex,.hero .wrap.elementor-widget{--align-items:center;--row-gap:clamp(32px, 5vw, 72px);--column-gap:clamp(32px, 5vw, 72px)}
.hero-cta.elementor-element.e-flex,.hero-cta.elementor-widget{--flex-wrap:wrap;--row-gap:13px;--column-gap:13px}
.hero-meta.elementor-element.e-flex,.hero-meta.elementor-widget{--flex-wrap:wrap;--row-gap:26px;--column-gap:26px}
.hero-meta div.elementor-element.e-flex,.hero-meta div.elementor-widget{--flex-direction:column}
.hero-art .chip.elementor-element.e-flex,.hero-art .chip.elementor-widget{--align-items:center;--row-gap:12px;--column-gap:12px}
.about .grid.elementor-element.e-flex,.about .grid.elementor-widget{--align-items:center;--row-gap:clamp(34px, 5vw, 80px);--column-gap:clamp(34px, 5vw, 80px)}
.pillars.elementor-element.e-flex,.pillars.elementor-widget{--row-gap:1px;--column-gap:1px}
.pillar .ic.elementor-element.e-flex,.pillar .ic.elementor-widget{--align-items:center;--justify-content:center}
.dirs-head.elementor-element.e-flex,.dirs-head.elementor-widget{--flex-wrap:wrap;--align-items:flex-end;--justify-content:space-between;--row-gap:30px;--column-gap:30px}
.cards.elementor-element.e-flex,.cards.elementor-widget{--row-gap:22px;--column-gap:22px}
.card.elementor-element.e-flex,.card.elementor-widget{--flex-direction:column}
.card .cbody.elementor-element.e-flex,.card .cbody.elementor-widget{--flex-direction:column}
.card .ci.elementor-element.e-flex,.card .ci.elementor-widget{--align-items:center;--row-gap:10px;--column-gap:10px}
.impact .grid.elementor-element.e-flex,.impact .grid.elementor-widget{--align-items:center;--row-gap:clamp(40px, 6vw, 90px);--column-gap:clamp(40px, 6vw, 90px)}
.stats.elementor-element.e-flex,.stats.elementor-widget{--row-gap:1px;--column-gap:1px}
.places.elementor-element.e-flex,.places.elementor-widget{--flex-wrap:wrap;--row-gap:10px;--column-gap:10px}
.proj.elementor-element.e-flex,.proj.elementor-widget{--row-gap:24px;--column-gap:24px}
.pcard.elementor-element.e-flex,.pcard.elementor-widget{--flex-direction:column}
.pcard .pbody.elementor-element.e-flex,.pcard .pbody.elementor-widget{--flex-direction:column}
.inv-grid.elementor-element.e-flex,.inv-grid.elementor-widget{--row-gap:22px;--column-gap:22px}
.inv.elementor-element.e-flex,.inv.elementor-widget{--flex-direction:column}
.inv .ic.elementor-element.e-flex,.inv .ic.elementor-widget{--align-items:center;--justify-content:center}
.inv ul.elementor-element.e-flex,.inv ul.elementor-widget{--flex-direction:column;--row-gap:9px;--column-gap:9px}
.inv li.elementor-element.e-flex,.inv li.elementor-widget{--row-gap:10px;--column-gap:10px}
.donate .amts.elementor-element.e-flex,.donate .amts.elementor-widget{--flex-wrap:wrap;--justify-content:center;--row-gap:12px;--column-gap:12px}
.donate .dnote.elementor-element.e-flex,.donate .dnote.elementor-widget{--align-items:center;--justify-content:center;--row-gap:8px;--column-gap:8px}
.blog-grid.elementor-element.e-flex,.blog-grid.elementor-widget{--row-gap:24px;--column-gap:24px}
.post.elementor-element.e-flex,.post.elementor-widget{--flex-direction:column}
.post .pmeta.elementor-element.e-flex,.post .pmeta.elementor-widget{--align-items:center;--row-gap:10px;--column-gap:10px}
.news .box.elementor-element.e-flex,.news .box.elementor-widget{--align-items:center;--row-gap:40px;--column-gap:40px}
.nl-form.elementor-element.e-flex,.nl-form.elementor-widget{--flex-direction:column;--row-gap:12px;--column-gap:12px}
.nl-row.elementor-element.e-flex,.nl-row.elementor-widget{--row-gap:10px;--column-gap:10px}
.plogos.elementor-element.e-flex,.plogos.elementor-widget{--flex-wrap:wrap;--align-items:center;--justify-content:center;--row-gap:clamp(28px, 5vw, 64px);--column-gap:clamp(28px, 5vw, 64px)}
.foot .fgrid.elementor-element.e-flex,.foot .fgrid.elementor-widget{--row-gap:40px;--column-gap:40px}
.foot ul.elementor-element.e-flex,.foot ul.elementor-widget{--flex-direction:column;--row-gap:11px;--column-gap:11px}
.foot .fsoc.elementor-element.e-flex,.foot .fsoc.elementor-widget{--row-gap:12px;--column-gap:12px}
.foot .fsoc a.elementor-element.e-flex,.foot .fsoc a.elementor-widget{--align-items:center;--justify-content:center}
.foot .fbot.elementor-element.e-flex,.foot .fbot.elementor-widget{--flex-wrap:wrap;--justify-content:space-between;--row-gap:20px;--column-gap:20px}
.crumbs.elementor-element.e-flex,.crumbs.elementor-widget{--align-items:center;--row-gap:9px;--column-gap:9px}
.page-head .ph-flex.elementor-element.e-flex,.page-head .ph-flex.elementor-widget{--align-items:end;--row-gap:48px;--column-gap:48px}
.page-head .ph-stats.elementor-element.e-flex,.page-head .ph-stats.elementor-widget{--flex-wrap:wrap;--justify-content:flex-end;--row-gap:30px;--column-gap:30px}
.split.elementor-element.e-flex,.split.elementor-widget{--align-items:center;--row-gap:clamp(34px, 5vw, 72px);--column-gap:clamp(34px, 5vw, 72px)}
.duo.elementor-element.e-flex,.duo.elementor-widget{--row-gap:22px;--column-gap:22px}
.duo .box .ic.elementor-element.e-flex,.duo .box .ic.elementor-widget{--align-items:center;--justify-content:center}
.team.elementor-element.e-flex,.team.elementor-widget{--row-gap:22px;--column-gap:22px}
.member.elementor-element.e-flex,.member.elementor-widget{--flex-direction:column}
.member .mtag.elementor-element.e-flex,.member .mtag.elementor-widget{--align-items:center;--row-gap:6px;--column-gap:6px}
.filters.elementor-element.e-flex,.filters.elementor-widget{--flex-wrap:wrap;--row-gap:10px;--column-gap:10px}
.bigproj.elementor-element.e-flex,.bigproj.elementor-widget{--flex-direction:column;--row-gap:28px;--column-gap:28px}
.bigrow.elementor-element.e-flex,.bigrow.elementor-widget{--align-items:center;--row-gap:clamp(28px, 4vw, 56px);--column-gap:clamp(28px, 4vw, 56px)}
.bigrow .metarow.elementor-element.e-flex,.bigrow .metarow.elementor-widget{--flex-wrap:wrap;--row-gap:22px;--column-gap:22px}
.bigrow .metarow div.elementor-element.e-flex,.bigrow .metarow div.elementor-widget{--flex-direction:column;--row-gap:3px;--column-gap:3px}
.timeline.elementor-element.e-flex,.timeline.elementor-widget{--flex-direction:column;--row-gap:34px;--column-gap:34px}
.values.elementor-element.e-flex,.values.elementor-widget{--row-gap:1px;--column-gap:1px}
.contact-grid.elementor-element.e-flex,.contact-grid.elementor-widget{--align-items:start;--row-gap:clamp(34px, 5vw, 64px);--column-gap:clamp(34px, 5vw, 64px)}
.cform.elementor-element.e-flex,.cform.elementor-widget{--flex-direction:column;--row-gap:16px;--column-gap:16px}
.field.elementor-element.e-flex,.field.elementor-widget{--flex-direction:column;--row-gap:7px;--column-gap:7px}
.field-row.elementor-element.e-flex,.field-row.elementor-widget{--row-gap:16px;--column-gap:16px}
.cinfo.elementor-element.e-flex,.cinfo.elementor-widget{--flex-direction:column;--row-gap:14px;--column-gap:14px}
.cinfo-item.elementor-element.e-flex,.cinfo-item.elementor-widget{--align-items:flex-start;--row-gap:16px;--column-gap:16px}
.cinfo-item .ic.elementor-element.e-flex,.cinfo-item .ic.elementor-widget{--align-items:center;--justify-content:center}
.faq.elementor-element.e-flex,.faq.elementor-widget{--flex-direction:column;--row-gap:12px;--column-gap:12px}
.qa summary.elementor-element.e-flex,.qa summary.elementor-widget{--align-items:center;--justify-content:space-between;--row-gap:20px;--column-gap:20px}
.ctaband .row.elementor-element.e-flex,.ctaband .row.elementor-widget{--flex-wrap:wrap;--justify-content:center;--row-gap:14px;--column-gap:14px}
.arts.elementor-element.e-flex,.arts.elementor-widget{--flex-direction:column;--row-gap:1px;--column-gap:1px}
.artrow.elementor-element.e-flex,.artrow.elementor-widget{--align-items:center;--row-gap:26px;--column-gap:26px}
.artrow .atags.elementor-element.e-flex,.artrow .atags.elementor-widget{--flex-wrap:wrap;--justify-content:flex-end;--row-gap:8px;--column-gap:8px}
.proj-list.elementor-element.e-flex,.proj-list.elementor-widget{--flex-direction:column;--row-gap:11px;--column-gap:11px}
.proj-list li.elementor-element.e-flex,.proj-list li.elementor-widget{--row-gap:12px;--column-gap:12px}
.gallery.elementor-element.e-flex,.gallery.elementor-widget{--row-gap:14px;--column-gap:14px}
@media (max-width: 1000px){
  .hero .wrap.elementor-element.e-flex,.hero .wrap.elementor-widget{--row-gap:40px;--column-gap:40px}
  .about .grid.elementor-element.e-flex,.about .grid.elementor-widget,.impact .grid.elementor-element.e-flex,.impact .grid.elementor-widget,.news .box.elementor-element.e-flex,.news .box.elementor-widget{--row-gap:36px;--column-gap:36px}
  .split.elementor-element.e-flex,.split.elementor-widget,.duo.elementor-element.e-flex,.duo.elementor-widget,.contact-grid.elementor-element.e-flex,.contact-grid.elementor-widget,.bigrow.elementor-element.e-flex,.bigrow.elementor-widget{--row-gap:30px;--column-gap:30px}
  .page-head .ph-flex.elementor-element.e-flex,.page-head .ph-flex.elementor-widget{--row-gap:28px;--column-gap:28px}
  .page-head .ph-stats.elementor-element.e-flex,.page-head .ph-stats.elementor-widget{--justify-content:flex-start}
  .artrow.elementor-element.e-flex,.artrow.elementor-widget{--row-gap:18px;--column-gap:18px}
  .artrow .atags.elementor-element.e-flex,.artrow .atags.elementor-widget{--justify-content:flex-start}
}
@media (max-width: 660px){
  .hero-meta.elementor-element.e-flex,.hero-meta.elementor-widget{--row-gap:20px;--column-gap:20px}
  .nl-row.elementor-element.e-flex,.nl-row.elementor-widget{--flex-direction:column}
}
@media (max-width: 440px){
  .donate .amts.elementor-element.e-flex,.donate .amts.elementor-widget{--row-gap:8px;--column-gap:8px}
}

/* --------------------------------------------------------------------------
   3. Invelisul de widget devine transparent: un titlu ramane un titlu,
   un buton ramane inline. Fara asta, fiecare widget ar fi un bloc pe toata
   latimea si machetele in grid/flex ar numara invelisuri, nu continut.
   -------------------------------------------------------------------------- */
/* Invelisul interior dispare din macheta; cel exterior ramane o cutie, ca in
   markup-ul original. Daca l-am face si pe el transparent, marginile scrise
   de design pe clasele widgetului (ex. .hero-meta .l) nu ar mai avea efect. */
:where(.elementor-widget)>.elementor-widget-container{display:contents}
:where(.elementor-widget){display:block}

/* Clasele de tipografie ale designului (.display, .h2, .eyebrow, .n …) stau
   pe invelisul widgetului, dar elementul dinauntru este un <h1>/<h2>, care
   isi ia dimensiunea din stilul implicit al browserului (2em) si ar ignora-o.
   Il facem sa mosteneasca marimea, nu si familia sau greutatea: acelea vin
   mai departe din regulile h1,h2,h3 ale designului. */
:where(.elementor-widget-heading) .elementor-heading-title{
  font-size:inherit;letter-spacing:inherit;font-style:inherit;color:inherit;
}

/* --------------------------------------------------------------------------
   4. Butonul Elementor preia infatisarea .btn / .txtlink a designului.
   -------------------------------------------------------------------------- */
:where(.elementor-widget-button) .elementor-button{
  font:inherit;letter-spacing:inherit;
  background:none;border:none;border-radius:inherit;box-shadow:none;
  padding:0;display:inline-flex;align-items:center;gap:inherit;
}
:where(.elementor-widget-button) .elementor-button:hover{background:none}
:where(.elementor-widget-button) .elementor-button-content-wrapper{display:contents}

/* Culoarea textului se ia de la clasa .btn a designului, aflata pe invelis.
   O impunem pe fiecare nod, nu ne bazam pe mostenire: Elementor coloreaza
   butonul si prin -webkit-text-fill-color / background-clip:text, mecanisme
   pe care simpla mostenire a culorii nu le anuleaza — iar Firefox le respecta
   chiar si acolo unde Chromium le ignora, de unde textul alb pe alb. */
:where(.elementor-widget-button) .elementor-button,
:where(.elementor-widget-button) .elementor-button-content-wrapper,
:where(.elementor-widget-button) .elementor-button-text,
:where(.elementor-widget-button) .elementor-button-icon,
:where(.elementor-widget-button) .elementor-button:hover .elementor-button-text{
  color:inherit;
  -webkit-text-fill-color:currentColor;
  background-image:none;
  -webkit-background-clip:border-box;
  background-clip:border-box;
}

/* Elementor intinde fiecare widget pe toata latimea containerului. In design
   latimea o da continutul (butoane, supratitluri) sau blocul parinte. */
:where(.e-con)>:where(.elementor-widget){width:auto;max-width:none}

/* Culoarea textului de buton, luata din design si impusa pe fiecare nod
   intern al widgetului Elementor.

   Nu ne bazam pe mostenirea culorii plus currentColor: in Firefox
   lantul se rupea si ambele butoane ieseau cu text alb, invizibil pe fundal
   deschis. Valorile de mai jos vin direct din globals.css. */
:where(.elementor-widget).eyebrow .elementor-button,
:where(.elementor-widget).eyebrow .elementor-button-content-wrapper,
:where(.elementor-widget).eyebrow .elementor-button-text,
:where(.elementor-widget).eyebrow .elementor-button-icon{color:var(--carmin);-webkit-text-fill-color:var(--carmin)}
:where(.elementor-widget).lead .elementor-button,
:where(.elementor-widget).lead .elementor-button-content-wrapper,
:where(.elementor-widget).lead .elementor-button-text,
:where(.elementor-widget).lead .elementor-button-icon{color:var(--ink-2);-webkit-text-fill-color:var(--ink-2)}
:where(.elementor-widget).subtle .elementor-button,
:where(.elementor-widget).subtle .elementor-button-content-wrapper,
:where(.elementor-widget).subtle .elementor-button-text,
:where(.elementor-widget).subtle .elementor-button-icon{color:var(--muted);-webkit-text-fill-color:var(--muted)}
:where(.elementor-widget).btn-primary .elementor-button,
:where(.elementor-widget).btn-primary .elementor-button-content-wrapper,
:where(.elementor-widget).btn-primary .elementor-button-text,
:where(.elementor-widget).btn-primary .elementor-button-icon{color:rgb(255, 255, 255);-webkit-text-fill-color:rgb(255, 255, 255)}
:where(.elementor-widget).btn-ghost .elementor-button,
:where(.elementor-widget).btn-ghost .elementor-button-content-wrapper,
:where(.elementor-widget).btn-ghost .elementor-button-text,
:where(.elementor-widget).btn-ghost .elementor-button-icon{color:var(--ink);-webkit-text-fill-color:var(--ink)}
:where(.elementor-widget).btn-outline-light .elementor-button,
:where(.elementor-widget).btn-outline-light .elementor-button-content-wrapper,
:where(.elementor-widget).btn-outline-light .elementor-button-text,
:where(.elementor-widget).btn-outline-light .elementor-button-icon{color:rgb(255, 255, 255);-webkit-text-fill-color:rgb(255, 255, 255)}
:where(.elementor-widget).txtlink .elementor-button,
:where(.elementor-widget).txtlink .elementor-button-content-wrapper,
:where(.elementor-widget).txtlink .elementor-button-text,
:where(.elementor-widget).txtlink .elementor-button-icon{color:var(--carmin);-webkit-text-fill-color:var(--carmin)}
:where(.elementor-widget).impact .elementor-button,
:where(.elementor-widget).impact .elementor-button-content-wrapper,
:where(.elementor-widget).impact .elementor-button-text,
:where(.elementor-widget).impact .elementor-button-icon{color:rgb(255, 255, 255);-webkit-text-fill-color:rgb(255, 255, 255)}
:where(.elementor-widget).crumbs .elementor-button,
:where(.elementor-widget).crumbs .elementor-button-content-wrapper,
:where(.elementor-widget).crumbs .elementor-button-text,
:where(.elementor-widget).crumbs .elementor-button-icon{color:var(--muted);-webkit-text-fill-color:var(--muted)}
:where(.elementor-widget).lead-quote .elementor-button,
:where(.elementor-widget).lead-quote .elementor-button-content-wrapper,
:where(.elementor-widget).lead-quote .elementor-button-text,
:where(.elementor-widget).lead-quote .elementor-button-icon{color:var(--ink);-webkit-text-fill-color:var(--ink)}
:where(.elementor-widget).ctaband .elementor-button,
:where(.elementor-widget).ctaband .elementor-button-content-wrapper,
:where(.elementor-widget).ctaband .elementor-button-text,
:where(.elementor-widget).ctaband .elementor-button-icon{color:rgb(255, 255, 255);-webkit-text-fill-color:rgb(255, 255, 255)}

/* --------------------------------------------------------------------------
   5. Slotul de imagine (.ph): imaginea umple cadrul, ca in design.
   Selectorul NU e in :where() — trebuie sa cantareasca cel putin cat
   .elementor-widget-image img al Elementor, altfel acela castiga.
   -------------------------------------------------------------------------- */
.ph img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;border-radius:inherit;
}
.ph.elementor-widget-image::after{content:none}

/* --------------------------------------------------------------------------
   6. Cazuri punctuale.
   In design, textul cardului creste ca sa impinga linkul in josul cutiei
   (.card p{flex:1}). Acum textul e invelit intr-un widget, iar cel care
   trebuie sa creasca este invelisul, nu paragraful din el.
   -------------------------------------------------------------------------- */
.card .cbody>.elementor-widget-text-editor,
.pcard .pbody>.elementor-widget-text-editor,
.inv>.elementor-widget-text-editor,
.member .mbody>.elementor-widget-text-editor{flex:1}

/* Elementor impune height:auto pe imagini, la aceeasi specificitate ca
   regulile designului, dar se incarca dupa ele — asa ca logo-urile
   partenerilor se afisau la marimea lor naturala. */
.plogos img{height:50px;width:auto;max-width:none}
.foot .fbrand img{height:54px;width:auto}

/* --------------------------------------------------------------------------
   7. Editorul Elementor.

   Designul ascunde elementele pana intra in ecran (.reveal{opacity:0}), iar
   clasa .in o adauga scriptul temei. In previzualizarea din editor scriptul
   nu apuca sa ruleze peste continutul re-randat, asa ca pagina ramanea alba
   desi toate elementele existau. In editor le aratam neconditionat.
   -------------------------------------------------------------------------- */
.elementor-editor-active .reveal,
body[data-elementor-device-mode] .reveal{opacity:1;transform:none}
.elementor-editor-active .e-con:empty{min-height:40px}
.elementor-editor-active :where(.elementor-widget){display:block}

/* --------------------------------------------------------------------------
   8. Bara de administrare WordPress este fixa peste pagina; antetul lipicios
   trebuie sa se opreasca sub ea, nu dedesubt.
   -------------------------------------------------------------------------- */
body.admin-bar header.nav{top:32px}
@media screen and (max-width:782px){body.admin-bar header.nav{top:46px}}
