/* ==========================================================================
   NEXT GEO — page stylesheet for the KNOWLEDGE-BASE PAIR
     TR  713    /bilgi-bankasi/        EN  25629  /en/information-bank/
   One authored sheet for both; ng-page-apply.php --css-from copies it to
   information-bank.css so the pair cannot drift.

   Loads last:
     ng-foundation → ng-components → ng-mobile → ng-shared → THIS FILE
   so a rule here at equal specificity beats all four. ng-shared.css owns
   everything that is not specific to this page. Nothing in here is a
   candidate for ng-shared: the row index below is the only list of ARTICLES
   on the site, and the single-post template (a separate later pass) will want
   a different shape again.

   ---------------------------------------------------------------------------
   WHAT WAS ACTUALLY WRONG (measured post-JS with ng-page-check, before any
   change; screenshots /root/ng-shots/bilgi-bankasi-{1440,390}.png and
   /root/ng-shots/en-information-bank-{1440,390}.png)

     /bilgi-bankasi/        1440: h=3363px words=370  h1:1 h2:1 h5:9 h6:3
                             390: h=5659px words=356
     /en/information-bank/  1440: h=3363px words=440  same outline
                             390: h=5765px words=426
     both, both widths: 9 × "span @13.125px" untracked body copy under the
                        14px floor — the post meta row
     both, 390:         10 tap targets under 44px, three of them the card
                        links (112×23 TR, 97×23 EN)

   Dead air measured 0% and centring measured clean, so by the numbers alone
   this page looked healthy. It was not. The whole content area was ONE theme
   widget — `neuros_blog_listing`, posts_per_page 9, grid — configured with
   show_date, show_cat and show_author all empty, and the five defects that
   actually mattered are only visible by reading the DOM and the screenshots:

     1. NINE IDENTICAL LINK LABELS. "DEVAMINI OKU" ×9 / "READ MORE" ×9. This
        is the same finding the audit made across the site, and here it was
        also the tap-target failure.
     2. NO DATES ANYWHERE, on a library holding posts from 2024, 2025 and
        2026. Nothing told a visitor whether they were reading current work.
     3. EXCERPTS CUT MID-WORD. The widget truncates the body on a character
        count: "…dijitalleşen hizmet yap", "harita ü", "e-commer",
        "cost and profit targ", "begins not physically, but through a map.
        If a st". Meanwhile twelve of the fourteen posts open with a
        one-sentence deck their own author wrote, and the widget threw every
        one of them away.
     4. SIX OF FIFTEEN POSTS BEHIND A PAGINATION CLICK, which was also the
        page's only control.
     5. NO CALL TO ACTION OF ANY KIND. The page ended on "1 · 2 · Next".

   Plus the full-viewport stock 3D-city theme banner (page_title_status was
   "default"), which also supplied the h1 — so the page had no authored
   heading of its own at all.

   ---------------------------------------------------------------------------
   WHAT THIS PAGE IS NOW, AND WHY IT DOES NOT LOOK LIKE THE OTHER HUBS

   /sektorler/, /urunler/ and /cozumler/ front 7–14 PRODUCTS. Products are
   peers, you compare them side by side, and a card grid is the right shape.

   An archive is not that. Its items are not peers — they are dated, they sit
   inside a subject, and their only useful comparison is "which one answers my
   question". So the index here is ROWS: a fixed left rail carrying the date
   and the topic, the title and the article's own deck in the measure, one
   arrow. A row also survives a topic group of two (or, in English, of one)
   without leaving an orphan column, which a three-up grid does not.

   Three organisations of the same fourteen articles, each doing a different
   job, and the page is short enough that all three are legible:
     · the masthead aside      — five topics with counts, jump links (FIND)
     · section 25              — three reading paths by decision   (START)
     · section 30              — the complete dated index          (BROWSE)

   ONE IMAGE ON THE PAGE. Every post has a featured image and the old listing
   printed nine of them; thirteen of fifteen are generic stock illustrations
   uploaded with an EMPTY alt (checked in _wp_attachment_image_alt for all of
   them). They say nothing about a location-analytics article and they cost
   ~300px of card height each. The one that stays is the Global Top 100 logo
   map on the lead card, because it is the artefact its article is about — and
   it reuses the avif/webp/jpg trio the homepage credential bar already
   generated, so this page ships no new asset.

   NO FILTER. A CSS-only `:checked ~` filter was built first — the homepage
   hero's own idiom — and rejected: it puts six to twelve article links into
   display:none for a crawler, in exchange for a control that fourteen items
   grouped under five headings do not need. The aside index does the same job
   with anchors and hides nothing.
   ========================================================================== */


/* ==========================================================================
   1. MASTHEAD
   ========================================================================== */

/* 57/43 rather than ng-shared's 58/42. The aside is a five-row index whose
   longest label is "Yer seçimi ve yatırım" plus a right-aligned count; at 42%
   of 1120 that label wrapped to two lines and the panel stopped reading as a
   table of contents. */
@media (min-width:960px){
  .ng-v2 .ng-bbmh .ng-masthead__inner{
    grid-template-columns:minmax(0,57fr) minmax(0,43fr);
  }
}

/* Held short of the lede's measure so the two do not read as one paragraph. */
.ng-v2 .ng-bbmh__note{ max-width:58ch; }


/* ==========================================================================
   2. TOPIC INDEX (masthead aside)
   The page's table of contents. SUNKEN surface: mist + hairline, holding
   chrome — the same role and the same reasoning as the solutions hub's router
   panel, because an untethered tint on the #FAFBFF ground reads as a smudge
   rather than a plate. No shadow: a recessed surface that also floats is a
   contradiction.
   ========================================================================== */
.ng-v2 .ng-bbidx{
  padding:8px 20px 18px;
  background:var(--ng-surface-sunken);
  border:1px solid var(--ng-hairline);
  border-radius:var(--ng-radius);
}
@media (min-width:960px){
  /* Pinned to the top of its track, not stretched: the copy column is taller
     and a stretched panel would leave mist under the last row. */
  .ng-v2 .ng-bbidx{ align-self:start; margin-top:34px; }
}
@media (max-width:959px){
  .ng-v2 .ng-bbidx{ margin-top:4px; }
}

.ng-v2 .ng-bbidx__label{ margin:14px 0 2px; }

.ng-v2 .ng-bbidx__list{ list-style:none; margin:0; padding:0; }
/* Defensive, and the solutions hub needed exactly this: Neuros ships a bare
   `ul > li{padding:0 0 0 1.875em}` at (0,0,2) for the fontello chevron that
   ng-components.css §10 suppresses. A 30px inset on a 43%-wide panel would be
   very visible; one line, no risk. */
.ng-v2 .ng-bbidx__list > li{ padding:0; margin:0; }

/* The row is a link, and the count sits at the far end of it — a table of
   contents, not a menu. 44px min-height from the start rather than only at
   mobile: this is the aside's whole interaction and a 15px line box would
   otherwise land at ~34px on a touch tablet in the 768–959 band. */
.ng-v2 .ng-bbidx__link{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  min-height:44px;
  padding:6px 0;
  border-bottom:1px solid var(--ng-hairline);
  font-family:var(--ng-font-display); font-weight:600;
  font-size:15px; line-height:1.35;
  color:var(--ng-ink);
  text-decoration:none;
}
.ng-v2 .ng-bbidx__list > li:last-child .ng-bbidx__link{ border-bottom:0; }
.ng-v2 .ng-bbidx__link:hover{ color:var(--ng-accent); }
.ng-v2 .ng-bbidx__link:hover .ng-bbidx__n{ color:var(--ng-accent); }

/* 14px, not the 12px a tracked label may use: this is a bare numeral, and
   letter-spacing on a single digit is meaningless, so it cannot take the
   tracked-label exception and falls under the reading floor instead. */
.ng-v2 .ng-bbidx__n{
  flex:0 0 auto;
  font-family:var(--ng-font-label); font-weight:600;
  font-size:14px; line-height:1.2;
  color:var(--ng-muted);
  font-variant-numeric:tabular-nums;
}

.ng-v2 .ng-bbidx__note{
  margin:14px 0 0;
  font-size:14px; line-height:1.5;
  color:var(--ng-muted);              /* 5.42:1 on mist */
}


/* ==========================================================================
   3. LEAD ARTICLE
   One raised card, image and copy side by side. It is a .ng-card--link, so
   the whole card is the anchor and its accessible name is the article title —
   the same fix as the index rows below.
   ========================================================================== */

/* .ng-card is a flex column in ng-shared §6; this is the one card on the page
   that is two columns, so the display is restated rather than fought. */
.ng-v2 .ng-bblead__card{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:20px;
  padding:20px;
}
@media (min-width:860px){
  .ng-v2 .ng-bblead__card{
    grid-template-columns:minmax(0,42fr) minmax(0,58fr);
    gap:28px;
    padding:22px;
    align-items:center;
  }
}

/* The media keeps its own radius and its own aspect ratio rather than being
   bled to the card edge. Full-bleed was built first: with align-self:stretch
   the 880×495 logo map gets cropped top and bottom by object-fit:cover, and
   the crop eats the "Global Top 100 Geospatial Companies 2026" title band
   printed across the top of it — i.e. exactly the information that makes the
   image worth showing. An inset plate at the source ratio cannot crop. */
.ng-v2 .ng-bblead__media{
  display:block;
  overflow:hidden;
  border-radius:var(--ng-radius-sm);
  background:var(--ng-surface-sunken);   /* shows only while the file loads */
  aspect-ratio:880 / 495;
}
.ng-v2 .ng-bblead__media picture{ display:block; height:100%; }
.ng-v2 .ng-bblead__img{
  display:block; width:100%; height:100%;
  object-fit:cover;
}

.ng-v2 .ng-bblead__body{
  display:flex; flex-direction:column;
  min-width:0;
}
/* .ng-eyebrow is authored on a <span> here so the date can be a <time> inside
   it; the class is otherwise used on a <p>, hence the explicit display. */
.ng-v2 .ng-bblead__eyebrow{ display:block; margin:0; }

/* (0,3,0) doubled. Three things are being beaten and all three are real on
   this site: the theme's `body .content-wrapper h2:not(:first-child)
   {margin-top:50px}` at (0,2,2) — and this h2 follows the eyebrow, so it IS
   :not(:first-child) — the theme's `.content-wrapper h2{color:#111}` at
   (0,1,1) which loads after ours and won the homepage's heading colour, and
   our own `.ng-v2 h2` size. See ng-shared.css §11. */
.ng-v2 .ng-bblead__title.ng-bblead__title{
  margin:12px 0 0;
  font-size:clamp(1.3rem, 2.6vw, 1.625rem);
  line-height:1.25;
  letter-spacing:-0.015em;
  color:var(--ng-ink);
  text-wrap:balance;
}
.ng-v2 .ng-bblead__deck{
  display:block;
  margin:12px 0 0;
  font-size:16px; line-height:1.6;
  color:var(--ng-muted);              /* 6.21:1 on --ng-surface */
  max-width:56ch;
}
/* margin-top:auto comes from .ng-card__link; it needs a flex parent, which
   .ng-bblead__body is. */
.ng-v2 .ng-bblead__go{ padding-top:18px; }


/* ==========================================================================
   4. READING PATHS
   Three .ng-card panels on the sunken band — raised on sunken, which is the
   site's two-surface rule doing its job. NOT .ng-card--link: each panel holds
   four separate destinations, so the card cannot be one anchor.
   ========================================================================== */
.ng-v2 .ng-bbpaths__grid{ margin-top:0; }

/* ng-shared's .ng-grid--3 is two columns between 620 and 959, which leaves
   three cards as 2 + 1 and a ~370x250px hole beside the third — clearly
   visible in /root/ng-shots/bb768-b.png before this rule, and invisible to
   ng-page-check, whose blank-band test only looks for full-width bands. The
   third card takes the whole second row instead. Same move the solutions hub
   makes with its first card, for the same "seven into a 3-up leaves an orphan"
   reason. The list inside it is left stacked: these titles are 40-60
   characters, so they sit at their natural width and never reach the wide
   card's measure. */
@media (min-width:620px) and (max-width:959px){
  .ng-v2 .ng-bbpaths__grid > li:nth-child(3){ grid-column:1 / -1; }
}

.ng-v2 .ng-bbpath{ padding:22px 22px 20px; }
.ng-v2 .ng-bbpath__meta{ color:var(--ng-accent); }

/* (0,3,0) — follows the meta paragraph, so the theme's 50px margin-top rule
   applies to it. Colour restated for the same reason as §3. */
.ng-v2 .ng-bbpath__title.ng-bbpath__title{
  margin:8px 0 0;
  font-size:19px; line-height:1.3;
  color:var(--ng-ink);
}

.ng-v2 .ng-bbpath__list{
  list-style:none;
  margin:16px 0 0; padding:0;
  counter-reset:none;
}
.ng-v2 .ng-bbpath__list > li{ padding:0; margin:0; }
.ng-v2 .ng-bbpath__list > li + li{ border-top:1px solid var(--ng-hairline); }

.ng-v2 .ng-bbpath__link{
  display:flex; align-items:flex-start; gap:12px;
  min-height:44px;
  padding:11px 0;
  color:var(--ng-ink);
  text-decoration:none;
}
.ng-v2 .ng-bbpath__link:hover{ color:var(--ng-accent); }

/* The step number is a chip, not a list marker: an <ol> marker cannot be
   coloured or sized independently of the item, and the theme injects its own
   marker on bare list items anyway. 14px inside a 26px chip — a numeral
   cannot take the tracked-label exception (see §2). */
.ng-v2 .ng-bbpath__n{
  flex:0 0 auto;
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px;
  border-radius:var(--ng-radius-pill);
  background:var(--ng-accent-wash);
  color:var(--ng-accent);             /* 5.42:1 on the 8% wash */
  font-family:var(--ng-font-label); font-weight:700;
  font-size:14px; line-height:1;
}
.ng-v2 .ng-bbpath__t{
  min-width:0;
  font-size:15px; line-height:1.45;
  font-weight:500;
}

/* Pinned to the bottom of the card so three lanes with different title
   lengths end on one baseline. */
.ng-v2 .ng-bbpath__sol{
  display:flex; flex-direction:column; gap:3px;
  margin-top:auto;
  padding-top:18px;
  min-height:44px;
  border-top:1px solid var(--ng-hairline);
  text-decoration:none;
}
.ng-v2 .ng-bbpath__sollabel{
  font-family:var(--ng-font-label); font-weight:600;
  font-size:12px; line-height:1.3; letter-spacing:.1em;
  text-transform:none;                /* authored pre-uppercased: uppercase
                                         would map İLGİLİ → ILGILI */
  color:var(--ng-muted);
}
.ng-v2 .ng-bbpath__solname{
  display:inline-flex; align-items:center; gap:.4em;
  font-family:var(--ng-font-display); font-weight:600;
  font-size:15px; line-height:1.35;
  color:var(--ng-accent);             /* 5.64:1 on --ng-surface */
}
@media (any-hover:hover){
  .ng-v2 .ng-bbpath__sol:hover .ng-arrow{ transform:translate3d(4px,0,0); }
}


/* ==========================================================================
   5. THE INDEX — groups and rows
   ========================================================================== */

/* The theme header is sticky; without this an in-page jump from the aside
   lands the group heading underneath it. 96px is the sticky header's own
   height plus a line of air. */
.ng-v2 .ng-bbgrp,
.ng-v2 .ng-bbarch{ scroll-margin-top:96px; }

.ng-v2 .ng-bbgrp + .ng-bbgrp{ margin-top:42px; }

.ng-v2 .ng-bbgrp__head{
  display:flex; flex-wrap:wrap; align-items:baseline;
  justify-content:space-between; gap:8px 20px;
  padding-bottom:12px;
  margin-bottom:16px;
  border-bottom:1px solid var(--ng-hairline);
}
.ng-v2 .ng-bbgrp__id{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:12px;
  min-width:0;
}
/* (0,3,0). This h3 IS the first child of .ng-bbgrp__id, so the theme's
   :not(:first-child) rule does not currently reach it — the doubled class is
   here anyway, because the day someone adds an eyebrow above it the heading
   would silently gain 50px and nothing would report it. Colour restated for
   the (0,1,1) `.content-wrapper h3{color:#111}` that loads after us. */
.ng-v2 .ng-bbgrp__title.ng-bbgrp__title{
  margin:0;
  font-size:24px; line-height:1.2;
  letter-spacing:-0.015em;
  color:var(--ng-ink);
}
.ng-v2 .ng-bbgrp__count{
  margin:0;
  font-family:var(--ng-font-label); font-weight:600;
  font-size:12px; line-height:1.35; letter-spacing:.1em;
  text-transform:none;                /* "4 YAZI" is authored uppercase */
  color:var(--ng-muted);
}
.ng-v2 .ng-bbgrp__sol{
  display:inline-flex; align-items:center; gap:.4em;
  font-family:var(--ng-font-display); font-weight:600;
  font-size:14px; line-height:1.35;
  color:var(--ng-accent);
  text-decoration:none;
}
.ng-v2 .ng-bbgrp__sol:hover{ text-decoration:underline; text-underline-offset:4px; }
@media (any-hover:hover){
  .ng-v2 .ng-bbgrp__sol:hover .ng-arrow{ transform:translate3d(4px,0,0); }
}

.ng-v2 .ng-bbrows{ list-style:none; margin:0; padding:0; }
.ng-v2 .ng-bbrows > li{ padding:0; margin:0; }
.ng-v2 .ng-bbrows > li + li{ margin-top:10px; }

/* THE ROW. It is a .ng-card, so it inherits the raised surface, the hairline,
   the resting shadow, the hover lift and the entrance reveal from
   ng-shared §6/§10 — including the collision fix that stops
   ng-components.css's absolutely-positioned homepage map markers from
   dragging every inner-page card up and left by half its own size.
   Only the geometry is restated: .ng-card is a flex COLUMN at 24px/22px
   padding, and a row is a three-track grid at a tighter one.

   Areas rather than raw columns, because the mobile arrangement is not the
   desktop one reordered — the rail moves ABOVE the title and the arrow stays
   beside it. */
.ng-v2 .ng-bbrow{
  display:grid;
  grid-template-columns:minmax(0,1fr) 24px;
  /* Below 900 the arrow rides on the DATE line, not beside the deck. Built the
     other way first ("rail rail" / "main go") and the arrow ended up floating
     in the vertical middle of a three-line paragraph with the text wrapping
     short around it — see /root/ng-shots/bbm-3.png, taken before this change.
     Date-left / arrow-right is the shape every list row on a phone already
     has. */
  grid-template-areas:
    "rail go"
    "main main";
  column-gap:14px; row-gap:6px;
  align-items:start;
  padding:18px 20px;
  height:auto;                        /* .ng-card sets height:100%; a row is
                                         not in a grid track and does not want
                                         to stretch to one */
}
@media (min-width:900px){
  /* 140px, down from 186px in the first build. The rail carried the topic as
     well as the date then; the topic moved to the group head (four rows
     printing "YER SEÇİMİ VE YATIRIM" under a heading that already said it was
     noise), and 140px is what "29 Ağustos 2024" needs at 14px with the
     İNFOGRAFİK chip able to sit under it. */
  .ng-v2 .ng-bbrow{
    grid-template-columns:140px minmax(0,1fr) 24px;
    grid-template-areas:"rail main go";
    column-gap:24px;
    padding:18px 22px;
    align-items:center;
  }
}

.ng-v2 .ng-bbrow__rail{
  grid-area:rail;
  display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px;
  min-width:0;
}
@media (min-width:900px){
  .ng-v2 .ng-bbrow__rail{ display:block; align-self:start; padding-top:2px; }
}
/* 14px and only .02em of tracking, so it does NOT take the tracked-label
   exception and sits on the reading floor instead: a date is read, and this
   is the field the old page did not print at all. tabular-nums so the column
   of dates aligns down the rail. */
.ng-v2 .ng-bbrow__date{
  display:block;
  font-family:var(--ng-font-label); font-weight:600;
  font-size:14px; line-height:1.35; letter-spacing:.02em;
  color:var(--ng-ink);
  font-variant-numeric:tabular-nums;
}
/* KIND, not topic. One row on the Turkish page has it and no row on the
   English page does: the 2024 TÜİK post is filed under the "İnfografik
   Serisi" category in WordPress while every other listed post is "Tüm
   Yazılar", so this is the single real per-row distinction in the whole
   index. A label that appears once carries information; the same label on
   thirteen consecutive rows is the "nine × DEVAMINI OKU" defect wearing a
   different hat.
   12px is allowed here — 0.1em tracking, authored already uppercase, glanced
   at rather than read — the same exception .ng-card__meta takes. */
.ng-v2 .ng-bbrow__kind{
  display:inline-block;
  margin-top:6px;
  padding:3px 8px;
  border-radius:var(--ng-radius-pill);
  background:var(--ng-accent-wash);
  color:var(--ng-accent);             /* 5.42:1 on the 8% wash */
  font-family:var(--ng-font-label); font-weight:600;
  font-size:12px; line-height:1.35; letter-spacing:.1em;
  text-transform:none;                /* pre-uppercased — uppercase would map
                                         "İNFOGRAFİK" through i→I and print
                                         "INFOGRAFIK" */
}

.ng-v2 .ng-bbrow__main{ grid-area:main; display:block; min-width:0; }

/* (0,3,0), colour restated — same two theme rules as §3. 18px rather than the
   card scale's 19px: these titles are full sentences ("Şube Kapanışı mı,
   Yeniden Konumlandırma mı? Veriye Dayalı Karar Süreci" is 68 characters) and
   at 19px the longest of them took three lines in the 1440 measure. */
.ng-v2 .ng-bbrow__title.ng-bbrow__title{
  margin:0;
  font-size:18px; line-height:1.3;
  letter-spacing:-0.01em;
  font-weight:600;
  color:var(--ng-ink);
}
.ng-v2 .ng-bbrow__deck{
  display:block;
  margin-top:6px;
  font-size:15px; line-height:1.55;
  color:var(--ng-muted);
  max-width:74ch;
}

.ng-v2 .ng-bbrow__go{
  grid-area:go;
  align-self:center;
  justify-self:end;
  font-size:18px; line-height:1;
  color:var(--ng-accent);
}

.ng-v2 .ng-bbarch__note{ margin-top:30px; }

/* English page only: the route to the three Turkish-only articles. It reuses
   .ng-bbgrp__sol so the two "go somewhere related" affordances on this page
   are one thing, and it is a BLOCK link rather than an inline one inside the
   footnote — ng-page-check measured the inline version at 177x19px on the 390
   viewport, and a 44px min-height on an inline <a> would have torn the
   paragraph's line boxes apart. */
.ng-v2 .ng-bbarch__more{
  margin-top:10px;
  min-height:44px;
  align-items:center;
}


/* ==========================================================================
   6. MOBILE
   Two rules from the contract, plus the two places this page's own geometry
   has to change. ng-shared §12 already lifts .ng-card__body, .ng-lede,
   .ng-note and .ng-pills to the 16px floor and gives .ng-crumbs__link and
   .ng-cta__tel their 44×44 boxes.
   ========================================================================== */
@media (max-width:767px){

  /* Reading floor. Everything a visitor reads on this page goes to 16px; the
     three tracked labels (.ng-bbrow__kind, .ng-bbgrp__count and
     .ng-bbpath__sollabel, all 12px/0.1em) stay, and so do the two numerals,
     which are already 14px and are glanced at, not read. */
  .ng-v2 .ng-bbrow__deck,
  .ng-v2 .ng-bbpath__t,
  .ng-v2 .ng-bbidx__link,
  .ng-v2 .ng-bbidx__note,
  .ng-v2 .ng-bblead__deck{ font-size:16px; }
  .ng-v2 .ng-bbrow__date{ font-size:15px; }

  /* Titles hold their weight rather than shrinking to "desktop, smaller" —
     the row title is the thing being scanned. */
  .ng-v2 .ng-bbrow__title.ng-bbrow__title{ font-size:17px; }
  .ng-v2 .ng-bbgrp__title.ng-bbgrp__title{ font-size:21px; }

  /* 44px targets. min-height on the element, never extra padding, so the
     desktop rhythm is untouched. .ng-bbrow and .ng-bblead__card are
     deliberately absent: the whole card is the target there and both are well
     over 44px in both directions. */
  .ng-v2 .ng-bbgrp__sol{ min-height:44px; align-items:center; }
  .ng-v2 .ng-bbpath__link{ padding:12px 0; }

  /* The group head stacks: a 21px heading and a 14px solution link on one
     baseline at 390px left the link on its own line anyway, and
     space-between then pushed the count away from the title it counts. */
  .ng-v2 .ng-bbgrp__head{
    flex-direction:column; align-items:flex-start; gap:10px;
  }

  .ng-v2 .ng-bbgrp + .ng-bbgrp{ margin-top:34px; }
  .ng-v2 .ng-bbrow{ padding:16px 16px; }
  .ng-v2 .ng-bbpath{ padding:20px 18px 18px; }
  .ng-v2 .ng-bbidx{ padding:6px 16px 16px; }
}

/* The lead card's two columns collapse at 860, not at the 767 breakpoint
   above: a 42% media column at 860–1023 is ~330px, and the copy beside it
   still has 46ch of measure, which is the point at which a two-column card
   stops being worth it. */
@media (max-width:859px){
  .ng-v2 .ng-bblead__media{ max-height:none; }
  .ng-v2 .ng-bblead__title.ng-bblead__title{ font-size:1.375rem; }
}

/* ==========================================================================
   TAP TARGETS AT 768 — 1023px
   .ng-bbgrp__sol is a 14px/1.35 inline-flex link, so its box is 19px tall. It
   sits in a group heading rather than in a row of its own, which is why the
   shared .ng-btn fix in ng-shared.css does not reach it.

   Found only after ng-page-check's tap-target ceiling was raised from 600px to
   1024px: five of these on the Turkish page and four on the English one, all
   under the 44px minimum, in a tablet range nothing had ever measured.

   min-height on the link, not padding on the heading: the heading is a flex row
   and extra padding there would move the group title's baseline as well.
   ========================================================================== */
/* max-width:1024px, NOT 1023. Third time this off-by-one has been fixed: it was
   first closed in ng-shared.css (which the homepages do not load), then in
   ng-mobile.css §7 for the shared primitives — and these page-specific classes
   were still bounded at 1023, so they failed at exactly 1024 on a live page.
   ng-page-check enforces hit areas up to and INCLUDING 1024 because 1024 CSS px
   is iPad landscape. This block contains hit areas only, so widening it by one
   pixel changes no layout. */
@media (min-width:768px) and (max-width:1024px){
  .ng-v2 .ng-bbgrp__sol{ min-height:44px; }
}
