/* ==========================================================================
   NEXT GEO — foundation layer (fonts + tokens + Turkish typography)
   Phase 2. Loaded ONLY on the v2 page via the .ng-v2 body class, so nothing
   here can affect the live homepage until page_on_front is switched.

   Deviation from the spec: it assumed a child theme at
   /wp-content/themes/nextgeo-child/. We are NOT switching themes — that would
   reset theme_mods_neuros (header logo, menu locations, the Customizer CSS
   post) across the whole site. Fonts live in uploads instead and this file is
   injected via Code Snippets. Migrating to a child theme later only changes
   these five URLs.
   ========================================================================== */

/* --- 1. Webfonts. 4 files, ~108,000 bytes. Merged latin+latin-ext with NO
   unicode-range, so Turkish never triggers a second request and never falls
   back mid-word. Glyph coverage verified by parsing each cmap table.

   JetBrains Mono was REMOVED here (was a 5th file, 25,383 bytes). It is not
   loaded, not preloaded and not referenced; the woff2 is left on disk but
   never requested. The label/eyebrow/ticker/stat roles it used to carry now
   run on Manrope with tracking — see --ng-font-label below. -------------- */
@font-face{
  font-family:'Manrope';
  src:url('/wp-content/uploads/ng-fonts/manrope-latin_latin-ext-400-normal.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Manrope';
  src:url('/wp-content/uploads/ng-fonts/manrope-latin_latin-ext-500-normal.woff2') format('woff2');
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Manrope';
  src:url('/wp-content/uploads/ng-fonts/manrope-latin_latin-ext-600-normal.woff2') format('woff2');
  font-weight:600; font-style:normal; font-display:swap;
}
/* 700/800 added in the yersecim pass. yersecim sets its h1 at 800 and its
   section h2 at 700; every heading here was 600 purely because those were the
   only faces fetched, which is why our display read two steps lighter than the
   reference at the same nominal size. Turkish coverage verified in both cmaps. */
@font-face{
  font-family:'Manrope';
  src:url('/wp-content/uploads/ng-fonts/manrope-latin_latin-ext-700-normal.woff2') format('woff2');
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Manrope';
  src:url('/wp-content/uploads/ng-fonts/manrope-latin_latin-ext-800-normal.woff2') format('woff2');
  font-weight:800; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('/wp-content/uploads/ng-fonts/inter-latin_latin-ext-400-normal.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}

/* --- 2. Metrics-matched fallbacks. The spec shipped placeholders and said so.
   These are computed from the real woff2 files against Arial
   (upm 2048, xHeight 1062, asc 1854, desc -434). size-adjust is the x-height
   ratio; the overrides are then divided by it. Keeps CLS at zero on swap. --- */
@font-face{
  font-family:'Manrope Fallback';
  src:local('Arial');
  size-adjust:104.14%; ascent-override:102.37%;
  descent-override:28.81%; line-gap-override:0.00%;
}
@font-face{
  font-family:'Inter Fallback';
  src:local('Arial');
  size-adjust:105.27%; ascent-override:92.02%;
  descent-override:22.91%; line-gap-override:0.00%;
}

/* --- 3. Design tokens ------------------------------------------------------
   The palette is yersecim.com's, taken from the live page's own custom
   properties rather than eyedropped from a screenshot:
     --paper #FAFBFF  --mist #EDEFF9  --line #DDE1F0
     --navy #1B1F5E   --navy-deep #13163F  --ink #2A2D52  --ink-soft #5A5E86
     --magenta #E91E8C  --magenta-soft #FDE9F3   --radius 18px, pills at 999px
   The warm cream ground (#F7F6F2) and the cool-neutral ink (#131538) are gone;
   the whole page now sits on the same cool near-white the client's own site
   uses, with navy text and a magenta accent.

   TWO-TIER ACCENT — kept, because yersecim's own #E91E8C is only 4.04:1 on
   #FAFBFF and would fail 1.4.3 on every label, link and button we ship.
     --ng-accent          #C61073  same hue (327.5deg) as #E91E8C, darkened
                                   until it clears AA. Fills + all text < 24px.
     --ng-accent-display  #E91E8C  yersecim's exact magenta. >= 24px ONLY, so
                                   the headline highlight is literally their
                                   colour while the small type stays legible.

   .is-dark redefines the SAME token names so a band inverts with one class
   rather than a parallel palette. The light accent is NEVER allowed onto the
   indigo band (it measures 2.65:1 there); .is-dark swaps in a pink.

   CONTRAST — every pair below was recomputed by /root/ng-design/contrast-v3.py
   against these exact hex values, with the rgba() tokens composited over their
   real backdrops first. Verbatim output, 42 pairs, 0 failures:

     h1/h2/h3 navy ink on paper           #1B1F5E on #FAFBFF  14.46:1  PASS 4.5
     h1/h2/h3 navy ink on white card      #1B1F5E on #FFFFFF  14.95:1  PASS 4.5
     navy ink on mist (sunken)            #1B1F5E on #EDEFF9  13.04:1  PASS 4.5
     body/lede muted on paper             #5A5E86 on #FAFBFF   6.01:1  PASS 4.5
     body/lede muted on white card        #5A5E86 on #FFFFFF   6.21:1  PASS 4.5
     muted label on mist                  #5A5E86 on #EDEFF9   5.42:1  PASS 4.5
     eyebrow accent on magenta-soft pill  #C61073 on #FDE9F3   4.87:1  PASS 4.5
     accent text/link on paper            #C61073 on #FAFBFF   5.45:1  PASS 4.5
     accent text/link on white            #C61073 on #FFFFFF   5.64:1  PASS 4.5
     accent on mist                       #C61073 on #EDEFF9   4.92:1  PASS 4.5
     accent-hover on paper                #A50D60 on #FAFBFF   7.19:1  PASS 4.5
     DISPLAY magenta >=24px on paper      #E91E8C on #FAFBFF   4.04:1  PASS 3.0
     DISPLAY magenta >=24px on white      #E91E8C on #FFFFFF   4.18:1  PASS 3.0
     CTA label white on accent pill       #FFFFFF on #C61073   5.64:1  PASS 4.5
     CTA label white on accent hover      #FFFFFF on #A50D60   7.43:1  PASS 4.5
     ghost pill navy label on white       #1B1F5E on #FFFFFF  14.95:1  PASS 4.5
     ok green on paper                    #186B39 on #FAFBFF   6.34:1  PASS 4.5
     ok green on white                    #186B39 on #FFFFFF   6.56:1  PASS 4.5
     hairline #DDE1F0 vs paper            #DDE1F0 on #FAFBFF   1.26:1  decorative
     white card vs paper ground           #FFFFFF on #FAFBFF   1.03:1  decorative
     dark: ink on navy                    #FAFBFF on #1B1F5E  14.46:1  PASS 4.5
     dark: muted on navy                  #C6C9EA on #1B1F5E   9.22:1  PASS 4.5
     dark: muted on .06 surface           #C6C9EA on #282C68   7.84:1  PASS 4.5
     dark: muted on .10 sunken            #C6C9EA on #31356E   6.94:1  PASS 4.5
     dark: ink on .06 surface             #FAFBFF on #282C68  12.30:1  PASS 4.5
     dark: pink accent on navy            #FF9BC9 on #1B1F5E   7.68:1  PASS 4.5
     dark: pink accent on .06 surface     #FF9BC9 on #282C68   6.53:1  PASS 4.5
     dark: pink accent on accent-wash     #FF9BC9 on #3B306D   5.89:1  PASS 4.5
     dark: accent-hover on navy           #FFC2DD on #1B1F5E   9.98:1  PASS 4.5
     dark: CTA navy label on paper fill   #1B1F5E on #FAFBFF  14.46:1  PASS 4.5
     dark: hairline vs navy               #3F4278 on #1B1F5E   1.61:1  decorative
     ghost-pill border edge on paper      #7F82A6 on #FAFBFF   3.60:1  PASS 3.0
     dark: ghost-pill border on navy      #A1A3BF on #1B1F5E   6.06:1  PASS 3.0
     panel: ink on indigo-deep            #FAFBFF on #13163F  16.72:1  PASS 4.5
     panel: muted on indigo-deep          #C6C9EA on #13163F  10.66:1  PASS 4.5
     panel: muted on .06 bar over deep    #C6C9EA on #21244B   9.12:1  PASS 4.5
     panel: ink on .10 avatar over deep   #FAFBFF on #2A2D52  12.73:1  PASS 4.5
     panel: pink accent on indigo-deep    #FF9BC9 on #13163F   8.88:1  PASS 4.5
     panel: pink accent on .06 bar        #FF9BC9 on #21244B   7.60:1  PASS 4.5
     panel: pink accent on wash over deep #FF9BC9 on #342952   6.80:1  PASS 4.5
     panel: indigo-deep vs navy           #13163F on #1B1F5E   1.16:1  decorative
     GUARD light accent on navy           #C61073 on #1B1F5E   2.65:1  n/a — which
       is exactly why .is-dark swaps the accent. This combination must never ship.
     42 pairs measured, 0 failures

   Two roles are exempt from 4.5:1 by rule, not by convenience: the display
   magenta is only ever set on type >= 24px (1.4.3 large-text threshold), and
   hairlines/card edges are decoration, not control boundaries — the one border
   that IS a control edge, the ghost pill's, is measured above at 3.60 / 6.06.  */
.ng-v2{
  --ng-ground:#FAFBFF;            /* yersecim --paper */
  --ng-surface:#FFFFFF;
  --ng-surface-sunken:#EDEFF9;    /* yersecim --mist */
  --ng-ink:#1B1F5E;               /* yersecim --navy */
  --ng-muted:#5A5E86;             /* yersecim --ink-soft */
  --ng-indigo:#1B1F5E; --ng-indigo-deep:#13163F;   /* --navy / --navy-deep */
  --ng-accent:#C61073;            /* white on this = 5.64:1, passes AA */
  --ng-accent-hover:#A50D60;
  --ng-accent-display:#E91E8C;    /* yersecim --magenta. 24px+ ONLY — 4.04:1 */
  --ng-ok:#186B39;
  --ng-hairline:#DDE1F0;          /* yersecim --line, opaque like theirs */
  --ng-border-strong:rgba(27,31,94,.55);
  --ng-accent-wash:#FDE9F3;       /* yersecim --magenta-soft */
  --ng-cta-fill:var(--ng-accent); --ng-cta-label:#FFFFFF;
  --ng-cta-fill-hover:var(--ng-accent-hover);
  --ng-focus-outer:#1B1F5E; --ng-focus-inner:#FFFFFF;

  --ng-font-display:'Manrope','Manrope Fallback',Arial,sans-serif;
  --ng-font-body:'Inter','Inter Fallback',Arial,sans-serif;
  /* Label face: eyebrows, stat captions, chip text, ticker, chat timestamps,
     the 01/02/03 numerals. Was JetBrains Mono; the client asked for it gone.
     It is the display face, differentiated by tracking and size rather than by
     a fifth-hundredth-of-a-second-of-attention "code" costume, which is also
     what yersecim does (their eyebrows are just the sans, uppercased).
     --ng-font-mono is GONE, not aliased: all 30 call sites in
     ng-components.css and sections/*.css were rewritten to --ng-font-label, so
     there is no token left that a future edit could quietly repoint at a
     monospace. There is no monospace family and no monospace generic anywhere
     in this build. Do not add one. */
  --ng-font-label:var(--ng-font-display);

  /* Roundness. yersecim: 18px on cards/panels, 12-14px on smaller chrome,
     999px on every button and pill. */
  --ng-radius:18px;
  --ng-radius-sm:12px;
  --ng-radius-pill:999px;

  /* Card elevation. yersecim's cards are not flat: a white fill and a #DDE1F0
     hairline alone read as a wireframe on a #FAFBFF ground, because the ground
     is only 5 levels off white and the border does all the separating work.
     Their cards carry a wide, very low-alpha drop that you read as softness
     rather than as a shadow. Two stops: a 1px contact shadow to seat the edge,
     and a wide -14px-spread ambient one. Tinted with the navy (27,31,94) and
     not with black, so the shade stays in the same cool family as the ground
     instead of greying it. Hover lifts the ambient stop only. */
  --ng-shadow-card:0 1px 2px rgba(27,31,94,.04), 0 8px 24px -14px rgba(27,31,94,.16);
  --ng-shadow-card-hover:0 1px 2px rgba(27,31,94,.05), 0 14px 34px -14px rgba(27,31,94,.24);

  --ng-container:1120px;
  /* --- vertical rhythm -----------------------------------------------------
     One shared rhythm for the whole page instead of twelve sections each
     inventing their own padding. 96px top AND bottom put 192px of dead air
     between every pair of light sections; at 1440 the page measured 26% blank
     bands of 120px+. 56px gives ~112px between light sections, which is the
     band the references sit in (linear ~112, radar ~120).

     Tonal breaks are the exception: the two indigo .is-dark bands need more
     interior air or the colour change reads as a cramped stripe rather than a
     chapter break, so they keep a deeper pad of their own. Light→dark then
     totals 56+88 = 144px, which is deliberately the largest gap on the page. */
  --ng-section-pad:56px;
  --ng-section-pad-dark:88px;
}

.ng-v2 .is-dark{
  --ng-ground:#1B1F5E; --ng-surface:rgba(250,251,255,.06);
  --ng-surface-sunken:rgba(250,251,255,.10);
  --ng-ink:#FAFBFF; --ng-muted:#C6C9EA;
  /* Light magenta on navy measures 2.65:1 — fails 1.4.3. The accent lightens
     on dark and BOTH tiers collapse onto the same pink, so a >=24px display
     highlight inside a dark band cannot accidentally reintroduce #E91E8C. */
  --ng-accent:#FF9BC9; --ng-accent-hover:#FFC2DD; --ng-accent-display:#FF9BC9;
  --ng-hairline:rgba(250,251,255,.16); --ng-border-strong:rgba(250,251,255,.60);
  --ng-accent-wash:rgba(255,155,201,.14);
  /* CTA inverts to a paper fill rather than an accent fill on dark. */
  --ng-cta-fill:#FAFBFF; --ng-cta-label:#1B1F5E; --ng-cta-fill-hover:#FFFFFF;
  --ng-focus-outer:#FAFBFF; --ng-focus-inner:#1B1F5E;
  /* A navy-tinted drop on a navy band is invisible at best and a dirty smudge
     at worst. Inside the two .is-dark bands, cards separate by their 6%-paper
     fill and their 16%-paper hairline instead; elevation is carried by tone,
     not by shade. Same token name, so no section needs a dark-band branch. */
  --ng-shadow-card:none;
  --ng-shadow-card-hover:none;

  /* AND SET `color`, not just the tokens.
     Redefining --ng-ink changes what every rule that READS the token resolves
     to; it does not change what the band itself inherits. So a .is-dark band
     inherited the theme's #333 and computed `color: rgb(51,51,51)` on
     `rgb(27,31,94)` — about 1.4:1, invisible. Measured on the homepage AND on
     /sss/, so it was true of every dark band on the site.
     Nothing was visibly broken, because every element inside those bands sets an
     explicit colour. That is exactly what made it dangerous: the first bare text
     node anyone adds to a dark band would have disappeared, and the CSS would
     have looked correct while doing it. One declaration closes it for the
     homepage, every converted page and every post at once. */
  color:var(--ng-ink);
}

/* --- 4. Base ---------------------------------------------------------------
   border-box for everything in our scope. The theme does NOT set this globally,
   so `.ng-container { width:100%; padding-inline:24px }` computed to
   350 + 24 + 24 = 398px inside a 350px parent — all 11 containers overflowed by
   exactly 48px, clipping buttons, headings and the hero map on mobile.
   Invisible at 1440 where there is slack; only a 390px screenshot showed it.   */
body.ng-v2 *,
body.ng-v2 *::before,
body.ng-v2 *::after{ box-sizing:border-box; }

.ng-v2{
  background:var(--ng-ground);
  color:var(--ng-ink);
  font-family:var(--ng-font-body);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
/* Specificity note — measured, not guessed. Neuros ships one rule at char
   ~1,286,988 of the LiteSpeed-combined stylesheet:
       h1,h2,h3,h4,h5,h6,
       .page-title-container .page-title,
       body .elementor-widget-heading .elementor-heading-title, …
       { font-family:'IBM Plex Sans',Arial,Helvetica,sans-serif }
   It loads AFTER us (char 365k vs 1,286k), so ties go to the theme.
     - bare h1                                      (0,0,1) — .ng-v2 h1 wins
     - body .elementor-widget-heading .…-title      (0,2,1) — we must exceed it
   Headless Chrome confirmed the failure: Manrope declared 3 faces, loaded 0,
   because the computed family on the heading was IBM Plex Sans. Inter rendered
   fine (436 glyphs) which is how we know the @font-face pipeline itself works.

   A SECOND override, found the same way. At char 1,137,610, inside a
   4,472-character selector list, the theme sets colour on a descendant h1 of
   .content-wrapper. Its specificity is (0,1,1) — identical to `.ng-v2 h1` —
   and it loads later, so it won the tie and every heading came out #111111
   while the highlight span, lede and buttons all took their tokens correctly.
   Hence `body.ng-v2 h1` (0,1,2), which outranks it without !important.       */
body.ng-v2 h1,body.ng-v2 h2,body.ng-v2 h3,body.ng-v2 h4,     /* (0,1,2) */
.ng-v2 .ng-h1,.ng-v2 .ng-h2,.ng-v2 .ng-h3,
.ng-v2 .elementor-widget-heading .elementor-heading-title,   /* (0,3,0) */
.ng-v2 .page-title-container .page-title{                    /* (0,3,0) */
  font-family:var(--ng-font-display);
  font-weight:600;          /* a shipped weight — never 700, which would
                               trigger synthetic bold (the atlas.co bug) */
  color:var(--ng-ink);
  letter-spacing:-0.02em;
  margin:0;
}
/* Body copy is overridden by the same family list in places; Inter already
   renders, but pin it where Elementor text widgets are involved. */
.ng-v2 .elementor-widget-text-editor,
.ng-v2 .elementor-widget-text-editor p{
  font-family:var(--ng-font-body);
}
.ng-v2 h1{font-size:64px; line-height:1.06;}
.ng-v2 h2{font-size:44px; line-height:1.12;}
.ng-v2 h3{font-size:24px; line-height:1.25;}

@media (max-width:1024px){ .ng-v2 h1{font-size:52px;} .ng-v2 h2{font-size:36px;} }
@media (max-width:640px) { .ng-v2 h1{font-size:38px;} .ng-v2 h2{font-size:30px;} .ng-v2{font-size:16px;} }

/* --- 5. Turkish typography ------------------------------------------------
   Eyebrows are authored ALREADY UPPERCASE (layer 1), so the browser's case
   engine never runs and cannot map i->I instead of i->İ.
   line-height 1.15 not 1: at 13px the İ dot sits above cap height and the
   Ş/Ç cedillas below the baseline; at line-height:1 they are clipped by any
   overflow:hidden marquee — shaving the most recognisably Turkish glyphs.

   The face changed here. This was JetBrains Mono 13/0.14em; it is now the
   display sans at 600 with the tracking pulled back to 0.08em — mono needed
   wide tracking to stop the fixed advance widths reading as a table, a
   proportional face at 0.14em just looks stretched. yersecim tracks its own
   eyebrows at 0.06em; 0.08em compensates for our slightly smaller size.
   line-height stays >= 1.15 for the same İ/Ş/Ç clipping reason.            */
.ng-v2 .ng-eyebrow{
  font-family:var(--ng-font-label);
  font-weight:600;
  font-size:13px;
  line-height:1.2;
  letter-spacing:0.08em;
  padding-right:0.08em;      /* absorb the trailing letter-space */
  text-transform:none;       /* deliberate: strings are pre-uppercased */
  color:var(--ng-accent);    /* section eyebrows: plain magenta, no pill */
}
/* The hero eyebrow is a PILL, as on yersecim: magenta-soft ground, magenta
   uppercase sans, fully rounded. Applied by modifier AND automatically to any
   eyebrow inside the hero, so the treatment cannot drift apart from the class.
   inline-flex + align-items keeps the pill hugging the text; the vertical
   padding is asymmetric-safe because line-height 1.2 already leaves room for
   the İ dot and the Ş cedilla inside the fill. */
.ng-v2 .ng-eyebrow--pill,
.ng-v2 .ng-hero .ng-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--ng-accent-wash);
  color:var(--ng-accent);
  padding:7px 16px 7px calc(16px + 0.08em);
  border-radius:var(--ng-radius-pill);
}
.ng-v2 .ng-marquee, .ng-v2 .ng-ticker{ padding-block:4px; }

/* Layer 3 belt-and-braces: if anything we do not control applies uppercase,
   scope it per locale so the tr tailoring is at least explicit. */
html:lang(tr) .ng-v2 [data-ng-upper]{ text-transform:uppercase; }
html:lang(en) .ng-v2 [data-ng-upper]{ text-transform:uppercase; }

/* --- 6. Focus. Two-tone ring: works on both the light ground and the indigo
   band, which a single colour cannot (2.4.11). ------------------------------ */
.ng-v2 :focus-visible{
  outline:3px solid var(--ng-focus-outer);
  outline-offset:2px;
  box-shadow:0 0 0 6px var(--ng-focus-inner);
  border-radius:var(--ng-radius-sm);
}
/* …but a pill's ring must be a pill, or the focus outline cuts its corners. */
.ng-v2 .ng-btn:focus-visible,
.ng-v2 .ng-eyebrow--pill:focus-visible{ border-radius:var(--ng-radius-pill); }

/* --- 7. Layout primitives -------------------------------------------------- */
.ng-v2 .ng-container{
  width:100%; max-width:var(--ng-container);
  margin-inline:auto; padding-inline:24px;
}
.ng-v2 .ng-section{ padding-block:var(--ng-section-pad); background:var(--ng-ground); }
/* (0,3,0) — beats `.ng-v2 .ng-section` (0,2,0) and any per-section rule
   written at (0,2,0), so a dark band cannot accidentally lose its air. */
.ng-v2 .ng-section.is-dark{ padding-block:var(--ng-section-pad-dark); }
@media (max-width:640px){
  .ng-v2 .ng-section{ padding-block:44px; }
  .ng-v2 .ng-section.is-dark{ padding-block:64px; }
}

/* Buttons are full pills, as on yersecim. line-height 1.15 rather than 1: at
   line-height:1 the İ in "Bize Ulaşın" / "Demo talep edin" sits on the padding
   boundary and the ş cedilla is the first thing a 1px rounding error eats.
   Vertical padding drops 1px to keep the same 48px pill height. */
.ng-v2 .ng-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--ng-font-display); font-weight:600; font-size:16px;
  line-height:1.15; padding:15px 28px;
  border-radius:var(--ng-radius-pill); border:0;
  background:var(--ng-cta-fill); color:var(--ng-cta-label);
  text-decoration:none; cursor:pointer;
  transition:background-color .18s cubic-bezier(.4,0,.2,1),
             box-shadow .18s cubic-bezier(.4,0,.2,1);
}
.ng-v2 .ng-btn:hover{ background:var(--ng-cta-fill-hover); }
/* Secondary: white pill with a navy hairline. inset box-shadow rather than
   border so the two buttons stay the same height without a 1px nudge. */
.ng-v2 .ng-btn--ghost{
  background:var(--ng-surface); color:var(--ng-ink);
  box-shadow:inset 0 0 0 1.5px var(--ng-border-strong);
}
.ng-v2 .ng-btn--ghost:hover{
  background:var(--ng-surface);
  box-shadow:inset 0 0 0 1.5px var(--ng-ink);
}

/* --- 8. Theme heading-margin leak ------------------------------------------
   THIRD override found by measuring, not by reading. At char ~1,255,000 of the
   LiteSpeed-combined stylesheet Neuros ships:

       body .content-wrapper h1:not(:first-child), … h6:not(:first-child),
       body .neuros_comments__item-text h1:not(:first-child), …
       { margin-top:50px }

   Specificity (0,2,2). Every per-section heading rule in this build is written
   as `.ng-v2 .ng-x__title` (0,2,0) — BELOW it — so the theme was winning on
   fourteen of the page's eighteen headings. Authored 14px gaps between an
   eyebrow and its H2 were rendering at 50px, and the same 50px was opening up
   between a card's icon and its name in sections 6 and 11. Computed-style
   proof: .ng-rest__name declares margin-top:16px and resolved to 50px.
   That is roughly 500px of unasked-for vertical air across the page, and it is
   half of why the client reads it as empty.

   Restated here at (0,3,0) with the doubled-class idiom, which beats (0,2,2)
   without !important and without assuming an ancestor the hero does not have.
   Values are the ones the section files already declare — this block only wins
   the cascade for them, it does not redesign anything. ONLY margin-top is set,
   so the responsive font-size rules in the section files still apply.
   If a section's intended gap changes, change it in BOTH places or move the
   declaration here.                                                          */
.ng-v2 .ng-hero__title.ng-hero__title,
.ng-v2 .ng-logoband__title.ng-logoband__title,
.ng-v2 .ng-cred__title.ng-cred__title,
.ng-v2 .ng-product__name.ng-product__name,
.ng-v2 .ng-sektor__name.ng-sektor__name{ margin-top:0; }

.ng-v2 .ng-steps__name.ng-steps__name{ margin-top:10px; }
.ng-v2 .ng-pos__name.ng-pos__name{ margin-top:12px; }
.ng-v2 .ng-method__title.ng-method__title,
.ng-v2 .ng-rel__title.ng-rel__title,
.ng-v2 .ng-rest__title.ng-rest__title,
.ng-v2 .ng-product__title.ng-product__title{ margin-top:14px; }
.ng-v2 .ng-sol__title.ng-sol__title,
.ng-v2 .ng-sektor__title.ng-sektor__title,
.ng-v2 .ng-rest__name.ng-rest__name{ margin-top:16px; }
.ng-v2 .ng-sol__name.ng-sol__name,
.ng-v2 .ng-close__title.ng-close__title{ margin-top:18px; }
.ng-v2 .ng-pos__title.ng-pos__title{ margin-top:20px; }

/* --- display weight, matched to yersecim ----------------------------------
   yersecim: .hero h1 font-weight:800 / line-height:1.2, .sec-head h2 :700.
   Ours were all 600 — not a decision, just the only faces we had fetched.
   700 and 800 are now shipped (Turkish verified in both cmaps), so the
   headline finally carries the same weight as the reference.
   (0,1,2) / (0,3,0) to clear the theme rules documented above.               */
body.ng-v2 h1,
.ng-v2 .ng-hero__title{ font-weight:800; letter-spacing:-0.028em; }
body.ng-v2 h2,
.ng-v2 .ng-pos__title,
.ng-v2 .elementor-widget-heading .elementor-heading-title{ font-weight:700; }
body.ng-v2 h3{ font-weight:700; }
