/* ==========================================================================
   Πρότυπο «Βιβλιοθήκη» — χρώματα, γραμματοσειρές, κεφαλίδα, ὑποσέλιδο
   ========================================================================== */
:root {
  --vv-bg: #f6f1e6; --vv-bg-2: #eee5d3; --vv-surface: #fffdf7;
  --vv-ink: #1f1a13; --vv-ink-2: #4f463a; --vv-muted: #7c705f;
  --vv-line: rgba(70, 50, 20, .12); --vv-line-strong: rgba(70, 50, 20, .24);
  --vv-gold: #9c7630; --vv-gold-2: #d4b06a; --vv-red: #7a1420;
  --vv-shelf-top: #b08657; --vv-shelf: #8a6236; --vv-shelf-dark: #5c3d1d;
  --vv-radius: 16px; --vv-shadow: 0 18px 40px -22px rgba(50, 30, 10, .55);
  --vv-serif: 'GFS Didot', 'Noto Serif', Georgia, serif;
  --vv-text: 'Noto Serif', Georgia, 'Times New Roman', serif;
  --vv-sans: 'Noto Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --vv-header-h: 72px;
  color-scheme: light;
}
:root[data-theme=dark] {
  --vv-bg: #0e1016; --vv-bg-2: #141824; --vv-surface: #181c28;
  --vv-ink: #efe7d6; --vv-ink-2: #cfc4b0; --vv-muted: #9d927f;
  --vv-line: rgba(239, 231, 214, .1); --vv-line-strong: rgba(239, 231, 214, .2);
  --vv-gold: #d4b06a; --vv-red: #d9707c;
  --vv-shelf-top: #4a3a2a; --vv-shelf: #33271b; --vv-shelf-dark: #1d150d;
  --vv-shadow: 0 20px 44px -22px rgba(0, 0, 0, .9);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--vv-header-h) + 20px); }
body {
  margin: 0; min-height: 100vh; display: flex; flex-direction: column; background: var(--vv-bg); color: var(--vv-ink);
  font: 400 1rem/1.6 var(--vv-sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
body::before { /* λεπτὴ ὑφὴ χαρτιοῦ */
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .5;
  background: radial-gradient(1200px 800px at 100% 0%, color-mix(in srgb, var(--vv-gold-2) 10%, transparent), transparent 60%),
              radial-gradient(900px 700px at 0% 100%, color-mix(in srgb, var(--vv-red) 6%, transparent), transparent 60%);
}
img { max-width: 100%; height: auto; }
a { color: var(--vv-red); }
:focus-visible { outline: 3px solid var(--vv-gold-2); outline-offset: 3px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.vv-skip { position: absolute; left: 12px; top: -60px; z-index: 2000; padding: 10px 16px; background: var(--vv-ink); color: var(--vv-bg); border-radius: 8px; }
.vv-skip:focus { top: 12px; }
main { flex: 1; }

/* ---------------------------------------------------------------- κεφαλίδα */
.vv-header {
  position: sticky; top: 0; z-index: 100; height: var(--vv-header-h);
  background: color-mix(in srgb, var(--vv-bg) 82%, transparent); backdrop-filter: blur(14px) saturate(1.3);
  border-bottom: 1px solid var(--vv-line); transition: background .3s, border-color .3s, color .3s;
}
.vv-header__in { width: min(1240px, 100% - 32px); height: 100%; margin-inline: auto; display: flex; align-items: center; gap: 18px; }
.vv-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; min-width: 0; margin-right: auto; }
.vv-brand img { width: 40px; height: auto; flex: none; }
.vv-brand__txt { display: grid; line-height: 1.1; min-width: 0; }
.vv-brand__txt b { font: 400 1.32rem var(--vv-serif); letter-spacing: .01em; }
.vv-brand__txt small { font: 600 .62rem var(--vv-sans); letter-spacing: .13em; text-transform: uppercase; color: var(--vv-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vv-nav { display: flex; gap: 4px; }
.vv-nav a {
  position: relative; padding: 8px 14px; border-radius: 999px; text-decoration: none; color: var(--vv-ink-2);
  font: 600 .9rem var(--vv-sans); transition: color .2s, background .2s;
}
.vv-nav a:hover { color: var(--vv-ink); background: color-mix(in srgb, var(--vv-gold-2) 16%, transparent); }
.vv-nav a[aria-current=page] { color: var(--vv-ink); }
.vv-nav a[aria-current=page]::after { content: ""; position: absolute; left: 50%; bottom: 2px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: var(--vv-gold-2); }
.vv-hbtn {
  display: inline-flex; align-items: center; gap: 8px; height: 40px; min-width: 40px; padding: 0 10px; border-radius: 999px;
  border: 1px solid var(--vv-line-strong); background: transparent; color: inherit; cursor: pointer; font: 500 .85rem var(--vv-sans);
}
.vv-hbtn:hover { border-color: var(--vv-gold-2); }
.vv-hbtn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.vv-hbtn kbd { font: 600 .7rem var(--vv-sans); padding: 1px 6px; border-radius: 5px; border: 1px solid var(--vv-line-strong); color: var(--vv-muted); }
.vv-hbtn--search { padding: 0 8px 0 12px; }
.vv-burger { display: none; }

/* πάνω ἀπὸ τὸ σκοτεινὸ προσκήνιο τῆς ἀρχικῆς */
.vv-home-page .vv-header:not(.is-scrolled) { background: transparent; border-color: transparent; color: #efe6d2; backdrop-filter: none; }
.vv-home-page .vv-header:not(.is-scrolled) .vv-nav a { color: #d7ccb6; }
.vv-home-page .vv-header:not(.is-scrolled) .vv-nav a:hover { color: #fff; background: rgba(255,255,255,.08); }
.vv-home-page .vv-header:not(.is-scrolled) .vv-brand__txt small { color: #a99d86; }
.vv-home-page .vv-header:not(.is-scrolled) .vv-hbtn { border-color: rgba(212,176,106,.4); }
.vv-home-page .vv-header:not(.is-scrolled) .vv-hbtn kbd { color: #a99d86; border-color: rgba(212,176,106,.3); }
.vv-logo-dark { display: none; }
.vv-home-page .vv-header:not(.is-scrolled) .vv-logo-light, :root[data-theme=dark] .vv-logo-light { display: none; }
.vv-home-page .vv-header:not(.is-scrolled) .vv-logo-dark, :root[data-theme=dark] .vv-logo-dark { display: block; }

@media (max-width: 860px) {
  :root { --vv-header-h: 62px; }
  .vv-brand img { width: 34px; }
  .vv-brand__txt b { font-size: 1.15rem; }
  .vv-brand__txt small { font-size: .56rem; max-width: 46vw; }
  .vv-hbtn--search span, .vv-hbtn--search kbd { display: none; }
  .vv-burger { display: inline-flex; }
  .vv-nav {
    position: fixed; inset: var(--vv-header-h) 0 auto; flex-direction: column; gap: 2px; padding: 12px 16px 20px;
    background: var(--vv-bg); color: var(--vv-ink); border-bottom: 1px solid var(--vv-line); box-shadow: var(--vv-shadow);
    transform: translateY(-110%); opacity: 0; pointer-events: none; transition: transform .3s ease, opacity .3s;
  }
  .vv-nav a, .vv-home-page .vv-header:not(.is-scrolled) .vv-nav a { color: var(--vv-ink); font-size: 1.05rem; padding: 14px; }
  .vv-header.is-menu .vv-nav { transform: none; opacity: 1; pointer-events: auto; }
}

/* ---------------------------------------------------------------- παλέτα ἀναζητήσεως */
.vv-palette {
  position: fixed; inset: 0; z-index: 900; display: grid; align-items: start; justify-items: center; padding: min(12vh, 110px) 16px 16px;
  background: rgba(8, 9, 14, .55); backdrop-filter: blur(6px); opacity: 0; transition: opacity .2s;
}
.vv-palette.is-open { opacity: 1; }
.vv-palette[hidden] { display: none; }   /* ἀλλιῶς τὸ display: grid τὴν κρατᾷ ἀόρατη πάνω ἀπὸ ὅλη τὴ σελίδα καὶ τρώει τὰ κλίκ */
.vv-palette__box {
  width: min(680px, 100%); background: var(--vv-surface); border-radius: 20px; border: 1px solid var(--vv-line);
  box-shadow: 0 40px 100px -20px rgba(0,0,0,.6); overflow: hidden; transform: translateY(-10px) scale(.98); transition: transform .25s cubic-bezier(.2,.8,.2,1);
}
.vv-palette.is-open .vv-palette__box { transform: none; }
.vv-palette form { display: flex; align-items: center; gap: 10px; padding: 0 16px; border-bottom: 1px solid var(--vv-line); }
.vv-palette form svg { width: 22px; height: 22px; flex: none; fill: none; stroke: var(--vv-gold); stroke-width: 2; stroke-linecap: round; }
.vv-palette input { flex: 1; height: 64px; border: 0; outline: 0; background: transparent; color: var(--vv-ink); font: 400 1.25rem var(--vv-text); min-width: 0; }
.vv-palette__close { border: 1px solid var(--vv-line-strong); background: none; color: var(--vv-muted); border-radius: 6px; padding: 2px 8px; font: 600 .72rem var(--vv-sans); cursor: pointer; }
.vv-palette .vv-suggest { position: static; box-shadow: none; border: 0; border-radius: 0; max-height: 60vh; background: transparent; }
.vv-palette .vv-suggest:empty::before { content: "Γράψτε γιὰ νὰ ψάξετε σὲ τίτλους καὶ μέσα σὲ ὅλες τὶς σελίδες."; display: block; padding: 22px; text-align: center; color: var(--vv-muted); font: 400 .95rem var(--vv-text); }

/* ---------------------------------------------------------------- μήνυμα */
.vv-toast {
  position: fixed; left: 50%; bottom: 26px; z-index: 1500; transform: translate(-50%, 20px); opacity: 0; pointer-events: none;
  padding: 12px 20px; border-radius: 999px; background: var(--vv-ink); color: var(--vv-bg); font: 500 .92rem var(--vv-sans);
  box-shadow: 0 16px 40px -10px rgba(0,0,0,.5); transition: .3s;
}
.vv-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* ---------------------------------------------------------------- ὑποσέλιδο */
.vv-footer { margin-top: 40px; background: #0d1019; color: #cfc4b0; position: relative; overflow: hidden; }
.vv-footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 1px; background: linear-gradient(90deg, transparent, #d4b06a, transparent); }
.vv-footer__in { width: min(1240px, 100% - 32px); margin-inline: auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; padding: 60px 0 40px; }
.vv-footer h2 { font: 600 .74rem var(--vv-sans); letter-spacing: .16em; text-transform: uppercase; color: #d4b06a; margin: 0 0 14px; }
.vv-footer p, .vv-footer li { font: 400 .95rem/1.7 var(--vv-text); margin: 0; }
.vv-footer ul { list-style: none; margin: 0; padding: 0; }
.vv-footer a { color: #efe6d2; text-decoration: none; }
.vv-footer a:hover { color: #d4b06a; }
.vv-footer__brand { display: flex; gap: 16px; align-items: flex-start; }
.vv-footer__brand img { width: 64px; flex: none; }
.vv-footer__brand b { display: block; font: 400 1.5rem/1.15 var(--vv-serif); color: #f5ecd8; margin-bottom: 6px; }
.vv-footer__bottom { border-top: 1px solid rgba(255,255,255,.08); }
.vv-footer__bottom div { width: min(1240px, 100% - 32px); margin-inline: auto; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding: 18px 0 22px; font: 500 .8rem var(--vv-sans); color: #8f8573; }
.vv-footer__bottom a { color: #b7ac98; }
.vv-credit { opacity: .75; font-weight: 400; letter-spacing: .02em; }
.vv-credit a { font-weight: 600; }
.vv-credit:hover, .vv-credit:focus-within { opacity: 1; }
@media (max-width: 860px) { .vv-footer__in { grid-template-columns: 1fr; gap: 28px; padding-top: 44px; } }

/* ---------------------------------------------------------------- μηνύματα Joomla, σφάλματα */
#system-message-container { width: min(1240px, 100% - 32px); margin: 16px auto 0; }
.vv-error { min-height: 70vh; display: grid; place-items: center; text-align: center; padding: 40px 16px; }
.vv-error h1 { font: 400 clamp(4rem, 14vw, 9rem)/1 var(--vv-serif); margin: 0; color: var(--vv-gold); }
.vv-error p { font: 400 1.2rem var(--vv-text); color: var(--vv-ink-2); }

/* ---------------------------------------------------------------- προσβασιμότητα (ΑμεΑ) */
.vv-pv-btn { position: fixed; left: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 900; width: 52px; height: 52px; border-radius: 50%;
  border: 2px solid #fff; background: #1d4ed8; color: #fff; display: grid; place-items: center; cursor: pointer;
  box-shadow: 0 10px 26px -8px rgba(0, 0, 0, .55); transition: transform .2s; }
.vv-pv-btn svg { width: 32px; height: 32px; }
.vv-pv-btn:hover { transform: scale(1.06); }
/* τὸ κουμπὶ «Ρυθμίσεις cookies» (plg_system_cookieconsent) δεξιὰ τοῦ ΑμεΑ, ὄχι πάνω του */
.cc-fab { left: 80px !important; bottom: calc(16px + env(safe-area-inset-bottom)) !important; }
.vv-pv-btn:focus-visible { outline: 3px solid #ffd400; outline-offset: 3px; }
.vv-pv { position: fixed; left: 16px; bottom: calc(80px + env(safe-area-inset-bottom)); z-index: 901; width: min(380px, calc(100% - 32px));
  max-height: calc(100vh - 110px); overflow-y: auto; padding: 18px; border-radius: 18px; background: var(--vv-surface); color: var(--vv-ink);
  border: 1px solid var(--vv-line-strong); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .6); font: 500 .95rem/1.4 var(--vv-sans); }
.vv-pv[hidden] { display: none; }
.vv-pv__kef { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.vv-pv h2 { margin: 0; font: 400 1.4rem var(--vv-serif); }
.vv-pv__x { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--vv-line-strong); background: none; color: inherit; font-size: 1.1rem; cursor: pointer; }
.vv-pv__meg { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.vv-pv__meg span { flex: 1; }
.vv-pv__meg button { width: 48px; height: 44px; border-radius: 12px; border: 1px solid var(--vv-line-strong); background: none; color: inherit; font: 700 1rem var(--vv-serif); cursor: pointer; }
.vv-pv__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.vv-pv__grid button { display: grid; gap: 6px; justify-items: center; text-align: center; padding: 12px 8px; min-height: 84px; border-radius: 14px;
  border: 1px solid var(--vv-line-strong); background: none; color: inherit; font: 600 .86rem/1.25 var(--vv-sans); cursor: pointer; }
.vv-pv__grid button b { font-size: 1.35rem; line-height: 1; }
.vv-pv__ik::before { content: attr(data-ik); }   /* σύμβολο ἀπὸ CSS: ὁ μεταφραστὴς δὲν τὸ «μεταφράζει» */
.vv-pv__grid .vv-pv__plato { grid-column: 1 / -1; min-height: 0; grid-template-columns: auto 1fr; justify-items: start; text-align: left; align-items: center; }
.vv-pv button[aria-pressed=true], .vv-pv button[aria-checked=true] { background: #1d4ed8; border-color: #1d4ed8; color: #fff; }
.vv-pv button:focus-visible { outline: 3px solid #ffd400; outline-offset: 2px; }
.vv-pv__reset { width: 100%; margin-top: 10px; padding: 12px; border-radius: 12px; border: 1px dashed var(--vv-line-strong); background: none; color: inherit; font: 600 .9rem var(--vv-sans); cursor: pointer; }
.vv-pv__simeiosi { margin: 12px 0 0; font-size: .8rem; color: var(--vv-muted); font-weight: 400; }

/* μέγεθος κειμένου: ὅλα εἶναι σὲ rem */
html[data-pv-megethos="125"] { font-size: 125%; }
html[data-pv-megethos="150"] { font-size: 150%; }

/* ὑψηλὴ ἀντίθεσι: μαῦρο, λευκό, κίτρινο */
html.pv-antithesi {
  --vv-bg: #000; --vv-bg-2: #000; --vv-surface: #000; --vv-ink: #fff; --vv-ink-2: #fff; --vv-muted: #e6e6e6;
  --vv-line: rgba(255, 255, 255, .55); --vv-line-strong: #fff; --vv-gold: #ffd400; --vv-gold-2: #ffd400; --vv-red: #ffd400; color-scheme: dark;
}
html.pv-antithesi body { background: #000 !important; color: #fff; }
html.pv-antithesi a { color: #ffd400; }
html.pv-antithesi *, html.pv-antithesi *::before, html.pv-antithesi *::after { text-shadow: none !important; }
html.pv-antithesi :focus-visible { outline: 3px solid #ffd400 !important; outline-offset: 2px; }
html.pv-antithesi .vv-analogio {
  --a-bg: #000; --a-paper: #000; --a-ink: #fff; --a-ink-2: #fff; --a-line: #fff; --a-accent: #ffd400; --a-mark: rgba(255, 212, 0, .45); --a-glow: transparent;
}
html.pv-antithesi .vv-analogio__selida { background-image: none !important; box-shadow: none !important; border: 2px solid #fff; }

/* ἁπλὰ γράμματα: χωρὶς πατοῦρες, ἀραιά, χωρὶς πλήρη στοίχισι καὶ συλλαβισμό (δυσλεξία, χαμηλὴ ὅρασι) */
html.pv-aplagrammata body, html.pv-aplagrammata body * { font-family: 'Noto Sans', Verdana, Arial, sans-serif !important; letter-spacing: .03em; word-spacing: .14em; }
html.pv-aplagrammata p, html.pv-aplagrammata li { line-height: 1.9 !important; }
html.pv-aplagrammata .vv-analogio__selida p { text-align: left !important; hyphens: none !important; text-indent: 0 !important; margin-bottom: .9em !important; }
html.pv-aplagrammata .vv-analogio__selida p.arxi::first-letter { float: none; font: inherit; margin: 0; color: inherit; }

/* σύνδεσμοι πάντα ὑπογραμμισμένοι */
html.pv-syndesmoi a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 3px; }

/* χωρὶς κινήσεις */
html.pv-akinito *, html.pv-akinito *::before, html.pv-akinito *::after {
  animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }

/* μεγάλος δείκτης */
html.pv-deiktis, html.pv-deiktis * {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M3 2l15 11-6.5 1.2 3.8 7.3-2.7 1.4-3.8-7.3L4 19z' fill='%23000' stroke='%23fff' stroke-width='1.3'/%3E%3C/svg%3E") 4 2, auto !important; }
html.pv-deiktis a, html.pv-deiktis button, html.pv-deiktis [role=button] {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M9 2.5a1.5 1.5 0 0 1 3 0V9l1.2-.3a1.5 1.5 0 0 1 1.8 1.1l.1.4 1-.3a1.5 1.5 0 0 1 1.9 1.1l1.3.2A1.6 1.6 0 0 1 21 13l-.7 5.3A4 4 0 0 1 16.4 22H12a4 4 0 0 1-3.2-1.6L4.5 14.7a1.6 1.6 0 0 1 2.3-2.2L9 14.3z' fill='%23fff' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") 14 2, pointer !important; }

/* ὁδηγὸς ἀναγνώσεως: φωτεινὴ λωρίδα, τὰ ὑπόλοιπα σκοτεινότερα */
.vv-pv-odigos { position: fixed; left: 0; right: 0; height: 3.4em; z-index: 899; pointer-events: none; translate: 0 -50%;
  box-shadow: 0 0 0 200vmax rgba(0, 0, 0, .52); border-block: 2px solid #ffd400; }

/* ἐκφώνησι: τὸ κείμενο ποὺ ἀκούγεται */
html.pv-ekfonisi :is(p, h1, h2, h3, h4, li, blockquote, figcaption) { cursor: pointer; }
.vv-pv-fonazei { outline: 3px solid #ffd400 !important; outline-offset: 4px; border-radius: 4px; background: rgba(255, 212, 0, .14); }
.vv-pv-xoris-foni { outline: 3px dashed #c0392b !important; outline-offset: 4px; border-radius: 4px; cursor: help; }

@media print {
  .vv-pv-btn, .vv-pv, .vv-pv-odigos, .cc-fab, #cc-root { display: none !important; }
  .vv-header, .vv-footer, .vv-palette, .vv-actions, .vv-insearch { display: none !important; }
}
