/* ============================================================
   PRESTO — Η αρχική ως ΜΙΑ συνομιλία (os.css)

   Όπως ανοίγει το ChatGPT: αριστερά λιτό μενού, δεξιά ΜΙΑ
   συνομιλία σε καθαρή κολόνα. Ό,τι μπαίνει στη ροή — κάρτες,
   χάρτης, κουτάκια, εισιτήριο — πιάνει ΤΟ ΙΔΙΟ πλάτος.
   Λευκό/γκρι βάση, ΜΑΥΡΑ κουμπιά ενεργειών, πράσινο ΜΟΝΟ για
   διαθεσιμότητα, γαλάζιο μόνο στα μηνύματα του επισκέπτη.

   ΚΑΝΟΝΕΣ ΠΟΥ ΜΕΤΡΙΟΥΝΤΑΙ (pixel-audit σε κάθε build):
   - Μία γραμματοσειρά (var(--osf)), μεγέθη ΜΟΝΟ var(--fs-*)
   - Κάθε στόχος αφής ≥ 44×44
   ============================================================ */

:root{
  --osf:-apple-system,BlinkMacSystemFont,'Inter','Segoe UI',Roboto,sans-serif;
  /* ΟΛΟ το site μιλά το ίδιο μονόχρωμο: ό,τι έβαφε «μπλε brand»
     στο app.css/panel.css (κουμπιά, επιλογές, σύνδεσμοι) γίνεται
     ΜΑΥΡΟ — όπως στα εγκεκριμένα previews. Το πράσινο μένει μόνο
     για διαθεσιμότητα/καταστάσεις, το γαλάζιο μόνο στις φούσκες. */
  --brand:#0D0D0D; --brand-d:#2A2A2E; --brand-l:#F0F0F2; --brand-xl:#F7F7F8;
  --brand-2:#6E6E76; --brand-wash:#F7F7F8;
  --nbg:#fff; --nsoft:#F7F7F8; --nline:#E7E7EA; --nline2:#DEDEE3;
  --nink:#0D0D0D; --nink2:#6E6E76; --nink3:#A9A9B0;
  --nok:#0E8345; --nok-l:#E7F6EC; --nbad:#D93025;
  --nub:#DEEDFB; --nut:#0F3D66; --nblue:#3B82F6;
}
body.osx,body.osx *,body.osx *::before,body.osx *::after{box-sizing:border-box}
/* ΜΙΑ γραμματοσειρά σε όλο το δημόσιο site: και τα εξαρτήματα του
   app.css (var(--f)) μιλούν πια το ίδιο συστημικό σύνολο. */
body.osx{--f:var(--osf);--font:var(--osf)}
/* Τα εικονίδια είναι ΓΡΑΜΜΙΚΑ — ποτέ γεμάτα μαύρα σχήματα */
.osx .i{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Κρυφό για τα μάτια, παρόν για τα εργαλεία ανάγνωσης */
.osx .sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
 clip:rect(0 0 0 0);white-space:nowrap;border:0}
body.osx{margin:0;font-family:var(--osf);color:var(--nink);background:var(--nbg);
 min-height:100vh;display:flex;overflow-x:hidden}
body.osx.ok{}

/* ── Sidebar — όπως το ChatGPT ──────────────────────────── */
.sb{width:256px;flex:none;background:var(--nsoft);border-right:1px solid var(--nline);
 display:flex;flex-direction:column;padding:12px 10px;position:sticky;top:0;height:100vh;
 height:100dvh;z-index:40}
/*  Στο πλαϊνό μενού μπαίνει ΜΟΝΟ το πλακίδιο, κεντραρισμένο: το
    οριζόντιο λογότυπο κολλούσε αριστερά και τραβούσε το μάτι
    μακριά από τη λίστα, που είναι ο λόγος ύπαρξης του μενού. */
.sb__brand{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 8px 10px}
.sb__brand a{display:inline-flex;align-items:center;justify-content:center;
 min-height:44px;min-width:44px;padding:0 2px;
 font:700 var(--fs-16) var(--osf);letter-spacing:-.03em;color:var(--nink);text-decoration:none}
.sb__new{display:flex;align-items:center;gap:9px;min-height:44px;padding:0 11px;border-radius:10px;
 font:500 var(--fs-13) var(--osf);cursor:pointer;border:1px solid var(--nline);background:#fff;
 margin-bottom:12px;color:var(--nink);text-align:left}
.sb__new:hover{background:#F0F0F2}
.sb nav{display:flex;flex-direction:column;gap:1px}
.sb nav a,.sb nav button{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 11px;
 border-radius:9px;font:500 var(--fs-13) var(--osf);color:#3C3C43;text-decoration:none;
 border:0;background:none;cursor:pointer;text-align:left}
.sb nav a:hover,.sb nav button:hover{background:#EFEFF1;color:var(--nink)}
.sb .i{width:15px;height:15px;stroke:var(--nink3);flex:none}
.sb__sect{font:600 var(--fs-11) var(--osf);color:var(--nink3);letter-spacing:.01em;padding:14px 11px 4px}
.sb__gap{flex:1}
.sb__me{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 8px 0;
 border-top:1px solid var(--nline);font:500 var(--fs-13) var(--osf)}
.sb__me i{width:26px;height:26px;border-radius:50%;background:var(--nink);color:#fff;
 display:grid;place-items:center;font:700 var(--fs-11) var(--osf);font-style:normal;flex:none}
.sb__me small{display:block;font:400 var(--fs-11) var(--osf);color:var(--nink3)}
#osshade{position:fixed;inset:0;background:rgba(0,0,0,.32);z-index:35;border:0;padding:0}
[hidden]{display:none !important}

/* ── Κύρια περιοχή ──────────────────────────────────────── */
.mainw{flex:1;min-width:0;display:flex;flex-direction:column;height:100vh;height:100dvh}
.mainw>main{flex:1;min-height:0;display:flex;flex-direction:column}
.nhd{display:flex;align-items:center;gap:8px;min-height:52px;padding:0 16px;flex:none}
.nhd__burger{display:none;width:44px;height:44px;flex:none;border:0;background:none;cursor:pointer;
 border-radius:10px;place-items:center;color:var(--nink)}
.nhd__burger:hover{background:var(--nsoft)}
.nhd__burger .i{width:19px;height:19px;stroke:var(--nink)}
/*  Το σήμα είναι ΣΥΝΔΕΣΜΟΣ προς την αρχική, άρα υπακούει στον κανόνα
    των 44×44 όπως κάθε άλλο πατούμενο. Η εικόνα μένει 30px και το
    περιθώριο κάνει τη διαφορά: δεν μεγαλώνει το λογότυπο για να
    περάσει ο έλεγχος, μεγαλώνει η περιοχή του δαχτύλου. Ο κανόνας
    είναι ΚΑΘΟΛΙΚΟΣ — η σελίδα της συνομιλίας δεν είναι .osx--page
    και είχε μείνει έξω. */
.nhd__brand{display:none;align-items:center;min-height:44px;padding:0 7px;flex:none;
 font:700 var(--fs-16) var(--osf);letter-spacing:-.03em;color:var(--nink);text-decoration:none}
.nhd__brand img{display:block;height:30px;width:30px}
/* Χωρίς σήμα, η κεφαλίδα δεν μένει άδεια: γράφει το όνομα. */
.nhd__wm{font:700 var(--fs-16) var(--osf);letter-spacing:-.03em;color:var(--nink)}
.sb__brand img{display:block;height:34px;width:34px}
.nhd .sp{flex:1}
.livehint{display:inline-flex;align-items:center;gap:6px;font:500 var(--fs-12) var(--osf);color:var(--nink2)}
.livehint i{width:7px;height:7px;border-radius:50%;background:var(--nok);animation:lpulse 2s infinite}
@keyframes lpulse{50%{opacity:.4}}

/* ── Η συνομιλία: μία κολόνα, όλα στο ίδιο πλάτος ───────── */
.chatw{flex:1;min-height:0;display:flex;flex-direction:column}
.oscroll{flex:1;min-height:0;overflow:auto;scroll-behavior:smooth;scrollbar-width:none;
 display:flex;flex-direction:column}
.oscroll::-webkit-scrollbar{display:none}
.oslog{flex:1 0 auto;width:min(1000px,100%);margin:0 auto;padding:18px 16px 16px;
 display:flex;flex-direction:column;gap:14px}
.oslog>*{flex:none}

/* Μηνύματα: επισκέπτης = γαλάζια φούσκα δεξιά, βοηθός = σκέτο κείμενο */
.bub{max-width:78%;font:400 var(--fs-15)/1.55 var(--osf)}
.bub--me{align-self:flex-end;background:var(--nub);color:var(--nut);
 border-radius:18px 18px 5px 18px;padding:9px 15px}
.bub--p{align-self:flex-start;max-width:100%;color:var(--nink)}
.bub--p a{color:var(--nink);text-decoration:underline}
/* «Σκέφτεται…» — ήρεμος παλμός όσο ο βοηθός δουλεύει */
.bub--typing{align-self:flex-start;color:var(--nink3);font-weight:500;
 animation:nthink 1.4s ease-in-out infinite}
@keyframes nthink{0%,100%{opacity:.45}50%{opacity:1}}

/* ── Το καλωσόρισμα: κέντρο, σαν ChatGPT ────────────────── */
.oshello{align-self:center;width:100%;margin:auto 0;text-align:center;
 display:flex;flex-direction:column;align-items:center;padding:8px 0}
.oshello__t{display:block;font:600 var(--fs-26) var(--osf);letter-spacing:-.02em;color:var(--nink)}
.oshello__s{margin-top:6px;font:400 var(--fs-14) var(--osf);color:var(--nink2)}
.oshello__s a{color:var(--nink);font-weight:700}
/* Η δεύτερη σειρά είναι ξεχωριστό κάλεσμα, όχι συνέχεια της πρώτης. */
.oshello__s--biz{margin-top:4px}
.oshello__pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:18px}
.chatw .pill{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 15px;
 border-radius:999px;border:1px solid var(--nline2);background:#fff;cursor:pointer;
 font:500 var(--fs-13) var(--osf);color:var(--nink)}
.chatw .pill:hover{background:var(--nsoft)}
.chatw .pill .i{width:15px;height:15px;stroke:var(--nink2);flex:none}
.chatw .pill small{font:500 var(--fs-12) var(--osf);color:var(--nink3)}
.oshello__comp{width:min(680px,100%);margin-top:24px}
.oshello .osin{padding:0;background:none}
.oshello .comp{width:100%}
.oshello .osfoot{width:100%}
.oshello__sug{display:flex;flex-direction:column;gap:2px;margin-top:20px;width:min(680px,100%);text-align:left}
.chatw .sug{display:flex;align-items:center;gap:11px;min-height:44px;padding:0 12px;border-radius:11px;
 font:400 var(--fs-14) var(--osf);color:var(--nink2);cursor:pointer;background:none;border:0;text-align:left}
.chatw .sug:hover{background:var(--nsoft);color:var(--nink)}
.chatw .sug .i{width:14px;height:14px;stroke:var(--nink3);flex:none}

/* ── Chips: ο βοηθός τα δίνει ΜΕΣΑ στη ροή της συνομιλίας ──
   Κάτω από το τελευταίο μήνυμά του, όπως το ChatGPT — καμία
   σταθερή λωρίδα πάνω από το πεδίο. */
.fchips{display:flex;gap:7px;flex-wrap:wrap;margin-top:2px}
.chatw .chip{display:inline-flex;align-items:center;min-height:44px;padding:0 15px;cursor:pointer;
 font:500 var(--fs-13) var(--osf);color:var(--nink);background:#fff;border:1px solid var(--nline2);
 border-radius:999px}
.chatw .chip:hover{background:var(--nsoft)}
.chatw .chip--go{background:var(--nink);color:#fff;border-color:var(--nink);font-weight:600}
.chatw .chip--go:hover{background:#2A2A2E}

/* ── Κουμπιά μέσα στη ροή ───────────────────────────────── */
.nbtn{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;
 background:var(--nink);color:#fff;border-radius:10px;min-height:44px;padding:0 16px;
 font:600 var(--fs-13) var(--osf)}
.nbtn:hover{background:#2A2A2E}
.nghost{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:#fff;
 color:var(--nink);border:1px solid var(--nline2);border-radius:10px;min-height:44px;padding:0 13px;
 font:500 var(--fs-13) var(--osf)}
.nghost:hover{border-color:#C9C9CE}

/* ── Κάρτα αποτελέσματος — ΙΔΙΟ πλάτος με όλα ───────────── */
.rescard{width:100%;background:#fff;border:1px solid var(--nline);border-radius:14px;
 padding:12px 14px 10px;animation:nvin .35s cubic-bezier(.25,1,.4,1)}
@keyframes nvin{from{opacity:0;transform:translateY(8px)}}
.rc__hd{display:flex;align-items:baseline;gap:8px}
.rc__t{flex:1;min-width:0;font:700 var(--fs-14) var(--osf);letter-spacing:-.015em;
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc__rt{font:700 var(--fs-12) var(--osf);color:var(--nink);flex:none}
.rc__rt small{font:400 var(--fs-11) var(--osf);color:var(--nink3);margin-left:3px}
.rc__meta{display:block;font:400 var(--fs-12) var(--osf);color:var(--nink2);margin-top:2px;
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc__sl{display:flex;align-items:center;gap:7px;margin-top:10px;flex-wrap:wrap}
.rc__day{font:700 var(--fs-11) var(--osf);color:var(--nink3);letter-spacing:.05em;flex:none}
/* Κινητό: η μέρα ΠΑΝΩ από τις ώρες — οι ώρες τυλίγονται σε καθαρές
   σειρές από την αριστερή ακμή, όχι μισές κάτω από την ετικέτα */
@media (max-width:560px){.rc__day{flex-basis:100%}}
.rc__go{border:0;cursor:pointer;min-height:44px;padding:0 16px;border-radius:10px;
 font:600 var(--fs-13) var(--osf);color:#fff;background:var(--nink)}
.rc__go:hover{background:#2A2A2E}
.rc__alt{cursor:pointer;min-height:44px;padding:0 13px;border-radius:10px;background:#fff;
 font:500 var(--fs-13) var(--osf);color:var(--nink);border:1px solid var(--nline2)}
.rc__alt:hover{border-color:var(--nink)}
.rc__pg{display:inline-flex;align-items:center;min-height:44px;margin-top:1px;
 font:500 var(--fs-12) var(--osf);color:var(--nink2);text-decoration:none}
.rc__more{border:0;background:none;cursor:pointer;padding:0;margin-right:14px}
.rc__pg:hover{color:var(--nink);text-decoration:underline}

/* ── Χάρτης αποτελεσμάτων ΜΕΣΑ στη ροή ──────────────────── */
.rmap{width:100%;height:300px;border-radius:14px;overflow:hidden;border:1px solid var(--nline);
 background:var(--nsoft)}
.rmap__g{width:100%;height:100%}

/* ── Λίστα / κατηγορίες ΜΕΣΑ στη ροή (κανένα 2ο παράθυρο) ─ */
.lblock{width:100%;background:#fff;border:1px solid var(--nline);border-radius:14px;overflow:hidden;
 animation:nvin .35s cubic-bezier(.25,1,.4,1)}
.osnote{display:flex;justify-content:space-between;gap:8px;padding:10px 16px;
 font:600 var(--fs-11) var(--osf);color:var(--nink2);letter-spacing:.01em;
 border-bottom:1px solid var(--nline);background:var(--nsoft)}
.osnote__ok{color:var(--nok)}
.lrow{display:flex;gap:12px;align-items:center;padding:10px 16px;
 border-bottom:1px solid var(--nline);min-height:60px}
.lrow:last-child{border-bottom:0}
.lrow--sel{background:var(--nsoft)}
.lic{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;flex:none;
 background:var(--nsoft) !important}
.lic .i{width:17px;height:17px;stroke:var(--nink2)}
.lnm{flex:1;min-width:0;cursor:pointer}
.lnm b{display:block;font:700 var(--fs-14) var(--osf);letter-spacing:-.015em}
.lnm small{display:block;font:400 var(--fs-12) var(--osf);color:var(--nink2);margin-top:2px;
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lgo{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;
 border-radius:10px;color:var(--nink3);flex:none}
/* «Δείξε άλλα Χ»: ήσυχη σειρά στο τέλος της λίστας — η συνέχεια
   έρχεται ΜΕΣΑ στο ίδιο μπλοκ, καμία άλλη σελίδα */
.lmore{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:48px;
 border:0;border-top:1px solid var(--nline);background:none;cursor:pointer;
 font:600 var(--fs-13) var(--osf);color:var(--nink)}
.lmore small{font:400 var(--fs-12) var(--osf);color:var(--nink3)}
.lmore:hover{background:var(--nsoft)}
.lmore:disabled{color:var(--nink3);cursor:default}
.lgo .i{width:15px;height:15px}
.lgo:hover{background:var(--nsoft);color:var(--nink)}
.lslots{display:flex;gap:7px;flex-wrap:wrap;flex:none;justify-content:flex-end}
/* «Όλες οι ώρες»: μία σειρά ανά ημέρα, με τη μέρα αριστερά */
/* Όλες οι ώρες: η μέρα ΔΙΚΗ της γραμμή, οι ώρες από κάτω — όλες
   ξεκινούν από την ίδια αριστερή ευθεία, όποιο μήκος κι αν έχει
   η ετικέτα της μέρας. */
.trow{padding:13px 16px 14px;border-bottom:1px solid var(--nline)}
.trow:last-child{border-bottom:0}
.trow__d{display:block;font:700 var(--fs-12) var(--osf);color:var(--nink2);margin-bottom:9px}
/* ΠΛΕΓΜΑ, όχι flex: με flex-wrap κάθε κουμπί είχε το δικό του
   πλάτος («09:00» ≠ «11:15» κατά ένα-δυο pixel) και οι στήλες
   γλιστρούσαν σιγά-σιγά — οι ώρες φαίνονταν «στραβές». Το grid
   δίνει σε ΟΛΑ τα κουμπιά το ίδιο κελί: τέλειες στήλες, σε κάθε
   πλάτος οθόνης. */
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}
.tgrid .slotbtn{width:100%}
.slotbtn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 13px;
 cursor:pointer;border:1px solid var(--nline2);border-radius:10px;font:600 var(--fs-13) var(--osf);
 color:var(--nink);background:#fff;flex:none}
.slotbtn:hover{background:var(--nink);border-color:var(--nink);color:#fff}
.slotbtn--dim{opacity:.4;pointer-events:none}
.slotbtn small{font:600 var(--fs-11) var(--osf);margin-right:6px;opacity:.7}
.catg{display:flex;flex-direction:column}
.catc{display:flex;align-items:center;gap:12px;padding:10px 16px;min-height:60px;cursor:pointer;
 border:0;background:none;text-align:left;border-bottom:1px solid var(--nline);font-family:var(--osf)}
.catc:last-child{border-bottom:0}
.catc:hover{background:var(--nsoft)}
.catc b{flex:1;font:700 var(--fs-14) var(--osf);color:var(--nink)}
.catc small{display:block;font:400 var(--fs-12) var(--osf);color:var(--nink2);margin-top:1px;font-weight:400}
.catc--soon{cursor:default;opacity:.62}
.catc--soon:hover{background:none}
.catc .lic{background:var(--nsoft) !important}
.catc .lic .i{stroke:var(--nink2)}

/* ── Κουτάκι wizard (ΕΝΑ τη φορά) — ίδιο πλάτος ─────────── */
.crd{width:100%;animation:nvin .35s cubic-bezier(.25,1,.4,1)}
.crd--ask{display:block}
.askrow{display:flex;gap:8px;width:100%}
.askrow input{flex:1;min-width:0;border:1px solid var(--nline2);border-radius:11px;min-height:48px;
 padding:0 14px;font:400 var(--fs-15) var(--osf);outline:0;background:#fff;color:var(--nink)}
.askrow input:focus{border-color:var(--nink)}
.cgo{min-width:52px;min-height:48px;border:0;border-radius:11px;background:var(--nink);color:#fff;
 font:600 var(--fs-15) var(--osf);cursor:pointer}
.cgo:hover{background:#2A2A2E}
/* Το «Άκυρο» ζει ΔΙΠΛΑ στο ✓ — ήσυχο, όχι ορφανό κουμπί αλλού */
.cgo--x{background:#fff;color:var(--nink2);border:1px solid var(--nline2)}
.cgo--x:hover{background:var(--nsoft);color:var(--nink)}
.otpr .cgo--x{margin-left:auto}
.oserr{margin-top:6px;font:500 var(--fs-12) var(--osf);color:var(--nbad)}
.otpr{display:flex;gap:8px;flex-wrap:wrap}
.otpb{width:46px;height:56px;text-align:center;border:1px solid var(--nline2);border-radius:11px;
 font:700 var(--fs-21) var(--osf);outline:0;color:var(--nink);background:#fff}
.otpb:focus{border-color:var(--nink)}

/* ── Εισιτήριο κράτησης — ίδιο πλάτος ───────────────────── */
.tkt{display:flex;gap:13px;align-items:flex-start;background:#fff;
 border:1px solid var(--nline);border-radius:14px;padding:15px 16px}
.tkt__ok{width:38px;height:38px;border-radius:50%;background:var(--nok-l);color:var(--nok);
 display:grid;place-items:center;font:600 var(--fs-17) var(--osf);flex:none}
.tkt__bd{flex:1;min-width:0}
.tkt__shop{font:700 var(--fs-14) var(--osf)}
.tkt__shop .stamp{font:700 var(--fs-11) var(--osf);color:var(--nok);letter-spacing:.01em;margin-left:8px}
.tkt__code{font:700 var(--fs-14) var(--osf);font-family:ui-monospace,Menlo,monospace;letter-spacing:.01em}
.tkt__meta{display:block;font:400 var(--fs-12) var(--osf);color:var(--nink2);margin-top:3px}
.tkt__acts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.tkt__acts a{display:inline-flex;align-items:center;min-height:44px;padding:0 13px;border-radius:10px;
 border:1px solid var(--nline2);font:500 var(--fs-12) var(--osf);color:var(--nink);text-decoration:none}
.tkt__acts a:hover{border-color:#C9C9CE}

/* ── Το πεδίο: πάντα στη βάση, σαν ChatGPT ──────────────── */
.osin{flex:none;padding:8px 16px calc(10px + env(safe-area-inset-bottom,0px));
 background:linear-gradient(transparent,var(--nbg) 40%)}
.comp{width:min(968px,100%);margin:0 auto;display:flex;align-items:center;gap:6px;background:#fff;
 border:1px solid var(--nline2);border-radius:26px;padding:5px 5px 5px 18px;
 box-shadow:0 6px 22px -16px rgba(0,0,0,.2)}
.comp:focus-within{border-color:#C9C9CE}
.comp input{flex:1;min-width:0;border:0;outline:0;font:400 var(--fs-15) var(--osf);
 background:none;color:var(--nink)}
.comp input::placeholder{color:var(--nink3)}
.cbtn{width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;display:grid;
 place-items:center;background:none;color:var(--nink2);flex:none}
.cbtn:hover{background:var(--nsoft)}
.cbtn--go{background:var(--nink);color:#fff}
.cbtn--go:hover{background:#2A2A2E}
.cbtn .i{width:18px;height:18px;stroke:currentColor}
/*  «Σε ακούω» που ΦΑΙΝΕΤΑΙ: γεμάτο μπλε, δαχτυλίδι που ανασαίνει
    πιο πλατιά, και κόκκινη κουκκίδα εγγραφής πάνω δεξιά — το
    διεθνές σήμα του «γράφει τώρα». */
.osin__mic--live{background:var(--nblue);color:#fff;position:relative;
  animation:mpulse 1.2s ease-out infinite}
.osin__mic--live::after{content:'';position:absolute;top:2px;right:2px;
  width:8px;height:8px;border-radius:50%;background:var(--nbad);
  animation:mrec 1s ease-in-out infinite}
@keyframes mpulse{0%{box-shadow:0 0 0 0 rgba(59,130,246,.35)}
  70%{box-shadow:0 0 0 12px rgba(59,130,246,0)}
  100%{box-shadow:0 0 0 0 rgba(59,130,246,0)}}

/*  Η πινακίδα «Σε ακούω» — αιωρείται πάνω από το πεδίο, με πέντε
    μπάρες που ανασαίνουν σαν κυματομορφή: φαίνεται από μακριά ότι
    το μικρόφωνο είναι ανοιχτό. */
/*  Στο κέντρο ΤΟΥ CHAT, όχι της οθόνης: στο desktop η στήλη της
    συζήτησης ζει δεξιά από το πλαϊνό μενού (256px) — όλα τα μικρά
    πλακίδια μετατοπίζονται κατά το μισό του, όπως το spill. */
.oslisten{position:fixed;left:50%;bottom:118px;transform:translateX(-50%);z-index:60;
  display:flex;align-items:center;gap:5px;background:var(--nink);color:#fff;
  padding:11px 20px;border-radius:999px;box-shadow:0 12px 34px -14px rgba(0,0,0,.5);
  font:700 var(--fs-14) var(--osf)}
.oslisten b{margin-left:8px;font-weight:700}
.oslisten__b{width:4px;height:18px;border-radius:2px;background:#fff;opacity:.95;
  transform-origin:center;animation:oswave 1.1s ease-in-out infinite}
.oslisten__b:nth-child(2){animation-delay:.14s}
.oslisten__b:nth-child(3){animation-delay:.28s}
.oslisten__b:nth-child(4){animation-delay:.42s}
.oslisten__b:nth-child(5){animation-delay:.56s}
@keyframes oswave{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}
@media (min-width:901px){ .oslisten{left:calc(50% + 128px)} }
/* Ζωντανός μετρητής: τις μπάρες τις κουνά η ΦΩΝΗ, όχι το CSS */
.oslisten--live .oslisten__b{animation:none;transition:transform .07s linear}

/*  «Μιλάει» — ο βοηθός εκφωνεί: πράσινο, με απαλότερη ανάσα και
    χωρίς κουκκίδα εγγραφής (δεν γράφει, μιλάει). */
.osin__mic--talk{background:var(--nok);color:#fff;position:relative;
  animation:mtalk 1.6s ease-in-out infinite}
@keyframes mtalk{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes mrec{50%{opacity:.35}}
.osfoot{width:min(968px,100%);margin:7px auto 0;text-align:center;
 font:400 var(--fs-11) var(--osf);color:var(--nink3)}

/* ── Γρήγορα φίλτρα του καλωσορίσματος: αληθινοί, ΗΣΥΧΟΙ ──── */
.oshello__qf{display:flex;flex-wrap:wrap;gap:0 4px;justify-content:center;margin-top:16px}
.chatw a.chip{text-decoration:none}
.chatw .oshello__qf .chip{border:0;background:none;box-shadow:none;color:var(--nink3);
 font:400 var(--fs-12) var(--osf);padding:0 9px}
.chatw .oshello__qf .chip:hover{color:var(--nink);background:var(--nsoft)}

/* ── Χωρίς JavaScript ───────────────────────────────────── */
.osnojs{width:min(760px,100%);margin:10px auto;padding:0 16px;
 font:400 var(--fs-14) var(--osf);color:var(--nink2)}
.osnojs a{color:var(--nink)}

/* ── Σελίδες περιεχομένου: ίδια γλώσσα, κανονική κύλιση ──── */
body.osx--page{display:flex}
.osx--page .mainw{height:auto;min-height:100vh}
/* flex στήλη που ΤΕΝΤΩΝΕΤΑΙ ως τον πάτο — αλλιώς τα κάθετα auto
   margins του .wrap δεν έχουν χώρο να μοιράσουν και το κεντράρισμα
   δεν συμβαίνει ποτέ. Το .wrap μένει block, ο ρυθμός δεν αλλάζει. */
.osx--page .mainw>main{display:flex;flex-direction:column;flex:1;min-height:0}
.osx--page .nhd{border-bottom:1px solid var(--nline);position:sticky;top:0;
 background:rgba(255,255,255,.94);backdrop-filter:blur(12px);z-index:30}
.npage{flex:1;width:100%;display:flex;flex-direction:column}
/* Οι σελίδες διαβάζονται σαν ΕΓΓΡΑΦΟ στη μέση — ίδια σπονδυλική
   στήλη με τη συνομιλία, όχι περιεχόμενο κολλημένο αριστερά με
   άδειο χώρο δεξιά. Το ίδιο πλάτος παίρνει και το υποσέλιδο. */
/* 1000px στο desktop — ίδιο πλάτος σε ΟΛΟ το δημόσιο, και στο chat */
.npage>.wrap{flex:1;max-width:calc(1000px + 2*var(--gut))}
.osx--page .nfoot{width:min(860px,100%);margin:0 auto}
.nhd__search{display:flex;align-items:center;gap:8px;flex:1;min-width:0;max-width:430px;min-height:44px;
 border:1px solid var(--nline2);border-radius:999px;padding:0 2px 0 14px;background:#fff}
.nhd__search:focus-within{border-color:#C9C9CE}
.nhd__search>.i{width:15px;height:15px;stroke:var(--nink3);flex:none}
/*  ΤΟ ΠΕΔΙΟ ΠΙΑΝΕΙ ΟΛΟ ΤΟ ΥΨΟΣ ΤΗΣ ΜΠΑΡΑΣ.
    Ήταν 16 pixel ψηλό μέσα σε πίστα 52: πατούσες τη μπάρα λίγο πιο
    πάνω ή πιο κάτω από τη γραμμή του κειμένου, η εστίαση δεν πήγαινε
    ποτέ στο input, και ό,τι έγραφες χανόταν — με το placeholder να
    στέκεται εκεί σαν να μη συνέβη τίποτα. Στο κινητό, όπου ο
    αντίχειρας δεν σημαδεύει, αστοχούσε σχεδόν πάντα. */
.nhd__search input{flex:1;min-width:0;width:100%;align-self:stretch;height:auto;
 border:0;outline:0;background:none;
 font:400 var(--fs-14) var(--osf);color:var(--nink)}
.nhd__search input::placeholder{color:var(--nink3)}
/*  Το κουμπί υποβολής: 40px στρογγυλό, γεμάτο, μέσα στην πίστα.
    Δεν γίνεται 44 γιατί ζει ΜΕΣΑ σε πεδίο 46px — η περιοχή αφής
    είναι όλη η δεξιά άκρη της μπάρας, όχι μόνο ο κύκλος. */
/*  44×44, χωρίς εξαίρεση. Η μπάρα μεγάλωσε για να το χωρέσει —
    ο κανόνας του δαχτύλου δεν κάμπτεται επειδή δεν βολεύει. */
.nhd__go{width:44px;height:44px;flex:none;display:grid;place-items:center;cursor:pointer;
  border:0;border-radius:50%;background:var(--nink);color:#fff}
.nhd__go:hover{opacity:.88}
.nhd__go .i{width:16px;height:16px;stroke:currentColor}
.nhd__mic{width:44px;height:44px;border-radius:50%;border:0;background:none;cursor:pointer;
 display:grid;place-items:center;color:var(--nink2)}
.nhd__mic:hover{background:var(--nsoft)}
.nhd__mic .i{width:16px;height:16px;stroke:currentColor}
.nhd__loc{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;
 border-radius:10px;border:0;background:none;font:600 var(--fs-13) var(--osf);
 color:var(--nink);cursor:pointer}
.nhd__loc:hover{background:var(--nsoft)}
.nhd__loc .i{width:12px;height:12px;stroke:var(--nink2)}
.nfoot{display:flex;flex-wrap:wrap;gap:0 18px;justify-content:center;align-items:center;
 padding:20px 16px 24px;font:400 var(--fs-12) var(--osf);color:var(--nink3)}
.nfoot a{color:var(--nink2);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.nfoot a:hover{color:var(--nink)}

/* ── Ειδοποίηση + ένδειξη εργασίας ──────────────────────── */
/*  Και το toast στο ΚΕΝΤΡΟ του chat — όχι κρυμμένο πάνω δεξιά:
    ό,τι αφορά αυτό που μόλις έκανες, εμφανίζεται εκεί που κοιτάς. */
.toast{position:fixed;left:50%;transform:translateX(-50%);top:60px;z-index:55;width:330px;max-width:calc(100vw - 32px);
 display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--nline);
 border-radius:13px;padding:11px 14px;box-shadow:0 14px 40px -18px rgba(0,0,0,.3);cursor:pointer;
 animation:nvin .3s}
.toast__ic{width:30px;height:30px;border-radius:50%;background:var(--nok-l);display:grid;
 place-items:center;flex:none}
.toast__ic .i{width:15px;height:15px;stroke:var(--nok)}
.toast b{display:block;font:600 var(--fs-13) var(--osf)}
.toast span span{display:block;font:400 var(--fs-12) var(--osf);color:var(--nink2)}
/* Πάνω από τα κουμπιά ΚΑΙ το πεδίο γραφής — ποτέ από πάνω τους */
.spill{position:fixed;left:50%;bottom:calc(158px + env(safe-area-inset-bottom,0px));
 transform:translateX(-50%);z-index:50;display:flex;gap:9px;align-items:center;background:var(--nink);
 color:#fff;border-radius:999px;padding:9px 17px;font:500 var(--fs-13) var(--osf);
 box-shadow:0 14px 34px -14px rgba(0,0,0,.5);animation:nvin .25s}
.spill--ok{background:var(--nok)}
.spill i{width:13px;height:13px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;
 border-radius:50%;animation:spin .8s linear infinite}
/* Στο κέντρο ΤΗΣ ΣΥΝΟΜΙΛΙΑΣ, όχι της οθόνης: με το πλαϊνό μενού
   των 256px ανοιχτό, το κέντρο της σελίδας πέφτει αριστερότερα
   από το chat και το μήνυμα καθόταν πάνω στα κουτάκια. */
@media (min-width:901px){ .spill{left:calc(50% + 128px)} .toast{left:calc(50% + 128px)} }
@keyframes spin{to{transform:rotate(360deg)}}

/* ── Κινητό: full-bleed εφαρμογή, sidebar σε συρτάρι ────── */
@media (max-width:900px){
 .sb{display:none}
 body.osx.sbopen .sb{display:flex;position:fixed;left:0;top:0;bottom:0;height:100dvh;
  box-shadow:0 0 60px rgba(0,0,0,.25)}
 .nhd__burger{display:grid}
 .nhd__brand{display:inline-flex}
 .nhd{border-bottom:1px solid var(--nline);min-height:48px;padding:0 8px}
 .nhd .sp{display:none}
 .nhd__search{max-width:none}
 .nhd__loc{display:none}
 /*  ΣΤΕΝΟ ΚΙΝΗΤΟ: ο χώρος πάει στο ΠΕΔΙΟ, όχι στα κενά.
     Με το κουμπί αναζήτησης δίπλα στο μικρόφωνο, στα 390px το
     πεδίο έμενε 128px και το κείμενο κοβόταν στη μέση. Μαζεύουμε
     τα περιθώρια — τα κουμπιά μένουν 44×44, το δάχτυλο δεν χάνει
     τίποτα, το κείμενο χωράει ολόκληρο. */
 .osx--page .nhd{gap:4px;padding-inline:6px}
 .osx--page .nhd__search{gap:5px;padding-left:12px}

 .livehint{font-size:var(--fs-11)}
}
@media (max-width:720px){
 .oslog{padding:14px 12px 12px;gap:12px}
 /* ΚΙΝΗΤΟ = native εφαρμογή: τα κείμενα ΜΕΓΑΛΩΝΟΥΝ, δεν μικραίνουν —
    το ChatGPT στο κινητό γράφει 17px, όχι ψιλά γράμματα ιστοσελίδας. */
 .bub{max-width:86%;font-size:var(--fs-17)}
 /* Ο ΒΟΗΘΟΣ ΜΙΛΑΕΙ ΣΕ ΟΛΟ ΤΟ ΠΛΑΤΟΣ: το 86% είναι για τη φούσκα
    του επισκέπτη — το σκέτο κείμενο του βοηθού δεν έχει λόγο να
    αφήνει κενή λωρίδα δεξιά στο κινητό. */
 .bub--p{max-width:100%}
 .oshello__t{font-size:var(--fs-24)}
 .oshello__s{font-size:var(--fs-15)}
 .chatw .sug{font-size:var(--fs-15);min-height:48px}
 .chatw .sug .i{width:16px;height:16px}
 .chatw .chip{font-size:var(--fs-14);min-height:46px}
 .oshello__sug{width:100%}
 .rmap{height:240px}
 .otpb{width:44px;height:54px}
 .osin{padding:6px 10px calc(10px + env(safe-area-inset-bottom,0px))}
 .comp input{font-size:var(--fs-17)}
 .askrow input{font-size:var(--fs-17)}
 /* Κάρτες και λίστα στο ίδιο, ζωντανό μέγεθος */
 .rc__t{font-size:var(--fs-16)}
 .rc__meta{font-size:var(--fs-13);white-space:normal}
 .rc__go{font-size:var(--fs-15);min-height:48px}
 .rc__alt{font-size:var(--fs-14);min-height:48px}
 .rc__pg{font-size:var(--fs-13)}
 .lnm b{font-size:var(--fs-15)}
 .lnm small{font-size:var(--fs-13)}
 .slotbtn{font-size:var(--fs-14);min-height:46px}
 .lmore{font-size:var(--fs-14)}
 .nbtn,.nghost{font-size:var(--fs-14);min-height:46px}
 .osfoot{font-size:var(--fs-11)}
 /* Λίστα στο κινητό: όνομα ΠΑΝΩ, ώρες σε δική τους σειρά από κάτω —
    τίποτα δεν πατά πάνω σε τίποτα, τίποτα δεν κόβεται στην άκρη */
 .lrow{flex-wrap:wrap;row-gap:4px}
 .lslots{flex-basis:100%;justify-content:flex-start;padding-left:48px}
}

/* ── Σελίδα καταστήματος: ΑΚΡΙΒΩΣ όπως το εγκεκριμένο preview ─
   Έγγραφο σε ήρεμη κολόνα: «Πίσω», φωτογραφίες σαν πλακίδια,
   τίτλος με τη βαθμολογία δίπλα, μία γραμμή με τα ουσιώδη.
   Χωρίς hero-αφίσα, χωρίς λωρίδα στατιστικών. */
.osx--page .hero{border-radius:16px;overflow:hidden;margin-top:14px;max-height:320px;
 background:linear-gradient(140deg,#DDE3EB,#CBD3DE) !important}
.osx--page .shopback{display:inline-flex;align-items:center;min-height:44px;margin-top:2px;
 font:500 var(--fs-13) var(--osf);color:var(--nink2);text-decoration:none}
.osx--page .shopback:hover{color:var(--nink)}
/* Πάνω ΜΟΝΟ το εξώφυλλο — οι υπόλοιπες φωτογραφίες ζουν στη
   δική τους ενότητα, πάνω από τον χάρτη. */
.shophero{display:grid;grid-template-columns:1fr;height:190px}
.shophero__t{position:relative;border-radius:14px;overflow:hidden;display:grid;place-items:center;
 background:linear-gradient(140deg,#DDE3EB,#CBD3DE)}
.shophero__t2{background:linear-gradient(140deg,#E2E7EE,#D2D9E2)}
.shophero__t img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.shophero__glyph .i{width:34px;height:34px;stroke:#98A1AE;fill:none}
.shophero .hero__acts{position:absolute;top:10px;right:10px;display:flex;gap:8px}
.shophero .hero__acts button{width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;
 background:rgba(255,255,255,.92);display:grid;place-items:center;color:var(--nink)}
.shophero .hero__acts .i{width:17px;height:17px}
.shoptt{display:flex;align-items:baseline;gap:10px;margin-top:16px}
.shoptt h1{flex:1;font:700 var(--fs-24) var(--osf);letter-spacing:-.02em;margin:0}
.shoptt__rt{font:700 var(--fs-14) var(--osf);white-space:nowrap;color:var(--nink)}
.shoptt__rt small{color:var(--nink3);font-weight:400;font-size:var(--fs-12)}
.shopsub{margin-top:3px;font:400 var(--fs-13) var(--osf);color:var(--nink2)}
.shopsub--ok{color:var(--nok);font-weight:600}
@media (max-width:560px){.shophero{height:150px}}
.osx--page .sheet{background:none;box-shadow:none;border-radius:0;margin:20px 0 0;padding:0}
.osx--page .sheet h1{font-size:var(--fs-26);font-weight:800;letter-spacing:-.03em}
/* ChatGPT παντού: τα βήματα επιβεβαίωσης ΜΟΝΟΧΡΩΜΑ — το πράσινο
   της παλιάς γλώσσας φεύγει — και όποια σελίδα έχει ΛΙΓΟ
   περιεχόμενο κεντράρεται στην οθόνη αντί να κολλάει επάνω. */
.osx--page .track i.is-done{background:var(--nink)}
.osx--page .otp__trust .i{color:var(--nink3)}
/* Το βήμα του κωδικού: compact κάρτα στο ΚΕΝΤΡΟ της οθόνης,
   οριζόντια και κάθετα — χωρίς μπάρες προόδου, χωρίς γραμμές,
   χωρίς κολλημένη μπάρα κουμπιού. Ένα καθαρό, ήσυχο βήμα. */
.osx--page .stepbar{background:none;border-bottom:0;padding-bottom:0}
.osx--page .otp{display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding-top:var(--s-4)}
.osx--page .otp__ic{width:56px;height:56px;background:var(--nsoft);color:var(--nink2)}
.osx--page .otp__ic .i{width:26px;height:26px}
.osx--page .otp__box{margin:var(--s-6) 0 var(--s-4)}
.osx--page .otp__go{margin-top:var(--s-6);min-width:min(320px,80vw)}
.osx--page .sparse-c{display:flex;flex-direction:column;justify-content:center}

/* ════════════════════════════════════════════════════════════
   ΜΙΑ ΘΕΣΗ ΓΙΑ ΟΛΕΣ ΤΙΣ ΣΕΛΙΔΕΣ
   ────────────────────────────────────────────────────────────
   ΤΟ ΠΡΟΒΛΗΜΑ: «άλλες φορές στο κέντρο, άλλες φορές πάνω πάνω».
   Ισχυε — και ήταν γραμμένο έτσι. Η προεπιλογή κεντράριζε κάθε
   σελίδα κάθετα και μετά έβγαινε εξαίρεση όποια χαλούσε. Δηλαδή
   λίστα διαφορετική από λίστα: «Αγαπημένα» ξεκινούσαν 113px πιο
   κάτω από «Όλα τα καταστήματα», και κατέβαιναν κι άλλο σε κάθε
   καρδιά που πατούσε ο πελάτης.

   Τώρα είναι ανάποδα, και γι' αυτό σταθερό: ΟΛΕΣ οι σελίδες
   ξεκινούν από το ίδιο pixel. Κεντράρεται ΜΟΝΟ όποια το δηλώνει
   ρητά, και αυτές είναι μόνο οι μονοθεματικές οθόνες που δεν
   έχουν τίποτα να μεγαλώσει: ένα σκέτο μήνυμα (404) ή μία σκέτη
   φόρμα (.sparse-c). Λίστα δεν κεντράρεται ποτέ — ό,τι αλλάζει
   ύψος δεν επιτρέπεται να κουνάει τον τίτλο και τα φίλτρα.
   ════════════════════════════════════════════════════════════ */
/*  ΠΡΟΕΠΙΛΟΓΗ: ΣΤΗ ΜΕΣΗ ΤΗΣ ΟΘΟΝΗΣ, ΚΑΘΕΤΑ.
    Σελίδες σαν το «Πώς κλείνεις ραντεβού» ή τους «Όρους» έχουν
    σταθερό περιεχόμενο: δεν αλλάζουν ύψος, άρα το κεντράρισμα δεν
    μπορεί να κουνήσει τίποτα κάτω από το δάχτυλο. Κολλημένες στην
    κορυφή άφηναν 183 pixel κενό από κάτω και έδειχναν μισοτελειωμένες.
    Τα auto margins μηδενίζονται μόνα τους σε ψηλές σελίδες. */
.osx--page .npage>.wrap{flex:0 0 auto;margin-top:auto;margin-bottom:auto}

/*  ΕΞΑΙΡΕΣΗ: Η ΛΙΣΤΑ. Εδώ το ύψος αλλάζει με κάθε φίλτρο, και ένα
    μπλοκ που ξανακεντράρεται τινάζει τον τίτλο και τα ίδια τα
    φίλτρα επάνω-κάτω τη στιγμή που τα πατάς. Σταθερότητα πάνω από
    συμμετρία: ό,τι αλλάζει μέγεθος μένει καρφωμένο στην κορυφή. */
.osx--page .npage>.wrap:has(.page-list){flex:1 1 auto;margin-top:0;margin-bottom:0}


/* Το search της κεφαλίδας: στο ΚΕΝΤΡΟ και σαν του ChatGPT —
   γεμάτο, μαλακό, όχι ένα άδειο περίγραμμα κολλημένο αριστερά. */
/*  ΑΕΡΑΣ ΠΑΝΩ-ΚΑΤΩ.
    Η μπάρα ήταν κολλημένη στην πάνω ακμή και στη γραμμή από κάτω:
    52px ύψος για ένα πεδίο 46px, δηλαδή 3 pixel αναπνοή. Με padding
    η κεφαλίδα γίνεται λωρίδα και όχι περίγραμμα. */
.osx--page .nhd{padding-block:10px;min-height:72px}
.osx--page .nhd__search{margin-inline:auto;max-width:520px;min-height:52px;
  background:var(--nsoft);border-color:transparent;border-radius:999px;padding:0 4px 0 18px}
.osx--page .nhd__search:focus-within{background:#fff;border-color:#C9C9CE}

/* Η περιγραφή σε ΚΟΥΤΙ full-width — ίδια γλώσσα με τις κάρτες.
   Το max-width:none νικά το 60ch του app.css: χωρίς αυτό το κουτί
   κοβόταν στα 2/3 της στήλης ενώ οι κάρτες από κάτω γέμιζαν όλη. */
.osx--page .shop-intro{width:100%;max-width:none;background:#fff;border:1px solid var(--nline);border-radius:16px;
 padding:15px 17px;color:var(--nink2);margin-top:14px;line-height:1.6}
/* Κινητό: και οι σελίδες σαν native εφαρμογή — ζωντανά κείμενα */
@media (max-width:720px){
 .osx--page .shopsub{font-size:var(--fs-14)}
 .osx--page .shop-intro{font-size:var(--fs-15)}
 .osx--page .step__hint{font-size:var(--fs-14)}
 .osx--page .opt__nm{font-size:var(--fs-16)}
 .osx--page .opt__ds{font-size:var(--fs-13)}
 .osx--page .info__t{font-size:var(--fs-14)}
 .osx--page .info__s{font-size:var(--fs-13)}
}
.osx--page .opt{border:1px solid var(--nline2);border-radius:12px;background:#fff;box-shadow:none}
.osx--page .opt.is-on{border-color:var(--nink);box-shadow:0 0 0 1px var(--nink);background:var(--nsoft)}
.osx--page .step,.osx--page .cta-bar{box-shadow:none}
.osx--page .day{border:1px solid var(--nline2);border-radius:11px;background:#fff;box-shadow:none}
.osx--page .day.is-on{border-color:var(--nink);box-shadow:0 0 0 1px var(--nink)}
.osx--page .info{border:1px solid var(--nline);border-radius:13px;background:var(--nsoft);box-shadow:none}
.osx--page article,.osx--page .card{box-shadow:none}

/* «Για επιχειρήσεις» και τίτλοι σελίδων: ήρεμη τυπογραφία */
.osx--page .hero-title{font-size:var(--fs-32);font-weight:700;letter-spacing:-.03em}

/* ── Η ΝΕΑ ΦΙΛΟΣΟΦΙΑ: η σελίδα ενημερώνει, το chat κλείνει ──
   Υπηρεσίες σαν ήρεμες κάρτες (μόνο ενημέρωση), και ΕΝΑ κουμπί
   που σε πάει ΣΤΗ συνομιλία — εκεί γίνεται το κλείσιμο. */
.osx--page .shoph2{font:600 var(--fs-15) var(--osf);margin:26px 0 2px}
.svcrow{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;
 border:1px solid var(--nline);border-radius:16px;padding:15px 17px;margin-top:10px}
.svcrow__tx{min-width:0}
.svcrow__tx b{font:600 var(--fs-15) var(--osf);letter-spacing:-.015em}
.svcrow__tx small{display:block;font:400 var(--fs-13) var(--osf);color:var(--nink2);margin-top:2px}
.svcrow__pr{font:700 var(--fs-15) var(--osf);flex:none}
.bookvia{background:var(--nsoft);border:1px solid var(--nline);border-radius:16px;
 padding:20px 18px;margin-top:24px;text-align:center}
.bookvia__t{display:block;font:700 var(--fs-16) var(--osf);letter-spacing:-.015em}
.bookvia p{font:400 var(--fs-14)/1.55 var(--osf);color:var(--nink2);margin-top:6px}
.bookvia__go{width:100%;margin-top:14px;min-height:52px;font-size:var(--fs-15);
 border-radius:12px;text-decoration:none}
.bookvia small{display:block;margin-top:9px;font:400 var(--fs-12) var(--osf);color:var(--nink3)}

/* Επαναποστολή κωδικού: αντίστροφη μέτρηση 60΄΄, έως 3 φορές —
   όσο ακριβώς δέχεται και ο server. Ο μετρητής υπάρχει για να
   ξέρεις ότι δεν κόλλησε τίποτα: απλώς περιμένεις. */
.otpre{margin-top:10px;font:500 var(--fs-13)/1.5 var(--osf);color:var(--nink3)}
.otpre--done{color:var(--nink2)}
.otpre__go{border:0;background:none;padding:0;font:800 var(--fs-13) var(--osf);
 color:var(--nink);cursor:pointer;text-decoration:underline}

/* ── Φόρμα επικοινωνίας ─────────────────────────────────────
   Το δόλωμα κρύβεται από τα μάτια ΚΑΙ από τα προγράμματα
   ανάγνωσης οθόνης — αλλά μένει στη σελίδα για τα ρομπότ. */
.cform{display:flex;flex-direction:column;gap:14px;margin:0}
.cform__row{display:grid;gap:14px}
@media (min-width:640px){.cform__row{grid-template-columns:1fr 1fr}}
.cform__trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.osx--page .cform textarea.f__i{min-height:120px;resize:vertical;line-height:1.55}
/* Κάθε πεδίο της φόρμας είναι στόχος αφής: ≥44px, όπως όλα */
.osx--page .cform .f__i{min-height:44px}

/* ── ΕΠΙΚΟΙΝΩΝΙΑ: δύο στήλες, η φόρμα σε κάρτα ───────────────
   Η παλιά σελίδα ήταν μια φόρμα να «κολυμπάει» σε άσπρο κενό.
   Τώρα: αριστερά πώς αλλιώς να μας βρεις (οι περισσότεροι δεν
   χρειάζονται καν φόρμα — το λύνουν στη συνομιλία), δεξιά η
   φόρμα κλεισμένη σε κάρτα. Στο κινητό, μία στήλη από πάνω
   προς τα κάτω. */
.epikoin__hd{margin-bottom:var(--s-6)}
.epikoin__grid{display:grid;gap:16px}
@media (min-width:820px){
  .epikoin__grid{grid-template-columns:.92fr 1.08fr;gap:26px;align-items:start}
}
.epikoin__slabel{display:block;margin:2px 2px 10px;
  font:700 var(--fs-12) var(--osf);letter-spacing:.01em;color:var(--nink3)}
.epikoin__side{display:flex;flex-direction:column;gap:12px}
.epikoin__main{min-width:0}

/* Κάρτα «τρόπου»: εικονίδιο σε κύκλο, τίτλος, εξήγηση. Ολόκληρη
   πατήσιμη όταν είναι σύνδεσμος (τηλέφωνο) — 44px, όπως παντού. */
.waycard{display:flex;gap:13px;align-items:flex-start;padding:16px;
  background:var(--nsoft);border:1px solid var(--nline);border-radius:15px;text-decoration:none}
.waycard--link{min-height:44px;transition:border-color .15s,background .15s}
.waycard--link:hover{border-color:var(--nline2);background:#fff}
.waycard__ic{flex:none;width:38px;height:38px;border-radius:11px;background:#fff;
  border:1px solid var(--nline);display:flex;align-items:center;justify-content:center}
.waycard__ic .i{width:19px;height:19px;color:var(--nink2)}
.waycard__tx{min-width:0;display:flex;flex-direction:column;gap:3px}
.waycard__t{font:700 var(--fs-15) var(--osf);letter-spacing:-.015em;color:var(--nink)}
.waycard__s{font:400 var(--fs-13)/1.55 var(--osf);color:var(--nink2)}
.waycard__s a{color:var(--nink);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* Η κάρτα της φόρμας */
.formcard{background:#fff;border:1px solid var(--nline);border-radius:18px;padding:22px 18px}
@media (min-width:820px){.formcard{padding:26px 24px}}
.formcard__head{display:flex;flex-direction:column;gap:3px;margin-bottom:4px}
.formcard__t{font:800 var(--fs-18) var(--osf);letter-spacing:-.02em;color:var(--nink)}
.formcard__s{font:400 var(--fs-13) var(--osf);color:var(--nink2)}
.formcard__note{display:flex;align-items:center;gap:7px;margin:2px 0 0;
  font:500 var(--fs-12) var(--osf);color:var(--nink3)}
.formcard__note .i{width:15px;height:15px;flex:none;color:var(--nink3)}

/* Επιτυχία, μέσα στην ίδια κάρτα και κεντραρισμένη */
.formcard--ok{display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:10px;padding:34px 24px}
.formcard__okic{width:52px;height:52px;border-radius:50%;background:var(--nok-l);
  display:flex;align-items:center;justify-content:center;margin-bottom:2px}
.formcard__okic .i{width:26px;height:26px;color:var(--nok)}
.formcard__oktt{font:800 var(--fs-18) var(--osf);letter-spacing:-.02em;color:var(--nink)}
.formcard__oktx{font:400 var(--fs-14)/1.5 var(--osf);color:var(--nink2);max-width:34ch}
.formcard--ok .btn{margin-top:8px}

/* ── Δύναμη κωδικού ──────────────────────────────────────────
   Μετράει μπροστά στον έμπορο όσο γράφει. ΔΕΝ εμποδίζει: ένας
   κανόνας που απαιτεί «!1» παράγει «Password1!», μια μπάρα που
   ανεβαίνει παράγει μακρύτερους κωδικούς. */
/* ── Προτάσεις διεύθυνσης μέσα στη συνομιλία ────────────── */
/* Κάθε πρόταση είναι ΓΡΑΜΜΗ ολόκληρη, όχι λινκάκι: στο κινητό
   ο αντίχειρας δεν σημαδεύει — ακουμπά. Δύο σειρές (διεύθυνση
   και περιοχή) γιατί «Ερμού» υπάρχει σε κάθε πόλη. */
.geosug{display:flex;flex-direction:column;gap:6px;margin:9px 0 0}
.geosug[hidden]{display:none}
.geosug__i{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;
 min-height:48px;padding:8px 13px;border:1px solid var(--nline2);border-radius:11px;
 background:#fff;text-align:left;cursor:pointer}
.geosug__i:hover{border-color:#C9C9CE;background:var(--nsoft)}
.geosug__l{font:500 var(--fs-14) var(--osf);color:var(--nink)}
.geosug__a{font:400 var(--fs-12) var(--osf);color:var(--nink2)}
/* Η δεύτερη άδεια: ξεχωριστό κουτάκι, ξετσεκάριστο, με το κείμενο
   μπροστά. Ολόκληρη η γραμμή είναι πατήσιμη — 44px, όπως παντού. */
.okrow{display:flex;align-items:center;gap:10px;min-height:44px;margin:8px 2px 0;
 font:500 var(--fs-12) var(--osf);color:var(--nink2);cursor:pointer}
.okrow input{width:20px;height:20px;flex:none;accent-color:var(--nink)}
.geopin{margin:9px 2px 0;font:500 var(--fs-12) var(--osf);color:var(--nink2)}
.geopin[hidden]{display:none}

.pwm{display:flex;align-items:center;gap:10px;margin:9px 2px 0}
.pwm[hidden]{display:none}
.pwm__bar{flex:1;height:5px;border-radius:999px;background:var(--nline);overflow:hidden}
.pwm__bar i{display:block;height:100%;width:0;border-radius:999px;
  background:var(--nbad);transition:width .18s,background .18s}
.pwm__t{font:600 var(--fs-12) var(--osf);color:var(--nink2);white-space:nowrap}
.pwm--2 .pwm__bar i{background:#E08A1E}
.pwm--3 .pwm__bar i{background:#7BA428}
.pwm--4 .pwm__bar i{background:var(--nok)}
.pwm--4 .pwm__t{color:var(--nok)}

/*  Το κουμπί του επαγγελματία στο καλωσόρισμα: ψηλά, πριν το
    πεδίο — ελαφρύ περίγραμμα στο γκρι του μενού (1px --nline),
    ώστε να προσκαλεί χωρίς να ανταγωνίζεται τη συνομιλία. */
.oshello__biz{margin-top:16px}
.oshello__bizbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:0 22px;border-radius:999px;cursor:pointer;
  border:1px solid var(--nline);background:#fff;color:var(--nink);
  font:600 var(--fs-14) var(--osf)}
.oshello__bizbtn:hover{background:var(--nsoft)}
.oshello__bizbtn .i{width:18px;height:18px;flex:none}

/*  ΦΩΤΟΓΡΑΦΙΑ ΣΕ ΜΕΓΕΘΥΝΣΗ (σελίδα καταστήματος): πατάς την
    εικόνα και ανοίγει ολόκληρη πάνω σε σκοτεινό φόντο — κλείνει
    με πάτημα οπουδήποτε, με το ✕ ή με Esc. */
.shoplight{cursor:zoom-in}
.lightbox{position:fixed;inset:0;z-index:80;background:rgba(13,13,13,.88);
  display:grid;place-items:center;padding:20px;border:0;width:100%;cursor:zoom-out}
.lightbox img{max-width:min(1100px,96vw);max-height:92vh;width:auto;height:auto;
  border-radius:12px;display:block;box-shadow:0 24px 80px rgba(0,0,0,.5)}
.lightbox__x{position:absolute;top:14px;right:14px;width:44px;height:44px;border:0;
  border-radius:50%;background:rgba(255,255,255,.92);color:var(--nink);cursor:pointer;
  display:grid;place-items:center}
.lightbox__x .i{width:18px;height:18px;stroke-width:2.2}
