/* =========================================================
   Φροντιστήριο ΣΤΟΧΟΣ – Στυλ σελίδας
   Βασισμένο στο προσβάσιμο σύστημα της Σβούρας (WCAG 2.1 AA).
   Παλέτα φροντιστηρίου: navy (κύριο) + crimson «στόχος» (έμφαση) + gold.
   Σημ.: τα ιστορικά ονόματα μεταβλητών (--teal/--magenta) διατηρούνται
         για επαναχρησιμοποίηση του CSS, με νέες τιμές.
   ========================================================= */

:root {
  --teal:        #16468c;   /* κύριο (navy) */
  --teal-dark:   #0f3266;   /* hover / κείμενο σε ανοιχτό */
  --blue:        #16468c;
  --magenta:     #d42a2a;   /* έμφαση / CTA (crimson «στόχος») */
  --magenta-dark:#a81f1f;
  --yellow:      #f4b400;
  --green:       #2e9e5b;
  --orange:      #f28a1a;

  --ink:        #1a2230;     /* βασικό κείμενο */
  --ink-soft:   #4a5568;     /* δευτερεύον κείμενο */
  --bg:         #ffffff;
  --bg-alt:     #f4f7fb;     /* ανοιχτό navy φόντο ενοτήτων */
  --line:       #dce4f0;
  --focus:      #0a3d62;     /* έντονο περίγραμμα εστίασης */
  --surface:    #ffffff;     /* φόντο καρτών/πεδίων/chips (γυρίζει στο dark) */
  --heading:    #0f3266;     /* τίτλοι/labels/links πάνω σε surface (= teal-dark· γυρίζει στο dark) */
  --footer-bg:  #1a2230;     /* σκούρο φόντο footer/skip-link (σταθερό-σκούρο· ίδιο & στο dark) */

  --radius:     16px;
  --radius-sm:  10px;
  --shadow:     0 8px 24px rgba(15, 50, 102, .12);
  --shadow-lg:  0 16px 40px rgba(15, 50, 102, .18);
  --maxw:       1280px;
}

/* ---------- Βασικά ---------- */
*, *::before, *::after { box-sizing: border-box; }

[hidden] { display: none !important; }

html { scroll-behavior: smooth; scroll-padding-top: 90px; }

main:focus { outline: none; }

body {
  margin: 0;
  font-family: "Nunito", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.65;
  font-size: 1.0625rem;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .brand-text { font-family: "Montserrat", "Nunito", system-ui, sans-serif; }

h1 { font-size: clamp(2rem, 5vw, 3.1rem); line-height: 1.1; margin: .2em 0 .35em; }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.3rem); line-height: 1.15; margin: 0 0 .5em; color: var(--heading); }

p { margin: 0 0 1rem; }

img { max-width: 100%; height: auto; display: block; }

a { color: var(--heading); }
a:hover { color: var(--magenta-dark); }

.container { width: min(var(--maxw), 100% - 2.5rem); margin-inline: auto; }

.section { padding: clamp(3rem, 7vw, 5rem) 0; }
.section-alt { background: var(--bg-alt); }

/* --- Λωρίδα στατιστικών (κάτω από το hero) ---
   Σημ.: τα ονόματα .stat/.stat-num/.stat-label ανήκουν ήδη σε άλλο component
   (άσπρες κάρτες, ~γρ. 280). Γι' αυτό ΟΛΟΙ οι κανόνες εδώ είναι scoped κάτω
   από το .stats-strip και μηδενίζουν ρητά το στιλ της κάρτας. */
.stats-strip { background: var(--teal); color: #fff; padding: 1.6rem 0; }
.stats-strip .stats-grid { list-style: none; margin: 0; padding: 0; display: grid;
  grid-template-columns: repeat(3, 1fr); gap: 1rem; text-align: center; }
.stats-strip .stat { display: flex; flex-direction: column; gap: .25rem; min-width: 0;
  background: none; border: 0; border-radius: 0; padding: 0; box-shadow: none; }
.stats-strip .stat-num { font-family: "Montserrat", sans-serif; font-weight: 800; line-height: 1;
  font-size: clamp(1.9rem, 5vw, 2.8rem); color: var(--gold-lite); }
.stats-strip .stat-label { color: #dbe4f0; font-weight: 600; margin-top: 0;
  font-size: clamp(.8rem, 2vw, .98rem); }
@media (max-width: 560px) {
  .stats-strip { padding: 1.2rem 0; }
  .stats-strip .stats-grid { gap: .6rem; }
}

.eyebrow {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 700;
  font-size: .8rem;
  color: var(--magenta);
  margin: 0 0 .4rem;
}

.section-head { max-width: 62ch; margin-bottom: 2.2rem; }
.section-intro { color: var(--ink-soft); }

/* ---------- Προσβασιμότητα: helpers ---------- */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.skip-link {
  position: absolute; left: 8px; top: -60px;
  background: var(--footer-bg); color: #fff;
  padding: .7rem 1.1rem; border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  z-index: 200; font-weight: 700; text-decoration: none;
  transition: top .15s ease;
}
.skip-link:focus { top: 0; color: #fff; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ---------- Κουμπιά ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: "Montserrat", sans-serif;
  font-weight: 600; font-size: 1.05rem;
  padding: .8rem 1.5rem;
  border-radius: 999px;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform .12s ease, background-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.btn-primary { background: var(--magenta); color: #fff; }
.btn-primary:hover { background: var(--magenta-dark); color: #fff; transform: translateY(-2px); }
.btn-ghost { background: var(--surface); color: var(--heading); border-color: var(--heading); }
.btn-ghost:hover { background: var(--teal); color: #fff; transform: translateY(-2px); }

/* ---------- Header / Nav ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.95);
  backdrop-filter: saturate(140%) blur(6px);
  border-bottom: 3px solid var(--teal);
}
.header-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: .6rem 0;
}
.brand { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--ink); }
.brand-mark {
  flex: 0 0 auto; width: 52px; height: 52px; border-radius: 12px;
  display: grid; place-items: center;
  background: var(--teal); color: #fff;
  font-family: "Montserrat", sans-serif; font-weight: 800; font-size: 1.6rem;
  box-shadow: var(--shadow);
}
.brand-text { display: flex; flex-direction: column; line-height: 1; }
.brand-text strong { color: var(--blue); font-size: 1.5rem; letter-spacing: .02em; }
.brand-sub { color: var(--magenta); font-weight: 700; letter-spacing: .18em; font-size: .72rem; }

.primary-nav ul {
  list-style: none; display: flex; gap: .15rem; margin: 0; padding: 0; align-items: center;
}
.primary-nav li { flex: 0 0 auto; }
.primary-nav a {
  display: inline-block; text-decoration: none; color: var(--ink);
  font-weight: 700; padding: .55rem .7rem; border-radius: 999px;
  white-space: nowrap;
}
.primary-nav a:hover { background: var(--bg-alt); color: var(--heading); }
.primary-nav .nav-cta { background: var(--teal); color: #fff; }
.primary-nav .nav-cta:hover { background: var(--teal-dark); color: #fff; }

.nav-toggle {
  display: none;
  position: relative;
  width: 46px; height: 46px;
  background: var(--surface); border: 2px solid var(--line); border-radius: 12px;
  cursor: pointer; padding: 0;
}
.nav-toggle-bar {
  position: absolute; left: 11px; right: 11px; height: 2.5px;
  background: var(--ink); border-radius: 2px;
  transition: transform .2s ease, opacity .2s ease;
}
.nav-toggle-bar:nth-child(1) { top: 15px; }
.nav-toggle-bar:nth-child(2) { top: 21px; }
.nav-toggle-bar:nth-child(3) { top: 27px; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1) { top: 21px; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3) { top: 21px; transform: rotate(-45deg); }

/* ---------- Hero ---------- */
.hero {
  background:
    radial-gradient(1200px 400px at 80% -20%, rgba(22,70,140,.16), transparent 60%),
    linear-gradient(180deg, #eef3fb 0%, #ffffff 100%);
  padding: clamp(2.5rem, 6vw, 4.5rem) 0;
}
.hero-inner {
  display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.hero-lead { font-size: 1.15rem; color: var(--ink-soft); max-width: 52ch; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.4rem; }
.hero-figure { margin: 0; }
.hero-figure img {
  border-radius: var(--radius); box-shadow: var(--shadow-lg);
  border: 5px solid #fff; width: 100%; object-fit: cover;
}
/* Placeholder εικόνας (μέχρι να μπουν οι πραγματικές φωτογραφίες) */
.img-placeholder {
  display: grid; place-items: center; text-align: center;
  aspect-ratio: 16 / 10; border-radius: var(--radius);
  background: linear-gradient(135deg, var(--teal) 0%, var(--teal-dark) 100%);
  color: #fff; font-family: "Montserrat", sans-serif; font-weight: 700;
  box-shadow: var(--shadow-lg); padding: 1.5rem;
}
.img-placeholder span { opacity: .85; font-weight: 600; }

/* ---------- Πρόγραμμα σπουδών (κάρτες τμημάτων) ---------- */
.levels {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.2rem;
}
.level-card {
  display: flex; flex-direction: column; gap: .5rem; height: 100%; box-sizing: border-box;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1.4rem 1.1rem; box-shadow: var(--shadow); text-decoration: none; color: inherit;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.level-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--heading); }
.level-ico {
  width: 48px; height: 48px; display: grid; place-items: center;
  background: var(--bg-alt); border-radius: 12px; font-size: 1.5rem;
}
.level-name { font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 1.15rem; color: var(--heading); }
.level-card:hover .level-name { color: var(--magenta-dark); }
.level-more { margin-top: auto; font-weight: 700; color: var(--magenta); font-size: .85rem; }

/* ---------- Labora: Μόρια & Σχολές (link-outs) ---------- */
.labora-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.2rem;
}
.labora-card {
  display: flex; flex-direction: column; gap: .5rem;
  padding: 1.6rem; border-radius: var(--radius);
  background: linear-gradient(135deg, var(--teal) 0%, var(--teal-dark) 100%);
  color: #fff; text-decoration: none;
  box-shadow: var(--shadow); border: 2px solid transparent;
  transition: transform .15s ease, box-shadow .15s ease;
}
.labora-card.accent { background: linear-gradient(135deg, var(--magenta) 0%, var(--magenta-dark) 100%); }
.labora-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); color: #fff; }
.labora-ico { font-size: 2rem; line-height: 1; }
.labora-title { font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 1.3rem; }
.labora-desc { color: rgba(255,255,255,.9); font-size: .98rem; margin: 0; }
.labora-cta { margin-top: auto; font-weight: 700; }
.labora-cta::after { content: " →"; }
.labora-note { color: var(--ink-soft); font-size: .9rem; margin-top: 1.2rem; }

/* ---------- Ποιοι είμαστε ---------- */
.about-grid {
  display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.about-figure { margin: 0; }
.about-figure img {
  border-radius: var(--radius); box-shadow: var(--shadow);
  width: 100%; max-height: 520px; object-fit: cover; object-position: top;
}
.feature-list { list-style: none; margin: 1.2rem 0 0; padding: 0; display: grid; gap: .9rem; }
.feature-list li { display: flex; gap: .8rem; align-items: flex-start; }
.feature-ico {
  flex: 0 0 auto; width: 44px; height: 44px; display: grid; place-items: center;
  background: var(--bg-alt); border-radius: 12px; font-size: 1.4rem; line-height: 1;
}

/* ---------- Στατιστικά (counters) ---------- */
.stats { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); gap: 1rem; }
.stat { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.2rem; text-align: center; box-shadow: var(--shadow); }
.stat-num { font-family: "Montserrat", sans-serif; font-weight: 800; font-size: 2rem; color: var(--magenta); line-height: 1; }
.stat-label { color: var(--ink-soft); font-weight: 700; font-size: .95rem; margin-top: .3rem; }

/* ---------- Τοποθεσία / Επικοινωνία ---------- */
.location-grid {
  display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}
.contact-details { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; gap: 1rem; }
.contact-details li { display: flex; gap: .8rem; align-items: flex-start; }
.contact-details a { font-weight: 700; }
.ci {
  flex: 0 0 auto; width: 42px; height: 42px; display: grid; place-items: center;
  background: var(--bg-alt); border-radius: 12px; font-size: 1.25rem;
}
.ci-label { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-soft); font-weight: 700; }
.location-map {
  border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow);
  border: 1px solid var(--line); background: #eef2f7;
}
.location-map iframe { width: 100%; height: 420px; border: 0; display: block; }

/* ---------- Φόρμα επικοινωνίας ---------- */
.contact-wrap { max-width: 720px; }
.contact-form { display: grid; gap: 1.1rem; }
.form-row { margin: 0; display: flex; flex-direction: column; gap: .35rem; }
.form-row label { font-weight: 700; color: var(--ink); }
.req { color: var(--magenta); }
.contact-form input,
.contact-form textarea {
  font: inherit; color: var(--ink);
  padding: .75rem .9rem;
  border: 2px solid var(--line); border-radius: var(--radius-sm);
  background: var(--surface); width: 100%;
  transition: border-color .15s ease;
}
.contact-form input:hover,
.contact-form textarea:hover { border-color: var(--heading); }
.contact-form textarea { resize: vertical; min-height: 120px; }
.contact-form input[aria-invalid="true"],
.contact-form textarea[aria-invalid="true"] { border-color: var(--magenta); }
.field-hint { font-size: .85rem; color: var(--ink-soft); }
.field-error { font-size: .9rem; color: var(--magenta-dark); font-weight: 700; min-height: 1px; }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-actions { margin-top: .3rem; }
.form-status { font-weight: 700; margin: .4rem 0 0; }
.form-status.is-ok { color: var(--heading); }
.form-status.is-error { color: var(--magenta-dark); }

/* ---------- Φωνητική ανάγνωση σελίδας ---------- */
.header-controls { display: flex; align-items: center; gap: .5rem; }
.reader { display: flex; align-items: center; gap: .4rem; }
.reader-btn {
  display: inline-flex; align-items: center; gap: .45rem;
  font-family: "Montserrat", sans-serif; font-weight: 600; font-size: .95rem;
  border: 2px solid transparent; border-radius: 999px; cursor: pointer;
  transition: transform .12s ease, background-color .15s ease;
}
.reader-toggle { background: var(--teal); color: #fff; padding: .5rem .9rem; min-height: 44px; }
.reader-toggle:hover { background: var(--teal-dark); transform: translateY(-1px); }
.reader-toggle[aria-pressed="true"] { background: var(--magenta); }
.reader-toggle[aria-pressed="true"]:hover { background: var(--magenta-dark); }
.reader-ico { font-size: 1.1rem; line-height: 1; }
.reader-stop {
  background: var(--surface); color: var(--ink);
  width: 44px; height: 44px; justify-content: center; padding: 0; border-color: var(--line);
}
.reader-stop:hover { background: var(--bg-alt); transform: translateY(-1px); }
.reader-toggle[aria-pressed="true"] .reader-ico { animation: reader-pulse 1.1s ease-in-out infinite; }
@keyframes reader-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.2); } }
.reader-toast {
  position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%) translateY(20px);
  max-width: min(92vw, 460px); z-index: 200;
  background: var(--ink); color: #fff;
  padding: .9rem 1.2rem; border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg); font-weight: 600; line-height: 1.45;
  opacity: 0; pointer-events: none; transition: opacity .2s ease, transform .2s ease;
}
.reader-toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }
.reading-highlight { background: #fff6c9; box-shadow: 0 0 0 4px #fff6c9; border-radius: 4px; }
@media (max-width: 720px) {
  .reader-toggle .reader-label {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
  .reader-toggle { width: 44px; height: 44px; justify-content: center; padding: 0; }
  .reader-toggle .reader-ico { font-size: 1.25rem; }
}

/* ---------- Footer ---------- */
.site-footer { background: var(--footer-bg); color: #e7edf6; padding: 2.5rem 0; }
.footer-inner { display: grid; gap: 1.2rem; }
.footer-brand { display: flex; align-items: center; gap: .8rem; }
.footer-brand .brand-mark { width: 44px; height: 44px; font-size: 1.3rem; }
.footer-brand strong { color: #fff; font-size: 1.15rem; font-family: "Montserrat", sans-serif; }
.site-footer a { color: #9dc0f2; font-weight: 700; }
.site-footer a:hover { color: #fff; }
.footer-copy { color: #9fb0c8; font-size: .9rem; margin: 0; }
.footer-links { display: flex; flex-wrap: wrap; gap: 1rem; }
.footer-links a { font-weight: 700; }
.footer-social { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; }
.footer-social span { color: #e7edf6; font-weight: 800; }
.social-link {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 999px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18);
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
  color: #fff; font-weight: 800; text-decoration: none;
}
.social-link:hover, .social-link:focus-visible {
  transform: translateY(-2px); background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.35); color: #fff;
}
.social-link svg { width: 22px; height: 22px; display: block; }
/* original brand χρώματα */
.social-link.fb { background: #1877F2; border-color: #1877F2; }
.social-link.ig { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); border-color: transparent; }
.social-link.wa { background: #25D366; border-color: #25D366; }
.social-link.fb:hover, .social-link.fb:focus-visible,
.social-link.ig:hover, .social-link.ig:focus-visible,
.social-link.wa:hover, .social-link.wa:focus-visible { filter: brightness(1.1); color: #fff; }
@media (min-width: 700px) {
  .footer-inner {
    grid-template-columns: 1fr auto; align-items: center;
    grid-template-areas: "brand contact" "links social" "copy copy";
  }
  .footer-brand { grid-area: brand; }
  .footer-contact { grid-area: contact; text-align: right; }
  .footer-links { grid-area: links; border-top: 1px solid rgba(255,255,255,.15); padding-top: 1rem; margin-top: .3rem; }
  .footer-social { grid-area: social; justify-content: flex-end; border-top: 1px solid rgba(255,255,255,.15); padding-top: 1rem; margin-top: .3rem; }
  .footer-copy { grid-area: copy; }
}

/* ---------- Εσωτερικές σελίδες τμημάτων ---------- */
.page-hero { background: var(--bg-alt); padding: clamp(1.8rem, 4vw, 2.8rem) 0; border-bottom: 1px solid var(--line); }
.back-link { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; margin-bottom: .6rem; }
.prose { max-width: 78ch; }
.prose h2 { margin-top: 1.8rem; }
.prose ul { padding-left: 1.2rem; }
.prose li { margin-bottom: .4rem; }
.table-wrap { overflow-x: auto; margin: 1.2rem 0; }
table.schedule { border-collapse: collapse; width: 100%; min-width: 420px; background: var(--surface); border-radius: var(--radius-sm); overflow: hidden; box-shadow: var(--shadow); }
table.schedule th, table.schedule td { padding: .7rem .9rem; border: 1px solid var(--line); text-align: left; }
table.schedule th { background: var(--teal); color: #fff; font-family: "Montserrat", sans-serif; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .nav-toggle { display: grid; }
  .primary-nav {
    position: absolute; top: 100%; left: 0; right: 0;
    background: var(--surface); border-bottom: 3px solid var(--teal);
    box-shadow: var(--shadow);
    max-height: 0; overflow: hidden; transition: max-height .25s ease;
  }
  /* Σταθερό ύψος έκοβε το μενού μόλις μεγάλωσε (904px περιεχόμενο σε 520px κουτί
     → «Επιτυχόντες/Επικοινωνία» ήταν απρόσιτα). Τώρα φτάνει ως το κάτω άκρο της
     οθόνης και κυλάει αν χρειαστεί. */
  .primary-nav.is-open { max-height: calc(100vh - 76px); overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
  .primary-nav ul { flex-direction: column; align-items: stretch; padding: .5rem; gap: .2rem; }
  .primary-nav li { flex: 1 1 auto; }
  .primary-nav a { padding: .85rem 1rem; white-space: normal; }
  .primary-nav .nav-cta { display: block; text-align: center; }   /* πλήρες πλάτος στο κινητό */
}
@media (max-width: 860px) {
  .hero-inner, .about-grid, .location-grid { grid-template-columns: 1fr; }
  .hero-figure { order: -1; }
  .about-figure { max-width: 420px; }
}
@media (max-width: 520px) {
  .btn { width: 100%; justify-content: center; }
  .hero-actions { flex-direction: column; }
}

/* ---------- Μειωμένη κίνηση / υψηλή αντίθεση ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}
@media (prefers-contrast: more) {
  :root { --ink-soft: #26303f; --line: #7d90ab; }
  .btn-ghost { border-color: var(--heading); }
}

/* =========================================================
   ΒΗΜΑ 3 — Ενημερώσεις: πραγματικό logo, gold παλέτα, dropdown
   ========================================================= */
:root {
  --gold:      #a2843b;   /* ΕΠΙΣΗΜΟ χρυσαφί λογοτύπου (ο στόχος στο «ό») */
  --gold-ink:  #7d5f20;   /* πιο σκούρο χρυσό, ασφαλές για κείμενο σε λευκό */
  --gold-dark: #6a501a;
  --gold-lite: #cda552;   /* φωτεινότερο χρυσό — μόνο για κείμενα/γεμίσματα πάνω σε navy */
  /* Επαναπροσδιορισμός «accent» σε χρυσό λογοτύπου, ώστε να ταιριάζει παντού */
  --magenta:      #7d5f20;
  --magenta-dark: #6a501a;
}

/* Κουμπί «primary» = navy (σταθερή αντίθεση), «accent» = χρυσό */
.btn-primary { background: var(--teal); color: #fff; }
.btn-primary:hover { background: var(--teal-dark); color: #fff; }
.btn-accent { background: var(--gold-ink); color: #fff; }
.btn-accent:hover { background: var(--gold-dark); color: #fff; transform: translateY(-2px); }

/* Λογότυπο στο header */
.brand { gap: .5rem; flex: 0 0 auto; }        /* να ΜΗΝ το στριμώχνει το μενού */
.brand-logo { height: 46px; width: auto; display: block; flex-shrink: 0; }
@media (max-width: 420px){ .brand-logo { height: 38px; } }

/* Λεπτή χρυσή γραμμή κάτω από το header, πάνω από το navy */
.site-header { border-bottom: 3px solid var(--gold); }

/* ---------- Dropdown υπομενού ---------- */
.has-sub { position: relative; }
.sub-trigger { display: inline-flex; align-items: center; gap: .3rem; }
.caret { font-size: .7em; transition: transform .2s ease; }
.submenu {
  list-style: none; margin: 0; padding: .4rem;
  position: absolute; top: calc(100% + 6px); left: 0; min-width: 230px;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius-sm); box-shadow: var(--shadow-lg);
  display: grid; gap: .1rem; z-index: 120;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.has-sub:hover > .submenu,
.has-sub:focus-within > .submenu,
.has-sub.open > .submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.has-sub:hover .caret,
.has-sub.open .caret { transform: rotate(180deg); }
.submenu a { display: block; padding: .6rem .8rem; border-radius: 8px; white-space: nowrap; font-weight: 700; color: var(--ink); text-decoration: none; }
.submenu a:hover { background: var(--bg-alt); color: var(--heading); }

/* Hero: πάνελ με το logo σε navy φόντο */
.hero-brandpanel {
  display: grid; place-items: center; gap: 1rem; text-align: center;
  aspect-ratio: 16 / 11; border-radius: var(--radius);
  background:
    radial-gradient(600px 300px at 50% 0%, rgba(162,132,59,.30), transparent 70%),
    linear-gradient(135deg, var(--teal) 0%, var(--teal-dark) 100%);
  box-shadow: var(--shadow-lg); border: 5px solid #fff; padding: 2rem;
}
.hero-brandpanel img { width: min(78%, 420px); height: auto; }
.hero-brandpanel .tagline { color: #fff; font-family: "Montserrat", sans-serif; font-weight: 700; letter-spacing: .04em; }

/* Χρυσός τονισμός σε eyebrow/δείκτες ήδη μέσω --magenta */
.eyebrow { color: var(--gold-ink); }

/* Footer: logo λευκό */
.footer-logo { height: 40px; width: auto; }

/* Λίστα «Γιατί ΣΤΟΧΟΣ» */
.why-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.2rem; }
.why-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem; box-shadow: var(--shadow); }
.why-ico { width: 46px; height: 46px; display: grid; place-items: center; background: var(--bg-alt); border-radius: 12px; font-size: 1.4rem; margin-bottom: .6rem; }
.why-card h3 { margin: 0 0 .3rem; font-size: 1.12rem; color: var(--heading); }
.why-card p { margin: 0; color: var(--ink-soft); font-size: .97rem; }

/* Επιτυχόντες: χρονολόγιο ετών */
.years { list-style: none; margin: 1.4rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.years li a {
  display: inline-block; padding: .55rem 1rem; border-radius: 999px;
  background: var(--surface); border: 1px solid var(--line); font-weight: 700;
  color: var(--heading); text-decoration: none; box-shadow: var(--shadow);
}
.years li a:hover { border-color: var(--gold); color: var(--gold-dark); }

/* Κάρτες κατεύθυνσης (μέσα σε σελίδες Β/Γ Λυκείου) */
.dir-cards { list-style: none; margin: 1.4rem 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 1rem; }
.dir-card { display: block; text-decoration: none; color: inherit; background: var(--surface); border: 1px solid var(--line); border-left: 5px solid var(--gold); border-radius: var(--radius-sm); padding: 1.1rem 1.2rem; box-shadow: var(--shadow); transition: transform .15s ease, box-shadow .15s ease; }
.dir-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.dir-card strong { display: block; color: var(--heading); font-family: "Montserrat", sans-serif; font-size: 1.08rem; }

/* Info callout */
.callout { background: var(--bg-alt); border-left: 5px solid var(--gold); padding: 1rem 1.2rem; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; margin: 1.2rem 0; }

/* Στο mobile menu: το υπομενού γίνεται εσωτερικό (static) */
@media (max-width: 1080px) {
  /* ΠΡΟΣΟΧΗ specificity: ο κανόνας «.primary-nav ul» (0,1,1) ορίζει display:flex και
     νικούσε το σκέτο «.submenu» (0,1,0) — τα media queries ΔΕΝ προσθέτουν specificity.
     Γι' αυτό όλοι οι κανόνες εδώ είναι προθεματισμένοι με .primary-nav. */
  .primary-nav .submenu {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: 0; border-left: 3px solid var(--gold);
    border-radius: 0; margin: .1rem 0 .3rem .6rem; min-width: 0; padding: .2rem 0 .2rem .4rem;
    display: none;
  }
  .primary-nav .has-sub:hover > .submenu,
  .primary-nav .has-sub:focus-within > .submenu { display: none; }   /* στο κινητό ανοίγει ΜΟΝΟ με πάτημα */
  .primary-nav .has-sub.open > .submenu { display: grid; }
  .primary-nav .submenu a { white-space: normal; }                   /* μεγάλα ονόματα να αναδιπλώνονται */
}

/* ---------- Επιτυχόντες: γραφικό «αφίσα» ανά έτος (Επιλογή Β) ---------- */
.epit-years { list-style:none; margin:0 0 1.2rem; padding:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.epit-years a { display:inline-block; padding:.45rem 1rem; border-radius:999px; border:1px solid var(--line); background:var(--surface); font-weight:700; color:var(--heading); text-decoration:none; font-size:.92rem; }
.epit-years a[aria-current="true"] { background:var(--teal); color:#fff; border-color:var(--heading); }
.epit-years a:hover { border-color:var(--gold); color:var(--gold-dark); }

.epit-poster { max-width:760px; border-radius:16px; overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid var(--line); }
.epit-head { background:var(--teal); padding:1rem 1.4rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.epit-head img { height:46px; width:auto; display:block; }
.epit-year { color:#fff; font-family:"Montserrat",sans-serif; font-weight:700; text-align:right; line-height:1.2; }
.epit-year small { display:block; font-weight:600; color:var(--gold-lite); letter-spacing:.02em; }
.epit-body { background:var(--teal-dark); padding:1.3rem 1.4rem; display:grid; gap:.8rem; }
.epit-row { display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; }
.epit-name { flex:0 0 auto; background:var(--gold-lite); color:var(--teal-dark); font-weight:700; padding:.42rem .95rem; border-radius:999px; font-size:.95rem; }
.epit-school { color:#e7edf6; font-size:.92rem; }

/* ---------- Επιτυχόντες: data-driven (tabs + βαθμοί) ---------- */
.epit-tabs { list-style:none; margin:0 0 1.2rem; padding:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.epit-tab { font-family:"Montserrat",sans-serif; font-weight:700; font-size:.92rem; cursor:pointer;
  padding:.45rem 1rem; border-radius:999px; border:1px solid var(--line); background:var(--surface); color:var(--heading); }
.epit-tab:hover { border-color:var(--gold); color:var(--gold-dark); }
.epit-tab[aria-current="true"] { background:var(--teal); color:#fff; border-color:var(--heading); }
.epit-note { color:var(--ink-soft); margin:0 0 1rem; max-width:70ch; }
.epit-empty { color:var(--ink-soft); background:var(--bg-alt); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:1rem 1.2rem; }
.epit-poster + .epit-poster { margin-top:1.4rem; }

/* Βαθμοί ανά μάθημα */
.epit-grades { gap:1.2rem; }
.epit-subject { display:grid; gap:.5rem; }
.epit-subject h4 { margin:0; font-family:"Montserrat",sans-serif; font-weight:700; font-size:1.02rem;
  color:var(--gold-lite); letter-spacing:.02em; padding-bottom:.3rem; border-bottom:1px solid rgba(255,255,255,.15); }
.epit-grade-row { display:flex; align-items:baseline; justify-content:space-between; gap:.8rem; }
.egr-name { color:#fff; font-weight:600; }
.egr-grade { flex:0 0 auto; color:var(--gold-lite); font-family:"Montserrat",sans-serif; font-weight:700; }
.egr-grade small { color:#9fb3d6; font-weight:600; font-size:.72em; }

/* Τίτλοι κατηγοριών επιτυχόντων + απόσταση */
.epit-cat { font-family:"Montserrat",sans-serif; font-weight:700; font-size:1.15rem; color:var(--heading);
  margin:0 0 1rem; padding-bottom:.5rem; border-bottom:2px solid var(--gold); }
#epit-past { margin-top:2.4rem; }

/* Επιτυχόντες ανά μαθητή: σχολή ή/και βαθμοί (τσιπάκια) */
.epit-row { align-items: flex-start; }
.epit-detail { display: flex; flex-direction: column; gap: .4rem; flex: 1 1 auto; min-width: 0; }
.epit-gchips { display: flex; flex-wrap: wrap; gap: .4rem; }
.epit-gchip { font-size: .82rem; background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.22);
  color: #eaf0fa; padding: .2rem .65rem; border-radius: 999px; white-space: nowrap; }
.epit-gchip b { color: var(--gold-lite); font-weight: 700; }

/* ---------- Επιτυχόντες: πλατύτερες αφίσες, ένας επιτυχών ανά γραμμή ---------- */
.epit-poster { max-width: 100%; }
.epit-row { flex-wrap: nowrap; align-items: baseline; gap: .7rem; }
.epit-name { font-size: .9rem; padding: .35rem .85rem; }
.epit-detail { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: .3rem .8rem; }
.epit-school { font-size: .92rem; }
/* Σε στενές οθόνες (κινητά) επιτρέπουμε αναδίπλωση για να μη «βγαίνει» εκτός */
@media (max-width: 620px) {
  .epit-row { flex-wrap: wrap; }
}

/* ---------- Εικονίδιο σπιτιού (Αρχική) στο μενού ---------- */
.nav-home { line-height:0; padding:.5rem .6rem; color:var(--heading); }
.nav-home:hover { background:var(--bg-alt); color:var(--heading); }
.nav-home svg { display:block; }

/* ---------- Dropdown επιλογής σχολικού έτους (επιτυχόντες) ---------- */
.epit-yearpick { display:flex; align-items:center; gap:.6rem; margin:0 0 1.2rem; flex-wrap:wrap; }
.epit-all-cta { margin: 1.8rem 0 0; text-align: center; }
.epit-yearpick label { font-weight:700; color:var(--heading); font-family:"Montserrat",sans-serif; }
.epit-yearpick select { font:inherit; font-weight:700; color:var(--heading); background:var(--surface);
  border:1px solid var(--line); border-radius:999px; padding:.5rem 2.4rem .5rem 1rem; cursor:pointer;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230f3266' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .85rem center; }
.epit-yearpick select:hover { border-color:var(--gold); }
.epit-yearpick select:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }

/* ========== «Δες πού περνάς» — εργαλείο μορίων ========== */
.moria-tool { display:grid; gap:1.6rem; min-width:0; }
/* κρίσιμο για mobile: επιτρέπει στα grid items να συρρικνωθούν ώστε ο πίνακας
   (min-width:720) να κάνει ΕΣΩΤΕΡΙΚΟ scroll αντί να φαρδαίνει όλη τη σελίδα. */
.moria-step { min-width:0; }
.moria-step h2 { font-size:1.2rem; }
.moria-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; }
.moria-field-card { text-align:left; cursor:pointer; background:var(--surface); border:2px solid var(--line); border-radius:var(--radius);
  padding:1.1rem 1.2rem; font:inherit; color:inherit; transition:transform .12s ease, border-color .15s ease, box-shadow .15s ease; }
.moria-field-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--gold); }
.moria-field-card[aria-pressed="true"] { border-color:var(--heading); box-shadow:var(--shadow); }
.moria-field-card .mf-name { font-family:"Montserrat",sans-serif; font-weight:700; color:var(--heading); display:block; margin-bottom:.3rem; }
.moria-field-card .mf-subs { color:var(--ink-soft); font-size:.9rem; }

.moria-grades { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1rem; max-width:900px; }
.moria-grade { display:flex; flex-direction:column; gap:.35rem; }
/* min-height 2 γραμμών → όσα labels «σπάνε» (π.χ. Νεοελληνική Γλώσσα & Λογοτεχνία)
   δεν χαλάνε τη στοίχιση: όλα τα πεδία εισαγωγής ευθυγραμμίζονται κάτω. */
.moria-grade label { font-weight:700; color:var(--ink); font-size:.95rem; line-height:1.2;
  min-height:2.55em; display:flex; flex-direction:column; justify-content:flex-end; }
.moria-grade-hint { font-weight:400; font-size:.78rem; color:var(--ink-soft); margin-top:.15rem; line-height:1.2; }
.moria-grade input { font:inherit; padding:.7rem .8rem; border:2px solid var(--line); border-radius:var(--radius-sm); width:100%; }
.moria-grade input:hover { border-color:var(--heading); }
.moria-grade input[aria-invalid="true"] { border-color:var(--magenta); }
.moria-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.2rem; }
.moria-results-actions { margin-top:1.4rem; padding-top:1.2rem; border-top:1px solid var(--line); }

.moria-summary { display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1rem; }
.m-badge { display:inline-flex; align-items:center; gap:.4rem; font-weight:700; padding:.4rem .9rem; border-radius:999px; font-size:.95rem; }
.m-badge.pass { background:#e7f5ec; color:#1f7a45; }
.m-badge.near { background:#fdeede; color:#a5590a; }
.m-badge.fail { background:#fcebea; color:#a81f1f; }
.m-badge.info { background:#eef1f6; color:#4a5568; }

/* Ειδικά μαθήματα (προαιρετικό μπλοκ κάτω από τους 4 βαθμούς) */
.moria-special { margin-top:1.4rem; padding-top:1.1rem; border-top:1px dashed var(--line); }
.moria-special-head { font-weight:800; color:var(--heading); margin:0 0 .8rem; }
.moria-special-head span { font-weight:600; color:var(--ink-soft); font-size:.9rem; }

.moria-filters { display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; margin-bottom:1rem; }
.moria-filters input[type="search"], .moria-filters select {
  font:inherit; padding:.55rem .8rem; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--surface); color:var(--ink); }
.moria-filters label.chk { display:inline-flex; align-items:center; gap:.4rem; font-weight:700; color:var(--heading); cursor:pointer; }

.moria-tablewrap { overflow-x:auto; max-width:100%; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:var(--radius); }
table.moria-table { border-collapse:collapse; width:100%; min-width:720px; background:var(--surface); }
table.moria-table th, table.moria-table td { padding:.6rem .8rem; text-align:left; border-bottom:1px solid var(--line); font-size:.92rem; }
table.moria-table th { background:var(--bg-alt); font-family:"Montserrat",sans-serif; color:var(--heading); position:sticky; top:0; }
table.moria-table td.num, table.moria-table th.num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
/* ---- Mobile polish εργαλείου μορίων ---- */
@media (max-width: 560px) {
  table.schedule { min-width: 0; }   /* πίνακες προγράμματος: χωρούν χωρίς πλάγιο scroll */
  .moria-fields { grid-template-columns: 1fr; }
  .moria-grades { grid-template-columns: 1fr; }
  .moria-filters > * { flex: 1 1 100%; }
  .moria-filters input[type="search"], .moria-filters select { width: 100%; }
  /* Κρύβουμε «Ίδρυμα», «Πόλη» & «Διαφορά» (η πόλη είναι ήδη στο όνομα σχολής και
     η ένδειξη+μόρια καλύπτουν τη διαφορά) → ο πίνακας χωράει χωρίς πλάγιο scroll.
     Όλα φαίνονται κανονικά σε tablet/desktop. */
  table.moria-table th:nth-child(2), table.moria-table td:nth-child(2),
  table.moria-table th:nth-child(3), table.moria-table td:nth-child(3),
  table.moria-table th:nth-child(6), table.moria-table td:nth-child(6) { display: none; }
  table.moria-table { min-width: 0; font-size: .85rem; }
  table.moria-table th, table.moria-table td { padding: .5rem .45rem; }
  table.moria-table th.num { white-space: normal; }   /* κεφαλίδες μπορούν να σπάσουν */
  .moria-table td:first-child { word-break: break-word; }
  .m-status { white-space: normal; }                   /* μεγάλες ενδείξεις («＋ ειδικό») σπάνε */
}
tr.m-pass { border-left:5px solid var(--green); }
tr.m-near { border-left:5px solid var(--orange); }
tr.m-fail { border-left:5px solid var(--magenta); }
.m-status { display:inline-block; font-weight:700; padding:.2rem .6rem; border-radius:999px; font-size:.82rem; white-space:nowrap; }
.m-status.pass { background:#e7f5ec; color:#1f7a45; }
.m-status.near { background:#fdeede; color:#a5590a; }
.m-status.fail { background:#fcebea; color:#a81f1f; }
.m-status.needspec { background:#eef1f6; color:#4a5568; }
tr.m-needspec { border-left:5px solid #b8c0cc; }
tr.m-needspec td { color:var(--ink-soft); }
.m-spectag { display:inline-block; font-size:.7rem; font-weight:700; color:var(--gold); border:1px solid var(--gold-lite);
  border-radius:4px; padding:0 .3rem; vertical-align:middle; }
.moria-empty { padding:1.2rem; color:var(--ink-soft); }

/* ---------- Τα νέα μας ---------- */
.news-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.4rem; }
.news-card { background:var(--surface); border:1px solid var(--line); border-radius:14px; overflow:hidden;
  display:flex; flex-direction:column; box-shadow:0 6px 20px rgba(16,32,60,.06); }
.news-img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.news-content { padding:1rem 1.1rem 1.2rem; display:flex; flex-direction:column; gap:.4rem; }
.news-date { color:var(--gold); font-weight:700; font-size:.85rem; }
.news-title { margin:0; color:var(--heading); font-size:1.12rem; }
.news-body { margin:0; color:var(--ink); }
.news-empty { padding:1rem 0; color:var(--ink-soft); }

/* ---------- Εκπαιδευτικά νέα (Πανελλαδικές) ---------- */
.edunews-list { list-style:none; margin:0; padding:0; max-width:820px; }
.edunews-item { padding:.85rem .2rem; border-bottom:1px solid var(--line); }
.edunews-item:last-child { border-bottom:none; }
.edunews-title { display:block; font-weight:700; color:var(--heading); text-decoration:none; font-size:1.02rem; line-height:1.35; }
.edunews-title:hover, .edunews-title:focus-visible { color:var(--gold); text-decoration:underline; }
.edunews-meta { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; margin-top:.3rem; font-size:.82rem; color:var(--ink-soft); }
.edunews-src { background:var(--surface); color:var(--heading); font-weight:700; padding:.08rem .55rem; border-radius:999px; border:1px solid var(--line); }

/* ---------- Οδηγίες χρήσης (κουμπί «?» + dialog) ---------- */
.hero-help-row { margin:1rem 0 0; }
.help-btn { display:inline-flex; align-items:center; gap:.55rem; background:var(--surface); color:var(--heading);
  border:2px solid var(--gold-lite); border-radius:999px; padding:.5rem 1rem .5rem .6rem; font:inherit;
  font-weight:700; font-size:.95rem; cursor:pointer; text-align:left; line-height:1.2; }
.help-btn:hover, .help-btn:focus-visible { background:var(--gold); border-color:var(--gold); color:#fff; }
.help-btn:hover .help-q, .help-btn:focus-visible .help-q { background:var(--surface); color:var(--gold); }
.help-q { flex:none; display:inline-flex; align-items:center; justify-content:center; width:1.5em; height:1.5em;
  border-radius:50%; background:var(--gold); color:#fff; font-weight:800; font-size:.95em; }

.help-dialog { border:none; border-radius:14px; padding:0; max-width:640px; width:calc(100% - 2rem);
  max-height:calc(100vh - 3rem); overflow:auto; box-shadow:0 20px 60px rgba(16,32,60,.35); color:var(--ink); }
.help-dialog::backdrop { background:rgba(16,32,60,.55); }
.help-dialog-inner { padding:1.6rem 1.7rem 1.4rem; position:relative; }
.help-close { position:absolute; top:.5rem; right:.6rem; width:2rem; height:2rem; border:none; background:transparent;
  font-size:1.7rem; line-height:1; color:var(--ink-soft); cursor:pointer; border-radius:8px; }
.help-close:hover { background:var(--line); color:var(--ink); }
.help-dialog h2 { margin:.1rem 0 1rem; color:var(--heading); font-size:1.3rem; padding-right:2rem; }
.help-dialog h3 { margin:1.2rem 0 .5rem; color:var(--gold); font-size:1.02rem; }
.help-steps, .help-caveats { margin:0; padding-left:1.15rem; }
.help-steps li, .help-caveats li { margin:.35rem 0; }
.help-note { background:#f4f6fa; border-radius:10px; padding:.7rem .9rem; margin:.6rem 0 .8rem; }
.help-eg { color:var(--ink-soft); font-size:.9rem; }
.help-legend { list-style:none; margin:0; padding:0; }
.help-legend li { margin:.55rem 0; }
.help-legend .m-status { margin-right:.45rem; }
.help-example { border-left:4px solid var(--gold-lite); background:#fbf7ee; padding:.75rem .9rem;
  border-radius:0 8px 8px 0; margin:.9rem 0; }
.help-actions { margin-top:1.3rem; text-align:right; }

.moria-disclaimer { background:var(--bg-alt); border-left:5px solid var(--gold); border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  padding:1rem 1.2rem; color:var(--ink-soft); font-size:.92rem; }
.moria-disclaimer strong { color:var(--ink); }

/* ---------- Hero: 3 κουμπιά ίσου μεγέθους, σε μία σειρά (desktop/tablet) ---------- */
.hero-actions { flex-wrap: nowrap; align-items: stretch; }
.hero-actions .btn { flex: 1 1 0; min-width: 0; justify-content: center; text-align: center;
  padding-left: .9rem; padding-right: .9rem; font-size: .95rem; line-height: 1.2; }

/* ---------- Ταινία κύλισης φωτογραφιών (Στιγμές) ---------- */
.photo-marquee-sec { overflow: hidden; }
.marquee-label { text-align: center; color: var(--ink-soft); font-weight: 700; font-size: .85rem;
  text-transform: uppercase; letter-spacing: .6px; margin: 2rem 0 .9rem; }
.marquee { width: 100%; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.marquee-track { display: flex; gap: 1rem; width: max-content; animation: marquee-scroll 70s linear infinite; }
.marquee-track img { flex: 0 0 auto; height: 300px; width: auto; border-radius: 12px;
  border: 3px solid #fff; box-shadow: var(--shadow); }
.marquee:hover .marquee-track { animation-play-state: paused; }
@keyframes marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 640px) { .marquee-track img { height: 220px; } }
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none; }
  .marquee { overflow-x: auto; }
}

/* --- «Οι χώροι μας»: gallery + lightbox --- */
.xoroi-grid { list-style:none; margin:0; padding:0; display:grid; gap:.9rem;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); }
.xoroi-item { min-width:0; }
.xoroi-btn { display:block; width:100%; padding:0; border:1px solid var(--line); background:var(--surface);
  border-radius:var(--radius); overflow:hidden; cursor:pointer; box-shadow:var(--shadow);
  transition:transform .18s ease, box-shadow .18s ease; }
.xoroi-btn:hover, .xoroi-btn:focus-visible { transform:translateY(-3px); box-shadow:0 10px 26px rgba(16,32,60,.18); }
.xoroi-btn figure { margin:0; }
.xoroi-btn img { display:block; width:100%; height:210px; object-fit:cover; background:var(--bg-alt); }
.xoroi-btn figcaption { padding:.55rem .7rem; font-size:.9rem; color:var(--ink-soft); text-align:left; }

.xoroi-lb { border:none; padding:0; background:transparent; max-width:100vw; max-height:100vh;
  width:100%; height:100%; overflow:hidden; }
.xoroi-lb::backdrop { background:rgba(10,20,40,.92); }
.xoroi-lb-img { display:block; max-width:min(94vw, 1200px); max-height:82vh; width:auto; height:auto;
  margin:0 auto; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.xoroi-lb { display:none; }
.xoroi-lb[open] { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; }
.xoroi-lb-cap { color:#fff; margin:0; text-align:center; max-width:80ch; padding:0 1rem; }
.xoroi-lb-count { color:#c8d4e6; margin:0; font-size:.9rem; }
.xoroi-lb-close, .xoroi-lb-prev, .xoroi-lb-next { position:fixed; border:none; cursor:pointer;
  background:rgba(255,255,255,.14); color:#fff; border-radius:50%; line-height:1;
  width:3rem; height:3rem; font-size:2rem; display:grid; place-items:center; }
.xoroi-lb-close:hover, .xoroi-lb-prev:hover, .xoroi-lb-next:hover { background:rgba(255,255,255,.3); }
.xoroi-lb-close { top:1rem; right:1rem; font-size:2.2rem; }
.xoroi-lb-prev { left:1rem; top:50%; transform:translateY(-50%); }
.xoroi-lb-next { right:1rem; top:50%; transform:translateY(-50%); }
@media (max-width:560px) {
  .xoroi-grid { grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:.6rem; }
  .xoroi-btn img { height:150px; }
  .xoroi-lb-prev, .xoroi-lb-next { width:2.6rem; height:2.6rem; font-size:1.6rem; }
  .xoroi-lb-prev { left:.4rem; } .xoroi-lb-next { right:.4rem; }
}

/* --- «Θέματα Πανελλαδικών»: φίλτρα + πίνακας --- */
.th-filters { display:grid; gap:.7rem; align-items:end; margin-bottom:1rem;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); }
.th-f { display:flex; flex-direction:column; gap:.3rem; min-width:0; }
.th-f > span { font-weight:700; font-size:.85rem; color:var(--ink-soft); }
.th-f select, .th-f input { width:100%; padding:.55rem .7rem; border:1px solid var(--line);
  border-radius:var(--radius-sm); font:inherit; background:var(--surface); color:var(--ink); }
.th-reset { justify-self:start; padding:.6rem 1.1rem; font-size:.95rem; }
.th-count { font-weight:700; color:var(--heading); margin:.2rem 0 .8rem; }
.th-table td, .th-table th { vertical-align:middle; }
.th-pdf { display:inline-block; font-weight:700; text-decoration:none; white-space:nowrap;
  padding:.3rem .7rem; border-radius:999px; border:2px solid var(--teal); color:var(--heading); }
.th-pdf:hover { background:var(--teal); color:#fff; }
@media (max-width:640px) {
  /* Κρύβουμε «Κατηγορία» + «Τύπος». ΟΧΙ την «Εξεταστική»: χωρίς το έτος, μια
     αναζήτηση σε όλα τα έτη γίνεται άχρηστη. Ο πίνακας μοιράζεται την κλάση
     .moria-table, που κρύβει τη στήλη 2 — γι' αυτό την επαναφέρουμε ρητά
     (ίδια specificity, πιο κάτω στο αρχείο → υπερισχύει). */
  table.th-table th:nth-child(2), table.th-table td:nth-child(2) { display:table-cell; }
  table.th-table th:nth-child(3), table.th-table td:nth-child(3),
  table.th-table th:nth-child(4), table.th-table td:nth-child(4) { display:none; }
  .th-table td:nth-child(2) { font-size:.85rem; color:var(--ink-soft); white-space:nowrap; }
}

/* --- «Οι καθηγητές μας»: κάθετο βίντεο (9:16) με click-to-play --- */
.teachers-head { text-align:center; margin:0 auto 1.6rem; }
.teachers-video { max-width:340px; margin:0 auto; }
.tv-frame, .tv-play {
  display:block; width:100%; aspect-ratio:9/16; border-radius:18px; overflow:hidden;
  border:1px solid var(--line); box-shadow:var(--shadow-lg); background:#0b1a33; }
.tv-play { position:relative; padding:0; cursor:pointer; border:0; }
.tv-play img { width:100%; height:100%; object-fit:cover; display:block; }
.tv-play::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(11,26,51,.05), rgba(11,26,51,.35)); }
.tv-play-icon {
  position:absolute; z-index:2; top:50%; left:50%; transform:translate(-50%,-50%);
  width:74px; height:74px; border-radius:50%; display:grid; place-items:center;
  background:var(--magenta); color:#fff; box-shadow:0 8px 24px rgba(0,0,0,.35);
  transition:transform .15s ease, background-color .15s ease; padding-left:4px; }
.tv-play:hover .tv-play-icon, .tv-play:focus-visible .tv-play-icon { transform:translate(-50%,-50%) scale(1.08); background:var(--magenta-dark); }
.tv-frame video { width:100%; height:100%; object-fit:cover; display:block; background:#0b1a33; }


/* =========================================================
   DARK MODE — ενεργό όταν <html data-theme="dark">.
   Το data-theme το ορίζει inline script στο <head> (localStorage ή συσκευή),
   ώστε να μη «τρεμοπαίζει» το φως στο φόρτωμα.
   Οι brand-navy/χρυσές/social αποχρώσεις μένουν ίδιες· γυρίζουν μόνο τα ουδέτερα.
   ========================================================= */
:root[data-theme="dark"] {
  --ink:        #e6ecf5;
  --ink-soft:   #a7b6cc;
  --bg:         #0f1826;
  --bg-alt:     #16233b;
  --surface:    #182b47;
  --line:       #2b3d5a;
  --heading:    #93b7ff;   /* τίτλοι/links — AA πάνω σε dark surface */
  --magenta:      #cda552; /* eyebrow/accent text → φωτεινό χρυσό */
  --magenta-dark: #e0c179; /* a:hover */
  --focus:      #7fb0ff;
  --footer-bg:  #0b1420;
  --shadow:     0 8px 22px rgba(0,0,0,.45);
  --shadow-lg:  0 16px 40px rgba(0,0,0,.55);
  color-scheme: dark;
}
[data-theme="dark"] .site-header { background: rgba(15,24,38,.92); }
[data-theme="dark"] .hero {
  background:
    radial-gradient(1200px 400px at 80% -20%, rgba(70,120,200,.18), transparent 60%),
    linear-gradient(180deg, #16233b 0%, #0f1826 100%);
}
[data-theme="dark"] .location-map { background:#16233b; }
[data-theme="dark"] .help-note { background:#16233b; }
[data-theme="dark"] .help-example { background:#241f13; }
[data-theme="dark"] .reading-highlight { color:#12203a; }  /* σκούρο κείμενο στο κίτρινο highlight */

/* status pastels → σκούρες αποχρώσεις (κρατούν αντίθεση AA) */
[data-theme="dark"] .m-badge.pass, [data-theme="dark"] .m-status.pass { background:rgba(46,158,91,.22); color:#66d99a; }
[data-theme="dark"] .m-badge.near, [data-theme="dark"] .m-status.near { background:rgba(242,138,26,.22); color:#f2b062; }
[data-theme="dark"] .m-badge.fail, [data-theme="dark"] .m-status.fail { background:rgba(212,42,42,.24); color:#ff9a9a; }
[data-theme="dark"] .m-badge.info, [data-theme="dark"] .m-status.needspec { background:rgba(255,255,255,.08); color:#a7b6cc; }

/* Εναλλαγή λογότυπου στο header (σκούρο logo → λευκό logo) */
.brand-logo-dark { display:none; }
[data-theme="dark"] .brand-logo-light { display:none; }
[data-theme="dark"] .brand-logo-dark { display:block; }

/* Κουμπί εναλλαγής θέματος (ίδιο στιλ με το hamburger) */
.theme-toggle { display:grid; place-items:center; width:46px; height:46px; flex:0 0 auto;
  background:var(--surface); border:2px solid var(--line); border-radius:12px; cursor:pointer;
  color:var(--heading); padding:0; }
.theme-toggle:hover { background:var(--bg-alt); }
.theme-toggle svg { width:22px; height:22px; }
.theme-toggle .ico-sun { display:none; }
[data-theme="dark"] .theme-toggle .ico-moon { display:none; }
[data-theme="dark"] .theme-toggle .ico-sun { display:block; }
