/* ---------------------------------------------------------------
   Archive pages (ΑΠΟΨΕΙΣ, ΣΥΝΕΝΤΕΥΞΕΙΣ) and the static text pages.
   Loaded alongside style.css, which owns the shared chrome.
   --------------------------------------------------------------- */

.archive-main { padding-block: 34px 60px; }

.archive-head { display: flex; align-items: center; gap: 26px; margin-bottom: 38px; }
.archive-head h1 {
  font-family: var(--ui); font-weight: 800;
  font-size: clamp(30px, 3.4vw, 52px); line-height: 1; color: var(--ink);
  letter-spacing: -0.5px;
}
.archive-head .dot { color: var(--crimson); }
.archive-head .rule { flex: 1; height: 2px; background: var(--navy); }

.archive-body {
  display: grid; grid-template-columns: 1fr 300px; gap: 46px;
  align-items: start;
}

/* two columns of entries */
.post-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; }

.post { display: grid; grid-template-columns: 150px 1fr; gap: 22px; padding: 30px 0; }
.post + .post { border-top: 0; }
.post-body { border-bottom: 1px solid #dcd8d2; padding-bottom: 22px; display: flex; flex-direction: column; }

.post .portrait { position: relative; display: block; }
.post .portrait img {
  width: 150px; height: 150px; border-radius: 50%; object-fit: cover;
  filter: grayscale(100%);
  background: #eef1f7;
  transition: filter .35s ease, transform .35s ease;
}
.post:hover .portrait img { filter: grayscale(0); transform: scale(1.03); }

/* the comment-count bubble */
.post .bubble {
  position: absolute; right: 4px; bottom: 6px;
  min-width: 34px; height: 34px; padding: 0 9px;
  background: #14181f; color: #fff; border-radius: 17px 17px 17px 3px;
  display: grid; place-items: center;
  font-family: var(--ui); font-weight: 700; font-size: 13px;
}

.post .byline {
  font-family: var(--ui); font-weight: 700; font-size: 11.5px;
  letter-spacing: 1.4px; color: #8a8f98; margin-bottom: 12px;
}
.post h3 {
  font-family: var(--serif); font-weight: 700;
  font-size: 19px; line-height: 1.35; color: var(--ink);
  margin-bottom: 16px;
}
.post h3 a:hover { color: var(--crimson); }
.post-date {
  margin-top: auto; padding-top: 14px;
  font-family: var(--ui); font-size: 12.5px; color: #8a8f98;
}

/* share row */
.share { display: flex; flex-wrap: wrap; gap: 8px; }
.share a {
  width: 30px; height: 30px; border-radius: 50%;
  border: 1px solid #d3cfc9; color: #4a4f58;
  display: grid; place-items: center;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.share a svg { width: 14px; height: 14px; fill: currentColor; }
.share a:hover { background: var(--navy); border-color: var(--navy); color: #fff; }

/* sticky rail */
.archive-rail {
  position: sticky; top: 110px;
  display: flex; flex-direction: column; gap: 26px;
}
.archive-rail .ad { min-height: 0; }
.archive-rail .ad:has(.ad-label) { min-height: 250px; }
.archive-rail .ad[data-ad-size="300x600"]:has(.ad-label) { min-height: 600px; }

.widget-title {
  font-family: var(--ui); font-weight: 800; font-size: 19px;
  letter-spacing: .5px; color: var(--ink); margin-bottom: 18px;
}
.widget-title .dot { color: var(--crimson); }
.widget .wrow { display: grid; grid-template-columns: 62px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid #e2ded8; }
.widget .wrow:last-child { border-bottom: 0; }
.widget .wthumb img { width: 62px; height: 62px; border-radius: 50%; object-fit: cover; filter: grayscale(100%); }
.widget .byline { font-family: var(--ui); font-weight: 700; font-size: 10.5px; letter-spacing: 1.2px; color: #8a8f98; margin-bottom: 6px; }
.widget h5 { font-family: var(--ui); font-weight: 700; font-size: 13.5px; line-height: 1.35; color: var(--ink); }
.widget h5 a:hover { color: var(--crimson); }
.widget .wmeta { margin-top: 8px; font-family: var(--ui); font-size: 11.5px; color: #8a8f98; display: flex; justify-content: space-between; }
.widget .count { color: var(--crimson); font-weight: 700; }

/* infinite scroll */
.archive-sentinel { height: 1px; }
.archive-status {
  text-align: center; padding: 26px 0 0;
  font-family: var(--ui); font-size: 13px; color: #8a8f98;
}
.archive-status.done { color: #b3aea7; }

/* ---------------- static text pages ---------------- */
.page-main { padding-block: 34px 70px; }
.page-head h1 {
  font-family: var(--ui); font-weight: 800;
  font-size: clamp(26px, 3vw, 44px); line-height: 1.12; color: var(--ink);
  margin-bottom: 30px;
}
.page-head .dot { color: var(--crimson); }

/* legal pages sit on white, with the copy in a narrow centred measure */
body.page-legal { background: var(--cream); }
body.page-legal main { background: var(--cream); }
.legal-box {
  max-width: 620px;
  margin: 0 auto;
  /* το ίδιο χαρτί με τον υπόλοιπο ιστότοπο — το λευκό πλαίσιο έκοβε τη σελίδα στα δύο */
  background: transparent;
  padding: 0 0 30px;
}
body.page-legal .page-head { max-width: 620px; margin: 0 auto; }
.legal-box h2 {
  font-family: var(--ui); font-weight: 800; font-size: 14px;
  letter-spacing: .8px; color: var(--ink);
  margin: 34px 0 14px;
}
.legal-box h2:first-child { margin-top: 0; }
.legal-box p, .legal-box li {
  font-family: var(--ui); font-size: 15px; line-height: 1.75; color: #3f444d;
  margin-bottom: 15px;
}
.legal-box ul { padding-left: 22px; margin-bottom: 15px; }
.legal-box li { margin-bottom: 8px; }
.legal-box a { color: var(--navy); text-decoration: underline; }
.legal-box a:hover { color: var(--crimson); }
.legal-note {
  margin-top: 28px; padding-top: 18px; border-top: 1px solid #e8e3dc;
  font-size: 13.5px; color: #7b8088;
}

/* ---------------- contact ---------------- */
.contact-body { display: grid; grid-template-columns: 1fr 360px; gap: 40px; align-items: start; }
.contact-form { background: #e9eef7; padding: clamp(24px, 3vw, 44px); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.field { margin-bottom: 26px; }
.field label {
  display: block; margin-bottom: 10px;
  font-family: var(--ui); font-weight: 700; font-size: 12.5px;
  letter-spacing: 1.2px; color: var(--ink);
}
.field input, .field textarea {
  width: 100%; border: 0; background: #fff; padding: 14px 15px;
  font-family: var(--ui); font-size: 15px; color: var(--ink);
}
.field textarea { min-height: 170px; resize: vertical; }
.field input:focus, .field textarea:focus { outline: 2px solid var(--navy); outline-offset: 0; }
.char-note { font-family: var(--ui); font-size: 12px; color: #7b8088; margin-top: -14px; }
.form-foot { display: flex; justify-content: flex-end; margin-top: 8px; }
.btn-send {
  background: #14181f; color: #fff; border: 0;
  padding: 17px 40px; cursor: pointer;
  font-family: var(--ui); font-weight: 700; font-size: 13.5px; letter-spacing: 1.5px;
}
.btn-send:hover { background: var(--crimson); }
.required-note { margin-top: 22px; font-family: var(--ui); font-size: 12.5px; color: #7b8088; }

.contact-side { background: #fff; border: 1px solid #e3ded7; }
.contact-map { width: 100%; height: 210px; background: #dfe3ea; display: block; object-fit: cover; }
.contact-info { padding: 24px 26px 30px; }
.contact-info h2 { font-family: var(--ui); font-weight: 800; font-size: 21px; color: var(--ink); margin-bottom: 14px; }
.contact-info p { font-family: var(--ui); font-size: 14.5px; line-height: 1.65; color: #3f444d; margin-bottom: 14px; }
.contact-info dt { font-family: var(--ui); font-weight: 800; font-size: 13px; letter-spacing: .6px; color: var(--ink); margin-top: 12px; }
.contact-info dd { font-family: var(--ui); font-size: 14.5px; color: #3f444d; margin: 2px 0 0; }
.contact-info .go {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 22px;
  font-family: var(--ui); font-weight: 700; font-size: 12.5px; letter-spacing: 1.2px; color: var(--navy);
}
.contact-info .go:hover { color: var(--crimson); }

@media (max-width: 1100px) {
  .archive-body, .contact-body { grid-template-columns: 1fr; }
  .archive-rail { position: static; }
}
@media (max-width: 780px) {
  .post-list { grid-template-columns: 1fr; }
  .post { grid-template-columns: 110px 1fr; }
  .post .portrait img { width: 110px; height: 110px; }
  .field-row { grid-template-columns: 1fr; gap: 0; }
}

/* ---------------- front pages grid + lightbox ---------------- */
.covers-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 34px; }
.covers-filters button {
  padding: 10px 18px; background: #eceef2; color: var(--ink); border: 0;
  font-family: var(--ui); font-weight: 700; font-size: 12.5px; letter-spacing: .8px;
  cursor: pointer; transition: background .2s ease, color .2s ease;
}
.covers-filters button:hover { background: #dcdfe6; }
.covers-filters button.active { background: #14181f; color: #fff; }
.covers-date { margin-left: auto; display: flex; align-items: center; gap: 12px; font-family: var(--ui); font-weight: 700; font-size: 14px; color: var(--ink); }
.covers-date button { background: none; padding: 6px; }

.covers-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 34px 26px; }
.cover { display: block; }
.cover img {
  width: 100%; height: auto; display: block;
  border: 1px solid #e0dcd6; background: #fff;
  transition: transform .3s ease, box-shadow .3s ease;
}
.cover:hover img { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(20,25,45,.16); }
.cover figcaption {
  display: flex; align-items: center; gap: 8px; margin-top: 12px;
  font-family: var(--ui); font-weight: 700; font-size: 15px; color: var(--ink);
}
.cover figcaption::before {
  content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--crimson); flex: none;
}

.lightbox {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(12,14,20,.92);
  display: none; align-items: center; justify-content: center; gap: 20px;
  padding: 40px 70px;
}
.lightbox.open { display: flex; }
.lightbox figure { margin: 0; max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.lightbox img { max-width: min(88vw, 900px); max-height: 82vh; object-fit: contain; background: #fff; }
.lightbox figcaption { font-family: var(--ui); font-weight: 700; font-size: 15px; color: #fff; }
.lb-close {
  position: absolute; top: 22px; right: 28px;
  width: 46px; height: 46px; border-radius: 50%;
  background: rgba(255,255,255,.12); color: #fff; border: 0;
  font-size: 30px; line-height: 1; cursor: pointer;
}
.lb-close:hover { background: rgba(255,255,255,.25); }
.lb-nav {
  width: 52px; height: 52px; border-radius: 50%; flex: none;
  background: rgba(255,255,255,.12); color: #fff; border: 0;
  font-size: 30px; line-height: 1; cursor: pointer;
}
.lb-nav:hover { background: rgba(255,255,255,.25); }

@media (max-width: 1000px) { .covers-grid { grid-template-columns: repeat(2, 1fr); } .lightbox { padding: 20px; } .lb-nav { position: absolute; bottom: 24px; } .lb-prev { left: 24px; } .lb-next { right: 24px; } }

/* ---------------- "Όλες οι Ειδήσεις" list ---------------- */
.news-list .nrow {
  display: grid; grid-template-columns: 230px 1fr; gap: 26px;
  padding: 26px 0; border-bottom: 1px solid #dcd8d2;
}
.news-list .nrow:first-child { padding-top: 0; }
.news-list .nthumb img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.news-list .ntop { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.news-list .tag {
  background: #eceef2; color: #3f444d; padding: 5px 11px;
  font-family: var(--ui); font-weight: 700; font-size: 11.5px; letter-spacing: 1px;
}
.news-list .ntime { font-family: var(--ui); font-size: 12.5px; color: #8a8f98; }
.news-list h3 {
  font-family: var(--ui); font-weight: 800;
  font-size: 21px; line-height: 1.3; color: var(--ink); margin-bottom: 10px;
}
.news-list h3 a:hover { color: var(--crimson); }
.news-list .nexc { font-family: var(--ui); font-size: 14.5px; line-height: 1.6; color: #5f6673; }

@media (max-width: 780px) { .news-list .nrow { grid-template-columns: 130px 1fr; gap: 16px; } }

/* ---------------- category archive ---------------- */
.cat-head { display: flex; align-items: center; gap: 18px; margin-bottom: 34px; }
.cat-head .mark { width: 40px; height: 40px; flex: none; }
.cat-head h1 {
  font-family: var(--ui); font-weight: 800;
  font-size: clamp(26px, 3vw, 42px); line-height: 1; color: var(--ink);
}
.cat-head .dot { color: var(--crimson); }
.cat-head .rule { flex: 1; height: 2px; background: var(--navy); }

/* a wider content column; the rail only spans the blocks beside it, so the
   full-width grid underneath is where the sticky run naturally ends */
.cat-body { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 36px; align-items: start; }
.cat-main { min-width: 0; }

/* block 1 — lead with three cards under it */
.cat-lead { display: grid; grid-template-columns: 1fr 1.5fr; gap: 30px; align-items: start; }
.cat-lead .lead-text .meta { font-family: var(--ui); font-size: 12.5px; color: #8a8f98; margin-bottom: 12px; }
.cat-lead h2 {
  font-family: var(--ui); font-weight: 800;
  font-size: clamp(22px, 2.1vw, 33px); line-height: 1.2; color: var(--ink);
}
.cat-lead h2 a:hover { color: var(--crimson); }
.cat-lead .lead-photo img { width: 100%; aspect-ratio: 16 / 11; object-fit: cover; }

.cat-rule { height: 1px; background: #d8d4ce; margin: 30px 0 28px; }

.cat-three { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.cat-six   { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px 30px; }
.cat-grid  { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px 24px; }

/* block 2 — a wide feature beside a narrower one */
.cat-duo { display: grid; grid-template-columns: 1.6fr 1fr; gap: 30px; align-items: start; }
/* Οι δύο στήλες δεν έχουν ίδιο πλάτος, οπότε ίδιος λόγος πλευρών θα έδινε
   πάλι διαφορετικό ύψος και οι δύο τίτλοι δεν θα έπεφταν στην ίδια γραμμή.
   Κοινό ύψος και κόψιμο με object-fit τα φέρνει στο ίδιο μέτρο. */
.cat-duo .big img,
.cat-duo .small img {
  display: block; width: 100%; height: 300px;
  aspect-ratio: auto; object-fit: cover;
}
.cat-duo .big h3 { font-size: 22px; }

/* shared card shape across the blocks */
.catcard img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; margin-bottom: 12px; }
.catcard .meta { font-family: var(--ui); font-size: 12px; color: #8a8f98; margin-bottom: 8px; }
.catcard h3 {
  font-family: var(--ui); font-weight: 700;
  font-size: 16px; line-height: 1.35; color: var(--ink);
}
.catcard h3 a:hover { color: var(--crimson); }
.catcard { padding-bottom: 22px; border-bottom: 1px solid #e2ded8; }

.cat-rail { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 24px; }
.cat-grid.full { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .cat-grid.full { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 1100px) { .cat-body { grid-template-columns: 1fr; } .cat-rail { position: static; } }
@media (max-width: 900px)  { .cat-grid { grid-template-columns: repeat(2, 1fr); } .cat-three, .cat-six { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .cat-lead, .cat-duo { grid-template-columns: 1fr; } .cat-grid, .cat-three, .cat-six { grid-template-columns: 1fr; } }

/* ================= newsletter band (article + homepage) ============ */
/* The band butts straight onto the footer. Two things opened the cream
   strip: main's bottom padding and the footer's own top margin — both are
   dropped when the newsletter closes the page. */
.newsletter { background: var(--navy); padding: 34px 0; margin: 46px 0 0; }
main:has(> .newsletter:last-child) { padding-bottom: 0; }
main:has(> .newsletter:last-child) + footer { margin-top: 0; }
.newsletter .wrap { display: grid; grid-template-columns: 1fr 1px 1.35fr; gap: 44px; align-items: center; }
.nl-brand img { width: 210px; height: auto; filter: brightness(0) invert(1); margin-bottom: 14px; }
.nl-brand p { font-family: var(--ui); font-size: 14px; line-height: 1.55; color: rgba(255,255,255,.85); }
.nl-divider { background: rgba(255,255,255,.3); align-self: stretch; }
.nl-form .row { display: flex; gap: 0; }
.nl-form input[type=email] {
  flex: 1; background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,.5);
  padding: 14px 4px; color: #fff; font-family: var(--ui); font-size: 15px;
}
.nl-form input[type=email]::placeholder { color: rgba(255,255,255,.55); }
.nl-form input[type=email]:focus { outline: 0; border-bottom-color: #fff; }
.nl-form button {
  background: var(--crimson); color: #fff; border: 0; padding: 14px 34px; cursor: pointer;
  font-family: var(--ui); font-weight: 700; font-size: 14px;
}
.nl-form button:hover { background: #a3172a; }
.nl-consent { display: flex; align-items: flex-start; gap: 9px; margin-top: 18px; font-family: var(--ui); font-size: 12.5px; color: rgba(255,255,255,.85); }
.nl-consent a { color: #fff; text-decoration: underline; }

/* ===================== single article ===================== */
.article-main { padding-block: 26px 0; }
.article-head { max-width: 820px; margin: 0 auto; }
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 20px; }
.crumbs .cat {
  background: #eceef2; color: #3f444d; padding: 6px 12px;
  font-family: var(--ui); font-weight: 700; font-size: 11.5px; letter-spacing: 1px;
}
.crumbs .tag { font-family: var(--ui); font-weight: 700; font-size: 13px; color: #5a6070; }
.crumbs .tag:hover { color: var(--crimson); }

.article-title {
  font-family: var(--ui); font-weight: 800;
  font-size: clamp(28px, 3.2vw, 44px); line-height: 1.16; color: var(--ink);
  margin-bottom: 18px;
  text-align: center;
}
.article-standfirst {
  font-family: var(--ui); font-size: clamp(16px, 1.3vw, 19px); line-height: 1.55;
  color: #5f6673; margin-bottom: 30px;
}
.article-hero { margin: 0 0 8px; }
.article-hero img { width: 100%; height: auto; display: block; }
.article-hero figcaption {
  font-family: var(--ui); font-size: 12.5px; color: #8a8f98;
  padding: 10px 2px 0;
}

/* content column with its own rail */
.article-body { display: grid; grid-template-columns: 1fr 300px; gap: 46px; align-items: start; margin-top: 34px; }
.article-inner { display: grid; grid-template-columns: 76px 1fr; gap: 26px; align-items: start; min-width: 0; }

/* the date-and-share strip */
.article-aside { position: sticky; top: 120px; text-align: center; }
.article-aside .d-day { font-family: var(--serif); font-weight: 700; font-size: 27px; color: var(--ink); line-height: 1; }
.article-aside .d-rest { font-family: var(--serif); font-size: 13px; color: #6f7480; line-height: 1.5; margin-top: 4px; }
.article-aside .shares { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 22px; }
.article-aside .shares a {
  width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--navy); color: var(--navy);
  display: grid; place-items: center;
}
.article-aside .shares a svg { width: 16px; height: 16px; fill: currentColor; }
.article-aside .shares a:hover { background: var(--navy); color: #fff; }

.article-content p {
  font-family: var(--ui); font-size: 17px; line-height: 1.78; color: #2f343d; margin-bottom: 22px;
}
.article-content h2 { font-family: var(--ui); font-weight: 800; font-size: 23px; color: var(--ink); margin: 34px 0 14px; }
.article-content blockquote {
  margin: 26px 0; padding: 18px 24px; background: #f3f0ec; border-left: 4px solid var(--navy);
  font-family: var(--ui); font-size: 16px; line-height: 1.7; color: #3f444d;
}
.article-content figure { margin: 26px 0; }
.article-content figure img { width: 100%; height: auto; }
.article-content figcaption { font-family: var(--ui); font-size: 12.5px; color: #8a8f98; padding-top: 8px; }

.article-rail { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 24px; }

/* tags */
.tag-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 40px 0 0; }
.tag-row .label { font-family: var(--ui); font-weight: 800; font-size: 12.5px; letter-spacing: 1.2px; color: var(--ink); }
.tag-row a {
  background: #7d7a74; color: #fff; padding: 9px 15px;
  font-family: var(--ui); font-weight: 700; font-size: 12px; letter-spacing: .8px;
}
.tag-row a:hover { background: var(--navy); }

/* "see also" four-up */
.also-head { display: flex; align-items: center; gap: 22px; margin: 48px 0 26px; }
.also-head h2 { font-family: var(--ui); font-weight: 800; font-size: clamp(21px, 2vw, 30px); color: var(--ink); }
.also-head .dot { color: var(--crimson); }
.also-head .rule { flex: 1; height: 2px; background: var(--navy); }
.also-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; }

@media (max-width: 1100px) {
  .article-body { grid-template-columns: 1fr; }
  .article-rail { position: static; }
  .newsletter .wrap { grid-template-columns: 1fr; gap: 24px; }
  .nl-divider { display: none; }
}
@media (max-width: 780px) {
  .article-inner { grid-template-columns: 1fr; }
  .article-aside { position: static; display: flex; align-items: center; gap: 20px; text-align: left; margin-bottom: 20px; }
  .article-aside .shares { flex-direction: row; margin-top: 0; }
  .also-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ========================= search archive ========================= */
.search-wrap { max-width: 1020px; margin: 0 auto; }
.search-title { font-family: var(--ui); font-weight: 800; font-size: clamp(26px, 3vw, 40px); color: var(--ink); margin-bottom: 26px; }
.search-box { display: flex; align-items: center; background: #f3f5f8; padding: 6px 8px 6px 18px; margin-bottom: 30px; }
.search-box input {
  flex: 1; border: 0; background: transparent; padding: 14px 0;
  font-family: var(--ui); font-size: 16px; color: var(--ink);
}
.search-box input:focus { outline: 0; }
.search-box button { background: none; border: 0; padding: 10px; cursor: pointer; color: #5a6070; }
.search-box svg { width: 20px; height: 20px; fill: currentColor; }

.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chips.collapsed .chip:nth-child(n+13) { display: none; }
.chip {
  background: #e6eaf0; color: #2f343d; border: 0; padding: 9px 15px; cursor: pointer;
  font-family: var(--ui); font-weight: 700; font-size: 12px; letter-spacing: .7px;
  transition: background .2s ease, color .2s ease;
}
.chip:hover { background: #d6dbe4; }
.chip.active { background: #14181f; color: #fff; }
.chips-toggle {
  display: flex; justify-content: flex-end; margin: 16px 0 0;
}
.chips-toggle button {
  background: none; border: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--ui); font-weight: 700; font-size: 12.5px; letter-spacing: 1px; color: var(--ink);
}
.chips-toggle svg { width: 14px; height: 14px; fill: currentColor; transition: transform .2s ease; }
.chips-toggle.open svg { transform: rotate(180deg); }

.results-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 40px 0 24px; }
.results-head h2 { font-family: var(--ui); font-weight: 800; font-size: clamp(20px, 2.2vw, 30px); color: var(--ink); }
.sort-select {
  border: 1px solid #d7dbe2; background: #fff; padding: 11px 14px; cursor: pointer;
  font-family: var(--ui); font-size: 14px; color: var(--ink);
}

.result { display: grid; grid-template-columns: 230px 1fr; gap: 26px; padding: 24px 0; border-bottom: 1px solid #dcd8d2; }
.result img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.result .rtop { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; }
.result .rcat { background: #eceef2; color: #3f444d; padding: 5px 11px; font-family: var(--ui); font-weight: 700; font-size: 11px; letter-spacing: .9px; }
.result .rtime { font-family: var(--ui); font-size: 12.5px; color: #8a8f98; }
.result h3 { font-family: var(--ui); font-weight: 800; font-size: 20px; line-height: 1.3; color: var(--ink); }
.result h3 a:hover { color: var(--crimson); }
.result mark { background: #ffe9a8; color: inherit; padding: 0 2px; }
.search-empty { padding: 40px 0; font-family: var(--ui); font-size: 16px; color: #6f7480; }

@media (max-width: 700px) { .result { grid-template-columns: 120px 1fr; gap: 16px; } }

/* category badge on archive entries */
.post-cat {
  display: inline-block; margin-bottom: 12px;
  background: #eceef2; color: #3f444d; padding: 5px 11px;
  font-family: var(--ui); font-weight: 700; font-size: 11px; letter-spacing: .9px;
}
.post-cat:hover { background: var(--navy); color: #fff; }

/* Κάθε κάρτα φέρει τη δική της γραμμή, οπότε ο διαχωριστής που ακολουθεί μια
   ομάδα καρτών διπλώνει τη γραμμή. Κρατιέται μόνο αυτός κάτω από το κύριο
   άρθρο, όπου δεν υπάρχει κάρτα από πάνω. */
.cat-three + .cat-rule,
.cat-six + .cat-rule,
.cat-duo + .cat-rule { display: none; }

/* ---------------- φόρτωση με κύλιση ----------------
   Τα νέα άρθρα εμφανίζονται με μια σύντομη ανάδυση, και όσο φορτώνουν
   δείχνει ένας διακριτικός δείκτης αντί για σκέτο κείμενο. */
@keyframes tharros-rise {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}
.is-fresh {
  animation: tharros-rise .45s cubic-bezier(.22,.61,.36,1) both;
}

.archive-status {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 46px;
  text-align: center; padding: 26px 0 0;
  font-family: var(--ui); font-size: 13px; letter-spacing: .6px; color: #8a8f98;
}
.archive-status::before {
  content: "";
  width: 18px; height: 18px; flex: none;
  border: 2px solid rgba(15,18,59,.18);
  border-top-color: var(--navy);
  border-radius: 50%;
  animation: tharros-spin .7s linear infinite;
}
.archive-status.done::before,
.archive-status:empty::before { display: none; }
.archive-status.done { color: #b3aea7; letter-spacing: .8px; }
@keyframes tharros-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .is-fresh { animation: none; }
  .archive-status::before { animation-duration: 2.4s; }
}

/* ---------------- αρχείο εκδόσεων ----------------
   Τα φίλτρα είναι σύνδεσμοι προς τους υποόρους, όχι κουμπιά. */
.covers-filters .chip { text-decoration: none; }
.covers-filters .chip .n { opacity: .6; font-weight: 400; }
.cover-blank {
  display: grid; place-items: center;
  aspect-ratio: 3 / 4; background: #f0ece6; color: #8a8f98;
  font-family: var(--ui); font-size: 13px;
}
.pagination, .nav-links {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px;
  margin-top: 40px;
}
.nav-links .page-numbers {
  min-width: 40px; height: 40px; padding: 0 12px;
  display: inline-grid; place-items: center;
  background: #eceef2; color: var(--ink);
  font-family: var(--ui); font-weight: 700; font-size: 14px;
}
.nav-links .page-numbers.current { background: #14181f; color: #fff; }
.nav-links .page-numbers:hover { background: #dcdfe6; }

/* ---------------- σελίδα έκδοσης ---------------- */
.edition-body { display: grid; grid-template-columns: 1.2fr 1fr; gap: 44px; align-items: start; }
.edition-cover .cover { margin: 0; background: #fff; padding: 14px; box-shadow: 0 4px 18px rgba(20,25,45,.12); }
.edition-cover img { width: 100%; height: auto; display: block; }
.edition-date { font-family: var(--ui); font-weight: 700; font-size: 15px; color: var(--rust); margin-bottom: 16px; }
.edition-text p { font-family: var(--ui); font-size: 15px; line-height: 1.7; color: #3f444d; }
.edition-sub { font-family: var(--ui); font-weight: 800; font-size: 15px; letter-spacing: .8px; color: var(--ink); margin: 26px 0 12px; }
.edition-files { list-style: none; margin: 0 0 26px; padding: 0; }
.edition-files li { border-bottom: 1px solid #e2ded8; }
.edition-files a {
  display: block; padding: 12px 0;
  font-family: var(--ui); font-size: 14.5px; color: var(--navy);
}
.edition-files a:hover { color: var(--crimson); }
.edition-single .shares { flex-direction: row; gap: 10px; }
.edition-single .shares a { width: 38px; height: 38px; border: 1.5px solid var(--navy); border-radius: 50%; display: grid; place-items: center; color: var(--navy); }
.edition-single .shares a svg { width: 16px; height: 16px; fill: currentColor; }
.edition-single .shares a:hover { background: var(--navy); color: #fff; }

/* Οι σελίδες WooCommerce κρατούν το χρώμα του ιστότοπου, όχι λευκό. */
body.woocommerce, body.woocommerce-page,
body.woocommerce main, body.woocommerce-page main { background: var(--cream); }

@media (max-width: 900px) { .edition-body { grid-template-columns: 1fr; gap: 26px; } }

/* ---------------- μήνυμα εγγραφής ----------------
   Εμφανίζεται πάνω από τη σελίδα μετά την υποβολή και κλείνει με το κουμπί,
   με κλικ έξω ή με Escape. */
.nl-modal {
  position: fixed; inset: 0; z-index: 220;
  display: none; align-items: center; justify-content: center;
  padding: 20px;
  background: rgba(12,14,20,.55);
  backdrop-filter: blur(2px);
}
.nl-modal.open { display: flex; animation: nl-fade .2s ease both; }
@keyframes nl-fade { from { opacity: 0; } to { opacity: 1; } }

.nl-card {
  width: min(420px, 100%);
  background: #fff;
  border-radius: 12px;
  padding: 34px 30px 28px;
  text-align: center;
  box-shadow: 0 24px 60px rgba(12,14,20,.35);
  animation: nl-pop .28s cubic-bezier(.22,.61,.36,1) both;
}
@keyframes nl-pop { from { opacity: 0; transform: translateY(16px) scale(.97); } to { opacity: 1; transform: none; } }

.nl-card h3 {
  font-family: var(--ui); font-weight: 800; font-size: 21px; color: var(--ink);
  margin: 0 0 10px;
}
.nl-card p {
  font-family: var(--ui); font-size: 15px; line-height: 1.6; color: #5f6673;
  margin: 0 0 24px;
}
.nl-ok {
  background: var(--navy); color: #fff; border: 0; cursor: pointer;
  padding: 13px 34px; border-radius: 8px;
  font-family: var(--ui); font-weight: 700; font-size: 14px; letter-spacing: 1px;
}
.nl-ok:hover { background: var(--crimson); }

/* Το εικονίδιο λέει την έκβαση πριν διαβαστεί το κείμενο. */
.nl-icon {
  display: grid; place-items: center;
  width: 62px; height: 62px; margin: 0 auto 18px;
  border-radius: 50%;
}
.nl-icon::before { font-size: 30px; line-height: 1; }
.state-subscribed .nl-icon { background: #e6f4ec; color: #1f8a54; }
.state-subscribed .nl-icon::before { content: "✓"; }
.state-exists .nl-icon { background: #eaf1fb; color: var(--navy); }
.state-exists .nl-icon::before { content: "★"; }
.state-invalid .nl-icon,
.state-error .nl-icon { background: #fdecec; color: var(--crimson); }
.state-invalid .nl-icon::before,
.state-error .nl-icon::before { content: "!"; font-weight: 700; }

/* ---------------- φίλτρα αρχείου εκδόσεων ---------------- */
.edition-filters {
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: 18px;
  margin-bottom: 30px;
}
.ef-field { display: flex; flex-direction: column; gap: 6px; }
.ef-field span {
  font-family: var(--ui); font-weight: 700; font-size: 11.5px;
  letter-spacing: 1.2px; color: #7b8088; text-transform: uppercase;
}
.ef-field select {
  min-width: 168px;
  border: 1px solid #d7dbe2; background: #fff;
  padding: 11px 14px; cursor: pointer;
  font-family: var(--ui); font-size: 15px; color: var(--ink);
}
.ef-field select:disabled { background: #f2f0ec; color: #a9a49d; cursor: default; }
.ef-status { font-family: var(--ui); font-size: 13px; color: #8a8f98; margin: 0 0 4px; }

.covers-grid.is-loading { opacity: .45; transition: opacity .2s ease; }

/* ---------------- ανάγνωση εντύπου ----------------
   Καταλαμβάνει την οθόνη: ένα φύλλο εφημερίδας θέλει χώρο για να διαβαστεί. */
.btn-read {
  display: inline-block; margin-bottom: 24px;
  background: var(--navy); color: #fff; border: 0; cursor: pointer;
  padding: 15px 32px; border-radius: 8px;
  font-family: var(--ui); font-weight: 700; font-size: 14px; letter-spacing: 1px;
}
.btn-read:hover { background: var(--crimson); }

.flipbook {
  position: fixed; inset: 0; z-index: 240;
  display: none; flex-direction: column;
  background: #14181f;
}
.flipbook.open { display: flex; }

.fb-bar {
  display: flex; align-items: center; gap: 16px;
  padding: 12px 18px; background: #0e1218; color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.fb-title {
  flex: 1; min-width: 0;
  font-family: var(--ui); font-weight: 700; font-size: 15px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fb-tools { display: flex; align-items: center; gap: 10px; }
.fb-tools button, .fb-download {
  background: rgba(255,255,255,.12); color: #fff; border: 0; cursor: pointer;
  min-width: 36px; height: 36px; padding: 0 12px; border-radius: 6px;
  display: inline-grid; place-items: center;
  font-family: var(--ui); font-weight: 700; font-size: 15px;
}
.fb-tools button:hover, .fb-download:hover { background: rgba(255,255,255,.24); }
.fb-zoom-level {
  font-family: var(--ui); font-size: 12.5px; color: rgba(255,255,255,.7);
  min-width: 46px; text-align: center;
}

.fb-stage {
  flex: 1; min-height: 0;
  display: grid; place-items: center;
  overflow: auto; padding: 12px;
}
.fb-canvas { background: #fff; box-shadow: 0 10px 40px rgba(0,0,0,.5); max-width: none; }
.fb-loading {
  position: absolute; text-align: center;
  color: rgba(255,255,255,.8); font-family: var(--ui); font-size: 14px;
  width: min(320px, 80vw);
}
.fb-loading-text { margin: 0 0 14px; }
.fb-bar-track {
  height: 4px; border-radius: 2px; overflow: hidden;
  background: rgba(255,255,255,.16);
}
.fb-bar-fill {
  display: block; height: 100%; width: 0;
  background: var(--crimson);
  transition: width .25s ease;
}
.fb-loading-size {
  margin: 10px 0 0; font-size: 12.5px; color: rgba(255,255,255,.6);
  font-variant-numeric: tabular-nums;
}

.fb-foot {
  display: flex; align-items: center; justify-content: center; gap: 20px;
  padding: 12px; background: #0e1218; border-top: 1px solid rgba(255,255,255,.1);
}
.fb-foot button {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.12); color: #fff; border: 0; cursor: pointer;
  font-size: 22px; line-height: 1;
}
.fb-foot button:hover:not(:disabled) { background: rgba(255,255,255,.26); }
.fb-foot button:disabled { opacity: .3; cursor: default; }
.fb-count { font-family: var(--ui); font-size: 14px; color: rgba(255,255,255,.85); min-width: 84px; text-align: center; }

@media (max-width: 780px) {
  .fb-bar { flex-wrap: wrap; gap: 10px; padding: 10px 12px; }
  .fb-title { flex-basis: 100%; font-size: 13px; }
  .fb-download { display: none; }
}

/* ---------------- θέσεις διαφήμισης στο άρθρο ---------------- */
.ad-pair {
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap);
  margin: 40px 0 10px;
}
.ad-pair .ad { min-height: 250px; }
.ad-incontent { margin: 28px 0; }

/* Το κύριο άρθρο της κατηγορίας δείχνει και την αρχή του κειμένου: η στήλη
   του τίτλου έμενε αλλιώς μισή άδεια δίπλα στη φωτογραφία. */
.cat-lead .lead-excerpt {
  margin: 16px 0 0;
  font-family: var(--ui); font-size: 15px; line-height: 1.65; color: #5f6673;
}

/* ------------------ Η ροή ειδήσεων μέσα στις μπάρες -----------------
   Η ίδια στήλη με την αρχική, σε μέγεθος πλαϊνής μπάρας. Η λίστα παίρνει
   ρητό ύψος: μέσα στη μπάρα δεν υπάρχει γονιός με μέτρο, οπότε χωρίς αυτό
   θα άνοιγε όσο η ύλη της αντί να κυλά. */
.rail-ticker { display: flex; flex-direction: column; }
.rail-ticker .ticker-head { padding-bottom: 10px; }
.rail-ticker .ticker-head h2 { font-size: 19px; }
.rail-ticker .mark { width: 25px; height: 25px; }
.rail-ticker .ticker-list { flex: 0 1 auto; max-height: 300px; }
.rail-ticker .ticker-item { padding: 9px 0; grid-template-columns: 58px 1fr; gap: 10px; }
.rail-ticker .ticker-time { font-size: 12px; }
.rail-ticker .ticker-title { font-size: 13px; }
.rail-ticker .btn-all {
  margin-top: 14px; padding: 14px 12px;
  font-size: 13px; letter-spacing: 1.6px; border-radius: 12px;
}

/* Το κουμπί που παίρνει τη σκυτάλη από την αυτόματη κύλιση */
.archive-more {
  display: block; margin: 30px auto 10px;
  background: var(--navy); color: #fff;
  font-family: var(--serif); font-weight: 700; font-size: 14px;
  letter-spacing: 2px; text-transform: uppercase;
  padding: 16px 34px; border-radius: 14px;
  transition: background .2s ease;
}
.archive-more:hover { background: var(--crimson); }

/* Οι μπάρες είναι στοιχεία πλέγματος: χωρίς αυτό τεντώνονται σε όλο το ύψος
   της γραμμής και το position: sticky δεν έχει πού να πιαστεί. */
.archive-rail, .cat-rail, .article-rail { align-self: start; }

/* ===================== Επικοινωνία =====================
   Φόρμα αριστερά, κάρτες στοιχείων δεξιά, χάρτης από κάτω. */
.contact-page { padding-bottom: 70px; }
.contact-head { margin-bottom: 26px; }
.contact-head .page-lead {
  max-width: 700px; margin-top: 14px;
  font-family: var(--ui); font-size: 17px; line-height: 1.6; color: #5f6673;
}
.contact-sent {
  background: #e7f2e9; border-left: 4px solid #2f7d43;
  padding: 14px 18px; margin-bottom: 26px;
  font-family: var(--ui); font-size: 15px; color: #1f4d2a;
}

.contact-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: start; }

.form-block { background: #fff; border: 1px solid #e3ded7; border-radius: 14px; padding: clamp(24px, 2.6vw, 38px); }
.form-block h2 {
  font-family: var(--ui); font-weight: 800; font-size: 22px; color: var(--ink);
  margin-bottom: 24px;
}
.contact-form .hp { position: absolute; left: -9999px; }
.contact-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.contact-form .field { margin-bottom: 22px; }
.contact-form label {
  display: block; margin-bottom: 8px;
  font-family: var(--ui); font-weight: 700; font-size: 13px; color: var(--ink);
}
.contact-form .req { color: var(--crimson); }
.contact-form input, .contact-form textarea {
  width: 100%; border: 1px solid #d9d4cd; border-radius: 10px; background: #fbfaf8;
  padding: 13px 14px;
  font-family: var(--ui); font-size: 15px; color: var(--ink);
}
.contact-form textarea { min-height: 160px; resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus {
  outline: none; border-color: var(--navy); background: #fff;
}
.contact-form .btn-send {
  background: var(--navy); color: #fff; border: 0; border-radius: 12px;
  padding: 17px 34px; cursor: pointer;
  font-family: var(--ui); font-weight: 700; font-size: 14.5px; letter-spacing: .6px;
  transition: background .2s ease;
}
.contact-form .btn-send:hover { background: var(--crimson); }
.contact-form .required-note {
  margin-top: 16px; font-family: var(--ui); font-size: 12.5px; color: #7b8088;
}

.contact-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-card {
  background: #fff; border: 1px solid #e3ded7; border-radius: 14px;
  padding: 22px 20px 20px;
}
.cc-ico {
  width: 42px; height: 42px; border-radius: 11px; margin-bottom: 14px;
  display: grid; place-items: center;
  background: #eceef2; color: var(--navy);
}
.cc-ico svg { width: 20px; height: 20px; fill: currentColor; }
.contact-card h3 {
  font-family: var(--ui); font-weight: 700; font-size: 12px;
  letter-spacing: 1.6px; text-transform: uppercase; color: #8a8f98;
  margin-bottom: 8px;
}
.contact-card p {
  font-family: var(--ui); font-weight: 700; font-size: 15px; line-height: 1.5;
  color: var(--ink); margin: 0;
}
.contact-card a { color: inherit; }
.contact-card a:hover { color: var(--crimson); }
.cc-link {
  display: inline-block; margin-top: 12px;
  font-family: var(--ui); font-weight: 700; font-size: 12.5px;
  letter-spacing: .8px; color: var(--navy);
}

.contact-map {
  margin-top: 40px; border-radius: 14px; overflow: hidden;
  border: 1px solid #e3ded7;
}
.contact-map iframe { display: block; width: 100%; height: 840px; border: 0; }

/* Στις σελίδες κειμένου το κείμενο ζει σε στήλη 620px στο κέντρο, ενώ ο
   τίτλος έπιανε όλο το πλάτος και έμενε ξεκρέμαστος αριστερά. */
.page-main:has(.legal-box) .page-head {
  max-width: 620px; margin-inline: auto; text-align: center;
}

/* Το άρθρο χωρίς πλαϊνή μπάρα: το κείμενο παίρνει όλο το πλάτος της στήλης. */
.article-body.no-rail { grid-template-columns: 1fr; }

/* ---------------- Υποκατηγορίες στην κορυφή του αρχείου ---------------- */
.subcats {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin: -18px 0 34px;
}
.subcat {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 14px;
  background: #fff; border: 1px solid #ddd8d2; border-radius: 999px;
  font-family: var(--ui); font-weight: 700; font-size: 13px;
  color: var(--ink);
  transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.subcat .n {
  font-weight: 400; font-size: 11.5px; color: #9a948c;
  padding-left: 7px; border-left: 1px solid #e6e1da;
}
.subcat:hover { background: var(--navy); border-color: var(--navy); color: #fff; }
.subcat:hover .n { color: rgba(255,255,255,.7); border-left-color: rgba(255,255,255,.28); }
