/* ═══════════════════════════════════════════════════════════════════════
   ΑΡΧΙΚΗ ΤΡΙΩΝ ΣΤΗΛΩΝ — αντικαθιστα το hero carousel
   popup.gr · βημα 060 · 02/10/2026

   block_13  →  4 επιμελημενα (entityqueue hero_article)
   block_14  →  6 τελευταια (κατα ημερομηνια)

   Διαταξη:
       ┌──────────┬──────────────────┬──────────┐
       │ αρθρο 3  │   αρθρο 1        │ ΤΕΛΕΥΤΑΙΑ│
       │ αρθρο 4  │   (μεγαλο)       │  6 τιτλοι│
       │          ├──────────────────┤          │
       │          │   αρθρο 2 (μικρο)│          │
       └──────────┴──────────────────┴──────────┘

   ΚΑΝΕΝΑ JS. Καμια κλαση στο Views — ολα δενουν στο view-display-id,
   που το βγαζει μονο του το Views σε καθε display.
   ═══════════════════════════════════════════════════════════════════════ */

html:root {
  --fg-gap:      30px;
  --fg-rule:      #ffffff;                  /* οι γραμμες, οπως στο Pitchfork */
  --fg-rule-soft: rgb(255 255 255 / .18);   /* οι λεπτες, στη δεξια στηλη */
  --fg-col-side: 3.1fr;
  --fg-col-mid:  5.8fr;
  /* Το κατακορυφο κενο αναμεσα στις ενοτητες της αρχικης (βημα 103).
     Μικραινει σε στενη οθονη, οπου 72px ειναι υπερβολικα.           */
  --fg-section-gap: clamp(24px, 2.6vw, 38px);   /* βημα 232 — ηταν clamp(44px,5vw,72px) */
}

/* ═══ 1. ΟΙ ΤΡΕΙΣ ΣΤΗΛΕΣ ΣΤΗ ΣΕΛΙΔΑ ════════════════════════════════════
   Τα δυο blocks ειναι ΞΕΧΩΡΙΣΤΑ αδελφια μεσα στο region-content. Για να
   καθισουν διπλα-διπλα, το region γινεται grid ΜΟΝΟ στην αρχικη.

   Το `> *` με grid-column: 1 / -1 ειναι η δικλειδα: ΟΛΑ τα υπολοιπα
   παιδια — οι ενοτητες κατηγοριων, τα μπανερ τους — κρατουν πληρες
   πλατος και δεν τα αγγιζει τιποτα. Μονο τα δυο blocks που ονοματιζουμε
   παιρνουν στηλη.

   Το body.path-frontpage υπαρχει ηδη (το ειδαμε στην αλυσιδα γονεων).  */
body.path-frontpage .region-content {
  display: grid;
  /* ΤΟ minmax(0, …) ΕΙΝΑΙ ΑΠΑΡΑΙΤΗΤΟ — βημα 135 · 09/10/2026.
     ΜΕΤΡΗΘΗΚΕ ΖΩΝΤΑΝΑ: σε παραθυρο 717px η στηλη υπολογιζοταν
     2174px και το docScrollWidth εφτανε 2190. Ολη η σελιδα
     ξεχειλωνε, και καθε μπλοκ εβγαζε τεραστιες εικονες.

     ΓΙΑΤΙ: το «1fr» ΔΕΝ σημαινει «ενα κλασμα του διαθεσιμου χωρου».
     Σημαινει minmax(AUTO, 1fr) — και το auto ελαχιστο ειναι το
     MIN-CONTENT του περιεχομενου, οχι μηδεν. Αν εστω ενα παιδι
     αρνειται να συρρικνωθει (εδω: banner 300x250 με min-width:300px
     μεσα σε .col-3, δηλαδη απαιτηση ~1200px για τη σειρα), η στηλη
     μεγαλωνει ΜΑΖΙ ΤΟΥ περαν του περιεκτη της.
     Καμια προειδοποιηση, κανενα σφαλμα — απλως μια σελιδα τριπλασια.

     Με minmax(0, …) το ελαχιστο γινεται ΡΗΤΑ μηδεν: η στηλη δεν
     ξεπερνα ποτε τον περιεκτη, και οτι δεν χωραει κοβεται ή κυλαει
     ΜΕΣΑ στο μπλοκ του αντι να σπρωχνει ολη τη σελιδα.             */
  grid-template-columns: minmax(0, var(--fg-col-side))
                         minmax(0, var(--fg-col-mid))
                         minmax(0, var(--fg-col-side));
  column-gap: var(--fg-gap);
  /* ΚΕΝΟ ΑΝΑΜΕΣΑ ΣΤΑ ΜΠΛΟΚ — βημα 103 · 08/10/2026.
     Υπηρχε μονο column-gap, αρα οι ενοτητες καθονταν η μια πανω στην
     αλλη.

     ΓΙΑΤΙ row-gap ΚΑΙ ΟΧΙ margin στις ενοτητες:
       · τα grid items ΔΕΝ συμπτυσσουν περιθωρια, αρα δυο γειτονικα
         margin: 56px θα εδιναν 112px — ή 56px αν ηταν σε κανονικη ροη.
         Αβεβαιο αποτελεσμα, αναλογα το context.
       · το row-gap ειναι ΕΝΑΣ αριθμος, ιδιος παντου, και δεν εξαρταται
         απο το τι κλασεις εχει το καθε μπλοκ μεσα του
       · δεν αγγιζει τα block_13/15 και block_14 που ειναι ΔΙΠΛΑ-ΔΙΠΛΑ:
         το row-gap ισχυει αναμεσα σε ΓΡΑΜΜΕΣ, οχι μεσα στην ιδια

     ΕΝΑΣ ΑΡΙΘΜΟΣ ΤΟ ΡΥΘΜΙΖΕΙ: --fg-section-gap πιο πανω.            */
  row-gap: var(--fg-section-gap, 72px);
  align-items: start;
}
body.path-frontpage .region-content > * { grid-column: 1 / -1; }

/* ═══ ΑΥΤΟΜΑΤΗ ΕΝΑΛΛΑΓΗ 2 ↔ 3 ΣΤΗΛΩΝ        (βημα 074 - 05/10/2026)
   Η διαταξη ΔΙΑΒΑΖΕΙ αν υπαρχει το block_14 στη σελιδα και προσαρμοζεται
   μονη της. Αρα η εναλλαγη γινεται ΜΟΝΟ απο το Block layout:
   ενεργοποιεις ή απενεργοποιεις το μπλοκ, και τελος. Κανενα αρχειο.

   Το :has() στον ΓΟΝΕΑ ρωταει «περιεχει αυτη η περιοχη το block_14;».
   Οι δυο κλαδοι ειναι αμοιβαια αποκλειομενοι, αρα η σειρα γραφης δεν
   παιζει ρολο — δεν μπορουν να ισχυσουν ποτε μαζι.                   */

/* ΡΗΤΕΣ ΘΕΣΕΙΣ, οχι αυτοματη ανιχνευση    (βημα 075 - 05/10/2026)
   Οσο υπηρχε ΜΟΝΟ το block_13, η διαταξη αλλαζε μονη της αναλογα με το
   αν υπηρχε το block_14. Τωρα που τα δυο σεναρια πρεπει να φαινονται
   ΜΑΖΙ στην ιδια σελιδα, η ανιχνευση δεν αρκει — χρειαζεται καθε block
   να ξερει τη θεση του.

   block_13  →  εκδοχη Β, πληρες πλατος
   block_15  →  εκδοχη Γ, οι δυο πρωτες στηλες· διπλα του το block_14   */
body.path-frontpage .region-content > *:has(.view-display-id-block_13) {
  grid-column: 1 / -1;
}
body.path-frontpage .region-content > *:has(.view-display-id-block_15) {
  grid-column: 1 / 3;
}
body.path-frontpage .region-content > *:has(.view-display-id-block_14) {
  grid-column: 3 / 4;
  border-left: 1px solid var(--fg-rule);
  padding-left: var(--fg-gap);
}

/* ═══ 1β. ΑΠΟΣΤΑΣΗ ΑΠΟ ΤΟ HEADER ═══════════════════════════════════════
   Το header ειναι position: fixed, αρα ΔΕΝ πιανει χωρο στη ροη. Το
   carousel ηταν 100vh και περνουσε επιτηδες απο κατω του. Χωρις αυτο,
   το περιεχομενο ξεκιναει στην κορυφη και κρυβεται.

   78px = --hdr-logo-h 50px + 28px padding, απο το header.css.
   Συν η μπαρα του admin, που υπαρχει μονο οταν εισαι συνδεδεμενος.    */
body.path-frontpage .region-content:not(:has([data-hero-carousel])) {
  /* + η σειρα κατηγοριων, που ειναι ορατη ΣΤΗΝ ΚΟΡΥΦΗ — εκει ακριβως
     που κρινεται αν το περιεχομενο κρυβεται απο το header.

     ΜΟΝΟ οταν ΔΕΝ υπαρχει hero: το carousel ειναι πληρους οθονης και
     περναει ΕΠΙΤΗΔΕΣ απο κατω απο το διαφανες header.                */
  padding-top: calc(var(--pg-admin-offset, 0px) + var(--pg-header-h) + var(--hdr-cats-h, 52px) + 24px);
}

/* ═══ 1γ. ΤΟ HEADER ΧΩΡΙΣ HERO ════════════════════════════════════════
   Β63 — παρενεργεια που δεν ειχα προβλεψει.

   Το sticky-nav.js (βημα 031) δινει φοντο στο header οταν τελειωνει το
   hero: παρακολουθει το [data-hero-carousel] με IntersectionObserver.
   Χωρις hero στη σελιδα, ο observer ΔΕΝ δημιουργειται καν — αρα το
   .is-past-hero δεν μπαινει ποτε και το header μενει διαφανες για
   παντα, με το κειμενο να περνα απο πισω.

   Λυση χωρις να πειραχτει το JS: αν η σελιδα ΔΕΝ εχει hero, το header
   παιρνει φοντο εξ αρχης.

   Ειδικοτητα: το header.css εχει
       .header×4:not(.is-past-hero) { background: transparent }   (0,5,0)
   Εδω: body:not(:has([data-hero-carousel])) δινει 1 κλαση — το :has()
   μετραει οσο το ορισμα του, εδω ενας επιλογεας χαρακτηριστικου — συν
   τεσσερα .header = (0,5,2). Ισοβαθμια στις κλασεις, κερδιζουμε στα
   στοιχεια.                                                          */
html body:not(:has([data-hero-carousel])) .header.header.header.header {
  /* Επιλογη Α — «λεπτη ανυψωση»: ελαχιστα πιο ανοιχτο απο τη σελιδα
     (#1b1b1b πανω σε #151515) με λεπτη γραμμη. Ξεχωριζει ως χειριστηριο
     χωρις να σπαει την ενοτητα του σκουρου.

     Το λευκο header απορριφθηκε: ειναι fixed, αρα θα ακολουθουσε τον
     αναγνωστη σαν φωτεινη σχισμη σε ολο το σκρολ. Και το #ff4848 σε
     λευκο δινει 2,6:1 — κατω απο καθε οριο.                          */
  background: #1b1b1b;
  border-bottom: 1px solid var(--pg-border, #2e2e2e);
  backdrop-filter: none;
  transition: border-bottom-color .28s ease;
}

/* Στην ΚΟΡΥΦΗ της σελιδας: χωρις κατω γραμμη.
   Εκει το header εχει ηδη τη γραμμη ΠΑΝΩ απο τις κατηγοριες — δευτερη
   απο κατω κοβει τη σελιδα σε δυο με δυο παραλληλες ριγες.
   Μολις γινει sticky οι κατηγοριες μαζευονται, μενει μια σειρα, και
   τοτε η γραμμη χρειαζεται: ειναι το μονο που ξεχωριζει το header απο
   το περιεχομενο που κυλαει απο κατω.

   Το .active το βαζει το sticky-nav.js μετα τα 80px σκρολ.
   Ειδικοτητα (0,6,2) εναντι (0,5,2) του κανονα απο πανω.            */
html body:not(:has([data-hero-carousel])) .header.header.header.header:not(.active) {
  border-bottom-color: transparent;
}

/* ═══ 2. ΤΑ 4 ΕΠΙΜΕΛΗΜΕΝΑ ══════════════════════════════════════════════
   Β60 — ΓΙΑΤΙ ΑΛΛΑΞΕ Η ΠΡΟΣΕΓΓΙΣΗ
   Η πρωτη εκδοχη εβαζε και τα 4 αρθρα σε ΕΝΑ grid και τα τοποθετουσε με
   grid-column/grid-row ανα :nth-child. Δουλεψε, αλλα το CSS Grid
   ΜΟΙΡΑΖΕΙ τις σειρες μεταξυ ολων των στηλων: το υψος της σειρας 1
   οριζεται απο το ψηλοτερο στοιχειο της. Αρα οποτε η μια στηλη ηταν
   ψηλοτερη, η αλλη εμενε με τεραστιο κενο.

   Δεν υπαρχει τροπος να αποσυζευχθουν σειρες μεσα σε ενα grid με επιπεδη
   λιστα στοιχειων. Η λυση ειναι ΔΥΟ περιεκτες στο twig — δυο
   ανεξαρτητες ροες.                                                   */
:is(.view-display-id-block_13, .view-display-id-block_15) .fg {
  display: grid;
  column-gap: var(--fg-gap);
  align-items: start;
  /* block_13 — εκδοχη Β: ολο το πλατος, η μεσαια παιρνει το κερδος */
  grid-template-columns: minmax(0, 3.1fr) minmax(0, 9.5fr);
}
/* block_15 — εκδοχη Γ: στενοτερη μεσαια, γιατι διπλα της ειναι τα
   «ΤΑ ΤΕΛΕΥΤΑΙΑ». Το 3.1 μενει ιδιο ωστε η αριστερη στηλη να κραταει
   το απολυτο πλατος της — αλλιως θα αλλαζαν και οι αναλογιες των
   φωτογραφιων της.                                                   */
.view-display-id-block_15 .fg {
  grid-template-columns: minmax(0, 3.1fr) minmax(0, 5.8fr);
}
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__main {
  border-left: 1px solid var(--fg-rule);
  padding-left: var(--fg-gap);
}

/* ── το μεγαλο ── */
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__main > .article:first-child {
  flex-direction: column;
}
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__main > .article:first-child .article__image figure {
  aspect-ratio: 16 / 9;
  width: 100%; height: auto; padding-top: 0; margin: 0;
}
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__main > .article:first-child .article__title {
  font-size: clamp(2.1rem, 3.6vw, 3.1rem);
  line-height: 1.04;
}
/* Το standfirst — υπαρχει ηδη στο template ως
   <p>{{ fields.field_sub_heading.content }}</p>, χωρις κλαση.          */
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__main > .article:first-child .article__content > p {
  margin: 14px 0 0;
  max-width: 52ch;
  font-family: var(--pg-font-body, Arial, sans-serif);
  font-size: 1.0333rem;
  line-height: 1.5;
  color: var(--pg-meta-ink, #b4b4b4);
  text-transform: none;
  letter-spacing: 0;
}
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__main > .article:first-child .article__content > p:empty {
  display: none;
}

/* ── το μικρο του κεντρου: κειμενο αριστερα, εικονα δεξια ── */
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__main > .article:last-child {
  flex-direction: row-reverse;
  gap: 22px;
  align-items: flex-start;
  border-top: 1px solid var(--fg-rule);
  padding-top: 24px;
  margin-top: 24px;
}
/* Η εικονα του μικρου: 168px → 320px, σχεδον διπλασια.
   Το max-width ειναι διπλη δικλειδα:
     · το .article__image εχει width: 100% απο το mainsite, που αλλιως
       νικαει το flex-basis
     · το 60% εμποδιζει την εικονα να φαει το κειμενο οταν η στηλη
       στενευει σε ενδιαμεσα πλατη παραθυρου                          */
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__main > .article:last-child .article__image {
  flex: 0 0 320px;
  max-width: 60%;
}
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__main > .article:last-child .article__content { flex: 1; min-width: 0; }
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__main > .article:last-child .article__image figure {
  aspect-ratio: 3 / 2; width: 100%; height: auto; padding-top: 0; margin: 0;
}

/* ── τα δυο αριστερα: πλατιες φωτογραφιες 2:1 ── */
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__side > .article { flex-direction: column; }
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__side > .article .article__image figure {
  aspect-ratio: 2 / 1;
  width: 100%; height: auto; padding-top: 0; margin: 0;
}
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__side > .article + .article {
  border-top: 1px solid var(--fg-rule);
  padding-top: 26px;
  margin-top: 26px;
}

/* Οι εικονες γεμιζουν την αναλογια αντι να παραμορφωνονται */
:is(.view-display-id-block_13, .view-display-id-block_15) .article__image img {
  width: 100%; height: 100%; object-fit: cover;
}

/* ── Η ΚΑΤΗΓΟΡΙΑ: εξω απο τη φωτογραφια ─────────────────────────────
   Το mainsite την κανει ΜΑΥΡΟ ΠΛΑΚΙΔΙΟ πανω στην εικονα:
       .article__image            { position: relative }
       .article__parentCategory a { background: … ; padding: 0 16px }
   και το ιδιο το parentCategory ειναι absolute μεσα του.

   Με position: static πεφτει μονη της στη ΡΟΗ — δηλαδη στο τελος του
   .article__image, που ερχεται ακριβως πριν τον τιτλο. Ιδιο οπτικο
   αποτελεσμα με το να τη μετακινησεις στο twig, χωρις να το αγγιξεις.

   Πιανονται ΚΑΙ τα δυο ονοματα κλασης: το template βαζει
   article__category, αλλα το πεδιο μπορει να κραταει και το
   article__parentCategory αναλογα με το κλαδι.                      */
:is(.view-display-id-block_13, .view-display-id-block_15) :is(.article__category, .article__parentCategory) {
  position: static;
  background: none;
  padding: 0;
  /* Η στοιβα ειναι: εικονα → κατηγορια → τιτλος.
     Πριν αθροιζονταν τρια περιθωρια και εβγαζαν ~32px:
         κατηγορια margin-top 16 + margin-bottom 8
       + τιτλος margin-top 8 (mainsite)
     Τωρα: 12px πανω, 4px κατω, και ο τιτλος μηδενιζεται πιο κατω.   */
  margin: 12px 0 4px;
  display: block;
}

/* Τα δυο περιθωρια που αθροιζονταν με το παραπανω */
:is(.view-display-id-block_13, .view-display-id-block_15) .article__content { padding-top: 0; }
:is(.view-display-id-block_13, .view-display-id-block_15) .article__title { margin-top: 0; }

/* Στο μικρο του κεντρου η εικονα ειναι ΔΕΞΙΑ (row-reverse), αρα το
   κειμενο ξεκιναει στην κορυφη της στηλης του — το περιθωριο απο
   «πανω» δεν εχει τι να χωρισει. Απο κατω ομως θελει περισσοτερο
   αερα απο τα αλλα: εκει η κατηγορια ειναι το πρωτο πραγμα που
   διαβαζεται, χωρις εικονα απο πανω να την κρατα σε αποσταση.       */
:is(.view-display-id-block_13, .view-display-id-block_15) .fg__main > .article:last-child
  :is(.article__category, .article__parentCategory) {
  margin-top: 0;
  margin-bottom: 9px;
}
/* Το background ειναι στο <a> ΜΕΣΑ, οχι στο wrapper — και δηλωνεται με
   συντομη γραφη που δεν σπαει με λιγοτερες κλασεις.                  */
:is(.view-display-id-block_13, .view-display-id-block_15) :is(.article__category, .article__parentCategory) a {
  background: none;
  padding: 0;
  margin: 0;
  font-family: var(--pg-font-cond, 'Sofia Sans Condensed', Arial, sans-serif);
  font-size: var(--pg-meta, 0.9333rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--pg-meta-ink, #8a8a8a);
  text-decoration: none;
  transition: color .18s ease;
}
@media (hover: hover) and (pointer: fine) {
  :is(.view-display-id-block_13, .view-display-id-block_15) :is(.article__category, .article__parentCategory) a:hover {
    color: var(--pg-section-accent, rgb(255, 72, 72));
  }
}

/* Δικλειδα: αρθρο ΧΩΡΙΣ φωτογραφια — το θεμα βγαζει παντα <figure> και
   <picture>, ακομα και κενα. Χωρις αυτο, μαυρη τρυπα.                 */
:is(.view-display-id-block_13, .view-display-id-block_15) .article__image figure:not(:has(img)) {
  display: none;
}

/* ═══ 3. ΤΕΛΕΥΤΑΙΑ — στηλη μονο με κειμενο ════════════════════════════
   Προτυπο: η στηλη «THE LATEST» του Pitchfork. Τιτλοι 16px, υπογραφη
   12px γκρι, λεπτη γραμμη αναμεσα, συμπαγης ρυθμος ~75px ανα ειδηση.

   Β64 — ΓΙΑΤΙ ΔΕΝ ΕΠΙΑΝΕ Η ΠΡΟΗΓΟΥΜΕΝΗ ΕΚΔΟΧΗ
   Ειχα γραψει .view-display-id-block_14 .category__title = (0,2,0) και
   .view-display-id-block_14 .article__title = (0,2,0). Το sections.css
   ομως εχει .category__title ×3 = (0,3,0) και, για τις παραλλαγες
   mgWideFull κ.λπ., .article__title ×3 μεσα σε ×2 = (0,5,0).
   Δηλαδη εχανα απο τους ΔΙΚΟΥΣ ΜΟΥ κανονες, οχι απο το mainsite.
   Οι ριζες ανεβηκαν σε (0,4,0) και (0,6,0) αντιστοιχα.               */

/* Η εικονα κρυβεται απο ΕΔΩ και οχι απο το Views: αν το display
   χρησιμοποιει rendered entity, για να φυγει θα χρειαζοταν νεο view
   mode. Μια γραμμη CSS κανει την ιδια δουλεια.                       */
.view-display-id-block_14 .article__image { display: none; }

/* ── Η επικεφαλιδα: «ΤΑ ΤΕΛΕΥΤΑΙΑ» ──────────────────────────────────
   Χωρις πλαγια γραμμη και χωρις κοκκινο — ειναι η μονη ενοτητα που
   ΔΕΝ ειναι κατηγορια, αρα δεν ακολουθει το μοτιβο τους.
   Το κειμενο αλλαζει στο template· εδω μονο η εμφανιση.             */
.view-display-id-block_14 .category__title.category__title.category__title {
  padding: 0 0 10px;
  margin: 0 0 2px;
  font-family: var(--pg-font-cond, 'Sofia Sans Condensed', Arial, sans-serif);
  font-size: 1.2rem;             /* 18px — ηταν 13px, μετα 15px */
  font-weight: 700;
  line-height: 1.2;
  /* Οσο μεγαλωνουν τα κεφαλαια, τοσο λιγοτερο αραιωμα θελουν */
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pg-title-ink, #f2f2f2);
  border: 0;
  border-bottom: 2px solid var(--fg-rule);
  /* Το mainsite εχει .lookLayout .category__title { display: inline-block }
     στο (0,2,0) — γι' αυτο η γραμμη σταματουσε στο πλατος του κειμενου.
     Η δικη μας ριζα ειναι (0,4,0).                                   */
  display: block;
  width: 100%;
}
.view-display-id-block_14 .category__title.category__title.category__title::before { content: none; }
.view-display-id-block_14 .category__title a {
  color: inherit;
  text-decoration: none;
  font: inherit;
  letter-spacing: inherit;
}

/* ── Ο ΠΕΡΙΕΚΤΗΣ: ΜΙΑ στηλη ──────────────────────────────────────────
   ΚΡΙΣΙΜΟ. Το mainsite εχει .grid { display: grid;
   grid-template-columns: repeat(3, 1fr) } στο (0,1,0). Σε πλατος 290px
   αυτο δινει τρεις στηλες των ~80px — μια λεξη ανα γραμμη.

   Πιανεται και με το ονομα .grid και με δομικη συνθηκη, ωστε να μην
   εξαρταται απο το πως ονομασε ο καθενας τον περιεκτη στο template.
   (0,2,0) εναντι (0,1,0).                                            */
.view-display-id-block_14 .fg-latest__list,
.view-display-id-block_14 .grid,
.view-display-id-block_14 :has(> .article + .article) {
  display: flex;
  flex-direction: column;
  grid-template-columns: none;
  gap: 0;
}

/* ── Οι ειδησεις ── */
.view-display-id-block_14 .article {
  flex-direction: column;
  /* Απαλο γκρι αντι για καθαρο λευκο: σε σκουρο φοντο το λευκο 1px
     τραβαει περισσοτερο απο τους ιδιους τους τιτλους. Το rgb()/α
     προσαρμοζεται μονο του αν αλλαξει καποτε το φοντο.               */
  border-top: 1px solid var(--fg-rule-soft);
  padding-block: 14px;
}
.view-display-id-block_14 .article:first-child {
  border-top: 0;
  padding-top: 12px;
}
.view-display-id-block_14 .article__title.article__title.article__title.article__title.article__title {
  font-size: 1.2rem;             /* 18px — ηταν 16px */
  line-height: 1.28;
  letter-spacing: 0;
}
.view-display-id-block_14 .article__info.article__info.article__info.article__info.article__info {
  margin-top: 8px;
  /* ΒΗΜΑ 244 — ακολουθει το νεο τοκεν. ΗΤΑΝ 0.9333rem/600, δηλαδη
     ΡΗΤΑ ΞΑΝΑΓΡΑΜΜΕΝΑ εδω στο (0,6,0): χωρις αυτη την αλλαγη το
     block_14 θα εμενε ΤΟ ΜΟΝΟ μπλοκ με bold υπογραφη.            */
  font-size: var(--pg-meta-byline, .8666rem);
  font-weight: 400;
  text-transform: none;
  letter-spacing: .01em;
  color: var(--pg-meta-ink, #8a8a8a);
}
/* Η κατηγορια δεν εχει θεση σε λιστα «τελευταιων» — ολα ειναι
   αναμεικτα εξ ορισμου.                                             */
.view-display-id-block_14 :is(.article__category, .article__parentCategory) {
  display: none;
}
/* Το κουμπι MORE δεν εχει νοημα εδω */
.view-display-id-block_14 .buttonWrapper { display: none; }

/* ═══ 4. ΜΙΚΡΕΣ ΟΘΟΝΕΣ ═════════════════════════════════════════════════ */
@media (max-width: 1080px) {
  body.path-frontpage .region-content { grid-template-columns: minmax(0, 1fr); }  /* βημα 135 */
  /* ΤΟ block_15 ΕΛΕΙΠΕ ΑΠΟ ΑΥΤΗ ΤΗ ΛΙΣΤΑ — βημα 133 · 09/10/2026.
     Εξω απο το media query εχει grid-column: 1 / 3. Οταν το πλεγμα
     γινεται ΜΟΝΟΣΤΗΛΟ, υπαρχουν μονο δυο γραμμες στηλης (1 και 2).
     Ζητωντας τη γραμμη 3, το CSS Grid ΔΗΜΙΟΥΡΓΕΙ σιωπηλα ΥΠΟΝΟΟΥΜΕΝΗ
     στηλη για να την ικανοποιησει. Αποτελεσμα:
       · το πλεγμα γινεται φαρδυτερο απο τον περιεκτη του
       · το -1 δειχνει στη γραμμη 2 (ΤΕΛΟΣ ΤΟΥ ΡΗΤΟΥ πλεγματος), αρα
         ολα τα αλλα μπλοκ μενουν στην πρωτη στηλη ενω το block_15
         απλωνεται και στη δευτερη
     Καμια προειδοποιηση, κανενα σφαλμα: το Grid δεν παραπονιεται ποτε
     για γραμμη που δεν υπαρχει — τη φτιαχνει.                       */
  body.path-frontpage .region-content > *:has(.view-display-id-block_13),
  body.path-frontpage .region-content > *:has(.view-display-id-block_15),
  body.path-frontpage .region-content > *:has(.view-display-id-block_14) {
    grid-column: 1 / -1;
    border-left: 0;
    padding-left: 0;
  }
  body.path-frontpage .region-content > *:has(.view-display-id-block_14) {
    border-top: 1px solid var(--fg-rule);
    padding-top: 26px;
    margin-top: 26px;
  }
}

@media (max-width: 760px) {
  .view-display-id-block_13 .fg { grid-template-columns: minmax(0, 1fr); row-gap: 26px; }
  .view-display-id-block_13 .fg__main {
    border-left: 0;
    padding-left: 0;
    border-top: 1px solid var(--fg-rule);
    padding-top: 26px;
  }
  /* Στο κινητο το μεγαλο πρωτο — η σειρα αναγνωσης αλλαζει */
  .view-display-id-block_13 .fg__main { order: -1; border-top: 0; padding-top: 0; }
  .view-display-id-block_13 .fg__side {
    border-top: 1px solid var(--fg-rule);
    padding-top: 26px;
  }
  .view-display-id-block_13 .fg__main > .article:last-child { flex-direction: column; }
  .view-display-id-block_13 .fg__main > .article:last-child .article__image {
    flex: none; max-width: none;
  }
}


/* ═══ 5. Η ΥΠΟΓΡΑΦΗ: δυο γραμμες, οπως στο Pitchfork ═══════════════════

       By Πόπ Απ Τιμ
       15 Ιανουαρίου, 2026

   Το mainsite βαζει .article__info span:before { content: '|' } σε ΚΑΘΕ
   span (0,1,2). Με τις δυο γραμμες ο διαχωριστης περισσευει — φευγει
   τελειως εδω. Η δικη μας ριζα ειναι (0,2,1): δυο κλασεις νικουν τη μια,
   ανεξαρτητα απο τα στοιχεια.                                         */
/* Β62 — ΣΥΓΚΡΟΥΣΗ ΜΕ ΔΙΚΟ ΜΑΣ ΚΑΝΟΝΑ
   Το sections.css (βημα 054) εχει:
       .article__info ×5 { flex-direction: row; … }      (0,5,0)
   Πεντε κλασεις, γιατι τοτε επρεπε να νικησει το
   .categorySection--black.type12 .article--wide .article__info
   { flex-direction: column } του mainsite, που ειναι (0,4,0).

   Αρα εδω δεν αρκει το (0,2,0): χρειαζεται ΠΑΝΩ απο το (0,5,0) —
   η επανασταση που κερδισε χθες ειναι ο αντιπαλος σημερα.
   Μια κλαση display + πεντε info = (0,6,0).                        */
.view-display-id-block_13 .article__info.article__info.article__info.article__info.article__info {
  flex-direction: column;
  align-items: flex-start;
  row-gap: 5px;
  column-gap: 0;
  /* Πεζα-κεφαλαια, οχι ΟΛΟΚΕΦΑΛΑΙΑ: μια πληρης ημερομηνια σε κεφαλαια
     («15 ΙΑΝΟΥΑΡΙΟΥ, 2026») διαβαζεται δυσκολα και φωναζει.          */
  text-transform: none;
  letter-spacing: .02em;
  /* ΗΤΑΝ 1rem (15px) με το σκεπτικο: η υπογραφη εδω σπαει σε δυο
     γραμμες και θελει λιγο περισσοτερο σωμα. ΒΗΜΑ 244: μικραινει
     ΜΑΖΙ με τα αλλα, κρατωντας ομως το ΕΝΑ ΣΚΑΛΙ διαφορας —
     14px εδω, 13px αλλου. Το σκεπτικο δεν ακυρωθηκε, μετατοπισθηκε. */
  font-size: var(--pg-meta, .9333rem);
}
.view-display-id-block_13 .article__info > *::before { content: none; }

/* Το «By» το βαζει ΤΟ TEMPLATE, μεσα σε <span class="article__by">,
   με {% if %} ωστε να μην εμφανιζεται οταν λειπει ο συντακτης.

   ΕΙΧΑ εδω κανονα ::before που το προσθετε απο CSS. Αφαιρεθηκε: με το
   template να το γραφει κιολας, θα εβγαινε «By By Ονομα». Ενα απο τα
   δυο, ποτε και τα δυο.                                              */
.view-display-id-block_13 .article__by { display: block; }
.view-display-id-block_13 .article__info a { text-transform: none; }
.view-display-id-block_13 .article__info.article__info.article__info.article__info.article__info :is(a, span, time, .dark) {
  text-transform: none;
  letter-spacing: .02em;
  color: var(--pg-meta-ink, #8a8a8a);
}
/* Το span της ημερομηνιας ειναι flex item σε στηλη — να μη τεντωνεται */
.view-display-id-block_13 .article__info.article__info.article__info.article__info.article__info > * { margin: 0; }


/* ── ΤΟ ΚΕΝΟ ΑΝΑΜΕΣΑ ΣΤΑ ΜΠΛΟΚ  (βηματα 231-232) ────────────────────
   ΔΥΟ ΠΗΓΕΣ ΠΡΟΣΘΕΤΟΝΤΑΝ, ΚΑΙ ΑΥΤΟ ΗΤΑΝ ΤΟ ΠΡΟΒΛΗΜΑ:

     row-gap          του πλεγματος          --fg-section-gap
     margin: 56px 0   απο .lookLayout .sectionMargin (mainsite:2020)

   Σε grid τα περιθωρια ΔΕΝ συμπτυσσονται οπως σε κανονικη ροη —
   προστιθενται στο gap. Αρα:
       οπου υπαρχει .sectionMargin   56 + gap + 56  ≈ 160px
       οπου δεν υπαρχει              σκετο gap      ≈  72px
   Η αποσταση ηταν ΑΝΙΣΗ αναλογα με το ποιο μπλοκ ηταν απο πανω, και
   καμια απο τις δυο τιμες δεν την ελεγχε μονη της.

   ΤΩΡΑ ΕΝΑ ΝΟΥΜΕΡΟ: τα περιθωρια μηδενιζονται και το κενο το οριζει
   ΑΠΟΚΛΕΙΣΤΙΚΑ το gap. Σε πλεγμα αυτος ειναι ο σωστος τροπος — το gap
   ξερει που ειναι τα ορια, τα περιθωρια οχι.

   ΜΟΝΟ ΣΤΗΝ ΑΡΧΙΚΗ: το .sectionMargin το μοιραζονται και οι σελιδες
   κατηγοριας, που ΔΕΝ ειναι πλεγμα και χρειαζονται τα περιθωρια τους. */
body.path-frontpage .region-content > * {
  margin-top: 0;
  margin-bottom: 0;
}

/* Αν ποτε θελησεις το πρωτο μπλοκ πιο μακρια η πιο κοντα απο τα
   υπολοιπα, ΜΟΝΟ εδω — προεπιλογη 0, δηλαδη ιδιο με τα αλλα. */
body.path-frontpage .heroSection + * {
  margin-top: var(--fg-hero-gap, 0);
}


/* ═══ ΙΔΙΟ ΚΕΝΟ ΑΝΑΜΕΣΑ ΣΕ ΟΛΕΣ ΤΙΣ ΕΝΟΤΗΤΕΣ — ΚΙΝΗΤΟ ════════════
   βημα 289 · 02/11/2026

   ── ΤΙ ΕΒΛΕΠΕ Ο ΧΡΗΣΤΗΣ ────────────────────────────────────────
   «στο block 12 κολλαει απο κατω το αλλο μπλοκ, θελω ολα να εχουν
   το ιδιο κενο». Η ενοτητα κριτικων εμοιαζε να εχει πολυ αερα απο
   ΠΑΝΩ και καθολου απο ΚΑΤΩ.

   ── Η ΑΙΤΙΑ ΔΕΝ ΗΤΑΝ ΣΤΟ block_12 ──────────────────────────────
   ΜΕΤΡΗΘΗΚΕ ΣΤΟ ΖΩΝΤΑΝΟ HTML. Η σειρα ειναι:
       hero → block_1 → block_12 → block_11 → block_10
   και ΜΟΝΟ το block_1 εχει στο view div του τις κλασεις
   «categorySection sectionMargin». Το mainsite δινει
       .sectionMargin            { margin: 80px 0 }   (γρ.2019)
       .lookLayout .sectionMargin{ margin: 56px 0 }   (γρ.2023)

   Αρα τα πραγματικα κενα ηταν:
       μετα το block_1    24px (gap) + 56px (margin)  = 80px
       μετα το block_12   24px
       μετα το block_11   24px
   Το block_12 δεν ειχε λιγοτερο κενο απο τα αλλα — ειχε το ΙΔΙΟ.
   Απλα καθεται ΑΚΡΙΒΩΣ ΚΑΤΩ απο το μοναδικο μπλοκ με διπλασιο
   κενο, και η αντιθεση το εκανε να φαινεται κολλημενο. Αν ειχα
   πειραξει το block_12, θα ειχα φτιαξει ΕΝΑ κενο και θα ειχα
   χαλασει την ομοιομορφια που ζητηθηκε.

   ── ΓΙΑΤΙ ΤΟ margin: 0 ΤΗΣ ΓΡ.562 ΔΕΝ ΤΟ ΕΠΙΑΝΕ ────────────────
   Εκεινος ο κανονας ειναι .region-content > *, δηλαδη το
   .views-element-container. Το sectionMargin ομως ειναι ΔΥΟ
   επιπεδα πιο μεσα, στο .view. Η προθεση της γρ.555 («τα
   περιθωρια μηδενιζονται και το κενο το οριζει ΑΠΟΚΛΕΙΣΤΙΚΑ το
   gap») ηταν σωστη — απλα ο επιλογεας δεν εφτανε ως εκει.

   ── Η ΔΙΟΡΘΩΣΗ: ΕΝΑ ΝΟΥΜΕΡΟ ΓΙΑ ΟΛΑ ────────────────────────────
   1. μηδενιζουμε το περιθωριο ΚΑΙ στο εσωτερικο .sectionMargin
   2. ανεβαζουμε το gap σε 44px, ωστε το κενο να ειναι ΜΕΓΑΛΥΤΕΡΟ
      απο τα 24px που ειχαν ολα πλην ενος
   Αποτελεσμα: καθε κενο 44px, κανενα 24, κανενα 80.

   ΕΙΔΙΚΟΤΗΤΑ: .path-frontpage + .region-content + .sectionMargin
   = (0,3,0), εναντι (0,2,0) του .lookLayout .sectionMargin.

   Το --fg-section-gap δηλωνεται στο html:root (γρ.28)· εδω
   ξαναδηλωνεται στο body, που ειναι ΠΙΟ ΚΟΝΤΙΝΟΣ προγονος του
   .region-content — στις custom properties κερδιζει ο κοντινοτερος,
   χωρις να χρειαζεται !important.

   ΜΟΝΟ ΚΙΝΗΤΟ: ζητηθηκε «τουλαχιστον στο κινητο». Σε desktop
   υπαρχει η ΙΔΙΑ ασυμμετρια (56px μονο κατω απο το block_1) —
   βγαινει με το ιδιο ζευγος κανονων εξω απο το @media.           */
@media (max-width: 766px) {
  body.path-frontpage {
    --fg-section-gap: 44px;
  }

  body.path-frontpage .region-content .sectionMargin {
    margin-block: 0;
  }
}
