@import url("https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700;800&family=Source+Serif+4:ital,wght@0,400;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap");
/* ============================================================
   heg-ds.css — Heg.ai Design System v6 restyle layer for site-v2
   Loaded LAST. Never edits the minified _astro/*.css.
   Layer A: fonts (above) · Layer B: :root token remap (instant
   site-wide recolor/retype + gradient kill) · Layer C: per-section
   overrides. Content/text is never changed — shell only.
   ============================================================ */

/* ---------- DS palette / primitives (for use in Layer C) ---------- */
:root {
  --heg-ivory:        #FCFAF1;
  --heg-ivory-300:    #F1ECD8;
  --heg-ink:          #101F18;
  --heg-ink-700:      #1B2E25;
  --heg-green:        #06463D;
  --heg-green-600:    #0A5A4E;
  --heg-green-800:    #04342D;
  --heg-ember:        #FF6A3D;
  --heg-line-ink:     rgba(16,31,24,0.12);
  --heg-line-ivory:   rgba(250,247,234,0.16);
  --heg-text-2:       rgba(16,31,24,0.62);

  --heg-font:   "Onest", system-ui, -apple-system, sans-serif;
  --heg-quote:  "Source Serif 4", Georgia, serif;
  --heg-mono:   "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;

  --heg-shadow-sm: 0 2px 10px rgba(16,31,24,0.07);
  --heg-shadow-lg: 0 16px 48px rgba(16,31,24,0.10);
  --heg-shadow-xl: 0 28px 72px -20px rgba(16,31,24,0.45);

  --heg-glass-white:        rgba(252,250,241,0.20);
  --heg-glass-white-strong: rgba(252,250,241,0.55);
  --heg-glass-green:        rgba(6,70,61,0.34);
  --heg-glass-blur:         blur(30px) saturate(125%);
  --heg-glass-rim:          inset 0 1px 0 rgba(255,255,255,0.18);

  /* true monochrome film grain — used only on photo wrappers (Layer C) */
  --heg-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  /* warm "под плёнку" grade applied to bare <img> photos (Layer C) */
  --heg-film: contrast(0.95) saturate(0.9) brightness(1.04) sepia(0.16) hue-rotate(-8deg);
}

/* ============================================================
   LAYER B — remap the site's own :root tokens to DS values.
   A later :root wins for custom properties, so every var() in the
   site's CSS resolves to DS values automatically.
   ============================================================ */
:root {
  /* — Fonts — */
  --f-sans:    "Onest", system-ui, -apple-system, sans-serif;
  --f-display: "Onest", system-ui, -apple-system, sans-serif;
  --f-serif:   "Onest", system-ui, -apple-system, sans-serif; /* site used this as sans; serif accents handled in Layer C */
  --f-mono:    "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;

  /* — Brand greens → DS Green / neutral light ends → Ivory — */
  --brand-500:      #06463D;
  --brand-500-text: #06463D;
  --brand-400:      #0A5A4E;
  --brand-300:      #06463D;
  --brand-200:      #DCE6DD;   /* faint sage — light tint usages */
  --brand-100:      #F1ECD8;
  --brand-050:      #FCFAF1;
  --brand-700:      #04342D;
  --brand-900:      #101F18;

  /* — Accent oranges → Ember (use is constrained in Layer C) — */
  --accent-500: #FF6A3D;
  --accent-600: #FF6A3D;
  --accent-100: #FFE2D6;

  /* — Ink / greys → DS Ink scale (green-valued inks kept green) — */
  --ink-900: #101F18;
  --ink-soft:#1B2E25;
  --ink-800: #06463D;
  --ink-700: #06463D;
  --ink-600: #3A4A42;
  --ink-500: #5A6B63;
  --ink-400: #5A6B63;
  --ink-300: #8A958E;
  --ink-200: #CDD4CC;
  --ink-100: #E6E9E2;
  --ink-050: #FCFAF1;

  /* — Semantic — */
  --white:        #FCFAF1;  /* DS bans pure-white fills; also makes on-dark text Ivory */
  --success:      #0A5A4E;  --success-bg:#E6EFEA;
  --warning:      #FF6A3D;  --warning-bg:#FFE2D6;
  --danger:       #C2221B;  --danger-bg:#FDEBEA;   /* form errors stay red (functional) */
  --info:         #06463D;  --info-bg:#E6EFEA;
  --focus:        #FF6A3D;  /* DS focus halo = ember */

  /* — Surfaces — */
  --surface:        #FCFAF1;
  --surface-alt:    #F4F1E4;
  --surface-sunk:   #EFEBDB;
  --surface-dark:   #101F18;
  --surface-darker: #0B1611;

  /* — Text & borders — */
  --text:         #101F18;
  --text-muted:   #3A4A42;
  --text-subtle:  #5A6B63;
  --border:       rgba(16,31,24,0.12);
  --border-strong:#101F18;

  /* — On-dark accents — */
  --on-dark-accent:      #FF6A3D;
  --on-dark-accent-soft: rgba(255,106,61,0.70);
  --on-dark-accent-lime: rgba(250,247,234,0.92);
  --on-dark-muted:  rgba(250,247,234,0.72);
  --on-dark-subtle: rgba(250,247,234,0.50);
  --on-dark-border: rgba(250,247,234,0.14);
  --on-dark-card:   rgba(250,247,234,0.05);

  /* — Radii: enforce rectangles (16 large / 12 button / pill tags) — */
  --r-xl:  16px;
  --r-2xl: 16px;
  --r-3xl: 16px;
  --r-pill:999px;

  /* — Shadows: green-tinted depth; no 1px-border "depth" — */
  --e-button:  0 2px 8px rgba(16,31,24,0.10);
  --e-input:   0 1px 2px rgba(16,31,24,0.05);
  --e-card:    0 16px 48px rgba(16,31,24,0.10);
  --e-overlay: 0 16px 48px rgba(16,31,24,0.18);
  --e-1: 0 2px 10px rgba(16,31,24,0.07);
  --e-3: 0 28px 72px -20px rgba(16,31,24,0.45);

  /* — FLATTEN every gradient token to a solid DS colour (kills all
       token-driven gradients site-wide) — */
  --brand-grad:       #06463D;
  --brand-grad-hover: #0A5A4E;
  --brand-grad-warm:  #101F18;  /* was banned ember→green → Ink */
  --brand-grad-dark:  #101F18;
  --hero-wash:        #FCFAF1;  /* page wash → Ivory */
  --card-grad-base:   #06463D;
  --card-grad-accent: #101F18;  /* was banned warm → Ink */
  --card-grad-dark:   #101F18;
}

/* Global type + page colour (low-specificity; Layer C handles components) */
html { background: var(--heg-ivory); }
body {
  font-family: var(--heg-font);
  background: var(--heg-ivory);
  color: var(--heg-ink);
  -webkit-font-smoothing: antialiased;
}

/* ============================================================
   LAYER C — per-section overrides.
   `!important` is used to beat Astro [data-astro-cid-*] specificity
   and in-body inline <style>/style="" (none of which use !important).
   ============================================================ */

/* ---------- Shared shell · HEADER (white-glass) ---------- */
.site-header {
  background: rgba(250,247,234,0.72) !important;
  -webkit-backdrop-filter: var(--heg-glass-blur);
  backdrop-filter: var(--heg-glass-blur);
  border-bottom: 1px solid var(--heg-line-ink) !important;
  box-shadow: 0 8px 32px rgba(16,31,24,0.06) !important;
}
.site-header__inner, .site-nav, .site-nav__list { font-family: var(--heg-font); }
.site-nav__link { color: var(--heg-ink) !important; font-family: var(--heg-font) !important; font-weight: 500; }
.site-nav__link:hover { color: var(--heg-green-600) !important; }
.logo__heg, .logo__wordmark { color: var(--heg-ink) !important; font-family: var(--heg-font) !important; }
.logo__heg-dot { background: var(--heg-green) !important; color: var(--heg-green) !important; }

/* "Войти" (inline-styled green) → ghost ink button */
.site-header__login,
.site-nav__cta-mobile .btn[style] {
  background: transparent !important;
  background-image: none !important;
  color: var(--heg-ink) !important;
  border: 1px solid var(--heg-line-ink) !important;
}
.site-header__login:hover { background: rgba(16,31,24,0.05) !important; }

/* Mega-menu panel */
.mega__panel { background: var(--heg-ivory) !important; border: 1px solid var(--heg-line-ink) !important; box-shadow: var(--heg-shadow-lg) !important; border-radius: 16px !important; }
.mega__item { color: var(--heg-ink) !important; border-radius: 12px !important; }
.mega__item strong { color: var(--heg-ink) !important; font-family: var(--heg-font) !important; }
.mega__item small { color: var(--heg-text-2) !important; }
.mega__item:hover { background: rgba(6,70,61,0.06) !important; }
.mega__item svg { color: var(--heg-green) !important; }
.mega__heading { font-family: var(--heg-mono) !important; text-transform: uppercase; letter-spacing: 0.12em; font-size: 12px !important; color: var(--heg-text-2) !important; }
.mega__app-btn { background: var(--heg-ink) !important; background-image: none !important; color: var(--heg-ivory) !important; border-radius: 12px !important; border: 0 !important; }
.mega__app-btn svg { color: var(--heg-ivory) !important; }

/* ---------- Shared shell · FOOTER (Ink inversion) ---------- */
.site-footer { background: var(--heg-ink) !important; background-image: none !important; color: var(--heg-ivory) !important; }
.site-footer a { color: rgba(250,247,234,0.82) !important; }
.site-footer a:hover { color: var(--heg-ivory) !important; }
.site-footer__h { font-family: var(--heg-mono) !important; text-transform: uppercase; letter-spacing: 0.12em; font-size: 12px !important; color: rgba(250,247,234,0.55) !important; }
.site-footer__app-desc { color: rgba(250,247,234,0.72) !important; }
.site-footer__cta { background: var(--heg-green) !important; background-image: none !important; color: var(--heg-ivory) !important; border-radius: 12px !important; border: 0 !important; }
.site-footer__cta:hover { background: var(--heg-green-600) !important; }
.site-footer small, .site-footer__disclaimer { color: rgba(250,247,234,0.5) !important; }
.site-footer__legal a { color: rgba(250,247,234,0.6) !important; }
.site-footer__store-badge { border: 1px solid rgba(250,247,234,0.16); border-radius: 8px; overflow: hidden; }

/* ---------- Global buttons ---------- */
.btn { font-family: var(--heg-font) !important; border-radius: 12px !important; font-weight: 600; }
.btn-primary { background: var(--heg-green) !important; background-image: none !important; color: var(--heg-ivory) !important; border: 0 !important; box-shadow: var(--heg-shadow-sm) !important; }
.btn-primary:hover { background: var(--heg-green-600) !important; }
/* primary action is always Green (DS); ember reserved for sparks/markers */
.btn-accent { background: var(--heg-green) !important; background-image: none !important; color: var(--heg-ivory) !important; border: 0 !important; box-shadow: var(--heg-shadow-sm) !important; }
.btn-accent:hover { background: var(--heg-green-600) !important; }
.btn-outline, .btn-ghost, .btn-secondary { background: transparent !important; background-image: none !important; color: var(--heg-ink) !important; border: 1px solid var(--heg-line-ink) !important; }
.btn-outline:hover, .btn-ghost:hover, .btn-secondary:hover { background: rgba(16,31,24,0.05) !important; }

/* ---------- Eyebrow (mono kicker + ember square marker) ---------- */
.eyebrow {
  font-family: var(--heg-mono) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  color: var(--heg-text-2) !important;
  -webkit-text-fill-color: var(--heg-text-2) !important;
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  display: inline-flex; align-items: center; gap: 8px;
}
.eyebrow::before {
  content: ""; width: 8px; height: 8px; flex: none;
  background: var(--heg-ember); border-radius: 2px;
}

/* ---------- Headline emphasis: one family, no serif/italic word-drop (DS) ---------- */
h1 em, h2 em, h3 em, h4 em,
.home-hero__h1 em, .ai-platform__h em, .app__h em {
  font-family: var(--heg-font) !important;
  font-style: normal !important;
}

/* ---------- Tags / pills ---------- */
.tag, .mn-tag-pill, .pill {
  font-family: var(--heg-mono) !important;
  border-radius: var(--r-pill) !important;
  font-size: 12px !important;
}

/* ---------- Prose (articles, case/learn/mentor bodies) ---------- */
.prose { font-family: var(--heg-font) !important; color: var(--heg-ink); }
.prose h1, .prose h2, .prose h3, .prose h4 { font-family: var(--heg-font) !important; color: var(--heg-ink) !important; }
.prose a { color: var(--heg-green) !important; text-decoration-color: rgba(6,70,61,0.4); }
.prose a:hover { color: var(--heg-ember) !important; }
.prose blockquote {
  font-family: var(--heg-quote) !important; font-style: italic;
  border-left: 3px solid var(--heg-green) !important; color: var(--heg-ink-700) !important;
  background: none !important;
}

/* ---------- Inputs ---------- */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]),
textarea, select {
  font-family: var(--heg-font) !important;
  background: rgba(252,250,241,0.6) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 12px !important;
  color: var(--heg-ink) !important;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):focus,
textarea:focus, select:focus {
  outline: none !important;
  border-color: var(--heg-green) !important;
  box-shadow: 0 0 0 3px rgba(255,106,61,0.25) !important;
}
::placeholder { color: var(--heg-text-2) !important; opacity: 1; }

/* ============================================================
   HOMEPAGE (index.css)
   ============================================================ */

/* — Hero: flat ivory, kill colour-wash pebbles — */
.home-hero { background: var(--heg-ivory) !important; }
.home-hero__pebble { display: none !important; }
.home-hero__btn--primary { background: var(--heg-green) !important; background-image: none !important; color: var(--heg-ivory) !important; border: 0 !important; border-radius: 12px !important; }
.home-hero__btn--primary:hover { background: var(--heg-green-600) !important; }
.home-hero__btn--ghost { background: transparent !important; background-image: none !important; color: var(--heg-ink) !important; border: 1px solid var(--heg-line-ink) !important; border-radius: 12px !important; }
/* highlighter on the bold sub word: solid ember underline, not a gradient */
.home-hero__sub strong { background: none !important; box-shadow: inset 0 -0.34em 0 rgba(255,106,61,0.18); }
/* hero strip photos: rounded-rect + warm film grade + true grain */
.home-hero__photo { border-radius: 16px !important; position: relative; overflow: hidden; }
.home-hero__photo img { filter: var(--heg-film); }
.home-hero__photo::after { content: ""; position: absolute; inset: 0; background: var(--heg-grain); background-size: 220px; mix-blend-mode: soft-light; opacity: 0.4; pointer-events: none; }

/* — Section washes → ivory — */
.ai-platform, .geo, .mn-hero, .icp-cards { background: var(--heg-ivory) !important; }

/* — "Три опоры" cardmix → green / ink / ivory grain panels — */
.mn-cardmix__card { position: relative; overflow: hidden; border-radius: 16px !important; }
.mn-cardmix__card > * { position: relative; z-index: 1; }
.mn-cardmix__card--dark      { background: var(--heg-green) !important; color: var(--heg-ivory) !important; border: 0 !important; box-shadow: var(--heg-shadow-lg) !important; }
.mn-cardmix__card--dark-warm { background: var(--heg-ink) !important; color: var(--heg-ivory) !important; border: 0 !important; box-shadow: var(--heg-shadow-lg) !important; }
.mn-cardmix__card--light     { background: var(--heg-ivory) !important; color: var(--heg-ink) !important; border: 1px solid var(--heg-line-ink) !important; box-shadow: var(--heg-shadow-lg) !important; }
/* grain only on the solid colour panels (DS-sanctioned) */
.mn-cardmix__card--dark::after, .mn-cardmix__card--dark-warm::after {
  content: ""; position: absolute; inset: 0; z-index: 0; background: var(--heg-grain);
  background-size: 200px; mix-blend-mode: overlay; opacity: 0.5; pointer-events: none;
}

/* — Emoji UI chips → ember square marker (content emoji in quotes untouched) — */
.mn-cardmix__chip, .app-feature__icon {
  font-size: 0 !important; border: 0 !important;
  background: rgba(250,247,234,0.10) !important; border-radius: 12px !important;
}
.mn-cardmix__card--light .mn-cardmix__chip { background: rgba(6,70,61,0.08) !important; }
.mn-cardmix__chip::before, .app-feature__icon::before {
  content: ""; width: 14px; height: 14px; background: var(--heg-ember); border-radius: 3px;
}

/* — AI steps → value-cards with hover-to-green reveal — */
.ai-step { background: var(--heg-ivory) !important; border: 1px solid var(--heg-line-ink) !important; border-radius: 16px !important; box-shadow: var(--heg-shadow-sm) !important; transition: all 0.4s var(--ease, ease) !important; }
.ai-step:hover { background: var(--heg-green) !important; border-color: var(--heg-green) !important; transform: translateY(-4px); box-shadow: var(--heg-shadow-lg) !important; }
.ai-step:hover .ai-step__t, .ai-step:hover .ai-step__d { color: var(--heg-ivory) !important; }
.ai-step:hover .ai-step__num { color: var(--heg-ember) !important; }
.ai-step:hover .ai-step__bubble { background: rgba(250,247,234,0.12) !important; color: var(--heg-ivory) !important; border-color: rgba(250,247,234,0.20) !important; }
.ai-step__num { font-family: var(--heg-mono) !important; color: var(--heg-green) !important; }
.ai-step__bubble { background: rgba(16,31,24,0.05) !important; color: var(--heg-ink) !important; border: 1px solid var(--heg-line-ink) !important; border-radius: 12px !important; font-style: normal !important; }
/* status pills: --done = solid green/ivory (confirmed), --match = green-tint glass/deep-green (off-brand lime removed) */
.ai-step__bubble--done { background: var(--heg-green) !important; color: var(--heg-ivory) !important; border-color: var(--heg-green) !important; }
.ai-step__bubble--match { background: rgba(6,70,61,0.10) !important; color: var(--heg-green-800) !important; border-color: rgba(6,70,61,0.22) !important; }

/* — App section → solid Green panel — */
.app { background: var(--heg-green) !important; background-image: none !important; color: var(--heg-ivory) !important; }

/* — ICP / audience cards → DS palette (green / ink / ivory) — */
.icp-card--forest   { background: var(--heg-green) !important; color: var(--heg-ivory) !important; }
.icp-card--brand,
.icp-card--ink      { background: var(--heg-ink) !important; color: var(--heg-ivory) !important; }
.icp-card--gold     { background: var(--heg-ivory) !important; color: var(--heg-ink) !important; border: 1px solid var(--heg-line-ink) !important; }
.icp-card--leaf,
.icp-card--lavender { background: var(--heg-ivory-300) !important; color: var(--heg-ink) !important; }
.icp-card { border-radius: 16px !important; }

/* — Testimonials → ink / ivory cards; green rounded-rect avatars — */
.mn-testimonial--coral    { background: var(--heg-ink) !important; color: var(--heg-ivory) !important; }
.mn-testimonial--cream    { background: var(--heg-ivory) !important; color: var(--heg-ink) !important; border: 1px solid var(--heg-line-ink) !important; }
.mn-testimonial--lavender { background: var(--heg-ivory-300) !important; color: var(--heg-ink) !important; }
.mn-testimonial { border-radius: 16px !important; }
.mn-testimonial__avatar { background: var(--heg-green) !important; color: var(--heg-ivory) !important; border-radius: 16px !important; }

/* — Mentor cards on home: flat scrim instead of gradient fade — */
.mn-mentor__meta { background: rgba(16,31,24,0.60) !important; }
.mn-mentor--rect:hover .mn-mentor__meta { background: rgba(16,31,24,0.74) !important; }

/* — Statbar accents → green — */
.mn-statbar__item { border-left: 2px solid var(--heg-green) !important; }

/* — Square the circle-shaped avatars / number badges (DS: rounded-rect, no circles) — */
.mn-blob--avatar, .quote-card__photo { border-radius: 16px !important; }
.mn-flow__num { border-radius: 12px !important; background: rgba(6,70,61,0.10) !important; color: var(--heg-green) !important; font-family: var(--heg-mono) !important; }
.phone-app__avatar, .phone-match__avatar, .phone-msg__avatar { border-radius: 12px !important; }
/* founder portrait: rounded-rect + warm film grade */
.mn-founder__visual img, .mn-blob--avatar img { border-radius: 16px !important; filter: var(--heg-film); }

/* ============================================================
   TEMPLATES — mentor / case / city / for / about / mentors /
   events / founder / startups / groups
   ============================================================ */

/* — Hero washes → flat ivory — */
.mentor-hero, .case-hero, .city-hero, .about-hero-stage, .mn-hero { background: var(--heg-ivory) !important; }

/* — Mentor/case hero photos: kill organic blob shapes + white border → rounded-rect + film — */
.mentor-hero__photo, .mentor-hero__photo--pebble, .mentor-hero__photo--bean,
.mentor-hero__photo--cloud, .mentor-hero__photo--egg, .mentor-hero__photo--blob,
.case-hero__photo, .case-hero__photo--cloud, .case-hero__photo--egg {
  border-radius: 16px !important;
  border: 0 !important;
  box-shadow: var(--heg-shadow-lg) !important;
  filter: var(--heg-film);
}

/* — Circle avatars / number badges in templates → rounded-rect — */
.mentor-case-card__photo, .tst-card__avatar, .grp__leader img { border-radius: 12px !important; }
.tst-card__avatar { background: rgba(6,70,61,0.10) !important; }
.cycle__num { border-radius: 12px !important; background: var(--heg-green) !important; color: var(--heg-ivory) !important; font-family: var(--heg-mono) !important; box-shadow: 0 0 0 6px var(--heg-ivory) !important; }
.mentor-hero__link-icon { border-radius: 6px !important; background: var(--heg-green) !important; color: var(--heg-ivory) !important; }

/* — CTA panels (case-final / mn-final): Ink dark-panel, ivory text (token already flattened bg) — */
.case-final, .mn-final { color: var(--heg-ivory) !important; border-radius: 16px !important; }

/* — Member-card meta scrims: flat uniform scrim, not gradient fade — */
.ifr-member__body, .mentor-card__meta { background: rgba(16,31,24,0.60) !important; }
.mentor-card:hover .mentor-card__meta { background: rgba(16,31,24,0.74) !important; }

/* — White card fills → Ivory (DS bans solid white) — */
.mentor-cta, .city-cta, .city-member, .city-sibling, .city-tag,
.ifr-block, .ifr-group, .ifr-quote, .ifr-sibling, .ifr-sign,
.tst-card, .tst-show-more, .mn-su, .mn-vp {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink);
  border-radius: 16px !important;
}

/* — Events data-viz: flatten gradient bars/legends — */
.split-bar__online { background: var(--heg-green) !important; }
.split-legend .dot-online { background: var(--heg-green) !important; }
.city-row__bar i.online { background: var(--heg-ember) !important; }

/* — Groups cycle connector line: solid green — */
.cycle:after { background: var(--heg-green) !important; }


/* ============================================================
   SIGNATURE UPGRADE (v6) — glass / grain / patterns.
   Authored + adversarially reviewed; appended last.
   ============================================================ */


/* ============================================================
   PATTERN: member-glass — real white-strong glass on face cards
   Converts the flat opaque dark scrim (heg-ds.css L346-347, L387-388)
   into a REAL translucent glass plate that floats over the member
   photo: the face stays visible above; the photo blurs THROUGH the
   plate (backdrop-filter); text flips from #fff to INK (light glass).
   Targets: .mn-mentor__meta (home) · .mentor-card__meta (mentors) ·
            .ifr-member__body (for/_slug_). City stays a SOLID card
            (image-top / solid-panel-below — glass over flat = matte).
   Append AFTER the existing member rules so this wins the cascade.
   ============================================================ */

/* ---------- HOME — .mn-mentor--rect face cards ---------- */
/* photo: warm film grade + face pushed UP so the plate never covers it */
.mn-mentor--rect .mn-mentor__photo-wrap { overflow: hidden !important; border-radius: 16px !important; }
.mn-mentor--rect .mn-mentor__photo {
  object-position: 50% 22% !important;
  filter: var(--heg-film) !important;
}
/* the meta panel → real white-strong glass docked at the bottom (~40%) */
.mn-mentor--rect .mn-mentor__meta,
.mn-mentor--rect:hover .mn-mentor__meta {
  background: var(--heg-glass-white-strong) !important;
  background-image: none !important;
  -webkit-backdrop-filter: var(--heg-glass-blur) !important;
  backdrop-filter: var(--heg-glass-blur) !important;
  box-shadow: var(--heg-glass-rim) !important;
  border-radius: 0 0 16px 16px !important;
  padding: 14px 14px 14px !important;   /* short plate, face stays above */
  color: var(--heg-ink) !important;
}
/* light glass ⇒ INK text (was #fff on the dark scrim) */
.mn-mentor--rect .mn-mentor__name {
  color: var(--heg-ink) !important;
  text-shadow: none !important;
}
.mn-mentor--rect .mn-mentor__role,
.mn-mentor--rect .mn-mentor__company,
.mn-mentor--rect .mn-mentor__bio {
  color: var(--heg-text-2) !important;
  text-shadow: none !important;
}
/* company eyebrow = mono on the plate */
.mn-mentor--rect .mn-mentor__company { font-family: var(--heg-mono) !important; }

/* ---------- MENTORS — .mentor-card face cards ---------- */
.mentor-card .mentor-card__photo-wrap { overflow: hidden !important; border-radius: 16px !important; }
.mentor-card .mentor-card__photo {
  object-position: 50% 22% !important;
  filter: var(--heg-film) !important;
}
.mentor-card__meta,
.mentor-card:hover .mentor-card__meta {
  background: var(--heg-glass-white-strong) !important;
  background-image: none !important;
  -webkit-backdrop-filter: var(--heg-glass-blur) !important;
  backdrop-filter: var(--heg-glass-blur) !important;
  box-shadow: var(--heg-glass-rim) !important;
  border-radius: 0 0 16px 16px !important;
  padding: 12px 12px 12px !important;
  color: var(--heg-ink) !important;
}
.mentor-card__name {
  color: var(--heg-ink) !important;
  text-shadow: none !important;
}
.mentor-card__role,
.mentor-card__intro {
  color: var(--heg-text-2) !important;
  text-shadow: none !important;
}
/* badges sat on the dark scrim with bright fills — repaint for the light glass.
   Tags = pills (already), ink text on light tints; NO ember text on glass. */
.mentor-card__badge--brand {
  color: var(--heg-green) !important;
  background: rgba(6,70,61,0.10) !important;
}
.mentor-card__badge--gold {
  color: var(--heg-ink) !important;
  background: rgba(16,31,24,0.08) !important;
}

/* ---------- FOR (/for/_slug_) — .ifr-member face cards ---------- */
.ifr-member { overflow: hidden !important; border-radius: 16px !important; }
.ifr-member .ifr-member__photo {
  object-position: 50% 22% !important;
  filter: var(--heg-film) !important;
}
.ifr-member__body {
  background: var(--heg-glass-white-strong) !important;
  background-image: none !important;
  -webkit-backdrop-filter: var(--heg-glass-blur) !important;
  backdrop-filter: var(--heg-glass-blur) !important;
  box-shadow: var(--heg-glass-rim) !important;
  border-radius: 0 0 16px 16px !important;
  padding: 12px 12px 12px !important;
  color: var(--heg-ink) !important;
}
.ifr-member__name {
  color: var(--heg-ink) !important;
  text-shadow: none !important;
}
.ifr-member__role,
.ifr-member__loc,
.ifr-member__intro {
  color: var(--heg-text-2) !important;
  text-shadow: none !important;
}
.ifr-member__loc { font-family: var(--heg-mono) !important; }

/* ---------- CITY (/cities/_slug_) — .city-member STAYS SOLID ----------
   This card is image-top / text-bottom in NORMAL flow over a flat ivory
   panel — the DS-sanctioned SOLID pattern. Glass over flat = matte (banned),
   so we do NOT glass it; we only carry through ink text + film on the photo
   so it matches the other member cards visually. */
.city-member__photo {
  object-position: 50% 22% !important;
  filter: var(--heg-film) !important;
}
.city-member__body { background: var(--heg-ivory) !important; color: var(--heg-ink) !important; }
.city-member__name { color: var(--heg-ink) !important; }
.city-member__role { color: var(--heg-text-2) !important; }


/* ============================================================
   grain-all — Grain + warm film on ALL remaining photos
   DS: every PHOTO carries the warm "под плёнку" grade + monochrome
   film grain; a raw <img> without it is a bug. Loads LAST → wins the
   cascade; !important beats Astro [data-astro-cid-*] scoped rules AND
   the inline <style> blocks on founder/ and learn/<slug>/ detail pages.

   ALREADY TREATED ELSEWHERE (not re-touched): .home-hero__photo(+img),
   .mn-founder__visual img, .mn-blob--avatar img, .mentor-hero__photo*,
   .case-hero__photo*, .quote-card__photo (squared only).

   HARD EXCLUSIONS (not photos): .logo__mark-img, store-badge SVGs,
   .phone__screen + phone-app/match/msg avatars (app UI), text-initial
   avatars (.mn-testimonial__avatar / .avatar-ring), Yandex pixel, and
   any [src$=".svg"] (romantic-ai-logo.svg on .sp-journey__card-img).

   NOTE: .sp-format / .sp-media-card / .sp-journey__card are flex-column
   CARDS (img + text body inside a #fff / translucent box). A card-level
   grain ::after would wash the UI body, and their photos are bare <img>
   with no wrapper to host a ::after — so they get FILM ONLY (same as the
   .sp-experience__photos / .sp-cta__photos grids).
   ============================================================ */

/* ---- 1. FILM GRADE on the real photographic <img> ---- */

/* home — mentor-card photos + thanks/quote photos */
.mn-mentor__photo,
.quote-card__photo {
  filter: var(--heg-film) !important;
}

/* mentors index — mentor card photos */
.mentor-card__photo {
  filter: var(--heg-film) !important;
}

/* mentor / case detail — case thumbnail photos */
.mentor-case-card__photo {
  filter: var(--heg-film) !important;
}

/* city pages — member photos */
.city-member__photo {
  filter: var(--heg-film) !important;
}

/* /for/ segment pages — member photos */
.ifr-member__photo {
  filter: var(--heg-film) !important;
}

/* about — testimonial author photos + decorative trail photos */
.tst-card__avatar,
.trail-img {
  filter: var(--heg-film) !important;
}

/* events — past-event cover photos */
.past-card__cover img {
  filter: var(--heg-film) !important;
}

/* founder / speaker — all photographic imgs (SVG logo excluded) */
.sp-hero__portrait img,
.sp-format__img,
.sp-media-card__img,
.sp-community__img,
.sp-experience__photos img,
.sp-cta__photos img,
.sp-journey__card-img:not([src$=".svg"]) {
  filter: var(--heg-film) !important;
}

/* learn article detail — cover + inline body photos (logo/svg excluded) */
.article__cover img,
.prose img:not(.logo__mark-img):not([src$=".svg"]) {
  filter: var(--heg-film) !important;
}

/* ---- 2. TRUE GRAIN ::after on single-photo wrappers ONLY ----
   Restricted to wrappers that clip exactly ONE photo (no UI/text inside),
   so the noise sits ON the photo, never over a card body or UI chrome. */

.mn-mentor__photo-wrap,
.mentor-card__photo-wrap,
.past-card__cover,
.article__cover,
.sp-hero__portrait {
  position: relative !important;
  overflow: hidden !important;
}

.mn-mentor__photo-wrap::after,
.mentor-card__photo-wrap::after,
.past-card__cover::after,
.article__cover::after,
.sp-hero__portrait::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: var(--heg-grain) !important;
  background-size: 220px !important;
  mix-blend-mode: soft-light !important;
  opacity: 0.4 !important;
  pointer-events: none !important;
  z-index: 1 !important;
}


/* ============================================================
   PATTERN: glass-hero-home — Rule 5 (Glass-hero composition)
   ONE white-glass stat-chip floating OVER the hero photo strip.
   The photo (with its film grade + grain) BLURS THROUGH the plate
   via backdrop-filter — the genuine glass-over-photo moment the flat
   ivory hero was missing. Glass plate stays grain-CLEAN (grain only
   on the photo beneath it). Ink text on white glass. No gradients.
   DS-sanctioned by spec line 98 ("плавающий стеклянный стат-чип над
   фото") + the mono-eyebrow «● section» with a square ember dot.
   Builds on existing heg-ds.css hero rules: .home-hero__photo is
   forced to 16px rounded-rect + grain + film (the !important there
   beats Astro's blob radius), so the chip floats over a real photo.
   Loads LAST, so !important beats Astro [data-astro-cid-*] scoped rules.
   ============================================================ */

/* give the strip a positioning context + room for the floating plate.
   (.home-hero has overflow:hidden, but the chip's containing block is
   the strip — which has NO overflow clip — and its tiny negative offset
   stays inside .home-hero's padding-bottom, so nothing is clipped.) */
.home-hero__strip {
  position: relative !important;
  z-index: 1 !important;
}

/* the floating frosted stat-chip — real translucent glass over a photo */
.home-hero .heg-hero-chip {
  position: absolute !important;
  left: clamp(-6px, 1.5%, 18px) !important;
  bottom: clamp(-14px, -2%, -6px) !important;
  z-index: 5 !important;                       /* above the photos + their grain ::after */
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  padding: 14px 18px 15px !important;
  min-width: 150px !important;
  border-radius: 14px !important;              /* DS rounded-rect, not a blob */
  /* GLASS: low translucent fill — the blur sells it, not the fill */
  background: var(--heg-glass-white) !important;
  background-image: none !important;           /* no gradient ever */
  -webkit-backdrop-filter: var(--heg-glass-blur) !important;
  backdrop-filter: var(--heg-glass-blur) !important;   /* photo blurs THROUGH */
  border: 0 !important;
  /* soft shadow for float + whisper-faint light rim (no hard white border) */
  box-shadow: var(--heg-shadow-lg), var(--heg-glass-rim) !important;
  color: var(--heg-ink) !important;            /* ink text on white glass */
  pointer-events: none !important;             /* decorative, never traps clicks */
}

/* mono eyebrow — the tech-layer kicker */
.home-hero .heg-hero-chip__eyebrow {
  font-family: var(--heg-mono) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--heg-text-2) !important;         /* secondary ink on glass */
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  line-height: 1 !important;
}
/* square ember marker dot (the only sanctioned ember on glass — a tiny dot) */
.home-hero .heg-hero-chip__eyebrow::before {
  content: "" !important;
  width: 7px !important;
  height: 7px !important;
  border-radius: 2px !important;               /* square-ish marker, not a circle */
  background: var(--heg-ember) !important;
  flex: none !important;
}

/* the big metric — Onest, ink, the focal number */
.home-hero .heg-hero-chip__num {
  font-family: var(--heg-font) !important;
  font-weight: 800 !important;
  font-size: 30px !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
  color: var(--heg-ink) !important;
}
.home-hero .heg-hero-chip__label {
  font-family: var(--heg-font) !important;
  font-weight: 500 !important;
  font-size: 12.5px !important;
  line-height: 1.25 !important;
  color: var(--heg-text-2) !important;         /* ink-secondary on white glass */
}

/* on the 3-col mobile strip keep the plate compact.
   Breakpoint matches Astro's real strip breakpoint (max-width:720px),
   where photos --4/--5 hide; the chip still floats over photo--1. */
@media (max-width: 720px) {
  .home-hero .heg-hero-chip {
    min-width: 122px !important;
    padding: 11px 14px 12px !important;
    left: -2px !important;
    bottom: -10px !important;
  }
  .home-hero .heg-hero-chip__num { font-size: 24px !important; }
  .home-hero .heg-hero-chip__label { font-size: 11.5px !important; }
}


/* ============================================================
   about-valuecards — /about "Три ценности" (.pillar3)
   Fix Rule 6 ivory-on-ivory: hover-reveal mirroring .ai-step.
   Rest = solid ivory card + hairline + soft shadow (DS: over
   flat ivory use a SOLID card — no glass, no grain).
   Hover = green fill, ivory text, ember number, lift, all .4s.
   Selectors verified in about.8164cd7c.css + about/index.html.
   ============================================================ */

/* REST: solid ivory surface with edge — beats inline scoped
   background:var(--surface-alt) + border:1px solid var(--border) */
.pillars-3 .pillar3 {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
  box-shadow: var(--heg-shadow-sm) !important;
  transition: all 0.4s var(--ease, ease) !important;
}

/* REST text colours (DS tokens, ink-on-ivory legibility) */
.pillars-3 .pillar3 .pillar3__num {
  font-family: var(--heg-mono) !important;   /* mono for eyebrow/number */
  color: var(--heg-green) !important;
}
.pillars-3 .pillar3 .pillar3__title {
  color: var(--heg-ink) !important;
}
.pillars-3 .pillar3 .pillar3__desc {
  color: var(--heg-text-2) !important;
}

/* HOVER: green fill, lift, larger shadow */
.pillars-3 .pillar3:hover,
.pillars-3 .pillar3:focus-within {
  background: var(--heg-green) !important;
  border-color: var(--heg-green) !important;
  transform: translateY(-4px) !important;
  box-shadow: var(--heg-shadow-lg) !important;
}

/* HOVER text: ivory on green (never ink on green, never ember text) */
.pillars-3 .pillar3:hover .pillar3__title,
.pillars-3 .pillar3:focus-within .pillar3__title,
.pillars-3 .pillar3:hover .pillar3__desc,
.pillars-3 .pillar3:focus-within .pillar3__desc {
  color: var(--heg-ivory) !important;
}

/* HOVER number: ember accent on flat green fill (not glass) —
   matches .ai-step:hover .ai-step__num */
.pillars-3 .pillar3:hover .pillar3__num,
.pillars-3 .pillar3:focus-within .pillar3__num {
  color: var(--heg-ember) !important;
}


/* ============================================================
   PATTERN: Founder glass-frame — corner brackets + frosted badge
   Target: /founder/ page hero portrait (.sp-hero__portrait + <img>)
   The frame's box-shadow / 20px radius / overflow:hidden come from an
   inline <style> in founder/index.html (no data-astro-cid), so plain
   class selectors here win because heg-ds.css loads LAST — every
   property that re-states an inline-style value is marked !important.
   The badge sits over a PHOTO, so glass (backdrop-filter) is legal —
   the portrait blurs through it. Ember marker is decorative only.
   ============================================================ */

/* Frame: keep the photo clipped, square the corners to 16, lift shadow to DS. */
.sp-hero__portrait {
  border-radius: 16px !important;
  overflow: hidden !important;                 /* photo stays clipped */
  box-shadow: var(--heg-shadow-lg) !important; /* DS soft shadow, no hard border */
  isolation: isolate;                          /* keep pseudo stacking local */
}
.sp-hero__portrait img {
  border-radius: 16px !important;              /* match the frame (wrapper also clips) */
}

/* Corner brackets — two L-shaped marks, top-left & bottom-right,
   inset 16px onto the dark photo, drawn in ivory for contrast. */
.sp-hero__portrait::before,
.sp-hero__portrait::after {
  content: "" !important;
  position: absolute !important;
  width: 26px !important;
  height: 26px !important;
  z-index: 3 !important;
  pointer-events: none !important;
  border-style: solid !important;
  border-color: var(--heg-ivory, #FCFAF1) !important; /* reads on the dark photo */
  border-width: 0 !important;
}
.sp-hero__portrait::before {
  top: 16px !important;
  left: 16px !important;
  border-top-width: 2px !important;
  border-left-width: 2px !important;
  border-top-left-radius: 4px !important;
}
.sp-hero__portrait::after {
  bottom: 16px !important;
  right: 16px !important;
  border-bottom-width: 2px !important;
  border-right-width: 2px !important;
  border-bottom-right-radius: 4px !important;
}

/* Frosted glass badge — empty decorative chip over the top-right corner.
   white-strong frost (0.55) + blur so the portrait blurs through; the only
   mark is a small ember ✦ via ::before. Glass is legal here: over a PHOTO. */
.sp-hero__portrait-badge {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  width: 34px !important;
  height: 34px !important;
  z-index: 4 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 10px !important;                 /* small rect, not pill */
  background: var(--heg-glass-white-strong, rgba(252,250,241,0.55)) !important;
  -webkit-backdrop-filter: var(--heg-glass-blur, blur(30px) saturate(125%)) !important;
  backdrop-filter: var(--heg-glass-blur, blur(30px) saturate(125%)) !important;
  box-shadow: var(--heg-glass-rim, inset 0 1px 0 rgba(255,255,255,0.18)),
              0 6px 18px rgba(16,31,24,0.18) !important;
  pointer-events: none !important;
}
.sp-hero__portrait-badge::before {
  content: "\2726" !important;                    /* ✦ ember marker (decor only) */
  font-family: var(--heg-font, "Onest"), sans-serif !important;
  font-size: 16px !important;
  line-height: 1 !important;
  color: var(--heg-ember, #FF6A3D) !important;    /* tiny solid marker — sanctioned */
}


/* ============================================================
   /events — UNIFORM photo-led upcoming-event cards (DS v6)
   One consistent card shape for every event: 16/9 cover photo on top,
   small date plate over the photo's top-left corner, body below.
   Replaces the old asymmetric-bento featured-first design (which pre-dated
   the real server photos and broke once images + V14 were layered on).
   Visually consistent with the archive .past-card. Stat rows
   (.split-bar, .city-row, .info-card) untouched.
   DOM per card: .ev-card > .ev-card__media>img · .ev-card__date>strong+span
                 · .ev-card__body>(.ev-card__chips · __title · __desc)
   ============================================================ */

/* --- Grid: uniform 2-up, equal rows --- */
.ev-grid[data-astro-cid-ro7pgs3h]{
  grid-template-columns:repeat(2,1fr) !important;
  grid-auto-rows:auto !important;
  align-items:stretch !important;
  gap:22px !important;
}

/* --- Card shell: photo-led column, every card identical --- */
.ev-grid[data-astro-cid-ro7pgs3h] > .ev-card[data-astro-cid-ro7pgs3h]{
  grid-column:auto !important;
  grid-row:auto !important;
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  gap:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  background:var(--heg-ivory) !important;
  border:1px solid rgba(16,31,24,.08) !important;
  border-radius:16px !important;
  box-shadow:var(--heg-shadow-sm) !important;
  transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease) !important;
}
.ev-grid[data-astro-cid-ro7pgs3h] > .ev-card[data-astro-cid-ro7pgs3h]:hover{
  transform:translateY(-3px) !important;
  border-color:rgba(16,31,24,.16) !important;
  box-shadow:var(--heg-shadow-lg) !important;
}

/* --- Cover photo (16/9) --- */
.ev-card__media[data-astro-cid-ro7pgs3h]{
  margin:0 !important;
  aspect-ratio:16/9 !important;
  overflow:hidden !important;
  background:var(--heg-green-800) !important;   /* placeholder while the photo loads */
}
.ev-card__media[data-astro-cid-ro7pgs3h] img[data-astro-cid-ro7pgs3h]{
  width:100% !important;height:100% !important;
  object-fit:cover !important;display:block !important;
  transition:transform .6s var(--ease) !important;
}
.ev-grid[data-astro-cid-ro7pgs3h] > .ev-card[data-astro-cid-ro7pgs3h]:hover .ev-card__media[data-astro-cid-ro7pgs3h] img[data-astro-cid-ro7pgs3h]{
  transform:scale(1.04) !important;
}

/* --- Date plate, floating over the photo's top-left corner --- */
.ev-card[data-astro-cid-ro7pgs3h] .ev-card__date[data-astro-cid-ro7pgs3h]{
  position:absolute !important;
  top:12px !important;left:12px !important;z-index:2 !important;
  display:flex !important;flex-direction:column !important;
  align-items:center !important;justify-content:center !important;
  gap:0 !important;
  width:auto !important;min-width:48px !important;
  padding:8px 11px !important;
  background:rgba(252,250,241,.94) !important;   /* ivory plate reads on any photo */
  color:var(--heg-ink) !important;
  border-radius:12px !important;
  -webkit-backdrop-filter:blur(6px) !important;backdrop-filter:blur(6px) !important;
  box-shadow:0 4px 14px -6px rgba(16,31,24,.45) !important;
}
.ev-card[data-astro-cid-ro7pgs3h] .ev-card__date[data-astro-cid-ro7pgs3h] strong[data-astro-cid-ro7pgs3h]{
  font-family:var(--heg-font) !important;
  font-weight:700 !important;
  font-size:22px !important;line-height:1 !important;
  letter-spacing:-.02em !important;
  font-variant-numeric:tabular-nums !important;
  color:var(--heg-ink) !important;
  -webkit-text-fill-color:var(--heg-ink) !important;
}
.ev-card[data-astro-cid-ro7pgs3h] .ev-card__date[data-astro-cid-ro7pgs3h] span[data-astro-cid-ro7pgs3h]{
  font-family:var(--heg-mono) !important;
  font-size:10px !important;line-height:1 !important;
  text-transform:uppercase !important;letter-spacing:.08em !important;
  margin-top:3px !important;opacity:.78 !important;
  color:var(--heg-ink) !important;
  -webkit-text-fill-color:var(--heg-ink) !important;
}

/* --- Body --- */
.ev-card__body[data-astro-cid-ro7pgs3h]{
  display:flex !important;flex-direction:column !important;
  padding:18px 20px 22px !important;
  flex:1 !important;
}
.ev-card__chips[data-astro-cid-ro7pgs3h]{
  position:static !important;margin:0 0 10px !important;
  display:flex !important;flex-wrap:wrap !important;gap:6px !important;
}
.ev-card__title[data-astro-cid-ro7pgs3h]{
  font-family:var(--heg-font) !important;
  font-size:18px !important;line-height:1.25 !important;
  color:var(--heg-ink) !important;margin:0 0 8px !important;
}
.ev-card__desc[data-astro-cid-ro7pgs3h]{
  font-size:13px !important;line-height:1.5 !important;
  color:rgba(16,31,24,.66) !important;margin:0 !important;
}

/* --- Mobile: single column --- */
@media(max-width:760px){
  .ev-grid[data-astro-cid-ro7pgs3h]{grid-template-columns:1fr !important;}
}


/* ============================================================
   /platform — green-frost glass + ambient dark hero (platform-ambient)
   Dark hero/mobile = AMBIENT dark surface. The product screenshots are UI
   (NO grain/film) framed by green-frost glass that floats over the dark
   field: rgba(6,70,61,.34) fill + backdrop blur + inner-light rim + glow.
   Appended LAST to _heg/heg-ds.css; !important beats the page inline <style>.
   ============================================================ */

/* — Dark fields → brand Ink ambient surface (kill near-black green #0F1A0A) — */
.pf-hero, .pf-mobile {
  background: var(--heg-ink) !important;
  background-image: none !important;
  color: var(--heg-ivory) !important;
}
/* Kill BOTH off-brand gradient radial-glows on the hero pseudo-elements,
   replace ::after with ONE flat low-opacity ember inner-glow (sanctioned
   single-colour glow inside a dark surface for depth — not a page gradient). */
.pf-hero::before { display: none !important; }
.pf-hero::after {
  content: '' !important;
  position: absolute !important;
  bottom: -180px !important; left: -160px !important;
  width: 520px !important; height: 520px !important;
  background: radial-gradient(circle, rgba(255,106,61,0.14) 0%, transparent 68%) !important;
  pointer-events: none !important;
}

/* — Hero eyebrow + section eyebrows → IBM Plex Mono, ivory/green tint (no lime) — */
.pf-hero__eyebrow {
  font-family: var(--heg-mono) !important;
  font-weight: 500 !important;
  color: rgba(250,247,234,0.66) !important;
  letter-spacing: 0.12em !important;
}
.pf-section__eyebrow {
  font-family: var(--heg-mono) !important;
  font-weight: 500 !important;
  color: var(--heg-green-600) !important;
  letter-spacing: 0.12em !important;
}
/* Em accents: off-brand gold #F2A900 → brand Ember */
.pf-hero__h em, .pf-mobile__h em { color: var(--heg-ember) !important; }

/* — Stats on the dark field: Ivory numbers, mono labels — */
.pf-stat__num   { color: var(--heg-ivory) !important; font-family: var(--heg-font) !important; }
.pf-stat__label { color: rgba(250,247,234,0.60) !important; font-family: var(--heg-mono) !important; letter-spacing: 0.08em !important; }

/* — THE PATTERN: product screenshot inside a GREEN-FROST glass panel —
   floats over the dark ambient field; the dark surface blurs through. — */
.pf-browser {
  background: var(--heg-glass-green) !important;       /* rgba(6,70,61,.34) */
  -webkit-backdrop-filter: var(--heg-glass-blur) !important;
  backdrop-filter: var(--heg-glass-blur) !important;
  border-radius: 16px !important;
  padding: 10px !important;                            /* glass margin around the UI */
  box-shadow:
    var(--heg-glass-rim),                              /* inner-light rim */
    inset 0 0 0 1px rgba(255,255,255,0.10),            /* dark-glass rim presence */
    0 0 0 1px rgba(255,255,255,0.04),
    0 36px 90px -28px rgba(0,0,0,0.66),                /* float */
    0 0 120px -30px rgba(255,106,61,0.10) !important;  /* faint ember glow */
}
/* Browser chrome = translucent strip of the same glass (was solid #1a1a1a) */
.pf-browser__bar {
  background: rgba(255,255,255,0.06) !important;
  background-image: none !important;
  border-radius: 10px 10px 0 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}
/* URL pill → ivory-tint glass chip, mono, ivory-tint text */
.pf-browser__url {
  background: rgba(255,255,255,0.08) !important;
  color: rgba(250,247,234,0.62) !important;
  font-family: var(--heg-mono) !important;
  border-radius: 8px !important;
}
/* Traffic-light dots: DS bans circles → small rounded-rect markers
   (ember accent dot + two neutral) */
.pf-browser__dot   { border-radius: 3px !important; }
.pf-browser__dot--r { background: var(--heg-ember) !important; }
.pf-browser__dot--y { background: rgba(250,247,234,0.30) !important; }
.pf-browser__dot--g { background: rgba(250,247,234,0.30) !important; }
/* The screenshot is UI — NO grain/film; clip it inside the glass frame */
.pf-browser img { border-radius: 0 0 8px 8px !important; display: block !important; }

/* — Light-section visuals: solid framed plate w/ soft shadow over ivory
   (glass needs a textured/dark field; ivory sections get a SOLID plate) — */
.pf-visual {
  border-radius: 16px !important;
  box-shadow: var(--heg-shadow-lg) !important;
  background: var(--heg-ivory-300) !important;
  border: 1px solid var(--heg-line-ink) !important;
}
/* Check-circle bullets: lime #6fbf3a → brand Green (icon mask kept as-is) */
.pf-bullets li::before { background-color: var(--heg-green) !important; border-radius: 50% !important; }

/* — Phone frames over the dark field: Ink shell, rounded-rect (radius 16,
   not 36px blob), soft shadow + faint rim so they lift off the dark — */
.pf-phone {
  background: var(--heg-ink-700) !important;
  border-radius: 16px !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.08),
    0 30px 80px -22px rgba(0,0,0,0.6) !important;
}
.pf-phone__screen { border-radius: 12px !important; }

/* — Mobile feature cards → GREEN-FROST glass over the dark field, ivory text
   (was anaemic #ffffff0d fill, no blur — now reads as real glass) — */
.pf-feat-card {
  background: var(--heg-glass-green) !important;
  -webkit-backdrop-filter: var(--heg-glass-blur) !important;
  backdrop-filter: var(--heg-glass-blur) !important;
  border: 0 !important;
  border-radius: 16px !important;
  box-shadow:
    var(--heg-glass-rim),
    inset 0 0 0 1px rgba(255,255,255,0.08),
    0 18px 48px -20px rgba(0,0,0,0.5) !important;
}
.pf-feat-card__t { color: var(--heg-ivory) !important; font-family: var(--heg-font) !important; }
.pf-feat-card__d { color: rgba(250,247,234,0.72) !important; }

/* — Bottom CTA: flatten gradient bg → solid ivory-300, ember→green CTA — */
.pf-cta { background: var(--heg-ivory-300) !important; background-image: none !important; }
.pf-cta__btn { border-radius: 12px !important; font-family: var(--heg-font) !important; }
.pf-cta__btn--primary {
  background: var(--heg-green) !important;
  background-image: none !important;
  color: var(--heg-ivory) !important;
}
.pf-cta__btn--primary:hover { background: var(--heg-green-600) !important; }
.pf-cta__btn--secondary {
  background: var(--heg-ivory) !important;
  color: var(--heg-ink) !important;
  border: 1px solid var(--heg-line-ink) !important;
}


/* ============================================================
   PATTERN: globe-geo — Community geography recolour
   Home .geo section (cid khn7rn7x): no real globe/SVG exists, so the
   geo-pill list becomes a dark-GREEN "map field" with WHITE-frost glass
   city tags + uniform EMBER square markers. Banned amber radial-gradient
   page bg replaced by a solid green field. Bonus: about .geo-band
   (cid kh7btl4r) big number -> ember on Ink.
   Loaded last; !important + .geo[attr] specificity beats heg-ds line 293
   (.geo background ivory) and the scoped [data-astro-cid-*] rules.
   ============================================================ */

/* --- Section: solid green "map field" (kills banned amber gradient) --- */
.geo[data-astro-cid-khn7rn7x] {
  background: var(--heg-green) !important;
  position: relative !important;
  isolation: isolate !important;
}
/* SINGLE-COLOUR ember inner glow @0.16 inside a solid card (DS-allowed; never multi-color, 10-20%) */
.geo[data-astro-cid-khn7rn7x]::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  pointer-events: none !important;
  background: radial-gradient(46% 60% at 78% 8%, rgba(255,106,61,0.16), transparent 60%) !important;
}
/* lift real content wrapper above the glow (.container does NOT exist here) */
.geo[data-astro-cid-khn7rn7x] > div[data-astro-cid-khn7rn7x] {
  position: relative !important;
  z-index: 1 !important;
}

/* --- Heading / lede / note: ivory on green --- */
.geo__h[data-astro-cid-khn7rn7x] {
  color: var(--heg-ivory) !important;
  font-family: var(--heg-font) !important;
}
.geo__h[data-astro-cid-khn7rn7x] em[data-astro-cid-khn7rn7x] {
  color: var(--heg-ember) !important;   /* ember accent on SOLID green (not glass) — allowed */
  font-style: normal !important;
}
.geo__lede[data-astro-cid-khn7rn7x],
.geo__note[data-astro-cid-khn7rn7x] {
  color: rgba(250,247,234,0.70) !important;
  font-family: var(--heg-font) !important;
}

/* eyebrow inside geo head -> mono ivory (scoped, won't leak to other .eyebrow) */
.geo__head[data-astro-cid-khn7rn7x] .eyebrow[data-astro-cid-khn7rn7x] {
  color: rgba(250,247,234,0.78) !important;
  font-family: var(--heg-mono) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
}

/* --- City pills: WHITE-frost glass tags floating over the dark green field --- */
.geo-pill[data-astro-cid-khn7rn7x] {
  background: rgba(252,250,241,0.16) !important;           /* white frost — green field blurs through */
  -webkit-backdrop-filter: var(--heg-glass-blur) !important;
  backdrop-filter: var(--heg-glass-blur) !important;
  border: 1px solid var(--heg-line-ivory) !important;
  box-shadow: var(--heg-glass-rim), 0 10px 28px -16px rgba(4,52,45,0.9) !important;
  color: var(--heg-ivory) !important;
  text-decoration: none !important;
  /* keep pill radius — tags/city chips are the sanctioned pill shape */
}
.geo-pill[data-astro-cid-khn7rn7x]:hover {
  background: rgba(252,250,241,0.26) !important;           /* brighten the frost on hover */
  border-color: rgba(255,106,61,0.55) !important;          /* ember rim hint */
  transform: translateY(-2px) !important;
}
.geo-pill__name[data-astro-cid-khn7rn7x] {
  color: var(--heg-ivory) !important;
  font-family: var(--heg-font) !important;
}
.geo-pill__count[data-astro-cid-khn7rn7x] {
  color: rgba(250,247,234,0.62) !important;
  font-family: var(--heg-mono) !important;                 /* mono for data */
}

/* --- City markers: every dot -> uniform EMBER square (no 50% circle) --- */
.geo-pill__dot[data-astro-cid-khn7rn7x],
.geo-pill__dot--0[data-astro-cid-khn7rn7x],
.geo-pill__dot--1[data-astro-cid-khn7rn7x],
.geo-pill__dot--2[data-astro-cid-khn7rn7x],
.geo-pill__dot--3[data-astro-cid-khn7rn7x],
.geo-pill__dot--4[data-astro-cid-khn7rn7x] {
  background: var(--heg-ember) !important;
  width: 8px !important;
  height: 8px !important;
  border-radius: 2px !important;                           /* square marker, not a circle */
  box-shadow: 0 0 0 3px rgba(255,106,61,0.18) !important;  /* soft ember halo = "pin" */
}

/* --- BONUS: about .geo-band — big number -> ember on the Ink panel --- */
.geo-band__num[data-astro-cid-kh7btl4r] {
  color: var(--heg-ember) !important;   /* green reads weakly on Ink; ember is the sanctioned accent */
}


/* ============================================================
   TECH-LAYER ACCENTS — check-circle bullets · eyebrow ember-square
   markers · one dotted-orbit (ember apex). DS «тонкий технологический
   слой над человеческим». No ember TEXT on glass — markers only.
   Append LAST in heg-ds.css (already loaded last; beats Astro
   [data-astro-cid] scoped rules via !important).
   ============================================================ */

/* check glyphs (white stroke / green stroke) reused by the bullet markers */
:root {
  --heg-check-ivory: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6.2l2.2 2.2 4.8-4.8' stroke='%23FCFAF1' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --heg-check-green: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6.2l2.2 2.2 4.8-4.8' stroke='%2306463D' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---------- (1) Content-list bullets → DS check-circle markers ---------- */

/* Home «Три опоры» card lists (were 6px circle dots).
   Marker fill follows the card surface so the check always reads:
   green/ink cards → ivory-fill circle + green check;
   ivory card     → green-fill circle + ivory check. */
.mn-cardmix__list li::before,
.mn-feature__list li::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 3px !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 50% !important;          /* check-circle = sanctioned circular marker */
  background-color: var(--heg-green) !important;
  background-image: var(--heg-check-ivory) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}
.mn-cardmix__list li,
.mn-feature__list li { padding-left: 26px !important; }
/* on the dark green / warm-ink cards: ivory disc + green check (green would vanish) */
.mn-cardmix__card--dark .mn-cardmix__list li::before,
.mn-cardmix__card--dark-warm .mn-cardmix__list li::before {
  background-color: rgba(252,250,241,0.92) !important;
  background-image: var(--heg-check-green) !important;
}

/* Article prose lists (mentor / case / learn) — native disc → green check-circle */
.prose ul { list-style: none !important; padding-left: 4px !important; }
.prose ul li { position: relative !important; padding-left: 28px !important; }
.prose ul li::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0.45em !important;
  width: 17px !important;
  height: 17px !important;
  border-radius: 50% !important;
  background-color: var(--heg-green) !important;
  background-image: var(--heg-check-ivory) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

/* (1b) Home «app» feature rows — emoji-box icon → green check marker on the
   green panel: ivory-tint square holding an ember check (already squared by an
   earlier rule; here we swap the blank ember square for a real check glyph). */
.app-feature__icon {
  background: rgba(252,250,241,0.12) !important;
  border-radius: 12px !important;
}
.app-feature__icon::before {
  content: "" !important;
  width: 22px !important;
  height: 22px !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23FF6A3D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpath d='M22 4 12 14.01l-3-3'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  border-radius: 0 !important;
}

/* (1c) /platform pf-bullets — already a check-circle; pin to brand Green
   (kills the lingering lime #6fbf3a) and keep the white check icon. */
.pf-bullets li::before {
  background-color: var(--heg-green) !important;
  border-radius: 50% !important;
}

/* ---------- (2) Mono eyebrow ember-square markers — consistency ---------- */

/* Home hero eyebrow pill: pulsing brand circle dot → static 8px ember square */
.home-hero__dot {
  width: 8px !important;
  height: 8px !important;
  border-radius: 2px !important;
  background: var(--heg-ember) !important;
  animation: none !important;
}
/* City hero eyebrow pill: same square ember marker */
.city-eyebrow__dot {
  width: 8px !important;
  height: 8px !important;
  border-radius: 2px !important;
  background: var(--heg-ember) !important;
  animation: none !important;
}
/* /platform section eyebrow (mono, on light) — prepend an ember-square marker */
.pf-section__eyebrow {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.pf-section__eyebrow::before {
  content: "" !important;
  width: 8px !important;
  height: 8px !important;
  flex: none !important;
  background: var(--heg-ember) !important;
  border-radius: 2px !important;
}
/* /for/* ifr-eyebrow (outlined mono pill) — prepend an ember-square marker */
.ifr-eyebrow {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  border-color: var(--heg-line-ink) !important;
  color: var(--heg-ink) !important;
}
.ifr-eyebrow::before {
  content: "" !important;
  width: 8px !important;
  height: 8px !important;
  flex: none !important;
  background: var(--heg-ember) !important;
  border-radius: 2px !important;
}

/* ---------- (3) ONE subtle dotted-orbit accent (ember apex dot) ---------- */
/* Decorative tech-layer arc in the home hero's empty top-right corner.
   Behind all content (hero inner is z-index:1), pointer-events:none, low
   opacity. SVG = dashed green ring (dasharray 3 7) + a solid ember apex dot. */
.home-hero { position: relative; }
.home-hero::before {
  content: "" !important;
  position: absolute !important;
  top: -120px !important;
  right: -120px !important;
  width: 420px !important;
  height: 420px !important;
  z-index: 0 !important;
  pointer-events: none !important;
  opacity: 0.5 !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420' viewBox='0 0 420 420' fill='none'%3E%3Ccircle cx='210' cy='210' r='150' stroke='%2306463D' stroke-opacity='0.30' stroke-width='1.5' stroke-dasharray='3 7'/%3E%3Ccircle cx='210' cy='210' r='96' stroke='%2306463D' stroke-opacity='0.18' stroke-width='1.5' stroke-dasharray='3 7'/%3E%3Ccircle cx='314' cy='102' r='5.5' fill='%23FF6A3D'/%3E%3C/svg%3E") !important;
}
@media (max-width: 760px) {
  .home-hero::before { display: none !important; }   /* keep mobile clean */
}

/* ============================================================
   PALETTE VARIETY — restore the DS 5-colour system.
   DS is Ivory · Ink · Green · Ember · Blue. The first pass collapsed
   card grids to green/ink/ivory (read as monotone). Reintroduce Blue
   and the DS-sanctioned SOLID Ember/Blue grain cards (deep-green text),
   with grain on solid colour panels, distributed across card grids.
   ============================================================ */
:root { --heg-blue: #B7D4E4; --heg-green-text: #04342D; }

/* ---- ICP / audience cards → varied DS set (green/ember/blue/ivory/ink) ---- */
.icp-card--forest   { background: var(--heg-green) !important; color: var(--heg-ivory) !important; border: 0 !important; }
.icp-card--brand    { background: var(--heg-ember) !important; color: var(--heg-green-text) !important; border: 0 !important; }
.icp-card--gold     { background: var(--heg-blue)  !important; color: var(--heg-green-text) !important; border: 0 !important; }
.icp-card--leaf     { background: var(--heg-ivory) !important; color: var(--heg-ink) !important; border: 1px solid var(--heg-line-ink) !important; }
.icp-card--lavender { background: var(--heg-ink)   !important; color: var(--heg-ivory) !important; border: 0 !important; }
.icp-card--ink      { background: var(--heg-ink)   !important; color: var(--heg-ivory) !important; border: 0 !important; }
/* deep-green text on the light colour cards (ember/blue) */
.icp-card--brand .icp-card__head, .icp-card--brand .icp-card__label, .icp-card--brand .icp-card__pain, .icp-card--brand .icp-card__cta,
.icp-card--gold  .icp-card__head, .icp-card--gold  .icp-card__label, .icp-card--gold  .icp-card__pain, .icp-card--gold  .icp-card__cta {
  color: var(--heg-green-text) !important;
}
/* ivory text on the dark cards */
.icp-card--forest .icp-card__head, .icp-card--forest .icp-card__label, .icp-card--forest .icp-card__pain, .icp-card--forest .icp-card__cta,
.icp-card--lavender .icp-card__head, .icp-card--lavender .icp-card__label, .icp-card--lavender .icp-card__pain, .icp-card--lavender .icp-card__cta,
.icp-card--ink .icp-card__head, .icp-card--ink .icp-card__label, .icp-card--ink .icp-card__pain, .icp-card--ink .icp-card__cta {
  color: var(--heg-ivory) !important;
}
/* chips: tinted to the card, correct text (mono pills stay) */
.icp-card--brand .icp-card__chip, .icp-card--gold .icp-card__chip { background: rgba(4,52,45,0.12) !important; color: var(--heg-green-text) !important; }
.icp-card--forest .icp-card__chip, .icp-card--lavender .icp-card__chip, .icp-card--ink .icp-card__chip { background: rgba(250,247,234,0.14) !important; color: var(--heg-ivory) !important; }
/* grain on the solid colour panels (DS-sanctioned), content above */
.icp-card--forest, .icp-card--brand, .icp-card--gold, .icp-card--lavender, .icp-card--ink { position: relative !important; overflow: hidden !important; }
.icp-card--forest::after, .icp-card--brand::after, .icp-card--gold::after, .icp-card--lavender::after, .icp-card--ink::after {
  content: "" !important; position: absolute !important; inset: 0 !important; z-index: 0 !important;
  background: var(--heg-grain) !important; background-size: 200px !important;
  mix-blend-mode: overlay !important; opacity: 0.4 !important; pointer-events: none !important;
}
.icp-card > * { position: relative; z-index: 1; }

/* ---- Testimonials → warmer varied set (ember / blue / ivory) ---- */
.mn-testimonial--coral    { background: var(--heg-ember) !important; color: var(--heg-green-text) !important; border: 0 !important; }
.mn-testimonial--cream    { background: var(--heg-blue)  !important; color: var(--heg-green-text) !important; border: 0 !important; }
.mn-testimonial--lavender { background: var(--heg-ivory) !important; color: var(--heg-ink) !important; border: 1px solid var(--heg-line-ink) !important; }
.mn-testimonial--coral .mn-testimonial__body, .mn-testimonial--cream .mn-testimonial__body,
.mn-testimonial--coral .mn-testimonial__head, .mn-testimonial--cream .mn-testimonial__head { color: var(--heg-green-text) !important; }
.mn-testimonial--coral .mn-testimonial__lbl, .mn-testimonial--cream .mn-testimonial__lbl { color: var(--heg-green-text) !important; opacity: 0.8; }
.mn-testimonial__avatar { background: rgba(4,52,45,0.16) !important; color: var(--heg-green-text) !important; }

/* ---- Interactive community globe (geo section) ---- */
.geo .heg-globe {
  position: relative !important;
  height: 560px !important;
  margin: 8px 0 40px !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: var(--heg-ivory) !important;
  box-shadow: inset 0 0 0 1px var(--heg-line-ink), var(--heg-shadow-lg) !important;
}
.heg-globe canvas { display: block; }
.heg-globe__tip {
  position: absolute; left: 24px; top: 24px; width: 300px; padding: 16px 18px;
  border-radius: 16px; z-index: 3; pointer-events: none;
  display: flex; flex-direction: column; gap: 4px;
  background: rgba(16,31,24,0.82);
  -webkit-backdrop-filter: var(--heg-glass-blur); backdrop-filter: var(--heg-glass-blur);
  box-shadow: 0 24px 64px rgba(0,0,0,0.42), inset 0 1px 0 rgba(250,247,234,0.16);
  color: var(--heg-ivory);
  opacity: 0; transform: translateY(12px);
  transition: opacity .45s cubic-bezier(.22,.61,.36,1), transform .45s cubic-bezier(.22,.61,.36,1);
}
.heg-globe__tip.is-on { opacity: 1; transform: translateY(0); }
.heg-globe__tip-k { font-family: var(--heg-mono); font-size: 12px; letter-spacing: .06em; color: rgba(250,247,234,0.85); }
.heg-globe__tip-city { font-family: var(--heg-font); font-weight: 700; font-size: 22px; letter-spacing: -.01em; }
.heg-globe__tip-n { font-family: var(--heg-font); font-weight: 700; font-size: 20px; margin-top: 2px; }
.heg-globe__tip-n i { font-style: normal; font-size: 12px; font-weight: 500; opacity: .85; }
.heg-globe__tip-photos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.heg-globe__tip-photos img {
  width: 40px; height: 40px; border-radius: 10px; object-fit: cover;
  box-shadow: inset 0 0 0 1px rgba(250,247,234,0.22);
}
@media (max-width: 760px) { .geo .heg-globe { height: 420px !important; } .heg-globe__tip { width: 220px; } }

/* ---- "Три опоры" trio → green / blue / ink (more colour on the dark section) ---- */
.mn-cardmix__card--light { background: var(--heg-blue) !important; color: var(--heg-green-text) !important; border: 0 !important; }
.mn-cardmix__card--light .mn-cardmix__title,
.mn-cardmix__card--light .mn-cardmix__lede,
.mn-cardmix__card--light .mn-cardmix__note,
.mn-cardmix__card--light .mn-cardmix__list li { color: var(--heg-green-text) !important; }
.mn-cardmix__card--light .mn-cardmix__list li::before { background: var(--heg-green) !important; }
.mn-cardmix__card--light .mn-cardmix__chip { background: rgba(4,52,45,0.12) !important; }
.mn-cardmix__card--light::after {
  content: "" !important; position: absolute !important; inset: 0 !important; z-index: 0 !important;
  background: var(--heg-grain) !important; background-size: 200px !important;
  mix-blend-mode: overlay !important; opacity: 0.35 !important; pointer-events: none !important;
}

/* ============================================================
   DAPPLED LIGHT — the DS's one sanctioned decorative background
   (warm sunlight through foliage, top-left). Ported from the DS
   tokens/effects.css. Warms flat ivory/green panels (anti-monotone).
   ============================================================ */
:root {
  --leaf-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='720'%3E%3Cfilter id='lt'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.011 0.014' numOctaves='3' seed='9' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 0.95 0 0 0 0 0.8 1.5 1.5 1.5 0 -1.45'/%3E%3CfeGaussianBlur stdDeviation='2.6'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23lt)'/%3E%3C/svg%3E");
  --leaf-soft: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='760' height='760'%3E%3Cfilter id='sh'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.009 0.012' numOctaves='3' seed='23' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.20 0 0 0 0 0.14 0 0 0 0 0.05 1.0 1.0 1.0 0 -0.92'/%3E%3CfeGaussianBlur stdDeviation='8'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23sh)'/%3E%3C/svg%3E");
  --leaf-light-green: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='720'%3E%3Cfilter id='ltg'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.011 0.014' numOctaves='3' seed='9' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.18 0 0 0 0 0.40 0 0 0 0 0.28 1.5 1.5 1.5 0 -1.45'/%3E%3CfeGaussianBlur stdDeviation='2.6'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23ltg)'/%3E%3C/svg%3E");
}
/* beige sun (ivory panels): .mn-form */
.mn-form { position: relative !important; overflow: hidden !important; background-color: #F1E9D2 !important; }
.mn-form::before {
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-soft) !important; background-size: 760px 760px !important;
  mix-blend-mode: multiply !important; opacity: .16 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
}
.mn-form::after {
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-light-green) !important; background-size: 720px 720px !important;
  mix-blend-mode: multiply !important; opacity: .5 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
}
.mn-form > * { position: relative; z-index: 1; }

/* sun on the green field: .app section */
.app { position: relative !important; overflow: hidden !important; }
.app::before {
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-soft) !important; background-size: 760px 760px !important;
  mix-blend-mode: multiply !important; opacity: .34 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
}
.app::after {
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-light) !important; background-size: 720px 720px !important;
  mix-blend-mode: screen !important; opacity: .62 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
}
.app > * { position: relative; z-index: 1; }

/* ---- Dappled rollout: warm heroes (beige) + rich green final-CTAs ---- */
.mentor-hero, .case-hero, .city-hero, .mentor-cta {
  position: relative !important; overflow: hidden !important; background-color: #F1E9D2 !important;
}
.mentor-hero::before, .case-hero::before, .city-hero::before, .mentor-cta::before {
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-soft) !important; background-size: 760px 760px !important;
  mix-blend-mode: multiply !important; opacity: .14 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
}
.mentor-hero::after, .case-hero::after, .city-hero::after, .mentor-cta::after {
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-light-green) !important; background-size: 720px 720px !important;
  mix-blend-mode: multiply !important; opacity: .42 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
}
.mentor-hero > *, .case-hero > *, .city-hero > *, .mentor-cta > * { position: relative; z-index: 1; }

/* final-CTA blocks → green field with sun (was flat ink) */
.case-final, .mn-final {
  background-color: var(--heg-green) !important; background-image: none !important;
  color: var(--heg-ivory) !important; position: relative !important; overflow: hidden !important;
}
.case-final::before, .mn-final::before {
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-soft) !important; background-size: 760px 760px !important;
  mix-blend-mode: multiply !important; opacity: .34 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
}
.case-final::after, .mn-final::after {
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-light) !important; background-size: 720px 720px !important;
  mix-blend-mode: screen !important; opacity: .55 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
}
.case-final > *, .mn-final > * { position: relative; z-index: 1; }
/* CTA button on green dappled = ivory fill, ink text (DS: green reads weak on green) */
.case-final .btn-accent, .case-final .btn-primary, .mn-final .btn-primary, .mn-final .btn-accent {
  background: var(--heg-ivory) !important; color: var(--heg-ink) !important;
}

/* startups + founder heroes (.mn-hero) → warm beige dappled */
.mn-hero { position: relative !important; overflow: hidden !important; background-color: #F1E9D2 !important; }
.mn-hero::before {
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-soft) !important; background-size: 760px 760px !important;
  mix-blend-mode: multiply !important; opacity: .14 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
}
.mn-hero::after {
  content:"" !important; position:absolute !important; inset:0 !important; z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-light-green) !important; background-size: 720px 720px !important;
  mix-blend-mode: multiply !important; opacity: .42 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
}
.mn-hero > * { position: relative; z-index: 1; }

/* ============================================================
   FINISH-ALL-PAGES — per-family DS gap fixes (workflow-authored,
   adversarially reviewed). groups/startups/founder/events/mentors/
   about/for/cities/case/mentor/inline-pages/hgx.
   ============================================================ */


/* ============================================================
   FAMILY: groups (groups.22fe76f3.css) — DS v6 deltas
   Already handled in heg-ds.css (do NOT redo):
     - .cycle__num  -> 12px rounded-rect, green bg, ivory text, mono (L380)
     - .cycle:after -> flattened to solid --heg-green (L405)
     - .grp__leader img -> 12px (L378)
     - all --brand-*/--surface-*/--accent-* token remaps (Layer B)
     - --brand-100 donut track -> #F1ECD8 (= ivory-300) — already correct,
       so circle#1 (the track) is intentionally NOT touched here.
   Verified against /groups/index.html markup:
     gaugeGradient = #F2A900->#6FBF3A->#255F00 (literal gradient on gauge fill)
     gauge track   = first <path> stroke="rgba(0,0,0,.08)"
     donut segs    = circle#2..#5 (.donut__seg) stroke #255F00/#3E8E1C/#6FBF3A/#B7E097
     legend        = 4 <li>, inline style="background:#…" same lime ramp, same order
     stat-strip    = ink panel, body color:#fff (literal)
     Google "G" mark NOT present on this page; review stars decorative (left).
   ============================================================ */

/* --- GAUGE: kill literal gradient stroke (url(#gaugeGradient)
   = amber->lime->dark-green ramp). DS: single solid green fill. --- */
.gr-page[data-astro-cid-jcnq5h5q] .gauge__fill[data-astro-cid-jcnq5h5q] {
  stroke: var(--heg-green) !important;
}
/* gauge track: lift off cold rgba(0,0,0,.08) onto warm DS ivory-300.
   Track is the first <path> in the gauge svg (fill is the second). --- */
.gr-page[data-astro-cid-jcnq5h5q] .gauge[data-astro-cid-jcnq5h5q] svg path[data-astro-cid-jcnq5h5q]:first-of-type {
  stroke: var(--heg-ivory-300) !important;
}
.gr-page[data-astro-cid-jcnq5h5q] .gauge__num[data-astro-cid-jcnq5h5q] { fill: var(--heg-ink) !important; }

/* --- DONUT: replace literal lime ramp (#255F00/#3E8E1C/#6FBF3A/#B7E097)
   with DS categorical palette. circle#1 is the un-classed track (already
   ivory-300 via --brand-100); segments are circle #2..#5 by element type.
   Order by share: Мастермайнды -> green, Форум -> blue, Case Clinics ->
   ember, Локальные -> ink. All legible against ivory card. --- */
.gr-page[data-astro-cid-jcnq5h5q] .donut[data-astro-cid-jcnq5h5q] svg circle:nth-of-type(2) { stroke: var(--heg-green) !important; }
.gr-page[data-astro-cid-jcnq5h5q] .donut[data-astro-cid-jcnq5h5q] svg circle:nth-of-type(3) { stroke: var(--heg-blue)  !important; }
.gr-page[data-astro-cid-jcnq5h5q] .donut[data-astro-cid-jcnq5h5q] svg circle:nth-of-type(4) { stroke: var(--heg-ember) !important; }
.gr-page[data-astro-cid-jcnq5h5q] .donut[data-astro-cid-jcnq5h5q] svg circle:nth-of-type(5) { stroke: var(--heg-ink)   !important; }
/* donut center number -> ink for crisp read on ivory */
.gr-page[data-astro-cid-jcnq5h5q] .donut__num[data-astro-cid-jcnq5h5q] { fill: var(--heg-ink) !important; }

/* --- DONUT LEGEND swatches: inline style="background:#hex" lime ramp.
   Match the segment palette above 1:1 so legend == chart. --- */
.gr-page[data-astro-cid-jcnq5h5q] .donut-legend[data-astro-cid-jcnq5h5q] li:nth-child(1) i[data-astro-cid-jcnq5h5q] { background: var(--heg-green) !important; }
.gr-page[data-astro-cid-jcnq5h5q] .donut-legend[data-astro-cid-jcnq5h5q] li:nth-child(2) i[data-astro-cid-jcnq5h5q] { background: var(--heg-blue)  !important; }
.gr-page[data-astro-cid-jcnq5h5q] .donut-legend[data-astro-cid-jcnq5h5q] li:nth-child(3) i[data-astro-cid-jcnq5h5q] { background: var(--heg-ember) !important; }
.gr-page[data-astro-cid-jcnq5h5q] .donut-legend[data-astro-cid-jcnq5h5q] li:nth-child(4) i[data-astro-cid-jcnq5h5q] { background: var(--heg-ink)   !important; }

/* --- STAT-STRIP: dark ink panel is correct, but body text literal #fff
   -> DS ivory-on-ink; label rgba -> warm ivory-72%. Number already ember
   (--on-dark-accent = #FF6A3D), left alone. --- */
.gr-page[data-astro-cid-jcnq5h5q] .stat-strip[data-astro-cid-jcnq5h5q] { color: var(--heg-ivory) !important; }
.gr-page[data-astro-cid-jcnq5h5q] .stat-strip[data-astro-cid-jcnq5h5q] span[data-astro-cid-jcnq5h5q] { color: rgba(252,250,241,0.72) !important; }

/* --- FORMAT cards: background was var(--surface) which Layer B remaps to
   the page ivory, so cards read borderless/white-flat. Sink to ivory-300 +
   ink hairline for real DS card presence. Hover already borders to ink. --- */
.gr-page[data-astro-cid-jcnq5h5q] .format[data-astro-cid-jcnq5h5q] {
  background: var(--heg-ivory-300) !important;
  border-color: var(--heg-line-ink) !important;
}
.gr-page[data-astro-cid-jcnq5h5q] .format__num[data-astro-cid-jcnq5h5q] {
  font-family: var(--heg-mono) !important;
  color: var(--heg-green-text) !important;
}

/* --- GROUP cards: value-card hover -> solid green w/ ivory text (DS
   value-card recipe) instead of a flat border-only hover. All current
   text children covered to avoid ink-on-green. --- */
.gr-page[data-astro-cid-jcnq5h5q] .grp[data-astro-cid-jcnq5h5q]:hover {
  background: var(--heg-green) !important;
  border-color: var(--heg-green) !important;
}
.gr-page[data-astro-cid-jcnq5h5q] .grp[data-astro-cid-jcnq5h5q]:hover .grp__name[data-astro-cid-jcnq5h5q],
.gr-page[data-astro-cid-jcnq5h5q] .grp[data-astro-cid-jcnq5h5q]:hover .grp__desc[data-astro-cid-jcnq5h5q],
.gr-page[data-astro-cid-jcnq5h5q] .grp[data-astro-cid-jcnq5h5q]:hover .grp__meta[data-astro-cid-jcnq5h5q],
.gr-page[data-astro-cid-jcnq5h5q] .grp[data-astro-cid-jcnq5h5q]:hover .grp__leader[data-astro-cid-jcnq5h5q],
.gr-page[data-astro-cid-jcnq5h5q] .grp[data-astro-cid-jcnq5h5q]:hover .grp__members[data-astro-cid-jcnq5h5q] { color: var(--heg-ivory) !important; }
.gr-page[data-astro-cid-jcnq5h5q] .grp[data-astro-cid-jcnq5h5q]:hover .grp__badge[data-astro-cid-jcnq5h5q],
.gr-page[data-astro-cid-jcnq5h5q] .grp[data-astro-cid-jcnq5h5q]:hover .grp__tag[data-astro-cid-jcnq5h5q] {
  color: var(--heg-ivory) !important;
  background: rgba(252,250,241,0.18) !important;
}
/* group badge rest state: mono eyebrow, DS green-text on ivory pill */
.gr-page[data-astro-cid-jcnq5h5q] .grp__badge[data-astro-cid-jcnq5h5q] {
  font-family: var(--heg-mono) !important;
  color: var(--heg-green-text) !important;
}


/* ============================================================
   STARTUPS PAGE (startups.098b0a5f.css) — remaining DS deltas
   heg-ds.css already handles: .mn-hero beige+dappled bg-COLOR
   (L1620), .mn-su/.mn-vp white→ivory cards (L393), .mn-final
   green-dappled panel + ivory text (L1595-1617), .mn-statbar__item
   green border (L350), .mn-final .btn-accent ivory-fill/ink-text
   via !important (L1615), .mn-final::before leaf dapple (L1599).
   Below = literal violations that SURVIVE the cascade through
   shorthand gaps, inline styles, or unset properties.
   ============================================================ */

/* (1) HERO BG — VERIFIED: scoped shorthand paints two literal radial
   gradients (#E3F3D2 / #FFE9B8) + #f5f7f2; heg-ds L1620 only sets
   background-color (not background-image), so the gradient layers
   still paint OVER the beige. Kill them so beige + dappled gobos
   (heg-ds ::before/::after L1621-1634) read clean. */
.mn-hero[data-astro-cid-myseyla7],
.mn-hero {
  background-image: none !important;
}

/* (2) HERO PHOTO SHAPES — VERIFIED: base shape rules live UNSCOPED in
   oferta.css (organic border-radius pebble/bean/egg, SVG mask cloud)
   with inline style="background-color:#0F1A0A|#F2A900|#255F00|#6FBF3A"
   on each <span>. DS bans blobs + those literals; !important is
   required to beat the inline style. Each shape wraps a real photo
   (/images/events/*.webp) so film grain is DS-appropriate. Convert to
   rounded-rect 16px, drop masks, back with a neutral DS surface. */
.mn-shape[data-astro-cid-myseyla7],
.mn-shape--pebble[data-astro-cid-myseyla7],
.mn-shape--bean[data-astro-cid-myseyla7],
.mn-shape--cloud[data-astro-cid-myseyla7],
.mn-shape--egg[data-astro-cid-myseyla7],
.mn-shape, .mn-shape--pebble, .mn-shape--bean,
.mn-shape--cloud, .mn-shape--egg {
  border-radius: 16px !important;
  -webkit-mask: none !important;
  mask: none !important;
  background-color: var(--heg-ivory-300) !important;
  box-shadow: var(--heg-shadow-lg) !important;
  overflow: hidden !important;
}
.mn-shape[data-astro-cid-myseyla7] > img,
.mn-shape > img {
  filter: var(--heg-film) !important;
  border-radius: 16px !important;
}

/* (3) DARK STAT BAND (.mn-dark / .mn-bigband) — VERIFIED real contrast
   bug: --brand-500 is remapped to #06463D (Green, heg-ds L57), so the
   big number + trend pill render deep-green on the Ink (#101F18) panel
   = near-invisible. DS: on dark, accents are ivory / ember, never
   deep-green. Trend pill also uses a literal teal #00d0ad26 fill. */
.mn-dark[data-astro-cid-myseyla7], .mn-dark {
  color: var(--heg-ivory) !important;
}
.mn-bigband__num[data-astro-cid-myseyla7], .mn-bigband__num {
  color: var(--heg-ivory) !important;
}
.mn-bigband__trend[data-astro-cid-myseyla7], .mn-bigband__trend {
  background: rgba(255,106,61,0.16) !important;   /* ember tint on dark */
  color: var(--heg-ember) !important;
  border-radius: var(--r-pill) !important;        /* it's a tag → pill ok */
}

/* (4) FINAL-CTA ACCENT BUTTON — CORRECTED RATIONALE: the scoped
   .mn-final[attr] .btn-accent[attr] gradient/color have NO !important,
   so heg-ds L1615 (background:var(--heg-ivory)!important;
   color:var(--heg-ink)!important) ALREADY wins on bg + text — those
   lines below merely re-assert the same values (safe, not contradictory).
   The genuinely-surviving violation is the BOX-SHADOW: scoped sets an
   ember glow (#ff6b0073) and heg-ds never sets box-shadow on the button.
   Neutralise it to the DS shadow and drop the hover brightness. */
.mn-final[data-astro-cid-myseyla7] .btn-accent[data-astro-cid-myseyla7],
.mn-final .btn-accent {
  background: var(--heg-ivory) !important;
  background-image: none !important;
  color: var(--heg-ink) !important;
  box-shadow: var(--heg-shadow-sm) !important;
}
.mn-final[data-astro-cid-myseyla7] .btn-accent[data-astro-cid-myseyla7]:hover,
.mn-final .btn-accent:hover {
  background: var(--heg-ivory-300) !important;
  filter: none !important;
}

/* (5) FINAL-CTA PANEL SHADOW — VERIFIED: scoped .mn-final[attr] keeps an
   ember-tinted glow (0 20px 60px -30px #f2a90066) under the now-green
   panel; heg-ds never overrode box-shadow on .mn-final. Neutralise. */
.mn-final[data-astro-cid-myseyla7], .mn-final {
  box-shadow: var(--heg-shadow-lg) !important;
}


/* ============================================================
   FOUNDER / SPEAKER page (/founder/) — deltas
   The page's real content is NOT the scoped founder.fbd6d4bd.css
   (.mn-founder*/.mn-statbar) — it's an inline <style> block of
   ".sp-*" speaker classes (no data-astro-cid). heg-ds.css loads
   LAST so plain class selectors here beat the inline <style>;
   every restated value is !important.

   Already handled elsewhere (do NOT touch): .sp-hero__portrait
   glass-frame + brackets + badge; all .sp-* photo <img> film grade;
   .sp-hero__portrait grain. .mn-statbar / .mn-venue-pill remap.

   What survives = 4 literal gradients + #fff / #1a1a1e / #eae5df
   fills + brand-500 eyebrows that go invisible on the dark bands,
   + an italic-Manrope quote that should be the serif quote.
   ============================================================ */

/* ---- HERO band: literal gradient (#f5f7f2→#fff) → warm ivory dappled.
   Mirror the sanctioned .mn-hero dapple recipe; .sp-hero is the real
   hero wrapper on this page (.mn-hero is unused here). ---- */
.sp-hero {
  background: #F1E9D2 !important;
  background-image: none !important;
  position: relative !important;
  overflow: hidden !important;
}
.sp-hero::before {
  content: "" !important; position: absolute !important; inset: 0 !important;
  z-index: 0 !important; pointer-events: none !important;
  background-image: var(--leaf-soft) !important; background-size: 760px 760px !important;
  mix-blend-mode: multiply !important; opacity: .14 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
}
.sp-hero::after {
  content: "" !important; position: absolute !important; inset: 0 !important;
  z-index: 0 !important; pointer-events: none !important;
  background-image: var(--leaf-light-green) !important; background-size: 720px 720px !important;
  mix-blend-mode: multiply !important; opacity: .40 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
}
.sp-hero > * { position: relative; z-index: 1; }

/* hero eyebrow → mono (DS: eyebrows are mono); green reads fine on ivory */
.sp-hero__eyebrow {
  font-family: var(--heg-mono) !important;
  letter-spacing: 0.12em !important;
  color: var(--heg-green) !important;
}

/* hero fact chips: #fff fill → ivory card; circle dot (border-radius:50%)
   → small square ember marker (DS bans circles, allows ember square) */
.sp-hero__fact {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 12px !important;
}
.sp-hero__fact::before {
  border-radius: 2px !important;          /* square, not circle */
  background: var(--heg-ember) !important;
}
.sp-hero__fact-num   { color: var(--heg-ink) !important; }
.sp-hero__fact-label { color: var(--heg-text-2) !important; }

/* hero pills: #fff fill → ivory */
.sp-hero__pill {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  color: var(--heg-ink) !important;
}

/* ---- JOURNEY band: literal gradient (var(--ink-900)→#1a1a1e) → solid
   Ink dark-panel (DS Rule 1: numbers/metrics on a dark plate). ---- */
.sp-journey {
  background: var(--heg-ink) !important;
  background-image: none !important;
}
/* year eyebrow is brand-500 (green) = invisible on Ink → ember mono */
.sp-journey__card-year {
  font-family: var(--heg-mono) !important;
  color: var(--heg-ember) !important;
}
/* card link accent on dark → ivory (green disappears) */
.sp-journey__card-link { color: var(--heg-ivory) !important; }

/* ---- FORMATS band: #fff section + #fff cards → ivory ---- */
.sp-formats { background: var(--heg-ivory) !important; background-image: none !important; }
.sp-format {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
}
.sp-format__img { background: var(--heg-ivory-300) !important; }
/* format kicker → mono; green ✓ on ivory reads fine, keep */
.sp-format__num { font-family: var(--heg-mono) !important; color: var(--heg-green) !important; }

/* ---- CASES band (also wraps .sp-experience + .sp-collab, one band):
   literal gradient → solid Green dark-panel (varies from the Ink
   journey band → palette variety the DS asks for). Ivory text. ---- */
.sp-cases {
  background: var(--heg-green) !important;
  background-image: none !important;
}
/* case tag = brand-500 green → invisible on green → ember mono */
.sp-case__tag {
  font-family: var(--heg-mono) !important;
  color: var(--heg-ember) !important;
}
/* case quote: italic-Manrope → Source Serif quote, ivory; green rule
   → ember (green-on-green invisible). DS: serif italic for quotes. */
.sp-case__quote {
  font-family: var(--heg-quote) !important;
  font-style: italic !important;
  color: rgba(250,247,234,0.86) !important;
  border-left-color: var(--heg-ember) !important;
}
/* experience disclosure markers (+ / →) are green = invisible on green */
.sp-experience__topics summary::after { color: var(--heg-ember) !important; }
.sp-experience__topics li::before      { color: var(--heg-ember) !important; }
/* collab card top-accent green → invisible on green → ember */
.sp-collab__card { border-top-color: var(--heg-ember) !important; }

/* ---- MEDIA band: #f5f7f2 section + #fff cards → ivory ---- */
.sp-media { background: var(--heg-ivory) !important; background-image: none !important; }
.sp-media-card {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
}
.sp-media-card__src { font-family: var(--heg-mono) !important; color: var(--heg-green) !important; }
.sp-media-card__cta { color: var(--heg-green) !important; }

/* ---- COMMUNITY band: #fff → ivory ---- */
.sp-community { background: var(--heg-ivory) !important; background-image: none !important; }

/* ---- CTA band: literal gradient (#f5f7f2→#eae5df) → green dappled CTA
   panel, mirroring the sanctioned .mn-final / .case-final recipe.
   Headings/copy here are ink (var(--ink-900)/#555) → flip to ivory. ---- */
.sp-cta {
  background-color: var(--heg-green) !important;
  background-image: none !important;
  position: relative !important;
  overflow: hidden !important;
}
.sp-cta::before {
  content: "" !important; position: absolute !important; inset: 0 !important;
  z-index: 0 !important; pointer-events: none !important;
  background-image: var(--leaf-soft) !important; background-size: 760px 760px !important;
  mix-blend-mode: multiply !important; opacity: .34 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
}
.sp-cta::after {
  content: "" !important; position: absolute !important; inset: 0 !important;
  z-index: 0 !important; pointer-events: none !important;
  background-image: var(--leaf-light) !important; background-size: 720px 720px !important;
  mix-blend-mode: screen !important; opacity: .55 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
}
.sp-cta > * { position: relative; z-index: 1; }
.sp-cta__text h2 { color: var(--heg-ivory) !important; }
.sp-cta__text p  { color: rgba(250,247,234,0.78) !important; }


/* ============================================================
   /events — data-viz + chip delta (gaps surviving heg-ds.css)
   Bento (.ev-card / .ev-grid) is fully authored (lines ~887-1038).
   split-bar__online / split-legend .dot-online / city-row__bar i.online
   already flattened (lines 400-402). split-bar__offline + cadence__bar +
   city-row track + non-online date all run on Layer-B-flattened tokens.
   ONLY remaining raw violation: the NON-featured .ev-chip--online still
   uses color-mix(in oklab,#6FBF3A 18%) (lime) — the featured override at
   line 1012 covers only :first-child, so the 3 listing-card online chips
   (cards #4, #6, #12) render lime. Flatten to a flat green-tint pill +
   deep-green text (DS: green-tint card, deep-green text, NO lime, no gradient).
   Verified: .ev-chip--online x3 (all non-featured) in events/index.html.
   Loads LAST → !important beats the (0,2,0) scoped color-mix rule.
   ============================================================ */

.ev-grid[data-astro-cid-ro7pgs3h] > .ev-card[data-astro-cid-ro7pgs3h]:not(:first-child) .ev-chip--online[data-astro-cid-ro7pgs3h]{
  background: rgba(6,70,61,0.12) !important;   /* flat single-colour green tint — no lime, no gradient */
  background-image: none !important;
  color: var(--heg-green-text) !important;     /* deep-green text on green tint (DS) */
}


/* ============================================================
   MENTORS LISTING (mentors.0fe57c9d.css) — DELTAS ONLY
   Most of this family is ALREADY handled in heg-ds.css:
   - .mentor-card face cards → white-strong glass over photo (lines 459-494)
   - .mentor-card__meta + :hover gradient scrim → flat glass / scrim (465, 386-388)
   - .mentor-card__badge--brand / --gold literal fills → green/ink on light tint (487-494)
   - .mentor-card__photo → --heg-film, object-position, 16px radius (460-464)
   - .case-final bg gradient + #255F00 fill fallback → Green dappled panel (1595-1617)
   - .case-final radius + ivory text (383-384), CTA button → ivory/ink (1615)
   - .mentor-filter base pill renders correct via remapped --surface/--border/--r-pill
   Remaining RAW literal violations that survive on this family:
   ============================================================ */

/* (1) Active filter pill: source has literal color:#fff on an Ink bg, NOT
   !important — so this !important rule wins regardless of specificity.
   Make it ivory (DS: ivory text on ink). Reaffirm the ink fill via token. */
.mentor-filter[aria-selected="true"] {
  background: var(--heg-ink) !important;
  border-color: var(--heg-ink) !important;
  color: var(--heg-ivory) !important;
}

/* (2) .case-final carried a literal green box-shadow (#255f0066) — a raw
   palette violation never reset in heg-ds.css. Replace with the DS soft
   shadow (Layer C already paints the panel Green-dappled + ivory text). */
.case-final {
  box-shadow: var(--heg-shadow-lg) !important;
}

/* (3) Nested heading/paragraph inside .case-final still carry literal #fff /
   #ffffffc7 (source rules are NON-!important) — map to ivory tokens so no
   white literal survives on the green dappled panel (ivory-on-green = DS). */
.case-final h2 { color: var(--heg-ivory) !important; }
.case-final p  { color: rgba(252,250,241,0.82) !important; }


/* ============================================================
   about — residual literal cleanups (deltas only)
   Verified against about.8164cd7c.css + heg-ds.css (loads LAST).
   Layer B + existing per-section rules already cover the bulk:
   hero radial washes -> flat ivory (heg-ds L365); .tst-card #fff
   fill -> ivory (L393); .tst-card__avatar 50% circle -> 12px rect
   (L378) + film grade (L590); pillar3 value-cards full hover-to-green
   (L761-803); geo-band big number -> ember (L1275). The two
   .tst-ribbons linear-gradients are mask-image edge fades (sanctioned).
   comp-bar (--ink-900 on --surface-sunk) + geo-band Ink panel are
   token-driven -> compliant. Only two raw literals still reach the
   screen; both fixed below. No existing heg-ds rule targets either
   selector -> no duplication/contradiction.
   ============================================================ */

/* (1) Mobile "показать ещё" hover regressed to literal #fff.
   Base .tst-show-more is already ivory (heg-ds L393); its scoped
   :hover sets background:#fff (DS bans pure-white fills). Keep the
   ivory family on hover -> faint warm lift, hairline darkens.
   Scoped :hover in source has no !important, so bare class + !important
   wins. Mobile-only (button is display:none on desktop). */
.tst-show-more:hover {
  background: var(--heg-ivory-300) !important;
  border-color: var(--heg-line-ink) !important;
}

/* (2) Geo-band description used raw white-alpha literal (#ffffffbf)
   over the Ink dark-panel. Pin to the Ivory token at the DS dark-panel
   body opacity (matches geo lede/note at heg-ds L1223). Title + big
   number already handled; this lands body copy on the same ivory ramp.
   Scoped with the about cid to match the existing .geo-band__num
   convention (heg-ds L1275). */
.geo-band__desc[data-astro-cid-kh7btl4r] {
  color: rgba(250, 247, 234, 0.70) !important;
}


/* ============================================================
   FOR (/for/_slug_) — colour-panel deltas (for_segments)
   Appended AFTER existing heg-ds.css ifr rules so this wins.
   heg-ds already handles: .ifr-member glass (L496-522), .ifr-eyebrow
   square (L1398-1412), the ivory white-card fills (L392-397),
   token-driven brand accents. Remaining = RAW inline literal panel
   fills + per-element inline colours that survive Layer B, plus a
   quote-text invisibility bug.

   Verified: all 6 hero AND cta__card carry the identical inline hex:
   founders #255F00 · senior-engineers #0E0E0E · ai-founders #FF6B00 ·
   c-level #FFE9B8 · ai-builders #E0DDF5 · consultants #DCEFD7.
   Inner inline literals verified: eyebrow/quote-mark gold/violet/etc,
   back color, primary btn background:#fff. CTA card has NO eyebrow /
   quote / meta / back (only __h, __d, __buttons[primary+ghost]) — those
   selectors below are harmless no-ops on the card, live on the hero.
   ============================================================ */

/* ---- panel base: kill inline radius/overflow, prep dappled stage ---- */
.ifr-hero, .ifr-cta__card {
  position: relative !important;
  overflow: hidden !important;
}
.ifr-cta__card { border-radius: 16px !important; }          /* was 28px */
/* float content over the z:0 gobos. CTA card children are STATIC in base,
   so z-index alone is inert — give them position so the stack engages. */
.ifr-hero > .container { position: relative !important; z-index: 1 !important; }
.ifr-cta__card > * { position: relative !important; z-index: 1 !important; }

/* ============ A) DARK PANELS: founders #255F00 -> Green,
                    senior-engineers #0E0E0E -> Ink. Ivory text. ============ */
.ifr-hero[style*="#255F00"],
.ifr-cta__card[style*="#255F00"] {
  background: var(--heg-green) !important;
  color: var(--heg-ivory) !important;
}
.ifr-hero[style*="#0E0E0E"],
.ifr-cta__card[style*="#0E0E0E"] {
  background: var(--heg-ink) !important;
  color: var(--heg-ivory) !important;
}
/* dappled-sun signature on the dark fields (reuse heg-ds leaf gobos) */
.ifr-hero[style*="#255F00"]::before, .ifr-cta__card[style*="#255F00"]::before,
.ifr-hero[style*="#0E0E0E"]::before, .ifr-cta__card[style*="#0E0E0E"]::before {
  content:"" !important; position:absolute !important; inset:0 !important;
  z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-soft) !important; background-size: 760px 760px !important;
  mix-blend-mode: multiply !important; opacity: .30 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
}
.ifr-hero[style*="#255F00"]::after, .ifr-cta__card[style*="#255F00"]::after,
.ifr-hero[style*="#0E0E0E"]::after, .ifr-cta__card[style*="#0E0E0E"]::after {
  content:"" !important; position:absolute !important; inset:0 !important;
  z-index:0 !important; pointer-events:none !important;
  background-image: var(--leaf-light-green) !important; background-size: 720px 720px !important;
  mix-blend-mode: screen !important; opacity: .50 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%);
}
/* ivory-on-dark inline back link (was inline color:#fff;opacity:.75 — keep ivory) */
.ifr-hero[style*="#255F00"] .ifr-back,
.ifr-hero[style*="#0E0E0E"] .ifr-back {
  color: var(--heg-ivory) !important;
}
/* eyebrow: ivory outline pill on the dark field (overrides global ink eyebrow L1398) */
.ifr-hero[style*="#255F00"] .ifr-eyebrow,
.ifr-hero[style*="#0E0E0E"] .ifr-eyebrow {
  color: var(--heg-ivory) !important;
  border-color: rgba(252,250,241,0.42) !important;
}
.ifr-hero[style*="#255F00"] .ifr-eyebrow::before,
.ifr-hero[style*="#0E0E0E"] .ifr-eyebrow::before {
  background: var(--heg-ember) !important;          /* ember square reads on dark */
}
/* quote-mark: ember accent (was off-palette gold #F2A900) */
.ifr-hero[style*="#255F00"] .ifr-quote__mark,
.ifr-hero[style*="#0E0E0E"] .ifr-quote__mark {
  color: var(--heg-ember) !important;
}
/* meta dividers: ivory hairlines so they read on dark */
.ifr-hero[style*="#255F00"] .ifr-meta,
.ifr-hero[style*="#0E0E0E"] .ifr-meta {
  border-top-color: rgba(252,250,241,0.22) !important;
  border-bottom-color: rgba(252,250,241,0.22) !important;
}
/* primary btn: ivory fill / green text (was inline background:#fff) */
.ifr-hero[style*="#255F00"] .ifr-btn--primary, .ifr-cta__card[style*="#255F00"] .ifr-btn--primary,
.ifr-hero[style*="#0E0E0E"] .ifr-btn--primary, .ifr-cta__card[style*="#0E0E0E"] .ifr-btn--primary {
  background: var(--heg-ivory) !important;
  color: var(--heg-green) !important;
  border-color: transparent !important;
}
/* ghost btn: ivory outline on dark (was inline color:#fff;border-color:#fff) */
.ifr-hero[style*="#255F00"] .ifr-btn--ghost, .ifr-cta__card[style*="#255F00"] .ifr-btn--ghost,
.ifr-hero[style*="#0E0E0E"] .ifr-btn--ghost, .ifr-cta__card[style*="#0E0E0E"] .ifr-btn--ghost {
  color: var(--heg-ivory) !important;
  border-color: rgba(252,250,241,0.55) !important;
  background: transparent !important;
}

/* ============ B) WARM PANEL: ai-founders #FF6B00 + c-level #FFE9B8
                    -> Ember. Deep-green text. Grain (no dappled). ============ */
.ifr-hero[style*="#FF6B00"], .ifr-cta__card[style*="#FF6B00"],
.ifr-hero[style*="#FFE9B8"], .ifr-cta__card[style*="#FFE9B8"] {
  background: var(--heg-ember) !important;
  color: var(--heg-green-text) !important;
}
/* ============ C) COOL PANEL: ai-builders #E0DDF5 + consultants #DCEFD7
                    -> Blue. Deep-green text. Grain (no dappled). ============ */
.ifr-hero[style*="#E0DDF5"], .ifr-cta__card[style*="#E0DDF5"],
.ifr-hero[style*="#DCEFD7"], .ifr-cta__card[style*="#DCEFD7"] {
  background: var(--heg-blue) !important;
  color: var(--heg-green-text) !important;
}
/* grain on the solid colour panels (DS-sanctioned on solid colour cards) */
.ifr-hero[style*="#FF6B00"]::before, .ifr-cta__card[style*="#FF6B00"]::before,
.ifr-hero[style*="#FFE9B8"]::before, .ifr-cta__card[style*="#FFE9B8"]::before,
.ifr-hero[style*="#E0DDF5"]::before, .ifr-cta__card[style*="#E0DDF5"]::before,
.ifr-hero[style*="#DCEFD7"]::before, .ifr-cta__card[style*="#DCEFD7"]::before {
  content:"" !important; position:absolute !important; inset:0 !important;
  z-index:0 !important; pointer-events:none !important;
  background: var(--heg-grain) !important; background-size: 220px !important;
  mix-blend-mode: soft-light !important; opacity: .5 !important;
}
/* deep-green inline back link on the light panels (was inline color:#0E0E0E) */
.ifr-hero[style*="#FF6B00"] .ifr-back,
.ifr-hero[style*="#FFE9B8"] .ifr-back,
.ifr-hero[style*="#E0DDF5"] .ifr-back,
.ifr-hero[style*="#DCEFD7"] .ifr-back {
  color: var(--heg-green-text) !important;
}
/* eyebrow: deep-green outline + deep-green square (overrides global ink/ember) */
.ifr-hero[style*="#FF6B00"] .ifr-eyebrow, .ifr-hero[style*="#FFE9B8"] .ifr-eyebrow,
.ifr-hero[style*="#E0DDF5"] .ifr-eyebrow, .ifr-hero[style*="#DCEFD7"] .ifr-eyebrow {
  color: var(--heg-green-text) !important;
  border-color: rgba(4,52,45,0.34) !important;
}
.ifr-hero[style*="#FF6B00"] .ifr-eyebrow::before, .ifr-hero[style*="#FFE9B8"] .ifr-eyebrow::before,
.ifr-hero[style*="#E0DDF5"] .ifr-eyebrow::before, .ifr-hero[style*="#DCEFD7"] .ifr-eyebrow::before {
  background: var(--heg-green-text) !important;     /* ember-on-ember would vanish */
}
/* quote-mark: deep-green (was off-palette gold/violet) */
.ifr-hero[style*="#FF6B00"] .ifr-quote__mark, .ifr-hero[style*="#FFE9B8"] .ifr-quote__mark,
.ifr-hero[style*="#E0DDF5"] .ifr-quote__mark, .ifr-hero[style*="#DCEFD7"] .ifr-quote__mark {
  color: var(--heg-green-text) !important;
}
/* meta dividers: deep-green hairlines */
.ifr-hero[style*="#FF6B00"] .ifr-meta, .ifr-hero[style*="#FFE9B8"] .ifr-meta,
.ifr-hero[style*="#E0DDF5"] .ifr-meta, .ifr-hero[style*="#DCEFD7"] .ifr-meta {
  border-top-color: rgba(4,52,45,0.22) !important;
  border-bottom-color: rgba(4,52,45,0.22) !important;
}
/* primary btn: green fill / ivory text (was inline background:#fff or #0E0E0E) */
.ifr-hero[style*="#FF6B00"] .ifr-btn--primary, .ifr-cta__card[style*="#FF6B00"] .ifr-btn--primary,
.ifr-hero[style*="#FFE9B8"] .ifr-btn--primary, .ifr-cta__card[style*="#FFE9B8"] .ifr-btn--primary,
.ifr-hero[style*="#E0DDF5"] .ifr-btn--primary, .ifr-cta__card[style*="#E0DDF5"] .ifr-btn--primary,
.ifr-hero[style*="#DCEFD7"] .ifr-btn--primary, .ifr-cta__card[style*="#DCEFD7"] .ifr-btn--primary {
  background: var(--heg-green) !important;
  color: var(--heg-ivory) !important;
  border-color: transparent !important;
}
/* ghost btn: deep-green outline on the light panels */
.ifr-hero[style*="#FF6B00"] .ifr-btn--ghost, .ifr-cta__card[style*="#FF6B00"] .ifr-btn--ghost,
.ifr-hero[style*="#FFE9B8"] .ifr-btn--ghost, .ifr-cta__card[style*="#FFE9B8"] .ifr-btn--ghost,
.ifr-hero[style*="#E0DDF5"] .ifr-btn--ghost, .ifr-cta__card[style*="#E0DDF5"] .ifr-btn--ghost,
.ifr-hero[style*="#DCEFD7"] .ifr-btn--ghost, .ifr-cta__card[style*="#DCEFD7"] .ifr-btn--ghost {
  color: var(--heg-green-text) !important;
  border-color: rgba(4,52,45,0.45) !important;
  background: transparent !important;
}

/* ============ FIX: quote-card text-invisibility bug ============
   heg-ds L392-397 forces .ifr-quote -> ivory bg !important, but base
   .ifr-quote is color:inherit -> inherits the (now ivory) panel text ->
   invisible on dark panels. Lock to ivory card + ink serif-italic quote
   text (DS-sanctioned quote treatment). Card itself is always ivory, so
   ink text is correct on all six panels. ============ */
.ifr-hero .ifr-quote {
  color: var(--heg-ink) !important;
  font-family: var(--heg-quote) !important;
  font-style: italic !important;
}
.ifr-hero .ifr-quote__mark {
  /* serif mark inherits card ink unless a per-panel accent above sets it;
     accent rules above (ember on dark / green on light) still win by source order */
}
.ifr-hero .ifr-quote__src {
  color: var(--heg-text-2) !important;
  font-family: var(--heg-mono) !important;   /* source line = mono caption */
  font-style: normal !important;
  opacity: 1 !important;
}

/* ============ BODY SECTION: off-palette status pill ============
   .ifr-group__status--run literals color:#2c7a2c / background:#dcefd7
   -> DS green-tint (reuse Green token) ============ */
.ifr-group__status--run {
  color: var(--heg-green) !important;
  background: rgba(6,70,61,0.12) !important;
}


/* ============================================================
   CITY PAGES (/cities/_slug_) — DELTA over heg-ds.css
   Family CSS: _astro/_slug_.387adcb0.css ([data-astro-cid-ezledta3])
   Already handled upstream (NOT re-touched):
     - .city-hero dappled-warm + radials killed (L365 shorthand + L1575-1592)
     - .city-member solid card + film + ink text (L391, L524-535, L580)
     - .city-tag / .city-sibling white->ivory (L391)
     - .city-eyebrow__dot circle->ember square (L1376)
   NOTE: no events/stats/.city-row/.split-bar block ships on any city
   page HTML (verified across all 20 cities); nothing to add there.
   Appended LAST; !important beats the Astro scoped [data-astro-cid-*] rules.
   ============================================================ */

/* 1. .city-eyebrow pill — was background:#fff (DS bans solid white).
      Ivory tag pill with ink hairline; mono eyebrow on light.
      (Its __dot is already the ember square via heg-ds L1376.)
      eyebrow is NOT in the L391 white->ivory group, so this is a real gap. */
.city-eyebrow {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  color: var(--heg-ink) !important;
}

/* 2. .city-cta — REGRESSION FIX. Family CSS made it an Ink dark panel
      (color:#fff inside). heg-ds L391 forced background->ivory via !important
      but did NOT touch color:#fff -> white heading/desc/button on ivory =
      invisible. Restore a proper dark-CTA: GREEN field + sun (matches the
      proven .case-final/.mn-final recipe), ivory text, rect radius.
      Only L391 targets .city-cta; this block is later in the cascade -> wins. */
.city-cta {
  background: var(--heg-green) !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 16px !important;
  color: var(--heg-ivory) !important;
  position: relative !important;
  overflow: hidden !important;
}
.city-cta::before {
  content: "" !important;
  position: absolute !important; inset: 0 !important;
  z-index: 0 !important; pointer-events: none !important;
  background-image: var(--leaf-soft) !important;
  background-size: 760px 760px !important;
  mix-blend-mode: multiply !important; opacity: .34 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%);
}
.city-cta::after {
  content: "" !important;
  position: absolute !important; inset: 0 !important;
  z-index: 0 !important; pointer-events: none !important;
  background-image: var(--leaf-light) !important;
  background-size: 720px 720px !important;
  mix-blend-mode: screen !important; opacity: .55 !important;
  -webkit-mask-image: radial-gradient(110% 150% at 104% 8%, #000 12%, rgba(0,0,0,.4) 48%, transparent 82%);
  mask-image: radial-gradient(110% 150% at 104% 8%, #000 12%, rgba(0,0,0,.4) 48%, transparent 82%);
}
.city-cta > * { position: relative !important; z-index: 1 !important; }

/* 2b. CTA copy — keep ivory-on-green legible (was #fff / #ffffffc7) */
.city-cta__h { color: var(--heg-ivory) !important; }
.city-cta__d { color: rgba(252,250,241,0.82) !important; }

/* 2c. CTA primary button — was background:#fff. Ivory chip, ink text,
       ember on hover (deep-green text). Matches .case-final button recipe. */
.city-cta .city-btn--primary {
  background: var(--heg-ivory) !important;
  color: var(--heg-ink) !important;
}
.city-cta .city-btn--primary:hover {
  background: var(--heg-ember) !important;
  color: var(--heg-green-800) !important;
}

/* 3. Member badges — off-brand gold + leaf chips -> DS palette.
      gold (#ffe9b8 / #8b6914) -> Blue chip + deep-green text (DS: deep-green
        on blue, precedent .icp-card--gold @ L1449).
      leaf (#dcefd7 / #2c7a2c) -> green tint + green text (precedent
        .icp-card__chip @ L1465).
      Pills left as-is: badges are tags, DS allows pills for tags. */
.city-badge--gold {
  background: var(--heg-blue) !important;
  color: var(--heg-green-800) !important;
}
.city-badge--leaf {
  background: color-mix(in oklab, var(--heg-green) 14%, transparent) !important;
  color: var(--heg-green) !important;
}
/* --badge--brand already green-on-green-tint via Layer B remap; pin for safety. */
.city-badge--brand {
  background: color-mix(in oklab, var(--heg-green) 14%, transparent) !important;
  color: var(--heg-green) !important;
}


/* ============================================================
   CASE STUDY PAGES — deltas over heg-ds.css
   Source CSS: _astro/_slug_.cbb1503c.css  ·  HTML: /case/<slug>/index.html
   Real case template = hero + .prose body + .case-final CTA ONLY.
   (No metric/quote-card/author-block/blockquote markup exists in the
   built HTML — those source rules are dead. .case-hero__shape letter
   avatar is also never rendered. So nothing to restyle there.)

   ALREADY handled by heg-ds.css (verified, not re-touched):
     · .case-hero bg radial-gradients  → flat beige + dappled gobos (L1575)
     · .case-final bg card-grad-accent + :before glow + .btn-accent
       gradient                        → green dappled + ivory btn (L1595)
     · .case-hero__photo border:3px #fff + border-radius (organic blob)
       → border:0 + 16px rounded-rect, !important beats organic radius (L367)
     · .prose font / h2-h3 / links / list bullets / blockquote serif (L247)

   REMAINING gaps fixed below:
   1. .case-hero__photo--pebble/--bean/--blob/--cloud/--egg keep their
      ORGANIC width/height (72x96, 96x80, 80x96, 88x88, 72x92) — heg-ds
      only normalized radius, not dimensions, so photos still render as a
      mixed portrait/landscape grab-bag. Normalize to one square
      rounded-rect; re-assert 16px radius + film + neutral shadow.
   2. .case-final keeps an amber glow box-shadow (#f2a90066) that survives
      the dappled override → swap for a neutral ink shadow (DS: no ember
      colour leaking onto surfaces).
   ============================================================ */

/* 1 — uniform DS rounded-rect for ALL hero author photos */
.case-hero__photo,
.case-hero__photo--pebble,
.case-hero__photo--bean,
.case-hero__photo--cloud,
.case-hero__photo--egg,
.case-hero__photo--blob {
  width: 88px !important;
  height: 88px !important;
  object-fit: cover !important;
  border: 0 !important;
  border-radius: 16px !important;
  box-shadow: var(--heg-shadow-lg) !important;
  filter: var(--heg-film) !important;
}

/* 2 — kill the leftover amber glow on the final-CTA panel */
.case-final {
  box-shadow: var(--heg-shadow-xl) !important;
}


/* ============================================================
   MENTOR PROFILE (_slug_.21ed919c.css) — DELTAS
   Hero wash, portrait blob->rect+film, CTA dappled, case-card
   circle->rect+film, tags->mono-pill, and member scrims are ALL
   already handled in heg-ds.css (L365-405, L1575-1592, L378, L575).
   What survives are RAW literals on selectors heg-ds never touches:
   white card fills (#fff), an off-brand LinkedIn blue, an off-brand
   gold badge, and an off-brand status-pill green. Fix only those.
   Appended last -> beats Astro [data-astro-cid-gizrmpi3] scope.
   ============================================================ */

/* 1. Hero link chips: solid white -> ivory card (DS bans #fff fills).
      Keep them as bordered ivory pills; ink text already fine. */
.mentor-hero__link {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  color: var(--heg-ink) !important;
}
.mentor-hero__link:hover {
  border-color: var(--heg-green) !important;
}

/* 2. LinkedIn icon chip: page paints bg literal #0077b5 on the
      higher-specificity --li selector. heg-ds L381 (.mentor-hero__link-icon
      !important) already squares it to 6px + green and, being !important,
      already beats this NON-important --li blue — so the off-brand blue is
      in fact already neutralised. This rule is a defensive guard that keeps
      the icon green even if L381 is ever de-importanted; it never conflicts
      (both resolve to brand green / ivory). */
.mentor-hero__link--li .mentor-hero__link-icon {
  background: var(--heg-green) !important;
  color: var(--heg-ivory) !important;
}

/* 3. Mentor-group cards: solid white -> ivory rect card with ink rim.
      Matches the .mentor-cta / .city-* / .tst-card ivory-card family
      already established at heg-ds L390-397 (which does NOT include
      .mentor-group, so its #fff was unhandled). */
.mentor-group {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
}
.mentor-group:hover {
  border-color: var(--heg-green) !important;
}

/* 4. Status pills: keep pill shape, repaint off-brand literals + add mono.
      --running used #dcefd7 / #2c7a2c (off-brand green); --recruit is
      token-driven (green tint, cosmetically identical post-repaint);
      --past is neutral (left as-is). DS: tags = mono pills, ink/green
      text on light tints, no ember text. Defensive: --running/--recruit
      do not appear on the 40 current pages (only --past), but live in the
      shared _slug_ CSS so the fix travels with the file. */
.mentor-group__status {
  font-family: var(--heg-mono) !important;
}
.mentor-group__status--running {
  color: var(--heg-green) !important;
  background: rgba(6,70,61,0.10) !important;
}
.mentor-group__status--recruit {
  color: var(--heg-green) !important;
  background: rgba(6,70,61,0.10) !important;
}

/* 5. Hero "gold" badge: off-brand literal gold (#8b6914 / #ffe9b8).
      DS has no gold -> deep-green text on a warm Ember tint pill
      (DS-sanctioned deep-green-on-ember; text is green, never ember). */
.mentor-hero__badge--gold {
  color: var(--heg-green-text) !important;
  background: rgba(255,106,61,0.16) !important;
}
/* brand badge already token-driven (green); just enforce mono + green */
.mentor-hero__badge--brand {
  color: var(--heg-green) !important;
  background: rgba(6,70,61,0.10) !important;
}
.mentor-hero__badge { font-family: var(--heg-mono) !important; }


/* ============================================================
   FAMILY: misc_inline — partnership / courses / office / cases /
   oferta / rules. Appended LAST to heg-ds.css, so !important beats
   the per-page inline <style> (none use !important) and the Astro
   [data-astro-cid-*] scoped rules.

   Layer B already remaps every design TOKEN. The shared shell is
   already done. What remains = RAW LITERALS baked into the inline
   <style> blocks (overwhelmingly COURSES) + flat ivory-on-ivory
   cards + circle avatars/number-chips the DS bans.

   REVIEW FIXES vs proposal:
   - hgx block removed (would have flattened the intentional green/ink
     solid-colour variant cards; eyebrow rules were redundant).
   - cr-hero / cr-access dappling rewritten to the established
     pseudo-element gobo recipe (blend + opacity + radial mask) so it
     reads as soft dappling instead of a raw single-tile band, and so
     the dark hero gets a LIGHT (screen) gobo that actually shows.
   ============================================================ */

/* ---------------------------------------------------------------
   COURSES — entire inline <style> is hardcoded hex/gradients that
   bypass Layer B.
   --------------------------------------------------------------- */

/* Hero: flat Ink panel + DS dappled light via pseudo-element (screen
   blend reads on dark), replacing the literal green gradient + the
   radial #6fbf3a glow. */
.cr-hero {
  background: var(--heg-ink) !important;
  background-image: none !important;
  color: var(--heg-ivory) !important;
  position: relative !important;
  overflow: hidden !important;
}
.cr-hero::before {                                 /* repurpose the old glow into a real gobo */
  content: "" !important;
  position: absolute !important; inset: 0 !important; z-index: 0 !important;
  pointer-events: none !important;
  top: auto !important; right: auto !important; width: auto !important; height: auto !important;
  background: none !important;
  background-image: var(--leaf-light) !important;
  background-size: 720px 720px !important;
  mix-blend-mode: screen !important;
  opacity: 0.5 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%) !important;
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 14%, rgba(0,0,0,.5) 46%, transparent 82%) !important;
}
.cr-hero > * { position: relative !important; z-index: 1 !important; }
.cr-hero__eyebrow {
  font-family: var(--heg-mono) !important;
  letter-spacing: 0.14em !important;
  color: var(--heg-blue) !important;               /* mono eyebrow, readable on ink */
}
.cr-hero__h { color: var(--heg-ivory) !important; }
.cr-hero__h em { color: var(--heg-ember) !important; font-style: normal !important; }
.cr-hero__lede { color: var(--on-dark-muted) !important; }
.cr-hero__free {                                   /* was #6fbf3a tinted pill */
  background: rgba(250,247,234,0.10) !important;
  border: 1px solid var(--on-dark-border) !important;
  color: var(--heg-ivory) !important;
  border-radius: 999px !important;
}

/* Course rows: literal #ececec divider. */
.cr-course { border-bottom-color: var(--heg-line-ink) !important; }

/* Badges: three off-brand pills → DS solid tags (pills allowed for tags). */
.cr-course__badge {
  font-family: var(--heg-mono) !important;
  letter-spacing: 0.06em !important;
  border-radius: 999px !important;
}
.cr-course__badge--green  { background: var(--heg-green) !important;  color: var(--heg-ivory) !important; }
.cr-course__badge--orange { background: var(--heg-ember) !important;  color: var(--heg-green-text) !important; }
.cr-course__badge--purple { background: var(--heg-blue) !important;   color: var(--heg-green-text) !important; }

/* Module cards: raw #fff + #ececec → ivory card with ink rim + shadow. */
.cr-module {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
  box-shadow: var(--heg-shadow-sm) !important;
}
.cr-module__title { color: var(--heg-ink) !important; }
.cr-module__lessons { border-top-color: var(--heg-line-ink) !important; }
.cr-module__num {                                  /* was #6fbf3a lime square */
  background: var(--heg-green) !important;
  color: var(--heg-ivory) !important;
  border-radius: 8px !important;
}
.cr-lesson__icon { background: var(--heg-ivory-300) !important; border-radius: 8px !important; }
.cr-lesson__icon svg { color: var(--heg-green) !important; }
.cr-lesson__name { color: var(--heg-ink) !important; }
.cr-lesson__meta { color: var(--heg-text-2) !important; }

/* Preview card + video well. */
.cr-preview {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
  box-shadow: var(--heg-shadow-sm) !important;
}
.cr-preview__label { font-family: var(--heg-mono) !important; color: var(--heg-green) !important; }
.cr-preview__h { color: var(--heg-ink) !important; }
.cr-preview__video { background: var(--heg-ink) !important; border-radius: 12px !important; }

/* Reviews: literal #fff cards + circle avatar with #6fbf3a fill. */
.cr-reviews { background: var(--heg-ivory-300) !important; }
.cr-reviews__h { color: var(--heg-ink) !important; }
.cr-review {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
  box-shadow: var(--heg-shadow-sm) !important;
}
.cr-review__text { color: var(--heg-ink) !important; }
.cr-review__avatar {                               /* DS bans circle avatars → rounded square chip */
  background: var(--heg-green) !important;
  color: var(--heg-ivory) !important;
  border-radius: 12px !important;
}
.cr-review__name { color: var(--heg-ink) !important; }
.cr-review__role { color: var(--heg-text-2) !important; }

/* Access / final CTA: literal white→light-green gradient + raw #FF6B00
   button → warm flat ivory panel with DS dappled gobo + Ember pill. */
.cr-access {
  background: var(--heg-ivory) !important;
  background-image: none !important;
  position: relative !important;
  overflow: hidden !important;
}
.cr-access::before {
  content: "" !important;
  position: absolute !important; inset: 0 !important; z-index: 0 !important;
  pointer-events: none !important;
  background-image: var(--leaf-soft) !important;
  background-size: 760px 760px !important;
  mix-blend-mode: multiply !important;
  opacity: 0.16 !important;
  -webkit-mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%) !important;
  mask-image: radial-gradient(120% 155% at -6% -12%, #000 12%, rgba(0,0,0,.45) 46%, transparent 80%) !important;
}
.cr-access > * { position: relative !important; z-index: 1 !important; }
.cr-access__h { color: var(--heg-ink) !important; }
.cr-access__desc { color: var(--heg-text-2) !important; }
.cr-access__btn {
  background: var(--heg-ember) !important;
  color: var(--heg-green-text) !important;
  border-radius: 999px !important;
}
.cr-access__btn:hover { background: var(--heg-ember) !important; filter: brightness(1.04) !important; }

/* ---------------------------------------------------------------
   PARTNERSHIP — token-driven, but cards sit ivory-on-ivory (flat)
   and three elements are literal circles the DS bans.
   --------------------------------------------------------------- */

/* Lift the flat cards: ink rim + soft shadow, 16px corners. */
.pt-about__card, .pt-benefit, .pt-format, .pt-case {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
  box-shadow: var(--heg-shadow-sm) !important;
}
.pt-about__card:hover, .pt-benefit:hover, .pt-format:hover {
  border-color: var(--heg-green) !important;       /* value-card hover → green rim */
}
.pt-about__card-num, .pt-benefit__num { color: var(--heg-green) !important; }

/* Bullet markers: tiny round dots → DS ember squares. */
.pt-about__feat::before, .pt-when__bullet::before {
  border-radius: 2px !important;
  background: var(--heg-ember) !important;
}

/* Step number: 56px circle → rounded-square Ink chip. */
.pt-step__num {
  border-radius: 14px !important;
  background: var(--heg-ink) !important;
  color: var(--heg-ivory) !important;
}

/* Contact: 80px circle avatar → rounded-rect; card → ivory + rim. */
.pt-contact__card {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
  box-shadow: var(--heg-shadow-sm) !important;
}
.pt-contact__avatar { border-radius: 16px !important; }
.pt-contact__label, .pt-case__tag {
  font-family: var(--heg-mono) !important;
  letter-spacing: 0.14em !important;
  color: var(--heg-green) !important;
}
.pt-contact__name { color: var(--heg-ink) !important; }

/* Hero stat pills — ink rim. */
.pt-hero__stat { border-color: var(--heg-line-ink) !important; }

/* Mentor card keeps its flat dark photo-scrim (DS-permitted) — just rounded. */
.pt-mentor-card { border-radius: 16px !important; }

/* nav-dd dropdown (partnership uses nav-dd, not mega) — was unstyled
   var(--surface,#fff); give it the mega-panel ivory + ink-rim treatment. */
.nav-dd__panel {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
  box-shadow: var(--heg-shadow-lg) !important;
}
.nav-dd__item { color: var(--heg-ink) !important; border-radius: 12px !important; }
.nav-dd__item:hover { background: rgba(6,70,61,0.06) !important; }

/* ---------------------------------------------------------------
   CASES — listing already DS-compliant via tokens. Deltas: lift the
   flat ivory case cards, convert the circle avatar to rounded square.
   (hgx cards are LEFT ALONE — green/ink variants are intentional DS
   solid-colour cards and the plain card is already ivory + rim +
   green-fill hover; overriding them would be a regression.)
   --------------------------------------------------------------- */
.case-card {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
  box-shadow: var(--heg-shadow-sm) !important;
}
.case-card:hover { border-color: var(--heg-green) !important; }
.case-card__avatar { border-radius: 8px !important; }   /* circle → rounded square */
.case-card__foot { color: var(--heg-green) !important; }

/* ---------------------------------------------------------------
   OFERTA / RULES — legal prose, already token-driven & DS-compliant.
   Single readability nudge: darker readable ink-2 body, mono meta.
   --------------------------------------------------------------- */
.legal__body p,
.legal__body ul,
.legal__body ol,
.legal__body li { color: var(--heg-text-2) !important; }
.legal__body h1, .legal__body h2, .legal__body h3 { color: var(--heg-ink) !important; }
.legal__body a { color: var(--heg-green) !important; }
.legal__body a:hover { border-bottom-color: var(--heg-green) !important; }
.legal__title { color: var(--heg-ink) !important; }
.legal__meta { color: var(--heg-text-2) !important; font-family: var(--heg-mono) !important; }

/* ---------------------------------------------------------------
   OFFICE — token-driven; normalise the step-number circle, the
   brand-tinted code chip, and lift figures/address to DS cards.
   --------------------------------------------------------------- */
.office-step__num {
  border-radius: 10px !important;                  /* circle → rounded square */
  background: var(--heg-green) !important;
  color: var(--heg-ivory) !important;
}
.office-code {
  font-family: var(--heg-mono) !important;
  background: var(--heg-ivory-300) !important;
  color: var(--heg-green-text) !important;
  border-radius: 6px !important;
}
.office-figure {
  background: var(--heg-ivory) !important;
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
}
.office-figure figcaption { color: var(--heg-text-2) !important; border-top-color: var(--heg-line-ink) !important; }
.office-address {
  border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important;
}


/* ============================================================
   FAMILY: .hgx — SEO cross-link "Смотри также" blocks (9 pages)
   The block's inline <style> is mostly DS-correct via Layer B
   token remap (surface->ivory, brand-500->green, surface-dark->ink,
   white->ivory text, accent-600->ember square). These deltas fix
   the violations that survive the remap.
   ============================================================ */

/* 1. Section ground -> exact Ivory-300 (inline maps to --surface-alt #F4F1E4) */
.hgx { background: var(--heg-ivory-300) !important; }

/* 2. VIOLATION: ".hgx__go" (Открыть →) renders Ember TYPE on the green & ink
   solid cards and on the green hover state. DS rule: solid Green/Ink panels
   carry IVORY text; deep-green is only for ember/blue panels — ember as a
   link label on green/ink is off-spec and low-contrast. Make it Ivory
   (full on hover, gently dimmed at rest for hierarchy). The ember square
   marker on the eyebrow stays (a dot/marker is allowed). */
.hgx__card--green .hgx__go,
.hgx__card--ink   .hgx__go,
.hgx__card:hover  .hgx__go { color: var(--heg-ivory) !important; }
.hgx__card--green .hgx__go,
.hgx__card--ink   .hgx__go { color: rgba(252,250,241,0.92) !important; }
.hgx__card--green:hover .hgx__go,
.hgx__card--ink:hover   .hgx__go { color: var(--heg-ivory) !important; }

/* 3. DS-sanctioned grain on the SOLID colour cards (green / ink) — same
   recipe used on .mn-cardmix solid panels. Grain only on solid colour
   blocks, never on the ivory base card / never on glass. Content sits
   above via z-index. Base card grows grain only while it hovers green. */
.hgx__card--green,
.hgx__card--ink { position: relative; overflow: hidden; }
.hgx__card--green > *,
.hgx__card--ink > * { position: relative; z-index: 1; }
.hgx__card--green::after,
.hgx__card--ink::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: var(--heg-grain); background-size: 200px;
  mix-blend-mode: overlay; opacity: 0.5;
}

/* base ivory card: lift content + paint grain only on the green hover */
.hgx__card { position: relative; overflow: hidden; }
.hgx__card > * { position: relative; z-index: 1; }
.hgx__card::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: var(--heg-grain); background-size: 200px;
  mix-blend-mode: overlay; opacity: 0; transition: opacity 0.35s ease;
}
.hgx__card:not(.hgx__card--green):not(.hgx__card--ink):hover::after { opacity: 0.5; }

/* ============================================================
   INLINE-STYLE PAGES — kill literal off-brand colours surviving in
   per-page <style> (token remap can't reach literal hex).
   platform (.pf-) · courses (.cr-/.experts/.finale) · partnership (.brand-group)
   ============================================================ */
/* — PLATFORM — */
.pf-hero { background: var(--heg-ink) !important; background-image: none !important; }
.pf-hero__eyebrow { color: rgba(250,247,234,.66) !important; font-family: var(--heg-mono) !important; }
.pf-section__eyebrow { color: var(--heg-text-2) !important; font-family: var(--heg-mono) !important; }
.pf-hero__h, .pf-hero__lede { color: var(--heg-ivory) !important; }
.pf-hero__h em { color: var(--heg-ivory) !important; }
.pf-section__h { color: var(--heg-ink) !important; }
.pf-cta__btn--primary { background: var(--heg-green) !important; background-image: none !important; color: var(--heg-ivory) !important; border: 0 !important; }
.pf-cta__btn--secondary { background: transparent !important; color: var(--heg-ink) !important; border: 1px solid var(--heg-line-ink) !important; }

/* — COURSES — */
.cr-hero { background: var(--heg-ink) !important; background-image: none !important; }
.cr-hero__eyebrow { color: rgba(250,247,234,.66) !important; font-family: var(--heg-mono) !important; }
.cr-hero__h, .cr-hero__h em { color: var(--heg-ivory) !important; }
.cr-module__num { background: var(--heg-green) !important; color: var(--heg-ivory) !important; font-family: var(--heg-mono) !important; }
.cr-access__btn { background: var(--heg-green) !important; background-image: none !important; color: var(--heg-ivory) !important; border-radius: 12px !important; }
.cr-hero__free { background: rgba(252,250,241,.10) !important; border: 1px solid rgba(250,247,234,.24) !important; color: var(--heg-ivory) !important; }
.cr-preview__label, .cr-hero__free, .cr-lesson__icon { color: var(--heg-ivory) !important; }
.experts__card-icon { background: rgba(6,70,61,.10) !important; color: var(--heg-green) !important; }
.experts__tag { color: var(--heg-green) !important; }
.finale__cta { background: var(--heg-green) !important; background-image: none !important; color: var(--heg-ivory) !important; }
.finale__title em { color: var(--heg-ember) !important; }
.finale__contact-link { color: var(--heg-ember) !important; }
.finale__contact-label { color: rgba(250,247,234,.66) !important; font-family: var(--heg-mono) !important; }

/* — PARTNERSHIP — */
.brand-group__benefit { color: var(--heg-green) !important; }
.brand-group__case-tag { background: rgba(255,106,61,.16) !important; color: var(--heg-green-text) !important; }
.brand-group__case-quote { color: var(--heg-ink) !important; }
.brand-group__case-avatar,
.brand-group__case-avatar--mixed,
.brand-group__case-avatar--orange { background: var(--heg-green) !important; color: var(--heg-ivory) !important; }
.brand-group__case-angle { color: var(--heg-green) !important; }

/* ============================================================
   REVERT DAPPLED — the multiply shadow-gobo painted ugly blotches on
   green sections ("всратый фон"). Kill all dappled gobos; keep clean
   SOLID surfaces (DS-valid). Richness comes from palette/glass/grain/globe.
   ============================================================ */
.app::before, .app::after,
.mn-form::before, .mn-form::after,
.mentor-hero::before, .mentor-hero::after,
.case-hero::before, .case-hero::after,
.city-hero::before, .city-hero::after,
.mn-hero::before, .mn-hero::after,
.mentor-cta::before, .mentor-cta::after,
.case-final::before, .case-final::after,
.mn-final::before, .mn-final::after,
.sp-cta::before, .sp-cta::after { display: none !important; content: none !important; background-image: none !important; }

/* clean solid backgrounds (no gobo texture) */
.mn-form { background: var(--heg-ivory) !important; }
.mentor-hero, .case-hero, .city-hero, .mn-hero, .mentor-cta { background: var(--heg-ivory) !important; }
.app, .case-final, .mn-final, .sp-cta { background: var(--heg-green) !important; background-image: none !important; }
.sp-cta__text h2 { color: var(--heg-ivory) !important; }
.sp-cta__text p { color: rgba(250,247,234,0.80) !important; }

/* ============================================================
   BUTTON CONTRAST ON DARK/GREEN SURFACES (DS readability)
   On dark fields a green/ink button or ink-text ghost is unreadable.
   → primary becomes IVORY fill + INK text; ghost becomes IVORY text +
   ivory-tint outline (transparent). Light surfaces keep green/ink.
   ============================================================ */

/* --- PRIMARY / filled CTAs on dark → ivory fill, ink text --- */
:is(.site-footer,.app,.case-final,.mn-final,.sp-cta,.pf-hero,.cr-hero,.finale,.mn-compare,.mn-sticky-cta)
:is(.btn-primary,.btn-accent,.city-btn--primary,.ifr-btn--primary,.pf-cta__btn--primary,
    .cr-access__btn,.finale__cta,.tier__cta,.featured-cta,.article-cta,.site-footer__cta,.invite-btn) {
  background: var(--heg-ivory) !important;
  background-image: none !important;
  color: var(--heg-ink) !important;
  border: 0 !important;
}
:is(.site-footer,.app,.case-final,.mn-final,.sp-cta,.pf-hero,.cr-hero,.finale,.mn-compare,.mn-sticky-cta)
:is(.btn-primary,.btn-accent,.city-btn--primary,.ifr-btn--primary,.pf-cta__btn--primary,
    .cr-access__btn,.finale__cta,.tier__cta,.featured-cta,.article-cta,.site-footer__cta,.invite-btn):hover {
  background: #FFFFFF !important;
}

/* --- GHOST / secondary / plain buttons on dark → ivory text + ivory outline --- */
:is(.site-footer,.app,.case-final,.mn-final,.sp-cta,.pf-hero,.cr-hero,.finale,.mn-compare,.mn-sticky-cta)
:is(.btn-outline,.btn-ghost,.btn-secondary,.city-btn--ghost,.ifr-btn--ghost,.pf-cta__btn--secondary,
    .btn:not(.btn-primary):not(.btn-accent),
    .city-btn:not(.city-btn--primary),
    .ifr-btn:not(.ifr-btn--primary)) {
  background: transparent !important;
  background-image: none !important;
  color: var(--heg-ivory) !important;
  border: 1px solid rgba(250,247,234,0.5) !important;
}
:is(.site-footer,.app,.case-final,.mn-final,.sp-cta,.pf-hero,.cr-hero,.finale,.mn-compare,.mn-sticky-cta)
:is(.btn-outline,.btn-ghost,.btn-secondary,.city-btn--ghost,.ifr-btn--ghost,.pf-cta__btn--secondary,
    .btn:not(.btn-primary):not(.btn-accent),
    .city-btn:not(.city-btn--primary),
    .ifr-btn:not(.ifr-btn--primary)):hover {
  background: rgba(250,247,234,0.12) !important;
}
/* keep any nested label/icon text the same colour as the button */
:is(.site-footer,.app,.case-final,.mn-final,.sp-cta,.pf-hero,.cr-hero,.finale,.mn-compare,.mn-sticky-cta) .btn * { color: inherit !important; }

/* ============================================================
   FINAL FIX — kill ALL dappled gobos everywhere (blotchy "всратый фон")
   + correct button contrast on every dark/green surface.
   ============================================================ */

/* 1) Nuke every dappled gobo → clean solid sections */
:is(.app,.case-final,.mn-final,.city-cta,.cr-access,.cr-hero,.ifr-hero,.ifr-cta__card,
    .mentor-hero,.case-hero,.city-hero,.mentor-cta,.mn-form,.mn-hero,.sp-cta,.sp-hero)::before,
:is(.app,.case-final,.mn-final,.city-cta,.cr-access,.cr-hero,.ifr-hero,.ifr-cta__card,
    .mentor-hero,.case-hero,.city-hero,.mentor-cta,.mn-form,.mn-hero,.sp-cta,.sp-hero)::after {
  display: none !important; content: none !important; background-image: none !important;
}

/* 2) PRIMARY/filled CTAs on dark/green → ivory fill, ink text */
:is(.site-footer,.app,.case-final,.mn-final,.sp-cta,.pf-hero,.cr-hero,.cr-access,.finale,
    .city-cta,.ifr-cta__card,.ifr-hero,.tier.is-premium,.tier.is-recommended)
:is(.btn-primary,.btn-accent,.city-btn--primary,.ifr-btn--primary,.pf-cta__btn--primary,
    .cr-access__btn,.finale__cta,.tier__cta,.featured-cta,.article-cta,.site-footer__cta,.invite-btn) {
  background: var(--heg-ivory) !important; background-image: none !important;
  color: var(--heg-ink) !important; border: 0 !important;
}

/* 3) GHOST/secondary/plain buttons on dark/green → ivory text + ivory outline */
:is(.site-footer,.app,.case-final,.mn-final,.sp-cta,.pf-hero,.cr-hero,.cr-access,.finale,
    .city-cta,.ifr-cta__card,.ifr-hero,.tier.is-premium,.tier.is-recommended)
:is(.btn-outline,.btn-ghost,.btn-secondary,.city-btn--ghost,.ifr-btn--ghost,.pf-cta__btn--secondary,
    .btn:not(.btn-primary):not(.btn-accent),.city-btn:not(.city-btn--primary),.ifr-btn:not(.ifr-btn--primary)) {
  background: transparent !important; background-image: none !important;
  color: var(--heg-ivory) !important; border: 1px solid rgba(250,247,234,0.5) !important;
}
:is(.site-footer,.app,.case-final,.mn-final,.sp-cta,.pf-hero,.cr-hero,.cr-access,.finale,
    .city-cta,.ifr-cta__card,.ifr-hero,.tier.is-premium,.tier.is-recommended) .btn * { color: inherit !important; }

/* 4) RESTORE light treatment on light containers wrongly flipped earlier */
:is(.mn-sticky-cta,.mn-compare) :is(.btn-primary,.btn-accent) {
  background: var(--heg-green) !important; color: var(--heg-ivory) !important; border: 0 !important;
}
:is(.mn-sticky-cta,.mn-compare) .btn:not(.btn-primary):not(.btn-accent) {
  background: transparent !important; color: var(--heg-ink) !important; border: 1px solid var(--heg-line-ink) !important;
}

/* ═══════════════════════════════════════════════════════════════════
   PUNCH-LIST — визуальный аудит заказчика (2026-06-21)
   Контраст (тёмное-на-тёмном / зелёное-на-зелёном / светлое-на-светлом),
   ICP-цвета, кнопки-призраки, квадратное фото основателя, ховер менторов,
   стена отзывов. Загружается последним → выигрывает каскад.
   ═══════════════════════════════════════════════════════════════════ */

/* A1. mn-cardmix — весь body-текст на тёмных картах → ivory (убрать зелёный-по-тёмному) */
:is(.mn-cardmix__card--dark,.mn-cardmix__card--dark-warm) :is(.mn-cardmix__lede,.mn-cardmix__note,.mn-cardmix__list li) {
  color: rgba(252,250,241,0.92) !important;
}

/* A2. eyebrow на тёмных/зелёных секциях → ivory (был тёмно-зелёный по зелёному) */
:is(.app,.geo,.mn-dark,.mn-bigstats,.sp-journey,.featured,.mn-final,.case-final,.finale,.cr-hero,.pf-hero) .eyebrow {
  color: rgba(250,247,234,0.92) !important;
  -webkit-text-fill-color: rgba(250,247,234,0.92) !important;   /* base rule sets fill dark — must override too */
}
:is(.app,.mn-dark,.mn-bigstats,.sp-journey,.featured) .eyebrow::before {
  background: var(--heg-ember) !important;
}

/* A3. ICP — развести AI-практик (lavender→blue) и Senior dev (ink); чип на leaf читаемый */
.icp-card--lavender { background: var(--heg-blue) !important; color: var(--heg-green-text) !important; border: 0 !important; }
.icp-card--lavender :is(.icp-card__head,.icp-card__label,.icp-card__pain,.icp-card__cta) { color: var(--heg-green-text) !important; }
.icp-card--lavender .icp-card__chip { background: rgba(4,52,45,0.12) !important; color: var(--heg-green-text) !important; }
.icp-card--lavender::after { content: none !important; }
.icp-card--leaf .icp-card__chip { background: rgba(6,70,61,0.10) !important; color: var(--heg-green-800) !important; }
.icp-card--brand .icp-card__chip { background: rgba(252,250,241,0.92) !important; color: var(--heg-green-800) !important; }

/* B. «Где встречаемся» — сетка реальных аватарок участников (face.hegai.net) */
.heg-faces__cap {
  font-family: var(--heg-mono) !important; font-size: 12px !important; letter-spacing: .04em !important;
  color: var(--heg-text-2) !important; margin: 26px 0 12px !important; text-align: center !important;
}
.heg-faces {
  display: grid !important; gap: 8px !important;
  grid-template-columns: repeat(12, 1fr) !important;
}
.heg-faces__tile {
  margin: 0 !important; aspect-ratio: 1 / 1 !important; border-radius: 12px !important;
  overflow: hidden !important; position: relative !important; background: var(--heg-ivory-300);
}
.heg-faces__tile img {
  width: 100% !important; height: 100% !important; object-fit: cover !important;
  display: block !important; filter: var(--heg-film);
}
@media (max-width: 980px) { .heg-faces { grid-template-columns: repeat(8, 1fr) !important; } }
@media (max-width: 600px) { .heg-faces { grid-template-columns: repeat(5, 1fr) !important; } }

/* ═══════════════════════════════════════════════════════════════════
   BATCH 2 — правки по видео-прохождению (2026-06-22)
   ═══════════════════════════════════════════════════════════════════ */

/* V1. Hero-фото — вернуть «арки» (форма из предыдущей версии) */
.home-hero__photo { border-radius: 50% 50% 14% 14% / 36% 36% 9% 9% !important; }
.home-hero__photo::after { border-radius: inherit !important; }
.home-hero__photo--1 { aspect-ratio: 5 / 7 !important; }
.home-hero__photo--2 { aspect-ratio: 5 / 6 !important; border-radius: 50% 50% 18% 18% / 38% 38% 12% 12% !important; }
.home-hero__photo--3 { aspect-ratio: 5 / 7 !important; }
.home-hero__photo--4 { aspect-ratio: 5 / 6 !important; border-radius: 50% 50% 18% 18% / 38% 38% 12% 12% !important; }
.home-hero__photo--5 { aspect-ratio: 5 / 7 !important; }

/* V2. ICP — вернуть «разношёрстную» цветовую гамму предыдущей версии (DS-tuned) */
.icp-card--brand    { background: var(--heg-ember) !important; color: var(--heg-green-800) !important; border: 0 !important; }
.icp-card--forest   { background: var(--heg-green) !important; color: var(--heg-ivory) !important; border: 0 !important; }
.icp-card--gold     { background: #F4E3BA !important; color: var(--heg-ink) !important; border: 0 !important; }
.icp-card--leaf     { background: #DCEFD7 !important; color: var(--heg-ink) !important; border: 0 !important; }
.icp-card--lavender { background: #E4E1F4 !important; color: var(--heg-ink) !important; border: 0 !important; }
.icp-card--ink      { background: var(--heg-ink) !important; color: var(--heg-ivory) !important; border: 0 !important; }
.icp-card--brand :is(.icp-card__head,.icp-card__label,.icp-card__pain,.icp-card__cta) { color: var(--heg-green-800) !important; }
.icp-card--gold :is(.icp-card__head,.icp-card__label,.icp-card__pain,.icp-card__cta),
.icp-card--leaf :is(.icp-card__head,.icp-card__label,.icp-card__pain,.icp-card__cta),
.icp-card--lavender :is(.icp-card__head,.icp-card__label,.icp-card__pain,.icp-card__cta) { color: var(--heg-ink) !important; }
.icp-card--forest :is(.icp-card__head,.icp-card__label,.icp-card__pain,.icp-card__cta),
.icp-card--ink :is(.icp-card__head,.icp-card__label,.icp-card__pain,.icp-card__cta) { color: var(--heg-ivory) !important; }
.icp-card--brand .icp-card__chip { background: rgba(252,250,241,0.9) !important; color: var(--heg-green-800) !important; }
.icp-card--gold .icp-card__chip, .icp-card--leaf .icp-card__chip, .icp-card--lavender .icp-card__chip { background: rgba(16,31,24,0.08) !important; color: var(--heg-ink) !important; }
.icp-card--forest .icp-card__chip, .icp-card--ink .icp-card__chip { background: rgba(250,247,234,0.16) !important; color: var(--heg-ivory) !important; }
.icp-card--gold::after, .icp-card--leaf::after, .icp-card--lavender::after { content: none !important; }

/* V3. Фото основателя (главная) — DS-рамка: клип + тень + ivory уголки */
.mn-founder__visual { position: relative !important; isolation: isolate; box-shadow: var(--heg-shadow-lg) !important; overflow: visible !important; }
.mn-blob--portrait { aspect-ratio: 1 / 1 !important; border-radius: 6px !important; overflow: hidden !important; display: block !important; }
.mn-blob--portrait img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.mn-founder__visual::before, .mn-founder__visual::after {
  content: "" !important; position: absolute !important; width: 26px !important; height: 26px !important;
  z-index: 3 !important; pointer-events: none !important; border-style: solid !important;
  border-color: var(--heg-ivory) !important; border-width: 0 !important;
}
.mn-founder__visual::before { top: 14px !important; left: 14px !important; border-top-width: 2px !important; border-left-width: 2px !important; border-top-left-radius: 4px !important; }
.mn-founder__visual::after { bottom: 14px !important; right: 14px !important; border-bottom-width: 2px !important; border-right-width: 2px !important; border-bottom-right-radius: 4px !important; }

/* V4. Platform store-ссылки → чёткие кнопки на зелёной .app-секции */
.app__platforms { gap: 12px !important; flex-wrap: wrap !important; }
.app__platform {
  display: inline-flex !important; align-items: center !important; gap: 8px !important;
  padding: 11px 18px !important; border-radius: 12px !important;
  background: rgba(250,247,234,0.10) !important; color: var(--heg-ivory) !important;
  border: 1px solid rgba(250,247,234,0.45) !important;
  font-family: var(--heg-mono) !important; font-size: 13px !important; letter-spacing: .02em !important;
  text-decoration: none !important; transition: background .2s, border-color .2s !important;
}
.app__platform:hover { background: rgba(250,247,234,0.18) !important; border-color: var(--heg-ivory) !important; }

/* V5. «Куда дальше» (.hgx) — поджать вертикальные отступы (лишнее белое место) */
.hgx { padding-top: 48px !important; padding-bottom: 56px !important; }

/* V6. Блок 3 кейсов (вместо удалённого «6 лет меняем жизни») */
.heg-cases { padding: 8px 0 8px !important; }
.heg-cases__grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 20px !important; }
.heg-case {
  display: flex !important; flex-direction: column !important; text-decoration: none !important;
  background: var(--heg-ivory) !important; border: 1px solid var(--heg-line-ink) !important;
  border-radius: 16px !important; overflow: hidden !important; padding: 0 0 20px !important;
  box-shadow: var(--heg-shadow-sm) !important; transition: box-shadow .25s, transform .25s !important;
}
.heg-case:hover { box-shadow: var(--heg-shadow-lg) !important; transform: translateY(-3px); }
.heg-case__photo { margin: 0 !important; aspect-ratio: 4 / 3 !important; overflow: hidden !important; }
.heg-case__photo img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; filter: var(--heg-film); }
.heg-case__quote {
  font-family: var(--heg-serif) !important; font-style: italic !important; font-size: 19px !important;
  line-height: 1.4 !important; color: var(--heg-ink) !important; margin: 18px 22px 14px !important;
}
.heg-case__who { display: flex !important; flex-direction: column !important; gap: 2px !important; margin: 0 22px 14px !important; }
.heg-case__name { font-weight: 700 !important; color: var(--heg-ink) !important; }
.heg-case__role { font-size: 13px !important; color: var(--heg-text-2) !important; }
.heg-case__link { font-family: var(--heg-mono) !important; font-size: 13px !important; color: var(--heg-green) !important; margin: auto 22px 0 !important; }
@media (max-width: 860px) { .heg-cases__grid { grid-template-columns: 1fr !important; } }

/* V7. Глобус — фото в тултипе чуть крупнее */
.heg-globe__tip-photos img { width: 46px !important; height: 46px !important; }

/* V8. Менторы — имя/роль ПОД фото отдельной плашкой (не поверх фото) */
:is(.mn-mentor--rect, .mentor-card) { height: auto !important; background: var(--heg-ivory) !important; }
:is(.mn-mentor--rect .mn-mentor__photo-wrap, .mentor-card .mentor-card__photo-wrap) {
  position: relative !important; height: auto !important; aspect-ratio: 1 / 1 !important;
  border-radius: 16px 16px 0 0 !important; overflow: hidden !important;
}
:is(.mn-mentor--rect .mn-mentor__photo, .mentor-card .mentor-card__photo) {
  position: static !important; width: 100% !important; height: 100% !important;
  object-fit: cover !important; object-position: 50% 22% !important; display: block !important;
}
.mn-mentor--rect .mn-mentor__meta, .mn-mentor--rect:hover .mn-mentor__meta,
.mentor-card .mentor-card__meta, .mentor-card:hover .mentor-card__meta {
  position: static !important; inset: auto !important;
  background: var(--heg-ivory) !important; background-image: none !important;
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  box-shadow: none !important; border-radius: 0 0 16px 16px !important;
  padding: 14px 16px 16px !important; color: var(--heg-ink) !important;
}

/* V9. 3 кейса — фото повыше (портрет), как в шаблоне site.hegai.net, не круглые */
.heg-case__photo { aspect-ratio: 4 / 5 !important; border-radius: 0 !important; }
.heg-case__photo img { border-radius: 0 !important; object-position: 50% 20% !important; }

/* V10. Убрать белый блок перед футером («Куда дальше») */
.hgx { margin-bottom: 0 !important; }

/* V11. card3 «Экосистема для роста» был ink #101F18 = ТОЧНО цвет секции → сливался.
   Делаю ТРЕТИЙ цвет — тёплый cream + ink-текст (перебиваю и text-fill-color). */
.mn-cardmix__card--dark-warm { background: #F4E3BA !important; color: var(--heg-ink) !important; -webkit-text-fill-color: var(--heg-ink) !important; }
.mn-cardmix__card--dark-warm :is(.mn-cardmix__title,.mn-cardmix__list li) { color: var(--heg-ink) !important; -webkit-text-fill-color: var(--heg-ink) !important; }
.mn-cardmix__card--dark-warm :is(.mn-cardmix__lede,.mn-cardmix__note) { color: rgba(16,31,24,0.74) !important; -webkit-text-fill-color: rgba(16,31,24,0.74) !important; }
.mn-cardmix__card--dark-warm .mn-cardmix__list li::before { background-color: var(--heg-green) !important; background-image: var(--heg-check-ivory) !important; }
.mn-cardmix__card--dark-warm::after { content: none !important; }

/* V12. «Смотри также» (.hgx) — 4 РАЗНЫХ цвета (было green/cream/cream/ink → 2 одинаковых).
   card1 --green (есть), card2 → blue, card3 → cream, card4 --ink (есть). */
.hgx__grid .hgx__card:nth-child(2) { background: var(--heg-blue) !important; }
.hgx__grid .hgx__card:nth-child(2) :is(.hgx__t,.hgx__d,.hgx__k,.hgx__go) { color: var(--heg-green-text) !important; -webkit-text-fill-color: var(--heg-green-text) !important; }
.hgx__grid .hgx__card:nth-child(3) { background: #F4E3BA !important; }
.hgx__grid .hgx__card:nth-child(3) :is(.hgx__t,.hgx__d,.hgx__k,.hgx__go) { color: var(--heg-ink) !important; -webkit-text-fill-color: var(--heg-ink) !important; }

/* V15. /about — секционные виджеты («что происходит в сообществе») */
.heg-widgets { padding: 8px 0 !important; }
.hw-events { background: var(--heg-green) !important; border-radius: 20px !important; padding: 24px !important; margin-bottom: 16px !important; }
.hw-events__head { display: flex !important; align-items: flex-end !important; justify-content: space-between !important; margin-bottom: 18px !important; gap: 16px; flex-wrap: wrap; }
.hw-events .hw-card__k { color: var(--heg-ember) !important; }
.hw-events__title { display: block !important; font-family: var(--heg-font) !important; font-size: 26px !important; font-weight: 700 !important; color: var(--heg-ivory) !important; margin-top: 4px !important; }
.hw-events__all { font-family: var(--heg-mono) !important; font-size: 13px !important; color: var(--heg-ivory) !important; text-decoration: none !important; white-space: nowrap; }
.hw-events__grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 14px !important; }
.hw-ev { display: flex !important; flex-direction: column !important; background: rgba(250,247,234,0.07) !important; border: 1px solid rgba(250,247,234,0.16) !important; border-radius: 14px !important; overflow: hidden !important; text-decoration: none !important; transition: background .2s; }
.hw-ev:hover { background: rgba(250,247,234,0.13) !important; }
.hw-ev__media { aspect-ratio: 16/9 !important; overflow: hidden !important; }
.hw-ev__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
.hw-ev__date { font-family: var(--heg-mono) !important; font-size: 11px !important; color: var(--heg-ember) !important; padding: 10px 12px 2px !important; }
.hw-ev__title { color: var(--heg-ivory) !important; font-size: 14px !important; line-height: 1.35 !important; padding: 0 12px 14px !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hw-row { display: grid !important; grid-template-columns: repeat(5, 1fr) !important; gap: 12px !important; }
.hw-card { display: flex !important; flex-direction: column !important; background: var(--heg-ivory) !important; border: 1px solid var(--heg-line-ink) !important; border-radius: 16px !important; padding: 18px !important; text-decoration: none !important; transition: box-shadow .2s, transform .2s; }
.hw-card:hover { box-shadow: var(--heg-shadow-lg) !important; transform: translateY(-3px); }
.hw-card__k { font-family: var(--heg-mono) !important; font-size: 11px !important; letter-spacing: .06em !important; text-transform: uppercase !important; color: var(--heg-green) !important; }
.hw-card__t { display: block !important; color: var(--heg-ink) !important; font-size: 16px !important; margin: 8px 0 6px !important; }
.hw-card__d { color: var(--heg-text-2) !important; font-size: 13px !important; line-height: 1.4 !important; margin: 0 0 14px !important; }
.hw-card__go { margin-top: auto !important; font-family: var(--heg-mono) !important; font-size: 12px !important; color: var(--heg-green) !important; }
@media (max-width: 960px) { .hw-row { grid-template-columns: repeat(2, 1fr) !important; } .hw-events__grid { grid-template-columns: 1fr !important; } }

/* V14 superseded — the upcoming-event card design now lives in the uniform
   ".ev-grid > .ev-card" block (~line 890). Keeping a single source of truth
   avoids the unscoped .ev-card rules fighting the scoped ones. */

/* V13. /cases — фото на карточках побольше */
.case-card__photo, .case-card__avatar {
  width: 104px !important; height: 104px !important; border-radius: 14px !important; object-fit: cover !important;
}
.case-card__head { align-items: center !important; gap: 16px !important; }

/* A4. Фото основателя → квадрат (острые углы, 1:1) */
:is(.mn-founder__visual img,.mn-blob--avatar img,.mn-blob--portrait,.mn-blob--portrait img) { border-radius: 0 !important; }
.mn-founder__visual, .mn-founder__visual img { aspect-ratio: 1 / 1 !important; object-fit: cover !important; }
.sp-hero__portrait, .sp-hero__portrait img { border-radius: 0 !important; aspect-ratio: 1 / 1 !important; }
.sp-hero__portrait img { object-fit: cover !important; object-position: 50% 16% !important; }

/* A5. Менторы — убрать ховер И убрать intro/bio (закрывал лицо). Оставляем
   короткую статичную плашку: имя + роль + компания. Ничего не выезжает. */
.mn-mentor__bio, .mentor-card__intro { display: none !important; }
:is(.mn-mentor--rect,.mentor-card):hover { transform: none !important; }
:is(.mn-mentor--rect,.mentor-card):hover :is(.mn-mentor__photo,.mentor-card__photo),
.mn-mentor__photo, .mentor-card__photo { transform: none !important; transition: none !important; }
.mn-mentor--rect .mn-mentor__meta, .mn-mentor--rect:hover .mn-mentor__meta,
.mentor-card__meta, .mentor-card:hover .mentor-card__meta { padding-top: 14px !important; transition: none !important; }

/* A6. Убрать только большое полотно отзывов (quote-wall). Блок 3 кейсов
   (mn-testimonial, «Что меняется после вступления») оставляем видимым. */
section:has(.quote-wall) { display: none !important; }

/* A7. Точечный контраст из аудита */
.sp-journey__head h2 { color: var(--heg-ivory) !important; }
.cr-preview__label { color: var(--heg-green) !important; }
.pf-browser__url { color: var(--heg-ink) !important; }
.geo-pill .geo-pill__count { color: rgba(250,247,234,0.85) !important; }
:is(.tier.is-premium,.tier.is-recommended) .tier__name { color: var(--heg-ivory) !important; }
.sp-case__tag { color: var(--heg-ivory) !important; }
.sp-case__author { color: rgba(250,247,234,0.78) !important; }
.sp-community__stat-label { color: var(--heg-text-2) !important; }

/* A8. Кнопки-призраки на тёмной секции .featured (events/groups) → ivory текст/обводка */
.featured :is(.btn-outline,.btn-ghost,.btn-secondary,.btn:not(.btn-primary):not(.btn-accent)) {
  background: transparent !important; background-image: none !important;
  color: var(--heg-ivory) !important; border: 1px solid rgba(250,247,234,0.5) !important;
}
.featured :is(.btn-outline,.btn-ghost,.btn-secondary,.btn:not(.btn-primary):not(.btn-accent)):hover {
  background: rgba(250,247,234,0.12) !important;
}
