/* ============================================================
   Archeion+ — swipe.css  (κινητό και tablet, κάτω από 1024px)

   Πλοήγηση τύπου «feed», σαν εφαρμογή:
     · σύρσιμο πάνω/κάτω     → επόμενη / προηγούμενη ενότητα
     · σύρσιμο αριστερά/δεξιά → επόμενη / προηγούμενη σελίδα  (js/swipe.js)

   Το αρχείο το φορτώνει το μικρό script στο <head> (μόνο με JavaScript και
   μόνο κάτω από 1024px). Χωρίς JavaScript η σελίδα μένει απλή κάθετη ροή.

   Κέλυφος: η σελίδα δεν κυλά. Κεφαλίδα επάνω, μπάρα σελίδων κάτω, και ανάμεσα
   το .page-scroll, που κυλά και «κουμπώνει» ανά οθόνη. Έτσι η γραμμή διεύθυνσης
   του browser δεν ανεβοκατεβαίνει και κάθε οθόνη έχει σταθερό, γνωστό ύψος.

   ΚΑΘΕ ΟΘΟΝΗ ΕΧΕΙ ΑΚΡΙΒΩΣ ΤΟ ΥΨΟΣ --sw-h (το γράφει το swipe.js σε px).
   Το swipe.js φροντίζει να χωρά το περιεχόμενο: μοιράζει τις ομάδες σε
   περισσότερες οθόνες, και ό,τι περισσεύει το μικραίνει ελαφρά (zoom).
   Μόνο αν δεν γίνεται αλλιώς (φόρμα, ανοιχτή απάντηση) η οθόνη κυλά μέσα της.
   ============================================================ */

:root {
  --sw-rail: calc(2.75rem + env(safe-area-inset-bottom, 0px));
  --sw-h: calc(100vh - var(--header-h) - var(--sw-rail));
}
@supports (height: 100dvh) {
  :root { --sw-h: calc(100dvh - var(--header-h) - var(--sw-rail)); }
}

/* ---------- Κέλυφος ---------- */

html, body { height: 100%; overflow: hidden; overscroll-behavior: none; }
body { display: flex; flex-direction: column; height: 100vh; height: 100dvh; }
.site-header { position: relative; flex: none; }
.page-scroll {
  flex: 1 1 0; min-height: 0; position: relative;
  overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch;
  scroll-snap-type: y mandatory; overscroll-behavior: contain;
  scrollbar-width: none;
}
.page-scroll::-webkit-scrollbar { display: none; }

.subnav, .marquee, .ar-progress { display: none; }
.service, #pos-douleuoume { scroll-margin-top: 0; }

/* ---------- Οθόνες ---------- */

main > .hero,
main > .page-head,
main > section.band,
.method__head,
.method-step,
.service,
.project,
.cta,
.site-footer,
.sw-screen {
  box-sizing: border-box;
  height: var(--sw-h); min-height: 0;
  overflow: hidden;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

/* Κουτιά που απλώς περιέχουν οθόνες */
main > .sw-split, .service.sw-split, .sw-split .project { height: auto; overflow: visible; scroll-snap-align: none; }
main > section.band.sw-split, main > div.band.sw-split { display: block; padding-block: 0; counter-reset: step; }
main > .sw-split > .wrap, .sw-split .chapter__main { display: block; }
.sw-split .steps { counter-reset: none; }

/* Τελευταία λύση: η οθόνη κυλά μέσα της (φόρμα επικοινωνίας, ανοιχτή απάντηση) */
.sw-flow { overflow-y: auto !important; overscroll-behavior-y: auto; scrollbar-width: none; }
.sw-flow.sw-tall { height: auto !important; min-height: var(--sw-h); overflow: visible !important; }

/* Όσο το swipe.js μετρά, το περιεχόμενο στοιχίζεται επάνω (για να φαίνεται όλο το ξεχείλισμα) */
.sw-measure { justify-content: flex-start !important; align-content: start !important; }
.sw-measure > .hero__in { height: auto !important; justify-content: flex-start !important; }

main > section.band, .cta, main > .page-head, .site-footer, .sw-screen { display: flex; flex-direction: column; justify-content: center; }
main > section.band, .cta, main > .page-head { padding-block: 1rem; }
main > section.band > .wrap, .cta > .wrap, main > .page-head > .wrap, .site-footer > .wrap { width: 100%; }
.sw-screen { gap: 1.25rem; padding-block: .75rem; }

main h2 { font-size: clamp(1.75rem, 7.4vw, 2.5rem); }
.chapter, .sec-head, .split { gap: 1rem; }
.chapter__main { gap: 1.25rem; }
.chapter__side p:not(.label):not(:has(.more)) { display: none; }   /* το δευτερεύον κείμενο περιθωρίου μένει για το desktop */
/* ο σύνδεσμος «περισσότερα» του περιθωρίου πηγαίνει κάτω από το περιεχόμενο */
.chapter { display: flex; flex-direction: column; }
.chapter__side { display: contents; }
.chapter__side > p:has(.more) { order: 9; }
.stack--lg { gap: 1.5rem; }
.lede { font-size: 1.0625rem; }

/* Πρώτο βήμα όταν μια οθόνη δεν χωρά: φεύγουν τα δευτερεύοντα, σφίγγουν τα κενά */
.sw-tight { padding-block: .5rem !important; }
.sw-tight .trust, .sw-tight .hero__cta .small, .sw-tight .sw-cue span, .sw-tight .crumbs { display: none; }
.sw-tight .stack--lg, .sw-tight .chapter__main, .sw-tight.sw-screen { gap: .9rem; }
.sw-tight .lede { font-size: 1rem; }

/* ---------- Πρώτη οθόνη ---------- */

.hero__in {
  height: 100%; min-height: 0; justify-content: center; gap: 1.5rem;
  padding-block: 1.5rem 4rem;
}
.hero.sw-tight .hero__in { padding-block: 1rem 3rem; gap: 1.1rem; }
.hero h1 { font-size: clamp(2.5rem, 12.5vw, 4.5rem); }
.hero__copy { gap: 1.2rem; }
.hero__cta { flex-direction: column; align-items: flex-start; gap: .75rem; }
/* το «+» από φύλλα χαρτιού: μεγάλο, κομμένο στην άκρη, πίσω από το κείμενο */
.hero__poster { width: min(62vw, 17rem); top: .25rem; right: -4.5rem; opacity: .26; }
.trust { gap: .5rem 1.25rem; padding-top: 1rem; }
.trust__list { gap: .25rem 1.25rem; font-size: .875rem; flex: 1 1 100%; }
.trust__iso { display: none; }

main > .page-head { padding-block: 1.5rem 4rem; }
.page-head::after { --size: min(46vw, 12rem); top: 1.25rem; right: -2.25rem; opacity: .3; }
.page-head h1 { font-size: clamp(2.125rem, 9.5vw, 3.5rem); }
.page-head__in { gap: 1.1rem; }

/* Βελάκι «σύρετε προς τα κάτω» στην πρώτη οθόνη κάθε σελίδας (το βάζει το swipe.js) */
.sw-cue {
  position: absolute; left: 50%; bottom: .75rem; transform: translateX(-50%); z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: .35rem;
  background: none; border: 0; padding: .25rem .75rem; cursor: pointer; -webkit-tap-highlight-color: transparent;
  font: 500 .75rem/1 var(--sans); letter-spacing: .08em; color: var(--on-ink-muted);
  transition: opacity .4s;
}
.sw-cue svg { width: 1.5rem; height: 1.5rem; fill: none; stroke: var(--accent-light); stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; animation: sw-cue 1.6s ease-in-out infinite; }
.sw-cue.is-gone { opacity: 0; pointer-events: none; }
@keyframes sw-cue { 0%, 100% { transform: translateY(-4px); opacity: .55; } 50% { transform: translateY(4px); opacity: 1; } }

/* ---------- Αρχική ---------- */

.ledger__row { padding-block: .8rem; }
.ledger__row dd { font-size: clamp(2.25rem, 12vw, 3.75rem); }

/* Η διαδρομή: μία οθόνη-τίτλος (με τα πέντε βήματα) και μία οθόνη ανά υπηρεσία */
.method { padding-block: 0; }
.method__in { gap: 0; }
.method__steps { gap: 0; }
.method__head { display: flex; flex-direction: column; justify-content: center; gap: 1rem; }
.method__head h2 { font-size: clamp(1.75rem, 8vw, 3rem); }
.method__head .method__nav { display: block; margin-top: .5rem; }
.method__head .method__nav::before, .method__head .method-progress-bar { display: none; }
.method__head .method__nav ol { grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--on-ink-line); }
.method__head .method__nav li {
  flex-direction: row; align-items: center; gap: .9rem; padding: .7rem 0; border-bottom: 1px solid var(--on-ink-line);
  font: 600 1.3125rem/1.2 var(--serif); color: var(--white);
}
.method__head .method__nav li::before { width: .7rem; height: .7rem; box-shadow: none; background-color: transparent; transform: none; }
.method__head .method__nav b { display: inline-block; min-width: 1.4rem; margin-right: .35rem; }

.method-step { align-content: center; gap: 1.25rem; padding-block: 1rem; border-top: 1px solid var(--on-ink-line); }
.method-step__visual { order: -1; }
.method-step__visual::before { font-size: 7rem; top: -.5rem; }
.method-step .illo { max-height: calc(var(--sw-h) * .34); max-width: 100%; margin-inline: auto; }
.method-step h3 { font-size: clamp(2.25rem, 11vw, 3.75rem); }
.method-step__text { gap: .8rem; }

.index a { padding: .7rem 0; }
.index__name { font-size: 1.3125rem; }
.index__what { font-size: .875rem; }
.index__val { font-size: 1.625rem; }

.drawer__tabs { grid-auto-columns: minmax(9.5rem, 1fr); }
.folder { padding: 1.1rem; gap: .8rem; }

/* ---------- Υπηρεσίες, Έργα ---------- */

main > div.band { padding-block: 0; }
.service { align-content: center; padding-block: 1rem; gap: 1rem; }
.service:last-child::before { bottom: 0; height: auto; }
.service .ico { display: none; }
.service__head { gap: .5rem; }
.service__head h2 { font-size: clamp(2rem, 9.5vw, 2.75rem); }
.service__body { gap: .85rem; }
.service__body > p:first-child { font-size: 1.125rem; }
.plus-list { gap: .5rem; font-size: .9375rem; }
.service .plus-list { gap: .45rem; font-size: .9rem; }
.two-col { gap: .75rem; }
.service .two-col p, .service .note { font-size: .875rem; }
.service .two-col h3 { font-size: 1.125rem; }
/* υπηρεσία μοιρασμένη σε δύο οθόνες: η γραμμή-ίχνος συνεχίζει και στις δύο */
.service.sw-split { display: block; padding-block: 0; }

.project { align-content: center; padding-block: 1.5rem; gap: .9rem; }
.sw-screen .project { padding-block: 1.25rem; }
.project__body { gap: .8rem; }
.project__body h2 { font-size: clamp(1.875rem, 8.5vw, 2.5rem); }
.project__big { font-size: clamp(2.5rem, 12vw, 3.5rem); }

/* ---------- Ομάδες καταχωρίσεων ---------- */

.defs, .steps, .voices { grid-template-columns: minmax(0, 1fr); gap: 0; }
.def, .voice { padding: .8rem 0 .9rem; gap: .35rem; }
.def p, .voice p, .step p { font-size: .9rem; }
.step { padding: .9rem 0 1rem; gap: .3rem; border-top-color: var(--on-ink-line); }
.step::before { font-size: 1.75rem; }
.step--qc::after { top: 1rem; }
.def h3, .voice h3, .step h3 { font-size: 1.1875rem; }
.qa { border-bottom: 0; }
.qa__row { padding-block: 1.1rem; gap: .7rem; }
.qa__a { font-size: clamp(1.375rem, 6.4vw, 2rem); }
.qa__a small { margin-top: .6rem; }
.sw-screen .scale { border-top: 2px solid var(--ink); }

/* Καθολικό με πολλούς αριθμούς (σελίδα Έργα): δύο στήλες, ώστε να χωρά σε μία οθόνη */
.ledger:has(> .ledger__row:nth-child(4)) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
.ledger:has(> .ledger__row:nth-child(4)) .ledger__row { align-content: start; padding-block: .6rem; }
.ledger:has(> .ledger__row:nth-child(4)) dd { font-size: clamp(1.75rem, 8.4vw, 2.5rem); }
.ledger:has(> .ledger__row:nth-child(4)) dt { font-size: .9375rem; }
.ledger:has(> .ledger__row:nth-child(4)) dt small { font-size: .8125rem; }

/* ---------- Κλάδοι ---------- */

.sectors { gap: .9rem; }
.sectors__tab { padding: .5rem 0; }
.sector { gap: .9rem; }
.sector__keep { padding-bottom: .8rem; }
.sector__years { font-size: clamp(3rem, 15vw, 4.5rem); }
.sector__cols { gap: .7rem; }
.sector__cols > div { gap: .25rem; }
.sector__cols p { font-size: .9rem; }
.scale__row { padding-block: .55rem; gap: .25rem 1rem; }
.scale__track { height: 1.25rem; }
.scale__note { margin-top: .6rem; font-size: .8125rem; }

/* ---------- Ασφάλεια: τα τέσσερα ISO σε μία οθόνη ---------- */

.iso { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.iso__item { padding: 1.1rem 1rem .9rem; }
.iso__n { font-size: clamp(2rem, 9.5vw, 2.75rem); }
.iso__d { display: none; }

/* ---------- Συχνές ερωτήσεις ---------- */

.faq__item summary { padding: .8rem 0; font-size: 1.0625rem; gap: 1rem; }
.faq__a { padding: 0 0 1rem; font-size: .9375rem; }

/* ---------- Κλείσιμο και υποσέλιδο ---------- */

.cta { padding-bottom: 1.5rem; border-top: 0; }
.cta::after { --size: min(46vw, 12rem); top: 1.25rem; bottom: auto; right: -2.25rem; opacity: .3; }
.cta h2 { font-size: clamp(1.875rem, 8.5vw, 3rem); }
.cta__in { gap: 1.25rem; }

.site-footer { padding-block: 1rem; font-size: .875rem; }
.footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1.5rem; }
.footer__brand { grid-column: 1 / -1; gap: .4rem; }
.footer__brand img, .footer__brand p:not(.footer__tag) { display: none; }
.footer__tag { font-size: 1.375rem; }
.footer__grid > :last-child { grid-column: 1 / -1; }
.footer__grid > :last-child .footer__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem 1.5rem; }
.footer__h { margin-bottom: .5rem; }
.footer__list { gap: .4rem; }
.footer__legal { margin-top: 1.25rem; padding-top: .9rem; font-size: .75rem; gap: .5rem; }

/* ---------- Μπάρα σελίδων (την φτιάχνει το swipe.js) ---------- */

.sw-rail {
  flex: none; position: relative; z-index: 45;
  height: var(--sw-rail); padding: 0 max(1rem, env(safe-area-inset-left, 0px)) env(safe-area-inset-bottom, 0px);
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: .75rem;
  background: var(--ink);
  border-top: 1px solid var(--on-ink-line);
  font: 600 .8125rem/1 var(--sans); color: var(--on-ink-muted);
}
.sw-rail a { display: inline-flex; align-items: center; gap: .45rem; min-height: 2.75rem; color: var(--white); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; -webkit-tap-highlight-color: transparent; }
.sw-rail__next { justify-self: end; }
.sw-rail svg { flex: none; width: .9rem; height: .9rem; fill: none; stroke: var(--accent-light); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sw-rail__next svg { animation: sw-nudge 1.8s ease-in-out infinite; }
.sw-rail__dots { display: flex; align-items: center; gap: .4rem; }
.sw-rail__dots span { width: .3rem; height: .3rem; background: rgba(255, 255, 255, .35); }
.sw-rail__dots span.is-on { width: .55rem; height: .55rem;
  background: linear-gradient(var(--accent-light), var(--accent-light)) center / 100% var(--plus-w) no-repeat, linear-gradient(var(--accent-light), var(--accent-light)) center / var(--plus-w) 100% no-repeat; }
@keyframes sw-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(4px); } }

@media (prefers-reduced-motion: reduce) {
  .sw-cue svg, .sw-rail__next svg { animation: none; }
}
