/*
 * GENERATED by scripts/port-design.sh from the designer's mockup
 * (example/assets/css/style.css). Do not edit by hand — re-run the script
 * after a design update. CMS additions live in ejhk-cms.css.
 */
/* ==========================================================================
   Eesti Jäätmehoolduskeskus — avalehe stiil
   Bootstrap 5.3 + kohandused
   ========================================================================== */

:root {
  --ej-forest: #0E3B2E;
  --ej-forest-2: #145241;
  --ej-green: #2E9E5B;
  --ej-leaf: #4CC27A;
  --ej-lime: #B8E05A;
  --ej-cream: #F4F7EF;
  --ej-sand: #E8F3DC;
  --ej-ink: #14231C;
  --ej-muted: #5B6B62;
  --ej-radius: 1.25rem;
  --ej-shadow: 0 18px 40px -18px rgba(14, 59, 46, .35);

  /* Jäätmeliikide värvid */
  --ej-bio: #8B5E3C;
  --ej-pakend: #F2C230;
  --ej-paber: #2F7FD1;
  --ej-klaas: #2E9E5B;
  --ej-ohtlik: #D9453B;
  --ej-sega: #4A5550;

  --bs-body-font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --bs-body-color: var(--ej-ink);
  --bs-link-color-rgb: 46, 158, 91;
  --bs-link-hover-color-rgb: 14, 59, 46;
}

html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { background: #fff; -webkit-font-smoothing: antialiased; }

h1, h2, h3, h4, h5, .font-display {
  font-family: "Plus Jakarta Sans", var(--bs-body-font-family);
  letter-spacing: -.02em;
  color: var(--ej-forest);
}

.text-lime { color: var(--ej-lime) !important; }
.text-leaf { color: var(--ej-green) !important; }
.text-muted-ej { color: var(--ej-muted) !important; }
.bg-cream { background: var(--ej-cream); }
.bg-forest { background: var(--ej-forest); color: #fff; }
.bg-forest h2, .bg-forest h3 { color: #fff; }

.eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--ej-green);
}
.bg-forest .eyebrow, .hero .eyebrow { color: var(--ej-lime); }

.section { padding: 6rem 0; }
@media (max-width: 767.98px) { .section { padding: 4rem 0; } }

/* ---------- Nupud ---------- */
.btn { border-radius: 999px; font-weight: 600; padding: .75rem 1.5rem; transition: transform .2s ease, box-shadow .2s ease, background-color .2s; }
.btn:hover { transform: translateY(-2px); }
.btn-ej { background: var(--ej-lime); color: var(--ej-forest); border: 0; }
.btn-ej:hover, .btn-ej:focus { background: #cdef6e; color: var(--ej-forest); box-shadow: 0 10px 24px -10px rgba(184, 224, 90, .8); }
.btn-ej-dark { background: var(--ej-forest); color: #fff; border: 0; }
.btn-ej-dark:hover, .btn-ej-dark:focus { background: var(--ej-forest-2); color: #fff; box-shadow: var(--ej-shadow); }
.btn-outline-light-ej { border: 1.5px solid rgba(255,255,255,.4); color: #fff; }
.btn-outline-light-ej:hover { border-color: #fff; background: rgba(255,255,255,.08); color: #fff; }
.link-arrow { font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: .35rem; }
.link-arrow i { transition: transform .2s ease; }
.link-arrow:hover i { transform: translateX(4px); }

/* ---------- Navigatsioon ---------- */
.navbar-ej {
  background: #fff;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(14, 59, 46, .06);
  transition: padding .3s ease, box-shadow .3s ease;
}
.navbar-ej .navbar-brand { display: flex; align-items: center; gap: .7rem; color: var(--ej-forest); }
.navbar-ej .navbar-brand:hover { color: var(--ej-forest); }
.brand-text { line-height: 1.05; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 1rem; }
.brand-text small { display: block; font-weight: 500; font-size: .72rem; opacity: .75; letter-spacing: .04em; }
.navbar-ej .brand-text small { color: var(--ej-muted); opacity: 1; }
.navbar-ej .nav-link { color: var(--ej-ink); font-weight: 500; padding: .5rem .9rem !important; border-radius: 999px; transition: color .2s, background-color .2s; }
.navbar-ej .nav-link:hover, .navbar-ej .nav-link:focus { color: var(--ej-forest); background: var(--ej-cream); }
.navbar-ej .nav-link.active { color: var(--ej-green); background: transparent; font-weight: 600; position: relative; }
.navbar-ej .dropdown-menu { border: 1px solid rgba(14,59,46,.06); border-radius: 1rem; box-shadow: var(--ej-shadow); padding: .5rem; }
.navbar-ej .dropdown-item { border-radius: .6rem; padding: .55rem .9rem; }
.navbar-ej .dropdown-item:hover { background: var(--ej-sand); color: var(--ej-forest); }
.navbar-ej .btn-ej-dark { padding: .65rem 1.3rem; }
.navbar-ej .btn-ej-dark i { color: var(--ej-lime); }
.navbar-ej .navbar-toggler { border: 0; color: var(--ej-forest); font-size: 1.7rem; }
.navbar-ej .navbar-toggler:focus { box-shadow: none; }
.navbar-ej.scrolled { padding: .6rem 0; box-shadow: 0 10px 30px -18px rgba(14, 59, 46, .45); border-bottom-color: transparent; }
@media (max-width: 991.98px) {
  .navbar-ej .navbar-collapse { border-top: 1px solid rgba(14,59,46,.08); margin-top: .8rem; padding: 1rem 0 .5rem; }
  }

/* ---------- Hero ---------- */
.hero {
  position: relative; overflow: hidden; color: #fff;
  background:
    radial-gradient(900px 500px at 85% 20%, rgba(76,194,122,.28), transparent 60%),
    radial-gradient(700px 400px at 5% 90%, rgba(184,224,90,.16), transparent 60%),
    linear-gradient(160deg, #0B3025 0%, var(--ej-forest) 55%, #13503D 100%);
  padding: 11.5rem 0 9rem;
}
.hero::before { content: ""; position: absolute; inset: 0; background: url("../img/recycle-pattern.svg") 0 0 / 96px 96px repeat; opacity: 1;
  -webkit-mask-image: radial-gradient(ellipse 90% 80% at 50% 45%, #000 40%, transparent 100%); mask-image: radial-gradient(ellipse 90% 80% at 50% 45%, #000 40%, transparent 100%); pointer-events: none; }
.hero .container { position: relative; z-index: 1; }
.hero h1 { color: #fff; font-weight: 800; font-size: clamp(2.05rem, 5.2vw, 4.2rem); line-height: 1.05; }
.hero h1 .hl { color: var(--ej-lime); position: relative; white-space: nowrap; }
.hero .lead { color: rgba(255,255,255,.8); font-size: 1.2rem; max-width: 34rem; }
.hero-art { width: 100%; max-width: 620px; height: auto; filter: drop-shadow(0 24px 40px rgba(0,0,0,.35)); }
.hero-map { position: relative; }
.map-legend {
  display: inline-flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.25rem; margin-top: 1.25rem;
  padding: .55rem 1.1rem; border-radius: 999px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12);
  font-size: .85rem; color: rgba(255,255,255,.85);
}
.map-legend span { display: inline-flex; align-items: center; gap: .45rem; }
.swatch { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.swatch-member { background: #FFF301; }
.swatch-other { background: #79B401; }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
.hero-wave { position: absolute; bottom: -1px; left: 0; width: 100%; height: 70px; z-index: 1; }

.hero-stats { display: flex; gap: 1.5rem 2.5rem; flex-wrap: wrap; margin-top: 3rem; }
.hero-stats .num { font-family: "Plus Jakarta Sans", sans-serif; font-size: 2.3rem; font-weight: 800; color: #fff; line-height: 1; }
.hero-stats .lbl { font-size: .85rem; color: rgba(255,255,255,.65); margin-top: .35rem; }

/* ---------- Missioon ---------- */
.mission-card {
  background: var(--ej-forest); color: #fff; border-radius: calc(var(--ej-radius) * 1.4);
  padding: 2.5rem; position: relative; overflow: hidden; height: 100%;
}
.mission-card::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 220px; height: 220px; border-radius: 50%; border: 28px solid rgba(184,224,90,.15); }
.mission-card blockquote { font-family: "Plus Jakarta Sans", sans-serif; font-size: 1.6rem; font-weight: 700; line-height: 1.25; margin: 0; position: relative; z-index: 1; }
.mission-card .quote-icon { font-size: 2.6rem; color: var(--ej-lime); line-height: 1; }
.check-list { list-style: none; padding: 0; margin: 0; }
.check-list li { display: flex; gap: .8rem; padding: .55rem 0; }
.check-list i { color: var(--ej-green); font-size: 1.2rem; flex-shrink: 0; }

/* ---------- Teenused ---------- */
.feature-card {
  background: #fff; border-radius: var(--ej-radius); padding: 2rem; height: 100%;
  border: 1px solid rgba(14,59,46,.08); transition: transform .3s ease, box-shadow .3s ease, border-color .3s;
}
.feature-card:hover { transform: translateY(-6px); box-shadow: var(--ej-shadow); border-color: transparent; }
.feature-icon {
  width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center;
  background: var(--ej-sand); color: var(--ej-green); font-size: 1.5rem; margin-bottom: 1.25rem;
  transition: background .3s, color .3s;
}
.feature-card:hover .feature-icon { background: var(--ej-forest); color: var(--ej-lime); }
.feature-card h3 { font-size: 1.2rem; font-weight: 700; }
.feature-card p { color: var(--ej-muted); margin: 0; }

/* ---------- Sorteerimine ---------- */
.sort-section { position: relative; overflow: hidden; }
.sort-section::before { content: ""; position: absolute; width: 520px; height: 520px; border-radius: 50%; right: -180px; top: -180px; background: radial-gradient(circle, rgba(76,194,122,.25), transparent 70%); }
.waste-card {
  --c: var(--ej-green);
  position: relative; border-radius: var(--ej-radius); padding: 1.6rem 1.4rem; height: 100%;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1);
  transition: transform .3s ease, background .3s ease, border-color .3s;
  color: #fff; text-decoration: none; display: block;
}
.waste-card:hover { transform: translateY(-6px); background: rgba(255,255,255,.09); border-color: var(--c); color: #fff; }
.waste-card .dot { width: 52px; height: 52px; border-radius: 14px; background: var(--c); display: grid; place-items: center; font-size: 1.4rem; color: #fff; margin-bottom: 1rem; box-shadow: 0 10px 24px -8px var(--c); }
.waste-card h3 { font-size: 1.1rem; color: #fff; margin-bottom: .35rem; }
.waste-card p { font-size: .9rem; color: rgba(255,255,255,.65); margin: 0; }
.waste-card.bio { --c: var(--ej-bio); }
.waste-card.pakend { --c: var(--ej-pakend); }
.waste-card.pakend .dot { color: var(--ej-forest); }
.waste-card.paber { --c: var(--ej-paber); }
.waste-card.klaas { --c: var(--ej-klaas); }
.waste-card.ohtlik { --c: var(--ej-ohtlik); }
.waste-card.sega { --c: #7A8A82; }

/* ---------- Ringmajanduse samm-sammult ---------- */
.cycle { counter-reset: step; }
.cycle-step { text-align: center; position: relative; padding: 0 .5rem; }
.cycle-step .circle {
  width: 84px; height: 84px; margin: 0 auto 1.1rem; border-radius: 50%; display: grid; place-items: center;
  background: #fff; color: var(--ej-green); font-size: 2rem; box-shadow: var(--ej-shadow); position: relative; z-index: 1;
}
.cycle-step .circle::after {
  counter-increment: step; content: counter(step);
  position: absolute; top: -4px; right: -4px; width: 28px; height: 28px; border-radius: 50%;
  background: var(--ej-lime); color: var(--ej-forest); font-size: .8rem; font-weight: 800; display: grid; place-items: center;
}
.cycle-step h3 { font-size: 1.1rem; font-weight: 700; }
.cycle-step p { color: var(--ej-muted); font-size: .95rem; }
@media (min-width: 768px) {
  .cycle-step:not(:last-child)::before {
    content: ""; position: absolute; top: 42px; left: calc(50% + 50px); right: calc(-50% + 50px);
    border-top: 2px dashed rgba(46,158,91,.4);
  }
}

/* ---------- Uudised ---------- */
.news-card {
  border-radius: var(--ej-radius); overflow: hidden; background: #fff; height: 100%;
  border: 1px solid rgba(14,59,46,.08); transition: transform .3s ease, box-shadow .3s ease;
  display: flex; flex-direction: column; text-decoration: none; color: inherit;
}
.news-card:hover { transform: translateY(-6px); box-shadow: var(--ej-shadow); color: inherit; }
.news-thumb { aspect-ratio: 16 / 9; position: relative; display: grid; place-items: center; font-size: 3rem; color: rgba(255,255,255,.9); overflow: hidden; }
.news-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.news-card:hover .news-thumb img { transform: scale(1.05); }
.news-thumb.t1 { background: linear-gradient(135deg, var(--ej-forest), var(--ej-green)); }
.news-thumb.t2 { background: linear-gradient(135deg, #1B5E45, #7DBB45); }
.news-thumb.t3 { background: linear-gradient(135deg, #145241, #2F7FD1); }
.news-tag { position: absolute; top: 1rem; left: 1rem; background: rgba(255,255,255,.95); color: var(--ej-forest); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .35rem .75rem; border-radius: 999px; }
.news-body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.news-date { font-size: .82rem; color: var(--ej-muted); display: flex; align-items: center; gap: .4rem; margin-bottom: .6rem; }
.news-body h3 { font-size: 1.15rem; font-weight: 700; line-height: 1.35; margin-bottom: 1rem; }
.news-body .link-arrow { margin-top: auto; color: var(--ej-green); }

/* ---------- Liikmed ---------- */
.members-wrap { background: #fff; border-radius: calc(var(--ej-radius) * 1.4); padding: 2.5rem; box-shadow: var(--ej-shadow); }
.member-chip {
  display: inline-flex; align-items: center; gap: .45rem; padding: .5rem 1rem; margin: .3rem;
  border-radius: 999px; background: var(--ej-cream); color: var(--ej-forest); font-weight: 500; font-size: .92rem;
  border: 1px solid transparent; transition: all .2s ease;
}
.member-chip i { color: var(--ej-green); font-size: .8rem; }
.member-chip:hover { background: #fff; border-color: var(--ej-leaf); transform: translateY(-2px); }
.estonia-badge { display: grid; place-items: center; width: 150px; height: 150px; border-radius: 50%; margin: 0 auto; background: conic-gradient(var(--ej-lime) 0 85%, var(--ej-sand) 85% 100%); }
.estonia-badge > div { width: 118px; height: 118px; border-radius: 50%; background: #fff; display: grid; place-items: center; text-align: center; }
.estonia-badge strong { font-family: "Plus Jakarta Sans", sans-serif; font-size: 2.4rem; color: var(--ej-forest); line-height: 1; display: block; }
.estonia-badge span { font-size: .75rem; color: var(--ej-muted); }

/* ---------- Kasulikud lingid ---------- */
.partner-link {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.1rem 1.3rem; border-radius: 1rem; background: #fff; border: 1px solid rgba(14,59,46,.08);
  color: var(--ej-forest); text-decoration: none; font-weight: 600; transition: all .25s ease; height: 100%;
}
.partner-link small { display: block; color: var(--ej-muted); font-weight: 400; font-size: .82rem; }
.partner-link i { color: var(--ej-green); transition: transform .25s ease; }
.partner-link:hover { border-color: var(--ej-leaf); box-shadow: var(--ej-shadow); color: var(--ej-forest); }
.partner-link:hover i { transform: translate(3px, -3px); }

/* ---------- CTA ---------- */
.cta-band {
  border-radius: calc(var(--ej-radius) * 1.6); padding: 3.5rem; position: relative; overflow: hidden;
  background: linear-gradient(120deg, var(--ej-lime), #8FD16A 60%, var(--ej-leaf));
}
.cta-band::after { content: ""; position: absolute; right: -40px; top: -40px; width: 260px; height: 260px; background: url("../img/ejhk-mark.svg") no-repeat center / contain; opacity: .14; }
.cta-band h2 { font-weight: 800; }
@media (max-width: 575.98px) { .cta-band { padding: 2.2rem 1.5rem; } }

/* ---------- Jalus ---------- */
.footer { background: #0A2B21; color: rgba(255,255,255,.7); padding: 5rem 0 2rem; }
.footer h4 { color: #fff; font-size: 1rem; font-weight: 700; margin-bottom: 1.2rem; }
.footer a { color: rgba(255,255,255,.7); text-decoration: none; transition: color .2s; }
.footer a:hover { color: var(--ej-lime); }
.footer ul { list-style: none; padding: 0; margin: 0; }
.footer li { padding: .3rem 0; }
.footer .social { width: 42px; height: 42px; border-radius: 50%; display: inline-grid; place-items: center; background: rgba(255,255,255,.08); font-size: 1.1rem; }
.footer .social:hover { background: var(--ej-lime); color: var(--ej-forest); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); margin-top: 3rem; padding-top: 1.5rem; font-size: .85rem; }

/* ---------- Kerimisanimatsioon ---------- */
.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.js .reveal.visible { opacity: 1; transform: none; }
.js .reveal.d1 { transition-delay: .08s; } .js .reveal.d2 { transition-delay: .16s; } .js .reveal.d3 { transition-delay: .24s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .reveal { opacity: 1; transform: none; transition: none; }
  .hero-art { animation: none; }
  .btn:hover, .feature-card:hover, .news-card:hover, .waste-card:hover { transform: none; }
}

.back-to-top {
  position: fixed; right: 1.25rem; bottom: 1.25rem; width: 48px; height: 48px; border-radius: 50%;
  background: var(--ej-forest); color: var(--ej-lime); border: 0; display: grid; place-items: center; font-size: 1.2rem;
  box-shadow: var(--ej-shadow); opacity: 0; visibility: hidden; transition: all .3s ease; z-index: 1030;
}
.back-to-top.show { opacity: 1; visibility: visible; }

/* ---------- Uudised (esiletõstetud + kõrvaluudised) ---------- */
.news-section {
  position: relative; overflow: hidden; isolation: isolate;
  background:
    radial-gradient(600px 300px at 12% 10%, rgba(184,224,90,.18), transparent 70%),
    linear-gradient(180deg, #F3F9EF 0%, #E9F4E2 100%);
  padding-bottom: 12.5rem;
}
.news-featured {
  position: relative; display: block; height: 100%; min-height: 420px;
  border-radius: var(--ej-radius); overflow: hidden; color: #fff; text-decoration: none;
  box-shadow: var(--ej-shadow); background: var(--ej-forest);
}
.news-featured img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.news-featured::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(14,59,46,0) 30%, rgba(14,59,46,.55) 60%, rgba(10,43,33,.95) 100%);
}
.news-featured:hover img { transform: scale(1.04); }
.news-featured-body { position: absolute; left: 0; right: 0; bottom: 0; padding: 2rem; z-index: 1; }
.news-featured h3 { color: #fff; font-size: clamp(1.3rem, 2.2vw, 1.75rem); font-weight: 800; line-height: 1.25; margin: .6rem 0 1rem; }
.news-featured .link-arrow { color: var(--ej-lime); }
.news-meta { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; font-size: .82rem; color: rgba(255,255,255,.85); }
.news-meta i { color: var(--ej-lime); margin-right: .25rem; }

.news-row {
  flex: 1; display: flex; gap: 1.25rem; align-items: stretch; padding: 1rem;
  background: #fff; border-radius: var(--ej-radius); text-decoration: none; color: inherit;
  box-shadow: 0 10px 30px -20px rgba(14,59,46,.35); transition: transform .3s ease, box-shadow .3s ease;
}
.news-row:hover { transform: translateY(-4px); box-shadow: var(--ej-shadow); color: inherit; }
.news-row-img { flex: 0 0 42%; border-radius: calc(var(--ej-radius) - .4rem); overflow: hidden; min-height: 160px; background: var(--ej-sand); }
.news-row-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.news-row:hover .news-row-img img { transform: scale(1.05); }
.news-row-body { display: flex; flex-direction: column; justify-content: center; padding: .25rem .5rem .25rem 0; }
.news-row-body h3 { font-size: 1.15rem; font-weight: 700; line-height: 1.3; margin-bottom: .8rem; }
.news-row-body .link-arrow { color: var(--ej-green); font-size: .92rem; }
@media (max-width: 575.98px) {
  .news-featured { min-height: 360px; }
  .news-featured-body { padding: 1.4rem; }
  .news-row { flex-direction: column; }
  .news-row-img { flex-basis: auto; aspect-ratio: 16 / 9; min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .news-row:hover, .news-featured:hover img, .news-row:hover .news-row-img img { transform: none; }
}

/* Uudiste taust: maastikusilhuett (tuulikud, puud, konteinerid) + ringlusring */
.news-section::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 200px; z-index: -1;
  background: url("../img/news-deco.svg") center bottom / cover no-repeat; pointer-events: none;
}
.news-section::after {
  content: ""; position: absolute; width: 420px; height: 420px; right: -120px; top: -110px; z-index: -1;
  background: url("../img/recycle-ring.svg") center / contain no-repeat; pointer-events: none;
  animation: spin-slow 80s linear infinite;
}
@keyframes spin-slow { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .news-section::after { animation: none; } }
@media (max-width: 767.98px) { .news-section { padding-bottom: 9rem; } .news-section::before { height: 140px; } .news-section::after { width: 280px; height: 280px; right: -110px; top: -80px; } }

/* ---------- Meist ---------- */
.about-media { position: relative; border-radius: calc(var(--ej-radius) * 1.4); overflow: visible; }
.about-media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: calc(var(--ej-radius) * 1.4); box-shadow: var(--ej-shadow); background: var(--ej-sand); display: block; }
.about-badge {
  position: absolute; top: 1.5rem; right: -1rem; background: var(--ej-lime); color: var(--ej-forest);
  border-radius: 1rem; padding: .9rem 1.1rem; max-width: 170px; box-shadow: var(--ej-shadow);
}
.about-badge strong { display: block; font-family: "Plus Jakarta Sans", sans-serif; font-size: 1.8rem; line-height: 1; font-weight: 800; }
.about-badge span { font-size: .8rem; font-weight: 600; line-height: 1.25; display: block; margin-top: .3rem; }
.about-quote {
  position: absolute; left: 1.25rem; right: 1.25rem; bottom: 1.25rem; padding: 1.25rem 1.4rem;
  background: rgba(14, 59, 46, .88); backdrop-filter: blur(8px); color: #fff; border-radius: 1rem;
  display: flex; gap: .8rem; align-items: flex-start;
}
.about-quote i { color: var(--ej-lime); font-size: 1.8rem; line-height: 1; }
.about-quote p { margin: 0; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 700; font-size: 1.1rem; line-height: 1.35; }
.about-note { display: flex; gap: 1rem; padding: 1.25rem 1.4rem; background: #fff; border-radius: 1rem; border-left: 4px solid var(--ej-leaf); color: var(--ej-ink); }
.about-note > i { font-size: 1.6rem; color: var(--ej-green); line-height: 1; }
@media (max-width: 575.98px) { .about-badge { right: .75rem; } .about-media img { aspect-ratio: 4 / 4.4; } }

/* ---------- Tegevuste loetelud ---------- */
.feature-list { list-style: none; padding: 0; margin: 0; }
.feature-list li { display: flex; gap: .55rem; padding: .35rem 0; color: var(--ej-muted); font-size: .95rem; line-height: 1.45; }
.feature-list li + li { border-top: 1px dashed rgba(14,59,46,.1); }
.feature-list i { color: var(--ej-green); font-size: 1.05rem; flex-shrink: 0; margin-top: .05rem; }
.feature-card > p { color: var(--ej-muted); }
.doc-tags { display: flex; flex-wrap: wrap; gap: .5rem; }
.doc-tags span { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .8rem; border-radius: 999px; background: var(--ej-cream); color: var(--ej-forest); font-size: .88rem; font-weight: 600; }
.doc-tags i { color: var(--ej-green); }

/* ==========================================================================
   Alamlehed (Meist jt)
   ========================================================================== */
/* Rippmenüü: töölaual avaneb hõljumisel */
.navbar-ej .dropdown-item i { color: var(--ej-green); margin-right: .55rem; }
.navbar-ej .dropdown-item.active, .navbar-ej .dropdown-item:active { background: var(--ej-forest); color: #fff; }
.navbar-ej .dropdown-item.active i { color: var(--ej-lime); }
@media (min-width: 992px) and (hover: hover) {
  .navbar-ej .dropdown { position: relative; }
  .navbar-ej .dropdown > .dropdown-menu { top: 100%; }
  .navbar-ej .dropdown::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: .6rem; }
}

.page-hero {
  position: relative; overflow: hidden; color: #fff;
  background:
    radial-gradient(700px 360px at 90% 0%, rgba(76,194,122,.28), transparent 60%),
    linear-gradient(160deg, #0B3025 0%, var(--ej-forest) 60%, #13503D 100%);
  padding: 8.5rem 0 3.5rem;
}
.page-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: url("../img/recycle-pattern.svg") 0 0 / 96px 96px repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 60%); mask-image: linear-gradient(90deg, transparent 0%, #000 60%);
}
.page-hero .container { position: relative; }
.page-hero h1 { color: #fff; font-weight: 800; font-size: clamp(2rem, 4.5vw, 3.2rem); margin: .8rem 0 .6rem; }
.page-hero .lead { color: rgba(255,255,255,.78); max-width: 44rem; margin: 0; font-size: 1.12rem; }
.breadcrumb-ej { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .35rem; font-size: .85rem; color: rgba(255,255,255,.65); }
.breadcrumb-ej li + li::before { content: "/"; margin-right: .35rem; opacity: .5; }
.breadcrumb-ej a { color: rgba(255,255,255,.8); text-decoration: none; }
.breadcrumb-ej a:hover { color: var(--ej-lime); }
.breadcrumb-ej [aria-current] { color: var(--ej-lime); }

.page-body { background: var(--ej-cream); padding-top: 3.5rem; }

/* Külgmenüü */
.side-sticky { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 1rem; }
.side-card { background: #fff; border-radius: var(--ej-radius); padding: 1.25rem; box-shadow: 0 10px 30px -22px rgba(14,59,46,.4); }
.side-card h6 { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ej-muted); font-weight: 700; margin: 0 0 .75rem .5rem; }
.subnav { list-style: none; padding: 0; margin: 0; }
.subnav a { display: flex; align-items: center; gap: .65rem; padding: .65rem .75rem; border-radius: .75rem; color: var(--ej-ink); text-decoration: none; font-weight: 500; transition: background .2s, color .2s; }
.subnav a i { color: var(--ej-green); font-size: 1.05rem; }
.subnav a:hover { background: var(--ej-cream); color: var(--ej-forest); }
.subnav a.active { background: var(--ej-forest); color: #fff; font-weight: 600; }
.subnav a.active i { color: var(--ej-lime); }
.toc ol { list-style: none; padding: 0; margin: 0; }
.toc a { display: block; padding: .38rem .5rem; border-radius: .5rem; font-size: .88rem; color: var(--ej-muted); text-decoration: none; border-left: 2px solid transparent; }
.toc a:hover { color: var(--ej-forest); background: var(--ej-cream); }
.toc a.current { color: var(--ej-green); border-left-color: var(--ej-green); background: var(--ej-cream); font-weight: 600; }
.side-download { display: flex; align-items: center; gap: .8rem; padding: 1rem 1.25rem; border-radius: var(--ej-radius); background: var(--ej-forest); color: #fff; text-decoration: none; transition: transform .2s; }
.side-download:hover { color: #fff; transform: translateY(-2px); }
.side-download > i { font-size: 1.6rem; color: var(--ej-lime); }
.side-download small { display: block; color: rgba(255,255,255,.65); font-size: .8rem; }
@media (max-width: 991.98px) { .side-sticky { position: static; } }

/* Sisu */
.prose { background: #fff; border-radius: calc(var(--ej-radius) * 1.2); padding: clamp(1.5rem, 3.5vw, 2.75rem); box-shadow: 0 10px 30px -22px rgba(14,59,46,.4); }
.prose h2 { font-weight: 800; font-size: clamp(1.4rem, 2.6vw, 1.9rem); margin-bottom: 1rem; }
.prose h3 { font-size: 1.15rem; font-weight: 700; margin: 1.75rem 0 .9rem; }
.prose p { color: #34443B; line-height: 1.7; }
.prose a { color: var(--ej-green); font-weight: 600; }
.prose a.btn { color: #fff; }
.lead-ej { font-size: 1.15rem; color: var(--ej-ink) !important; }
.prose-figure { margin: 0 0 1.5rem; border-radius: var(--ej-radius); overflow: hidden; background: var(--ej-sand); }
.prose-figure img { width: 100%; max-height: 380px; object-fit: cover; display: block; }
.callout { display: flex; gap: 1rem; padding: 1.25rem 1.4rem; background: var(--ej-cream); border-radius: 1rem; border-left: 4px solid var(--ej-leaf); margin: 1.5rem 0; }
.page-body .callout.mt-5 { background: #fff; }
.callout > i { font-size: 1.5rem; color: var(--ej-green); line-height: 1.2; }
.callout p { margin: 0; }

.doc-section { padding: 1.75rem 0; border-top: 1px solid rgba(14,59,46,.08); scroll-margin-top: 110px; }
.doc-section:first-child { border-top: 0; padding-top: 0; }
.doc-section h2 { display: flex; align-items: center; gap: .8rem; font-size: clamp(1.2rem, 2.2vw, 1.5rem); }
.doc-section .num { flex-shrink: 0; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--ej-forest); color: var(--ej-lime); font-size: 1rem; font-weight: 800; }

.check-list-ej, .q-list, .warn-list, .dot-list { list-style: none; padding: 0; margin: 0 0 1.25rem; }
.check-list-ej li, .q-list li, .warn-list li, .dot-list li { position: relative; padding: .45rem 0 .45rem 2rem; color: #34443B; line-height: 1.55; }
.check-list-ej li::before, .q-list li::before, .warn-list li::before { font-family: "bootstrap-icons"; position: absolute; left: 0; top: .42rem; font-size: 1.1rem; line-height: 1.4; }
.check-list-ej li::before { content: "\F26E"; color: var(--ej-green); }
.q-list li::before { content: "\F505"; color: var(--ej-green); }
.warn-list li::before { content: "\F33A"; color: #C98A12; }
.dot-list li::before { content: ""; position: absolute; left: .45rem; top: 1rem; width: 8px; height: 8px; border-radius: 50%; background: var(--ej-ohtlik); opacity: .75; }
.warn-list { background: #FFF9EC; border-radius: 1rem; padding: .75rem 1.25rem; }
@media (min-width: 768px) { .check-list-ej.two-col { columns: 2; column-gap: 2rem; } .check-list-ej.two-col li { break-inside: avoid; } }

.stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 1rem 0 1.5rem; }
.stat-box { background: var(--ej-cream); border-radius: 1rem; padding: 1.25rem; text-align: center; border: 1px solid rgba(14,59,46,.06); }
.page-body > .container .stat-row.mt-4 .stat-box:not(.goal) { background: #fff; }
.stat-box strong { display: block; font-family: "Plus Jakarta Sans", sans-serif; font-size: clamp(1.3rem, 2.8vw, 2rem); font-weight: 800; color: var(--ej-forest); line-height: 1.1; }
.stat-box span { font-size: .85rem; color: var(--ej-muted); }
.stat-box.alert { background: #FDEEEC; } .stat-box.alert strong { color: #B8362D; }
.stat-box.goal { background: var(--ej-forest); } .stat-box.goal strong { color: var(--ej-lime); } .stat-box.goal span { color: rgba(255,255,255,.75); }
@media (max-width: 575.98px) { .stat-row { grid-template-columns: 1fr; } }

.goal-list { counter-reset: g; list-style: none; padding: 0; margin: 0 0 1rem; }
.goal-list li { counter-increment: g; position: relative; padding: .6rem 0 .6rem 3rem; color: #34443B; line-height: 1.55; }
.goal-list li::before { content: counter(g); position: absolute; left: 0; top: .5rem; width: 32px; height: 32px; border-radius: 50%; background: var(--ej-lime); color: var(--ej-forest); font-weight: 800; display: grid; place-items: center; font-size: .9rem; }

.value-card { height: 100%; padding: 1.25rem 1.3rem; border-radius: 1rem; border: 1px solid rgba(14,59,46,.08); background: #fff; transition: border-color .2s, box-shadow .2s; }
.value-card:hover { border-color: var(--ej-leaf); box-shadow: 0 12px 30px -20px rgba(14,59,46,.45); }
.value-card > i { font-size: 1.4rem; color: var(--ej-green); }
.value-card h4 { font-size: 1.02rem; font-weight: 700; margin: .5rem 0 .4rem; }
.value-card p { font-size: .92rem; margin: 0; color: var(--ej-muted); line-height: 1.55; }
.summary-box { margin-top: 1.75rem; padding: 1.5rem 1.75rem; border-radius: 1rem; background: var(--ej-forest); color: #fff; }
.summary-box h3 { color: #fff; margin: 0 0 .75rem; } .summary-box h3 i { color: var(--ej-lime); }
.summary-box ul { margin: 0; padding-left: 1.2rem; } .summary-box li { padding: .3rem 0; color: rgba(255,255,255,.88); line-height: 1.6; }
.summary-box li::marker { color: var(--ej-lime); }

.link-card { display: flex; align-items: center; gap: .9rem; height: 100%; padding: 1.1rem 1.25rem; border-radius: 1rem; background: #fff; text-decoration: none; color: var(--ej-forest); font-weight: 700; box-shadow: 0 10px 30px -22px rgba(14,59,46,.4); transition: transform .2s, box-shadow .2s; }
.link-card > i:first-child { font-size: 1.5rem; color: var(--ej-green); }
.link-card small { display: block; font-weight: 400; color: var(--ej-muted); font-size: .82rem; }
.link-card .go { margin-left: auto; color: var(--ej-green); transition: transform .2s; }
.link-card:hover { transform: translateY(-3px); box-shadow: var(--ej-shadow); color: var(--ej-forest); }
.link-card:hover .go { transform: translateX(4px); }

/* Juhtimisstruktuur */
.org-chart { display: flex; flex-direction: column; align-items: center; padding: 2rem 1rem; background: #fff; border-radius: calc(var(--ej-radius) * 1.2); box-shadow: 0 10px 30px -22px rgba(14,59,46,.4); }
.org-row { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; }
.org-node { width: 260px; max-width: 100%; text-align: center; padding: 1.1rem 1rem; border-radius: 1rem; background: var(--ej-cream); border: 1px solid rgba(14,59,46,.08); }
.org-node i { font-size: 1.5rem; color: var(--ej-green); display: block; margin-bottom: .3rem; }
.org-node strong { display: block; font-family: "Plus Jakarta Sans", sans-serif; color: var(--ej-forest); font-size: 1.05rem; }
.org-node span { font-size: .82rem; color: var(--ej-muted); }
.org-node.top { background: var(--ej-lime); border-color: transparent; } .org-node.top i, .org-node.top span { color: var(--ej-forest); }
.org-node.dark { background: var(--ej-forest); } .org-node.dark strong { color: #fff; } .org-node.dark i { color: var(--ej-lime); } .org-node.dark span { color: rgba(255,255,255,.7); }
.org-node.muted { background: #fff; border-style: dashed; }
.org-line { width: 2px; height: 28px; background: repeating-linear-gradient(180deg, var(--ej-leaf) 0 5px, transparent 5px 9px); }

.person-card { display: flex; align-items: center; gap: .9rem; height: 100%; padding: 1rem 1.1rem; border-radius: 1rem; background: #fff; box-shadow: 0 10px 30px -22px rgba(14,59,46,.4); }
.person-card .avatar { flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--ej-sand); color: var(--ej-forest); font-weight: 800; font-family: "Plus Jakarta Sans", sans-serif; }
.person-card strong { display: block; color: var(--ej-forest); line-height: 1.2; }
.person-card span:not(.avatar) { font-size: .85rem; color: var(--ej-muted); }
.person-card.lead-person { background: var(--ej-forest); } .person-card.lead-person .avatar { background: var(--ej-lime); }
.person-card.lead-person strong { color: #fff; font-size: 1.1rem; } .person-card.lead-person span:not(.avatar) { color: rgba(255,255,255,.7); }

/* Põhikiri */
.doc-head { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: flex-end; justify-content: space-between; padding-bottom: 1.75rem; margin-bottom: 1.75rem; border-bottom: 1px solid rgba(14,59,46,.08); }
.statute .clause { display: flex; gap: .9rem; padding: .45rem 0; }
.statute .clause p { margin: 0; }
.statute .cn { flex-shrink: 0; min-width: 3.1rem; font-weight: 700; color: var(--ej-green); font-variant-numeric: tabular-nums; }
.statute > p { margin: 0; }
.sub-block { margin-top: 1rem; padding: 1.1rem 1.25rem; border-radius: 1rem; background: var(--ej-cream); }
.sub-block h3 { display: flex; gap: .9rem; margin: 0 0 .5rem; font-size: 1.05rem; }
.footnote { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(14,59,46,.1); font-size: .88rem; }
.footnote p { color: var(--ej-muted); }
sup a { text-decoration: none; }
.doc-head + .doc-section { border-top: 0; padding-top: 0; }

/* ---------- Liikmed ---------- */
.members-intro { background: #fff; border-radius: calc(var(--ej-radius) * 1.4); padding: clamp(1.5rem, 3.5vw, 2.75rem); box-shadow: 0 10px 30px -22px rgba(14,59,46,.4); margin-bottom: 3rem; }
.members-intro .stat-box:not(.goal) { background: var(--ej-cream); }
.members-map { width: 100%; max-width: 620px; height: auto; }
.map-legend.light { background: var(--ej-cream); border-color: rgba(14,59,46,.08); color: var(--ej-ink); }
.members-toolbar, .events-toolbar { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.count-badge { display: inline-grid; place-items: center; min-width: 2rem; height: 1.6rem; padding: 0 .5rem; margin-left: .35rem; border-radius: 999px; background: var(--ej-lime); color: var(--ej-forest); font-size: .85rem; vertical-align: middle; }
.search-field { position: relative; width: min(100%, 320px); }
.search-field i { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--ej-muted); }
.search-field input { width: 100%; border: 1px solid rgba(14,59,46,.14); border-radius: 999px; padding: .7rem 1rem .7rem 2.6rem; background: #fff; font: inherit; }
.search-field input:focus { outline: none; border-color: var(--ej-leaf); box-shadow: 0 0 0 4px rgba(76,194,122,.18); }
.member-card { height: 100%; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 1.5rem 1rem 1.25rem; background: #fff; border-radius: var(--ej-radius); border: 1px solid rgba(14,59,46,.06); transition: transform .25s ease, box-shadow .25s ease, border-color .25s; }
.member-card:hover { transform: translateY(-4px); box-shadow: var(--ej-shadow); border-color: transparent; }
.crest { width: 96px; height: 110px; display: grid; place-items: center; margin-bottom: .9rem; }
.crest img { max-width: 100%; max-height: 100%; object-fit: contain; filter: drop-shadow(0 6px 10px rgba(14,59,46,.15)); transition: transform .3s ease; }
.member-card:hover .crest img { transform: scale(1.06); }
.member-card h3 { font-size: 1.02rem; font-weight: 700; margin-bottom: .6rem; }
.member-link { display: inline-flex; align-items: center; gap: .35rem; padding: .4rem 1rem; border-radius: 999px; background: var(--ej-cream); color: var(--ej-green); font-weight: 700; font-size: .9rem; text-decoration: none; transition: background .2s, color .2s; }
.member-link:hover, .member-link:focus { background: var(--ej-forest); color: var(--ej-lime); }
.member-domain { margin-top: .5rem; font-size: .75rem; color: var(--ej-muted); word-break: break-all; }
.empty-state { text-align: center; padding: 2rem; color: var(--ej-muted); }
@media (max-width: 575.98px) { .crest { width: 72px; height: 84px; } .member-card { padding: 1.1rem .6rem 1rem; } .member-domain { display: none; } }

/* ---------- Sündmused ---------- */
.filter-chips { display: flex; flex-wrap: wrap; gap: .45rem; }
.chip { border: 1px solid rgba(14,59,46,.14); background: #fff; color: var(--ej-ink); border-radius: 999px; padding: .42rem .95rem; font-size: .88rem; font-weight: 600; transition: all .2s; }
.chip:hover { border-color: var(--ej-leaf); color: var(--ej-forest); }
.chip.active { background: var(--ej-forest); border-color: var(--ej-forest); color: #fff; }
.event-list { display: flex; flex-direction: column; gap: 1rem; }
.event-card { display: flex; gap: 1.25rem; padding: 1.25rem; background: #fff; border-radius: var(--ej-radius); box-shadow: 0 10px 30px -22px rgba(14,59,46,.4); scroll-margin-top: 110px; transition: box-shadow .25s, transform .25s; }
.event-card:hover { box-shadow: var(--ej-shadow); transform: translateY(-2px); }
.event-card.flash { animation: flash 1.6s ease; }
@keyframes flash { 0%, 40% { box-shadow: 0 0 0 4px var(--ej-lime), var(--ej-shadow); } 100% { box-shadow: 0 10px 30px -22px rgba(14,59,46,.4); } }
.event-date { flex-shrink: 0; width: 88px; border-radius: 1rem; background: var(--ej-forest); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: .8rem .4rem; text-align: center; }
.event-date .wd { font-size: .72rem; letter-spacing: .1em; color: var(--ej-lime); font-weight: 700; }
.event-date strong { font-family: "Plus Jakarta Sans", sans-serif; font-size: 2.1rem; line-height: 1; margin: .15rem 0; }
.event-date span:last-child { font-size: .78rem; color: rgba(255,255,255,.75); }
.event-body { flex: 1; min-width: 0; }
.event-meta { display: flex; flex-wrap: wrap; gap: .35rem 1rem; align-items: center; font-size: .84rem; color: var(--ej-muted); margin-bottom: .5rem; }
.event-meta i { color: var(--ej-green); margin-right: .2rem; }
.event-body h3 { font-size: 1.15rem; font-weight: 700; margin-bottom: .4rem; }
.event-body h3 a { color: var(--ej-forest); text-decoration: none; }
.event-body h3 a:hover { color: var(--ej-green); }
.event-body p { color: var(--ej-muted); margin-bottom: .8rem; font-size: .95rem; }
.event-foot { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; justify-content: space-between; padding-top: .75rem; border-top: 1px dashed rgba(14,59,46,.12); }
.event-foot .note { font-size: .84rem; color: var(--ej-ink); } .event-foot .note i { color: var(--ej-green); }
.event-foot .link-arrow { color: var(--ej-green); }
.tag { display: inline-block; padding: .22rem .65rem; border-radius: 999px; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
/* Event category tags: the palette an operator picks from (TagColour in apps/Ejhk). */
.tag-green { background: #E4F4DA; color: #2B6B21; }
.tag-blue { background: #E2EEFA; color: #1F5C99; }
.tag-yellow { background: #FFF1CC; color: #8A6300; }
.tag-forest { background: #0E3B2E; color: #B8E05A; }
.tag-lime { background: #B8E05A; color: #0E3B2E; }
.tag-grey { background: #ECEFED; color: #4A5550; }
.tag-red { background: #FBE3E1; color: #A8322A; }
.tag-brown { background: #F3E9E0; color: #6E4A2F; }
@media (max-width: 575.98px) {
  .event-card { flex-direction: column; gap: .9rem; }
  .event-date { width: auto; flex-direction: row; gap: .5rem; justify-content: flex-start; padding: .55rem .9rem; }
  .event-date strong { font-size: 1.3rem; margin: 0; }
}
.past-events { margin-top: 2.5rem; padding: 1.5rem; background: #fff; border-radius: var(--ej-radius); }
.past-events ul { list-style: none; padding: 0; margin: 0; }
.past-events li { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .9rem; padding: .7rem 0; border-top: 1px solid rgba(14,59,46,.07); color: var(--ej-muted); font-size: .92rem; }
.past-events li:first-child { border-top: 0; }
.past-events .pd { min-width: 4.5rem; font-weight: 700; color: var(--ej-ink); }
.past-events a { color: var(--ej-ink); font-weight: 600; text-decoration: none; }
.past-events a:hover { color: var(--ej-green); }
.past-events .pp { margin-left: auto; font-size: .85rem; }

.calendar .cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .75rem; }
.calendar .cal-title { font-family: "Plus Jakarta Sans", sans-serif; color: var(--ej-forest); }
.cal-nav { width: 34px; height: 34px; border-radius: 50%; border: 0; background: var(--ej-cream); color: var(--ej-forest); display: grid; place-items: center; }
.cal-nav:hover { background: var(--ej-forest); color: var(--ej-lime); }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .25rem; text-align: center; }
.cal-wd span { font-size: .72rem; font-weight: 700; color: var(--ej-muted); padding: .3rem 0; }
.cal-days > * { aspect-ratio: 1; display: grid; place-items: center; border-radius: .6rem; font-size: .88rem; color: var(--ej-ink); }
.cal-days a.has-event { background: var(--ej-lime); color: var(--ej-forest); font-weight: 800; text-decoration: none; position: relative; }
.cal-days a.has-event:hover { background: var(--ej-forest); color: var(--ej-lime); }
.cal-days .today { outline: 2px solid var(--ej-leaf); outline-offset: -2px; }
.cal-hint { display: flex; align-items: center; gap: .45rem; font-size: .8rem; color: var(--ej-muted); margin: .9rem 0 0; }
.cal-hint .dot { width: 12px; height: 12px; border-radius: 4px; background: var(--ej-lime); }
.subscribe > i { font-size: 1.6rem; color: var(--ej-green); }
.subscribe h3 { font-size: 1.1rem; font-weight: 700; margin: .5rem 0 .4rem; }
.subscribe p { font-size: .9rem; color: var(--ej-muted); }
@media (min-width: 992px) and (max-width: 1199.98px) { .navbar-ej .nav-link { padding: .5rem .6rem !important; } .navbar-ej .navbar-collapse > .btn-ej-dark { display: none; } }
@media (max-width: 575.98px) { .members-intro .stat-row { grid-template-columns: repeat(3, 1fr); gap: .5rem; } .members-intro .stat-box { padding: .9rem .4rem; } .members-intro .stat-box span { font-size: .75rem; } }

/* Liikmed: suuremad vapid */
.crest { width: 140px; height: 165px; margin-bottom: 1.1rem; }
.member-card { padding: 2rem 1rem 1.4rem; }
@media (max-width: 575.98px) { .crest { width: 104px; height: 122px; } .member-card { padding: 1.3rem .6rem 1.1rem; } }

/* ---------- Uudiste leht ---------- */
.news-hero { display: grid; grid-template-columns: 1.15fr 1fr; background: #fff; border-radius: calc(var(--ej-radius) * 1.4); overflow: hidden; text-decoration: none; color: inherit; box-shadow: 0 10px 30px -22px rgba(14,59,46,.4); margin-bottom: 3rem; transition: box-shadow .3s; }
.news-hero:hover { box-shadow: var(--ej-shadow); color: inherit; }
.news-hero-img { min-height: 340px; background: var(--ej-sand); overflow: hidden; }
.news-hero-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.news-hero:hover .news-hero-img img { transform: scale(1.04); }
.news-hero-body { padding: clamp(1.5rem, 3.5vw, 3rem); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: .9rem; }
.news-hero-body h2 { font-weight: 800; font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1.2; margin: 0; }
.news-hero-body .link-arrow { color: var(--ej-green); }
.news-meta.dark { color: var(--ej-muted); } .news-meta.dark i { color: var(--ej-green); }
.tag-new { background: var(--ej-lime); color: var(--ej-forest); }
@media (max-width: 767.98px) { .news-hero { grid-template-columns: 1fr; } .news-hero-img { min-height: 0; aspect-ratio: 16 / 9; } }
.news-toolbar { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.news-page .news-card { background: #fff; border-color: transparent; box-shadow: 0 10px 30px -22px rgba(14,59,46,.4); }
.news-page .news-thumb { background: var(--ej-sand); }
.news-page .news-body h3 { font-size: 1.05rem; }
.news-page .news-date { flex-wrap: wrap; }
.pager { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; margin-top: 2.5rem; }
.pager .pg { min-width: 42px; height: 42px; padding: 0 .75rem; border-radius: 999px; border: 1px solid rgba(14,59,46,.14); background: #fff; color: var(--ej-ink); font-weight: 600; transition: all .2s; }
.pager .pg:hover:not(:disabled) { border-color: var(--ej-leaf); color: var(--ej-forest); }
.pager .pg.active { background: var(--ej-forest); border-color: var(--ej-forest); color: var(--ej-lime); }
.pager .pg:disabled { opacity: .4; }

/* ---------- Logo ---------- */
.navbar-ej .navbar-brand { padding: 0; margin-right: 1.5rem; }
.navbar-ej .brand-logo { width: auto; height: 46px; display: block; transition: height .3s ease; }
.navbar-ej.scrolled .brand-logo { height: 40px; }
@media (min-width: 992px) and (max-width: 1199.98px) { .navbar-ej .brand-logo { height: 38px; } .navbar-ej .navbar-brand { margin-right: .5rem; } }
@media (max-width: 575.98px) { .navbar-ej .brand-logo { height: 38px; } }
.footer-logo img { height: 50px; width: auto; }

/* ---------- Uudise sisuleht ---------- */
.article-hero h1 { max-width: 56rem; font-size: clamp(1.8rem, 4vw, 2.9rem); line-height: 1.15; }
.tag-opinion { background: var(--ej-lime); color: var(--ej-forest); }
.article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; margin-top: 1.4rem; color: rgba(255,255,255,.78); font-size: .92rem; }
.article-meta i { color: var(--ej-lime); margin-right: .25rem; }
.article-meta .author { display: inline-flex; align-items: center; gap: .7rem; }
.article-meta .author strong { display: block; color: #fff; line-height: 1.2; }
.article-meta .author small { display: block; font-size: .8rem; color: rgba(255,255,255,.65); }
.avatar { flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--ej-lime); color: var(--ej-forest); font-weight: 800; font-family: "Plus Jakarta Sans", sans-serif; }
.article-figure { margin: 0 0 1.5rem; border-radius: calc(var(--ej-radius) * 1.2); overflow: hidden; position: relative; background: var(--ej-sand); box-shadow: var(--ej-shadow); }
.article-figure img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.article-figure figcaption { position: absolute; right: .75rem; bottom: .75rem; background: rgba(10,43,33,.7); color: #fff; font-size: .75rem; padding: .25rem .6rem; border-radius: 999px; }
.article-prose { font-size: 1.05rem; }
.article-prose p { line-height: 1.8; }
.art-lead { font-size: 1.28rem; font-weight: 500; color: var(--ej-forest) !important; line-height: 1.55 !important; padding-left: 1.1rem; border-left: 4px solid var(--ej-lime); margin-bottom: 1.5rem; }
.art-point { padding-top: 1.5rem; margin-top: 1.5rem; border-top: 1px solid rgba(14,59,46,.08); scroll-margin-top: 110px; }
.art-point h2 { display: flex; gap: .9rem; align-items: flex-start; font-size: clamp(1.1rem, 2vw, 1.3rem) !important; line-height: 1.4; font-weight: 700 !important; }
.art-point h2 em { font-style: normal; color: var(--ej-green); }
.art-point .pn { flex-shrink: 0; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--ej-forest); color: var(--ej-lime); font-size: .95rem; font-weight: 800; margin-top: -.1rem; }
.art-summary { margin-top: 2rem; padding: 1.75rem; border-radius: 1rem; background: var(--ej-forest); scroll-margin-top: 110px; }
.art-summary h2 { color: #fff; font-size: 1.3rem !important; } .art-summary h2 i { color: var(--ej-lime); margin-right: .35rem; }
.art-summary p { color: rgba(255,255,255,.88) !important; } .art-summary p:last-child { margin-bottom: 0; }
.art-foot { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(14,59,46,.08); }
.author-box { display: flex; align-items: center; gap: .8rem; }
.author-box strong { display: block; color: var(--ej-forest); }
.author-box span:not(.avatar) { font-size: .85rem; color: var(--ej-muted); }
.share { display: flex; align-items: center; gap: .4rem; font-size: .9rem; color: var(--ej-muted); }
.share a, .share button { width: 38px; height: 38px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--ej-cream); color: var(--ej-forest); border: 0; text-decoration: none; transition: all .2s; }
.share a:hover, .share button:hover { background: var(--ej-forest); color: var(--ej-lime); }
.share button.copied { background: var(--ej-lime); }
.art-nav { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center; margin-top: 1.5rem; }
.btn-outline-ej { border: 1.5px solid rgba(14,59,46,.2); color: var(--ej-forest); background: #fff; }
.btn-outline-ej:hover { border-color: var(--ej-forest); background: var(--ej-forest); color: #fff; }
.art-next { max-width: 420px; text-align: right; text-decoration: none; color: var(--ej-forest); font-weight: 700; }
.art-next small { display: block; font-weight: 500; color: var(--ej-muted); }
.art-next:hover { color: var(--ej-green); }
.rel-list { display: flex; flex-direction: column; gap: .5rem; }
.rel-item { display: flex; gap: .8rem; align-items: center; padding: .5rem; border-radius: .8rem; text-decoration: none; color: var(--ej-ink); font-size: .9rem; font-weight: 600; line-height: 1.35; transition: background .2s; }
.rel-item:hover { background: var(--ej-cream); color: var(--ej-forest); }
.rel-item small { display: block; font-weight: 500; color: var(--ej-muted); font-size: .76rem; margin-bottom: .15rem; }
.rel-img { flex-shrink: 0; width: 72px; height: 56px; border-radius: .6rem; overflow: hidden; background: var(--ej-sand); }
.rel-img img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Uudise sisuleht: pealkiri sisus ---------- */
.hero-title { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: clamp(2rem, 4.5vw, 3.2rem); color: #fff; margin: .8rem 0 0; letter-spacing: -.02em; }
.art-head { margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(14,59,46,.08); }
.art-head h1 { font-size: clamp(1.6rem, 3.2vw, 2.4rem); font-weight: 800; line-height: 1.2; margin: .8rem 0 1.1rem; color: var(--ej-forest); }
.art-head .article-meta { margin-top: 0; color: var(--ej-muted); }
.art-head .article-meta i { color: var(--ej-green); }
.art-head .article-meta .author strong { color: var(--ej-forest); }
.art-head .article-meta .author small { color: var(--ej-muted); }

/* ---------- Sorteerimisjuhend ---------- */
.guide-top { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: flex-end; justify-content: space-between; margin-bottom: 1.5rem; }
.guide-top > div { max-width: 44rem; }
.sort-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.sort-chip { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem 1rem .5rem .55rem; border-radius: 999px; background: #fff; color: var(--ej-ink); font-weight: 600; font-size: .92rem; text-decoration: none; border: 1px solid rgba(14,59,46,.1); transition: all .2s; }
.sort-chip i { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--c); color: var(--t); font-size: .85rem; }
.sort-chip:hover { border-color: var(--c); transform: translateY(-2px); color: var(--ej-forest); }
.sort-card { height: 100%; background: #fff; border-radius: var(--ej-radius); overflow: hidden; box-shadow: 0 10px 30px -22px rgba(14,59,46,.45); scroll-margin-top: 110px; display: flex; flex-direction: column; }
.sort-card:target { box-shadow: 0 0 0 4px var(--c), var(--ej-shadow); }
.sort-card header { background: var(--c); color: var(--t); padding: 1.25rem 1.4rem; display: flex; align-items: center; gap: .9rem; }
.sort-card header .ico { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.2); font-size: 1.6rem; }
.sort-card header h2 { color: var(--t); font-size: 1.3rem; font-weight: 800; margin: 0; }
.sort-body { padding: 1.3rem 1.4rem 1.5rem; }
.sort-body p { color: var(--ej-ink); line-height: 1.6; margin-bottom: 1rem; }
.sort-body h3 { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ej-muted); font-weight: 700; margin-bottom: .6rem; }
.sort-body ul { list-style: none; padding: 0; margin: 0; }
.sort-body li { position: relative; padding: .35rem 0 .35rem 1.4rem; border-top: 1px dashed rgba(14,59,46,.1); font-size: .95rem; }
.sort-body li:first-child { border-top: 0; }
.sort-body li::before { content: ""; position: absolute; left: .2rem; top: .85rem; width: 8px; height: 8px; border-radius: 3px; background: var(--c); box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.guide-tips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2.5rem; }
.guide-tips .tip { display: flex; gap: .9rem; padding: 1.2rem 1.3rem; background: var(--ej-forest); color: rgba(255,255,255,.8); border-radius: 1rem; font-size: .92rem; }
.guide-tips .tip i { font-size: 1.5rem; color: var(--ej-lime); }
.guide-tips .tip strong { display: block; color: #fff; }
@media (max-width: 767.98px) { .guide-tips { grid-template-columns: 1fr; } }
@media (min-width: 992px) and (max-width: 1199.98px) { .navbar-ej .nav-link { padding: .5rem .45rem !important; font-size: .95rem; } .navbar-ej .brand-logo { height: 34px; } }
.navbar-ej .btn-ej-dark { white-space: nowrap; }
@media (min-width: 1200px) and (max-width: 1399.98px) { .navbar-ej .nav-link { padding: .5rem .6rem !important; } .navbar-ej .navbar-brand { margin-right: .75rem; } }
@media (min-width: 1400px) { .navbar-ej .nav-link { padding: .5rem .75rem !important; } }
@media (min-width: 1200px) and (max-width: 1399.98px) { .navbar-ej .nav-cta .cta-text { display: none; } .navbar-ej .nav-cta { width: 44px; height: 44px; padding: 0; display: inline-grid; place-items: center; } }

/* Sorteerimisjuhend: ametlikud piktogrammid (assets/img/sorteerimine/) */
.sort-card header { justify-content: flex-start; padding: 1.1rem 1.3rem; gap: 1rem; }
.sort-ico { flex-shrink: 0; width: 88px; height: 88px; display: block; }
.sort-ico .ico-img { width: 100%; height: 100%; display: block; }
.sort-card header h2 { font-size: 1.35rem; }
.chip-ico { width: 32px; height: 32px; border-radius: 50%; background: var(--c); display: grid; place-items: center; overflow: hidden; flex-shrink: 0; }
.chip-ico .ico-img { width: 78%; height: 78%; display: block; }
.sort-chip { padding-left: .35rem; }

/* ---------- Juhendid (KKK põhjal) ---------- */
.guide-toc { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 1.5rem; }
.chip-link { display: inline-block; padding: .4rem .9rem; border-radius: 999px; background: var(--ej-cream); color: var(--ej-forest) !important; font-weight: 600 !important; font-size: .88rem; text-decoration: none; border: 1px solid rgba(14,59,46,.08); }
.chip-link:hover { background: var(--ej-lime); }
.guide-doc .doc-section h2 { font-size: clamp(1.2rem, 2.2vw, 1.45rem); }
.qa { border: 1px solid rgba(14,59,46,.1); border-radius: 1rem; margin-bottom: .6rem; background: #fff; transition: border-color .2s, box-shadow .2s; }
.qa[open] { border-color: var(--ej-leaf); box-shadow: 0 10px 24px -20px rgba(14,59,46,.5); }
.qa summary { list-style: none; cursor: pointer; padding: 1rem 3rem 1rem 1.2rem; font-weight: 700; color: var(--ej-forest); position: relative; line-height: 1.4; }
.qa summary::-webkit-details-marker { display: none; }
.qa summary::after { content: "+"; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; background: var(--ej-cream); display: grid; place-items: center; font-weight: 700; color: var(--ej-green); transition: transform .2s, background .2s; }
.qa[open] summary::after { content: "–"; background: var(--ej-lime); color: var(--ej-forest); }
.qa summary:focus-visible { outline: 3px solid var(--ej-leaf); outline-offset: 2px; border-radius: 1rem; }
.qa-body { padding: 0 1.2rem 1rem; }
.qa-body p { margin-bottom: .6rem; }
.qa-body p:last-child { margin-bottom: 0; }
.source-note { margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid rgba(14,59,46,.08); font-size: .88rem; color: var(--ej-muted) !important; }
.source-note i { color: var(--ej-green); margin-right: .3rem; }
.help-card { display: flex; gap: .8rem; font-size: .9rem; color: var(--ej-muted); }
.help-card > i { font-size: 1.3rem; color: var(--ej-green); }
.help-card a { color: var(--ej-green); font-weight: 600; }
.where-card { display: flex; gap: 1rem; height: 100%; padding: 1.2rem; border-radius: 1rem; background: var(--ej-cream); border-left: 4px solid var(--wc, var(--ej-leaf)); }
.where-card h3 { font-size: 1.05rem; font-weight: 700; margin: 0 0 .2rem !important; }
.where-card p { font-size: .92rem; margin: .5rem 0 0; }
.w-ico { flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--wc, var(--ej-leaf)); color: #fff; font-size: 1.2rem; }
.w-dest { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .2rem .6rem; border-radius: 999px; background: #fff; color: var(--wc, var(--ej-green)); }
.w-jaam { --wc: #C0392B; } .w-pakend { --wc: #B8A200; } .w-olme { --wc: #1A1919; }

/* ---------- Toidujäätmete juhend ---------- */
.info-figure { margin: 0 0 1.5rem; }
.info-figure img { width: 100%; height: auto; border-radius: 1rem; display: block; background: #F4EEDD; }
.info-figure figcaption { margin-top: .75rem; }
.info-figure details { border: 1px solid rgba(14,59,46,.1); border-radius: 1rem; }
.info-figure summary { cursor: pointer; padding: .8rem 1.1rem; font-weight: 600; color: var(--ej-green); list-style: none; }
.info-figure summary::-webkit-details-marker { display: none; }
.info-figure summary::before { content: "\F4E4"; font-family: "bootstrap-icons"; margin-right: .5rem; }
.info-figure .qa-body { padding-top: .25rem; font-size: .95rem; }
.compost-note { background: #445244; }
.compost-note p { color: rgba(255,255,255,.9) !important; }
.compost-opt { position: relative; height: 100%; padding: 1.4rem 1.3rem 1.2rem; border-radius: 1rem; background: var(--ej-cream); border: 1px solid rgba(14,59,46,.06); }
.compost-opt .opt-art { width: 150px; max-width: 60%; margin: 0 auto .9rem; }
.compost-opt h3 { font-size: 1.1rem; font-weight: 700; margin: 0 0 .4rem !important; }
.compost-opt p { margin: 0; font-size: .95rem; }
.opt-num { position: absolute; top: 1rem; left: 1rem; width: 32px; height: 32px; border-radius: 50%; background: var(--ej-forest); color: var(--ej-lime); font-weight: 800; display: grid; place-items: center; font-size: .9rem; }
.opt-num.sm { position: static; width: 28px; height: 28px; font-size: .8rem; flex-shrink: 0; }
.opt-more { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.opt-more li { display: inline-flex; align-items: center; gap: .6rem; padding: .45rem 1rem .45rem .45rem; border-radius: 999px; background: #fff; border: 1px solid rgba(14,59,46,.12); font-weight: 700; color: var(--ej-forest); }
.value-card p + p { margin-top: .6rem; }

/* ---------- Muud jäätmed / patarei / viipekeel ---------- */
.chip-row { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.chip-link i { margin-right: .35rem; color: var(--ej-green); }
.dl-card { display: flex; align-items: center; gap: .9rem; height: 100%; padding: 1rem 1.2rem; border-radius: 1rem; background: var(--ej-forest); color: #fff !important; text-decoration: none !important; font-weight: 600; transition: transform .2s, box-shadow .2s; }
.dl-card:hover { transform: translateY(-2px); box-shadow: var(--ej-shadow); }
.dl-card > i { font-size: 1.6rem; color: var(--ej-lime); }
.dl-card small { display: block; font-weight: 400; color: rgba(255,255,255,.65); font-size: .8rem; }
.waste-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: 1rem; }
.waste-tags span { font-size: .8rem; font-weight: 600; padding: .2rem .6rem; border-radius: 999px; background: var(--ej-sand); color: var(--ej-forest); }
.waste-sheet { margin: 0; border-radius: var(--ej-radius); overflow: hidden; border: 1px solid rgba(14,59,46,.08); background: #fff; box-shadow: 0 10px 30px -20px rgba(14,59,46,.4); }
.waste-sheet img { display: block; width: 100%; height: auto; }
.waste-sheet a { display: block; cursor: zoom-in; }
.battery-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.25rem; padding: 1.5rem; border-radius: var(--ej-radius); background: var(--ej-forest); color: #fff; margin-bottom: 2rem; }
.battery-cta > i { font-size: 2.4rem; color: var(--ej-lime); }
.battery-cta > div { flex: 1 1 260px; }
.battery-cta h2 { color: #fff; }
.battery-cta a:not(.btn) { color: var(--ej-lime); }
.cycle-steps { list-style: none; padding: 0; margin: 1.5rem 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .75rem; counter-reset: cyc; }
.cycle-steps li { counter-increment: cyc; display: flex; gap: .8rem; align-items: flex-start; padding: 1rem; border-radius: 1rem; background: var(--ej-cream); position: relative; }
.cycle-steps li::after { content: counter(cyc); position: absolute; top: .6rem; right: .8rem; font-weight: 800; font-size: .8rem; color: var(--ej-muted); opacity: .6; }
.cycle-steps li:last-child { background: var(--ej-sand); outline: 2px solid var(--ej-leaf); }
.cycle-steps strong { display: block; color: var(--ej-forest); line-height: 1.3; }
.cycle-steps span:not(.cyc-ico) { display: block; font-size: .88rem; color: var(--ej-muted); margin-top: .2rem; }
.cyc-ico { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--ej-green); font-size: 1.2rem; }
.callout-warn { border-left-color: var(--ej-ohtlik); background: #fdf1ef; }
.callout-warn > i { color: var(--ej-ohtlik); }
.video-frame { border-radius: var(--ej-radius); overflow: hidden; background: #000; box-shadow: var(--ej-shadow); }
.video-frame iframe { border: 0; }

/* ---------- Kontakt ---------- */
.contact-tile { display: flex; flex-direction: column; gap: .2rem; height: 100%; padding: 1.5rem; border-radius: var(--ej-radius); background: var(--ej-cream); color: var(--ej-ink); text-decoration: none; transition: transform .2s, box-shadow .2s, background-color .2s; }
.contact-tile:hover { transform: translateY(-3px); box-shadow: var(--ej-shadow); background: #fff; color: var(--ej-ink); }
.contact-tile i { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--ej-forest); color: var(--ej-lime); font-size: 1.3rem; margin-bottom: .6rem; }
.contact-tile span { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ej-muted); font-weight: 600; }
.contact-tile strong { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.15rem; color: var(--ej-forest); word-break: break-word; }
.alert-card { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.25rem; padding: 1.4rem 1.5rem; border-radius: var(--ej-radius); background: #fff8e1; border: 1px solid #f2d27a; }
.alert-card > i { font-size: 2rem; color: #b7791f; }
.alert-card > div { flex: 1 1 280px; }
.alert-card a:not(.btn) { color: var(--ej-forest); font-weight: 600; }
.team-card { height: 100%; padding: 1.4rem; border-radius: var(--ej-radius); background: #fff; border: 1px solid rgba(14,59,46,.08); box-shadow: 0 10px 30px -22px rgba(14,59,46,.45); display: flex; flex-direction: column; }
.team-head { display: flex; gap: .9rem; align-items: center; margin-bottom: .9rem; }
.team-head h3 { font-size: 1.1rem; margin: 0; color: var(--ej-forest); }
.team-head p { margin: 0; font-size: .9rem; color: var(--ej-green); font-weight: 600; }
.avatar { flex: 0 0 auto; width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, var(--ej-green), var(--ej-forest)); color: #fff; font-weight: 700; font-family: 'Plus Jakarta Sans', sans-serif; }
.team-tags { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: .35rem; }
.team-tags li { font-size: .78rem; padding: .18rem .55rem; border-radius: 999px; background: var(--ej-cream); color: var(--ej-forest); }
.team-contact { list-style: none; padding: .9rem 0 0; margin: auto 0 0; border-top: 1px solid rgba(14,59,46,.08); font-size: .93rem; }
.team-contact li { display: flex; gap: .55rem; align-items: center; padding: .15rem 0; word-break: break-all; }
.team-contact i { color: var(--ej-green); }
.team-contact a { color: var(--ej-ink); text-decoration: none; }
.team-contact a:hover { color: var(--ej-green); text-decoration: underline; }
.form-card, .org-card { height: 100%; padding: 2rem; border-radius: var(--ej-radius); }
.form-card { background: #fff; border: 1px solid rgba(14,59,46,.08); box-shadow: var(--ej-shadow); }
.form-card .form-control { border-radius: .75rem; padding: .7rem .9rem; background: var(--ej-cream); border-color: transparent; }
.form-card .form-control:focus { background: #fff; border-color: var(--ej-leaf); box-shadow: 0 0 0 .2rem rgba(76,194,122,.2); }
.form-card .form-label { font-weight: 600; font-size: .9rem; }
.org-card { background: var(--ej-forest); color: rgba(255,255,255,.85); }
.org-card h2 { color: #fff; }
.org-list { list-style: none; padding: 0; margin: 0 0 1rem; }
.org-list li { display: flex; gap: .6rem; padding: .3rem 0; }
.org-list i { color: var(--ej-lime); }
.org-card a { color: #fff; }
.map-frame { border-radius: 1rem; overflow: hidden; }
.map-frame iframe { border: 0; }
@media (max-width: 575.98px) { .form-card, .org-card { padding: 1.4rem; } }
.battery-cta p { color: rgba(255,255,255,.85) !important; }
.contact-tile { background: #fff; border: 1px solid rgba(14,59,46,.08); }
.org-card { display: flex; flex-direction: column; }
.org-card .map-frame { margin-top: auto; }

/* ---------- Kasulik info ---------- */
.ext-links { list-style: none; padding: 0; margin: 0; }
.ext-links a { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .4rem .2rem; color: var(--ej-ink); text-decoration: none; font-size: .92rem; border-bottom: 1px dashed rgba(14,59,46,.1); }
.ext-links li:last-child a { border-bottom: 0; }
.ext-links a i { font-size: .75rem; color: var(--ej-muted); }
.ext-links a:hover { color: var(--ej-green); }
.table-ej { border-radius: 1rem; border: 1px solid rgba(14,59,46,.08); overflow: hidden; }
.table-ej table { --bs-table-bg: #fff; font-size: .95rem; }
.table-ej thead th { background: var(--ej-forest); color: #fff; font-weight: 600; font-size: .85rem; border: 0; padding: .8rem 1rem; }
.table-ej td, .table-ej tbody th { padding: .65rem 1rem; }
.table-ej tbody tr:nth-child(even) > * { background: var(--ej-cream); }
.table-ej tbody th { color: var(--ej-forest); font-weight: 600; }
.doc-links { display: grid; gap: .75rem; margin: 1.5rem 0; }
.doc-link { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; border-radius: 1rem; background: #fff; border: 1px solid rgba(14,59,46,.1); color: var(--ej-ink) !important; text-decoration: none !important; transition: transform .2s, box-shadow .2s, border-color .2s; }
.doc-link:hover { transform: translateY(-2px); box-shadow: var(--ej-shadow); border-color: var(--ej-leaf); }
.doc-link > span:nth-child(2) { flex: 1; min-width: 0; }
.doc-link strong { display: block; color: var(--ej-forest); line-height: 1.35; }
.doc-link small { display: block; color: var(--ej-muted); font-size: .85rem; margin-top: .15rem; }
.doc-link > i { color: var(--ej-muted); }
.doc-src { display: block; font-style: normal; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ej-green); margin-bottom: .1rem; }
.doc-ico { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; background: var(--ej-sand); color: var(--ej-forest); font-size: 1.25rem; }
.doc-ico.own { background: var(--ej-forest); color: var(--ej-lime); }
.project-head { padding: 1.75rem; border-radius: var(--ej-radius); background: var(--ej-forest); color: rgba(255,255,255,.85); margin-bottom: 1.5rem; }
.project-head h2 { color: #fff; font-size: clamp(1.2rem, 2.2vw, 1.5rem); margin: 0 0 .75rem; }
.project-head p { color: rgba(255,255,255,.8) !important; margin: 0; }
.funder-logo { margin: 2rem 0 0; padding: 1rem; background: #fff; border-radius: 1rem; border: 1px solid rgba(14,59,46,.08); text-align: center; }
.funder-logo img { max-width: 320px; width: 100%; height: auto; }
.bar-chart { display: grid; gap: .45rem; margin: 1.25rem 0 1.5rem; padding: 1.25rem; background: var(--ej-cream); border-radius: 1rem; }
.bar-row { display: grid; grid-template-columns: 3.2rem 1fr 3rem; align-items: center; gap: .75rem; font-size: .9rem; }
.bar-row span { color: var(--ej-muted); font-weight: 600; }
.bar-row strong { text-align: right; color: var(--ej-forest); }
.bar { height: 12px; border-radius: 99px; background: rgba(14,59,46,.08); overflow: hidden; }
.bar i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--ej-green), var(--ej-lime)); }
.timeline-ej { list-style: none; padding: 0 0 0 1.25rem; margin: 1.5rem 0; border-left: 2px solid var(--ej-sand); }
.timeline-ej li { position: relative; padding: 0 0 1.4rem 1.25rem; }
.timeline-ej li::before { content: ""; position: absolute; left: calc(-1.25rem - 7px); top: .3rem; width: 12px; height: 12px; border-radius: 50%; background: var(--ej-green); box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--ej-sand); }
.tl-date { display: inline-block; font-size: .8rem; font-weight: 700; color: var(--ej-forest); background: var(--ej-lime); border-radius: 99px; padding: .15rem .6rem; margin-bottom: .35rem; }
.timeline-ej strong { display: block; color: var(--ej-forest); }
.timeline-ej p { margin: .25rem 0 0; font-size: .95rem; }
.step-list { counter-reset: st; list-style: none; padding: 0; display: grid; gap: .5rem; }
.step-list li { counter-increment: st; display: flex; gap: .8rem; align-items: flex-start; padding: .75rem 1rem; background: var(--ej-cream); border-radius: .85rem; }
.step-list li::before { content: counter(st); flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--ej-forest); color: var(--ej-lime); font-weight: 700; font-size: .85rem; }
.kkk-search { position: relative; margin-bottom: 1rem; }
.kkk-search i { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--ej-muted); }
.kkk-search input { padding: .8rem 1rem .8rem 2.6rem; border-radius: 999px; background: var(--ej-cream); border-color: transparent; }
.kkk-search input:focus { background: #fff; border-color: var(--ej-leaf); box-shadow: 0 0 0 .2rem rgba(76,194,122,.2); }
@media (max-width: 575.98px) { .stat-row { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .table-ej thead th, .table-ej td, .table-ej tbody th { padding: .6rem .6rem; font-size: .85rem; } }
.priv-list { list-style: none; padding-left: 1rem; margin: 0 0 1rem; }
.priv-list li { padding: .2rem 0; }

/* ---------- Ligipääsetavus (navbar) ---------- */
.a11y-btn { display: inline-flex; align-items: center; gap: .45rem; border: 0; background: transparent; color: var(--ej-ink); font-weight: 500; padding: .5rem .8rem; border-radius: 999px; white-space: nowrap; transition: background-color .2s, color .2s; }
.a11y-btn i { font-size: 1.25rem; color: var(--ej-green); line-height: 1; }
.a11y-btn:hover, .a11y-btn[aria-expanded="true"] { background: var(--ej-cream); color: var(--ej-forest); }
@media (min-width: 992px) and (max-width: 1199.98px) { .a11y-btn span { display: none; } }
@media (max-width: 991.98px) { .nav-a11y { padding: .25rem 0 .75rem; } .a11y-btn { padding-left: .9rem; } }

@media (max-width: 991.98px) { .hero { padding: 8.5rem 0 6.5rem; } }

/* ---------- Sorteerimiskaardid: ametlikud ikoonid ---------- */
.waste-card .dot { background: var(--c); overflow: hidden; padding: 0; border-radius: 50%; width: 60px; height: 60px; }
.waste-card .dot .ico-img { width: 80%; height: 80%; display: block; }
.waste-card .dot .pic-crop { width: 100%; height: 100%; background-color: var(--c); }
.waste-card[style*="#1A1919"] .dot { box-shadow: 0 0 0 2px rgba(255,255,255,.25), 0 10px 24px -8px #000; }

/* ---------- Liikmete kaart ---------- */
.kov-map-wrap { position: relative; }
.kov-map { width: 100%; height: auto; display: block; overflow: visible; }
.kov { fill: #E3EADD; stroke: #fff; stroke-width: 1.1; stroke-linejoin: round; transition: fill .2s; }
.kov.is-member { fill: #B8E05A; cursor: pointer; }
.kov.is-member:hover, .kov.is-member.is-hover { fill: #93CC45; }
.kov.is-member.is-active { fill: var(--ej-green); }
.pin { cursor: pointer; outline: none; }
.pin-shape { fill: var(--ej-forest); stroke: #fff; stroke-width: 1.6; transition: fill .2s; }
.pin-dot { fill: var(--ej-lime); }
.pin-label { font: 700 13px "Inter", system-ui, sans-serif; fill: var(--ej-forest); paint-order: stroke; stroke: #fff; stroke-width: 3.5px; stroke-linejoin: round; pointer-events: none; }
.pin:hover .pin-shape, .pin:focus-visible .pin-shape, .pin.is-active .pin-shape { fill: var(--ej-green); }
.pin:focus-visible .pin-shape { stroke: var(--ej-lime); stroke-width: 3; }
.pin.is-active .pin-dot { fill: #fff; }
.pin.is-active .pin-label { fill: var(--ej-green); }
.pin.is-active { transform-box: fill-box; }
.kov-legend { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .85rem; color: var(--ej-muted); margin-top: .5rem; }
.kov-legend .sw { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: .4rem; vertical-align: -1px; }
.sw-member { background: #B8E05A; } .sw-other { background: #E3EADD; }
.map-src { font-size: .72rem; color: var(--ej-muted); margin: .35rem 0 0; opacity: .8; }
.kov-card { margin-top: 1.25rem; border-radius: 1rem; background: var(--ej-cream); padding: 1rem 1.1rem; min-height: 88px; display: flex; align-items: center; }
.kov-card-empty { display: flex; gap: .6rem; align-items: center; color: var(--ej-muted); font-size: .9rem; }
.kov-card-empty i { font-size: 1.3rem; color: var(--ej-green); }
.kov-card-body { display: flex; gap: .9rem; align-items: center; width: 100%; }
.kov-card-body img { width: 52px; height: 60px; object-fit: contain; flex-shrink: 0; }
.kov-card-body h3 { font-size: 1.05rem; margin: 0; color: var(--ej-forest); }
.kov-card-body small { display: block; color: var(--ej-muted); font-size: .82rem; margin-bottom: .3rem; }
.kov-card-body a { font-weight: 600; font-size: .9rem; color: var(--ej-green); text-decoration: none; }
.kov-card-body a:hover { text-decoration: underline; }
@media (max-width: 767.98px) {
  .members-wrap { padding: 1.5rem 1rem; }
  .pin-label { display: none; }
  .pin.is-active .pin-label { display: inline; font-size: 30px; stroke-width: 7px; }
  .pin { transform-origin: 0 0; }
  .pin-shape { transform: scale(1.5); }
  .pin-dot { transform: scale(1.5); }
}
.pin, .pin:hover { text-decoration: none !important; } .pin-label { text-decoration: none; }
.kov-map-wrap + .kov-card { margin-top: 1rem; }
@media (min-width: 768px) { .kov-card { max-width: 460px; } }

/* ---------- Partnerite logod ---------- */
.partner-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
.partner-logo { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: 1.5rem 1.25rem 1.1rem; min-height: 150px; background: #fff; border: 1px solid rgba(14,59,46,.08); border-radius: var(--ej-radius); text-decoration: none; text-align: center; transition: transform .25s, box-shadow .25s, border-color .25s; }
.partner-logo:hover { transform: translateY(-4px); box-shadow: var(--ej-shadow); border-color: var(--ej-leaf); }
.pl-img { height: 64px; width: 100%; display: flex; align-items: center; justify-content: center; }
.pl-img img { max-height: 100%; max-width: 170px; width: auto; height: auto; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .25s, opacity .25s; }
.partner-logo:hover .pl-img img, .partner-logo:focus-visible .pl-img img { filter: none; opacity: 1; }
.pl-img.is-white img, .partner-logo:hover .pl-img.is-white img { filter: brightness(0) saturate(100%) invert(16%) sepia(28%) saturate(1400%) hue-rotate(115deg) brightness(90%); opacity: .8; }
.partner-logo:hover .pl-img.is-white img { opacity: 1; }
.pl-img.is-boxed img { mix-blend-mode: multiply; max-height: 80px; }
.pl-name { font-size: .8rem; color: var(--ej-muted); line-height: 1.35; }

/* ---------- Sisulehed ilma külgribata ---------- */
.page-body .col-12 > .prose, .page-body .col-12 > article.prose { width: 100%; }
.members-intro .kov-map-wrap { margin-top: .5rem; }
@media (max-width: 575.98px) { .partner-grid { grid-template-columns: 1fr 1fr; } }
.rel-list.rel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1rem; }
.rel-grid .rel-item { flex-direction: column; align-items: stretch; gap: .75rem; padding: .75rem .75rem 1rem; background: #fff; border: 1px solid rgba(14,59,46,.08); border-radius: 1rem; }
.rel-grid .rel-item:hover { background: #fff; box-shadow: var(--ej-shadow); }
.rel-grid .rel-img { width: 100%; height: auto; aspect-ratio: 16 / 10; border-radius: .7rem; }
.rel-grid .rel-img img { width: 100%; height: 100%; object-fit: cover; }
.art-related { margin-top: 1rem; }
/* loetavuse parandused */
.prose .summary-box p, .summary-box p { color: rgba(255,255,255,.9); }
.prose .summary-box a { color: var(--ej-lime); }
.prose a.btn-outline-ej { color: var(--ej-forest); }
.prose a.btn-outline-ej:hover { color: #fff; }
.prose a.btn-ej { color: var(--ej-forest); }
/* akordion: chevron alla / üles */
.qa summary::after { content: "\F282"; font-family: "bootstrap-icons"; font-weight: 400; font-size: .85rem; line-height: 1; }
.qa[open] summary::after { content: "\F286"; }
.partner-logo { padding: 1.25rem .75rem 1rem; }
.pl-name { font-size: .76rem; hyphens: auto; overflow-wrap: anywhere; }
.footer-about { font-size: .88rem; line-height: 1.65; max-width: 30rem; }

/* Kaardi hüpik-kaart */
.kov-pop { position: absolute; z-index: 5; width: 270px; max-width: calc(100% - 8px); background: #fff; border-radius: 1rem; padding: 1rem 1rem .9rem; box-shadow: 0 18px 40px -12px rgba(14,59,46,.45), 0 0 0 1px rgba(14,59,46,.06); animation: popIn .18s ease-out; }
.kov-pop::after { content: ""; position: absolute; left: var(--arrow, 50%); bottom: -7px; width: 14px; height: 14px; background: #fff; transform: translateX(-50%) rotate(45deg); box-shadow: 3px 3px 6px -3px rgba(14,59,46,.25); }
.kov-pop.below::after { bottom: auto; top: -7px; box-shadow: -3px -3px 6px -3px rgba(14,59,46,.2); }
@keyframes popIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.kov-pop-close { position: absolute; top: .45rem; right: .45rem; width: 28px; height: 28px; border: 0; border-radius: 50%; background: var(--ej-cream); color: var(--ej-muted); display: grid; place-items: center; font-size: .75rem; }
.kov-pop-close:hover { background: var(--ej-sand); color: var(--ej-forest); }
.kov-pop-head { display: flex; gap: .75rem; align-items: center; padding-right: 1.5rem; margin-bottom: .8rem; }
.kov-pop-head img { width: 44px; height: 52px; object-fit: contain; flex-shrink: 0; }
.kov-pop-head small { display: block; font-size: .75rem; color: var(--ej-muted); }
.kov-pop-head h3 { font-size: 1.02rem; margin: 0; color: var(--ej-forest); }
.kov-pop-link { display: block; padding: .6rem .85rem; border-radius: .75rem; background: var(--ej-forest); color: #fff !important; font-weight: 600; font-size: .9rem; text-decoration: none !important; }
.kov-pop-link:hover, .kov-pop-link:focus-visible { background: var(--ej-green); }
.kov-pop-link i { color: var(--ej-lime); margin-left: .2rem; font-size: .8rem; }
.kov-pop-link span { display: block; font-weight: 400; font-size: .75rem; color: rgba(255,255,255,.7); }

/* Partnerid ilma kaardita */
.partner-logo { background: transparent; border: 0; box-shadow: none !important; padding: 1rem .5rem; min-height: 0; }
.partner-logo:hover { transform: translateY(-3px); }
.pl-img.is-boxed img { mix-blend-mode: multiply; }
.pl-name { overflow-wrap: normal; hyphens: manual; }
